Skip to content

Upgrade faker to 10.4.0#227

Merged
eviltester merged 4 commits into
masterfrom
codex/faker-10-4-0-upgrade
Jun 17, 2026
Merged

Upgrade faker to 10.4.0#227
eviltester merged 4 commits into
masterfrom
codex/faker-10-4-0-upgrade

Conversation

@eviltester

@eviltester eviltester commented Jun 17, 2026

Copy link
Copy Markdown
Owner

What changed

Upgrades the repo from @faker-js/faker 9.7.0 to 10.4.0 and updates the curated Faker integration surfaces to match the current runtime more closely.

Why it changed

Faker 10 removes several previously curated commands and changes some signatures. The repo also had a parser mismatch for internet.ipv4 / internet.ipv6, and the helper-command list needed a clearer split between commands we know about internally and commands we allow through the schema/API surfaces.

Impact

  • removes the five no-longer-supported curated commands from user-facing surfaces
  • adds commerce.upc
  • keeps forbidden helper commands known internally while blocking them from schema/API use
  • regenerates Faker help metadata and interaction matrix fixtures
  • updates domain docs/examples and command-pickers to stay aligned with the supported set

Root cause

The curated command catalog, safe-rule validation, and UI picker/fixture generation were all treating "known to the codebase" and "allowed for users" as the same concept. Faker 10 made that coupling more visible because runtime support and desired product exposure no longer matched exactly.

Validation

  • pnpm run verify:local

Summary by CodeRabbit

Release Notes

  • New Features

    • Updated to @faker-js/faker v10.4.0, including new commerce.upc test-data generation.
    • Updated UI command catalog/selection to use an allowed vs restricted command set.
  • Documentation

    • Added commerce.upc docs; removed/updated documentation for dropped or renamed finance/image/internet methods.
  • Bug Fixes

    • Improved faker command validation/compilation for digit-containing method names (e.g., IPv4/IPv6).
    • Blocked restricted faker commands with clearer errors (including when not in safe mode), and improved string.uuid argument handling.

Copilot AI review requested due to automatic review settings June 17, 2026 13:35
@coderabbitai

coderabbitai Bot commented Jun 17, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 4e73152a-66a0-4e28-a7a4-755d02b2eab8

📥 Commits

Reviewing files that changed from the base of the PR and between 8e5e88b and 75f0a25.

📒 Files selected for processing (9)
  • docs-src/docs/040-test-data/domain/260-string.md
  • packages/core-ui/src/tests/interaction/matrix/ui-scenario-parity-support.test.js
  • packages/core-ui/src/tests/utils/faker-command-help-metadata.test.js
  • packages/core/js/domain/domain-faker-string-keyword-definitions.js
  • packages/core/js/domain/domain-keywords.js
  • packages/core/js/faker/faker-command-help-metadata.js
  • packages/core/src/tests/data_generation/unit/domain/domain-string-exec.test.js
  • packages/core/src/tests/data_generation/unit/domain/domainKeywords.test.js
  • scripts/generate-faker-help.js
✅ Files skipped from review due to trivial changes (2)
  • docs-src/docs/040-test-data/domain/260-string.md
  • packages/core/js/faker/faker-command-help-metadata.js
🚧 Files skipped from review as they are similar to previous changes (5)
  • packages/core-ui/src/tests/interaction/matrix/ui-scenario-parity-support.test.js
  • packages/core-ui/src/tests/utils/faker-command-help-metadata.test.js
  • packages/core/src/tests/data_generation/unit/domain/domainKeywords.test.js
  • packages/core/js/domain/domain-faker-string-keyword-definitions.js
  • scripts/generate-faker-help.js

📝 Walkthrough

Walkthrough

Upgrades @faker-js/faker from v9.7.0 to v10.4.0. Removes deprecated commands (finance.maskedNumber, image.avatarLegacy, image.urlPlaceholder, internet.color, internet.userName), adds commerce.upc and four helpers.* definitions, introduces a FORBIDDEN_FAKER_COMMANDS mechanism with validation across core and core-ui, fixes the command segment regex to permit alphanumeric names like ipv4/ipv6, updates string.uuid with version/refDate parameters, and regenerates all metadata, fixtures, and documentation.

Changes

Faker v10.4.0 Upgrade & Command Governance

