a collection of lightweight TypeScript packages for AT Protocol, the protocol powering Bluesky
atproto bluesky typescript npm
101
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: fmt

Mary e2f07b3b c998b350

+15 -9
+1 -1
.changeset/early-spoons-dream.md
··· 1 1 --- 2 - "@atcute/multibase": minor 2 + '@atcute/multibase': minor 3 3 --- 4 4 5 5 native base58 encode/decode
+1 -1
.changeset/smooth-rabbits-brush.md
··· 1 1 --- 2 - "@atcute/util-text": minor 2 + '@atcute/util-text': minor 3 3 --- 4 4 5 5 native grapheme counting
+6 -3
packages/misc/util-text/lib/index.bench.ts
··· 23 23 const cases = { 24 24 displayName: 'maria \u{1F338}', 25 25 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', 26 - postJa: 'きょうの天気はとても良かったです\u{2600}\uFE0F 散歩に行ってきました\u{1F6B6}\u200D\u2640\uFE0F\nお花見のシーズンですね\u{1F338}\u{1F338}', 27 - 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}', 28 - 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.', 26 + postJa: 27 + 'きょうの天気はとても良かったです\u{2600}\uFE0F 散歩に行ってきました\u{1F6B6}\u200D\u2640\uFE0F\nお花見のシーズンですね\u{1F338}\u{1F338}', 28 + postEmoji: 29 + '\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}', 30 + altText: 31 + '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.', 29 32 skinTone: '\u{1F44B}\u{1F3FB} \u{1F44B}\u{1F3FC} \u{1F44B}\u{1F3FD} \u{1F44B}\u{1F3FE} \u{1F44B}\u{1F3FF}', 30 33 korean: '안녕하세요! 오늘 블루스카이에 가입했어요 \u{1F60A} 잘 부탁드립니다 \u{1F64F}', 31 34 } as const;
+3 -3
packages/misc/util-text/lib/index.node.ts
··· 2 2 import { createRequire } from 'node:module'; 3 3 import { arch, platform } from 'node:process'; 4 4 5 - import { isAsciiWithoutCr } from './utils.ts'; 6 - 7 5 import { 8 6 getGraphemeLength as getGraphemeLengthJs, 9 7 isGraphemeLengthInRange as isGraphemeLengthInRangeJs, 10 8 } from './index.ts'; 9 + import { isAsciiWithoutCr } from './utils.ts'; 11 10 12 11 type GraphemeBinding = { 13 12 getGraphemeLength: (str: string) => number; ··· 34 33 * @param max maximum grapheme length (inclusive) 35 34 * @returns true if the grapheme length is within range 36 35 */ 37 - export let isGraphemeLengthInRange: (text: string, min: number, max: number) => boolean = isGraphemeLengthInRangeJs; 36 + export let isGraphemeLengthInRange: (text: string, min: number, max: number) => boolean = 37 + isGraphemeLengthInRangeJs; 38 38 39 39 try { 40 40 const getPrebuildDir = (): string => {
+4 -1
packages/utilities/multibase/lib/bases/base58.bench.ts
··· 15 15 { 16 16 // leading zeros map to '1' chars, exercising the prefix-handling path 17 17 label: 'leading zeros (8 zeros + 27 bytes)', 18 - values: [...Array.from({ length: 8 }, () => 0), ...Array.from({ length: 27 }, (_, idx) => (idx * 17 + 5) & 0xff)], 18 + values: [ 19 + ...Array.from({ length: 8 }, () => 0), 20 + ...Array.from({ length: 27 }, (_, idx) => (idx * 17 + 5) & 0xff), 21 + ], 19 22 }, 20 23 ]; 21 24