···11---
22-"@atcute/multibase": minor
22+'@atcute/multibase': minor
33---
4455native base58 encode/decode
+1-1
.changeset/smooth-rabbits-brush.md
···11---
22-"@atcute/util-text": minor
22+'@atcute/util-text': minor
33---
4455native grapheme counting
+6-3
packages/misc/util-text/lib/index.bench.ts
···2323const cases = {
2424 displayName: 'maria \u{1F338}',
2525 post: 'just mass-migrated to bsky from twitter!! \u{1F389}\u{1F389}\u{1F389}\n\nfollow me for cat pics \u{1F431} and hot takes \u{1F525}\n\n#bsky #newhere #introduction',
2626- postJa: 'きょうの天気はとても良かったです\u{2600}\uFE0F 散歩に行ってきました\u{1F6B6}\u200D\u2640\uFE0F\nお花見のシーズンですね\u{1F338}\u{1F338}',
2727- postEmoji: '\u{1F468}\u200D\u{1F4BB} shipping code at 2am \u{1F602}\u{1F602}\u{1F602} \u{1F1FA}\u{1F1F8}\u{1F1E7}\u{1F1F7} who needs sleep when you have \u2615\u2615\u2615 #devlife \u{1F525}\u{1F4AF}',
2828- altText: 'a photograph of a sunset over the pacific ocean. the sky is painted in gradients of deep orange \u{1F7E0}, pink \u{1F338}, and purple \u{1F49C}. in the foreground, silhouettes of palm trees frame the scene. a small sailboat is visible on the horizon. the water reflects the warm colors of the sky, creating a mirror-like effect on the calm surface.',
2626+ postJa:
2727+ 'きょうの天気はとても良かったです\u{2600}\uFE0F 散歩に行ってきました\u{1F6B6}\u200D\u2640\uFE0F\nお花見のシーズンですね\u{1F338}\u{1F338}',
2828+ postEmoji:
2929+ '\u{1F468}\u200D\u{1F4BB} shipping code at 2am \u{1F602}\u{1F602}\u{1F602} \u{1F1FA}\u{1F1F8}\u{1F1E7}\u{1F1F7} who needs sleep when you have \u2615\u2615\u2615 #devlife \u{1F525}\u{1F4AF}',
3030+ altText:
3131+ 'a photograph of a sunset over the pacific ocean. the sky is painted in gradients of deep orange \u{1F7E0}, pink \u{1F338}, and purple \u{1F49C}. in the foreground, silhouettes of palm trees frame the scene. a small sailboat is visible on the horizon. the water reflects the warm colors of the sky, creating a mirror-like effect on the calm surface.',
2932 skinTone: '\u{1F44B}\u{1F3FB} \u{1F44B}\u{1F3FC} \u{1F44B}\u{1F3FD} \u{1F44B}\u{1F3FE} \u{1F44B}\u{1F3FF}',
3033 korean: '안녕하세요! 오늘 블루스카이에 가입했어요 \u{1F60A} 잘 부탁드립니다 \u{1F64F}',
3134} as const;
+3-3
packages/misc/util-text/lib/index.node.ts
···22import { createRequire } from 'node:module';
33import { arch, platform } from 'node:process';
4455-import { isAsciiWithoutCr } from './utils.ts';
66-75import {
86 getGraphemeLength as getGraphemeLengthJs,
97 isGraphemeLengthInRange as isGraphemeLengthInRangeJs,
108} from './index.ts';
99+import { isAsciiWithoutCr } from './utils.ts';
11101211type GraphemeBinding = {
1312 getGraphemeLength: (str: string) => number;
···3433 * @param max maximum grapheme length (inclusive)
3534 * @returns true if the grapheme length is within range
3635 */
3737-export let isGraphemeLengthInRange: (text: string, min: number, max: number) => boolean = isGraphemeLengthInRangeJs;
3636+export let isGraphemeLengthInRange: (text: string, min: number, max: number) => boolean =
3737+ isGraphemeLengthInRangeJs;
38383939try {
4040 const getPrebuildDir = (): string => {