emoji-space-shim 0.0.0 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,5 +2,8 @@ import type { TerminalChoice } from './TerminalChoice';
2
2
  /**
3
3
  * .what = dictionary of emoji space consumption per terminal
4
4
  * .why = terminals disagree on emoji width; this maps emoji → terminal → consumed spaces
5
+ *
6
+ * .note = vscode (xterm.js) only supports unicode 12.1.0, so all unicode 13.0+ emojis
7
+ * need space adjustment. see: https://github.com/microsoft/vscode/issues/251102
5
8
  */
6
9
  export declare const EMOJI_SPACE_REGISTRY: Record<string, Partial<Record<TerminalChoice, number>>>;
@@ -4,13 +4,153 @@ exports.EMOJI_SPACE_REGISTRY = void 0;
4
4
  /**
5
5
  * .what = dictionary of emoji space consumption per terminal
6
6
  * .why = terminals disagree on emoji width; this maps emoji → terminal → consumed spaces
7
+ *
8
+ * .note = vscode (xterm.js) only supports unicode 12.1.0, so all unicode 13.0+ emojis
9
+ * need space adjustment. see: https://github.com/microsoft/vscode/issues/251102
7
10
  */
8
11
  exports.EMOJI_SPACE_REGISTRY = {
9
- // emojis that consume 1 extra space in vscode only
10
- '🦫': { vscode: 1, default: 0 },
11
- '🪨': { vscode: 1, default: 0 },
12
- // emojis that consume 1 extra space in both vscode and standard terminals
13
- '🌩️': { vscode: 1, default: 1 },
14
- '⛈️': { vscode: 1, default: 1 },
12
+ // ═══════════════════════════════════════════════════════════════════════════
13
+ // unicode 13.0 emojis (2020) - vscode consumes 1 extra space
14
+ // ═══════════════════════════════════════════════════════════════════════════
15
+ // faces & people
16
+ '🥲': { vscode: 1, default: 0 }, // smiling face with tear
17
+ '🥸': { vscode: 1, default: 0 }, // disguised face
18
+ '🤌': { vscode: 1, default: 0 }, // pinched fingers
19
+ '🫀': { vscode: 1, default: 0 }, // anatomical heart
20
+ '🫁': { vscode: 1, default: 0 }, // lungs
21
+ '🥷': { vscode: 1, default: 0 }, // ninja
22
+ '🫂': { vscode: 1, default: 0 }, // people hugging
23
+ // animals
24
+ '🦬': { vscode: 1, default: 0 }, // bison
25
+ '🦣': { vscode: 1, default: 0 }, // mammoth
26
+ '🦫': { vscode: 1, default: 0 }, // beaver
27
+ '🦤': { vscode: 1, default: 0 }, // dodo
28
+ '🪶': { vscode: 1, default: 0 }, // feather
29
+ '🦭': { vscode: 1, default: 0 }, // seal
30
+ '🪲': { vscode: 1, default: 0 }, // beetle
31
+ '🪳': { vscode: 1, default: 0 }, // cockroach
32
+ '🪰': { vscode: 1, default: 0 }, // fly
33
+ '🪱': { vscode: 1, default: 0 }, // worm
34
+ // plants & food
35
+ '🪴': { vscode: 1, default: 0 }, // potted plant
36
+ '🫐': { vscode: 1, default: 0 }, // blueberries
37
+ '🫒': { vscode: 1, default: 0 }, // olive
38
+ '🫑': { vscode: 1, default: 0 }, // bell pepper
39
+ '🫓': { vscode: 1, default: 0 }, // flatbread
40
+ '🫔': { vscode: 1, default: 0 }, // tamale
41
+ '🫕': { vscode: 1, default: 0 }, // fondue
42
+ '🫖': { vscode: 1, default: 0 }, // teapot
43
+ '🧋': { vscode: 1, default: 0 }, // bubble tea
44
+ // objects & places
45
+ '🪨': { vscode: 1, default: 0 }, // rock
46
+ '🪵': { vscode: 1, default: 0 }, // wood
47
+ '🛖': { vscode: 1, default: 0 }, // hut
48
+ '🛻': { vscode: 1, default: 0 }, // pickup truck
49
+ '🛼': { vscode: 1, default: 0 }, // roller skate
50
+ '🪄': { vscode: 1, default: 0 }, // magic wand
51
+ '🪅': { vscode: 1, default: 0 }, // piñata
52
+ '🪆': { vscode: 1, default: 0 }, // nesting dolls
53
+ '🪡': { vscode: 1, default: 0 }, // sewing needle
54
+ '🪢': { vscode: 1, default: 0 }, // knot
55
+ '🩴': { vscode: 1, default: 0 }, // thong sandal
56
+ '🪖': { vscode: 1, default: 0 }, // military helmet
57
+ '🪗': { vscode: 1, default: 0 }, // accordion
58
+ '🪘': { vscode: 1, default: 0 }, // long drum
59
+ '🪙': { vscode: 1, default: 0 }, // coin
60
+ '🪃': { vscode: 1, default: 0 }, // boomerang
61
+ '🪚': { vscode: 1, default: 0 }, // carpentry saw
62
+ '🪛': { vscode: 1, default: 0 }, // screwdriver
63
+ '🪝': { vscode: 1, default: 0 }, // hook 🎣
64
+ '🪜': { vscode: 1, default: 0 }, // ladder
65
+ '🛗': { vscode: 1, default: 0 }, // elevator
66
+ '🪞': { vscode: 1, default: 0 }, // mirror
67
+ '🪟': { vscode: 1, default: 0 }, // window
68
+ '🪠': { vscode: 1, default: 0 }, // plunger
69
+ '🪤': { vscode: 1, default: 0 }, // mouse trap
70
+ '🪣': { vscode: 1, default: 0 }, // bucket
71
+ '🪥': { vscode: 1, default: 0 }, // toothbrush
72
+ '🪦': { vscode: 1, default: 0 }, // headstone
73
+ '🪧': { vscode: 1, default: 0 }, // placard
74
+ // ═══════════════════════════════════════════════════════════════════════════
75
+ // unicode 14.0 emojis (2021) - vscode consumes 1 extra space
76
+ // ═══════════════════════════════════════════════════════════════════════════
77
+ '🫠': { vscode: 1, default: 0 }, // melting face
78
+ '🫢': { vscode: 1, default: 0 }, // face with open eyes and hand over mouth
79
+ '🫣': { vscode: 1, default: 0 }, // face with peeking eye
80
+ '🫤': { vscode: 1, default: 0 }, // face with diagonal mouth
81
+ '🫥': { vscode: 1, default: 0 }, // dotted line face
82
+ '🫡': { vscode: 1, default: 0 }, // saluting face
83
+ '🫦': { vscode: 1, default: 0 }, // biting lip
84
+ '🫧': { vscode: 1, default: 0 }, // bubbles
85
+ '🫰': { vscode: 1, default: 0 }, // hand with index finger and thumb crossed
86
+ '🫱': { vscode: 1, default: 0 }, // rightwards hand
87
+ '🫲': { vscode: 1, default: 0 }, // leftwards hand
88
+ '🫳': { vscode: 1, default: 0 }, // palm down hand
89
+ '🫴': { vscode: 1, default: 0 }, // palm up hand
90
+ '🫵': { vscode: 1, default: 0 }, // index pointing at the viewer
91
+ '🫶': { vscode: 1, default: 0 }, // heart hands
92
+ '🪸': { vscode: 1, default: 0 }, // coral
93
+ '🪷': { vscode: 1, default: 0 }, // lotus
94
+ '🪹': { vscode: 1, default: 0 }, // empty nest
95
+ '🪺': { vscode: 1, default: 0 }, // nest with eggs
96
+ '🫗': { vscode: 1, default: 0 }, // pouring liquid
97
+ '🫘': { vscode: 1, default: 0 }, // beans
98
+ '🛝': { vscode: 1, default: 0 }, // playground slide
99
+ '🛞': { vscode: 1, default: 0 }, // wheel
100
+ '🛟': { vscode: 1, default: 0 }, // ring buoy
101
+ '🪬': { vscode: 1, default: 0 }, // hamsa
102
+ '🪩': { vscode: 1, default: 0 }, // mirror ball
103
+ '🪫': { vscode: 1, default: 0 }, // low battery
104
+ '🩻': { vscode: 1, default: 0 }, // x-ray
105
+ '🩼': { vscode: 1, default: 0 }, // crutch
106
+ '🪪': { vscode: 1, default: 0 }, // identification card
107
+ '🟰': { vscode: 1, default: 0 }, // heavy equals sign
108
+ // ═══════════════════════════════════════════════════════════════════════════
109
+ // unicode 15.0 emojis (2022) - vscode consumes 1 extra space
110
+ // ═══════════════════════════════════════════════════════════════════════════
111
+ '🫨': { vscode: 1, default: 0 }, // shaking face
112
+ '🩵': { vscode: 1, default: 0 }, // light blue heart
113
+ '🩶': { vscode: 1, default: 0 }, // grey heart
114
+ '🩷': { vscode: 1, default: 0 }, // pink heart
115
+ '🪻': { vscode: 1, default: 0 }, // hyacinth
116
+ '🫚': { vscode: 1, default: 0 }, // ginger root
117
+ '🫛': { vscode: 1, default: 0 }, // pea pod
118
+ '🪭': { vscode: 1, default: 0 }, // folding hand fan
119
+ '🪮': { vscode: 1, default: 0 }, // hair pick
120
+ '🪇': { vscode: 1, default: 0 }, // maracas
121
+ '🪈': { vscode: 1, default: 0 }, // flute
122
+ '🪯': { vscode: 1, default: 0 }, // khanda
123
+ '🛜': { vscode: 1, default: 0 }, // wireless
124
+ '🫎': { vscode: 1, default: 0 }, // moose
125
+ '🫏': { vscode: 1, default: 0 }, // donkey
126
+ '🪽': { vscode: 1, default: 0 }, // wing
127
+ '🐦‍⬛': { vscode: 1, default: 0 }, // black bird
128
+ '🪿': { vscode: 1, default: 0 }, // goose
129
+ '🪼': { vscode: 1, default: 0 }, // jellyfish
130
+ // ═══════════════════════════════════════════════════════════════════════════
131
+ // unicode 16.0 emojis (2024) - vscode consumes 1 extra space
132
+ // ═══════════════════════════════════════════════════════════════════════════
133
+ '🫩': { vscode: 1, default: 0 }, // face with bags under eyes
134
+ '🫆': { vscode: 1, default: 0 }, // fingerprint
135
+ '🪾': { vscode: 1, default: 0 }, // leafless tree
136
+ '🫜': { vscode: 1, default: 0 }, // root vegetable
137
+ '🪉': { vscode: 1, default: 0 }, // harp
138
+ '🪏': { vscode: 1, default: 0 }, // shovel
139
+ '🫟': { vscode: 1, default: 0 }, // splatter
140
+ // ═══════════════════════════════════════════════════════════════════════════
141
+ // unicode 17.0 emojis (2025) - vscode consumes 1 extra space
142
+ // ═══════════════════════════════════════════════════════════════════════════
143
+ '🫪': { vscode: 1, default: 0 }, // distorted face
144
+ '🫯': { vscode: 1, default: 0 }, // fight cloud
145
+ '🫈': { vscode: 1, default: 0 }, // hairy creature
146
+ '🫍': { vscode: 1, default: 0 }, // orca
147
+ '🛘': { vscode: 1, default: 0 }, // landslide
148
+ '🪊': { vscode: 1, default: 0 }, // trombone
149
+ '🪎': { vscode: 1, default: 0 }, // treasure chest
150
+ // ═══════════════════════════════════════════════════════════════════════════
151
+ // emojis with variation selectors - consume 1 extra space in both terminals
152
+ // ═══════════════════════════════════════════════════════════════════════════
153
+ '🌩️': { vscode: 1, default: 1 }, // cloud with lightning
154
+ '⛈️': { vscode: 1, default: 1 }, // cloud with lightning and rain
15
155
  };
