@edifice.io/community-client-rest 1.0.0-develop-pedago.6 → 1.0.0-develop.20251204185004

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 (299) hide show
  1. package/dist/browser/clients/adapters/fetch-adapter.d.ts +5 -5
  2. package/dist/browser/clients/adapters/fetch-adapter.js +21 -24
  3. package/dist/browser/clients/adapters/fetch-adapter.js.map +1 -1
  4. package/dist/browser/clients/adapters/http-adapter.d.ts +4 -4
  5. package/dist/browser/clients/adapters/http-adapter.js +1 -2
  6. package/dist/browser/clients/adapters/http-service-adapter.d.ts +8 -6
  7. package/dist/browser/clients/adapters/http-service-adapter.js +3 -12
  8. package/dist/browser/clients/adapters/http-service-adapter.js.map +1 -1
  9. package/dist/browser/clients/announcement.client.d.ts +13 -0
  10. package/dist/browser/clients/announcement.client.js +38 -0
  11. package/dist/browser/clients/announcement.client.js.map +1 -0
  12. package/dist/browser/clients/base-api.client.d.ts +9 -7
  13. package/dist/browser/clients/base-api.client.js +19 -20
  14. package/dist/browser/clients/base-api.client.js.map +1 -1
  15. package/dist/browser/clients/community.client.d.ts +7 -6
  16. package/dist/browser/clients/community.client.js +18 -16
  17. package/dist/browser/clients/community.client.js.map +1 -1
  18. package/dist/browser/clients/discussion.client.d.ts +10 -0
  19. package/dist/browser/clients/discussion.client.js +25 -0
  20. package/dist/browser/clients/discussion.client.js.map +1 -0
  21. package/dist/browser/clients/errors/api-error.d.ts +11 -0
  22. package/dist/browser/clients/errors/api-error.js +46 -0
  23. package/dist/browser/clients/errors/api-error.js.map +1 -0
  24. package/dist/browser/clients/folder.client.d.ts +13 -0
  25. package/dist/browser/clients/folder.client.js +38 -0
  26. package/dist/browser/clients/folder.client.js.map +1 -0
  27. package/dist/browser/clients/index.d.ts +11 -3
  28. package/dist/browser/clients/index.js +11 -19
  29. package/dist/browser/clients/index.js.map +1 -1
  30. package/dist/browser/clients/invitation.client.d.ts +11 -8
  31. package/dist/browser/clients/invitation.client.js +43 -17
  32. package/dist/browser/clients/invitation.client.js.map +1 -1
  33. package/dist/browser/clients/membership.client.d.ts +3 -2
  34. package/dist/browser/clients/membership.client.js +23 -11
  35. package/dist/browser/clients/membership.client.js.map +1 -1
  36. package/dist/browser/clients/resource.client.d.ts +14 -0
  37. package/dist/browser/clients/resource.client.js +47 -0
  38. package/dist/browser/clients/resource.client.js.map +1 -0
  39. package/dist/browser/clients/wiki.client.d.ts +10 -0
  40. package/dist/browser/clients/wiki.client.js +31 -0
  41. package/dist/browser/clients/wiki.client.js.map +1 -0
  42. package/dist/browser/decorators/custom-type.decorator.browser.d.ts +3 -3
  43. package/dist/browser/decorators/custom-type.decorator.browser.js +3 -8
  44. package/dist/browser/decorators/custom-type.decorator.browser.js.map +1 -1
  45. package/dist/browser/decorators/custom-type.decorator.node.js +3 -8
  46. package/dist/browser/decorators/custom-type.decorator.node.js.map +1 -1
  47. package/dist/browser/dtos/announcement.d.ts +34 -2
  48. package/dist/browser/dtos/announcement.js +160 -37
  49. package/dist/browser/dtos/announcement.js.map +1 -1
  50. package/dist/browser/dtos/base.js +38 -45
  51. package/dist/browser/dtos/base.js.map +1 -1
  52. package/dist/browser/dtos/community.d.ts +2 -2
  53. package/dist/browser/dtos/community.js +154 -160
  54. package/dist/browser/dtos/community.js.map +1 -1
  55. package/dist/browser/dtos/discussion.d.ts +30 -0
  56. package/dist/browser/dtos/discussion.js +111 -10
  57. package/dist/browser/dtos/discussion.js.map +1 -1
  58. package/dist/browser/dtos/folder.d.ts +6 -3
  59. package/dist/browser/dtos/folder.js +74 -75
  60. package/dist/browser/dtos/folder.js.map +1 -1
  61. package/dist/browser/dtos/index.js +9 -25
  62. package/dist/browser/dtos/index.js.map +1 -1
  63. package/dist/browser/dtos/invitation.d.ts +8 -1
  64. package/dist/browser/dtos/invitation.js +212 -151
  65. package/dist/browser/dtos/invitation.js.map +1 -1
  66. package/dist/browser/dtos/membership.d.ts +5 -1
  67. package/dist/browser/dtos/membership.js +82 -70
  68. package/dist/browser/dtos/membership.js.map +1 -1
  69. package/dist/browser/dtos/resource.d.ts +11 -4
  70. package/dist/browser/dtos/resource.js +152 -106
  71. package/dist/browser/dtos/resource.js.map +1 -1
  72. package/dist/browser/dtos/wiki.d.ts +14 -0
  73. package/dist/browser/dtos/wiki.js +65 -7
  74. package/dist/browser/dtos/wiki.js.map +1 -1
  75. package/dist/browser/index.d.ts +2 -0
  76. package/dist/browser/index.js +5 -20
  77. package/dist/browser/index.js.map +1 -1
  78. package/dist/browser/mocks/index.js +1 -17
  79. package/dist/browser/mocks/index.js.map +1 -1
  80. package/dist/browser/mocks/search-community-response.mock.js +16 -25
  81. package/dist/browser/mocks/search-community-response.mock.js.map +1 -1
  82. package/dist/browser/utils/background-images.constants.d.ts +3 -0
  83. package/dist/browser/utils/background-images.constants.js +77 -0
  84. package/dist/browser/utils/background-images.constants.js.map +1 -0
  85. package/dist/browser/utils/community-image.types.d.ts +26 -0
  86. package/dist/browser/utils/community-image.types.js +2 -0
  87. package/dist/browser/utils/community-image.types.js.map +1 -0
  88. package/dist/browser/utils/community-image.util.d.ts +13 -0
  89. package/dist/browser/utils/community-image.util.js +81 -0
  90. package/dist/browser/utils/community-image.util.js.map +1 -0
  91. package/dist/browser/utils/community-image.util.test.d.ts +1 -0
  92. package/dist/browser/utils/community-image.util.test.js +355 -0
  93. package/dist/browser/utils/community-image.util.test.js.map +1 -0
  94. package/dist/browser/utils/index.d.ts +5 -0
  95. package/dist/browser/utils/index.js +6 -0
  96. package/dist/browser/utils/index.js.map +1 -0
  97. package/dist/browser/utils/resource-url.util.d.ts +2 -0
  98. package/dist/browser/utils/resource-url.util.js +35 -0
  99. package/dist/browser/utils/resource-url.util.js.map +1 -0
  100. package/dist/browser/utils/rights.utils.d.ts +4 -0
  101. package/dist/browser/utils/rights.utils.js +5 -0
  102. package/dist/browser/utils/rights.utils.js.map +1 -0
  103. package/dist/node/clients/adapters/fetch-adapter.d.ts +5 -5
  104. package/dist/node/clients/adapters/fetch-adapter.js +20 -19
  105. package/dist/node/clients/adapters/fetch-adapter.js.map +1 -1
  106. package/dist/node/clients/adapters/http-adapter.d.ts +4 -4
  107. package/dist/node/clients/adapters/http-service-adapter.d.ts +8 -6
  108. package/dist/node/clients/adapters/http-service-adapter.js +2 -7
  109. package/dist/node/clients/adapters/http-service-adapter.js.map +1 -1
  110. package/dist/node/clients/announcement.client.d.ts +13 -0
  111. package/dist/node/clients/announcement.client.js +42 -0
  112. package/dist/node/clients/announcement.client.js.map +1 -0
  113. package/dist/node/clients/base-api.client.d.ts +9 -7
  114. package/dist/node/clients/base-api.client.js +14 -11
  115. package/dist/node/clients/base-api.client.js.map +1 -1
  116. package/dist/node/clients/community.client.d.ts +7 -6
  117. package/dist/node/clients/community.client.js +16 -10
  118. package/dist/node/clients/community.client.js.map +1 -1
  119. package/dist/node/clients/discussion.client.d.ts +10 -0
  120. package/dist/node/clients/discussion.client.js +29 -0
  121. package/dist/node/clients/discussion.client.js.map +1 -0
  122. package/dist/node/clients/errors/api-error.d.ts +11 -0
  123. package/dist/node/clients/errors/api-error.js +50 -0
  124. package/dist/node/clients/errors/api-error.js.map +1 -0
  125. package/dist/node/clients/folder.client.d.ts +13 -0
  126. package/dist/node/clients/folder.client.js +42 -0
  127. package/dist/node/clients/folder.client.js.map +1 -0
  128. package/dist/node/clients/index.d.ts +11 -3
  129. package/dist/node/clients/index.js +8 -0
  130. package/dist/node/clients/index.js.map +1 -1
  131. package/dist/node/clients/invitation.client.d.ts +11 -8
  132. package/dist/node/clients/invitation.client.js +41 -11
  133. package/dist/node/clients/invitation.client.js.map +1 -1
  134. package/dist/node/clients/membership.client.d.ts +3 -2
  135. package/dist/node/clients/membership.client.js +21 -5
  136. package/dist/node/clients/membership.client.js.map +1 -1
  137. package/dist/node/clients/resource.client.d.ts +14 -0
  138. package/dist/node/clients/resource.client.js +51 -0
  139. package/dist/node/clients/resource.client.js.map +1 -0
  140. package/dist/node/clients/wiki.client.d.ts +10 -0
  141. package/dist/node/clients/wiki.client.js +35 -0
  142. package/dist/node/clients/wiki.client.js.map +1 -0
  143. package/dist/node/decorators/custom-type.decorator.browser.d.ts +3 -3
  144. package/dist/node/decorators/custom-type.decorator.browser.js.map +1 -1
  145. package/dist/node/decorators/custom-type.decorator.node.js.map +1 -1
  146. package/dist/node/dtos/announcement.d.ts +34 -2
  147. package/dist/node/dtos/announcement.js +148 -14
  148. package/dist/node/dtos/announcement.js.map +1 -1
  149. package/dist/node/dtos/base.js +7 -7
  150. package/dist/node/dtos/base.js.map +1 -1
  151. package/dist/node/dtos/community.d.ts +2 -2
  152. package/dist/node/dtos/community.js +28 -23
  153. package/dist/node/dtos/community.js.map +1 -1
  154. package/dist/node/dtos/discussion.d.ts +30 -0
  155. package/dist/node/dtos/discussion.js +112 -1
  156. package/dist/node/dtos/discussion.js.map +1 -1
  157. package/dist/node/dtos/folder.d.ts +6 -3
  158. package/dist/node/dtos/folder.js +28 -19
  159. package/dist/node/dtos/folder.js.map +1 -1
  160. package/dist/node/dtos/invitation.d.ts +8 -1
  161. package/dist/node/dtos/invitation.js +89 -9
  162. package/dist/node/dtos/invitation.js.map +1 -1
  163. package/dist/node/dtos/membership.d.ts +5 -1
  164. package/dist/node/dtos/membership.js +28 -2
  165. package/dist/node/dtos/membership.js.map +1 -1
  166. package/dist/node/dtos/resource.d.ts +11 -4
  167. package/dist/node/dtos/resource.js +70 -14
  168. package/dist/node/dtos/resource.js.map +1 -1
  169. package/dist/node/dtos/wiki.d.ts +14 -0
  170. package/dist/node/dtos/wiki.js +66 -1
  171. package/dist/node/dtos/wiki.js.map +1 -1
  172. package/dist/node/index.d.ts +2 -0
  173. package/dist/node/index.js +4 -1
  174. package/dist/node/index.js.map +1 -1
  175. package/dist/node/utils/background-images.constants.d.ts +3 -0
  176. package/dist/node/utils/background-images.constants.js +80 -0
  177. package/dist/node/utils/background-images.constants.js.map +1 -0
  178. package/dist/node/utils/community-image.types.d.ts +26 -0
  179. package/dist/node/utils/community-image.types.js +3 -0
  180. package/dist/node/utils/community-image.types.js.map +1 -0
  181. package/dist/node/utils/community-image.util.d.ts +13 -0
  182. package/dist/node/utils/community-image.util.js +94 -0
  183. package/dist/node/utils/community-image.util.js.map +1 -0
  184. package/dist/node/utils/community-image.util.test.d.ts +1 -0
  185. package/dist/node/utils/community-image.util.test.js +357 -0
  186. package/dist/node/utils/community-image.util.test.js.map +1 -0
  187. package/dist/node/utils/index.d.ts +5 -0
  188. package/dist/node/utils/index.js +22 -0
  189. package/dist/node/utils/index.js.map +1 -0
  190. package/dist/node/utils/resource-url.util.d.ts +2 -0
  191. package/dist/node/utils/resource-url.util.js +38 -0
  192. package/dist/node/utils/resource-url.util.js.map +1 -0
  193. package/dist/node/utils/rights.utils.d.ts +4 -0
  194. package/dist/node/utils/rights.utils.js +8 -0
  195. package/dist/node/utils/rights.utils.js.map +1 -0
  196. package/dist/react-native/clients/adapters/fetch-adapter.d.ts +5 -5
  197. package/dist/react-native/clients/adapters/fetch-adapter.js +21 -24
  198. package/dist/react-native/clients/adapters/fetch-adapter.js.map +1 -1
  199. package/dist/react-native/clients/adapters/http-adapter.d.ts +4 -4
  200. package/dist/react-native/clients/adapters/http-adapter.js +1 -2
  201. package/dist/react-native/clients/adapters/http-service-adapter.d.ts +8 -6
  202. package/dist/react-native/clients/adapters/http-service-adapter.js +3 -12
  203. package/dist/react-native/clients/adapters/http-service-adapter.js.map +1 -1
  204. package/dist/react-native/clients/announcement.client.d.ts +13 -0
  205. package/dist/react-native/clients/announcement.client.js +38 -0
  206. package/dist/react-native/clients/announcement.client.js.map +1 -0
  207. package/dist/react-native/clients/base-api.client.d.ts +9 -7
  208. package/dist/react-native/clients/base-api.client.js +19 -20
  209. package/dist/react-native/clients/base-api.client.js.map +1 -1
  210. package/dist/react-native/clients/community.client.d.ts +7 -6
  211. package/dist/react-native/clients/community.client.js +18 -16
  212. package/dist/react-native/clients/community.client.js.map +1 -1
  213. package/dist/react-native/clients/discussion.client.d.ts +10 -0
  214. package/dist/react-native/clients/discussion.client.js +25 -0
  215. package/dist/react-native/clients/discussion.client.js.map +1 -0
  216. package/dist/react-native/clients/errors/api-error.d.ts +11 -0
  217. package/dist/react-native/clients/errors/api-error.js +46 -0
  218. package/dist/react-native/clients/errors/api-error.js.map +1 -0
  219. package/dist/react-native/clients/folder.client.d.ts +13 -0
  220. package/dist/react-native/clients/folder.client.js +38 -0
  221. package/dist/react-native/clients/folder.client.js.map +1 -0
  222. package/dist/react-native/clients/index.d.ts +11 -3
  223. package/dist/react-native/clients/index.js +11 -19
  224. package/dist/react-native/clients/index.js.map +1 -1
  225. package/dist/react-native/clients/invitation.client.d.ts +11 -8
  226. package/dist/react-native/clients/invitation.client.js +43 -17
  227. package/dist/react-native/clients/invitation.client.js.map +1 -1
  228. package/dist/react-native/clients/membership.client.d.ts +3 -2
  229. package/dist/react-native/clients/membership.client.js +23 -11
  230. package/dist/react-native/clients/membership.client.js.map +1 -1
  231. package/dist/react-native/clients/resource.client.d.ts +14 -0
  232. package/dist/react-native/clients/resource.client.js +47 -0
  233. package/dist/react-native/clients/resource.client.js.map +1 -0
  234. package/dist/react-native/clients/wiki.client.d.ts +10 -0
  235. package/dist/react-native/clients/wiki.client.js +31 -0
  236. package/dist/react-native/clients/wiki.client.js.map +1 -0
  237. package/dist/react-native/decorators/custom-type.decorator.browser.d.ts +3 -3
  238. package/dist/react-native/decorators/custom-type.decorator.browser.js +3 -8
  239. package/dist/react-native/decorators/custom-type.decorator.browser.js.map +1 -1
  240. package/dist/react-native/dtos/announcement.d.ts +34 -2
  241. package/dist/react-native/dtos/announcement.js +160 -37
  242. package/dist/react-native/dtos/announcement.js.map +1 -1
  243. package/dist/react-native/dtos/base.js +38 -45
  244. package/dist/react-native/dtos/base.js.map +1 -1
  245. package/dist/react-native/dtos/community.d.ts +2 -2
  246. package/dist/react-native/dtos/community.js +154 -160
  247. package/dist/react-native/dtos/community.js.map +1 -1
  248. package/dist/react-native/dtos/discussion.d.ts +30 -0
  249. package/dist/react-native/dtos/discussion.js +111 -10
  250. package/dist/react-native/dtos/discussion.js.map +1 -1
  251. package/dist/react-native/dtos/folder.d.ts +6 -3
  252. package/dist/react-native/dtos/folder.js +74 -75
  253. package/dist/react-native/dtos/folder.js.map +1 -1
  254. package/dist/react-native/dtos/index.js +9 -25
  255. package/dist/react-native/dtos/index.js.map +1 -1
  256. package/dist/react-native/dtos/invitation.d.ts +8 -1
  257. package/dist/react-native/dtos/invitation.js +212 -151
  258. package/dist/react-native/dtos/invitation.js.map +1 -1
  259. package/dist/react-native/dtos/membership.d.ts +5 -1
  260. package/dist/react-native/dtos/membership.js +82 -70
  261. package/dist/react-native/dtos/membership.js.map +1 -1
  262. package/dist/react-native/dtos/resource.d.ts +11 -4
  263. package/dist/react-native/dtos/resource.js +152 -106
  264. package/dist/react-native/dtos/resource.js.map +1 -1
  265. package/dist/react-native/dtos/wiki.d.ts +14 -0
  266. package/dist/react-native/dtos/wiki.js +65 -7
  267. package/dist/react-native/dtos/wiki.js.map +1 -1
  268. package/dist/react-native/index.d.ts +2 -0
  269. package/dist/react-native/index.js +5 -20
  270. package/dist/react-native/index.js.map +1 -1
  271. package/dist/react-native/mocks/index.js +1 -17
  272. package/dist/react-native/mocks/index.js.map +1 -1
  273. package/dist/react-native/mocks/search-community-response.mock.js +16 -25
  274. package/dist/react-native/mocks/search-community-response.mock.js.map +1 -1
  275. package/dist/react-native/package.json +5 -5
  276. package/dist/react-native/utils/background-images.constants.d.ts +3 -0
  277. package/dist/react-native/utils/background-images.constants.js +77 -0
  278. package/dist/react-native/utils/background-images.constants.js.map +1 -0
  279. package/dist/react-native/utils/community-image.types.d.ts +26 -0
  280. package/dist/react-native/utils/community-image.types.js +2 -0
  281. package/dist/react-native/utils/community-image.types.js.map +1 -0
  282. package/dist/react-native/utils/community-image.util.d.ts +13 -0
  283. package/dist/react-native/utils/community-image.util.js +81 -0
  284. package/dist/react-native/utils/community-image.util.js.map +1 -0
  285. package/dist/react-native/utils/community-image.util.test.d.ts +1 -0
  286. package/dist/react-native/utils/community-image.util.test.js +355 -0
  287. package/dist/react-native/utils/community-image.util.test.js.map +1 -0
  288. package/dist/react-native/utils/index.d.ts +5 -0
  289. package/dist/react-native/utils/index.js +6 -0
  290. package/dist/react-native/utils/index.js.map +1 -0
  291. package/dist/react-native/utils/resource-url.util.d.ts +2 -0
  292. package/dist/react-native/utils/resource-url.util.js +35 -0
  293. package/dist/react-native/utils/resource-url.util.js.map +1 -0
  294. package/dist/react-native/utils/rights.utils.d.ts +4 -0
  295. package/dist/react-native/utils/rights.utils.js +5 -0
  296. package/dist/react-native/utils/rights.utils.js.map +1 -0
  297. package/package.json +35 -20
  298. package/package.json.rn +14 -0
  299. package/scripts/sync-rn-version.js +25 -0
@@ -0,0 +1,355 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { convertToMobileThumbnails, mapCommunityWithThumbnails, mapCommunitySummaryWithThumbnails, mapInvitationWithThumbnails, mapInvitationOrMemberWithThumbnails, mapCommunitiesWithThumbnails, mapInvitationsWithThumbnails, mapInvitationsOrMembersWithThumbnails, } from "./community-image.util";
3
+ describe("convertToMobileThumbnails", () => {
4
+ describe("with /defaultCover/ format", () => {
5
+ it("should convert /defaultCover/admin-blue.png to mobile thumbnails", () => {
6
+ const result = convertToMobileThumbnails("/defaultCover/admin-blue.png");
7
+ expect(result).toHaveLength(3);
8
+ expect(result[0]).toEqual({
9
+ uri: "/communities/public/mobile/defaultCover/admin-blue.png",
10
+ scale: 1,
11
+ });
12
+ expect(result[1]).toEqual({
13
+ uri: "/communities/public/mobile/defaultCover/admin-blue@2x.png",
14
+ scale: 2,
15
+ });
16
+ expect(result[2]).toEqual({
17
+ uri: "/communities/public/mobile/defaultCover/admin-blue@3x.png",
18
+ scale: 3,
19
+ });
20
+ });
21
+ it("should convert /defaultCover/school-green.png to mobile thumbnails", () => {
22
+ const result = convertToMobileThumbnails("/defaultCover/school-green.png");
23
+ expect(result).toHaveLength(3);
24
+ expect(result[0].uri).toBe("/communities/public/mobile/defaultCover/school-green.png");
25
+ expect(result[1].uri).toBe("/communities/public/mobile/defaultCover/school-green@2x.png");
26
+ expect(result[2].uri).toBe("/communities/public/mobile/defaultCover/school-green@3x.png");
27
+ });
28
+ it("should convert all background images", () => {
29
+ const backgroundImages = [
30
+ "/defaultCover/school-green.png",
31
+ "/defaultCover/school-yellow.png",
32
+ "/defaultCover/reading-pink.png",
33
+ "/defaultCover/reading-blue.png",
34
+ "/defaultCover/sport-yellow.png",
35
+ "/defaultCover/sport-orange.png",
36
+ "/defaultCover/science-green.png",
37
+ "/defaultCover/science-pink.png",
38
+ "/defaultCover/admin-orange.png",
39
+ "/defaultCover/admin-blue.png",
40
+ "/defaultCover/travel-green.png",
41
+ "/defaultCover/travel-blue.png",
42
+ ];
43
+ backgroundImages.forEach((imagePath) => {
44
+ const result = convertToMobileThumbnails(imagePath);
45
+ expect(result).toHaveLength(3);
46
+ expect(result[0].scale).toBe(1);
47
+ expect(result[1].scale).toBe(2);
48
+ expect(result[2].scale).toBe(3);
49
+ });
50
+ });
51
+ });
52
+ describe("with /communities/defaultCover/ format", () => {
53
+ it("should convert /communities/defaultCover/admin-blue.png to mobile thumbnails", () => {
54
+ const result = convertToMobileThumbnails("/communities/defaultCover/admin-blue.png");
55
+ expect(result).toHaveLength(3);
56
+ expect(result[0]).toEqual({
57
+ uri: "/communities/public/mobile/defaultCover/admin-blue.png",
58
+ scale: 1,
59
+ });
60
+ expect(result[1]).toEqual({
61
+ uri: "/communities/public/mobile/defaultCover/admin-blue@2x.png",
62
+ scale: 2,
63
+ });
64
+ expect(result[2]).toEqual({
65
+ uri: "/communities/public/mobile/defaultCover/admin-blue@3x.png",
66
+ scale: 3,
67
+ });
68
+ });
69
+ it("should handle /communities/defaultCover/ format consistently with /defaultCover/", () => {
70
+ const result1 = convertToMobileThumbnails("/defaultCover/admin-blue.png");
71
+ const result2 = convertToMobileThumbnails("/communities/defaultCover/admin-blue.png");
72
+ expect(result1).toEqual(result2);
73
+ });
74
+ });
75
+ describe("with no image", () => {
76
+ it("should return empty array when imagePath is undefined", () => {
77
+ const result = convertToMobileThumbnails(undefined);
78
+ expect(result).toEqual([]);
79
+ });
80
+ it("should return empty array when imagePath is null", () => {
81
+ const result = convertToMobileThumbnails(null);
82
+ expect(result).toEqual([]);
83
+ });
84
+ it("should return empty array when imagePath is empty string", () => {
85
+ const result = convertToMobileThumbnails("");
86
+ expect(result).toEqual([]);
87
+ });
88
+ });
89
+ describe("with external URL", () => {
90
+ it("should return empty array for external URL (not in mapping)", () => {
91
+ const result = convertToMobileThumbnails("https://example.com/image.png");
92
+ expect(result).toEqual([]);
93
+ });
94
+ it("should return empty array for unknown image path", () => {
95
+ const result = convertToMobileThumbnails("/defaultCover/unknown-image.png");
96
+ expect(result).toEqual([]);
97
+ });
98
+ });
99
+ });
100
+ describe("mapCommunityWithThumbnails", () => {
101
+ it("should add mobileThumbnails to CommunityResponseDto", () => {
102
+ const community = {
103
+ id: 1,
104
+ title: "Test Community",
105
+ image: "/defaultCover/admin-blue.png",
106
+ };
107
+ const result = mapCommunityWithThumbnails(community);
108
+ expect(result.id).toBe(1);
109
+ expect(result.title).toBe("Test Community");
110
+ expect(result.image).toBe("/defaultCover/admin-blue.png");
111
+ expect(result.mobileThumbnails).toHaveLength(3);
112
+ expect(result.mobileThumbnails[0].scale).toBe(1);
113
+ expect(result.mobileThumbnails[1].scale).toBe(2);
114
+ expect(result.mobileThumbnails[2].scale).toBe(3);
115
+ });
116
+ it("should handle community with /communities/defaultCover/ format", () => {
117
+ const community = {
118
+ id: 1,
119
+ title: "Test Community",
120
+ image: "/communities/defaultCover/admin-blue.png",
121
+ };
122
+ const result = mapCommunityWithThumbnails(community);
123
+ expect(result.mobileThumbnails).toHaveLength(3);
124
+ });
125
+ it("should handle community with no image", () => {
126
+ const community = {
127
+ id: 1,
128
+ title: "Test Community",
129
+ image: undefined,
130
+ };
131
+ const result = mapCommunityWithThumbnails(community);
132
+ expect(result.mobileThumbnails).toEqual([]);
133
+ });
134
+ it("should handle community with external URL", () => {
135
+ const community = {
136
+ id: 1,
137
+ title: "Test Community",
138
+ image: "https://example.com/image.png",
139
+ };
140
+ const result = mapCommunityWithThumbnails(community);
141
+ expect(result.mobileThumbnails).toEqual([]);
142
+ });
143
+ });
144
+ describe("mapCommunitySummaryWithThumbnails", () => {
145
+ it("should add mobileThumbnails to CommunitySummaryDto", () => {
146
+ const community = {
147
+ id: 1,
148
+ title: "Test Community",
149
+ image: "/defaultCover/school-green.png",
150
+ };
151
+ const result = mapCommunitySummaryWithThumbnails(community);
152
+ expect(result.id).toBe(1);
153
+ expect(result.title).toBe("Test Community");
154
+ expect(result.mobileThumbnails).toHaveLength(3);
155
+ });
156
+ it("should preserve original properties", () => {
157
+ const community = {
158
+ id: 1,
159
+ title: "Test Community",
160
+ image: "/defaultCover/school-green.png",
161
+ };
162
+ const result = mapCommunitySummaryWithThumbnails(community);
163
+ expect(result.id).toBe(1);
164
+ expect(result.title).toBe("Test Community");
165
+ expect(result.image).toBe("/defaultCover/school-green.png");
166
+ });
167
+ });
168
+ describe("mapInvitationWithThumbnails", () => {
169
+ it("should add mobileThumbnails to community in invitation", () => {
170
+ const invitation = {
171
+ id: 1,
172
+ status: "PENDING",
173
+ community: {
174
+ id: 1,
175
+ title: "Test Community",
176
+ image: "/defaultCover/admin-blue.png",
177
+ },
178
+ };
179
+ const result = mapInvitationWithThumbnails(invitation);
180
+ expect(result.id).toBe(1);
181
+ expect(result.status).toBe("PENDING");
182
+ expect(result.community?.mobileThumbnails).toHaveLength(3);
183
+ });
184
+ it("should handle invitation without community", () => {
185
+ const invitation = {
186
+ id: 1,
187
+ status: "PENDING",
188
+ community: undefined,
189
+ };
190
+ const result = mapInvitationWithThumbnails(invitation);
191
+ expect(result.id).toBe(1);
192
+ expect(result.community).toBeUndefined();
193
+ });
194
+ });
195
+ describe("mapInvitationOrMemberWithThumbnails", () => {
196
+ it("should add mobileThumbnails to community in invitation or member", () => {
197
+ const item = {
198
+ id: 1,
199
+ community: {
200
+ id: 1,
201
+ title: "Test Community",
202
+ image: "/defaultCover/reading-pink.png",
203
+ },
204
+ };
205
+ const result = mapInvitationOrMemberWithThumbnails(item);
206
+ expect(result.id).toBe(1);
207
+ expect(result.community?.mobileThumbnails).toHaveLength(3);
208
+ });
209
+ it("should handle item without community", () => {
210
+ const item = {
211
+ id: 1,
212
+ community: undefined,
213
+ };
214
+ const result = mapInvitationOrMemberWithThumbnails(item);
215
+ expect(result.id).toBe(1);
216
+ expect(result.community).toBeUndefined();
217
+ });
218
+ });
219
+ describe("mapCommunitiesWithThumbnails", () => {
220
+ it("should map array of communities", () => {
221
+ const communities = [
222
+ {
223
+ id: 1,
224
+ title: "Community 1",
225
+ image: "/defaultCover/admin-blue.png",
226
+ },
227
+ {
228
+ id: 2,
229
+ title: "Community 2",
230
+ image: "/defaultCover/school-green.png",
231
+ },
232
+ ];
233
+ const result = mapCommunitiesWithThumbnails(communities);
234
+ expect(result).toHaveLength(2);
235
+ expect(result[0].mobileThumbnails).toHaveLength(3);
236
+ expect(result[1].mobileThumbnails).toHaveLength(3);
237
+ });
238
+ it("should handle empty array", () => {
239
+ const communities = [];
240
+ const result = mapCommunitiesWithThumbnails(communities);
241
+ expect(result).toEqual([]);
242
+ });
243
+ it("should handle array with mixed image types", () => {
244
+ const communities = [
245
+ {
246
+ id: 1,
247
+ title: "Community 1",
248
+ image: "/defaultCover/admin-blue.png",
249
+ },
250
+ {
251
+ id: 2,
252
+ title: "Community 2",
253
+ image: undefined,
254
+ },
255
+ {
256
+ id: 3,
257
+ title: "Community 3",
258
+ image: "https://example.com/image.png",
259
+ },
260
+ ];
261
+ const result = mapCommunitiesWithThumbnails(communities);
262
+ expect(result).toHaveLength(3);
263
+ expect(result[0].mobileThumbnails).toHaveLength(3);
264
+ expect(result[1].mobileThumbnails).toEqual([]);
265
+ expect(result[2].mobileThumbnails).toEqual([]);
266
+ });
267
+ });
268
+ describe("mapInvitationsWithThumbnails", () => {
269
+ it("should map array of invitations", () => {
270
+ const invitations = [
271
+ {
272
+ id: 1,
273
+ status: "PENDING",
274
+ community: {
275
+ id: 1,
276
+ title: "Community 1",
277
+ image: "/defaultCover/admin-blue.png",
278
+ },
279
+ },
280
+ {
281
+ id: 2,
282
+ status: "ACCEPTED",
283
+ community: {
284
+ id: 2,
285
+ title: "Community 2",
286
+ image: "/defaultCover/school-green.png",
287
+ },
288
+ },
289
+ ];
290
+ const result = mapInvitationsWithThumbnails(invitations);
291
+ expect(result).toHaveLength(2);
292
+ expect(result[0].community?.mobileThumbnails).toHaveLength(3);
293
+ expect(result[1].community?.mobileThumbnails).toHaveLength(3);
294
+ });
295
+ it("should handle empty array", () => {
296
+ const invitations = [];
297
+ const result = mapInvitationsWithThumbnails(invitations);
298
+ expect(result).toEqual([]);
299
+ });
300
+ });
301
+ describe("mapInvitationsOrMembersWithThumbnails", () => {
302
+ it("should map array of invitations or members", () => {
303
+ const items = [
304
+ {
305
+ id: 1,
306
+ community: {
307
+ id: 1,
308
+ title: "Community 1",
309
+ image: "/defaultCover/admin-blue.png",
310
+ },
311
+ },
312
+ {
313
+ id: 2,
314
+ community: {
315
+ id: 2,
316
+ title: "Community 2",
317
+ image: "/communities/defaultCover/reading-pink.png",
318
+ },
319
+ },
320
+ ];
321
+ const result = mapInvitationsOrMembersWithThumbnails(items);
322
+ expect(result).toHaveLength(2);
323
+ expect(result[0].community?.mobileThumbnails).toHaveLength(3);
324
+ expect(result[1].community?.mobileThumbnails).toHaveLength(3);
325
+ });
326
+ it("should handle empty array", () => {
327
+ const items = [];
328
+ const result = mapInvitationsOrMembersWithThumbnails(items);
329
+ expect(result).toEqual([]);
330
+ });
331
+ it("should handle mixed formats in array", () => {
332
+ const items = [
333
+ {
334
+ id: 1,
335
+ community: {
336
+ id: 1,
337
+ title: "Community 1",
338
+ image: "/defaultCover/admin-blue.png",
339
+ },
340
+ },
341
+ {
342
+ id: 2,
343
+ community: {
344
+ id: 2,
345
+ title: "Community 2",
346
+ image: "/communities/defaultCover/admin-blue.png",
347
+ },
348
+ },
349
+ ];
350
+ const result = mapInvitationsOrMembersWithThumbnails(items);
351
+ expect(result).toHaveLength(2);
352
+ expect(result[0].community?.mobileThumbnails).toEqual(result[1].community?.mobileThumbnails);
353
+ });
354
+ });
355
+ //# sourceMappingURL=community-image.util.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"community-image.util.test.js","sourceRoot":"","sources":["../../../src/utils/community-image.util.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from "./resource-url.util";
2
+ export * from "./rights.utils";
3
+ export * from "./community-image.types";
4
+ export * from "./community-image.util";
5
+ export * from "./background-images.constants";
@@ -0,0 +1,6 @@
1
+ export * from "./resource-url.util";
2
+ export * from "./rights.utils";
3
+ export * from "./community-image.types";
4
+ export * from "./community-image.util";
5
+ export * from "./background-images.constants";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ResourceDto } from "../dtos";
2
+ export declare function getResourceUrl(resource: ResourceDto): string | undefined;
@@ -0,0 +1,35 @@
1
+ import { AppName } from "../dtos";
2
+ export function getResourceUrl(resource) {
3
+ if (!resource)
4
+ return undefined;
5
+ if (resource.url)
6
+ return resource.url;
7
+ if (resource.resourceEntId) {
8
+ switch (resource.appName) {
9
+ case AppName.BLOG:
10
+ return `/blog/id/${resource.resourceEntId}`;
11
+ case AppName.COLLABORATIVEDITOR:
12
+ return `/collaborativeeditor#/view/${resource.resourceEntId}`;
13
+ case AppName.WORKSPACE:
14
+ return `/workspace/document/${resource.resourceEntId}`;
15
+ case AppName.TIMELINEGENERATOR:
16
+ return `/timelinegenerator#/view/${resource.resourceEntId}`;
17
+ case AppName.SCRAPBOOK:
18
+ return `/scrapbook#/view-scrapbook/${resource.resourceEntId}`;
19
+ case AppName.MINDMAP:
20
+ return `/mindmap/id/${resource.resourceEntId}`;
21
+ case AppName.WIKI:
22
+ return `/wiki/id/${resource.resourceEntId}`;
23
+ case AppName.EXERCIZER:
24
+ return `/exercizer#/subject/edit/${resource.resourceEntId}`;
25
+ case AppName.FORM:
26
+ return `/form/id/${resource.resourceEntId}`;
27
+ case AppName.COLLABORATIVEWALL:
28
+ return `/collaborativewall/id/${resource.resourceEntId}`;
29
+ default:
30
+ return `/${resource.appName}/id/${resource.resourceEntId}`;
31
+ }
32
+ }
33
+ return undefined;
34
+ }
35
+ //# sourceMappingURL=resource-url.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-url.util.js","sourceRoot":"","sources":["../../../src/utils/resource-url.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,SAAS,CAAC;AAO/C,MAAM,UAAU,cAAc,CAAC,QAAqB;IAClD,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,QAAQ,CAAC,GAAG;QAAE,OAAO,QAAQ,CAAC,GAAG,CAAC;IAEtC,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC3B,QAAQ,QAAQ,CAAC,OAAO,EAAE,CAAC;YACzB,KAAK,OAAO,CAAC,IAAI;gBACf,OAAO,YAAY,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC9C,KAAK,OAAO,CAAC,kBAAkB;gBAC7B,OAAO,8BAA8B,QAAQ,CAAC,aAAa,EAAE,CAAC;YAChE,KAAK,OAAO,CAAC,SAAS;gBACpB,OAAO,uBAAuB,QAAQ,CAAC,aAAa,EAAE,CAAC;YACzD,KAAK,OAAO,CAAC,iBAAiB;gBAC5B,OAAO,4BAA4B,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC9D,KAAK,OAAO,CAAC,SAAS;gBACpB,OAAO,8BAA8B,QAAQ,CAAC,aAAa,EAAE,CAAC;YAChE,KAAK,OAAO,CAAC,OAAO;gBAClB,OAAO,eAAe,QAAQ,CAAC,aAAa,EAAE,CAAC;YACjD,KAAK,OAAO,CAAC,IAAI;gBACf,OAAO,YAAY,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC9C,KAAK,OAAO,CAAC,SAAS;gBACpB,OAAO,4BAA4B,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC9D,KAAK,OAAO,CAAC,IAAI;gBACf,OAAO,YAAY,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC9C,KAAK,OAAO,CAAC,iBAAiB;gBAC5B,OAAO,yBAAyB,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC3D;gBACE,OAAO,IAAI,QAAQ,CAAC,OAAO,OAAO,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const WORKFLOW_RIGHTS: {
2
+ readonly COMMUNITY_ACCESS: "community.access";
3
+ readonly COMMUNITY_CREATE: "community.create";
4
+ };
@@ -0,0 +1,5 @@
1
+ export const WORKFLOW_RIGHTS = {
2
+ COMMUNITY_ACCESS: "community.access",
3
+ COMMUNITY_CREATE: "community.create",
4
+ };
5
+ //# sourceMappingURL=rights.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rights.utils.js","sourceRoot":"","sources":["../../../src/utils/rights.utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAI7B,gBAAgB,EAAE,kBAAkB;IAKpC,gBAAgB,EAAE,kBAAkB;CAC5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edifice.io/community-client-rest",
3
- "version": "1.0.0-develop-pedago.6",
3
+ "version": "1.0.0-develop.20251204185004",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "private": false,
@@ -17,11 +17,33 @@
17
17
  "main": "dist/node/index.js",
18
18
  "module": "dist/browser/index.js",
19
19
  "types": "dist/node/index.d.ts",
20
+ "scripts": {
21
+ "build": "pnpm run build:node && pnpm run build:browser && pnpm run build:react-native",
22
+ "build:prod": "NODE_ENV=production pnpm run build:node && pnpm run build:browser && pnpm run build:react-native",
23
+ "build:browser": "tsc -p tsconfig.browser.json --outDir dist/browser && tsc-alias -p tsconfig.browser.json --outDir dist/browser",
24
+ "build:node": "tsc -p tsconfig.node.json --outDir dist/node && tsc-alias -p tsconfig.node.json --outDir dist/node",
25
+ "build:react-native": "mkdir -p dist/react-native && cp -r dist/browser/* dist/react-native/ && find dist/react-native -name '*.node.js*' -delete && cp package.json.rn dist/react-native/package.json",
26
+ "clean": "rm -rf dist node_modules",
27
+ "format": "prettier --write src",
28
+ "lint": "eslint src",
29
+ "lint:fix": "eslint src --fix",
30
+ "prebuild": "pnpm clean && pnpm install",
31
+ "publish:main": "npm publish --no-git-checks --access public",
32
+ "publish:react-native": "cp .npmrc dist/react-native/ && cd dist/react-native && npm publish --no-git-checks --access public",
33
+ "publish:all": "pnpm run sync:rn-version && pnpm run publish:main && pnpm run publish:react-native",
34
+ "prepublishOnly": "pnpm run sync:rn-version",
35
+ "sync:rn-version": "edifice-update-rn-version",
36
+ "test": "pnpm run prebuild && vitest",
37
+ "test:coverage": "vitest --coverage",
38
+ "test:ui": "vitest --ui",
39
+ "test:watch": "vitest --watch"
40
+ },
20
41
  "dependencies": {
21
- "uuid": "^11.1.0",
22
- "@nestjs/swagger": "^11.2.0",
23
- "class-transformer": "^0.5.1",
24
- "class-validator": "^0.14.2"
42
+ "class-transformer": "0.5.1",
43
+ "class-validator": "0.14.2",
44
+ "@edifice.io/client": "develop-pedago",
45
+ "@nestjs/swagger": "11.2.0",
46
+ "uuid": "11.1.0"
25
47
  },
26
48
  "jest": {
27
49
  "moduleFileExtensions": [
@@ -45,19 +67,12 @@
45
67
  "pnpm": ">=8"
46
68
  },
47
69
  "devDependencies": {
48
- "@edifice.io/client": "^2.2.10",
49
- "@types/node": "^22.15.32",
50
- "@types/uuid": "^10.0.0",
51
- "tsc-alias": "^1.8.16",
52
- "typescript": "^5.8.3"
53
- },
54
- "scripts": {
55
- "prebuild": "rm -rf dist",
56
- "build:node": "tsc -p tsconfig.node.json --outDir dist/node && tsc-alias -p tsconfig.node.json --outDir dist/node",
57
- "build:browser": "tsc -p tsconfig.browser.json --outDir dist/browser && tsc-alias -p tsconfig.browser.json --outDir dist/browser",
58
- "build:react-native": "mkdir -p dist/react-native && cp -r dist/browser/* dist/react-native/ && find dist/react-native -name '*.node.js*' -delete && cp package.json.rn dist/react-native/package.json",
59
- "build": "pnpm run build:node && pnpm run build:browser && pnpm run build:react-native",
60
- "publish:main": "npm publish --no-git-checks --tag latest --access public",
61
- "publish:react-native": "cp .npmrc dist/react-native/ && cd dist/react-native && npm publish --no-git-checks --tag latest --access public"
70
+ "@edifice.io/edifice-nestjs-core": "develop-pedago",
71
+ "vitest": "latest",
72
+ "@vitest/ui": "latest",
73
+ "@vitest/coverage-v8": "latest",
74
+ "@types/uuid": "10.0.0",
75
+ "tsc-alias": "1.8.16",
76
+ "typescript": "5.9.2"
62
77
  }
63
- }
78
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "@edifice.io/community-client-rest-rn",
3
+ "version": "1.0.0-develop.20251204185004",
4
+ "description": "React Native compatible version of community-client-rest",
5
+ "author": "",
6
+ "private": false,
7
+ "license": "UNLICENSED",
8
+ "main": "index.js",
9
+ "dependencies": {
10
+ "uuid": "11.1.0",
11
+ "class-transformer": "0.5.1",
12
+ "class-validator": "0.14.2"
13
+ }
14
+ }
@@ -0,0 +1,25 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
2
+ const fs = require("fs");
3
+
4
+ // Get current version from package.json
5
+ const pkgPath = "package.json";
6
+ const pkg = JSON.parse(fs.readFileSync(pkgPath));
7
+
8
+ // Generate new timestamp
9
+ const now = new Date();
10
+ const pad = (n) => n.toString().padStart(2, "0");
11
+ const timestamp = `${now.getFullYear()}${pad(now.getMonth() + 1)}${pad(now.getDate())}${pad(now.getHours())}${pad(now.getMinutes())}${pad(now.getSeconds())}`;
12
+
13
+ // Remove all trailing timestamps and add the new one
14
+ const baseVersion = pkg.version.replace(/(\.\d{14})+$/, "");
15
+ const newVersion = `${baseVersion}.${timestamp}`;
16
+ pkg.version = newVersion;
17
+ fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
18
+
19
+ // Sync version to package.json.rn
20
+ const rnPath = "package.json.rn";
21
+ const rn = JSON.parse(fs.readFileSync(rnPath));
22
+ rn.version = newVersion;
23
+ fs.writeFileSync(rnPath, JSON.stringify(rn, null, 2) + "\n");
24
+
25
+ console.log("Client version updated:", newVersion);