@livepreso/api 6.45.0 → 6.46.0

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 (478) hide show
  1. package/.rush/temp/1aebf46f78ad5c45f82f8147751890adb37bef9d.log +10 -0
  2. package/.rush/temp/3cdc82c352e8ed90607952873f3aa4c200490874.log +10 -0
  3. package/.rush/temp/5489ab737e406518983c16c57fc3e1edc07c0341.log +10 -0
  4. package/.rush/temp/924652444ab5a6063f328a2217123a2227058896.log +10 -0
  5. package/.rush/temp/9f2030f96d62f3e38052e35201819a216566f14f.log +10 -0
  6. package/.rush/temp/operation/test/all.log +19 -0
  7. package/.rush/temp/operation/test/state.json +3 -0
  8. package/.rush/temp/shrinkwrap-deps.json +563 -546
  9. package/CHANGELOG.json +12 -0
  10. package/CHANGELOG.md +8 -1
  11. package/README.md +4 -4
  12. package/api.build.log +2 -4
  13. package/api.test.cache.log +1 -0
  14. package/api.test.log +19 -0
  15. package/cjs/api.js +18 -17
  16. package/cjs/api.js.map +1 -1
  17. package/cjs/api.spec.js +0 -4
  18. package/cjs/api.spec.js.map +1 -1
  19. package/cjs/auth.js +5 -32
  20. package/cjs/auth.js.map +1 -1
  21. package/cjs/auth.spec.js +52 -77
  22. package/cjs/auth.spec.js.map +1 -1
  23. package/cjs/caching.js +2 -7
  24. package/cjs/caching.js.map +1 -1
  25. package/cjs/collections/activity.js +16 -56
  26. package/cjs/collections/activity.js.map +1 -1
  27. package/cjs/collections/adjunct-sections.js +1 -10
  28. package/cjs/collections/adjunct-sections.js.map +1 -1
  29. package/cjs/collections/adjunct-slides.js +1 -10
  30. package/cjs/collections/adjunct-slides.js.map +1 -1
  31. package/cjs/collections/adjunct-sub-slides.js +1 -9
  32. package/cjs/collections/adjunct-sub-slides.js.map +1 -1
  33. package/cjs/collections/appointment-adjunct-tags.js +1 -9
  34. package/cjs/collections/appointment-adjunct-tags.js.map +1 -1
  35. package/cjs/collections/appointment-deckversion-tags.js +1 -9
  36. package/cjs/collections/appointment-deckversion-tags.js.map +1 -1
  37. package/cjs/collections/appointment-duplicates.js +1 -9
  38. package/cjs/collections/appointment-duplicates.js.map +1 -1
  39. package/cjs/collections/appointment-editors.js +1 -10
  40. package/cjs/collections/appointment-editors.js.map +1 -1
  41. package/cjs/collections/appointment-section-tags.js +1 -9
  42. package/cjs/collections/appointment-section-tags.js.map +1 -1
  43. package/cjs/collections/appointment-slide-tags.js +1 -9
  44. package/cjs/collections/appointment-slide-tags.js.map +1 -1
  45. package/cjs/collections/appointment-tags.js +66 -103
  46. package/cjs/collections/appointment-tags.js.map +1 -1
  47. package/cjs/collections/appointment-templates.js +27 -0
  48. package/cjs/collections/appointment-templates.js.map +1 -0
  49. package/cjs/collections/appointments.js +9 -29
  50. package/cjs/collections/appointments.js.map +1 -1
  51. package/cjs/collections/assets.js +1 -9
  52. package/cjs/collections/assets.js.map +1 -1
  53. package/cjs/collections/auto-adjuncts.js +6 -21
  54. package/cjs/collections/auto-adjuncts.js.map +1 -1
  55. package/cjs/collections/base.js +37 -111
  56. package/cjs/collections/base.js.map +1 -1
  57. package/cjs/collections/base.spec.js +186 -233
  58. package/cjs/collections/base.spec.js.map +1 -1
  59. package/cjs/collections/cms-vals.js +9 -16
  60. package/cjs/collections/cms-vals.js.map +1 -1
  61. package/cjs/collections/contact-phones.js +20 -0
  62. package/cjs/collections/contact-phones.js.map +1 -0
  63. package/cjs/collections/contacts.js +1 -9
  64. package/cjs/collections/contacts.js.map +1 -1
  65. package/cjs/collections/created-assets.js +1 -10
  66. package/cjs/collections/created-assets.js.map +1 -1
  67. package/cjs/collections/customers.js +1 -9
  68. package/cjs/collections/customers.js.map +1 -1
  69. package/cjs/collections/deck-notes.js +1 -10
  70. package/cjs/collections/deck-notes.js.map +1 -1
  71. package/cjs/collections/deck-version-screenshots.js +4 -17
  72. package/cjs/collections/deck-version-screenshots.js.map +1 -1
  73. package/cjs/collections/deck-versions.js +5 -20
  74. package/cjs/collections/deck-versions.js.map +1 -1
  75. package/cjs/collections/decks.js +1 -9
  76. package/cjs/collections/decks.js.map +1 -1
  77. package/cjs/collections/deleted-assets.js +1 -10
  78. package/cjs/collections/deleted-assets.js.map +1 -1
  79. package/cjs/collections/dispatches.js +1 -13
  80. package/cjs/collections/dispatches.js.map +1 -1
  81. package/cjs/collections/event-objects.js +1 -9
  82. package/cjs/collections/event-objects.js.map +1 -1
  83. package/cjs/collections/events.js +1 -9
  84. package/cjs/collections/events.js.map +1 -1
  85. package/cjs/collections/groups.js +1 -9
  86. package/cjs/collections/groups.js.map +1 -1
  87. package/cjs/collections/images.js +1 -9
  88. package/cjs/collections/images.js.map +1 -1
  89. package/cjs/collections/locations.js +1 -9
  90. package/cjs/collections/locations.js.map +1 -1
  91. package/cjs/collections/opportunities.js +1 -9
  92. package/cjs/collections/opportunities.js.map +1 -1
  93. package/cjs/collections/pack-diffs.js +1 -9
  94. package/cjs/collections/pack-diffs.js.map +1 -1
  95. package/cjs/collections/packs.js +1 -9
  96. package/cjs/collections/packs.js.map +1 -1
  97. package/cjs/collections/presets.js +1 -9
  98. package/cjs/collections/presets.js.map +1 -1
  99. package/cjs/collections/section-selections.js +1 -9
  100. package/cjs/collections/section-selections.js.map +1 -1
  101. package/cjs/collections/sections.js +1 -9
  102. package/cjs/collections/sections.js.map +1 -1
  103. package/cjs/collections/slide-selections.js +1 -9
  104. package/cjs/collections/slide-selections.js.map +1 -1
  105. package/cjs/collections/slides.js +1 -9
  106. package/cjs/collections/slides.js.map +1 -1
  107. package/cjs/collections/snapshots.js +1 -9
  108. package/cjs/collections/snapshots.js.map +1 -1
  109. package/cjs/collections/sub-slides.js +1 -9
  110. package/cjs/collections/sub-slides.js.map +1 -1
  111. package/cjs/collections/tags.js +1 -9
  112. package/cjs/collections/tags.js.map +1 -1
  113. package/cjs/collections/teams.js +1 -9
  114. package/cjs/collections/teams.js.map +1 -1
  115. package/cjs/collections/templates.js +1 -9
  116. package/cjs/collections/templates.js.map +1 -1
  117. package/cjs/collections/uploads.js +1 -9
  118. package/cjs/collections/uploads.js.map +1 -1
  119. package/cjs/collections/users.js +1 -9
  120. package/cjs/collections/users.js.map +1 -1
  121. package/cjs/collections.js +22 -88
  122. package/cjs/collections.js.map +1 -1
  123. package/cjs/fixtures.js +187 -0
  124. package/cjs/fixtures.js.map +1 -0
  125. package/cjs/index.js +0 -10
  126. package/cjs/index.js.map +1 -1
  127. package/cjs/log.js +0 -1
  128. package/cjs/log.js.map +1 -1
  129. package/cjs/middleware.js +2 -7
  130. package/cjs/middleware.js.map +1 -1
  131. package/cjs/middlewares/auth.js +1 -17
  132. package/cjs/middlewares/auth.js.map +1 -1
  133. package/cjs/middlewares/base.js +3 -9
  134. package/cjs/middlewares/base.js.map +1 -1
  135. package/cjs/middlewares/json.js +1 -19
  136. package/cjs/middlewares/json.js.map +1 -1
  137. package/cjs/middlewares/redirect.js +5 -21
  138. package/cjs/middlewares/redirect.js.map +1 -1
  139. package/cjs/models/activity-item.js +3 -19
  140. package/cjs/models/activity-item.js.map +1 -1
  141. package/cjs/models/adjunct-section.js +8 -21
  142. package/cjs/models/adjunct-section.js.map +1 -1
  143. package/cjs/models/adjunct-slide.js +8 -21
  144. package/cjs/models/adjunct-slide.js.map +1 -1
  145. package/cjs/models/adjunct-sub-slide.js +1 -16
  146. package/cjs/models/adjunct-sub-slide.js.map +1 -1
  147. package/cjs/models/adjunct.js +34 -10
  148. package/cjs/models/adjunct.js.map +1 -1
  149. package/cjs/models/api.js +1 -6
  150. package/cjs/models/api.js.map +1 -1
  151. package/cjs/models/appointment-adjunct-tags.js +1 -13
  152. package/cjs/models/appointment-adjunct-tags.js.map +1 -1
  153. package/cjs/models/appointment-deckversion-tags.js +1 -13
  154. package/cjs/models/appointment-deckversion-tags.js.map +1 -1
  155. package/cjs/models/appointment-duplicate.js +3 -25
  156. package/cjs/models/appointment-duplicate.js.map +1 -1
  157. package/cjs/models/appointment-editor.js +1 -14
  158. package/cjs/models/appointment-editor.js.map +1 -1
  159. package/cjs/models/appointment-section-tags.js +1 -13
  160. package/cjs/models/appointment-section-tags.js.map +1 -1
  161. package/cjs/models/appointment-slide-tags.js +1 -13
  162. package/cjs/models/appointment-slide-tags.js.map +1 -1
  163. package/cjs/models/appointment-stats.js +1 -11
  164. package/cjs/models/appointment-stats.js.map +1 -1
  165. package/cjs/models/appointment-tags.js +1 -10
  166. package/cjs/models/appointment-tags.js.map +1 -1
  167. package/cjs/models/appointment-template.js +23 -0
  168. package/cjs/models/appointment-template.js.map +1 -0
  169. package/cjs/models/appointment-viewing.js +1 -8
  170. package/cjs/models/appointment-viewing.js.map +1 -1
  171. package/cjs/models/appointment.js +85 -70
  172. package/cjs/models/appointment.js.map +1 -1
  173. package/cjs/models/asset.js +12 -11
  174. package/cjs/models/asset.js.map +1 -1
  175. package/cjs/models/auto-adjunct-key-check.js +1 -15
  176. package/cjs/models/auto-adjunct-key-check.js.map +1 -1
  177. package/cjs/models/auto-adjunct.js +3 -14
  178. package/cjs/models/auto-adjunct.js.map +1 -1
  179. package/cjs/models/base.js +74 -176
  180. package/cjs/models/base.js.map +1 -1
  181. package/cjs/models/base.spec.js +0 -31
  182. package/cjs/models/base.spec.js.map +1 -1
  183. package/cjs/models/choicelist.js +1 -8
  184. package/cjs/models/choicelist.js.map +1 -1
  185. package/cjs/models/cms-val.js +28 -15
  186. package/cjs/models/cms-val.js.map +1 -1
  187. package/cjs/models/cms-val.spec.js +25 -0
  188. package/cjs/models/cms-val.spec.js.map +1 -0
  189. package/cjs/models/contact-phone.js +54 -0
  190. package/cjs/models/contact-phone.js.map +1 -0
  191. package/cjs/models/contact.js +1 -18
  192. package/cjs/models/contact.js.map +1 -1
  193. package/cjs/models/customer.js +5 -30
  194. package/cjs/models/customer.js.map +1 -1
  195. package/cjs/models/deck-note.js +1 -9
  196. package/cjs/models/deck-note.js.map +1 -1
  197. package/cjs/models/deck-tags.js +1 -12
  198. package/cjs/models/deck-tags.js.map +1 -1
  199. package/cjs/models/deck-version-screenshot.js +1 -13
  200. package/cjs/models/deck-version-screenshot.js.map +1 -1
  201. package/cjs/models/deck-version.js +28 -44
  202. package/cjs/models/deck-version.js.map +1 -1
  203. package/cjs/models/deck.js +1 -14
  204. package/cjs/models/deck.js.map +1 -1
  205. package/cjs/models/dispatch-preview.js +1 -13
  206. package/cjs/models/dispatch-preview.js.map +1 -1
  207. package/cjs/models/dispatch.js +1 -23
  208. package/cjs/models/dispatch.js.map +1 -1
  209. package/cjs/models/envs.js +1 -6
  210. package/cjs/models/envs.js.map +1 -1
  211. package/cjs/models/event-object.js +1 -11
  212. package/cjs/models/event-object.js.map +1 -1
  213. package/cjs/models/event.js +1 -13
  214. package/cjs/models/event.js.map +1 -1
  215. package/cjs/models/feed-data.js +1 -13
  216. package/cjs/models/feed-data.js.map +1 -1
  217. package/cjs/models/file.js +1 -11
  218. package/cjs/models/file.js.map +1 -1
  219. package/cjs/models/group.js +1 -11
  220. package/cjs/models/group.js.map +1 -1
  221. package/cjs/models/handover.js +1 -13
  222. package/cjs/models/handover.js.map +1 -1
  223. package/cjs/models/hosted-preso.js +1 -15
  224. package/cjs/models/hosted-preso.js.map +1 -1
  225. package/cjs/models/image.js +1 -16
  226. package/cjs/models/image.js.map +1 -1
  227. package/cjs/models/location.js +1 -13
  228. package/cjs/models/location.js.map +1 -1
  229. package/cjs/models/manifest-json.js +74 -73
  230. package/cjs/models/manifest-json.js.map +1 -1
  231. package/cjs/models/onshare.js +1 -14
  232. package/cjs/models/onshare.js.map +1 -1
  233. package/cjs/models/opportunity.js +1 -14
  234. package/cjs/models/opportunity.js.map +1 -1
  235. package/cjs/models/pack-diff.js +1 -14
  236. package/cjs/models/pack-diff.js.map +1 -1
  237. package/cjs/models/pack.js +1 -12
  238. package/cjs/models/pack.js.map +1 -1
  239. package/cjs/models/preset.js +4 -20
  240. package/cjs/models/preset.js.map +1 -1
  241. package/cjs/models/refresh-request.js +17 -11
  242. package/cjs/models/refresh-request.js.map +1 -1
  243. package/cjs/models/room.js +1 -9
  244. package/cjs/models/room.js.map +1 -1
  245. package/cjs/models/salesforce-lookup.js +1 -12
  246. package/cjs/models/salesforce-lookup.js.map +1 -1
  247. package/cjs/models/section-selection.js +1 -14
  248. package/cjs/models/section-selection.js.map +1 -1
  249. package/cjs/models/section.js +1 -14
  250. package/cjs/models/section.js.map +1 -1
  251. package/cjs/models/slide-selection.js +1 -14
  252. package/cjs/models/slide-selection.js.map +1 -1
  253. package/cjs/models/slide.js +1 -14
  254. package/cjs/models/slide.js.map +1 -1
  255. package/cjs/models/snapshot.js +13 -15
  256. package/cjs/models/snapshot.js.map +1 -1
  257. package/cjs/models/snapshot.spec.js +44 -0
  258. package/cjs/models/snapshot.spec.js.map +1 -0
  259. package/cjs/models/sub-slide.js +1 -12
  260. package/cjs/models/sub-slide.js.map +1 -1
  261. package/cjs/models/support-ticket.js +1 -11
  262. package/cjs/models/support-ticket.js.map +1 -1
  263. package/cjs/models/tag.js +1 -13
  264. package/cjs/models/tag.js.map +1 -1
  265. package/cjs/models/team.js +14 -13
  266. package/cjs/models/team.js.map +1 -1
  267. package/cjs/models/template.js +87 -15
  268. package/cjs/models/template.js.map +1 -1
  269. package/cjs/models/tenancy.js +4 -11
  270. package/cjs/models/tenancy.js.map +1 -1
  271. package/cjs/models/timing-log.js +21 -78
  272. package/cjs/models/timing-log.js.map +1 -1
  273. package/cjs/models/timing-log.spec.js +24 -37
  274. package/cjs/models/timing-log.spec.js.map +1 -1
  275. package/cjs/models/token.js +1 -11
  276. package/cjs/models/token.js.map +1 -1
  277. package/cjs/models/transcribe-socket.js +1 -8
  278. package/cjs/models/transcribe-socket.js.map +1 -1
  279. package/cjs/models/upload.js +1 -7
  280. package/cjs/models/upload.js.map +1 -1
  281. package/cjs/models/user.js +10 -28
  282. package/cjs/models/user.js.map +1 -1
  283. package/cjs/models/user.spec.js +20 -30
  284. package/cjs/models/user.spec.js.map +1 -1
  285. package/cjs/models.js +22 -132
  286. package/cjs/models.js.map +1 -1
  287. package/cjs/presentation/appointment-presentation.js +9 -35
  288. package/cjs/presentation/appointment-presentation.js.map +1 -1
  289. package/cjs/presentation/base-presentation-collection.js +1 -7
  290. package/cjs/presentation/base-presentation-collection.js.map +1 -1
  291. package/cjs/presentation/base-presentation-model.js +40 -74
  292. package/cjs/presentation/base-presentation-model.js.map +1 -1
  293. package/cjs/presentation/base-presentation-model.spec.js +6 -27
  294. package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
  295. package/cjs/presentation/presentation-deck.js +46 -83
  296. package/cjs/presentation/presentation-deck.js.map +1 -1
  297. package/cjs/presentation/presentation-deck.spec.js +72 -95
  298. package/cjs/presentation/presentation-deck.spec.js.map +1 -1
  299. package/cjs/presentation/presentation-decks.js +1 -9
  300. package/cjs/presentation/presentation-decks.js.map +1 -1
  301. package/cjs/presentation/presentation-section.js +37 -77
  302. package/cjs/presentation/presentation-section.js.map +1 -1
  303. package/cjs/presentation/presentation-section.spec.js +211 -271
  304. package/cjs/presentation/presentation-section.spec.js.map +1 -1
  305. package/cjs/presentation/presentation-sections.js +1 -9
  306. package/cjs/presentation/presentation-sections.js.map +1 -1
  307. package/cjs/presentation/presentation-slide.js +49 -76
  308. package/cjs/presentation/presentation-slide.js.map +1 -1
  309. package/cjs/presentation/presentation-slide.spec.js +145 -192
  310. package/cjs/presentation/presentation-slide.spec.js.map +1 -1
  311. package/cjs/presentation/presentation-slides.js +1 -9
  312. package/cjs/presentation/presentation-slides.js.map +1 -1
  313. package/cjs/presentation/presentation-subslide.js +3 -23
  314. package/cjs/presentation/presentation-subslide.js.map +1 -1
  315. package/cjs/presentation/presentation-subslide.spec.js +101 -125
  316. package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
  317. package/cjs/presentation/presentation-subslides.js +1 -9
  318. package/cjs/presentation/presentation-subslides.js.map +1 -1
  319. package/cjs/presentation/presentation.js +62 -111
  320. package/cjs/presentation/presentation.js.map +1 -1
  321. package/cjs/presentation.js +0 -20
  322. package/cjs/presentation.js.map +1 -1
  323. package/cjs/selections.js +81 -0
  324. package/cjs/selections.js.map +1 -0
  325. package/cjs/state-register.js +3 -11
  326. package/cjs/state-register.js.map +1 -1
  327. package/cjs/sync.js +32 -76
  328. package/cjs/sync.js.map +1 -1
  329. package/cjs/utils.js +51 -42
  330. package/cjs/utils.js.map +1 -1
  331. package/cjs/utils.spec.js +0 -4
  332. package/cjs/utils.spec.js.map +1 -1
  333. package/jest.config.js +4 -3
  334. package/package.json +9 -6
  335. package/src/api.js +17 -2
  336. package/src/auth.js +3 -3
  337. package/src/collections/activity.js +4 -4
  338. package/src/collections/adjunct-sections.js +1 -1
  339. package/src/collections/adjunct-slides.js +1 -1
  340. package/src/collections/adjunct-sub-slides.js +1 -1
  341. package/src/collections/appointment-adjunct-tags.js +1 -1
  342. package/src/collections/appointment-deckversion-tags.js +2 -2
  343. package/src/collections/appointment-duplicates.js +1 -1
  344. package/src/collections/appointment-editors.js +1 -1
  345. package/src/collections/appointment-section-tags.js +1 -1
  346. package/src/collections/appointment-slide-tags.js +1 -1
  347. package/src/collections/appointment-tags.js +20 -18
  348. package/src/collections/appointment-templates.js +26 -0
  349. package/src/collections/appointments.js +9 -9
  350. package/src/collections/assets.js +1 -1
  351. package/src/collections/auto-adjuncts.js +1 -1
  352. package/src/collections/base.js +10 -6
  353. package/src/collections/base.spec.js +2 -2
  354. package/src/collections/cms-vals.js +5 -1
  355. package/src/collections/contact-phones.js +18 -0
  356. package/src/collections/contacts.js +1 -1
  357. package/src/collections/created-assets.js +1 -1
  358. package/src/collections/customers.js +1 -1
  359. package/src/collections/deck-notes.js +1 -1
  360. package/src/collections/deck-version-screenshots.js +1 -1
  361. package/src/collections/deck-versions.js +1 -1
  362. package/src/collections/decks.js +1 -1
  363. package/src/collections/deleted-assets.js +1 -1
  364. package/src/collections/dispatches.js +2 -2
  365. package/src/collections/event-objects.js +1 -1
  366. package/src/collections/events.js +1 -1
  367. package/src/collections/groups.js +1 -1
  368. package/src/collections/images.js +1 -1
  369. package/src/collections/locations.js +1 -1
  370. package/src/collections/opportunities.js +1 -1
  371. package/src/collections/pack-diffs.js +1 -1
  372. package/src/collections/packs.js +1 -1
  373. package/src/collections/presets.js +1 -1
  374. package/src/collections/section-selections.js +1 -1
  375. package/src/collections/sections.js +1 -1
  376. package/src/collections/slide-selections.js +1 -1
  377. package/src/collections/slides.js +1 -1
  378. package/src/collections/snapshots.js +1 -1
  379. package/src/collections/sub-slides.js +1 -1
  380. package/src/collections/tags.js +1 -1
  381. package/src/collections/teams.js +1 -1
  382. package/src/collections/templates.js +1 -1
  383. package/src/collections/uploads.js +1 -1
  384. package/src/collections/users.js +1 -1
  385. package/src/collections.js +2 -0
  386. package/src/fixtures.js +193 -0
  387. package/src/models/activity-item.js +1 -1
  388. package/src/models/adjunct-section.js +7 -2
  389. package/src/models/adjunct-slide.js +7 -2
  390. package/src/models/adjunct-sub-slide.js +1 -1
  391. package/src/models/adjunct.js +39 -1
  392. package/src/models/appointment-adjunct-tags.js +1 -1
  393. package/src/models/appointment-deckversion-tags.js +1 -1
  394. package/src/models/appointment-duplicate.js +1 -1
  395. package/src/models/appointment-editor.js +1 -1
  396. package/src/models/appointment-section-tags.js +1 -1
  397. package/src/models/appointment-slide-tags.js +1 -1
  398. package/src/models/appointment-stats.js +1 -1
  399. package/src/models/appointment-tags.js +1 -1
  400. package/src/models/appointment-template.js +19 -0
  401. package/src/models/appointment-viewing.js +1 -1
  402. package/src/models/appointment.js +101 -38
  403. package/src/models/asset.js +15 -1
  404. package/src/models/auto-adjunct-key-check.js +1 -1
  405. package/src/models/auto-adjunct.js +2 -1
  406. package/src/models/base.js +36 -21
  407. package/src/models/base.spec.js +18 -18
  408. package/src/models/choicelist.js +1 -1
  409. package/src/models/cms-val.js +24 -1
  410. package/src/models/cms-val.spec.js +14 -0
  411. package/src/models/contact-phone.js +57 -0
  412. package/src/models/contact.js +1 -1
  413. package/src/models/customer.js +3 -3
  414. package/src/models/deck-note.js +1 -1
  415. package/src/models/deck-tags.js +1 -1
  416. package/src/models/deck-version-screenshot.js +1 -1
  417. package/src/models/deck-version.js +31 -6
  418. package/src/models/deck.js +1 -1
  419. package/src/models/dispatch-preview.js +1 -1
  420. package/src/models/dispatch.js +1 -1
  421. package/src/models/event-object.js +1 -1
  422. package/src/models/event.js +1 -1
  423. package/src/models/feed-data.js +2 -2
  424. package/src/models/file.js +1 -1
  425. package/src/models/group.js +1 -1
  426. package/src/models/handover.js +1 -1
  427. package/src/models/hosted-preso.js +1 -1
  428. package/src/models/image.js +1 -1
  429. package/src/models/location.js +1 -1
  430. package/src/models/manifest-json.js +56 -5
  431. package/src/models/onshare.js +1 -1
  432. package/src/models/opportunity.js +1 -1
  433. package/src/models/pack-diff.js +1 -1
  434. package/src/models/pack.js +1 -1
  435. package/src/models/preset.js +3 -1
  436. package/src/models/refresh-request.js +15 -1
  437. package/src/models/room.js +1 -1
  438. package/src/models/salesforce-lookup.js +1 -1
  439. package/src/models/section-selection.js +1 -1
  440. package/src/models/section.js +1 -1
  441. package/src/models/slide-selection.js +1 -1
  442. package/src/models/slide.js +1 -1
  443. package/src/models/snapshot.js +11 -2
  444. package/src/models/snapshot.spec.js +31 -0
  445. package/src/models/sub-slide.js +1 -1
  446. package/src/models/support-ticket.js +1 -1
  447. package/src/models/tag.js +1 -1
  448. package/src/models/team.js +14 -3
  449. package/src/models/template.js +72 -2
  450. package/src/models/tenancy.js +4 -1
  451. package/src/models/timing-log.js +2 -2
  452. package/src/models/timing-log.spec.js +1 -1
  453. package/src/models/token.js +1 -1
  454. package/src/models/transcribe-socket.js +1 -1
  455. package/src/models/user.js +13 -2
  456. package/src/models.js +2 -0
  457. package/src/presentation/appointment-presentation.js +4 -4
  458. package/src/presentation/base-presentation-collection.js +1 -1
  459. package/src/presentation/base-presentation-model.js +25 -16
  460. package/src/presentation/base-presentation-model.spec.js +5 -5
  461. package/src/presentation/presentation-deck.js +28 -23
  462. package/src/presentation/presentation-deck.spec.js +4 -4
  463. package/src/presentation/presentation-decks.js +1 -1
  464. package/src/presentation/presentation-section.js +59 -31
  465. package/src/presentation/presentation-section.spec.js +31 -32
  466. package/src/presentation/presentation-sections.js +1 -1
  467. package/src/presentation/presentation-slide.js +51 -25
  468. package/src/presentation/presentation-slide.spec.js +21 -27
  469. package/src/presentation/presentation-slides.js +1 -1
  470. package/src/presentation/presentation-subslide.js +5 -5
  471. package/src/presentation/presentation-subslide.spec.js +3 -3
  472. package/src/presentation/presentation-subslides.js +1 -1
  473. package/src/presentation/presentation.js +5 -3
  474. package/src/selections.js +71 -0
  475. package/src/sync.js +1 -1
  476. package/src/utils.js +31 -8
  477. package/src/utils.spec.js +4 -4
  478. package/.rush/temp/package-deps_test.json +0 -172
