@nakafa/aksara-contracts 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +185 -0
- package/README.md +73 -0
- package/dist/artifact/integrity.d.ts +29 -0
- package/dist/artifact/integrity.js +54 -0
- package/dist/artifact/limits.d.ts +26 -0
- package/dist/artifact/limits.js +46 -0
- package/dist/artifact/source.d.ts +21 -0
- package/dist/artifact/source.js +24 -0
- package/dist/artifact/spec.d.ts +148 -0
- package/dist/artifact/spec.js +92 -0
- package/dist/artifact/verify.d.ts +26 -0
- package/dist/artifact/verify.js +18 -0
- package/dist/cache/content.d.ts +52 -0
- package/dist/cache/content.js +80 -0
- package/dist/content.d.ts +168 -0
- package/dist/content.js +107 -0
- package/dist/country.d.ts +4 -0
- package/dist/country.js +8 -0
- package/dist/date.d.ts +24 -0
- package/dist/date.js +44 -0
- package/dist/decode.d.ts +4 -0
- package/dist/decode.js +8 -0
- package/dist/delivery.d.ts +4 -0
- package/dist/delivery.js +7 -0
- package/dist/errors.d.ts +10 -0
- package/dist/errors.js +8 -0
- package/dist/graph/family.d.ts +45 -0
- package/dist/graph/family.js +85 -0
- package/dist/graph/identity.d.ts +19 -0
- package/dist/graph/identity.js +39 -0
- package/dist/graph/spec.d.ts +20 -0
- package/dist/graph/spec.js +26 -0
- package/dist/hash/text.d.ts +10 -0
- package/dist/hash/text.js +20 -0
- package/dist/ids.d.ts +27 -0
- package/dist/ids.js +63 -0
- package/dist/limits.d.ts +10 -0
- package/dist/limits.js +10 -0
- package/dist/locale.d.ts +37 -0
- package/dist/locale.js +53 -0
- package/dist/material/domain.d.ts +4 -0
- package/dist/material/domain.js +8 -0
- package/dist/preview/artifact.d.ts +198 -0
- package/dist/preview/artifact.js +20 -0
- package/dist/preview/auth.d.ts +71 -0
- package/dist/preview/auth.js +49 -0
- package/dist/preview/document.d.ts +692 -0
- package/dist/preview/document.js +90 -0
- package/dist/preview/spec.d.ts +2517 -0
- package/dist/preview/spec.js +142 -0
- package/dist/preview/target.d.ts +172 -0
- package/dist/preview/target.js +70 -0
- package/dist/program/curriculum.d.ts +69 -0
- package/dist/program/curriculum.js +181 -0
- package/dist/program/snapshot/digest.d.ts +26 -0
- package/dist/program/snapshot/digest.js +220 -0
- package/dist/program/snapshot/hash.d.ts +31 -0
- package/dist/program/snapshot/hash.js +40 -0
- package/dist/program/snapshot/row-hash.d.ts +155 -0
- package/dist/program/snapshot/row-hash.js +34 -0
- package/dist/program/snapshot/row.d.ts +139 -0
- package/dist/program/snapshot/row.js +28 -0
- package/dist/program/snapshot/spec.d.ts +36 -0
- package/dist/program/snapshot/spec.js +39 -0
- package/dist/program/spec.d.ts +85 -0
- package/dist/program/spec.js +197 -0
- package/dist/projection/article.d.ts +145 -0
- package/dist/projection/article.js +150 -0
- package/dist/projection/digest.d.ts +261 -0
- package/dist/projection/digest.js +59 -0
- package/dist/projection/hash.d.ts +3 -0
- package/dist/projection/hash.js +10 -0
- package/dist/projection/material.d.ts +109 -0
- package/dist/projection/material.js +160 -0
- package/dist/projection/page.d.ts +112 -0
- package/dist/projection/page.js +106 -0
- package/dist/projection/question.d.ts +520 -0
- package/dist/projection/question.js +109 -0
- package/dist/projection/spec.d.ts +503 -0
- package/dist/projection/spec.js +56 -0
- package/dist/projection/verify.d.ts +281 -0
- package/dist/projection/verify.js +86 -0
- package/dist/question/identity.d.ts +175 -0
- package/dist/question/identity.js +205 -0
- package/dist/question/item.d.ts +453 -0
- package/dist/question/item.js +146 -0
- package/dist/question/response.d.ts +175 -0
- package/dist/question/response.js +150 -0
- package/dist/quran/attribution.d.ts +48 -0
- package/dist/quran/attribution.js +44 -0
- package/dist/quran/identity.d.ts +105 -0
- package/dist/quran/identity.js +100 -0
- package/dist/quran/notes.d.ts +56 -0
- package/dist/quran/notes.js +142 -0
- package/dist/quran/provenance.d.ts +257 -0
- package/dist/quran/provenance.js +144 -0
- package/dist/quran/snapshot/digest.d.ts +33 -0
- package/dist/quran/snapshot/digest.js +232 -0
- package/dist/quran/snapshot/hash.d.ts +51 -0
- package/dist/quran/snapshot/hash.js +50 -0
- package/dist/quran/snapshot/row/hash.d.ts +748 -0
- package/dist/quran/snapshot/row/hash.js +115 -0
- package/dist/quran/snapshot/row.d.ts +354 -0
- package/dist/quran/snapshot/row.js +91 -0
- package/dist/quran/snapshot/spec.d.ts +50 -0
- package/dist/quran/snapshot/spec.js +66 -0
- package/dist/quran/source.d.ts +206 -0
- package/dist/quran/source.js +153 -0
- package/dist/quran/spec.d.ts +47 -0
- package/dist/quran/spec.js +41 -0
- package/dist/quran/text.d.ts +7 -0
- package/dist/quran/text.js +11 -0
- package/dist/release/canonical.d.ts +23 -0
- package/dist/release/canonical.js +29 -0
- package/dist/release/current/evidence.d.ts +424 -0
- package/dist/release/current/evidence.js +41 -0
- package/dist/release/current/runtime.d.ts +4 -0
- package/dist/release/current/runtime.js +15 -0
- package/dist/release/current/state.d.ts +567 -0
- package/dist/release/current/state.js +91 -0
- package/dist/release/digest.d.ts +54 -0
- package/dist/release/digest.js +71 -0
- package/dist/release/hash.d.ts +72 -0
- package/dist/release/hash.js +14 -0
- package/dist/release/head.d.ts +206 -0
- package/dist/release/head.js +131 -0
- package/dist/release/items.d.ts +98 -0
- package/dist/release/items.js +114 -0
- package/dist/release/lifecycle.d.ts +297 -0
- package/dist/release/lifecycle.js +97 -0
- package/dist/release/origin.d.ts +30 -0
- package/dist/release/origin.js +24 -0
- package/dist/release/policy.d.ts +45 -0
- package/dist/release/policy.js +124 -0
- package/dist/release/result/digest.d.ts +127 -0
- package/dist/release/result/digest.js +140 -0
- package/dist/release/result/spec.d.ts +4 -0
- package/dist/release/result/spec.js +5 -0
- package/dist/release/rollback/digest.d.ts +126 -0
- package/dist/release/rollback/digest.js +92 -0
- package/dist/release/rollback/spec.d.ts +1729 -0
- package/dist/release/rollback/spec.js +156 -0
- package/dist/release/route/digest.d.ts +45 -0
- package/dist/release/route/digest.js +59 -0
- package/dist/release/route/page.d.ts +56 -0
- package/dist/release/route/page.js +46 -0
- package/dist/release/route/spec.d.ts +49 -0
- package/dist/release/route/spec.js +40 -0
- package/dist/release/route/verify.d.ts +66 -0
- package/dist/release/route/verify.js +67 -0
- package/dist/release/signing.d.ts +6 -0
- package/dist/release/signing.js +38 -0
- package/dist/release/snapshot/data.d.ts +475 -0
- package/dist/release/snapshot/data.js +74 -0
- package/dist/release/snapshot/evidence-requirement.d.ts +22 -0
- package/dist/release/snapshot/evidence-requirement.js +21 -0
- package/dist/release/snapshot/evidence.d.ts +58 -0
- package/dist/release/snapshot/evidence.js +14 -0
- package/dist/release/snapshot/program-evidence.d.ts +17 -0
- package/dist/release/snapshot/program-evidence.js +39 -0
- package/dist/release/snapshot/quran-evidence.d.ts +27 -0
- package/dist/release/snapshot/quran-evidence.js +43 -0
- package/dist/release/snapshot/scope.d.ts +60 -0
- package/dist/release/snapshot/scope.js +102 -0
- package/dist/release/snapshot/spec.d.ts +193 -0
- package/dist/release/snapshot/spec.js +139 -0
- package/dist/release/snapshot/tryout-evidence.d.ts +22 -0
- package/dist/release/snapshot/tryout-evidence.js +86 -0
- package/dist/release/snapshot/verify.d.ts +710 -0
- package/dist/release/snapshot/verify.js +147 -0
- package/dist/release/spec.d.ts +491 -0
- package/dist/release/spec.js +200 -0
- package/dist/release/verify.d.ts +98 -0
- package/dist/release/verify.js +70 -0
- package/dist/renderer/compatibility.d.ts +35 -0
- package/dist/renderer/compatibility.js +48 -0
- package/dist/renderer/component.d.ts +99 -0
- package/dist/renderer/component.js +102 -0
- package/dist/renderer/contract.d.ts +144 -0
- package/dist/renderer/contract.js +122 -0
- package/dist/renderer/domain.d.ts +6 -0
- package/dist/renderer/domain.js +18 -0
- package/dist/renderer/manifest.d.ts +86 -0
- package/dist/renderer/manifest.js +49 -0
- package/dist/renderer/selection.d.ts +39 -0
- package/dist/renderer/selection.js +87 -0
- package/dist/runtime/error.d.ts +8 -0
- package/dist/runtime/error.js +20 -0
- package/dist/runtime/protected/limits.d.ts +10 -0
- package/dist/runtime/protected/limits.js +15 -0
- package/dist/runtime/protected/spec.d.ts +328 -0
- package/dist/runtime/protected/spec.js +79 -0
- package/dist/runtime/protected/verify.d.ts +97 -0
- package/dist/runtime/protected/verify.js +72 -0
- package/dist/runtime/result.d.ts +12 -0
- package/dist/runtime/result.js +17 -0
- package/dist/runtime/spec.d.ts +705 -0
- package/dist/runtime/spec.js +61 -0
- package/dist/runtime/verify.d.ts +479 -0
- package/dist/runtime/verify.js +123 -0
- package/dist/signature/spec.d.ts +53 -0
- package/dist/signature/spec.js +29 -0
- package/dist/signature/trusted.d.ts +19 -0
- package/dist/signature/trusted.js +32 -0
- package/dist/signature/verify.d.ts +10 -0
- package/dist/signature/verify.js +82 -0
- package/dist/text/order.d.ts +2 -0
- package/dist/text/order.js +10 -0
- package/dist/text/syntax.d.ts +6 -0
- package/dist/text/syntax.js +15 -0
- package/dist/transport/batch.d.ts +971 -0
- package/dist/transport/batch.js +101 -0
- package/dist/transport/failure.d.ts +168 -0
- package/dist/transport/failure.js +194 -0
- package/dist/transport/group.d.ts +2946 -0
- package/dist/transport/group.js +47 -0
- package/dist/transport/limits.d.ts +30 -0
- package/dist/transport/limits.js +30 -0
- package/dist/transport/request.d.ts +9333 -0
- package/dist/transport/request.js +121 -0
- package/dist/transport/response.d.ts +6247 -0
- package/dist/transport/response.js +181 -0
- package/dist/transport/runtime.d.ts +77 -0
- package/dist/transport/runtime.js +33 -0
- package/dist/transport/snapshot.d.ts +978 -0
- package/dist/transport/snapshot.js +70 -0
- package/dist/tryout/canonical.d.ts +2 -0
- package/dist/tryout/canonical.js +11 -0
- package/dist/tryout/catalog-hash.d.ts +134 -0
- package/dist/tryout/catalog-hash.js +203 -0
- package/dist/tryout/catalog.d.ts +376 -0
- package/dist/tryout/catalog.js +147 -0
- package/dist/tryout/content-hash.d.ts +89 -0
- package/dist/tryout/content-hash.js +72 -0
- package/dist/tryout/identity.d.ts +12 -0
- package/dist/tryout/identity.js +46 -0
- package/dist/tryout/key.d.ts +4 -0
- package/dist/tryout/key.js +8 -0
- package/dist/tryout/language.d.ts +24 -0
- package/dist/tryout/language.js +32 -0
- package/dist/tryout/locale-closure.d.ts +20 -0
- package/dist/tryout/locale-closure.js +164 -0
- package/dist/tryout/placement-closure.d.ts +5 -0
- package/dist/tryout/placement-closure.js +30 -0
- package/dist/tryout/placement-hash.d.ts +11 -0
- package/dist/tryout/placement-hash.js +55 -0
- package/dist/tryout/placement.d.ts +280 -0
- package/dist/tryout/placement.js +82 -0
- package/dist/tryout/row-hash.d.ts +28 -0
- package/dist/tryout/row-hash.js +50 -0
- package/dist/tryout/runtime/canonical.d.ts +8 -0
- package/dist/tryout/runtime/canonical.js +33 -0
- package/dist/tryout/runtime/hash.d.ts +32 -0
- package/dist/tryout/runtime/hash.js +11 -0
- package/dist/tryout/runtime/source.d.ts +42 -0
- package/dist/tryout/runtime/source.js +47 -0
- package/dist/tryout/runtime/spec.d.ts +58 -0
- package/dist/tryout/runtime/spec.js +21 -0
- package/dist/tryout/runtime/verify.d.ts +61 -0
- package/dist/tryout/runtime/verify.js +69 -0
- package/dist/tryout/snapshot/canonical.d.ts +7 -0
- package/dist/tryout/snapshot/canonical.js +17 -0
- package/dist/tryout/snapshot/hash.d.ts +8 -0
- package/dist/tryout/snapshot/hash.js +19 -0
- package/dist/tryout/snapshot/spec.d.ts +46 -0
- package/dist/tryout/snapshot/spec.js +30 -0
- package/dist/tryout/spec.d.ts +13 -0
- package/dist/tryout/spec.js +15 -0
- package/package.json +506 -0
|
@@ -0,0 +1,503 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
/** Complete projection vocabulary backed by implemented content families. */
|
|
3
|
+
export declare const ContentProjectionSchema: Schema.Union<readonly [Schema.Struct<{
|
|
4
|
+
readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
|
|
5
|
+
readonly articleRouteSlug: Schema.brand<Schema.String, "@NakafaAI/AksaraArticleRouteSlug">;
|
|
6
|
+
readonly articleSlug: Schema.brand<Schema.String, "@NakafaAI/AksaraArticleSlug">;
|
|
7
|
+
readonly artifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
|
|
8
|
+
readonly category: Schema.brand<Schema.String, "@NakafaAI/AksaraArticleCategory">;
|
|
9
|
+
readonly categoryRouteSlug: Schema.brand<Schema.String, "@NakafaAI/AksaraArticleRouteSlug">;
|
|
10
|
+
readonly contentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
11
|
+
readonly graph: Schema.Struct<{
|
|
12
|
+
readonly alignmentId: Schema.String;
|
|
13
|
+
readonly assetId: Schema.String;
|
|
14
|
+
readonly conceptId: Schema.String;
|
|
15
|
+
readonly learningObjectId: Schema.String;
|
|
16
|
+
readonly lensId: Schema.String;
|
|
17
|
+
}>;
|
|
18
|
+
readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
|
|
19
|
+
readonly categoryTitle: Schema.Trimmed;
|
|
20
|
+
readonly kind: Schema.Literal<"article">;
|
|
21
|
+
readonly metadata: Schema.Struct<{
|
|
22
|
+
readonly dateModified: Schema.optionalKey<Schema.String>;
|
|
23
|
+
readonly datePublished: Schema.String;
|
|
24
|
+
readonly authors: Schema.$Array<Schema.Struct<{
|
|
25
|
+
readonly name: Schema.String;
|
|
26
|
+
}>>;
|
|
27
|
+
readonly description: Schema.optional<Schema.String>;
|
|
28
|
+
readonly title: Schema.String;
|
|
29
|
+
}>;
|
|
30
|
+
readonly official: Schema.Boolean;
|
|
31
|
+
readonly parentPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
|
|
32
|
+
readonly references: Schema.$Array<Schema.Struct<{
|
|
33
|
+
readonly authors: Schema.String;
|
|
34
|
+
readonly citation: Schema.optional<Schema.String>;
|
|
35
|
+
readonly details: Schema.optional<Schema.String>;
|
|
36
|
+
readonly publication: Schema.optional<Schema.String>;
|
|
37
|
+
readonly title: Schema.String;
|
|
38
|
+
readonly url: Schema.optional<Schema.String>;
|
|
39
|
+
readonly year: Schema.Finite;
|
|
40
|
+
}>>;
|
|
41
|
+
readonly sitemap: Schema.Literal<true>;
|
|
42
|
+
}>, Schema.Struct<{
|
|
43
|
+
readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
|
|
44
|
+
readonly artifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
|
|
45
|
+
readonly contentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
46
|
+
readonly graph: Schema.Struct<{
|
|
47
|
+
readonly alignmentId: Schema.String;
|
|
48
|
+
readonly assetId: Schema.String;
|
|
49
|
+
readonly conceptId: Schema.String;
|
|
50
|
+
readonly learningObjectId: Schema.String;
|
|
51
|
+
readonly lensId: Schema.String;
|
|
52
|
+
}>;
|
|
53
|
+
readonly materialKey: Schema.brand<Schema.String, "@NakafaAI/AksaraMaterialKey">;
|
|
54
|
+
readonly order: Schema.Finite;
|
|
55
|
+
readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
|
|
56
|
+
readonly sectionKey: Schema.brand<Schema.String, "@NakafaAI/AksaraMaterialSection">;
|
|
57
|
+
readonly kind: Schema.Literal<"subject-lesson">;
|
|
58
|
+
readonly metadata: Schema.Struct<{
|
|
59
|
+
readonly dateModified: Schema.optionalKey<Schema.String>;
|
|
60
|
+
readonly datePublished: Schema.String;
|
|
61
|
+
readonly authors: Schema.$Array<Schema.Struct<{
|
|
62
|
+
readonly name: Schema.String;
|
|
63
|
+
}>>;
|
|
64
|
+
readonly description: Schema.optional<Schema.String>;
|
|
65
|
+
readonly subject: Schema.optional<Schema.String>;
|
|
66
|
+
readonly title: Schema.String;
|
|
67
|
+
}>;
|
|
68
|
+
readonly parentPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
|
|
69
|
+
readonly sitemap: Schema.Literal<true>;
|
|
70
|
+
readonly topicTitle: Schema.String;
|
|
71
|
+
}>, Schema.Union<readonly [Schema.Struct<{
|
|
72
|
+
readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
|
|
73
|
+
readonly artifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
|
|
74
|
+
readonly contentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
75
|
+
readonly pageKey: Schema.brand<Schema.String, "@NakafaAI/AksaraPageKey">;
|
|
76
|
+
readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
|
|
77
|
+
readonly kind: Schema.Literal<"public-page">;
|
|
78
|
+
readonly metadata: Schema.Struct<{
|
|
79
|
+
readonly dateModified: Schema.optionalKey<Schema.String>;
|
|
80
|
+
readonly datePublished: Schema.String;
|
|
81
|
+
readonly description: Schema.Trimmed;
|
|
82
|
+
readonly title: Schema.Trimmed;
|
|
83
|
+
}>;
|
|
84
|
+
readonly sitemap: Schema.Literal<true>;
|
|
85
|
+
readonly sourcePath: Schema.brand<Schema.String, "@NakafaAI/AksaraCorpusSourcePath">;
|
|
86
|
+
}>, Schema.Struct<{
|
|
87
|
+
readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
|
|
88
|
+
readonly artifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
|
|
89
|
+
readonly contentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
90
|
+
readonly pageKey: Schema.brand<Schema.String, "@NakafaAI/AksaraPageKey">;
|
|
91
|
+
readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
|
|
92
|
+
readonly kind: Schema.Literal<"public-page">;
|
|
93
|
+
readonly metadata: Schema.Struct<{
|
|
94
|
+
readonly description: Schema.Trimmed;
|
|
95
|
+
readonly lastModified: Schema.String;
|
|
96
|
+
readonly title: Schema.Trimmed;
|
|
97
|
+
}>;
|
|
98
|
+
readonly sitemap: Schema.Literal<true>;
|
|
99
|
+
readonly sourcePath: Schema.brand<Schema.String, "@NakafaAI/AksaraCorpusSourcePath">;
|
|
100
|
+
}>]>, Schema.Union<readonly [Schema.Struct<{
|
|
101
|
+
readonly artifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
|
|
102
|
+
readonly contentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
103
|
+
readonly peerContentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
104
|
+
readonly questionKey: Schema.brand<Schema.String, "@NakafaAI/AksaraQuestionKey">;
|
|
105
|
+
readonly questionNumber: Schema.Finite;
|
|
106
|
+
readonly setKey: Schema.brand<Schema.String, "@NakafaAI/AksaraQuestionSetKey">;
|
|
107
|
+
readonly bodyKind: Schema.Literal<"question">;
|
|
108
|
+
readonly blueprint: Schema.optionalKey<Schema.Struct<{
|
|
109
|
+
readonly cognitiveLevel: Schema.String;
|
|
110
|
+
readonly contentDomain: Schema.String;
|
|
111
|
+
readonly topic: Schema.String;
|
|
112
|
+
}>>;
|
|
113
|
+
readonly kind: Schema.Literal<"question-body">;
|
|
114
|
+
readonly metadata: Schema.Struct<{
|
|
115
|
+
readonly dateModified: Schema.optionalKey<Schema.String>;
|
|
116
|
+
readonly datePublished: Schema.String;
|
|
117
|
+
readonly authors: Schema.$Array<Schema.Struct<{
|
|
118
|
+
readonly name: Schema.String;
|
|
119
|
+
}>>;
|
|
120
|
+
readonly title: Schema.String;
|
|
121
|
+
}>;
|
|
122
|
+
readonly stimulusKey: Schema.optionalKey<Schema.String>;
|
|
123
|
+
readonly response: Schema.Union<readonly [Schema.Struct<{
|
|
124
|
+
readonly categories: Schema.$Array<Schema.Struct<{
|
|
125
|
+
readonly categoryKey: Schema.String;
|
|
126
|
+
readonly label: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
|
|
127
|
+
readonly display: Schema.Literals<readonly ["block", "inline"]>;
|
|
128
|
+
readonly kind: Schema.Literal<"math">;
|
|
129
|
+
readonly math: Schema.String;
|
|
130
|
+
}>, Schema.Struct<{
|
|
131
|
+
readonly kind: Schema.Literal<"text">;
|
|
132
|
+
readonly text: Schema.String;
|
|
133
|
+
}>]>>;
|
|
134
|
+
readonly order: Schema.Int;
|
|
135
|
+
}>>;
|
|
136
|
+
readonly kind: Schema.Literal<"category">;
|
|
137
|
+
readonly statements: Schema.$Array<Schema.Struct<{
|
|
138
|
+
readonly correctCategoryKey: Schema.String;
|
|
139
|
+
readonly label: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
|
|
140
|
+
readonly display: Schema.Literals<readonly ["block", "inline"]>;
|
|
141
|
+
readonly kind: Schema.Literal<"math">;
|
|
142
|
+
readonly math: Schema.String;
|
|
143
|
+
}>, Schema.Struct<{
|
|
144
|
+
readonly kind: Schema.Literal<"text">;
|
|
145
|
+
readonly text: Schema.String;
|
|
146
|
+
}>]>>;
|
|
147
|
+
readonly order: Schema.Int;
|
|
148
|
+
readonly statementKey: Schema.String;
|
|
149
|
+
}>>;
|
|
150
|
+
}>, Schema.Struct<{
|
|
151
|
+
readonly kind: Schema.Literal<"multiple-choice">;
|
|
152
|
+
readonly options: Schema.$Array<Schema.Struct<{
|
|
153
|
+
readonly isCorrect: Schema.Boolean;
|
|
154
|
+
readonly label: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
|
|
155
|
+
readonly display: Schema.Literals<readonly ["block", "inline"]>;
|
|
156
|
+
readonly kind: Schema.Literal<"math">;
|
|
157
|
+
readonly math: Schema.String;
|
|
158
|
+
}>, Schema.Struct<{
|
|
159
|
+
readonly kind: Schema.Literal<"text">;
|
|
160
|
+
readonly text: Schema.String;
|
|
161
|
+
}>]>>;
|
|
162
|
+
readonly optionKey: Schema.String;
|
|
163
|
+
readonly order: Schema.Int;
|
|
164
|
+
}>>;
|
|
165
|
+
}>, Schema.Struct<{
|
|
166
|
+
readonly kind: Schema.Literal<"single-choice">;
|
|
167
|
+
readonly options: Schema.$Array<Schema.Struct<{
|
|
168
|
+
readonly isCorrect: Schema.Boolean;
|
|
169
|
+
readonly label: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
|
|
170
|
+
readonly display: Schema.Literals<readonly ["block", "inline"]>;
|
|
171
|
+
readonly kind: Schema.Literal<"math">;
|
|
172
|
+
readonly math: Schema.String;
|
|
173
|
+
}>, Schema.Struct<{
|
|
174
|
+
readonly kind: Schema.Literal<"text">;
|
|
175
|
+
readonly text: Schema.String;
|
|
176
|
+
}>]>>;
|
|
177
|
+
readonly optionKey: Schema.String;
|
|
178
|
+
readonly order: Schema.Int;
|
|
179
|
+
}>>;
|
|
180
|
+
}>]>;
|
|
181
|
+
}>, Schema.Struct<{
|
|
182
|
+
readonly artifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
|
|
183
|
+
readonly contentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
184
|
+
readonly peerContentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
185
|
+
readonly questionKey: Schema.brand<Schema.String, "@NakafaAI/AksaraQuestionKey">;
|
|
186
|
+
readonly questionNumber: Schema.Finite;
|
|
187
|
+
readonly setKey: Schema.brand<Schema.String, "@NakafaAI/AksaraQuestionSetKey">;
|
|
188
|
+
readonly bodyKind: Schema.Literal<"answer">;
|
|
189
|
+
readonly blueprint: Schema.optionalKey<Schema.Struct<{
|
|
190
|
+
readonly cognitiveLevel: Schema.String;
|
|
191
|
+
readonly contentDomain: Schema.String;
|
|
192
|
+
readonly topic: Schema.String;
|
|
193
|
+
}>>;
|
|
194
|
+
readonly kind: Schema.Literal<"question-body">;
|
|
195
|
+
readonly metadata: Schema.Struct<{
|
|
196
|
+
readonly dateModified: Schema.optionalKey<Schema.String>;
|
|
197
|
+
readonly datePublished: Schema.String;
|
|
198
|
+
readonly authors: Schema.$Array<Schema.Struct<{
|
|
199
|
+
readonly name: Schema.String;
|
|
200
|
+
}>>;
|
|
201
|
+
readonly title: Schema.String;
|
|
202
|
+
}>;
|
|
203
|
+
readonly stimulusKey: Schema.optionalKey<Schema.String>;
|
|
204
|
+
}>]>]>;
|
|
205
|
+
export type ContentProjection = typeof ContentProjectionSchema.Type;
|
|
206
|
+
/** Current projection vocabulary accepted for newly staged content. */
|
|
207
|
+
export declare const CurrentContentProjectionSchema: Schema.Union<readonly [Schema.Struct<{
|
|
208
|
+
readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
|
|
209
|
+
readonly articleRouteSlug: Schema.brand<Schema.String, "@NakafaAI/AksaraArticleRouteSlug">;
|
|
210
|
+
readonly articleSlug: Schema.brand<Schema.String, "@NakafaAI/AksaraArticleSlug">;
|
|
211
|
+
readonly artifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
|
|
212
|
+
readonly category: Schema.brand<Schema.String, "@NakafaAI/AksaraArticleCategory">;
|
|
213
|
+
readonly categoryRouteSlug: Schema.brand<Schema.String, "@NakafaAI/AksaraArticleRouteSlug">;
|
|
214
|
+
readonly contentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
215
|
+
readonly graph: Schema.Struct<{
|
|
216
|
+
readonly alignmentId: Schema.String;
|
|
217
|
+
readonly assetId: Schema.String;
|
|
218
|
+
readonly conceptId: Schema.String;
|
|
219
|
+
readonly learningObjectId: Schema.String;
|
|
220
|
+
readonly lensId: Schema.String;
|
|
221
|
+
}>;
|
|
222
|
+
readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
|
|
223
|
+
readonly categoryTitle: Schema.Trimmed;
|
|
224
|
+
readonly kind: Schema.Literal<"article">;
|
|
225
|
+
readonly metadata: Schema.Struct<{
|
|
226
|
+
readonly dateModified: Schema.optionalKey<Schema.String>;
|
|
227
|
+
readonly datePublished: Schema.String;
|
|
228
|
+
readonly authors: Schema.$Array<Schema.Struct<{
|
|
229
|
+
readonly name: Schema.String;
|
|
230
|
+
}>>;
|
|
231
|
+
readonly description: Schema.optional<Schema.String>;
|
|
232
|
+
readonly title: Schema.String;
|
|
233
|
+
}>;
|
|
234
|
+
readonly official: Schema.Boolean;
|
|
235
|
+
readonly parentPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
|
|
236
|
+
readonly references: Schema.$Array<Schema.Struct<{
|
|
237
|
+
readonly authors: Schema.String;
|
|
238
|
+
readonly citation: Schema.optional<Schema.String>;
|
|
239
|
+
readonly details: Schema.optional<Schema.String>;
|
|
240
|
+
readonly publication: Schema.optional<Schema.String>;
|
|
241
|
+
readonly title: Schema.String;
|
|
242
|
+
readonly url: Schema.optional<Schema.String>;
|
|
243
|
+
readonly year: Schema.Finite;
|
|
244
|
+
}>>;
|
|
245
|
+
readonly sitemap: Schema.Literal<true>;
|
|
246
|
+
}>, Schema.Struct<{
|
|
247
|
+
readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
|
|
248
|
+
readonly artifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
|
|
249
|
+
readonly contentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
250
|
+
readonly graph: Schema.Struct<{
|
|
251
|
+
readonly alignmentId: Schema.String;
|
|
252
|
+
readonly assetId: Schema.String;
|
|
253
|
+
readonly conceptId: Schema.String;
|
|
254
|
+
readonly learningObjectId: Schema.String;
|
|
255
|
+
readonly lensId: Schema.String;
|
|
256
|
+
}>;
|
|
257
|
+
readonly materialKey: Schema.brand<Schema.String, "@NakafaAI/AksaraMaterialKey">;
|
|
258
|
+
readonly order: Schema.Finite;
|
|
259
|
+
readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
|
|
260
|
+
readonly sectionKey: Schema.brand<Schema.String, "@NakafaAI/AksaraMaterialSection">;
|
|
261
|
+
readonly kind: Schema.Literal<"subject-lesson">;
|
|
262
|
+
readonly metadata: Schema.Struct<{
|
|
263
|
+
readonly dateModified: Schema.optionalKey<Schema.String>;
|
|
264
|
+
readonly datePublished: Schema.String;
|
|
265
|
+
readonly authors: Schema.$Array<Schema.Struct<{
|
|
266
|
+
readonly name: Schema.String;
|
|
267
|
+
}>>;
|
|
268
|
+
readonly description: Schema.optional<Schema.String>;
|
|
269
|
+
readonly subject: Schema.optional<Schema.String>;
|
|
270
|
+
readonly title: Schema.String;
|
|
271
|
+
}>;
|
|
272
|
+
readonly parentPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
|
|
273
|
+
readonly sitemap: Schema.Literal<true>;
|
|
274
|
+
readonly topicTitle: Schema.String;
|
|
275
|
+
}>, Schema.Struct<{
|
|
276
|
+
readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
|
|
277
|
+
readonly artifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
|
|
278
|
+
readonly contentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
279
|
+
readonly pageKey: Schema.brand<Schema.String, "@NakafaAI/AksaraPageKey">;
|
|
280
|
+
readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
|
|
281
|
+
readonly kind: Schema.Literal<"public-page">;
|
|
282
|
+
readonly metadata: Schema.Struct<{
|
|
283
|
+
readonly dateModified: Schema.optionalKey<Schema.String>;
|
|
284
|
+
readonly datePublished: Schema.String;
|
|
285
|
+
readonly description: Schema.Trimmed;
|
|
286
|
+
readonly title: Schema.Trimmed;
|
|
287
|
+
}>;
|
|
288
|
+
readonly sitemap: Schema.Literal<true>;
|
|
289
|
+
readonly sourcePath: Schema.brand<Schema.String, "@NakafaAI/AksaraCorpusSourcePath">;
|
|
290
|
+
}>, Schema.Union<readonly [Schema.Struct<{
|
|
291
|
+
readonly artifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
|
|
292
|
+
readonly contentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
293
|
+
readonly peerContentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
294
|
+
readonly questionKey: Schema.brand<Schema.String, "@NakafaAI/AksaraQuestionKey">;
|
|
295
|
+
readonly questionNumber: Schema.Finite;
|
|
296
|
+
readonly setKey: Schema.brand<Schema.String, "@NakafaAI/AksaraQuestionSetKey">;
|
|
297
|
+
readonly bodyKind: Schema.Literal<"question">;
|
|
298
|
+
readonly blueprint: Schema.optionalKey<Schema.Struct<{
|
|
299
|
+
readonly cognitiveLevel: Schema.String;
|
|
300
|
+
readonly contentDomain: Schema.String;
|
|
301
|
+
readonly topic: Schema.String;
|
|
302
|
+
}>>;
|
|
303
|
+
readonly kind: Schema.Literal<"question-body">;
|
|
304
|
+
readonly metadata: Schema.Struct<{
|
|
305
|
+
readonly dateModified: Schema.optionalKey<Schema.String>;
|
|
306
|
+
readonly datePublished: Schema.String;
|
|
307
|
+
readonly authors: Schema.$Array<Schema.Struct<{
|
|
308
|
+
readonly name: Schema.String;
|
|
309
|
+
}>>;
|
|
310
|
+
readonly title: Schema.String;
|
|
311
|
+
}>;
|
|
312
|
+
readonly stimulusKey: Schema.optionalKey<Schema.String>;
|
|
313
|
+
readonly response: Schema.Union<readonly [Schema.Struct<{
|
|
314
|
+
readonly categories: Schema.$Array<Schema.Struct<{
|
|
315
|
+
readonly categoryKey: Schema.String;
|
|
316
|
+
readonly label: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
|
|
317
|
+
readonly display: Schema.Literals<readonly ["block", "inline"]>;
|
|
318
|
+
readonly kind: Schema.Literal<"math">;
|
|
319
|
+
readonly math: Schema.String;
|
|
320
|
+
}>, Schema.Struct<{
|
|
321
|
+
readonly kind: Schema.Literal<"text">;
|
|
322
|
+
readonly text: Schema.String;
|
|
323
|
+
}>]>>;
|
|
324
|
+
readonly order: Schema.Int;
|
|
325
|
+
}>>;
|
|
326
|
+
readonly kind: Schema.Literal<"category">;
|
|
327
|
+
readonly statements: Schema.$Array<Schema.Struct<{
|
|
328
|
+
readonly correctCategoryKey: Schema.String;
|
|
329
|
+
readonly label: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
|
|
330
|
+
readonly display: Schema.Literals<readonly ["block", "inline"]>;
|
|
331
|
+
readonly kind: Schema.Literal<"math">;
|
|
332
|
+
readonly math: Schema.String;
|
|
333
|
+
}>, Schema.Struct<{
|
|
334
|
+
readonly kind: Schema.Literal<"text">;
|
|
335
|
+
readonly text: Schema.String;
|
|
336
|
+
}>]>>;
|
|
337
|
+
readonly order: Schema.Int;
|
|
338
|
+
readonly statementKey: Schema.String;
|
|
339
|
+
}>>;
|
|
340
|
+
}>, Schema.Struct<{
|
|
341
|
+
readonly kind: Schema.Literal<"multiple-choice">;
|
|
342
|
+
readonly options: Schema.$Array<Schema.Struct<{
|
|
343
|
+
readonly isCorrect: Schema.Boolean;
|
|
344
|
+
readonly label: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
|
|
345
|
+
readonly display: Schema.Literals<readonly ["block", "inline"]>;
|
|
346
|
+
readonly kind: Schema.Literal<"math">;
|
|
347
|
+
readonly math: Schema.String;
|
|
348
|
+
}>, Schema.Struct<{
|
|
349
|
+
readonly kind: Schema.Literal<"text">;
|
|
350
|
+
readonly text: Schema.String;
|
|
351
|
+
}>]>>;
|
|
352
|
+
readonly optionKey: Schema.String;
|
|
353
|
+
readonly order: Schema.Int;
|
|
354
|
+
}>>;
|
|
355
|
+
}>, Schema.Struct<{
|
|
356
|
+
readonly kind: Schema.Literal<"single-choice">;
|
|
357
|
+
readonly options: Schema.$Array<Schema.Struct<{
|
|
358
|
+
readonly isCorrect: Schema.Boolean;
|
|
359
|
+
readonly label: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
|
|
360
|
+
readonly display: Schema.Literals<readonly ["block", "inline"]>;
|
|
361
|
+
readonly kind: Schema.Literal<"math">;
|
|
362
|
+
readonly math: Schema.String;
|
|
363
|
+
}>, Schema.Struct<{
|
|
364
|
+
readonly kind: Schema.Literal<"text">;
|
|
365
|
+
readonly text: Schema.String;
|
|
366
|
+
}>]>>;
|
|
367
|
+
readonly optionKey: Schema.String;
|
|
368
|
+
readonly order: Schema.Int;
|
|
369
|
+
}>>;
|
|
370
|
+
}>]>;
|
|
371
|
+
}>, Schema.Struct<{
|
|
372
|
+
readonly artifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
|
|
373
|
+
readonly contentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
374
|
+
readonly peerContentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
375
|
+
readonly questionKey: Schema.brand<Schema.String, "@NakafaAI/AksaraQuestionKey">;
|
|
376
|
+
readonly questionNumber: Schema.Finite;
|
|
377
|
+
readonly setKey: Schema.brand<Schema.String, "@NakafaAI/AksaraQuestionSetKey">;
|
|
378
|
+
readonly bodyKind: Schema.Literal<"answer">;
|
|
379
|
+
readonly blueprint: Schema.optionalKey<Schema.Struct<{
|
|
380
|
+
readonly cognitiveLevel: Schema.String;
|
|
381
|
+
readonly contentDomain: Schema.String;
|
|
382
|
+
readonly topic: Schema.String;
|
|
383
|
+
}>>;
|
|
384
|
+
readonly kind: Schema.Literal<"question-body">;
|
|
385
|
+
readonly metadata: Schema.Struct<{
|
|
386
|
+
readonly dateModified: Schema.optionalKey<Schema.String>;
|
|
387
|
+
readonly datePublished: Schema.String;
|
|
388
|
+
readonly authors: Schema.$Array<Schema.Struct<{
|
|
389
|
+
readonly name: Schema.String;
|
|
390
|
+
}>>;
|
|
391
|
+
readonly title: Schema.String;
|
|
392
|
+
}>;
|
|
393
|
+
readonly stimulusKey: Schema.optionalKey<Schema.String>;
|
|
394
|
+
}>]>]>;
|
|
395
|
+
export type CurrentContentProjection = typeof CurrentContentProjectionSchema.Type;
|
|
396
|
+
/** Public-route projections accepted by Nakafa's path-based runtime seam. */
|
|
397
|
+
export declare const RoutedContentProjectionSchema: Schema.Union<readonly [Schema.Struct<{
|
|
398
|
+
readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
|
|
399
|
+
readonly articleRouteSlug: Schema.brand<Schema.String, "@NakafaAI/AksaraArticleRouteSlug">;
|
|
400
|
+
readonly articleSlug: Schema.brand<Schema.String, "@NakafaAI/AksaraArticleSlug">;
|
|
401
|
+
readonly artifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
|
|
402
|
+
readonly category: Schema.brand<Schema.String, "@NakafaAI/AksaraArticleCategory">;
|
|
403
|
+
readonly categoryRouteSlug: Schema.brand<Schema.String, "@NakafaAI/AksaraArticleRouteSlug">;
|
|
404
|
+
readonly contentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
405
|
+
readonly graph: Schema.Struct<{
|
|
406
|
+
readonly alignmentId: Schema.String;
|
|
407
|
+
readonly assetId: Schema.String;
|
|
408
|
+
readonly conceptId: Schema.String;
|
|
409
|
+
readonly learningObjectId: Schema.String;
|
|
410
|
+
readonly lensId: Schema.String;
|
|
411
|
+
}>;
|
|
412
|
+
readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
|
|
413
|
+
readonly categoryTitle: Schema.Trimmed;
|
|
414
|
+
readonly kind: Schema.Literal<"article">;
|
|
415
|
+
readonly metadata: Schema.Struct<{
|
|
416
|
+
readonly dateModified: Schema.optionalKey<Schema.String>;
|
|
417
|
+
readonly datePublished: Schema.String;
|
|
418
|
+
readonly authors: Schema.$Array<Schema.Struct<{
|
|
419
|
+
readonly name: Schema.String;
|
|
420
|
+
}>>;
|
|
421
|
+
readonly description: Schema.optional<Schema.String>;
|
|
422
|
+
readonly title: Schema.String;
|
|
423
|
+
}>;
|
|
424
|
+
readonly official: Schema.Boolean;
|
|
425
|
+
readonly parentPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
|
|
426
|
+
readonly references: Schema.$Array<Schema.Struct<{
|
|
427
|
+
readonly authors: Schema.String;
|
|
428
|
+
readonly citation: Schema.optional<Schema.String>;
|
|
429
|
+
readonly details: Schema.optional<Schema.String>;
|
|
430
|
+
readonly publication: Schema.optional<Schema.String>;
|
|
431
|
+
readonly title: Schema.String;
|
|
432
|
+
readonly url: Schema.optional<Schema.String>;
|
|
433
|
+
readonly year: Schema.Finite;
|
|
434
|
+
}>>;
|
|
435
|
+
readonly sitemap: Schema.Literal<true>;
|
|
436
|
+
}>, Schema.Struct<{
|
|
437
|
+
readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
|
|
438
|
+
readonly artifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
|
|
439
|
+
readonly contentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
440
|
+
readonly graph: Schema.Struct<{
|
|
441
|
+
readonly alignmentId: Schema.String;
|
|
442
|
+
readonly assetId: Schema.String;
|
|
443
|
+
readonly conceptId: Schema.String;
|
|
444
|
+
readonly learningObjectId: Schema.String;
|
|
445
|
+
readonly lensId: Schema.String;
|
|
446
|
+
}>;
|
|
447
|
+
readonly materialKey: Schema.brand<Schema.String, "@NakafaAI/AksaraMaterialKey">;
|
|
448
|
+
readonly order: Schema.Finite;
|
|
449
|
+
readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
|
|
450
|
+
readonly sectionKey: Schema.brand<Schema.String, "@NakafaAI/AksaraMaterialSection">;
|
|
451
|
+
readonly kind: Schema.Literal<"subject-lesson">;
|
|
452
|
+
readonly metadata: Schema.Struct<{
|
|
453
|
+
readonly dateModified: Schema.optionalKey<Schema.String>;
|
|
454
|
+
readonly datePublished: Schema.String;
|
|
455
|
+
readonly authors: Schema.$Array<Schema.Struct<{
|
|
456
|
+
readonly name: Schema.String;
|
|
457
|
+
}>>;
|
|
458
|
+
readonly description: Schema.optional<Schema.String>;
|
|
459
|
+
readonly subject: Schema.optional<Schema.String>;
|
|
460
|
+
readonly title: Schema.String;
|
|
461
|
+
}>;
|
|
462
|
+
readonly parentPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
|
|
463
|
+
readonly sitemap: Schema.Literal<true>;
|
|
464
|
+
readonly topicTitle: Schema.String;
|
|
465
|
+
}>, Schema.Union<readonly [Schema.Struct<{
|
|
466
|
+
readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
|
|
467
|
+
readonly artifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
|
|
468
|
+
readonly contentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
469
|
+
readonly pageKey: Schema.brand<Schema.String, "@NakafaAI/AksaraPageKey">;
|
|
470
|
+
readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
|
|
471
|
+
readonly kind: Schema.Literal<"public-page">;
|
|
472
|
+
readonly metadata: Schema.Struct<{
|
|
473
|
+
readonly dateModified: Schema.optionalKey<Schema.String>;
|
|
474
|
+
readonly datePublished: Schema.String;
|
|
475
|
+
readonly description: Schema.Trimmed;
|
|
476
|
+
readonly title: Schema.Trimmed;
|
|
477
|
+
}>;
|
|
478
|
+
readonly sitemap: Schema.Literal<true>;
|
|
479
|
+
readonly sourcePath: Schema.brand<Schema.String, "@NakafaAI/AksaraCorpusSourcePath">;
|
|
480
|
+
}>, Schema.Struct<{
|
|
481
|
+
readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
|
|
482
|
+
readonly artifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
|
|
483
|
+
readonly contentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
|
|
484
|
+
readonly pageKey: Schema.brand<Schema.String, "@NakafaAI/AksaraPageKey">;
|
|
485
|
+
readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
|
|
486
|
+
readonly kind: Schema.Literal<"public-page">;
|
|
487
|
+
readonly metadata: Schema.Struct<{
|
|
488
|
+
readonly description: Schema.Trimmed;
|
|
489
|
+
readonly lastModified: Schema.String;
|
|
490
|
+
readonly title: Schema.Trimmed;
|
|
491
|
+
}>;
|
|
492
|
+
readonly sitemap: Schema.Literal<true>;
|
|
493
|
+
readonly sourcePath: Schema.brand<Schema.String, "@NakafaAI/AksaraCorpusSourcePath">;
|
|
494
|
+
}>]>]>;
|
|
495
|
+
export type RoutedContentProjection = typeof RoutedContentProjectionSchema.Type;
|
|
496
|
+
/** Returns the release family that owns one discriminated projection. */
|
|
497
|
+
export declare function familyForProjection(projection: ContentProjection): "article" | "material" | "page" | "question";
|
|
498
|
+
/** Returns public route ownership only for route-bearing projections. */
|
|
499
|
+
export declare function projectionPublicPath(projection: ContentProjection): (string & import("effect/Brand").Brand<"@NakafaAI/AksaraPublicPath">) | undefined;
|
|
500
|
+
/** Returns the exact compiled artifact locale owned by one projection. */
|
|
501
|
+
export declare function projectionArtifactLocale(projection: ContentProjection): ("de" | "en" | "id") & import("effect/Brand").Brand<"@NakafaAI/AksaraArtifactLocale">;
|
|
502
|
+
/** Serializes one projection through its exhaustive family-owned canonicalizer. */
|
|
503
|
+
export declare function canonicalizeContentProjection(projection: ContentProjection): string;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Match, Schema } from "effect";
|
|
2
|
+
import { ArticleProjectionSchema, canonicalizeArticleProjection, } from "#contracts/projection/article";
|
|
3
|
+
import { canonicalizeMaterialProjection, MaterialLessonProjectionSchema, } from "#contracts/projection/material";
|
|
4
|
+
import { canonicalizePublicPageProjection, PublicPageProjectionSchema, ReadablePublicPageProjectionSchema, } from "#contracts/projection/page";
|
|
5
|
+
import { canonicalizeQuestionProjection, QuestionBodyProjectionSchema, } from "#contracts/projection/question";
|
|
6
|
+
/** Complete projection vocabulary backed by implemented content families. */
|
|
7
|
+
export const ContentProjectionSchema = Schema.Union([
|
|
8
|
+
ArticleProjectionSchema,
|
|
9
|
+
MaterialLessonProjectionSchema,
|
|
10
|
+
ReadablePublicPageProjectionSchema,
|
|
11
|
+
QuestionBodyProjectionSchema,
|
|
12
|
+
]);
|
|
13
|
+
/** Current projection vocabulary accepted for newly staged content. */
|
|
14
|
+
export const CurrentContentProjectionSchema = Schema.Union([
|
|
15
|
+
ArticleProjectionSchema,
|
|
16
|
+
MaterialLessonProjectionSchema,
|
|
17
|
+
PublicPageProjectionSchema,
|
|
18
|
+
QuestionBodyProjectionSchema,
|
|
19
|
+
]);
|
|
20
|
+
/** Public-route projections accepted by Nakafa's path-based runtime seam. */
|
|
21
|
+
export const RoutedContentProjectionSchema = Schema.Union([
|
|
22
|
+
ArticleProjectionSchema,
|
|
23
|
+
MaterialLessonProjectionSchema,
|
|
24
|
+
ReadablePublicPageProjectionSchema,
|
|
25
|
+
]);
|
|
26
|
+
const matchProjectionFamily = Match.type().pipe(Match.discriminatorsExhaustive("kind")({
|
|
27
|
+
article: () => "article",
|
|
28
|
+
"public-page": () => "page",
|
|
29
|
+
"question-body": () => "question",
|
|
30
|
+
"subject-lesson": () => "material",
|
|
31
|
+
}));
|
|
32
|
+
/** Returns the release family that owns one discriminated projection. */
|
|
33
|
+
export function familyForProjection(projection) {
|
|
34
|
+
return matchProjectionFamily(projection);
|
|
35
|
+
}
|
|
36
|
+
/** Returns public route ownership only for route-bearing projections. */
|
|
37
|
+
export function projectionPublicPath(projection) {
|
|
38
|
+
if (projection.kind === "question-body") {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
return projection.publicPath;
|
|
42
|
+
}
|
|
43
|
+
/** Returns the exact compiled artifact locale owned by one projection. */
|
|
44
|
+
export function projectionArtifactLocale(projection) {
|
|
45
|
+
return projection.artifactLocale;
|
|
46
|
+
}
|
|
47
|
+
const matchCanonicalProjection = Match.type().pipe(Match.discriminatorsExhaustive("kind")({
|
|
48
|
+
article: canonicalizeArticleProjection,
|
|
49
|
+
"public-page": canonicalizePublicPageProjection,
|
|
50
|
+
"question-body": canonicalizeQuestionProjection,
|
|
51
|
+
"subject-lesson": canonicalizeMaterialProjection,
|
|
52
|
+
}));
|
|
53
|
+
/** Serializes one projection through its exhaustive family-owned canonicalizer. */
|
|
54
|
+
export function canonicalizeContentProjection(projection) {
|
|
55
|
+
return matchCanonicalProjection(projection);
|
|
56
|
+
}
|