16
156
  //# sourceMappingURL=EmojiSpaceRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmojiSpaceRegistry.js","sourceRoot":"","sources":["../../src/domain.objects/EmojiSpaceRegistry.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACU,QAAA,oBAAoB,GAG7B;IACF,mDAAmD;IACnD,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;IAC/B,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;IAE/B,0EAA0E;IAC1E,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;IAChC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;CAChC,CAAC"}
1
+ {"version":3,"file":"EmojiSpaceRegistry.js","sourceRoot":"","sources":["../../src/domain.objects/EmojiSpaceRegistry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "emoji-space-shim",
3
3
  "author": "ehmpathy",
4
4
  "description": "shim console.log to fix emoji space render issues across terminals",
5
- "version": "0.0.0",
5
+ "version": "0.1.3",
6
6
  "repository": "ehmpathy/emoji-space-shim",
7
7
  "homepage": "https://github.com/ehmpathy/emoji-space-shim",
8
8
  "keywords": [
@@ -24,16 +24,43 @@
24
24
  "files": [
25
25
  "/dist"
26
26
  ],
27
+ "scripts": {
28
+ "build:ts": "tsc -p ./tsconfig.build.json",
29
+ "commit:with-cli": "npx cz",
30
+ "fix:format:biome": "biome check --write",
31
+ "fix:format": "npm run fix:format:biome",
32
+ "fix:lint": "biome check --write",
33
+ "fix": "npm run fix:format && npm run fix:lint",
34
+ "build:clean:bun": "rm -f ./bin/*.bc",
35
+ "build:clean:tsc": "(chmod -R u+w dist 2>/dev/null || true) && rm -rf dist/",
36
+ "build:clean": "npm run build:clean:tsc && npm run build:clean:bun",
37
+ "build:compile:tsc": "tsc -p ./tsconfig.build.json && tsc-alias -p ./tsconfig.build.json",
38
+ "build:compile": "npm run build:compile:tsc && npm run build:compile:bun --if-present",
39
+ "build": "npm run build:clean && npm run build:compile && npm run build:complete --if-present",
40
+ "test:commits": "LAST_TAG=$(git describe --tags --abbrev=0 @^ 2> /dev/null || git rev-list --max-parents=0 HEAD) && npx commitlint --from $LAST_TAG --to HEAD --verbose",
41
+ "test:types": "tsc -p ./tsconfig.json --noEmit",
42
+ "test:format:biome": "biome format",
43
+ "test:format": "npm run test:format:biome",
44
+ "test:lint:deps": "npx depcheck -c ./.depcheckrc.yml",
45
+ "test:lint:biome": "biome check --diagnostic-level=error",
46
+ "test:lint:biome:all": "biome check",
47
+ "test:lint": "npm run test:lint:biome && npm run test:lint:deps",
48
+ "test:unit": "jest -c ./jest.unit.config.ts --forceExit --verbose --passWithNoTests $([ -z $THOROUGH ] && echo '--changedSince=main') $([ -n $RESNAP ] && echo '--updateSnapshot')",
49
+ "test:integration": "jest -c ./jest.integration.config.ts --forceExit --verbose --passWithNoTests $([ -z $THOROUGH ] && echo '--changedSince=main') $([ -n $RESNAP ] && echo '--updateSnapshot')",
50
+ "test:acceptance:locally": "npm run build && LOCALLY=true jest -c ./jest.acceptance.config.ts --forceExit --verbose --runInBand --passWithNoTests $([ -n $RESNAP ] && echo '--updateSnapshot')",
51
+ "test": "npm run test:commits && npm run test:types && npm run test:format && npm run test:lint && npm run test:unit && npm run test:integration && npm run test:acceptance:locally",
52
+ "test:acceptance": "npm run build && jest -c ./jest.acceptance.config.ts --forceExit --verbose --runInBand --passWithNoTests $([ -n $RESNAP ] && echo '--updateSnapshot')",
53
+ "prepush": "npm run test && npm run build",
54
+ "prepublish": "npm run build",
55
+ "preversion": "npm run prepush",
56
+ "postversion": "git push origin HEAD --tags --no-verify",
57
+ "prepare:husky": "husky install && chmod ug+x .husky/*",
58
+ "prepare:rhachet": "rhachet init --mode upsert && rhachet roles link --repo ehmpathy --role mechanic && rhachet roles link --repo bhuild --role behaver && rhachet roles link --repo bhrain --role reviewer && rhachet roles init --role mechanic && rhachet roles init --role behaver",
59
+ "prepare": "if [ -e .git ] && [ -z $CI ]; then npm run prepare:husky && npm run prepare:rhachet; fi"
60
+ },
27
61
  "dependencies": {
28
- "as-procedure": "1.1.11",
29
62
  "domain-objects": "0.31.9",
30
- "find-up": "5.0.0",
31
- "hash-fns": "1.1.0",
32
- "helpful-errors": "1.5.3",
33
- "iso-time": "1.10.1",
34
- "rhachet-artifact": "1.0.3",
35
- "serde-fns": "1.3.0",
36
- "type-fns": "1.21.0"
63
+ "helpful-errors": "1.5.3"
37
64
  },
38
65
  "devDependencies": {
39
66
  "@biomejs/biome": "2.3.8",
@@ -69,37 +96,5 @@
69
96
  "path": "./node_modules/cz-conventional-changelog"
70
97
  }
71
98
  },
72
- "scripts": {
73
- "build:ts": "tsc -p ./tsconfig.build.json",
74
- "commit:with-cli": "npx cz",
75
- "fix:format:biome": "biome check --write",
76
- "fix:format": "npm run fix:format:biome",
77
- "fix:lint": "biome check --write",
78
- "fix": "npm run fix:format && npm run fix:lint",
79
- "build:clean:bun": "rm -f ./bin/*.bc",
80
- "build:clean:tsc": "(chmod -R u+w dist 2>/dev/null || true) && rm -rf dist/",
81
- "build:clean": "npm run build:clean:tsc && npm run build:clean:bun",
82
- "build:compile:tsc": "tsc -p ./tsconfig.build.json && tsc-alias -p ./tsconfig.build.json",
83
- "build:compile": "npm run build:compile:tsc && npm run build:compile:bun --if-present",
84
- "build": "npm run build:clean && npm run build:compile && npm run build:complete --if-present",
85
- "test:commits": "LAST_TAG=$(git describe --tags --abbrev=0 @^ 2> /dev/null || git rev-list --max-parents=0 HEAD) && npx commitlint --from $LAST_TAG --to HEAD --verbose",
86
- "test:types": "tsc -p ./tsconfig.json --noEmit",
87
- "test:format:biome": "biome format",
88
- "test:format": "npm run test:format:biome",
89
- "test:lint:deps": "npx depcheck -c ./.depcheckrc.yml",
90
- "test:lint:biome": "biome check --diagnostic-level=error",
91
- "test:lint:biome:all": "biome check",
92
- "test:lint": "npm run test:lint:biome && npm run test:lint:deps",
93
- "test:unit": "jest -c ./jest.unit.config.ts --forceExit --verbose --passWithNoTests $([ -z $THOROUGH ] && echo '--changedSince=main') $([ -n $RESNAP ] && echo '--updateSnapshot')",
94
- "test:integration": "jest -c ./jest.integration.config.ts --forceExit --verbose --passWithNoTests $([ -z $THOROUGH ] && echo '--changedSince=main') $([ -n $RESNAP ] && echo '--updateSnapshot')",
95
- "test:acceptance:locally": "npm run build && LOCALLY=true jest -c ./jest.acceptance.config.ts --forceExit --verbose --runInBand --passWithNoTests $([ -n $RESNAP ] && echo '--updateSnapshot')",
96
- "test": "npm run test:commits && npm run test:types && npm run test:format && npm run test:lint && npm run test:unit && npm run test:integration && npm run test:acceptance:locally",
97
- "test:acceptance": "npm run build && jest -c ./jest.acceptance.config.ts --forceExit --verbose --runInBand --passWithNoTests $([ -n $RESNAP ] && echo '--updateSnapshot')",
98
- "prepush": "npm run test && npm run build",
99
- "prepublish": "npm run build",
100
- "preversion": "npm run prepush",
101
- "postversion": "git push origin HEAD --tags --no-verify",
102
- "prepare:husky": "husky install && chmod ug+x .husky/*",
103
- "prepare:rhachet": "rhachet init --mode upsert && rhachet roles link --repo ehmpathy --role mechanic && rhachet roles link --repo bhuild --role behaver && rhachet roles link --repo bhrain --role reviewer && rhachet roles init --role mechanic && rhachet roles init --role behaver"
104
- }
105
- }
99
+ "packageManager": "pnpm@10.24.0"
100
+ }
package/readme.md CHANGED
@@ -6,6 +6,30 @@ shim console.log to fix emoji space render issues across terminals.
6
6
 
7
7
  some emojis render incorrectly across different terminals due to character width inconsistencies. for example, the beaver emoji (`🦫`) may appear to "eat" the space after it in VS Code's terminal, while it renders correctly in other terminals.
8
8
 
9
+ ### before (without shim)
10
+
11
+ ```
12
+ // vscode terminal - space after emoji is "eaten"
13
+ console.log('🦫 beaver')
14
+ → 🦫beaver ← space disappeared!
15
+
16
+ // other terminals - renders correctly
17
+ console.log('🦫 beaver')
18
+ → 🦫 beaver ← space preserved
19
+ ```
20
+
21
+ ### after (with shim)
22
+
23
+ ```
24
+ // vscode terminal - shim adds extra space to compensate
25
+ console.log('🦫 beaver')
26
+ → 🦫 beaver ← looks correct!
27
+
28
+ // other terminals - no adjustment needed
29
+ console.log('🦫 beaver')
30
+ → 🦫 beaver ← still correct
31
+ ```
32
+
9
33
  ## solution
10
34
 
11
35
  this package provides a shim that automatically adjusts space after emojis based on the detected terminal. this ensures consistent visual output.