@starlightcms/js-sdk 4.0.0-beta.2 → 4.0.0-beta.3

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 (304) hide show
  1. package/dist/index.cjs +397 -0
  2. package/dist/index.d.cts +5087 -0
  3. package/dist/index.d.cts.map +1 -0
  4. package/dist/index.d.mts +5087 -0
  5. package/dist/index.d.mts.map +1 -0
  6. package/dist/index.mjs +391 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +18 -13
  9. package/dist/cjs/client.d.ts +0 -42
  10. package/dist/cjs/client.d.ts.map +0 -1
  11. package/dist/cjs/client.js +0 -145
  12. package/dist/cjs/client.js.map +0 -1
  13. package/dist/cjs/errors.d.ts +0 -40
  14. package/dist/cjs/errors.d.ts.map +0 -1
  15. package/dist/cjs/errors.js +0 -18
  16. package/dist/cjs/errors.js.map +0 -1
  17. package/dist/cjs/index.d.ts +0 -29
  18. package/dist/cjs/index.d.ts.map +0 -1
  19. package/dist/cjs/index.js +0 -47
  20. package/dist/cjs/index.js.map +0 -1
  21. package/dist/cjs/instances/Collection/index.d.ts +0 -5
  22. package/dist/cjs/instances/Collection/index.d.ts.map +0 -1
  23. package/dist/cjs/instances/Collection/index.js +0 -14
  24. package/dist/cjs/instances/Collection/index.js.map +0 -1
  25. package/dist/cjs/instances/Collection/types.d.ts +0 -79
  26. package/dist/cjs/instances/Collection/types.d.ts.map +0 -1
  27. package/dist/cjs/instances/Collection/types.js +0 -3
  28. package/dist/cjs/instances/Collection/types.js.map +0 -1
  29. package/dist/cjs/instances/Form/index.d.ts +0 -5
  30. package/dist/cjs/instances/Form/index.d.ts.map +0 -1
  31. package/dist/cjs/instances/Form/index.js +0 -14
  32. package/dist/cjs/instances/Form/index.js.map +0 -1
  33. package/dist/cjs/instances/Form/types.d.ts +0 -46
  34. package/dist/cjs/instances/Form/types.d.ts.map +0 -1
  35. package/dist/cjs/instances/Form/types.js +0 -3
  36. package/dist/cjs/instances/Form/types.js.map +0 -1
  37. package/dist/cjs/instances/Model/index.d.ts +0 -5
  38. package/dist/cjs/instances/Model/index.d.ts.map +0 -1
  39. package/dist/cjs/instances/Model/index.js +0 -34
  40. package/dist/cjs/instances/Model/index.js.map +0 -1
  41. package/dist/cjs/instances/Model/types.d.ts +0 -102
  42. package/dist/cjs/instances/Model/types.d.ts.map +0 -1
  43. package/dist/cjs/instances/Model/types.js +0 -3
  44. package/dist/cjs/instances/Model/types.js.map +0 -1
  45. package/dist/cjs/instances/ModelCategory/index.d.ts +0 -5
  46. package/dist/cjs/instances/ModelCategory/index.d.ts.map +0 -1
  47. package/dist/cjs/instances/ModelCategory/index.js +0 -14
  48. package/dist/cjs/instances/ModelCategory/index.js.map +0 -1
  49. package/dist/cjs/instances/ModelCategory/types.d.ts +0 -76
  50. package/dist/cjs/instances/ModelCategory/types.d.ts.map +0 -1
  51. package/dist/cjs/instances/ModelCategory/types.js +0 -3
  52. package/dist/cjs/instances/ModelCategory/types.js.map +0 -1
  53. package/dist/cjs/selectors/Collection/index.d.ts +0 -5
  54. package/dist/cjs/selectors/Collection/index.d.ts.map +0 -1
  55. package/dist/cjs/selectors/Collection/index.js +0 -26
  56. package/dist/cjs/selectors/Collection/index.js.map +0 -1
  57. package/dist/cjs/selectors/Collection/types.d.ts +0 -98
  58. package/dist/cjs/selectors/Collection/types.d.ts.map +0 -1
  59. package/dist/cjs/selectors/Collection/types.js +0 -3
  60. package/dist/cjs/selectors/Collection/types.js.map +0 -1
  61. package/dist/cjs/selectors/Entry/index.d.ts +0 -5
  62. package/dist/cjs/selectors/Entry/index.d.ts.map +0 -1
  63. package/dist/cjs/selectors/Entry/index.js +0 -14
  64. package/dist/cjs/selectors/Entry/index.js.map +0 -1
  65. package/dist/cjs/selectors/Entry/types.d.ts +0 -138
  66. package/dist/cjs/selectors/Entry/types.d.ts.map +0 -1
  67. package/dist/cjs/selectors/Entry/types.js +0 -3
  68. package/dist/cjs/selectors/Entry/types.js.map +0 -1
  69. package/dist/cjs/selectors/Form/index.d.ts +0 -4
  70. package/dist/cjs/selectors/Form/index.d.ts.map +0 -1
  71. package/dist/cjs/selectors/Form/index.js +0 -18
  72. package/dist/cjs/selectors/Form/index.js.map +0 -1
  73. package/dist/cjs/selectors/Form/types.d.ts +0 -22
  74. package/dist/cjs/selectors/Form/types.d.ts.map +0 -1
  75. package/dist/cjs/selectors/Form/types.js +0 -3
  76. package/dist/cjs/selectors/Form/types.js.map +0 -1
  77. package/dist/cjs/selectors/Media/index.d.ts +0 -5
  78. package/dist/cjs/selectors/Media/index.d.ts.map +0 -1
  79. package/dist/cjs/selectors/Media/index.js +0 -14
  80. package/dist/cjs/selectors/Media/index.js.map +0 -1
  81. package/dist/cjs/selectors/Media/types.d.ts +0 -49
  82. package/dist/cjs/selectors/Media/types.d.ts.map +0 -1
  83. package/dist/cjs/selectors/Media/types.js +0 -3
  84. package/dist/cjs/selectors/Media/types.js.map +0 -1
  85. package/dist/cjs/selectors/Model/index.d.ts +0 -5
  86. package/dist/cjs/selectors/Model/index.d.ts.map +0 -1
  87. package/dist/cjs/selectors/Model/index.js +0 -26
  88. package/dist/cjs/selectors/Model/index.js.map +0 -1
  89. package/dist/cjs/selectors/Model/types.d.ts +0 -78
  90. package/dist/cjs/selectors/Model/types.d.ts.map +0 -1
  91. package/dist/cjs/selectors/Model/types.js +0 -3
  92. package/dist/cjs/selectors/Model/types.js.map +0 -1
  93. package/dist/cjs/selectors/ModelCategory/index.d.ts +0 -5
  94. package/dist/cjs/selectors/ModelCategory/index.d.ts.map +0 -1
  95. package/dist/cjs/selectors/ModelCategory/index.js +0 -26
  96. package/dist/cjs/selectors/ModelCategory/index.js.map +0 -1
  97. package/dist/cjs/selectors/ModelCategory/types.d.ts +0 -87
  98. package/dist/cjs/selectors/ModelCategory/types.d.ts.map +0 -1
  99. package/dist/cjs/selectors/ModelCategory/types.js +0 -3
  100. package/dist/cjs/selectors/ModelCategory/types.js.map +0 -1
  101. package/dist/cjs/selectors/Search/index.d.ts +0 -5
  102. package/dist/cjs/selectors/Search/index.d.ts.map +0 -1
  103. package/dist/cjs/selectors/Search/index.js +0 -11
  104. package/dist/cjs/selectors/Search/index.js.map +0 -1
  105. package/dist/cjs/selectors/Search/types.d.ts +0 -90
  106. package/dist/cjs/selectors/Search/types.d.ts.map +0 -1
  107. package/dist/cjs/selectors/Search/types.js +0 -3
  108. package/dist/cjs/selectors/Search/types.js.map +0 -1
  109. package/dist/cjs/selectors/Singleton/index.d.ts +0 -5
  110. package/dist/cjs/selectors/Singleton/index.d.ts.map +0 -1
  111. package/dist/cjs/selectors/Singleton/index.js +0 -14
  112. package/dist/cjs/selectors/Singleton/index.js.map +0 -1
  113. package/dist/cjs/selectors/Singleton/types.d.ts +0 -64
  114. package/dist/cjs/selectors/Singleton/types.d.ts.map +0 -1
  115. package/dist/cjs/selectors/Singleton/types.js +0 -3
  116. package/dist/cjs/selectors/Singleton/types.js.map +0 -1
  117. package/dist/cjs/types/entities.d.ts +0 -362
  118. package/dist/cjs/types/entities.d.ts.map +0 -1
  119. package/dist/cjs/types/entities.js +0 -3
  120. package/dist/cjs/types/entities.js.map +0 -1
  121. package/dist/cjs/types/fields.d.ts +0 -123
  122. package/dist/cjs/types/fields.d.ts.map +0 -1
  123. package/dist/cjs/types/fields.js +0 -3
  124. package/dist/cjs/types/fields.js.map +0 -1
  125. package/dist/cjs/types/groups.d.ts +0 -30
  126. package/dist/cjs/types/groups.d.ts.map +0 -1
  127. package/dist/cjs/types/groups.js +0 -3
  128. package/dist/cjs/types/groups.js.map +0 -1
  129. package/dist/cjs/types/index.d.ts +0 -629
  130. package/dist/cjs/types/index.d.ts.map +0 -1
  131. package/dist/cjs/types/index.js +0 -24
  132. package/dist/cjs/types/index.js.map +0 -1
  133. package/dist/cjs/types/instances.d.ts +0 -4
  134. package/dist/cjs/types/instances.d.ts.map +0 -1
  135. package/dist/cjs/types/instances.js +0 -3
  136. package/dist/cjs/types/instances.js.map +0 -1
  137. package/dist/cjs/types/selectors.d.ts +0 -8
  138. package/dist/cjs/types/selectors.d.ts.map +0 -1
  139. package/dist/cjs/types/selectors.js +0 -3
  140. package/dist/cjs/types/selectors.js.map +0 -1
  141. package/dist/cjs/types/utilities.d.ts +0 -83
  142. package/dist/cjs/types/utilities.d.ts.map +0 -1
  143. package/dist/cjs/types/utilities.js +0 -3
  144. package/dist/cjs/types/utilities.js.map +0 -1
  145. package/dist/cjs/types/visual.d.ts +0 -185
  146. package/dist/cjs/types/visual.d.ts.map +0 -1
  147. package/dist/cjs/types/visual.js +0 -3
  148. package/dist/cjs/types/visual.js.map +0 -1
  149. package/dist/cjs/utils/image.d.ts +0 -72
  150. package/dist/cjs/utils/image.d.ts.map +0 -1
  151. package/dist/cjs/utils/image.js +0 -101
  152. package/dist/cjs/utils/image.js.map +0 -1
  153. package/dist/cjs/utils/index.d.ts +0 -2
  154. package/dist/cjs/utils/index.d.ts.map +0 -1
  155. package/dist/cjs/utils/index.js +0 -18
  156. package/dist/cjs/utils/index.js.map +0 -1
  157. package/dist/esm/client.d.ts +0 -42
  158. package/dist/esm/client.d.ts.map +0 -1
  159. package/dist/esm/client.js +0 -139
  160. package/dist/esm/client.js.map +0 -1
  161. package/dist/esm/errors.d.ts +0 -40
  162. package/dist/esm/errors.d.ts.map +0 -1
  163. package/dist/esm/errors.js +0 -14
  164. package/dist/esm/errors.js.map +0 -1
  165. package/dist/esm/index.d.ts +0 -29
  166. package/dist/esm/index.d.ts.map +0 -1
  167. package/dist/esm/index.js +0 -29
  168. package/dist/esm/index.js.map +0 -1
  169. package/dist/esm/instances/Collection/index.d.ts +0 -5
  170. package/dist/esm/instances/Collection/index.d.ts.map +0 -1
  171. package/dist/esm/instances/Collection/index.js +0 -11
  172. package/dist/esm/instances/Collection/index.js.map +0 -1
  173. package/dist/esm/instances/Collection/types.d.ts +0 -79
  174. package/dist/esm/instances/Collection/types.d.ts.map +0 -1
  175. package/dist/esm/instances/Collection/types.js +0 -2
  176. package/dist/esm/instances/Collection/types.js.map +0 -1
  177. package/dist/esm/instances/Form/index.d.ts +0 -5
  178. package/dist/esm/instances/Form/index.d.ts.map +0 -1
  179. package/dist/esm/instances/Form/index.js +0 -11
  180. package/dist/esm/instances/Form/index.js.map +0 -1
  181. package/dist/esm/instances/Form/types.d.ts +0 -46
  182. package/dist/esm/instances/Form/types.d.ts.map +0 -1
  183. package/dist/esm/instances/Form/types.js +0 -2
  184. package/dist/esm/instances/Form/types.js.map +0 -1
  185. package/dist/esm/instances/Model/index.d.ts +0 -5
  186. package/dist/esm/instances/Model/index.d.ts.map +0 -1
  187. package/dist/esm/instances/Model/index.js +0 -28
  188. package/dist/esm/instances/Model/index.js.map +0 -1
  189. package/dist/esm/instances/Model/types.d.ts +0 -102
  190. package/dist/esm/instances/Model/types.d.ts.map +0 -1
  191. package/dist/esm/instances/Model/types.js +0 -2
  192. package/dist/esm/instances/Model/types.js.map +0 -1
  193. package/dist/esm/instances/ModelCategory/index.d.ts +0 -5
  194. package/dist/esm/instances/ModelCategory/index.d.ts.map +0 -1
  195. package/dist/esm/instances/ModelCategory/index.js +0 -11
  196. package/dist/esm/instances/ModelCategory/index.js.map +0 -1
  197. package/dist/esm/instances/ModelCategory/types.d.ts +0 -76
  198. package/dist/esm/instances/ModelCategory/types.d.ts.map +0 -1
  199. package/dist/esm/instances/ModelCategory/types.js +0 -2
  200. package/dist/esm/instances/ModelCategory/types.js.map +0 -1
  201. package/dist/esm/selectors/Collection/index.d.ts +0 -5
  202. package/dist/esm/selectors/Collection/index.d.ts.map +0 -1
  203. package/dist/esm/selectors/Collection/index.js +0 -20
  204. package/dist/esm/selectors/Collection/index.js.map +0 -1
  205. package/dist/esm/selectors/Collection/types.d.ts +0 -98
  206. package/dist/esm/selectors/Collection/types.d.ts.map +0 -1
  207. package/dist/esm/selectors/Collection/types.js +0 -2
  208. package/dist/esm/selectors/Collection/types.js.map +0 -1
  209. package/dist/esm/selectors/Entry/index.d.ts +0 -5
  210. package/dist/esm/selectors/Entry/index.d.ts.map +0 -1
  211. package/dist/esm/selectors/Entry/index.js +0 -11
  212. package/dist/esm/selectors/Entry/index.js.map +0 -1
  213. package/dist/esm/selectors/Entry/types.d.ts +0 -138
  214. package/dist/esm/selectors/Entry/types.d.ts.map +0 -1
  215. package/dist/esm/selectors/Entry/types.js +0 -2
  216. package/dist/esm/selectors/Entry/types.js.map +0 -1
  217. package/dist/esm/selectors/Form/index.d.ts +0 -4
  218. package/dist/esm/selectors/Form/index.d.ts.map +0 -1
  219. package/dist/esm/selectors/Form/index.js +0 -12
  220. package/dist/esm/selectors/Form/index.js.map +0 -1
  221. package/dist/esm/selectors/Form/types.d.ts +0 -22
  222. package/dist/esm/selectors/Form/types.d.ts.map +0 -1
  223. package/dist/esm/selectors/Form/types.js +0 -2
  224. package/dist/esm/selectors/Form/types.js.map +0 -1
  225. package/dist/esm/selectors/Media/index.d.ts +0 -5
  226. package/dist/esm/selectors/Media/index.d.ts.map +0 -1
  227. package/dist/esm/selectors/Media/index.js +0 -11
  228. package/dist/esm/selectors/Media/index.js.map +0 -1
  229. package/dist/esm/selectors/Media/types.d.ts +0 -49
  230. package/dist/esm/selectors/Media/types.d.ts.map +0 -1
  231. package/dist/esm/selectors/Media/types.js +0 -2
  232. package/dist/esm/selectors/Media/types.js.map +0 -1
  233. package/dist/esm/selectors/Model/index.d.ts +0 -5
  234. package/dist/esm/selectors/Model/index.d.ts.map +0 -1
  235. package/dist/esm/selectors/Model/index.js +0 -20
  236. package/dist/esm/selectors/Model/index.js.map +0 -1
  237. package/dist/esm/selectors/Model/types.d.ts +0 -78
  238. package/dist/esm/selectors/Model/types.d.ts.map +0 -1
  239. package/dist/esm/selectors/Model/types.js +0 -2
  240. package/dist/esm/selectors/Model/types.js.map +0 -1
  241. package/dist/esm/selectors/ModelCategory/index.d.ts +0 -5
  242. package/dist/esm/selectors/ModelCategory/index.d.ts.map +0 -1
  243. package/dist/esm/selectors/ModelCategory/index.js +0 -20
  244. package/dist/esm/selectors/ModelCategory/index.js.map +0 -1
  245. package/dist/esm/selectors/ModelCategory/types.d.ts +0 -87
  246. package/dist/esm/selectors/ModelCategory/types.d.ts.map +0 -1
  247. package/dist/esm/selectors/ModelCategory/types.js +0 -2
  248. package/dist/esm/selectors/ModelCategory/types.js.map +0 -1
  249. package/dist/esm/selectors/Search/index.d.ts +0 -5
  250. package/dist/esm/selectors/Search/index.d.ts.map +0 -1
  251. package/dist/esm/selectors/Search/index.js +0 -8
  252. package/dist/esm/selectors/Search/index.js.map +0 -1
  253. package/dist/esm/selectors/Search/types.d.ts +0 -90
  254. package/dist/esm/selectors/Search/types.d.ts.map +0 -1
  255. package/dist/esm/selectors/Search/types.js +0 -2
  256. package/dist/esm/selectors/Search/types.js.map +0 -1
  257. package/dist/esm/selectors/Singleton/index.d.ts +0 -5
  258. package/dist/esm/selectors/Singleton/index.d.ts.map +0 -1
  259. package/dist/esm/selectors/Singleton/index.js +0 -11
  260. package/dist/esm/selectors/Singleton/index.js.map +0 -1
  261. package/dist/esm/selectors/Singleton/types.d.ts +0 -64
  262. package/dist/esm/selectors/Singleton/types.d.ts.map +0 -1
  263. package/dist/esm/selectors/Singleton/types.js +0 -2
  264. package/dist/esm/selectors/Singleton/types.js.map +0 -1
  265. package/dist/esm/types/entities.d.ts +0 -362
  266. package/dist/esm/types/entities.d.ts.map +0 -1
  267. package/dist/esm/types/entities.js +0 -2
  268. package/dist/esm/types/entities.js.map +0 -1
  269. package/dist/esm/types/fields.d.ts +0 -123
  270. package/dist/esm/types/fields.d.ts.map +0 -1
  271. package/dist/esm/types/fields.js +0 -2
  272. package/dist/esm/types/fields.js.map +0 -1
  273. package/dist/esm/types/groups.d.ts +0 -30
  274. package/dist/esm/types/groups.d.ts.map +0 -1
  275. package/dist/esm/types/groups.js +0 -2
  276. package/dist/esm/types/groups.js.map +0 -1
  277. package/dist/esm/types/index.d.ts +0 -629
  278. package/dist/esm/types/index.d.ts.map +0 -1
  279. package/dist/esm/types/index.js +0 -8
  280. package/dist/esm/types/index.js.map +0 -1
  281. package/dist/esm/types/instances.d.ts +0 -4
  282. package/dist/esm/types/instances.d.ts.map +0 -1
  283. package/dist/esm/types/instances.js +0 -2
  284. package/dist/esm/types/instances.js.map +0 -1
  285. package/dist/esm/types/selectors.d.ts +0 -8
  286. package/dist/esm/types/selectors.d.ts.map +0 -1
  287. package/dist/esm/types/selectors.js +0 -2
  288. package/dist/esm/types/selectors.js.map +0 -1
  289. package/dist/esm/types/utilities.d.ts +0 -83
  290. package/dist/esm/types/utilities.d.ts.map +0 -1
  291. package/dist/esm/types/utilities.js +0 -2
  292. package/dist/esm/types/utilities.js.map +0 -1
  293. package/dist/esm/types/visual.d.ts +0 -185
  294. package/dist/esm/types/visual.d.ts.map +0 -1
  295. package/dist/esm/types/visual.js +0 -2
  296. package/dist/esm/types/visual.js.map +0 -1
  297. package/dist/esm/utils/image.d.ts +0 -72
  298. package/dist/esm/utils/image.d.ts.map +0 -1
  299. package/dist/esm/utils/image.js +0 -96
  300. package/dist/esm/utils/image.js.map +0 -1
  301. package/dist/esm/utils/index.d.ts +0 -2
  302. package/dist/esm/utils/index.d.ts.map +0 -1
  303. package/dist/esm/utils/index.js +0 -2
  304. package/dist/esm/utils/index.js.map +0 -1
@@ -1,42 +0,0 @@
1
- import { DefaultModelDefinition, DynamicStarlightClient, StarlightConfig, WorkspaceModelDefinition } from './types';
2
- /**
3
- * Returns a new {@link DynamicStarlightClient}, which is a
4
- * {@link StarlightClient} with support to create
5
- * {@apilink ModelInstance | ModelInstances} using the dynamic syntax. To learn
6
- * which methods a client supports, see {@link StarlightClient}.
7
- *
8
- * This function accepts a {@link StarlightConfig} object and can be used to
9
- * create new clients that connect to a single Starlight workspace. Each client
10
- * returned by this function is separate and independent of the others.
11
- *
12
- * If you only need to make requests to a single workspace, it's probably easier
13
- * to use the SDK's default client. To use it, you only need to
14
- * import the default object exported by the SDK:
15
- *
16
- * ```ts
17
- * // `Starlight` below is the default StarlightClient.
18
- * import Starlight from '@starlightcms/js-sdk'
19
- * ```
20
- *
21
- * See {@link default} for more info on how to use the default client.
22
- *
23
- * @example Creating a new client and exporting it.
24
- * ```ts
25
- * import { makeStarlightClient } from '@starlightcms/js-sdk'
26
- *
27
- * const BlogClient = makeStarlightClient({
28
- * workspace: '123123123',
29
- * debug: true
30
- * })
31
- *
32
- * // Feel free to export the new client so your application can use it.
33
- * export default BlogClient
34
- * ```
35
- *
36
- * @param config The client configuration object. You need to provide at least
37
- * the `workspace` property. See {@link StarlightConfig} to view all the
38
- * available options.
39
- * @group Client
40
- */
41
- export declare function makeClient<D extends WorkspaceModelDefinition = DefaultModelDefinition>(config?: StarlightConfig): DynamicStarlightClient<D & WorkspaceModelDefinition>;
42
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EAEtB,eAAe,EACf,wBAAwB,EACzB,MAAM,SAAS,CAAA;AAYhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,UAAU,CACxB,CAAC,SAAS,wBAAwB,GAAG,sBAAsB,EAE3D,MAAM,GAAE,eAAoB,GAC3B,sBAAsB,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAoGtD"}
@@ -1,139 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { StarlightError } from './errors';
11
- import makeModelSelector from './selectors/Model';
12
- import makeModelInstance from './instances/Model';
13
- import makeSingletonSelector from './selectors/Singleton';
14
- import makeCollectionSelector from './selectors/Collection';
15
- import makeMediaSelector from './selectors/Media';
16
- import makeSearchSelector from './selectors/Search';
17
- import makeCollectionInstance from './instances/Collection';
18
- import makeFormSelector from './selectors/Form';
19
- import makeFormInstance from './instances/Form';
20
- /**
21
- * Returns a new {@link DynamicStarlightClient}, which is a
22
- * {@link StarlightClient} with support to create
23
- * {@apilink ModelInstance | ModelInstances} using the dynamic syntax. To learn
24
- * which methods a client supports, see {@link StarlightClient}.
25
- *
26
- * This function accepts a {@link StarlightConfig} object and can be used to
27
- * create new clients that connect to a single Starlight workspace. Each client
28
- * returned by this function is separate and independent of the others.
29
- *
30
- * If you only need to make requests to a single workspace, it's probably easier
31
- * to use the SDK's default client. To use it, you only need to
32
- * import the default object exported by the SDK:
33
- *
34
- * ```ts
35
- * // `Starlight` below is the default StarlightClient.
36
- * import Starlight from '@starlightcms/js-sdk'
37
- * ```
38
- *
39
- * See {@link default} for more info on how to use the default client.
40
- *
41
- * @example Creating a new client and exporting it.
42
- * ```ts
43
- * import { makeStarlightClient } from '@starlightcms/js-sdk'
44
- *
45
- * const BlogClient = makeStarlightClient({
46
- * workspace: '123123123',
47
- * debug: true
48
- * })
49
- *
50
- * // Feel free to export the new client so your application can use it.
51
- * export default BlogClient
52
- * ```
53
- *
54
- * @param config The client configuration object. You need to provide at least
55
- * the `workspace` property. See {@link StarlightConfig} to view all the
56
- * available options.
57
- * @group Client
58
- */
59
- export function makeClient(config = {}) {
60
- var _a, _b, _c;
61
- let baseUrl = (_a = config.baseUrl) !== null && _a !== void 0 ? _a : 'https://query.starlightcms.io/v2';
62
- let workspace = (_b = config.workspace) !== null && _b !== void 0 ? _b : '';
63
- let debug = (_c = config.debug) !== null && _c !== void 0 ? _c : false;
64
- const client = {
65
- configure(config) {
66
- var _a, _b, _c;
67
- baseUrl = (_a = config.baseUrl) !== null && _a !== void 0 ? _a : baseUrl;
68
- workspace = (_b = config.workspace) !== null && _b !== void 0 ? _b : workspace;
69
- debug = (_c = config.debug) !== null && _c !== void 0 ? _c : debug;
70
- },
71
- log(message, ...optionalParams) {
72
- if (debug)
73
- console.log(message, ...optionalParams);
74
- },
75
- getBaseUrl() {
76
- if (!workspace.length) {
77
- throw new Error('No workspace defined. Use the `configure()` method on the Starlight client to define one.');
78
- }
79
- return `${baseUrl}/workspaces/${workspace}`;
80
- },
81
- get(path_1) {
82
- return __awaiter(this, arguments, void 0, function* (path, params = {}, options) {
83
- const filteredParams = Object.keys(params).reduce((accumulator, key) => {
84
- const param = params[key];
85
- if (param || param === false || param === 0)
86
- accumulator[key] = String(param);
87
- return accumulator;
88
- }, {});
89
- const searchParams = new URLSearchParams(filteredParams).toString();
90
- const finalPath = searchParams ? `${path}?${searchParams}` : path;
91
- this.log(`Starlight - GET ${finalPath}`);
92
- const response = yield fetch(`${this.getBaseUrl()}${finalPath}`, options);
93
- if (response.status >= 200 && response.status < 300) {
94
- return yield response.json();
95
- }
96
- else {
97
- const message = `Starlight - GET ${path} returned ${response.status}: ${response.statusText}`;
98
- throw new StarlightError(message, response);
99
- }
100
- });
101
- },
102
- get models() {
103
- return makeModelSelector(this);
104
- },
105
- model(slug) {
106
- return makeModelInstance(this, slug);
107
- },
108
- get forms() {
109
- return makeFormSelector(this);
110
- },
111
- form(slug) {
112
- return makeFormInstance(this, String(slug));
113
- },
114
- get singletons() {
115
- return makeSingletonSelector(this);
116
- },
117
- get collections() {
118
- return makeCollectionSelector(this);
119
- },
120
- collection(slug) {
121
- return makeCollectionInstance(this, slug);
122
- },
123
- get media() {
124
- return makeMediaSelector(this);
125
- },
126
- get search() {
127
- return makeSearchSelector(this);
128
- },
129
- };
130
- return new Proxy(client, {
131
- get(target, prop) {
132
- if (typeof prop === 'string' && !Reflect.has(target, prop)) {
133
- return makeModelInstance(target, prop);
134
- }
135
- return Reflect.get(target, prop);
136
- },
137
- });
138
- }
139
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DefaultModelDefinition,\n DynamicStarlightClient,\n StarlightClient,\n StarlightConfig,\n WorkspaceModelDefinition,\n} from './types'\nimport { StarlightError } from './errors'\nimport makeModelSelector from './selectors/Model'\nimport makeModelInstance from './instances/Model'\nimport makeSingletonSelector from './selectors/Singleton'\nimport makeCollectionSelector from './selectors/Collection'\nimport makeMediaSelector from './selectors/Media'\nimport makeSearchSelector from './selectors/Search'\nimport makeCollectionInstance from './instances/Collection'\nimport makeFormSelector from './selectors/Form'\nimport makeFormInstance from './instances/Form'\n\n/**\n * Returns a new {@link DynamicStarlightClient}, which is a\n * {@link StarlightClient} with support to create\n * {@apilink ModelInstance | ModelInstances} using the dynamic syntax. To learn\n * which methods a client supports, see {@link StarlightClient}.\n *\n * This function accepts a {@link StarlightConfig} object and can be used to\n * create new clients that connect to a single Starlight workspace. Each client\n * returned by this function is separate and independent of the others.\n *\n * If you only need to make requests to a single workspace, it's probably easier\n * to use the SDK's default client. To use it, you only need to\n * import the default object exported by the SDK:\n *\n * ```ts\n * // `Starlight` below is the default StarlightClient.\n * import Starlight from '@starlightcms/js-sdk'\n * ```\n *\n * See {@link default} for more info on how to use the default client.\n *\n * @example Creating a new client and exporting it.\n * ```ts\n * import { makeStarlightClient } from '@starlightcms/js-sdk'\n *\n * const BlogClient = makeStarlightClient({\n * workspace: '123123123',\n * debug: true\n * })\n *\n * // Feel free to export the new client so your application can use it.\n * export default BlogClient\n * ```\n *\n * @param config The client configuration object. You need to provide at least\n * the `workspace` property. See {@link StarlightConfig} to view all the\n * available options.\n * @group Client\n */\nexport function makeClient<\n D extends WorkspaceModelDefinition = DefaultModelDefinition,\n>(\n config: StarlightConfig = {},\n): DynamicStarlightClient<D & WorkspaceModelDefinition> {\n let baseUrl = config.baseUrl ?? 'https://query.starlightcms.io/v2'\n let workspace = config.workspace ?? ''\n let debug = config.debug ?? false\n\n const client: StarlightClient = {\n configure(config) {\n baseUrl = config.baseUrl ?? baseUrl\n workspace = config.workspace ?? workspace\n debug = config.debug ?? debug\n },\n\n log(message, ...optionalParams) {\n if (debug) console.log(message, ...optionalParams)\n },\n\n getBaseUrl() {\n if (!workspace.length) {\n throw new Error(\n 'No workspace defined. Use the `configure()` method on the Starlight client to define one.',\n )\n }\n\n return `${baseUrl}/workspaces/${workspace}`\n },\n\n async get(path, params = {}, options) {\n const filteredParams = Object.keys(params).reduce(\n (accumulator, key) => {\n const param = params[key]\n\n if (param || param === false || param === 0)\n accumulator[key] = String(param)\n\n return accumulator\n },\n {} as Record<string, string>,\n )\n\n const searchParams = new URLSearchParams(filteredParams).toString()\n const finalPath = searchParams ? `${path}?${searchParams}` : path\n\n this.log(`Starlight - GET ${finalPath}`)\n\n const response = await fetch(`${this.getBaseUrl()}${finalPath}`, options)\n\n if (response.status >= 200 && response.status < 300) {\n return await response.json()\n } else {\n const message = `Starlight - GET ${path} returned ${response.status}: ${response.statusText}`\n throw new StarlightError(message, response)\n }\n },\n\n get models() {\n return makeModelSelector(this)\n },\n\n model(slug) {\n return makeModelInstance(this, slug as string)\n },\n\n get forms() {\n return makeFormSelector(this)\n },\n\n form(slug) {\n return makeFormInstance(this, String(slug))\n },\n\n get singletons() {\n return makeSingletonSelector(this)\n },\n\n get collections() {\n return makeCollectionSelector(this)\n },\n\n collection(slug) {\n return makeCollectionInstance(this, slug)\n },\n\n get media() {\n return makeMediaSelector(this)\n },\n\n get search() {\n return makeSearchSelector(this)\n },\n }\n\n return new Proxy(client, {\n get(target, prop) {\n if (typeof prop === 'string' && !Reflect.has(target, prop)) {\n return makeModelInstance(target, prop)\n }\n\n return Reflect.get(target, prop)\n },\n }) as DynamicStarlightClient<D & WorkspaceModelDefinition>\n}\n"]}
@@ -1,40 +0,0 @@
1
- /**
2
- * This error is thrown every time a problem occurs when requesting something
3
- * from Starlight's APIs. When it does, you can inspect the attached response
4
- * to verify what kind of problem happened and handle it accordingly.
5
- *
6
- * @group Errors
7
- */
8
- export declare class StarlightError extends Error {
9
- /**
10
- * The response provided by the `fetch` method when the error occurred.
11
- *
12
- * @example Using the `response` property to handle 404 errors.
13
- *
14
- * ```ts
15
- * import Starlight, { StarlightError } from '@starlightcms/js-sdk'
16
- *
17
- * // Returns either an Entry, null on 404 errors, or false in all other cases
18
- * const requestEntry = async (slug) => {
19
- * try {
20
- * const response = await Starlight.posts.entries.get(slug)
21
- *
22
- * return response.data
23
- * } catch (error) {
24
- * if (error instanceof StarlightError && error.response.status === 404) {
25
- * // Return null to indicate a 404 error
26
- * return null
27
- * }
28
- *
29
- * // Return false in all other error scenarios
30
- * return false
31
- * }
32
- * }
33
- * ```
34
- *
35
- * @see [MDN documentation on the Response object](https://developer.mozilla.org/en-US/docs/Web/API/Response)
36
- */
37
- response: Response;
38
- constructor(message: string, response: Response);
39
- }
40
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACI,QAAQ,EAAE,QAAQ,CAAA;gBAEb,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;CAIhD"}
@@ -1,14 +0,0 @@
1
- /**
2
- * This error is thrown every time a problem occurs when requesting something
3
- * from Starlight's APIs. When it does, you can inspect the attached response
4
- * to verify what kind of problem happened and handle it accordingly.
5
- *
6
- * @group Errors
7
- */
8
- export class StarlightError extends Error {
9
- constructor(message, response) {
10
- super(message);
11
- this.response = response;
12
- }
13
- }
14
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IA+BvC,YAAY,OAAe,EAAE,QAAkB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;CACF","sourcesContent":["/**\n * This error is thrown every time a problem occurs when requesting something\n * from Starlight's APIs. When it does, you can inspect the attached response\n * to verify what kind of problem happened and handle it accordingly.\n *\n * @group Errors\n */\nexport class StarlightError extends Error {\n /**\n * The response provided by the `fetch` method when the error occurred.\n *\n * @example Using the `response` property to handle 404 errors.\n *\n * ```ts\n * import Starlight, { StarlightError } from '@starlightcms/js-sdk'\n *\n * // Returns either an Entry, null on 404 errors, or false in all other cases\n * const requestEntry = async (slug) => {\n * try {\n * const response = await Starlight.posts.entries.get(slug)\n *\n * return response.data\n * } catch (error) {\n * if (error instanceof StarlightError && error.response.status === 404) {\n * // Return null to indicate a 404 error\n * return null\n * }\n *\n * // Return false in all other error scenarios\n * return false\n * }\n * }\n * ```\n *\n * @see [MDN documentation on the Response object](https://developer.mozilla.org/en-US/docs/Web/API/Response)\n */\n public response: Response\n\n constructor(message: string, response: Response) {\n super(message)\n this.response = response\n }\n}\n"]}
@@ -1,29 +0,0 @@
1
- import { makeClient } from './client';
2
- export { StarlightError } from './errors';
3
- export * from './types';
4
- export * from './utils';
5
- /**
6
- * This is the default object exported by the SDK module, which is a
7
- * pre-created {@link StarlightClient}. In the docs, this is called the "global
8
- * SDK client". If your application only requests data from a single Starlight
9
- * workspace, using this client is easier than creating
10
- * a new one using {@link makeStarlightClient}.
11
- *
12
- * Using the default client is as easy as importing the SDK:
13
- *
14
- * ```ts
15
- * // "Starlight" below is the default client.
16
- * import Starlight from '@starlightcms/js-sdk'
17
- *
18
- * const response = await Starlight.posts.entries.list()
19
- * ```
20
- *
21
- * You need to configure the default workspace before using it.
22
- * See {@apilink StarlightClient.configure} to learn more.
23
- *
24
- * @group Client
25
- */
26
- declare const Starlight: import("./types").DynamicStarlightClient<import("./types").DefaultModelDefinition & import("./types").WorkspaceModelDefinition>;
27
- export { makeClient as makeStarlightClient };
28
- export default Starlight;
29
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AAEvB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,QAAA,MAAM,SAAS,iIAAe,CAAA;AAE9B,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,CAAA;AAE5C,eAAe,SAAS,CAAA"}
package/dist/esm/index.js DELETED
@@ -1,29 +0,0 @@
1
- import { makeClient } from './client';
2
- export { StarlightError } from './errors';
3
- export * from './types';
4
- export * from './utils';
5
- /**
6
- * This is the default object exported by the SDK module, which is a
7
- * pre-created {@link StarlightClient}. In the docs, this is called the "global
8
- * SDK client". If your application only requests data from a single Starlight
9
- * workspace, using this client is easier than creating
10
- * a new one using {@link makeStarlightClient}.
11
- *
12
- * Using the default client is as easy as importing the SDK:
13
- *
14
- * ```ts
15
- * // "Starlight" below is the default client.
16
- * import Starlight from '@starlightcms/js-sdk'
17
- *
18
- * const response = await Starlight.posts.entries.list()
19
- * ```
20
- *
21
- * You need to configure the default workspace before using it.
22
- * See {@apilink StarlightClient.configure} to learn more.
23
- *
24
- * @group Client
25
- */
26
- const Starlight = makeClient();
27
- export { makeClient as makeStarlightClient };
28
- export default Starlight;
29
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AAEvB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,SAAS,GAAG,UAAU,EAAE,CAAA;AAE9B,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,CAAA;AAE5C,eAAe,SAAS,CAAA","sourcesContent":["import { makeClient } from './client'\nexport { StarlightError } from './errors'\nexport * from './types'\nexport * from './utils'\n\n/**\n * This is the default object exported by the SDK module, which is a\n * pre-created {@link StarlightClient}. In the docs, this is called the \"global\n * SDK client\". If your application only requests data from a single Starlight\n * workspace, using this client is easier than creating\n * a new one using {@link makeStarlightClient}.\n *\n * Using the default client is as easy as importing the SDK:\n *\n * ```ts\n * // \"Starlight\" below is the default client.\n * import Starlight from '@starlightcms/js-sdk'\n *\n * const response = await Starlight.posts.entries.list()\n * ```\n *\n * You need to configure the default workspace before using it.\n * See {@apilink StarlightClient.configure} to learn more.\n *\n * @group Client\n */\nconst Starlight = makeClient()\n\nexport { makeClient as makeStarlightClient }\n\nexport default Starlight\n"]}
@@ -1,5 +0,0 @@
1
- import { CollectionEntityTypes, StarlightClient } from '../../types';
2
- import { CollectionInstance, ListCollectionItemsParams } from './types';
3
- export default function makeCollectionInstance<T extends CollectionEntityTypes = unknown>(client: StarlightClient, collection: string | number): CollectionInstance<T>;
4
- export { CollectionInstance, ListCollectionItemsParams };
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/instances/Collection/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEvE,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,CAAC,SAAS,qBAAqB,GAAG,OAAO,EACzC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAU7E;AAED,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,CAAA"}
@@ -1,11 +0,0 @@
1
- export default function makeCollectionInstance(client, collection) {
2
- return {
3
- get(params, options) {
4
- return client.get(`/collections/${collection}`, params, options);
5
- },
6
- items(params, options) {
7
- return client.get(`/collections/${collection}/items`, params, options);
8
- },
9
- };
10
- }
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instances/Collection/index.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAE5C,MAAuB,EAAE,UAA2B;IACpD,OAAO;QACL,GAAG,CAAC,MAAM,EAAE,OAAO;YACjB,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAClE,CAAC;QAED,KAAK,CAAC,MAAM,EAAE,OAAO;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,UAAU,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QACxE,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["import { CollectionEntityTypes, StarlightClient } from '../../types'\nimport { CollectionInstance, ListCollectionItemsParams } from './types'\n\nexport default function makeCollectionInstance<\n T extends CollectionEntityTypes = unknown,\n>(client: StarlightClient, collection: string | number): CollectionInstance<T> {\n return {\n get(params, options) {\n return client.get(`/collections/${collection}`, params, options)\n },\n\n items(params, options) {\n return client.get(`/collections/${collection}/items`, params, options)\n },\n }\n}\n\nexport { CollectionInstance, ListCollectionItemsParams }\n"]}
@@ -1,79 +0,0 @@
1
- import { ListRequestParameters, Collection, CollectionEntityTypes, CollectionTypeMapper, QueryableRequestParameters, StarlightItemResponse, StarlightListResponse, WithQueryableFieldsOnModelables, BaseRequestParameters } from '../../types';
2
- /**
3
- * Request parameters for listing collection items.
4
- *
5
- * Used by {@apilink CollectionInstance.items}.
6
- *
7
- * @group Request Parameters
8
- */
9
- export interface ListCollectionItemsParams extends ListRequestParameters, QueryableRequestParameters {
10
- /**
11
- * Define how entries will be ordered. Check this field type to see the
12
- * allowed options.
13
- */
14
- order?: 'title:asc' | 'title:desc' | 'published_at:asc' | 'published_at:desc' | 'views:asc' | 'views:desc';
15
- }
16
- /**
17
- * An Instance that provide methods to request information and items from
18
- * a specific {@link Collection}.
19
- *
20
- * You can access a CollectionInstance using
21
- * {@apilink StarlightClient.collection}.
22
- *
23
- * To list all workspace collections, use a {@link CollectionSelector}.
24
- *
25
- * @group Instances
26
- */
27
- export interface CollectionInstance<C extends CollectionEntityTypes> {
28
- /**
29
- * Returns a {@link StarlightItemResponse} with a single {@link Collection}.
30
- *
31
- * @example Requesting information from a collection of slug `featured-news`.
32
- * ```ts
33
- * import Starlight from '@starlightcms/js-sdk'
34
- *
35
- * const response = await Starlight.collection('featured-news').get()
36
- * ```
37
- *
38
- * @param params An optional object of request parameters.
39
- * @param options An optional object of fetch options. See
40
- * {@link https://developer.mozilla.org/en-US/docs/Web/API/RequestInit} for
41
- * more info.
42
- */
43
- get(params?: BaseRequestParameters, options?: RequestInit): Promise<StarlightItemResponse<Collection<CollectionTypeMapper<C>>>>;
44
- /**
45
- * Returns a {@link StarlightListResponse} with the list of items of this
46
- * {@link Collection}. The returned list type depends on the collection type:
47
- * a list of {@apilink Entry | Entries} for a collection of type `entry`, a
48
- * list of {@apilink MediaObject | MediaObjects} for a collection o type
49
- * `media`, and so on.
50
- *
51
- * If the given Collection is not typed, this method will return a response of
52
- * `StarlightListResponse<unknown>`.
53
- *
54
- * @example Requesting all items from an Entry collection of slug `featured-news`.
55
- * ```ts
56
- * import Starlight from '@starlightcms/js-sdk'
57
- *
58
- * const response = await Starlight.collection('featured-news').items()
59
- * ```
60
- *
61
- * @example Explicitly typing the returned items. Only possible in TypeScript.
62
- * ```ts
63
- * import Starlight from '@starlightcms/js-sdk'
64
- * import { NewsPostType } from '../types'
65
- *
66
- * // response will be StarlightListResponse<Entry<NewsPostType>>
67
- * const response = await Starlight.collection<Entry<NewsPostType>>('featured-news').items()
68
- * ```
69
- *
70
- * @param params An optional object of request parameters. See
71
- * {@link ListCollectionItemsParams} for all available parameters. `field:foo`
72
- * syntax is also supported, see {@link QueryableFields} for more info.
73
- * @param options An optional object of fetch options. See
74
- * {@link https://developer.mozilla.org/en-US/docs/Web/API/RequestInit} for
75
- * more info.
76
- */
77
- items(params?: ListCollectionItemsParams | WithQueryableFieldsOnModelables<C>, options?: RequestInit): Promise<StarlightListResponse<C>>;
78
- }
79
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/instances/Collection/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACrB,+BAA+B,EAC/B,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAEpB;;;;;;GAMG;AACH,MAAM,WAAW,yBACf,SAAQ,qBAAqB,EAAE,0BAA0B;IACzD;;;OAGG;IACH,KAAK,CAAC,EACF,WAAW,GACX,YAAY,GACZ,kBAAkB,GAClB,mBAAmB,GACnB,WAAW,GACX,YAAY,CAAA;CACjB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,qBAAqB;IACjE;;;;;;;;;;;;;;OAcG;IACH,GAAG,CACD,MAAM,CAAC,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,KAAK,CACH,MAAM,CAAC,EAAE,yBAAyB,GAAG,+BAA+B,CAAC,CAAC,CAAC,EACvE,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAA;CACrC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/instances/Collection/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n ListRequestParameters,\n Collection,\n CollectionEntityTypes,\n CollectionTypeMapper,\n QueryableRequestParameters,\n StarlightItemResponse,\n StarlightListResponse,\n WithQueryableFieldsOnModelables,\n BaseRequestParameters,\n} from '../../types'\n\n/**\n * Request parameters for listing collection items.\n *\n * Used by {@apilink CollectionInstance.items}.\n *\n * @group Request Parameters\n */\nexport interface ListCollectionItemsParams\n extends ListRequestParameters, QueryableRequestParameters {\n /**\n * Define how entries will be ordered. Check this field type to see the\n * allowed options.\n */\n order?:\n | 'title:asc'\n | 'title:desc'\n | 'published_at:asc'\n | 'published_at:desc'\n | 'views:asc'\n | 'views:desc'\n}\n\n/**\n * An Instance that provide methods to request information and items from\n * a specific {@link Collection}.\n *\n * You can access a CollectionInstance using\n * {@apilink StarlightClient.collection}.\n *\n * To list all workspace collections, use a {@link CollectionSelector}.\n *\n * @group Instances\n */\nexport interface CollectionInstance<C extends CollectionEntityTypes> {\n /**\n * Returns a {@link StarlightItemResponse} with a single {@link Collection}.\n *\n * @example Requesting information from a collection of slug `featured-news`.\n * ```ts\n * import Starlight from '@starlightcms/js-sdk'\n *\n * const response = await Starlight.collection('featured-news').get()\n * ```\n *\n * @param params An optional object of request parameters.\n * @param options An optional object of fetch options. See\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/RequestInit} for\n * more info.\n */\n get(\n params?: BaseRequestParameters,\n options?: RequestInit,\n ): Promise<StarlightItemResponse<Collection<CollectionTypeMapper<C>>>>\n\n /**\n * Returns a {@link StarlightListResponse} with the list of items of this\n * {@link Collection}. The returned list type depends on the collection type:\n * a list of {@apilink Entry | Entries} for a collection of type `entry`, a\n * list of {@apilink MediaObject | MediaObjects} for a collection o type\n * `media`, and so on.\n *\n * If the given Collection is not typed, this method will return a response of\n * `StarlightListResponse<unknown>`.\n *\n * @example Requesting all items from an Entry collection of slug `featured-news`.\n * ```ts\n * import Starlight from '@starlightcms/js-sdk'\n *\n * const response = await Starlight.collection('featured-news').items()\n * ```\n *\n * @example Explicitly typing the returned items. Only possible in TypeScript.\n * ```ts\n * import Starlight from '@starlightcms/js-sdk'\n * import { NewsPostType } from '../types'\n *\n * // response will be StarlightListResponse<Entry<NewsPostType>>\n * const response = await Starlight.collection<Entry<NewsPostType>>('featured-news').items()\n * ```\n *\n * @param params An optional object of request parameters. See\n * {@link ListCollectionItemsParams} for all available parameters. `field:foo`\n * syntax is also supported, see {@link QueryableFields} for more info.\n * @param options An optional object of fetch options. See\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/RequestInit} for\n * more info.\n */\n items(\n params?: ListCollectionItemsParams | WithQueryableFieldsOnModelables<C>,\n options?: RequestInit,\n ): Promise<StarlightListResponse<C>>\n}\n"]}
@@ -1,5 +0,0 @@
1
- import { StarlightClient } from '../../types';
2
- import { FormInstance } from './types';
3
- export default function makeFormInstance(client: StarlightClient, form: string): FormInstance;
4
- export { FormInstance };
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/instances/Form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,MAAM,GACX,YAAY,CASd;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -1,11 +0,0 @@
1
- export default function makeFormInstance(client, form) {
2
- return {
3
- get(params, options) {
4
- return client.get(`/forms/${form}`, params, options);
5
- },
6
- schema(params, options) {
7
- return client.get(`/forms/${form}/schema`, params, options);
8
- },
9
- };
10
- }
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instances/Form/index.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,MAAuB,EACvB,IAAY;IAEZ,OAAO;QACL,GAAG,CAAC,MAAM,EAAE,OAAO;YACjB,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QACtD,CAAC;QACD,MAAM,CAAC,MAAM,EAAE,OAAO;YACpB,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAC7D,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["import { StarlightClient } from '../../types'\nimport { FormInstance } from './types'\n\nexport default function makeFormInstance(\n client: StarlightClient,\n form: string,\n): FormInstance {\n return {\n get(params, options) {\n return client.get(`/forms/${form}`, params, options)\n },\n schema(params, options) {\n return client.get(`/forms/${form}/schema`, params, options)\n },\n }\n}\n\nexport { FormInstance }\n"]}
@@ -1,46 +0,0 @@
1
- import { BaseRequestParameters, Form, FormSchema, StarlightItemResponse } from '../../types';
2
- /**
3
- * An Instance that provide methods to request information from a {@link Form}
4
- * and its {@apilink Field | Fields}.
5
- *
6
- * You can access a FormInstance using {@apilink StarlightClient.form} or
7
- * using the dynamic syntax on a {@link DynamicFormSelector}. Usage
8
- * examples will use the dynamic syntax.
9
- *
10
- * @group Instances
11
- */
12
- export interface FormInstance {
13
- /**
14
- * Returns a {@link StarlightItemResponse} with a single {@link Form}.
15
- *
16
- * @example Requesting information from a form of slug `signup`.
17
- * ```ts
18
- * import Starlight from '@starlightcms/js-sdk'
19
- *
20
- * const response = await Starlight.forms.signup.get()
21
- * ```
22
- *
23
- * @param params An optional object of request parameters.
24
- * @param options An optional object of fetch options. See
25
- * {@link https://developer.mozilla.org/en-US/docs/Web/API/RequestInit} for
26
- * more info.
27
- */
28
- get(params?: BaseRequestParameters, options?: RequestInit): Promise<StarlightItemResponse<Form>>;
29
- /**
30
- * Returns a {@link StarlightItemResponse} with a {@link FormSchema}.
31
- *
32
- * @example Listing the schema from a form of slug `signup`.
33
- * ```ts
34
- * import Starlight from '@starlightcms/js-sdk'
35
- *
36
- * const response = await Starlight.forms.signup.schema()
37
- * ```
38
- *
39
- * @param params An optional object of request parameters.
40
- * @param options An optional object of fetch options. See
41
- * {@link https://developer.mozilla.org/en-US/docs/Web/API/RequestInit} for
42
- * more info.
43
- */
44
- schema(params?: BaseRequestParameters, options?: RequestInit): Promise<StarlightItemResponse<FormSchema>>;
45
- }
46
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/instances/Form/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,IAAI,EACJ,UAAU,EACV,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAEpB;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;;;;;OAcG;IACH,GAAG,CACD,MAAM,CAAC,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAA;IAEvC;;;;;;;;;;;;;;OAcG;IACH,MAAM,CACJ,MAAM,CAAC,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAA;CAC9C"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/instances/Form/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n BaseRequestParameters,\n Form,\n FormSchema,\n StarlightItemResponse,\n} from '../../types'\n\n/**\n * An Instance that provide methods to request information from a {@link Form}\n * and its {@apilink Field | Fields}.\n *\n * You can access a FormInstance using {@apilink StarlightClient.form} or\n * using the dynamic syntax on a {@link DynamicFormSelector}. Usage\n * examples will use the dynamic syntax.\n *\n * @group Instances\n */\nexport interface FormInstance {\n /**\n * Returns a {@link StarlightItemResponse} with a single {@link Form}.\n *\n * @example Requesting information from a form of slug `signup`.\n * ```ts\n * import Starlight from '@starlightcms/js-sdk'\n *\n * const response = await Starlight.forms.signup.get()\n * ```\n *\n * @param params An optional object of request parameters.\n * @param options An optional object of fetch options. See\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/RequestInit} for\n * more info.\n */\n get(\n params?: BaseRequestParameters,\n options?: RequestInit,\n ): Promise<StarlightItemResponse<Form>>\n\n /**\n * Returns a {@link StarlightItemResponse} with a {@link FormSchema}.\n *\n * @example Listing the schema from a form of slug `signup`.\n * ```ts\n * import Starlight from '@starlightcms/js-sdk'\n *\n * const response = await Starlight.forms.signup.schema()\n * ```\n *\n * @param params An optional object of request parameters.\n * @param options An optional object of fetch options. See\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/RequestInit} for\n * more info.\n */\n schema(\n params?: BaseRequestParameters,\n options?: RequestInit,\n ): Promise<StarlightItemResponse<FormSchema>>\n}\n"]}
@@ -1,5 +0,0 @@
1
- import { SerializedData, StarlightClient } from '../../types';
2
- import { DynamicModelInstance, ModelInstance } from './types';
3
- export default function makeModelInstance<D extends SerializedData>(client: StarlightClient, model: string): DynamicModelInstance<D>;
4
- export { DynamicModelInstance, ModelInstance };
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/instances/Model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAK7D,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAChE,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,GACZ,oBAAoB,CAAC,CAAC,CAAC,CA4BzB;AAED,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAA"}
@@ -1,28 +0,0 @@
1
- import makeEntrySelector from '../../selectors/Entry';
2
- import makeModelCategorySelector from '../../selectors/ModelCategory';
3
- import makeModelCategoryInstance from '../ModelCategory';
4
- export default function makeModelInstance(client, model) {
5
- const instance = {
6
- get(params, options) {
7
- return client.get(`/models/${model}`, params, options);
8
- },
9
- category(slug) {
10
- return makeModelCategoryInstance(client, model, slug);
11
- },
12
- get entries() {
13
- return makeEntrySelector(client, model);
14
- },
15
- get categories() {
16
- return makeModelCategorySelector(client, model);
17
- },
18
- };
19
- return new Proxy(instance, {
20
- get(target, prop) {
21
- if (typeof prop === 'string' && !Reflect.has(target, prop)) {
22
- return makeModelCategoryInstance(client, model, prop);
23
- }
24
- return Reflect.get(target, prop);
25
- },
26
- });
27
- }
28
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instances/Model/index.ts"],"names":[],"mappings":"AAEA,OAAO,iBAAiB,MAAM,uBAAuB,CAAA;AACrD,OAAO,yBAAyB,MAAM,+BAA+B,CAAA;AACrE,OAAO,yBAAyB,MAAM,kBAAkB,CAAA;AAExD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACvC,MAAuB,EACvB,KAAa;IAEb,MAAM,QAAQ,GAAqB;QACjC,GAAG,CAAC,MAAM,EAAE,OAAO;YACjB,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QACxD,CAAC;QAED,QAAQ,CAAC,IAAY;YACnB,OAAO,yBAAyB,CAAI,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QAC1D,CAAC;QAED,IAAI,OAAO;YACT,OAAO,iBAAiB,CAAI,MAAM,EAAE,KAAK,CAAC,CAAA;QAC5C,CAAC;QAED,IAAI,UAAU;YACZ,OAAO,yBAAyB,CAAI,MAAM,EAAE,KAAK,CAAC,CAAA;QACpD,CAAC;KACF,CAAA;IAED,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;QACzB,GAAG,CAAC,MAAM,EAAE,IAAI;YACd,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC3D,OAAO,yBAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;YACvD,CAAC;YAED,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAClC,CAAC;KACF,CAA4B,CAAA;AAC/B,CAAC","sourcesContent":["import { SerializedData, StarlightClient } from '../../types'\nimport { DynamicModelInstance, ModelInstance } from './types'\nimport makeEntrySelector from '../../selectors/Entry'\nimport makeModelCategorySelector from '../../selectors/ModelCategory'\nimport makeModelCategoryInstance from '../ModelCategory'\n\nexport default function makeModelInstance<D extends SerializedData>(\n client: StarlightClient,\n model: string,\n): DynamicModelInstance<D> {\n const instance: ModelInstance<D> = {\n get(params, options) {\n return client.get(`/models/${model}`, params, options)\n },\n\n category(slug: string) {\n return makeModelCategoryInstance<D>(client, model, slug)\n },\n\n get entries() {\n return makeEntrySelector<D>(client, model)\n },\n\n get categories() {\n return makeModelCategorySelector<D>(client, model)\n },\n }\n\n return new Proxy(instance, {\n get(target, prop) {\n if (typeof prop === 'string' && !Reflect.has(target, prop)) {\n return makeModelCategoryInstance(client, model, prop)\n }\n\n return Reflect.get(target, prop)\n },\n }) as DynamicModelInstance<D>\n}\n\nexport { DynamicModelInstance, ModelInstance }\n"]}