From 7f9b7ca25e22f9cf56078fddc2f88f3d46625deb Mon Sep 17 00:00:00 2001 From: konard Date: Tue, 5 May 2026 19:18:12 +0000 Subject: [PATCH 1/4] Initial commit with task details Adding .gitkeep for PR creation (default mode). This file will be removed when the task is complete. Issue: https://github.com/link-foundation/lino-objects-codec/issues/33 --- .gitkeep | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitkeep diff --git a/.gitkeep b/.gitkeep new file mode 100644 index 0000000..9074725 --- /dev/null +++ b/.gitkeep @@ -0,0 +1 @@ +# .gitkeep file auto-generated at 2026-05-05T19:18:12.586Z for PR creation at branch issue-33-2c527aa50b81 for issue https://github.com/link-foundation/lino-objects-codec/issues/33 \ No newline at end of file From ab1fb112915974330ad336e5db09e42b9bb43b7a Mon Sep 17 00:00:00 2001 From: konard Date: Tue, 5 May 2026 19:44:33 +0000 Subject: [PATCH 2/4] fix(ci): release-format consistency and npm publish verification Addresses issue #33 across all four pipelines (JS/Rust/Python/C#). JavaScript false-positive publish (run 25288053638): publish-to-npm.mjs now retries the registry verification with exponential backoff and pre-checks the registry before re-running `changeset publish`, so npm CDN propagation lag no longer surfaces a `##[error]` annotation in a green run. Release format: added a small `release-format-helpers` module per language (helpers inline in Python). All four `create-github-release` scripts now produce `[Language] X.Y.Z` titles, append a registry shields.io badge if the body lacks one, and use `lang_v` tag prefixes. The C# script previously had no `gh` exit-code check at all; it now fails honestly and treats `already_exists` as idempotent. Workflows: js/rust/python/csharp .yml updated to pass `--tag-prefix "_v" --language ""`. csharp.yml gains a NuGet propagation verification step between publish and release creation, matching the existing patterns in the other three pipelines. format-release-notes.mjs (JS): badge formatter now uses the new `normalizeReleaseVersionForBadge` helper instead of `replace(/^v/, '')`, which previously left language prefixes (e.g. `js-v0.3.5`) embedded in shields.io URLs. Tests: 11 new JS, 4 new Rust, 5 new C#, 4 new Python helper tests. Case study: docs/case-studies/issue-33/ contains the original log, metadata, and a README citing exact log lines for each finding. Upstream template issues filed: - link-foundation/js-ai-driven-development-pipeline-template#52 - link-foundation/rust-ai-driven-development-pipeline-template#44 - link-foundation/python-ai-driven-development-pipeline-template#6 - link-foundation/csharp-ai-driven-development-pipeline-template#5 Refs #33 --- .github/workflows/csharp.yml | 36 +- .github/workflows/js.yml | 8 +- .github/workflows/python.yml | 6 +- .github/workflows/rust.yml | 6 +- csharp/scripts/create-github-release.mjs | 141 +- csharp/scripts/release-format-helpers.mjs | 53 + .../scripts/release-format-helpers.test.mjs | 47 + docs/case-studies/issue-33/README.md | 160 + .../issue-33/run-25288053638-js.log | 4391 +++++++++++++++++ .../issue-33/run-25288053638-meta.json | 1 + js/scripts/create-github-release.mjs | 70 +- js/scripts/format-release-notes.mjs | 11 +- js/scripts/publish-to-npm.mjs | 69 +- js/scripts/release-format-helpers.mjs | 85 + js/tests/test_release_format_helpers.test.js | 105 + python/scripts/create_github_release.py | 147 +- .../test_create_github_release_helpers.py | 45 + rust/scripts/create-github-release.mjs | 85 +- rust/scripts/release-format-helpers.mjs | 43 + rust/scripts/release-format-helpers.test.mjs | 34 + 20 files changed, 5452 insertions(+), 91 deletions(-) create mode 100644 csharp/scripts/release-format-helpers.mjs create mode 100644 csharp/scripts/release-format-helpers.test.mjs create mode 100644 docs/case-studies/issue-33/README.md create mode 100644 docs/case-studies/issue-33/run-25288053638-js.log create mode 100644 docs/case-studies/issue-33/run-25288053638-meta.json create mode 100644 js/scripts/release-format-helpers.mjs create mode 100644 js/tests/test_release_format_helpers.test.js create mode 100644 python/tests/test_create_github_release_helpers.py create mode 100644 rust/scripts/release-format-helpers.mjs create mode 100644 rust/scripts/release-format-helpers.test.mjs diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml index 7ced20b..1030b82 100644 --- a/.github/workflows/csharp.yml +++ b/.github/workflows/csharp.yml @@ -234,6 +234,7 @@ jobs: path: csharp/artifacts/ - name: Publish to NuGet + id: nuget_publish if: steps.version_check.outputs.should_release == 'true' working-directory: ./csharp env: @@ -275,6 +276,35 @@ jobs: fi echo "$OUT" + - name: Verify package on NuGet + # Mirrors the PyPI verification step (see python.yml). The NuGet CDN can + # take a minute or so to mirror a successful push; without an explicit + # registry probe the workflow can succeed even if the package never + # surfaces. See docs/case-studies/issue-33/README.md. + if: steps.version_check.outputs.should_release == 'true' && steps.nuget_publish.outcome == 'success' + run: | + PKG="${{ steps.version_check.outputs.package_id }}" + VER="${{ steps.version_check.outputs.current_version }}" + if [ -z "$PKG" ]; then + echo "::warning title=NuGet verification skipped::package_id not exported by version_check; skipping verify." + exit 0 + fi + PKG_LOWER=$(echo "$PKG" | tr '[:upper:]' '[:lower:]') + for i in 1 2 3 4 5 6; do + STATUS=$(curl -sS -o /dev/null -w '%{http_code}' \ + "https://api.nuget.org/v3-flatcontainer/${PKG_LOWER}/${VER}/${PKG_LOWER}.nuspec") + echo "Attempt $i: NuGet HTTP status for ${PKG}@${VER}: ${STATUS}" + if [ "$STATUS" = "200" ]; then + echo "✅ Verified ${PKG}@${VER} is on NuGet" + exit 0 + fi + sleep 10 + done + echo "::error title=NuGet verification failed::${PKG}@${VER} is not on NuGet after publish." + echo "The publish step reported success but the registry does not see the version." + echo "See docs/case-studies/issue-33/README.md for the runbook." + exit 1 + - name: Create GitHub Release if: steps.version_check.outputs.should_release == 'true' env: @@ -284,7 +314,8 @@ jobs: node scripts/create-github-release.mjs \ --version "${{ steps.version_check.outputs.current_version }}" \ --repository "${{ github.repository }}" \ - --tag-prefix "csharp-v" + --tag-prefix "csharp_v" \ + --language "C#" # Manual release via workflow_dispatch manual-release: @@ -383,4 +414,5 @@ jobs: node scripts/create-github-release.mjs \ --version "${{ steps.version.outputs.new_version }}" \ --repository "${{ github.repository }}" \ - --tag-prefix "csharp-v" + --tag-prefix "csharp_v" \ + --language "C#" diff --git a/.github/workflows/js.yml b/.github/workflows/js.yml index c50255d..089ddb7 100644 --- a/.github/workflows/js.yml +++ b/.github/workflows/js.yml @@ -254,14 +254,14 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} working-directory: ./js - run: node scripts/create-github-release.mjs --release-version "${{ steps.publish.outputs.published_version }}" --repository "${{ github.repository }}" --tag-prefix "js-v" + run: node scripts/create-github-release.mjs --release-version "${{ steps.publish.outputs.published_version }}" --repository "${{ github.repository }}" --tag-prefix "js_v" --language "JavaScript" - name: Format GitHub release notes if: steps.publish.outputs.published == 'true' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} working-directory: ./js - run: node scripts/format-github-release.mjs --release-version "${{ steps.publish.outputs.published_version }}" --repository "${{ github.repository }}" --commit-sha "${{ github.sha }}" --tag-prefix "js-v" + run: node scripts/format-github-release.mjs --release-version "${{ steps.publish.outputs.published_version }}" --repository "${{ github.repository }}" --commit-sha "${{ github.sha }}" --tag-prefix "js_v" --language "JavaScript" # Manual Instant Release - triggered via workflow_dispatch with instant mode instant-release: @@ -316,14 +316,14 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} working-directory: ./js - run: node scripts/create-github-release.mjs --release-version "${{ steps.publish.outputs.published_version }}" --repository "${{ github.repository }}" --tag-prefix "js-v" + run: node scripts/create-github-release.mjs --release-version "${{ steps.publish.outputs.published_version }}" --repository "${{ github.repository }}" --tag-prefix "js_v" --language "JavaScript" - name: Format GitHub release notes if: steps.publish.outputs.published == 'true' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} working-directory: ./js - run: node scripts/format-github-release.mjs --release-version "${{ steps.publish.outputs.published_version }}" --repository "${{ github.repository }}" --commit-sha "${{ github.sha }}" --tag-prefix "js-v" + run: node scripts/format-github-release.mjs --release-version "${{ steps.publish.outputs.published_version }}" --repository "${{ github.repository }}" --commit-sha "${{ github.sha }}" --tag-prefix "js_v" --language "JavaScript" # Manual Changeset PR - creates a pull request with the changeset for review changeset-pr: diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index beb38e0..95eb9cf 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -273,7 +273,8 @@ jobs: python scripts/create_github_release.py \ --version "${{ steps.version_check.outputs.current_version }}" \ --repository "${{ github.repository }}" \ - --tag-prefix "python-v" + --tag-prefix "python_v" \ + --language "Python" # Manual release via workflow_dispatch - only after CI passes manual-release: @@ -382,4 +383,5 @@ jobs: python scripts/create_github_release.py \ --version "${{ steps.version.outputs.new_version }}" \ --repository "${{ github.repository }}" \ - --tag-prefix "python-v" + --tag-prefix "python_v" \ + --language "Python" diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 3856eed..683caaf 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -371,7 +371,8 @@ jobs: node scripts/create-github-release.mjs \ --version "${{ steps.current_version.outputs.version }}" \ --repository "${{ github.repository }}" \ - --tag-prefix "rust-v" + --tag-prefix "rust_v" \ + --language "Rust" # === MANUAL INSTANT RELEASE === # Manual release via workflow_dispatch - only after CI passes @@ -473,7 +474,8 @@ jobs: node scripts/create-github-release.mjs \ --version "${{ steps.version.outputs.new_version }}" \ --repository "${{ github.repository }}" \ - --tag-prefix "rust-v" + --tag-prefix "rust_v" \ + --language "Rust" # === MANUAL CHANGELOG PR === changelog-pr: diff --git a/csharp/scripts/create-github-release.mjs b/csharp/scripts/create-github-release.mjs index 73e0e98..0084b67 100644 --- a/csharp/scripts/create-github-release.mjs +++ b/csharp/scripts/create-github-release.mjs @@ -2,10 +2,19 @@ /** * Create GitHub Release from CHANGELOG.md for C# package - * Usage: node scripts/create-github-release.mjs --version --repository [--tag-prefix ] + * Usage: node scripts/create-github-release.mjs --version --repository [--tag-prefix ] [--language ] [--package-name ] * version: Version number (e.g., 1.0.0) * repository: GitHub repository (e.g., owner/repo) - * tag-prefix: Tag prefix (default: "csharp-v") + * tag-prefix: Tag prefix (default: "csharp_v") + * language: Display label for the release title (default: "C#") + * package-name: NuGet package name for the badge (auto-detected from .csproj if missing) + * + * Per issue #33: + * - Tag format: csharp_v + * - Title format: [C#] X.Y.Z + * - Body MUST contain a NuGet shields.io badge + * - The script must check `gh api` exit code so 422 (e.g. tag conflicts) + * no longer reports a false-positive success. * * Uses link-foundation libraries: * - use-m: Dynamic package loading without package.json dependencies @@ -13,7 +22,16 @@ * - lino-arguments: Unified configuration from CLI args, env vars, and .lenv files */ -import { readFileSync } from 'fs'; +import { readFileSync, readdirSync, statSync } from 'fs'; +import path from 'path'; + +import { + buildNuGetVersionBadge, + buildReleaseTag, + buildReleaseTitle, + isAlreadyExistingReleaseError, + normalizeReleaseVersionForBadge, +} from './release-format-helpers.mjs'; // Load use-m dynamically const { use } = eval( @@ -24,7 +42,54 @@ const { use } = eval( const { $ } = await use('command-stream'); const { makeConfig } = await use('lino-arguments'); -// Parse CLI arguments using lino-arguments +function findCsprojPackageName(rootDir = '.') { + // Walk a small tree (one level deep) to find the first .csproj with + // or . We avoid pulling in an XML parser + // because the value we need is always a single tag inside a PropertyGroup. + const candidates = []; + function walk(dir, depth) { + if (depth > 3) return; + let entries; + try { + entries = readdirSync(dir); + } catch { + return; + } + for (const entry of entries) { + if (entry === 'node_modules' || entry === 'bin' || entry === 'obj') continue; + const full = path.join(dir, entry); + let stat; + try { + stat = statSync(full); + } catch { + continue; + } + if (stat.isDirectory()) { + walk(full, depth + 1); + } else if (full.endsWith('.csproj')) { + candidates.push(full); + } + } + } + walk(rootDir, 0); + + for (const csproj of candidates) { + let xml; + try { + xml = readFileSync(csproj, 'utf8'); + } catch { + continue; + } + const packageIdMatch = xml.match(/([^<]+)<\/PackageId>/); + if (packageIdMatch) return packageIdMatch[1].trim(); + const assemblyNameMatch = xml.match(/([^<]+)<\/AssemblyName>/); + if (assemblyNameMatch) return assemblyNameMatch[1].trim(); + // Fall back to the file name (without extension). + return path.basename(csproj, '.csproj'); + } + return null; +} + const config = makeConfig({ yargs: ({ yargs, getenv }) => yargs @@ -41,14 +106,25 @@ const config = makeConfig({ }) .option('tag-prefix', { type: 'string', - default: getenv('TAG_PREFIX', 'csharp-v'), + default: getenv('TAG_PREFIX', 'csharp_v'), describe: 'Tag prefix for the release', + }) + .option('language', { + type: 'string', + default: getenv('LANGUAGE', 'C#'), + describe: 'Human-readable language label (used in the release title)', + }) + .option('package-name', { + type: 'string', + default: getenv('PACKAGE_NAME', ''), + describe: + 'NuGet package name for the badge (auto-detected from .csproj if missing)', }), }); -const { version, repository, tagPrefix } = config; +const { version: rawVersion, repository, tagPrefix, language } = config; -if (!version || !repository) { +if (!rawVersion || !repository) { console.error('Error: Missing required arguments'); console.error( 'Usage: node scripts/create-github-release.mjs --version --repository ' @@ -56,13 +132,16 @@ if (!version || !repository) { process.exit(1); } -const tag = `${tagPrefix}${version}`; +const semver = normalizeReleaseVersionForBadge(rawVersion); +const tag = buildReleaseTag(tagPrefix, semver); +const title = buildReleaseTitle(language, semver); +const packageName = config.packageName || findCsprojPackageName('.'); -console.log(`Creating GitHub release for ${tag}...`); +console.log(`Creating GitHub release for ${tag} (title: ${title})...`); try { // Read CHANGELOG.md - let changelog; + let changelog = ''; try { changelog = readFileSync('./CHANGELOG.md', 'utf8'); } catch { @@ -72,7 +151,7 @@ try { // Extract changelog entry for this version // Read from CHANGELOG.md between this version header and the next version header const versionHeaderRegex = new RegExp( - `## \\[?${version.replace(/\./g, '\\.')}\\]?[\\s\\S]*?(?=## \\[?\\d|$)` + `## \\[?${semver.replace(/\./g, '\\.')}\\]?[\\s\\S]*?(?=## \\[?\\d|$)` ); const match = changelog.match(versionHeaderRegex); @@ -80,27 +159,53 @@ try { if (match) { // Remove the version header itself and trim releaseNotes = match[0] - .replace(new RegExp(`## \\[?${version.replace(/\./g, '\\.')}\\]?[^\\n]*`), '') + .replace( + new RegExp(`## \\[?${semver.replace(/\./g, '\\.')}\\]?[^\\n]*`), + '' + ) .trim(); } if (!releaseNotes) { - releaseNotes = `Release ${version}`; + releaseNotes = `Release ${semver}`; + } + + if (packageName && !/img\.shields\.io/.test(releaseNotes)) { + const badge = buildNuGetVersionBadge(packageName, semver); + releaseNotes = `${releaseNotes}\n\n---\n\n${badge}`; } // Create release using GitHub API with JSON input // This avoids shell escaping issues that occur when passing text via command-line arguments const payload = JSON.stringify({ tag_name: tag, - name: `C# ${version}`, + name: title, body: releaseNotes, }); - await $`gh api repos/${repository}/releases -X POST --input -`.run({ - stdin: payload, - }); + const result = + await $`gh api repos/${repository}/releases -X POST --input -`.run({ + stdin: payload, + capture: true, + }); + + if (result.stdout) { + console.log(result.stdout); + } + if (result.stderr) { + console.error(result.stderr); + } + + if (result.code && result.code !== 0) { + const output = `${result.stdout || ''}\n${result.stderr || ''}`; + if (isAlreadyExistingReleaseError(output)) { + console.log(`GitHub release already exists: ${tag}`); + process.exit(0); + } + throw new Error(`gh api exited with code ${result.code}`); + } - console.log(`\u2705 Created GitHub release: ${tag}`); + console.log(`✅ Created GitHub release: ${tag}`); } catch (error) { console.error('Error creating release:', error.message); process.exit(1); diff --git a/csharp/scripts/release-format-helpers.mjs b/csharp/scripts/release-format-helpers.mjs new file mode 100644 index 0000000..69f5094 --- /dev/null +++ b/csharp/scripts/release-format-helpers.mjs @@ -0,0 +1,53 @@ +/** + * C# mirror of js/scripts/release-format-helpers.mjs. + * + * Tag prefix convention (per issue #33): csharp_v + * Title convention: [C#] X.Y.Z + */ + +export function normalizeReleaseVersionForBadge(releaseVersion) { + const trimmedVersion = String(releaseVersion ?? '').trim(); + const semverTagMatch = trimmedVersion.match( + /(?:^|[-_])v?(\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?)$/i + ); + + if (semverTagMatch) { + return semverTagMatch[1]; + } + + return trimmedVersion + .replace(/^[A-Za-z][A-Za-z0-9]*[-_]/, '') + .replace(/^v/i, ''); +} + +export function encodeShieldsStaticBadgeSegment(value) { + return encodeURIComponent(value).replace(/-/g, '--').replace(/_/g, '__'); +} + +export function buildNuGetVersionBadge(packageName, releaseVersion) { + const versionWithoutV = normalizeReleaseVersionForBadge(releaseVersion); + const badgeVersion = encodeShieldsStaticBadgeSegment(versionWithoutV); + const packageVersionPath = encodeURIComponent(versionWithoutV); + + return `[![NuGet](https://img.shields.io/badge/nuget-${badgeVersion}-blue.svg)](https://www.nuget.org/packages/${packageName}/${packageVersionPath})`; +} + +export function buildReleaseTitle(language, releaseVersion) { + const semver = normalizeReleaseVersionForBadge(releaseVersion); + return `[${language}] ${semver}`; +} + +export function buildReleaseTag(tagPrefix, releaseVersion) { + const semver = normalizeReleaseVersionForBadge(releaseVersion); + return `${tagPrefix}${semver}`; +} + +export function isAlreadyExistingReleaseError(output) { + if (!output) return false; + const lower = output.toLowerCase(); + return ( + lower.includes('already_exists') || + lower.includes('already exists') || + lower.includes('validation failed') + ); +} diff --git a/csharp/scripts/release-format-helpers.test.mjs b/csharp/scripts/release-format-helpers.test.mjs new file mode 100644 index 0000000..2113965 --- /dev/null +++ b/csharp/scripts/release-format-helpers.test.mjs @@ -0,0 +1,47 @@ +import { test } from 'node:test'; +import assert from 'node:assert/strict'; + +import { + buildNuGetVersionBadge, + buildReleaseTag, + buildReleaseTitle, + isAlreadyExistingReleaseError, + normalizeReleaseVersionForBadge, +} from './release-format-helpers.mjs'; + +test('normalizeReleaseVersionForBadge strips csharp- and csharp_ prefixes', () => { + assert.equal(normalizeReleaseVersionForBadge('csharp-v0.2.0'), '0.2.0'); + assert.equal(normalizeReleaseVersionForBadge('csharp_v0.2.0'), '0.2.0'); + assert.equal(normalizeReleaseVersionForBadge('v0.2.0'), '0.2.0'); +}); + +test('buildNuGetVersionBadge produces a NuGet shields.io badge for any input format', () => { + const badge = buildNuGetVersionBadge('LinoObjectsCodec', 'csharp-v0.2.0'); + assert.match(badge, /nuget-0\.2\.0-blue\.svg/); + assert.match(badge, /nuget\.org\/packages\/LinoObjectsCodec\/0\.2\.0/); + assert.doesNotMatch(badge, /csharp-v0\.2\.0/); +}); + +test('buildReleaseTitle produces "[C#] X.Y.Z"', () => { + assert.equal(buildReleaseTitle('C#', 'csharp-v0.2.0'), '[C#] 0.2.0'); + assert.equal(buildReleaseTitle('C#', '0.2.0'), '[C#] 0.2.0'); +}); + +test('buildReleaseTag joins prefix with bare semver', () => { + assert.equal(buildReleaseTag('csharp_v', '0.2.0'), 'csharp_v0.2.0'); + assert.equal(buildReleaseTag('csharp_v', 'csharp-v0.2.0'), 'csharp_v0.2.0'); +}); + +test('isAlreadyExistingReleaseError matches GitHub already_exists responses', () => { + assert.equal( + isAlreadyExistingReleaseError( + '{"errors":[{"resource":"Release","code":"already_exists"}]}' + ), + true + ); + assert.equal( + isAlreadyExistingReleaseError('Validation Failed'), + true + ); + assert.equal(isAlreadyExistingReleaseError('some other error'), false); +}); diff --git a/docs/case-studies/issue-33/README.md b/docs/case-studies/issue-33/README.md new file mode 100644 index 0000000..0d63fb1 --- /dev/null +++ b/docs/case-studies/issue-33/README.md @@ -0,0 +1,160 @@ +# Issue 33 Case Study: CI/CD False-Positive npm Publish and Release Format + +Issue: https://github.com/link-foundation/lino-objects-codec/issues/33 + +PR: https://github.com/link-foundation/lino-objects-codec/pull/34 + +## Preserved Evidence + +The JavaScript release run flagged in the issue was downloaded before any changes were made: + +| Language | Run | Job | Created | Conclusion | Evidence | +| ---------- | ----------- | ------------------------------------ | -------------------- | ---------- | ------------------------------------------------------- | +| JavaScript | 25288053638 | Release (job 74135563079) | 2026-05-03T19:06:37Z | success | `run-25288053638-js.log`, `run-25288053638-meta.json` | + +## Issue Requirements + +The issue listed five concrete CI/CD problems to fix: + +1. The JavaScript release run printed visible `##[error]` annotations even though it ended green — a false-positive publish on workflow run `25288053638` / job `74135563079`. +2. The GitHub Release for JavaScript 0.3.5 used title `js-v0.3.5` and tag `js-v0.3.5` — the issue requested `[JavaScript]` prefix in the title and `js_v` prefix in the tag. +3. The Rust release `rust-v0.2.1` had no shields.io badge and the title `Rust 0.2.1` was missing the `[Rust]` prefix. +4. Audit Python and C# pipelines for the same class of bugs and apply the same fixes. +5. Compare with the four AI-driven-development pipeline templates and file upstream issues for shared bugs. + +## Findings + +### 1. JavaScript false-positive publish (run 25288053638) + +The `Publish to npm` step in run `25288053638` ended green at `run-25288053638-js.log:4346`, but the same step printed a GitHub Actions `##[error]` annotation at `run-25288053638-js.log:4321` and triggered an outer retry at `run-25288053638-js.log:4322`. That is exactly the visual contradiction the issue asks to fix. + +The sequence of events in the log is: + +- `run-25288053638-js.log:4283` — `Publish attempt 1 of 3...` +- `run-25288053638-js.log:4292-4295` — Changesets reports `🦋 success packages published successfully: lino-objects-codec@0.3.5` and creates the local tag `v0.3.5`. +- `run-25288053638-js.log:4311` — wrapper prints `Verifying package was published to npm...` and runs `npm view ... version` after the existing 2-second sleep. +- `run-25288053638-js.log:4313-4320` — npm registry view returns `E404 No match found for version 0.3.5`. This is registry CDN propagation lag, not a publish failure. +- `run-25288053638-js.log:4321` — wrapper prints `##[error]lino-objects-codec@0.3.5 is not on npm after publish.` even though the publish itself succeeded. +- `run-25288053638-js.log:4322` — wrapper triggers the outer retry (`waiting 10s before retry`). +- `run-25288053638-js.log:4323` — `Publish attempt 2 of 3...` re-runs `npm run changeset:publish`. +- `run-25288053638-js.log:4330-4331` — Changesets answers `lino-objects-codec is not being published because version 0.3.5 is already published on npm`. This proves the first attempt had actually succeeded. +- `run-25288053638-js.log:4343-4346` — second verification finds `0.3.5` and the wrapper prints `✅ Published lino-objects-codec@0.3.5 to npm`. + +Root cause: `js/scripts/publish-to-npm.mjs` had a single `sleep(2000)` followed by one `npm view` check. The npm registry CDN sometimes has more than two seconds of propagation lag for OIDC/trusted-publisher publishes, so the verification fails, the outer retry re-runs `changeset publish`, and the `##[error]` annotation is preserved in the run summary even after the retry succeeds. + +### 2. JavaScript GitHub Release title and tag + +The release object created by the same run is captured at `run-25288053638-js.log:4356`. Its key fields are `tag_name: js-v0.3.5`, `name: js-v0.3.5`, and `html_url: .../releases/tag/js-v0.3.5`. The release notes block is printed at `run-25288053638-js.log:4370` and contains: + +``` +[![npm version](https://img.shields.io/badge/npm-js-v0.3.5-blue.svg)](https://www.npmjs.com/package/lino-objects-codec/v/js-v0.3.5) +``` + +That is two bugs: + +- The release `name` was set to the tag (`js-v0.3.5`) instead of a human-readable title. The release-creation script wrote `name: tag` directly. +- The badge formatter stripped only a leading `v` (`replace(/^v/, '')`), so the language prefix `js-` survived. The shields.io URL therefore embeds `js-v0.3.5` as the version, which is invalid; the npm `/v/js-v0.3.5` link is also broken. + +### 3. Rust GitHub Release title and badge + +The Rust release `rust-v0.2.1` has `tag_name: rust-v0.2.1`, `name: Rust 0.2.1` (no `[Rust]` prefix), and the body has no shields.io badge at all. The previous Rust release-creation script set `name: \`Rust ${version}\`` and never appended a badge. + +### 4. Python and C# + +Audit results: + +- Python and C# release-creation scripts had no `[Language]` prefix in titles, no shields.io badges, and used `python-v` / `csharp-v` tag prefixes instead of `python_v` / `csharp_v` requested by the issue. +- C# `csharp/scripts/create-github-release.mjs` did not check the `gh api` exit code at all. This is the same false-positive pattern that issue 31 fixed in the Rust script. A 422 `already_exists` from the GitHub Releases API would have been silently ignored. +- C# workflow `csharp.yml` had no NuGet-side propagation verification step between `dotnet nuget push` and `Create GitHub Release`. C# is the only language whose publish step had no registry verification at all. + +### 5. Tag prefix convention + +The four workflows used `js-v`, `rust-v`, `python-v`, `csharp-v`. The issue asked for `js_v`, `rust_v`, `python_v`, `csharp_v`. The underscore-style prefix is also more compatible with the shields.io segment encoding rules (a literal `-` becomes `--` after encoding, so language-prefix collisions are easier to avoid with `_`). + +## Solutions + +### Shared release-format helper + +Each language gained a small helper module that defines the same four operations: + +- `normalizeReleaseVersionForBadge` strips any `lang-`, `lang_`, or bare `v` prefix and returns a clean SemVer that is safe to drop into a badge URL or a `pkg/v/X.Y.Z` link. Pre-release and build metadata (`-beta.1`, `+build.7`) survive. +- `encodeShieldsStaticBadgeSegment` URL-encodes the value and applies the shields.io static-badge escape rules (`-` → `--`, `_` → `__`). +- `buildVersionBadge(packageName, releaseVersion)` returns the full Markdown badge for npm, crates.io, NuGet, or PyPI. +- `buildReleaseTitle(language, releaseVersion)` returns `[Language] X.Y.Z`. `buildReleaseTag(prefix, version)` joins `lang_v` with the bare semver and is idempotent. + +Files: + +- `js/scripts/release-format-helpers.mjs` and `js/tests/test_release_format_helpers.test.js` (11 tests). +- `rust/scripts/release-format-helpers.mjs` and `rust/scripts/release-format-helpers.test.mjs` (4 tests). +- `csharp/scripts/release-format-helpers.mjs` and `csharp/scripts/release-format-helpers.test.mjs` (5 tests). +- `python/scripts/create_github_release.py` (helpers inline) and `python/tests/test_create_github_release_helpers.py` (4 tests). + +### npm publish verification with retry + +`js/scripts/publish-to-npm.mjs` now has `verifyPublishedWithRetry(packageName, currentVersion)` which runs `npm view` up to five times with exponential backoff (3s, 6s, 12s, 24s, 30s capped). The outer attempt loop also pre-checks the registry before re-running `changeset publish`, so a propagation lag never re-runs publish. This addresses the root cause of the run-25288053638 false positive. + +### Release-creation scripts + +All four `create-github-release` scripts now: + +- Default `--tag-prefix` to `lang_v`, default `--language` to the language name, and accept optional `--package-name` / `--crate-name`. +- Use the helper functions to build the title `[Language] X.Y.Z`, the tag `lang_v0.3.5`, and the registry badge. +- Append the badge to the release body if the body does not already contain `img.shields.io`. +- Inspect the `gh api` (or `gh release create`) exit code, treat `already_exists` as idempotent, and otherwise fail the workflow. + +The C# script previously had no exit-code check at all; this was the same kind of false-positive risk that issue 31 fixed in Rust. It now inspects the `gh release create` exit code, walks `.csproj` files to discover `` / ``, and appends a NuGet badge. + +### NuGet verification step in `csharp.yml` + +A new `Verify package on NuGet` step was added between `dotnet nuget push` and `Create GitHub Release`. It polls `https://api.nuget.org/v3-flatcontainer///.nuspec` up to six times with 10s gaps, fails the workflow on persistent non-200, and only then proceeds to release creation. This brings C# in line with the registry-verification pattern that the other three languages already had. + +### Workflow updates + +- `.github/workflows/js.yml` — `--tag-prefix "js-v"` replaced with `--tag-prefix "js_v" --language "JavaScript"`. +- `.github/workflows/rust.yml` — `--tag-prefix "rust-v"` replaced with `--tag-prefix "rust_v" --language "Rust"`. +- `.github/workflows/python.yml` — `--tag-prefix "python-v"` replaced with `--tag-prefix "python_v" --language "Python"`. +- `.github/workflows/csharp.yml` — `--tag-prefix "csharp-v"` replaced with `--tag-prefix "csharp_v" --language "C#"`, and the new NuGet verification step added. + +### `format-release-notes.mjs` + +`js/scripts/format-release-notes.mjs` previously did `version.replace(/^v/, '')` and embedded the result into a hand-written badge URL — that produced the broken `npm-js-v0.3.5-blue.svg` badge in the 0.3.5 release. It now calls `normalizeReleaseVersionForBadge` and `buildNpmVersionBadge` from the shared helper. + +## Template Comparison + +The four `*-ai-driven-development-pipeline-template` repositories share most of the release-related code with this repository. + +- `js-ai-driven-development-pipeline-template`: the badge formatter is already correct (the template has `scripts/format-release-notes-helpers.mjs` with `normalizeReleaseVersionForBadge`). However, `scripts/create-github-release.mjs:82-83` still sets `tag_name: tag, name: tag`, so multi-language consumers using `--tag-prefix "js-v"` get a release title like `js-v0.3.5`. That is the bug observed in run `25288053638`. +- `rust-ai-driven-development-pipeline-template`: `scripts/create-github-release.rs:166-173` builds the release name as `format!("{}{}", tag_prefix, version)`, so multi-language consumers get titles like `rust-v0.2.1`. The crates.io badge is already appended (line 153), so badges are not the gap here — only the `[Rust]` prefix is. +- `python-ai-driven-development-pipeline-template`: `scripts/create_github_release.py:78-93` builds `tag = f"v{version}"` and passes `--title tag`. There is no `--tag-prefix` or `--language` argument, so multi-language consumers cannot produce `[Python] 1.2.3` titles or `python_v1.2.3` tags. There is no PyPI badge appended in this script (only `format_release_notes.py` adds one). +- `csharp-ai-driven-development-pipeline-template`: `scripts/create-github-release.mjs:67-68` sets `tag_name: tag, name: \`v${version}\``. The script does catch `already exists` errors (better than the local C# script before this PR), but it has no `--tag-prefix` / `--language` / `--package-id` arguments, no NuGet badge, and the workflow has no NuGet propagation verification step. + +The upstream template-issue cross-links are listed under "Upstream Follow-Up" below. + +## Verification + +Test counts after the changes: + +- JavaScript: `npm test` — 160 pass (includes the 11 new release-format helper tests). +- Rust: `node --test rust/scripts/*.test.mjs` — 12 pass (includes the 4 new helper tests). +- C#: `node --test csharp/scripts/*.test.mjs` — 5 pass (all from this PR). +- Python: `pytest tests/test_create_github_release_helpers.py` — 4 pass. + +Targeted reproduction-style assertions (from the new tests): + +- `normalizeReleaseVersionForBadge('js-v0.3.5') === '0.3.5'` — fixes the embedded `js-v` in the 0.3.5 badge. +- `buildNpmVersionBadge('lino-objects-codec', 'js-v0.3.5')` does not contain `js-v` and links to `/v/0.3.5` — fixes the broken `/v/js-v0.3.5` link. +- `buildReleaseTitle('JavaScript', 'js-v0.3.5') === '[JavaScript] 0.3.5'` — fixes the `name: tag` bug. +- `buildReleaseTag('js_v', '0.3.5') === 'js_v0.3.5'` — confirms the new tag prefix convention. + +## Remaining Operator Configuration + +The same registry trust settings called out in issue 31 still apply; this PR is purely about workflow honesty and release format. No registry credentials or trusted-publisher configuration is changed. + +## Upstream Follow-Up + +Issues filed in the four template repositories tracking the shared bugs: + +- `js-ai-driven-development-pipeline-template` — release name set to tag value: https://github.com/link-foundation/js-ai-driven-development-pipeline-template/issues/52 +- `rust-ai-driven-development-pipeline-template` — release name carries `tag_prefix`, missing `[Rust]` prefix: https://github.com/link-foundation/rust-ai-driven-development-pipeline-template/issues/44 +- `python-ai-driven-development-pipeline-template` — release title is bare `v${version}`, no `--language` / `--tag-prefix` arguments, no PyPI badge: https://github.com/link-foundation/python-ai-driven-development-pipeline-template/issues/6 +- `csharp-ai-driven-development-pipeline-template` — release name set to `v${version}`, no NuGet badge, workflow has no NuGet propagation verification: https://github.com/link-foundation/csharp-ai-driven-development-pipeline-template/issues/5 diff --git a/docs/case-studies/issue-33/run-25288053638-js.log b/docs/case-studies/issue-33/run-25288053638-js.log new file mode 100644 index 0000000..c8e61e6 --- /dev/null +++ b/docs/case-studies/issue-33/run-25288053638-js.log @@ -0,0 +1,4391 @@ +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7792060Z Current runner version: '2.334.0' +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7816741Z ##[group]Runner Image Provisioner +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7817538Z Hosted Compute Agent +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7818105Z Version: 20260213.493 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7818762Z Commit: 5c115507f6dd24b8de37d8bbe0bb4509d0cc0fa3 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7819464Z Build Date: 2026-02-13T00:28:41Z +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7820186Z Worker ID: {cb52ea1f-45a7-477e-8256-ce4bc5bfba8e} +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7821092Z Azure Region: westus +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7821610Z ##[endgroup] +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7823075Z ##[group]Operating System +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7823660Z Ubuntu +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7824167Z 24.04.4 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7824584Z LTS +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7825106Z ##[endgroup] +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7825595Z ##[group]Runner Image +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7826085Z Image: ubuntu-24.04 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7826678Z Version: 20260413.86.1 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7827871Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20260413.86/images/ubuntu/Ubuntu2404-Readme.md +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7829358Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20260413.86 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7830242Z ##[endgroup] +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7833239Z ##[group]GITHUB_TOKEN Permissions +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7835659Z Actions: write +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7836366Z ArtifactMetadata: write +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7836899Z Attestations: write +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7837401Z Checks: write +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7837923Z Contents: write +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7838465Z Deployments: write +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7838944Z Discussions: write +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7839489Z Issues: write +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7839940Z Metadata: read +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7840426Z Models: read +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7841174Z Packages: write +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7841701Z Pages: write +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7842289Z PullRequests: write +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7842836Z RepositoryProjects: write +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7843413Z SecurityEvents: write +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7843901Z Statuses: write +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7844463Z VulnerabilityAlerts: read +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7845066Z ##[endgroup] +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7847345Z Secret source: Actions +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.7848101Z Prepare workflow directory +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.8169095Z Prepare all required actions +Detect Changes UNKNOWN STEP 2026-05-03T19:06:40.8206167Z Getting action download info +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.2573989Z Download action repository 'actions/checkout@v4' (SHA:34e114876b0b11c390a56381ad16ebd13914f8d5) +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.4670727Z Complete job name: Detect Changes +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.5468092Z ##[group]Run actions/checkout@v4 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.5468933Z with: +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.5469317Z fetch-depth: 0 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.5469796Z repository: link-foundation/lino-objects-codec +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.5470570Z token: *** +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.5471168Z ssh-strict: true +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.5471574Z ssh-user: git +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.5471970Z persist-credentials: true +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.5472420Z clean: true +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.5472819Z sparse-checkout-cone-mode: true +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.5473329Z fetch-tags: false +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.5473768Z show-progress: true +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.5474181Z lfs: false +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.5474543Z submodules: false +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.5474972Z set-safe-directory: true +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.5475667Z ##[endgroup] +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6582815Z Syncing repository: link-foundation/lino-objects-codec +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6584576Z ##[group]Getting Git version info +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6585422Z Working directory is '/home/runner/work/lino-objects-codec/lino-objects-codec' +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6586523Z [command]/usr/bin/git version +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6620357Z git version 2.53.0 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6647035Z ##[endgroup] +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6670625Z Temporarily overriding HOME='/home/runner/work/_temp/6b9b2056-1551-45a8-bb69-f4e2e3f96d47' before making global git config changes +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6673060Z Adding repository directory to the temporary git global config as a safe directory +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6676159Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/lino-objects-codec/lino-objects-codec +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6708866Z Deleting the contents of '/home/runner/work/lino-objects-codec/lino-objects-codec' +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6712754Z ##[group]Initializing the repository +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6716892Z [command]/usr/bin/git init /home/runner/work/lino-objects-codec/lino-objects-codec +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6815954Z hint: Using 'master' as the name for the initial branch. This default branch name +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6817629Z hint: will change to "main" in Git 3.0. To configure the initial branch name +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6818604Z hint: to use in all of your new repositories, which will suppress this warning, +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6819329Z hint: call: +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6819686Z hint: +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6820171Z hint: git config --global init.defaultBranch +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6820739Z hint: +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6821686Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6822914Z hint: 'development'. The just-created branch can be renamed via this command: +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6823739Z hint: +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6824122Z hint: git branch -m +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6824558Z hint: +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6825132Z hint: Disable this message with "git config set advice.defaultBranchName false" +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6826166Z Initialized empty Git repository in /home/runner/work/lino-objects-codec/lino-objects-codec/.git/ +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6828849Z [command]/usr/bin/git remote add origin https://github.com/link-foundation/lino-objects-codec +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6859245Z ##[endgroup] +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6859975Z ##[group]Disabling automatic garbage collection +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6863365Z [command]/usr/bin/git config --local gc.auto 0 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6891786Z ##[endgroup] +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6892492Z ##[group]Setting up auth +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6898967Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.6928211Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.7225013Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.7254541Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.7469278Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.7501738Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.7741563Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic *** +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.7776260Z ##[endgroup] +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.7777117Z ##[group]Fetching the repository +Detect Changes UNKNOWN STEP 2026-05-03T19:06:41.7785757Z [command]/usr/bin/git -c protocol.version=2 fetch --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7579361Z From https://github.com/link-foundation/lino-objects-codec +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7582593Z * [new branch] issue-1-843d779c4cdb -> origin/issue-1-843d779c4cdb +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7585382Z * [new branch] issue-11-c74c0836aeba -> origin/issue-11-c74c0836aeba +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7587974Z * [new branch] issue-15-b28422959bc5 -> origin/issue-15-b28422959bc5 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7590805Z * [new branch] issue-17-ace5a094a724 -> origin/issue-17-ace5a094a724 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7593600Z * [new branch] issue-19-d88ab983ff7d -> origin/issue-19-d88ab983ff7d +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7595553Z * [new branch] issue-20-d21ab54e8ff1 -> origin/issue-20-d21ab54e8ff1 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7597232Z * [new branch] issue-22-e5ea3b44ef6b -> origin/issue-22-e5ea3b44ef6b +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7598940Z * [new branch] issue-25-76b0e5ea19d6 -> origin/issue-25-76b0e5ea19d6 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7601361Z * [new branch] issue-27-eb86cc75f92a -> origin/issue-27-eb86cc75f92a +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7603461Z * [new branch] issue-29-7f70f0d87db9 -> origin/issue-29-7f70f0d87db9 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7604940Z * [new branch] issue-3-397c5eeac29f -> origin/issue-3-397c5eeac29f +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7606359Z * [new branch] issue-31-bd2874f2d076 -> origin/issue-31-bd2874f2d076 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7607790Z * [new branch] issue-5-9641b6fb00d3 -> origin/issue-5-9641b6fb00d3 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7609349Z * [new branch] issue-7-7a98520cd689 -> origin/issue-7-7a98520cd689 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7611232Z * [new branch] issue-8-8f8d9acce5f1 -> origin/issue-8-8f8d9acce5f1 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7612929Z * [new branch] issue-9-bef9e95e65ef -> origin/issue-9-bef9e95e65ef +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7614363Z * [new branch] main -> origin/main +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7615623Z * [new tag] csharp-v0.2.0 -> csharp-v0.2.0 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7616897Z * [new tag] rust-v0.2.0 -> rust-v0.2.0 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7618072Z * [new tag] v0.1.1 -> v0.1.1 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7619219Z * [new tag] v0.3.0 -> v0.3.0 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7620352Z * [new tag] v0.3.1 -> v0.3.1 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7621790Z * [new tag] v0.3.2 -> v0.3.2 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7623052Z * [new tag] v0.3.3 -> v0.3.3 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7645034Z [command]/usr/bin/git branch --list --remote origin/main +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7670014Z origin/main +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7679532Z [command]/usr/bin/git rev-parse refs/remotes/origin/main +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7700776Z e1303e202fc96b20cae6adfef52ff132d36f7366 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7708004Z ##[endgroup] +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7709781Z ##[group]Determining the checkout info +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7712489Z ##[endgroup] +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7714009Z [command]/usr/bin/git sparse-checkout disable +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7754306Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7784315Z ##[group]Checking out the ref +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.7788845Z [command]/usr/bin/git checkout --progress --force -B main refs/remotes/origin/main +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.8007910Z Switched to a new branch 'main' +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.8010213Z branch 'main' set up to track 'origin/main'. +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.8019009Z ##[endgroup] +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.8056250Z [command]/usr/bin/git log -1 --format=%H +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.8079661Z e1303e202fc96b20cae6adfef52ff132d36f7366 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.8305070Z ##[group]Run node scripts/detect-code-changes.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.8306707Z ^[[36;1mnode scripts/detect-code-changes.mjs^[[0m +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.8332929Z shell: /usr/bin/bash -e {0} +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.8334002Z env: +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.8334827Z GITHUB_EVENT_NAME: push +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.8335826Z GITHUB_BASE_SHA: +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.8336730Z GITHUB_HEAD_SHA: +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.8337612Z ##[endgroup] +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9232074Z Detecting file changes for CI/CD... +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9233513Z +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9237741Z Comparing HEAD^ to HEAD +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9284001Z Changed files: +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9285338Z .gitattributes +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9286712Z .github/workflows/python.yml +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9288323Z .github/workflows/rust.yml +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9289914Z docs/case-studies/issue-31/README.md +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9292061Z docs/case-studies/issue-31/run-25286485825-rust.json +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9294412Z docs/case-studies/issue-31/run-25286485825-rust.log +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9296504Z docs/case-studies/issue-31/run-25286485829-python.json +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9298073Z docs/case-studies/issue-31/run-25286485829-python.log +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9300276Z docs/case-studies/issue-31/run-25286485840-js.json +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9302644Z docs/case-studies/issue-31/run-25286485840-js.log +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9304655Z experiments/issue-31/js-template-issue-48.md +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9307225Z experiments/issue-31/test-rust-release-helpers.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9309299Z js/.changeset/issue-31-npm-oidc-setup.md +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9311132Z js/scripts/npm-version-helpers.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9312395Z js/scripts/publish-to-npm.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9313500Z js/scripts/setup-npm.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9314559Z js/tests/test_npm_version_helpers.test.js +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9315834Z rust/changelog.d/20260503_issue_31_ci_cd.md +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9317194Z rust/scripts/check-release-needed.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9318581Z rust/scripts/crates-release-helpers.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9320073Z rust/scripts/crates-release-helpers.test.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9321971Z rust/scripts/create-github-release.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9323469Z rust/scripts/get-bump-type.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9324605Z +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9325254Z mjs-changed=true +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9326510Z js-changed=true +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9327750Z package-changed=false +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9329043Z docs-changed=true +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9330365Z workflow-changed=true +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9331380Z +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9331982Z Files considered as code changes: +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9333539Z .gitattributes +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9334427Z .github/workflows/python.yml +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9335462Z .github/workflows/rust.yml +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9336507Z js/scripts/npm-version-helpers.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9337659Z js/scripts/publish-to-npm.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9338702Z js/scripts/setup-npm.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9339765Z js/tests/test_npm_version_helpers.test.js +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9341303Z rust/scripts/check-release-needed.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9342584Z rust/scripts/crates-release-helpers.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9343897Z rust/scripts/crates-release-helpers.test.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9345238Z rust/scripts/create-github-release.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9346409Z rust/scripts/get-bump-type.mjs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9347100Z +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9347463Z any-code-changed=true +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9348011Z +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9348378Z Change detection completed. +Detect Changes UNKNOWN STEP 2026-05-03T19:06:42.9583883Z Post job cleanup. +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.0568173Z [command]/usr/bin/git version +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.0605319Z git version 2.53.0 +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.0650566Z Temporarily overriding HOME='/home/runner/work/_temp/fb626e5c-8f50-4104-a2cd-7ba7e670e80e' before making global git config changes +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.0654435Z Adding repository directory to the temporary git global config as a safe directory +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.0664580Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/lino-objects-codec/lino-objects-codec +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.0698371Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.0730671Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.0949252Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.0968699Z http.https://github.com/.extraheader +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.0981721Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.1012679Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.1226794Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.1257250Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.1612995Z Evaluate and set job outputs +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.1625195Z Set output 'mjs-changed' +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.1628044Z Set output 'js-changed' +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.1629358Z Set output 'package-changed' +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.1630641Z Set output 'docs-changed' +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.1632724Z Set output 'workflow-changed' +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.1634021Z Set output 'any-code-changed' +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.1635876Z Cleaning up orphan processes +Detect Changes UNKNOWN STEP 2026-05-03T19:06:43.2124709Z ##[warning]Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0894662Z Current runner version: '2.334.0' +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0921222Z ##[group]Runner Image Provisioner +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0921977Z Hosted Compute Agent +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0922496Z Version: 20260213.493 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0923159Z Commit: 5c115507f6dd24b8de37d8bbe0bb4509d0cc0fa3 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0923930Z Build Date: 2026-02-13T00:28:41Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0924548Z Worker ID: {390aa722-fc7d-461c-bb21-31b193e2aca6} +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0925316Z Azure Region: northcentralus +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0925866Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0927335Z ##[group]Operating System +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0928273Z Ubuntu +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0928789Z 24.04.4 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0929247Z LTS +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0929710Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0930230Z ##[group]Runner Image +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0930745Z Image: ubuntu-24.04 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0931298Z Version: 20260413.86.1 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0932539Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20260413.86/images/ubuntu/Ubuntu2404-Readme.md +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0934042Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20260413.86 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0934911Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0937850Z ##[group]GITHUB_TOKEN Permissions +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0940439Z Actions: write +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0940997Z ArtifactMetadata: write +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0941500Z Attestations: write +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0942365Z Checks: write +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0942845Z Contents: write +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0943657Z Deployments: write +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0944318Z Discussions: write +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0944846Z Issues: write +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0945320Z Metadata: read +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0945833Z Models: read +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0946323Z Packages: write +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0946785Z Pages: write +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0947805Z PullRequests: write +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0948407Z RepositoryProjects: write +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0948943Z SecurityEvents: write +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0949548Z Statuses: write +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0950048Z VulnerabilityAlerts: read +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0950616Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0952719Z Secret source: Actions +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.0953755Z Prepare workflow directory +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.1316323Z Prepare all required actions +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.1355130Z Getting action download info +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.4733404Z Download action repository 'actions/checkout@v4' (SHA:34e114876b0b11c390a56381ad16ebd13914f8d5) +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.6201680Z Download action repository 'actions/setup-node@v4' (SHA:49933ea5288caeca8642d1e84afbd3f7d6820020) +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.8177027Z Complete job name: Lint and Format Check +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.8926058Z ##[group]Run actions/checkout@v4 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.8926949Z with: +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.8927653Z repository: link-foundation/lino-objects-codec +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.8928472Z token: *** +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.8928851Z ssh-strict: true +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.8929243Z ssh-user: git +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.8929644Z persist-credentials: true +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.8930080Z clean: true +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.8930499Z sparse-checkout-cone-mode: true +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.8930970Z fetch-depth: 1 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.8931387Z fetch-tags: false +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.8931799Z show-progress: true +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.8932199Z lfs: false +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.8932563Z submodules: false +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.8932954Z set-safe-directory: true +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:48.8933656Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0057119Z Syncing repository: link-foundation/lino-objects-codec +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0059607Z ##[group]Getting Git version info +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0060503Z Working directory is '/home/runner/work/lino-objects-codec/lino-objects-codec' +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0061561Z [command]/usr/bin/git version +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0105300Z git version 2.53.0 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0132088Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0147826Z Temporarily overriding HOME='/home/runner/work/_temp/0903a2cd-9b8b-4314-885b-94e4ef7c7eda' before making global git config changes +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0161593Z Adding repository directory to the temporary git global config as a safe directory +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0163521Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/lino-objects-codec/lino-objects-codec +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0194437Z Deleting the contents of '/home/runner/work/lino-objects-codec/lino-objects-codec' +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0198196Z ##[group]Initializing the repository +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0202288Z [command]/usr/bin/git init /home/runner/work/lino-objects-codec/lino-objects-codec +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0285070Z hint: Using 'master' as the name for the initial branch. This default branch name +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0286894Z hint: will change to "main" in Git 3.0. To configure the initial branch name +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0288834Z hint: to use in all of your new repositories, which will suppress this warning, +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0290204Z hint: call: +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0290942Z hint: +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0291779Z hint: git config --global init.defaultBranch +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0292850Z hint: +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0293944Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0295840Z hint: 'development'. The just-created branch can be renamed via this command: +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0297262Z hint: +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0298251Z hint: git branch -m +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0299202Z hint: +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0300263Z hint: Disable this message with "git config set advice.defaultBranchName false" +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0302216Z Initialized empty Git repository in /home/runner/work/lino-objects-codec/lino-objects-codec/.git/ +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0305237Z [command]/usr/bin/git remote add origin https://github.com/link-foundation/lino-objects-codec +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0333814Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0334990Z ##[group]Disabling automatic garbage collection +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0339187Z [command]/usr/bin/git config --local gc.auto 0 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0369663Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0370852Z ##[group]Setting up auth +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0377770Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0410850Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0716611Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0749029Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.0981187Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.1017354Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.1290233Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic *** +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.1335055Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.1335884Z ##[group]Fetching the repository +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.1348615Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +e1303e202fc96b20cae6adfef52ff132d36f7366:refs/remotes/origin/main +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6050035Z From https://github.com/link-foundation/lino-objects-codec +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6051355Z * [new ref] e1303e202fc96b20cae6adfef52ff132d36f7366 -> origin/main +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6088574Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6089976Z ##[group]Determining the checkout info +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6091541Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6092389Z [command]/usr/bin/git sparse-checkout disable +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6129909Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6158746Z ##[group]Checking out the ref +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6161866Z [command]/usr/bin/git checkout --progress --force -B main refs/remotes/origin/main +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6379651Z Switched to a new branch 'main' +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6382260Z branch 'main' set up to track 'origin/main'. +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6390196Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6428779Z [command]/usr/bin/git log -1 --format=%H +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6451697Z e1303e202fc96b20cae6adfef52ff132d36f7366 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6780056Z ##[group]Run actions/setup-node@v4 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6781110Z with: +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6781795Z node-version: 22 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6782589Z always-auth: false +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6783401Z check-latest: false +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6784491Z token: *** +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.6785213Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.8688304Z Found in cache @ /opt/hostedtoolcache/node/22.22.2/x64 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:49.8692990Z ##[group]Environment details +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:53.2658106Z node: v22.22.2 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:53.2658711Z npm: 10.9.7 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:53.2659182Z yarn: 1.22.22 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:53.2660949Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:53.2788250Z ##[group]Run npm install +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:53.2788658Z ^[[36;1mnpm install^[[0m +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:53.2824955Z shell: /usr/bin/bash -e {0} +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:53.2825294Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:57.9534915Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:57.9543012Z > lino-objects-codec@0.3.4 prepare +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:57.9543412Z > husky || true +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:57.9543556Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.0019803Z .git can't be found +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.0020733Z added 321 packages, and audited 322 packages in 5s +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.0021341Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.0021761Z 74 packages are looking for funding +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.0022452Z run `npm fund` for details +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.0081708Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.0082459Z 6 vulnerabilities (3 moderate, 3 high) +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.0083286Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.0083841Z To address all issues, run: +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.0084595Z npm audit fix +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.0085088Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.0085540Z Run `npm audit` for details. +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.0624852Z ##[group]Run npm run lint +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.0625158Z ^[[36;1mnpm run lint^[[0m +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.0649360Z shell: /usr/bin/bash -e {0} +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.0649622Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.1704918Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.1705636Z > lino-objects-codec@0.3.4 lint +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.1706305Z > eslint . +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:58.1706609Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.6552748Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.6556809Z /home/runner/work/lino-objects-codec/lino-objects-codec/js/examples/basic_usage.js +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.6588400Z ##[warning] 7:1 warning Function 'main' has too many statements (71). Maximum allowed is 60 max-statements +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.6596857Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.6597610Z /home/runner/work/lino-objects-codec/lino-objects-codec/js/src/codec.js +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.6599127Z ##[warning] 148:3 warning Method '_encodeValue' has a complexity of 23. Maximum allowed is 15 complexity +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.6601049Z ##[warning] 273:3 warning Method '_decodeLink' has a complexity of 55. Maximum allowed is 15 complexity +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.6602725Z ##[warning] 273:14 warning Method '_decodeLink' has too many statements (95). Maximum allowed is 60 max-statements +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.6603655Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.6604003Z /home/runner/work/lino-objects-codec/lino-objects-codec/js/src/format.js +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.6605139Z ##[warning] 449:8 warning Function 'parseIndented' has a complexity of 16. Maximum allowed is 15 complexity +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.6606056Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.6606521Z ✖ 5 problems (0 errors, 5 warnings) +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.6606731Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.7128895Z ##[group]Run npm run format:check +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.7129209Z ^[[36;1mnpm run format:check^[[0m +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.7151590Z shell: /usr/bin/bash -e {0} +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.7151869Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.8163423Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.8164240Z > lino-objects-codec@0.3.4 format:check +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.8164980Z > prettier --check . +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.8165246Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:06:59.9052076Z Checking formatting... +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:00.7001053Z All matched files use Prettier code style! +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:00.7400214Z ##[group]Run npm run check:duplication +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:00.7400736Z ^[[36;1mnpm run check:duplication^[[0m +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:00.7422360Z shell: /usr/bin/bash -e {0} +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:00.7422601Z ##[endgroup] +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:00.8403485Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:00.8404027Z > lino-objects-codec@0.3.4 check:duplication +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:00.8404637Z > jscpd . +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:00.8404779Z +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.2413007Z Detection time:: 0.138ms +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.2615143Z Post job cleanup. +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.4348533Z Post job cleanup. +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.5347793Z [command]/usr/bin/git version +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.5387490Z git version 2.53.0 +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.5432427Z Temporarily overriding HOME='/home/runner/work/_temp/25782aad-30ef-4926-ab9d-b0304e0a4549' before making global git config changes +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.5433681Z Adding repository directory to the temporary git global config as a safe directory +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.5445643Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/lino-objects-codec/lino-objects-codec +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.5480634Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.5515589Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.5740810Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.5761737Z http.https://github.com/.extraheader +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.5780976Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.5808680Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.6030478Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.6061700Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.6394781Z Cleaning up orphan processes +Lint and Format Check UNKNOWN STEP 2026-05-03T19:07:01.6688188Z ##[warning]Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1609050Z Current runner version: '2.334.0' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1622160Z ##[group]Runner Image Provisioner +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1622600Z Hosted Compute Agent +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1622910Z Version: 20260422.526 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1623260Z Commit: e1a9e573f4d0838b3a7c1b07401aeb29ed3635a9 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1623650Z Build Date: 2026-04-22T09:31:31Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1624030Z Worker ID: {aa54b6b2-01a0-4f7d-8de6-8f907a34c94b} +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1624420Z Azure Region: westus +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1624720Z ##[endgroup] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1625480Z ##[group]Operating System +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1625810Z macOS +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1626060Z 15.7.4 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1626330Z 24G517 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1626590Z ##[endgroup] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1626870Z ##[group]Runner Image +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1627170Z Image: macos-15-arm64 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1627460Z Version: 20260427.0018.1 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1628140Z Included Software: https://github.com/actions/runner-images/blob/macos-15-arm64/20260427.0018/images/macos/macos-15-arm64-Readme.md +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1629020Z Image Release: https://github.com/actions/runner-images/releases/tag/macos-15-arm64%2F20260427.0018 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1629560Z ##[endgroup] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1631210Z ##[group]GITHUB_TOKEN Permissions +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1632150Z Actions: write +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1632440Z ArtifactMetadata: write +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1632740Z Attestations: write +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1633020Z Checks: write +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1633290Z Contents: write +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1633560Z Deployments: write +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1633840Z Discussions: write +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1634120Z Issues: write +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1634390Z Metadata: read +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1634650Z Models: read +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1634920Z Packages: write +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1635190Z Pages: write +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1635490Z PullRequests: write +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1635790Z RepositoryProjects: write +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1636100Z SecurityEvents: write +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1636390Z Statuses: write +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1636670Z VulnerabilityAlerts: read +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1636990Z ##[endgroup] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1638120Z Secret source: Actions +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1638490Z Prepare workflow directory +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1823180Z Prepare all required actions +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.1847120Z Getting action download info +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.5623040Z Download action repository 'actions/checkout@v4' (SHA:34e114876b0b11c390a56381ad16ebd13914f8d5) +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:48.8723450Z Download action repository 'actions/setup-node@v4' (SHA:49933ea5288caeca8642d1e84afbd3f7d6820020) +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.0820060Z Complete job name: Test (Node.js on macos-latest) +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.1242430Z ##[group]Run actions/checkout@v4 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.1242940Z with: +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.1243260Z repository: link-foundation/lino-objects-codec +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.1243840Z token: *** +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.1244130Z ssh-strict: true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.1244420Z ssh-user: git +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.1244710Z persist-credentials: true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.1245010Z clean: true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.1245310Z sparse-checkout-cone-mode: true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.1245640Z fetch-depth: 1 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.1245910Z fetch-tags: false +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.1246190Z show-progress: true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.1246470Z lfs: false +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.1246730Z submodules: false +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.1247000Z set-safe-directory: true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.1247560Z ##[endgroup] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.3926180Z Syncing repository: link-foundation/lino-objects-codec +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.3927440Z ##[group]Getting Git version info +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.3928030Z Working directory is '/Users/runner/work/lino-objects-codec/lino-objects-codec' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.3928800Z [command]/opt/homebrew/bin/git version +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4456470Z git version 2.54.0 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4541720Z ##[endgroup] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4546280Z Copying '/Users/runner/.gitconfig' to '/Users/runner/work/_temp/0f121ea9-4322-49e2-b2ca-047dfd2e6cdc/.gitconfig' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4547400Z Temporarily overriding HOME='/Users/runner/work/_temp/0f121ea9-4322-49e2-b2ca-047dfd2e6cdc' before making global git config changes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4548780Z Adding repository directory to the temporary git global config as a safe directory +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4549820Z [command]/opt/homebrew/bin/git config --global --add safe.directory /Users/runner/work/lino-objects-codec/lino-objects-codec +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4601530Z Deleting the contents of '/Users/runner/work/lino-objects-codec/lino-objects-codec' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4603730Z ##[group]Initializing the repository +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4607790Z [command]/opt/homebrew/bin/git init /Users/runner/work/lino-objects-codec/lino-objects-codec +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4767340Z hint: Using 'master' as the name for the initial branch. This default branch name +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4768330Z hint: will change to "main" in Git 3.0. To configure the initial branch name +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4769000Z hint: to use in all of your new repositories, which will suppress this warning, +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4769500Z hint: call: +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4769790Z hint: +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4770160Z hint: git config --global init.defaultBranch +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4770560Z hint: +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4770950Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4771570Z hint: 'development'. The just-created branch can be renamed via this command: +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4772050Z hint: +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4772330Z hint: git branch -m +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4772640Z hint: +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4773080Z hint: Disable this message with "git config set advice.defaultBranchName false" +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4773820Z Initialized empty Git repository in /Users/runner/work/lino-objects-codec/lino-objects-codec/.git/ +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4775450Z [command]/opt/homebrew/bin/git remote add origin https://github.com/link-foundation/lino-objects-codec +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4835390Z ##[endgroup] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4837100Z ##[group]Disabling automatic garbage collection +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4837760Z [command]/opt/homebrew/bin/git config --local gc.auto 0 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4889080Z ##[endgroup] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4889690Z ##[group]Setting up auth +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4893870Z [command]/opt/homebrew/bin/git config --local --name-only --get-regexp core\.sshCommand +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.4945450Z [command]/opt/homebrew/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.5909870Z [command]/opt/homebrew/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.5969270Z [command]/opt/homebrew/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.6568210Z [command]/opt/homebrew/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.6619210Z [command]/opt/homebrew/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.7219760Z [command]/opt/homebrew/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic *** +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.7272660Z ##[endgroup] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.7273300Z ##[group]Fetching the repository +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:49.7277920Z [command]/opt/homebrew/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +e1303e202fc96b20cae6adfef52ff132d36f7366:refs/remotes/origin/main +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.6276560Z From https://github.com/link-foundation/lino-objects-codec +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.6360580Z * [new ref] e1303e202fc96b20cae6adfef52ff132d36f7366 -> origin/main +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.6391480Z ##[endgroup] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.6392190Z ##[group]Determining the checkout info +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.6392920Z ##[endgroup] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.6394570Z [command]/opt/homebrew/bin/git sparse-checkout disable +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.6459180Z [command]/opt/homebrew/bin/git config --local --unset-all extensions.worktreeConfig +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.6508580Z ##[group]Checking out the ref +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.6510120Z [command]/opt/homebrew/bin/git checkout --progress --force -B main refs/remotes/origin/main +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.7359470Z Switched to a new branch 'main' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.7461270Z branch 'main' set up to track 'origin/main'. +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.7758180Z ##[endgroup] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.8015020Z [command]/opt/homebrew/bin/git log -1 --format=%H +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.8036880Z e1303e202fc96b20cae6adfef52ff132d36f7366 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.8379950Z ##[group]Run actions/setup-node@v4 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.8380420Z with: +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.8380720Z node-version: 22 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.8381030Z always-auth: false +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.8382130Z check-latest: false +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.8382800Z token: *** +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.8383130Z ##[endgroup] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.9734090Z Found in cache @ /Users/runner/hostedtoolcache/node/22.22.2/arm64 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:50.9738350Z ##[group]Environment details +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:51.4653250Z node: v22.22.2 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:51.4666510Z npm: 10.9.7 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:51.4667330Z yarn: 1.22.22 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:51.4669100Z ##[endgroup] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:51.4761590Z ##[group]Run npm install +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:51.4762380Z ^[[36;1mnpm install^[[0m +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:51.4803080Z shell: /bin/bash -e {0} +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:51.4803830Z ##[endgroup] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:53.9942380Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.0049690Z > lino-objects-codec@0.3.4 prepare +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.0151390Z > husky || true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.0252480Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.0956970Z .git can't be found +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.1059090Z added 321 packages, and audited 322 packages in 3s +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.1149110Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.1151350Z 74 packages are looking for funding +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.1158580Z run `npm fund` for details +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.1164560Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.1179390Z 6 vulnerabilities (3 moderate, 3 high) +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.1192310Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.1193280Z To address all issues, run: +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.1194700Z npm audit fix +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.1295690Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.1404050Z Run `npm audit` for details. +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.2087190Z ##[group]Run npm test +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.2087490Z ^[[36;1mnpm test^[[0m +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.2129110Z shell: /bin/bash -e {0} +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.2146110Z ##[endgroup] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.3741720Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.3742110Z > lino-objects-codec@0.3.4 test +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.3742530Z > node --test tests/*.test.js +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.3742660Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.4217500Z TAP version 13 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.4708560Z # Subtest: encode null +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.4827180Z ok 1 - encode null +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.4928950Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5030250Z duration_ms: 0.887042 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5130680Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5222970Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5348260Z # Subtest: decode null +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5505030Z ok 2 - decode null +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5524830Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5574850Z duration_ms: 1.17575 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5586020Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5586770Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5587100Z # Subtest: roundtrip null +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5587540Z ok 3 - roundtrip null +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5587820Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5588180Z duration_ms: 0.18125 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5588450Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5588690Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5589070Z # Subtest: encode undefined +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5589380Z ok 4 - encode undefined +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5589630Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5589970Z duration_ms: 0.120042 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5590280Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5590520Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5590790Z # Subtest: decode undefined +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5591110Z ok 5 - decode undefined +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5591360Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5591610Z duration_ms: 0.197541 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5591870Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5592100Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5592420Z # Subtest: roundtrip undefined +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5593280Z ok 6 - roundtrip undefined +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5593650Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5593910Z duration_ms: 0.54525 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5594160Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5594420Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5594670Z # Subtest: encode true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5594960Z ok 7 - encode true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5595260Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5595550Z duration_ms: 0.144667 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5595810Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5596050Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5596300Z # Subtest: encode false +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5596580Z ok 8 - encode false +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5596840Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5597070Z duration_ms: 0.059959 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5597320Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5597570Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5597810Z # Subtest: decode true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5598100Z ok 9 - decode true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5598350Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5598580Z duration_ms: 0.436292 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5598840Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5599080Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5599400Z # Subtest: decode false +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5599690Z ok 10 - decode false +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5599960Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5600190Z duration_ms: 0.354084 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5600460Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5600690Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5600950Z # Subtest: roundtrip bool +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5601310Z ok 11 - roundtrip bool +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5601560Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5601800Z duration_ms: 0.186334 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5602190Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5602510Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5602760Z # Subtest: encode zero +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5603040Z ok 12 - encode zero +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5603290Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5603520Z duration_ms: 0.04825 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5603780Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5604010Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5604470Z # Subtest: encode positive int +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5604870Z ok 13 - encode positive int +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5605190Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5605500Z duration_ms: 0.040667 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5605790Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5606020Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5606320Z # Subtest: encode negative int +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5606650Z ok 14 - encode negative int +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5607380Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5607650Z duration_ms: 0.044 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5607920Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5608150Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5608400Z # Subtest: decode int +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5608680Z ok 15 - decode int +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5608930Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5609160Z duration_ms: 0.431708 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5609420Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5609670Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5609920Z # Subtest: roundtrip int +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5610200Z ok 16 - roundtrip int +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5610470Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5610710Z duration_ms: 0.236125 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5610970Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5611300Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5611560Z # Subtest: encode float +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5611840Z ok 17 - encode float +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5612100Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5612340Z duration_ms: 0.046625 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5612690Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5612940Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5613190Z # Subtest: decode float +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5613470Z ok 18 - decode float +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5613730Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5614000Z duration_ms: 0.072583 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5614300Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5614550Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5614850Z # Subtest: roundtrip float +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5615210Z ok 19 - roundtrip float +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5615480Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5615720Z duration_ms: 0.28225 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5615970Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5616200Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5616500Z # Subtest: float special values +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5616820Z ok 20 - float special values +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5617090Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5617330Z duration_ms: 0.0955 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5617590Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5617880Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5618190Z # Subtest: encode empty string +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5618710Z ok 21 - encode empty string +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5618970Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5619210Z duration_ms: 0.045833 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5619480Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5619720Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5620010Z # Subtest: encode simple string +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5620330Z ok 22 - encode simple string +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5620660Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5620920Z duration_ms: 0.052125 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5621210Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5621500Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5621770Z # Subtest: decode string +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5622060Z ok 23 - decode string +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5622390Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5622640Z duration_ms: 0.063292 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5622900Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5623150Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5623410Z # Subtest: roundtrip string +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5623710Z ok 24 - roundtrip string +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5624010Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5624290Z duration_ms: 0.645583 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5624560Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5624810Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5625070Z # Subtest: string with quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5625530Z ok 25 - string with quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5625860Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5626090Z duration_ms: 0.1385 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5626370Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5626610Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5626900Z # Subtest: self-referencing array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5627270Z ok 26 - self-referencing array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5627550Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5627770Z duration_ms: 2.144 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5628050Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5628290Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5628590Z # Subtest: array with self in middle +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5628970Z ok 27 - array with self in middle +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5629250Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5629490Z duration_ms: 0.264958 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5629770Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5630070Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5631420Z # Subtest: nested array with circular reference +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5633010Z ok 28 - nested array with circular reference +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5633370Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5633640Z duration_ms: 0.332416 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5633990Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5634290Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5634930Z # Subtest: self-referencing object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5635360Z ok 29 - self-referencing object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5635650Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5635910Z duration_ms: 0.267291 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5636190Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5636540Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5636900Z # Subtest: object with multiple self-references +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5637330Z ok 30 - object with multiple self-references +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5637650Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5637960Z duration_ms: 0.940916 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5638220Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5638480Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5638900Z # Subtest: nested object with circular reference +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5639370Z ok 31 - nested object with circular reference +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5639690Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5639950Z duration_ms: 0.291292 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5640210Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5640450Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5640900Z # Subtest: complex circular structure (tree with back-references) +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5641450Z ok 32 - complex circular structure (tree with back-references) +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5641800Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5642090Z duration_ms: 0.239083 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5642400Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5642690Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5643080Z # Subtest: shared object reference +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5643440Z ok 33 - shared object reference +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5643720Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5643970Z duration_ms: 0.153667 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5644230Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5644520Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5644900Z # Subtest: shared object reference - modification +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5645330Z ok 34 - shared object reference - modification +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5645640Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5645890Z duration_ms: 0.631458 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5646210Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5646770Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5647100Z # Subtest: multiple shared objects +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5647450Z ok 35 - multiple shared objects +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5647720Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5647980Z duration_ms: 0.480875 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5648230Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5648470Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5648780Z # Subtest: shared array reference +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5649130Z ok 36 - shared array reference +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5649400Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5649650Z duration_ms: 0.8835 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5649900Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5650130Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5650500Z # Subtest: circular and shared references combined +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5650940Z ok 37 - circular and shared references combined +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5651250Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5651490Z duration_ms: 0.353625 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5651760Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5652000Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5652330Z # Subtest: deeply nested circular structure +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5652750Z ok 38 - deeply nested circular structure +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5653050Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5653450Z duration_ms: 0.200792 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5653730Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5653970Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5654310Z # Subtest: array and object circular reference +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5654750Z ok 39 - array and object circular reference +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5655050Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5655330Z duration_ms: 0.70475 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5655600Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5655830Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5656290Z # Subtest: encoded format uses built-in references, not (ref X) marker +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5656870Z ok 40 - encoded format uses built-in references, not (ref X) marker +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5657230Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5657490Z duration_ms: 0.187417 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5657770Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5658010Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5658590Z # Subtest: decoder rejects legacy (ref X) marker as unknown type +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5659150Z ok 41 - decoder rejects legacy (ref X) marker as unknown type +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5701960Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5703670Z duration_ms: 0.272375 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5703950Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5704620Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5704910Z # Subtest: encode empty array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5705240Z ok 42 - encode empty array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5705490Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5705720Z duration_ms: 0.787833 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5705970Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5706200Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5706450Z # Subtest: decode empty array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5706750Z ok 43 - decode empty array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5707000Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5707220Z duration_ms: 1.183625 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5707480Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5707690Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5707980Z # Subtest: roundtrip empty array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5708290Z ok 44 - roundtrip empty array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5708570Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5708800Z duration_ms: 0.475084 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5709070Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5709300Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5709610Z # Subtest: encode array with basic types +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5710250Z ok 45 - encode array with basic types +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5710430Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5710560Z duration_ms: 0.178084 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5710710Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5710830Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5711050Z # Subtest: decode array with basic types +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5711320Z ok 46 - decode array with basic types +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5711490Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5711610Z duration_ms: 0.335625 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5711760Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5711900Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5712130Z # Subtest: roundtrip array with mixed types +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5712430Z ok 47 - roundtrip array with mixed types +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5712640Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5712780Z duration_ms: 1.36875 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5712930Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5713050Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5713230Z # Subtest: nested arrays +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5713720Z ok 48 - nested arrays +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5713950Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5714180Z duration_ms: 0.642833 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5714430Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5714650Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5714930Z # Subtest: encode empty object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5715230Z ok 49 - encode empty object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5715480Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5715700Z duration_ms: 0.063958 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5715950Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5716170Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5716450Z # Subtest: decode empty object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5716750Z ok 50 - decode empty object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5717000Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5717220Z duration_ms: 0.266375 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5717470Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5717680Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5717970Z # Subtest: roundtrip empty object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5718310Z ok 51 - roundtrip empty object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5718560Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5718790Z duration_ms: 0.322 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5719040Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5719260Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5719570Z # Subtest: encode object with basic types +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5719940Z ok 52 - encode object with basic types +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5720220Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5720440Z duration_ms: 0.17325 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5720680Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5720900Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5721410Z # Subtest: decode object with basic types +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5721790Z ok 53 - decode object with basic types +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5722060Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5722280Z duration_ms: 0.14225 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5722520Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5722750Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5723070Z # Subtest: roundtrip object with mixed types +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5723460Z ok 54 - roundtrip object with mixed types +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5723740Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5723960Z duration_ms: 0.49425 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5724210Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5724430Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5724670Z # Subtest: nested objects +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5724950Z ok 55 - nested objects +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5725190Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5725490Z duration_ms: 0.583833 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5725740Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5726130Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5726430Z # Subtest: mixed nested structures +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5726780Z ok 56 - mixed nested structures +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5727040Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5727260Z duration_ms: 0.363208 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5727510Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5727730Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5727980Z # Subtest: array of objects +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5728270Z ok 57 - array of objects +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5728510Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5728730Z duration_ms: 0.263 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5728980Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5729200Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5729490Z # Subtest: object with array values +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5729840Z ok 58 - object with array values +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5730100Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5730320Z duration_ms: 0.179625 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5730580Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5730800Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5731090Z # Subtest: deeply nested structure +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5731430Z ok 59 - deeply nested structure +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5731690Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5731920Z duration_ms: 0.20925 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5732160Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5732380Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5732710Z # Subtest: escapeReference - simple string +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5733090Z ok 60 - escapeReference - simple string +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5733370Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5733600Z duration_ms: 1.140584 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5733840Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5734070Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5734370Z # Subtest: escapeReference - numbers +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5734720Z ok 61 - escapeReference - numbers +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5734990Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5735290Z duration_ms: 0.16875 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5735540Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5735810Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5736120Z # Subtest: escapeReference - booleans +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5736690Z ok 62 - escapeReference - booleans +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5737000Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5737250Z duration_ms: 0.054708 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5737490Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5737720Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5738050Z # Subtest: escapeReference - string with spaces +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5738470Z ok 63 - escapeReference - string with spaces +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5738760Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5738990Z duration_ms: 0.081292 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5739240Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5739450Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5739820Z # Subtest: escapeReference - string with single quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5740270Z ok 64 - escapeReference - string with single quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5740580Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5740810Z duration_ms: 0.056625 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5741050Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5741270Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5741640Z # Subtest: escapeReference - string with double quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5742100Z ok 65 - escapeReference - string with double quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5742450Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5742680Z duration_ms: 0.051875 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5742960Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5743220Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5743570Z # Subtest: escapeReference - string with both quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5744020Z ok 66 - escapeReference - string with both quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5744320Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5744550Z duration_ms: 0.103958 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5744800Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5745020Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5745370Z # Subtest: escapeReference - string with parentheses +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5745810Z ok 67 - escapeReference - string with parentheses +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5746120Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5746340Z duration_ms: 0.04625 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5746590Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5746810Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5747140Z # Subtest: escapeReference - string with colon +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5747550Z ok 68 - escapeReference - string with colon +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5747830Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5748060Z duration_ms: 0.249125 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5748310Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5748530Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5749070Z # Subtest: escapeReference - string with newline +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5749530Z ok 69 - escapeReference - string with newline +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5749820Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5750050Z duration_ms: 0.291583 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5750300Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5750510Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5750830Z # Subtest: unescapeReference - simple string +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5751230Z ok 70 - unescapeReference - simple string +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5751510Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5751730Z duration_ms: 0.13725 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5752000Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5752280Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5752630Z # Subtest: unescapeReference - doubled double quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5753080Z ok 71 - unescapeReference - doubled double quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5753380Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5753600Z duration_ms: 0.042 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5753860Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5754080Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5754430Z # Subtest: unescapeReference - doubled single quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5754880Z ok 72 - unescapeReference - doubled single quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5755180Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5755410Z duration_ms: 0.036334 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5755660Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5755880Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5756210Z # Subtest: unescapeReference - null/undefined +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5756610Z ok 73 - unescapeReference - null/undefined +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5756900Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5757120Z duration_ms: 0.042416 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5757370Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5757590Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5757850Z # Subtest: jsonToLino - null +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5758150Z ok 74 - jsonToLino - null +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5758400Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5758620Z duration_ms: 0.061875 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5758860Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5759080Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5759370Z # Subtest: jsonToLino - undefined +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5759910Z ok 75 - jsonToLino - undefined +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5760170Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5762930Z duration_ms: 0.029833 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5763180Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5763320Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5763520Z # Subtest: jsonToLino - number +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5763720Z ok 76 - jsonToLino - number +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5763880Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5764010Z duration_ms: 0.033875 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5764160Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5764280Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5764460Z # Subtest: jsonToLino - boolean +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5764670Z ok 77 - jsonToLino - boolean +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5764830Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5764950Z duration_ms: 0.030417 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5765100Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5765220Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5765500Z # Subtest: jsonToLino - simple string +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5766040Z ok 78 - jsonToLino - simple string +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5766320Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5766560Z duration_ms: 0.03125 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5766810Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5767030Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5767340Z # Subtest: jsonToLino - string with spaces +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5767730Z ok 79 - jsonToLino - string with spaces +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5768010Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5768230Z duration_ms: 0.034333 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5768480Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5768710Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5769000Z # Subtest: jsonToLino - empty array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5769340Z ok 80 - jsonToLino - empty array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5769610Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5769830Z duration_ms: 0.029958 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5770080Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5770300Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5770600Z # Subtest: jsonToLino - array of numbers +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5770970Z ok 81 - jsonToLino - array of numbers +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5771240Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5771540Z duration_ms: 0.037792 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5771790Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5772010Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5772320Z # Subtest: jsonToLino - array of strings +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5772680Z ok 82 - jsonToLino - array of strings +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5772950Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5773500Z duration_ms: 0.037833 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5773790Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5774010Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5774300Z # Subtest: jsonToLino - nested array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5774650Z ok 83 - jsonToLino - nested array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5774920Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5775150Z duration_ms: 0.03475 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5775390Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5775610Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5775900Z # Subtest: jsonToLino - empty object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5776250Z ok 84 - jsonToLino - empty object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5776520Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5776740Z duration_ms: 0.029166 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5776990Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5777210Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5777510Z # Subtest: jsonToLino - simple object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5777860Z ok 85 - jsonToLino - simple object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5778130Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5778360Z duration_ms: 0.105667 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5778600Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5778820Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5779160Z # Subtest: jsonToLino - object with nested object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5779580Z ok 86 - jsonToLino - object with nested object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5779880Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5780100Z duration_ms: 0.038875 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5780350Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5780570Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5780870Z # Subtest: jsonToLino - object with array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5781320Z ok 87 - jsonToLino - object with array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5781620Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5799360Z duration_ms: 0.0355 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5799650Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5799890Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5800200Z # Subtest: linoToJson - null input +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5800550Z ok 88 - linoToJson - null input +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5800810Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5801040Z duration_ms: 0.053333 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5801290Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5801910Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5802200Z # Subtest: linoToJson - primitives +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5810230Z ok 89 - linoToJson - primitives +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5810580Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5810810Z duration_ms: 1.2445 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5811060Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5811290Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5811580Z # Subtest: linoToJson - simple string +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5811940Z ok 90 - linoToJson - simple string +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5812210Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5812440Z duration_ms: 0.130375 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5812690Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5812910Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5815890Z # Subtest: linoToJson - empty link +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5816230Z ok 91 - linoToJson - empty link +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5816580Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5816810Z duration_ms: 0.373541 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5817060Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5817280Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5817800Z # Subtest: linoToJson - array of numbers +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5818240Z ok 92 - linoToJson - array of numbers +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5818540Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5818780Z duration_ms: 0.116042 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5819040Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5819270Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5819570Z # Subtest: linoToJson - simple object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5819940Z ok 93 - linoToJson - simple object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5820210Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5820440Z duration_ms: 0.143625 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5820690Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5820910Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5821210Z # Subtest: linoToJson - nested object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5821560Z ok 94 - linoToJson - nested object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5821840Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5822060Z duration_ms: 0.404208 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5822310Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5822530Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5822860Z # Subtest: linoToJson - object with array value +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5823280Z ok 95 - linoToJson - object with array value +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5823570Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5823790Z duration_ms: 0.135709 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5824040Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5824270Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5824560Z # Subtest: roundtrip - simple object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5825270Z ok 96 - roundtrip - simple object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5825570Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5825790Z duration_ms: 0.082792 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5826040Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5826260Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5826550Z # Subtest: roundtrip - nested object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5826960Z ok 97 - roundtrip - nested object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5827250Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5827480Z duration_ms: 0.113292 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5827730Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5827960Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5828260Z # Subtest: roundtrip - object with array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5828640Z ok 98 - roundtrip - object with array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5828910Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5829140Z duration_ms: 0.066625 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5829400Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5829620Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5829920Z # Subtest: roundtrip - complex object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5830280Z ok 99 - roundtrip - complex object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5830560Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5830850Z duration_ms: 0.11225 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5831100Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5831330Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5831630Z # Subtest: formatAsLino - empty array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5832000Z ok 100 - formatAsLino - empty array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5832270Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5832500Z duration_ms: 0.047333 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5832750Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5832970Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5833270Z # Subtest: formatAsLino - array of values +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5833650Z ok 101 - formatAsLino - array of values +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5833930Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5834150Z duration_ms: 0.041 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5834390Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5834610Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5834910Z # Subtest: formatIndented - basic object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5835290Z ok 102 - formatIndented - basic object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5835830Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5836050Z duration_ms: 0.096958 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5836300Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5836520Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5836850Z # Subtest: formatIndented - custom indentation +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5837260Z ok 103 - formatIndented - custom indentation +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5837550Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5837770Z duration_ms: 0.038791 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5838020Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5838240Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5838590Z # Subtest: formatIndented - value with double quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5839040Z ok 104 - formatIndented - value with double quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5839340Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5839560Z duration_ms: 0.035791 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5839810Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5840030Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5840340Z # Subtest: formatIndented - key with space +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5840720Z ok 105 - formatIndented - key with space +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5841000Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5841230Z duration_ms: 0.053125 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5841480Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5841700Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5841990Z # Subtest: formatIndented - null value +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5842360Z ok 106 - formatIndented - null value +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5842630Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5842850Z duration_ms: 0.0705 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5843100Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5843320Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5843620Z # Subtest: formatIndented - requires id +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5843990Z ok 107 - formatIndented - requires id +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5844260Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5844490Z duration_ms: 0.203292 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5844730Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5844950Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5845290Z # Subtest: formatIndented - requires plain object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5845710Z ok 108 - formatIndented - requires plain object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5846010Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5846230Z duration_ms: 0.045917 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5846510Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5846800Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5847110Z # Subtest: parseIndented - basic object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5848720Z ok 109 - parseIndented - basic object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5849050Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5849440Z duration_ms: 0.259959 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5849840Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5850080Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5850410Z # Subtest: parseIndented - value with quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5850820Z ok 110 - parseIndented - value with quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5851110Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5851340Z duration_ms: 0.090792 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5851590Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5851810Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5852160Z # Subtest: parseIndented - empty lines are skipped +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5852600Z ok 111 - parseIndented - empty lines are skipped +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.5853670Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6002540Z duration_ms: 0.0755 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6003310Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6006180Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6006970Z # Subtest: parseIndented - requires text +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6007510Z ok 112 - parseIndented - requires text +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6007940Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6008750Z duration_ms: 0.043334 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6021600Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6022170Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6022890Z # Subtest: formatIndented/parseIndented roundtrip - basic +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6024580Z ok 113 - formatIndented/parseIndented roundtrip - basic +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6024950Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6025200Z duration_ms: 0.139541 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6025450Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6025680Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6026340Z # Subtest: formatIndented/parseIndented roundtrip - with quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6026930Z ok 114 - formatIndented/parseIndented roundtrip - with quotes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6027280Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6027460Z duration_ms: 0.079083 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6027630Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6027880Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6028400Z # Subtest: levenshteinDistance +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6028860Z # Subtest: should return 0 for identical strings +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6029780Z ok 1 - should return 0 for identical strings +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6031000Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6031150Z duration_ms: 0.533333 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6031320Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6031460Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6031770Z # Subtest: should return correct distance for single character difference +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6032230Z ok 2 - should return correct distance for single character difference +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6032500Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6032630Z duration_ms: 0.077833 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6032790Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6032930Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6033210Z # Subtest: should return length for completely different strings +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6033600Z ok 3 - should return length for completely different strings +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6033840Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6033970Z duration_ms: 0.054083 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6034130Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6034270Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6034460Z # Subtest: should handle empty strings +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6034710Z ok 4 - should handle empty strings +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6034890Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6035030Z duration_ms: 0.050125 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6035250Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6035400Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6035740Z # Subtest: should handle case-sensitive comparison +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6036060Z ok 5 - should handle case-sensitive comparison +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6036270Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6036400Z duration_ms: 0.05575 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6036560Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6036690Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6036800Z 1..5 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6036950Z ok 115 - levenshteinDistance +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6037110Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6037230Z duration_ms: 1.798875 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6037390Z type: 'suite' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6037510Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6037670Z # Subtest: stringSimilarity +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6037940Z # Subtest: should return 1 for identical strings +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6038250Z ok 1 - should return 1 for identical strings +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6038450Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6038850Z duration_ms: 0.087125 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6039030Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6039160Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6039420Z # Subtest: should return 0 for completely different strings +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6039780Z ok 2 - should return 0 for completely different strings +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6040050Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6040190Z duration_ms: 0.144875 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6040350Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6040480Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6040770Z # Subtest: should return value between 0 and 1 for similar strings +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6041170Z ok 3 - should return value between 0 and 1 for similar strings +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6041420Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6041560Z duration_ms: 0.223083 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6041730Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6041860Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6042090Z # Subtest: should handle different length strings +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6042410Z ok 4 - should handle different length strings +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6042610Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6042740Z duration_ms: 0.1635 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6042900Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6043030Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6043150Z 1..4 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6043300Z ok 116 - stringSimilarity +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6043450Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6043580Z duration_ms: 0.9195 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6043720Z type: 'suite' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6043850Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6044000Z # Subtest: normalizeQuestion +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6044230Z # Subtest: should convert to lowercase +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6044490Z ok 1 - should convert to lowercase +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6044670Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6044800Z duration_ms: 0.182667 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6044970Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6045090Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6045440Z # Subtest: should remove punctuation +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6045730Z ok 2 - should remove punctuation +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6045900Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6046050Z duration_ms: 0.046542 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6046210Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6046340Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6046540Z # Subtest: should standardize whitespace +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6046800Z ok 3 - should standardize whitespace +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6046980Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6047110Z duration_ms: 0.038792 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6047270Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6047400Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6047610Z # Subtest: should handle combined normalization +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6047900Z ok 4 - should handle combined normalization +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6048110Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6048230Z duration_ms: 0.034667 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6048400Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6048520Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6048640Z 1..4 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6048800Z ok 117 - normalizeQuestion +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6048950Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6049160Z duration_ms: 0.365333 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6049310Z type: 'suite' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6049440Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6049600Z # Subtest: extractKeywords +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6049920Z # Subtest: should extract all keywords when no stopwords provided +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6050320Z ok 1 - should extract all keywords when no stopwords provided +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6050560Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6050700Z duration_ms: 0.181875 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6050880Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6051020Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6051270Z # Subtest: should filter out English stopwords when provided +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6051640Z ok 2 - should filter out English stopwords when provided +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6052000Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6052210Z duration_ms: 0.047292 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6052370Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6052500Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6052810Z # Subtest: should filter out Russian stopwords when provided +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6053180Z ok 3 - should filter out Russian stopwords when provided +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6053630Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6053780Z duration_ms: 0.088667 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6054010Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6054150Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6054400Z # Subtest: should add stems for longer words +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6054690Z ok 4 - should add stems for longer words +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6054940Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6055070Z duration_ms: 0.040416 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6055230Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6055360Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6055570Z # Subtest: should respect minWordLength option +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6055870Z ok 5 - should respect minWordLength option +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6056070Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6056200Z duration_ms: 0.039583 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6056360Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6062790Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6063050Z # Subtest: should disable stemming when stemLength is 0 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6063390Z ok 6 - should disable stemming when stemLength is 0 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6063620Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6063760Z duration_ms: 0.034333 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6063920Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6064050Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6064170Z 1..6 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6064310Z ok 118 - extractKeywords +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6064460Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6064590Z duration_ms: 0.49475 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6064730Z type: 'suite' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6064860Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6065010Z # Subtest: keywordSimilarity +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6065280Z # Subtest: should return 1 for identical questions +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6065590Z ok 1 - should return 1 for identical questions +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6065790Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6065920Z duration_ms: 0.143083 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6066080Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6066450Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6066870Z # Subtest: should return positive similarity for similar questions +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6067280Z ok 2 - should return positive similarity for similar questions +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6067520Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6067650Z duration_ms: 0.040292 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6067810Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6067940Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6068210Z # Subtest: should return low similarity for different questions +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6068590Z ok 3 - should return low similarity for different questions +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6068820Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6068950Z duration_ms: 0.03975 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6069110Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6069250Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6069510Z # Subtest: should return 0 for completely different questions +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6069870Z ok 4 - should return 0 for completely different questions +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6070100Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6070230Z duration_ms: 0.039792 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6070410Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6070540Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6070650Z 1..4 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6070810Z ok 119 - keywordSimilarity +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6070960Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6071090Z duration_ms: 0.353708 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6071230Z type: 'suite' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6071360Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6071510Z # Subtest: findBestMatch +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6071780Z # Subtest: should return exact match with score 1.0 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6072090Z ok 1 - should return exact match with score 1.0 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6072290Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6072430Z duration_ms: 0.10175 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6072590Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6072710Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6072970Z # Subtest: should find similar question with low threshold +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6073320Z ok 2 - should find similar question with low threshold +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6073550Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6073680Z duration_ms: 0.222 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6073850Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6073980Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6074380Z # Subtest: should return null when no match above threshold +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6074760Z ok 3 - should return null when no match above threshold +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6074980Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6075110Z duration_ms: 0.825375 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6075260Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6075400Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6075590Z # Subtest: should respect threshold option +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6075860Z ok 4 - should respect threshold option +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6076050Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6076180Z duration_ms: 0.21375 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6076340Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6076470Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6076680Z # Subtest: should handle Russian questions +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6076950Z ok 5 - should handle Russian questions +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6077140Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6077270Z duration_ms: 0.05225 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6077440Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6077570Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6077680Z 1..5 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6077830Z ok 120 - findBestMatch +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6077960Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6078090Z duration_ms: 1.482959 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6078240Z type: 'suite' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6078370Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6078520Z # Subtest: findAllMatches +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6078780Z # Subtest: should return all matches above threshold +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6079110Z ok 1 - should return all matches above threshold +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6079320Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6079450Z duration_ms: 0.245625 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6079610Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6079740Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6079960Z # Subtest: should sort matches by score descending +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6080270Z ok 2 - should sort matches by score descending +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6080480Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6080640Z duration_ms: 0.171292 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6080940Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6081070Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6081300Z # Subtest: should return empty array when no matches +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6081620Z ok 3 - should return empty array when no matches +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6081830Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6081950Z duration_ms: 0.572667 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6082120Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6082240Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6082440Z # Subtest: should include answer in results +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6082720Z ok 4 - should include answer in results +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6082910Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6083030Z duration_ms: 0.162 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6083190Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6083320Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6083430Z 1..4 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6083570Z ok 121 - findAllMatches +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6083720Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6083850Z duration_ms: 1.203958 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6084000Z type: 'suite' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6084130Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6084470Z # Subtest: compareVersions orders semantic versions numerically +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6084900Z ok 122 - compareVersions orders semantic versions numerically +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6085140Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6085270Z duration_ms: 0.887083 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6085420Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6085550Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6085860Z # Subtest: isVersionAtLeast accepts v-prefixed Node.js versions +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6086300Z ok 123 - isVersionAtLeast accepts v-prefixed Node.js versions +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6086540Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6086670Z duration_ms: 0.08975 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6086820Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6086940Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6087300Z # Subtest: selectLatestSatisfyingMajor pins npm to supported 11.x releases +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6087820Z ok 124 - selectLatestSatisfyingMajor pins npm to supported 11.x releases +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6088090Z --- +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6088220Z duration_ms: 0.099584 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6088380Z type: 'test' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6088500Z ... +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6088610Z 1..124 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6088720Z # tests 149 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6088840Z # suites 7 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6089100Z # pass 149 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6089230Z # fail 0 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6089350Z # cancelled 0 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6089480Z # skipped 0 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6089600Z # todo 0 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6089740Z # duration_ms 194.270958 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6157180Z ##[group]Run npm run example +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6157440Z ^[[36;1mnpm run example^[[0m +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6190350Z shell: /bin/bash -e {0} +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.6190530Z ##[endgroup] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7379770Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7380190Z > lino-objects-codec@0.3.4 example +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7380580Z > node examples/basic_usage.js +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7380720Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7719170Z === Link Notation Objects Codec Examples === +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7719410Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7719740Z 1. Basic Types: +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7731790Z null -> (null) -> null +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7732520Z undefined -> (undefined) -> undefined +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7733510Z true -> (bool true) -> true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7734120Z false -> (bool false) -> false +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7735780Z 42 -> (int 42) -> 42 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7736770Z 3.14 -> (float 3.14) -> 3.14 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7738290Z Hello, World! -> (str SGVsbG8sIFdvcmxkIQ==) -> Hello, World! +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7741110Z Unicode: 你好世界 🌍 -> (str VW5pY29kZTog5L2g5aW95LiW55WMIPCfjI0=) -> Unicode: 你好世界 🌍 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7741430Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7741870Z 2. Collections: +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7742050Z Array: [1,2,3,"hello",true] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7742380Z Encoded: (array (int 1) (int 2) (int 3) (str aGVsbG8=) (bool true)) +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7745350Z Decoded: [1,2,3,"hello",true] +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7745550Z Match: true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7745650Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7745800Z Object: {"name":"Alice","age":30,"active":true} +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7746380Z Encoded: (object ((str bmFtZQ==) (str QWxpY2U=)) ((str YWdl) (int 30)) ((str YWN0aXZl) (bool true))) +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7747980Z Decoded: {"name":"Alice","age":30,"active":true} +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7748230Z Match: true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7748550Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7748920Z 3. Nested Structures: +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7750730Z Original: {"users":[{"id":1,"name":"Alice","admin":true},{"id":2,"name":"Bob","admin":false}],"metadata":{"version":1,"count":2}} +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7751190Z Encoded length: 296 characters +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7755840Z Decoded: {"users":[{"id":1,"name":"Alice","admin":true},{"id":2,"name":"Bob","admin":false}],"metadata":{"version":1,"count":2}} +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7756270Z Match: true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7756360Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7756460Z 4. Circular References: +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7756680Z Created self-referencing array +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7756980Z Encoded: (obj_0: array (int 1) (int 2) (int 3) obj_0) +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7757250Z Decoded correctly: true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7757480Z Circular reference preserved: true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7757640Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7757740Z Created self-referencing object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7758170Z Encoded: (obj_0: object ((str bmFtZQ==) (str cm9vdA==)) ((str c2VsZg==) obj_0)) +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7758480Z Decoded correctly: true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7758710Z Circular reference preserved: true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7758860Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7758970Z 5. Shared Object References: +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7759260Z Created container with 3 references to same object +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7759910Z Encoded: (object ((str Zmlyc3Q=) (obj_0: object ((str c2hhcmVk) (str ZGF0YQ==)) ((str dmFsdWU=) (int 42)))) ((str c2Vjb25k) obj_0) ((str dGhpcmQ=) obj_0)) +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7760490Z All three references point to same object: true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7760810Z Modified through 'first', visible in 'second': true +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7760980Z +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7761140Z === All examples completed successfully! === +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.7860670Z Post job cleanup. +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:54.9350890Z Post job cleanup. +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:55.0168750Z [command]/opt/homebrew/bin/git version +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:55.0228420Z git version 2.54.0 +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:55.0250050Z Copying '/Users/runner/.gitconfig' to '/Users/runner/work/_temp/417b9c68-20db-4097-9167-dc7b9ae750fb/.gitconfig' +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:55.0261750Z Temporarily overriding HOME='/Users/runner/work/_temp/417b9c68-20db-4097-9167-dc7b9ae750fb' before making global git config changes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:55.0262550Z Adding repository directory to the temporary git global config as a safe directory +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:55.0264910Z [command]/opt/homebrew/bin/git config --global --add safe.directory /Users/runner/work/lino-objects-codec/lino-objects-codec +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:55.0321280Z [command]/opt/homebrew/bin/git config --local --name-only --get-regexp core\.sshCommand +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:55.0369930Z [command]/opt/homebrew/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:55.1314220Z [command]/opt/homebrew/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:55.1359250Z http.https://github.com/.extraheader +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:55.1372220Z [command]/opt/homebrew/bin/git config --local --unset-all http.https://github.com/.extraheader +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:55.1693270Z [command]/opt/homebrew/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:55.3196140Z [command]/opt/homebrew/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:55.3501430Z [command]/opt/homebrew/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:55.4578110Z Cleaning up orphan processes +Test (Node.js on macos-latest) UNKNOWN STEP 2026-05-03T19:06:55.7730470Z ##[warning]Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2646988Z Current runner version: '2.334.0' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2685159Z ##[group]Runner Image Provisioner +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2686338Z Hosted Compute Agent +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2687381Z Version: 20260213.493 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2688446Z Commit: 5c115507f6dd24b8de37d8bbe0bb4509d0cc0fa3 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2689609Z Build Date: 2026-02-13T00:28:41Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2690730Z Worker ID: {58ff6dc5-d6d9-44eb-9057-b55331c9572e} +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2692171Z Azure Region: eastus2 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2693090Z ##[endgroup] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2695513Z ##[group]Operating System +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2696575Z Ubuntu +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2697312Z 24.04.4 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2698169Z LTS +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2698873Z ##[endgroup] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2699675Z ##[group]Runner Image +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2700664Z Image: ubuntu-24.04 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2701526Z Version: 20260413.86.1 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2703958Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20260413.86/images/ubuntu/Ubuntu2404-Readme.md +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2706472Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20260413.86 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2708734Z ##[endgroup] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2714282Z ##[group]GITHUB_TOKEN Permissions +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2717792Z Actions: write +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2718734Z ArtifactMetadata: write +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2719640Z Attestations: write +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2720621Z Checks: write +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2721528Z Contents: write +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2722672Z Deployments: write +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2723629Z Discussions: write +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2724455Z Issues: write +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2725267Z Metadata: read +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2726134Z Models: read +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2727004Z Packages: write +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2727776Z Pages: write +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2728822Z PullRequests: write +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2729758Z RepositoryProjects: write +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2730619Z SecurityEvents: write +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2731637Z Statuses: write +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2732797Z VulnerabilityAlerts: read +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2733680Z ##[endgroup] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2736750Z Secret source: Actions +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.2738245Z Prepare workflow directory +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.3235377Z Prepare all required actions +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.3293854Z Getting action download info +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.5735718Z Download action repository 'actions/checkout@v4' (SHA:34e114876b0b11c390a56381ad16ebd13914f8d5) +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.7249628Z Download action repository 'actions/setup-node@v4' (SHA:49933ea5288caeca8642d1e84afbd3f7d6820020) +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.9209786Z Complete job name: Test (Node.js on ubuntu-latest) +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.9944239Z ##[group]Run actions/checkout@v4 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.9945062Z with: +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.9945497Z repository: link-foundation/lino-objects-codec +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.9946251Z token: *** +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.9946613Z ssh-strict: true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.9947006Z ssh-user: git +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.9947397Z persist-credentials: true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.9947827Z clean: true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.9948234Z sparse-checkout-cone-mode: true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.9948696Z fetch-depth: 1 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.9949077Z fetch-tags: false +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.9949469Z show-progress: true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.9949862Z lfs: false +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.9950214Z submodules: false +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.9950608Z set-safe-directory: true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:54.9951267Z ##[endgroup] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1081044Z Syncing repository: link-foundation/lino-objects-codec +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1083346Z ##[group]Getting Git version info +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1084301Z Working directory is '/home/runner/work/lino-objects-codec/lino-objects-codec' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1085367Z [command]/usr/bin/git version +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1133423Z git version 2.53.0 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1161041Z ##[endgroup] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1186090Z Temporarily overriding HOME='/home/runner/work/_temp/f1707a67-e3a7-4300-9b3a-c017579d34fa' before making global git config changes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1188419Z Adding repository directory to the temporary git global config as a safe directory +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1193728Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/lino-objects-codec/lino-objects-codec +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1229048Z Deleting the contents of '/home/runner/work/lino-objects-codec/lino-objects-codec' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1233203Z ##[group]Initializing the repository +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1237463Z [command]/usr/bin/git init /home/runner/work/lino-objects-codec/lino-objects-codec +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1324083Z hint: Using 'master' as the name for the initial branch. This default branch name +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1325865Z hint: will change to "main" in Git 3.0. To configure the initial branch name +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1327455Z hint: to use in all of your new repositories, which will suppress this warning, +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1328704Z hint: call: +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1329324Z hint: +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1330133Z hint: git config --global init.defaultBranch +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1331147Z hint: +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1332398Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1333906Z hint: 'development'. The just-created branch can be renamed via this command: +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1335058Z hint: +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1335683Z hint: git branch -m +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1336453Z hint: +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1337476Z hint: Disable this message with "git config set advice.defaultBranchName false" +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1339413Z Initialized empty Git repository in /home/runner/work/lino-objects-codec/lino-objects-codec/.git/ +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1342699Z [command]/usr/bin/git remote add origin https://github.com/link-foundation/lino-objects-codec +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1416394Z ##[endgroup] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1417572Z ##[group]Disabling automatic garbage collection +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1421626Z [command]/usr/bin/git config --local gc.auto 0 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1453040Z ##[endgroup] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1454205Z ##[group]Setting up auth +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1460960Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1493460Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1788665Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.1818749Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.2040798Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.2073865Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.2305918Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic *** +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.2342523Z ##[endgroup] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.2343820Z ##[group]Fetching the repository +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.2352757Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +e1303e202fc96b20cae6adfef52ff132d36f7366:refs/remotes/origin/main +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.6926458Z From https://github.com/link-foundation/lino-objects-codec +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.6928284Z * [new ref] e1303e202fc96b20cae6adfef52ff132d36f7366 -> origin/main +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.6957545Z ##[endgroup] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.6959442Z ##[group]Determining the checkout info +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.6961241Z ##[endgroup] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.6966436Z [command]/usr/bin/git sparse-checkout disable +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.7006913Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.7035316Z ##[group]Checking out the ref +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.7038424Z [command]/usr/bin/git checkout --progress --force -B main refs/remotes/origin/main +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.7258091Z Switched to a new branch 'main' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.7260640Z branch 'main' set up to track 'origin/main'. +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.7271689Z ##[endgroup] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.7306499Z [command]/usr/bin/git log -1 --format=%H +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.7328987Z e1303e202fc96b20cae6adfef52ff132d36f7366 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.7656951Z ##[group]Run actions/setup-node@v4 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.7658164Z with: +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.7658938Z node-version: 22 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.7659833Z always-auth: false +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.7660761Z check-latest: false +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.7662164Z token: *** +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.7663004Z ##[endgroup] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.9498065Z Found in cache @ /opt/hostedtoolcache/node/22.22.2/x64 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:55.9505151Z ##[group]Environment details +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:59.4325501Z node: v22.22.2 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:59.4326064Z npm: 10.9.7 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:59.4326462Z yarn: 1.22.22 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:59.4329828Z ##[endgroup] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:59.4434230Z ##[group]Run npm install +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:59.4434588Z ^[[36;1mnpm install^[[0m +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:59.4466340Z shell: /usr/bin/bash -e {0} +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:06:59.4466657Z ##[endgroup] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:03.8967050Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:03.8974680Z > lino-objects-codec@0.3.4 prepare +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:03.8975143Z > husky || true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:03.8975336Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:03.9443556Z .git can't be found +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:03.9444625Z added 321 packages, and audited 322 packages in 4s +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:03.9445163Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:03.9445483Z 74 packages are looking for funding +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:03.9446002Z run `npm fund` for details +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:03.9542580Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:03.9543489Z 6 vulnerabilities (3 moderate, 3 high) +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:03.9544166Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:03.9544683Z To address all issues, run: +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:03.9545480Z npm audit fix +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:03.9546000Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:03.9546421Z Run `npm audit` for details. +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.0082572Z ##[group]Run npm test +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.0082852Z ^[[36;1mnpm test^[[0m +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.0105745Z shell: /usr/bin/bash -e {0} +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.0106150Z ##[endgroup] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.1229398Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.1230190Z > lino-objects-codec@0.3.4 test +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.1230750Z > node --test tests/*.test.js +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.1231236Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.1877078Z TAP version 13 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.2883292Z # Subtest: encode null +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.2935862Z ok 1 - encode null +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.2983325Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3022831Z duration_ms: 2.545163 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3052556Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3083543Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3103341Z # Subtest: decode null +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3104382Z ok 2 - decode null +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3105135Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3105878Z duration_ms: 2.675416 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3106661Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3107356Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3108062Z # Subtest: roundtrip null +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3109014Z ok 3 - roundtrip null +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3109725Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3110348Z duration_ms: 0.486276 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3111013Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3111598Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3113076Z # Subtest: encode undefined +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3113862Z ok 4 - encode undefined +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3114530Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3115146Z duration_ms: 0.303816 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3115738Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3116427Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3117220Z # Subtest: decode undefined +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3117912Z ok 5 - decode undefined +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3118481Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3118996Z duration_ms: 0.379568 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3119577Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3120179Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3120911Z # Subtest: roundtrip undefined +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3121579Z ok 6 - roundtrip undefined +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3122572Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3123125Z duration_ms: 0.260986 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3123709Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3124258Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3124812Z # Subtest: encode true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3125427Z ok 7 - encode true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3126564Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3127109Z duration_ms: 1.760281 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3127687Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3128238Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3128910Z # Subtest: encode false +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3129578Z ok 8 - encode false +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3130146Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3130656Z duration_ms: 0.222324 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3131125Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3131449Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3131793Z # Subtest: decode true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3132485Z ok 9 - decode true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3132818Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3133141Z duration_ms: 0.855274 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3133494Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3133816Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3134145Z # Subtest: decode false +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3134526Z ok 10 - decode false +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3134855Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3135156Z duration_ms: 0.784522 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3135527Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3135838Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3136172Z # Subtest: roundtrip bool +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3136598Z ok 11 - roundtrip bool +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3136948Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3137242Z duration_ms: 0.474685 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3137596Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3137853Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3138160Z # Subtest: encode zero +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3138427Z ok 12 - encode zero +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3138676Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3138910Z duration_ms: 0.153917 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3139151Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3139364Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3139675Z # Subtest: encode positive int +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3139984Z ok 13 - encode positive int +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3140242Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3140482Z duration_ms: 0.131806 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3140725Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3140952Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3141228Z # Subtest: encode negative int +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3141523Z ok 14 - encode negative int +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3142328Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3142637Z duration_ms: 0.127017 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3142905Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3143140Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3143395Z # Subtest: decode int +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3143661Z ok 15 - decode int +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3143910Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3144153Z duration_ms: 0.891301 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3144402Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3144635Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3144875Z # Subtest: roundtrip int +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3145152Z ok 16 - roundtrip int +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3145389Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3145615Z duration_ms: 0.620998 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3145874Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3146116Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3146362Z # Subtest: encode float +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3146624Z ok 17 - encode float +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3146860Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3147093Z duration_ms: 0.136915 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3147340Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3147548Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3147782Z # Subtest: decode float +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3148043Z ok 18 - decode float +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3148281Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3148502Z duration_ms: 0.20409 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3148757Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3148985Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3149231Z # Subtest: roundtrip float +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3149508Z ok 19 - roundtrip float +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3149747Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3149974Z duration_ms: 0.693423 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3150231Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3150449Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3150727Z # Subtest: float special values +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3151025Z ok 20 - float special values +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3151284Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3151523Z duration_ms: 0.353038 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3151778Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3152324Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3152617Z # Subtest: encode empty string +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3152913Z ok 21 - encode empty string +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3153177Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3153419Z duration_ms: 0.154508 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3153661Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3153922Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3154182Z # Subtest: encode simple string +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3154491Z ok 22 - encode simple string +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3154963Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3155190Z duration_ms: 0.189063 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3155459Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3155683Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3155931Z # Subtest: decode string +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3156197Z ok 23 - decode string +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3156428Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3156678Z duration_ms: 0.222474 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3156929Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3157134Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3157385Z # Subtest: roundtrip string +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3157678Z ok 24 - roundtrip string +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3157926Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3158159Z duration_ms: 1.68465 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3158390Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3158619Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3158867Z # Subtest: string with quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3159151Z ok 25 - string with quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3159395Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3159615Z duration_ms: 0.538354 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3159876Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3160189Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3267194Z # Subtest: self-referencing array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3292652Z ok 26 - self-referencing array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3322504Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3322976Z duration_ms: 6.215343 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3346469Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3350723Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3351377Z # Subtest: array with self in middle +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3353778Z ok 27 - array with self in middle +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3354414Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3354972Z duration_ms: 0.694895 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3355615Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3356150Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3356830Z # Subtest: nested array with circular reference +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3357697Z ok 28 - nested array with circular reference +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3358356Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3358901Z duration_ms: 0.776677 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3359502Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3360479Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3361338Z # Subtest: self-referencing object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3362392Z ok 29 - self-referencing object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3363059Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3363586Z duration_ms: 0.718419 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3364165Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3364689Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3365377Z # Subtest: object with multiple self-references +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3366236Z ok 30 - object with multiple self-references +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3366964Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3367502Z duration_ms: 2.524995 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3368075Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3368593Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3369278Z # Subtest: nested object with circular reference +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3370141Z ok 31 - nested object with circular reference +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3370809Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3371407Z duration_ms: 0.737335 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3372304Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3372931Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3373797Z # Subtest: complex circular structure (tree with back-references) +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3374911Z ok 32 - complex circular structure (tree with back-references) +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3375676Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3376193Z duration_ms: 0.859963 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3376748Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3377235Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3377814Z # Subtest: shared object reference +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3378591Z ok 33 - shared object reference +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3379198Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3379720Z duration_ms: 0.535478 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3380310Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3380831Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3381521Z # Subtest: shared object reference - modification +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3382874Z ok 34 - shared object reference - modification +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3383725Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3384423Z duration_ms: 1.245301 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3385163Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3385811Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3386579Z # Subtest: multiple shared objects +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3387510Z ok 35 - multiple shared objects +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3388272Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3388931Z duration_ms: 1.224783 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3389656Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3390715Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3391492Z # Subtest: shared array reference +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3392694Z ok 36 - shared array reference +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3393476Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3394275Z duration_ms: 1.501888 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3394966Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3395625Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3396489Z # Subtest: circular and shared references combined +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3397779Z ok 37 - circular and shared references combined +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3398805Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3399521Z duration_ms: 0.827543 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3400236Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3400855Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3401600Z # Subtest: deeply nested circular structure +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3402798Z ok 38 - deeply nested circular structure +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3403650Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3404302Z duration_ms: 0.632789 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3404962Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3405509Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3406210Z # Subtest: array and object circular reference +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3407097Z ok 39 - array and object circular reference +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3407780Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3408299Z duration_ms: 2.745106 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3408899Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3409622Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3410585Z # Subtest: encoded format uses built-in references, not (ref X) marker +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3412144Z ok 40 - encoded format uses built-in references, not (ref X) marker +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3413095Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3413675Z duration_ms: 0.448566 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3414306Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3414866Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3415705Z # Subtest: decoder rejects legacy (ref X) marker as unknown type +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3416853Z ok 41 - decoder rejects legacy (ref X) marker as unknown type +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3417655Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3418204Z duration_ms: 0.762631 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3419003Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3419617Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3420207Z # Subtest: encode empty array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3420909Z ok 42 - encode empty array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3421531Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3422470Z duration_ms: 2.182087 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3423119Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3423638Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3424170Z # Subtest: decode empty array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3424810Z ok 43 - decode empty array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3425564Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3426130Z duration_ms: 3.28923 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3426687Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3427182Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3427740Z # Subtest: roundtrip empty array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3428368Z ok 44 - roundtrip empty array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3428984Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3429493Z duration_ms: 1.184167 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3430039Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3430529Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3431138Z # Subtest: encode array with basic types +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3432144Z ok 45 - encode array with basic types +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3432809Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3433352Z duration_ms: 0.466549 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3433938Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3434540Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3435225Z # Subtest: decode array with basic types +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3436018Z ok 46 - decode array with basic types +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3436672Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3437190Z duration_ms: 0.853711 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3437772Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3438302Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3438958Z # Subtest: roundtrip array with mixed types +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3439787Z ok 47 - roundtrip array with mixed types +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3440457Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3440983Z duration_ms: 3.619907 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3441552Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3442392Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3443017Z # Subtest: nested arrays +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3443781Z ok 48 - nested arrays +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3444476Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3445130Z duration_ms: 1.67934 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3445846Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3446488Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3447220Z # Subtest: encode empty object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3448126Z ok 49 - encode empty object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3449693Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3450187Z duration_ms: 0.221763 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3450812Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3451393Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3452299Z # Subtest: decode empty object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3453019Z ok 50 - decode empty object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3453607Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3454121Z duration_ms: 0.577165 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3454711Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3455248Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3455892Z # Subtest: roundtrip empty object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3456692Z ok 51 - roundtrip empty object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3457305Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3457835Z duration_ms: 0.698892 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3458416Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3458939Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3459579Z # Subtest: encode object with basic types +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3460373Z ok 52 - encode object with basic types +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3461010Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3461528Z duration_ms: 0.405366 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3462394Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3462982Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3463709Z # Subtest: decode object with basic types +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3464617Z ok 53 - decode object with basic types +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3465382Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3466003Z duration_ms: 0.518095 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3466650Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3467210Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3467975Z # Subtest: roundtrip object with mixed types +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3468862Z ok 54 - roundtrip object with mixed types +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3469577Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3470148Z duration_ms: 3.332842 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3470756Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3471311Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3472197Z # Subtest: nested objects +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3472918Z ok 55 - nested objects +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3473512Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3474099Z duration_ms: 1.831143 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3475012Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3475678Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3476351Z # Subtest: mixed nested structures +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3477187Z ok 56 - mixed nested structures +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3477863Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3478394Z duration_ms: 1.119927 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3478998Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3479579Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3480239Z # Subtest: array of objects +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3480997Z ok 57 - array of objects +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3481656Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3482596Z duration_ms: 3.312854 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3483312Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3483897Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3484517Z # Subtest: object with array values +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3485252Z ok 58 - object with array values +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3485938Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3486537Z duration_ms: 0.742854 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3487138Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3487658Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3488273Z # Subtest: deeply nested structure +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3489028Z ok 59 - deeply nested structure +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3489707Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3490241Z duration_ms: 2.531618 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3490825Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.3491346Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4453519Z # Subtest: escapeReference - simple string +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4482962Z ok 60 - escapeReference - simple string +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4484146Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4510677Z duration_ms: 4.092347 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4543084Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4543788Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4544526Z # Subtest: escapeReference - numbers +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4545409Z ok 61 - escapeReference - numbers +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4546099Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4546660Z duration_ms: 0.428298 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4547285Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4547838Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4548489Z # Subtest: escapeReference - booleans +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4549268Z ok 62 - escapeReference - booleans +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4549909Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4550428Z duration_ms: 0.213929 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4551051Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4551608Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4552562Z # Subtest: escapeReference - string with spaces +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4553912Z ok 63 - escapeReference - string with spaces +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4554619Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4555138Z duration_ms: 0.347878 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4555686Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4556202Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4556924Z # Subtest: escapeReference - string with single quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4557850Z ok 64 - escapeReference - string with single quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4558550Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4559059Z duration_ms: 0.217456 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4559610Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4560112Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4560847Z # Subtest: escapeReference - string with double quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4562098Z ok 65 - escapeReference - string with double quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4562859Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4563381Z duration_ms: 0.215632 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4563983Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4564503Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4565170Z # Subtest: escapeReference - string with both quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4566056Z ok 66 - escapeReference - string with both quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4566785Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4567288Z duration_ms: 0.282337 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4567863Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4568408Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4569122Z # Subtest: escapeReference - string with parentheses +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4570099Z ok 67 - escapeReference - string with parentheses +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4570837Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4571662Z duration_ms: 0.171489 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4572508Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4572975Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4573560Z # Subtest: escapeReference - string with colon +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4574401Z ok 68 - escapeReference - string with colon +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4575009Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4575428Z duration_ms: 0.505041 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4575926Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4576357Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4577216Z # Subtest: escapeReference - string with newline +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4577985Z ok 69 - escapeReference - string with newline +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4578543Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4578939Z duration_ms: 0.589879 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4579388Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4579781Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4580319Z # Subtest: unescapeReference - simple string +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4581032Z ok 70 - unescapeReference - simple string +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4581565Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4582274Z duration_ms: 0.301272 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4582750Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4583148Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4583753Z # Subtest: unescapeReference - doubled double quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4584568Z ok 71 - unescapeReference - doubled double quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4585153Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4585560Z duration_ms: 0.157884 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4586012Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4586419Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4587011Z # Subtest: unescapeReference - doubled single quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4587814Z ok 72 - unescapeReference - doubled single quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4588400Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4588802Z duration_ms: 0.148176 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4589257Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4589688Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4590331Z # Subtest: unescapeReference - null/undefined +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4591065Z ok 73 - unescapeReference - null/undefined +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4591610Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4592270Z duration_ms: 0.137776 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4592720Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4593119Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4593554Z # Subtest: jsonToLino - null +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4594087Z ok 74 - jsonToLino - null +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4594544Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4595039Z duration_ms: 0.24662 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4595404Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4595711Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4596114Z # Subtest: jsonToLino - undefined +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4596625Z ok 75 - jsonToLino - undefined +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4597040Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4597397Z duration_ms: 0.141163 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4597786Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4598168Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4598570Z # Subtest: jsonToLino - number +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4599514Z ok 76 - jsonToLino - number +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4599920Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4600245Z duration_ms: 0.137847 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4600621Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4600937Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4672957Z # Subtest: jsonToLino - boolean +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4685590Z ok 77 - jsonToLino - boolean +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4690513Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4691263Z duration_ms: 0.126265 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4692738Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4693422Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4694218Z # Subtest: jsonToLino - simple string +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4695201Z ok 78 - jsonToLino - simple string +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4696019Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4696692Z duration_ms: 0.120735 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4697410Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4698071Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4698918Z # Subtest: jsonToLino - string with spaces +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4700007Z ok 79 - jsonToLino - string with spaces +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4700822Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4701486Z duration_ms: 0.174856 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4702508Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4703180Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4703912Z # Subtest: jsonToLino - empty array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4704817Z ok 80 - jsonToLino - empty array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4705568Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4706230Z duration_ms: 0.127798 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4706928Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4707573Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4708348Z # Subtest: jsonToLino - array of numbers +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4709294Z ok 81 - jsonToLino - array of numbers +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4710066Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4710721Z duration_ms: 0.161751 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4711425Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4712725Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4713505Z # Subtest: jsonToLino - array of strings +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4714385Z ok 82 - jsonToLino - array of strings +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4715074Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4716053Z duration_ms: 0.141724 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4716809Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4717526Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4718296Z # Subtest: jsonToLino - nested array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4719182Z ok 83 - jsonToLino - nested array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4720021Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4720745Z duration_ms: 0.145311 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4721444Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4722447Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4723211Z # Subtest: jsonToLino - empty object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4724105Z ok 84 - jsonToLino - empty object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4724870Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4725493Z duration_ms: 0.127888 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4726165Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4726811Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4727555Z # Subtest: jsonToLino - simple object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4728443Z ok 85 - jsonToLino - simple object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4729294Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4729946Z duration_ms: 0.296823 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4730617Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4731279Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4732388Z # Subtest: jsonToLino - object with nested object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4733461Z ok 86 - jsonToLino - object with nested object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4734305Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4734962Z duration_ms: 0.129782 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4735674Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4736332Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4737115Z # Subtest: jsonToLino - object with array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4738077Z ok 87 - jsonToLino - object with array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4738882Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4739540Z duration_ms: 0.110607 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4740245Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4740893Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4741649Z # Subtest: linoToJson - null input +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4744553Z ok 88 - linoToJson - null input +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4745320Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4746159Z duration_ms: 0.128409 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4746943Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4747588Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4748344Z # Subtest: linoToJson - primitives +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4749265Z ok 89 - linoToJson - primitives +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4750026Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4750689Z duration_ms: 3.080842 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4751383Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4752753Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4753511Z # Subtest: linoToJson - simple string +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4754395Z ok 90 - linoToJson - simple string +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4755138Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4755776Z duration_ms: 1.463227 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4756513Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4757146Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4757872Z # Subtest: linoToJson - empty link +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4758768Z ok 91 - linoToJson - empty link +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4759508Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4760144Z duration_ms: 0.926507 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4760849Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4761486Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4762532Z # Subtest: linoToJson - array of numbers +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4763495Z ok 92 - linoToJson - array of numbers +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4764390Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4765053Z duration_ms: 0.337349 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4765754Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4766361Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4767065Z # Subtest: linoToJson - simple object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4767924Z ok 93 - linoToJson - simple object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4768615Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4769208Z duration_ms: 0.378345 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4769864Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4770460Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4771207Z # Subtest: linoToJson - nested object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4772465Z ok 94 - linoToJson - nested object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4773237Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4773835Z duration_ms: 0.682692 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4774466Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4775040Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4775809Z # Subtest: linoToJson - object with array value +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4776821Z ok 95 - linoToJson - object with array value +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4777607Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4778226Z duration_ms: 0.371482 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4778887Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4779453Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4780406Z # Subtest: roundtrip - simple object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4781392Z ok 96 - roundtrip - simple object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4782451Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4783131Z duration_ms: 0.28454 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4783888Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4784565Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4785383Z # Subtest: roundtrip - nested object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4786301Z ok 97 - roundtrip - nested object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4787081Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4787747Z duration_ms: 0.343771 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4788458Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4789086Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4802676Z # Subtest: roundtrip - object with array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4814558Z ok 98 - roundtrip - object with array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4815184Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4815596Z duration_ms: 0.271146 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4816049Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4816451Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4816959Z # Subtest: roundtrip - complex object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4817590Z ok 99 - roundtrip - complex object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4818085Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4818494Z duration_ms: 0.377594 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4818935Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4819325Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4819821Z # Subtest: formatAsLino - empty array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4820455Z ok 100 - formatAsLino - empty array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4820951Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4821333Z duration_ms: 0.162563 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4821765Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4822493Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4823009Z # Subtest: formatAsLino - array of values +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4823910Z ok 101 - formatAsLino - array of values +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4824441Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4824751Z duration_ms: 0.14484 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4825106Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4825419Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4825848Z # Subtest: formatIndented - basic object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4826427Z ok 102 - formatIndented - basic object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4826879Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4827192Z duration_ms: 0.324695 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4827568Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4827884Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4828377Z # Subtest: formatIndented - custom indentation +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4829049Z ok 103 - formatIndented - custom indentation +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4829820Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4830137Z duration_ms: 0.155089 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4830505Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4830804Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4831304Z # Subtest: formatIndented - value with double quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4832438Z ok 104 - formatIndented - value with double quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4832996Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4833339Z duration_ms: 0.136274 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4833726Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4834059Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4834541Z # Subtest: formatIndented - key with space +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4835183Z ok 105 - formatIndented - key with space +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4835671Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4835991Z duration_ms: 0.755368 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4836375Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4836707Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4869922Z # Subtest: formatIndented - null value +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4878242Z ok 106 - formatIndented - null value +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4880051Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4880587Z duration_ms: 0.211403 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4881298Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4882078Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4882768Z # Subtest: formatIndented - requires id +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4883609Z ok 107 - formatIndented - requires id +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4884299Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4884803Z duration_ms: 0.561637 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4885344Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4885837Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4886503Z # Subtest: formatIndented - requires plain object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4887362Z ok 108 - formatIndented - requires plain object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4888024Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4888513Z duration_ms: 0.171018 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4889054Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4889542Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4890143Z # Subtest: parseIndented - basic object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4890896Z ok 109 - parseIndented - basic object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4891504Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4892594Z duration_ms: 0.732425 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4893221Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4907928Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4908673Z # Subtest: parseIndented - value with quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4909562Z ok 110 - parseIndented - value with quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4910292Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4910858Z duration_ms: 0.304879 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4911455Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4912290Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4913099Z # Subtest: parseIndented - empty lines are skipped +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4914073Z ok 111 - parseIndented - empty lines are skipped +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4914788Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4915313Z duration_ms: 0.273359 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4915892Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4916437Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4917124Z # Subtest: parseIndented - requires text +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4917956Z ok 112 - parseIndented - requires text +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4918633Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4919153Z duration_ms: 0.179996 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4919739Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4920265Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4921014Z # Subtest: formatIndented/parseIndented roundtrip - basic +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4922292Z ok 113 - formatIndented/parseIndented roundtrip - basic +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4923097Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4923597Z duration_ms: 0.398602 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4924149Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4924638Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4925427Z # Subtest: formatIndented/parseIndented roundtrip - with quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4926564Z ok 114 - formatIndented/parseIndented roundtrip - with quotes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4927301Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4927785Z duration_ms: 0.269222 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4928310Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.4928795Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5025724Z # Subtest: levenshteinDistance +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5026474Z # Subtest: should return 0 for identical strings +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5027198Z ok 1 - should return 0 for identical strings +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5027750Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5028180Z duration_ms: 1.246934 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5028580Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5028996Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5030017Z # Subtest: should return correct distance for single character difference +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5031012Z ok 2 - should return correct distance for single character difference +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5031678Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5032976Z duration_ms: 0.271165 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5033402Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5033730Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5034274Z # Subtest: should return length for completely different strings +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5035070Z ok 3 - should return length for completely different strings +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5035621Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5035932Z duration_ms: 0.188251 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5036307Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5036616Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5036996Z # Subtest: should handle empty strings +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5037524Z ok 4 - should handle empty strings +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5037956Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5038275Z duration_ms: 0.180396 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5038650Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5038978Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5039438Z # Subtest: should handle case-sensitive comparison +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5040063Z ok 5 - should handle case-sensitive comparison +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5040549Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5040866Z duration_ms: 0.214359 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5041238Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5041556Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5042059Z 1..5 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5042436Z ok 115 - levenshteinDistance +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5042822Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5043138Z duration_ms: 3.716476 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5043498Z type: 'suite' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5043801Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5044172Z # Subtest: stringSimilarity +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5044694Z # Subtest: should return 1 for identical strings +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5045291Z ok 1 - should return 1 for identical strings +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5045993Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5046321Z duration_ms: 0.285893 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5046689Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5047010Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5047499Z # Subtest: should return 0 for completely different strings +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5048224Z ok 2 - should return 0 for completely different strings +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5048741Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5049050Z duration_ms: 0.37022 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5049425Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5049738Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5050276Z # Subtest: should return value between 0 and 1 for similar strings +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5051069Z ok 3 - should return value between 0 and 1 for similar strings +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5051607Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5052218Z duration_ms: 0.425724 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5052602Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5052918Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5053353Z # Subtest: should handle different length strings +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5054010Z ok 4 - should handle different length strings +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5054468Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5054779Z duration_ms: 0.377042 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5055157Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5080117Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5080544Z 1..4 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5080904Z ok 116 - stringSimilarity +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5081287Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5081592Z duration_ms: 2.083262 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5082247Z type: 'suite' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5082559Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5082905Z # Subtest: normalizeQuestion +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5083398Z # Subtest: should convert to lowercase +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5083929Z ok 1 - should convert to lowercase +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5084357Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5084677Z duration_ms: 0.463123 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5085055Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5085380Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5085762Z # Subtest: should remove punctuation +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5086262Z ok 2 - should remove punctuation +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5086693Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5087004Z duration_ms: 0.150821 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5087379Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5087950Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5088335Z # Subtest: should standardize whitespace +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5088876Z ok 3 - should standardize whitespace +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5089308Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5089607Z duration_ms: 0.129582 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5089975Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5090278Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5090699Z # Subtest: should handle combined normalization +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5091302Z ok 4 - should handle combined normalization +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5091759Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5092275Z duration_ms: 0.120244 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5092638Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5092942Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5093216Z 1..4 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5093641Z ok 117 - normalizeQuestion +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5094003Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5094309Z duration_ms: 1.074683 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5094663Z type: 'suite' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5094966Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5095301Z # Subtest: extractKeywords +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5095918Z # Subtest: should extract all keywords when no stopwords provided +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5096717Z ok 1 - should extract all keywords when no stopwords provided +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5097269Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5097574Z duration_ms: 0.459085 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5097951Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5098255Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5098754Z # Subtest: should filter out English stopwords when provided +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5099482Z ok 2 - should filter out English stopwords when provided +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5099985Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5100292Z duration_ms: 0.163405 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5100650Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5100965Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5101461Z # Subtest: should filter out Russian stopwords when provided +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5102553Z ok 3 - should filter out Russian stopwords when provided +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5103076Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5103385Z duration_ms: 0.227925 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5103754Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5104072Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5104469Z # Subtest: should add stems for longer words +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5105027Z ok 4 - should add stems for longer words +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5105468Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5105771Z duration_ms: 0.146453 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5106146Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5106451Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5106872Z # Subtest: should respect minWordLength option +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5107471Z ok 5 - should respect minWordLength option +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5107923Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5108229Z duration_ms: 0.188862 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5108602Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5108912Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5109377Z # Subtest: should disable stemming when stemLength is 0 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5110050Z ok 6 - should disable stemming when stemLength is 0 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5110540Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5110844Z duration_ms: 0.142014 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5111214Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5111532Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5112241Z 1..6 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5112593Z ok 118 - extractKeywords +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5112955Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5113256Z duration_ms: 1.562011 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5113607Z type: 'suite' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5113915Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5114246Z # Subtest: keywordSimilarity +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5114923Z # Subtest: should return 1 for identical questions +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5115535Z ok 1 - should return 1 for identical questions +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5116005Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5116319Z duration_ms: 0.392251 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5116684Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5117003Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5117552Z # Subtest: should return positive similarity for similar questions +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5118365Z ok 2 - should return positive similarity for similar questions +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5118916Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5119218Z duration_ms: 0.187139 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5119791Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5120108Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5120618Z # Subtest: should return low similarity for different questions +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5121382Z ok 3 - should return low similarity for different questions +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5122109Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5122424Z duration_ms: 0.156601 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5122801Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5123107Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5123616Z # Subtest: should return 0 for completely different questions +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5124349Z ok 4 - should return 0 for completely different questions +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5124858Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5125165Z duration_ms: 0.140903 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5125536Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5125833Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5126119Z 1..4 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5126455Z ok 119 - keywordSimilarity +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5126818Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5127120Z duration_ms: 1.137329 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5127470Z type: 'suite' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5127773Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5128172Z # Subtest: findBestMatch +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5128683Z # Subtest: should return exact match with score 1.0 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5129303Z ok 1 - should return exact match with score 1.0 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5129775Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5130091Z duration_ms: 0.314036 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5130451Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5130768Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5131255Z # Subtest: should find similar question with low threshold +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5132147Z ok 2 - should find similar question with low threshold +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5132673Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5132990Z duration_ms: 0.710804 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5133368Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5133684Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5134330Z # Subtest: should return null when no match above threshold +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5135053Z ok 3 - should return null when no match above threshold +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5136439Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5136754Z duration_ms: 2.175782 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5137136Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5137451Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5137845Z # Subtest: should respect threshold option +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5138401Z ok 4 - should respect threshold option +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5138831Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5139136Z duration_ms: 0.615407 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5139506Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5139818Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5140276Z # Subtest: should handle Russian questions +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5140823Z ok 5 - should handle Russian questions +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5141252Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5141549Z duration_ms: 0.146132 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5142182Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5142514Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5142811Z 1..5 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5143132Z ok 120 - findBestMatch +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5143475Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5143775Z duration_ms: 4.1918 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5144123Z type: 'suite' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5144430Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5144764Z # Subtest: findAllMatches +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5145290Z # Subtest: should return all matches above threshold +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5145920Z ok 1 - should return all matches above threshold +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5146401Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5146709Z duration_ms: 0.781998 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5147073Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5147388Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5147864Z # Subtest: should sort matches by score descending +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5148466Z ok 2 - should sort matches by score descending +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5148937Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5149240Z duration_ms: 0.588807 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5149604Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5149910Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5150353Z # Subtest: should return empty array when no matches +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5150982Z ok 3 - should return empty array when no matches +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5151677Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5152203Z duration_ms: 1.699577 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5152580Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5152886Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5153283Z # Subtest: should include answer in results +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5153840Z ok 4 - should include answer in results +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5154268Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5154574Z duration_ms: 0.542952 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5154948Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5155257Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5155544Z 1..4 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5155871Z ok 121 - findAllMatches +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5156210Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5156511Z duration_ms: 3.859002 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5156858Z type: 'suite' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5157158Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5157741Z # Subtest: compareVersions orders semantic versions numerically +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5158583Z ok 122 - compareVersions orders semantic versions numerically +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5159124Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5159418Z duration_ms: 1.541032 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5159776Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5160081Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5160675Z # Subtest: isVersionAtLeast accepts v-prefixed Node.js versions +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5161503Z ok 123 - isVersionAtLeast accepts v-prefixed Node.js versions +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5175246Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5175573Z duration_ms: 0.255315 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5175926Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5176242Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5176928Z # Subtest: selectLatestSatisfyingMajor pins npm to supported 11.x releases +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5177890Z ok 124 - selectLatestSatisfyingMajor pins npm to supported 11.x releases +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5178574Z --- +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5178936Z duration_ms: 0.338821 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5179338Z type: 'test' +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5179684Z ... +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5180034Z 1..124 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5180559Z # tests 149 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5180931Z # suites 7 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5181278Z # pass 149 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5181611Z # fail 0 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5182234Z # cancelled 0 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5182600Z # skipped 0 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5182933Z # todo 0 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5183292Z # duration_ms 348.459283 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5316959Z ##[group]Run npm run example +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5317245Z ^[[36;1mnpm run example^[[0m +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5345583Z shell: /usr/bin/bash -e {0} +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.5345905Z ##[endgroup] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6369282Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6369981Z > lino-objects-codec@0.3.4 example +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6711723Z > node examples/basic_usage.js +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6712363Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6712679Z === Link Notation Objects Codec Examples === +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6713319Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6713793Z 1. Basic Types: +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6737470Z null -> (null) -> null +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6738996Z undefined -> (undefined) -> undefined +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6741050Z true -> (bool true) -> true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6742572Z false -> (bool false) -> false +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6745302Z 42 -> (int 42) -> 42 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6747231Z 3.14 -> (float 3.14) -> 3.14 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6749605Z Hello, World! -> (str SGVsbG8sIFdvcmxkIQ==) -> Hello, World! +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6753652Z Unicode: 你好世界 🌍 -> (str VW5pY29kZTog5L2g5aW95LiW55WMIPCfjI0=) -> Unicode: 你好世界 🌍 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6754479Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6754878Z 2. Collections: +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6755297Z Array: [1,2,3,"hello",true] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6755929Z Encoded: (array (int 1) (int 2) (int 3) (str aGVsbG8=) (bool true)) +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6759799Z Decoded: [1,2,3,"hello",true] +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6760715Z Match: true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6760923Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6761188Z Object: {"name":"Alice","age":30,"active":true} +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6762768Z Encoded: (object ((str bmFtZQ==) (str QWxpY2U=)) ((str YWdl) (int 30)) ((str YWN0aXZl) (bool true))) +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6765860Z Decoded: {"name":"Alice","age":30,"active":true} +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6766431Z Match: true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6766635Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6766827Z 3. Nested Structures: +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6767781Z Original: {"users":[{"id":1,"name":"Alice","admin":true},{"id":2,"name":"Bob","admin":false}],"metadata":{"version":1,"count":2}} +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6770148Z Encoded length: 296 characters +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6781509Z Decoded: {"users":[{"id":1,"name":"Alice","admin":true},{"id":2,"name":"Bob","admin":false}],"metadata":{"version":1,"count":2}} +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6782722Z Match: true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6782940Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6783116Z 4. Circular References: +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6783633Z Created self-referencing array +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6784253Z Encoded: (obj_0: array (int 1) (int 2) (int 3) obj_0) +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6784829Z Decoded correctly: true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6785294Z Circular reference preserved: true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6785661Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6785999Z Created self-referencing object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6786691Z Encoded: (obj_0: object ((str bmFtZQ==) (str cm9vdA==)) ((str c2VsZg==) obj_0)) +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6787419Z Decoded correctly: true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6787911Z Circular reference preserved: true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6788277Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6788621Z 5. Shared Object References: +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6789134Z Created container with 3 references to same object +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6790450Z Encoded: (object ((str Zmlyc3Q=) (obj_0: object ((str c2hhcmVk) (str ZGF0YQ==)) ((str dmFsdWU=) (int 42)))) ((str c2Vjb25k) obj_0) ((str dGhpcmQ=) obj_0)) +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6791652Z All three references point to same object: true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6792684Z Modified through 'first', visible in 'second': true +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6793157Z +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6793615Z === All examples completed successfully! === +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.6961457Z Post job cleanup. +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.8866029Z Post job cleanup. +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:04.9984156Z [command]/usr/bin/git version +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:05.0026184Z git version 2.53.0 +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:05.0071685Z Temporarily overriding HOME='/home/runner/work/_temp/99bf44d2-ed35-48b1-a885-18cdbb70d213' before making global git config changes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:05.0073475Z Adding repository directory to the temporary git global config as a safe directory +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:05.0087025Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/lino-objects-codec/lino-objects-codec +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:05.0124909Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:05.0159709Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:05.0400084Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:05.0424334Z http.https://github.com/.extraheader +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:05.0437932Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:05.0472277Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:05.0709865Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:05.0747624Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:05.1149418Z Cleaning up orphan processes +Test (Node.js on ubuntu-latest) UNKNOWN STEP 2026-05-03T19:07:05.1462745Z ##[warning]Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4366156Z Current runner version: '2.334.0' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4389891Z ##[group]Runner Image Provisioner +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4390606Z Hosted Compute Agent +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4391111Z Version: 20260213.493 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4391645Z Commit: 5c115507f6dd24b8de37d8bbe0bb4509d0cc0fa3 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4392221Z Build Date: 2026-02-13T00:28:41Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4392818Z Worker ID: {b42f89b3-e55f-4394-a904-c2312451b4d8} +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4393390Z Azure Region: westcentralus +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4393891Z ##[endgroup] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4395043Z ##[group]Operating System +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4395584Z Microsoft Windows Server 2025 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4396033Z 10.0.26100 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4396464Z Datacenter +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4396861Z ##[endgroup] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4397222Z ##[group]Runner Image +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4397695Z Image: windows-2025 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4398084Z Version: 20260413.84.1 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4399658Z Included Software: https://github.com/actions/runner-images/blob/win25/20260413.84/images/windows/Windows2025-Readme.md +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4401258Z Image Release: https://github.com/actions/runner-images/releases/tag/win25%2F20260413.84 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4402066Z ##[endgroup] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4404536Z ##[group]GITHUB_TOKEN Permissions +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4406431Z Actions: write +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4406886Z ArtifactMetadata: write +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4407357Z Attestations: write +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4407745Z Checks: write +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4408159Z Contents: write +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4408552Z Deployments: write +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4408976Z Discussions: write +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4409646Z Issues: write +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4410073Z Metadata: read +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4410480Z Models: read +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4410853Z Packages: write +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4411282Z Pages: write +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4411714Z PullRequests: write +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4412163Z RepositoryProjects: write +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4412628Z SecurityEvents: write +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4413101Z Statuses: write +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4413538Z VulnerabilityAlerts: read +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4414009Z ##[endgroup] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4416112Z Secret source: Actions +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4416678Z Prepare workflow directory +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4769180Z Prepare all required actions +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.4818690Z Getting action download info +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.8034458Z Download action repository 'actions/checkout@v4' (SHA:34e114876b0b11c390a56381ad16ebd13914f8d5) +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:48.9156935Z Download action repository 'actions/setup-node@v4' (SHA:49933ea5288caeca8642d1e84afbd3f7d6820020) +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.1793058Z Complete job name: Test (Node.js on windows-latest) +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.3206604Z ##[group]Run actions/checkout@v4 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.3207743Z with: +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.3208263Z repository: link-foundation/lino-objects-codec +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.3208972Z token: *** +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.3209343Z ssh-strict: true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.3209731Z ssh-user: git +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.3210153Z persist-credentials: true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.3210601Z clean: true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.3210999Z sparse-checkout-cone-mode: true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.3211488Z fetch-depth: 1 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.3211845Z fetch-tags: false +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.3212264Z show-progress: true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.3212641Z lfs: false +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.3213009Z submodules: false +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.3213379Z set-safe-directory: true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.3214107Z ##[endgroup] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.4887251Z Syncing repository: link-foundation/lino-objects-codec +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.4889734Z ##[group]Getting Git version info +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.4890719Z Working directory is 'D:\a\lino-objects-codec\lino-objects-codec' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.5770080Z [command]"C:\Program Files\Git\bin\git.exe" version +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.9291491Z git version 2.53.0.windows.2 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.9357673Z ##[endgroup] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.9382677Z Temporarily overriding HOME='D:\a\_temp\776ea862-7957-432f-91d7-abe9d881bd89' before making global git config changes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.9388060Z Adding repository directory to the temporary git global config as a safe directory +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.9394740Z [command]"C:\Program Files\Git\bin\git.exe" config --global --add safe.directory D:\a\lino-objects-codec\lino-objects-codec +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.9970253Z Deleting the contents of 'D:\a\lino-objects-codec\lino-objects-codec' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.9976060Z ##[group]Initializing the repository +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:49.9986245Z [command]"C:\Program Files\Git\bin\git.exe" init D:\a\lino-objects-codec\lino-objects-codec +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:50.0801050Z Initialized empty Git repository in D:/a/lino-objects-codec/lino-objects-codec/.git/ +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:50.0852106Z [command]"C:\Program Files\Git\bin\git.exe" remote add origin https://github.com/link-foundation/lino-objects-codec +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:50.1347520Z ##[endgroup] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:50.1348401Z ##[group]Disabling automatic garbage collection +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:50.1357186Z [command]"C:\Program Files\Git\bin\git.exe" config --local gc.auto 0 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:50.1643358Z ##[endgroup] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:50.1644423Z ##[group]Setting up auth +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:50.1662894Z [command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp core\.sshCommand +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:50.1998606Z [command]"C:\Program Files\Git\bin\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\"" +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:51.5477341Z [command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:51.5762341Z [command]"C:\Program Files\Git\bin\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :\"" +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:52.0869538Z [command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp ^includeIf\.gitdir: +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:52.1147910Z [command]"C:\Program Files\Git\bin\git.exe" submodule foreach --recursive "git config --local --show-origin --name-only --get-regexp remote.origin.url" +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:52.6125974Z [command]"C:\Program Files\Git\bin\git.exe" config --local http.https://github.com/.extraheader "AUTHORIZATION: basic ***" +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:52.6427075Z ##[endgroup] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:52.6427707Z ##[group]Fetching the repository +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:52.6448135Z [command]"C:\Program Files\Git\bin\git.exe" -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +e1303e202fc96b20cae6adfef52ff132d36f7366:refs/remotes/origin/main +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:53.9191409Z From https://github.com/link-foundation/lino-objects-codec +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:53.9192141Z * [new ref] e1303e202fc96b20cae6adfef52ff132d36f7366 -> origin/main +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:53.9570071Z ##[endgroup] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:53.9570869Z ##[group]Determining the checkout info +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:53.9572464Z ##[endgroup] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:53.9583404Z [command]"C:\Program Files\Git\bin\git.exe" sparse-checkout disable +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:53.9999145Z [command]"C:\Program Files\Git\bin\git.exe" config --local --unset-all extensions.worktreeConfig +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:54.0325900Z ##[group]Checking out the ref +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:54.0326533Z [command]"C:\Program Files\Git\bin\git.exe" checkout --progress --force -B main refs/remotes/origin/main +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:54.1338697Z Switched to a new branch 'main' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:54.1394044Z branch 'main' set up to track 'origin/main'. +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:54.1450667Z ##[endgroup] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:54.1895113Z [command]"C:\Program Files\Git\bin\git.exe" log -1 --format=%H +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:54.2155218Z e1303e202fc96b20cae6adfef52ff132d36f7366 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:54.2610299Z ##[group]Run actions/setup-node@v4 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:54.2610677Z with: +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:54.2610840Z node-version: 22 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:54.2611033Z always-auth: false +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:54.2611979Z check-latest: false +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:54.2612350Z token: *** +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:54.2612532Z ##[endgroup] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:54.5029793Z Found in cache @ C:\hostedtoolcache\windows\node\22.22.2\x64 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:54.5039263Z ##[group]Environment details +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:58.4601771Z node: v22.22.2 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:58.4602131Z npm: 10.9.7 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:58.4602341Z yarn: 1.22.22 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:58.4604370Z ##[endgroup] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:58.4889216Z ##[group]Run npm install +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:58.4889559Z ^[[36;1mnpm install^[[0m +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:58.5646288Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'" +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:06:58.5646635Z ##[endgroup] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:09.9765174Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:09.9770676Z > lino-objects-codec@0.3.4 prepare +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:09.9771050Z > husky || true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:09.9771160Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:10.0736572Z .git can't be found +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:10.0737082Z added 321 packages, and audited 322 packages in 6s +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:10.0738019Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:10.0738437Z 74 packages are looking for funding +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:10.0738949Z run `npm fund` for details +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:10.0799541Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:10.0800328Z 6 vulnerabilities (3 moderate, 3 high) +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:10.0800572Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:10.0800682Z To address all issues, run: +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:10.0800916Z npm audit fix +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:10.0801020Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:10.0801195Z Run `npm audit` for details. +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:11.6484731Z ##[group]Run npm test +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:11.6485054Z ^[[36;1mnpm test^[[0m +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:11.6542960Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'" +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:11.6543273Z ##[endgroup] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.2999417Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.2999975Z > lino-objects-codec@0.3.4 test +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.3000285Z > node --test tests/*.test.js +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.3000427Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.4360457Z TAP version 13 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5488241Z # Subtest: encode null +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5505900Z ok 1 - encode null +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5512549Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5525915Z duration_ms: 2.6485 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5570517Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5590420Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5591190Z # Subtest: decode null +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5618577Z ok 2 - decode null +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5623118Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5625705Z duration_ms: 3.7717 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5626153Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5626630Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5627226Z # Subtest: roundtrip null +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5648445Z ok 3 - roundtrip null +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5677006Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5678251Z duration_ms: 0.4581 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5696722Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5699683Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5700276Z # Subtest: encode undefined +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5700836Z ok 4 - encode undefined +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5701397Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5702334Z duration_ms: 0.2602 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5702826Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5703225Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5703665Z # Subtest: decode undefined +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5704124Z ok 5 - decode undefined +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5704593Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5704839Z duration_ms: 1.5213 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5705298Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5705698Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5706135Z # Subtest: roundtrip undefined +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5706612Z ok 6 - roundtrip undefined +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5707327Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5710502Z duration_ms: 0.3187 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5711755Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5712193Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5712641Z # Subtest: encode true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5713086Z ok 7 - encode true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5713479Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5713861Z duration_ms: 0.3178 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5714297Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5714715Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5715150Z # Subtest: encode false +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5715627Z ok 8 - encode false +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5716005Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5716360Z duration_ms: 0.202 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5717146Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5717877Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5718248Z # Subtest: decode true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5718682Z ok 9 - decode true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5719084Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5719473Z duration_ms: 0.7211 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5719894Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5720290Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5720675Z # Subtest: decode false +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5721133Z ok 10 - decode false +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5721551Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5721917Z duration_ms: 0.7888 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5722388Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5722751Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5723124Z # Subtest: roundtrip bool +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5723960Z ok 11 - roundtrip bool +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5724604Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5725448Z duration_ms: 0.4803 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5726657Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5727074Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5727506Z # Subtest: encode zero +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5727952Z ok 12 - encode zero +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5728355Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5728725Z duration_ms: 0.1801 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5729144Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5729505Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5730180Z # Subtest: encode positive int +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5730684Z ok 13 - encode positive int +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5731130Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5731481Z duration_ms: 0.165 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5731879Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5732271Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5735958Z # Subtest: encode negative int +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5736776Z ok 14 - encode negative int +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5737548Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5737985Z duration_ms: 0.1893 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5738408Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5738776Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5739190Z # Subtest: decode int +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5739621Z ok 15 - decode int +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5739989Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5740422Z duration_ms: 1.0405 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5740851Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5741224Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5741646Z # Subtest: roundtrip int +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5742130Z ok 16 - roundtrip int +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5742514Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5742881Z duration_ms: 0.7029 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5743282Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5743649Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5744042Z # Subtest: encode float +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5744522Z ok 17 - encode float +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5744948Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5745337Z duration_ms: 0.2088 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5747388Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5760259Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5762498Z # Subtest: decode float +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5763464Z ok 18 - decode float +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5763775Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5764204Z duration_ms: 0.2401 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5764664Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5765057Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5765492Z # Subtest: roundtrip float +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5766200Z ok 19 - roundtrip float +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5766640Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5767038Z duration_ms: 0.7731 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5767480Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5767871Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5768267Z # Subtest: float special values +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5768788Z ok 20 - float special values +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5769393Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5769811Z duration_ms: 0.3468 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5770270Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5770661Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5771086Z # Subtest: encode empty string +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5771615Z ok 21 - encode empty string +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5772465Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5772844Z duration_ms: 0.1772 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5773181Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5773410Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5773728Z # Subtest: encode simple string +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5774096Z ok 22 - encode simple string +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5774400Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5774612Z duration_ms: 0.2152 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5774855Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5775106Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5775586Z # Subtest: decode string +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5775911Z ok 23 - decode string +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5776441Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5776648Z duration_ms: 1.1059 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5776903Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5777131Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5777392Z # Subtest: roundtrip string +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5777711Z ok 24 - roundtrip string +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5777969Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5778188Z duration_ms: 0.9348 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5778440Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5778665Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5778941Z # Subtest: string with quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5779290Z ok 25 - string with quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5779565Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5779783Z duration_ms: 0.8177 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5780052Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5780270Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5887857Z # Subtest: self-referencing array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5904975Z ok 26 - self-referencing array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5905673Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.5926721Z duration_ms: 6.6759 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6010518Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6012680Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6013270Z # Subtest: array with self in middle +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6015383Z ok 27 - array with self in middle +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6021131Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6029849Z duration_ms: 0.6281 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6044557Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6045472Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6045879Z # Subtest: nested array with circular reference +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6046471Z ok 28 - nested array with circular reference +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6048360Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6048650Z duration_ms: 0.7334 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6049451Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6050106Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6052069Z # Subtest: self-referencing object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6053295Z ok 29 - self-referencing object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6053963Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6055174Z duration_ms: 1.9578 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6056415Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6056996Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6057406Z # Subtest: object with multiple self-references +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6058704Z ok 30 - object with multiple self-references +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6059522Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6059766Z duration_ms: 1.37 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6060038Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6060264Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6060604Z # Subtest: nested object with circular reference +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6061121Z ok 31 - nested object with circular reference +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6061516Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6061773Z duration_ms: 0.7729 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6062075Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6062303Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6062806Z # Subtest: complex circular structure (tree with back-references) +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6064286Z ok 32 - complex circular structure (tree with back-references) +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6064846Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6065090Z duration_ms: 0.834 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6065373Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6065602Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6065919Z # Subtest: shared object reference +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6066347Z ok 33 - shared object reference +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6066664Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6066899Z duration_ms: 0.5039 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6067181Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6067401Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6067765Z # Subtest: shared object reference - modification +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6068308Z ok 34 - shared object reference - modification +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6068973Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6069211Z duration_ms: 1.4817 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6069472Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6069728Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6070030Z # Subtest: multiple shared objects +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6070422Z ok 35 - multiple shared objects +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6070736Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6070947Z duration_ms: 1.2553 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6071211Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6071444Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6071737Z # Subtest: shared array reference +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6072155Z ok 36 - shared array reference +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6072433Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6072656Z duration_ms: 1.7195 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6073964Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6074189Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6074556Z # Subtest: circular and shared references combined +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6075060Z ok 37 - circular and shared references combined +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6075424Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6075650Z duration_ms: 0.9342 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6075901Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6076137Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6076456Z # Subtest: deeply nested circular structure +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6076921Z ok 38 - deeply nested circular structure +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6077287Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6077489Z duration_ms: 1.4076 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6077772Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6078004Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6078356Z # Subtest: array and object circular reference +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6078833Z ok 39 - array and object circular reference +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6079167Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6079386Z duration_ms: 0.424 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6079640Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6079857Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6080340Z # Subtest: encoded format uses built-in references, not (ref X) marker +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6081044Z ok 40 - encoded format uses built-in references, not (ref X) marker +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6081483Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6081706Z duration_ms: 1.0494 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6081963Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6082179Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6082626Z # Subtest: decoder rejects legacy (ref X) marker as unknown type +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6083507Z ok 41 - decoder rejects legacy (ref X) marker as unknown type +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6083975Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6084215Z duration_ms: 0.8911 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6084518Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6084747Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6085004Z # Subtest: encode empty array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6085347Z ok 42 - encode empty array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6085638Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6085856Z duration_ms: 2.7185 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6086118Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6086337Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6086603Z # Subtest: decode empty array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6086938Z ok 43 - decode empty array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6087224Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6087460Z duration_ms: 3.8768 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6087708Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6087948Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6088229Z # Subtest: roundtrip empty array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6088866Z ok 44 - roundtrip empty array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6089195Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6089416Z duration_ms: 3.5217 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6089662Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6089886Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6090468Z # Subtest: encode array with basic types +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6091364Z ok 45 - encode array with basic types +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6091862Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6092112Z duration_ms: 0.5356 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6092397Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6092627Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6093014Z # Subtest: decode array with basic types +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6093465Z ok 46 - decode array with basic types +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6093820Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6094074Z duration_ms: 0.8642 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6094350Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6094583Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6094884Z # Subtest: roundtrip array with mixed types +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6095316Z ok 47 - roundtrip array with mixed types +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6095659Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6095886Z duration_ms: 3.3984 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6096127Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6096365Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6096598Z # Subtest: nested arrays +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6096874Z ok 48 - nested arrays +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6097141Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6097368Z duration_ms: 1.6713 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6097652Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6097889Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6098161Z # Subtest: encode empty object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6098509Z ok 49 - encode empty object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6098798Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6099004Z duration_ms: 0.2236 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6099269Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6099494Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6100055Z # Subtest: decode empty object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6100409Z ok 50 - decode empty object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6100688Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6100932Z duration_ms: 0.6972 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6101208Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6101464Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6101791Z # Subtest: roundtrip empty object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6102218Z ok 51 - roundtrip empty object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6102542Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6102767Z duration_ms: 0.8166 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6103075Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6103309Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6103653Z # Subtest: encode object with basic types +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6104164Z ok 52 - encode object with basic types +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6104542Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6104786Z duration_ms: 0.4606 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6105076Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6105411Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6105772Z # Subtest: decode object with basic types +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6106285Z ok 53 - decode object with basic types +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6106690Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6106934Z duration_ms: 0.467 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6107569Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6107795Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6108101Z # Subtest: roundtrip object with mixed types +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6108560Z ok 54 - roundtrip object with mixed types +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6108909Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6109142Z duration_ms: 1.5978 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6109622Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6109855Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6110102Z # Subtest: nested objects +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6110416Z ok 55 - nested objects +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6110672Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6110904Z duration_ms: 1.871 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6111157Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6111384Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6111672Z # Subtest: mixed nested structures +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6112060Z ok 56 - mixed nested structures +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6112357Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6112573Z duration_ms: 1.1834 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6112835Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6113062Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6113302Z # Subtest: array of objects +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6113626Z ok 57 - array of objects +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6113890Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6114117Z duration_ms: 0.9041 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6114383Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6114606Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6114899Z # Subtest: object with array values +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6115296Z ok 58 - object with array values +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6115614Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6115840Z duration_ms: 0.6976 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6116092Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6116326Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6116617Z # Subtest: deeply nested structure +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6117005Z ok 59 - deeply nested structure +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6117332Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6117549Z duration_ms: 0.7752 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6117817Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.6118049Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7112703Z # Subtest: escapeReference - simple string +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7115001Z ok 60 - escapeReference - simple string +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7115583Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7116173Z duration_ms: 2.463 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7116597Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7116915Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7119084Z # Subtest: escapeReference - numbers +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7123722Z ok 61 - escapeReference - numbers +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7124456Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7137421Z duration_ms: 0.1567 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7138063Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7138444Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7181861Z # Subtest: escapeReference - booleans +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7331219Z ok 62 - escapeReference - booleans +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7342019Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7346014Z duration_ms: 0.1118 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7349148Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7349432Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7352917Z # Subtest: escapeReference - string with spaces +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7354019Z ok 63 - escapeReference - string with spaces +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7354572Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7355428Z duration_ms: 0.1886 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7356103Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7366194Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7377570Z # Subtest: escapeReference - string with single quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7426628Z ok 64 - escapeReference - string with single quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7480384Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7502820Z duration_ms: 0.1995 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7508104Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7509833Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7511389Z # Subtest: escapeReference - string with double quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7527348Z ok 65 - escapeReference - string with double quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7527837Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7535333Z duration_ms: 0.1103 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7538908Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7539293Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7539738Z # Subtest: escapeReference - string with both quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7540363Z ok 66 - escapeReference - string with both quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7540803Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7541097Z duration_ms: 0.2512 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7541456Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7541730Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7542167Z # Subtest: escapeReference - string with parentheses +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7543006Z ok 67 - escapeReference - string with parentheses +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7543537Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7544231Z duration_ms: 0.1246 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7544727Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7545094Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7546876Z # Subtest: escapeReference - string with colon +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7547581Z ok 68 - escapeReference - string with colon +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7548089Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7548444Z duration_ms: 0.4052 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7548835Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7549177Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7549672Z # Subtest: escapeReference - string with newline +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7550344Z ok 69 - escapeReference - string with newline +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7551205Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7551428Z duration_ms: 0.6639 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7551703Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7551979Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7552368Z # Subtest: unescapeReference - simple string +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7552933Z ok 70 - unescapeReference - simple string +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7553353Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7553619Z duration_ms: 0.331 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7554561Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7554859Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7555304Z # Subtest: unescapeReference - doubled double quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7556411Z ok 71 - unescapeReference - doubled double quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7556836Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7557080Z duration_ms: 0.1644 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7557381Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7557643Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7558051Z # Subtest: unescapeReference - doubled single quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7558648Z ok 72 - unescapeReference - doubled single quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7563729Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7564006Z duration_ms: 0.161 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7564318Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7564575Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7564969Z # Subtest: unescapeReference - null/undefined +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7565483Z ok 73 - unescapeReference - null/undefined +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7565856Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7566098Z duration_ms: 0.1413 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7566382Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7566622Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7566914Z # Subtest: jsonToLino - null +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7567334Z ok 74 - jsonToLino - null +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7567635Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7567874Z duration_ms: 0.2468 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7568165Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7568401Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7568711Z # Subtest: jsonToLino - undefined +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7569119Z ok 75 - jsonToLino - undefined +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7569441Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7569682Z duration_ms: 0.1236 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7569972Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7570219Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7570532Z # Subtest: jsonToLino - number +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7570905Z ok 76 - jsonToLino - number +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7571544Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7571779Z duration_ms: 0.1541 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7572040Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7572279Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7572561Z # Subtest: jsonToLino - boolean +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7572903Z ok 77 - jsonToLino - boolean +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7573194Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7573386Z duration_ms: 0.1405 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7573616Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7573820Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7574116Z # Subtest: jsonToLino - simple string +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7574532Z ok 78 - jsonToLino - simple string +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7574834Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7575028Z duration_ms: 0.1303 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7575284Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7575514Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7575788Z # Subtest: jsonToLino - string with spaces +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7576678Z ok 79 - jsonToLino - string with spaces +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7577101Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7577359Z duration_ms: 0.1442 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7578153Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7578583Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7578868Z # Subtest: jsonToLino - empty array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7579488Z ok 80 - jsonToLino - empty array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7579800Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7580008Z duration_ms: 0.1272 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7580265Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7580478Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7580774Z # Subtest: jsonToLino - array of numbers +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7581465Z ok 81 - jsonToLino - array of numbers +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7581793Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7582015Z duration_ms: 0.1627 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7582258Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7582480Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7582784Z # Subtest: jsonToLino - array of strings +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7583192Z ok 82 - jsonToLino - array of strings +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7583567Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7583779Z duration_ms: 0.148 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7584043Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7584269Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7584522Z # Subtest: jsonToLino - nested array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7584983Z ok 83 - jsonToLino - nested array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7585300Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7585514Z duration_ms: 0.1429 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7585773Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7585966Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7586267Z # Subtest: jsonToLino - empty object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7586665Z ok 84 - jsonToLino - empty object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7586974Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7587194Z duration_ms: 0.125 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7587417Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7587649Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7587947Z # Subtest: jsonToLino - simple object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7588394Z ok 85 - jsonToLino - simple object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7588755Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7589007Z duration_ms: 0.3047 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7589315Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7589569Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7589959Z # Subtest: jsonToLino - object with nested object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7590565Z ok 86 - jsonToLino - object with nested object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7590925Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7591123Z duration_ms: 0.2107 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7591395Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7591618Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7591928Z # Subtest: jsonToLino - object with array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7592363Z ok 87 - jsonToLino - object with array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7592684Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7592903Z duration_ms: 0.1491 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7593174Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7593398Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7593717Z # Subtest: linoToJson - null input +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7594093Z ok 88 - linoToJson - null input +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7594409Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7594646Z duration_ms: 0.1923 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7594905Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7595135Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7595426Z # Subtest: linoToJson - primitives +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7595827Z ok 89 - linoToJson - primitives +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7596121Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7596353Z duration_ms: 4.5374 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7596625Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7597805Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7598118Z # Subtest: linoToJson - simple string +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7598528Z ok 90 - linoToJson - simple string +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7598866Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7599087Z duration_ms: 0.2354 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7599675Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7599898Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7600253Z # Subtest: linoToJson - empty link +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7600662Z ok 91 - linoToJson - empty link +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7600976Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7601201Z duration_ms: 0.81 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7601441Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7601671Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7601976Z # Subtest: linoToJson - array of numbers +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7602403Z ok 92 - linoToJson - array of numbers +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7602728Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7602945Z duration_ms: 0.2916 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7603209Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7603425Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7603724Z # Subtest: linoToJson - simple object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7604146Z ok 93 - linoToJson - simple object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7604477Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7604680Z duration_ms: 0.2813 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7604969Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7605217Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7605488Z # Subtest: linoToJson - nested object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7605907Z ok 94 - linoToJson - nested object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7606262Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7606486Z duration_ms: 0.5648 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7606766Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7607201Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7607543Z # Subtest: linoToJson - object with array value +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7607920Z ok 95 - linoToJson - object with array value +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7608142Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7608273Z duration_ms: 0.2477 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7608438Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7608582Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7608757Z # Subtest: roundtrip - simple object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7609006Z ok 96 - roundtrip - simple object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7609192Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7609327Z duration_ms: 0.2248 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7609486Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7609628Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7609804Z # Subtest: roundtrip - nested object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7610036Z ok 97 - roundtrip - nested object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7610228Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7610358Z duration_ms: 0.25 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7610517Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7610659Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7610840Z # Subtest: roundtrip - object with array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7611101Z ok 98 - roundtrip - object with array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7611292Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7611432Z duration_ms: 0.1852 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7611587Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7611718Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7611899Z # Subtest: roundtrip - complex object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7612132Z ok 99 - roundtrip - complex object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7612328Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7612459Z duration_ms: 0.2324 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7612605Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7612751Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7612928Z # Subtest: formatAsLino - empty array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7613164Z ok 100 - formatAsLino - empty array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7613360Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7613489Z duration_ms: 0.1164 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7613694Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7614370Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7614737Z # Subtest: formatAsLino - array of values +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7615242Z ok 101 - formatAsLino - array of values +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7616127Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7616442Z duration_ms: 0.0951 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7616628Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7617313Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7617794Z # Subtest: formatIndented - basic object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7618256Z ok 102 - formatIndented - basic object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7618467Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7618613Z duration_ms: 0.2232 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7618779Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7618922Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7619121Z # Subtest: formatIndented - custom indentation +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7619423Z ok 103 - formatIndented - custom indentation +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7619879Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7620018Z duration_ms: 0.1018 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7620199Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7620341Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7620557Z # Subtest: formatIndented - value with double quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7620893Z ok 104 - formatIndented - value with double quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7621125Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7621270Z duration_ms: 0.0897 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7621436Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7621577Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7621817Z # Subtest: formatIndented - key with space +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7622080Z ok 105 - formatIndented - key with space +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7622291Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7622426Z duration_ms: 0.3258 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7622583Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7622727Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7622901Z # Subtest: formatIndented - null value +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7623157Z ok 106 - formatIndented - null value +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7623358Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7623492Z duration_ms: 0.2346 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7623659Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7623839Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7624015Z # Subtest: formatIndented - requires id +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7624272Z ok 107 - formatIndented - requires id +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7624468Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7624601Z duration_ms: 0.6789 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7624759Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7624894Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7625200Z # Subtest: formatIndented - requires plain object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7625510Z ok 108 - formatIndented - requires plain object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7625831Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7626040Z duration_ms: 0.1248 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7626535Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7626782Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7627207Z # Subtest: parseIndented - basic object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7627487Z ok 109 - parseIndented - basic object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7627691Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7627817Z duration_ms: 0.6559 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7627973Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7628119Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7628312Z # Subtest: parseIndented - value with quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7628588Z ok 110 - parseIndented - value with quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7628790Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7628927Z duration_ms: 0.2706 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7629091Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7629230Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7629442Z # Subtest: parseIndented - empty lines are skipped +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7629753Z ok 111 - parseIndented - empty lines are skipped +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7629979Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7630115Z duration_ms: 0.2863 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7630265Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7630404Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7630581Z # Subtest: parseIndented - requires text +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7630839Z ok 112 - parseIndented - requires text +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7631053Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7631182Z duration_ms: 0.1317 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7631340Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7631478Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7631713Z # Subtest: formatIndented/parseIndented roundtrip - basic +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7632083Z ok 113 - formatIndented/parseIndented roundtrip - basic +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7632327Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7632472Z duration_ms: 0.3289 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7632640Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7632774Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7633037Z # Subtest: formatIndented/parseIndented roundtrip - with quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7633507Z ok 114 - formatIndented/parseIndented roundtrip - with quotes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7633838Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7633982Z duration_ms: 0.2071 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7634137Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7634284Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7680309Z # Subtest: levenshteinDistance +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7680838Z # Subtest: should return 0 for identical strings +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7681392Z ok 1 - should return 0 for identical strings +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7681806Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7682071Z duration_ms: 0.9636 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7682401Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7682951Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7683458Z # Subtest: should return correct distance for single character difference +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7684251Z ok 2 - should return correct distance for single character difference +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7684778Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7685052Z duration_ms: 0.1639 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7685362Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7685629Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7686091Z # Subtest: should return length for completely different strings +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7686811Z ok 3 - should return length for completely different strings +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7687298Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7687548Z duration_ms: 1.0166 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7687851Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7688106Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7688411Z # Subtest: should handle empty strings +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7688863Z ok 4 - should handle empty strings +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7689235Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7689495Z duration_ms: 0.1421 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7689805Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7690072Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7690454Z # Subtest: should handle case-sensitive comparison +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7691026Z ok 5 - should handle case-sensitive comparison +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7691453Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7691692Z duration_ms: 0.2707 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7692008Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7693333Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7693646Z 1..5 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7693918Z ok 115 - levenshteinDistance +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7694205Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7694435Z duration_ms: 3.73 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7694701Z type: 'suite' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7694949Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7695217Z # Subtest: stringSimilarity +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7696129Z # Subtest: should return 1 for identical strings +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7696843Z ok 1 - should return 1 for identical strings +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7697232Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7697466Z duration_ms: 0.1883 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7710249Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7710927Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7711666Z # Subtest: should return 0 for completely different strings +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7712317Z ok 2 - should return 0 for completely different strings +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7713927Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7714985Z duration_ms: 0.186 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7795368Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7795732Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7796209Z # Subtest: should return value between 0 and 1 for similar strings +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7796709Z ok 3 - should return value between 0 and 1 for similar strings +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7797202Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7797476Z duration_ms: 0.3426 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7797786Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7798035Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7798591Z # Subtest: should handle different length strings +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7799399Z ok 4 - should handle different length strings +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7800070Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7800437Z duration_ms: 0.4273 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7801033Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7801416Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7801595Z 1..4 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7801849Z ok 116 - stringSimilarity +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7802128Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7802346Z duration_ms: 1.8028 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7802620Z type: 'suite' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7802838Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7803042Z # Subtest: normalizeQuestion +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7803268Z # Subtest: should convert to lowercase +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7803524Z ok 1 - should convert to lowercase +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7803741Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7803888Z duration_ms: 0.4893 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7804070Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7804224Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7804394Z # Subtest: should remove punctuation +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7804647Z ok 2 - should remove punctuation +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7804846Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7805359Z duration_ms: 0.1641 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7805699Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7805965Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7806389Z # Subtest: should standardize whitespace +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7806850Z ok 3 - should standardize whitespace +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7807246Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7807514Z duration_ms: 0.1521 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7807857Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7808096Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7808477Z # Subtest: should handle combined normalization +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7809044Z ok 4 - should handle combined normalization +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7809456Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7809644Z duration_ms: 0.1344 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7809819Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7809965Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7810096Z 1..4 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7810246Z ok 117 - normalizeQuestion +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7810427Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7810577Z duration_ms: 1.1839 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7810744Z type: 'suite' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7810895Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7811044Z # Subtest: extractKeywords +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7811340Z # Subtest: should extract all keywords when no stopwords provided +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7811728Z ok 1 - should extract all keywords when no stopwords provided +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7811993Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7812140Z duration_ms: 0.5361 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7812480Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7812632Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7812877Z # Subtest: should filter out English stopwords when provided +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7813228Z ok 2 - should filter out English stopwords when provided +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7813484Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7813630Z duration_ms: 0.1978 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7813897Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7814108Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7814341Z # Subtest: should filter out Russian stopwords when provided +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7814682Z ok 3 - should filter out Russian stopwords when provided +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7815113Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7815256Z duration_ms: 0.2717 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7815439Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7815592Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7815780Z # Subtest: should add stems for longer words +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7816062Z ok 4 - should add stems for longer words +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7816274Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7816434Z duration_ms: 0.1777 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7816608Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7816749Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7816943Z # Subtest: should respect minWordLength option +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7817243Z ok 5 - should respect minWordLength option +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7817458Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7817606Z duration_ms: 0.1683 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7817770Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7817933Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7818163Z # Subtest: should disable stemming when stemLength is 0 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7818493Z ok 6 - should disable stemming when stemLength is 0 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7818737Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7818888Z duration_ms: 0.1549 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7819058Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7819219Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7819351Z 1..6 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7819518Z ok 118 - extractKeywords +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7819692Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7819835Z duration_ms: 1.874 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7820012Z type: 'suite' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7820155Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7820321Z # Subtest: keywordSimilarity +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7820581Z # Subtest: should return 1 for identical questions +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7820870Z ok 1 - should return 1 for identical questions +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7821114Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7821249Z duration_ms: 0.4931 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7821419Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7821565Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7821811Z # Subtest: should return positive similarity for similar questions +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7822388Z ok 2 - should return positive similarity for similar questions +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7822668Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7822810Z duration_ms: 0.1854 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7822988Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7823133Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7823377Z # Subtest: should return low similarity for different questions +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7823758Z ok 3 - should return low similarity for different questions +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7824020Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7824171Z duration_ms: 0.1761 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7824349Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7824495Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7824736Z # Subtest: should return 0 for completely different questions +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7825085Z ok 4 - should return 0 for completely different questions +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7825346Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7825497Z duration_ms: 0.1687 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7825669Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7825824Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7825958Z 1..4 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7826164Z ok 119 - keywordSimilarity +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7826343Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7826484Z duration_ms: 1.2327 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7826658Z type: 'suite' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7826808Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7826969Z # Subtest: findBestMatch +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7827225Z # Subtest: should return exact match with score 1.0 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7827618Z ok 1 - should return exact match with score 1.0 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7827861Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7828001Z duration_ms: 0.3561 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7828167Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7828318Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7828540Z # Subtest: should find similar question with low threshold +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7828885Z ok 2 - should find similar question with low threshold +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7829137Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7829283Z duration_ms: 0.7089 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7829472Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7829629Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7829849Z # Subtest: should return null when no match above threshold +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7830196Z ok 3 - should return null when no match above threshold +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7830436Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7830583Z duration_ms: 1.9842 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7830768Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7830911Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7831100Z # Subtest: should respect threshold option +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7831358Z ok 4 - should respect threshold option +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7831575Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7831716Z duration_ms: 0.759 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7831884Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7832027Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7832203Z # Subtest: should handle Russian questions +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7832454Z ok 5 - should handle Russian questions +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7832660Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7832796Z duration_ms: 0.1696 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7832963Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7833119Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7833237Z 1..5 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7833391Z ok 120 - findBestMatch +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7833548Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7833693Z duration_ms: 4.2203 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7833868Z type: 'suite' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7834108Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7834327Z # Subtest: findAllMatches +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7834561Z # Subtest: should return all matches above threshold +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7835676Z ok 1 - should return all matches above threshold +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7836112Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7836339Z duration_ms: 0.7283 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7837482Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7837661Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7838200Z # Subtest: should sort matches by score descending +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7838652Z ok 2 - should sort matches by score descending +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7838896Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7839056Z duration_ms: 0.561 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7839234Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7839578Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7839791Z # Subtest: should return empty array when no matches +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7840111Z ok 3 - should return empty array when no matches +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7840340Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7840496Z duration_ms: 1.783 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7840664Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7840812Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7841004Z # Subtest: should include answer in results +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7841272Z ok 4 - should include answer in results +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7841486Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7841629Z duration_ms: 0.4914 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7841800Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7841955Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7842081Z 1..4 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7842240Z ok 121 - findAllMatches +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7842399Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7842547Z duration_ms: 3.7798 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7842711Z type: 'suite' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7842846Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7843113Z # Subtest: compareVersions orders semantic versions numerically +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7843516Z ok 122 - compareVersions orders semantic versions numerically +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7843778Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7843918Z duration_ms: 1.0994 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7844076Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7844219Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7844526Z # Subtest: isVersionAtLeast accepts v-prefixed Node.js versions +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7845009Z ok 123 - isVersionAtLeast accepts v-prefixed Node.js versions +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7845279Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7845406Z duration_ms: 0.172 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7845572Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7845722Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7846167Z # Subtest: selectLatestSatisfyingMajor pins npm to supported 11.x releases +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7847796Z ok 124 - selectLatestSatisfyingMajor pins npm to supported 11.x releases +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7848431Z --- +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7848656Z duration_ms: 0.2056 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7848926Z type: 'test' +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7849169Z ... +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7849377Z 1..124 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7849591Z # tests 149 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7849803Z # suites 7 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7850012Z # pass 149 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7850208Z # fail 0 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7850422Z # cancelled 0 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7850634Z # skipped 0 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7850838Z # todo 0 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.7851071Z # duration_ms 382.504 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.8771301Z ##[group]Run npm run example +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.8771609Z ^[[36;1mnpm run example^[[0m +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.8829391Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'" +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:12.8829700Z ##[endgroup] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5148480Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5149119Z > lino-objects-codec@0.3.4 example +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5149904Z > node examples/basic_usage.js +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5150160Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5849602Z === Link Notation Objects Codec Examples === +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5849861Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5851318Z 1. Basic Types: +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5878929Z null -> (null) -> null +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5881100Z undefined -> (undefined) -> undefined +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5882706Z true -> (bool true) -> true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5883911Z false -> (bool false) -> false +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5886364Z 42 -> (int 42) -> 42 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5888086Z 3.14 -> (float 3.14) -> 3.14 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5890429Z Hello, World! -> (str SGVsbG8sIFdvcmxkIQ==) -> Hello, World! +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5894616Z Unicode: 你好世界 🌍 -> (str VW5pY29kZTog5L2g5aW95LiW55WMIPCfjI0=) -> Unicode: 你好世界 🌍 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5895469Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5895544Z 2. Collections: +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5895730Z Array: [1,2,3,"hello",true] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5897068Z Encoded: (array (int 1) (int 2) (int 3) (str aGVsbG8=) (bool true)) +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5901119Z Decoded: [1,2,3,"hello",true] +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5901576Z Match: true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5901741Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5902422Z Object: {"name":"Alice","age":30,"active":true} +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5903810Z Encoded: (object ((str bmFtZQ==) (str QWxpY2U=)) ((str YWdl) (int 30)) ((str YWN0aXZl) (bool true))) +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5906467Z Decoded: {"name":"Alice","age":30,"active":true} +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5906915Z Match: true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5907064Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5907202Z 3. Nested Structures: +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5907769Z Original: {"users":[{"id":1,"name":"Alice","admin":true},{"id":2,"name":"Bob","admin":false}],"metadata":{"version":1,"count":2}} +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5910608Z Encoded length: 296 characters +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5921583Z Decoded: {"users":[{"id":1,"name":"Alice","admin":true},{"id":2,"name":"Bob","admin":false}],"metadata":{"version":1,"count":2}} +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5922349Z Match: true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5922472Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5922564Z 4. Circular References: +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5922774Z Created self-referencing array +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5923057Z Encoded: (obj_0: array (int 1) (int 2) (int 3) obj_0) +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5924205Z Decoded correctly: true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5924694Z Circular reference preserved: true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5924961Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5925478Z Created self-referencing object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5926114Z Encoded: (obj_0: object ((str bmFtZQ==) (str cm9vdA==)) ((str c2VsZg==) obj_0)) +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5927456Z Decoded correctly: true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5927924Z Circular reference preserved: true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5928168Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5928385Z 5. Shared Object References: +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5928768Z Created container with 3 references to same object +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5929497Z Encoded: (object ((str Zmlyc3Q=) (obj_0: object ((str c2hhcmVk) (str ZGF0YQ==)) ((str dmFsdWU=) (int 42)))) ((str c2Vjb25k) obj_0) ((str dGhpcmQ=) obj_0)) +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5931283Z All three references point to same object: true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5931848Z Modified through 'first', visible in 'second': true +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5932185Z +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.5934753Z === All examples completed successfully! === +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.6863768Z Post job cleanup. +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:13.9226715Z Post job cleanup. +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:14.1455177Z [command]"C:\Program Files\Git\bin\git.exe" version +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:14.1751384Z git version 2.53.0.windows.2 +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:14.1841475Z Temporarily overriding HOME='D:\a\_temp\666be1a3-a67e-4f84-833e-e40933357aec' before making global git config changes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:14.1842814Z Adding repository directory to the temporary git global config as a safe directory +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:14.1853235Z [command]"C:\Program Files\Git\bin\git.exe" config --global --add safe.directory D:\a\lino-objects-codec\lino-objects-codec +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:14.2163193Z [command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp core\.sshCommand +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:14.2460300Z [command]"C:\Program Files\Git\bin\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\"" +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:14.8244939Z [command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:14.8492092Z http.https://github.com/.extraheader +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:14.8541180Z [command]"C:\Program Files\Git\bin\git.exe" config --local --unset-all http.https://github.com/.extraheader +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:14.8852459Z [command]"C:\Program Files\Git\bin\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :\"" +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:15.4235643Z [command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp ^includeIf\.gitdir: +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:15.4531717Z [command]"C:\Program Files\Git\bin\git.exe" submodule foreach --recursive "git config --local --show-origin --name-only --get-regexp remote.origin.url" +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:16.0132032Z Cleaning up orphan processes +Test (Node.js on windows-latest) UNKNOWN STEP 2026-05-03T19:07:16.0170737Z ##[warning]Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ +Release UNKNOWN STEP 2026-05-03T19:07:20.1525125Z Current runner version: '2.334.0' +Release UNKNOWN STEP 2026-05-03T19:07:20.1550532Z ##[group]Runner Image Provisioner +Release UNKNOWN STEP 2026-05-03T19:07:20.1551386Z Hosted Compute Agent +Release UNKNOWN STEP 2026-05-03T19:07:20.1551927Z Version: 20260213.493 +Release UNKNOWN STEP 2026-05-03T19:07:20.1552524Z Commit: 5c115507f6dd24b8de37d8bbe0bb4509d0cc0fa3 +Release UNKNOWN STEP 2026-05-03T19:07:20.1553272Z Build Date: 2026-02-13T00:28:41Z +Release UNKNOWN STEP 2026-05-03T19:07:20.1553912Z Worker ID: {410485e1-a088-4692-92b4-d4569ee62fb6} +Release UNKNOWN STEP 2026-05-03T19:07:20.1554567Z Azure Region: northcentralus +Release UNKNOWN STEP 2026-05-03T19:07:20.1555228Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:20.1557051Z ##[group]Operating System +Release UNKNOWN STEP 2026-05-03T19:07:20.1557708Z Ubuntu +Release UNKNOWN STEP 2026-05-03T19:07:20.1558580Z 24.04.4 +Release UNKNOWN STEP 2026-05-03T19:07:20.1559079Z LTS +Release UNKNOWN STEP 2026-05-03T19:07:20.1559510Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:20.1560036Z ##[group]Runner Image +Release UNKNOWN STEP 2026-05-03T19:07:20.1560613Z Image: ubuntu-24.04 +Release UNKNOWN STEP 2026-05-03T19:07:20.1561122Z Version: 20260413.86.1 +Release UNKNOWN STEP 2026-05-03T19:07:20.1562323Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20260413.86/images/ubuntu/Ubuntu2404-Readme.md +Release UNKNOWN STEP 2026-05-03T19:07:20.1563748Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20260413.86 +Release UNKNOWN STEP 2026-05-03T19:07:20.1564688Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:20.1565842Z ##[group]GITHUB_TOKEN Permissions +Release UNKNOWN STEP 2026-05-03T19:07:20.1568064Z Contents: write +Release UNKNOWN STEP 2026-05-03T19:07:20.1568726Z Metadata: read +Release UNKNOWN STEP 2026-05-03T19:07:20.1569220Z PullRequests: write +Release UNKNOWN STEP 2026-05-03T19:07:20.1569725Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:20.1571783Z Secret source: Actions +Release UNKNOWN STEP 2026-05-03T19:07:20.1572757Z Prepare workflow directory +Release UNKNOWN STEP 2026-05-03T19:07:20.1927614Z Prepare all required actions +Release UNKNOWN STEP 2026-05-03T19:07:20.1967037Z Getting action download info +Release UNKNOWN STEP 2026-05-03T19:07:20.5857940Z Download action repository 'actions/checkout@v4' (SHA:34e114876b0b11c390a56381ad16ebd13914f8d5) +Release UNKNOWN STEP 2026-05-03T19:07:20.7341313Z Download action repository 'actions/setup-node@v4' (SHA:49933ea5288caeca8642d1e84afbd3f7d6820020) +Release UNKNOWN STEP 2026-05-03T19:07:20.9900175Z Complete job name: Release +Release UNKNOWN STEP 2026-05-03T19:07:21.0705885Z ##[group]Run actions/checkout@v4 +Release UNKNOWN STEP 2026-05-03T19:07:21.0707138Z with: +Release UNKNOWN STEP 2026-05-03T19:07:21.0707569Z fetch-depth: 0 +Release UNKNOWN STEP 2026-05-03T19:07:21.0708089Z repository: link-foundation/lino-objects-codec +Release UNKNOWN STEP 2026-05-03T19:07:21.0708884Z token: *** +Release UNKNOWN STEP 2026-05-03T19:07:21.0709300Z ssh-strict: true +Release UNKNOWN STEP 2026-05-03T19:07:21.0709728Z ssh-user: git +Release UNKNOWN STEP 2026-05-03T19:07:21.0710171Z persist-credentials: true +Release UNKNOWN STEP 2026-05-03T19:07:21.0710672Z clean: true +Release UNKNOWN STEP 2026-05-03T19:07:21.0711108Z sparse-checkout-cone-mode: true +Release UNKNOWN STEP 2026-05-03T19:07:21.0711628Z fetch-tags: false +Release UNKNOWN STEP 2026-05-03T19:07:21.0712072Z show-progress: true +Release UNKNOWN STEP 2026-05-03T19:07:21.0712527Z lfs: false +Release UNKNOWN STEP 2026-05-03T19:07:21.0712943Z submodules: false +Release UNKNOWN STEP 2026-05-03T19:07:21.0713379Z set-safe-directory: true +Release UNKNOWN STEP 2026-05-03T19:07:21.0714109Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:21.1884453Z Syncing repository: link-foundation/lino-objects-codec +Release UNKNOWN STEP 2026-05-03T19:07:21.1887989Z ##[group]Getting Git version info +Release UNKNOWN STEP 2026-05-03T19:07:21.1889636Z Working directory is '/home/runner/work/lino-objects-codec/lino-objects-codec' +Release UNKNOWN STEP 2026-05-03T19:07:21.1891697Z [command]/usr/bin/git version +Release UNKNOWN STEP 2026-05-03T19:07:21.1894287Z git version 2.53.0 +Release UNKNOWN STEP 2026-05-03T19:07:21.1923521Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:21.1948823Z Temporarily overriding HOME='/home/runner/work/_temp/107a18e5-25ce-4d63-9e66-ff2442414da2' before making global git config changes +Release UNKNOWN STEP 2026-05-03T19:07:21.1951798Z Adding repository directory to the temporary git global config as a safe directory +Release UNKNOWN STEP 2026-05-03T19:07:21.1955233Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/lino-objects-codec/lino-objects-codec +Release UNKNOWN STEP 2026-05-03T19:07:21.1992058Z Deleting the contents of '/home/runner/work/lino-objects-codec/lino-objects-codec' +Release UNKNOWN STEP 2026-05-03T19:07:21.1995514Z ##[group]Initializing the repository +Release UNKNOWN STEP 2026-05-03T19:07:21.2000728Z [command]/usr/bin/git init /home/runner/work/lino-objects-codec/lino-objects-codec +Release UNKNOWN STEP 2026-05-03T19:07:21.2093596Z hint: Using 'master' as the name for the initial branch. This default branch name +Release UNKNOWN STEP 2026-05-03T19:07:21.2096101Z hint: will change to "main" in Git 3.0. To configure the initial branch name +Release UNKNOWN STEP 2026-05-03T19:07:21.2099098Z hint: to use in all of your new repositories, which will suppress this warning, +Release UNKNOWN STEP 2026-05-03T19:07:21.2100881Z hint: call: +Release UNKNOWN STEP 2026-05-03T19:07:21.2102010Z hint: +Release UNKNOWN STEP 2026-05-03T19:07:21.2103275Z hint: git config --global init.defaultBranch +Release UNKNOWN STEP 2026-05-03T19:07:21.2104773Z hint: +Release UNKNOWN STEP 2026-05-03T19:07:21.2106120Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +Release UNKNOWN STEP 2026-05-03T19:07:21.2108831Z hint: 'development'. The just-created branch can be renamed via this command: +Release UNKNOWN STEP 2026-05-03T19:07:21.2110642Z hint: +Release UNKNOWN STEP 2026-05-03T19:07:21.2112028Z hint: git branch -m +Release UNKNOWN STEP 2026-05-03T19:07:21.2113264Z hint: +Release UNKNOWN STEP 2026-05-03T19:07:21.2114710Z hint: Disable this message with "git config set advice.defaultBranchName false" +Release UNKNOWN STEP 2026-05-03T19:07:21.2121058Z Initialized empty Git repository in /home/runner/work/lino-objects-codec/lino-objects-codec/.git/ +Release UNKNOWN STEP 2026-05-03T19:07:21.2128145Z [command]/usr/bin/git remote add origin https://github.com/link-foundation/lino-objects-codec +Release UNKNOWN STEP 2026-05-03T19:07:21.2146959Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:21.2148843Z ##[group]Disabling automatic garbage collection +Release UNKNOWN STEP 2026-05-03T19:07:21.2150386Z [command]/usr/bin/git config --local gc.auto 0 +Release UNKNOWN STEP 2026-05-03T19:07:21.2187216Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:21.2189010Z ##[group]Setting up auth +Release UNKNOWN STEP 2026-05-03T19:07:21.2195374Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +Release UNKNOWN STEP 2026-05-03T19:07:21.2228159Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +Release UNKNOWN STEP 2026-05-03T19:07:21.2512403Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +Release UNKNOWN STEP 2026-05-03T19:07:21.2545494Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +Release UNKNOWN STEP 2026-05-03T19:07:21.2767612Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +Release UNKNOWN STEP 2026-05-03T19:07:21.2807322Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +Release UNKNOWN STEP 2026-05-03T19:07:21.3043247Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic *** +Release UNKNOWN STEP 2026-05-03T19:07:21.3079407Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:21.3080886Z ##[group]Fetching the repository +Release UNKNOWN STEP 2026-05-03T19:07:21.3090313Z [command]/usr/bin/git -c protocol.version=2 fetch --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +Release UNKNOWN STEP 2026-05-03T19:07:21.8104802Z From https://github.com/link-foundation/lino-objects-codec +Release UNKNOWN STEP 2026-05-03T19:07:21.8106766Z * [new branch] issue-1-843d779c4cdb -> origin/issue-1-843d779c4cdb +Release UNKNOWN STEP 2026-05-03T19:07:21.8108988Z * [new branch] issue-11-c74c0836aeba -> origin/issue-11-c74c0836aeba +Release UNKNOWN STEP 2026-05-03T19:07:21.8111136Z * [new branch] issue-15-b28422959bc5 -> origin/issue-15-b28422959bc5 +Release UNKNOWN STEP 2026-05-03T19:07:21.8113061Z * [new branch] issue-17-ace5a094a724 -> origin/issue-17-ace5a094a724 +Release UNKNOWN STEP 2026-05-03T19:07:21.8115002Z * [new branch] issue-19-d88ab983ff7d -> origin/issue-19-d88ab983ff7d +Release UNKNOWN STEP 2026-05-03T19:07:21.8117256Z * [new branch] issue-20-d21ab54e8ff1 -> origin/issue-20-d21ab54e8ff1 +Release UNKNOWN STEP 2026-05-03T19:07:21.8119559Z * [new branch] issue-22-e5ea3b44ef6b -> origin/issue-22-e5ea3b44ef6b +Release UNKNOWN STEP 2026-05-03T19:07:21.8121686Z * [new branch] issue-25-76b0e5ea19d6 -> origin/issue-25-76b0e5ea19d6 +Release UNKNOWN STEP 2026-05-03T19:07:21.8123824Z * [new branch] issue-27-eb86cc75f92a -> origin/issue-27-eb86cc75f92a +Release UNKNOWN STEP 2026-05-03T19:07:21.8125978Z * [new branch] issue-29-7f70f0d87db9 -> origin/issue-29-7f70f0d87db9 +Release UNKNOWN STEP 2026-05-03T19:07:21.8128375Z * [new branch] issue-3-397c5eeac29f -> origin/issue-3-397c5eeac29f +Release UNKNOWN STEP 2026-05-03T19:07:21.8130691Z * [new branch] issue-31-bd2874f2d076 -> origin/issue-31-bd2874f2d076 +Release UNKNOWN STEP 2026-05-03T19:07:21.8132824Z * [new branch] issue-5-9641b6fb00d3 -> origin/issue-5-9641b6fb00d3 +Release UNKNOWN STEP 2026-05-03T19:07:21.8135399Z * [new branch] issue-7-7a98520cd689 -> origin/issue-7-7a98520cd689 +Release UNKNOWN STEP 2026-05-03T19:07:21.8138311Z * [new branch] issue-8-8f8d9acce5f1 -> origin/issue-8-8f8d9acce5f1 +Release UNKNOWN STEP 2026-05-03T19:07:21.8141060Z * [new branch] issue-9-bef9e95e65ef -> origin/issue-9-bef9e95e65ef +Release UNKNOWN STEP 2026-05-03T19:07:21.8143442Z * [new branch] main -> origin/main +Release UNKNOWN STEP 2026-05-03T19:07:21.8145512Z * [new tag] csharp-v0.2.0 -> csharp-v0.2.0 +Release UNKNOWN STEP 2026-05-03T19:07:21.8147786Z * [new tag] rust-v0.2.0 -> rust-v0.2.0 +Release UNKNOWN STEP 2026-05-03T19:07:21.8149245Z * [new tag] v0.1.1 -> v0.1.1 +Release UNKNOWN STEP 2026-05-03T19:07:21.8150416Z * [new tag] v0.3.0 -> v0.3.0 +Release UNKNOWN STEP 2026-05-03T19:07:21.8151632Z * [new tag] v0.3.1 -> v0.3.1 +Release UNKNOWN STEP 2026-05-03T19:07:21.8152819Z * [new tag] v0.3.2 -> v0.3.2 +Release UNKNOWN STEP 2026-05-03T19:07:21.8154083Z * [new tag] v0.3.3 -> v0.3.3 +Release UNKNOWN STEP 2026-05-03T19:07:21.8165188Z [command]/usr/bin/git branch --list --remote origin/main +Release UNKNOWN STEP 2026-05-03T19:07:21.8190164Z origin/main +Release UNKNOWN STEP 2026-05-03T19:07:21.8198713Z [command]/usr/bin/git rev-parse refs/remotes/origin/main +Release UNKNOWN STEP 2026-05-03T19:07:21.8217663Z e1303e202fc96b20cae6adfef52ff132d36f7366 +Release UNKNOWN STEP 2026-05-03T19:07:21.8223400Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:21.8225160Z ##[group]Determining the checkout info +Release UNKNOWN STEP 2026-05-03T19:07:21.8228026Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:21.8229189Z [command]/usr/bin/git sparse-checkout disable +Release UNKNOWN STEP 2026-05-03T19:07:21.8261931Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +Release UNKNOWN STEP 2026-05-03T19:07:21.8287571Z ##[group]Checking out the ref +Release UNKNOWN STEP 2026-05-03T19:07:21.8291169Z [command]/usr/bin/git checkout --progress --force -B main refs/remotes/origin/main +Release UNKNOWN STEP 2026-05-03T19:07:21.8506885Z Switched to a new branch 'main' +Release UNKNOWN STEP 2026-05-03T19:07:21.8509202Z branch 'main' set up to track 'origin/main'. +Release UNKNOWN STEP 2026-05-03T19:07:21.8519322Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:21.8554518Z [command]/usr/bin/git log -1 --format=%H +Release UNKNOWN STEP 2026-05-03T19:07:21.8575442Z e1303e202fc96b20cae6adfef52ff132d36f7366 +Release UNKNOWN STEP 2026-05-03T19:07:21.8899172Z ##[group]Run actions/setup-node@v4 +Release UNKNOWN STEP 2026-05-03T19:07:21.8900253Z with: +Release UNKNOWN STEP 2026-05-03T19:07:21.8900993Z node-version: 22 +Release UNKNOWN STEP 2026-05-03T19:07:21.8901927Z registry-url: https://registry.npmjs.org +Release UNKNOWN STEP 2026-05-03T19:07:21.8903101Z always-auth: false +Release UNKNOWN STEP 2026-05-03T19:07:21.8903962Z check-latest: false +Release UNKNOWN STEP 2026-05-03T19:07:21.8905055Z token: *** +Release UNKNOWN STEP 2026-05-03T19:07:21.8905811Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:22.0761778Z Found in cache @ /opt/hostedtoolcache/node/22.22.2/x64 +Release UNKNOWN STEP 2026-05-03T19:07:22.0767379Z ##[group]Environment details +Release UNKNOWN STEP 2026-05-03T19:07:25.0954702Z node: v22.22.2 +Release UNKNOWN STEP 2026-05-03T19:07:25.0955277Z npm: 10.9.7 +Release UNKNOWN STEP 2026-05-03T19:07:25.0955582Z yarn: 1.22.22 +Release UNKNOWN STEP 2026-05-03T19:07:25.0956878Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:25.1074642Z ##[group]Run npm install +Release UNKNOWN STEP 2026-05-03T19:07:25.1074946Z ^[[36;1mnpm install^[[0m +Release UNKNOWN STEP 2026-05-03T19:07:25.1108623Z shell: /usr/bin/bash -e {0} +Release UNKNOWN STEP 2026-05-03T19:07:25.1108873Z env: +Release UNKNOWN STEP 2026-05-03T19:07:25.1109118Z NPM_CONFIG_USERCONFIG: /home/runner/work/_temp/.npmrc +Release UNKNOWN STEP 2026-05-03T19:07:25.1109482Z NODE_AUTH_TOKEN: XXXXX-XXXXX-XXXXX-XXXXX +Release UNKNOWN STEP 2026-05-03T19:07:25.1109744Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:29.6396440Z +Release UNKNOWN STEP 2026-05-03T19:07:29.6403531Z > lino-objects-codec@0.3.4 prepare +Release UNKNOWN STEP 2026-05-03T19:07:29.6403929Z > husky || true +Release UNKNOWN STEP 2026-05-03T19:07:29.6404082Z +Release UNKNOWN STEP 2026-05-03T19:07:29.6969285Z .git can't be found +Release UNKNOWN STEP 2026-05-03T19:07:29.6970021Z added 321 packages, and audited 322 packages in 5s +Release UNKNOWN STEP 2026-05-03T19:07:29.6971006Z +Release UNKNOWN STEP 2026-05-03T19:07:29.6971814Z 74 packages are looking for funding +Release UNKNOWN STEP 2026-05-03T19:07:29.6972472Z run `npm fund` for details +Release UNKNOWN STEP 2026-05-03T19:07:29.7030196Z +Release UNKNOWN STEP 2026-05-03T19:07:29.7030678Z 6 vulnerabilities (3 moderate, 3 high) +Release UNKNOWN STEP 2026-05-03T19:07:29.7031121Z +Release UNKNOWN STEP 2026-05-03T19:07:29.7031466Z To address all issues, run: +Release UNKNOWN STEP 2026-05-03T19:07:29.7031950Z npm audit fix +Release UNKNOWN STEP 2026-05-03T19:07:29.7032197Z +Release UNKNOWN STEP 2026-05-03T19:07:29.7032424Z Run `npm audit` for details. +Release UNKNOWN STEP 2026-05-03T19:07:29.7554938Z ##[group]Run node scripts/setup-npm.mjs +Release UNKNOWN STEP 2026-05-03T19:07:29.7555323Z ^[[36;1mnode scripts/setup-npm.mjs^[[0m +Release UNKNOWN STEP 2026-05-03T19:07:29.7577110Z shell: /usr/bin/bash -e {0} +Release UNKNOWN STEP 2026-05-03T19:07:29.7577357Z env: +Release UNKNOWN STEP 2026-05-03T19:07:29.7577601Z NPM_CONFIG_USERCONFIG: /home/runner/work/_temp/.npmrc +Release UNKNOWN STEP 2026-05-03T19:07:29.7577931Z NODE_AUTH_TOKEN: XXXXX-XXXXX-XXXXX-XXXXX +Release UNKNOWN STEP 2026-05-03T19:07:29.7578194Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:31.3757437Z 10.9.7 +Release UNKNOWN STEP 2026-05-03T19:07:31.3805698Z 10.9.7 +Release UNKNOWN STEP 2026-05-03T19:07:31.3827488Z Current npm version: 10.9.7 +Release UNKNOWN STEP 2026-05-03T19:07:31.3828019Z Trying npm install -g npm@11... +Release UNKNOWN STEP 2026-05-03T19:07:34.6458814Z npm error code MODULE_NOT_FOUND +Release UNKNOWN STEP 2026-05-03T19:07:34.6459700Z npm error Cannot find module 'promise-retry' +Release UNKNOWN STEP 2026-05-03T19:07:34.6460091Z npm error Require stack: +Release UNKNOWN STEP 2026-05-03T19:07:34.6460807Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6461857Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/index.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6462774Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/index.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6463627Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/node_modules/libnpmfund/lib/index.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6464395Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/lib/utils/reify-output.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6465136Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/lib/utils/reify-finish.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6465848Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/lib/commands/install.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6467910Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/lib/npm.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6468694Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/lib/cli/entry.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6469429Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/lib/cli.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6470120Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/bin/npm-cli.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6471147Z npm error A complete log of this run can be found in: /home/runner/.npm/_logs/2026-05-03T19_07_31_437Z-debug-0.log +Release UNKNOWN STEP 2026-05-03T19:07:34.6699363Z npm error code MODULE_NOT_FOUND +Release UNKNOWN STEP 2026-05-03T19:07:34.6700389Z Warning: npm install -g npm@11 failed: npm install -g npm@11 exited with code 1 +Release UNKNOWN STEP 2026-05-03T19:07:34.6701401Z npm error Cannot find module 'promise-retry' +Release UNKNOWN STEP 2026-05-03T19:07:34.6702029Z npm error Require stack: +Release UNKNOWN STEP 2026-05-03T19:07:34.6703428Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6705382Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/index.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6707614Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/index.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6709221Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/node_modules/libnpmfund/lib/index.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6710796Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/lib/utils/reify-output.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6712032Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/lib/utils/reify-finish.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6713383Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/lib/commands/install.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6714584Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/lib/npm.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6715770Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/lib/cli/entry.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6717339Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/lib/cli.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6718526Z npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/bin/npm-cli.js +Release UNKNOWN STEP 2026-05-03T19:07:34.6720322Z npm error A complete log of this run can be found in: /home/runner/.npm/_logs/2026-05-03T19_07_31_437Z-debug-0.log +Release UNKNOWN STEP 2026-05-03T19:07:34.6721589Z Trying registry tarball fallback... +Release UNKNOWN STEP 2026-05-03T19:07:36.8538560Z Installing npm 11.13.0 from registry tarball... +Release UNKNOWN STEP 2026-05-03T19:07:37.3571040Z 11.13.0 +Release UNKNOWN STEP 2026-05-03T19:07:37.3634228Z 11.13.0 +Release UNKNOWN STEP 2026-05-03T19:07:37.3634707Z Updated npm version: 11.13.0 +Release UNKNOWN STEP 2026-05-03T19:07:37.3841134Z ##[group]Run node scripts/check-changesets.mjs +Release UNKNOWN STEP 2026-05-03T19:07:37.3841495Z ^[[36;1mnode scripts/check-changesets.mjs^[[0m +Release UNKNOWN STEP 2026-05-03T19:07:37.3863184Z shell: /usr/bin/bash -e {0} +Release UNKNOWN STEP 2026-05-03T19:07:37.3863427Z env: +Release UNKNOWN STEP 2026-05-03T19:07:37.3863666Z NPM_CONFIG_USERCONFIG: /home/runner/work/_temp/.npmrc +Release UNKNOWN STEP 2026-05-03T19:07:37.3863992Z NODE_AUTH_TOKEN: XXXXX-XXXXX-XXXXX-XXXXX +Release UNKNOWN STEP 2026-05-03T19:07:37.3864257Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:37.4174793Z Checking for pending changeset files... +Release UNKNOWN STEP 2026-05-03T19:07:37.4175270Z +Release UNKNOWN STEP 2026-05-03T19:07:37.4178797Z Found 1 changeset file(s) +Release UNKNOWN STEP 2026-05-03T19:07:37.4180150Z has_changesets=true +Release UNKNOWN STEP 2026-05-03T19:07:37.4180827Z changeset_count=1 +Release UNKNOWN STEP 2026-05-03T19:07:37.4282601Z ##[group]Run node scripts/version-and-commit.mjs --mode changeset +Release UNKNOWN STEP 2026-05-03T19:07:37.4283095Z ^[[36;1mnode scripts/version-and-commit.mjs --mode changeset^[[0m +Release UNKNOWN STEP 2026-05-03T19:07:37.4304198Z shell: /usr/bin/bash -e {0} +Release UNKNOWN STEP 2026-05-03T19:07:37.4304424Z env: +Release UNKNOWN STEP 2026-05-03T19:07:37.4304664Z NPM_CONFIG_USERCONFIG: /home/runner/work/_temp/.npmrc +Release UNKNOWN STEP 2026-05-03T19:07:37.4304988Z NODE_AUTH_TOKEN: XXXXX-XXXXX-XXXXX-XXXXX +Release UNKNOWN STEP 2026-05-03T19:07:37.4305245Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:39.3869836Z Parsed configuration: { mode: 'changeset', bumpType: '', description: '(none)' } +Release UNKNOWN STEP 2026-05-03T19:07:39.4041505Z Checking for remote changes... +Release UNKNOWN STEP 2026-05-03T19:07:39.6099350Z From https://github.com/link-foundation/lino-objects-codec +Release UNKNOWN STEP 2026-05-03T19:07:39.6100089Z * branch main -> FETCH_HEAD +Release UNKNOWN STEP 2026-05-03T19:07:39.6220637Z e1303e202fc96b20cae6adfef52ff132d36f7366 +Release UNKNOWN STEP 2026-05-03T19:07:39.6292824Z e1303e202fc96b20cae6adfef52ff132d36f7366 +Release UNKNOWN STEP 2026-05-03T19:07:39.6299660Z Current version: 0.3.4 +Release UNKNOWN STEP 2026-05-03T19:07:39.6300181Z Running changeset version... +Release UNKNOWN STEP 2026-05-03T19:07:39.7171600Z npm warn Unknown user config "always-auth". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options. +Release UNKNOWN STEP 2026-05-03T19:07:39.7302506Z +Release UNKNOWN STEP 2026-05-03T19:07:39.7303244Z > lino-objects-codec@0.3.4 changeset:version +Release UNKNOWN STEP 2026-05-03T19:07:39.7303871Z > node scripts/changeset-version.mjs +Release UNKNOWN STEP 2026-05-03T19:07:39.7304080Z +Release UNKNOWN STEP 2026-05-03T19:07:40.2872325Z Running changeset version... +Release UNKNOWN STEP 2026-05-03T19:07:40.5400938Z npm warn Unknown user config "always-auth". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options. +Release UNKNOWN STEP 2026-05-03T19:07:40.9689262Z 🦋 All files have been updated. Review them and commit at your leisure +Release UNKNOWN STEP 2026-05-03T19:07:40.9873359Z +Release UNKNOWN STEP 2026-05-03T19:07:40.9873982Z Synchronizing package-lock.json... +Release UNKNOWN STEP 2026-05-03T19:07:41.2262985Z npm warn Unknown user config "always-auth". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options. +Release UNKNOWN STEP 2026-05-03T19:07:41.6526461Z +Release UNKNOWN STEP 2026-05-03T19:07:41.6527348Z > lino-objects-codec@0.3.5 prepare +Release UNKNOWN STEP 2026-05-03T19:07:41.6527925Z > husky || true +Release UNKNOWN STEP 2026-05-03T19:07:41.6528113Z +Release UNKNOWN STEP 2026-05-03T19:07:41.6909248Z .git can't be found +Release UNKNOWN STEP 2026-05-03T19:07:41.6910143Z up to date, audited 322 packages in 648ms +Release UNKNOWN STEP 2026-05-03T19:07:41.6910888Z +Release UNKNOWN STEP 2026-05-03T19:07:41.6911216Z 74 packages are looking for funding +Release UNKNOWN STEP 2026-05-03T19:07:41.6911746Z run `npm fund` for details +Release UNKNOWN STEP 2026-05-03T19:07:41.7003328Z +Release UNKNOWN STEP 2026-05-03T19:07:41.7003939Z 6 vulnerabilities (3 moderate, 3 high) +Release UNKNOWN STEP 2026-05-03T19:07:41.7004788Z +Release UNKNOWN STEP 2026-05-03T19:07:41.7005252Z To address all issues, run: +Release UNKNOWN STEP 2026-05-03T19:07:41.7005928Z npm audit fix +Release UNKNOWN STEP 2026-05-03T19:07:41.7006589Z +Release UNKNOWN STEP 2026-05-03T19:07:41.7006995Z Run `npm audit` for details. +Release UNKNOWN STEP 2026-05-03T19:07:41.7119371Z +Release UNKNOWN STEP 2026-05-03T19:07:41.7120255Z ✅ Version bump complete with synchronized package-lock.json +Release UNKNOWN STEP 2026-05-03T19:07:41.7239523Z New version: 0.3.5 +Release UNKNOWN STEP 2026-05-03T19:07:41.7434502Z D js/.changeset/issue-31-npm-oidc-setup.md +Release UNKNOWN STEP 2026-05-03T19:07:41.7435111Z M js/CHANGELOG.md +Release UNKNOWN STEP 2026-05-03T19:07:41.7435821Z M js/package-lock.json +Release UNKNOWN STEP 2026-05-03T19:07:41.7436484Z M js/package.json +Release UNKNOWN STEP 2026-05-03T19:07:41.7440829Z Changes detected, committing... +Release UNKNOWN STEP 2026-05-03T19:07:41.7684307Z [main 2af866a] 0.3.5 +Release UNKNOWN STEP 2026-05-03T19:07:41.7684887Z 4 files changed, 9 insertions(+), 8 deletions(-) +Release UNKNOWN STEP 2026-05-03T19:07:41.7685610Z delete mode 100644 js/.changeset/issue-31-npm-oidc-setup.md +Release UNKNOWN STEP 2026-05-03T19:07:42.6114831Z To https://github.com/link-foundation/lino-objects-codec +Release UNKNOWN STEP 2026-05-03T19:07:42.6115484Z e1303e2..2af866a main -> main +Release UNKNOWN STEP 2026-05-03T19:07:42.6160131Z ✅ Version bump committed and pushed to main +Release UNKNOWN STEP 2026-05-03T19:07:42.6263577Z ##[group]Run node scripts/publish-to-npm.mjs --should-pull +Release UNKNOWN STEP 2026-05-03T19:07:42.6264002Z ^[[36;1mnode scripts/publish-to-npm.mjs --should-pull^[[0m +Release UNKNOWN STEP 2026-05-03T19:07:42.6286188Z shell: /usr/bin/bash -e {0} +Release UNKNOWN STEP 2026-05-03T19:07:42.6286715Z env: +Release UNKNOWN STEP 2026-05-03T19:07:42.6286959Z NPM_CONFIG_USERCONFIG: /home/runner/work/_temp/.npmrc +Release UNKNOWN STEP 2026-05-03T19:07:42.6287294Z NODE_AUTH_TOKEN: XXXXX-XXXXX-XXXXX-XXXXX +Release UNKNOWN STEP 2026-05-03T19:07:42.6287572Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:07:43.8350078Z From https://github.com/link-foundation/lino-objects-codec +Release UNKNOWN STEP 2026-05-03T19:07:43.8350982Z * branch main -> FETCH_HEAD +Release UNKNOWN STEP 2026-05-03T19:07:43.8419171Z Already up to date. +Release UNKNOWN STEP 2026-05-03T19:07:43.8434140Z Package to publish: lino-objects-codec +Release UNKNOWN STEP 2026-05-03T19:07:43.8434697Z Current version to publish: 0.3.5 +Release UNKNOWN STEP 2026-05-03T19:07:43.8435238Z Checking if version 0.3.5 is already published... +Release UNKNOWN STEP 2026-05-03T19:07:44.0415833Z npm warn Unknown user config "always-auth". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options. +Release UNKNOWN STEP 2026-05-03T19:07:44.1934369Z npm error code E404 +Release UNKNOWN STEP 2026-05-03T19:07:44.1935412Z npm error 404 No match found for version 0.3.5 +Release UNKNOWN STEP 2026-05-03T19:07:44.1935993Z npm error 404 +Release UNKNOWN STEP 2026-05-03T19:07:44.1940099Z npm error 404 The requested resource 'lino-objects-codec@0.3.5' could not be found or you do not have permission to access it. +Release UNKNOWN STEP 2026-05-03T19:07:44.1941328Z npm error 404 +Release UNKNOWN STEP 2026-05-03T19:07:44.1942101Z npm error 404 Note that you can also install from a +Release UNKNOWN STEP 2026-05-03T19:07:44.1945412Z npm error 404 tarball, folder, http url, or git url. +Release UNKNOWN STEP 2026-05-03T19:07:44.1961232Z npm error A complete log of this run can be found in: /home/runner/.npm/_logs/2026-05-03T19_07_43_900Z-debug-0.log +Release UNKNOWN STEP 2026-05-03T19:07:44.2025634Z Version 0.3.5 not found on npm, proceeding with publish... +Release UNKNOWN STEP 2026-05-03T19:07:44.2026024Z Publish attempt 1 of 3... +Release UNKNOWN STEP 2026-05-03T19:07:44.2931788Z npm warn Unknown user config "always-auth". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options. +Release UNKNOWN STEP 2026-05-03T19:07:44.3076266Z +Release UNKNOWN STEP 2026-05-03T19:07:44.3076996Z > lino-objects-codec@0.3.5 changeset:publish +Release UNKNOWN STEP 2026-05-03T19:07:44.3077578Z > changeset publish +Release UNKNOWN STEP 2026-05-03T19:07:44.3077732Z +Release UNKNOWN STEP 2026-05-03T19:07:44.6122302Z 🦋 ^[[36minfo^[[39m npm info lino-objects-codec +Release UNKNOWN STEP 2026-05-03T19:07:44.8987306Z 🦋 ^[[36minfo^[[39m lino-objects-codec is being published because our local version (0.3.5) has not been published on npm +Release UNKNOWN STEP 2026-05-03T19:07:44.8989111Z 🦋 ^[[36minfo^[[39m Publishing ^[[36m"lino-objects-codec"^[[39m at ^[[32m"0.3.5"^[[39m +Release UNKNOWN STEP 2026-05-03T19:07:48.3231725Z 🦋 ^[[32msuccess^[[39m packages published successfully: +Release UNKNOWN STEP 2026-05-03T19:07:48.3232512Z 🦋 lino-objects-codec@0.3.5 +Release UNKNOWN STEP 2026-05-03T19:07:48.3233016Z 🦋 Creating git tag... +Release UNKNOWN STEP 2026-05-03T19:07:48.3233459Z 🦋 New tag: v0.3.5 +Release UNKNOWN STEP 2026-05-03T19:07:48.3396032Z Changeset output: +Release UNKNOWN STEP 2026-05-03T19:07:48.3396493Z +Release UNKNOWN STEP 2026-05-03T19:07:48.3396804Z > lino-objects-codec@0.3.5 changeset:publish +Release UNKNOWN STEP 2026-05-03T19:07:48.3397311Z > changeset publish +Release UNKNOWN STEP 2026-05-03T19:07:48.3397530Z +Release UNKNOWN STEP 2026-05-03T19:07:48.3398014Z 🦋 ^[[36minfo^[[39m npm info lino-objects-codec +Release UNKNOWN STEP 2026-05-03T19:07:48.3398939Z 🦋 ^[[36minfo^[[39m lino-objects-codec is being published because our local version (0.3.5) has not been published on npm +Release UNKNOWN STEP 2026-05-03T19:07:48.3399719Z 🦋 ^[[36minfo^[[39m Publishing ^[[36m"lino-objects-codec"^[[39m at ^[[32m"0.3.5"^[[39m +Release UNKNOWN STEP 2026-05-03T19:07:48.3400243Z 🦋 ^[[32msuccess^[[39m packages published successfully: +Release UNKNOWN STEP 2026-05-03T19:07:48.3400852Z 🦋 lino-objects-codec@0.3.5 +Release UNKNOWN STEP 2026-05-03T19:07:48.3401126Z 🦋 Creating git tag... +Release UNKNOWN STEP 2026-05-03T19:07:48.3401370Z 🦋 New tag: v0.3.5 +Release UNKNOWN STEP 2026-05-03T19:07:48.3401491Z +Release UNKNOWN STEP 2026-05-03T19:07:48.3402092Z npm warn Unknown user config "always-auth". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options. +Release UNKNOWN STEP 2026-05-03T19:07:48.3402617Z +Release UNKNOWN STEP 2026-05-03T19:07:48.3402775Z Verifying package was published to npm... +Release UNKNOWN STEP 2026-05-03T19:07:50.5334434Z npm warn Unknown user config "always-auth". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options. +Release UNKNOWN STEP 2026-05-03T19:07:50.6309561Z npm error code E404 +Release UNKNOWN STEP 2026-05-03T19:07:50.6310208Z npm error 404 No match found for version 0.3.5 +Release UNKNOWN STEP 2026-05-03T19:07:50.6310663Z npm error 404 +Release UNKNOWN STEP 2026-05-03T19:07:50.6314974Z npm error 404 The requested resource 'lino-objects-codec@0.3.5' could not be found or you do not have permission to access it. +Release UNKNOWN STEP 2026-05-03T19:07:50.6316164Z npm error 404 +Release UNKNOWN STEP 2026-05-03T19:07:50.6317032Z npm error 404 Note that you can also install from a +Release UNKNOWN STEP 2026-05-03T19:07:50.6319698Z npm error 404 tarball, folder, http url, or git url. +Release UNKNOWN STEP 2026-05-03T19:07:50.6333862Z npm error A complete log of this run can be found in: /home/runner/.npm/_logs/2026-05-03T19_07_50_394Z-debug-0.log +Release UNKNOWN STEP 2026-05-03T19:07:50.6415056Z ##[error]lino-objects-codec@0.3.5 is not on npm after publish. +Release UNKNOWN STEP 2026-05-03T19:07:50.6424418Z Publish failed: Package lino-objects-codec@0.3.5 not found on npm after publish attempt, waiting 10s before retry... +Release UNKNOWN STEP 2026-05-03T19:08:00.6497385Z Publish attempt 2 of 3... +Release UNKNOWN STEP 2026-05-03T19:08:00.7386871Z npm warn Unknown user config "always-auth". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options. +Release UNKNOWN STEP 2026-05-03T19:08:00.7525734Z +Release UNKNOWN STEP 2026-05-03T19:08:00.7526259Z > lino-objects-codec@0.3.5 changeset:publish +Release UNKNOWN STEP 2026-05-03T19:08:00.7527033Z > changeset publish +Release UNKNOWN STEP 2026-05-03T19:08:00.7527251Z +Release UNKNOWN STEP 2026-05-03T19:08:01.0525877Z 🦋 ^[[36minfo^[[39m npm info lino-objects-codec +Release UNKNOWN STEP 2026-05-03T19:08:01.3477052Z 🦋 ^[[33mwarn^[[39m lino-objects-codec is not being published because version 0.3.5 is already published on npm +Release UNKNOWN STEP 2026-05-03T19:08:01.3477830Z 🦋 ^[[33mwarn^[[39m No unpublished projects to publish +Release UNKNOWN STEP 2026-05-03T19:08:01.3605202Z Changeset output: +Release UNKNOWN STEP 2026-05-03T19:08:01.3605474Z +Release UNKNOWN STEP 2026-05-03T19:08:01.3605791Z > lino-objects-codec@0.3.5 changeset:publish +Release UNKNOWN STEP 2026-05-03T19:08:01.3606107Z > changeset publish +Release UNKNOWN STEP 2026-05-03T19:08:01.3606951Z +Release UNKNOWN STEP 2026-05-03T19:08:01.3607265Z 🦋 ^[[36minfo^[[39m npm info lino-objects-codec +Release UNKNOWN STEP 2026-05-03T19:08:01.3607481Z +Release UNKNOWN STEP 2026-05-03T19:08:01.3608141Z npm warn Unknown user config "always-auth". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options. +Release UNKNOWN STEP 2026-05-03T19:08:01.3609180Z 🦋 ^[[33mwarn^[[39m lino-objects-codec is not being published because version 0.3.5 is already published on npm +Release UNKNOWN STEP 2026-05-03T19:08:01.3609828Z 🦋 ^[[33mwarn^[[39m No unpublished projects to publish +Release UNKNOWN STEP 2026-05-03T19:08:01.3610047Z +Release UNKNOWN STEP 2026-05-03T19:08:01.3610208Z Verifying package was published to npm... +Release UNKNOWN STEP 2026-05-03T19:08:03.5516651Z npm warn Unknown user config "always-auth". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options. +Release UNKNOWN STEP 2026-05-03T19:08:03.6322868Z 0.3.5 +Release UNKNOWN STEP 2026-05-03T19:08:03.6393704Z ✅ Published lino-objects-codec@0.3.5 to npm +Release UNKNOWN STEP 2026-05-03T19:08:03.6526920Z ##[group]Run node scripts/create-github-release.mjs --release-version "0.3.5" --repository "link-foundation/lino-objects-codec" --tag-prefix "js-v" +Release UNKNOWN STEP 2026-05-03T19:08:03.6527991Z ^[[36;1mnode scripts/create-github-release.mjs --release-version "0.3.5" --repository "link-foundation/lino-objects-codec" --tag-prefix "js-v"^[[0m +Release UNKNOWN STEP 2026-05-03T19:08:03.6549289Z shell: /usr/bin/bash -e {0} +Release UNKNOWN STEP 2026-05-03T19:08:03.6549531Z env: +Release UNKNOWN STEP 2026-05-03T19:08:03.6549763Z NPM_CONFIG_USERCONFIG: /home/runner/work/_temp/.npmrc +Release UNKNOWN STEP 2026-05-03T19:08:03.6550097Z NODE_AUTH_TOKEN: XXXXX-XXXXX-XXXXX-XXXXX +Release UNKNOWN STEP 2026-05-03T19:08:03.6550697Z GH_TOKEN: *** +Release UNKNOWN STEP 2026-05-03T19:08:03.6550893Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:08:04.6446651Z Creating GitHub release for js-v0.3.5... +Release UNKNOWN STEP 2026-05-03T19:08:05.9351358Z {"url":"https://api.github.com/repos/link-foundation/lino-objects-codec/releases/316907839","assets_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/releases/316907839/assets","upload_url":"https://uploads.github.com/repos/link-foundation/lino-objects-codec/releases/316907839/assets{?name,label}","html_url":"https://github.com/link-foundation/lino-objects-codec/releases/tag/js-v0.3.5","id":316907839,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOQWrSmc4S46E_","tag_name":"js-v0.3.5","target_commitish":"main","name":"js-v0.3.5","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-05-03T19:07:41Z","updated_at":"2026-05-03T19:08:05Z","published_at":"2026-05-03T19:08:05Z","assets":[],"tarball_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/tarball/js-v0.3.5","zipball_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/zipball/js-v0.3.5","body":"### Patch Changes\n\n- c78eb96: Harden npm trusted-publishing setup so CI fails when npm cannot be upgraded to an OIDC-capable version, and surface access/trusted-publisher guidance for npm publish 404 failures."}✅ Created GitHub release: js-v0.3.5 +Release UNKNOWN STEP 2026-05-03T19:08:05.9442558Z ##[group]Run node scripts/format-github-release.mjs --release-version "0.3.5" --repository "link-foundation/lino-objects-codec" --commit-sha "e1303e202fc96b20cae6adfef52ff132d36f7366" --tag-prefix "js-v" +Release UNKNOWN STEP 2026-05-03T19:08:05.9444832Z ^[[36;1mnode scripts/format-github-release.mjs --release-version "0.3.5" --repository "link-foundation/lino-objects-codec" --commit-sha "e1303e202fc96b20cae6adfef52ff132d36f7366" --tag-prefix "js-v"^[[0m +Release UNKNOWN STEP 2026-05-03T19:08:05.9466689Z shell: /usr/bin/bash -e {0} +Release UNKNOWN STEP 2026-05-03T19:08:05.9466926Z env: +Release UNKNOWN STEP 2026-05-03T19:08:05.9467158Z NPM_CONFIG_USERCONFIG: /home/runner/work/_temp/.npmrc +Release UNKNOWN STEP 2026-05-03T19:08:05.9467489Z NODE_AUTH_TOKEN: XXXXX-XXXXX-XXXXX-XXXXX +Release UNKNOWN STEP 2026-05-03T19:08:05.9467970Z GH_TOKEN: *** +Release UNKNOWN STEP 2026-05-03T19:08:05.9468153Z ##[endgroup] +Release UNKNOWN STEP 2026-05-03T19:08:07.1634755Z 316907839 +Release UNKNOWN STEP 2026-05-03T19:08:07.1660327Z Formatting release notes for js-v0.3.5... +Release UNKNOWN STEP 2026-05-03T19:08:08.3319140Z {"url":"https://api.github.com/repos/link-foundation/lino-objects-codec/releases/316907839","assets_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/releases/316907839/assets","upload_url":"https://uploads.github.com/repos/link-foundation/lino-objects-codec/releases/316907839/assets{?name,label}","html_url":"https://github.com/link-foundation/lino-objects-codec/releases/tag/js-v0.3.5","id":316907839,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOQWrSmc4S46E_","tag_name":"js-v0.3.5","target_commitish":"main","name":"js-v0.3.5","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-05-03T19:07:41Z","updated_at":"2026-05-03T19:08:05Z","published_at":"2026-05-03T19:08:05Z","assets":[],"tarball_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/tarball/js-v0.3.5","zipball_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/zipball/js-v0.3.5","body":"### Patch Changes\n\n- c78eb96: Harden npm trusted-publishing setup so CI fails when npm cannot be upgraded to an OIDC-capable version, and surface access/trusted-publisher guidance for npm publish 404 failures."}ℹ️ Found Patch Changes section +Release UNKNOWN STEP 2026-05-03T19:08:08.3328036Z ℹ️ Looking up PR for commit c78eb96 (from changelog) +Release UNKNOWN STEP 2026-05-03T19:08:08.6759767Z [{"url":"https://api.github.com/repos/link-foundation/lino-objects-codec/pulls/32","id":3620640329,"node_id":"PR_kwDOQWrSmc7XzpZJ","html_url":"https://github.com/link-foundation/lino-objects-codec/pull/32","diff_url":"https://github.com/link-foundation/lino-objects-codec/pull/32.diff","patch_url":"https://github.com/link-foundation/lino-objects-codec/pull/32.patch","issue_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/issues/32","number":32,"state":"closed","locked":false,"title":"fix(ci): harden release workflows","user":{"login":"konard","id":1431904,"node_id":"MDQ6VXNlcjE0MzE5MDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1431904?v=4","gravatar_id":"","url":"https://api.github.com/users/konard","html_url":"https://github.com/konard","followers_url":"https://api.github.com/users/konard/followers","following_url":"https://api.github.com/users/konard/following{/other_user}","gists_url":"https://api.github.com/users/konard/gists{/gist_id}","starred_url":"https://api.github.com/users/konard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/konard/subscriptions","organizations_url":"https://api.github.com/users/konard/orgs","repos_url":"https://api.github.com/users/konard/repos","events_url":"https://api.github.com/users/konard/events{/privacy}","received_events_url":"https://api.github.com/users/konard/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Fixes #31\n\n## Summary\n\n- Hardened the Rust release workflow so ambiguous crates.io probes fail closed instead of triggering duplicate publishes, and so GitHub release creation no longer prints a false success after `already_exists`.\n- Hardened JavaScript npm trusted-publishing setup to require Node.js >= 22.14.0 and npm >= 11.5.1, with a registry-driven npm 11.x fallback and final version check.\n- Extended npm publish failure guidance for E404 PUT/access/trusted-publisher failures.\n- Removed the separate Python PyPI diagnostic-only steps because `pypa/gh-action-pypi-publish` already emits the root cause and troubleshooting URL.\n- Preserved issue evidence and template comparison notes in `docs/case-studies/issue-31`.\n\n## Evidence\n\n- Downloaded and preserved the cited Rust, JavaScript, and Python run metadata/logs under `docs/case-studies/issue-31`.\n- Added a case-study README with exact log line references for the false Rust success, npm setup failure, npm publish access failure, and duplicate Python diagnostic step.\n- Compared the Rust, JavaScript, Python, and C# templates. The Rust/Python templates already had the right shape; the JavaScript template has the same npm minimum-version issue.\n- Filed upstream template follow-up: https://github.com/link-foundation/js-ai-driven-development-pipeline-template/issues/48\n\n## Verification\n\n- JS: `npm test`\n- JS: `npm run lint` (0 errors; existing warnings remain in unrelated files)\n- JS: `npm run format:check`\n- JS: `npm run check:duplication`\n- JS: `node scripts/validate-changeset.mjs`\n- Rust: `node --test rust/scripts/*.test.mjs`\n- Rust: `node --test experiments/issue-31/test-rust-release-helpers.mjs`\n- Rust: `cargo fmt --check`\n- Rust: `cargo clippy --all-targets --all-features`\n- Rust: `cargo test --verbose`\n- Rust: `cargo test --doc --verbose`\n- Rust: `cargo run --example basic_usage`\n- Rust: `cargo package --list --allow-dirty`\n- Rust: `HAS_FRAGMENTS=true node scripts/check-release-needed.mjs`\n- Python: `ruff check src tests`\n- Python: `ruff format --check src tests`\n- Python: `mypy src`\n- Python: `pytest tests/ -v --cov=src --cov-report=xml --cov-report=term`\n- Python: `python scripts/check_file_size.py`\n- Repo: `git diff --check`\n- Repo: YAML parse check for `.github/workflows/python.yml`, `.github/workflows/rust.yml`, and `.github/workflows/js.yml`\n\n## Registry Configuration Still Required\n\nThe workflow code now fails honestly and gives clearer operator guidance, but package registry trust settings still need to match this repository:\n\n- npm package `lino-objects-codec`: configure trusted publishing for this repo and `.github/workflows/js.yml`, or fix package access/ownership.\n- PyPI project: configure the trusted publisher for owner `link-foundation`, repo `lino-objects-codec`, workflow `python.yml`, and the configured environment value.\n- crates.io: keep `CARGO_REGISTRY_TOKEN` or `CARGO_TOKEN` valid for the crate.\n","created_at":"2026-05-03T18:06:40Z","updated_at":"2026-05-03T19:06:34Z","closed_at":"2026-05-03T19:06:34Z","merged_at":"2026-05-03T19:06:34Z","merge_commit_sha":"e1303e202fc96b20cae6adfef52ff132d36f7366","assignees":[{"login":"konard","id":1431904,"node_id":"MDQ6VXNlcjE0MzE5MDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1431904?v=4","gravatar_id":"","url":"https://api.github.com/users/konard","html_url":"https://github.com/konard","followers_url":"https://api.github.com/users/konard/followers","following_url":"https://api.github.com/users/konard/following{/other_user}","gists_url":"https://api.github.com/users/konard/gists{/gist_id}","starred_url":"https://api.github.com/users/konard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/konard/subscriptions","organizations_url":"https://api.github.com/users/konard/orgs","repos_url":"https://api.github.com/users/konard/repos","events_url":"https://api.github.com/users/konard/events{/privacy}","received_events_url":"https://api.github.com/users/konard/received_events","type":"User","user_view_type":"public","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/pulls/32/commits","review_comments_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/pulls/32/comments","review_comment_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/pulls/comments{/number}","comments_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/issues/32/comments","statuses_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/statuses/dc46eb61a843463864d8b7e4ab1178609b7afa12","head":{"label":"link-foundation:issue-31-bd2874f2d076","ref":"issue-31-bd2874f2d076","sha":"dc46eb61a843463864d8b7e4ab1178609b7afa12","user":{"login":"link-foundation","id":176174013,"node_id":"O_kgDOCoAzvQ","avatar_url":"https://avatars.githubusercontent.com/u/176174013?v=4","gravatar_id":"","url":"https://api.github.com/users/link-foundation","html_url":"https://github.com/link-foundation","followers_url":"https://api.github.com/users/link-foundation/followers","following_url":"https://api.github.com/users/link-foundation/following{/other_user}","gists_url":"https://api.github.com/users/link-foundation/gists{/gist_id}","starred_url":"https://api.github.com/users/link-foundation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/link-foundation/subscriptions","organizations_url":"https://api.github.com/users/link-foundation/orgs","repos_url":"https://api.github.com/users/link-foundation/repos","events_url":"https://api.github.com/users/link-foundation/events{/privacy}","received_events_url":"https://api.github.com/users/link-foundation/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1097519769,"node_id":"R_kgDOQWrSmQ","name":"lino-objects-codec","full_name":"link-foundation/lino-objects-codec","private":false,"owner":{"login":"link-foundation","id":176174013,"node_id":"O_kgDOCoAzvQ","avatar_url":"https://avatars.githubusercontent.com/u/176174013?v=4","gravatar_id":"","url":"https://api.github.com/users/link-foundation","html_url":"https://github.com/link-foundation","followers_url":"https://api.github.com/users/link-foundation/followers","following_url":"https://api.github.com/users/link-foundation/following{/other_user}","gists_url":"https://api.github.com/users/link-foundation/gists{/gist_id}","starred_url":"https://api.github.com/users/link-foundation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/link-foundation/subscriptions","organizations_url":"https://api.github.com/users/link-foundation/orgs","repos_url":"https://api.github.com/users/link-foundation/repos","events_url":"https://api.github.com/users/link-foundation/events{/privacy}","received_events_url":"https://api.github.com/users/link-foundation/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/link-foundation/lino-objects-codec","description":"A library to encode/decode objects to/from links notation","fork":false,"url":"https://api.github.com/repos/link-foundation/lino-objects-codec","forks_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/forks","keys_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/keys{/key_id}","collaborators_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/teams","hooks_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/hooks","issue_events_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/issues/events{/number}","events_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/events","assignees_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/assignees{/user}","branches_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/branches{/branch}","tags_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/tags","blobs_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/git/refs{/sha}","trees_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/git/trees{/sha}","statuses_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/statuses/{sha}","languages_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/languages","stargazers_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/stargazers","contributors_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/contributors","subscribers_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/subscribers","subscription_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/subscription","commits_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/commits{/sha}","git_commits_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/git/commits{/sha}","comments_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/comments{/number}","issue_comment_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/issues/comments{/number}","contents_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/contents/{+path}","compare_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/compare/{base}...{head}","merges_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/merges","archive_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/downloads","issues_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/issues{/number}","pulls_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/pulls{/number}","milestones_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/milestones{/number}","notifications_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/labels{/name}","releases_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/releases{/id}","deployments_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/deployments","created_at":"2025-11-16T10:43:07Z","updated_at":"2026-05-03T19:07:45Z","pushed_at":"2026-05-03T19:08:05Z","git_url":"git://github.com/link-foundation/lino-objects-codec.git","ssh_url":"git@github.com:link-foundation/lino-objects-codec.git","clone_url":"https://github.com/link-foundation/lino-objects-codec.git","svn_url":"https://github.com/link-foundation/lino-objects-codec","homepage":null,"size":787,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"unlicense","name":"The Unlicense","spdx_id":"Unlicense","url":"https://api.github.com/licenses/unlicense","node_id":"MDc6TGljZW5zZTE1"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main"}},"base":{"label":"link-foundation:main","ref":"main","sha":"e4d397849a5d4f3eb462861197887735819d30b3","user":{"login":"link-foundation","id":176174013,"node_id":"O_kgDOCoAzvQ","avatar_url":"https://avatars.githubusercontent.com/u/176174013?v=4","gravatar_id":"","url":"https://api.github.com/users/link-foundation","html_url":"https://github.com/link-foundation","followers_url":"https://api.github.com/users/link-foundation/followers","following_url":"https://api.github.com/users/link-foundation/following{/other_user}","gists_url":"https://api.github.com/users/link-foundation/gists{/gist_id}","starred_url":"https://api.github.com/users/link-foundation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/link-foundation/subscriptions","organizations_url":"https://api.github.com/users/link-foundation/orgs","repos_url":"https://api.github.com/users/link-foundation/repos","events_url":"https://api.github.com/users/link-foundation/events{/privacy}","received_events_url":"https://api.github.com/users/link-foundation/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1097519769,"node_id":"R_kgDOQWrSmQ","name":"lino-objects-codec","full_name":"link-foundation/lino-objects-codec","private":false,"owner":{"login":"link-foundation","id":176174013,"node_id":"O_kgDOCoAzvQ","avatar_url":"https://avatars.githubusercontent.com/u/176174013?v=4","gravatar_id":"","url":"https://api.github.com/users/link-foundation","html_url":"https://github.com/link-foundation","followers_url":"https://api.github.com/users/link-foundation/followers","following_url":"https://api.github.com/users/link-foundation/following{/other_user}","gists_url":"https://api.github.com/users/link-foundation/gists{/gist_id}","starred_url":"https://api.github.com/users/link-foundation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/link-foundation/subscriptions","organizations_url":"https://api.github.com/users/link-foundation/orgs","repos_url":"https://api.github.com/users/link-foundation/repos","events_url":"https://api.github.com/users/link-foundation/events{/privacy}","received_events_url":"https://api.github.com/users/link-foundation/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/link-foundation/lino-objects-codec","description":"A library to encode/decode objects to/from links notation","fork":false,"url":"https://api.github.com/repos/link-foundation/lino-objects-codec","forks_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/forks","keys_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/keys{/key_id}","collaborators_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/teams","hooks_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/hooks","issue_events_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/issues/events{/number}","events_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/events","assignees_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/assignees{/user}","branches_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/branches{/branch}","tags_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/tags","blobs_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/git/refs{/sha}","trees_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/git/trees{/sha}","statuses_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/statuses/{sha}","languages_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/languages","stargazers_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/stargazers","contributors_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/contributors","subscribers_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/subscribers","subscription_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/subscription","commits_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/commits{/sha}","git_commits_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/git/commits{/sha}","comments_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/comments{/number}","issue_comment_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/issues/comments{/number}","contents_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/contents/{+path}","compare_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/compare/{base}...{head}","merges_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/merges","archive_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/downloads","issues_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/issues{/number}","pulls_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/pulls{/number}","milestones_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/milestones{/number}","notifications_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/labels{/name}","releases_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/releases{/id}","deployments_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/deployments","created_at":"2025-11-16T10:43:07Z","updated_at":"2026-05-03T19:07:45Z","pushed_at":"2026-05-03T19:08:05Z","git_url":"git://github.com/link-foundation/lino-objects-codec.git","ssh_url":"git@github.com:link-foundation/lino-objects-codec.git","clone_url":"https://github.com/link-foundation/lino-objects-codec.git","svn_url":"https://github.com/link-foundation/lino-objects-codec","homepage":null,"size":787,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"unlicense","name":"The Unlicense","spdx_id":"Unlicense","url":"https://api.github.com/licenses/unlicense","node_id":"MDc6TGljZW5zZTE1"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/link-foundation/lino-objects-codec/pulls/32"},"html":{"href":"https://github.com/link-foundation/lino-objects-codec/pull/32"},"issue":{"href":"https://api.github.com/repos/link-foundation/lino-objects-codec/issues/32"},"comments":{"href":"https://api.github.com/repos/link-foundation/lino-objects-codec/issues/32/comments"},"review_comments":{"href":"https://api.github.com/repos/link-foundation/lino-objects-codec/pulls/32/comments"},"review_comment":{"href":"https://api.github.com/repos/link-foundation/lino-objects-codec/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/link-foundation/lino-objects-codec/pulls/32/commits"},"statuses":{"href":"https://api.github.com/repos/link-foundation/lino-objects-codec/statuses/dc46eb61a843463864d8b7e4ab1178609b7afa12"}},"author_association":"MEMBER","auto_merge":null,"assignee":{"login":"konard","id":1431904,"node_id":"MDQ6VXNlcjE0MzE5MDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1431904?v=4","gravatar_id":"","url":"https://api.github.com/users/konard","html_url":"https://github.com/konard","followers_url":"https://api.github.com/users/konard/followers","following_url":"https://api.github.com/users/konard/following{/other_user}","gists_url":"https://api.github.com/users/konard/gists{/gist_id}","starred_url":"https://api.github.com/users/konard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/konard/subscriptions","organizations_url":"https://api.github.com/users/konard/orgs","repos_url":"https://api.github.com/users/konard/repos","events_url":"https://api.github.com/users/konard/events{/privacy}","received_events_url":"https://api.github.com/users/konard/received_events","type":"User","user_view_type":"public","site_admin":false},"active_lock_reason":null}]✅ Found PR #32 containing commit +Release UNKNOWN STEP 2026-05-03T19:08:09.0333282Z {"url":"https://api.github.com/repos/link-foundation/lino-objects-codec/releases/316907839","assets_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/releases/316907839/assets","upload_url":"https://uploads.github.com/repos/link-foundation/lino-objects-codec/releases/316907839/assets{?name,label}","html_url":"https://github.com/link-foundation/lino-objects-codec/releases/tag/js-v0.3.5","id":316907839,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOQWrSmc4S46E_","tag_name":"js-v0.3.5","target_commitish":"main","name":"js-v0.3.5","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-05-03T19:07:41Z","updated_at":"2026-05-03T19:08:08Z","published_at":"2026-05-03T19:08:05Z","assets":[],"tarball_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/tarball/js-v0.3.5","zipball_url":"https://api.github.com/repos/link-foundation/lino-objects-codec/zipball/js-v0.3.5","body":"Harden npm trusted-publishing setup so CI fails when npm cannot be upgraded to an OIDC-capable version, and surface access/trusted-publisher guidance for npm publish 404 failures.\n\n**Related Pull Request:** #32\n\n---\n\n[![npm version](https://img.shields.io/badge/npm-js-v0.3.5-blue.svg)](https://www.npmjs.com/package/lino-objects-codec/v/js-v0.3.5)"}✅ Formatted release notes for vjs-v0.3.5 +Release UNKNOWN STEP 2026-05-03T19:08:09.0343090Z - Added link to PR #32 +Release UNKNOWN STEP 2026-05-03T19:08:09.0343424Z - Added shields.io npm badge +Release UNKNOWN STEP 2026-05-03T19:08:09.0343747Z - Cleaned up formatting +Release UNKNOWN STEP 2026-05-03T19:08:09.0390527Z ✅ Formatted release notes for js-v0.3.5 +Release UNKNOWN STEP 2026-05-03T19:08:09.0524578Z Post job cleanup. +Release UNKNOWN STEP 2026-05-03T19:08:09.2225798Z Post job cleanup. +Release UNKNOWN STEP 2026-05-03T19:08:09.3185943Z [command]/usr/bin/git version +Release UNKNOWN STEP 2026-05-03T19:08:09.3222391Z git version 2.53.0 +Release UNKNOWN STEP 2026-05-03T19:08:09.3267608Z Temporarily overriding HOME='/home/runner/work/_temp/119150ec-e03d-4b47-9776-5ffd44bcb872' before making global git config changes +Release UNKNOWN STEP 2026-05-03T19:08:09.3269192Z Adding repository directory to the temporary git global config as a safe directory +Release UNKNOWN STEP 2026-05-03T19:08:09.3281323Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/lino-objects-codec/lino-objects-codec +Release UNKNOWN STEP 2026-05-03T19:08:09.3314241Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +Release UNKNOWN STEP 2026-05-03T19:08:09.3345436Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +Release UNKNOWN STEP 2026-05-03T19:08:09.3566823Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +Release UNKNOWN STEP 2026-05-03T19:08:09.3586849Z http.https://github.com/.extraheader +Release UNKNOWN STEP 2026-05-03T19:08:09.3599435Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader +Release UNKNOWN STEP 2026-05-03T19:08:09.3628872Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +Release UNKNOWN STEP 2026-05-03T19:08:09.3845807Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +Release UNKNOWN STEP 2026-05-03T19:08:09.3877763Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +Release UNKNOWN STEP 2026-05-03T19:08:09.4216866Z Cleaning up orphan processes +Release UNKNOWN STEP 2026-05-03T19:08:09.4494973Z ##[warning]Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ diff --git a/docs/case-studies/issue-33/run-25288053638-meta.json b/docs/case-studies/issue-33/run-25288053638-meta.json new file mode 100644 index 0000000..9d6e3f6 --- /dev/null +++ b/docs/case-studies/issue-33/run-25288053638-meta.json @@ -0,0 +1 @@ +{"conclusion":"success","createdAt":"2026-05-03T19:06:37Z","displayTitle":"Merge pull request #32 from link-foundation/issue-31-bd2874f2d076","event":"push","headBranch":"main","headSha":"e1303e202fc96b20cae6adfef52ff132d36f7366","jobs":[{"completedAt":"2026-05-03T19:06:45Z","conclusion":"success","databaseId":74135526989,"name":"Detect Changes","startedAt":"2026-05-03T19:06:39Z","status":"completed","steps":[{"completedAt":"2026-05-03T19:06:41Z","conclusion":"success","name":"Set up job","number":1,"startedAt":"2026-05-03T19:06:40Z","status":"completed"},{"completedAt":"2026-05-03T19:06:42Z","conclusion":"success","name":"Run actions/checkout@v4","number":2,"startedAt":"2026-05-03T19:06:41Z","status":"completed"},{"completedAt":"2026-05-03T19:06:42Z","conclusion":"success","name":"Detect changes","number":3,"startedAt":"2026-05-03T19:06:42Z","status":"completed"},{"completedAt":"2026-05-03T19:06:43Z","conclusion":"success","name":"Post Run actions/checkout@v4","number":6,"startedAt":"2026-05-03T19:06:42Z","status":"completed"},{"completedAt":"2026-05-03T19:06:43Z","conclusion":"success","name":"Complete job","number":7,"startedAt":"2026-05-03T19:06:43Z","status":"completed"}],"url":"https://github.com/link-foundation/lino-objects-codec/actions/runs/25288053638/job/74135526989"},{"completedAt":"2026-05-03T19:06:37Z","conclusion":"skipped","databaseId":74135527211,"name":"Create Changeset PR","startedAt":"2026-05-03T19:06:38Z","status":"completed","steps":[],"url":"https://github.com/link-foundation/lino-objects-codec/actions/runs/25288053638/job/74135527211"},{"completedAt":"2026-05-03T19:06:37Z","conclusion":"skipped","databaseId":74135527219,"name":"Check for Manual Version Changes","startedAt":"2026-05-03T19:06:38Z","status":"completed","steps":[],"url":"https://github.com/link-foundation/lino-objects-codec/actions/runs/25288053638/job/74135527219"},{"completedAt":"2026-05-03T19:07:02Z","conclusion":"success","databaseId":74135534521,"name":"Lint and Format Check","startedAt":"2026-05-03T19:06:47Z","status":"completed","steps":[{"completedAt":"2026-05-03T19:06:48Z","conclusion":"success","name":"Set up job","number":1,"startedAt":"2026-05-03T19:06:48Z","status":"completed"},{"completedAt":"2026-05-03T19:06:49Z","conclusion":"success","name":"Run actions/checkout@v4","number":2,"startedAt":"2026-05-03T19:06:48Z","status":"completed"},{"completedAt":"2026-05-03T19:06:53Z","conclusion":"success","name":"Setup Node.js","number":3,"startedAt":"2026-05-03T19:06:49Z","status":"completed"},{"completedAt":"2026-05-03T19:06:58Z","conclusion":"success","name":"Install dependencies","number":4,"startedAt":"2026-05-03T19:06:53Z","status":"completed"},{"completedAt":"2026-05-03T19:06:59Z","conclusion":"success","name":"Run ESLint","number":5,"startedAt":"2026-05-03T19:06:58Z","status":"completed"},{"completedAt":"2026-05-03T19:07:00Z","conclusion":"success","name":"Check formatting","number":6,"startedAt":"2026-05-03T19:06:59Z","status":"completed"},{"completedAt":"2026-05-03T19:07:01Z","conclusion":"success","name":"Check code duplication","number":7,"startedAt":"2026-05-03T19:07:00Z","status":"completed"},{"completedAt":"2026-05-03T19:07:01Z","conclusion":"success","name":"Post Setup Node.js","number":13,"startedAt":"2026-05-03T19:07:01Z","status":"completed"},{"completedAt":"2026-05-03T19:07:01Z","conclusion":"success","name":"Post Run actions/checkout@v4","number":14,"startedAt":"2026-05-03T19:07:01Z","status":"completed"},{"completedAt":"2026-05-03T19:07:01Z","conclusion":"success","name":"Complete job","number":15,"startedAt":"2026-05-03T19:07:01Z","status":"completed"}],"url":"https://github.com/link-foundation/lino-objects-codec/actions/runs/25288053638/job/74135534521"},{"completedAt":"2026-05-03T19:06:58Z","conclusion":"success","databaseId":74135534630,"name":"Test (Node.js on macos-latest)","startedAt":"2026-05-03T19:06:47Z","status":"completed","steps":[{"completedAt":"2026-05-03T19:06:49Z","conclusion":"success","name":"Set up job","number":1,"startedAt":"2026-05-03T19:06:48Z","status":"completed"},{"completedAt":"2026-05-03T19:06:50Z","conclusion":"success","name":"Run actions/checkout@v4","number":2,"startedAt":"2026-05-03T19:06:49Z","status":"completed"},{"completedAt":"2026-05-03T19:06:51Z","conclusion":"success","name":"Setup Node.js","number":3,"startedAt":"2026-05-03T19:06:50Z","status":"completed"},{"completedAt":"2026-05-03T19:06:54Z","conclusion":"success","name":"Install dependencies","number":4,"startedAt":"2026-05-03T19:06:51Z","status":"completed"},{"completedAt":"2026-05-03T19:06:54Z","conclusion":"success","name":"Run tests","number":5,"startedAt":"2026-05-03T19:06:54Z","status":"completed"},{"completedAt":"2026-05-03T19:06:54Z","conclusion":"success","name":"Run example","number":6,"startedAt":"2026-05-03T19:06:54Z","status":"completed"},{"completedAt":"2026-05-03T19:06:54Z","conclusion":"success","name":"Post Setup Node.js","number":11,"startedAt":"2026-05-03T19:06:54Z","status":"completed"},{"completedAt":"2026-05-03T19:06:55Z","conclusion":"success","name":"Post Run actions/checkout@v4","number":12,"startedAt":"2026-05-03T19:06:54Z","status":"completed"},{"completedAt":"2026-05-03T19:06:55Z","conclusion":"success","name":"Complete job","number":13,"startedAt":"2026-05-03T19:06:55Z","status":"completed"}],"url":"https://github.com/link-foundation/lino-objects-codec/actions/runs/25288053638/job/74135534630"},{"completedAt":"2026-05-03T19:06:45Z","conclusion":"skipped","databaseId":74135534633,"name":"Check for Changesets","startedAt":"2026-05-03T19:06:45Z","status":"completed","steps":[],"url":"https://github.com/link-foundation/lino-objects-codec/actions/runs/25288053638/job/74135534633"},{"completedAt":"2026-05-03T19:07:06Z","conclusion":"success","databaseId":74135534640,"name":"Test (Node.js on ubuntu-latest)","startedAt":"2026-05-03T19:06:53Z","status":"completed","steps":[{"completedAt":"2026-05-03T19:06:54Z","conclusion":"success","name":"Set up job","number":1,"startedAt":"2026-05-03T19:06:54Z","status":"completed"},{"completedAt":"2026-05-03T19:06:55Z","conclusion":"success","name":"Run actions/checkout@v4","number":2,"startedAt":"2026-05-03T19:06:54Z","status":"completed"},{"completedAt":"2026-05-03T19:06:59Z","conclusion":"success","name":"Setup Node.js","number":3,"startedAt":"2026-05-03T19:06:55Z","status":"completed"},{"completedAt":"2026-05-03T19:07:04Z","conclusion":"success","name":"Install dependencies","number":4,"startedAt":"2026-05-03T19:06:59Z","status":"completed"},{"completedAt":"2026-05-03T19:07:04Z","conclusion":"success","name":"Run tests","number":5,"startedAt":"2026-05-03T19:07:04Z","status":"completed"},{"completedAt":"2026-05-03T19:07:04Z","conclusion":"success","name":"Run example","number":6,"startedAt":"2026-05-03T19:07:04Z","status":"completed"},{"completedAt":"2026-05-03T19:07:04Z","conclusion":"success","name":"Post Setup Node.js","number":11,"startedAt":"2026-05-03T19:07:04Z","status":"completed"},{"completedAt":"2026-05-03T19:07:05Z","conclusion":"success","name":"Post Run actions/checkout@v4","number":12,"startedAt":"2026-05-03T19:07:04Z","status":"completed"},{"completedAt":"2026-05-03T19:07:05Z","conclusion":"success","name":"Complete job","number":13,"startedAt":"2026-05-03T19:07:05Z","status":"completed"}],"url":"https://github.com/link-foundation/lino-objects-codec/actions/runs/25288053638/job/74135534640"},{"completedAt":"2026-05-03T19:07:17Z","conclusion":"success","databaseId":74135534673,"name":"Test (Node.js on windows-latest)","startedAt":"2026-05-03T19:06:47Z","status":"completed","steps":[{"completedAt":"2026-05-03T19:06:49Z","conclusion":"success","name":"Set up job","number":1,"startedAt":"2026-05-03T19:06:48Z","status":"completed"},{"completedAt":"2026-05-03T19:06:54Z","conclusion":"success","name":"Run actions/checkout@v4","number":2,"startedAt":"2026-05-03T19:06:49Z","status":"completed"},{"completedAt":"2026-05-03T19:06:58Z","conclusion":"success","name":"Setup Node.js","number":3,"startedAt":"2026-05-03T19:06:54Z","status":"completed"},{"completedAt":"2026-05-03T19:07:11Z","conclusion":"success","name":"Install dependencies","number":4,"startedAt":"2026-05-03T19:06:58Z","status":"completed"},{"completedAt":"2026-05-03T19:07:12Z","conclusion":"success","name":"Run tests","number":5,"startedAt":"2026-05-03T19:07:11Z","status":"completed"},{"completedAt":"2026-05-03T19:07:13Z","conclusion":"success","name":"Run example","number":6,"startedAt":"2026-05-03T19:07:12Z","status":"completed"},{"completedAt":"2026-05-03T19:07:13Z","conclusion":"success","name":"Post Setup Node.js","number":11,"startedAt":"2026-05-03T19:07:13Z","status":"completed"},{"completedAt":"2026-05-03T19:07:16Z","conclusion":"success","name":"Post Run actions/checkout@v4","number":12,"startedAt":"2026-05-03T19:07:13Z","status":"completed"},{"completedAt":"2026-05-03T19:07:16Z","conclusion":"success","name":"Complete job","number":13,"startedAt":"2026-05-03T19:07:16Z","status":"completed"}],"url":"https://github.com/link-foundation/lino-objects-codec/actions/runs/25288053638/job/74135534673"},{"completedAt":"2026-05-03T19:08:10Z","conclusion":"success","databaseId":74135563079,"name":"Release","startedAt":"2026-05-03T19:07:19Z","status":"completed","steps":[{"completedAt":"2026-05-03T19:07:21Z","conclusion":"success","name":"Set up job","number":1,"startedAt":"2026-05-03T19:07:20Z","status":"completed"},{"completedAt":"2026-05-03T19:07:21Z","conclusion":"success","name":"Run actions/checkout@v4","number":2,"startedAt":"2026-05-03T19:07:21Z","status":"completed"},{"completedAt":"2026-05-03T19:07:25Z","conclusion":"success","name":"Setup Node.js","number":3,"startedAt":"2026-05-03T19:07:21Z","status":"completed"},{"completedAt":"2026-05-03T19:07:29Z","conclusion":"success","name":"Install dependencies","number":4,"startedAt":"2026-05-03T19:07:25Z","status":"completed"},{"completedAt":"2026-05-03T19:07:37Z","conclusion":"success","name":"Update npm for OIDC trusted publishing","number":5,"startedAt":"2026-05-03T19:07:29Z","status":"completed"},{"completedAt":"2026-05-03T19:07:37Z","conclusion":"success","name":"Check for changesets","number":6,"startedAt":"2026-05-03T19:07:37Z","status":"completed"},{"completedAt":"2026-05-03T19:07:37Z","conclusion":"skipped","name":"Merge multiple changesets","number":7,"startedAt":"2026-05-03T19:07:37Z","status":"completed"},{"completedAt":"2026-05-03T19:07:42Z","conclusion":"success","name":"Version packages and commit to main","number":8,"startedAt":"2026-05-03T19:07:37Z","status":"completed"},{"completedAt":"2026-05-03T19:08:03Z","conclusion":"success","name":"Publish to npm","number":9,"startedAt":"2026-05-03T19:07:42Z","status":"completed"},{"completedAt":"2026-05-03T19:08:05Z","conclusion":"success","name":"Create GitHub Release","number":10,"startedAt":"2026-05-03T19:08:03Z","status":"completed"},{"completedAt":"2026-05-03T19:08:09Z","conclusion":"success","name":"Format GitHub release notes","number":11,"startedAt":"2026-05-03T19:08:05Z","status":"completed"},{"completedAt":"2026-05-03T19:08:09Z","conclusion":"success","name":"Post Setup Node.js","number":21,"startedAt":"2026-05-03T19:08:09Z","status":"completed"},{"completedAt":"2026-05-03T19:08:09Z","conclusion":"success","name":"Post Run actions/checkout@v4","number":22,"startedAt":"2026-05-03T19:08:09Z","status":"completed"},{"completedAt":"2026-05-03T19:08:09Z","conclusion":"success","name":"Complete job","number":23,"startedAt":"2026-05-03T19:08:09Z","status":"completed"}],"url":"https://github.com/link-foundation/lino-objects-codec/actions/runs/25288053638/job/74135563079"},{"completedAt":"2026-05-03T19:07:17Z","conclusion":"skipped","databaseId":74135563241,"name":"Instant Release","startedAt":"2026-05-03T19:07:17Z","status":"completed","steps":[],"url":"https://github.com/link-foundation/lino-objects-codec/actions/runs/25288053638/job/74135563241"}],"name":"JavaScript CI/CD","status":"completed","url":"https://github.com/link-foundation/lino-objects-codec/actions/runs/25288053638","workflowName":"JavaScript CI/CD"} diff --git a/js/scripts/create-github-release.mjs b/js/scripts/create-github-release.mjs index 240edd2..4b64df7 100644 --- a/js/scripts/create-github-release.mjs +++ b/js/scripts/create-github-release.mjs @@ -2,10 +2,15 @@ /** * Create GitHub Release from CHANGELOG.md - * Usage: node scripts/create-github-release.mjs --release-version --repository [--tag-prefix ] + * Usage: node scripts/create-github-release.mjs --release-version --repository [--tag-prefix ] [--language ] * release-version: Version number (e.g., 1.0.0) * repository: GitHub repository (e.g., owner/repo) - * tag-prefix: Prefix for the git tag (default: "v", use "js-v" for multi-language repos) + * tag-prefix: Prefix for the git tag (default: "v", use "js_v" for multi-language repos) + * language: Display label for the release title (default: "JavaScript") + * + * Per issue #33, JS releases must use: + * - Tag format: js_v (was: js-v) + * - Title format: [JavaScript] X.Y.Z (was: js-v0.3.5) * * Uses link-foundation libraries: * - use-m: Dynamic package loading without package.json dependencies @@ -14,6 +19,11 @@ */ import { readFileSync } from 'fs'; +import { + buildReleaseTag, + buildReleaseTitle, + normalizeReleaseVersionForBadge, +} from './release-format-helpers.mjs'; // Load use-m dynamically const { use } = eval( @@ -43,23 +53,33 @@ const config = makeConfig({ type: 'string', default: getenv('TAG_PREFIX', 'v'), describe: - 'Prefix for the git tag (e.g., "js-v" for multi-language repos)', + 'Prefix for the git tag (e.g., "js_v" for multi-language repos)', + }) + .option('language', { + type: 'string', + default: getenv('LANGUAGE', 'JavaScript'), + describe: + 'Human-readable language label (used in the release title, e.g. "JavaScript")', }), }); -const { releaseVersion: version, repository, tagPrefix } = config; +const { releaseVersion, repository, tagPrefix, language } = config; -if (!version || !repository) { +if (!releaseVersion || !repository) { console.error('Error: Missing required arguments'); console.error( - 'Usage: node scripts/create-github-release.mjs --release-version --repository [--tag-prefix ]' + 'Usage: node scripts/create-github-release.mjs --release-version --repository [--tag-prefix ] [--language ]' ); process.exit(1); } -const tag = `${tagPrefix}${version}`; +// Strip any prefix the caller may have included so downstream callers get a +// canonical bare semver (e.g. "js-v0.3.5" -> "0.3.5"). +const semver = normalizeReleaseVersionForBadge(releaseVersion); +const tag = buildReleaseTag(tagPrefix, semver); +const title = buildReleaseTitle(language, semver); -console.log(`Creating GitHub release for ${tag}...`); +console.log(`Creating GitHub release for ${tag} (title: ${title})...`); try { // Read CHANGELOG.md @@ -67,17 +87,17 @@ try { // Extract changelog entry for this version // Read from CHANGELOG.md between this version header and the next version header - const versionHeaderRegex = new RegExp(`## ${version}[\\s\\S]*?(?=## \\d|$)`); + const versionHeaderRegex = new RegExp(`## ${semver}[\\s\\S]*?(?=## \\d|$)`); const match = changelog.match(versionHeaderRegex); let releaseNotes = ''; if (match) { // Remove the version header itself and trim - releaseNotes = match[0].replace(`## ${version}`, '').trim(); + releaseNotes = match[0].replace(`## ${semver}`, '').trim(); } if (!releaseNotes) { - releaseNotes = `Release ${version}`; + releaseNotes = `Release ${semver}`; } // Create release using GitHub API with JSON input @@ -85,15 +105,33 @@ try { // (Previously caused apostrophes like "didn't" to appear as "didn'''" in releases) const payload = JSON.stringify({ tag_name: tag, - name: tag, + name: title, body: releaseNotes, }); - await $`gh api repos/${repository}/releases -X POST --input -`.run({ - stdin: payload, - }); + const result = + await $`gh api repos/${repository}/releases -X POST --input -`.run({ + stdin: payload, + capture: true, + }); + + if (result.stdout) { + console.log(result.stdout); + } + if (result.stderr) { + console.error(result.stderr); + } + + if (result.code && result.code !== 0) { + const output = `${result.stdout || ''}\n${result.stderr || ''}`; + if (/already_exists/i.test(output)) { + console.log(`GitHub release already exists: ${tag}. Skipping creation.`); + process.exit(0); + } + throw new Error(`gh api exited with code ${result.code}`); + } - console.log(`\u2705 Created GitHub release: ${tag}`); + console.log(`✅ Created GitHub release: ${tag}`); } catch (error) { console.error('Error creating release:', error.message); process.exit(1); diff --git a/js/scripts/format-release-notes.mjs b/js/scripts/format-release-notes.mjs index d0cd071..1ac035b 100644 --- a/js/scripts/format-release-notes.mjs +++ b/js/scripts/format-release-notes.mjs @@ -26,6 +26,10 @@ */ import { readFileSync } from 'fs'; +import { + buildNpmVersionBadge, + normalizeReleaseVersionForBadge, +} from './release-format-helpers.mjs'; // Read the package name from package.json so the badge always points at the // real npm registry entry. Hardcoding this caused issue #29's false-positive. @@ -194,8 +198,11 @@ try { } // Build formatted release notes - const versionWithoutV = version.replace(/^v/, ''); - const npmBadge = `[![npm version](https://img.shields.io/badge/npm-${versionWithoutV}-blue.svg)](https://www.npmjs.com/package/${PACKAGE_NAME}/v/${versionWithoutV})`; + // Strip any language prefix (e.g. "js-v0.3.5" or "js_v0.3.5") so the badge + // shows bare semver and links to the correct npm package URL. + // See docs/case-studies/issue-33/README.md for the broken-badge bug. + const versionWithoutV = normalizeReleaseVersionForBadge(version); + const npmBadge = buildNpmVersionBadge(PACKAGE_NAME, version); let formattedBody = `${cleanDescription}`; diff --git a/js/scripts/publish-to-npm.mjs b/js/scripts/publish-to-npm.mjs index 3cda975..27a052f 100644 --- a/js/scripts/publish-to-npm.mjs +++ b/js/scripts/publish-to-npm.mjs @@ -51,6 +51,14 @@ const { shouldPull } = config; const MAX_RETRIES = 3; const RETRY_DELAY = 10000; // 10 seconds +// Verification retries: npm registry CDN can take a few seconds to propagate +// after a successful publish. Retrying verification (not re-publish) avoids +// false-positive failures and avoids unnecessary "already published" warnings +// from changesets/cli that surface as ##[error] annotations in CI. +// See: docs/case-studies/issue-33/README.md (run 25288053638). +const VERIFY_MAX_ATTEMPTS = 5; +const VERIFY_INITIAL_DELAY = 3000; // 3 seconds; doubles each attempt up to ~48s total + // Patterns that indicate publish failure in changeset output. // `@changesets/cli` exits 0 even when individual packages fail; these are the // stable markers it prints in that case, plus the standard npm error code lines. @@ -233,9 +241,44 @@ function analyzePublishResult(publishResult, commandError, packageName) { return null; } +/** + * Verify with retries that the version is visible on the npm registry. + * The publish call may have already succeeded, so retry only the read-side + * `npm view`. Otherwise the outer publish retry would re-invoke + * `npm run changeset:publish` and produce the misleading + * "##[error] ... 0.3.5 is not on npm after publish" annotation seen in + * run 25288053638 even though the publish itself was fine. + * @param {string} packageName + * @param {string} currentVersion + * @returns {Promise} + */ +async function verifyPublishedWithRetry(packageName, currentVersion) { + let delay = VERIFY_INITIAL_DELAY; + for (let attempt = 1; attempt <= VERIFY_MAX_ATTEMPTS; attempt++) { + console.log( + `Verifying ${packageName}@${currentVersion} on npm (attempt ${attempt}/${VERIFY_MAX_ATTEMPTS})...` + ); + await sleep(delay); + const isPublished = await verifyPublished(packageName, currentVersion); + if (isPublished) { + console.log( + `✅ Verified ${packageName}@${currentVersion} is live on npm.` + ); + return true; + } + if (attempt < VERIFY_MAX_ATTEMPTS) { + console.log( + `Not yet visible on npm CDN; waiting ${delay / 1000}s before next check...` + ); + delay *= 2; + } + } + return false; +} + /** * Single publish attempt: run changeset, scan output, then re-query the - * registry to make absolutely sure the version is there. + * registry (with retries) to make absolutely sure the version is there. * @param {string} packageName * @param {string} currentVersion * @returns {Promise<{success: boolean, error: Error|null}>} @@ -247,10 +290,10 @@ async function attemptPublish(packageName, currentVersion) { return { success: false, error: analysisError }; } - // Allow npm registry caches a moment to propagate - console.log('Verifying package was published to npm...'); - await sleep(2000); - const isPublished = await verifyPublished(packageName, currentVersion); + const isPublished = await verifyPublishedWithRetry( + packageName, + currentVersion + ); if (isPublished) { return { success: true, error: null }; } @@ -316,6 +359,11 @@ async function main() { // Publish to npm using OIDC trusted publishing with retry logic // Multi-layer failure detection based on link-assistant/agent PR #116 (see file header). + // Before each retry, re-check the registry: if the previous attempt actually + // succeeded but verification timed out, we must NOT call + // `npm run changeset:publish` again — that produces a misleading + // "already published" warning and surfaces ##[error] annotations + // (see docs/case-studies/issue-33/README.md, run 25288053638). for (let i = 1; i <= MAX_RETRIES; i++) { console.log(`Publish attempt ${i} of ${MAX_RETRIES}...`); const { success, error } = await attemptPublish( @@ -335,6 +383,17 @@ async function main() { `Publish failed: ${error.message}, waiting ${RETRY_DELAY / 1000}s before retry...` ); await sleep(RETRY_DELAY); + + // Final guard before re-publishing: if the previous attempt succeeded + // and CDN propagation just lagged, avoid duplicate publish. + if (await verifyPublished(packageName, currentVersion)) { + setOutput('published', 'true'); + setOutput('published_version', currentVersion); + console.log( + `✅ Verified ${packageName}@${currentVersion} appeared on npm during retry delay; skipping re-publish.` + ); + return; + } } } diff --git a/js/scripts/release-format-helpers.mjs b/js/scripts/release-format-helpers.mjs new file mode 100644 index 0000000..a82efb2 --- /dev/null +++ b/js/scripts/release-format-helpers.mjs @@ -0,0 +1,85 @@ +/** + * Helpers for formatting release titles, tags, and shields.io badges. + * + * Tag prefix convention (per issue #33): + * js_v / rust_v / python_v / csharp_v + * Title convention: + * "[JavaScript] X.Y.Z" / "[Rust] X.Y.Z" / "[Python] X.Y.Z" / "[C#] X.Y.Z" + * + * normalizeReleaseVersionForBadge strips any language prefix ("js-", + * "rust-", "python-", "csharp-", or a leading "v") so the badge always shows + * the bare semver, even if the caller passes "js-v0.3.5". The previous code + * used `replace(/^v/, '')` which left the language prefix in place, + * producing badges like `npm-js-v0.3.5` and broken npm links. + */ + +export function normalizeReleaseVersionForBadge(releaseVersion) { + const trimmedVersion = String(releaseVersion ?? '').trim(); + const semverTagMatch = trimmedVersion.match( + /(?:^|[-_])v?(\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?)$/i + ); + + if (semverTagMatch) { + return semverTagMatch[1]; + } + + return trimmedVersion + .replace(/^[A-Za-z][A-Za-z0-9]*[-_]/, '') + .replace(/^v/i, ''); +} + +export function encodeShieldsStaticBadgeSegment(value) { + return encodeURIComponent(value).replace(/-/g, '--').replace(/_/g, '__'); +} + +export function buildNpmVersionBadge(packageName, releaseVersion) { + const versionWithoutV = normalizeReleaseVersionForBadge(releaseVersion); + const badgeVersion = encodeShieldsStaticBadgeSegment(versionWithoutV); + const packageVersionPath = encodeURIComponent(versionWithoutV); + + return `[![npm version](https://img.shields.io/badge/npm-${badgeVersion}-blue.svg)](https://www.npmjs.com/package/${packageName}/v/${packageVersionPath})`; +} + +export function buildCratesIoVersionBadge(crateName, releaseVersion) { + const versionWithoutV = normalizeReleaseVersionForBadge(releaseVersion); + const badgeVersion = encodeShieldsStaticBadgeSegment(versionWithoutV); + const crateVersionPath = encodeURIComponent(versionWithoutV); + + return `[![crates.io](https://img.shields.io/badge/crates.io-${badgeVersion}-orange.svg)](https://crates.io/crates/${crateName}/${crateVersionPath})`; +} + +export function buildNuGetVersionBadge(packageName, releaseVersion) { + const versionWithoutV = normalizeReleaseVersionForBadge(releaseVersion); + const badgeVersion = encodeShieldsStaticBadgeSegment(versionWithoutV); + const packageVersionPath = encodeURIComponent(versionWithoutV); + + return `[![NuGet](https://img.shields.io/badge/nuget-${badgeVersion}-blue.svg)](https://www.nuget.org/packages/${packageName}/${packageVersionPath})`; +} + +export function buildPyPiVersionBadge(packageName, releaseVersion) { + const versionWithoutV = normalizeReleaseVersionForBadge(releaseVersion); + const badgeVersion = encodeShieldsStaticBadgeSegment(versionWithoutV); + const packageVersionPath = encodeURIComponent(versionWithoutV); + + return `[![PyPI](https://img.shields.io/badge/pypi-${badgeVersion}-blue.svg)](https://pypi.org/project/${packageName}/${packageVersionPath}/)`; +} + +/** + * Build the human-readable release title. Examples: + * buildReleaseTitle('JavaScript', '0.3.5') => '[JavaScript] 0.3.5' + * buildReleaseTitle('JavaScript', 'js-v0.3.5') => '[JavaScript] 0.3.5' + * buildReleaseTitle('Rust', 'rust-v0.2.1') => '[Rust] 0.2.1' + */ +export function buildReleaseTitle(language, releaseVersion) { + const semver = normalizeReleaseVersionForBadge(releaseVersion); + return `[${language}] ${semver}`; +} + +/** + * Build the canonical git tag for a language release. The convention from + * issue #33 is `_v` (e.g. `js_v0.3.5`). + */ +export function buildReleaseTag(tagPrefix, releaseVersion) { + const semver = normalizeReleaseVersionForBadge(releaseVersion); + return `${tagPrefix}${semver}`; +} diff --git a/js/tests/test_release_format_helpers.test.js b/js/tests/test_release_format_helpers.test.js new file mode 100644 index 0000000..0e35226 --- /dev/null +++ b/js/tests/test_release_format_helpers.test.js @@ -0,0 +1,105 @@ +import { test } from 'node:test'; +import assert from 'node:assert/strict'; + +import { + buildCratesIoVersionBadge, + buildNpmVersionBadge, + buildNuGetVersionBadge, + buildPyPiVersionBadge, + buildReleaseTag, + buildReleaseTitle, + encodeShieldsStaticBadgeSegment, + normalizeReleaseVersionForBadge, +} from '../scripts/release-format-helpers.mjs'; + +test('normalizeReleaseVersionForBadge strips bare leading v', () => { + assert.equal(normalizeReleaseVersionForBadge('v0.3.5'), '0.3.5'); + assert.equal(normalizeReleaseVersionForBadge('0.3.5'), '0.3.5'); +}); + +test('normalizeReleaseVersionForBadge strips dash-style language prefixes', () => { + // The js-v0.3.5 case from the broken release that motivated issue #33. + assert.equal(normalizeReleaseVersionForBadge('js-v0.3.5'), '0.3.5'); + assert.equal(normalizeReleaseVersionForBadge('rust-v0.2.1'), '0.2.1'); + assert.equal(normalizeReleaseVersionForBadge('python-v1.2.3'), '1.2.3'); + assert.equal(normalizeReleaseVersionForBadge('csharp-v0.2.0'), '0.2.0'); +}); + +test('normalizeReleaseVersionForBadge strips underscore-style language prefixes', () => { + // The new js_v / rust_v / python_v / csharp_v convention from issue #33. + assert.equal(normalizeReleaseVersionForBadge('js_v0.3.5'), '0.3.5'); + assert.equal(normalizeReleaseVersionForBadge('rust_v0.2.1'), '0.2.1'); + assert.equal(normalizeReleaseVersionForBadge('python_v1.2.3'), '1.2.3'); + assert.equal(normalizeReleaseVersionForBadge('csharp_v0.2.0'), '0.2.0'); +}); + +test('normalizeReleaseVersionForBadge handles pre-release and build metadata', () => { + assert.equal( + normalizeReleaseVersionForBadge('js_v1.0.0-beta.1'), + '1.0.0-beta.1' + ); + assert.equal( + normalizeReleaseVersionForBadge('rust_v1.0.0+build.7'), + '1.0.0+build.7' + ); +}); + +test('encodeShieldsStaticBadgeSegment escapes dashes and underscores per shields.io', () => { + assert.equal( + encodeShieldsStaticBadgeSegment('1.0.0-beta.1'), + '1.0.0--beta.1' + ); + assert.equal( + encodeShieldsStaticBadgeSegment('1.0.0+build_7'), + '1.0.0%2Bbuild__7' + ); +}); + +test('buildNpmVersionBadge produces a valid shields.io badge with bare semver', () => { + // This is the bug from issue #33: when called with "js-v0.3.5", the badge + // must show "npm-0.3.5", not "npm-js-v0.3.5". + const badge = buildNpmVersionBadge('lino-objects-codec', 'js-v0.3.5'); + assert.match(badge, /npm-0\.3\.5-blue\.svg/); + assert.match(badge, /npmjs\.com\/package\/lino-objects-codec\/v\/0\.3\.5/); + assert.doesNotMatch(badge, /js-v0\.3\.5/); +}); + +test('buildCratesIoVersionBadge uses bare semver in URL and label', () => { + const badge = buildCratesIoVersionBadge('lino-objects-codec', 'rust-v0.2.1'); + assert.match(badge, /crates\.io-0\.2\.1-orange\.svg/); + assert.match(badge, /crates\.io\/crates\/lino-objects-codec\/0\.2\.1/); + assert.doesNotMatch(badge, /rust-v0\.2\.1/); +}); + +test('buildNuGetVersionBadge uses bare semver in URL and label', () => { + const badge = buildNuGetVersionBadge('LinoObjectsCodec', 'csharp-v0.2.0'); + assert.match(badge, /nuget-0\.2\.0-blue\.svg/); + assert.match(badge, /nuget\.org\/packages\/LinoObjectsCodec\/0\.2\.0/); +}); + +test('buildPyPiVersionBadge uses bare semver in URL and label', () => { + const badge = buildPyPiVersionBadge('lino-objects-codec', 'python-v1.2.3'); + assert.match(badge, /pypi-1\.2\.3-blue\.svg/); + assert.match(badge, /pypi\.org\/project\/lino-objects-codec\/1\.2\.3/); +}); + +test('buildReleaseTitle produces "[Language] X.Y.Z" regardless of input format', () => { + assert.equal( + buildReleaseTitle('JavaScript', 'js-v0.3.5'), + '[JavaScript] 0.3.5' + ); + assert.equal(buildReleaseTitle('JavaScript', '0.3.5'), '[JavaScript] 0.3.5'); + assert.equal(buildReleaseTitle('Rust', 'rust-v0.2.1'), '[Rust] 0.2.1'); + assert.equal(buildReleaseTitle('Python', 'python_v1.2.3'), '[Python] 1.2.3'); + assert.equal(buildReleaseTitle('C#', 'csharp_v0.2.0'), '[C#] 0.2.0'); +}); + +test('buildReleaseTag joins prefix with bare semver', () => { + // Accepts a raw semver and prepends the canonical prefix. + assert.equal(buildReleaseTag('js_v', '0.3.5'), 'js_v0.3.5'); + assert.equal(buildReleaseTag('rust_v', '0.2.1'), 'rust_v0.2.1'); + // Also tolerates pre-prefixed input ("js-v0.3.5") so callers can pass + // either bare semver or a canonical/legacy tag. + assert.equal(buildReleaseTag('js_v', 'js-v0.3.5'), 'js_v0.3.5'); + assert.equal(buildReleaseTag('python_v', 'python_v1.2.3'), 'python_v1.2.3'); +}); diff --git a/python/scripts/create_github_release.py b/python/scripts/create_github_release.py index 8a3a97f..6407c80 100755 --- a/python/scripts/create_github_release.py +++ b/python/scripts/create_github_release.py @@ -1,25 +1,71 @@ #!/usr/bin/env python3 -""" -Create a GitHub release from CHANGELOG.md content. +"""Create a GitHub release from CHANGELOG.md content. + +Per issue #33: + - Tag format: python_v + - Title format: [Python] X.Y.Z + - Body MUST contain a PyPI shields.io badge. + - The script must check the gh exit code so 422 (e.g. tag conflicts) does + not silently succeed. Usage: - python scripts/create_github_release.py --version VERSION --repository REPO [--tag-prefix PREFIX] + python scripts/create_github_release.py --version VERSION --repository REPO \ + [--tag-prefix PREFIX] [--language NAME] [--package-name NAME] Example: - python scripts/create_github_release.py --version 1.2.3 --repository owner/repo --tag-prefix python-v + python scripts/create_github_release.py --version 1.2.3 --repository owner/repo \ + --tag-prefix python_v Environment variables: GH_TOKEN or GITHUB_TOKEN: GitHub token for authentication """ +from __future__ import annotations + import argparse import os import re import subprocess import sys +import urllib.parse from pathlib import Path +def normalize_release_version_for_badge(release_version: str) -> str: + """Strip any language prefix and leading "v" so we always have bare semver. + + Mirrors js/scripts/release-format-helpers.mjs::normalizeReleaseVersionForBadge. + """ + trimmed = (release_version or "").strip() + semver_match = re.search( + r"(?:^|[-_])v?(\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?)$", + trimmed, + re.IGNORECASE, + ) + if semver_match: + return semver_match.group(1) + + trimmed = re.sub(r"^[A-Za-z][A-Za-z0-9]*[-_]", "", trimmed) + trimmed = re.sub(r"^v", "", trimmed, flags=re.IGNORECASE) + return trimmed + + +def encode_shields_segment(value: str) -> str: + """shields.io static badge encoding: '-' -> '--', '_' -> '__'.""" + encoded = urllib.parse.quote(value, safe="") + return encoded.replace("-", "--").replace("_", "__") + + +def build_pypi_badge(package_name: str, release_version: str) -> str: + semver = normalize_release_version_for_badge(release_version) + badge_version = encode_shields_segment(semver) + version_path = urllib.parse.quote(semver, safe="") + return ( + f"[![PyPI](https://img.shields.io/badge/pypi-{badge_version}-blue.svg)" + f"](https://pypi.org/project/{package_name}/{version_path}/)" + ) + + def run_command(cmd: list[str], check: bool = True) -> subprocess.CompletedProcess: """Run a command and handle errors.""" print(f"Running: {' '.join(cmd)}") @@ -71,19 +117,43 @@ def extract_changelog_entry(changelog_path: Path, version: str) -> str: return entry if entry else f"Release {version}" +def detect_pypi_package_name(project_root: Path) -> str | None: + """Return the [project] name from pyproject.toml (no third-party deps).""" + pyproject = project_root / "pyproject.toml" + if not pyproject.exists(): + return None + text = pyproject.read_text() + in_project = False + for raw_line in text.splitlines(): + stripped = raw_line.strip() + if stripped.startswith("["): + in_project = stripped == "[project]" + continue + if in_project: + match = re.match(r"name\s*=\s*['\"]([^'\"]+)['\"]", stripped) + if match: + return match.group(1) + return None + + def create_release( - version: str, + *, + semver: str, + tag: str, + title: str, repository: str, release_notes: str, prerelease: bool = False, - tag_prefix: str = "v", ) -> None: - """Create a GitHub release using gh CLI.""" - tag = f"{tag_prefix}{version}" - title = f"Python {version}" if tag_prefix == "python-v" else tag + """Create a GitHub release using gh CLI. + Uses ``gh release create`` rather than ``gh api`` because the former exits + non-zero on duplicate-tag failures, giving us the same false-positive + protection that issue #29 added on the JS side. + """ print(f"\nCreating GitHub release for {tag}...") print(f"Repository: {repository}") + print(f"Title: {title}") print(f"Prerelease: {prerelease}") print(f"\nRelease notes:\n{release_notes}\n") @@ -103,8 +173,19 @@ def create_release( if prerelease: cmd.append("--prerelease") - run_command(cmd) - print(f"\n✅ GitHub release {tag} created successfully!") + result = run_command(cmd, check=False) + if result.returncode != 0: + combined = f"{result.stdout}\n{result.stderr}".lower() + if "already exists" in combined or "already_exists" in combined: + print(f"GitHub release already exists: {tag}. Skipping creation.") + return + print( + f"Error: gh release create failed with exit code {result.returncode}", + file=sys.stderr, + ) + sys.exit(result.returncode) + + print(f"\n[OK] GitHub release {tag} created successfully!") def main() -> int: @@ -131,13 +212,22 @@ def main() -> int: ) parser.add_argument( "--tag-prefix", - default="v", - help='Tag prefix for the release (e.g. "python-v"); default "v"', + default="python_v", + help='Tag prefix for the release (e.g. "python_v"); default "python_v"', + ) + parser.add_argument( + "--language", + default="Python", + help='Display label for the release title (default "Python")', + ) + parser.add_argument( + "--package-name", + default=None, + help="PyPI package name for the badge (auto-detected from pyproject.toml if missing)", ) args = parser.parse_args() - # Check for GitHub token if not os.environ.get("GH_TOKEN") and not os.environ.get("GITHUB_TOKEN"): print( "Error: GH_TOKEN or GITHUB_TOKEN environment variable required", @@ -145,7 +235,6 @@ def main() -> int: ) return 1 - # Check if gh CLI is available result = run_command(["gh", "--version"], check=False) if result.returncode != 0: print( @@ -154,28 +243,34 @@ def main() -> int: ) return 1 - # Determine project root script_dir = Path(__file__).parent project_root = script_dir.parent changelog_path = project_root / "CHANGELOG.md" try: - # Extract changelog entry - release_notes = extract_changelog_entry(changelog_path, args.version) + semver = normalize_release_version_for_badge(args.version) + tag = f"{args.tag_prefix}{semver}" + title = f"[{args.language}] {semver}" + package_name = args.package_name or detect_pypi_package_name(project_root) + + release_notes = extract_changelog_entry(changelog_path, semver) + if package_name and "img.shields.io" not in release_notes: + badge = build_pypi_badge(package_name, semver) + release_notes = f"{release_notes}\n\n---\n\n{badge}" - # Create release create_release( - args.version, - args.repository, - release_notes, - args.prerelease, - args.tag_prefix, + semver=semver, + tag=tag, + title=title, + repository=args.repository, + release_notes=release_notes, + prerelease=args.prerelease, ) return 0 - except Exception as e: - print(f"Error: {e}", file=sys.stderr) + except Exception as exc: # noqa: BLE001 + print(f"Error: {exc}", file=sys.stderr) return 1 diff --git a/python/tests/test_create_github_release_helpers.py b/python/tests/test_create_github_release_helpers.py new file mode 100644 index 0000000..64c625e --- /dev/null +++ b/python/tests/test_create_github_release_helpers.py @@ -0,0 +1,45 @@ +"""Tests for the version/badge helpers in scripts/create_github_release.py.""" + +from __future__ import annotations + +import importlib.util +import sys +from pathlib import Path + +# Load create_github_release as a regular module without requiring it to be on +# the package path (it lives under scripts/ which is not part of the package). +SCRIPT_PATH = ( + Path(__file__).resolve().parent.parent / "scripts" / "create_github_release.py" +) +spec = importlib.util.spec_from_file_location("create_github_release", SCRIPT_PATH) +module = importlib.util.module_from_spec(spec) +sys.modules[spec.name] = module +spec.loader.exec_module(module) # type: ignore[union-attr] + + +def test_normalize_strips_dash_language_prefix() -> None: + assert module.normalize_release_version_for_badge("python-v1.2.3") == "1.2.3" + assert module.normalize_release_version_for_badge("python_v1.2.3") == "1.2.3" + + +def test_normalize_strips_bare_v() -> None: + assert module.normalize_release_version_for_badge("v0.3.5") == "0.3.5" + assert module.normalize_release_version_for_badge("0.3.5") == "0.3.5" + + +def test_normalize_handles_prerelease_and_build_metadata() -> None: + assert ( + module.normalize_release_version_for_badge("python_v1.0.0-beta.1") + == "1.0.0-beta.1" + ) + assert ( + module.normalize_release_version_for_badge("python_v1.0.0+build.7") + == "1.0.0+build.7" + ) + + +def test_pypi_badge_uses_bare_semver() -> None: + badge = module.build_pypi_badge("link-notation-objects-codec", "python_v1.2.3") + assert "pypi-1.2.3-blue.svg" in badge + assert "pypi.org/project/link-notation-objects-codec/1.2.3/" in badge + assert "python_v" not in badge diff --git a/rust/scripts/create-github-release.mjs b/rust/scripts/create-github-release.mjs index 9fde9be..2dd84f2 100644 --- a/rust/scripts/create-github-release.mjs +++ b/rust/scripts/create-github-release.mjs @@ -2,10 +2,16 @@ /** * Create GitHub Release from CHANGELOG.md for Rust package - * Usage: node scripts/create-github-release.mjs --version --repository [--tag-prefix ] + * Usage: node scripts/create-github-release.mjs --version --repository [--tag-prefix ] [--language ] * version: Version number (e.g., 1.0.0) * repository: GitHub repository (e.g., owner/repo) - * tag-prefix: Tag prefix (default: "rust-v") + * tag-prefix: Tag prefix (default: "rust_v") + * language: Display label for the release title (default: "Rust") + * + * Per issue #33, Rust releases must use: + * - Tag format: rust_v + * - Title format: [Rust] X.Y.Z + * - Body MUST contain a crates.io shields.io badge * * Uses link-foundation libraries: * - use-m: Dynamic package loading without package.json dependencies @@ -16,6 +22,12 @@ import { readFileSync } from 'fs'; import { isAlreadyExistingReleaseError } from './crates-release-helpers.mjs'; +import { + buildCratesIoVersionBadge, + buildReleaseTag, + buildReleaseTitle, + normalizeReleaseVersionForBadge, +} from './release-format-helpers.mjs'; // Load use-m dynamically const { use } = eval( @@ -26,6 +38,23 @@ const { use } = eval( const { $ } = await use('command-stream'); const { makeConfig } = await use('lino-arguments'); +const CARGO_TOML_PATH = './Cargo.toml'; + +function readCrateName() { + try { + const cargoToml = readFileSync(CARGO_TOML_PATH, 'utf8'); + // [package]\nname = "..." - the simplest possible parser since we + // control this file shape. + const match = cargoToml.match(/\[package\][\s\S]*?\bname\s*=\s*"([^"]+)"/); + if (match) { + return match[1]; + } + } catch { + // fall through + } + return null; +} + // Parse CLI arguments using lino-arguments const config = makeConfig({ yargs: ({ yargs, getenv }) => @@ -48,15 +77,26 @@ const config = makeConfig({ }) .option('tag-prefix', { type: 'string', - default: getenv('TAG_PREFIX', 'rust-v'), + default: getenv('TAG_PREFIX', 'rust_v'), describe: 'Tag prefix for the release', + }) + .option('language', { + type: 'string', + default: getenv('LANGUAGE', 'Rust'), + describe: 'Human-readable language label (used in the release title)', + }) + .option('crate-name', { + type: 'string', + default: getenv('CRATE_NAME', ''), + describe: + 'Crate name for crates.io badge (auto-detected from Cargo.toml if not specified)', }), }); -const { releaseVersion, repository, tagPrefix } = config; -const version = config.version || releaseVersion; +const { releaseVersion, repository, tagPrefix, language } = config; +const rawVersion = config.version || releaseVersion; -if (!version || !repository) { +if (!rawVersion || !repository) { console.error('Error: Missing required arguments'); console.error( 'Usage: node scripts/create-github-release.mjs --version --repository ' @@ -64,18 +104,26 @@ if (!version || !repository) { process.exit(1); } -const tag = `${tagPrefix}${version}`; +const semver = normalizeReleaseVersionForBadge(rawVersion); +const tag = buildReleaseTag(tagPrefix, semver); +const title = buildReleaseTitle(language, semver); +const crateName = config.crateName || readCrateName(); -console.log(`Creating GitHub release for ${tag}...`); +console.log(`Creating GitHub release for ${tag} (title: ${title})...`); try { // Read CHANGELOG.md - const changelog = readFileSync('./CHANGELOG.md', 'utf8'); + let changelog = ''; + try { + changelog = readFileSync('./CHANGELOG.md', 'utf8'); + } catch { + changelog = ''; + } // Extract changelog entry for this version // Read from CHANGELOG.md between this version header and the next version header const versionHeaderRegex = new RegExp( - `## \\[?${version.replace(/\./g, '\\.')}\\]?[\\s\\S]*?(?=## \\[?\\d|$)` + `## \\[?${semver.replace(/\./g, '\\.')}\\]?[\\s\\S]*?(?=## \\[?\\d|$)` ); const match = changelog.match(versionHeaderRegex); @@ -84,21 +132,30 @@ try { // Remove the version header itself and trim releaseNotes = match[0] .replace( - new RegExp(`## \\[?${version.replace(/\./g, '\\.')}\\]?[^\\n]*`), + new RegExp(`## \\[?${semver.replace(/\./g, '\\.')}\\]?[^\\n]*`), '' ) .trim(); } if (!releaseNotes) { - releaseNotes = `Release ${version}`; + releaseNotes = `Release ${semver}`; + } + + // Append crates.io badge so every Rust release has a registry link, even + // when the changelog body itself does not embed one. The format-release + // script will skip any release that already contains a shields.io badge, + // so adding it here is idempotent. + if (crateName && !/img\.shields\.io/.test(releaseNotes)) { + const badge = buildCratesIoVersionBadge(crateName, semver); + releaseNotes = `${releaseNotes}\n\n---\n\n${badge}`; } // Create release using GitHub API with JSON input // This avoids shell escaping issues that occur when passing text via command-line arguments const payload = JSON.stringify({ tag_name: tag, - name: `Rust ${version}`, + name: title, body: releaseNotes, }); @@ -125,7 +182,7 @@ try { throw new Error(`gh api exited with code ${result.code}`); } - console.log(`\u2705 Created GitHub release: ${tag}`); + console.log(`✅ Created GitHub release: ${tag}`); } catch (error) { console.error('Error creating release:', error.message); process.exit(1); diff --git a/rust/scripts/release-format-helpers.mjs b/rust/scripts/release-format-helpers.mjs new file mode 100644 index 0000000..2a7ec8c --- /dev/null +++ b/rust/scripts/release-format-helpers.mjs @@ -0,0 +1,43 @@ +/** + * Rust mirror of js/scripts/release-format-helpers.mjs. + * + * Tag prefix convention (per issue #33): rust_v + * Title convention: [Rust] X.Y.Z + */ + +export function normalizeReleaseVersionForBadge(releaseVersion) { + const trimmedVersion = String(releaseVersion ?? '').trim(); + const semverTagMatch = trimmedVersion.match( + /(?:^|[-_])v?(\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?)$/i + ); + + if (semverTagMatch) { + return semverTagMatch[1]; + } + + return trimmedVersion + .replace(/^[A-Za-z][A-Za-z0-9]*[-_]/, '') + .replace(/^v/i, ''); +} + +export function encodeShieldsStaticBadgeSegment(value) { + return encodeURIComponent(value).replace(/-/g, '--').replace(/_/g, '__'); +} + +export function buildCratesIoVersionBadge(crateName, releaseVersion) { + const versionWithoutV = normalizeReleaseVersionForBadge(releaseVersion); + const badgeVersion = encodeShieldsStaticBadgeSegment(versionWithoutV); + const crateVersionPath = encodeURIComponent(versionWithoutV); + + return `[![crates.io](https://img.shields.io/badge/crates.io-${badgeVersion}-orange.svg)](https://crates.io/crates/${crateName}/${crateVersionPath})`; +} + +export function buildReleaseTitle(language, releaseVersion) { + const semver = normalizeReleaseVersionForBadge(releaseVersion); + return `[${language}] ${semver}`; +} + +export function buildReleaseTag(tagPrefix, releaseVersion) { + const semver = normalizeReleaseVersionForBadge(releaseVersion); + return `${tagPrefix}${semver}`; +} diff --git a/rust/scripts/release-format-helpers.test.mjs b/rust/scripts/release-format-helpers.test.mjs new file mode 100644 index 0000000..bad4701 --- /dev/null +++ b/rust/scripts/release-format-helpers.test.mjs @@ -0,0 +1,34 @@ +import { test } from 'node:test'; +import assert from 'node:assert/strict'; + +import { + buildCratesIoVersionBadge, + buildReleaseTag, + buildReleaseTitle, + normalizeReleaseVersionForBadge, +} from './release-format-helpers.mjs'; + +test('normalizeReleaseVersionForBadge strips rust- and rust_ prefixes', () => { + assert.equal(normalizeReleaseVersionForBadge('rust-v0.2.1'), '0.2.1'); + assert.equal(normalizeReleaseVersionForBadge('rust_v0.2.1'), '0.2.1'); + assert.equal(normalizeReleaseVersionForBadge('v0.2.1'), '0.2.1'); + assert.equal(normalizeReleaseVersionForBadge('0.2.1'), '0.2.1'); +}); + +test('buildCratesIoVersionBadge produces a clean shields.io badge for any input format', () => { + // The bug from issue #33: rust-v0.2.1 release page had no badge at all. + const badge = buildCratesIoVersionBadge('lino-objects-codec', 'rust-v0.2.1'); + assert.match(badge, /crates\.io-0\.2\.1-orange\.svg/); + assert.match(badge, /crates\.io\/crates\/lino-objects-codec\/0\.2\.1/); + assert.doesNotMatch(badge, /rust-v0\.2\.1/); +}); + +test('buildReleaseTitle produces "[Rust] X.Y.Z"', () => { + assert.equal(buildReleaseTitle('Rust', 'rust-v0.2.1'), '[Rust] 0.2.1'); + assert.equal(buildReleaseTitle('Rust', '0.2.1'), '[Rust] 0.2.1'); +}); + +test('buildReleaseTag joins prefix with bare semver', () => { + assert.equal(buildReleaseTag('rust_v', '0.2.1'), 'rust_v0.2.1'); + assert.equal(buildReleaseTag('rust_v', 'rust-v0.2.1'), 'rust_v0.2.1'); +}); From d0fe09b61aaa9728e8497f7ee06867ed2a24f7d8 Mon Sep 17 00:00:00 2001 From: konard Date: Tue, 5 May 2026 19:46:46 +0000 Subject: [PATCH 3/4] chore(js): add changeset for issue #33 CI/CD fixes Patch-level changeset: covers the npm publish verification retry fix, the `[JavaScript] X.Y.Z` release title format, the `js_v` tag prefix, and the shields.io badge URL fix in format-release-notes.mjs. Refs #33 --- js/.changeset/issue-33-release-format.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 js/.changeset/issue-33-release-format.md diff --git a/js/.changeset/issue-33-release-format.md b/js/.changeset/issue-33-release-format.md new file mode 100644 index 0000000..d9e84d5 --- /dev/null +++ b/js/.changeset/issue-33-release-format.md @@ -0,0 +1,5 @@ +--- +'lino-objects-codec': patch +--- + +Fix the npm publish false positive (`##[error]` annotations in green runs) by retrying the registry verification with exponential backoff and pre-checking the registry before re-running `changeset publish`. Standardize GitHub Release titles to `[JavaScript] X.Y.Z` and tag prefix to `js_v`. Fix the shields.io badge URL so it embeds bare SemVer instead of leaving the `js-v` language prefix in the badge and npm links. From 6ff0eefab037c12736301a56d58f77e7d920f996 Mon Sep 17 00:00:00 2001 From: konard Date: Tue, 5 May 2026 19:53:53 +0000 Subject: [PATCH 4/4] Revert "Initial commit with task details" This reverts commit 7f9b7ca25e22f9cf56078fddc2f88f3d46625deb. --- .gitkeep | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .gitkeep diff --git a/.gitkeep b/.gitkeep deleted file mode 100644 index 9074725..0000000 --- a/.gitkeep +++ /dev/null @@ -1 +0,0 @@ -# .gitkeep file auto-generated at 2026-05-05T19:18:12.586Z for PR creation at branch issue-33-2c527aa50b81 for issue https://github.com/link-foundation/lino-objects-codec/issues/33 \ No newline at end of file