@ueu/ueu-canvas 0.0.2 → 0.0.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 (378) hide show
  1. package/dist/Account.d.ts +22 -0
  2. package/dist/Account.d.ts.map +1 -0
  3. package/dist/NotImplementedException.d.ts +4 -0
  4. package/dist/NotImplementedException.d.ts.map +1 -0
  5. package/dist/__mocks__/Account.d.ts +17 -0
  6. package/dist/__mocks__/Account.d.ts.map +1 -0
  7. package/dist/__mocks__/index.d.ts +9 -0
  8. package/dist/__mocks__/index.d.ts.map +1 -0
  9. package/dist/__mocks__/mockAccountData.d.ts +6 -0
  10. package/dist/__mocks__/mockAccountData.d.ts.map +1 -0
  11. package/dist/__mocks__/mockEnrollment.d.ts +3 -0
  12. package/dist/__mocks__/mockEnrollment.d.ts.map +1 -0
  13. package/dist/__mocks__/mockRubricData.d.ts +20 -0
  14. package/dist/__mocks__/mockRubricData.d.ts.map +1 -0
  15. package/dist/__mocks__/mockTabData.d.ts +4 -0
  16. package/dist/__mocks__/mockTabData.d.ts.map +1 -0
  17. package/dist/__mocks__/mockTermData.d.ts +3 -0
  18. package/dist/__mocks__/mockTermData.d.ts.map +1 -0
  19. package/dist/__mocks__/mockUserData.d.ts +3 -0
  20. package/dist/__mocks__/mockUserData.d.ts.map +1 -0
  21. package/dist/__mocks__/utils.d.ts +3 -0
  22. package/dist/__mocks__/utils.d.ts.map +1 -0
  23. package/dist/__tests__/canvasUtils.test.d.ts +2 -0
  24. package/dist/__tests__/canvasUtils.test.d.ts.map +1 -0
  25. package/dist/__tests__/fetch.test.d.ts +2 -0
  26. package/dist/__tests__/fetch.test.d.ts.map +1 -0
  27. package/dist/__tests__/profile.test.d.ts +2 -0
  28. package/dist/__tests__/profile.test.d.ts.map +1 -0
  29. package/dist/__tests__/rubrics.test.d.ts +2 -0
  30. package/dist/__tests__/rubrics.test.d.ts.map +1 -0
  31. package/dist/baseCanvasObject.d.ts +41 -0
  32. package/dist/baseCanvasObject.d.ts.map +1 -0
  33. package/dist/canvasDataDefs.d.ts +97 -0
  34. package/dist/canvasDataDefs.d.ts.map +1 -0
  35. package/dist/canvasUtils.d.ts +65 -0
  36. package/dist/canvasUtils.d.ts.map +1 -0
  37. package/dist/consts.d.ts +3 -0
  38. package/dist/consts.d.ts.map +1 -0
  39. package/dist/content/BaseContentItem.d.ts +32 -0
  40. package/dist/content/BaseContentItem.d.ts.map +1 -0
  41. package/dist/content/ContentKind.d.ts +28 -0
  42. package/dist/content/ContentKind.d.ts.map +1 -0
  43. package/dist/content/__mocks__/determineContent.d.ts +65 -0
  44. package/dist/content/__mocks__/determineContent.d.ts.map +1 -0
  45. package/dist/content/__mocks__/mockAssignmentSubmission.d.ts +4 -0
  46. package/dist/content/__mocks__/mockAssignmentSubmission.d.ts.map +1 -0
  47. package/dist/content/__mocks__/mockContentData.d.ts +8 -0
  48. package/dist/content/__mocks__/mockContentData.d.ts.map +1 -0
  49. package/dist/content/__mocks__/openThisContentInTarget.d.ts +3 -0
  50. package/dist/content/__mocks__/openThisContentInTarget.d.ts.map +1 -0
  51. package/dist/content/__testingUtils__/utils.d.ts +6 -0
  52. package/dist/content/__testingUtils__/utils.d.ts.map +1 -0
  53. package/dist/content/__tests__/determineContent.test.d.ts +2 -0
  54. package/dist/content/__tests__/determineContent.test.d.ts.map +1 -0
  55. package/dist/content/__tests__/getContentFuncs.test.d.ts +2 -0
  56. package/dist/content/__tests__/getContentFuncs.test.d.ts.map +1 -0
  57. package/dist/content/assignments/Assignment.d.ts +15 -0
  58. package/dist/content/assignments/Assignment.d.ts.map +1 -0
  59. package/dist/content/assignments/AssignmentKind.d.ts +14 -0
  60. package/dist/content/assignments/AssignmentKind.d.ts.map +1 -0
  61. package/dist/content/assignments/__tests__/AssignmentKind.test.d.ts +2 -0
  62. package/dist/content/assignments/__tests__/AssignmentKind.test.d.ts.map +1 -0
  63. package/dist/content/assignments/__tests__/assignments.test.d.ts +2 -0
  64. package/dist/content/assignments/__tests__/assignments.test.d.ts.map +1 -0
  65. package/dist/content/assignments/deleteAssignmentGroup.d.ts +2 -0
  66. package/dist/content/assignments/deleteAssignmentGroup.d.ts.map +1 -0
  67. package/dist/content/assignments/genAssignmentGroups.d.ts +4 -0
  68. package/dist/content/assignments/genAssignmentGroups.d.ts.map +1 -0
  69. package/dist/content/assignments/index.d.ts +11 -0
  70. package/dist/content/assignments/index.d.ts.map +1 -0
  71. package/dist/content/assignments/legacy.d.ts +4 -0
  72. package/dist/content/assignments/legacy.d.ts.map +1 -0
  73. package/dist/content/assignments/updateAssignmentDueDates.d.ts +7 -0
  74. package/dist/content/assignments/updateAssignmentDueDates.d.ts.map +1 -0
  75. package/dist/content/determineContent.d.ts +19 -0
  76. package/dist/content/determineContent.d.ts.map +1 -0
  77. package/dist/content/discussions/Discussion.d.ts +13 -0
  78. package/dist/content/discussions/Discussion.d.ts.map +1 -0
  79. package/dist/content/discussions/DiscussionKind.d.ts +14 -0
  80. package/dist/content/discussions/DiscussionKind.d.ts.map +1 -0
  81. package/dist/content/discussions/__tests__/DiscussionKind.test.d.ts +2 -0
  82. package/dist/content/discussions/__tests__/DiscussionKind.test.d.ts.map +1 -0
  83. package/dist/content/discussions/genEquivalentDiscussionData.d.ts +32 -0
  84. package/dist/content/discussions/genEquivalentDiscussionData.d.ts.map +1 -0
  85. package/{src/content/discussions/index.ts → dist/content/discussions/index.d.ts} +1 -0
  86. package/dist/content/discussions/index.d.ts.map +1 -0
  87. package/dist/content/getContentFuncs.d.ts +3 -0
  88. package/dist/content/getContentFuncs.d.ts.map +1 -0
  89. package/{src/content/index.ts → dist/content/index.d.ts} +3 -3
  90. package/dist/content/index.d.ts.map +1 -0
  91. package/dist/content/openThisContentInTarget.d.ts +3 -0
  92. package/dist/content/openThisContentInTarget.d.ts.map +1 -0
  93. package/dist/content/pages/Page.d.ts +15 -0
  94. package/dist/content/pages/Page.d.ts.map +1 -0
  95. package/dist/content/pages/PageKind.d.ts +15 -0
  96. package/dist/content/pages/PageKind.d.ts.map +1 -0
  97. package/dist/content/pages/__tests__/PageKind.test.d.ts +2 -0
  98. package/dist/content/pages/__tests__/PageKind.test.d.ts.map +1 -0
  99. package/dist/content/pages/__tests__/learningMaterialsForModule.d.ts +2 -0
  100. package/dist/content/pages/__tests__/learningMaterialsForModule.d.ts.map +1 -0
  101. package/dist/content/pages/index.d.ts +10 -0
  102. package/dist/content/pages/index.d.ts.map +1 -0
  103. package/dist/content/pages/learningMaterialsForModule.d.ts +7 -0
  104. package/dist/content/pages/learningMaterialsForModule.d.ts.map +1 -0
  105. package/dist/content/pages/types.d.ts +11 -0
  106. package/dist/content/pages/types.d.ts.map +1 -0
  107. package/dist/content/quizzes/Quiz.d.ts +9 -0
  108. package/dist/content/quizzes/Quiz.d.ts.map +1 -0
  109. package/dist/content/quizzes/QuizKind.d.ts +13 -0
  110. package/dist/content/quizzes/QuizKind.d.ts.map +1 -0
  111. package/dist/content/quizzes/__tests__/QuizKind.test.d.ts +2 -0
  112. package/dist/content/quizzes/__tests__/QuizKind.test.d.ts.map +1 -0
  113. package/dist/content/quizzes/index.d.ts +2 -0
  114. package/dist/content/quizzes/index.d.ts.map +1 -0
  115. package/dist/content/quizzes/types.d.ts +45 -0
  116. package/dist/content/quizzes/types.d.ts.map +1 -0
  117. package/dist/content/types.d.ts +229 -0
  118. package/dist/content/types.d.ts.map +1 -0
  119. package/dist/course/Course.d.ts +87 -0
  120. package/dist/course/Course.d.ts.map +1 -0
  121. package/dist/course/IBlueprintCourse.d.ts +7 -0
  122. package/dist/course/IBlueprintCourse.d.ts.map +1 -0
  123. package/dist/course/__mocks__/blueprint.d.ts +14 -0
  124. package/dist/course/__mocks__/blueprint.d.ts.map +1 -0
  125. package/dist/course/__mocks__/mockCourseData.d.ts +3 -0
  126. package/dist/course/__mocks__/mockCourseData.d.ts.map +1 -0
  127. package/dist/course/__mocks__/mockLatePolicy.d.ts +4 -0
  128. package/dist/course/__mocks__/mockLatePolicy.d.ts.map +1 -0
  129. package/dist/course/__mocks__/mockModuleData.d.ts +7 -0
  130. package/dist/course/__mocks__/mockModuleData.d.ts.map +1 -0
  131. package/dist/course/__mocks__/mockProgressData.d.ts +3 -0
  132. package/dist/course/__mocks__/mockProgressData.d.ts.map +1 -0
  133. package/dist/course/__tests__/Course.test.d.ts +2 -0
  134. package/dist/course/__tests__/Course.test.d.ts.map +1 -0
  135. package/dist/course/__tests__/blueprint.test.d.ts +2 -0
  136. package/dist/course/__tests__/blueprint.test.d.ts.map +1 -0
  137. package/dist/course/__tests__/changeStartDate.test.d.ts +2 -0
  138. package/dist/course/__tests__/changeStartDate.test.d.ts.map +1 -0
  139. package/dist/course/__tests__/index.test.d.ts +2 -0
  140. package/dist/course/__tests__/index.test.d.ts.map +1 -0
  141. package/dist/course/blueprint.d.ts +21 -0
  142. package/dist/course/blueprint.d.ts.map +1 -0
  143. package/dist/course/cachedGetAssociatedCoursesFunc.d.ts +4 -0
  144. package/dist/course/cachedGetAssociatedCoursesFunc.d.ts.map +1 -0
  145. package/dist/course/changeStartDate.d.ts +25 -0
  146. package/dist/course/changeStartDate.d.ts.map +1 -0
  147. package/dist/course/code.d.ts +9 -0
  148. package/dist/course/code.d.ts.map +1 -0
  149. package/dist/course/courseTypes.d.ts +102 -0
  150. package/dist/course/courseTypes.d.ts.map +1 -0
  151. package/dist/course/getCourseIdFromUrl.d.ts +2 -0
  152. package/dist/course/getCourseIdFromUrl.d.ts.map +1 -0
  153. package/dist/course/getSections.d.ts +5 -0
  154. package/dist/course/getSections.d.ts.map +1 -0
  155. package/dist/course/getTermNameFromSections.d.ts +3 -0
  156. package/dist/course/getTermNameFromSections.d.ts.map +1 -0
  157. package/dist/course/index.d.ts +12 -0
  158. package/dist/course/index.d.ts.map +1 -0
  159. package/dist/course/migration/__mocks__/mockMigrationData.d.ts +6 -0
  160. package/dist/course/migration/__mocks__/mockMigrationData.d.ts.map +1 -0
  161. package/dist/course/migration/__tests__/migration.test.d.ts +2 -0
  162. package/dist/course/migration/__tests__/migration.test.d.ts.map +1 -0
  163. package/dist/course/migration/__tests__/migrationCache.test.d.ts +2 -0
  164. package/dist/course/migration/__tests__/migrationCache.test.d.ts.map +1 -0
  165. package/dist/course/migration/index.d.ts +47 -0
  166. package/dist/course/migration/index.d.ts.map +1 -0
  167. package/dist/course/migration/migrationCache.d.ts +12 -0
  168. package/dist/course/migration/migrationCache.d.ts.map +1 -0
  169. package/dist/course/modules.d.ts +35 -0
  170. package/dist/course/modules.d.ts.map +1 -0
  171. package/dist/course/notABlueprintError.d.ts +4 -0
  172. package/dist/course/notABlueprintError.d.ts.map +1 -0
  173. package/dist/course/references/getReferencesForText.d.ts +3 -0
  174. package/dist/course/references/getReferencesForText.d.ts.map +1 -0
  175. package/dist/course/references/getReferencesForText.test.d.ts +2 -0
  176. package/dist/course/references/getReferencesForText.test.d.ts.map +1 -0
  177. package/dist/course/references/getReferencesTemplate.d.ts +13 -0
  178. package/dist/course/references/getReferencesTemplate.d.ts.map +1 -0
  179. package/dist/course/references/mockCiteAsResponse.d.ts +127 -0
  180. package/dist/course/references/mockCiteAsResponse.d.ts.map +1 -0
  181. package/dist/course/retireBlueprint.d.ts +4 -0
  182. package/dist/course/retireBlueprint.d.ts.map +1 -0
  183. package/dist/course/toolbox.d.ts +18 -0
  184. package/dist/course/toolbox.d.ts.map +1 -0
  185. package/dist/date.d.ts +18 -0
  186. package/dist/date.d.ts.map +1 -0
  187. package/dist/enrollments/EnrollmentTypes.d.ts +60 -0
  188. package/dist/enrollments/EnrollmentTypes.d.ts.map +1 -0
  189. package/dist/enrollments/enrollmentRole.d.ts +5 -0
  190. package/dist/enrollments/enrollmentRole.d.ts.map +1 -0
  191. package/dist/enrollments/getEnrollmentGenerator.d.ts +40 -0
  192. package/dist/enrollments/getEnrollmentGenerator.d.ts.map +1 -0
  193. package/dist/enrollments/index.d.ts +4 -0
  194. package/dist/enrollments/index.d.ts.map +1 -0
  195. package/dist/fetch/__mocks__/fetchJson.d.ts +4 -0
  196. package/dist/fetch/__mocks__/fetchJson.d.ts.map +1 -0
  197. package/dist/fetch/__mocks__/getPagedDataGenerator.d.ts +4 -0
  198. package/dist/fetch/__mocks__/getPagedDataGenerator.d.ts.map +1 -0
  199. package/dist/fetch/__mocks__/index.d.ts +4 -0
  200. package/dist/fetch/__mocks__/index.d.ts.map +1 -0
  201. package/dist/fetch/apiGetConfig.d.ts +4 -0
  202. package/dist/fetch/apiGetConfig.d.ts.map +1 -0
  203. package/dist/fetch/apiWriteConfig.d.ts +4 -0
  204. package/dist/fetch/apiWriteConfig.d.ts.map +1 -0
  205. package/dist/fetch/canvasDataFetchGenFunc.d.ts +6 -0
  206. package/dist/fetch/canvasDataFetchGenFunc.d.ts.map +1 -0
  207. package/dist/fetch/fetchJson.d.ts +3 -0
  208. package/dist/fetch/fetchJson.d.ts.map +1 -0
  209. package/dist/fetch/getPagedDataGenerator.d.ts +63 -0
  210. package/dist/fetch/getPagedDataGenerator.d.ts.map +1 -0
  211. package/{src/fetch/index.ts → dist/fetch/index.d.ts} +1 -0
  212. package/dist/fetch/index.d.ts.map +1 -0
  213. package/dist/fetch/utils.d.ts +4 -0
  214. package/dist/fetch/utils.d.ts.map +1 -0
  215. package/dist/files.d.ts +29 -0
  216. package/dist/files.d.ts.map +1 -0
  217. package/dist/fixes/annotations.d.ts +15 -0
  218. package/dist/fixes/annotations.d.ts.map +1 -0
  219. package/dist/fixes/index.d.ts +36 -0
  220. package/dist/fixes/index.d.ts.map +1 -0
  221. package/{src/index.ts → dist/index.d.ts} +5 -10
  222. package/dist/index.d.ts.map +1 -0
  223. package/dist/index.js +8929 -0
  224. package/dist/profile.d.ts +24 -0
  225. package/dist/profile.d.ts.map +1 -0
  226. package/dist/rubricTypes.d.ts +71 -0
  227. package/dist/rubricTypes.d.ts.map +1 -0
  228. package/dist/rubrics.d.ts +9 -0
  229. package/dist/rubrics.d.ts.map +1 -0
  230. package/dist/term/Term.d.ts +21 -0
  231. package/dist/term/Term.d.ts.map +1 -0
  232. package/dist/term/__tests__/dateFromTermName.test.d.ts +2 -0
  233. package/dist/term/__tests__/dateFromTermName.test.d.ts.map +1 -0
  234. package/dist/term/__tests__/getTermsGenerator.test.d.ts +2 -0
  235. package/dist/term/__tests__/getTermsGenerator.test.d.ts.map +1 -0
  236. package/dist/term/dateFromTermName.d.ts +4 -0
  237. package/dist/term/dateFromTermName.d.ts.map +1 -0
  238. package/dist/term/getTermsGenerator.d.ts +7 -0
  239. package/dist/term/getTermsGenerator.d.ts.map +1 -0
  240. package/dist/term/index.d.ts +4 -0
  241. package/dist/term/index.d.ts.map +1 -0
  242. package/dist/toolbox.d.ts +5 -0
  243. package/dist/toolbox.d.ts.map +1 -0
  244. package/dist/types.d.ts +120 -0
  245. package/dist/types.d.ts.map +1 -0
  246. package/dist/users/getUserGenerator.d.ts +19 -0
  247. package/dist/users/getUserGenerator.d.ts.map +1 -0
  248. package/dist/users/index.d.ts +2 -0
  249. package/dist/users/index.d.ts.map +1 -0
  250. package/package.json +49 -45
  251. package/LICENSE +0 -21
  252. package/html-loader.js +0 -7
  253. package/jest.config.js +0 -20
  254. package/src/Account.ts +0 -69
  255. package/src/NotImplementedException.ts +0 -3
  256. package/src/__mocks__/Account.ts +0 -55
  257. package/src/__mocks__/index.ts +0 -8
  258. package/src/__mocks__/mockAccountData.ts +0 -43
  259. package/src/__mocks__/mockEnrollment.ts +0 -22
  260. package/src/__mocks__/mockRubricData.ts +0 -71
  261. package/src/__mocks__/mockTabData.ts +0 -13
  262. package/src/__mocks__/mockTermData.ts +0 -7
  263. package/src/__mocks__/mockUserData.ts +0 -14
  264. package/src/__mocks__/utils.ts +0 -9
  265. package/src/__tests__/canvasUtils.test.ts +0 -527
  266. package/src/__tests__/fetch.test.ts +0 -310
  267. package/src/__tests__/profile.test.ts +0 -19
  268. package/src/__tests__/rubrics.test.ts +0 -131
  269. package/src/baseCanvasObject.ts +0 -139
  270. package/src/canvasDataDefs.ts +0 -124
  271. package/src/canvasUtils.ts +0 -420
  272. package/src/consts.ts +0 -2
  273. package/src/content/BaseContentItem.ts +0 -219
  274. package/src/content/ContentKind.ts +0 -85
  275. package/src/content/__mocks__/determineContent.ts +0 -27
  276. package/src/content/__mocks__/mockAssignmentSubmission.ts +0 -37
  277. package/src/content/__mocks__/mockContentData.ts +0 -98
  278. package/src/content/__mocks__/openThisContentInTarget.ts +0 -2
  279. package/src/content/__testingUtils__/utils.ts +0 -47
  280. package/src/content/__tests__/determineContent.test.ts +0 -101
  281. package/src/content/__tests__/getContentFuncs.test.ts +0 -78
  282. package/src/content/assignments/Assignment.ts +0 -69
  283. package/src/content/assignments/AssignmentKind.ts +0 -29
  284. package/src/content/assignments/__tests__/AssignmentKind.test.ts +0 -31
  285. package/src/content/assignments/__tests__/assignments.test.ts +0 -72
  286. package/src/content/assignments/deleteAssignmentGroup.ts +0 -15
  287. package/src/content/assignments/genAssignmentGroups.ts +0 -15
  288. package/src/content/assignments/index.ts +0 -31
  289. package/src/content/assignments/legacy.ts +0 -11
  290. package/src/content/assignments/updateAssignmentDueDates.ts +0 -25
  291. package/src/content/determineContent.ts +0 -72
  292. package/src/content/discussions/Discussion.ts +0 -32
  293. package/src/content/discussions/DiscussionKind.ts +0 -30
  294. package/src/content/discussions/__tests__/DiscussionKind.test.ts +0 -31
  295. package/src/content/discussions/genEquivalentDiscussionData.ts +0 -97
  296. package/src/content/getContentFuncs.ts +0 -30
  297. package/src/content/openThisContentInTarget.ts +0 -38
  298. package/src/content/pages/Page.ts +0 -35
  299. package/src/content/pages/PageKind.ts +0 -39
  300. package/src/content/pages/__tests__/PageKind.test.ts +0 -86
  301. package/src/content/pages/__tests__/learningMaterialsForModule.ts +0 -57
  302. package/src/content/pages/index.ts +0 -12
  303. package/src/content/pages/learningMaterialsForModule.ts +0 -16
  304. package/src/content/pages/types.ts +0 -11
  305. package/src/content/quizzes/Quiz.ts +0 -25
  306. package/src/content/quizzes/QuizKind.ts +0 -23
  307. package/src/content/quizzes/__tests__/QuizKind.test.ts +0 -30
  308. package/src/content/quizzes/index.ts +0 -3
  309. package/src/content/quizzes/types.ts +0 -101
  310. package/src/content/types.ts +0 -302
  311. package/src/course/Course.ts +0 -538
  312. package/src/course/IBlueprintCourse.ts +0 -8
  313. package/src/course/__mocks__/blueprint.ts +0 -31
  314. package/src/course/__mocks__/mockCourseData.ts +0 -49
  315. package/src/course/__mocks__/mockLatePolicy.ts +0 -14
  316. package/src/course/__mocks__/mockModuleData.ts +0 -60
  317. package/src/course/__mocks__/mockProgressData.ts +0 -28
  318. package/src/course/__mocks__/syllabus.gallant.html +0 -302
  319. package/src/course/__mocks__/syllabus.goofus.html +0 -288
  320. package/src/course/__mocks__/syllabus.grad.html +0 -282
  321. package/src/course/__tests__/Course.test.ts +0 -91
  322. package/src/course/__tests__/blueprint.test.ts +0 -292
  323. package/src/course/__tests__/changeStartDate.test.ts +0 -180
  324. package/src/course/__tests__/index.test.ts +0 -104
  325. package/src/course/blueprint.ts +0 -116
  326. package/src/course/cachedGetAssociatedCoursesFunc.ts +0 -13
  327. package/src/course/changeStartDate.ts +0 -139
  328. package/src/course/code.ts +0 -32
  329. package/src/course/courseTypes.ts +0 -161
  330. package/src/course/getCourseIdFromUrl.ts +0 -7
  331. package/src/course/getSections.ts +0 -9
  332. package/src/course/getTermNameFromSections.ts +0 -9
  333. package/src/course/index.ts +0 -12
  334. package/src/course/migration/__mocks__/mockMigrationData.ts +0 -39
  335. package/src/course/migration/__tests__/migration.test.ts +0 -173
  336. package/src/course/migration/__tests__/migrationCache.test.ts +0 -45
  337. package/src/course/migration/index.ts +0 -134
  338. package/src/course/migration/migrationCache.ts +0 -56
  339. package/src/course/modules.ts +0 -113
  340. package/src/course/notABlueprintError.ts +0 -3
  341. package/src/course/references/getReferencesForText.test.ts +0 -18
  342. package/src/course/references/getReferencesForText.ts +0 -12
  343. package/src/course/references/getReferencesTemplate.ts +0 -28
  344. package/src/course/references/mockCiteAsResponse.ts +0 -320
  345. package/src/course/retireBlueprint.ts +0 -21
  346. package/src/course/toolbox.ts +0 -107
  347. package/src/date.ts +0 -119
  348. package/src/enrollments/EnrollmentTypes.ts +0 -76
  349. package/src/enrollments/enrollmentRole.ts +0 -6
  350. package/src/enrollments/getEnrollmentGenerator.ts +0 -79
  351. package/src/enrollments/index.ts +0 -3
  352. package/src/fetch/__mocks__/fetchJson.ts +0 -1
  353. package/src/fetch/__mocks__/getPagedDataGenerator.ts +0 -8
  354. package/src/fetch/__mocks__/index.ts +0 -6
  355. package/src/fetch/apiGetConfig.ts +0 -10
  356. package/src/fetch/apiWriteConfig.ts +0 -13
  357. package/src/fetch/canvasDataFetchGenFunc.ts +0 -20
  358. package/src/fetch/fetchJson.ts +0 -22
  359. package/src/fetch/getPagedDataGenerator.ts +0 -157
  360. package/src/fetch/utils.ts +0 -16
  361. package/src/files.ts +0 -60
  362. package/src/fixes/annotations.ts +0 -105
  363. package/src/fixes/index.ts +0 -81
  364. package/src/profile.ts +0 -253
  365. package/src/rubricTypes.ts +0 -82
  366. package/src/rubrics.ts +0 -48
  367. package/src/term/Term.ts +0 -77
  368. package/src/term/__tests__/dateFromTermName.test.ts +0 -22
  369. package/src/term/__tests__/getTermsGenerator.test.ts +0 -24
  370. package/src/term/dateFromTermName.ts +0 -17
  371. package/src/term/getTermsGenerator.ts +0 -21
  372. package/src/term/index.ts +0 -3
  373. package/src/toolbox.ts +0 -19
  374. package/src/types.ts +0 -134
  375. package/src/users/getUserGenerator.ts +0 -39
  376. package/src/users/index.ts +0 -1
  377. package/tsconfig.json +0 -46
  378. package/webpack.config.js +0 -122
