Conversation
… converter scripts. Remove deprecated Shopify to Fasttify converter files.
…npm-lock.yaml This commit introduces the baseline-browser-mapping package (version 2.9.7) to the project. Additionally, it updates the package.json to include an ignored built dependency for core-js and modifies the pnpm-lock.yaml to reflect the new dependency and its version. Unused comments have also been removed from various files for improved clarity.
…ersion and correct AWS SDK dependencies This commit removes the deprecated baseline-browser-mapping@2.8.12 and updates the pnpm-lock.yaml to reflect the current version 2.9.7. Additionally, it corrects the AWS SDK client-sso-oidc dependency version to ensure compatibility with client-sts.
This commit enhances the DomainResolver class by introducing a more structured approach to domain resolution, including optimized caching mechanisms and improved error handling. Key changes include the addition of private methods for fetching stores by custom and default domains, as well as methods for validating store existence and activity. The caching strategy now differentiates between negative cache TTLs for not found and error scenarios, ensuring better performance and reliability.
…g data structure, and integrate theme settings into context This commit introduces two new filters, `appendFilter` and `prependFilter`, which handle undefined and null values more robustly, replacing the native LiquidJS filters. Additionally, the `RenderingData` interface is updated to include `themeSettings`, and the context is enhanced to incorporate these settings during the rendering process. The data loading step is also modified to fetch theme settings in parallel, ensuring they are available for rendering.
…r improved code clarity and maintainability.
This commit updates the theme converter scripts to use a new directory structure under `packages/liquid-forge`. The paths for test and conversion scripts have been modified accordingly. Additionally, the `ARCHITECTURE.md` and `README.md` files, along with various converter implementations, have been removed to streamline the project and focus on the core functionality.
This commit introduces the `liquid-forge-native` package to the project. Updates include adding it to the workspace in `pnpm-workspace.yaml`, including it as an optional dependency in `liquid-forge/package.json`, and modifying the `package.json` to include it in the packages list. Additionally, the GitHub workflows are updated to set up Rust for building native filters, and the filters are adjusted to import from the new native implementation. The labeler configuration is also updated to include paths for the new package.
…ormatting This commit adds a newline at the end of the `pnpm-workspace.yaml` file and standardizes the quotation marks in the GitHub workflow files to single quotes. These changes enhance readability and maintain consistency across configuration files.
…andardize quotation marks This commit updates the GitHub workflow files by removing the explicit pnpm version specification from the installation step, enhancing flexibility. Additionally, it standardizes the quotation marks in the Node.js setup steps to double quotes for consistency across the workflows.
…ase builds This commit introduces a new development build job for pull requests, optimizing the workflow for testing native filters on Linux. It also refines the existing release build job to ensure it only runs on the main branch. Additionally, the workflow steps are updated for consistency, including standardized quotation marks and improved caching for Rust dependencies.
…orkflows for pnpm version and quotation consistency This commit deletes the `CODE_OF_CONDUCT.md` file and removes several outdated GitHub workflow files related to Rust checks and native filters. Additionally, it updates the remaining workflow files to specify the pnpm version and standardizes quotation marks for consistency. These changes streamline the project and enhance workflow clarity.
…flexibility and consistency
…e end of files This commit adds missing newlines at the end of the `build.yml` and `unit_test.yml` workflow files, improving adherence to best practices for file formatting.
There was a problem hiding this comment.
This PR is being reviewed by Cursor Bugbot
Details
You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
| tags: [], | ||
| }, | ||
| custom: mappings.custom || {}, | ||
| }; |
There was a problem hiding this comment.
Incompatibility config is never loaded into conversion rules
The incompatible section from default-mappings.json (containing filters, tags, and features that are incompatible with Fasttify) is never loaded into ConversionRules. The ConversionRules type doesn't include an incompatible field, so the loader ignores it entirely. Additionally, the isIncompatible method for 'feature' type incorrectly checks custom.skipFiles (meant for file paths to skip) instead of the intended incompatible.features list. This means feature incompatibility detection will always return false or check the wrong data.
Additional Locations (1)
|
|
||
| // Buscar filtros en expresiones Liquid | ||
| // Patrón: | filter_name o | filter_name:param o | filter1 | filter2 | ||
| const filterRegex = /\|\s*([a-z_][a-z0-9_]*)(?::[^|}]*(?:\|\s*[^}]+)?)?/gi; |
There was a problem hiding this comment.
Filter regex consumes chained filters after parameters
The filter regex /\|\s*([a-z_][a-z0-9_]*)(?::[^|}]*(?:\|\s*[^}]+)?)?/gi incorrectly consumes subsequent chained filters when a filter has parameters. The trailing (?:\|\s*[^}]+)? greedily matches everything after the colon up to }}, including any following filters. For example, with {{ price | round: 2 | money_with_currency }}, the regex matches | round: 2 | money_with_currency as a single match, capturing only round as the filter name. The money_with_currency filter is consumed as part of the parameters and never gets its own conversion pass, so it won't be mapped even though it should convert to money.
Note
Highlights
@fasttify/liquid-forge-native(Rust + N-API) implementing high-perf filters (handleize,escape,truncate,append,prepend,strip_html, etc.) with benches and exampleslib/native-filters.tsand hybrid filters inbase-filters.native.ts; engine now uses native filters when available with seamless fallbackpackages/liquid-forgeto optionally depend on@fasttify/liquid-forge-native, switches filters export to native-aware variants, and exposessettingsin render context via pipeline; adds labeler rulenativescripts/theme-converter(parsers, converters, validators, CLItheme-converter:convert, tests) to migrate Shopify themes to Fasttifybaseline-browser-mapping, pnpm overrides tweak, improves GitHub Actions caching and removes pinned pnpm versionWritten by Cursor Bugbot for commit 97b6471. This will update automatically on new commits. Configure here.