@@ -35,7 +35,7 @@ export const AppointmentSectionTagsModel = BaseModel.extend(
35
35
  section: "SectionModel",
36
36
  user: "UserModel",
37
37
  },
38
- }
38
+ },
39
39
  );
40
40
 
41
41
  register("AppointmentSectionTagsModel", AppointmentSectionTagsModel);
@@ -35,7 +35,7 @@ export const AppointmentSlideTagsModel = BaseModel.extend(
35
35
  slide: "SlideModel",
36
36
  user: "UserModel",
37
37
  },
38
- }
38
+ },
39
39
  );
40
40
 
41
41
  register("AppointmentSlideTagsModel", AppointmentSlideTagsModel);
@@ -33,7 +33,7 @@ export const AppointmentStatsModel = BaseModel.extend(
33
33
  children: {
34
34
  appointment: "AppointmentModel",
35
35
  },
36
- }
36
+ },
37
37
  );
38
38
 
39
39
  register("AppointmentStatsModel", AppointmentStatsModel);
@@ -31,7 +31,7 @@ export const AppointmentTagsModel = BaseModel.extend(
31
31
  appointment: "AppointmentModel",
32
32
  user: "UserModel",
33
33
  },
34
- }
34
+ },
35
35
  );
36
36
 
37
37
  AppointmentTagsModel.canBeEmpty = true;
