@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,116 +0,0 @@
1
- import {formDataify, getItemTypeAndId, ICanvasCallConfig, renderAsyncGen} from "../canvasUtils";
2
- import {IModuleData, IModuleItemData} from "../canvasDataDefs";
3
- import {getCourseDataGenerator, getCourseGenerator} from "./toolbox";
4
- import {GetCoursesFromAccountOptions} from "./courseTypes";
5
- import {baseCourseCode} from "@/course/code";
6
- import {ICourseData, SectionData} from "@/types";
7
- import {getPagedDataGenerator} from "@/fetch/getPagedDataGenerator";
8
- import {fetchGetConfig} from "@/fetch/utils";
9
- import {fetchJson} from "@/fetch/fetchJson";
10
- import apiWriteConfig from "@/fetch/apiWriteConfig";
11
-
12
- export function isBlueprint({blueprint}: { blueprint?: boolean | undefined }) {
13
- return !!blueprint;
14
- }
15
- //W
16
- export function genBlueprintDataForCode(courseCode:string | null, accountIds:number[], queryParams?: GetCoursesFromAccountOptions) {
17
- if(!courseCode) {
18
- console.warn("Course code not present")
19
- return null;
20
- }
21
- const baseCode = baseCourseCode(courseCode);
22
- if(!baseCode) {
23
- console.warn(`Code ${courseCode} invalid`);
24
- return null;
25
- }
26
-
27
- return getCourseDataGenerator(baseCode, accountIds, undefined, fetchGetConfig<GetCoursesFromAccountOptions>({
28
- blueprint: true,
29
- include: ['concluded'],
30
- }, {queryParams}));
31
- }
32
-
33
- export function sectionDataGenerator(courseId:number, config?: ICanvasCallConfig<GetCoursesFromAccountOptions>) {
34
- const url = `/api/v1/courses/${courseId}/blueprint_templates/default/associated_courses`;
35
- return getPagedDataGenerator<SectionData>(url, config);
36
- }
37
-
38
-
39
- type BeginSyncOptions = {
40
- config?: ICanvasCallConfig,
41
- copy_settings?: boolean,
42
- message?: string,
43
- }
44
- export async function beginBpSync(courseId:number, {message, copy_settings, config
45
- }:BeginSyncOptions) {
46
- const url = `/api/v1/courses/${courseId}/blueprint_templates/default/migrations`;
47
- if(typeof copy_settings === 'undefined') copy_settings = true;
48
- return await fetchJson(url, apiWriteConfig('POST', {
49
- message,
50
- copy_settings
51
- }, config))
52
- }
53
-
54
-
55
- export async function getBlueprintsFromCode(code: string, accountIds: number[], config?: ICanvasCallConfig<GetCoursesFromAccountOptions>) {
56
- const [_, baseCode] = code.match(/_(\w{4}\d{3})$/) || [];
57
- if (!baseCode) return null;
58
- const bps = getCourseGenerator(`BP_${baseCode}`, accountIds, undefined, config);
59
- return (await renderAsyncGen(bps)).toSorted((a, b) => b.name.length - a.name.length);
60
- }
61
-
62
- export async function lockBlueprint(courseId:number, modules: IModuleData[]) {
63
- let items: IModuleItemData[] = [];
64
-
65
- items = items.concat(...modules.map(a => (<IModuleItemData[]>[]).concat(...a.items)));
66
- const promises = items.map(async (item) => {
67
- const url = `/api/v1/courses/${courseId}/blueprint_templates/default/restrict_item`;
68
- const {type, id} = await getItemTypeAndId(item);
69
- if ( typeof id === 'undefined') return;
70
- const body = {
71
- "content_type": type,
72
- "content_id": id,
73
- "restricted": true,
74
- "_method": 'PUT'
75
- }
76
- await fetchJson(url, {
77
- fetchInit: {
78
- method: 'PUT',
79
- body: formDataify(body)
80
- }
81
- });
82
-
83
- });
84
- await Promise.all(promises);
85
-
86
- }
87
-
88
- export async function setAsBlueprint(courseId: number, config?: ICanvasCallConfig) {
89
- const url = `/api/v1/courses/${courseId}`;
90
- const payload = {
91
- course: {
92
- blueprint: true,
93
- use_blueprint_restrictions_by_object_type: 0,
94
- blueprint_restrictions: {
95
- content: 1,
96
- points: 1,
97
- due_dates: 1,
98
- availability_dates: 1,
99
- }
100
- }
101
- }
102
- return await fetchJson(url, apiWriteConfig('PUT', payload, config)) as ICourseData;
103
- }
104
-
105
-
106
- export async function unSetAsBlueprint(courseId: number, config?: ICanvasCallConfig) {
107
- const url = `/api/v1/courses/${courseId}`;
108
- const payload = {
109
- course: {
110
- blueprint: false
111
- }
112
- };
113
- return await fetchJson(url, apiWriteConfig("PUT", payload, config)) as ICourseData;
114
- }
115
-
116
-
@@ -1,13 +0,0 @@
1
- import {IBlueprintCourse} from "@canvas/course/IBlueprintCourse";
2
- import {Course} from "@canvas/course/Course";
3
-
4
- import {getSections} from "@canvas/course/getSections";
5
-
6
- export function cachedGetAssociatedCoursesFunc(course: IBlueprintCourse) {
7
- let cache: Course[] | null = null;
8
- return async (redownload = false) => {
9
- if (!redownload && cache) return cache;
10
- cache = await getSections(course.id);
11
- return cache;
12
- }
13
- }
@@ -1,139 +0,0 @@
1
- import {Temporal} from "temporal-polyfill";
2
- import {IModuleData} from "../canvasDataDefs";
3
- import {findDateRange, oldDateToPlainDate} from "@/date";
4
-
5
- import {Assignment} from "@/content/assignments/Assignment";
6
-
7
- import {IAssignmentData} from "@canvas/content/types";
8
-
9
- const DEFAULT_LOCALE = 'en-US';
10
-
11
- export function getModuleUnlockStartDate(modules: IModuleData[]) {
12
- if (modules.length == 0) throw new NoOverviewModuleFoundError();
13
- const overviewModule = modules[0];
14
- const unlockDateString = overviewModule.unlock_at;
15
- if(!unlockDateString) return null;
16
- const oldDate = new Date(unlockDateString);
17
- return oldDateToPlainDate(oldDate);
18
- }
19
-
20
- export function sortAssignmentsByDueDate(assignments:Assignment[]|IAssignmentData[]) {
21
- return assignments
22
- .toSorted((a, b) =>
23
- {
24
- a = a instanceof Assignment ? a.rawData : a;
25
- b = b instanceof Assignment ? b.rawData : b;
26
-
27
-
28
- if(a.due_at && b.due_at) {
29
-
30
- return oldDateToPlainDate(new Date(b.due_at)).until(oldDateToPlainDate(new Date(a.due_at))).days;
31
- }
32
- if(a.due_at) return -1;
33
- if(b.due_at) return 1;
34
- return 0;
35
- }
36
- );
37
-
38
- }
39
-
40
- export function getStartDateAssignments(assignments:Assignment[]|IAssignmentData[]) {
41
- const sorted = sortAssignmentsByDueDate(assignments).map(a => a.rawData ?? a).filter(a => a.due_at);
42
- if (sorted.length == 0) throw new NoAssignmentsWithDueDatesError();
43
- const firstAssignmentDue = new Date(sorted[0].due_at);
44
-
45
- //Set to monday of that week.
46
- const plainDateDue = oldDateToPlainDate(firstAssignmentDue);
47
- const dayOfWeekOffset = 1 - plainDateDue.dayOfWeek;
48
- return plainDateDue.add({days: dayOfWeekOffset});
49
- }
50
-
51
- export function getUpdatedStyleTermName(termStart:Temporal.PlainDate, weekCount:string|number, locale=DEFAULT_LOCALE) {
52
- const month = termStart.toLocaleString(locale, { month: '2-digit'})
53
- const day = termStart.toLocaleString(locale, { day: '2-digit'})
54
- const year = termStart.toLocaleString(locale, { year: '2-digit'})
55
- return `DE${weekCount}W${month}.${day}.${year}`;
56
- }
57
-
58
- export function getOldUgTermName(termStart:Temporal.PlainDate, locale=DEFAULT_LOCALE) {
59
- const year = termStart.toLocaleString(DEFAULT_LOCALE, { year: '2-digit'})
60
- const month = termStart.toLocaleString(DEFAULT_LOCALE, { month: 'short'})
61
- return `DE-${year}-${month}`;
62
- }
63
-
64
- export function getNewTermName(oldTermName:string, newTermStart:Temporal.PlainDate, locale= DEFAULT_LOCALE) {
65
- const [termName, weekCount] = oldTermName.match(/DE(\d)W\d\d\.\d\d\.\d\d/) || [];
66
- if (termName) return getUpdatedStyleTermName(newTermStart, weekCount);
67
- const termNameUg = oldTermName.match(/(DE(?:.HL|)-\d\d)-(\w+)\w{2}?/i);
68
- if (termNameUg) return getUpdatedStyleTermName(newTermStart, 5);
69
- throw new MalformedSyllabusError(`Can't Recognize Term Name ${oldTermName}`)
70
- }
71
-
72
- export function updatedDateSyllabusHtml(html: string, newStartDate: Temporal.PlainDate, locale = DEFAULT_LOCALE) {
73
- const syllabusBody = document.createElement('div');
74
- syllabusBody.innerHTML = html;
75
- const syllabusCalloutBox = syllabusBody.querySelector('div.cbt-callout-box');
76
- if(!syllabusCalloutBox) throw new MalformedSyllabusError("Can't find syllabus callout box");
77
-
78
- const paras = Array.from(syllabusCalloutBox.querySelectorAll('p'));
79
- const strongParas = paras.filter((para) => para.querySelector('strong'));
80
- if (strongParas.length < 5) throw new MalformedSyllabusError(`Missing syllabus headers\n${strongParas}`);
81
-
82
- const [
83
- _courseNameEl,
84
- termNameEl,
85
- datesEl,
86
- _instructorNameEl,
87
- _instructorContactInfoEl,
88
- _creditsEl
89
- ] = strongParas;
90
-
91
- const changedText: string[] = [];
92
-
93
- const oldTermName = termNameEl.textContent || '';
94
- const oldDates = datesEl.textContent || '';
95
- const dateRange = findDateRange(datesEl.innerHTML, locale);
96
- if (!dateRange) throw new MalformedSyllabusError("Date range not found in syllabus");
97
-
98
- const courseDuration = dateRange.start.until(dateRange.end);
99
- const newEndDate = newStartDate.add(courseDuration);
100
- const newTermName = getNewTermName(oldTermName, newStartDate)
101
-
102
- const dateRangeText = `${dateToSyllabusString(newStartDate)} - ${dateToSyllabusString(newEndDate)}`;
103
-
104
- termNameEl.innerHTML = `<strong>${syllabusHeaderName(termNameEl)}:</strong><span> ${newTermName}</span>`;
105
- datesEl.innerHTML = `<strong>${syllabusHeaderName(datesEl)}:</strong><span> ${dateRangeText}</span>`;
106
-
107
- changedText.push(`${oldTermName} -> ${termNameEl.textContent}`)
108
- changedText.push(`${oldDates} -> ${datesEl.textContent}`)
109
-
110
- const output = {
111
- html : syllabusBody.innerHTML.replaceAll(/<p>\s*(&nbsp;)?<\/p>/ig, ''),
112
- changedText,
113
- }
114
- syllabusBody.remove();
115
- return output;
116
- }
117
-
118
- function dateToSyllabusString(date:Temporal.PlainDate) {
119
- return `${date.toLocaleString(DEFAULT_LOCALE, { month: 'long', day: 'numeric' })}`;
120
- }
121
-
122
- export function syllabusHeaderName(el:HTMLElement) {
123
-
124
- let [_, head] = /([^:]*):/.exec(el.innerHTML) ?? [];
125
- head = head?.replaceAll(/<[^>]*>/g, '')
126
- return head;
127
- }
128
-
129
- export class NoOverviewModuleFoundError extends Error {
130
- public name = "NoOverviewModuleFoundError"
131
- }
132
-
133
- export class MalformedSyllabusError extends Error {
134
- public name="MalformedSyllabusError"
135
- }
136
-
137
- export class NoAssignmentsWithDueDatesError extends Error {
138
- public name = "NoAssignmentsWithDueDatesError"
139
- }
@@ -1,32 +0,0 @@
1
- import {COURSE_CODE_REGEX} from "@/course/Course";
2
-
3
- export function parseCourseCode(code: string) {
4
- const match = COURSE_CODE_REGEX.exec(code);
5
- if (!match) return null;
6
- const prefix = match[1] || "";
7
- const courseCode = match[2] || "";
8
- if (prefix.length > 0) {
9
- return `${prefix}_${courseCode}`;
10
- }
11
- return courseCode;
12
- }
13
-
14
- export function baseCourseCode(code: string) {
15
- const match = COURSE_CODE_REGEX.exec(code);
16
- if (!match) return null;
17
- return match[2];
18
- }
19
-
20
- export function stringIsCourseCode(code: string) {
21
- return COURSE_CODE_REGEX.exec(code);
22
- }
23
-
24
- export class MalformedCourseCodeError extends Error {
25
- name = "MalformedCourseCodeError";
26
- courseCode:string|null;
27
- constructor(courseCode:string|null, message?: string, options?:ErrorOptions) {
28
- if(!message) message = `${courseCode} is not a valid course code`;
29
- super(message, options);
30
- this.courseCode = courseCode;
31
- }
32
- }
@@ -1,161 +0,0 @@
1
- //const HOMETILE_WIDTH = 500;
2
- import {ICanvasCallConfig} from "../canvasUtils";
3
- import {ILatePolicyData, IModuleData} from "../canvasDataDefs";
4
-
5
- import {ICourseData, ICourseSettings} from "@/types";
6
- import {Quiz} from "@/content/quizzes/Quiz";
7
- import {Page} from "@/content/pages/Page";
8
- import {Discussion} from "@/content/discussions/Discussion";
9
- import {Assignment} from "@/content/assignments/Assignment";
10
-
11
- export interface IIdHaver<IdType = number> {
12
- id: IdType,
13
- }
14
-
15
- export interface ICourseDataHaver {
16
- rawData: ICourseData,
17
- }
18
-
19
- export interface ICourseCodeHaver {
20
- name: string,
21
- parsedCourseCode: string | null,
22
- courseCode: string | null,
23
- baseCode: string | null,
24
- }
25
-
26
- export interface ISyllabusHaver extends IIdHaver {
27
- getSyllabus: (config?: ICanvasCallConfig<GetCourseOptions>) => Promise<string>,
28
- changeSyllabus: (this:ISyllabusHaver, newHtml: string, config?: ICanvasCallConfig) => any
29
- }
30
-
31
- export interface ICourseSettingsHaver extends IIdHaver {
32
- id: number,
33
- getSettings: (config?: ICanvasCallConfig) => Promise<ICourseSettings>
34
- }
35
-
36
- export interface ILatePolicyHaver extends IIdHaver {
37
- id: number,
38
- getLatePolicy: (config?: ICanvasCallConfig) => Promise<ILatePolicyData | undefined>
39
- }
40
-
41
- export interface IAssignmentsHaver extends IIdHaver {
42
- getAssignments: (config?: ICanvasCallConfig) => Promise<Assignment[]>;
43
-
44
- }
45
-
46
- export interface IPagesHaver extends IIdHaver {
47
- id: number,
48
-
49
- getPages(config?: ICanvasCallConfig): Promise<Page[]>
50
- }
51
-
52
- export interface IDiscussionsHaver extends IIdHaver {
53
- id: number,
54
-
55
- getDiscussions(config?: ICanvasCallConfig): Promise<Discussion[]>
56
- }
57
-
58
- export interface IQuizzesHaver extends IIdHaver {
59
- getQuizzes(config?: ICanvasCallConfig): Promise<Quiz[]>
60
- }
61
-
62
- export interface IModulesHaver extends IIdHaver {
63
- getModules(config?: ICanvasCallConfig): Promise<IModuleData[]>,
64
-
65
- getModulesByWeekNumber(config?: ICanvasCallConfig): Promise<Record<number | string, IModuleData>>
66
- }
67
-
68
- export interface IGradingStandardsHaver extends IIdHaver {
69
- getAvailableGradingStandards(config?: ICanvasCallConfig): Promise<IGradingStandardData[]>,
70
-
71
- getCurrentGradingStandard(config?: ICanvasCallConfig): Promise<IGradingStandardData | null>
72
- }
73
-
74
- export interface IGradingStandardData {
75
- id: number,
76
- title: string,
77
- context_type: 'Course' | 'Account',
78
- grading_scheme: IGradingSchemeEntry[]
79
- }
80
-
81
- export interface IGradingSchemeEntry {
82
- name: string,
83
- value: number
84
- }
85
-
86
-
87
- export interface IContentHaver extends IAssignmentsHaver, IPagesHaver, IDiscussionsHaver, ISyllabusHaver, IQuizzesHaver {
88
- name: string,
89
-
90
- getContent(config?: ICanvasCallConfig<Record<string, any>>, refresh?: boolean): Promise<(Discussion | Assignment | Page | Quiz)[]>,
91
-
92
- }
93
-
94
-
95
- export type GetOptions = {
96
- per_page?: number
97
- }
98
-
99
-
100
- export type GetCoursesFromAccountOptions = GetOptions & {
101
- with_enrollments?: boolean;
102
- enrollment_type?: ('teacher' | 'student' | 'ta' | 'observer' | 'designer')[];
103
- published?: boolean;
104
- completed?: boolean;
105
- blueprint?: boolean;
106
- blueprint_associated?: boolean;
107
- public?: boolean;
108
- by_teachers?: number[];
109
- by_subaccounts?: number[];
110
- hide_enrollmentless_courses?: boolean;
111
- state?: ('created' | 'claimed' | 'available' | 'completed' | 'deleted' | 'all')[];
112
- enrollment_term_id?: number;
113
- search_term?: string;
114
- include?: (
115
- | 'syllabus_body'
116
- | 'term'
117
- | 'course_progress'
118
- | 'storage_quota_used_mb'
119
- | 'total_students'
120
- | 'teachers'
121
- | 'account_name'
122
- | 'concluded'
123
- )[];
124
- sort?: 'course_name' | 'sis_course_id' | 'teacher' | 'account_name';
125
- order?: 'asc' | 'desc';
126
- search_by?: 'course' | 'teacher';
127
- starts_before?: string; // Date formatted as yyyy-mm-dd or ISO 8601 YYYY-MM-DDTHH:MM:SSZ
128
- ends_after?: string; // Date formatted as yyyy-mm-dd or ISO 8601 YYYY-MM-DDTHH:MM:SSZ
129
- homeroom?: boolean;
130
- };
131
-
132
- export type GetCourseOptions = {
133
- enrollment_type?: 'teacher' | 'student' | 'ta' | 'observer' | 'designer';
134
- enrollment_role?: string; // Deprecated
135
- enrollment_role_id?: number;
136
- enrollment_state?: 'active' | 'invited_or_pending' | 'completed';
137
- exclude_blueprint_courses?: boolean;
138
- include?: (
139
- | 'needs_grading_count'
140
- | 'syllabus_body'
141
- | 'public_description'
142
- | 'total_scores'
143
- | 'current_grading_period_scores'
144
- | 'grading_periods'
145
- | 'term'
146
- | 'account'
147
- | 'course_progress'
148
- | 'sections'
149
- | 'storage_quota_used_mb'
150
- | 'total_students'
151
- | 'passback_status'
152
- | 'favorites'
153
- | 'teachers'
154
- | 'observed_users'
155
- | 'tabs'
156
- | 'course_image'
157
- | 'banner_image'
158
- | 'concluded'
159
- )[];
160
- state?: ('unpublished' | 'available' | 'completed' | 'deleted')[];
161
- };
@@ -1,7 +0,0 @@
1
- export default function getCourseIdFromUrl(url: string) {
2
- const match = /courses\/(\d+)/.exec(url);
3
- if (match) {
4
- return parseInt(match[1]);
5
- }
6
- return null;
7
- }
@@ -1,9 +0,0 @@
1
- import {ICanvasCallConfig, renderAsyncGen} from "@canvas/canvasUtils";
2
- import {GetCoursesFromAccountOptions} from "@canvas/course/courseTypes";
3
- import {Course} from "@canvas/course/Course";
4
- import {ICourseData} from "@/types";
5
- import {sectionDataGenerator} from "@canvas/course/blueprint";
6
-
7
- export async function getSections(courseId: number, config?: ICanvasCallConfig<GetCoursesFromAccountOptions>) {
8
- return (await renderAsyncGen(sectionDataGenerator(courseId, config))).map(section => new Course(section as ICourseData));
9
- }
@@ -1,9 +0,0 @@
1
- import {Course} from "@canvas/course/Course";
2
-
3
- export async function getTermNameFromSections(sections: Course[]) {
4
- const [section] = sections;
5
- if (!section) throw new Error("Cannot determine term name by sections; there are no sections.")
6
- const sectionTerm = await section.getTerm();
7
- if (!sectionTerm) throw new Error("Section does not have associated term: " + section.name);
8
- return sectionTerm.name;
9
- }
@@ -1,12 +0,0 @@
1
- export * from './blueprint'
2
- export * from './toolbox'
3
- export * from './Course'
4
-
5
- export * from './courseTypes'
6
- export * from './getCourseIdFromUrl'
7
- export * from './getSections'
8
- export * from './getTermNameFromSections'
9
- export * from './IBlueprintCourse'
10
- export * from './modules'
11
- export * from './notABlueprintError'
12
- export * from './retireBlueprint'
@@ -1,39 +0,0 @@
1
- import {IMigrationData} from "../index";
2
-
3
- /**
4
- * From canvas api docs
5
- */
6
- export const mockMigrationData: IMigrationData = {
7
- // the unique identifier for the migration
8
- "id": 370663,
9
- // the type of content migration
10
- "migration_type": "course_copy_importer",
11
- // the name of the content migration type
12
- "migration_type_title": "Canvas Cartridge Importer",
13
- // API url to the content migration's issues
14
- "migration_issues_url": "https://example.com/api/v1/courses/1/content_migrations/1/migration_issues",
15
- // attachment api object for the uploaded file may not be present for all
16
- // migrations
17
- "attachment": {"url": "https://example.com/api/v1/courses/1/content_migrations/1/download_archive"},
18
- // The api endpoint for polling the current progress
19
- "progress_url": "https://example.com/api/v1/progress/4",
20
- // The user who started the migration
21
- "user_id": 4,
22
- // Current state of the content migration: pre_processing, pre_processed,
23
- // running, waiting_for_select, completed, failed
24
- "workflow_state": "running",
25
- // timestamp
26
- "started_at": "2012-06-01T00:00:00-06:00",
27
- // timestamp
28
- "finished_at": "2012-06-01T00:00:00-06:00",
29
- // file uploading data, see {file:file_uploads.html File Upload Documentation}
30
- // for file upload workflow This works a little differently in that all the file
31
- // data is in the pre_attachment hash if there is no upload_url then there was
32
- // an attachment pre-processing error, the error message will be in the message
33
- // key This data will only be here after a create or update call
34
- "pre_attachment": {
35
- upload_url: '',
36
- "message": "file exceeded quota",
37
- "upload_params": {}
38
- }
39
- }