@livepreso/api 6.48.1 → 6.49.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 (365) hide show
  1. package/.lintstagedrc.js +6 -0
  2. package/.rush/temp/chunked-rush-logs/api.build.chunks.jsonl +6 -0
  3. package/.rush/temp/chunked-rush-logs/api.test.chunks.jsonl +1 -0
  4. package/.rush/temp/operation/build/all.log +6 -0
  5. package/.rush/temp/operation/build/log-chunks.jsonl +6 -0
  6. package/.rush/temp/operation/build/state.json +3 -0
  7. package/.rush/temp/shrinkwrap-deps.json +1131 -1013
  8. package/CHANGELOG.json +20 -0
  9. package/CHANGELOG.md +9 -1
  10. package/bin/test.sh +0 -0
  11. package/cjs/api.js +3 -18
  12. package/cjs/api.js.map +1 -1
  13. package/cjs/api.spec.js +0 -4
  14. package/cjs/api.spec.js.map +1 -1
  15. package/cjs/auth.js +2 -29
  16. package/cjs/auth.js.map +1 -1
  17. package/cjs/auth.spec.js +55 -80
  18. package/cjs/auth.spec.js.map +1 -1
  19. package/cjs/caching.js +2 -7
  20. package/cjs/caching.js.map +1 -1
  21. package/cjs/collections/activity.js +18 -58
  22. package/cjs/collections/activity.js.map +1 -1
  23. package/cjs/collections/adjunct-sections.js +2 -11
  24. package/cjs/collections/adjunct-sections.js.map +1 -1
  25. package/cjs/collections/adjunct-slides.js +2 -11
  26. package/cjs/collections/adjunct-slides.js.map +1 -1
  27. package/cjs/collections/adjunct-sub-slides.js +2 -10
  28. package/cjs/collections/adjunct-sub-slides.js.map +1 -1
  29. package/cjs/collections/appointment-adjunct-tags.js +1 -9
  30. package/cjs/collections/appointment-adjunct-tags.js.map +1 -1
  31. package/cjs/collections/appointment-deckversion-tags.js +1 -9
  32. package/cjs/collections/appointment-deckversion-tags.js.map +1 -1
  33. package/cjs/collections/appointment-editors.js +1 -10
  34. package/cjs/collections/appointment-editors.js.map +1 -1
  35. package/cjs/collections/appointment-section-tags.js +1 -9
  36. package/cjs/collections/appointment-section-tags.js.map +1 -1
  37. package/cjs/collections/appointment-slide-tags.js +1 -9
  38. package/cjs/collections/appointment-slide-tags.js.map +1 -1
  39. package/cjs/collections/appointment-tags.js +69 -108
  40. package/cjs/collections/appointment-tags.js.map +1 -1
  41. package/cjs/collections/appointment-templates.js +1 -10
  42. package/cjs/collections/appointment-templates.js.map +1 -1
  43. package/cjs/collections/appointments.js +9 -29
  44. package/cjs/collections/appointments.js.map +1 -1
  45. package/cjs/collections/assets.js +1 -9
  46. package/cjs/collections/assets.js.map +1 -1
  47. package/cjs/collections/auto-adjuncts.js +6 -21
  48. package/cjs/collections/auto-adjuncts.js.map +1 -1
  49. package/cjs/collections/base.js +54 -118
  50. package/cjs/collections/base.js.map +1 -1
  51. package/cjs/collections/base.spec.js +195 -242
  52. package/cjs/collections/base.spec.js.map +1 -1
  53. package/cjs/collections/cms-vals.js +4 -16
  54. package/cjs/collections/cms-vals.js.map +1 -1
  55. package/cjs/collections/contact-phones.js +1 -9
  56. package/cjs/collections/contact-phones.js.map +1 -1
  57. package/cjs/collections/contacts.js +1 -9
  58. package/cjs/collections/contacts.js.map +1 -1
  59. package/cjs/collections/created-assets.js +1 -10
  60. package/cjs/collections/created-assets.js.map +1 -1
  61. package/cjs/collections/customers.js +1 -9
  62. package/cjs/collections/customers.js.map +1 -1
  63. package/cjs/collections/deck-notes.js +1 -10
  64. package/cjs/collections/deck-notes.js.map +1 -1
  65. package/cjs/collections/deck-version-screenshots.js +4 -17
  66. package/cjs/collections/deck-version-screenshots.js.map +1 -1
  67. package/cjs/collections/deck-versions.js +5 -20
  68. package/cjs/collections/deck-versions.js.map +1 -1
  69. package/cjs/collections/decks.js +1 -9
  70. package/cjs/collections/decks.js.map +1 -1
  71. package/cjs/collections/deleted-assets.js +1 -10
  72. package/cjs/collections/deleted-assets.js.map +1 -1
  73. package/cjs/collections/dispatches.js +1 -13
  74. package/cjs/collections/dispatches.js.map +1 -1
  75. package/cjs/collections/event-objects.js +1 -9
  76. package/cjs/collections/event-objects.js.map +1 -1
  77. package/cjs/collections/events.js +1 -9
  78. package/cjs/collections/events.js.map +1 -1
  79. package/cjs/collections/groups.js +1 -9
  80. package/cjs/collections/groups.js.map +1 -1
  81. package/cjs/collections/images.js +1 -9
  82. package/cjs/collections/images.js.map +1 -1
  83. package/cjs/collections/locations.js +1 -9
  84. package/cjs/collections/locations.js.map +1 -1
  85. package/cjs/collections/opportunities.js +1 -9
  86. package/cjs/collections/opportunities.js.map +1 -1
  87. package/cjs/collections/pack-diffs.js +1 -9
  88. package/cjs/collections/pack-diffs.js.map +1 -1
  89. package/cjs/collections/packs.js +1 -9
  90. package/cjs/collections/packs.js.map +1 -1
  91. package/cjs/collections/presets.js +1 -9
  92. package/cjs/collections/presets.js.map +1 -1
  93. package/cjs/collections/section-selections.js +2 -10
  94. package/cjs/collections/section-selections.js.map +1 -1
  95. package/cjs/collections/sections.js +1 -9
  96. package/cjs/collections/sections.js.map +1 -1
  97. package/cjs/collections/signers.js +1 -9
  98. package/cjs/collections/signers.js.map +1 -1
  99. package/cjs/collections/signing-backends.js +1 -9
  100. package/cjs/collections/signing-backends.js.map +1 -1
  101. package/cjs/collections/signing-requests.js +1 -9
  102. package/cjs/collections/signing-requests.js.map +1 -1
  103. package/cjs/collections/slide-selections.js +2 -10
  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 +0 -96
  122. package/cjs/collections.js.map +1 -1
  123. package/cjs/fixtures.js +19 -57
  124. package/cjs/fixtures.js.map +1 -1
  125. package/cjs/index.js +0 -12
  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 +7 -25
  132. package/cjs/middlewares/auth.js.map +1 -1
  133. package/cjs/middlewares/base.js +4 -11
  134. package/cjs/middlewares/base.js.map +1 -1
  135. package/cjs/middlewares/json.js +7 -27
  136. package/cjs/middlewares/json.js.map +1 -1
  137. package/cjs/middlewares/redirect.js +11 -29
  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 +6 -19
  142. package/cjs/models/adjunct-section.js.map +1 -1
  143. package/cjs/models/adjunct-slide.js +6 -19
  144. package/cjs/models/adjunct-slide.js.map +1 -1
  145. package/cjs/models/adjunct-sub-slide.js +5 -16
  146. package/cjs/models/adjunct-sub-slide.js.map +1 -1
  147. package/cjs/models/adjunct.js +7 -23
  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-editor.js +1 -14
  156. package/cjs/models/appointment-editor.js.map +1 -1
  157. package/cjs/models/appointment-section-tags.js +1 -13
  158. package/cjs/models/appointment-section-tags.js.map +1 -1
  159. package/cjs/models/appointment-slide-tags.js +1 -13
  160. package/cjs/models/appointment-slide-tags.js.map +1 -1
  161. package/cjs/models/appointment-stats.js +1 -11
  162. package/cjs/models/appointment-stats.js.map +1 -1
  163. package/cjs/models/appointment-tags.js +1 -10
  164. package/cjs/models/appointment-tags.js.map +1 -1
  165. package/cjs/models/appointment-template.js +1 -6
  166. package/cjs/models/appointment-template.js.map +1 -1
  167. package/cjs/models/appointment-viewing.js +1 -8
  168. package/cjs/models/appointment-viewing.js.map +1 -1
  169. package/cjs/models/appointment.js +24 -97
  170. package/cjs/models/appointment.js.map +1 -1
  171. package/cjs/models/asset.js +1 -12
  172. package/cjs/models/asset.js.map +1 -1
  173. package/cjs/models/auto-adjunct-key-check.js +1 -15
  174. package/cjs/models/auto-adjunct-key-check.js.map +1 -1
  175. package/cjs/models/auto-adjunct.js +1 -13
  176. package/cjs/models/auto-adjunct.js.map +1 -1
  177. package/cjs/models/base.js +86 -216
  178. package/cjs/models/base.js.map +1 -1
  179. package/cjs/models/base.spec.js +0 -31
  180. package/cjs/models/base.spec.js.map +1 -1
  181. package/cjs/models/choicelist.js +1 -8
  182. package/cjs/models/choicelist.js.map +1 -1
  183. package/cjs/models/cms-val.js +5 -26
  184. package/cjs/models/cms-val.js.map +1 -1
  185. package/cjs/models/cms-val.spec.js +13 -20
  186. package/cjs/models/cms-val.spec.js.map +1 -1
  187. package/cjs/models/contact-phone.js +1 -13
  188. package/cjs/models/contact-phone.js.map +1 -1
  189. package/cjs/models/contact.js +1 -18
  190. package/cjs/models/contact.js.map +1 -1
  191. package/cjs/models/customer.js +3 -30
  192. package/cjs/models/customer.js.map +1 -1
  193. package/cjs/models/deck-note.js +1 -9
  194. package/cjs/models/deck-note.js.map +1 -1
  195. package/cjs/models/deck-tags.js +1 -12
  196. package/cjs/models/deck-tags.js.map +1 -1
  197. package/cjs/models/deck-version-screenshot.js +1 -13
  198. package/cjs/models/deck-version-screenshot.js.map +1 -1
  199. package/cjs/models/deck-version.js +13 -38
  200. package/cjs/models/deck-version.js.map +1 -1
  201. package/cjs/models/deck.js +1 -14
  202. package/cjs/models/deck.js.map +1 -1
  203. package/cjs/models/dispatch-preview.js +1 -13
  204. package/cjs/models/dispatch-preview.js.map +1 -1
  205. package/cjs/models/dispatch.js +1 -25
  206. package/cjs/models/dispatch.js.map +1 -1
  207. package/cjs/models/envs.js +1 -6
  208. package/cjs/models/envs.js.map +1 -1
  209. package/cjs/models/event-object.js +1 -11
  210. package/cjs/models/event-object.js.map +1 -1
  211. package/cjs/models/event.js +1 -13
  212. package/cjs/models/event.js.map +1 -1
  213. package/cjs/models/feed-data.js +1 -13
  214. package/cjs/models/feed-data.js.map +1 -1
  215. package/cjs/models/file.js +1 -11
  216. package/cjs/models/file.js.map +1 -1
  217. package/cjs/models/group.js +1 -11
  218. package/cjs/models/group.js.map +1 -1
  219. package/cjs/models/handover.js +1 -13
  220. package/cjs/models/handover.js.map +1 -1
  221. package/cjs/models/hosted-preso.js +1 -15
  222. package/cjs/models/hosted-preso.js.map +1 -1
  223. package/cjs/models/image.js +1 -16
  224. package/cjs/models/image.js.map +1 -1
  225. package/cjs/models/location.js +1 -13
  226. package/cjs/models/location.js.map +1 -1
  227. package/cjs/models/manifest-json.js +25 -84
  228. package/cjs/models/manifest-json.js.map +1 -1
  229. package/cjs/models/onshare.js +1 -14
  230. package/cjs/models/onshare.js.map +1 -1
  231. package/cjs/models/opportunity.js +1 -14
  232. package/cjs/models/opportunity.js.map +1 -1
  233. package/cjs/models/pack-diff.js +1 -14
  234. package/cjs/models/pack-diff.js.map +1 -1
  235. package/cjs/models/pack.js +1 -12
  236. package/cjs/models/pack.js.map +1 -1
  237. package/cjs/models/preset.js +1 -19
  238. package/cjs/models/preset.js.map +1 -1
  239. package/cjs/models/refresh-request.js +1 -11
  240. package/cjs/models/refresh-request.js.map +1 -1
  241. package/cjs/models/room.js +1 -9
  242. package/cjs/models/room.js.map +1 -1
  243. package/cjs/models/salesforce-lookup.js +1 -12
  244. package/cjs/models/salesforce-lookup.js.map +1 -1
  245. package/cjs/models/section-selection.js +7 -15
  246. package/cjs/models/section-selection.js.map +1 -1
  247. package/cjs/models/section.js +1 -14
  248. package/cjs/models/section.js.map +1 -1
  249. package/cjs/models/signer.js +1 -10
  250. package/cjs/models/signer.js.map +1 -1
  251. package/cjs/models/signing-backend.js +1 -9
  252. package/cjs/models/signing-backend.js.map +1 -1
  253. package/cjs/models/signing-request.js +1 -13
  254. package/cjs/models/signing-request.js.map +1 -1
  255. package/cjs/models/slide-selection.js +7 -15
  256. package/cjs/models/slide-selection.js.map +1 -1
  257. package/cjs/models/slide.js +1 -14
  258. package/cjs/models/slide.js.map +1 -1
  259. package/cjs/models/snapshot.js +3 -16
  260. package/cjs/models/snapshot.js.map +1 -1
  261. package/cjs/models/snapshot.spec.js +26 -33
  262. package/cjs/models/snapshot.spec.js.map +1 -1
  263. package/cjs/models/sub-slide.js +1 -12
  264. package/cjs/models/sub-slide.js.map +1 -1
  265. package/cjs/models/support-ticket.js +1 -11
  266. package/cjs/models/support-ticket.js.map +1 -1
  267. package/cjs/models/tag.js +1 -13
  268. package/cjs/models/tag.js.map +1 -1
  269. package/cjs/models/team.js +1 -13
  270. package/cjs/models/team.js.map +1 -1
  271. package/cjs/models/template.js +49 -79
  272. package/cjs/models/template.js.map +1 -1
  273. package/cjs/models/tenancy.js +1 -11
  274. package/cjs/models/tenancy.js.map +1 -1
  275. package/cjs/models/timing-log.js +23 -80
  276. package/cjs/models/timing-log.js.map +1 -1
  277. package/cjs/models/timing-log.spec.js +25 -38
  278. package/cjs/models/timing-log.spec.js.map +1 -1
  279. package/cjs/models/token.js +1 -11
  280. package/cjs/models/token.js.map +1 -1
  281. package/cjs/models/transcribe-socket.js +1 -8
  282. package/cjs/models/transcribe-socket.js.map +1 -1
  283. package/cjs/models/upload.js +1 -7
  284. package/cjs/models/upload.js.map +1 -1
  285. package/cjs/models/user.js +1 -29
  286. package/cjs/models/user.js.map +1 -1
  287. package/cjs/models/user.spec.js +22 -32
  288. package/cjs/models/user.spec.js.map +1 -1
  289. package/cjs/models.js +0 -140
  290. package/cjs/models.js.map +1 -1
  291. package/cjs/presentation/appointment-presentation.js +9 -35
  292. package/cjs/presentation/appointment-presentation.js.map +1 -1
  293. package/cjs/presentation/base-presentation-collection.js +1 -7
  294. package/cjs/presentation/base-presentation-collection.js.map +1 -1
  295. package/cjs/presentation/base-presentation-model.js +24 -67
  296. package/cjs/presentation/base-presentation-model.js.map +1 -1
  297. package/cjs/presentation/base-presentation-model.spec.js +5 -27
  298. package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
  299. package/cjs/presentation/presentation-deck.js +41 -82
  300. package/cjs/presentation/presentation-deck.js.map +1 -1
  301. package/cjs/presentation/presentation-deck.spec.js +75 -98
  302. package/cjs/presentation/presentation-deck.spec.js.map +1 -1
  303. package/cjs/presentation/presentation-decks.js +1 -9
  304. package/cjs/presentation/presentation-decks.js.map +1 -1
  305. package/cjs/presentation/presentation-section.js +12 -74
  306. package/cjs/presentation/presentation-section.js.map +1 -1
  307. package/cjs/presentation/presentation-section.spec.js +211 -264
  308. package/cjs/presentation/presentation-section.spec.js.map +1 -1
  309. package/cjs/presentation/presentation-sections.js +1 -9
  310. package/cjs/presentation/presentation-sections.js.map +1 -1
  311. package/cjs/presentation/presentation-slide.js +23 -77
  312. package/cjs/presentation/presentation-slide.js.map +1 -1
  313. package/cjs/presentation/presentation-slide.spec.js +144 -182
  314. package/cjs/presentation/presentation-slide.spec.js.map +1 -1
  315. package/cjs/presentation/presentation-slides.js +1 -9
  316. package/cjs/presentation/presentation-slides.js.map +1 -1
  317. package/cjs/presentation/presentation-subslide.js +3 -23
  318. package/cjs/presentation/presentation-subslide.js.map +1 -1
  319. package/cjs/presentation/presentation-subslide.spec.js +106 -130
  320. package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
  321. package/cjs/presentation/presentation-subslides.js +1 -9
  322. package/cjs/presentation/presentation-subslides.js.map +1 -1
  323. package/cjs/presentation/presentation.js +64 -118
  324. package/cjs/presentation/presentation.js.map +1 -1
  325. package/cjs/presentation.js +0 -20
  326. package/cjs/presentation.js.map +1 -1
  327. package/cjs/selections.js +10 -36
  328. package/cjs/selections.js.map +1 -1
  329. package/cjs/state-register.js +3 -11
  330. package/cjs/state-register.js.map +1 -1
  331. package/cjs/sync.js +32 -76
  332. package/cjs/sync.js.map +1 -1
  333. package/cjs/utils.js +21 -49
  334. package/cjs/utils.js.map +1 -1
  335. package/cjs/utils.spec.js +0 -4
  336. package/cjs/utils.spec.js.map +1 -1
  337. package/eslint.config.mjs +10 -0
  338. package/package.json +8 -9
  339. package/rush-logs/api.build.cache.log +1 -0
  340. package/rush-logs/api.build.log +6 -0
  341. package/rush-logs/api.test.cache.log +1 -0
  342. package/rush-logs/api.test.log +1 -0
  343. package/src/collections/adjunct-sections.js +3 -3
  344. package/src/collections/adjunct-slides.js +3 -3
  345. package/src/collections/adjunct-sub-slides.js +3 -3
  346. package/src/collections/base.js +14 -0
  347. package/src/collections/section-selections.js +3 -3
  348. package/src/collections/slide-selections.js +3 -3
  349. package/src/fixtures.js +8 -1
  350. package/src/models/adjunct-section.js +6 -0
  351. package/src/models/adjunct-slide.js +6 -0
  352. package/src/models/adjunct-sub-slide.js +5 -0
  353. package/src/models/adjunct.js +1 -1
  354. package/src/models/appointment.js +2 -0
  355. package/src/models/base.js +6 -2
  356. package/src/models/deck-version.js +7 -3
  357. package/src/models/manifest-json.js +1 -1
  358. package/src/models/section-selection.js +6 -0
  359. package/src/models/slide-selection.js +6 -0
  360. package/src/presentation/presentation-section.js +4 -0
  361. package/src/presentation/presentation-slide.js +8 -0
  362. package/src/presentation/presentation-slide.spec.js +2 -0
  363. package/.eslintrc.js +0 -8
  364. package/.gitlab-ci.yml +0 -4
  365. package/.husky/pre-commit +0 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/selections.js"],"names":["SelectionsFailedError","Error","getSelectionChanges","selectionsHook","deckKey","options","opts","_","cloneDeep","context","isContextUpdated","sections","onSave","e","sortedSections","sortBy","forEach","section","slides","userChanges","_persistent","updateChanges","key","visible","change","slide"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;IAEaA,qB;;;;;;;;;;;+CAA8BC,K;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,SAASC,mBAAT,CAA6BC,cAA7B,EAA6CC,OAA7C,EAAsDC,OAAtD,EAA+D;AACrE,MAAMC,IAAI,GAAGC,gBAAEC,SAAF,CAAYH,OAAZ,CAAb;;AACA,MAAQI,OAAR,GAAoBH,IAApB,CAAQG,OAAR;AACA,MAAIC,gBAAgB,GAAG,KAAvB;AACA,MAAIC,QAAJ;;AAEA,MAAI;AACHA,IAAAA,QAAQ,GAAGR,cAAc,CAACS,MAAf,CAAsBN,IAAtB,CAAX;AACA,GAFD,CAEE,OAAOO,CAAP,EAAU;AACX,UAAM,IAAIb,qBAAJ,CAA0Ba,CAA1B,CAAN;AACA;;AAED,MAAMC,cAAc,GAAGP,gBAAEQ,MAAF,CAASJ,QAAT,EAAmB,UAAnB,CAAvB;;AAEAG,EAAAA,cAAc,CAACE,OAAf,CAAuB,UAACC,OAAD,EAAa;AACnCA,IAAAA,OAAO,CAACC,MAAR,GAAiBX,gBAAEQ,MAAF,CAASE,OAAO,CAACC,MAAjB,EAAyB,UAAzB,CAAjB;AACA,GAFD,EAdqE,CAkBrE;AACA;AACA;AACA;;AACA,MAAMC,WAAW,GAChBV,OAAO,CAACW,WAAR,IAAuBX,OAAO,CAACW,WAAR,CAAoBD,WAA3C,GACGV,OAAO,CAACW,WAAR,CAAoBD,WADvB,GAEG,IAHJ;;AAKA,MAAIA,WAAJ,EAAiB;AAChB,QAAME,aAAa,GAAG,SAAhBA,aAAgB,CAACC,GAAD,EAAMC,OAAN,EAAkB;AACvC,UAAMC,MAAM,GAAGL,WAAW,CAACG,GAAD,CAA1B;;AAEA,UAAIE,MAAM,IAAIA,MAAM,CAACD,OAAP,KAAmBA,OAAjC,EAA0C;AACzC,eAAOJ,WAAW,CAACG,GAAD,CAAlB;AAEAZ,QAAAA,gBAAgB,GAAG,IAAnB;AACA;AACD,KARD;;AAUAI,IAAAA,cAAc,CAACE,OAAf,CAAuB,UAACC,OAAD,EAAa;AACnCI,MAAAA,aAAa,WAAIjB,OAAJ,cAAea,OAAO,CAACK,GAAvB,GAA8BL,OAAO,CAACM,OAAtC,CAAb;AAEAN,MAAAA,OAAO,CAACC,MAAR,CAAeF,OAAf,CAAuB,UAACS,KAAD,EAAW;AACjCJ,QAAAA,aAAa,WAAIjB,OAAJ,cAAea,OAAO,CAACK,GAAvB,cAA8BG,KAAK,CAACH,GAApC,GAA2CG,KAAK,CAACF,OAAjD,CAAb;AACA,OAFD;AAGA,KAND;AAQAd,IAAAA,OAAO,CAACW,WAAR,CAAoBD,WAApB,GAAkCA,WAAlC;AACA;;AAED,SAAO;AACNV,IAAAA,OAAO,EAAPA,OADM;AAENE,IAAAA,QAAQ,EAAEG,cAFJ;AAGNJ,IAAAA,gBAAgB,EAAhBA;AAHM,GAAP;AAKA","sourcesContent":["import _ from \"lodash\";\n\nexport class SelectionsFailedError extends Error {}\n\n/***\n * Generates a selection changelist from a selections hook\n * @param {SelectionHook} selectionsHook - This should match the interface used by\n * selections. Ie it should have a .onSave() method on it.\n * @param {String} deckKey - The key for the deck used\n * @param {Object} options - Options that are passed straight into .onSave()\n * @param {Object[]} options.sections - A list of serialized section models\n * @param {Object} options.context - A context object\n * @param {Object} options.feeds - A feeds object\n * @param {Object} options.data - A data object\n * @param {Object} options.fields - Basically just `context.fields` here.\n */\nexport function getSelectionChanges(selectionsHook, deckKey, options) {\n\tconst opts = _.cloneDeep(options);\n\tconst { context } = opts;\n\tlet isContextUpdated = false;\n\tlet sections;\n\n\ttry {\n\t\tsections = selectionsHook.onSave(opts);\n\t} catch (e) {\n\t\tthrow new SelectionsFailedError(e);\n\t}\n\n\tconst sortedSections = _.sortBy(sections, \"sequence\");\n\n\tsortedSections.forEach((section) => {\n\t\tsection.slides = _.sortBy(section.slides, \"sequence\");\n\t});\n\n\t// If the user has applied a preset with a persistent context, we need to update\n\t// the userChanges in the context. Specifically, if something registered as a user\n\t// change has been negated by a change made by selections, we need to remove it\n\t// from userChanges.\n\tconst userChanges =\n\t\tcontext._persistent && context._persistent.userChanges\n\t\t\t? context._persistent.userChanges\n\t\t\t: null;\n\n\tif (userChanges) {\n\t\tconst updateChanges = (key, visible) => {\n\t\t\tconst change = userChanges[key];\n\n\t\t\tif (change && change.visible !== visible) {\n\t\t\t\tdelete userChanges[key];\n\n\t\t\t\tisContextUpdated = true;\n\t\t\t}\n\t\t};\n\n\t\tsortedSections.forEach((section) => {\n\t\t\tupdateChanges(`${deckKey}/${section.key}`, section.visible);\n\n\t\t\tsection.slides.forEach((slide) => {\n\t\t\t\tupdateChanges(`${deckKey}/${section.key}/${slide.key}`, slide.visible);\n\t\t\t});\n\t\t});\n\n\t\tcontext._persistent.userChanges = userChanges;\n\t}\n\n\treturn {\n\t\tcontext,\n\t\tsections: sortedSections,\n\t\tisContextUpdated,\n\t};\n}\n"],"file":"selections.js"}