Layer / File(s) Summary
Dependency upgrade and command registry baseline
package.json, packages/core/package.json, jest.config.cjs, packages/core-ui/js/gui_components/app/test-data-grid/controller/test-data-grid-controller.js, packages/core/js/faker/faker-commands.js
Bumps @faker-js/faker to 10.4.0 across package files and removes Skypack CDN moduleNameMapper and URL imports. Updates KNOWN_FAKER_COMMANDS for v10.4.0 command additions/removals and introduces FORBIDDEN_FAKER_COMMANDS, getAllowedFakerCommands* functions, and isForbiddenFakerCommand predicate.
Domain keyword definitions and help metadata refresh
packages/core/js/domain/domain-faker-commerce-keyword-definitions.js, packages/core/js/domain/domain-faker-finance-keyword-definitions.js, packages/core/js/domain/domain-faker-image-keyword-definitions.js, packages/core/js/domain/domain-faker-internet-keyword-definitions.js, packages/core/js/faker/faker-helper-keyword-definitions.js, packages/core/js/faker/faker-command-help-metadata.js
Adds commerce.upc with optional prefix argument; removes finance.maskedNumber, image.avatarLegacy, image.urlPlaceholder, internet.color; renames internet.userName to internet.username; adds four helpers.* keyword definitions (objectKey, objectValue, objectEntry, enumValue); regenerates FAKER_COMMAND_HELP_METADATA with updated examples, new entries, and expanded person.* parameter types including generic sex designation.
FakerCommand parser fix and matrix scenario execution
packages/core/js/data_generation/faker/fakerCommand.js, scripts/generate-schema-interaction-matrix.mjs, packages/core/src/tests/data_generation/unit/faker/fakerCommand.test.js
Tightens path-segment regex to require letter-start followed by alphanumerics, enabling ipv4/ipv6 method names. Removes hardcoded non-executable early-return for those commands in matrix generation. Adds compilation and execution tests for internet.ipv4 and internet.ipv6 with proper validation and regex matching.
Core forbidden command validation during generation state
packages/core/src/index.js, packages/core/src/tests/core-api/generateFromTextSpec.test.js
Introduces validateForbiddenFakerRules helper to check for forbidden commands at compilation time. Refactors validateSafeFakerRules to use getAllowedFakerCommandsAlphabetical as allowlist. Updates compileGenerationState to run forbidden validation up front with early unsafe_faker_rule error return. Adds test coverage for forbidden command rejection in safe and non-safe modes.
Core-UI command catalog and row validation with allowed filtering
packages/core-ui/js/gui_components/shared/faker-commands.js, packages/core-ui/js/gui_components/app/test-data-grid/schema/test-data-command-catalog.js, packages/core-ui/js/gui_components/shared/test-data/schema/schema-row-validation.js, packages/core-ui/src/tests/grid/schema/test-data-command-catalog.test.js, packages/core-ui/src/tests/shared/schema-row-validation.test.js
Re-exports forbidden/allowed symbols through shared faker-commands module. Switches command catalog from KNOWN_FAKER_COMMANDS to getAllowedFakerCommandsAlphabetical sources. Adds forbidden_faker_command validation issue type with pre-check before parameter validation. Adds test assertions for forbidden command exclusion and validation issue reporting.
FakerCommandRunner forbidden command execution blocking
packages/core/js/data_generation/faker/fakerCommandRunner.js, packages/core/src/tests/data_generation/unit/faker/hybridFakerCommandRunner.test.js
Adds early-return guard in runFakerCommand to detect and block forbidden commands with descriptive error response before existing safe/unsafe execution logic. Adds test coverage verifying forbidden helper commands are rejected at execution time.
Domain type matching and keyword argument sampling helpers
packages/core/js/domain/domain-keywords.js, packages/core/src/tests/data_generation/unit/domain/domain-keyword-params-usage.test.js, packages/core/src/tests/data_generation/unit/domain/domain-param-invocation-coverage.test-helper.js, packages/core/src/tests/data_generation/unit/domain/domainKeywords.test.js
Extends isTypeMatch to support numeric-literal and date type specifiers. Adds normaliseStringUuidOptions for version/refDate validation. Adds special-case sampling for version (returns 7), refDate, and commerce.upc.prefix (returns '01234'). Detects numeric-literal type unions to return first parsed number. Updates test helpers and assertions.
String UUID domain keyword with version and refDate parameters
packages/core/js/domain/domain-faker-string-keyword-definitions.js, packages/core/src/tests/data_generation/unit/domain/domain-string-exec.test.js, scripts/generate-faker-help.js
Updates string.uuid delegate to use optionsFromHelpArgs transformation with version (4|7) and refDate parameters (refDate incompatible with version 4, defaults to version 7). Updates help metadata to be version-agnostic with parameter documentation. Modifies generate-faker-help.js to support built-in command overrides. Replaces execution tests to validate parameter acceptance, UUID format, and error handling.
AutoIncrement documentation and examples update
docs-src/docs/040-test-data/domain/040-autoIncrement.md, packages/core/js/domain/domain-custom-autoincrement-keyword-definitions.js
Updates documentation to describe sequence behavior as stateful helpers advancing only when rows are accepted. Clarifies step parameter as non-zero. Revises autoIncrement.timestamp parameter docs for start, step, type, outputFormat, inputFormat. Updates examples with different start formats and inputFormat usage demonstrations.
Scenario identity helpers and display derivation
packages/core-ui/src/tests/interaction/matrix/support/scenario-fixture-identity.js, packages/core-ui/src/tests/interaction/matrix/support/schema-interaction-matrix-report.js
Adds getScenarioLogicalId to normalize scenario identifier from scenarioId or id field. Adds findScenarioByLogicalId to search scenarios by logical ID. Adds getScenarioDisplayOrigin with fallback logic preferring non-custom origins. Adds getScenarioDisplayId for display output. Updates matrix-report to use display helpers throughout rendering.
Scenario builder and execution status logic updates
packages/core-ui/src/tests/interaction/matrix/support/schema-interaction-scenario-builder.js
Switches FAKER_INTERACTION_COMMANDS from getKnownFakerCommandsAlphabetical to getAllowedFakerCommandsAlphabetical. Adds special-case defaults for version and refdate parameters. Removes NON_EXECUTABLE_RUNTIME_COMMANDS set, making faker executability determined solely by preview-generation result.
Test scenario resolution and UI parity fixture updates
packages/core-ui/src/tests/interaction/matrix/app-schema-interaction-matrix.test.js, packages/core-ui/src/tests/interaction/matrix/generator-schema-interaction-matrix.test.js, packages/core-ui/src/tests/interaction/matrix/fixtures/ui-scenario-parity.json, packages/core-ui/src/tests/interaction/matrix/ui-scenario-parity-support.test.js, packages/core-ui/src/tests/interaction/matrix/schema-interaction-matrix-report.test.js
Refactors matrix tests to use findScenarioByLogicalId for scenario lookup. Updates ui-scenario-parity fixture with ui: prefix naming and removes deprecated scenario entries. Adds scenario id uniqueness test and display-origin preference test.
Interaction matrix JSON and markdown fixtures regeneration
packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix.json, packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix-summary.md
Regenerates both fixtures with updated timestamps, adds coverage scenarios for autoIncrement.timestamp, commerce.upc, datatype.enum, finance.pin. Removes scenarios for deleted commands. Refreshes all preview values across all faker domains for v10.4.0 output.
Domain reference documentation updates
docs-src/docs/040-test-data/domain/000-domain-test-data.md, docs-src/docs/040-test-data/domain/070-commerce.md, docs-src/docs/040-test-data/domain/120-finance.md, docs-src/docs/040-test-data/domain/160-image.md, docs-src/docs/040-test-data/domain/170-internet.md, docs-src/docs/040-test-data/domain/260-string.md
Adds commerce.upc method documentation with UPC-A description and prefix parameter. Removes documentation for deprecated commands. Updates string.uuid to be version-agnostic with version/refDate parameters. Updates domain overview to reorder links and remove CreatedAt example.
Upgrade analysis and options parameter documentation
docs/faker-10.4.0-comparison-report.md, docs/faker-options-param-report.md
Adds comprehensive faker-10.4.0 comparison report covering removed/deprecated/new commands, signature changes, property-accessor support, known breakpoints, and upgrade follow-up checklist. Adds options-parameter inventory report classifying by object-only vs scalar-or-object union signatures.
Help metadata test assertions for new and updated commands
packages/core-ui/src/tests/utils/faker-command-help-metadata.test.js
Updates person.firstName test to expect sex parameter type including 'generic'. Adds string.uuid help metadata assertions for summary, version, and refDate parameters. Extends helpers.rangeToNumber to assert example value equals '2'.
Domain keyword execution tests for removed and renamed commands
packages/core/src/tests/data_generation/unit/domain/domain-finance-exec.test.js, packages/core/src/tests/data_generation/unit/domain/domain-image-exec.test.js, packages/core/src/tests/data_generation/unit/domain/domain-internet-exec.test.js
Removes execution tests for finance.maskedNumber, image.avatarLegacy, image.urlPlaceholder, internet.color. Replaces internet.userName test with internet.username test, maintaining expectMeaningfulString assertions for all remaining commands.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant validateForbidden as validateForbiddenFakerRules
  participant validateSafe as validateSafeFakerRules
  participant isForbidden as isForbiddenFakerCommand
  participant allowedSet as getAllowedFakerCommandsAlphabetical
  participant Result

  rect rgba(255, 100, 100, 0.5)
    note over User,Result: Forbidden command path (any mode)
    User->>validateForbidden: textSpec with helpers.objectKey
    validateForbidden->>isForbidden: check helpers.objectKey
    isForbidden-->>validateForbidden: true
    validateForbidden-->>Result: error unsafe_faker_rule
  end

  rect rgba(100, 180, 255, 0.5)
    note over User,Result: Safe-mode allowed command path
    User->>validateSafe: command commerce.upc (safeFakerRules=true)
    validateSafe->>isForbidden: check commerce.upc
    isForbidden-->>validateSafe: false
    validateSafe->>allowedSet: get allowed commands
    allowedSet-->>validateSafe: [...commands]
    validateSafe-->>Result: valid/error
  end

  rect rgba(100, 220, 100, 0.5)
    note over User,Result: Non-safe execution path
    User->>User: runFakerCommand(commerce.upc)
    User->>isForbidden: check commerce.upc
    isForbidden-->>User: false (allowed)
    User-->>Result: execute normally
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • eviltester/grid-table-editor#41: Wires the unsafeFakerExpressions flag through the API/core so that validateSafeFakerRules safe-mode forbidden validation is applied or bypassed, directly sharing the same validation code path updated in this PR.
  • eviltester/grid-table-editor#210: Modifies createGenerationSession/safeFakerRules runtime in packages/core/src/index.js, the same file where this PR updates validateSafeFakerRules to use the forbidden/allowed command sets.
  • eviltester/grid-table-editor#40: Both PRs integrate the FORBIDDEN_FAKER_COMMANDS mechanism—main PR introduces the allowlist infrastructure, while retrieved PR's faker command runner/API tests enforce forbidden-command blocking via isForbiddenFakerCommand.