@@ -0,0 +1,19 @@
1
+ import { TemplateModel } from "./template.js";
2
+ import { register } from "../state-register.js";
3
+
4
+ /**
5
+ * @constructor
6
+ * @alias models.AppointmentTemplateModel
7
+ * @extends models.BaseModel
8
+ */
9
+ export const AppointmentTemplateModel = TemplateModel.extend({
10
+ modelName: "appointment-templates",
11
+
12
+ getResourceURL() {
13
+ return TemplateModel.prototype.getResourceURL.call({
14
+ modelName: TemplateModel.prototype.modelName,
15
+ });
16
+ },
17
+ });
18
+
19
+ register("AppointmentTemplateModel", AppointmentTemplateModel);
@@ -22,7 +22,7 @@ export const AppointmentViewingModel = BaseModel.extend(
22
22
  top_slides: "array",
23
23
  not_viewed: "array",
24
24
  },
25
- }
25
+ },
26
26
  );
27
27
 
28
28
  register("AppointmentViewingModel", AppointmentViewingModel);
@@ -15,13 +15,20 @@ import "../collections/slide-selections.js";
15
15
  import "../collections/dispatches.js";
16
16
  import "../collections/users.js";
17
17
  import "../collections/appointment-tags";
18
+ import "../collections/appointment-deckversion-tags";
19
+ import "../collections/appointment-section-tags";
20
+ import "../collections/appointment-slide-tags";
21
+ import "../collections/appointment-adjunct-tags";
18
22
 
19
23
  import { AdjunctSectionCollection } from "../collections/adjunct-sections.js";
20
24
  import { AdjunctSlideCollection } from "../collections/adjunct-slides.js";
21
25
  import { AdjunctSubSlideCollection } from "../collections/adjunct-sub-slides.js";
26
+ import { AppointmentTemplateCollection } from "../collections/appointment-templates.js";
22
27
  import { BaseModel } from "./base.js";
28
+ import { ContactPhoneCollection } from "../collections/contact-phones.js";
23
29
  import { DeckNoteCollection } from "../collections/deck-notes.js";
24
30
  import Promise from "bluebird";
31
+ import _ from "lodash";
25
32
  import log from "../log.js";
26
33
  import moment from "moment";
27
34
  import { register } from "../state-register.js";
@@ -54,6 +61,7 @@ export const AppointmentModel = BaseModel.extend(
54
61
  * @property {date} no_edit_after
55
62
  * @property {date} no_share_after
56
63
  * @property {date} no_delete_after
64
+ * @property {string} share_visibility_mode
57
65
  */
58
66
  props: {
59
67
  name: "stringSanitized",
@@ -79,6 +87,7 @@ export const AppointmentModel = BaseModel.extend(
79
87
  no_share_after: "date",
80
88
  no_delete_after: "date",
81
89
  no_snapshot_create_after: "date",
90
+ share_visibility_mode: "string",
82
91
  },
83
92
 
84
93
  /**
@@ -152,6 +161,17 @@ export const AppointmentModel = BaseModel.extend(
152
161
  return adjunctSubSlides;
153
162
  },
154
163
  },
164
+ includedTemplates: {
165
+ deps: ["id"],
166
+ fn() {
167
+ return new AppointmentTemplateCollection(
168
+ {},
169
+ {
170
+ appointment: this,
171
+ },
172
+ );
173
+ },
174
+ },
155
175
  deckNotes: {
156
176
  deps: ["id"],
157
177
  fn() {
@@ -211,6 +231,16 @@ export const AppointmentModel = BaseModel.extend(
211
231
  return this.cannotEdit || this.cannotDelete;
212
232
  },
213
233
  },
234
+ // This property should be set by the calling code of the appointment and be the set of
235
+ // contact phones for all contacts on this preso. It must be fetchd and set after the contact_set
236
+ // is fetched. It's up to the calling code to decide if this property is required and
237
+ // therefore the extra fetch
238
+ contactPhones: {
239
+ deps: ["id", "contact_set"],
240
+ fn() {
241
+ return new ContactPhoneCollection();
242
+ },
243
+ },
214
244
  },
215
245
 
216
246
  getHooksPath() {
@@ -220,26 +250,26 @@ export const AppointmentModel = BaseModel.extend(
220
250
  return this.deckversion_set.first().getHooksPath();
221
251
  },
222
252
 
223
- fetchAll(fetchSelf = false, options = {}) {
253
+ fetchAll(fetchSelf = false, fetchOptions = {}) {
224
254
  return Promise.resolve()
225
255
  .then(() => {
226
256
  if (!this._url || fetchSelf) {
227
- return this.fetch(options);
257
+ return this.fetch(fetchOptions);
228
258
  }
229
259
  return Promise.resolve();
230
260
  })
231
261
  .then(() => {
232
262
  const fetches = [
233
- this.deckversion_set.fetchModels(options),
234
- this.appointmentssection_set.fetch(options),
235
- this.appointmentsslide_set.fetch(options),
236
- this.appointmenteditor_set.fetch(options),
237
- this.adjunctSlides.fetch(options),
238
- this.adjunctSections.fetch(options),
239
- this.adjunctSubSlides.fetch(options),
240
- this.contact_set.fetchSet(options),
241
- this.tags.fetch(options),
242
- this.user.fetch(options).catch((e) => {
263
+ this.deckversion_set?.fetchModels(fetchOptions),
264
+ this.appointmentssection_set?.fetch(fetchOptions),
265
+ this.appointmentsslide_set?.fetch(fetchOptions),
266
+ this.appointmenteditor_set?.fetch(fetchOptions),
267
+ this.adjunctSlides?.fetch(fetchOptions),
268
+ this.adjunctSections?.fetch(fetchOptions),
269
+ this.adjunctSubSlides?.fetch(fetchOptions),
270
+ this.contact_set?.fetchSet(fetchOptions),
271
+ this.tags?.fetch(fetchOptions),
272
+ this.user?.fetch(fetchOptions)?.catch((e) => {
243
273
  if (e.status && e.status === 404) {
244
274
  // It's possible for a user to be deactivated, which means they'll
245
275
  // return with a 404. We want to be able to still load the preso,
@@ -249,52 +279,84 @@ export const AppointmentModel = BaseModel.extend(
249
279
  }
250
280
  throw e;
251
281
  }),
252
- this.deckNotes.fetch(options),
253
- this.opportunity_set.fetchSet(options).catch(() => {
254
- log.error(
255
- `Failed to fetch Opportunity set`,
256
- this.opportunity_set.toJSON()
257
- );
258
- return Promise.resolve();
259
- }),
282
+ this.deckNotes?.fetch(fetchOptions),
283
+ this.includedTemplates.fetch(fetchOptions),
284
+ this.opportunity_set
285
+ ?.fetchSet(fetchOptions)
286
+ ?.then(() => {
287
+ return Promise.all(
288
+ this.opportunity_set.map((opp) =>
289
+ opp.customer.fetch(fetchOptions),
290
+ ),
291
+ );
292
+ })
293
+ ?.catch(() => {
294
+ log.error(
295
+ `Failed to fetch Opportunity set`,
296
+ this.opportunity_set.toJSON(),
297
+ );
298
+ return Promise.resolve();
299
+ }),
260
300
  ];
261
301
 
262
302
  if (this.latest_snapshot) {
263
- fetches.push(this.latest_snapshot.fetch(options));
303
+ fetches.push(this.latest_snapshot.fetch(fetchOptions));
264
304
  }
265
305
 
266
306
  if (this.latest_feed_data) {
267
- fetches.push(this.latest_feed_data.fetch(options));
307
+ fetches.push(this.latest_feed_data.fetch(fetchOptions));
268
308
  }
269
309
 
270
310
  if (this.latest_tele) {
271
- fetches.push(this.latest_tele.fetch(options));
311
+ fetches.push(this.latest_tele.fetch(fetchOptions));
272
312
  }
273
313
 
274
314
  return Promise.all(fetches);
275
315
  })
276
316
  .then(() => {
317
+ return Promise.all(
318
+ this.deckversion_set.map((model) => {
319
+ return Promise.all([
320
+ model.screenshots.fetch(fetchOptions),
321
+ model.template_set.fetchSet(fetchOptions),
322
+ model.manifest_json.fetch(fetchOptions),
323
+ model.deck.fetch(fetchOptions),
324
+ ]);
325
+ }),
326
+ );
327
+ })
328
+ .then(() => {
329
+ const deckversionTemplates =
330
+ this.deckversion_set.first().template_set.models;
331
+
332
+ const allTemplates = _.uniqBy(
333
+ this.includedTemplates.models.concat(deckversionTemplates),
334
+ "id",
335
+ );
336
+
337
+ async function getTemplateOrFetch(adj) {
338
+ const existingTemplate = allTemplates.find(
339
+ (t) => t.id === adj.template.id,
340
+ );
341
+ if (existingTemplate) {
342
+ adj.template = existingTemplate;
343
+ } else {
344
+ await adj.template.fetch(fetchOptions);
345
+ }
346
+
347
+ return adj;
348
+ }
349
+
277
350
  const adjunctSlides = this.adjunctSlides
278
351
  .filter((adj) => adj.template)
279
- .map((adj) => adj.template.fetch(options));
352
+ .map((adj) => getTemplateOrFetch(adj));
353
+
280
354
  const adjunctSections = this.adjunctSections
281
355
  .filter((adj) => adj.template)
282
- .map((adj) => adj.template.fetch(options));
356
+ .map((adj) => getTemplateOrFetch(adj));
283
357
 
284
358
  return Promise.all([...adjunctSlides, ...adjunctSections]);
285
359
  })
286
- .then(() => {
287
- return Promise.all(
288
- this.deckversion_set.map((model) => {
289
- return Promise.all([
290
- model.screenshots.fetch(options),
291
- model.template_set.fetchSet(options),
292
- model.manifest_json.fetch(options),
293
- model.deck.fetch(options),
294
- ]);
295
- })
296
- );
297
- })
298
360
  .return(this);
299
361
  },
300
362
 
@@ -320,6 +382,7 @@ export const AppointmentModel = BaseModel.extend(
320
382
  no_delete_after: appointment.no_delete_after,
321
383
  team: this._retrieveURL(appointment.team),
322
384
  editors_can_change_editors: appointment.editors_can_change_editors,
385
+ share_visibility_mode: appointment.share_visibility_mode,
323
386
  };
324
387
 
325
388
  if (this.id) {
@@ -328,7 +391,7 @@ export const AppointmentModel = BaseModel.extend(
328
391
 
329
392
  return data;
330
393
  },
331
- }
394
+ },
332
395
  );
333
396
 
334
397
  register("AppointmentModel", AppointmentModel);
@@ -33,6 +33,20 @@ export const AssetModel = BaseModel.extend(
33
33
  orig_path: "string",
34
34
  },
35
35
 
36
+ /**
37
+ * The asset serializer actually returns the file in question for the URL.
38
+ * This method returns the actual URL of the asset endpoint, for example:
39
+ *
40
+ * /api/assets/2/
41
+ */
42
+ assetURL() {
43
+ // HACK: For some reason the API endpoint returns a url with a pack in it, but
44
+ // this doesn't actually work. We just want the 'asset' url.
45
+ return `${this.getResourceURL().replace("/packs/{pack.id}", "")}${
46
+ this.id
47
+ }/`;
48
+ },
49
+
36
50
  /**
37
51
  * @property {models.PackModel} pack
38
52
  */
@@ -43,7 +57,7 @@ export const AssetModel = BaseModel.extend(
43
57
  url() {
44
58
  return this._url;
45
59
  },
46
- }
60
+ },
47
61
  );
48
62
 
49
63
  register("AssetModel", AssetModel);
@@ -42,7 +42,7 @@ export const AutoAdjunctKeyCheckModel = BaseModel.extend(
42
42
 
43
43
  return data;
44
44
  },
45
- }
45
+ },
46
46
  );
47
47
 
48
48
  register("AutoAdjunctKeyCheckModel", AutoAdjunctKeyCheckModel);
@@ -41,6 +41,7 @@ export const AutoAdjunctModel = BaseModel.extend(
41
41
  sequence: "number",
42
42
  tags: "array",
43
43
  cmsvalkey_set: "array",
44
+ _tenancy: "object",
44
45
  },
45
46
 
46
47
  /**
@@ -52,7 +53,7 @@ export const AutoAdjunctModel = BaseModel.extend(
52
53
  template: "TemplateModel",
53
54
  team: "TeamModel",
54
55
  },
55
- }
56
+ },
56
57
  );
57
58
 
58
59
  register("AutoAdjunctModel", AutoAdjunctModel);
@@ -21,6 +21,7 @@ export const BaseModel = Model.extend(
21
21
  /** @lends models.BaseModel# */ {
22
22
  modelName: null,
23
23
  queryData: {},
24
+ detailType: "number",
24
25
 
25
26
  // This is unfortunately necessary to avoid the default ampersand model/state
26
27
  // behaviour from automatically hydrating all children and collections on a fetch.
@@ -99,6 +100,15 @@ export const BaseModel = Model.extend(
99
100
  if (def && (def.isState || def instanceof Collection)) {
100
101
  dataCopy[key] = def.toJSON();
101
102
  }
103
+
104
+ if (def && Array.isArray(def)) {
105
+ dataCopy[key] = def.map((obj) => {
106
+ if (obj instanceof Model) {
107
+ return obj.toJSON();
108
+ }
109
+ return obj;
110
+ });
111
+ }
102
112
  }
103
113
 
104
114
  this.registerStates();
@@ -131,7 +141,7 @@ export const BaseModel = Model.extend(
131
141
  for (const derivedProp of Object.keys(this._data[derivedKey])) {
132
142
  this[derivedKey].set(
133
143
  derivedProp,
134
- this._data[derivedKey][derivedProp]
144
+ this._data[derivedKey][derivedProp],
135
145
  );
136
146
  }
137
147
  }
@@ -152,9 +162,9 @@ export const BaseModel = Model.extend(
152
162
  const replacements = _.extend(
153
163
  {},
154
164
  {
155
- detailKey: "number",
165
+ detailKey: this.detailType,
156
166
  },
157
- this.urlMatchKeys
167
+ this.urlMatchKeys,
158
168
  );
159
169
 
160
170
  const regexes = Object.keys(replacements).reduce((result, key) => {
@@ -162,6 +172,8 @@ export const BaseModel = Model.extend(
162
172
  const name = key.replace(/\./g, "_");
163
173
  if (type === "number") {
164
174
  result[name] = "\\d+";
175
+ } else if (type === "uuid") {
176
+ result[name] = "([a-z]|[0-9]|-)+";
165
177
  } else if (type === "string") {
166
178
  result[name] = "\\w+";
167
179
  } else {
@@ -208,7 +220,7 @@ export const BaseModel = Model.extend(
208
220
  Failed to match URL '${url}' for model '${this.modelName}'.
209
221
  This is usually because the regex type for a key hasn't been set.
210
222
  Error: `,
211
- e
223
+ e,
212
224
  );
213
225
  return false;
214
226
  }
@@ -226,8 +238,8 @@ export const BaseModel = Model.extend(
226
238
  // and we want to ignore the hostname (https://staging-demo.salespreso.com)
227
239
  // and strip out the '/api' from both the resource url and the variable url
228
240
  // so that we can use the remaining part to isolate the id
229
- _getIDFromURL(url) {
230
- const resourceURL = this.getResourceURL();
241
+ _getIDFromURL(url, resource = "") {
242
+ const resourceURL = resource || this.getResourceURL();
231
243
 
232
244
  if (!url || !resourceURL) {
233
245
  return null;
@@ -318,7 +330,7 @@ export const BaseModel = Model.extend(
318
330
  const Model = registeredStates[model];
319
331
  if (!Model) {
320
332
  throw new Error(
321
- `'${model}' not found! Did you forget to import it on the '${this.modelName}' model?`
333
+ `'${model}' not found! Did you forget to import it on the '${this.modelName}' model?`,
322
334
  );
323
335
  }
324
336
  this._children[prop] = Model;
@@ -328,7 +340,7 @@ export const BaseModel = Model.extend(
328
340
  const Collection = state[collection];
329
341
  if (!Collection) {
330
342
  throw new Error(
331
- `'${collection}' not found! Did you forget to import it on the '${this.modelName}' model?`
343
+ `'${collection}' not found! Did you forget to import it on the '${this.modelName}' model?`,
332
344
  );
333
345
  }
334
346
  this._collections[prop] = Collection;
@@ -362,7 +374,7 @@ export const BaseModel = Model.extend(
362
374
  }
363
375
  }
364
376
  },
365
- this
377
+ this,
366
378
  );
367
379
 
368
380
  // Loop throught the collections and replace with the registered collection
@@ -373,7 +385,7 @@ export const BaseModel = Model.extend(
373
385
  this._registerCollection(registeredStates, prop, collection);
374
386
  }
375
387
  },
376
- this
388
+ this,
377
389
  );
378
390
  },
379
391
 
@@ -452,10 +464,10 @@ export const BaseModel = Model.extend(
452
464
  _.concat(
453
465
  _.concat(
454
466
  Object.keys(this._unsetChildren),
455
- Object.keys(this._unsetCollections)
467
+ Object.keys(this._unsetCollections),
456
468
  ),
457
- Object.keys(this._values)
458
- )
469
+ Object.keys(this._values),
470
+ ),
459
471
  );
460
472
 
461
473
  keys.forEach((key) => {
@@ -508,12 +520,12 @@ export const BaseModel = Model.extend(
508
520
  if (typeof this._children[child] === "function") {
509
521
  this._safeSet(
510
522
  child,
511
- new this._children[child](val, { parent: this })
523
+ new this._children[child](val, { parent: this }),
512
524
  );
513
525
  this.listenTo(
514
526
  this[child],
515
527
  "all",
516
- this._getCachedEventBubblingHandler(child)
528
+ this._getCachedEventBubblingHandler(child),
517
529
  );
518
530
  } else {
519
531
  this._safeSet(child, val);
@@ -541,7 +553,7 @@ export const BaseModel = Model.extend(
541
553
  if (typeof this._collections[coll] === "function") {
542
554
  this._safeSet(
543
555
  coll,
544
- new this._collections[coll](val, { parent: this })
556
+ new this._collections[coll](val, { parent: this }),
545
557
  );
546
558
  } else {
547
559
  this._safeSet(coll, val);
@@ -601,7 +613,6 @@ export const BaseModel = Model.extend(
601
613
  if (this._url && this.isNew()) {
602
614
  return this.getFullURLPath(this._url);
603
615
  }
604
-
605
616
  return this.getFullURLPath(this.getPlainURL());
606
617
  },
607
618
 
@@ -617,6 +628,10 @@ export const BaseModel = Model.extend(
617
628
  resp += "/";
618
629
  }
619
630
 
631
+ if (!resp.includes("{") || !resp.includes("}")) {
632
+ return resp;
633
+ }
634
+
620
635
  // Replace any values in a url with one from the model.
621
636
  // So if you have /path/to/{model.id}/
622
637
  // It will check the model from "this.model.id" and replace
@@ -655,7 +670,7 @@ export const BaseModel = Model.extend(
655
670
  return sync.apply(this, arguments);
656
671
  },
657
672
 
658
- serialize() {
673
+ serialize(opts = { derived: true }) {
659
674
  // Return nothing if data passed is falsy. More than likely this is
660
675
  // a null value
661
676
  if (!this._data) {
@@ -665,7 +680,7 @@ export const BaseModel = Model.extend(
665
680
  const data = Model.prototype.serialize.apply(this, arguments);
666
681
  data.url = this.url();
667
682
 
668
- let derived = this.getAttributes({ derived: true });
683
+ let derived = this.getAttributes(opts);
669
684
  derived = Object.keys(derived).reduce((object, key) => {
670
685
  let value = derived[key];
671
686
  if (value instanceof Collection || value instanceof Model) {
@@ -716,7 +731,7 @@ export const BaseModel = Model.extend(
716
731
 
717
732
  return null;
718
733
  },
719
- }
734
+ },
720
735
  );
721
736
 
722
737
  function replacePropertyDefinition(object, name) {
@@ -785,7 +800,7 @@ function replacePropertyDefinition(object, name) {
785
800
  get() {
786
801
  if (!this._values) {
787
802
  throw new Error(
788
- `Trying to retrieve value ${name} of model ${object.modelName} during constructor`
803
+ `Trying to retrieve value ${name} of model ${object.modelName} during constructor`,
789
804
  );
790
805
  }
791
806