1
+ {"version":3,"file":"selections.js","names":["_lodash","_interopRequireDefault","require","_callSuper","t","o","e","_getPrototypeOf2","default","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","SelectionsFailedError","exports","_Error","_classCallCheck2","arguments","_inherits2","_createClass2","_wrapNativeSuper2","Error","getSelectionChanges","selectionsHook","deckKey","options","opts","_","cloneDeep","context","isContextUpdated","sections","onSave","sortedSections","sortBy","forEach","section","slides","userChanges","_persistent","updateChanges","key","visible","change","concat","slide"],"sources":["../src/selections.js"],"sourcesContent":["import _ from \"lodash\";\n\nexport class SelectionsFailedError extends Error {}\n\n/***\n * Generates a selection changelist from a selections hook\n * @param {SelectionHook} selectionsHook - This should match the interface used by\n * selections. Ie it should have a .onSave() method on it.\n * @param {String} deckKey - The key for the deck used\n * @param {Object} options - Options that are passed straight into .onSave()\n * @param {Object[]} options.sections - A list of serialized section models\n * @param {Object} options.context - A context object\n * @param {Object} options.feeds - A feeds object\n * @param {Object} options.data - A data object\n * @param {Object} options.fields - Basically just `context.fields` here.\n */\nexport function getSelectionChanges(selectionsHook, deckKey, options) {\n\tconst opts = _.cloneDeep(options);\n\tconst { context } = opts;\n\tlet isContextUpdated = false;\n\tlet sections;\n\n\ttry {\n\t\tsections = selectionsHook.onSave(opts);\n\t} catch (e) {\n\t\tthrow new SelectionsFailedError(e);\n\t}\n\n\tconst sortedSections = _.sortBy(sections, \"sequence\");\n\n\tsortedSections.forEach((section) => {\n\t\tsection.slides = _.sortBy(section.slides, \"sequence\");\n\t});\n\n\t// If the user has applied a preset with a persistent context, we need to update\n\t// the userChanges in the context. Specifically, if something registered as a user\n\t// change has been negated by a change made by selections, we need to remove it\n\t// from userChanges.\n\tconst userChanges =\n\t\tcontext._persistent && context._persistent.userChanges\n\t\t\t? context._persistent.userChanges\n\t\t\t: null;\n\n\tif (userChanges) {\n\t\tconst updateChanges = (key, visible) => {\n\t\t\tconst change = userChanges[key];\n\n\t\t\tif (change && change.visible !== visible) {\n\t\t\t\tdelete userChanges[key];\n\n\t\t\t\tisContextUpdated = true;\n\t\t\t}\n\t\t};\n\n\t\tsortedSections.forEach((section) => {\n\t\t\tupdateChanges(`${deckKey}/${section.key}`, section.visible);\n\n\t\t\tsection.slides.forEach((slide) => {\n\t\t\t\tupdateChanges(`${deckKey}/${section.key}/${slide.key}`, slide.visible);\n\t\t\t});\n\t\t});\n\n\t\tcontext._persistent.userChanges = userChanges;\n\t}\n\n\treturn {\n\t\tcontext,\n\t\tsections: sortedSections,\n\t\tisContextUpdated,\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,23 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.registeredStates = exports.register = exports.getState = void 0;
7
- var registeredStates = {};
8
- exports.registeredStates = registeredStates;
9
-
10
- var register = function register(name, State) {
7
+ var registeredStates = exports.registeredStates = {};
8
+ var register = exports.register = function register(name, State) {
11
9
  State.prototype._registerName = name;
12
10
  registeredStates[name] = State;
13
11
  };
14
-
15
- exports.register = register;
16
-
17
- var getState = function getState(name) {
12
+ var getState = exports.getState = function getState(name) {
18
13
  if (!registeredStates[name]) {
19
14
  throw new Error("Registered state '".concat(name, "' not found."));
20
15
  }
21
-
22
16
  return registeredStates[name];
23
17
  };
24
-
25
- exports.getState = getState;
26
18
  //# sourceMappingURL=state-register.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/state-register.js"],"names":["registeredStates","register","name","State","prototype","_registerName","getState","Error"],"mappings":";;;;;;AAAO,IAAMA,gBAAgB,GAAG,EAAzB;;;AAEA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,IAAD,EAAOC,KAAP,EAAiB;AACxCA,EAAAA,KAAK,CAACC,SAAN,CAAgBC,aAAhB,GAAgCH,IAAhC;AACAF,EAAAA,gBAAgB,CAACE,IAAD,CAAhB,GAAyBC,KAAzB;AACA,CAHM;;;;AAKA,IAAMG,QAAQ,GAAG,SAAXA,QAAW,CAACJ,IAAD,EAAU;AACjC,MAAI,CAACF,gBAAgB,CAACE,IAAD,CAArB,EAA6B;AAC5B,UAAM,IAAIK,KAAJ,6BAA+BL,IAA/B,kBAAN;AACA;;AACD,SAAOF,gBAAgB,CAACE,IAAD,CAAvB;AACA,CALM","sourcesContent":["export const registeredStates = {};\n\nexport const register = (name, State) => {\n\tState.prototype._registerName = name;\n\tregisteredStates[name] = State;\n};\n\nexport const getState = (name) => {\n\tif (!registeredStates[name]) {\n\t\tthrow new Error(`Registered state '${name}' not found.`);\n\t}\n\treturn registeredStates[name];\n};\n"],"file":"state-register.js"}
1
+ {"version":3,"file":"state-register.js","names":["registeredStates","exports","register","name","State","prototype","_registerName","getState","Error","concat"],"sources":["../src/state-register.js"],"sourcesContent":["export const registeredStates = {};\n\nexport const register = (name, State) => {\n\tState.prototype._registerName = name;\n\tregisteredStates[name] = State;\n};\n\nexport const getState = (name) => {\n\tif (!registeredStates[name]) {\n\t\tthrow new Error(`Registered state '${name}' not found.`);\n\t}\n\treturn registeredStates[name];\n};\n"],"mappings":";;;;;;AAAO,IAAMA,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,CAAC,CAAC;AAE3B,IAAME,QAAQ,GAAAD,OAAA,CAAAC,QAAA,GAAG,SAAXA,QAAQA,CAAIC,IAAI,EAAEC,KAAK,EAAK;EACxCA,KAAK,CAACC,SAAS,CAACC,aAAa,GAAGH,IAAI;EACpCH,gBAAgB,CAACG,IAAI,CAAC,GAAGC,KAAK;AAC/B,CAAC;AAEM,IAAMG,QAAQ,GAAAN,OAAA,CAAAM,QAAA,GAAG,SAAXA,QAAQA,CAAIJ,IAAI,EAAK;EACjC,IAAI,CAACH,gBAAgB,CAACG,IAAI,CAAC,EAAE;IAC5B,MAAM,IAAIK,KAAK,sBAAAC,MAAA,CAAsBN,IAAI,iBAAc,CAAC;EACzD;EACA,OAAOH,gBAAgB,CAACG,IAAI,CAAC;AAC9B,CAAC","ignoreList":[]}
package/cjs/sync.js CHANGED
@@ -1,116 +1,90 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.sync = exports.methodMap = exports.defaultFetchURL = exports.buildURL = exports.ajaxSync = void 0;
9
-
10
8
  var _bluebird = _interopRequireDefault(require("bluebird"));
11
-
12
9
  var _superagentBluebirdPromise = _interopRequireDefault(require("superagent-bluebird-promise"));
13
-
14
10
  var _lodash = _interopRequireDefault(require("lodash"));
15
-
16
11
  var _log = _interopRequireDefault(require("./log.js"));
17
-
18
12
  var _middleware = require("./middleware.js");
19
-
20
13
  var _superagent = _interopRequireDefault(require("superagent"));
21
-
22
14
  var _url = _interopRequireDefault(require("url"));
23
-
24
15
  var defaults = _lodash.default.defaults;
25
- var assign = _lodash.default.assign; // Throw an error when a URL is needed, and none is supplied.
16
+ var assign = _lodash.default.assign;
26
17
 
18
+ // Throw an error when a URL is needed, and none is supplied.
27
19
  var urlError = function urlError() {
28
20
  throw new Error("A \"url\" property or function must be specified");
29
- }; // Map from CRUD to HTTP for our default `Backbone.sync` implementation.
30
-
21
+ };
31
22
 
32
- var methodMap = {
23
+ // Map from CRUD to HTTP for our default `Backbone.sync` implementation.
24
+ var methodMap = exports.methodMap = {
33
25
  create: "POST",
34
26
  update: "PUT",
35
27
  patch: "PATCH",
36
28
  delete: "DELETE",
37
29
  read: "GET"
38
30
  };
39
- exports.methodMap = methodMap;
40
-
41
- var defaultFetchURL = function defaultFetchURL(_ref) {
31
+ var defaultFetchURL = exports.defaultFetchURL = function defaultFetchURL(_ref) {
42
32
  var model = _ref.model;
43
-
44
33
  _log.default.warn("Deprecation: defaultFetchURL is deprecated. Just use .url()");
45
-
46
34
  return model.url();
47
35
  };
48
-
49
- exports.defaultFetchURL = defaultFetchURL;
50
-
51
- var buildURL = function buildURL(_ref2) {
36
+ var buildURL = exports.buildURL = function buildURL(_ref2) {
52
37
  var method = _ref2.method,
53
- model = _ref2.model;
38
+ model = _ref2.model;
54
39
  var url = model.url();
40
+ var urlParse = _url.default.parse(url);
55
41
 
56
- var urlParse = _url.default.parse(url); // If not a GET request, strip the query params from the url
57
-
58
-
42
+ // If not a GET request, strip the query params from the url
59
43
  if (method !== "read") {
60
44
  return url.replace(urlParse.search, "");
61
45
  }
62
-
63
46
  return url;
64
47
  };
65
-
66
- exports.buildURL = buildURL;
67
-
68
- var sync = function sync(method) {
48
+ var sync = exports.sync = function sync(method) {
69
49
  var _this = this;
70
-
71
50
  var syncArguments = arguments;
72
-
73
51
  if (method === "read") {
74
52
  // look for sync methods
75
53
  var syncActions = [];
76
-
77
54
  _middleware.middlewares.forEach(function (middleware) {
78
55
  if (middleware.sync) {
79
56
  syncActions.push(middleware.sync.apply(_this, syncArguments));
80
57
  }
81
58
  });
82
-
83
59
  return _bluebird.default.all(syncActions).then(function () {
84
60
  return ajaxSync.apply(_this, syncArguments);
85
61
  });
86
62
  }
87
-
88
63
  return ajaxSync.apply(this, syncArguments);
89
64
  };
65
+ var ajaxSync = exports.ajaxSync = function ajaxSync(method, model, options) {
66
+ var type = methodMap[method];
90
67
 
91
- exports.sync = sync;
92
-
93
- var ajaxSync = function ajaxSync(method, model, options) {
94
- var type = methodMap[method]; // Default options, unless specified.
95
-
68
+ // Default options, unless specified.
96
69
  defaults(options || (options = {}), {
97
70
  emulateHTTP: false,
98
71
  emulateJSON: false
99
- }); // Default request options.
72
+ });
100
73
 
74
+ // Default request options.
101
75
  var params = {
102
76
  type: type
103
- }; // Ensure that we have a URL.
77
+ };
104
78
 
79
+ // Ensure that we have a URL.
105
80
  if (!options.url) {
106
81
  options.url = _lodash.default.result(model, "url") || urlError();
107
- } // Ensure that we have the appropriate request data.
108
-
82
+ }
109
83
 
84
+ // Ensure that we have the appropriate request data.
110
85
  if (options.data === null && model && (method === "create" || method === "update" || method === "patch" || method === "delete" && options.batch)) {
111
86
  params.json = options.attrs || model.toJSON(options);
112
87
  }
113
-
114
88
  var url = buildURL({
115
89
  method: method,
116
90
  model: model,
@@ -119,72 +93,63 @@ var ajaxSync = function ajaxSync(method, model, options) {
119
93
  var requestSettings = assign(params, options);
120
94
  requestSettings.method = type;
121
95
  var request = (0, _superagentBluebirdPromise.default)(type, url);
122
-
123
96
  if (type === "PATCH" || type === "POST" || type === "PUT" || type === "DELETE" && options.batch) {
124
- var data = model.toServer(); // Note we can use formdata to override the way a patch works - if we
97
+ var data = model.toServer();
98
+
99
+ // Note we can use formdata to override the way a patch works - if we
125
100
  // are doing this it's for a particular patch with an image or file,
126
101
  // probably.
127
-
128
102
  if (type === "PATCH" && !_lodash.default.isArray(data) && !(data instanceof FormData)) {
129
103
  // Make sure we're only updating data actually passed to the save
130
104
  // function, rather than automatically generated stuff
131
105
  data = _lodash.default.pick(options.attrs, Object.keys(data));
132
106
  }
133
-
134
107
  request.send(data);
135
108
  }
136
-
137
109
  options.xhr = request;
138
-
139
110
  _middleware.middlewares.forEach(function (middleware) {
140
111
  if (middleware.preflight) {
141
112
  middleware.preflight(request);
142
113
  }
143
114
  });
144
-
145
115
  var mc = 0;
146
-
147
116
  function getNextMiddleware(request) {
148
117
  return function middlewareInterceptor(response) {
149
118
  if (mc < _middleware.middlewares.length) {
150
119
  return _middleware.middlewares[mc++].intercept(request, response, model).then(getNextMiddleware(request));
151
120
  }
152
-
153
121
  return _bluebird.default.resolve(response);
154
122
  };
155
123
  }
156
-
157
124
  model.trigger("request", model, request, options, requestSettings);
158
125
  request.requestSettings = requestSettings;
159
- var ajaxConfig = _lodash.default.result(model, "ajaxConfig") || {}; // Combine generated headers with user's headers.
126
+ var ajaxConfig = _lodash.default.result(model, "ajaxConfig") || {};
160
127
 
128
+ // Combine generated headers with user's headers.
161
129
  if (ajaxConfig.headers) {
162
130
  for (var key in ajaxConfig.headers) {
163
131
  request.header[key.toLowerCase()] = ajaxConfig.headers[key];
164
132
  }
165
133
  }
166
-
167
134
  if (options.headers) {
168
135
  for (var _key in options.headers) {
169
136
  request.header[_key.toLowerCase()] = options.headers[_key];
170
137
  }
171
- } // TODO: Remove me when this can be moved... for now this removal is quite a complex
172
- // process.
173
-
138
+ }
174
139
 
140
+ // TODO: Remove me when this can be moved... for now this removal is quite a complex
141
+ // process.
175
142
  if (options.cached && !options.deleted) {
176
143
  return _bluebird.default.resolve(options.cachedResponse).then(getNextMiddleware(request)).then(function (response) {
177
144
  if (!response.data) {
178
145
  response.data = JSON.parse(response.text);
179
146
  }
180
-
181
147
  return _bluebird.default.each(_middleware.middlewares, function (middleware) {
182
148
  return middleware.success(request, response, model, true);
183
149
  }).then(function () {
184
150
  if (options.success) {
185
151
  options.success(response.data, "success", response);
186
152
  }
187
-
188
153
  return response.data;
189
154
  });
190
155
  }).catch(function (response) {
@@ -194,34 +159,29 @@ var ajaxSync = function ajaxSync(method, model, options) {
194
159
  if (options.error) {
195
160
  options.error(response, "error", response.message);
196
161
  }
197
-
198
162
  throw response;
199
163
  });
200
164
  });
201
165
  }
202
-
203
- return request // Force a timeout on every request. Intermittent connections
166
+ return request
167
+ // Force a timeout on every request. Intermittent connections
204
168
  // can have the request continue trying for minutes otherwise.
205
169
  .timeout(60 * 1000).then(getNextMiddleware(request)).then(function (response) {
206
170
  var data;
207
-
208
171
  try {
209
172
  data = JSON.parse(response.text);
210
173
  } catch (e) {
211
174
  data = response;
212
175
  }
213
-
214
176
  if (type !== "DELETE") {
215
177
  model.set(data);
216
178
  }
217
-
218
179
  return _bluebird.default.each(_middleware.middlewares, function (middleware) {
219
180
  return middleware.success(request, response, model, false);
220
181
  }).then(function () {
221
182
  if (options.success) {
222
183
  options.success(data, "success", response);
223
184
  }
224
-
225
185
  request.emit("success", response);
226
186
  return data;
227
187
  });
@@ -229,7 +189,6 @@ var ajaxSync = function ajaxSync(method, model, options) {
229
189
  if (e.res && e.res.body && (e.status >= 400 && e.status < 500 || e.status === 503)) {
230
190
  e.message += "\nBody: ".concat(JSON.stringify(e.res.body));
231
191
  }
232
-
233
192
  throw e;
234
193
  }).catch(function (response) {
235
194
  return _bluebird.default.each(_middleware.middlewares, function (middleware) {
@@ -237,17 +196,14 @@ var ajaxSync = function ajaxSync(method, model, options) {
237
196
  }).then(function () {
238
197
  if (options.error) {
239
198
  options.error(response, "error", response.message);
240
- } // Provide a more explanatory error message on timeout
241
-
199
+ }
242
200
 
201
+ // Provide a more explanatory error message on timeout
243
202
  if (response && response.originalError && response.originalError.code === "ECONNABORTED") {
244
203
  throw new Error("Failed ".concat(type, " request on url: ").concat(url, ". ").concat(response.message));
245
204
  }
246
-
247
205
  throw response;
248
206
  });
249
207
  });
250
208
  };
251
-
252
- exports.ajaxSync = ajaxSync;
253
209
  //# sourceMappingURL=sync.js.map
package/cjs/sync.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/sync.js"],"names":["defaults","_","assign","urlError","Error","methodMap","create","update","patch","delete","read","defaultFetchURL","model","log","warn","url","buildURL","method","urlParse","url2","parse","replace","search","sync","syncArguments","arguments","syncActions","middlewares","forEach","middleware","push","apply","Promise","all","then","ajaxSync","options","type","emulateHTTP","emulateJSON","params","result","data","batch","json","attrs","toJSON","requestSettings","request","toServer","isArray","FormData","pick","Object","keys","send","xhr","preflight","mc","getNextMiddleware","middlewareInterceptor","response","length","intercept","resolve","trigger","ajaxConfig","headers","key","header","toLowerCase","cached","deleted","cachedResponse","JSON","text","each","success","catch","error","message","timeout","e","set","emit","superagent","SuperagentPromiseError","res","body","status","stringify","originalError","code"],"mappings":"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","sourcesContent":["import Promise from \"bluebird\";\nimport SuperAgentRequest from \"superagent-bluebird-promise\";\nimport _ from \"lodash\";\nimport log from \"./log.js\";\nimport { middlewares } from \"./middleware.js\";\nimport superagent from \"superagent\";\nimport url2 from \"url\";\n\nconst defaults = _.defaults;\nconst assign = _.assign;\n\n// Throw an error when a URL is needed, and none is supplied.\nconst urlError = function () {\n\tthrow new Error(`A \"url\" property or function must be specified`);\n};\n\n// Map from CRUD to HTTP for our default `Backbone.sync` implementation.\nexport const methodMap = {\n\tcreate: \"POST\",\n\tupdate: \"PUT\",\n\tpatch: \"PATCH\",\n\tdelete: \"DELETE\",\n\tread: \"GET\",\n};\n\nexport const defaultFetchURL = function ({ model }) {\n\tlog.warn(\"Deprecation: defaultFetchURL is deprecated. Just use .url()\");\n\treturn model.url();\n};\n\nexport const buildURL = function ({ method, model }) {\n\tconst url = model.url();\n\tconst urlParse = url2.parse(url);\n\n\t// If not a GET request, strip the query params from the url\n\tif (method !== \"read\") {\n\t\treturn url.replace(urlParse.search, \"\");\n\t}\n\n\treturn url;\n};\n\nexport const sync = function (method) {\n\tconst syncArguments = arguments;\n\n\tif (method === \"read\") {\n\t\t// look for sync methods\n\t\tconst syncActions = [];\n\t\tmiddlewares.forEach((middleware) => {\n\t\t\tif (middleware.sync) {\n\t\t\t\tsyncActions.push(middleware.sync.apply(this, syncArguments));\n\t\t\t}\n\t\t});\n\n\t\treturn Promise.all(syncActions).then(() => {\n\t\t\treturn ajaxSync.apply(this, syncArguments);\n\t\t});\n\t}\n\treturn ajaxSync.apply(this, syncArguments);\n};\n\nexport const ajaxSync = function (method, model, options) {\n\tconst type = methodMap[method];\n\n\t// Default options, unless specified.\n\tdefaults(options || (options = {}), {\n\t\temulateHTTP: false,\n\t\temulateJSON: false,\n\t});\n\n\t// Default request options.\n\tconst params = { type: type };\n\n\t// Ensure that we have a URL.\n\tif (!options.url) {\n\t\toptions.url = _.result(model, \"url\") || urlError();\n\t}\n\n\t// Ensure that we have the appropriate request data.\n\tif (\n\t\toptions.data === null &&\n\t\tmodel &&\n\t\t(method === \"create\" ||\n\t\t\tmethod === \"update\" ||\n\t\t\tmethod === \"patch\" ||\n\t\t\t(method === \"delete\" && options.batch))\n\t) {\n\t\tparams.json = options.attrs || model.toJSON(options);\n\t}\n\n\tconst url = buildURL({ method, model, options });\n\n\tconst requestSettings = assign(params, options);\n\trequestSettings.method = type;\n\n\tconst request = SuperAgentRequest(type, url);\n\n\tif (\n\t\ttype === \"PATCH\" ||\n\t\ttype === \"POST\" ||\n\t\ttype === \"PUT\" ||\n\t\t(type === \"DELETE\" && options.batch)\n\t) {\n\t\tlet data = model.toServer();\n\n\t\t// Note we can use formdata to override the way a patch works - if we\n\t\t// are doing this it's for a particular patch with an image or file,\n\t\t// probably.\n\t\tif (type === \"PATCH\" && !_.isArray(data) && !(data instanceof FormData)) {\n\t\t\t// Make sure we're only updating data actually passed to the save\n\t\t\t// function, rather than automatically generated stuff\n\t\t\tdata = _.pick(options.attrs, Object.keys(data));\n\t\t}\n\t\trequest.send(data);\n\t}\n\n\toptions.xhr = request;\n\n\tmiddlewares.forEach((middleware) => {\n\t\tif (middleware.preflight) {\n\t\t\tmiddleware.preflight(request);\n\t\t}\n\t});\n\n\tlet mc = 0;\n\n\tfunction getNextMiddleware(request) {\n\t\treturn function middlewareInterceptor(response) {\n\t\t\tif (mc < middlewares.length) {\n\t\t\t\treturn middlewares[mc++]\n\t\t\t\t\t.intercept(request, response, model)\n\t\t\t\t\t.then(getNextMiddleware(request));\n\t\t\t}\n\t\t\treturn Promise.resolve(response);\n\t\t};\n\t}\n\n\tmodel.trigger(\"request\", model, request, options, requestSettings);\n\trequest.requestSettings = requestSettings;\n\n\tconst ajaxConfig = _.result(model, \"ajaxConfig\") || {};\n\n\t// Combine generated headers with user's headers.\n\tif (ajaxConfig.headers) {\n\t\tfor (const key in ajaxConfig.headers) {\n\t\t\trequest.header[key.toLowerCase()] = ajaxConfig.headers[key];\n\t\t}\n\t}\n\n\tif (options.headers) {\n\t\tfor (const key in options.headers) {\n\t\t\trequest.header[key.toLowerCase()] = options.headers[key];\n\t\t}\n\t}\n\n\t// TODO: Remove me when this can be moved... for now this removal is quite a complex\n\t// process.\n\tif (options.cached && !options.deleted) {\n\t\treturn Promise.resolve(options.cachedResponse)\n\t\t\t.then(getNextMiddleware(request))\n\t\t\t.then(function (response) {\n\t\t\t\tif (!response.data) {\n\t\t\t\t\tresponse.data = JSON.parse(response.text);\n\t\t\t\t}\n\n\t\t\t\treturn Promise.each(middlewares, (middleware) => {\n\t\t\t\t\treturn middleware.success(request, response, model, true);\n\t\t\t\t}).then(() => {\n\t\t\t\t\tif (options.success) {\n\t\t\t\t\t\toptions.success(response.data, \"success\", response);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn response.data;\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch(function (response) {\n\t\t\t\treturn Promise.each(middlewares, (middleware) => {\n\t\t\t\t\treturn middleware.error(response, model);\n\t\t\t\t}).then(() => {\n\t\t\t\t\tif (options.error) {\n\t\t\t\t\t\toptions.error(response, \"error\", response.message);\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\treturn (\n\t\trequest\n\t\t\t// Force a timeout on every request. Intermittent connections\n\t\t\t// can have the request continue trying for minutes otherwise.\n\t\t\t.timeout(60 * 1000)\n\t\t\t.then(getNextMiddleware(request))\n\t\t\t.then(function (response) {\n\t\t\t\tlet data;\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(response.text);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tdata = response;\n\t\t\t\t}\n\n\t\t\t\tif (type !== \"DELETE\") {\n\t\t\t\t\tmodel.set(data);\n\t\t\t\t}\n\n\t\t\t\treturn Promise.each(middlewares, (middleware) => {\n\t\t\t\t\treturn middleware.success(request, response, model, false);\n\t\t\t\t}).then(() => {\n\t\t\t\t\tif (options.success) {\n\t\t\t\t\t\toptions.success(data, \"success\", response);\n\t\t\t\t\t}\n\t\t\t\t\trequest.emit(\"success\", response);\n\t\t\t\t\treturn data;\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch(superagent.SuperagentPromiseError, (e) => {\n\t\t\t\tif (\n\t\t\t\t\te.res &&\n\t\t\t\t\te.res.body &&\n\t\t\t\t\t((e.status >= 400 && e.status < 500) || e.status === 503)\n\t\t\t\t) {\n\t\t\t\t\te.message += `\\nBody: ${JSON.stringify(e.res.body)}`;\n\t\t\t\t}\n\t\t\t\tthrow e;\n\t\t\t})\n\t\t\t.catch(function (response) {\n\t\t\t\treturn Promise.each(middlewares, (middleware) => {\n\t\t\t\t\treturn middleware.error(response);\n\t\t\t\t}).then(() => {\n\t\t\t\t\tif (options.error) {\n\t\t\t\t\t\toptions.error(response, \"error\", response.message);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Provide a more explanatory error message on timeout\n\t\t\t\t\tif (\n\t\t\t\t\t\tresponse &&\n\t\t\t\t\t\tresponse.originalError &&\n\t\t\t\t\t\tresponse.originalError.code === \"ECONNABORTED\"\n\t\t\t\t\t) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Failed ${type} request on url: ${url}. ${response.message}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t})\n\t);\n};\n"],"file":"sync.js"}
1
+ {"version":3,"file":"sync.js","names":["_bluebird","_interopRequireDefault","require","_superagentBluebirdPromise","_lodash","_log","_middleware","_superagent","_url","defaults","_","assign","urlError","Error","methodMap","exports","create","update","patch","delete","read","defaultFetchURL","_ref","model","log","warn","url","buildURL","_ref2","method","urlParse","url2","parse","replace","search","sync","_this","syncArguments","arguments","syncActions","middlewares","forEach","middleware","push","apply","Promise","all","then","ajaxSync","options","type","emulateHTTP","emulateJSON","params","result","data","batch","json","attrs","toJSON","requestSettings","request","SuperAgentRequest","toServer","isArray","FormData","pick","Object","keys","send","xhr","preflight","mc","getNextMiddleware","middlewareInterceptor","response","length","intercept","resolve","trigger","ajaxConfig","headers","key","header","toLowerCase","cached","deleted","cachedResponse","JSON","text","each","success","catch","error","message","timeout","e","set","emit","superagent","SuperagentPromiseError","res","body","status","concat","stringify","originalError","code"],"sources":["../src/sync.js"],"sourcesContent":["import Promise from \"bluebird\";\nimport SuperAgentRequest from \"superagent-bluebird-promise\";\nimport _ from \"lodash\";\nimport log from \"./log.js\";\nimport { middlewares } from \"./middleware.js\";\nimport superagent from \"superagent\";\nimport url2 from \"url\";\n\nconst defaults = _.defaults;\nconst assign = _.assign;\n\n// Throw an error when a URL is needed, and none is supplied.\nconst urlError = function () {\n\tthrow new Error(`A \"url\" property or function must be specified`);\n};\n\n// Map from CRUD to HTTP for our default `Backbone.sync` implementation.\nexport const methodMap = {\n\tcreate: \"POST\",\n\tupdate: \"PUT\",\n\tpatch: \"PATCH\",\n\tdelete: \"DELETE\",\n\tread: \"GET\",\n};\n\nexport const defaultFetchURL = function ({ model }) {\n\tlog.warn(\"Deprecation: defaultFetchURL is deprecated. Just use .url()\");\n\treturn model.url();\n};\n\nexport const buildURL = function ({ method, model }) {\n\tconst url = model.url();\n\tconst urlParse = url2.parse(url);\n\n\t// If not a GET request, strip the query params from the url\n\tif (method !== \"read\") {\n\t\treturn url.replace(urlParse.search, \"\");\n\t}\n\n\treturn url;\n};\n\nexport const sync = function (method) {\n\tconst syncArguments = arguments;\n\n\tif (method === \"read\") {\n\t\t// look for sync methods\n\t\tconst syncActions = [];\n\t\tmiddlewares.forEach((middleware) => {\n\t\t\tif (middleware.sync) {\n\t\t\t\tsyncActions.push(middleware.sync.apply(this, syncArguments));\n\t\t\t}\n\t\t});\n\n\t\treturn Promise.all(syncActions).then(() => {\n\t\t\treturn ajaxSync.apply(this, syncArguments);\n\t\t});\n\t}\n\treturn ajaxSync.apply(this, syncArguments);\n};\n\nexport const ajaxSync = function (method, model, options) {\n\tconst type = methodMap[method];\n\n\t// Default options, unless specified.\n\tdefaults(options || (options = {}), {\n\t\temulateHTTP: false,\n\t\temulateJSON: false,\n\t});\n\n\t// Default request options.\n\tconst params = { type: type };\n\n\t// Ensure that we have a URL.\n\tif (!options.url) {\n\t\toptions.url = _.result(model, \"url\") || urlError();\n\t}\n\n\t// Ensure that we have the appropriate request data.\n\tif (\n\t\toptions.data === null &&\n\t\tmodel &&\n\t\t(method === \"create\" ||\n\t\t\tmethod === \"update\" ||\n\t\t\tmethod === \"patch\" ||\n\t\t\t(method === \"delete\" && options.batch))\n\t) {\n\t\tparams.json = options.attrs || model.toJSON(options);\n\t}\n\n\tconst url = buildURL({ method, model, options });\n\n\tconst requestSettings = assign(params, options);\n\trequestSettings.method = type;\n\n\tconst request = SuperAgentRequest(type, url);\n\n\tif (\n\t\ttype === \"PATCH\" ||\n\t\ttype === \"POST\" ||\n\t\ttype === \"PUT\" ||\n\t\t(type === \"DELETE\" && options.batch)\n\t) {\n\t\tlet data = model.toServer();\n\n\t\t// Note we can use formdata to override the way a patch works - if we\n\t\t// are doing this it's for a particular patch with an image or file,\n\t\t// probably.\n\t\tif (type === \"PATCH\" && !_.isArray(data) && !(data instanceof FormData)) {\n\t\t\t// Make sure we're only updating data actually passed to the save\n\t\t\t// function, rather than automatically generated stuff\n\t\t\tdata = _.pick(options.attrs, Object.keys(data));\n\t\t}\n\t\trequest.send(data);\n\t}\n\n\toptions.xhr = request;\n\n\tmiddlewares.forEach((middleware) => {\n\t\tif (middleware.preflight) {\n\t\t\tmiddleware.preflight(request);\n\t\t}\n\t});\n\n\tlet mc = 0;\n\n\tfunction getNextMiddleware(request) {\n\t\treturn function middlewareInterceptor(response) {\n\t\t\tif (mc < middlewares.length) {\n\t\t\t\treturn middlewares[mc++]\n\t\t\t\t\t.intercept(request, response, model)\n\t\t\t\t\t.then(getNextMiddleware(request));\n\t\t\t}\n\t\t\treturn Promise.resolve(response);\n\t\t};\n\t}\n\n\tmodel.trigger(\"request\", model, request, options, requestSettings);\n\trequest.requestSettings = requestSettings;\n\n\tconst ajaxConfig = _.result(model, \"ajaxConfig\") || {};\n\n\t// Combine generated headers with user's headers.\n\tif (ajaxConfig.headers) {\n\t\tfor (const key in ajaxConfig.headers) {\n\t\t\trequest.header[key.toLowerCase()] = ajaxConfig.headers[key];\n\t\t}\n\t}\n\n\tif (options.headers) {\n\t\tfor (const key in options.headers) {\n\t\t\trequest.header[key.toLowerCase()] = options.headers[key];\n\t\t}\n\t}\n\n\t// TODO: Remove me when this can be moved... for now this removal is quite a complex\n\t// process.\n\tif (options.cached && !options.deleted) {\n\t\treturn Promise.resolve(options.cachedResponse)\n\t\t\t.then(getNextMiddleware(request))\n\t\t\t.then(function (response) {\n\t\t\t\tif (!response.data) {\n\t\t\t\t\tresponse.data = JSON.parse(response.text);\n\t\t\t\t}\n\n\t\t\t\treturn Promise.each(middlewares, (middleware) => {\n\t\t\t\t\treturn middleware.success(request, response, model, true);\n\t\t\t\t}).then(() => {\n\t\t\t\t\tif (options.success) {\n\t\t\t\t\t\toptions.success(response.data, \"success\", response);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn response.data;\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch(function (response) {\n\t\t\t\treturn Promise.each(middlewares, (middleware) => {\n\t\t\t\t\treturn middleware.error(response, model);\n\t\t\t\t}).then(() => {\n\t\t\t\t\tif (options.error) {\n\t\t\t\t\t\toptions.error(response, \"error\", response.message);\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\treturn (\n\t\trequest\n\t\t\t// Force a timeout on every request. Intermittent connections\n\t\t\t// can have the request continue trying for minutes otherwise.\n\t\t\t.timeout(60 * 1000)\n\t\t\t.then(getNextMiddleware(request))\n\t\t\t.then(function (response) {\n\t\t\t\tlet data;\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(response.text);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tdata = response;\n\t\t\t\t}\n\n\t\t\t\tif (type !== \"DELETE\") {\n\t\t\t\t\tmodel.set(data);\n\t\t\t\t}\n\n\t\t\t\treturn Promise.each(middlewares, (middleware) => {\n\t\t\t\t\treturn middleware.success(request, response, model, false);\n\t\t\t\t}).then(() => {\n\t\t\t\t\tif (options.success) {\n\t\t\t\t\t\toptions.success(data, \"success\", response);\n\t\t\t\t\t}\n\t\t\t\t\trequest.emit(\"success\", response);\n\t\t\t\t\treturn data;\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch(superagent.SuperagentPromiseError, (e) => {\n\t\t\t\tif (\n\t\t\t\t\te.res &&\n\t\t\t\t\te.res.body &&\n\t\t\t\t\t((e.status >= 400 && e.status < 500) || e.status === 503)\n\t\t\t\t) {\n\t\t\t\t\te.message += `\\nBody: ${JSON.stringify(e.res.body)}`;\n\t\t\t\t}\n\t\t\t\tthrow e;\n\t\t\t})\n\t\t\t.catch(function (response) {\n\t\t\t\treturn Promise.each(middlewares, (middleware) => {\n\t\t\t\t\treturn middleware.error(response);\n\t\t\t\t}).then(() => {\n\t\t\t\t\tif (options.error) {\n\t\t\t\t\t\toptions.error(response, \"error\", response.message);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Provide a more explanatory error message on timeout\n\t\t\t\t\tif (\n\t\t\t\t\t\tresponse &&\n\t\t\t\t\t\tresponse.originalError &&\n\t\t\t\t\t\tresponse.originalError.code === \"ECONNABORTED\"\n\t\t\t\t\t) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Failed ${type} request on url: ${url}. ${response.message}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t})\n\t);\n};\n"],"mappings":"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","ignoreList":[]}
package/cjs/utils.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -15,53 +14,39 @@ exports.removeMultiByteChars = removeMultiByteChars;
15
14
  exports.replaceHostname = replaceHostname;
16
15
  exports.sanitizeBase64 = sanitizeBase64;
17
16
  exports.setSequentialSequences = setSequentialSequences;
18
-
19
17
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
20
-
21
18
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
22
-
23
19
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
24
-
25
20
  var _lodash = _interopRequireDefault(require("lodash"));
26
-
27
21
  var _url = _interopRequireDefault(require("url"));
28
-
29
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
30
-
31
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
32
-
33
- var DATE_FORMAT = "YYYY-MM-DD HH:mm:ss.SSSSSS[Z]";
34
- exports.DATE_FORMAT = DATE_FORMAT;
35
- var DATE_FORMAT_T = "YYYY-MM-DDTHH:mm:ss.SSSSSS[Z]";
36
- exports.DATE_FORMAT_T = DATE_FORMAT_T;
37
-
22
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /* eslint-disable no-control-regex */
24
+ var DATE_FORMAT = exports.DATE_FORMAT = "YYYY-MM-DD HH:mm:ss.SSSSSS[Z]";
25
+ var DATE_FORMAT_T = exports.DATE_FORMAT_T = "YYYY-MM-DDTHH:mm:ss.SSSSSS[Z]";
38
26
  function getShortURL(url) {
39
27
  return _url.default.parse(url).path;
40
28
  }
29
+
41
30
  /**
42
31
  * Sometimes a string(especially from another platform) has characters encoded using another method.
43
32
  * In these circumstances those characters, when encoded with utf-8, look like errors.
44
33
  * see http://i18nqa.com/debug/utf8-debug.html for examples
45
34
  */
46
-
47
-
48
35
  function removeMultiByteChars(_txt) {
49
36
  // replace possible whitespace characters (non-breaking space, thin space etc.) with a normal space
50
- var txt = _txt.replace(/(\xA0| |\x07|\xE2\x80\x89)/gm, " "); // remove every other cursed character entirely.
51
-
37
+ var txt = _txt.replace(/(\xA0| |\x07|\xE2\x80\x89)/gm, " ");
52
38
 
39
+ // remove every other cursed character entirely.
53
40
  return txt.replace(/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}|[\x80-\xBF][\xC0-\xFF]/gm, "");
54
41
  }
55
-
56
42
  var HOSTNAME_RE = /^(?:https?:\/\/)?([\w-\._]*)/;
57
-
58
43
  function getHostname(data) {
59
44
  if (typeof data !== "string") {
60
45
  throw new Error("Arg must contain a hostname, ie: \"test.livepreso.com\". Found \"".concat(data, "\""));
61
46
  }
62
-
63
47
  return data.match(HOSTNAME_RE)[1];
64
48
  }
49
+
65
50
  /**
66
51
  * Replaces the hostname in some data (regardless of it being a string, array or object),
67
52
  * it will recursively update it all.
@@ -72,17 +57,13 @@ function getHostname(data) {
72
57
  * > "https://real.com/api/cool/1/"
73
58
  *
74
59
  */
75
-
76
-
77
60
  function replaceHostname(data, before, after) {
78
61
  // Don't do anything if they're the same!
79
62
  if (before === after) {
80
63
  return data;
81
64
  }
82
-
83
65
  var hostnameBefore = getHostname(before, "Before");
84
66
  var hostnameAfter = getHostname(after, "After");
85
-
86
67
  if (typeof data === "string" && data.indexOf("http") === 0) {
87
68
  return data.replace(hostnameBefore, hostnameAfter);
88
69
  } else if (Array.isArray(data)) {
@@ -95,38 +76,33 @@ function replaceHostname(data, before, after) {
95
76
  return newObj;
96
77
  }, {});
97
78
  }
98
-
99
79
  return data;
100
- } // Takes the deckversion model and retrieves the highest id between all of
101
- // the sections, slides and subslides
102
-
80
+ }
103
81
 
82
+ // Takes the deckversion model and retrieves the highest id between all of
83
+ // the sections, slides and subslides
104
84
  function getMaxID(deckVersionModel) {
105
85
  var ids = deckVersionModel.section_set.map(function (section) {
106
86
  var slides = [];
107
-
108
87
  if (section.slide_set) {
109
88
  slides = section.slide_set.map(function (slide) {
110
89
  var subslides = [];
111
-
112
90
  if (slide.subslide_set) {
113
91
  subslides = slide.subslide_set.map(function (subslide) {
114
92
  return subslide.id;
115
93
  });
116
94
  }
117
-
118
95
  return [slide.id].concat((0, _toConsumableArray2.default)(subslides));
119
96
  });
120
97
  }
121
-
122
98
  return [section.id].concat((0, _toConsumableArray2.default)(_lodash.default.flatten(slides)));
123
99
  });
124
100
  return _lodash.default.max(_lodash.default.flatten(ids));
125
- } // The sections, slides and subslides are currently ordered by sequence
101
+ }
102
+
103
+ // The sections, slides and subslides are currently ordered by sequence
126
104
  // but the sequence is not necessarily 0-based and sequential (e.g. in the
127
105
  // case of impostor decks). We fix that here.
128
-
129
-
130
106
  function setSequentialSequences(deck) {
131
107
  deck.sections.forEach(function (section, index) {
132
108
  section.sequence = index;
@@ -140,37 +116,35 @@ function setSequentialSequences(deck) {
140
116
  });
141
117
  });
142
118
  });
143
- } // A simple function to check the tags of a model - if it has the "section-header"
144
- // tag then it's an impostor slide
145
-
119
+ }
146
120
 
121
+ // A simple function to check the tags of a model - if it has the "section-header"
122
+ // tag then it's an impostor slide
147
123
  function isImpostor(model) {
148
124
  var tags = model.tags || [];
149
125
  return tags.indexOf("section-header") !== -1;
150
- } // An impostor deck will have impostor slides - checking for these is the
126
+ }
127
+
128
+ // An impostor deck will have impostor slides - checking for these is the
151
129
  // most reliable method of determining whether a deck is an impostor deck,
152
130
  // and is also the same method that the server uses.
153
-
154
-
155
131
  function isImpostorDeck(deckVersionModel) {
156
132
  var section = deckVersionModel.section_set.first();
157
133
  return Boolean(section && section.slide_set.find(function (slide) {
158
134
  return isImpostor(slide);
159
135
  }));
160
136
  }
137
+
161
138
  /**
162
139
  * Strips base64 strings recursively.
163
140
  *
164
141
  * Optionally accepts a condition function, which you can use you add any extra
165
142
  * checks to test whether you want to clear the string.
166
143
  */
167
-
168
-
169
144
  function sanitizeBase64(obj) {
170
145
  var conditionFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {
171
146
  return true;
172
147
  };
173
-
174
148
  if (Array.isArray(obj)) {
175
149
  return obj.map(function (v) {
176
150
  return sanitizeBase64(v, conditionFn);
@@ -181,12 +155,10 @@ function sanitizeBase64(obj) {
181
155
  }, {});
182
156
  } else if (typeof obj === "string") {
183
157
  var re = /^data:image\/[a-zA-Z]+;base64,[A-Za-z0-9+/=]+$/;
184
-
185
158
  if (re.test(obj) && conditionFn(obj)) {
186
159
  return "";
187
160
  }
188
161
  }
189
-
190
162
  return obj;
191
163
  }
192
164
  //# sourceMappingURL=utils.js.map