@krizaka/org 0.0.0-stage → 0.1.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/dist/index.js ADDED
@@ -0,0 +1,316 @@
1
+ // package.json
2
+ var package_default = {
3
+ name: "@krizaka/org",
4
+ version: "0.1.0",
5
+ description: "The public facts about Krizaka, in one validated JSON that every footer, site and app reads: legal name, NEQ, \xAB Fait \xE0 Montr\xE9al \xBB in French and English, brand marks, default avatars and banners, the live products and sites, the public contact, the footer line and the mobile apps' public runtime config. Typed data, JSON Schema, and the files published on the CDN.",
6
+ keywords: [
7
+ "krizaka",
8
+ "organization",
9
+ "footer",
10
+ "brand",
11
+ "json-schema"
12
+ ],
13
+ homepage: "https://ts.krizaka.com/org",
14
+ bugs: "https://github.com/krizaka/krizaka-ts/issues",
15
+ repository: {
16
+ type: "git",
17
+ url: "git+https://github.com/krizaka/krizaka-ts.git",
18
+ directory: "packages/org"
19
+ },
20
+ license: "Apache-2.0",
21
+ author: "Krizaka (https://www.krizaka.com)",
22
+ type: "module",
23
+ main: "./dist/index.js",
24
+ module: "./dist/index.js",
25
+ types: "./dist/index.d.ts",
26
+ exports: {
27
+ ".": {
28
+ types: "./dist/index.d.ts",
29
+ import: "./dist/index.js"
30
+ },
31
+ "./org.json": "./dist/org.json",
32
+ "./org.schema.json": "./dist/org.schema.json",
33
+ "./apps/*.json": "./dist/apps/*.json",
34
+ "./package.json": "./package.json"
35
+ },
36
+ files: [
37
+ "dist",
38
+ "README.md",
39
+ "LICENSE"
40
+ ],
41
+ sideEffects: false,
42
+ scripts: {
43
+ build: `node -e "require('node:fs').rmSync('dist',{recursive:true,force:true})" && tsup && node scripts/emit.mjs`,
44
+ lint: "eslint . --max-warnings 0 && tsc --noEmit",
45
+ typecheck: "tsc --noEmit",
46
+ test: "vitest run",
47
+ check: "pnpm run lint && pnpm run test && pnpm run build",
48
+ "publish:cdn": "node scripts/publish.mjs",
49
+ prepublishOnly: "pnpm run build"
50
+ },
51
+ engines: {
52
+ node: ">=22"
53
+ },
54
+ devDependencies: {
55
+ "@krizaka/config": "workspace:^",
56
+ "@types/node": "^22.10.0",
57
+ ajv: "^8.17.0",
58
+ eslint: "^9.39.0",
59
+ tsup: "^8.5.0",
60
+ typescript: "^5.9.3",
61
+ vitest: "^4.1.11"
62
+ }
63
+ };
64
+
65
+ // src/org.ts
66
+ var CDN = "https://krizaka-assets.b-cdn.net";
67
+ var ORG_URL = `${CDN}/org/v1/org.json`;
68
+ var ORG_SCHEMA_URL = `${CDN}/org/v1/org.schema.json`;
69
+ var cdn = (path) => `${CDN}/${path}`;
70
+ var mark = (kind, theme) => ({
71
+ svg: cdn(`brand/krizaka/${kind}-${theme}.svg`),
72
+ png64: cdn(`brand/krizaka/${kind}-${theme}-64.png`),
73
+ png256: cdn(`brand/krizaka/${kind}-${theme}-256.png`),
74
+ png512: cdn(`brand/krizaka/${kind}-${theme}-512.png`),
75
+ png1024: cdn(`brand/krizaka/${kind}-${theme}-1024.png`)
76
+ });
77
+ var TONES = [1, 2, 3, 4, 5, 6];
78
+ var avatarAlt = (kind, n) => kind === "person" ? { fr: `Photo de profil par d\xE9faut : silhouette, teinte ${n}`, en: `Default profile picture: silhouette, tone ${n}` } : { fr: `Photo de profil par d\xE9faut : disque uni, teinte ${n}`, en: `Default profile picture: plain disc, tone ${n}` };
79
+ var defaults = ["person", "plain"].flatMap(
80
+ (kind) => TONES.map((n) => ({
81
+ id: `${kind}-${n}`,
82
+ kind,
83
+ svg: cdn(`people/defaults/v1/krizaka/${kind}-${n}.svg`),
84
+ webp256: cdn(`people/defaults/v1/krizaka/${kind}-${n}-256.webp`),
85
+ webp512: cdn(`people/defaults/v1/krizaka/${kind}-${n}-512.webp`),
86
+ alt: avatarAlt(kind, n)
87
+ }))
88
+ );
89
+ var org = {
90
+ $schema: ORG_SCHEMA_URL,
91
+ schemaVersion: 1,
92
+ version: package_default.version,
93
+ updatedAt: "2026-10-26",
94
+ company: {
95
+ legalName: "Technologies Krizaka Inc.",
96
+ tradeName: "Krizaka",
97
+ neq: "1182652231",
98
+ city: "Montr\xE9al",
99
+ region: "Qu\xE9bec",
100
+ country: "CA",
101
+ license: "Apache-2.0",
102
+ madeIn: { fr: "Fait \xE0 Montr\xE9al", en: "Made in Montr\xE9al" }
103
+ },
104
+ brand: {
105
+ name: "Krizaka",
106
+ logo: { dark: mark("logo", "dark"), light: mark("logo", "light") },
107
+ mark: { dark: mark("mark", "dark"), light: mark("mark", "light") },
108
+ favicon: cdn("brand/krizaka/favicon.svg"),
109
+ appleTouchIcon: cdn("brand/krizaka/apple-touch-icon.png"),
110
+ socialPreview: cdn("brand/krizaka/social-preview-1280x640.png"),
111
+ manifest: cdn("brand/manifest.json")
112
+ },
113
+ people: {
114
+ defaults,
115
+ // No banner is published on the CDN yet; the set joins here with its alts when it is.
116
+ banners: []
117
+ },
118
+ products: [
119
+ { id: "orazaka", name: "Orazaka", status: "devPreview", url: "https://dev.orazaka.com", repo: "https://github.com/krizaka/orazaka" },
120
+ { id: "yomizaka", name: "Yomizaka", status: "development", url: "https://dev.yomizaka.com", repo: "https://github.com/krizaka/yomizaka" },
121
+ { id: "akinaza", name: "Akinaza", status: "development", url: "https://dev.akinaza.com", repo: "https://github.com/krizaka/akinaza" }
122
+ ],
123
+ sites: [
124
+ { id: "www", name: "krizaka.com", url: "https://www.krizaka.com" },
125
+ { id: "ui", name: "Krizaka UI", url: "https://ui.krizaka.com" },
126
+ { id: "java", name: "Krizaka Java", url: "https://java.krizaka.com" },
127
+ { id: "ts", name: "Krizaka TS", url: "https://ts.krizaka.com" },
128
+ { id: "motion", name: "Krizaka Motion", url: "https://motion.krizaka.com" },
129
+ { id: "blog", name: "Blog", url: "https://blog.krizaka.com" }
130
+ ],
131
+ contact: {
132
+ page: { fr: "https://www.krizaka.com/fr/contact", en: "https://www.krizaka.com/en/contact" },
133
+ email: null
134
+ },
135
+ footer: {
136
+ line: { fr: "Une entreprise de Technologies Krizaka \xB7 Fait \xE0 Montr\xE9al", en: "A Technologies Krizaka company \xB7 Made in Montr\xE9al" },
137
+ legal: [
138
+ { id: "privacy", label: { fr: "Confidentialit\xE9", en: "Privacy" }, url: { fr: "https://www.krizaka.com/fr/privacy", en: "https://www.krizaka.com/en/privacy" } },
139
+ { id: "terms", label: { fr: "Conditions", en: "Terms" }, url: { fr: "https://www.krizaka.com/fr/terms", en: "https://www.krizaka.com/en/terms" } }
140
+ ]
141
+ }
142
+ };
143
+
144
+ // src/apps.ts
145
+ var APP_SCHEMA_URL = `${CDN}/org/v1/app.schema.json`;
146
+ var UPDATED = "2026-10-26";
147
+ var app = (id, devUrl) => ({
148
+ $schema: APP_SCHEMA_URL,
149
+ schemaVersion: 1,
150
+ app: id,
151
+ // Public by nature: an address a client calls. No key, no token, no internal host.
152
+ apiBaseUrl: { dev: devUrl, production: null },
153
+ features: {},
154
+ minAppVersion: "0.0.0",
155
+ updatedAt: UPDATED
156
+ });
157
+ var apps = {
158
+ orazaka: app("orazaka", "https://dev.orazaka.com"),
159
+ yomizaka: app("yomizaka", "https://dev.yomizaka.com"),
160
+ akinaza: app("akinaza", "https://dev.akinaza.com")
161
+ };
162
+
163
+ // src/schema.ts
164
+ var localized = {
165
+ type: "object",
166
+ additionalProperties: false,
167
+ required: ["fr", "en"],
168
+ properties: { fr: { type: "string", minLength: 1 }, en: { type: "string", minLength: 1 } }
169
+ };
170
+ var httpsUrl = { type: "string", format: "uri", pattern: "^https://" };
171
+ var mark2 = {
172
+ type: "object",
173
+ additionalProperties: false,
174
+ required: ["svg", "png64", "png256", "png512", "png1024"],
175
+ properties: { svg: httpsUrl, png64: httpsUrl, png256: httpsUrl, png512: httpsUrl, png1024: httpsUrl }
176
+ };
177
+ var slug = { type: "string", pattern: "^[a-z0-9]+(-[a-z0-9]+)*$" };
178
+ var themed = { type: "object", additionalProperties: false, required: ["dark", "light"], properties: { dark: mark2, light: mark2 } };
179
+ var date = { type: "string", pattern: "^\\d{4}-\\d{2}-\\d{2}$" };
180
+ var semver = { type: "string", pattern: "^\\d+\\.\\d+\\.\\d+$" };
181
+ var orgSchema = {
182
+ $schema: "https://json-schema.org/draft/2020-12/schema",
183
+ $id: ORG_SCHEMA_URL,
184
+ title: "Krizaka organisation \u2014 public facts",
185
+ type: "object",
186
+ additionalProperties: false,
187
+ required: ["$schema", "schemaVersion", "version", "updatedAt", "company", "brand", "people", "products", "sites", "contact", "footer"],
188
+ properties: {
189
+ $schema: { type: "string" },
190
+ schemaVersion: { const: 1 },
191
+ version: semver,
192
+ updatedAt: date,
193
+ company: {
194
+ type: "object",
195
+ additionalProperties: false,
196
+ required: ["legalName", "tradeName", "neq", "city", "region", "country", "license", "madeIn"],
197
+ properties: {
198
+ legalName: { type: "string", minLength: 1 },
199
+ tradeName: { type: "string", minLength: 1 },
200
+ neq: { type: "string", pattern: "^\\d{10}$" },
201
+ city: { type: "string", minLength: 1 },
202
+ region: { type: "string", minLength: 1 },
203
+ country: { type: "string", pattern: "^[A-Z]{2}$" },
204
+ license: { type: "string", minLength: 1 },
205
+ madeIn: localized
206
+ }
207
+ },
208
+ brand: {
209
+ type: "object",
210
+ additionalProperties: false,
211
+ required: ["name", "logo", "mark", "favicon", "appleTouchIcon", "socialPreview", "manifest"],
212
+ properties: { name: { type: "string", minLength: 1 }, logo: themed, mark: themed, favicon: httpsUrl, appleTouchIcon: httpsUrl, socialPreview: httpsUrl, manifest: httpsUrl }
213
+ },
214
+ people: {
215
+ type: "object",
216
+ additionalProperties: false,
217
+ required: ["defaults", "banners"],
218
+ properties: {
219
+ defaults: {
220
+ type: "array",
221
+ items: {
222
+ type: "object",
223
+ additionalProperties: false,
224
+ required: ["id", "kind", "svg", "webp256", "webp512", "alt"],
225
+ properties: { id: slug, kind: { enum: ["person", "plain"] }, svg: httpsUrl, webp256: httpsUrl, webp512: httpsUrl, alt: localized }
226
+ }
227
+ },
228
+ banners: {
229
+ type: "array",
230
+ items: { type: "object", additionalProperties: false, required: ["id", "url", "alt"], properties: { id: slug, url: httpsUrl, alt: localized } }
231
+ }
232
+ }
233
+ },
234
+ products: {
235
+ type: "array",
236
+ minItems: 1,
237
+ items: {
238
+ type: "object",
239
+ additionalProperties: false,
240
+ required: ["id", "name", "status", "url", "repo"],
241
+ properties: { id: slug, name: { type: "string", minLength: 1 }, status: { enum: ["development", "devPreview"] }, url: httpsUrl, repo: httpsUrl }
242
+ }
243
+ },
244
+ sites: {
245
+ type: "array",
246
+ minItems: 1,
247
+ items: { type: "object", additionalProperties: false, required: ["id", "name", "url"], properties: { id: slug, name: { type: "string", minLength: 1 }, url: httpsUrl } }
248
+ },
249
+ contact: {
250
+ type: "object",
251
+ additionalProperties: false,
252
+ required: ["page", "email"],
253
+ properties: {
254
+ page: { type: "object", additionalProperties: false, required: ["fr", "en"], properties: { fr: httpsUrl, en: httpsUrl } },
255
+ email: { type: ["string", "null"], format: "email" }
256
+ }
257
+ },
258
+ footer: {
259
+ type: "object",
260
+ additionalProperties: false,
261
+ required: ["line", "legal"],
262
+ properties: {
263
+ line: localized,
264
+ legal: {
265
+ type: "array",
266
+ minItems: 1,
267
+ items: {
268
+ type: "object",
269
+ additionalProperties: false,
270
+ required: ["id", "label", "url"],
271
+ properties: { id: { enum: ["privacy", "terms"] }, label: localized, url: { type: "object", additionalProperties: false, required: ["fr", "en"], properties: { fr: httpsUrl, en: httpsUrl } } }
272
+ }
273
+ }
274
+ }
275
+ }
276
+ }
277
+ };
278
+ var appSchema = {
279
+ $schema: "https://json-schema.org/draft/2020-12/schema",
280
+ $id: `${CDN}/org/v1/app.schema.json`,
281
+ title: "Krizaka mobile app \u2014 public runtime config",
282
+ type: "object",
283
+ additionalProperties: false,
284
+ required: ["$schema", "schemaVersion", "app", "apiBaseUrl", "features", "minAppVersion", "updatedAt"],
285
+ properties: {
286
+ $schema: { type: "string" },
287
+ schemaVersion: { const: 1 },
288
+ app: slug,
289
+ apiBaseUrl: {
290
+ type: "object",
291
+ additionalProperties: false,
292
+ required: ["dev", "production"],
293
+ properties: { dev: { anyOf: [httpsUrl, { type: "null" }] }, production: { anyOf: [httpsUrl, { type: "null" }] } }
294
+ },
295
+ features: { type: "object", additionalProperties: { type: "boolean" } },
296
+ minAppVersion: semver,
297
+ updatedAt: date
298
+ }
299
+ };
300
+
301
+ // src/index.ts
302
+ var localized2 = (text, locale) => locale === "fr" ? text.fr : text.en;
303
+ var footerLine = (locale) => localized2(org.footer.line, locale);
304
+ export {
305
+ APP_SCHEMA_URL,
306
+ CDN,
307
+ ORG_SCHEMA_URL,
308
+ ORG_URL,
309
+ appSchema,
310
+ apps,
311
+ footerLine,
312
+ localized2 as localized,
313
+ org,
314
+ orgSchema
315
+ };
316
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../package.json","../src/org.ts","../src/apps.ts","../src/schema.ts","../src/index.ts"],"sourcesContent":["{\n \"name\": \"@krizaka/org\",\n \"version\": \"0.1.0\",\n \"description\": \"The public facts about Krizaka, in one validated JSON that every footer, site and app reads: legal name, NEQ, « Fait à Montréal » in French and English, brand marks, default avatars and banners, the live products and sites, the public contact, the footer line and the mobile apps' public runtime config. Typed data, JSON Schema, and the files published on the CDN.\",\n \"keywords\": [\n \"krizaka\",\n \"organization\",\n \"footer\",\n \"brand\",\n \"json-schema\"\n ],\n \"homepage\": \"https://ts.krizaka.com/org\",\n \"bugs\": \"https://github.com/krizaka/krizaka-ts/issues\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/krizaka/krizaka-ts.git\",\n \"directory\": \"packages/org\"\n },\n \"license\": \"Apache-2.0\",\n \"author\": \"Krizaka (https://www.krizaka.com)\",\n \"type\": \"module\",\n \"main\": \"./dist/index.js\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.js\"\n },\n \"./org.json\": \"./dist/org.json\",\n \"./org.schema.json\": \"./dist/org.schema.json\",\n \"./apps/*.json\": \"./dist/apps/*.json\",\n \"./package.json\": \"./package.json\"\n },\n \"files\": [\n \"dist\",\n \"README.md\",\n \"LICENSE\"\n ],\n \"sideEffects\": false,\n \"scripts\": {\n \"build\": \"node -e \\\"require('node:fs').rmSync('dist',{recursive:true,force:true})\\\" && tsup && node scripts/emit.mjs\",\n \"lint\": \"eslint . --max-warnings 0 && tsc --noEmit\",\n \"typecheck\": \"tsc --noEmit\",\n \"test\": \"vitest run\",\n \"check\": \"pnpm run lint && pnpm run test && pnpm run build\",\n \"publish:cdn\": \"node scripts/publish.mjs\",\n \"prepublishOnly\": \"pnpm run build\"\n },\n \"engines\": {\n \"node\": \">=22\"\n },\n \"devDependencies\": {\n \"@krizaka/config\": \"workspace:^\",\n \"@types/node\": \"^22.10.0\",\n \"ajv\": \"^8.17.0\",\n \"eslint\": \"^9.39.0\",\n \"tsup\": \"^8.5.0\",\n \"typescript\": \"^5.9.3\",\n \"vitest\": \"^4.1.11\"\n }\n}\n","import pkg from \"../package.json\" with { type: \"json\" };\nimport type { Localized, Org, OrgAvatar, OrgMark } from \"./org.types\";\n\n/** The pull zone that serves the brand files and this JSON. */\nexport const CDN = \"https://krizaka-assets.b-cdn.net\";\nexport const ORG_URL = `${CDN}/org/v1/org.json`;\nexport const ORG_SCHEMA_URL = `${CDN}/org/v1/org.schema.json`;\n\nconst cdn = (path: string) => `${CDN}/${path}`;\n\nconst mark = (kind: \"logo\" | \"mark\", theme: \"dark\" | \"light\"): OrgMark => ({\n svg: cdn(`brand/krizaka/${kind}-${theme}.svg`),\n png64: cdn(`brand/krizaka/${kind}-${theme}-64.png`),\n png256: cdn(`brand/krizaka/${kind}-${theme}-256.png`),\n png512: cdn(`brand/krizaka/${kind}-${theme}-512.png`),\n png1024: cdn(`brand/krizaka/${kind}-${theme}-1024.png`),\n});\n\nconst TONES = [1, 2, 3, 4, 5, 6] as const;\n\nconst avatarAlt = (kind: \"person\" | \"plain\", n: number): Localized =>\n kind === \"person\"\n ? { fr: `Photo de profil par défaut : silhouette, teinte ${n}`, en: `Default profile picture: silhouette, tone ${n}` }\n : { fr: `Photo de profil par défaut : disque uni, teinte ${n}`, en: `Default profile picture: plain disc, tone ${n}` };\n\n/** The default profile pictures a product shows when a person has no photo (`people/defaults/v1`, krizaka-ui `tools/export-brand.mjs`). */\nconst defaults: OrgAvatar[] = ([\"person\", \"plain\"] as const).flatMap((kind) =>\n TONES.map((n) => ({\n id: `${kind}-${n}`,\n kind,\n svg: cdn(`people/defaults/v1/krizaka/${kind}-${n}.svg`),\n webp256: cdn(`people/defaults/v1/krizaka/${kind}-${n}-256.webp`),\n webp512: cdn(`people/defaults/v1/krizaka/${kind}-${n}-512.webp`),\n alt: avatarAlt(kind, n),\n })),\n);\n\n/** The public facts about Krizaka. Reviewed by pull request; changing a fact is one PR here and a release. */\nexport const org: Org = {\n $schema: ORG_SCHEMA_URL,\n schemaVersion: 1,\n version: pkg.version,\n updatedAt: \"2026-10-26\",\n company: {\n legalName: \"Technologies Krizaka Inc.\",\n tradeName: \"Krizaka\",\n neq: \"1182652231\",\n city: \"Montréal\",\n region: \"Québec\",\n country: \"CA\",\n license: \"Apache-2.0\",\n madeIn: { fr: \"Fait à Montréal\", en: \"Made in Montréal\" },\n },\n brand: {\n name: \"Krizaka\",\n logo: { dark: mark(\"logo\", \"dark\"), light: mark(\"logo\", \"light\") },\n mark: { dark: mark(\"mark\", \"dark\"), light: mark(\"mark\", \"light\") },\n favicon: cdn(\"brand/krizaka/favicon.svg\"),\n appleTouchIcon: cdn(\"brand/krizaka/apple-touch-icon.png\"),\n socialPreview: cdn(\"brand/krizaka/social-preview-1280x640.png\"),\n manifest: cdn(\"brand/manifest.json\"),\n },\n people: {\n defaults,\n // No banner is published on the CDN yet; the set joins here with its alts when it is.\n banners: [],\n },\n products: [\n { id: \"orazaka\", name: \"Orazaka\", status: \"devPreview\", url: \"https://dev.orazaka.com\", repo: \"https://github.com/krizaka/orazaka\" },\n { id: \"yomizaka\", name: \"Yomizaka\", status: \"development\", url: \"https://dev.yomizaka.com\", repo: \"https://github.com/krizaka/yomizaka\" },\n { id: \"akinaza\", name: \"Akinaza\", status: \"development\", url: \"https://dev.akinaza.com\", repo: \"https://github.com/krizaka/akinaza\" },\n ],\n sites: [\n { id: \"www\", name: \"krizaka.com\", url: \"https://www.krizaka.com\" },\n { id: \"ui\", name: \"Krizaka UI\", url: \"https://ui.krizaka.com\" },\n { id: \"java\", name: \"Krizaka Java\", url: \"https://java.krizaka.com\" },\n { id: \"ts\", name: \"Krizaka TS\", url: \"https://ts.krizaka.com\" },\n { id: \"motion\", name: \"Krizaka Motion\", url: \"https://motion.krizaka.com\" },\n { id: \"blog\", name: \"Blog\", url: \"https://blog.krizaka.com\" },\n ],\n contact: {\n page: { fr: \"https://www.krizaka.com/fr/contact\", en: \"https://www.krizaka.com/en/contact\" },\n email: null,\n },\n footer: {\n line: { fr: \"Une entreprise de Technologies Krizaka · Fait à Montréal\", en: \"A Technologies Krizaka company · Made in Montréal\" },\n legal: [\n { id: \"privacy\", label: { fr: \"Confidentialité\", en: \"Privacy\" }, url: { fr: \"https://www.krizaka.com/fr/privacy\", en: \"https://www.krizaka.com/en/privacy\" } },\n { id: \"terms\", label: { fr: \"Conditions\", en: \"Terms\" }, url: { fr: \"https://www.krizaka.com/fr/terms\", en: \"https://www.krizaka.com/en/terms\" } },\n ],\n },\n};\n","import { CDN } from \"./org\";\nimport type { AppConfig } from \"./org.types\";\n\nexport const APP_SCHEMA_URL = `${CDN}/org/v1/app.schema.json`;\nconst UPDATED = \"2026-10-26\";\n\nconst app = (id: string, devUrl: string): AppConfig => ({\n $schema: APP_SCHEMA_URL,\n schemaVersion: 1,\n app: id,\n // Public by nature: an address a client calls. No key, no token, no internal host.\n apiBaseUrl: { dev: devUrl, production: null },\n features: {},\n minAppVersion: \"0.0.0\",\n updatedAt: UPDATED,\n});\n\n/** The runtime config a mobile app may know, per live product. The app reads it at start, with a copy built into the binary as fallback. */\nexport const apps: Record<string, AppConfig> = {\n orazaka: app(\"orazaka\", \"https://dev.orazaka.com\"),\n yomizaka: app(\"yomizaka\", \"https://dev.yomizaka.com\"),\n akinaza: app(\"akinaza\", \"https://dev.akinaza.com\"),\n};\n","import { CDN, ORG_SCHEMA_URL } from \"./org\";\n\nconst localized = {\n type: \"object\",\n additionalProperties: false,\n required: [\"fr\", \"en\"],\n properties: { fr: { type: \"string\", minLength: 1 }, en: { type: \"string\", minLength: 1 } },\n} as const;\nconst httpsUrl = { type: \"string\", format: \"uri\", pattern: \"^https://\" } as const;\nconst mark = {\n type: \"object\",\n additionalProperties: false,\n required: [\"svg\", \"png64\", \"png256\", \"png512\", \"png1024\"],\n properties: { svg: httpsUrl, png64: httpsUrl, png256: httpsUrl, png512: httpsUrl, png1024: httpsUrl },\n} as const;\nconst slug = { type: \"string\", pattern: \"^[a-z0-9]+(-[a-z0-9]+)*$\" } as const;\nconst themed = { type: \"object\", additionalProperties: false, required: [\"dark\", \"light\"], properties: { dark: mark, light: mark } } as const;\nconst date = { type: \"string\", pattern: \"^\\\\d{4}-\\\\d{2}-\\\\d{2}$\" } as const;\nconst semver = { type: \"string\", pattern: \"^\\\\d+\\\\.\\\\d+\\\\.\\\\d+$\" } as const;\n\n/** The JSON Schema of `org/v1/org.json`. Nothing outside it is allowed (`additionalProperties: false` everywhere): a new fact is a new line here first. */\nexport const orgSchema = {\n $schema: \"https://json-schema.org/draft/2020-12/schema\",\n $id: ORG_SCHEMA_URL,\n title: \"Krizaka organisation — public facts\",\n type: \"object\",\n additionalProperties: false,\n required: [\"$schema\", \"schemaVersion\", \"version\", \"updatedAt\", \"company\", \"brand\", \"people\", \"products\", \"sites\", \"contact\", \"footer\"],\n properties: {\n $schema: { type: \"string\" },\n schemaVersion: { const: 1 },\n version: semver,\n updatedAt: date,\n company: {\n type: \"object\",\n additionalProperties: false,\n required: [\"legalName\", \"tradeName\", \"neq\", \"city\", \"region\", \"country\", \"license\", \"madeIn\"],\n properties: {\n legalName: { type: \"string\", minLength: 1 },\n tradeName: { type: \"string\", minLength: 1 },\n neq: { type: \"string\", pattern: \"^\\\\d{10}$\" },\n city: { type: \"string\", minLength: 1 },\n region: { type: \"string\", minLength: 1 },\n country: { type: \"string\", pattern: \"^[A-Z]{2}$\" },\n license: { type: \"string\", minLength: 1 },\n madeIn: localized,\n },\n },\n brand: {\n type: \"object\",\n additionalProperties: false,\n required: [\"name\", \"logo\", \"mark\", \"favicon\", \"appleTouchIcon\", \"socialPreview\", \"manifest\"],\n properties: { name: { type: \"string\", minLength: 1 }, logo: themed, mark: themed, favicon: httpsUrl, appleTouchIcon: httpsUrl, socialPreview: httpsUrl, manifest: httpsUrl },\n },\n people: {\n type: \"object\",\n additionalProperties: false,\n required: [\"defaults\", \"banners\"],\n properties: {\n defaults: {\n type: \"array\",\n items: {\n type: \"object\",\n additionalProperties: false,\n required: [\"id\", \"kind\", \"svg\", \"webp256\", \"webp512\", \"alt\"],\n properties: { id: slug, kind: { enum: [\"person\", \"plain\"] }, svg: httpsUrl, webp256: httpsUrl, webp512: httpsUrl, alt: localized },\n },\n },\n banners: {\n type: \"array\",\n items: { type: \"object\", additionalProperties: false, required: [\"id\", \"url\", \"alt\"], properties: { id: slug, url: httpsUrl, alt: localized } },\n },\n },\n },\n products: {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"object\",\n additionalProperties: false,\n required: [\"id\", \"name\", \"status\", \"url\", \"repo\"],\n properties: { id: slug, name: { type: \"string\", minLength: 1 }, status: { enum: [\"development\", \"devPreview\"] }, url: httpsUrl, repo: httpsUrl },\n },\n },\n sites: {\n type: \"array\",\n minItems: 1,\n items: { type: \"object\", additionalProperties: false, required: [\"id\", \"name\", \"url\"], properties: { id: slug, name: { type: \"string\", minLength: 1 }, url: httpsUrl } },\n },\n contact: {\n type: \"object\",\n additionalProperties: false,\n required: [\"page\", \"email\"],\n properties: {\n page: { type: \"object\", additionalProperties: false, required: [\"fr\", \"en\"], properties: { fr: httpsUrl, en: httpsUrl } },\n email: { type: [\"string\", \"null\"], format: \"email\" },\n },\n },\n footer: {\n type: \"object\",\n additionalProperties: false,\n required: [\"line\", \"legal\"],\n properties: {\n line: localized,\n legal: {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"object\",\n additionalProperties: false,\n required: [\"id\", \"label\", \"url\"],\n properties: { id: { enum: [\"privacy\", \"terms\"] }, label: localized, url: { type: \"object\", additionalProperties: false, required: [\"fr\", \"en\"], properties: { fr: httpsUrl, en: httpsUrl } } },\n },\n },\n },\n },\n },\n} as const;\n\n/** The JSON Schema of `apps/<product>.json`. */\nexport const appSchema = {\n $schema: \"https://json-schema.org/draft/2020-12/schema\",\n $id: `${CDN}/org/v1/app.schema.json`,\n title: \"Krizaka mobile app — public runtime config\",\n type: \"object\",\n additionalProperties: false,\n required: [\"$schema\", \"schemaVersion\", \"app\", \"apiBaseUrl\", \"features\", \"minAppVersion\", \"updatedAt\"],\n properties: {\n $schema: { type: \"string\" },\n schemaVersion: { const: 1 },\n app: slug,\n apiBaseUrl: {\n type: \"object\",\n additionalProperties: false,\n required: [\"dev\", \"production\"],\n properties: { dev: { anyOf: [httpsUrl, { type: \"null\" }] }, production: { anyOf: [httpsUrl, { type: \"null\" }] } },\n },\n features: { type: \"object\", additionalProperties: { type: \"boolean\" } },\n minAppVersion: semver,\n updatedAt: date,\n },\n} as const;\n","export { APP_SCHEMA_URL,apps } from \"./apps\";\nexport { CDN, org, ORG_SCHEMA_URL, ORG_URL } from \"./org\";\nexport type { AppConfig, AppEnvironment, Localized, Org, OrgAvatar, OrgBanner, OrgMark, OrgProduct, OrgSite, ProductStatus } from \"./org.types\";\nexport { appSchema, orgSchema } from \"./schema\";\n\nimport { org } from \"./org\";\nimport type { Localized } from \"./org.types\";\n\n/** The text of a localized pair for a language (`fr` or `en`; anything else reads English). */\nexport const localized = (text: Localized, locale: string): string => (locale === \"fr\" ? text.fr : text.en);\n\n/** The footer line of the family, « Une entreprise de Technologies Krizaka · Fait à Montréal ». */\nexport const footerLine = (locale: string): string => localized(org.footer.line, locale);\n"],"mappings":"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","names":["mark","localized"]}
package/dist/org.json ADDED
@@ -0,0 +1,287 @@
1
+ {
2
+ "$schema": "https://krizaka-assets.b-cdn.net/org/v1/org.schema.json",
3
+ "schemaVersion": 1,
4
+ "version": "0.1.0",
5
+ "updatedAt": "2026-10-26",
6
+ "company": {
7
+ "legalName": "Technologies Krizaka Inc.",
8
+ "tradeName": "Krizaka",
9
+ "neq": "1182652231",
10
+ "city": "Montréal",
11
+ "region": "Québec",
12
+ "country": "CA",
13
+ "license": "Apache-2.0",
14
+ "madeIn": {
15
+ "fr": "Fait à Montréal",
16
+ "en": "Made in Montréal"
17
+ }
18
+ },
19
+ "brand": {
20
+ "name": "Krizaka",
21
+ "logo": {
22
+ "dark": {
23
+ "svg": "https://krizaka-assets.b-cdn.net/brand/krizaka/logo-dark.svg",
24
+ "png64": "https://krizaka-assets.b-cdn.net/brand/krizaka/logo-dark-64.png",
25
+ "png256": "https://krizaka-assets.b-cdn.net/brand/krizaka/logo-dark-256.png",
26
+ "png512": "https://krizaka-assets.b-cdn.net/brand/krizaka/logo-dark-512.png",
27
+ "png1024": "https://krizaka-assets.b-cdn.net/brand/krizaka/logo-dark-1024.png"
28
+ },
29
+ "light": {
30
+ "svg": "https://krizaka-assets.b-cdn.net/brand/krizaka/logo-light.svg",
31
+ "png64": "https://krizaka-assets.b-cdn.net/brand/krizaka/logo-light-64.png",
32
+ "png256": "https://krizaka-assets.b-cdn.net/brand/krizaka/logo-light-256.png",
33
+ "png512": "https://krizaka-assets.b-cdn.net/brand/krizaka/logo-light-512.png",
34
+ "png1024": "https://krizaka-assets.b-cdn.net/brand/krizaka/logo-light-1024.png"
35
+ }
36
+ },
37
+ "mark": {
38
+ "dark": {
39
+ "svg": "https://krizaka-assets.b-cdn.net/brand/krizaka/mark-dark.svg",
40
+ "png64": "https://krizaka-assets.b-cdn.net/brand/krizaka/mark-dark-64.png",
41
+ "png256": "https://krizaka-assets.b-cdn.net/brand/krizaka/mark-dark-256.png",
42
+ "png512": "https://krizaka-assets.b-cdn.net/brand/krizaka/mark-dark-512.png",
43
+ "png1024": "https://krizaka-assets.b-cdn.net/brand/krizaka/mark-dark-1024.png"
44
+ },
45
+ "light": {
46
+ "svg": "https://krizaka-assets.b-cdn.net/brand/krizaka/mark-light.svg",
47
+ "png64": "https://krizaka-assets.b-cdn.net/brand/krizaka/mark-light-64.png",
48
+ "png256": "https://krizaka-assets.b-cdn.net/brand/krizaka/mark-light-256.png",
49
+ "png512": "https://krizaka-assets.b-cdn.net/brand/krizaka/mark-light-512.png",
50
+ "png1024": "https://krizaka-assets.b-cdn.net/brand/krizaka/mark-light-1024.png"
51
+ }
52
+ },
53
+ "favicon": "https://krizaka-assets.b-cdn.net/brand/krizaka/favicon.svg",
54
+ "appleTouchIcon": "https://krizaka-assets.b-cdn.net/brand/krizaka/apple-touch-icon.png",
55
+ "socialPreview": "https://krizaka-assets.b-cdn.net/brand/krizaka/social-preview-1280x640.png",
56
+ "manifest": "https://krizaka-assets.b-cdn.net/brand/manifest.json"
57
+ },
58
+ "people": {
59
+ "defaults": [
60
+ {
61
+ "id": "person-1",
62
+ "kind": "person",
63
+ "svg": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-1.svg",
64
+ "webp256": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-1-256.webp",
65
+ "webp512": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-1-512.webp",
66
+ "alt": {
67
+ "fr": "Photo de profil par défaut : silhouette, teinte 1",
68
+ "en": "Default profile picture: silhouette, tone 1"
69
+ }
70
+ },
71
+ {
72
+ "id": "person-2",
73
+ "kind": "person",
74
+ "svg": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-2.svg",
75
+ "webp256": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-2-256.webp",
76
+ "webp512": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-2-512.webp",
77
+ "alt": {
78
+ "fr": "Photo de profil par défaut : silhouette, teinte 2",
79
+ "en": "Default profile picture: silhouette, tone 2"
80
+ }
81
+ },
82
+ {
83
+ "id": "person-3",
84
+ "kind": "person",
85
+ "svg": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-3.svg",
86
+ "webp256": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-3-256.webp",
87
+ "webp512": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-3-512.webp",
88
+ "alt": {
89
+ "fr": "Photo de profil par défaut : silhouette, teinte 3",
90
+ "en": "Default profile picture: silhouette, tone 3"
91
+ }
92
+ },
93
+ {
94
+ "id": "person-4",
95
+ "kind": "person",
96
+ "svg": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-4.svg",
97
+ "webp256": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-4-256.webp",
98
+ "webp512": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-4-512.webp",
99
+ "alt": {
100
+ "fr": "Photo de profil par défaut : silhouette, teinte 4",
101
+ "en": "Default profile picture: silhouette, tone 4"
102
+ }
103
+ },
104
+ {
105
+ "id": "person-5",
106
+ "kind": "person",
107
+ "svg": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-5.svg",
108
+ "webp256": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-5-256.webp",
109
+ "webp512": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-5-512.webp",
110
+ "alt": {
111
+ "fr": "Photo de profil par défaut : silhouette, teinte 5",
112
+ "en": "Default profile picture: silhouette, tone 5"
113
+ }
114
+ },
115
+ {
116
+ "id": "person-6",
117
+ "kind": "person",
118
+ "svg": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-6.svg",
119
+ "webp256": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-6-256.webp",
120
+ "webp512": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/person-6-512.webp",
121
+ "alt": {
122
+ "fr": "Photo de profil par défaut : silhouette, teinte 6",
123
+ "en": "Default profile picture: silhouette, tone 6"
124
+ }
125
+ },
126
+ {
127
+ "id": "plain-1",
128
+ "kind": "plain",
129
+ "svg": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-1.svg",
130
+ "webp256": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-1-256.webp",
131
+ "webp512": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-1-512.webp",
132
+ "alt": {
133
+ "fr": "Photo de profil par défaut : disque uni, teinte 1",
134
+ "en": "Default profile picture: plain disc, tone 1"
135
+ }
136
+ },
137
+ {
138
+ "id": "plain-2",
139
+ "kind": "plain",
140
+ "svg": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-2.svg",
141
+ "webp256": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-2-256.webp",
142
+ "webp512": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-2-512.webp",
143
+ "alt": {
144
+ "fr": "Photo de profil par défaut : disque uni, teinte 2",
145
+ "en": "Default profile picture: plain disc, tone 2"
146
+ }
147
+ },
148
+ {
149
+ "id": "plain-3",
150
+ "kind": "plain",
151
+ "svg": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-3.svg",
152
+ "webp256": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-3-256.webp",
153
+ "webp512": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-3-512.webp",
154
+ "alt": {
155
+ "fr": "Photo de profil par défaut : disque uni, teinte 3",
156
+ "en": "Default profile picture: plain disc, tone 3"
157
+ }
158
+ },
159
+ {
160
+ "id": "plain-4",
161
+ "kind": "plain",
162
+ "svg": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-4.svg",
163
+ "webp256": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-4-256.webp",
164
+ "webp512": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-4-512.webp",
165
+ "alt": {
166
+ "fr": "Photo de profil par défaut : disque uni, teinte 4",
167
+ "en": "Default profile picture: plain disc, tone 4"
168
+ }
169
+ },
170
+ {
171
+ "id": "plain-5",
172
+ "kind": "plain",
173
+ "svg": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-5.svg",
174
+ "webp256": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-5-256.webp",
175
+ "webp512": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-5-512.webp",
176
+ "alt": {
177
+ "fr": "Photo de profil par défaut : disque uni, teinte 5",
178
+ "en": "Default profile picture: plain disc, tone 5"
179
+ }
180
+ },
181
+ {
182
+ "id": "plain-6",
183
+ "kind": "plain",
184
+ "svg": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-6.svg",
185
+ "webp256": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-6-256.webp",
186
+ "webp512": "https://krizaka-assets.b-cdn.net/people/defaults/v1/krizaka/plain-6-512.webp",
187
+ "alt": {
188
+ "fr": "Photo de profil par défaut : disque uni, teinte 6",
189
+ "en": "Default profile picture: plain disc, tone 6"
190
+ }
191
+ }
192
+ ],
193
+ "banners": []
194
+ },
195
+ "products": [
196
+ {
197
+ "id": "orazaka",
198
+ "name": "Orazaka",
199
+ "status": "devPreview",
200
+ "url": "https://dev.orazaka.com",
201
+ "repo": "https://github.com/krizaka/orazaka"
202
+ },
203
+ {
204
+ "id": "yomizaka",
205
+ "name": "Yomizaka",
206
+ "status": "development",
207
+ "url": "https://dev.yomizaka.com",
208
+ "repo": "https://github.com/krizaka/yomizaka"
209
+ },
210
+ {
211
+ "id": "akinaza",
212
+ "name": "Akinaza",
213
+ "status": "development",
214
+ "url": "https://dev.akinaza.com",
215
+ "repo": "https://github.com/krizaka/akinaza"
216
+ }
217
+ ],
218
+ "sites": [
219
+ {
220
+ "id": "www",
221
+ "name": "krizaka.com",
222
+ "url": "https://www.krizaka.com"
223
+ },
224
+ {
225
+ "id": "ui",
226
+ "name": "Krizaka UI",
227
+ "url": "https://ui.krizaka.com"
228
+ },
229
+ {
230
+ "id": "java",
231
+ "name": "Krizaka Java",
232
+ "url": "https://java.krizaka.com"
233
+ },
234
+ {
235
+ "id": "ts",
236
+ "name": "Krizaka TS",
237
+ "url": "https://ts.krizaka.com"
238
+ },
239
+ {
240
+ "id": "motion",
241
+ "name": "Krizaka Motion",
242
+ "url": "https://motion.krizaka.com"
243
+ },
244
+ {
245
+ "id": "blog",
246
+ "name": "Blog",
247
+ "url": "https://blog.krizaka.com"
248
+ }
249
+ ],
250
+ "contact": {
251
+ "page": {
252
+ "fr": "https://www.krizaka.com/fr/contact",
253
+ "en": "https://www.krizaka.com/en/contact"
254
+ },
255
+ "email": null
256
+ },
257
+ "footer": {
258
+ "line": {
259
+ "fr": "Une entreprise de Technologies Krizaka · Fait à Montréal",
260
+ "en": "A Technologies Krizaka company · Made in Montréal"
261
+ },
262
+ "legal": [
263
+ {
264
+ "id": "privacy",
265
+ "label": {
266
+ "fr": "Confidentialité",
267
+ "en": "Privacy"
268
+ },
269
+ "url": {
270
+ "fr": "https://www.krizaka.com/fr/privacy",
271
+ "en": "https://www.krizaka.com/en/privacy"
272
+ }
273
+ },
274
+ {
275
+ "id": "terms",
276
+ "label": {
277
+ "fr": "Conditions",
278
+ "en": "Terms"
279
+ },
280
+ "url": {
281
+ "fr": "https://www.krizaka.com/fr/terms",
282
+ "en": "https://www.krizaka.com/en/terms"
283
+ }
284
+ }
285
+ ]
286
+ }
287
+ }