@@ -1,310 +0,0 @@
1
- import {deepObjectMerge, ICanvasCallConfig, queryStringify, range, renderAsyncGen} from "../canvasUtils";
2
- import {describe, expect} from "@jest/globals";
3
- import {CanvasData} from "../canvasDataDefs";
4
- import {getPagedDataGenerator} from "@/fetch/getPagedDataGenerator";
5
- import {fetchGetConfig} from "@/fetch/utils";
6
- import {fetchJson} from "@/fetch/fetchJson";
7
- import {canvasDataFetchGenFunc} from "@/fetch/canvasDataFetchGenFunc";
8
-
9
- global.fetch = jest.fn();
10
- const fetchMock = fetch as jest.Mock;
11
-
12
- describe('renderAsyncGen renders an async generator out', () => {
13
- const entries = range(0, 20);
14
- it('render async generator', async () => {
15
- const asyncGen = async function* () {
16
- for (const i of [...entries]) {
17
- yield i;
18
- }
19
- }
20
- const entryIterator = range(0, 20);
21
- for (const result of await renderAsyncGen(asyncGen())) {
22
- expect(result).toEqual(entryIterator.next().value)
23
- }
24
- })
25
- })
26
-
27
- describe('canvasDataFetchGenFunc', () => {
28
- type Goober = {
29
- name: string,
30
- courseId: number,
31
- gooberId: number,
32
- } & CanvasData
33
- const config: ICanvasCallConfig = {fetchInit: {}};
34
- const goobers: Goober[] = [...range(0, 10)].map(i => ({name: 'thistle', courseId: i, gooberId: i}));
35
-
36
-
37
- it('successfully generates urls and results', async () => {
38
- const fetchGoobersGen = canvasDataFetchGenFunc<Goober, { courseId: number, gooberId: number }>(({
39
- courseId,
40
- gooberId
41
- }) => `/api/v1/${courseId}/${gooberId}`);
42
- for (let i = 0; i < 10; i++) {
43
- expect(fetchMock).toBeCalledTimes(i);
44
- const expectedFetchResult = [goobers[i]];
45
- fetchMock.mockResolvedValue({
46
- json: async () => expectedFetchResult
47
- })
48
- const getGoobers = fetchGoobersGen({courseId: i, gooberId: i * 2}, config);
49
- const {value} = await getGoobers.next();
50
- expect(fetchMock).toHaveBeenCalledWith(`/api/v1/${i}/${i * 2}`, config.fetchInit)
51
- expect(value).toEqual(goobers[i]);
52
- }
53
- })
54
- })
55
-
56
- describe('fetchJson', () => {
57
- const testData = {a: 1, b: 2, c: 3};
58
-
59
- it('rejects relative paths', async () => {
60
- await expect(async () => await fetchJson('apple/dumpling/gang')).rejects.toThrow()
61
- })
62
- it('accepts paths starting with /', async () => {
63
- fetchMock.mockResolvedValue({json: async () => testData})
64
- expect(await fetchJson('/apple/dumpling/gang')).toEqual(testData)
65
- })
66
- it('accepts paths starting with http, http, ftp', async () => {
67
- fetchMock.mockResolvedValue({json: async () => testData})
68
- expect(await fetchJson('http://localhost:8080/apple/dumpling/gang')).toEqual(testData)
69
- fetchMock.mockResolvedValue({json: async () => testData})
70
- expect(await fetchJson('https://localhost:8080/apple/dumpling/gang')).toEqual(testData)
71
- fetchMock.mockResolvedValue({json: async () => testData})
72
- expect(await fetchJson('ftp://localhost:8080/apple/dumpling/gang')).toEqual(testData)
73
- })
74
-
75
- it('incorporatesQueryParams', async () => {
76
- fetchMock.mockReturnValue({json: async () => testData});
77
- const fetchInit: RequestInit = {method: 'PUT'};
78
- await fetchJson('/url', {
79
- queryParams: {
80
- query: 'test'
81
- },
82
- fetchInit,
83
- });
84
- expect(fetchMock).toHaveBeenCalledWith('/url?query=test', fetchInit)
85
-
86
- })
87
- })
88
-
89
- describe('fetchGetConfig', () => {
90
- beforeEach(() => {
91
- jest.clearAllMocks();
92
- });
93
-
94
- it('should merge the options in', () => {
95
- const options = {param1: 'value1'};
96
- const baseConfig = {queryParams: {a: '1'}};
97
-
98
- const config = fetchGetConfig<Record<string, any>>(options, baseConfig);
99
-
100
- expect(config).toEqual(deepObjectMerge<Record<string, any>>({queryParams: options}, baseConfig))
101
- });
102
- })
103
-
104
-
105
- describe('getPagedDataGenerator', () => {
106
-
107
-
108
- beforeEach(() => {
109
- jest.clearAllMocks();
110
- });
111
-
112
- it('should append queryParams to the URL if provided', async () => {
113
- const mockUrl = 'http://example.com/api/data';
114
- const mockConfig: ICanvasCallConfig = {
115
- queryParams: {key1: 'value1', key2: 'value2'},
116
- };
117
-
118
- const mockData = [{id: 1}, {id: 2}];
119
- fetchMock.mockResolvedValue({
120
- json: jest.fn().mockResolvedValue(mockData),
121
- headers: new Headers({}),
122
- ok: true,
123
- } as any);
124
-
125
- const urlWithParams = `${mockUrl}?key1=value1&key2=value2`;
126
-
127
- const generator = getPagedDataGenerator<CanvasData>(mockUrl, mockConfig);
128
- await generator.next();
129
-
130
- expect(fetchMock).toHaveBeenCalledWith(urlWithParams, mockConfig.fetchInit);
131
- });
132
-
133
- it('should yield data from the response', async () => {
134
- const mockUrl = 'http://example.com/api/data';
135
- const mockData = [{id: 1}, {id: 2}];
136
- fetchMock.mockResolvedValue({
137
- json: jest.fn().mockResolvedValue(mockData),
138
- headers: new Headers({}),
139
- ok: true,
140
- } as any);
141
-
142
- const generator = getPagedDataGenerator<CanvasData>(mockUrl);
143
-
144
- const result1 = await generator.next();
145
- const result2 = await generator.next();
146
-
147
- expect(result1.value).toEqual({id: 1});
148
- expect(result2.value).toEqual({id: 2});
149
- });
150
-
151
- it('should handle paginated responses', async () => {
152
- const mockUrl = 'http://example.com/api/data';
153
- const mockDataPage1 = [{id: 1}, {id: 2}];
154
- const mockDataPage2 = [{id: 3}, {id: 4}];
155
- const nextLink = '<http://example.com/api/data?page=2>; rel="next"';
156
-
157
- fetchMock
158
- .mockResolvedValueOnce({
159
- json: jest.fn().mockResolvedValue(mockDataPage1),
160
- headers: new Headers({Link: nextLink}),
161
- ok: true,
162
- } as any)
163
- .mockResolvedValueOnce({
164
- json: jest.fn().mockResolvedValue(mockDataPage2),
165
- headers: new Headers({}),
166
- ok: true,
167
- } as any);
168
-
169
- const generator = getPagedDataGenerator<CanvasData>(mockUrl);
170
-
171
- const result1 = await generator.next();
172
- const result2 = await generator.next();
173
- const result3 = await generator.next();
174
- const result4 = await generator.next();
175
-
176
- expect([
177
- result1,
178
- result2,
179
- result3,
180
- result4,
181
- ].map(a => a.value.id)).toEqual(
182
- [1, 2, 3, 4]
183
- )
184
-
185
- });
186
-
187
- it('should log a warning if the URL contains "undefined"', async () => {
188
- const mockUrl = 'http://example.com/api/data/undefined';
189
- const consoleWarnSpy = jest.spyOn(console, 'warn').mockImplementation();
190
-
191
- const mockData = [{id: 1}];
192
- fetchMock.mockResolvedValue({
193
- json: jest.fn().mockResolvedValue(mockData),
194
- headers: new Headers({}),
195
- ok: true,
196
- } as any);
197
-
198
- const generator = getPagedDataGenerator<CanvasData>(mockUrl);
199
- await generator.next();
200
-
201
- expect(consoleWarnSpy).toHaveBeenCalledWith(mockUrl);
202
-
203
- consoleWarnSpy.mockRestore();
204
- });
205
-
206
- it('should return an empty array and log a warning if no data is found', async () => {
207
- const mockUrl = 'http://example.com/api/data';
208
- const consoleWarnSpy = jest.spyOn(console, 'warn').mockImplementation();
209
-
210
- fetchMock.mockResolvedValue({
211
- json: jest.fn().mockResolvedValue(null),
212
- headers: new Headers({}),
213
- ok: true,
214
- } as any);
215
-
216
- const generator = getPagedDataGenerator<CanvasData>(mockUrl);
217
- const result = await generator.next();
218
-
219
- expect(result.value).toEqual([]);
220
- expect(consoleWarnSpy).toHaveBeenCalledWith(`no data found for ${mockUrl}`);
221
-
222
- consoleWarnSpy.mockRestore();
223
- });
224
-
225
- it('should process non-array object response data and yield values', async () => {
226
- const mockUrl = 'http://example.com/api/data';
227
- const mockData = {items: [{id: 1}, {id: 2}], otherKey: 'value'};
228
- fetchMock.mockResolvedValue({
229
- json: jest.fn().mockResolvedValue(mockData),
230
- headers: new Headers({}),
231
- ok: true,
232
- } as any);
233
-
234
- const generator = getPagedDataGenerator<CanvasData>(mockUrl);
235
-
236
- const result1 = await generator.next();
237
- const result2 = await generator.next();
238
-
239
- expect(result1.value).toEqual({id: 1});
240
- expect(result2.value).toEqual({id: 2});
241
- });
242
-
243
- it('should handle nested non-array object response data and yield values', async () => {
244
- const mockUrl = 'http://example.com/api/data';
245
- const mockData = {items: [{id: 1}, {id: 2}], otherKey: 'value'};
246
- fetchMock.mockResolvedValue({
247
- json: jest.fn().mockResolvedValue(mockData),
248
- headers: new Headers({}),
249
- ok: true,
250
- } as any);
251
-
252
- const generator = getPagedDataGenerator<CanvasData>(mockUrl);
253
-
254
- const result1 = await generator.next();
255
- const result2 = await generator.next();
256
-
257
- expect(result1.value).toEqual({id: 1});
258
- expect(result2.value).toEqual({id: 2});
259
- });
260
-
261
- it('should concatenate previous and current page data if response data is non-array object', async () => {
262
- const mockUrl = 'http://example.com/api/data';
263
- const mockDataPage1 = [{id: 1}];
264
- const mockDataPage2 = {items: [{id: 2}, {id: 3}], otherKey: 'value'};
265
- const nextLink = '<http://example.com/api/data?page=2>; rel="next"';
266
-
267
- fetchMock
268
- .mockResolvedValueOnce({
269
- json: jest.fn().mockResolvedValue(mockDataPage1),
270
- headers: new Headers({Link: nextLink}),
271
- ok: true,
272
- } as any)
273
- .mockResolvedValueOnce({
274
- json: jest.fn().mockResolvedValue(mockDataPage2),
275
- headers: new Headers({}),
276
- ok: true,
277
- } as any);
278
-
279
- const generator = getPagedDataGenerator<CanvasData>(mockUrl);
280
-
281
- const result1 = await generator.next();
282
- const result2 = await generator.next();
283
- const result3 = await generator.next();
284
-
285
- expect(result1.value.id).toEqual(1);
286
- expect(result2.value.id).toEqual(2);
287
- expect(result3.value.id).toEqual(3);
288
- });
289
-
290
- it('should stop pagination when no next link is present', async () => {
291
- const mockUrl = 'http://example.com/api/data';
292
- const mockDataPage1 = [{id: 1}];
293
- const noNextLink = '';
294
-
295
- fetchMock.mockResolvedValueOnce({
296
- json: jest.fn().mockResolvedValue(mockDataPage1),
297
- headers: new Headers({Link: noNextLink}),
298
- ok: true,
299
- } as any);
300
-
301
- const generator = getPagedDataGenerator<CanvasData>(mockUrl);
302
-
303
- const result1 = await generator.next();
304
- const result2 = await generator.next();
305
-
306
- expect(result1.value).toEqual({id: 1});
307
- expect(result2.done).toBe(true);
308
- });
309
-
310
- });
@@ -1,19 +0,0 @@
1
- import {IUserData} from "../canvasDataDefs";
2
- import {frontPageBio} from "../profile";
3
- import {mockUserData} from "../__mocks__/mockUserData";
4
-
5
- import {IProfile} from "@/types";
6
-
7
- describe('frontPageBio', () => {
8
- const profile = {
9
- user: {...mockUserData, email: "ttestersson@unity.edu"},
10
- displayName: "Test Testersson Phd"
11
- }
12
- it('renders display name properly', () => {
13
- expect(frontPageBio(profile)).toContain(profile.displayName);
14
- })
15
- it('renders email properly', () => {
16
- expect(frontPageBio(profile)).toContain(profile.user.email);
17
- })
18
-
19
- })
@@ -1,131 +0,0 @@
1
-
2
- import {
3
- getRubric,
4
- rubricApiUrl,
5
- getRubricsFetchUrl,
6
- rubricsForCourseGen,
7
- rubricAssociationUrl, updateRubricAssociation
8
- } from "../rubrics";
9
- import {returnMockAsyncGen} from "@/__mocks__/utils";
10
- import mockRubric, {mockRubricAssociation, mockRubricsForAssignments} from "../__mocks__/mockRubricData";
11
-
12
- import {deepObjectMerge, formDataify, renderAsyncGen} from "../canvasUtils";
13
- import {getPagedDataGenerator} from "@/fetch/getPagedDataGenerator";
14
- import {fetchJson} from "@/fetch/fetchJson";
15
-
16
-
17
-
18
- jest.mock('../fetch/fetchJson', () => ({
19
- fetchJson: jest.fn(),
20
- }))
21
-
22
- jest.mock('../fetch/getPagedDataGenerator', () => ({
23
- getPagedDataGenerator: jest.fn(),
24
- }))
25
-
26
- jest.mock('../canvasUtils', () => ({
27
- ...jest.requireActual('../canvasUtils'),
28
- formDataify: jest.fn(),
29
- }));
30
-
31
- const pagedDataGenMock = getPagedDataGenerator as jest.Mock;
32
- const fetchJsonMock = fetchJson as jest.Mock;
33
-
34
- describe('rubricsForCourseGen', () => {
35
- beforeEach(() => {
36
- pagedDataGenMock.mockClear();
37
- })
38
- it('gets rubrics for a course', async () => {
39
- const mockRubrics = [{...mockRubric, id: 1}, {...mockRubric, id: 2}];
40
- const config = { fetchInit: {} };
41
- pagedDataGenMock.mockImplementation(returnMockAsyncGen(mockRubrics))
42
- const rubricGen = rubricsForCourseGen(0, {}, config);
43
- expect(await renderAsyncGen(rubricGen)).toEqual(mockRubrics);
44
- expect(pagedDataGenMock).toHaveBeenCalledWith(getRubricsFetchUrl(0), config);
45
- })
46
-
47
- it('includes associations when needed', async () => {
48
- const mockRubrics = mockRubricsForAssignments([0, 1, 2, 3], undefined, {});
49
- const mockWithAssociations = mockRubricsForAssignments([0, 1, 2, 3])
50
- const mockAssociations = mockWithAssociations.map(rubric => rubric.associations);
51
- const config = { fetchInit: {} };
52
- (getPagedDataGenerator as jest.Mock).mockImplementation(returnMockAsyncGen(mockRubrics))
53
- const rubricGen = rubricsForCourseGen(0, {include: ['associations']}, config);
54
- expect(pagedDataGenMock.mock.lastCall).toEqual([
55
- getRubricsFetchUrl(0), config
56
- ]);
57
- const mockRubricIterator = mockRubrics.values();
58
- const mockAssocIterator = mockAssociations.values();
59
-
60
- fetchJsonMock.mockImplementation(async(url, config) => {
61
- const rubric = mockRubricIterator.next().value;
62
- return {...rubric, associations: mockAssocIterator.next().value }
63
- })
64
-
65
- expect(await renderAsyncGen(rubricGen)).toEqual(mockWithAssociations);
66
- })
67
- })
68
-
69
- describe('getRubric', ()=> {
70
- beforeEach(() => {
71
- fetchJsonMock.mockClear();
72
- })
73
-
74
- it('calls with the correct parameters, returnValue', async() => {
75
- const [courseId, rubricId] = [1,2];
76
- const expectedUrl = rubricApiUrl(courseId, rubricId);
77
- fetchJsonMock.mockResolvedValue(mockRubric);
78
- const rubric = await getRubric(courseId, rubricId, {include: ["associations"]}, {fetchInit: {}});
79
-
80
- expect(fetchJsonMock.mock.lastCall).toEqual([
81
- expectedUrl,
82
- {
83
- fetchInit: {},
84
- queryParams: { include: ['associations']}
85
- }
86
- ])
87
- expect(rubric).toEqual(mockRubric);
88
- })
89
- })
90
-
91
-
92
-
93
- describe('rubricAssociationUrl', () => {
94
- it('should return the correct URL for given courseId and rubricAssociationId', () => {
95
- const courseId = 123;
96
- const rubricAssociationId = 456;
97
- const expectedUrl = `/api/v1/courses/${courseId}/rubric_associations/${rubricAssociationId}`;
98
-
99
- expect(rubricAssociationUrl(courseId, rubricAssociationId)).toBe(expectedUrl);
100
- });
101
- });
102
- // Mock dependencies
103
-
104
- describe('updateRubricAssociation', () => {
105
- const courseId = 123;
106
- const rubricAssociationId = 456;
107
- const data = { id: 1, rubric_association: {} };
108
- const config = { fetchInit: {} };
109
-
110
- beforeEach(() => {
111
- fetchJsonMock.mockClear();
112
- });
113
-
114
- it('should call fetchJson with the correct URL and merged config', async () => {
115
- const mergedConfig = {
116
- fetchInit: {
117
- method: 'PUT',
118
- body: 'someFormData'
119
- }
120
- };
121
-
122
- (formDataify as jest.Mock).mockReturnValue('someFormData');
123
- fetchJsonMock.mockResolvedValue('response');
124
-
125
- const result = await updateRubricAssociation(courseId, rubricAssociationId, data, config);
126
-
127
- expect(formDataify).toHaveBeenCalledWith(data);
128
- expect(fetchJson).toHaveBeenCalledWith(`/api/v1/courses/${courseId}/rubric_associations/${rubricAssociationId}`, mergedConfig);
129
- expect(result).toBe('response');
130
- });
131
- });
@@ -1,139 +0,0 @@
1
- import {CanvasData} from "./canvasDataDefs";
2
- import assert from "assert";
3
- import {formDataify, ICanvasCallConfig, renderAsyncGen} from "./canvasUtils";
4
- import {Course} from "./course/Course";
5
- import {getPagedData, getPagedDataGenerator} from "./fetch/getPagedDataGenerator";
6
- import {overrideConfig} from "./fetch/utils";
7
- import {fetchJson} from "./fetch/fetchJson";
8
- import {BaseContentItem} from "./content/BaseContentItem";
9
-
10
-
11
- export interface ICanvasObject<CanvasDataType extends CanvasData> {
12
- rawData: CanvasDataType,
13
- name: string,
14
-
15
- saveData(data: Record<string, any>, config: ICanvasCallConfig | undefined): Promise<Record<string, any>>
16
- }
17
-
18
- /**
19
- * DEPRECATED
20
- */
21
- export class BaseCanvasObject<CanvasDataType extends CanvasData> implements ICanvasObject<CanvasDataType>{
22
-
23
- static idProperty = 'id'; // The field name of the id of the canvas object type
24
- static nameProperty: string | null = 'name'; // The field name of the primary name of the canvas object type
25
- static contentUrlTemplate: string | null = null; // A templated url to get a single item
26
- static allContentUrlTemplate: string | null = null; // A templated url to get all items
27
- protected canvasData: CanvasDataType;
28
- private _accountId: null | number = null;
29
- protected get accountId(): null | number {
30
- return this._accountId;
31
- }
32
- constructor(data: CanvasDataType) {
33
- this.canvasData = data || {}; // A dict holding the decoded json representation of the object in Canvas
34
- }
35
-
36
- getClass(): typeof BaseContentItem {
37
- return this.constructor as typeof BaseContentItem;
38
- }
39
-
40
-
41
- getItem<T>(item: string) {
42
- return this.canvasData[item] as T;
43
- }
44
-
45
-
46
- get myClass() {
47
- return (<typeof BaseContentItem>this.constructor)
48
- }
49
-
50
- get nameKey() {
51
- assert(this.myClass.nameProperty);
52
- return this.myClass.nameProperty;
53
- }
54
-
55
- get rawData(): CanvasDataType {
56
- return {...this.canvasData};
57
- }
58
-
59
-
60
- get contentUrlPath(): null | string {
61
- const constructor = <typeof BaseCanvasObject>this.constructor;
62
-
63
- assert(typeof this.accountId === 'number');
64
- assert(typeof constructor.contentUrlTemplate === 'string');
65
- return '/api/v1/' + constructor.contentUrlTemplate
66
- .replace('{content_id}', this.id.toString())
67
- .replace('{account_id}', this.accountId.toString());
68
- }
69
-
70
- get htmlContentUrl() {
71
- return `${this.contentUrlPath}`;
72
- }
73
-
74
- get data() {
75
- return this.canvasData;
76
- }
77
-
78
- static async getDataById<T extends CanvasData = CanvasData>(contentId: number, courseId: number | null = null, config: ICanvasCallConfig | null = null): Promise<T> {
79
- const url = this.getUrlPathFromIds(contentId, courseId);
80
- const response = await fetchJson<T>(url, config);
81
- assert(!Array.isArray(response));
82
-
83
- return response;
84
- }
85
-
86
- static getUrlPathFromIds(
87
- contentId: number,
88
- courseId: number | null) {
89
- assert(typeof this.contentUrlTemplate === 'string');
90
- let url = this.contentUrlTemplate
91
- .replace('{content_id}', contentId.toString());
92
- if (courseId) url = url.replace('{course_id}', courseId.toString());
93
- return url;
94
- }
95
-
96
- /**
97
- * @param courseId - The course ID to get elements within, if applicable
98
- * @param accountId - The account ID to get elements within, if applicable
99
- */
100
- static getAllUrl(courseId: number | null = null, accountId: number | null = null) {
101
- assert(typeof this.allContentUrlTemplate === 'string');
102
- let replaced = this.allContentUrlTemplate;
103
-
104
- if (courseId) replaced = replaced.replace('{course_id}', courseId.toString());
105
- if (accountId) replaced = replaced.replace('{account_id}', accountId.toString());
106
- return replaced;
107
- }
108
-
109
- static async getAll(config: ICanvasCallConfig | null = null) {
110
- const url = this.getAllUrl();
111
- return await renderAsyncGen(getPagedDataGenerator(this.getAllUrl(), config))
112
- }
113
-
114
- get id(): number {
115
- const id = this.canvasData[(<typeof BaseCanvasObject>this.constructor).idProperty];
116
- return parseInt(id);
117
- }
118
-
119
- get name() {
120
- const nameProperty = this.getClass().nameProperty;
121
- if (!nameProperty) return 'NAME PROPERTY NOT SET'
122
- return this.getItem<string>(nameProperty);
123
- }
124
-
125
- async saveData(data: Record<string, any>, config?: ICanvasCallConfig) {
126
- assert(this.contentUrlPath);
127
- config = overrideConfig({
128
- fetchInit: {
129
- method: 'PUT',
130
- body: formDataify(data)
131
- }
132
- }, config);
133
-
134
- let results = await fetchJson(this.contentUrlPath, config) as Partial<CanvasDataType> | Partial<CanvasDataType>[];
135
- if(Array.isArray(results)) results = results[0];
136
- this.canvasData = {...this.canvasData, ...results};
137
- return this.canvasData;
138
- }
139
- }