@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.
@@ -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
@@ -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
@@ -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"]}
@@ -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
- }