Skip to content

ucd #20

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 29, 2025
Merged

ucd #20

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/node.js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:

strategy:
matrix:
node-version: [18, 20, 22, 23]
node-version: [20, 22, 24]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
Expand Down
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
.vscode/
coverage/
docs/
lib/widths.js
node_modules/
tools/*.txt
types/
55 changes: 55 additions & 0 deletions lib/widths.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import {UnicodeTrie} from '@cto.af/unicode-trie-runtime';

export const etag = {
'DerivedCoreProperties.txt': '"110737-6208a0b8364c0-gzip"',
'Scripts.txt': '"2e494-6208a0b8364c0-gzip"',
'EastAsianWidth.txt': '"30982-6208a0b8364c0-gzip"',
'emoji/emoji-data.txt': '"1b980-6208a0b8364c0-gzip"',
};
export const lastModified = {
'DerivedCoreProperties.txt': 'Sun, 25 Aug 2024 23:05:31 GMT',
'Scripts.txt': 'Sun, 25 Aug 2024 23:05:31 GMT',
'EastAsianWidth.txt': 'Sun, 25 Aug 2024 23:05:31 GMT',
'emoji/emoji-data.txt': 'Sun, 25 Aug 2024 23:05:31 GMT',
};
export const generatedDate = new Date('2025-05-29T15:18:32.467Z');
export const Width = UnicodeTrie.fromBase64(
`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
AgOLjgUAKbtMDQIAAAA=`
);

/**
* @type {Record<string, number>}
*/
export const names = Object.fromEntries(
Width.values.map((v, i) => [v, i])
);
export const {values} = Width;
32 changes: 13 additions & 19 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,30 +27,24 @@
],
"author": "Joe Hildebrand <[email protected]>",
"license": "MIT",
"devDependencies": {
"@cto.af/eslint-config": "5.1.12",
"@types/node": "22.13.5",
"c8": "10.1.3",
"eslint": "9.21.0",
"eslint-plugin-mocha": "10.5.0",
"mocha": "11.1.0",
"typedoc": "0.27.9",
"typescript": "5.7.3"
},
"dependencies": {
"@cto.af/unicode-trie": "2.0.1",
"@cto.af/unicode-trie-runtime": "3.2.2",
"ansi-regex": "6.1.0",
"emoji-regex": "10.4.0"
},
"pnpm": {
"overrides": {
"chokidar": "4.0.3",
"fast-glob": "3.3.3",
"foreground-child": "3.3.1"
}
"devDependencies": {
"@cto.af/eslint-config": "6.0.4",
"@cto.af/unicode-trie": "3.2.2",
"@types/node": "22.15.24",
"c8": "10.1.3",
"eslint": "9.27.0",
"eslint-plugin-mocha": "11.1.0",
"mocha": "11.5.0",
"typedoc": "0.28.5",
"typescript": "5.8.3"
},
"packageManager": "pnpm@10.5.2",
"packageManager": "pnpm@10.11.0",
"engines": {
"node": ">= 18"
"node": ">= 20"
}
}
Loading