@spfn/cms 0.1.0-alpha.7 → 0.1.0-alpha.70

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 (224) hide show
  1. package/README.md +28 -416
  2. package/dist/{helpers/locale.actions.d.ts → actions-BpTAYuBA.d.ts} +70 -7
  3. package/dist/actions.d.ts +2 -9
  4. package/dist/actions.js +97 -10
  5. package/dist/actions.js.map +1 -1
  6. package/dist/api.d.ts +214 -0
  7. package/dist/api.js +353 -0
  8. package/dist/api.js.map +1 -0
  9. package/dist/client.d.ts +136 -127
  10. package/dist/client.js +1199 -59
  11. package/dist/client.js.map +1 -1
  12. package/dist/{types.d.ts → index-Dh5FjWzR.d.ts} +45 -7
  13. package/dist/index.d.ts +108 -16
  14. package/dist/index.js +610 -23
  15. package/dist/index.js.map +1 -1
  16. package/dist/label-sync-generator-B0EmvtWM.d.ts +32 -0
  17. package/dist/lib/contracts/labels.d.ts +151 -0
  18. package/dist/lib/contracts/labels.js +168 -0
  19. package/dist/lib/contracts/labels.js.map +1 -0
  20. package/dist/lib/contracts/published-cache.d.ts +48 -0
  21. package/dist/lib/contracts/published-cache.js +49 -0
  22. package/dist/lib/contracts/published-cache.js.map +1 -0
  23. package/dist/lib/contracts/values.d.ts +71 -0
  24. package/dist/lib/contracts/values.js +103 -0
  25. package/dist/lib/contracts/values.js.map +1 -0
  26. package/dist/locale.constants-BMBK70YM.d.ts +104 -0
  27. package/dist/{entities → server/entities}/cms-audit-logs.d.ts +15 -70
  28. package/dist/server/entities/cms-audit-logs.js +78 -0
  29. package/dist/server/entities/cms-audit-logs.js.map +1 -0
  30. package/dist/{entities → server/entities}/cms-draft-cache.d.ts +13 -73
  31. package/dist/server/entities/cms-draft-cache.js +38 -0
  32. package/dist/server/entities/cms-draft-cache.js.map +1 -0
  33. package/dist/{entities → server/entities}/cms-label-values.d.ts +16 -67
  34. package/dist/server/entities/cms-label-values.js +81 -0
  35. package/dist/server/entities/cms-label-values.js.map +1 -0
  36. package/dist/{entities → server/entities}/cms-label-versions.d.ts +16 -49
  37. package/dist/server/entities/cms-label-versions.js +76 -0
  38. package/dist/server/entities/cms-label-versions.js.map +1 -0
  39. package/dist/{entities → server/entities}/cms-labels.d.ts +17 -14
  40. package/dist/server/entities/cms-labels.js +42 -0
  41. package/dist/server/entities/cms-labels.js.map +1 -0
  42. package/dist/{entities → server/entities}/cms-published-cache.d.ts +14 -69
  43. package/dist/server/entities/cms-published-cache.js +36 -0
  44. package/dist/server/entities/cms-published-cache.js.map +1 -0
  45. package/dist/server/entities/index.d.ts +7 -0
  46. package/dist/server/entities/index.js +218 -0
  47. package/dist/server/entities/index.js.map +1 -0
  48. package/dist/server/generators/index.d.ts +19 -0
  49. package/dist/server/generators/index.js +753 -0
  50. package/dist/server/generators/index.js.map +1 -0
  51. package/dist/server/labels/index.d.ts +1 -0
  52. package/dist/server/labels/index.js +32 -0
  53. package/dist/server/labels/index.js.map +1 -0
  54. package/dist/server/repositories/index.d.ts +209 -0
  55. package/dist/server/repositories/index.js +441 -0
  56. package/dist/server/repositories/index.js.map +1 -0
  57. package/dist/server/routes/labels/[id]/index.js +508 -0
  58. package/dist/server/routes/labels/[id]/index.js.map +1 -0
  59. package/dist/{routes/labels/[id] → server/routes/labels/_id_}/index.d.ts +5 -3
  60. package/dist/server/routes/labels/by-key/[key]/index.js +458 -0
  61. package/dist/server/routes/labels/by-key/[key]/index.js.map +1 -0
  62. package/dist/server/routes/labels/by-key/_key_/index.d.ts +10 -0
  63. package/dist/server/routes/labels/index.d.ts +12 -0
  64. package/dist/server/routes/labels/index.js +617 -0
  65. package/dist/server/routes/labels/index.js.map +1 -0
  66. package/dist/server/routes/published-cache/index.d.ts +11 -0
  67. package/dist/server/routes/published-cache/index.js +369 -0
  68. package/dist/server/routes/published-cache/index.js.map +1 -0
  69. package/dist/server/routes/values/[labelId]/[version]/index.js +479 -0
  70. package/dist/server/routes/values/[labelId]/[version]/index.js.map +1 -0
  71. package/dist/server/routes/values/[labelId]/index.js +474 -0
  72. package/dist/server/routes/values/[labelId]/index.js.map +1 -0
  73. package/dist/server/routes/values/_labelId_/_version_/index.d.ts +10 -0
  74. package/dist/server/routes/values/_labelId_/index.d.ts +10 -0
  75. package/dist/server.d.ts +78 -7
  76. package/dist/server.js +1752 -247
  77. package/dist/server.js.map +1 -1
  78. package/migrations/0000_init.sql +3 -0
  79. package/migrations/0001_far_lady_vermin.sql +86 -0
  80. package/migrations/0002_heavy_the_enforcers.sql +2 -0
  81. package/migrations/meta/0000_snapshot.json +15 -0
  82. package/migrations/meta/0001_snapshot.json +687 -0
  83. package/migrations/meta/0002_snapshot.json +686 -0
  84. package/migrations/meta/_journal.json +27 -0
  85. package/package.json +55 -36
  86. package/dist/actions.d.ts.map +0 -1
  87. package/dist/client.d.ts.map +0 -1
  88. package/dist/cms.config.d.ts +0 -77
  89. package/dist/cms.config.d.ts.map +0 -1
  90. package/dist/cms.config.js +0 -111
  91. package/dist/cms.config.js.map +0 -1
  92. package/dist/entities/cms-audit-logs.d.ts.map +0 -1
  93. package/dist/entities/cms-audit-logs.js +0 -103
  94. package/dist/entities/cms-audit-logs.js.map +0 -1
  95. package/dist/entities/cms-draft-cache.d.ts.map +0 -1
  96. package/dist/entities/cms-draft-cache.js +0 -112
  97. package/dist/entities/cms-draft-cache.js.map +0 -1
  98. package/dist/entities/cms-label-values.d.ts.map +0 -1
  99. package/dist/entities/cms-label-values.js +0 -105
  100. package/dist/entities/cms-label-values.js.map +0 -1
  101. package/dist/entities/cms-label-versions.d.ts.map +0 -1
  102. package/dist/entities/cms-label-versions.js +0 -80
  103. package/dist/entities/cms-label-versions.js.map +0 -1
  104. package/dist/entities/cms-labels.d.ts.map +0 -1
  105. package/dist/entities/cms-labels.js +0 -48
  106. package/dist/entities/cms-labels.js.map +0 -1
  107. package/dist/entities/cms-published-cache.d.ts.map +0 -1
  108. package/dist/entities/cms-published-cache.js +0 -103
  109. package/dist/entities/cms-published-cache.js.map +0 -1
  110. package/dist/entities/index.d.ts +0 -10
  111. package/dist/entities/index.d.ts.map +0 -1
  112. package/dist/entities/index.js +0 -10
  113. package/dist/entities/index.js.map +0 -1
  114. package/dist/generators/index.d.ts +0 -19
  115. package/dist/generators/index.d.ts.map +0 -1
  116. package/dist/generators/index.js +0 -19
  117. package/dist/generators/index.js.map +0 -1
  118. package/dist/generators/label-sync-generator.d.ts +0 -33
  119. package/dist/generators/label-sync-generator.d.ts.map +0 -1
  120. package/dist/generators/label-sync-generator.js +0 -87
  121. package/dist/generators/label-sync-generator.js.map +0 -1
  122. package/dist/helpers/locale.actions.d.ts.map +0 -1
  123. package/dist/helpers/locale.actions.js +0 -210
  124. package/dist/helpers/locale.actions.js.map +0 -1
  125. package/dist/helpers/locale.constants.d.ts +0 -10
  126. package/dist/helpers/locale.constants.d.ts.map +0 -1
  127. package/dist/helpers/locale.constants.js +0 -10
  128. package/dist/helpers/locale.constants.js.map +0 -1
  129. package/dist/helpers/locale.d.ts +0 -17
  130. package/dist/helpers/locale.d.ts.map +0 -1
  131. package/dist/helpers/locale.js +0 -20
  132. package/dist/helpers/locale.js.map +0 -1
  133. package/dist/helpers/sync.d.ts +0 -41
  134. package/dist/helpers/sync.d.ts.map +0 -1
  135. package/dist/helpers/sync.js +0 -309
  136. package/dist/helpers/sync.js.map +0 -1
  137. package/dist/index.d.ts.map +0 -1
  138. package/dist/init.d.ts +0 -31
  139. package/dist/init.d.ts.map +0 -1
  140. package/dist/init.js +0 -36
  141. package/dist/init.js.map +0 -1
  142. package/dist/labels/helpers.d.ts +0 -31
  143. package/dist/labels/helpers.d.ts.map +0 -1
  144. package/dist/labels/helpers.js +0 -60
  145. package/dist/labels/helpers.js.map +0 -1
  146. package/dist/labels/index.d.ts +0 -7
  147. package/dist/labels/index.d.ts.map +0 -1
  148. package/dist/labels/index.js +0 -7
  149. package/dist/labels/index.js.map +0 -1
  150. package/dist/repositories/cms-draft-cache.repository.d.ts +0 -62
  151. package/dist/repositories/cms-draft-cache.repository.d.ts.map +0 -1
  152. package/dist/repositories/cms-draft-cache.repository.js +0 -56
  153. package/dist/repositories/cms-draft-cache.repository.js.map +0 -1
  154. package/dist/repositories/cms-label-values.repository.d.ts +0 -32
  155. package/dist/repositories/cms-label-values.repository.d.ts.map +0 -1
  156. package/dist/repositories/cms-label-values.repository.js +0 -72
  157. package/dist/repositories/cms-label-values.repository.js.map +0 -1
  158. package/dist/repositories/cms-labels.repository.d.ts +0 -53
  159. package/dist/repositories/cms-labels.repository.d.ts.map +0 -1
  160. package/dist/repositories/cms-labels.repository.js +0 -77
  161. package/dist/repositories/cms-labels.repository.js.map +0 -1
  162. package/dist/repositories/cms-published-cache.repository.d.ts +0 -53
  163. package/dist/repositories/cms-published-cache.repository.d.ts.map +0 -1
  164. package/dist/repositories/cms-published-cache.repository.js +0 -54
  165. package/dist/repositories/cms-published-cache.repository.js.map +0 -1
  166. package/dist/repositories/index.d.ts +0 -8
  167. package/dist/repositories/index.d.ts.map +0 -1
  168. package/dist/repositories/index.js +0 -9
  169. package/dist/repositories/index.js.map +0 -1
  170. package/dist/routes/labels/[id]/contract.d.ts +0 -68
  171. package/dist/routes/labels/[id]/contract.d.ts.map +0 -1
  172. package/dist/routes/labels/[id]/contract.js +0 -84
  173. package/dist/routes/labels/[id]/contract.js.map +0 -1
  174. package/dist/routes/labels/[id]/index.d.ts.map +0 -1
  175. package/dist/routes/labels/[id]/index.js +0 -96
  176. package/dist/routes/labels/[id]/index.js.map +0 -1
  177. package/dist/routes/labels/by-key/[key]/contract.d.ts +0 -24
  178. package/dist/routes/labels/by-key/[key]/contract.d.ts.map +0 -1
  179. package/dist/routes/labels/by-key/[key]/contract.js +0 -28
  180. package/dist/routes/labels/by-key/[key]/contract.js.map +0 -1
  181. package/dist/routes/labels/by-key/[key]/index.d.ts +0 -8
  182. package/dist/routes/labels/by-key/[key]/index.d.ts.map +0 -1
  183. package/dist/routes/labels/by-key/[key]/index.js +0 -32
  184. package/dist/routes/labels/by-key/[key]/index.js.map +0 -1
  185. package/dist/routes/labels/contract.d.ts +0 -59
  186. package/dist/routes/labels/contract.d.ts.map +0 -1
  187. package/dist/routes/labels/contract.js +0 -75
  188. package/dist/routes/labels/contract.js.map +0 -1
  189. package/dist/routes/labels/index.d.ts +0 -10
  190. package/dist/routes/labels/index.d.ts.map +0 -1
  191. package/dist/routes/labels/index.js +0 -73
  192. package/dist/routes/labels/index.js.map +0 -1
  193. package/dist/routes/published-cache/contract.d.ts +0 -25
  194. package/dist/routes/published-cache/contract.d.ts.map +0 -1
  195. package/dist/routes/published-cache/contract.js +0 -35
  196. package/dist/routes/published-cache/contract.js.map +0 -1
  197. package/dist/routes/published-cache/index.d.ts +0 -8
  198. package/dist/routes/published-cache/index.d.ts.map +0 -1
  199. package/dist/routes/published-cache/index.js +0 -33
  200. package/dist/routes/published-cache/index.js.map +0 -1
  201. package/dist/routes/values/[labelId]/[version]/contract.d.ts +0 -29
  202. package/dist/routes/values/[labelId]/[version]/contract.d.ts.map +0 -1
  203. package/dist/routes/values/[labelId]/[version]/contract.js +0 -33
  204. package/dist/routes/values/[labelId]/[version]/contract.js.map +0 -1
  205. package/dist/routes/values/[labelId]/[version]/index.d.ts +0 -8
  206. package/dist/routes/values/[labelId]/[version]/index.d.ts.map +0 -1
  207. package/dist/routes/values/[labelId]/[version]/index.js +0 -45
  208. package/dist/routes/values/[labelId]/[version]/index.js.map +0 -1
  209. package/dist/routes/values/[labelId]/contract.d.ts +0 -38
  210. package/dist/routes/values/[labelId]/contract.d.ts.map +0 -1
  211. package/dist/routes/values/[labelId]/contract.js +0 -59
  212. package/dist/routes/values/[labelId]/contract.js.map +0 -1
  213. package/dist/routes/values/[labelId]/index.d.ts +0 -8
  214. package/dist/routes/values/[labelId]/index.d.ts.map +0 -1
  215. package/dist/routes/values/[labelId]/index.js +0 -42
  216. package/dist/routes/values/[labelId]/index.js.map +0 -1
  217. package/dist/server.d.ts.map +0 -1
  218. package/dist/store.d.ts +0 -87
  219. package/dist/store.d.ts.map +0 -1
  220. package/dist/store.js +0 -205
  221. package/dist/store.js.map +0 -1
  222. package/dist/types.d.ts.map +0 -1
  223. package/dist/types.js +0 -7
  224. package/dist/types.js.map +0 -1
