Skip to content

Conversation

@luxass
Copy link
Member

@luxass luxass commented Jan 19, 2026

🔗 Linked issue

📚 Description

@changeset-bot
Copy link

changeset-bot bot commented Jan 19, 2026

⚠️ No Changeset found

Latest commit: 72a6d16

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 19, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/pipelines-v1

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.


if (characterName.endsWith(", First>")) {
rangeStart = codePoint;
rangeName = characterName.replace(", First>", "").replace("<", "");

Check failure

Code scanning / CodeQL

Incomplete string escaping or encoding High

This replaces only the first occurrence of "<".

Copilot Autofix

AI 16 days ago

In general, to avoid incomplete escaping or cleaning when using String.prototype.replace, use a global regular expression (/.../g) or another method that processes all occurrences (e.g., split/join) instead of passing a plain string, which only affects the first occurrence.

Here, the goal is to normalize rangeName by stripping the trailing ", First>" marker and removing all < characters from the remaining name. The current code:

if (characterName.endsWith(", First>")) {
  rangeStart = codePoint;
  rangeName = characterName.replace(", First>", "").replace("<", "");
  continue;
}

only removes the first <. The most direct, non-functional-change fix is to change the second .replace to use a global regular expression:

rangeName = characterName.replace(", First>", "").replace(/</g, "");

This preserves the existing behavior for typical inputs (with a single <), but correctly handles any unexpected extra < characters. No new imports or helpers are needed, and the change is localized to line 48 in packages/pipelines/pipeline-presets/src/parsers/unicode-data.ts.

Suggested changeset 1
packages/pipelines/pipeline-presets/src/parsers/unicode-data.ts

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/packages/pipelines/pipeline-presets/src/parsers/unicode-data.ts b/packages/pipelines/pipeline-presets/src/parsers/unicode-data.ts
--- a/packages/pipelines/pipeline-presets/src/parsers/unicode-data.ts
+++ b/packages/pipelines/pipeline-presets/src/parsers/unicode-data.ts
@@ -45,7 +45,7 @@
 
     if (characterName.endsWith(", First>")) {
       rangeStart = codePoint;
-      rangeName = characterName.replace(", First>", "").replace("<", "");
+      rangeName = characterName.replace(", First>", "").replace(/</g, "");
       continue;
     }
 
EOF
@@ -45,7 +45,7 @@

if (characterName.endsWith(", First>")) {
rangeStart = codePoint;
rangeName = characterName.replace(", First>", "").replace("<", "");
rangeName = characterName.replace(", First>", "").replace(/</g, "");
continue;
}

Copilot is powered by AI and may make mistakes. Always verify output.
@github-actions
Copy link
Contributor

🌏 Preview Deployments

Application Status Preview URL
API ⏳ In Progress N/A
Website ⏳ In Progress N/A
Documentation ⏳ In Progress N/A

Built from commit: 483558979674341c86d594785cb093ce445ef126


🤖 This comment will be updated automatically when you push new commits to this PR.

});

it("should accept pipelines and optional artifacts", () => {
const pipeline = definePipeline({
luxass added 11 commits January 31, 2026 17:27
- Created `README.md` for documentation.
- Added `package.json` with dependencies and scripts.
- Configured TypeScript with `tsconfig.json` and `tsconfig.build.json`.
- Set up `tsdown` for building the package.
- Updated `pnpm-lock.yaml` to include new package dependencies.
- Modified `pnpm-workspace.yaml` to include all packages under `packages/**`.
- Introduced `standard.ts` for parsing standard Unicode data.
- Added `unicode-data.ts` for parsing detailed Unicode character metadata.
- Created pipelines for basic, emoji, and full Unicode data processing.
- Implemented resolvers for grouped and property JSON outputs.
- Added various transforms including deduplication, range expansion, and filtering.
- Established HTTP and memory sources for data retrieval.
- Configured TypeScript settings for building and testing.
Modified the `build` and `dev` script filters in `package.json` to use double asterisks (`**`) for better matching of package directories.
Updated `@luxass/eslint-config` from version `7.0.0-beta.1` to `7.0.0-beta.2` for improved linting rules. Added `tinyglobby` package at version `0.2.15` to enhance globbing capabilities in the project.
- Updated `definePipeline` to use `Omit` for better type safety.
- Adjusted type inference tests to validate expected types.
- Added `definePipelineRoute` to the playground example for improved routing functionality.
@luxass luxass force-pushed the feat/pipelines-v1 branch from 908f584 to e3a429c Compare January 31, 2026 16:28
- Introduced `vitest-testdirs` in `package.json` for improved testing capabilities.
- Added comprehensive tests for pipeline file handling in `loader.test.ts`.
Refactor `findPipelineFiles` to accept an options object for improved flexibility. Update related function calls throughout the codebase to use the new structure.
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