@kulupu-linku/sona 0.3.7 → 2.0.2
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/dist/.assetsignore +0 -0
- package/dist/client-BSyS8F5a.d.ts +1612 -0
- package/dist/client-BitJ28pJ.js +10 -0
- package/dist/client-CUMo53JZ.d.ts +1612 -0
- package/dist/client-DNWH1gFt.js +10 -0
- package/dist/index-1jX6YIBj.d.ts +1497 -0
- package/dist/index-DObG_APy.d.ts +398 -0
- package/dist/index-DsVEVr6r.d.ts +300 -0
- package/dist/lib/v1/client.d.ts +3 -0
- package/dist/lib/v1/client.js +3 -0
- package/dist/lib/v1/client.test.d.ts +31 -0
- package/dist/lib/v1/client.test.js +3 -0
- package/dist/lib/v1/index.d.ts +2 -0
- package/dist/lib/v1/index.js +4 -0
- package/dist/lib/v1/types.d.ts +2 -0
- package/dist/lib/v1/types.js +1 -0
- package/dist/lib/v1/utils.d.ts +26 -0
- package/dist/lib/v1/utils.js +3 -0
- package/dist/lib/v2/client.d.ts +3 -0
- package/dist/lib/v2/client.js +3 -0
- package/dist/lib/v2/client.test.d.ts +36 -0
- package/dist/lib/v2/client.test.js +3 -0
- package/dist/lib/v2/index.d.ts +2 -0
- package/dist/lib/v2/index.js +4 -0
- package/dist/lib/v2/types.d.ts +2 -0
- package/dist/lib/v2/types.js +1 -0
- package/dist/lib/v2/utils.d.ts +44 -0
- package/dist/lib/v2/utils.js +3 -0
- package/dist/server/index.d.ts +2 -685
- package/dist/server/index.js +43 -0
- package/dist/server/utils.d.ts +23 -15
- package/dist/server/utils.js +3 -0
- package/dist/server/v1/index.d.ts +864 -639
- package/dist/server/v1/index.js +8 -0
- package/dist/server/v2/index.d.ts +1112 -0
- package/dist/server/v2/index.js +8 -0
- package/dist/server/versioning.d.ts +1965 -2369
- package/dist/server/versioning.js +8 -0
- package/dist/utils-DkAaVBMs.js +33 -0
- package/dist/utils-QiKwNnnL.js +37 -0
- package/dist/utils-Z1o5sWsW.js +40 -0
- package/dist/v1-DkHVwPCI.js +139 -0
- package/dist/v1-obRCoWWK.js +267 -0
- package/dist/v2-CDtbJFxV.js +194 -0
- package/generated/v2/fingerspelling.json +124 -0
- package/generated/v2/fingerspellings.json +135 -0
- package/generated/v2/font.json +119 -0
- package/generated/v2/fonts.json +130 -0
- package/generated/v2/glyph.json +160 -0
- package/generated/v2/glyphs.json +167 -0
- package/generated/v2/language.json +58 -0
- package/generated/v2/languages.json +67 -0
- package/generated/v2/sign.json +149 -0
- package/generated/v2/signs.json +160 -0
- package/generated/v2/word.json +306 -0
- package/generated/v2/words.json +313 -0
- package/package.json +47 -28
- package/dist/client.d.ts +0 -2
- package/dist/client.js +0 -172
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -223
- package/dist/lib/client.d.ts +0 -743
- package/dist/lib/client.test.d.ts +0 -27
- package/dist/lib/index.d.ts +0 -962
- package/dist/lib/types.d.ts +0 -17
- package/dist/lib/utils.d.ts +0 -13
- package/dist/utils-B3Jq5OVZ.js +0 -2899
- package/dist/utils.d.ts +0 -2
- package/dist/utils.js +0 -9
- package/generated/words.json +0 -315
- /package/generated/{commentary_translation.json → v1/commentary_translation.json} +0 -0
- /package/generated/{definition_translation.json → v1/definition_translation.json} +0 -0
- /package/generated/{etymology_translation.json → v1/etymology_translation.json} +0 -0
- /package/generated/{fingerspelling.json → v1/fingerspelling.json} +0 -0
- /package/generated/{fingerspelling_sign.json → v1/fingerspelling_sign.json} +0 -0
- /package/generated/{font.json → v1/font.json} +0 -0
- /package/generated/{fonts.json → v1/fonts.json} +0 -0
- /package/generated/{icon_translation.json → v1/icon_translation.json} +0 -0
- /package/generated/{languages.json → v1/languages.json} +0 -0
- /package/generated/{parameters_translation.json → v1/parameters_translation.json} +0 -0
- /package/generated/{sign.json → v1/sign.json} +0 -0
- /package/generated/{signs.json → v1/signs.json} +0 -0
- /package/generated/{sitelen_pona_translation.json → v1/sitelen_pona_translation.json} +0 -0
- /package/generated/{word.json → v1/word.json} +0 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { a as Score, i as OptionalDate, n as Date, o as UsageCategory, r as Era, s as WritingSystem, t as Book } from "./utils-Z1o5sWsW.js";
|
|
2
|
+
import { z } from "zod/v4";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/v2/index.ts
|
|
5
|
+
const CAN_HAVE_KU_DATA = [
|
|
6
|
+
"pu",
|
|
7
|
+
"ku suli",
|
|
8
|
+
"ku lili"
|
|
9
|
+
];
|
|
10
|
+
const NO_PU_VERBATIM = ["ali"];
|
|
11
|
+
const NO_KU_DATA = [
|
|
12
|
+
"e",
|
|
13
|
+
"ku",
|
|
14
|
+
"kulijo",
|
|
15
|
+
"li",
|
|
16
|
+
"su",
|
|
17
|
+
"wasoweli",
|
|
18
|
+
"ju",
|
|
19
|
+
"kalamARR",
|
|
20
|
+
"lu",
|
|
21
|
+
"neja",
|
|
22
|
+
"nu",
|
|
23
|
+
"polinpin",
|
|
24
|
+
"suke",
|
|
25
|
+
"toma",
|
|
26
|
+
"tuli",
|
|
27
|
+
"u",
|
|
28
|
+
"umesu"
|
|
29
|
+
];
|
|
30
|
+
const Id = z.string().min(1).describe("A unique identifier for an object in Linku. Generally named after the object.");
|
|
31
|
+
const Ref = Id.describe("The ID of an object related to this one.");
|
|
32
|
+
const Refs = z.array(Id).describe("The IDs of one or more objects related to this one.");
|
|
33
|
+
Ref.optional();
|
|
34
|
+
const Author = z.string().min(1);
|
|
35
|
+
const Authors = z.array(Author).describe("The name or names of those involved in authoring this object (if known)");
|
|
36
|
+
const Usage = z.record(Date, Score).describe("The percentage of respondents to an annual Linku survey who report to use this object.");
|
|
37
|
+
const Ligature = z.string().min(1);
|
|
38
|
+
const Ligatures = z.array(Ligature).optional();
|
|
39
|
+
const UcsurCodepoint = z.string().regex(/^U\+[\da-fA-F]{4,6}$/g).optional().describe("A UCSUR codepoint, as defined in https://www.kreativekorp.com/ucsur/charts/sitelen.html");
|
|
40
|
+
z.string().optional().describe("A Unicode codepoint, yet to be defined.");
|
|
41
|
+
const SeeAlso = Refs.describe("A list of object IDs of objects related to this one.");
|
|
42
|
+
const Source = z.string().describe("The source or origin of this object, often a URL.");
|
|
43
|
+
const Resource = z.url().describe("A URL pointing to some external resource.");
|
|
44
|
+
const Deprecated = z.boolean().describe("Whether the object is considered deprecated by its author(s).");
|
|
45
|
+
const Audio = z.object({
|
|
46
|
+
author: Author.describe("The author of the audio file in `link`."),
|
|
47
|
+
link: Resource.describe("A link to the audio file for the word, pronounced by `author`.")
|
|
48
|
+
}).describe("Audio files of the words pronounced out loud");
|
|
49
|
+
const Video = z.object({
|
|
50
|
+
gif: Resource.describe("A link to a gif of the sign being signed."),
|
|
51
|
+
mp4: Resource.describe("a link to an mp4 of the sign being signed.")
|
|
52
|
+
}).describe("Videos of the sign being performed, by format.");
|
|
53
|
+
const SignWriting = z.object({
|
|
54
|
+
fsw: z.string().min(1).describe("The [Formal SignWriting](https://en.wikipedia.org/wiki/SignWriting) representation of the sign."),
|
|
55
|
+
swu: z.string().min(1).describe("The [SignWriting with Unicode](https://en.wikipedia.org/wiki/SignWriting) representation of the sign.")
|
|
56
|
+
}).describe("Scripts for representing a sign as characters.");
|
|
57
|
+
const Commentary = z.string().describe("Localized commentary on the parent, such as a word or glyph");
|
|
58
|
+
const Definition = z.string().min(1).describe("Localized definition on the parent, such as a word or luka pona sign");
|
|
59
|
+
const Etymology = z.string().describe("Localized etymology information for the parent, such as a word or glyph");
|
|
60
|
+
const Names = z.array(z.string().describe("A name this sitelen pona glyph is known by.")).describe("A list of names used to refer to this sitelen pona glyph");
|
|
61
|
+
const Icons = z.string().describe("Localized descriptions of the thing a sign represents.");
|
|
62
|
+
const Parameters = z.object({
|
|
63
|
+
handshape: z.string().optional().describe("The shape of the hand when signing, identified by its name in ASL. Should not be translated in any language other than Toki Pona"),
|
|
64
|
+
movement: z.string().optional().describe("The motion of the hand when signing."),
|
|
65
|
+
placement: z.string().optional().describe("The placement of the hand when signing."),
|
|
66
|
+
orientation: z.string().optional().describe("The orientation of the hand when signing.")
|
|
67
|
+
}).describe("Partly localized descriptions of how a sign is signed.");
|
|
68
|
+
const Word = z.object({
|
|
69
|
+
id: Id.describe("A unique identifier for the word. May have an integer to distinguish words with the same spelling but distinct coinings."),
|
|
70
|
+
word: z.string().min(1).describe(`The latin alphabet representation of the word.`),
|
|
71
|
+
author_verbatim: z.string().optional().describe("The author's original definition, taken verbatim in their words"),
|
|
72
|
+
author_source: Source.optional().describe("The source or origin of this glyph, often a URL."),
|
|
73
|
+
book: Book.describe("Which official Toki Pona book was this word featured in, if any."),
|
|
74
|
+
coined_era: Era.describe("The period of time in which this word was coined, relative to the publication of the first two official Toki Pona books"),
|
|
75
|
+
creation_date: OptionalDate.describe("When this word was coined, to precision known."),
|
|
76
|
+
author: Authors.describe("The name or names of those involved in creating this word."),
|
|
77
|
+
ku_data: z.record(z.string().min(1).describe("A possible translation of the word into English, as listed in the Toki Pona dictionary."), Score.describe("The percentage of Toki Pona Dictionary survey respondents who report this translation as accurate to their usage.")).optional().describe("The usage data of this word, as described in the Toki Pona Dictionary."),
|
|
78
|
+
parent_id: Ref.optional().describe("The most widely used word which is considered to be an exact synonym for this word."),
|
|
79
|
+
see_also: SeeAlso.describe("The IDs of words related to this one."),
|
|
80
|
+
resources: z.object({
|
|
81
|
+
sona_pona: Resource.optional().describe("A link to the word's page on sona.pona.la, a Toki Pona wiki. May redirect for words with references but no dedicated page."),
|
|
82
|
+
lipamanka_semantic: Resource.optional().describe("A link to lipamanka's description of the word's semantic space.")
|
|
83
|
+
}).describe("Non-Linku resources related to the specific word, such as wiki links."),
|
|
84
|
+
representations: z.object({
|
|
85
|
+
sitelen_emosi: z.emoji().min(1).optional().describe("The sitelen emosi representation of this word, a script for writing Toki Pona using emoji"),
|
|
86
|
+
sitelen_jelo: z.array(z.emoji().min(1)).min(1).optional().describe("One or more example emojis for how the word can be written in sitelen jelo"),
|
|
87
|
+
ligatures: Ligatures.describe("A list of sitelen Lasina representations of the word, used by ligature fonts to visually convert latin characters into sitelen pona"),
|
|
88
|
+
sitelen_sitelen: Resource.optional().describe("A URL pointing to an image of this word's sitelen sitelen hieroglyphic block"),
|
|
89
|
+
ucsur: UcsurCodepoint.describe("The UCSUR codepoint for this word.")
|
|
90
|
+
}).describe("Ways of representing this word via text/computers"),
|
|
91
|
+
source_language: z.string().min(1).describe("The language this word originated from"),
|
|
92
|
+
usage_category: UsageCategory.describe("The word's usage category, derived from the data of the annual Linku word survey."),
|
|
93
|
+
deprecated: Deprecated.describe("Whether this word is considered deprecated by its author(s)."),
|
|
94
|
+
audio: z.array(Audio),
|
|
95
|
+
pu_verbatim: z.object({
|
|
96
|
+
en: Definition.describe("The word's definition in the English edition of Toki Pona: The Language of Good"),
|
|
97
|
+
fr: Definition.describe("The word's definition in the French edition of Toki Pona: The Language of Good"),
|
|
98
|
+
de: Definition.describe("The word's definition in the German edition of Toki Pona: The Language of Good"),
|
|
99
|
+
eo: Definition.describe("The word's definition in the Esperanto edition of Toki Pona: The Language of Good")
|
|
100
|
+
}).optional().describe("The definition of the word in specific language editions of Toki Pona: The Language of Good"),
|
|
101
|
+
usage: Usage.describe("The percentage of respondents to the annual Linku word survey who report to use this word, by the date of the survey."),
|
|
102
|
+
glyph_ids: Refs.describe("The IDs of all sitelen pona glyphs which represent the word. The usage category of each fetched glyph may be used to show or hide glyphs."),
|
|
103
|
+
primary_glyph_id: Ref.min(3).optional().describe("The ID of the glyph most commonly used to represent this word in sitelen pona."),
|
|
104
|
+
image: Resource.optional().describe("Link to a PNG of the primary sitelen pona glyph for this word."),
|
|
105
|
+
svg: Resource.optional().describe("Link to an SVG of the primary sitelen pona glyph for this word."),
|
|
106
|
+
translations: z.object({
|
|
107
|
+
commentary: Commentary.describe("Localized commentary on this word, such as history, clarifications, or trivia."),
|
|
108
|
+
etymology: Etymology.describe("Localized etymology of this word."),
|
|
109
|
+
definition: Definition.describe("Localized definition of this word.")
|
|
110
|
+
})
|
|
111
|
+
}).describe("General info on a Toki Pona word").refine(({ id, primary_glyph_id, glyph_ids, usage_category }) => usage_category !== "sandbox" ? primary_glyph_id && primary_glyph_id.length >= 3 && glyph_ids.length >= 1 : true).refine(({ id, book, pu_verbatim }) => book === "pu" && !NO_PU_VERBATIM.includes(id) ? pu_verbatim !== void 0 : true).refine(({ id, book, ku_data }) => CAN_HAVE_KU_DATA.includes(book) && !NO_KU_DATA.includes(id) ? ku_data !== void 0 : true);
|
|
112
|
+
const Glyph = z.object({
|
|
113
|
+
id: Id.describe("A unique identifier for the glyph. Named after its primary word and numbered in order of coining or attestation."),
|
|
114
|
+
word: z.string().min(1).describe("The toki pona word which is written with this glyph."),
|
|
115
|
+
word_id: Id.describe("The Linku id of the toki pona word this glyph writes."),
|
|
116
|
+
usage_category: UsageCategory.describe("The glyph's usage category, derived from the data of the annual Linku glyph survey."),
|
|
117
|
+
author: Authors.describe("The name or names of those involved in creating this glyph."),
|
|
118
|
+
author_source: Source.optional().describe("The source or origin of this glyph, often a URL."),
|
|
119
|
+
creation_date: OptionalDate.describe("When this glyph was created, to precision known"),
|
|
120
|
+
see_also: SeeAlso.describe("A list of related glyphs by ID"),
|
|
121
|
+
primary: z.boolean().describe("Whether this glyph is the main glyph used to write the toki pona word in `word`"),
|
|
122
|
+
parent_id: Ref.optional().describe("The primary glyph which this glyph is considered to share its form with."),
|
|
123
|
+
deprecated: Deprecated.describe("Whether this glyph is considered deprecated by its author(s)."),
|
|
124
|
+
image: Resource.optional().describe("A URL to an image of the sitelen pona glyph."),
|
|
125
|
+
svg: Resource.optional().describe("A URL to an SVG of the sitelen pona glyph."),
|
|
126
|
+
ligature: Ligature.optional().describe("The specific numerical ligature used to render this sitelen pona glyph."),
|
|
127
|
+
alias_ligatures: Ligatures.describe("All non-numerical ligature used to render this sitelen pona glyph."),
|
|
128
|
+
ucsur: UcsurCodepoint.describe("The UCSUR codepoint used to render this specific sitelen pona glyph."),
|
|
129
|
+
usage: Usage.describe("The percentage of respondents to the annual Linku word survey who report to use this glyph, by the date of the survey."),
|
|
130
|
+
translations: z.object({
|
|
131
|
+
commentary: Commentary.describe("Localized commentary on this glyph, such as history, clarifications, or trivia."),
|
|
132
|
+
etymology: Etymology.describe("Localized etymology of this glyph."),
|
|
133
|
+
names: Names
|
|
134
|
+
})
|
|
135
|
+
});
|
|
136
|
+
const Fingerspelling = z.object({
|
|
137
|
+
id: Id.describe("A unique name for the fingerspelling which is also a gloss."),
|
|
138
|
+
is_two_handed: z.boolean().describe("Whether the sign is two-handed or not."),
|
|
139
|
+
etymology: z.array(z.object({
|
|
140
|
+
language: z.string().describe("The language of the sign."),
|
|
141
|
+
sign: z.string().optional().describe("The name of the sign such that it could be found in a sign language dictionary.")
|
|
142
|
+
})).describe("Unlocalized etymological values regarding this sign's origin"),
|
|
143
|
+
signwriting: SignWriting,
|
|
144
|
+
video: Video.optional(),
|
|
145
|
+
translations: z.object({ parameters: Parameters })
|
|
146
|
+
}).describe("Info on a fingerspelling sign.");
|
|
147
|
+
const Sign = Fingerspelling.extend({
|
|
148
|
+
definition: z.string().describe("The definition of the sign as a single toki pona word."),
|
|
149
|
+
new_gloss: z.string().describe("The more recent, preferred gloss for this sign."),
|
|
150
|
+
old_gloss: z.string().describe("The older gloss for this sign, similar to `id`."),
|
|
151
|
+
old_id: z.string().describe("Previous, malformed id for the sign."),
|
|
152
|
+
translations: z.object({
|
|
153
|
+
icons: Icons,
|
|
154
|
+
parameters: Parameters
|
|
155
|
+
})
|
|
156
|
+
}).describe("Info on a Luka Pona sign");
|
|
157
|
+
const Font = z.object({
|
|
158
|
+
id: Id.describe("The font's unique ID, identifying it among other fonts"),
|
|
159
|
+
author: Authors.describe("a list of this font's authors"),
|
|
160
|
+
features: z.array(z.string().min(1)).describe("a list of features this font supports"),
|
|
161
|
+
filename: z.string().regex(/^(?:.+\.(ttf|otf|woff2|woff))?$/).describe("the name of the file this font is stored in at https://github.com/lipu-linku/ijo"),
|
|
162
|
+
last_updated: OptionalDate.describe("the rough date of this font's last update"),
|
|
163
|
+
license: z.string().describe("an SPDX expression describing this font's license: https://spdx.org/licenses/"),
|
|
164
|
+
ligatures: z.boolean().describe("whether this font supports ligatures"),
|
|
165
|
+
name: z.string().min(1).describe("this font's name"),
|
|
166
|
+
style: z.string().min(1).describe("the general style of this font"),
|
|
167
|
+
ucsur: z.boolean().describe("whether this font conforms to the UCSUR standard: https://www.kreativekorp.com/ucsur/charts/sitelen.html"),
|
|
168
|
+
version: z.string().describe("the current version of this font"),
|
|
169
|
+
writing_system: WritingSystem.describe("the writing system this font uses as its script"),
|
|
170
|
+
links: z.object({
|
|
171
|
+
fontfile: Resource.optional().describe("a link to the font file published by the original author (not the mirror on the Linku Project's GitHub)"),
|
|
172
|
+
repo: Resource.optional().describe("a link to a web hosted repository of this font's source files (usually hosted on GitHub or GitLab)"),
|
|
173
|
+
webpage: Resource.optional().describe("a link to this font's home page, usually showcasing its features and usage/installation")
|
|
174
|
+
})
|
|
175
|
+
}).describe("Info on a font for Toki Pona");
|
|
176
|
+
const Language = z.object({
|
|
177
|
+
id: Id.min(2).describe("The language's code in Crowdin. Usually its 2 or 3 letter code."),
|
|
178
|
+
locale: Id.min(2).describe("The locale code corresponding to the language."),
|
|
179
|
+
direction: z.union([z.literal("ltr"), z.literal("rtl")]).describe("The direction of the language's script."),
|
|
180
|
+
name: z.object({
|
|
181
|
+
en: z.string().describe("The name of the language in English."),
|
|
182
|
+
endonym: z.string().describe("The name of the language in that language. Prefer if available."),
|
|
183
|
+
tok: z.string().optional().describe("The name of the language in Toki Pona.")
|
|
184
|
+
})
|
|
185
|
+
});
|
|
186
|
+
const Languages = z.record(Id, Language).describe("The languages offered by sona Linku.");
|
|
187
|
+
const Fonts = z.record(Id, Font).describe("A raw data object containing all fonts data in Linku");
|
|
188
|
+
const Words = z.record(Id, Word).describe("A raw data object containing dictionary info about Toki Pona words");
|
|
189
|
+
const Glyphs = z.record(Id, Glyph).describe("A raw data object containing metadata about Sitelen Pona glyphs");
|
|
190
|
+
const Signs = z.record(Id, Sign).describe("A raw data object containing information about Luka Pona signs");
|
|
191
|
+
const Fingerspellings = z.record(Id, Fingerspelling).describe("A raw data object containing information about Luka Pona fingerspelling signs");
|
|
192
|
+
|
|
193
|
+
//#endregion
|
|
194
|
+
export { Glyph as a, Languages as c, Word as d, Words as f, Fonts as i, Sign as l, Fingerspellings as n, Glyphs as o, Font as r, Language as s, Fingerspelling as t, Signs as u };
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"description": "Info on a fingerspelling sign.",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"id": {
|
|
7
|
+
"description": "A unique name for the fingerspelling which is also a gloss.",
|
|
8
|
+
"type": "string",
|
|
9
|
+
"minLength": 1
|
|
10
|
+
},
|
|
11
|
+
"is_two_handed": {
|
|
12
|
+
"description": "Whether the sign is two-handed or not.",
|
|
13
|
+
"type": "boolean"
|
|
14
|
+
},
|
|
15
|
+
"etymology": {
|
|
16
|
+
"description": "Unlocalized etymological values regarding this sign's origin",
|
|
17
|
+
"type": "array",
|
|
18
|
+
"items": {
|
|
19
|
+
"type": "object",
|
|
20
|
+
"properties": {
|
|
21
|
+
"language": {
|
|
22
|
+
"description": "The language of the sign.",
|
|
23
|
+
"type": "string"
|
|
24
|
+
},
|
|
25
|
+
"sign": {
|
|
26
|
+
"description": "The name of the sign such that it could be found in a sign language dictionary.",
|
|
27
|
+
"type": "string"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"required": [
|
|
31
|
+
"language"
|
|
32
|
+
],
|
|
33
|
+
"additionalProperties": false
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"signwriting": {
|
|
37
|
+
"description": "Scripts for representing a sign as characters.",
|
|
38
|
+
"type": "object",
|
|
39
|
+
"properties": {
|
|
40
|
+
"fsw": {
|
|
41
|
+
"description": "The [Formal SignWriting](https://en.wikipedia.org/wiki/SignWriting) representation of the sign.",
|
|
42
|
+
"type": "string",
|
|
43
|
+
"minLength": 1
|
|
44
|
+
},
|
|
45
|
+
"swu": {
|
|
46
|
+
"description": "The [SignWriting with Unicode](https://en.wikipedia.org/wiki/SignWriting) representation of the sign.",
|
|
47
|
+
"type": "string",
|
|
48
|
+
"minLength": 1
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"required": [
|
|
52
|
+
"fsw",
|
|
53
|
+
"swu"
|
|
54
|
+
],
|
|
55
|
+
"additionalProperties": false
|
|
56
|
+
},
|
|
57
|
+
"video": {
|
|
58
|
+
"description": "Videos of the sign being performed, by format.",
|
|
59
|
+
"type": "object",
|
|
60
|
+
"properties": {
|
|
61
|
+
"gif": {
|
|
62
|
+
"description": "A link to a gif of the sign being signed.",
|
|
63
|
+
"$ref": "#/$defs/__schema0"
|
|
64
|
+
},
|
|
65
|
+
"mp4": {
|
|
66
|
+
"description": "a link to an mp4 of the sign being signed.",
|
|
67
|
+
"$ref": "#/$defs/__schema0"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"required": [
|
|
71
|
+
"gif",
|
|
72
|
+
"mp4"
|
|
73
|
+
],
|
|
74
|
+
"additionalProperties": false
|
|
75
|
+
},
|
|
76
|
+
"translations": {
|
|
77
|
+
"type": "object",
|
|
78
|
+
"properties": {
|
|
79
|
+
"parameters": {
|
|
80
|
+
"description": "Partly localized descriptions of how a sign is signed.",
|
|
81
|
+
"type": "object",
|
|
82
|
+
"properties": {
|
|
83
|
+
"handshape": {
|
|
84
|
+
"description": "The shape of the hand when signing, identified by its name in ASL. Should not be translated in any language other than Toki Pona",
|
|
85
|
+
"type": "string"
|
|
86
|
+
},
|
|
87
|
+
"movement": {
|
|
88
|
+
"description": "The motion of the hand when signing.",
|
|
89
|
+
"type": "string"
|
|
90
|
+
},
|
|
91
|
+
"placement": {
|
|
92
|
+
"description": "The placement of the hand when signing.",
|
|
93
|
+
"type": "string"
|
|
94
|
+
},
|
|
95
|
+
"orientation": {
|
|
96
|
+
"description": "The orientation of the hand when signing.",
|
|
97
|
+
"type": "string"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"additionalProperties": false
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"required": [
|
|
104
|
+
"parameters"
|
|
105
|
+
],
|
|
106
|
+
"additionalProperties": false
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"required": [
|
|
110
|
+
"id",
|
|
111
|
+
"is_two_handed",
|
|
112
|
+
"etymology",
|
|
113
|
+
"signwriting",
|
|
114
|
+
"translations"
|
|
115
|
+
],
|
|
116
|
+
"additionalProperties": false,
|
|
117
|
+
"$defs": {
|
|
118
|
+
"__schema0": {
|
|
119
|
+
"description": "A URL pointing to some external resource.",
|
|
120
|
+
"type": "string",
|
|
121
|
+
"format": "uri"
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"description": "A raw data object containing information about Luka Pona fingerspelling signs",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"propertyNames": {
|
|
6
|
+
"$ref": "#/$defs/__schema0"
|
|
7
|
+
},
|
|
8
|
+
"additionalProperties": {
|
|
9
|
+
"description": "Info on a fingerspelling sign.",
|
|
10
|
+
"type": "object",
|
|
11
|
+
"properties": {
|
|
12
|
+
"id": {
|
|
13
|
+
"description": "A unique name for the fingerspelling which is also a gloss.",
|
|
14
|
+
"$ref": "#/$defs/__schema0"
|
|
15
|
+
},
|
|
16
|
+
"is_two_handed": {
|
|
17
|
+
"description": "Whether the sign is two-handed or not.",
|
|
18
|
+
"type": "boolean"
|
|
19
|
+
},
|
|
20
|
+
"etymology": {
|
|
21
|
+
"description": "Unlocalized etymological values regarding this sign's origin",
|
|
22
|
+
"type": "array",
|
|
23
|
+
"items": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"properties": {
|
|
26
|
+
"language": {
|
|
27
|
+
"description": "The language of the sign.",
|
|
28
|
+
"type": "string"
|
|
29
|
+
},
|
|
30
|
+
"sign": {
|
|
31
|
+
"description": "The name of the sign such that it could be found in a sign language dictionary.",
|
|
32
|
+
"type": "string"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"required": [
|
|
36
|
+
"language"
|
|
37
|
+
],
|
|
38
|
+
"additionalProperties": false
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"signwriting": {
|
|
42
|
+
"description": "Scripts for representing a sign as characters.",
|
|
43
|
+
"type": "object",
|
|
44
|
+
"properties": {
|
|
45
|
+
"fsw": {
|
|
46
|
+
"description": "The [Formal SignWriting](https://en.wikipedia.org/wiki/SignWriting) representation of the sign.",
|
|
47
|
+
"type": "string",
|
|
48
|
+
"minLength": 1
|
|
49
|
+
},
|
|
50
|
+
"swu": {
|
|
51
|
+
"description": "The [SignWriting with Unicode](https://en.wikipedia.org/wiki/SignWriting) representation of the sign.",
|
|
52
|
+
"type": "string",
|
|
53
|
+
"minLength": 1
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"required": [
|
|
57
|
+
"fsw",
|
|
58
|
+
"swu"
|
|
59
|
+
],
|
|
60
|
+
"additionalProperties": false
|
|
61
|
+
},
|
|
62
|
+
"video": {
|
|
63
|
+
"description": "Videos of the sign being performed, by format.",
|
|
64
|
+
"type": "object",
|
|
65
|
+
"properties": {
|
|
66
|
+
"gif": {
|
|
67
|
+
"description": "A link to a gif of the sign being signed.",
|
|
68
|
+
"$ref": "#/$defs/__schema1"
|
|
69
|
+
},
|
|
70
|
+
"mp4": {
|
|
71
|
+
"description": "a link to an mp4 of the sign being signed.",
|
|
72
|
+
"$ref": "#/$defs/__schema1"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"required": [
|
|
76
|
+
"gif",
|
|
77
|
+
"mp4"
|
|
78
|
+
],
|
|
79
|
+
"additionalProperties": false
|
|
80
|
+
},
|
|
81
|
+
"translations": {
|
|
82
|
+
"type": "object",
|
|
83
|
+
"properties": {
|
|
84
|
+
"parameters": {
|
|
85
|
+
"description": "Partly localized descriptions of how a sign is signed.",
|
|
86
|
+
"type": "object",
|
|
87
|
+
"properties": {
|
|
88
|
+
"handshape": {
|
|
89
|
+
"description": "The shape of the hand when signing, identified by its name in ASL. Should not be translated in any language other than Toki Pona",
|
|
90
|
+
"type": "string"
|
|
91
|
+
},
|
|
92
|
+
"movement": {
|
|
93
|
+
"description": "The motion of the hand when signing.",
|
|
94
|
+
"type": "string"
|
|
95
|
+
},
|
|
96
|
+
"placement": {
|
|
97
|
+
"description": "The placement of the hand when signing.",
|
|
98
|
+
"type": "string"
|
|
99
|
+
},
|
|
100
|
+
"orientation": {
|
|
101
|
+
"description": "The orientation of the hand when signing.",
|
|
102
|
+
"type": "string"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"additionalProperties": false
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"required": [
|
|
109
|
+
"parameters"
|
|
110
|
+
],
|
|
111
|
+
"additionalProperties": false
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"required": [
|
|
115
|
+
"id",
|
|
116
|
+
"is_two_handed",
|
|
117
|
+
"etymology",
|
|
118
|
+
"signwriting",
|
|
119
|
+
"translations"
|
|
120
|
+
],
|
|
121
|
+
"additionalProperties": false
|
|
122
|
+
},
|
|
123
|
+
"$defs": {
|
|
124
|
+
"__schema0": {
|
|
125
|
+
"description": "A unique identifier for an object in Linku. Generally named after the object.",
|
|
126
|
+
"type": "string",
|
|
127
|
+
"minLength": 1
|
|
128
|
+
},
|
|
129
|
+
"__schema1": {
|
|
130
|
+
"description": "A URL pointing to some external resource.",
|
|
131
|
+
"type": "string",
|
|
132
|
+
"format": "uri"
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"description": "Info on a font for Toki Pona",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"id": {
|
|
7
|
+
"description": "The font's unique ID, identifying it among other fonts",
|
|
8
|
+
"type": "string",
|
|
9
|
+
"minLength": 1
|
|
10
|
+
},
|
|
11
|
+
"author": {
|
|
12
|
+
"description": "a list of this font's authors",
|
|
13
|
+
"type": "array",
|
|
14
|
+
"items": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"minLength": 1
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"features": {
|
|
20
|
+
"description": "a list of features this font supports",
|
|
21
|
+
"type": "array",
|
|
22
|
+
"items": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"minLength": 1
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"filename": {
|
|
28
|
+
"description": "the name of the file this font is stored in at https://github.com/lipu-linku/ijo",
|
|
29
|
+
"type": "string",
|
|
30
|
+
"pattern": "^(?:.+\\.(ttf|otf|woff2|woff))?$"
|
|
31
|
+
},
|
|
32
|
+
"last_updated": {
|
|
33
|
+
"description": "the rough date of this font's last update",
|
|
34
|
+
"type": "string",
|
|
35
|
+
"pattern": "^(?:|(?<year>20\\d{2})(?:-(?<month>0[1-9]|1[0-2])(?:-(?<day>0[1-9]|[12]\\d|3[01]))?)?|(?<startYear>20\\d{2})-(?<endYear>20\\d{2}))$"
|
|
36
|
+
},
|
|
37
|
+
"license": {
|
|
38
|
+
"description": "an SPDX expression describing this font's license: https://spdx.org/licenses/",
|
|
39
|
+
"type": "string"
|
|
40
|
+
},
|
|
41
|
+
"ligatures": {
|
|
42
|
+
"description": "whether this font supports ligatures",
|
|
43
|
+
"type": "boolean"
|
|
44
|
+
},
|
|
45
|
+
"name": {
|
|
46
|
+
"description": "this font's name",
|
|
47
|
+
"type": "string",
|
|
48
|
+
"minLength": 1
|
|
49
|
+
},
|
|
50
|
+
"style": {
|
|
51
|
+
"description": "the general style of this font",
|
|
52
|
+
"type": "string",
|
|
53
|
+
"minLength": 1
|
|
54
|
+
},
|
|
55
|
+
"ucsur": {
|
|
56
|
+
"description": "whether this font conforms to the UCSUR standard: https://www.kreativekorp.com/ucsur/charts/sitelen.html",
|
|
57
|
+
"type": "boolean"
|
|
58
|
+
},
|
|
59
|
+
"version": {
|
|
60
|
+
"description": "the current version of this font",
|
|
61
|
+
"type": "string"
|
|
62
|
+
},
|
|
63
|
+
"writing_system": {
|
|
64
|
+
"description": "the writing system this font uses as its script",
|
|
65
|
+
"type": "string",
|
|
66
|
+
"enum": [
|
|
67
|
+
"sitelen pona",
|
|
68
|
+
"sitelen sitelen",
|
|
69
|
+
"alphabet",
|
|
70
|
+
"syllabary",
|
|
71
|
+
"logography",
|
|
72
|
+
"tokiponido alphabet",
|
|
73
|
+
"tokiponido syllabary",
|
|
74
|
+
"tokiponido logography"
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
"links": {
|
|
78
|
+
"type": "object",
|
|
79
|
+
"properties": {
|
|
80
|
+
"fontfile": {
|
|
81
|
+
"description": "a link to the font file published by the original author (not the mirror on the Linku Project's GitHub)",
|
|
82
|
+
"$ref": "#/$defs/__schema0"
|
|
83
|
+
},
|
|
84
|
+
"repo": {
|
|
85
|
+
"description": "a link to a web hosted repository of this font's source files (usually hosted on GitHub or GitLab)",
|
|
86
|
+
"$ref": "#/$defs/__schema0"
|
|
87
|
+
},
|
|
88
|
+
"webpage": {
|
|
89
|
+
"description": "a link to this font's home page, usually showcasing its features and usage/installation",
|
|
90
|
+
"$ref": "#/$defs/__schema0"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"additionalProperties": false
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"required": [
|
|
97
|
+
"id",
|
|
98
|
+
"author",
|
|
99
|
+
"features",
|
|
100
|
+
"filename",
|
|
101
|
+
"last_updated",
|
|
102
|
+
"license",
|
|
103
|
+
"ligatures",
|
|
104
|
+
"name",
|
|
105
|
+
"style",
|
|
106
|
+
"ucsur",
|
|
107
|
+
"version",
|
|
108
|
+
"writing_system",
|
|
109
|
+
"links"
|
|
110
|
+
],
|
|
111
|
+
"additionalProperties": false,
|
|
112
|
+
"$defs": {
|
|
113
|
+
"__schema0": {
|
|
114
|
+
"description": "A URL pointing to some external resource.",
|
|
115
|
+
"type": "string",
|
|
116
|
+
"format": "uri"
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|