package/dist/api.js ADDED
@@ -0,0 +1,353 @@
1
+ // src/api/index.ts
2
+ import { client as client5 } from "@spfn/core/client";
3
+
4
+ // src/api/cms-labels.ts
5
+ import { client } from "@spfn/core/client";
6
+
7
+ // src/lib/contracts/labels.ts
8
+ import { Type } from "@sinclair/typebox";
9
+ var getLabelsContract = {
10
+ method: "GET",
11
+ path: "/_cms/labels",
12
+ query: Type.Object({
13
+ section: Type.Optional(Type.String({ description: "\uC139\uC158\uC73C\uB85C \uD544\uD130\uB9C1 (\uC608: home, why-futureplay)" })),
14
+ limit: Type.Optional(Type.Number({ minimum: 1, maximum: 100, default: 20, description: "\uD398\uC774\uC9C0\uB2F9 \uD56D\uBAA9 \uC218" })),
15
+ offset: Type.Optional(Type.Number({ minimum: 0, default: 0, description: "\uC2DC\uC791 \uC624\uD504\uC14B" })),
16
+ includeDefaultValues: Type.Optional(Type.Boolean({ description: "\uAE30\uBCF8\uAC12 \uD3EC\uD568 \uC5EC\uBD80", default: false }))
17
+ }),
18
+ response: Type.Object({
19
+ labels: Type.Array(Type.Object({
20
+ id: Type.Number(),
21
+ key: Type.String(),
22
+ section: Type.String(),
23
+ type: Type.String(),
24
+ publishedVersion: Type.Union([Type.Number(), Type.Null()]),
25
+ createdBy: Type.Union([Type.String(), Type.Null()]),
26
+ createdAt: Type.String(),
27
+ updatedAt: Type.String(),
28
+ defaultValue: Type.Optional(Type.Any({ description: "\uB77C\uBCA8 \uC815\uC758 \uD30C\uC77C\uC758 \uAE30\uBCF8\uAC12" }))
29
+ })),
30
+ total: Type.Number(),
31
+ limit: Type.Number(),
32
+ offset: Type.Number()
33
+ })
34
+ };
35
+ var createLabelContract = {
36
+ method: "POST",
37
+ path: "/_cms/labels",
38
+ body: Type.Object({
39
+ key: Type.String({
40
+ description: "\uACE0\uC720 \uD0A4 (\uC608: home.hero.title)",
41
+ pattern: "^[a-z0-9-]+\\.[a-z0-9-]+\\.[a-z0-9-]+$"
42
+ }),
43
+ section: Type.String({
44
+ description: "\uC139\uC158 \uC774\uB984 (\uC608: home, why-futureplay)",
45
+ pattern: "^[a-z0-9-]+$"
46
+ }),
47
+ type: Type.Union([
48
+ Type.Literal("text"),
49
+ Type.Literal("image"),
50
+ Type.Literal("video"),
51
+ Type.Literal("file"),
52
+ Type.Literal("object")
53
+ ], { description: "\uAC12 \uD0C0\uC785" }),
54
+ createdBy: Type.Optional(Type.String({ description: "\uC0DD\uC131\uC790 ID" }))
55
+ }),
56
+ response: Type.Union([
57
+ Type.Object({
58
+ id: Type.Number(),
59
+ key: Type.String(),
60
+ section: Type.String(),
61
+ type: Type.String(),
62
+ publishedVersion: Type.Union([Type.Number(), Type.Null()]),
63
+ createdBy: Type.Union([Type.String(), Type.Null()]),
64
+ createdAt: Type.String(),
65
+ updatedAt: Type.String()
66
+ }),
67
+ Type.Object({
68
+ error: Type.String(),
69
+ key: Type.Optional(Type.String())
70
+ })
71
+ ])
72
+ };
73
+ var getLabelContract = {
74
+ method: "GET",
75
+ path: "/_cms/labels/:id",
76
+ params: Type.Object({
77
+ id: Type.String({ description: "\uB77C\uBCA8 ID" })
78
+ }),
79
+ response: Type.Union([
80
+ Type.Object({
81
+ id: Type.Number(),
82
+ key: Type.String(),
83
+ section: Type.String(),
84
+ type: Type.String(),
85
+ publishedVersion: Type.Union([Type.Number(), Type.Null()]),
86
+ createdBy: Type.Union([Type.String(), Type.Null()]),
87
+ createdAt: Type.String(),
88
+ updatedAt: Type.String()
89
+ }),
90
+ Type.Object({
91
+ error: Type.String()
92
+ })
93
+ ])
94
+ };
95
+ var updateLabelContract = {
96
+ method: "PATCH",
97
+ path: "/_cms/labels/:id",
98
+ params: Type.Object({
99
+ id: Type.String({ description: "\uB77C\uBCA8 ID" })
100
+ }),
101
+ body: Type.Object({
102
+ section: Type.Optional(Type.String({ description: "\uC139\uC158 \uBCC0\uACBD" })),
103
+ type: Type.Optional(Type.Union([
104
+ Type.Literal("text"),
105
+ Type.Literal("image"),
106
+ Type.Literal("video"),
107
+ Type.Literal("file"),
108
+ Type.Literal("object")
109
+ ]))
110
+ }),
111
+ response: Type.Union([
112
+ Type.Object({
113
+ id: Type.Number(),
114
+ key: Type.String(),
115
+ section: Type.String(),
116
+ type: Type.String(),
117
+ publishedVersion: Type.Union([Type.Number(), Type.Null()]),
118
+ createdBy: Type.Union([Type.String(), Type.Null()]),
119
+ createdAt: Type.String(),
120
+ updatedAt: Type.String()
121
+ }),
122
+ Type.Object({
123
+ error: Type.String()
124
+ })
125
+ ])
126
+ };
127
+ var deleteLabelContract = {
128
+ method: "DELETE",
129
+ path: "/_cms/labels/:id",
130
+ params: Type.Object({
131
+ id: Type.String({ description: "\uB77C\uBCA8 ID" })
132
+ }),
133
+ response: Type.Union([
134
+ Type.Object({
135
+ success: Type.Boolean(),
136
+ id: Type.Number()
137
+ }),
138
+ Type.Object({
139
+ error: Type.String()
140
+ })
141
+ ])
142
+ };
143
+ var getLabelByKeyContract = {
144
+ method: "GET",
145
+ path: "/_cms/labels/by-key/:key",
146
+ params: Type.Object({
147
+ key: Type.String({ description: "\uB77C\uBCA8 Key (\uC608: home.hero.title)" })
148
+ }),
149
+ response: Type.Union([
150
+ Type.Object({
151
+ id: Type.Number(),
152
+ key: Type.String(),
153
+ section: Type.String(),
154
+ type: Type.String(),
155
+ publishedVersion: Type.Union([Type.Number(), Type.Null()]),
156
+ createdBy: Type.Union([Type.String(), Type.Null()]),
157
+ createdAt: Type.String(),
158
+ updatedAt: Type.String()
159
+ }),
160
+ Type.Object({
161
+ error: Type.String(),
162
+ key: Type.Optional(Type.String())
163
+ })
164
+ ])
165
+ };
166
+
167
+ // src/api/cms-labels.ts
168
+ var getLabels = (options) => client.call(getLabelsContract, options);
169
+ var createLabel = (options) => client.call(createLabelContract, options);
170
+ var getLabel = (options) => client.call(getLabelContract, options);
171
+ var updateLabel = (options) => client.call(updateLabelContract, options);
172
+ var deleteLabel = (options) => client.call(deleteLabelContract, options);
173
+
174
+ // src/api/cms-labels-by-key.ts
175
+ import { client as client2 } from "@spfn/core/client";
176
+ var getLabelByKey = (options) => client2.call(getLabelByKeyContract, options);
177
+
178
+ // src/api/cms-published-cache.ts
179
+ import { client as client3 } from "@spfn/core/client";
180
+
181
+ // src/lib/contracts/published-cache.ts
182
+ import { Type as Type2 } from "@sinclair/typebox";
183
+ var SectionData = Type2.Object({
184
+ section: Type2.String(),
185
+ locale: Type2.String(),
186
+ content: Type2.Record(Type2.String(), Type2.Any()),
187
+ version: Type2.Number(),
188
+ publishedAt: Type2.Union([Type2.String(), Type2.Null()])
189
+ });
190
+ var getPublishedCacheContract = {
191
+ method: "GET",
192
+ path: "/_cms/published-cache",
193
+ query: Type2.Object({
194
+ sections: Type2.Union([
195
+ Type2.String({ description: "\uB2E8\uC77C \uC139\uC158 \uC774\uB984 (\uC608: home)" }),
196
+ Type2.Array(Type2.String(), { description: '\uC5EC\uB7EC \uC139\uC158 \uC774\uB984 (\uC608: ["home", "footer"])' })
197
+ ]),
198
+ locale: Type2.Optional(Type2.String({ default: "ko", description: "\uC5B8\uC5B4 \uCF54\uB4DC" }))
199
+ }),
200
+ response: Type2.Union([
201
+ // 성공: 항상 배열로 반환
202
+ Type2.Array(SectionData),
203
+ // 에러
204
+ Type2.Object({
205
+ error: Type2.String()
206
+ })
207
+ ])
208
+ };
209
+ var upsertPublishedCacheContract = {
210
+ method: "POST",
211
+ path: "/_cms/published-cache",
212
+ body: Type2.Object({
213
+ section: Type2.String({ description: "\uC139\uC158 \uC774\uB984 (\uC608: home)" }),
214
+ locale: Type2.String({ description: "\uC5B8\uC5B4 \uCF54\uB4DC (\uC608: ko, en, ja)" }),
215
+ content: Type2.Record(Type2.String(), Type2.Any(), { description: "\uBC1C\uD589\uD560 \uCF58\uD150\uCE20 (key-value \uD615\uD0DC)" }),
216
+ version: Type2.Number({ description: "\uBC84\uC804 \uBC88\uD638" })
217
+ }),
218
+ response: Type2.Union([
219
+ SectionData,
220
+ Type2.Object({
221
+ error: Type2.String()
222
+ })
223
+ ])
224
+ };
225
+
226
+ // src/api/cms-published-cache.ts
227
+ var getPublishedCache = (options) => client3.call(getPublishedCacheContract, options);
228
+ var upsertPublishedCache = (options) => client3.call(upsertPublishedCacheContract, options);
229
+
230
+ // src/api/cms-values.ts
231
+ import { client as client4 } from "@spfn/core/client";
232
+
233
+ // src/lib/contracts/values.ts
234
+ import { Type as Type3 } from "@sinclair/typebox";
235
+ var LabelValueSchema = Type3.Object({
236
+ type: Type3.Union([
237
+ Type3.Literal("text"),
238
+ Type3.Literal("image"),
239
+ Type3.Literal("video"),
240
+ Type3.Literal("file"),
241
+ Type3.Literal("object")
242
+ ]),
243
+ content: Type3.Optional(Type3.String()),
244
+ // text type
245
+ url: Type3.Optional(Type3.String()),
246
+ // image, video, file types
247
+ alt: Type3.Optional(Type3.String()),
248
+ // image type
249
+ width: Type3.Optional(Type3.Number()),
250
+ // image type
251
+ height: Type3.Optional(Type3.Number()),
252
+ // image type
253
+ thumbnail: Type3.Optional(Type3.String()),
254
+ // video type
255
+ duration: Type3.Optional(Type3.Number()),
256
+ // video type
257
+ filename: Type3.Optional(Type3.String()),
258
+ // file type
259
+ size: Type3.Optional(Type3.Number()),
260
+ // file type
261
+ fields: Type3.Optional(Type3.Any())
262
+ // object type - recursive structure
263
+ });
264
+ var saveValuesContract = {
265
+ method: "POST",
266
+ path: "/_cms/values/:labelId",
267
+ params: Type3.Object({
268
+ labelId: Type3.String({ description: "\uB77C\uBCA8 ID" })
269
+ }),
270
+ body: Type3.Object({
271
+ version: Type3.Union([
272
+ Type3.Null({ description: "Draft \uC800\uC7A5 (\uB36E\uC5B4\uC4F0\uAE30)" }),
273
+ Type3.Number({ description: "\uBC84\uC804 \uBC88\uD638 (\uBD88\uBCC0)", minimum: 1 })
274
+ ]),
275
+ values: Type3.Array(
276
+ Type3.Object({
277
+ locale: Type3.String({ description: "\uC5B8\uC5B4 \uCF54\uB4DC (ko, en, ja)", default: "ko" }),
278
+ breakpoint: Type3.Optional(Type3.Union([
279
+ Type3.Literal("sm"),
280
+ Type3.Literal("md"),
281
+ Type3.Literal("lg"),
282
+ Type3.Literal("xl"),
283
+ Type3.Literal("2xl"),
284
+ Type3.Null()
285
+ ], { description: "\uBC18\uC751\uD615 \uBE0C\uB808\uC774\uD06C\uD3EC\uC778\uD2B8" })),
286
+ value: LabelValueSchema
287
+ })
288
+ )
289
+ }),
290
+ response: Type3.Union([
291
+ Type3.Object({
292
+ success: Type3.Boolean(),
293
+ saved: Type3.Number(),
294
+ version: Type3.Union([Type3.Null(), Type3.Number()])
295
+ }),
296
+ Type3.Object({
297
+ error: Type3.String()
298
+ })
299
+ ])
300
+ };
301
+ var getValuesContract = {
302
+ method: "GET",
303
+ path: "/_cms/values/:labelId/:version",
304
+ params: Type3.Object({
305
+ labelId: Type3.String({ description: "\uB77C\uBCA8 ID" }),
306
+ version: Type3.String({ description: "\uBC84\uC804 \uBC88\uD638" })
307
+ }),
308
+ query: Type3.Object({
309
+ locale: Type3.Optional(Type3.String({ description: "\uC5B8\uC5B4 \uCF54\uB4DC (ko, en, ja)" })),
310
+ breakpoint: Type3.Optional(Type3.String({ description: "\uBC18\uC751\uD615 \uBE0C\uB808\uC774\uD06C\uD3EC\uC778\uD2B8" }))
311
+ }),
312
+ response: Type3.Union([
313
+ Type3.Object({
314
+ labelId: Type3.Number(),
315
+ version: Type3.Number(),
316
+ values: Type3.Array(
317
+ Type3.Object({
318
+ id: Type3.Number(),
319
+ locale: Type3.String(),
320
+ breakpoint: Type3.Union([Type3.String(), Type3.Null()]),
321
+ value: Type3.Any(),
322
+ createdAt: Type3.String()
323
+ })
324
+ )
325
+ }),
326
+ Type3.Object({
327
+ error: Type3.String()
328
+ })
329
+ ])
330
+ };
331
+
332
+ // src/api/cms-values.ts
333
+ var saveValues = (options) => client4.call(saveValuesContract, options);
334
+ var getValues = (options) => client4.call(getValuesContract, options);
335
+
336
+ // src/api/index.ts
337
+ var cmsApi = {
338
+ getLabels,
339
+ createLabel,
340
+ getLabel,
341
+ updateLabel,
342
+ deleteLabel,
343
+ getLabelByKey,
344
+ getPublishedCache,
345
+ upsertPublishedCache,
346
+ saveValues,
347
+ getValues
348
+ };
349
+ export {
350
+ client5 as client,
351
+ cmsApi
352
+ };
353
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/api/index.ts","../src/api/cms-labels.ts","../src/lib/contracts/labels.ts","../src/api/cms-labels-by-key.ts","../src/api/cms-published-cache.ts","../src/lib/contracts/published-cache.ts","../src/api/cms-values.ts","../src/lib/contracts/values.ts"],"sourcesContent":["/**\n * Auto-generated API Client\n *\n * Generated by @spfn/core codegen\n * DO NOT EDIT MANUALLY\n *\n * @generated 2025-11-02T14:38:21.625Z\n */\n\nexport { client } from '@spfn/core/client';\n\nexport type { GetLabelsResponse, GetLabelsQuery, CreateLabelResponse, CreateLabelBody, GetLabelResponse, GetLabelParams, UpdateLabelResponse, UpdateLabelParams, UpdateLabelBody, DeleteLabelResponse, DeleteLabelParams } from './cms-labels.js';\nexport type { GetLabelByKeyResponse, GetLabelByKeyParams } from './cms-labels-by-key.js';\nexport type { GetPublishedCacheResponse, GetPublishedCacheQuery, UpsertPublishedCacheResponse, UpsertPublishedCacheBody } from './cms-published-cache.js';\nexport type { SaveValuesResponse, SaveValuesParams, SaveValuesBody, GetValuesResponse, GetValuesQuery, GetValuesParams } from './cms-values.js';\n\nimport { getLabels, createLabel, getLabel, updateLabel, deleteLabel } from './cms-labels.js';\nimport { getLabelByKey } from './cms-labels-by-key.js';\nimport { getPublishedCache, upsertPublishedCache } from './cms-published-cache.js';\nimport { saveValues, getValues } from './cms-values.js';\n\n/**\n * Type-safe API client\n */\nexport const cmsApi = {\n getLabels,\n createLabel,\n getLabel,\n updateLabel,\n deleteLabel,\n getLabelByKey,\n getPublishedCache,\n upsertPublishedCache,\n saveValues,\n getValues\n} as const;\n","/**\n * Auto-generated API Client\n *\n * Generated by @spfn/core codegen\n * DO NOT EDIT MANUALLY\n *\n * @generated 2025-11-02T14:38:21.623Z\n */\n\nimport { client } from '@spfn/core/client';\nimport type { InferContract } from '@spfn/core';\n\nimport { getLabelsContract, createLabelContract, getLabelContract, updateLabelContract, deleteLabelContract } from '@/lib/contracts/labels';\n\n// ============================================\n// Types\n// ============================================\n\nexport type GetLabelsResponse = InferContract<typeof getLabelsContract>['response'];\nexport type GetLabelsQuery = InferContract<typeof getLabelsContract>['query'];\n\nexport type CreateLabelResponse = InferContract<typeof createLabelContract>['response'];\nexport type CreateLabelBody = InferContract<typeof createLabelContract>['body'];\n\nexport type GetLabelResponse = InferContract<typeof getLabelContract>['response'];\nexport type GetLabelParams = InferContract<typeof getLabelContract>['params'];\n\nexport type UpdateLabelResponse = InferContract<typeof updateLabelContract>['response'];\nexport type UpdateLabelParams = InferContract<typeof updateLabelContract>['params'];\nexport type UpdateLabelBody = InferContract<typeof updateLabelContract>['body'];\n\nexport type DeleteLabelResponse = InferContract<typeof deleteLabelContract>['response'];\nexport type DeleteLabelParams = InferContract<typeof deleteLabelContract>['params'];\n\n// ============================================\n// API Functions\n// ============================================\n\n/**\n * GET /_cms/labels\n */\nexport const getLabels = (options: { query?: GetLabelsQuery }) => client.call(getLabelsContract, options);\n\n/**\n * POST /_cms/labels\n */\nexport const createLabel = (options: { body: CreateLabelBody }) => client.call(createLabelContract, options);\n\n/**\n * GET /_cms/labels/:id\n */\nexport const getLabel = (options: { params: GetLabelParams }) => client.call(getLabelContract, options);\n\n/**\n * PATCH /_cms/labels/:id\n */\nexport const updateLabel = (options: { params: UpdateLabelParams, body: UpdateLabelBody }) => client.call(updateLabelContract, options);\n\n/**\n * DELETE /_cms/labels/:id\n */\nexport const deleteLabel = (options: { params: DeleteLabelParams }) => client.call(deleteLabelContract, options);\n\n","import { Type } from '@sinclair/typebox';\nimport type { RouteContract } from '@spfn/core/route';\n\n/**\n * CMS Labels Contracts\n *\n * 라벨 메타데이터 관리 API\n */\n\n/**\n * GET /_cms/labels - 라벨 목록 조회\n */\nexport const getLabelsContract = {\n method: 'GET' as const,\n path: '/_cms/labels',\n query: Type.Object({\n section: Type.Optional(Type.String({ description: '섹션으로 필터링 (예: home, why-futureplay)' })),\n limit: Type.Optional(Type.Number({ minimum: 1, maximum: 100, default: 20, description: '페이지당 항목 수' })),\n offset: Type.Optional(Type.Number({ minimum: 0, default: 0, description: '시작 오프셋' })),\n includeDefaultValues: Type.Optional(Type.Boolean({ description: '기본값 포함 여부', default: false }))\n }),\n response: Type.Object({\n labels: Type.Array(Type.Object({\n id: Type.Number(),\n key: Type.String(),\n section: Type.String(),\n type: Type.String(),\n publishedVersion: Type.Union([Type.Number(), Type.Null()]),\n createdBy: Type.Union([Type.String(), Type.Null()]),\n createdAt: Type.String(),\n updatedAt: Type.String(),\n defaultValue: Type.Optional(Type.Any({ description: '라벨 정의 파일의 기본값' }))\n })),\n total: Type.Number(),\n limit: Type.Number(),\n offset: Type.Number()\n })\n} as const satisfies RouteContract;\n\n/**\n * POST /_cms/labels - 새 라벨 생성\n */\nexport const createLabelContract = {\n method: 'POST' as const,\n path: '/_cms/labels',\n body: Type.Object({\n key: Type.String({\n description: '고유 키 (예: home.hero.title)',\n pattern: '^[a-z0-9-]+\\\\.[a-z0-9-]+\\\\.[a-z0-9-]+$'\n }),\n section: Type.String({\n description: '섹션 이름 (예: home, why-futureplay)',\n pattern: '^[a-z0-9-]+$'\n }),\n type: Type.Union([\n Type.Literal('text'),\n Type.Literal('image'),\n Type.Literal('video'),\n Type.Literal('file'),\n Type.Literal('object')\n ], { description: '값 타입' }),\n createdBy: Type.Optional(Type.String({ description: '생성자 ID' }))\n }),\n response: Type.Union([\n Type.Object({\n id: Type.Number(),\n key: Type.String(),\n section: Type.String(),\n type: Type.String(),\n publishedVersion: Type.Union([Type.Number(), Type.Null()]),\n createdBy: Type.Union([Type.String(), Type.Null()]),\n createdAt: Type.String(),\n updatedAt: Type.String()\n }),\n Type.Object({\n error: Type.String(),\n key: Type.Optional(Type.String())\n })\n ])\n} as const satisfies RouteContract;\n\n/**\n * GET /_cms/labels/:id - 라벨 단건 조회\n */\nexport const getLabelContract = {\n method: 'GET' as const,\n path: '/_cms/labels/:id',\n params: Type.Object({\n id: Type.String({ description: '라벨 ID' })\n }),\n response: Type.Union([\n Type.Object({\n id: Type.Number(),\n key: Type.String(),\n section: Type.String(),\n type: Type.String(),\n publishedVersion: Type.Union([Type.Number(), Type.Null()]),\n createdBy: Type.Union([Type.String(), Type.Null()]),\n createdAt: Type.String(),\n updatedAt: Type.String()\n }),\n Type.Object({\n error: Type.String()\n })\n ])\n} as const satisfies RouteContract;\n\n/**\n * PATCH /_cms/labels/:id - 라벨 메타데이터 수정\n */\nexport const updateLabelContract = {\n method: 'PATCH' as const,\n path: '/_cms/labels/:id',\n params: Type.Object({\n id: Type.String({ description: '라벨 ID' })\n }),\n body: Type.Object({\n section: Type.Optional(Type.String({ description: '섹션 변경' })),\n type: Type.Optional(Type.Union([\n Type.Literal('text'),\n Type.Literal('image'),\n Type.Literal('video'),\n Type.Literal('file'),\n Type.Literal('object')\n ]))\n }),\n response: Type.Union([\n Type.Object({\n id: Type.Number(),\n key: Type.String(),\n section: Type.String(),\n type: Type.String(),\n publishedVersion: Type.Union([Type.Number(), Type.Null()]),\n createdBy: Type.Union([Type.String(), Type.Null()]),\n createdAt: Type.String(),\n updatedAt: Type.String()\n }),\n Type.Object({\n error: Type.String()\n })\n ])\n} as const satisfies RouteContract;\n\n/**\n * DELETE /_cms/labels/:id - 라벨 삭제\n */\nexport const deleteLabelContract = {\n method: 'DELETE' as const,\n path: '/_cms/labels/:id',\n params: Type.Object({\n id: Type.String({ description: '라벨 ID' })\n }),\n response: Type.Union([\n Type.Object({\n success: Type.Boolean(),\n id: Type.Number()\n }),\n Type.Object({\n error: Type.String()\n })\n ])\n} as const satisfies RouteContract;\n\n/**\n * GET /_cms/labels/by-key/:key - Key로 라벨 조회\n */\nexport const getLabelByKeyContract = {\n method: 'GET' as const,\n path: '/_cms/labels/by-key/:key',\n params: Type.Object({\n key: Type.String({ description: '라벨 Key (예: home.hero.title)' })\n }),\n response: Type.Union([\n Type.Object({\n id: Type.Number(),\n key: Type.String(),\n section: Type.String(),\n type: Type.String(),\n publishedVersion: Type.Union([Type.Number(), Type.Null()]),\n createdBy: Type.Union([Type.String(), Type.Null()]),\n createdAt: Type.String(),\n updatedAt: Type.String()\n }),\n Type.Object({\n error: Type.String(),\n key: Type.Optional(Type.String())\n })\n ])\n} as const satisfies RouteContract;","/**\n * Auto-generated API Client\n *\n * Generated by @spfn/core codegen\n * DO NOT EDIT MANUALLY\n *\n * @generated 2025-11-02T14:38:21.624Z\n */\n\nimport { client } from '@spfn/core/client';\nimport type { InferContract } from '@spfn/core';\n\nimport { getLabelByKeyContract } from '@/lib/contracts/labels';\n\n// ============================================\n// Types\n// ============================================\n\nexport type GetLabelByKeyResponse = InferContract<typeof getLabelByKeyContract>['response'];\nexport type GetLabelByKeyParams = InferContract<typeof getLabelByKeyContract>['params'];\n\n// ============================================\n// API Functions\n// ============================================\n\n/**\n * GET /_cms/labels/by-key/:key\n */\nexport const getLabelByKey = (options: { params: GetLabelByKeyParams }) => client.call(getLabelByKeyContract, options);\n\n","/**\n * Auto-generated API Client\n *\n * Generated by @spfn/core codegen\n * DO NOT EDIT MANUALLY\n *\n * @generated 2025-11-02T14:38:21.624Z\n */\n\nimport { client } from '@spfn/core/client';\nimport type { InferContract } from '@spfn/core';\n\nimport { getPublishedCacheContract, upsertPublishedCacheContract } from '@/lib/contracts/published-cache';\n\n// ============================================\n// Types\n// ============================================\n\nexport type GetPublishedCacheResponse = InferContract<typeof getPublishedCacheContract>['response'];\nexport type GetPublishedCacheQuery = InferContract<typeof getPublishedCacheContract>['query'];\n\nexport type UpsertPublishedCacheResponse = InferContract<typeof upsertPublishedCacheContract>['response'];\nexport type UpsertPublishedCacheBody = InferContract<typeof upsertPublishedCacheContract>['body'];\n\n// ============================================\n// API Functions\n// ============================================\n\n/**\n * GET /_cms/published-cache\n */\nexport const getPublishedCache = (options: { query?: GetPublishedCacheQuery }) => client.call(getPublishedCacheContract, options);\n\n/**\n * POST /_cms/published-cache\n */\nexport const upsertPublishedCache = (options: { body: UpsertPublishedCacheBody }) => client.call(upsertPublishedCacheContract, options);\n\n","import { Type } from '@sinclair/typebox';\nimport type { RouteContract } from '@spfn/core/route';\n\nconst SectionData = Type.Object({\n section: Type.String(),\n locale: Type.String(),\n content: Type.Record(Type.String(), Type.Any()),\n version: Type.Number(),\n publishedAt: Type.Union([Type.String(), Type.Null()]),\n});\n\n/**\n * GET /_cms/published-cache\n * 발행된 콘텐츠 캐시 조회 (단일 또는 여러 섹션)\n */\nexport const getPublishedCacheContract = {\n method: 'GET' as const,\n path: '/_cms/published-cache',\n query: Type.Object({\n sections: Type.Union([\n Type.String({ description: '단일 섹션 이름 (예: home)' }),\n Type.Array(Type.String(), { description: '여러 섹션 이름 (예: [\"home\", \"footer\"])' })\n ]),\n locale: Type.Optional(Type.String({ default: 'ko', description: '언어 코드' })),\n }),\n response: Type.Union([\n // 성공: 항상 배열로 반환\n Type.Array(SectionData),\n // 에러\n Type.Object({\n error: Type.String()\n })\n ])\n} as const satisfies RouteContract;\n\n/**\n * POST /_cms/published-cache\n * 발행된 콘텐츠 캐시 업데이트/생성 (upsert)\n */\nexport const upsertPublishedCacheContract = {\n method: 'POST' as const,\n path: '/_cms/published-cache',\n body: Type.Object({\n section: Type.String({ description: '섹션 이름 (예: home)' }),\n locale: Type.String({ description: '언어 코드 (예: ko, en, ja)' }),\n content: Type.Record(Type.String(), Type.Any(), { description: '발행할 콘텐츠 (key-value 형태)' }),\n version: Type.Number({ description: '버전 번호' })\n }),\n response: Type.Union([\n SectionData,\n Type.Object({\n error: Type.String()\n })\n ])\n} as const satisfies RouteContract;","/**\n * Auto-generated API Client\n *\n * Generated by @spfn/core codegen\n * DO NOT EDIT MANUALLY\n *\n * @generated 2025-11-02T14:38:21.625Z\n */\n\nimport { client } from '@spfn/core/client';\nimport type { InferContract } from '@spfn/core';\n\nimport { saveValuesContract, getValuesContract } from '@/lib/contracts/values';\n\n// ============================================\n// Types\n// ============================================\n\nexport type SaveValuesResponse = InferContract<typeof saveValuesContract>['response'];\nexport type SaveValuesParams = InferContract<typeof saveValuesContract>['params'];\nexport type SaveValuesBody = InferContract<typeof saveValuesContract>['body'];\n\nexport type GetValuesResponse = InferContract<typeof getValuesContract>['response'];\nexport type GetValuesQuery = InferContract<typeof getValuesContract>['query'];\nexport type GetValuesParams = InferContract<typeof getValuesContract>['params'];\n\n// ============================================\n// API Functions\n// ============================================\n\n/**\n * POST /_cms/values/:labelId\n */\nexport const saveValues = (options: { params: SaveValuesParams, body: SaveValuesBody }) => client.call(saveValuesContract, options);\n\n/**\n * GET /_cms/values/:labelId/:version\n */\nexport const getValues = (options: { params: GetValuesParams, query?: GetValuesQuery }) => client.call(getValuesContract, options);\n\n","import { Type } from '@sinclair/typebox';\nimport type { RouteContract } from '@spfn/core/route';\n\n/**\n * Label Value 타입 정의\n */\nconst LabelValueSchema = Type.Object({\n type: Type.Union([\n Type.Literal('text'),\n Type.Literal('image'),\n Type.Literal('video'),\n Type.Literal('file'),\n Type.Literal('object')\n ]),\n content: Type.Optional(Type.String()), // text type\n url: Type.Optional(Type.String()), // image, video, file types\n alt: Type.Optional(Type.String()), // image type\n width: Type.Optional(Type.Number()), // image type\n height: Type.Optional(Type.Number()), // image type\n thumbnail: Type.Optional(Type.String()), // video type\n duration: Type.Optional(Type.Number()), // video type\n filename: Type.Optional(Type.String()), // file type\n size: Type.Optional(Type.Number()), // file type\n fields: Type.Optional(Type.Any()) // object type - recursive structure\n});\n\n/**\n * POST /_cms/values/:labelId - 라벨 값 저장\n * - version: null → Draft 저장 (덮어쓰기)\n * - version: number → Published 버전 생성 (불변)\n */\nexport const saveValuesContract = {\n method: 'POST' as const,\n path: '/_cms/values/:labelId',\n params: Type.Object({\n labelId: Type.String({ description: '라벨 ID' })\n }),\n body: Type.Object({\n version: Type.Union([\n Type.Null({ description: 'Draft 저장 (덮어쓰기)' }),\n Type.Number({ description: '버전 번호 (불변)', minimum: 1 })\n ]),\n values: Type.Array(\n Type.Object({\n locale: Type.String({ description: '언어 코드 (ko, en, ja)', default: 'ko' }),\n breakpoint: Type.Optional(Type.Union([\n Type.Literal('sm'),\n Type.Literal('md'),\n Type.Literal('lg'),\n Type.Literal('xl'),\n Type.Literal('2xl'),\n Type.Null()\n ], { description: '반응형 브레이크포인트' })),\n value: LabelValueSchema\n })\n )\n }),\n response: Type.Union([\n Type.Object({\n success: Type.Boolean(),\n saved: Type.Number(),\n version: Type.Union([Type.Null(), Type.Number()])\n }),\n Type.Object({\n error: Type.String()\n })\n ])\n} as const satisfies RouteContract;\n\n/**\n * GET /_cms/values/:labelId/:version - 특정 버전의 값 조회\n */\nexport const getValuesContract = {\n method: 'GET' as const,\n path: '/_cms/values/:labelId/:version',\n params: Type.Object({\n labelId: Type.String({ description: '라벨 ID' }),\n version: Type.String({ description: '버전 번호' })\n }),\n query: Type.Object({\n locale: Type.Optional(Type.String({ description: '언어 코드 (ko, en, ja)' })),\n breakpoint: Type.Optional(Type.String({ description: '반응형 브레이크포인트' }))\n }),\n response: Type.Union([\n Type.Object({\n labelId: Type.Number(),\n version: Type.Number(),\n values: Type.Array(\n Type.Object({\n id: Type.Number(),\n locale: Type.String(),\n breakpoint: Type.Union([Type.String(), Type.Null()]),\n value: Type.Any(),\n createdAt: Type.String()\n })\n )\n }),\n Type.Object({\n error: Type.String()\n })\n ])\n} as const satisfies RouteContract;"],"mappings":"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","names":["client","client","client","client","Type","client","client","Type","client"]}