Poem

🐇 Hop hop, a version bump today,
Old commands removed, new ones hooray!
commerce.upc joins the fray,
Forbidden helpers kept at bay,
The rabbit patches ipv4 to stay! 🎉

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Upgrade faker to 10.4.0' is concise and clearly summarizes the main change—upgrading the Faker library dependency from 9.7.0 to 10.4.0.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/faker-10-4-0-upgrade

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

packages/core-ui/src/tests/interaction/matrix/ui-scenario-parity-support.test.js

Oops! Something went wrong! :(

ESLint: 10.4.1

A config object is using the "root" key, which is not supported in flat config system.

Flat configs always act as if they are the root config file, so this key can be safely removed.

packages/core-ui/src/tests/utils/faker-command-help-metadata.test.js

Oops! Something went wrong! :(

ESLint: 10.4.1

A config object is using the "root" key, which is not supported in flat config system.

Flat configs always act as if they are the root config file, so this key can be safely removed.

packages/core/js/domain/domain-faker-string-keyword-definitions.js

Oops! Something went wrong! :(

ESLint: 10.4.1

A config object is using the "root" key, which is not supported in flat config system.

Flat configs always act as if they are the root config file, so this key can be safely removed.

  • 5 others

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@eviltester eviltester changed the title [codex] Upgrade faker to 10.4.0 Upgrade faker to 10.4.0 Jun 17, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Upgrades the repo’s Faker integration to @faker-js/faker@10.4.0, aligning the curated command catalog, safe-mode validation, UI pickers, and generated fixtures/docs with Faker v10 runtime behavior (including separating “known” vs “allowed” commands).

Changes:

  • Bumps Faker to 10.4.0, updates curated command lists/metadata, and removes v10-removed commands while adding commerce.upc.
  • Introduces a “forbidden helper commands” concept: keep them known internally but reject them in safe-mode and schema/API surfaces.
  • Regenerates interaction-matrix fixtures and refreshes domain docs/examples to match the updated supported command set.

Reviewed changes

Copilot reviewed 34 out of 35 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
scripts/generate-schema-interaction-matrix.mjs Removes special-casing for ipv4/ipv6 now that they’re executable with the updated parser/runtime.
pnpm-lock.yaml Updates locked Faker version and its resolved package metadata.
packages/core/src/tests/data_generation/unit/faker/fakerCommand.test.js Adds regression coverage for parsing/executing internet.ipv4/internet.ipv6; updates an error-message assertion.
packages/core/src/tests/data_generation/unit/domain/domain-keyword-params-usage.test.js Adds a sample value for the new commerce.upc(prefix=...) argument.
packages/core/src/tests/data_generation/unit/domain/domain-internet-exec.test.js Removes execution tests for Faker v10-removed internet commands.
packages/core/src/tests/data_generation/unit/domain/domain-image-exec.test.js Removes execution tests for Faker v10-removed image commands.
packages/core/src/tests/data_generation/unit/domain/domain-finance-exec.test.js Removes execution tests for Faker v10-removed finance command.
packages/core/src/tests/core-api/generateFromTextSpec.test.js Adds safe-mode test to ensure forbidden faker commands are rejected.
packages/core/src/index.js Splits “allowed” vs “forbidden” faker commands for safe-mode validation and improves error specificity.
packages/core/package.json Bumps core package dependency on @faker-js/faker to 10.4.0.
packages/core/js/faker/faker-helper-keyword-definitions.js Adds helper keyword definitions for newly recognized helper APIs.
packages/core/js/faker/faker-commands.js Updates curated command list for v10.4.0; adds forbidden list + allowed filtering helpers.
packages/core/js/faker/faker-command-help-metadata.js Regenerates auto-derived help metadata to match Faker 10.4.0.
packages/core/js/domain/domain-faker-internet-keyword-definitions.js Removes internet keywords that no longer exist in Faker v10.
packages/core/js/domain/domain-faker-image-keyword-definitions.js Removes image keywords that no longer exist in Faker v10.
packages/core/js/domain/domain-faker-finance-keyword-definitions.js Removes finance keyword that no longer exists in Faker v10.
packages/core/js/domain/domain-faker-commerce-keyword-definitions.js Adds commerce.upc domain keyword + help/arg mapping.
packages/core/js/data_generation/faker/fakerCommand.js Fixes parser to allow digits in method segments (e.g., ipv4, ipv6).
packages/core-ui/src/tests/utils/faker-command-help-metadata.test.js Updates expectations for widened sex type union in Faker v10 typings.
packages/core-ui/src/tests/shared/schema-row-validation.test.js Adds test asserting forbidden faker commands are reported as “known but not allowed”.
packages/core-ui/src/tests/interaction/matrix/support/schema-interaction-scenario-builder.js Uses allowed faker commands for matrix generation; updates scenario rules/fixtures generation logic.
packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix.json Regenerated interaction-matrix fixture reflecting updated command surface.
packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix-summary.md Regenerated interaction-matrix human-readable summary.
packages/core-ui/src/tests/grid/schema/test-data-command-catalog.test.js Ensures forbidden commands do not appear in catalogs/picker-backed values.
packages/core-ui/js/gui_components/shared/test-data/schema/schema-row-validation.js Adds forbidden-command detection for faker schema rows.
packages/core-ui/js/gui_components/shared/faker-commands.js Re-exports new forbidden/allowed faker command helpers from core.
packages/core-ui/js/gui_components/app/test-data-grid/schema/test-data-command-catalog.js Switches picker/catalog to “allowed” faker commands only.
packages/core-ui/js/gui_components/app/test-data-grid/controller/test-data-grid-controller.js Switches faker import from CDN to package dependency.
package.json Bumps dev dependency to @faker-js/faker@10.4.0 and removes CDN moduleNameMapper entry.
jest.config.cjs Removes Jest moduleNameMapper for the old Faker CDN import.
docs/faker-10.4.0-comparison-report.md Adds one-off upgrade comparison report documenting removals/additions and metadata shifts.
docs-src/docs/040-test-data/domain/170-internet.md Removes docs for v10-removed internet methods.
docs-src/docs/040-test-data/domain/160-image.md Removes docs for v10-removed image methods.
docs-src/docs/040-test-data/domain/120-finance.md Removes docs for v10-removed finance method.
docs-src/docs/040-test-data/domain/070-commerce.md Documents new commerce.upc domain method and examples.
Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

@greptile-apps

greptile-apps Bot commented Jun 17, 2026

Copy link
Copy Markdown

Greptile Summary

This PR upgrades @faker-js/faker from v9.7.0 to v10.4.0, removes five methods dropped from the Faker API (finance.maskedNumber, image.avatarLegacy, image.urlPlaceholder, internet.color, internet.userName), and introduces a clear distinction between "known to the codebase" and "allowed for user access." It also fixes a long-standing regex bug that prevented internet.ipv4 and internet.ipv6 from being recognized, and expands string.uuid to support both v4 and v7 UUIDs.

  • Adds a FORBIDDEN_FAKER_COMMANDS set and enforces it at three independent layers: the text-spec validator, the schema row validator, and the runtime command runner, ensuring helpers like helpers.objectKey are documented internally but blocked from user-facing surfaces.
  • Fixes the FakerCommand parser regex ('^([A-Za-z]*)$''^([A-Za-z][A-Za-z0-9]*)$') so that method names containing digits (e.g. ipv4, ipv6) are parsed correctly.
  • Expands the string.uuid domain keyword definition with optional version (literal type 4|7) and refDate args, backed by normaliseStringUuidOptions which auto-defaults to v7 when only refDate is supplied and rejects the invalid refDate + version=4 combination with an explicit error.

Confidence Score: 5/5

Safe to merge — the forbidden-command enforcement is consistent across all three layers (text-spec validator, schema row validator, runtime runner), the regex fix is surgical and well-tested, and no existing allowed commands are broken.

The changes are well-scoped: deprecated Faker v10 methods are cleanly removed, the new FORBIDDEN_FAKER_COMMANDS distinction is enforced at every validation and execution boundary, and the string.uuid upgrade with cross-arg validation is covered by targeted tests. The ipv4/ipv6 regex fix is accompanied by explicit round-trip tests confirming parse, compile, validate, and execute all succeed.

No files require special attention. The most complex logic is in domain-keywords.js (normaliseStringUuidOptions) and index.js (validateForbiddenFakerRules), both of which have dedicated test coverage.

Important Files Changed

Filename Overview
packages/core/js/faker/faker-commands.js Introduces FORBIDDEN_FAKER_COMMANDS (four helpers.* entries) alongside the existing KNOWN list, adds getAllowedFaker* filter functions, and exports isForbiddenFakerCommand — cleanly separating internal knowledge from user-permitted surface.
packages/core/js/data_generation/faker/fakerCommand.js One-line regex fix: allows digits after the first letter in a Faker method segment, resolving the long-standing parse failure for internet.ipv4 / internet.ipv6.
packages/core/js/data_generation/faker/fakerCommandRunner.js Adds an isForbiddenFakerCommand guard at the top of runFakerCommand, returning an error response before any execution attempt for blocked helpers.
packages/core/js/domain/domain-keywords.js Adds numeric-literal type matching (e.g. '4
packages/core/src/index.js Adds validateForbiddenFakerRules called unconditionally before safe-mode validation in compileGenerationState; also updates validateSafeFakerRules to use getAllowedFakerCommandsAlphabetical and adds a redundant (but correct for standalone use) forbidden-command guard there too.
packages/core-ui/js/gui_components/shared/test-data/schema/schema-row-validation.js Adds a forbidden_faker_command issue type checked after the existing unknown_faker_command check; correctly uses getKnownFakerCommandsAlphabetical (all known) for the 'known' check and isForbiddenFakerCommand separately for the 'blocked' check.
packages/core/js/domain/domain-faker-string-keyword-definitions.js Expands string.uuid with optional version ('4
packages/core/js/faker/faker-helper-keyword-definitions.js Adds help metadata for the four newly-known (but forbidden) helpers.object* / helpers.enumValue commands; these entries are present for internal tooling only and are not surfaced to users.
packages/core-ui/src/tests/interaction/matrix/support/schema-interaction-scenario-builder.js Switches FAKER_INTERACTION_COMMANDS to use getAllowedFakerCommandsAlphabetical (filtering out forbidden commands), removes the now-unnecessary NON_EXECUTABLE_RUNTIME_COMMANDS set, and adds version/refDate overrides for string.uuid scenario generation.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[User submits textSpec / schema row] --> B{Contains a Faker command?}
    B -- No --> Z[Proceed normally]
    B -- Yes --> C[validateForbiddenFakerRules]
    C -- Forbidden command\ne.g. helpers.objectKey --> D[Error: unsafe_faker_rule]
    C -- OK --> E{Safe mode enabled?}
    E -- Yes --> F[validateSafeFakerRules]
    F -- Forbidden or unknown command --> G[Error: safe mode violation]
    F -- Known + safe args --> H[compileGenerationState]
    E -- No --> H
    H --> I[runFakerCommand]
    I --> J{isForbiddenFakerCommand?}
    J -- Yes --> K[errorResponse: Forbidden faker command]
    J -- No --> L{Command has digits?\ne.g. ipv4/ipv6}
    L -- Yes, regex fixed --> M[Parse and compile via FakerCommand]
    L -- No --> M
    M --> N[Execute Faker]
    N --> O[Return generated data]

    subgraph Schema UI Layer
        P[schema-row-validation.js]
        P --> Q{In KNOWN_FAKER_COMMANDS?}
        Q -- No --> R[unknown_faker_command issue]
        Q -- Yes --> S{isForbiddenFakerCommand?}
        S -- Yes --> T[forbidden_faker_command issue]
        S -- No --> U[Valid command]
    end
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[User submits textSpec / schema row] --> B{Contains a Faker command?}
    B -- No --> Z[Proceed normally]
    B -- Yes --> C[validateForbiddenFakerRules]
    C -- Forbidden command\ne.g. helpers.objectKey --> D[Error: unsafe_faker_rule]
    C -- OK --> E{Safe mode enabled?}
    E -- Yes --> F[validateSafeFakerRules]
    F -- Forbidden or unknown command --> G[Error: safe mode violation]
    F -- Known + safe args --> H[compileGenerationState]
    E -- No --> H
    H --> I[runFakerCommand]
    I --> J{isForbiddenFakerCommand?}
    J -- Yes --> K[errorResponse: Forbidden faker command]
    J -- No --> L{Command has digits?\ne.g. ipv4/ipv6}
    L -- Yes, regex fixed --> M[Parse and compile via FakerCommand]
    L -- No --> M
    M --> N[Execute Faker]
    N --> O[Return generated data]

    subgraph Schema UI Layer
        P[schema-row-validation.js]
        P --> Q{In KNOWN_FAKER_COMMANDS?}
        Q -- No --> R[unknown_faker_command issue]
        Q -- Yes --> S{isForbiddenFakerCommand?}
        S -- Yes --> T[forbidden_faker_command issue]
        S -- No --> U[Valid command]
    end
Loading

Reviews (4): Last reviewed commit: "Tighten uuid domain wrapper behavior" | Re-trigger Greptile

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9c927dde11

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/core/src/index.js

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix-summary.md (1)

13-38: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Recompute the origin totals.

The origin breakdown doesn’t match the stated scenario count here: the listed values add up to 645, not 642. The same +3 drift repeats in the runtime/UI sections below, so this looks stale. Please regenerate the summary instead of hand-editing the counts.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix-summary.md`
around lines 13 - 38, The origin breakdown counts in the "By Origin" section of
schema-interaction-matrix-summary.md (showing arg, base, custom, empty, example,
pair, pairwise) currently sum to 645, but the stated scenario count is 642,
indicating a stale hand-edited discrepancy of +3. Regenerate the entire
schema-interaction-matrix-summary.md file by recomputing all the totals
programmatically rather than maintaining manually edited values, ensuring all
sections (By Origin, By Source Type, and any runtime/UI sections) reflect the
accurate scenario counts.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/faker-10.4.0-comparison-report.md`:
- Around line 161-179: Remove or mark as complete the ipv4/ipv6 parser
constraint item in the "Recommended sequence for issue `#225`" section since the
report already indicates this fix is complete in the current worktree. Either
delete item `#5` from the "Recommended sequence" list that mentions fixing the
ipv4/ipv6 parser constraint in FakerCommand, or revise it to clarify that this
item is already resolved rather than listed as an optional pending task, to
eliminate the contradiction between the sequence and the report's actual status.

In
`@packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix.json`:
- Around line 15844-16432: The fixture file contains duplicate scenario IDs that
violate uniqueness constraints. Identify and remove or rename all duplicate ID
entries (such as domain-autoIncrement-timestamp-base, domain-commerce-upc-base,
and domain-datatype-enum-arg-values which appear multiple times). Ensure each
scenario object has a unique id field throughout the entire JSON file. If these
duplicates are generated automatically, also check and fix the generation script
to prevent future duplicates.

In `@packages/core/js/faker/faker-command-help-metadata.js`:
- Around line 646-658: In the metadata object for the 'string.uuid' method, the
options parameter is incorrectly marked with optional: false when it should be
optional: true, since the Faker API allows calling the method without arguments.
Locate the options parameter object within the params array for 'string.uuid'
and change the optional property from false to true to accurately reflect that
the parameter is optional.

---

Outside diff comments:
In
`@packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix-summary.md`:
- Around line 13-38: The origin breakdown counts in the "By Origin" section of
schema-interaction-matrix-summary.md (showing arg, base, custom, empty, example,
pair, pairwise) currently sum to 645, but the stated scenario count is 642,
indicating a stale hand-edited discrepancy of +3. Regenerate the entire
schema-interaction-matrix-summary.md file by recomputing all the totals
programmatically rather than maintaining manually edited values, ensuring all
sections (By Origin, By Source Type, and any runtime/UI sections) reflect the
accurate scenario counts.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 86d300f0-38e1-4950-8972-fdff12ecaa1c

📥 Commits

Reviewing files that changed from the base of the PR and between 40a6a27 and 9c927dd.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (34)
  • docs-src/docs/040-test-data/domain/070-commerce.md
  • docs-src/docs/040-test-data/domain/120-finance.md
  • docs-src/docs/040-test-data/domain/160-image.md
  • docs-src/docs/040-test-data/domain/170-internet.md
  • docs/faker-10.4.0-comparison-report.md
  • jest.config.cjs
  • package.json
  • packages/core-ui/js/gui_components/app/test-data-grid/controller/test-data-grid-controller.js
  • packages/core-ui/js/gui_components/app/test-data-grid/schema/test-data-command-catalog.js
  • packages/core-ui/js/gui_components/shared/faker-commands.js
  • packages/core-ui/js/gui_components/shared/test-data/schema/schema-row-validation.js
  • packages/core-ui/src/tests/grid/schema/test-data-command-catalog.test.js
  • packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix-summary.md
  • packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix.json
  • packages/core-ui/src/tests/interaction/matrix/support/schema-interaction-scenario-builder.js
  • packages/core-ui/src/tests/shared/schema-row-validation.test.js
  • packages/core-ui/src/tests/utils/faker-command-help-metadata.test.js
  • packages/core/js/data_generation/faker/fakerCommand.js
  • packages/core/js/domain/domain-faker-commerce-keyword-definitions.js
  • packages/core/js/domain/domain-faker-finance-keyword-definitions.js
  • packages/core/js/domain/domain-faker-image-keyword-definitions.js
  • packages/core/js/domain/domain-faker-internet-keyword-definitions.js
  • packages/core/js/faker/faker-command-help-metadata.js
  • packages/core/js/faker/faker-commands.js
  • packages/core/js/faker/faker-helper-keyword-definitions.js
  • packages/core/package.json
  • packages/core/src/index.js
  • packages/core/src/tests/core-api/generateFromTextSpec.test.js
  • packages/core/src/tests/data_generation/unit/domain/domain-finance-exec.test.js
  • packages/core/src/tests/data_generation/unit/domain/domain-image-exec.test.js
  • packages/core/src/tests/data_generation/unit/domain/domain-internet-exec.test.js
  • packages/core/src/tests/data_generation/unit/domain/domain-keyword-params-usage.test.js
  • packages/core/src/tests/data_generation/unit/faker/fakerCommand.test.js
  • scripts/generate-schema-interaction-matrix.mjs
💤 Files with no reviewable changes (11)
  • scripts/generate-schema-interaction-matrix.mjs
  • docs-src/docs/040-test-data/domain/160-image.md
  • packages/core/js/domain/domain-faker-image-keyword-definitions.js
  • docs-src/docs/040-test-data/domain/170-internet.md
  • docs-src/docs/040-test-data/domain/120-finance.md
  • packages/core/src/tests/data_generation/unit/domain/domain-finance-exec.test.js
  • jest.config.cjs
  • packages/core/src/tests/data_generation/unit/domain/domain-internet-exec.test.js
  • packages/core/js/domain/domain-faker-finance-keyword-definitions.js
  • packages/core/js/domain/domain-faker-internet-keyword-definitions.js
  • packages/core/src/tests/data_generation/unit/domain/domain-image-exec.test.js

Comment thread docs/faker-10.4.0-comparison-report.md
Comment on lines 15844 to 16432
{
"name": "Value",
"sourceType": "domain",
"command": "animal.type",
"params": "()",
"command": "animal.type",
"params": "()",
"value": ""
}
],
"expectedSchemaText": "Value\nanimal.type()",
"expectedUiSchemaText": "Value\nanimal.type()",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": [],
"origins": ["base"]
},
{
"id": "domain-autoIncrement-sequence-base",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(1, 5, \"filename\", \".txt\", 3)",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(1, 5, \"filename\", \".txt\", 3)",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(1, 5, \"filename\", \".txt\", 3)",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": [],
"origins": ["base"]
},
{
"id": "domain-autoIncrement-sequence-example-1",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence example 1",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "()",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence()",
"expectedUiSchemaText": "Value\nautoIncrement.sequence()",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["start", "step", "prefix", "suffix", "zeropadding"],
"origins": ["example"]
},
{
"id": "domain-autoIncrement-sequence-example-2",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence example 2",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(start=10, step=5)",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(start=10, step=5)",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(start=10, step=5)",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["start", "step", "prefix", "suffix", "zeropadding"],
"origins": ["example"]
},
{
"id": "domain-autoIncrement-sequence-example-3",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence example 3",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(start=1, step=5, prefix=\"filename\", suffix=\".txt\", zeropadding=3)",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(start=1, step=5, prefix=\"filename\", suffix=\".txt\", zeropadding=3)",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(start=1, step=5, prefix=\"filename\", suffix=\".txt\", zeropadding=3)",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["start", "step", "prefix", "suffix", "zeropadding"],
"origins": ["example"]
},
{
"id": "domain-autoIncrement-sequence-arg-start",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence arg start",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(start=10)",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(start=10)",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(start=10)",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["start"],
"origins": ["arg"]
},
{
"id": "domain-autoIncrement-sequence-arg-step",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence arg step",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(step=5)",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(step=5)",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(step=5)",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["step"],
"origins": ["arg"]
},
{
"id": "domain-autoIncrement-sequence-arg-prefix",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence arg prefix",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(prefix=\"filename\")",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(prefix=\"filename\")",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(prefix=\"filename\")",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["prefix"],
"origins": ["arg"]
},
{
"id": "domain-autoIncrement-sequence-arg-suffix",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence arg suffix",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(suffix=\".txt\")",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(suffix=\".txt\")",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(suffix=\".txt\")",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["suffix"],
"origins": ["arg"]
},
{
"id": "domain-autoIncrement-sequence-arg-zeropadding",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence arg zeropadding",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(zeropadding=3)",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(zeropadding=3)",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(zeropadding=3)",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["zeropadding"],
"origins": ["arg"]
},
{
"id": "domain-autoIncrement-sequence-pair-start-step",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence pair start/step",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(start=10, step=5)",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(start=10, step=5)",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(start=10, step=5)",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["start", "step"],
"origins": ["pair"]
},
{
"id": "domain-autoIncrement-sequence-pair-step-prefix",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence pair step/prefix",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(step=5, prefix=\"filename\")",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(step=5, prefix=\"filename\")",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(step=5, prefix=\"filename\")",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["step", "prefix"],
"origins": ["pair"]
},
{
"id": "domain-autoIncrement-sequence-pair-prefix-suffix",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence pair prefix/suffix",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(prefix=\"filename\", suffix=\".txt\")",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(prefix=\"filename\", suffix=\".txt\")",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(prefix=\"filename\", suffix=\".txt\")",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["prefix", "suffix"],
"origins": ["pair"]
},
{
"id": "domain-autoIncrement-sequence-pair-suffix-zeropadding",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence pair suffix/zeropadding",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(suffix=\".txt\", zeropadding=3)",
"value": ""
}
],
"expectedSchemaText": "Value\nanimal.type()",
"expectedUiSchemaText": "Value\nanimal.type()",
"expectedSchemaText": "Value\nautoIncrement.sequence(suffix=\".txt\", zeropadding=3)",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(suffix=\".txt\", zeropadding=3)",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": [],
"origins": ["base"]
"coveredArgs": ["suffix", "zeropadding"],
"origins": ["pair"]
},
{
"id": "domain-autoIncrement-sequence-base",
"id": "domain-autoIncrement-timestamp-base",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence",
"command": "autoIncrement.timestamp",
"label": "autoIncrement.timestamp",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(1, 5, \"filename\", \".txt\", 3)",
"command": "autoIncrement.timestamp",
"params": "()",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(1, 5, \"filename\", \".txt\", 3)",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(1, 5, \"filename\", \".txt\", 3)",
"expectedSchemaText": "Value\nautoIncrement.timestamp()",
"expectedUiSchemaText": "Value\nautoIncrement.timestamp()",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": [],
"origins": ["base"]
},
{
"id": "domain-autoIncrement-sequence-example-1",
"id": "domain-autoIncrement-timestamp-example-1",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence example 1",
"command": "autoIncrement.timestamp",
"label": "autoIncrement.timestamp example 1",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"command": "autoIncrement.timestamp",
"params": "()",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence()",
"expectedUiSchemaText": "Value\nautoIncrement.sequence()",
"expectedSchemaText": "Value\nautoIncrement.timestamp()",
"expectedUiSchemaText": "Value\nautoIncrement.timestamp()",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["start", "step", "prefix", "suffix", "zeropadding"],
"coveredArgs": ["start", "step", "type", "outputFormat", "inputFormat"],
"origins": ["example"]
},
{
"id": "domain-autoIncrement-sequence-example-2",
"id": "domain-autoIncrement-timestamp-example-2",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence example 2",
"command": "autoIncrement.timestamp",
"label": "autoIncrement.timestamp example 2",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(start=10, step=5)",
"command": "autoIncrement.timestamp",
"params": "(start=\"20/03/1969\", step=1, type=\"days\")",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(start=10, step=5)",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(start=10, step=5)",
"expectedSchemaText": "Value\nautoIncrement.timestamp(start=\"20/03/1969\", step=1, type=\"days\")",
"expectedUiSchemaText": "Value\nautoIncrement.timestamp(start=\"20/03/1969\", step=1, type=\"days\")",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["start", "step", "prefix", "suffix", "zeropadding"],
"coveredArgs": ["start", "step", "type", "outputFormat", "inputFormat"],
"origins": ["example"]
},
{
"id": "domain-autoIncrement-sequence-example-3",
"id": "domain-autoIncrement-timestamp-example-3",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence example 3",
"command": "autoIncrement.timestamp",
"label": "autoIncrement.timestamp example 3",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(start=1, step=5, prefix=\"filename\", suffix=\".txt\", zeropadding=3)",
"command": "autoIncrement.timestamp",
"params": "(start=\"2026-06-12 12:39:23\", step=15, type=\"minutes\", outputFormat=\"yyyy-MM-dd HH:mm:ss\")",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(start=1, step=5, prefix=\"filename\", suffix=\".txt\", zeropadding=3)",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(start=1, step=5, prefix=\"filename\", suffix=\".txt\", zeropadding=3)",
"expectedSchemaText": "Value\nautoIncrement.timestamp(start=\"2026-06-12 12:39:23\", step=15, type=\"minutes\", outputFormat=\"yyyy-MM-dd HH:mm:ss\")",
"expectedUiSchemaText": "Value\nautoIncrement.timestamp(start=\"2026-06-12 12:39:23\", step=15, type=\"minutes\", outputFormat=\"yyyy-MM-dd HH:mm:ss\")",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["start", "step", "prefix", "suffix", "zeropadding"],
"coveredArgs": ["start", "step", "type", "outputFormat", "inputFormat"],
"origins": ["example"]
},
{
"id": "domain-autoIncrement-sequence-arg-start",
"id": "domain-autoIncrement-timestamp-arg-start",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence arg start",
"command": "autoIncrement.timestamp",
"label": "autoIncrement.timestamp arg start",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(start=10)",
"command": "autoIncrement.timestamp",
"params": "(start=\"2026-06-12T12:39:23Z\")",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(start=10)",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(start=10)",
"expectedSchemaText": "Value\nautoIncrement.timestamp(start=\"2026-06-12T12:39:23Z\")",
"expectedUiSchemaText": "Value\nautoIncrement.timestamp(start=\"2026-06-12T12:39:23Z\")",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["start"],
"origins": ["arg"]
},
{
"id": "domain-autoIncrement-sequence-arg-step",
"id": "domain-autoIncrement-timestamp-arg-step",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence arg step",
"command": "autoIncrement.timestamp",
"label": "autoIncrement.timestamp arg step",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(step=5)",
"command": "autoIncrement.timestamp",
"params": "(step=1)",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(step=5)",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(step=5)",
"expectedSchemaText": "Value\nautoIncrement.timestamp(step=1)",
"expectedUiSchemaText": "Value\nautoIncrement.timestamp(step=1)",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["step"],
"origins": ["arg"]
},
{
"id": "domain-autoIncrement-sequence-arg-prefix",
"id": "domain-autoIncrement-timestamp-arg-type",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence arg prefix",
"command": "autoIncrement.timestamp",
"label": "autoIncrement.timestamp arg type",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(prefix=\"filename\")",
"command": "autoIncrement.timestamp",
"params": "(type=\"seconds\")",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(prefix=\"filename\")",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(prefix=\"filename\")",
"expectedSchemaText": "Value\nautoIncrement.timestamp(type=\"seconds\")",
"expectedUiSchemaText": "Value\nautoIncrement.timestamp(type=\"seconds\")",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["prefix"],
"coveredArgs": ["type"],
"origins": ["arg"]
},
{
"id": "domain-autoIncrement-sequence-arg-suffix",
"id": "domain-autoIncrement-timestamp-arg-outputFormat",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence arg suffix",
"command": "autoIncrement.timestamp",
"label": "autoIncrement.timestamp arg outputFormat",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(suffix=\".txt\")",
"command": "autoIncrement.timestamp",
"params": "(outputFormat=\"iso8601\")",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(suffix=\".txt\")",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(suffix=\".txt\")",
"expectedSchemaText": "Value\nautoIncrement.timestamp(outputFormat=\"iso8601\")",
"expectedUiSchemaText": "Value\nautoIncrement.timestamp(outputFormat=\"iso8601\")",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["suffix"],
"coveredArgs": ["outputFormat"],
"origins": ["arg"]
},
{
"id": "domain-autoIncrement-sequence-arg-zeropadding",
"id": "domain-autoIncrement-timestamp-arg-inputFormat",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence arg zeropadding",
"command": "autoIncrement.timestamp",
"label": "autoIncrement.timestamp arg inputFormat",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(zeropadding=3)",
"command": "autoIncrement.timestamp",
"params": "(inputFormat=\"dd/MM/yyyy\")",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(zeropadding=3)",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(zeropadding=3)",
"expectedSchemaText": "Value\nautoIncrement.timestamp(inputFormat=\"dd/MM/yyyy\")",
"expectedUiSchemaText": "Value\nautoIncrement.timestamp(inputFormat=\"dd/MM/yyyy\")",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["zeropadding"],
"coveredArgs": ["inputFormat"],
"origins": ["arg"]
},
{
"id": "domain-autoIncrement-sequence-pair-start-step",
"id": "domain-autoIncrement-timestamp-pair-start-step",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence pair start/step",
"command": "autoIncrement.timestamp",
"label": "autoIncrement.timestamp pair start/step",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(start=10, step=5)",
"command": "autoIncrement.timestamp",
"params": "(start=\"2026-06-12T12:39:23Z\", step=1)",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(start=10, step=5)",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(start=10, step=5)",
"expectedSchemaText": "Value\nautoIncrement.timestamp(start=\"2026-06-12T12:39:23Z\", step=1)",
"expectedUiSchemaText": "Value\nautoIncrement.timestamp(start=\"2026-06-12T12:39:23Z\", step=1)",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["start", "step"],
"origins": ["pair"]
},
{
"id": "domain-autoIncrement-sequence-pair-step-prefix",
"id": "domain-autoIncrement-timestamp-pair-step-type",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence pair step/prefix",
"command": "autoIncrement.timestamp",
"label": "autoIncrement.timestamp pair step/type",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(step=5, prefix=\"filename\")",
"command": "autoIncrement.timestamp",
"params": "(step=1, type=\"seconds\")",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(step=5, prefix=\"filename\")",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(step=5, prefix=\"filename\")",
"expectedSchemaText": "Value\nautoIncrement.timestamp(step=1, type=\"seconds\")",
"expectedUiSchemaText": "Value\nautoIncrement.timestamp(step=1, type=\"seconds\")",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["step", "prefix"],
"coveredArgs": ["step", "type"],
"origins": ["pair"]
},
{
"id": "domain-autoIncrement-sequence-pair-prefix-suffix",
"id": "domain-autoIncrement-timestamp-pair-type-outputFormat",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence pair prefix/suffix",
"command": "autoIncrement.timestamp",
"label": "autoIncrement.timestamp pair type/outputFormat",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(prefix=\"filename\", suffix=\".txt\")",
"command": "autoIncrement.timestamp",
"params": "(type=\"seconds\", outputFormat=\"iso8601\")",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(prefix=\"filename\", suffix=\".txt\")",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(prefix=\"filename\", suffix=\".txt\")",
"expectedSchemaText": "Value\nautoIncrement.timestamp(type=\"seconds\", outputFormat=\"iso8601\")",
"expectedUiSchemaText": "Value\nautoIncrement.timestamp(type=\"seconds\", outputFormat=\"iso8601\")",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["prefix", "suffix"],
"coveredArgs": ["type", "outputFormat"],
"origins": ["pair"]
},
{
"id": "domain-autoIncrement-sequence-pair-suffix-zeropadding",
"id": "domain-autoIncrement-timestamp-pair-outputFormat-inputFormat",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"label": "autoIncrement.sequence pair suffix/zeropadding",
"command": "autoIncrement.timestamp",
"label": "autoIncrement.timestamp pair outputFormat/inputFormat",
"rows": [
{
"name": "Value",
"sourceType": "domain",
"command": "autoIncrement.sequence",
"params": "(suffix=\".txt\", zeropadding=3)",
"command": "autoIncrement.timestamp",
"params": "(outputFormat=\"iso8601\", inputFormat=\"dd/MM/yyyy\")",
"value": ""
}
],
"expectedSchemaText": "Value\nautoIncrement.sequence(suffix=\".txt\", zeropadding=3)",
"expectedUiSchemaText": "Value\nautoIncrement.sequence(suffix=\".txt\", zeropadding=3)",
"expectedSchemaText": "Value\nautoIncrement.timestamp(outputFormat=\"iso8601\", inputFormat=\"dd/MM/yyyy\")",
"expectedUiSchemaText": "Value\nautoIncrement.timestamp(outputFormat=\"iso8601\", inputFormat=\"dd/MM/yyyy\")",
"expectedFileExtension": ".csv",
"pairwiseEligible": false,
"expectStructuredSerialization": false,
"coveredArgs": ["suffix", "zeropadding"],
"coveredArgs": ["outputFormat", "inputFormat"],
"origins": ["pair"]
},
{

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check for duplicate scenario IDs in the fixture file
echo "=== Checking for duplicate scenario IDs ==="
rg -o '"id": "[^"]+"' packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix.json | sort | uniq -d | head -20

echo ""
echo "=== Count of each duplicate ID ==="
rg -o '"id": "[^"]+"' packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix.json | sort | uniq -c | sort -rn | head -20

Repository: eviltester/grid-table-editor

Length of output: 1750


🏁 Script executed:

#!/bin/bash
# Verify the specific IDs mentioned in the review comment
echo "=== Searching for domain-autoIncrement-timestamp-base ==="
rg -n '"id": "domain-autoIncrement-timestamp-base"' packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix.json

echo ""
echo "=== Searching for domain-commerce-upc-base ==="
rg -n '"id": "domain-commerce-upc-base"' packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix.json

echo ""
echo "=== Searching for domain-datatype-enum-arg-values ==="
rg -n '"id": "domain-datatype-enum-arg-values"' packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix.json

Repository: eviltester/grid-table-editor

Length of output: 542


🏁 Script executed:

#!/bin/bash
# Verify total count of each ID to ensure we have found all occurrences
echo "=== Total count for domain-autoIncrement-timestamp-base ==="
rg -c '"id": "domain-autoIncrement-timestamp-base"' packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix.json

echo ""
echo "=== Total count for domain-commerce-upc-base ==="
rg -c '"id": "domain-commerce-upc-base"' packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix.json

echo ""
echo "=== Total count for domain-datatype-enum-arg-values ==="
rg -c '"id": "domain-datatype-enum-arg-values"' packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix.json

echo ""
echo "=== Check if file structure suggests intentional duplication ==="
# Look for patterns in the file to understand structure
echo "First 50 lines around first domain-autoIncrement-timestamp-base occurrence:"
sed -n '2240,2260p' packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix.json

echo ""
echo "First 50 lines around second domain-autoIncrement-timestamp-base occurrence:"
sed -n '16130,16160p' packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix.json

Repository: eviltester/grid-table-editor

Length of output: 2287


Remove or deduplicate scenario IDs to ensure uniqueness in the fixture file.

The fixture file contains duplicate scenario IDs that appear in pairs:

  • domain-autoIncrement-timestamp-base at lines 2256 and 16147
  • domain-commerce-upc-base at lines 3422 and 17313
  • domain-datatype-enum-arg-values at lines 3840 and 17731

If IDs serve as unique identifiers (as is typical in test fixtures), these duplicates could cause test collisions or unexpected behavior. Confirm whether duplication is intentional and required for different test contexts, or if this is a generation script issue that needs fixing.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix.json`
around lines 15844 - 16432, The fixture file contains duplicate scenario IDs
that violate uniqueness constraints. Identify and remove or rename all duplicate
ID entries (such as domain-autoIncrement-timestamp-base,
domain-commerce-upc-base, and domain-datatype-enum-arg-values which appear
multiple times). Ensure each scenario object has a unique id field throughout
the entire JSON file. If these duplicates are generated automatically, also
check and fix the generation script to prevent future duplicates.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@packages/core-ui/src/tests/interaction/matrix/ui-scenario-parity-support.test.js`:
- Around line 30-35: The findScenarioByLogicalId function calls for
literalScenario, regexScenario, and mustacheScenario may return undefined
values, but these variables are later dereferenced to access their .id
properties (at lines 37, 43, and 49), which would cause a TypeError with poor
diagnostics. Add explicit toBeDefined() assertions immediately after each of the
three findScenarioByLogicalId calls to validate that the scenarios are defined
before they are used, providing better error messages if any lookup fails.

In `@packages/core/js/faker/faker-command-help-metadata.js`:
- Around line 420-423: The example value for the rangeToNumber helper in the
metadata object uses an unnecessarily long 16-digit number (5248677481580853)
that can trigger false positives in security scanners. Replace the example field
value with a shorter, simpler numeric example that aligns with the documentation
examples already shown, such as a single digit or small integer value similar to
what is used in the examples array.
- Around line 648-666: The params array in the string.uuid metadata object
currently defines version and refDate as separate positional parameters, but the
actual Faker 10.4.0 API accepts these as properties within a single optional
options parameter object. Replace the two separate param objects (name:
'version' and name: 'refDate') with a single param object named options that has
type representing an object with optional version and refDate properties, and
update the description to reflect that this is an options object.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: fa139bbb-6ce6-45c1-8257-cee9c1f73697

📥 Commits

Reviewing files that changed from the base of the PR and between 9c927dd and 8e5e88b.

📒 Files selected for processing (30)
  • docs-src/docs/040-test-data/domain/000-domain-test-data.md
  • docs-src/docs/040-test-data/domain/040-autoIncrement.md
  • docs-src/docs/040-test-data/domain/070-commerce.md
  • docs-src/docs/040-test-data/domain/260-string.md
  • docs/faker-10.4.0-comparison-report.md
  • docs/faker-options-param-report.md
  • packages/core-ui/src/tests/interaction/matrix/app-schema-interaction-matrix.test.js
  • packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix-summary.md
  • packages/core-ui/src/tests/interaction/matrix/fixtures/schema-interaction-matrix.json
  • packages/core-ui/src/tests/interaction/matrix/fixtures/ui-scenario-parity.json
  • packages/core-ui/src/tests/interaction/matrix/generator-schema-interaction-matrix.test.js
  • packages/core-ui/src/tests/interaction/matrix/schema-interaction-matrix-report.test.js
  • packages/core-ui/src/tests/interaction/matrix/support/scenario-fixture-identity.js
  • packages/core-ui/src/tests/interaction/matrix/support/schema-interaction-matrix-report.js
  • packages/core-ui/src/tests/interaction/matrix/support/schema-interaction-scenario-builder.js
  • packages/core-ui/src/tests/interaction/matrix/ui-scenario-parity-support.test.js
  • packages/core-ui/src/tests/utils/faker-command-help-metadata.test.js
  • packages/core/js/data_generation/faker/fakerCommandRunner.js
  • packages/core/js/domain/domain-custom-autoincrement-keyword-definitions.js
  • packages/core/js/domain/domain-faker-string-keyword-definitions.js
  • packages/core/js/domain/domain-keywords.js
  • packages/core/js/faker/faker-command-help-metadata.js
  • packages/core/src/index.js
  • packages/core/src/tests/core-api/generateFromTextSpec.test.js
  • packages/core/src/tests/data_generation/unit/domain/domain-keyword-params-usage.test.js
  • packages/core/src/tests/data_generation/unit/domain/domain-param-invocation-coverage.test-helper.js
  • packages/core/src/tests/data_generation/unit/domain/domain-string-exec.test.js
  • packages/core/src/tests/data_generation/unit/domain/domainKeywords.test.js
  • packages/core/src/tests/data_generation/unit/faker/hybridFakerCommandRunner.test.js
  • scripts/generate-faker-help.js
💤 Files with no reviewable changes (1)
  • docs-src/docs/040-test-data/domain/070-commerce.md
✅ Files skipped from review due to trivial changes (5)
  • packages/core-ui/src/tests/interaction/matrix/support/scenario-fixture-identity.js
  • docs/faker-options-param-report.md
  • packages/core/js/domain/domain-custom-autoincrement-keyword-definitions.js
  • docs-src/docs/040-test-data/domain/000-domain-test-data.md
  • docs/faker-10.4.0-comparison-report.md

Comment thread packages/core/js/faker/faker-command-help-metadata.js
Comment thread packages/core/js/faker/faker-command-help-metadata.js
@eviltester eviltester merged commit 5ab0c39 into master Jun 17, 2026
14 checks passed
@eviltester eviltester deleted the codex/faker-10-4-0-upgrade branch June 17, 2026 21:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants