chukyo-sdk 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.
Files changed (177) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +227 -0
  3. package/dist/cjs/albo/client.js +133 -0
  4. package/dist/cjs/albo/index.js +55 -0
  5. package/dist/cjs/albo/parser/albo.js +110 -0
  6. package/dist/cjs/albo/types/albo.js +351 -0
  7. package/dist/cjs/albo/types/alboCalendar.js +51 -0
  8. package/dist/cjs/albo/types/alboCommon.js +55 -0
  9. package/dist/cjs/albo/types/alboInformation.js +136 -0
  10. package/dist/cjs/albo/types/alboMenu.js +92 -0
  11. package/dist/cjs/albo/types/alboQuestionnaire.js +229 -0
  12. package/dist/cjs/albo/types/alboSharedItem.js +137 -0
  13. package/dist/cjs/albo/types/alboSystem.js +103 -0
  14. package/dist/cjs/albo/types/alboUniversalForm.js +51 -0
  15. package/dist/cjs/common/dom.js +137 -0
  16. package/dist/cjs/common/utils.js +29 -0
  17. package/dist/cjs/constants.js +127 -0
  18. package/dist/cjs/core/request.js +39 -0
  19. package/dist/cjs/cubics/client.js +49 -0
  20. package/dist/cjs/cubics/index.js +22 -0
  21. package/dist/cjs/cubics/parser/cubics.js +103 -0
  22. package/dist/cjs/cubics/types/cubics.js +90 -0
  23. package/dist/cjs/errors.js +55 -0
  24. package/dist/cjs/index.js +50 -0
  25. package/dist/cjs/manabo/client.js +135 -0
  26. package/dist/cjs/manabo/index.js +44 -0
  27. package/dist/cjs/manabo/parser/manaboClass.js +386 -0
  28. package/dist/cjs/manabo/parser/manaboEntry.js +38 -0
  29. package/dist/cjs/manabo/parser/manaboMail.js +153 -0
  30. package/dist/cjs/manabo/parser/manaboNews.js +26 -0
  31. package/dist/cjs/manabo/parser/manaboTimetable.js +93 -0
  32. package/dist/cjs/manabo/types/manaboClass.js +223 -0
  33. package/dist/cjs/manabo/types/manaboEntry.js +43 -0
  34. package/dist/cjs/manabo/types/manaboMail.js +117 -0
  35. package/dist/cjs/manabo/types/manaboNews.js +20 -0
  36. package/dist/cjs/manabo/types/manaboTimetable.js +79 -0
  37. package/dist/cjs/package.json +1 -0
  38. package/dist/cjs/shib/builder.js +239 -0
  39. package/dist/cjs/shib/index.js +32 -0
  40. package/dist/cjs/shib/parser/shibLogin.js +138 -0
  41. package/dist/cjs/shib/parser/shibUser.js +51 -0
  42. package/dist/cjs/shib/types/common.js +2 -0
  43. package/dist/cjs/shib/types/shibLogin.js +92 -0
  44. package/dist/cjs/shib/types/shibUser.js +44 -0
  45. package/dist/cjs/transports/fetch.js +84 -0
  46. package/dist/cjs/types.js +9 -0
  47. package/dist/esm/albo/client.d.ts +80 -0
  48. package/dist/esm/albo/client.d.ts.map +1 -0
  49. package/dist/esm/albo/client.js +129 -0
  50. package/dist/esm/albo/index.d.ts +12 -0
  51. package/dist/esm/albo/index.d.ts.map +1 -0
  52. package/dist/esm/albo/index.js +11 -0
  53. package/dist/esm/albo/parser/albo.d.ts +69 -0
  54. package/dist/esm/albo/parser/albo.d.ts.map +1 -0
  55. package/dist/esm/albo/parser/albo.js +84 -0
  56. package/dist/esm/albo/types/albo.d.ts +460 -0
  57. package/dist/esm/albo/types/albo.d.ts.map +1 -0
  58. package/dist/esm/albo/types/albo.js +348 -0
  59. package/dist/esm/albo/types/alboCalendar.d.ts +58 -0
  60. package/dist/esm/albo/types/alboCalendar.d.ts.map +1 -0
  61. package/dist/esm/albo/types/alboCalendar.js +48 -0
  62. package/dist/esm/albo/types/alboCommon.d.ts +52 -0
  63. package/dist/esm/albo/types/alboCommon.d.ts.map +1 -0
  64. package/dist/esm/albo/types/alboCommon.js +51 -0
  65. package/dist/esm/albo/types/alboInformation.d.ts +214 -0
  66. package/dist/esm/albo/types/alboInformation.d.ts.map +1 -0
  67. package/dist/esm/albo/types/alboInformation.js +133 -0
  68. package/dist/esm/albo/types/alboMenu.d.ts +114 -0
  69. package/dist/esm/albo/types/alboMenu.d.ts.map +1 -0
  70. package/dist/esm/albo/types/alboMenu.js +89 -0
  71. package/dist/esm/albo/types/alboQuestionnaire.d.ts +442 -0
  72. package/dist/esm/albo/types/alboQuestionnaire.d.ts.map +1 -0
  73. package/dist/esm/albo/types/alboQuestionnaire.js +226 -0
  74. package/dist/esm/albo/types/alboSharedItem.d.ts +205 -0
  75. package/dist/esm/albo/types/alboSharedItem.d.ts.map +1 -0
  76. package/dist/esm/albo/types/alboSharedItem.js +134 -0
  77. package/dist/esm/albo/types/alboSystem.d.ts +129 -0
  78. package/dist/esm/albo/types/alboSystem.d.ts.map +1 -0
  79. package/dist/esm/albo/types/alboSystem.js +100 -0
  80. package/dist/esm/albo/types/alboUniversalForm.d.ts +63 -0
  81. package/dist/esm/albo/types/alboUniversalForm.d.ts.map +1 -0
  82. package/dist/esm/albo/types/alboUniversalForm.js +48 -0
  83. package/dist/esm/common/dom.d.ts +35 -0
  84. package/dist/esm/common/dom.d.ts.map +1 -0
  85. package/dist/esm/common/dom.js +120 -0
  86. package/dist/esm/common/utils.d.ts +15 -0
  87. package/dist/esm/common/utils.d.ts.map +1 -0
  88. package/dist/esm/common/utils.js +22 -0
  89. package/dist/esm/constants.d.ts +113 -0
  90. package/dist/esm/constants.d.ts.map +1 -0
  91. package/dist/esm/constants.js +124 -0
  92. package/dist/esm/core/request.d.ts +29 -0
  93. package/dist/esm/core/request.d.ts.map +1 -0
  94. package/dist/esm/core/request.js +33 -0
  95. package/dist/esm/cubics/client.d.ts +13 -0
  96. package/dist/esm/cubics/client.d.ts.map +1 -0
  97. package/dist/esm/cubics/client.js +45 -0
  98. package/dist/esm/cubics/index.d.ts +4 -0
  99. package/dist/esm/cubics/index.d.ts.map +1 -0
  100. package/dist/esm/cubics/index.js +3 -0
  101. package/dist/esm/cubics/parser/cubics.d.ts +8 -0
  102. package/dist/esm/cubics/parser/cubics.d.ts.map +1 -0
  103. package/dist/esm/cubics/parser/cubics.js +99 -0
  104. package/dist/esm/cubics/types/cubics.d.ts +94 -0
  105. package/dist/esm/cubics/types/cubics.d.ts.map +1 -0
  106. package/dist/esm/cubics/types/cubics.js +87 -0
  107. package/dist/esm/errors.d.ts +46 -0
  108. package/dist/esm/errors.d.ts.map +1 -0
  109. package/dist/esm/errors.js +46 -0
  110. package/dist/esm/index.d.ts +19 -0
  111. package/dist/esm/index.d.ts.map +1 -0
  112. package/dist/esm/index.js +25 -0
  113. package/dist/esm/manabo/client.d.ts +75 -0
  114. package/dist/esm/manabo/client.d.ts.map +1 -0
  115. package/dist/esm/manabo/client.js +131 -0
  116. package/dist/esm/manabo/index.d.ts +12 -0
  117. package/dist/esm/manabo/index.d.ts.map +1 -0
  118. package/dist/esm/manabo/index.js +11 -0
  119. package/dist/esm/manabo/parser/manaboClass.d.ts +9 -0
  120. package/dist/esm/manabo/parser/manaboClass.d.ts.map +1 -0
  121. package/dist/esm/manabo/parser/manaboClass.js +377 -0
  122. package/dist/esm/manabo/parser/manaboEntry.d.ts +8 -0
  123. package/dist/esm/manabo/parser/manaboEntry.d.ts.map +1 -0
  124. package/dist/esm/manabo/parser/manaboEntry.js +33 -0
  125. package/dist/esm/manabo/parser/manaboMail.d.ts +8 -0
  126. package/dist/esm/manabo/parser/manaboMail.d.ts.map +1 -0
  127. package/dist/esm/manabo/parser/manaboMail.js +145 -0
  128. package/dist/esm/manabo/parser/manaboNews.d.ts +7 -0
  129. package/dist/esm/manabo/parser/manaboNews.d.ts.map +1 -0
  130. package/dist/esm/manabo/parser/manaboNews.js +22 -0
  131. package/dist/esm/manabo/parser/manaboTimetable.d.ts +4 -0
  132. package/dist/esm/manabo/parser/manaboTimetable.d.ts.map +1 -0
  133. package/dist/esm/manabo/parser/manaboTimetable.js +89 -0
  134. package/dist/esm/manabo/types/manaboClass.d.ts +294 -0
  135. package/dist/esm/manabo/types/manaboClass.d.ts.map +1 -0
  136. package/dist/esm/manabo/types/manaboClass.js +220 -0
  137. package/dist/esm/manabo/types/manaboEntry.d.ts +24 -0
  138. package/dist/esm/manabo/types/manaboEntry.d.ts.map +1 -0
  139. package/dist/esm/manabo/types/manaboEntry.js +40 -0
  140. package/dist/esm/manabo/types/manaboMail.d.ts +103 -0
  141. package/dist/esm/manabo/types/manaboMail.d.ts.map +1 -0
  142. package/dist/esm/manabo/types/manaboMail.js +114 -0
  143. package/dist/esm/manabo/types/manaboNews.d.ts +15 -0
  144. package/dist/esm/manabo/types/manaboNews.d.ts.map +1 -0
  145. package/dist/esm/manabo/types/manaboNews.js +17 -0
  146. package/dist/esm/manabo/types/manaboTimetable.d.ts +88 -0
  147. package/dist/esm/manabo/types/manaboTimetable.d.ts.map +1 -0
  148. package/dist/esm/manabo/types/manaboTimetable.js +76 -0
  149. package/dist/esm/package.json +1 -0
  150. package/dist/esm/shib/builder.d.ts +154 -0
  151. package/dist/esm/shib/builder.d.ts.map +1 -0
  152. package/dist/esm/shib/builder.js +212 -0
  153. package/dist/esm/shib/index.d.ts +15 -0
  154. package/dist/esm/shib/index.d.ts.map +1 -0
  155. package/dist/esm/shib/index.js +14 -0
  156. package/dist/esm/shib/parser/shibLogin.d.ts +47 -0
  157. package/dist/esm/shib/parser/shibLogin.d.ts.map +1 -0
  158. package/dist/esm/shib/parser/shibLogin.js +127 -0
  159. package/dist/esm/shib/parser/shibUser.d.ts +11 -0
  160. package/dist/esm/shib/parser/shibUser.d.ts.map +1 -0
  161. package/dist/esm/shib/parser/shibUser.js +46 -0
  162. package/dist/esm/shib/types/common.d.ts +20 -0
  163. package/dist/esm/shib/types/common.d.ts.map +1 -0
  164. package/dist/esm/shib/types/common.js +1 -0
  165. package/dist/esm/shib/types/shibLogin.d.ts +62 -0
  166. package/dist/esm/shib/types/shibLogin.d.ts.map +1 -0
  167. package/dist/esm/shib/types/shibLogin.js +89 -0
  168. package/dist/esm/shib/types/shibUser.d.ts +36 -0
  169. package/dist/esm/shib/types/shibUser.d.ts.map +1 -0
  170. package/dist/esm/shib/types/shibUser.js +41 -0
  171. package/dist/esm/transports/fetch.d.ts +36 -0
  172. package/dist/esm/transports/fetch.d.ts.map +1 -0
  173. package/dist/esm/transports/fetch.js +80 -0
  174. package/dist/esm/types.d.ts +71 -0
  175. package/dist/esm/types.d.ts.map +1 -0
  176. package/dist/esm/types.js +8 -0
  177. package/package.json +72 -0
@@ -0,0 +1,220 @@
1
+ import { z } from "zod";
2
+ // manabo の授業ページ関連スキーマ群(ディレクトリ / 教材一覧 / 出席表 / お知らせ / シラバス / 小テスト結果)。
3
+ /** ディレクトリ(週・回)の 1 項目 */
4
+ export const ManaboClassDirectoryItemSchema = z.object({
5
+ /** ディレクトリ ID @example "123456" */
6
+ directoryId: z.string().meta({ description: "ディレクトリ ID", example: "123456" }),
7
+ /** ディレクトリ名(例: "第1回 マージと分割統治法") @example "第1回 マージと分割統治法" */
8
+ title: z.string().meta({ description: "ディレクトリ名", example: "第1回 マージと分割統治法" }),
9
+ });
10
+ /** 授業のディレクトリ一覧(左ペイン) */
11
+ export const ManaboClassDirectorySchema = z.object({
12
+ /** 授業 ID @example "85146" */
13
+ classId: z.string().meta({ description: "授業 ID", example: "85146" }),
14
+ /** 授業名 @example "情報リテラシー" */
15
+ className: z.string().meta({ description: "授業名", example: "情報リテラシー" }),
16
+ /** ディレクトリ一覧 */
17
+ directories: z.array(ManaboClassDirectoryItemSchema).meta({ description: "ディレクトリ一覧" }),
18
+ });
19
+ /** 教材行の先頭アイコン(種別+受講済み表示) */
20
+ export const ManaboClassContentIconSchema = z.object({
21
+ /** プラグインアイコンの src(パスで種別が分かる。例: /plugins/quiz/images/...) @example "/plugins/quiz/images/icon.png" */
22
+ pluginIconSrc: z.string().meta({ description: "プラグインアイコンの src(パスで種別が分かる)", example: "/plugins/quiz/images/icon.png" }),
23
+ /** 受講済み(img-checked が付与されているか) @example false */
24
+ isIconChecked: z.boolean().meta({ description: "受講済み(img-checked が付与されているか)", example: false }),
25
+ });
26
+ /** 期間・締切などのラベル/値ペア(例: 提出受付期間) */
27
+ export const ManaboClassContentDurationSchema = z.object({
28
+ /** ラベル(例: "提出受付期間:") @example "提出受付期間:" */
29
+ label: z.string().meta({ description: "ラベル", example: "提出受付期間:" }),
30
+ /** 値(例: "~ 4月14日(月) 18:05") @example "~ 4月14日(月) 18:05" */
31
+ value: z.string().meta({ description: "値", example: "~ 4月14日(月) 18:05" }),
32
+ });
33
+ /** 教材に添付されたファイル */
34
+ export const ManaboClassContentFileSchema = z.object({
35
+ /** ファイル名(例: "ソート問題.pdf") @example "ソート問題.pdf" */
36
+ fileName: z.string().meta({ description: "ファイル名", example: "ソート問題.pdf" }),
37
+ /** ダウンロードリンク @example "/class/85146/content/download/1001" */
38
+ href: z.string().meta({ description: "ダウンロードリンク", example: "/class/85146/content/download/1001" }),
39
+ /** ファイル種別アイコンの src(例: /common/images/icons/pdf.png) @example "/common/images/icons/pdf.png" */
40
+ icon: z.string().meta({ description: "ファイル種別アイコンの src", example: "/common/images/icons/pdf.png" }),
41
+ });
42
+ /** 開閉エリア内のアクションボタン(受講/結果 等) */
43
+ export const ManaboClassContentActionSchema = z.object({
44
+ /** ボタン文言(例: "受講" / "結果") @example "受講" */
45
+ title: z.string().meta({ description: "ボタン文言", example: "受講" }),
46
+ /** リンク先 @example "/class/85146/content/open/1001" */
47
+ href: z.string().meta({ description: "リンク先", example: "/class/85146/content/open/1001" }),
48
+ });
49
+ /** 資料教材の中身(コメント+ファイル群+期間) */
50
+ export const ManaboClassContentAttachedFileSchema = z.object({
51
+ /** 説明コメント(HTML。details/summary 等を含む) @example "<p>配布資料です。</p>" */
52
+ comment: z.string().meta({ description: "説明コメント(HTML)", example: "<p>配布資料です。</p>" }),
53
+ /** 添付ファイル一覧 */
54
+ files: z.array(ManaboClassContentFileSchema).meta({ description: "添付ファイル一覧" }),
55
+ /** 期間・締切ラベル群 */
56
+ duration: z.array(ManaboClassContentDurationSchema).meta({ description: "期間・締切ラベル群" }),
57
+ });
58
+ /** 受講型教材のタイトル部(クリックで開閉するリンク) */
59
+ export const ManaboClassContentContentSchema = z.object({
60
+ /** 教材タイトル @example "第1回 小テスト" */
61
+ title: z.string().meta({ description: "教材タイトル", example: "第1回 小テスト" }),
62
+ /** コンテンツ ID(content_id) @example "1001" */
63
+ contentId: z.string().meta({ description: "コンテンツ ID", example: "1001" }),
64
+ /** プラグイン種別("board" / "quiz" / "report" 等) @example "quiz" */
65
+ pluginKey: z.string().meta({ description: "プラグイン種別", example: "quiz" }),
66
+ /** 期間・締切ラベル群 */
67
+ duration: z.array(ManaboClassContentDurationSchema).meta({ description: "期間・締切ラベル群" }),
68
+ });
69
+ /** 受講型教材の開閉エリア(説明と受講可否/アクション) */
70
+ export const ManaboClassContentToggleAreaSchema = z.object({
71
+ /** 説明本文(HTML) @example "<p>第1回の小テストです。</p>" */
72
+ description: z.string().meta({ description: "説明本文(HTML)", example: "<p>第1回の小テストです。</p>" }),
73
+ /** 期限切れか(エラー表示から判定) @example false */
74
+ isExpired: z.boolean().meta({ description: "期限切れか", example: false }),
75
+ /** まだ受講できない("まだ受講できません" 表示)か @example false */
76
+ isNotAvailableYet: z.boolean().meta({ description: "まだ受講できないか", example: false }),
77
+ /** アクションボタン群 */
78
+ actions: z.array(ManaboClassContentActionSchema).meta({ description: "アクションボタン群" }),
79
+ });
80
+ /** 資料(ファイル添付)教材。plugin_key = "resource" 相当で、クリック開閉のない直接表示 */
81
+ export const ManaboClassResourceContentSchema = z.object({
82
+ /** 種別識別子(固定値 "resource") @example "resource" */
83
+ type: z.literal("resource").meta({ description: "種別識別子", example: "resource" }),
84
+ icon: ManaboClassContentIconSchema,
85
+ attachedFile: ManaboClassContentAttachedFileSchema,
86
+ });
87
+ /** 受講型教材(board / quiz / report など)。開閉エリアに説明と受講/結果ボタンを持つ。実際の種別は content.pluginKey を参照 */
88
+ export const ManaboClassActivityContentSchema = z.object({
89
+ /** 種別識別子(固定値 "activity") @example "activity" */
90
+ type: z.literal("activity").meta({ description: "種別識別子", example: "activity" }),
91
+ icon: ManaboClassContentIconSchema,
92
+ content: ManaboClassContentContentSchema,
93
+ toggleArea: ManaboClassContentToggleAreaSchema,
94
+ });
95
+ /** 教材一覧(資料 or 受講型の判別ユニオン配列) */
96
+ export const ManaboClassContentSchema = z.object({
97
+ /** 教材の配列。type="resource"(資料)または type="activity"(受講型) */
98
+ contents: z.array(z.union([ManaboClassResourceContentSchema, ManaboClassActivityContentSchema])).meta({
99
+ description: "教材の配列。type=\"resource\"(資料)または type=\"activity\"(受講型)",
100
+ }),
101
+ });
102
+ /** 出席表の 1 行 */
103
+ export const ManaboClassEntryRowSchema = z.object({
104
+ /** 対象ディレクトリ名(回) @example "第1回 マージと分割統治法" */
105
+ directory: z.string().meta({ description: "対象ディレクトリ名(回)", example: "第1回 マージと分割統治法" }),
106
+ /** 講義日(未設定は null) @example "2025-04-14" */
107
+ lectureDate: z.string().nullable().meta({ description: "講義日", example: "2025-04-14" }),
108
+ /** 出欠状態(例: "出席" / "欠席") @example "出席" */
109
+ status: z.string().meta({ description: "出欠状態", example: "出席" }),
110
+ });
111
+ /** 出席表(出欠一覧) */
112
+ export const ManaboClassEntrySchema = z.object({
113
+ /** 出席行。出席表が無い場合は空配列 */
114
+ rows: z.array(ManaboClassEntryRowSchema).meta({ description: "出席行。出席表が無い場合は空配列" }),
115
+ });
116
+ /** 授業のお知らせ 1 件 */
117
+ export const ManaboClassNewsItemSchema = z.object({
118
+ /** DOM 上の id 属性(例: "class-news-238195") @example "class-news-238195" */
119
+ id: z.string().nullable().meta({ description: "DOM 上の id 属性", example: "class-news-238195" }),
120
+ /** お知らせ ID(id から接頭辞を除いた数値部分。例: "238195") @example "238195" */
121
+ newsId: z.string().nullable().meta({ description: "お知らせ ID(id から接頭辞を除いた数値部分)", example: "238195" }),
122
+ /** タイトル @example "レポート提出締切のお知らせ" */
123
+ title: z.string().meta({ description: "タイトル", example: "レポート提出締切のお知らせ" }),
124
+ /** 本文(HTML。リンクや添付を含む) @example "<p>締切は4月14日です。</p>" */
125
+ bodyHtml: z.string().meta({ description: "本文(HTML)", example: "<p>締切は4月14日です。</p>" }),
126
+ });
127
+ /** 授業のお知らせ一覧 */
128
+ export const ManaboClassNewsSchema = z.object({
129
+ /** お知らせ項目 */
130
+ items: z.array(ManaboClassNewsItemSchema).meta({ description: "お知らせ項目" }),
131
+ });
132
+ /** 成績評価方法・基準の 1 項目 */
133
+ export const ManaboClassSyllabusEvaluationSchema = z.object({
134
+ /** 評価種別(例: "課題・レポート") @example "課題・レポート" */
135
+ type: z.string().meta({ description: "評価種別", example: "課題・レポート" }),
136
+ /** 割合(例: "70%") @example "70%" */
137
+ weight: z.string().meta({ description: "割合", example: "70%" }),
138
+ });
139
+ /** 教科書・教材 */
140
+ export const ManaboClassSyllabusTextbookSchema = z.object({
141
+ /** 区分ラベル(例: "教科書・教材") @example "教科書・教材" */
142
+ type: z.string().meta({ description: "区分ラベル", example: "教科書・教材" }),
143
+ /** 書名・内容 @example "アルゴリズムとデータ構造" */
144
+ title: z.string().meta({ description: "書名・内容", example: "アルゴリズムとデータ構造" }),
145
+ });
146
+ /** 参考文献 */
147
+ export const ManaboClassSyllabusReferenceSchema = z.object({
148
+ /** 書名 @example "計算機科学入門" */
149
+ title: z.string().meta({ description: "書名", example: "計算機科学入門" }),
150
+ /** 書籍コード(data-code。ISBN 等) @example "9784000000000" */
151
+ code: z.string().meta({ description: "書籍コード(ISBN 等)", example: "9784000000000" }),
152
+ });
153
+ /** 授業計画の 1 回分 */
154
+ export const ManaboClassSyllabusPlanItemSchema = z.object({
155
+ /** 回番号 @example 1 */
156
+ no: z.number().meta({ description: "回番号", example: 1 }),
157
+ /** 項目(タイトル) @example "ガイダンス" */
158
+ item: z.string().meta({ description: "項目(タイトル)", example: "ガイダンス" }),
159
+ /** 内容 @example "授業の進め方について説明する" */
160
+ content: z.string().meta({ description: "内容", example: "授業の進め方について説明する" }),
161
+ });
162
+ /** シラバス詳細 */
163
+ export const ManaboClassSyllabusSchema = z.object({
164
+ /** 授業概要・目的 @example "情報リテラシーの基礎を学ぶ" */
165
+ object: z.string().meta({ description: "授業概要・目的", example: "情報リテラシーの基礎を学ぶ" }),
166
+ /** 学修到達目標(箇条書き) @example ["基本操作を習得する"] */
167
+ goal: z.array(z.string()).meta({ description: "学修到達目標(箇条書き)", example: ["基本操作を習得する"] }),
168
+ /** 授業方法 @example "講義形式で実施する" */
169
+ method: z.string().meta({ description: "授業方法", example: "講義形式で実施する" }),
170
+ /** 活用される授業方法(チェックされた項目名) @example ["グループワーク"] */
171
+ usedMethods: z.array(z.string()).meta({ description: "活用される授業方法", example: ["グループワーク"] }),
172
+ /** 成績評価方法・基準 */
173
+ evaluation: z.array(ManaboClassSyllabusEvaluationSchema).meta({ description: "成績評価方法・基準" }),
174
+ /** 教科書・教材 */
175
+ textbooks: z.array(ManaboClassSyllabusTextbookSchema).meta({ description: "教科書・教材" }),
176
+ /** 参考文献 */
177
+ references: z.array(ManaboClassSyllabusReferenceSchema).meta({ description: "参考文献" }),
178
+ /** 質問への対応(オフィスアワー等) @example "水曜3限、研究室にて対応" */
179
+ officeHour: z.string().meta({ description: "質問への対応(オフィスアワー等)", example: "水曜3限、研究室にて対応" }),
180
+ /** 授業計画(全回) */
181
+ plan: z.array(ManaboClassSyllabusPlanItemSchema).meta({ description: "授業計画(全回)" }),
182
+ /** 履修者へのコメント @example "積極的な参加を歓迎します" */
183
+ comment: z.string().meta({ description: "履修者へのコメント", example: "積極的な参加を歓迎します" }),
184
+ /** 事前事後学習 @example "教科書の該当章を事前に読んでおくこと" */
185
+ prePostStudy: z.string().meta({ description: "事前事後学習", example: "教科書の該当章を事前に読んでおくこと" }),
186
+ });
187
+ /** 小テスト結果の 1 問 */
188
+ export const ManaboClassQuizResultQuestionSchema = z.object({
189
+ /** ページ(rowspan でまとめられたページ番号。例: "1") @example "1" */
190
+ page: z.string().meta({ description: "ページ(rowspan でまとめられたページ番号)", example: "1" }),
191
+ /** 問題番号 @example "1" */
192
+ questionNumber: z.string().meta({ description: "問題番号", example: "1" }),
193
+ /** 問題文 @example "次のうち正しいものを選べ" */
194
+ questionText: z.string().meta({ description: "問題文", example: "次のうち正しいものを選べ" }),
195
+ /** 正解 @example "選択肢A" */
196
+ correctAnswer: z.string().meta({ description: "正解", example: "選択肢A" }),
197
+ /** 学生の解答 @example "選択肢A" */
198
+ studentAnswer: z.string().meta({ description: "学生の解答", example: "選択肢A" }),
199
+ /** 正誤(採点アイコンから判定。point_good→true / point_worst→false / アイコン無し→null) @example true */
200
+ isCorrect: z.boolean().nullable().meta({ description: "正誤(採点アイコンから判定)", example: true }),
201
+ /** 獲得点(採点結果セルの「NN 点」から抽出。表示が無ければ null) @example 10 */
202
+ points: z.number().nullable().meta({ description: "獲得点", example: 10 }),
203
+ /** 採点結果アイコンの src(UI 表示用に保持) @example "/common/images/icons/point_good.png" */
204
+ resultIconSrc: z.string().nullable().meta({ description: "採点結果アイコンの src", example: "/common/images/icons/point_good.png" }),
205
+ /** 教員からのコメント @example "よくできました" */
206
+ teacherComment: z.string().nullable().meta({ description: "教員からのコメント", example: "よくできました" }),
207
+ });
208
+ /** 小テスト結果ページ全体 */
209
+ export const ManaboClassQuizResultSchema = z.object({
210
+ /** 得点(獲得点 / 満点) */
211
+ score: z.object({
212
+ /** 獲得点 @example 80 */
213
+ obtained: z.number().meta({ description: "獲得点", example: 80 }),
214
+ /** 満点 @example 100 */
215
+ total: z.number().meta({ description: "満点", example: 100 }),
216
+ }).meta({ description: "得点(獲得点 / 満点)" }),
217
+ /** 受験結果一覧のページ概要(例: "1件中 1 〜 1件")。無ければ null @example "1件中 1 〜 1件" */
218
+ paginationSummary: z.string().nullable().meta({ description: "受験結果一覧のページ概要", example: "1件中 1 〜 1件" }),
219
+ questions: z.array(ManaboClassQuizResultQuestionSchema).meta({ description: "設問ごとの結果一覧" }),
220
+ });
@@ -0,0 +1,24 @@
1
+ import { z } from "zod";
2
+ /** 出欠カードのフォーム(出席受付モーダル) */
3
+ export declare const ManaboEntryFormSchema: z.ZodObject<{
4
+ action: z.ZodString;
5
+ classId: z.ZodString;
6
+ directoryId: z.ZodString;
7
+ entryId: z.ZodString;
8
+ uniqid: z.ZodString;
9
+ requiresCode: z.ZodBoolean;
10
+ messages: z.ZodArray<z.ZodString>;
11
+ }, z.core.$strip>;
12
+ export type ManaboEntryFormDTO = z.infer<typeof ManaboEntryFormSchema>;
13
+ /** 出席登録リクエストへの JSON レスポンス */
14
+ export declare const ManaboEntryResponseSchema: z.ZodObject<{
15
+ success: z.ZodBoolean;
16
+ html: z.ZodNullable<z.ZodString>;
17
+ error: z.ZodNullable<z.ZodString>;
18
+ data: z.ZodNullable<z.ZodObject<{
19
+ is_accepted: z.ZodNumber;
20
+ }, z.core.$strip>>;
21
+ sysmsg: z.ZodNullable<z.ZodString>;
22
+ }, z.core.$strip>;
23
+ export type ManaboEntryResponseDTO = z.infer<typeof ManaboEntryResponseSchema>;
24
+ //# sourceMappingURL=manaboEntry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manaboEntry.d.ts","sourceRoot":"","sources":["../../../../src/manabo/types/manaboEntry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,2BAA2B;AAC3B,eAAO,MAAM,qBAAqB;;;;;;;;iBAoBhC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEvE,6BAA6B;AAC7B,eAAO,MAAM,yBAAyB;;;;;;;;iBAcpC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { z } from "zod";
2
+ // manabo の出欠(出席カード)関連スキーマ。
3
+ /** 出欠カードのフォーム(出席受付モーダル) */
4
+ export const ManaboEntryFormSchema = z.object({
5
+ /** フォームの action 値 @example "glexa_modal_entry_form_accept" */
6
+ action: z.string().meta({ description: "フォームの action 値", example: "glexa_modal_entry_form_accept" }),
7
+ /** 授業 ID @example "85146" */
8
+ classId: z.string().meta({ description: "授業 ID", example: "85146" }),
9
+ /** ディレクトリ ID("0" の場合は授業直下) @example "0" */
10
+ directoryId: z.string().meta({ description: "ディレクトリ ID(\"0\" の場合は授業直下)", example: "0" }),
11
+ /** 出欠エントリ ID @example "12345" */
12
+ entryId: z.string().meta({ description: "出欠エントリ ID", example: "12345" }),
13
+ /** ワンタイム識別子(uniqid) @example "6800abcdef123" */
14
+ uniqid: z.string().meta({ description: "ワンタイム識別子(uniqid)", example: "6800abcdef123" }),
15
+ /**
16
+ * 出席コード(パスワード)の入力が必要か。
17
+ * `true` の場合は教員指示のコードを {@link ManaboClient.submitEntry} の `code` に渡す。
18
+ * `false`(パスワードなし授業)の場合は `code` を省略してそのまま送信する。
19
+ * @example true
20
+ */
21
+ requiresCode: z.boolean().meta({ description: "出席コード(パスワード)の入力が必要か", example: true }),
22
+ /** フォーム内のメッセージ群(例: "出席を受付中です") @example ["出席を受付中です"] */
23
+ messages: z.array(z.string()).meta({ description: "フォーム内のメッセージ群", example: ["出席を受付中です"] }),
24
+ });
25
+ /** 出席登録リクエストへの JSON レスポンス */
26
+ export const ManaboEntryResponseSchema = z.object({
27
+ /** 処理成功フラグ @example true */
28
+ success: z.boolean().meta({ description: "処理成功フラグ", example: true }),
29
+ /** 返却 HTML(無ければ空文字 / null) @example null */
30
+ html: z.string().nullable().meta({ description: "返却 HTML", example: null }),
31
+ /** エラー文字列(成功時は空文字、出席コード誤り等で文言が入る) @example "出席コードを確認してください" */
32
+ error: z.string().nullable().meta({ description: "エラー文字列", example: "出席コードを確認してください" }),
33
+ /** 受付状態の詳細(失敗時は null) */
34
+ data: z.object({
35
+ /** 受付状態フラグ(0=既に受付済み / 1=新規受付可)※ API 由来の値をそのまま保持 @example 1 */
36
+ is_accepted: z.number().meta({ description: "受付状態フラグ(0=既に受付済み / 1=新規受付可)", example: 1 }),
37
+ }).nullable().meta({ description: "受付状態の詳細(失敗時は null)" }),
38
+ /** システムメッセージ(無ければ null) @example null */
39
+ sysmsg: z.string().nullable().meta({ description: "システムメッセージ", example: null }),
40
+ });
@@ -0,0 +1,103 @@
1
+ import { z } from "zod";
2
+ /** 一覧ページのページネーションリンク 1 個 */
3
+ export declare const ManaboMailListPageSchema: z.ZodObject<{
4
+ label: z.ZodString;
5
+ page: z.ZodString;
6
+ active: z.ZodBoolean;
7
+ }, z.core.$strip>;
8
+ export type ManaboMailListPageDTO = z.infer<typeof ManaboMailListPageSchema>;
9
+ /** 受信メール一覧の 1 行 */
10
+ export declare const ManaboReceivedMailItemSchema: z.ZodObject<{
11
+ id: z.ZodString;
12
+ title: z.ZodString;
13
+ statusIconAlt: z.ZodNullable<z.ZodString>;
14
+ statusIconSrc: z.ZodNullable<z.ZodString>;
15
+ mailLink: z.ZodNullable<z.ZodString>;
16
+ senderName: z.ZodNullable<z.ZodString>;
17
+ senderImage: z.ZodNullable<z.ZodString>;
18
+ receivedAt: z.ZodString;
19
+ }, z.core.$strip>;
20
+ export type ManaboReceivedMailItemDTO = z.infer<typeof ManaboReceivedMailItemSchema>;
21
+ /** 受信メール一覧ページ全体 */
22
+ export declare const ManaboReceivedMailSchema: z.ZodObject<{
23
+ summary: z.ZodNullable<z.ZodString>;
24
+ pages: z.ZodArray<z.ZodObject<{
25
+ label: z.ZodString;
26
+ page: z.ZodString;
27
+ active: z.ZodBoolean;
28
+ }, z.core.$strip>>;
29
+ mails: z.ZodArray<z.ZodObject<{
30
+ id: z.ZodString;
31
+ title: z.ZodString;
32
+ statusIconAlt: z.ZodNullable<z.ZodString>;
33
+ statusIconSrc: z.ZodNullable<z.ZodString>;
34
+ mailLink: z.ZodNullable<z.ZodString>;
35
+ senderName: z.ZodNullable<z.ZodString>;
36
+ senderImage: z.ZodNullable<z.ZodString>;
37
+ receivedAt: z.ZodString;
38
+ }, z.core.$strip>>;
39
+ }, z.core.$strip>;
40
+ export type ManaboReceivedMailDTO = z.infer<typeof ManaboReceivedMailSchema>;
41
+ /** 送信メール一覧の 1 行 */
42
+ export declare const ManaboSentMailItemSchema: z.ZodObject<{
43
+ id: z.ZodString;
44
+ title: z.ZodString;
45
+ statusIconAlt: z.ZodNullable<z.ZodString>;
46
+ statusIconSrc: z.ZodNullable<z.ZodString>;
47
+ mailLink: z.ZodNullable<z.ZodString>;
48
+ recipientName: z.ZodNullable<z.ZodString>;
49
+ recipientImage: z.ZodNullable<z.ZodString>;
50
+ sentAt: z.ZodString;
51
+ unreadCount: z.ZodNumber;
52
+ }, z.core.$strip>;
53
+ export type ManaboSentMailItemDTO = z.infer<typeof ManaboSentMailItemSchema>;
54
+ /** 送信メール一覧ページ全体 */
55
+ export declare const ManaboSentMailSchema: z.ZodObject<{
56
+ summary: z.ZodNullable<z.ZodString>;
57
+ mails: z.ZodArray<z.ZodObject<{
58
+ id: z.ZodString;
59
+ title: z.ZodString;
60
+ statusIconAlt: z.ZodNullable<z.ZodString>;
61
+ statusIconSrc: z.ZodNullable<z.ZodString>;
62
+ mailLink: z.ZodNullable<z.ZodString>;
63
+ recipientName: z.ZodNullable<z.ZodString>;
64
+ recipientImage: z.ZodNullable<z.ZodString>;
65
+ sentAt: z.ZodString;
66
+ unreadCount: z.ZodNumber;
67
+ }, z.core.$strip>>;
68
+ }, z.core.$strip>;
69
+ export type ManaboSentMailDTO = z.infer<typeof ManaboSentMailSchema>;
70
+ /** メール本文閲覧モーダル */
71
+ export declare const ManaboMailViewSchema: z.ZodObject<{
72
+ title: z.ZodString;
73
+ replyMailId: z.ZodNullable<z.ZodString>;
74
+ fromMemberId: z.ZodNullable<z.ZodString>;
75
+ nextMailId: z.ZodNullable<z.ZodString>;
76
+ senderName: z.ZodString;
77
+ senderImage: z.ZodNullable<z.ZodString>;
78
+ sentAt: z.ZodString;
79
+ bodyHtml: z.ZodString;
80
+ }, z.core.$strip>;
81
+ export type ManaboMailViewDTO = z.infer<typeof ManaboMailViewSchema>;
82
+ /** メール作成モーダル(送信フォーム) */
83
+ export declare const ManaboMailSendSchema: z.ZodObject<{
84
+ modalTitle: z.ZodString;
85
+ form: z.ZodObject<{
86
+ action: z.ZodString;
87
+ replyMailId: z.ZodNullable<z.ZodString>;
88
+ signature: z.ZodNullable<z.ZodString>;
89
+ csrfToken: z.ZodString;
90
+ }, z.core.$strip>;
91
+ submitLabel: z.ZodString;
92
+ }, z.core.$strip>;
93
+ export type ManaboMailSendDTO = z.infer<typeof ManaboMailSendSchema>;
94
+ /** メール宛先の候補メンバー一覧 */
95
+ export declare const ManaboMailMemberSchema: z.ZodObject<{
96
+ members: z.ZodArray<z.ZodObject<{
97
+ memberId: z.ZodString;
98
+ name: z.ZodString;
99
+ image: z.ZodNullable<z.ZodString>;
100
+ }, z.core.$strip>>;
101
+ }, z.core.$strip>;
102
+ export type ManaboMailMemberDTO = z.infer<typeof ManaboMailMemberSchema>;
103
+ //# sourceMappingURL=manaboMail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manaboMail.d.ts","sourceRoot":"","sources":["../../../../src/manabo/types/manaboMail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,4BAA4B;AAC5B,eAAO,MAAM,wBAAwB;;;;iBAOnC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE7E,mBAAmB;AACnB,eAAO,MAAM,4BAA4B;;;;;;;;;iBAiBvC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAErF,mBAAmB;AACnB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;iBAOnC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE7E,mBAAmB;AACnB,eAAO,MAAM,wBAAwB;;;;;;;;;;iBAmBnC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE7E,mBAAmB;AACnB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;iBAK/B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAErE,kBAAkB;AAClB,eAAO,MAAM,oBAAoB;;;;;;;;;iBAiB/B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAErE,wBAAwB;AACxB,eAAO,MAAM,oBAAoB;;;;;;;;;iBAe/B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAErE,qBAAqB;AACrB,eAAO,MAAM,sBAAsB;;;;;;iBAWjC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -0,0 +1,114 @@
1
+ import { z } from "zod";
2
+ // manabo(MaNaBo)のメール関連ページ(受信/送信一覧・閲覧・作成・宛先候補)のスキーマ群。
3
+ /** 一覧ページのページネーションリンク 1 個 */
4
+ export const ManaboMailListPageSchema = z.object({
5
+ /** リンク表示(ページ番号や "»" など) @example "2" */
6
+ label: z.string().meta({ description: "リンク表示(ページ番号や \"»\" など)", example: "2" }),
7
+ /** 遷移先ページ番号 @example "2" */
8
+ page: z.string().meta({ description: "遷移先ページ番号", example: "2" }),
9
+ /** 現在表示中のページか @example false */
10
+ active: z.boolean().meta({ description: "現在表示中のページか", example: false }),
11
+ });
12
+ /** 受信メール一覧の 1 行 */
13
+ export const ManaboReceivedMailItemSchema = z.object({
14
+ /** メール ID(チェックボックスの value) @example "10001" */
15
+ id: z.string().meta({ description: "メール ID(チェックボックスの value)", example: "10001" }),
16
+ /** 件名 @example "レポート提出について" */
17
+ title: z.string().meta({ description: "件名", example: "レポート提出について" }),
18
+ /** 状態アイコンの alt(既読/未読等。無ければ null) @example "未読" */
19
+ statusIconAlt: z.string().nullable().meta({ description: "状態アイコンの alt(既読/未読等)", example: "未読" }),
20
+ /** 状態アイコンの src(mail_read.png=既読 / mail.png=未読 等) @example "/common/images/icons/mail.png" */
21
+ statusIconSrc: z.string().nullable().meta({ description: "状態アイコンの src", example: "/common/images/icons/mail.png" }),
22
+ /** 本文を開くリンク(多くは "#"。実体は id で開く。無ければ null) @example "#" */
23
+ mailLink: z.string().nullable().meta({ description: "本文を開くリンク", example: "#" }),
24
+ /** 送信者名(無ければ null) @example "中京 一郎" */
25
+ senderName: z.string().nullable().meta({ description: "送信者名", example: "中京 一郎" }),
26
+ /** 送信者アイコン画像 URL(無ければ null) @example "/common/images/icons/user.png" */
27
+ senderImage: z.string().nullable().meta({ description: "送信者アイコン画像 URL", example: "/common/images/icons/user.png" }),
28
+ /** 受信日時(例: "2025年6月20日(金) 19:27") @example "2025年6月20日(金) 19:27" */
29
+ receivedAt: z.string().meta({ description: "受信日時", example: "2025年6月20日(金) 19:27" }),
30
+ });
31
+ /** 受信メール一覧ページ全体 */
32
+ export const ManaboReceivedMailSchema = z.object({
33
+ /** 件数概要(例: "139件中 1 〜 30件"。無ければ null) @example "139件中 1 〜 30件" */
34
+ summary: z.string().nullable().meta({ description: "件数概要", example: "139件中 1 〜 30件" }),
35
+ /** ページネーション */
36
+ pages: z.array(ManaboMailListPageSchema).meta({ description: "ページネーション" }),
37
+ /** 受信メール行 */
38
+ mails: z.array(ManaboReceivedMailItemSchema).meta({ description: "受信メール行" }),
39
+ });
40
+ /** 送信メール一覧の 1 行 */
41
+ export const ManaboSentMailItemSchema = z.object({
42
+ /** メール ID(チェックボックスの value) @example "20001" */
43
+ id: z.string().meta({ description: "メール ID(チェックボックスの value)", example: "20001" }),
44
+ /** 件名 @example "質問の返信です" */
45
+ title: z.string().meta({ description: "件名", example: "質問の返信です" }),
46
+ /** 状態アイコンの alt(無ければ null) @example "既読" */
47
+ statusIconAlt: z.string().nullable().meta({ description: "状態アイコンの alt", example: "既読" }),
48
+ /** 状態アイコンの src @example "/common/images/icons/mail_read.png" */
49
+ statusIconSrc: z.string().nullable().meta({ description: "状態アイコンの src", example: "/common/images/icons/mail_read.png" }),
50
+ /** 本文を開くリンク(多くは "#"。無ければ null) @example "#" */
51
+ mailLink: z.string().nullable().meta({ description: "本文を開くリンク", example: "#" }),
52
+ /** 宛先名(無ければ null) @example "田中太郎" */
53
+ recipientName: z.string().nullable().meta({ description: "宛先名", example: "田中太郎" }),
54
+ /** 宛先アイコン画像 URL(無ければ null) @example "/common/images/icons/user.png" */
55
+ recipientImage: z.string().nullable().meta({ description: "宛先アイコン画像 URL", example: "/common/images/icons/user.png" }),
56
+ /** 送信日時 @example "2025年6月20日(金) 19:27" */
57
+ sentAt: z.string().meta({ description: "送信日時", example: "2025年6月20日(金) 19:27" }),
58
+ /** 未読人数(宛先のうち未読の数) @example 0 */
59
+ unreadCount: z.number().meta({ description: "未読人数(宛先のうち未読の数)", example: 0 }),
60
+ });
61
+ /** 送信メール一覧ページ全体 */
62
+ export const ManaboSentMailSchema = z.object({
63
+ /** 件数概要(例: "8件中 1 〜 8件"。無ければ null) @example "8件中 1 〜 8件" */
64
+ summary: z.string().nullable().meta({ description: "件数概要", example: "8件中 1 〜 8件" }),
65
+ /** 送信メール行 */
66
+ mails: z.array(ManaboSentMailItemSchema).meta({ description: "送信メール行" }),
67
+ });
68
+ /** メール本文閲覧モーダル */
69
+ export const ManaboMailViewSchema = z.object({
70
+ /** 件名 @example "レポート提出について" */
71
+ title: z.string().meta({ description: "件名", example: "レポート提出について" }),
72
+ /** 返信先メール ID(返信ボタンの reply_mail_id。無ければ null) @example "10001" */
73
+ replyMailId: z.string().nullable().meta({ description: "返信先メール ID", example: "10001" }),
74
+ /** 送信者のメンバー ID(返信ボタンの from_member_id。無ければ null) @example "T000000" */
75
+ fromMemberId: z.string().nullable().meta({ description: "送信者のメンバー ID", example: "T000000" }),
76
+ /** 「次へ」で開くメール ID(無ければ null) @example "10002" */
77
+ nextMailId: z.string().nullable().meta({ description: "「次へ」で開くメール ID", example: "10002" }),
78
+ /** 送信者名 @example "中京 一郎" */
79
+ senderName: z.string().meta({ description: "送信者名", example: "中京 一郎" }),
80
+ /** 送信者アイコン画像 URL(無ければ null) @example "/common/images/icons/user.png" */
81
+ senderImage: z.string().nullable().meta({ description: "送信者アイコン画像 URL", example: "/common/images/icons/user.png" }),
82
+ /** 送信日時 @example "2025年6月20日(金) 19:27" */
83
+ sentAt: z.string().meta({ description: "送信日時", example: "2025年6月20日(金) 19:27" }),
84
+ /** 本文(HTML) @example "<p>提出をお願いします。</p>" */
85
+ bodyHtml: z.string().meta({ description: "本文(HTML)", example: "<p>提出をお願いします。</p>" }),
86
+ });
87
+ /** メール作成モーダル(送信フォーム) */
88
+ export const ManaboMailSendSchema = z.object({
89
+ /** モーダルのタイトル(例: "メール作成") @example "メール作成" */
90
+ modalTitle: z.string().meta({ description: "モーダルのタイトル", example: "メール作成" }),
91
+ form: z.object({
92
+ /** フォームの action 値 @example "mail_send" */
93
+ action: z.string().meta({ description: "フォームの action 値", example: "mail_send" }),
94
+ /** 返信元メール ID(新規作成時は空。無ければ null) @example null */
95
+ replyMailId: z.string().nullable().meta({ description: "返信元メール ID", example: null }),
96
+ /** 署名(無ければ null) @example "中京 一郎" */
97
+ signature: z.string().nullable().meta({ description: "署名", example: "中京 一郎" }),
98
+ /** CSRF トークン @example "00000000000000000000000000000000" */
99
+ csrfToken: z.string().meta({ description: "CSRF トークン", example: "00000000000000000000000000000000" }),
100
+ }).meta({ description: "送信フォームの内容" }),
101
+ /** 送信ボタンのラベル(例: "送信") @example "送信" */
102
+ submitLabel: z.string().meta({ description: "送信ボタンのラベル", example: "送信" }),
103
+ });
104
+ /** メール宛先の候補メンバー一覧 */
105
+ export const ManaboMailMemberSchema = z.object({
106
+ members: z.array(z.object({
107
+ /** メンバー ID @example "T000000" */
108
+ memberId: z.string().meta({ description: "メンバー ID", example: "T000000" }),
109
+ /** メンバー名 @example "田中太郎" */
110
+ name: z.string().meta({ description: "メンバー名", example: "田中太郎" }),
111
+ /** アイコン画像 URL(無ければ null) @example "/common/images/icons/user.png" */
112
+ image: z.string().nullable().meta({ description: "アイコン画像 URL", example: "/common/images/icons/user.png" }),
113
+ })).meta({ description: "宛先候補メンバー一覧" }),
114
+ });
@@ -0,0 +1,15 @@
1
+ import { z } from "zod";
2
+ /** お知らせ 1 行(リンクを含む項目) */
3
+ export declare const ManaboNewsItemSchema: z.ZodObject<{
4
+ text: z.ZodString;
5
+ }, z.core.$strip>;
6
+ export type ManaboNewsItemDTO = z.infer<typeof ManaboNewsItemSchema>;
7
+ /** システムお知らせ一覧 */
8
+ export declare const ManaboNewsSchema: z.ZodObject<{
9
+ message: z.ZodNullable<z.ZodString>;
10
+ items: z.ZodArray<z.ZodObject<{
11
+ text: z.ZodString;
12
+ }, z.core.$strip>>;
13
+ }, z.core.$strip>;
14
+ export type ManaboNewsDTO = z.infer<typeof ManaboNewsSchema>;
15
+ //# sourceMappingURL=manaboNews.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manaboNews.d.ts","sourceRoot":"","sources":["../../../../src/manabo/types/manaboNews.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,yBAAyB;AACzB,eAAO,MAAM,oBAAoB;;iBAG/B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAErE,iBAAiB;AACjB,eAAO,MAAM,gBAAgB;;;;;iBAQ3B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { z } from "zod";
2
+ // manabo のシステムお知らせ(トップの「お知らせ」テーブル)スキーマ。
3
+ /** お知らせ 1 行(リンクを含む項目) */
4
+ export const ManaboNewsItemSchema = z.object({
5
+ /** 行のテキスト(リンク文言を含む 1 件分の内容) @example "システムメンテナンスのお知らせ" */
6
+ text: z.string().meta({ description: "行のテキスト", example: "システムメンテナンスのお知らせ" }),
7
+ });
8
+ /** システムお知らせ一覧 */
9
+ export const ManaboNewsSchema = z.object({
10
+ /** 案内メッセージ(項目がある場合は null) @example "現在システムからのお知らせはありません" */
11
+ message: z
12
+ .string()
13
+ .nullable()
14
+ .meta({ description: "案内メッセージ(項目がある場合は null)", example: "現在システムからのお知らせはありません" }),
15
+ /** お知らせ項目(リンクを持つ行)。無ければ空配列 */
16
+ items: z.array(ManaboNewsItemSchema).meta({ description: "お知らせ項目" }),
17
+ });