@atcute/lexicons 1.0.0
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.
- package/LICENSE +17 -0
- package/README.md +11 -0
- package/dist/ambient.d.ts +8 -0
- package/dist/ambient.js +2 -0
- package/dist/ambient.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/blob.d.ts +20 -0
- package/dist/interfaces/blob.js +20 -0
- package/dist/interfaces/blob.js.map +1 -0
- package/dist/interfaces/bytes.d.ts +23 -0
- package/dist/interfaces/bytes.js +21 -0
- package/dist/interfaces/bytes.js.map +1 -0
- package/dist/interfaces/cid-link.d.ts +24 -0
- package/dist/interfaces/cid-link.js +13 -0
- package/dist/interfaces/cid-link.js.map +1 -0
- package/dist/interfaces/index.d.ts +3 -0
- package/dist/interfaces/index.js +4 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/syntax/at-identifier.d.ts +8 -0
- package/dist/syntax/at-identifier.js +7 -0
- package/dist/syntax/at-identifier.js.map +1 -0
- package/dist/syntax/at-uri.d.ts +46 -0
- package/dist/syntax/at-uri.js +64 -0
- package/dist/syntax/at-uri.js.map +1 -0
- package/dist/syntax/cid.d.ts +5 -0
- package/dist/syntax/cid.js +10 -0
- package/dist/syntax/cid.js.map +1 -0
- package/dist/syntax/datetime.d.ts +2 -0
- package/dist/syntax/datetime.js +6 -0
- package/dist/syntax/datetime.js.map +1 -0
- package/dist/syntax/did.d.ts +9 -0
- package/dist/syntax/did.js +6 -0
- package/dist/syntax/did.js.map +1 -0
- package/dist/syntax/handle.d.ts +6 -0
- package/dist/syntax/handle.js +6 -0
- package/dist/syntax/handle.js.map +1 -0
- package/dist/syntax/index.d.ts +11 -0
- package/dist/syntax/index.js +12 -0
- package/dist/syntax/index.js.map +1 -0
- package/dist/syntax/language.d.ts +2 -0
- package/dist/syntax/language.js +6 -0
- package/dist/syntax/language.js.map +1 -0
- package/dist/syntax/nsid.d.ts +5 -0
- package/dist/syntax/nsid.js +6 -0
- package/dist/syntax/nsid.js.map +1 -0
- package/dist/syntax/record-key.d.ts +5 -0
- package/dist/syntax/record-key.js +6 -0
- package/dist/syntax/record-key.js.map +1 -0
- package/dist/syntax/tid.d.ts +5 -0
- package/dist/syntax/tid.js +6 -0
- package/dist/syntax/tid.js.map +1 -0
- package/dist/syntax/uri.d.ts +5 -0
- package/dist/syntax/uri.js +6 -0
- package/dist/syntax/uri.js.map +1 -0
- package/dist/types/brand.d.ts +13 -0
- package/dist/types/brand.js +2 -0
- package/dist/types/brand.js.map +1 -0
- package/dist/utils.d.ts +11 -0
- package/dist/utils.js +12 -0
- package/dist/utils.js.map +1 -0
- package/dist/validations/index.d.ts +409 -0
- package/dist/validations/index.js +1003 -0
- package/dist/validations/index.js.map +1 -0
- package/dist/validations/utils.d.ts +8 -0
- package/dist/validations/utils.js +54 -0
- package/dist/validations/utils.js.map +1 -0
- package/lib/ambient.ts +7 -0
- package/lib/index.ts +38 -0
- package/lib/interfaces/blob.ts +47 -0
- package/lib/interfaces/bytes.ts +45 -0
- package/lib/interfaces/cid-link.ts +36 -0
- package/lib/interfaces/index.ts +3 -0
- package/lib/syntax/at-identifier.ts +13 -0
- package/lib/syntax/at-uri.ts +117 -0
- package/lib/syntax/cid.ts +16 -0
- package/lib/syntax/datetime.ts +9 -0
- package/lib/syntax/did.ts +16 -0
- package/lib/syntax/handle.ts +13 -0
- package/lib/syntax/index.ts +11 -0
- package/lib/syntax/language.ts +9 -0
- package/lib/syntax/nsid.ts +12 -0
- package/lib/syntax/record-key.ts +11 -0
- package/lib/syntax/tid.ts +11 -0
- package/lib/syntax/uri.ts +11 -0
- package/lib/types/brand.ts +11 -0
- package/lib/utils.ts +15 -0
- package/lib/validations/index.ts +1749 -0
- package/lib/validations/utils.ts +62 -0
- package/package.json +35 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
const segmenter = new Intl.Segmenter();
|
|
2
|
+
|
|
3
|
+
export const getUtf8Length = (str: string): number => {
|
|
4
|
+
const len = str.length;
|
|
5
|
+
|
|
6
|
+
let u16pos = 0;
|
|
7
|
+
let u8pos = 0;
|
|
8
|
+
|
|
9
|
+
while (u16pos < len) {
|
|
10
|
+
const code = str.charCodeAt(u16pos);
|
|
11
|
+
|
|
12
|
+
if (code < 0x80) {
|
|
13
|
+
u16pos += 1;
|
|
14
|
+
u8pos += 1;
|
|
15
|
+
} else if (code < 0x800) {
|
|
16
|
+
u16pos += 1;
|
|
17
|
+
u8pos += 2;
|
|
18
|
+
} else if (code < 0xd800 || code > 0xdbff) {
|
|
19
|
+
u16pos += 1;
|
|
20
|
+
u8pos += 3;
|
|
21
|
+
} else {
|
|
22
|
+
u16pos += 2;
|
|
23
|
+
u8pos += 4;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return u8pos;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export const getGraphemeLength = (text: string): number => {
|
|
31
|
+
const iterator = segmenter.segment(text)[Symbol.iterator]();
|
|
32
|
+
let count = 0;
|
|
33
|
+
|
|
34
|
+
while (!iterator.next().done) {
|
|
35
|
+
count++;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return count;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
// #__NO_SIDE_EFFECTS__
|
|
42
|
+
export const lazyProperty = <T>(obj: object, prop: string | number | symbol, value: T): T => {
|
|
43
|
+
Object.defineProperty(obj, prop, { value });
|
|
44
|
+
return value;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
// #__NO_SIDE_EFFECTS__
|
|
48
|
+
export const lazy = <T>(getter: () => T): { readonly value: T } => {
|
|
49
|
+
return {
|
|
50
|
+
get value() {
|
|
51
|
+
const value = getter();
|
|
52
|
+
return lazyProperty(this, 'value', value);
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export const isArray = /*#__PURE__*/ Array.isArray;
|
|
58
|
+
|
|
59
|
+
// #__NO_SIDE_EFFECTS__
|
|
60
|
+
export const isObject = (input: unknown): input is Record<string, unknown> => {
|
|
61
|
+
return typeof input === 'object' && input !== null && !isArray(input);
|
|
62
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "module",
|
|
3
|
+
"name": "@atcute/lexicons",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"description": "AT Protocol core lexicon types and schema validations",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"url": "https://github.com/mary-ext/atcute",
|
|
9
|
+
"directory": "packages/core/lexicons"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist/",
|
|
13
|
+
"lib/",
|
|
14
|
+
"!lib/**/*.bench.ts",
|
|
15
|
+
"!lib/**/*.test.ts"
|
|
16
|
+
],
|
|
17
|
+
"exports": {
|
|
18
|
+
".": "./dist/index.js",
|
|
19
|
+
"./ambient": "./dist/ambient.js",
|
|
20
|
+
"./interfaces": "./dist/interfaces/index.js",
|
|
21
|
+
"./syntax": "./dist/syntax/index.js",
|
|
22
|
+
"./validations": "./dist/validations/index.js"
|
|
23
|
+
},
|
|
24
|
+
"sideEffects": false,
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"@types/bun": "^1.2.13",
|
|
27
|
+
"@vitest/coverage-v8": "^3.1.3",
|
|
28
|
+
"vitest": "^3.1.3"
|
|
29
|
+
},
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "tsc --project tsconfig.build.json",
|
|
32
|
+
"test": "vitest",
|
|
33
|
+
"prepublish": "rm -rf dist; pnpm run build"
|
|
34
|
+
}
|
|
35
|
+
}
|