@atproto/lex-data 0.0.7 → 0.0.9
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/CHANGELOG.md +22 -0
- package/LICENSE.txt +1 -1
- package/dist/cid.d.ts +73 -48
- package/dist/cid.d.ts.map +1 -1
- package/dist/cid.js +132 -39
- package/dist/cid.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/uint8array.d.ts +1 -0
- package/dist/uint8array.d.ts.map +1 -1
- package/dist/uint8array.js +12 -6
- package/dist/uint8array.js.map +1 -1
- package/dist/utf8.d.ts.map +1 -1
- package/dist/utf8.js +4 -8
- package/dist/utf8.js.map +1 -1
- package/package.json +2 -3
- package/src/cid-implementation.test.ts +137 -0
- package/src/cid.test.ts +232 -23
- package/src/cid.ts +228 -99
- package/src/index.ts +0 -1
- package/src/uint8array.test.ts +24 -5
- package/src/uint8array.ts +13 -6
- package/src/utf8-len.test.ts +19 -28
- package/src/utf8.ts +4 -8
- package/dist/language.d.ts +0 -18
- package/dist/language.d.ts.map +0 -1
- package/dist/language.js +0 -30
- package/dist/language.js.map +0 -1
- package/src/language.test.ts +0 -88
- package/src/language.ts +0 -39
package/dist/language.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export type LanguageTag = {
|
|
2
|
-
grandfathered?: string;
|
|
3
|
-
language?: string;
|
|
4
|
-
extlang?: string;
|
|
5
|
-
script?: string;
|
|
6
|
-
region?: string;
|
|
7
|
-
variant?: string;
|
|
8
|
-
extension?: string;
|
|
9
|
-
privateUse?: string;
|
|
10
|
-
};
|
|
11
|
-
export declare function parseLanguageString(input: string): LanguageTag | null;
|
|
12
|
-
/**
|
|
13
|
-
* Validates well-formed BCP 47 syntax
|
|
14
|
-
*
|
|
15
|
-
* @see {@link https://www.rfc-editor.org/rfc/rfc5646.html#section-2.1}
|
|
16
|
-
*/
|
|
17
|
-
export declare function isLanguageString(input: string): boolean;
|
|
18
|
-
//# sourceMappingURL=language.d.ts.map
|
package/dist/language.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"language.d.ts","sourceRoot":"","sources":["../src/language.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAerE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvD"}
|
package/dist/language.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseLanguageString = parseLanguageString;
|
|
4
|
-
exports.isLanguageString = isLanguageString;
|
|
5
|
-
const BCP47_REGEXP = /^((?<grandfathered>(en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang))|((?<language>([A-Za-z]{2,3}(-(?<extlang>[A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-(?<script>[A-Za-z]{4}))?(-(?<region>[A-Za-z]{2}|[0-9]{3}))?(-(?<variant>[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-(?<extension>[0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(?<privateUseA>x(-[A-Za-z0-9]{1,8})+))?)|(?<privateUseB>x(-[A-Za-z0-9]{1,8})+))$/;
|
|
6
|
-
function parseLanguageString(input) {
|
|
7
|
-
const parsed = input.match(BCP47_REGEXP);
|
|
8
|
-
if (!parsed?.groups)
|
|
9
|
-
return null;
|
|
10
|
-
const { groups } = parsed;
|
|
11
|
-
return {
|
|
12
|
-
grandfathered: groups.grandfathered,
|
|
13
|
-
language: groups.language,
|
|
14
|
-
extlang: groups.extlang,
|
|
15
|
-
script: groups.script,
|
|
16
|
-
region: groups.region,
|
|
17
|
-
variant: groups.variant,
|
|
18
|
-
extension: groups.extension,
|
|
19
|
-
privateUse: groups.privateUseA || groups.privateUseB,
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Validates well-formed BCP 47 syntax
|
|
24
|
-
*
|
|
25
|
-
* @see {@link https://www.rfc-editor.org/rfc/rfc5646.html#section-2.1}
|
|
26
|
-
*/
|
|
27
|
-
function isLanguageString(input) {
|
|
28
|
-
return BCP47_REGEXP.test(input);
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=language.js.map
|
package/dist/language.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"language.js","sourceRoot":"","sources":["../src/language.ts"],"names":[],"mappings":";;AAcA,kDAeC;AAOD,4CAEC;AAtCD,MAAM,YAAY,GAChB,mlBAAmlB,CAAA;AAarlB,SAAgB,mBAAmB,CAAC,KAAa;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACxC,IAAI,CAAC,MAAM,EAAE,MAAM;QAAE,OAAO,IAAI,CAAA;IAEhC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACzB,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW;KACrD,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACjC,CAAC","sourcesContent":["const BCP47_REGEXP =\n /^((?<grandfathered>(en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang))|((?<language>([A-Za-z]{2,3}(-(?<extlang>[A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-(?<script>[A-Za-z]{4}))?(-(?<region>[A-Za-z]{2}|[0-9]{3}))?(-(?<variant>[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-(?<extension>[0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(?<privateUseA>x(-[A-Za-z0-9]{1,8})+))?)|(?<privateUseB>x(-[A-Za-z0-9]{1,8})+))$/\n\nexport type LanguageTag = {\n grandfathered?: string\n language?: string\n extlang?: string\n script?: string\n region?: string\n variant?: string\n extension?: string\n privateUse?: string\n}\n\nexport function parseLanguageString(input: string): LanguageTag | null {\n const parsed = input.match(BCP47_REGEXP)\n if (!parsed?.groups) return null\n\n const { groups } = parsed\n return {\n grandfathered: groups.grandfathered,\n language: groups.language,\n extlang: groups.extlang,\n script: groups.script,\n region: groups.region,\n variant: groups.variant,\n extension: groups.extension,\n privateUse: groups.privateUseA || groups.privateUseB,\n }\n}\n\n/**\n * Validates well-formed BCP 47 syntax\n *\n * @see {@link https://www.rfc-editor.org/rfc/rfc5646.html#section-2.1}\n */\nexport function isLanguageString(input: string): boolean {\n return BCP47_REGEXP.test(input)\n}\n"]}
|
package/src/language.test.ts
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest'
|
|
2
|
-
import { isLanguageString, parseLanguageString } from './language'
|
|
3
|
-
|
|
4
|
-
describe('string', () => {
|
|
5
|
-
describe('languages', () => {
|
|
6
|
-
it('validates BCP 47', () => {
|
|
7
|
-
// valid
|
|
8
|
-
expect(isLanguageString('de')).toEqual(true)
|
|
9
|
-
expect(isLanguageString('de-CH')).toEqual(true)
|
|
10
|
-
expect(isLanguageString('de-DE-1901')).toEqual(true)
|
|
11
|
-
expect(isLanguageString('es-419')).toEqual(true)
|
|
12
|
-
expect(isLanguageString('sl-IT-nedis')).toEqual(true)
|
|
13
|
-
expect(isLanguageString('mn-Cyrl-MN')).toEqual(true)
|
|
14
|
-
expect(isLanguageString('x-fr-CH')).toEqual(true)
|
|
15
|
-
expect(
|
|
16
|
-
isLanguageString('en-GB-boont-r-extended-sequence-x-private'),
|
|
17
|
-
).toEqual(true)
|
|
18
|
-
expect(isLanguageString('sr-Cyrl')).toEqual(true)
|
|
19
|
-
expect(isLanguageString('hy-Latn-IT-arevela')).toEqual(true)
|
|
20
|
-
expect(isLanguageString('i-klingon')).toEqual(true)
|
|
21
|
-
// invalid
|
|
22
|
-
expect(isLanguageString('')).toEqual(false)
|
|
23
|
-
expect(isLanguageString('x')).toEqual(false)
|
|
24
|
-
expect(isLanguageString('de-CH-')).toEqual(false)
|
|
25
|
-
expect(isLanguageString('i-bad-grandfathered')).toEqual(false)
|
|
26
|
-
})
|
|
27
|
-
|
|
28
|
-
it('parses BCP 47', () => {
|
|
29
|
-
// valid
|
|
30
|
-
expect(parseLanguageString('de')).toEqual({
|
|
31
|
-
language: 'de',
|
|
32
|
-
})
|
|
33
|
-
expect(parseLanguageString('de-CH')).toEqual({
|
|
34
|
-
language: 'de',
|
|
35
|
-
region: 'CH',
|
|
36
|
-
})
|
|
37
|
-
expect(parseLanguageString('de-DE-1901')).toEqual({
|
|
38
|
-
language: 'de',
|
|
39
|
-
region: 'DE',
|
|
40
|
-
variant: '1901',
|
|
41
|
-
})
|
|
42
|
-
expect(parseLanguageString('es-419')).toEqual({
|
|
43
|
-
language: 'es',
|
|
44
|
-
region: '419',
|
|
45
|
-
})
|
|
46
|
-
expect(parseLanguageString('sl-IT-nedis')).toEqual({
|
|
47
|
-
language: 'sl',
|
|
48
|
-
region: 'IT',
|
|
49
|
-
variant: 'nedis',
|
|
50
|
-
})
|
|
51
|
-
expect(parseLanguageString('mn-Cyrl-MN')).toEqual({
|
|
52
|
-
language: 'mn',
|
|
53
|
-
script: 'Cyrl',
|
|
54
|
-
region: 'MN',
|
|
55
|
-
})
|
|
56
|
-
expect(parseLanguageString('x-fr-CH')).toEqual({
|
|
57
|
-
privateUse: 'x-fr-CH',
|
|
58
|
-
})
|
|
59
|
-
expect(
|
|
60
|
-
parseLanguageString('en-GB-boont-r-extended-sequence-x-private'),
|
|
61
|
-
).toEqual({
|
|
62
|
-
language: 'en',
|
|
63
|
-
region: 'GB',
|
|
64
|
-
variant: 'boont',
|
|
65
|
-
extension: 'r-extended-sequence',
|
|
66
|
-
privateUse: 'x-private',
|
|
67
|
-
})
|
|
68
|
-
expect(parseLanguageString('sr-Cyrl')).toEqual({
|
|
69
|
-
language: 'sr',
|
|
70
|
-
script: 'Cyrl',
|
|
71
|
-
})
|
|
72
|
-
expect(parseLanguageString('hy-Latn-IT-arevela')).toEqual({
|
|
73
|
-
language: 'hy',
|
|
74
|
-
script: 'Latn',
|
|
75
|
-
region: 'IT',
|
|
76
|
-
variant: 'arevela',
|
|
77
|
-
})
|
|
78
|
-
expect(parseLanguageString('i-klingon')).toEqual({
|
|
79
|
-
grandfathered: 'i-klingon',
|
|
80
|
-
})
|
|
81
|
-
// invalid
|
|
82
|
-
expect(parseLanguageString('')).toEqual(null)
|
|
83
|
-
expect(parseLanguageString('x')).toEqual(null)
|
|
84
|
-
expect(parseLanguageString('de-CH-')).toEqual(null)
|
|
85
|
-
expect(parseLanguageString('i-bad-grandfathered')).toEqual(null)
|
|
86
|
-
})
|
|
87
|
-
})
|
|
88
|
-
})
|
package/src/language.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
const BCP47_REGEXP =
|
|
2
|
-
/^((?<grandfathered>(en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang))|((?<language>([A-Za-z]{2,3}(-(?<extlang>[A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-(?<script>[A-Za-z]{4}))?(-(?<region>[A-Za-z]{2}|[0-9]{3}))?(-(?<variant>[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-(?<extension>[0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(?<privateUseA>x(-[A-Za-z0-9]{1,8})+))?)|(?<privateUseB>x(-[A-Za-z0-9]{1,8})+))$/
|
|
3
|
-
|
|
4
|
-
export type LanguageTag = {
|
|
5
|
-
grandfathered?: string
|
|
6
|
-
language?: string
|
|
7
|
-
extlang?: string
|
|
8
|
-
script?: string
|
|
9
|
-
region?: string
|
|
10
|
-
variant?: string
|
|
11
|
-
extension?: string
|
|
12
|
-
privateUse?: string
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export function parseLanguageString(input: string): LanguageTag | null {
|
|
16
|
-
const parsed = input.match(BCP47_REGEXP)
|
|
17
|
-
if (!parsed?.groups) return null
|
|
18
|
-
|
|
19
|
-
const { groups } = parsed
|
|
20
|
-
return {
|
|
21
|
-
grandfathered: groups.grandfathered,
|
|
22
|
-
language: groups.language,
|
|
23
|
-
extlang: groups.extlang,
|
|
24
|
-
script: groups.script,
|
|
25
|
-
region: groups.region,
|
|
26
|
-
variant: groups.variant,
|
|
27
|
-
extension: groups.extension,
|
|
28
|
-
privateUse: groups.privateUseA || groups.privateUseB,
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Validates well-formed BCP 47 syntax
|
|
34
|
-
*
|
|
35
|
-
* @see {@link https://www.rfc-editor.org/rfc/rfc5646.html#section-2.1}
|
|
36
|
-
*/
|
|
37
|
-
export function isLanguageString(input: string): boolean {
|
|
38
|
-
return BCP47_REGEXP.test(input)
|
|
39
|
-
}
|