@livepreso/api 6.45.0 → 6.47.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 (364) 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/package-deps_build.json +156 -141
  9. package/.rush/temp/shrinkwrap-deps.json +281 -214
  10. package/CHANGELOG.json +29 -0
  11. package/CHANGELOG.md +15 -1
  12. package/README.md +4 -4
  13. package/api.build.log +6 -3
  14. package/api.test.cache.log +1 -0
  15. package/api.test.log +19 -0
  16. package/cjs/api.js +18 -2
  17. package/cjs/api.js.map +1 -1
  18. package/cjs/auth.js +3 -3
  19. package/cjs/auth.js.map +1 -1
  20. package/cjs/collections/activity.js.map +1 -1
  21. package/cjs/collections/adjunct-sections.js.map +1 -1
  22. package/cjs/collections/adjunct-slides.js.map +1 -1
  23. package/cjs/collections/adjunct-sub-slides.js.map +1 -1
  24. package/cjs/collections/appointment-adjunct-tags.js.map +1 -1
  25. package/cjs/collections/appointment-deckversion-tags.js.map +1 -1
  26. package/cjs/collections/appointment-editors.js.map +1 -1
  27. package/cjs/collections/appointment-section-tags.js.map +1 -1
  28. package/cjs/collections/appointment-slide-tags.js.map +1 -1
  29. package/cjs/collections/appointment-tags.js +9 -7
  30. package/cjs/collections/appointment-tags.js.map +1 -1
  31. package/cjs/collections/appointment-templates.js +36 -0
  32. package/cjs/collections/appointment-templates.js.map +1 -0
  33. package/cjs/collections/appointments.js.map +1 -1
  34. package/cjs/collections/assets.js.map +1 -1
  35. package/cjs/collections/auto-adjuncts.js.map +1 -1
  36. package/cjs/collections/base.js +4 -0
  37. package/cjs/collections/base.js.map +1 -1
  38. package/cjs/collections/base.spec.js.map +1 -1
  39. package/cjs/collections/cms-vals.js +5 -0
  40. package/cjs/collections/cms-vals.js.map +1 -1
  41. package/cjs/collections/contact-phones.js +28 -0
  42. package/cjs/collections/contact-phones.js.map +1 -0
  43. package/cjs/collections/contacts.js.map +1 -1
  44. package/cjs/collections/created-assets.js.map +1 -1
  45. package/cjs/collections/customers.js.map +1 -1
  46. package/cjs/collections/deck-notes.js.map +1 -1
  47. package/cjs/collections/deck-version-screenshots.js.map +1 -1
  48. package/cjs/collections/deck-versions.js.map +1 -1
  49. package/cjs/collections/decks.js.map +1 -1
  50. package/cjs/collections/deleted-assets.js.map +1 -1
  51. package/cjs/collections/dispatches.js.map +1 -1
  52. package/cjs/collections/event-objects.js.map +1 -1
  53. package/cjs/collections/events.js.map +1 -1
  54. package/cjs/collections/groups.js.map +1 -1
  55. package/cjs/collections/images.js.map +1 -1
  56. package/cjs/collections/locations.js.map +1 -1
  57. package/cjs/collections/opportunities.js.map +1 -1
  58. package/cjs/collections/pack-diffs.js.map +1 -1
  59. package/cjs/collections/packs.js.map +1 -1
  60. package/cjs/collections/presets.js.map +1 -1
  61. package/cjs/collections/section-selections.js.map +1 -1
  62. package/cjs/collections/sections.js.map +1 -1
  63. package/cjs/collections/signers.js +28 -0
  64. package/cjs/collections/signers.js.map +1 -0
  65. package/cjs/collections/signing-requests.js +28 -0
  66. package/cjs/collections/signing-requests.js.map +1 -0
  67. package/cjs/collections/slide-selections.js.map +1 -1
  68. package/cjs/collections/slides.js.map +1 -1
  69. package/cjs/collections/snapshots.js.map +1 -1
  70. package/cjs/collections/sub-slides.js.map +1 -1
  71. package/cjs/collections/tags.js.map +1 -1
  72. package/cjs/collections/teams.js.map +1 -1
  73. package/cjs/collections/templates.js.map +1 -1
  74. package/cjs/collections/uploads.js.map +1 -1
  75. package/cjs/collections/users.js.map +1 -1
  76. package/cjs/collections.js +52 -13
  77. package/cjs/collections.js.map +1 -1
  78. package/cjs/fixtures.js +232 -0
  79. package/cjs/fixtures.js.map +1 -0
  80. package/cjs/index.js +28 -4
  81. package/cjs/index.js.map +1 -1
  82. package/cjs/models/activity-item.js +10 -2
  83. package/cjs/models/activity-item.js.map +1 -1
  84. package/cjs/models/adjunct-section.js +7 -2
  85. package/cjs/models/adjunct-section.js.map +1 -1
  86. package/cjs/models/adjunct-slide.js +7 -2
  87. package/cjs/models/adjunct-slide.js.map +1 -1
  88. package/cjs/models/adjunct-sub-slide.js.map +1 -1
  89. package/cjs/models/adjunct.js +40 -0
  90. package/cjs/models/adjunct.js.map +1 -1
  91. package/cjs/models/appointment-adjunct-tags.js.map +1 -1
  92. package/cjs/models/appointment-deckversion-tags.js.map +1 -1
  93. package/cjs/models/appointment-editor.js.map +1 -1
  94. package/cjs/models/appointment-section-tags.js.map +1 -1
  95. package/cjs/models/appointment-slide-tags.js.map +1 -1
  96. package/cjs/models/appointment-stats.js.map +1 -1
  97. package/cjs/models/appointment-tags.js.map +1 -1
  98. package/cjs/models/appointment-template.js +28 -0
  99. package/cjs/models/appointment-template.js.map +1 -0
  100. package/cjs/models/appointment-viewing.js.map +1 -1
  101. package/cjs/models/appointment.js +108 -15
  102. package/cjs/models/appointment.js.map +1 -1
  103. package/cjs/models/asset.js +12 -0
  104. package/cjs/models/asset.js.map +1 -1
  105. package/cjs/models/auto-adjunct-key-check.js.map +1 -1
  106. package/cjs/models/auto-adjunct.js +2 -1
  107. package/cjs/models/auto-adjunct.js.map +1 -1
  108. package/cjs/models/base.js +25 -5
  109. package/cjs/models/base.js.map +1 -1
  110. package/cjs/models/base.spec.js.map +1 -1
  111. package/cjs/models/choicelist.js.map +1 -1
  112. package/cjs/models/cms-val.js +35 -1
  113. package/cjs/models/cms-val.js.map +1 -1
  114. package/cjs/models/cms-val.spec.js +32 -0
  115. package/cjs/models/cms-val.spec.js.map +1 -0
  116. package/cjs/models/contact-phone.js +66 -0
  117. package/cjs/models/contact-phone.js.map +1 -0
  118. package/cjs/models/contact.js.map +1 -1
  119. package/cjs/models/customer.js +3 -1
  120. package/cjs/models/customer.js.map +1 -1
  121. package/cjs/models/deck-note.js.map +1 -1
  122. package/cjs/models/deck-tags.js.map +1 -1
  123. package/cjs/models/deck-version-screenshot.js.map +1 -1
  124. package/cjs/models/deck-version.js +31 -8
  125. package/cjs/models/deck-version.js.map +1 -1
  126. package/cjs/models/deck.js.map +1 -1
  127. package/cjs/models/dispatch-preview.js.map +1 -1
  128. package/cjs/models/dispatch.js.map +1 -1
  129. package/cjs/models/event-object.js.map +1 -1
  130. package/cjs/models/event.js.map +1 -1
  131. package/cjs/models/feed-data.js.map +1 -1
  132. package/cjs/models/file.js.map +1 -1
  133. package/cjs/models/group.js.map +1 -1
  134. package/cjs/models/handover.js.map +1 -1
  135. package/cjs/models/hosted-preso.js.map +1 -1
  136. package/cjs/models/image.js.map +1 -1
  137. package/cjs/models/location.js.map +1 -1
  138. package/cjs/models/manifest-json.js +70 -2
  139. package/cjs/models/manifest-json.js.map +1 -1
  140. package/cjs/models/onshare.js.map +1 -1
  141. package/cjs/models/opportunity.js.map +1 -1
  142. package/cjs/models/pack-diff.js.map +1 -1
  143. package/cjs/models/pack.js.map +1 -1
  144. package/cjs/models/preset.js +4 -1
  145. package/cjs/models/preset.js.map +1 -1
  146. package/cjs/models/refresh-request.js +24 -0
  147. package/cjs/models/refresh-request.js.map +1 -1
  148. package/cjs/models/room.js.map +1 -1
  149. package/cjs/models/salesforce-lookup.js.map +1 -1
  150. package/cjs/models/section-selection.js.map +1 -1
  151. package/cjs/models/section.js.map +1 -1
  152. package/cjs/models/signer.js +47 -0
  153. package/cjs/models/signer.js.map +1 -0
  154. package/cjs/models/signing-request.js +66 -0
  155. package/cjs/models/signing-request.js.map +1 -0
  156. package/cjs/models/slide-selection.js.map +1 -1
  157. package/cjs/models/slide.js.map +1 -1
  158. package/cjs/models/snapshot.js +41 -2
  159. package/cjs/models/snapshot.js.map +1 -1
  160. package/cjs/models/snapshot.spec.js +51 -0
  161. package/cjs/models/snapshot.spec.js.map +1 -0
  162. package/cjs/models/sub-slide.js.map +1 -1
  163. package/cjs/models/support-ticket.js.map +1 -1
  164. package/cjs/models/tag.js.map +1 -1
  165. package/cjs/models/team.js +15 -2
  166. package/cjs/models/team.js.map +1 -1
  167. package/cjs/models/template.js +105 -3
  168. package/cjs/models/template.js.map +1 -1
  169. package/cjs/models/tenancy.js +3 -0
  170. package/cjs/models/tenancy.js.map +1 -1
  171. package/cjs/models/timing-log.js.map +1 -1
  172. package/cjs/models/timing-log.spec.js.map +1 -1
  173. package/cjs/models/token.js.map +1 -1
  174. package/cjs/models/transcribe-socket.js.map +1 -1
  175. package/cjs/models/user.js +7 -2
  176. package/cjs/models/user.js.map +1 -1
  177. package/cjs/models.js +52 -13
  178. package/cjs/models.js.map +1 -1
  179. package/cjs/presentation/appointment-presentation.js.map +1 -1
  180. package/cjs/presentation/base-presentation-collection.js.map +1 -1
  181. package/cjs/presentation/base-presentation-model.js +23 -14
  182. package/cjs/presentation/base-presentation-model.js.map +1 -1
  183. package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
  184. package/cjs/presentation/presentation-deck.js +5 -1
  185. package/cjs/presentation/presentation-deck.js.map +1 -1
  186. package/cjs/presentation/presentation-deck.spec.js.map +1 -1
  187. package/cjs/presentation/presentation-decks.js.map +1 -1
  188. package/cjs/presentation/presentation-section.js +33 -8
  189. package/cjs/presentation/presentation-section.js.map +1 -1
  190. package/cjs/presentation/presentation-section.spec.js +13 -20
  191. package/cjs/presentation/presentation-section.spec.js.map +1 -1
  192. package/cjs/presentation/presentation-sections.js.map +1 -1
  193. package/cjs/presentation/presentation-slide.js +43 -9
  194. package/cjs/presentation/presentation-slide.js.map +1 -1
  195. package/cjs/presentation/presentation-slide.spec.js +11 -18
  196. package/cjs/presentation/presentation-slide.spec.js.map +1 -1
  197. package/cjs/presentation/presentation-slides.js.map +1 -1
  198. package/cjs/presentation/presentation-subslide.js.map +1 -1
  199. package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
  200. package/cjs/presentation/presentation-subslides.js.map +1 -1
  201. package/cjs/presentation/presentation.js +8 -3
  202. package/cjs/presentation/presentation.js.map +1 -1
  203. package/cjs/selections.js +106 -0
  204. package/cjs/selections.js.map +1 -0
  205. package/cjs/sync.js.map +1 -1
  206. package/cjs/utils.js +43 -6
  207. package/cjs/utils.js.map +1 -1
  208. package/cjs/utils.spec.js +1 -1
  209. package/cjs/utils.spec.js.map +1 -1
  210. package/jest.config.js +4 -3
  211. package/package.json +12 -9
  212. package/src/api.js +17 -2
  213. package/src/auth.js +3 -3
  214. package/src/collections/activity.js +4 -4
  215. package/src/collections/adjunct-sections.js +1 -1
  216. package/src/collections/adjunct-slides.js +1 -1
  217. package/src/collections/adjunct-sub-slides.js +1 -1
  218. package/src/collections/appointment-adjunct-tags.js +1 -1
  219. package/src/collections/appointment-deckversion-tags.js +2 -2
  220. package/src/collections/appointment-editors.js +1 -1
  221. package/src/collections/appointment-section-tags.js +1 -1
  222. package/src/collections/appointment-slide-tags.js +1 -1
  223. package/src/collections/appointment-tags.js +20 -18
  224. package/src/collections/appointment-templates.js +26 -0
  225. package/src/collections/appointments.js +9 -9
  226. package/src/collections/assets.js +1 -1
  227. package/src/collections/auto-adjuncts.js +1 -1
  228. package/src/collections/base.js +10 -6
  229. package/src/collections/base.spec.js +2 -2
  230. package/src/collections/cms-vals.js +5 -1
  231. package/src/collections/contact-phones.js +18 -0
  232. package/src/collections/contacts.js +1 -1
  233. package/src/collections/created-assets.js +1 -1
  234. package/src/collections/customers.js +1 -1
  235. package/src/collections/deck-notes.js +1 -1
  236. package/src/collections/deck-version-screenshots.js +1 -1
  237. package/src/collections/deck-versions.js +1 -1
  238. package/src/collections/decks.js +1 -1
  239. package/src/collections/deleted-assets.js +1 -1
  240. package/src/collections/dispatches.js +2 -2
  241. package/src/collections/event-objects.js +1 -1
  242. package/src/collections/events.js +1 -1
  243. package/src/collections/groups.js +1 -1
  244. package/src/collections/images.js +1 -1
  245. package/src/collections/locations.js +1 -1
  246. package/src/collections/opportunities.js +1 -1
  247. package/src/collections/pack-diffs.js +1 -1
  248. package/src/collections/packs.js +1 -1
  249. package/src/collections/presets.js +1 -1
  250. package/src/collections/section-selections.js +1 -1
  251. package/src/collections/sections.js +1 -1
  252. package/src/collections/signers.js +18 -0
  253. package/src/collections/signing-requests.js +18 -0
  254. package/src/collections/slide-selections.js +1 -1
  255. package/src/collections/slides.js +1 -1
  256. package/src/collections/snapshots.js +1 -1
  257. package/src/collections/sub-slides.js +1 -1
  258. package/src/collections/tags.js +1 -1
  259. package/src/collections/teams.js +1 -1
  260. package/src/collections/templates.js +1 -1
  261. package/src/collections/uploads.js +1 -1
  262. package/src/collections/users.js +1 -1
  263. package/src/collections.js +4 -1
  264. package/src/fixtures.js +195 -0
  265. package/src/index.js +2 -3
  266. package/src/models/activity-item.js +9 -1
  267. package/src/models/adjunct-section.js +7 -2
  268. package/src/models/adjunct-slide.js +7 -2
  269. package/src/models/adjunct-sub-slide.js +1 -1
  270. package/src/models/adjunct.js +39 -1
  271. package/src/models/appointment-adjunct-tags.js +1 -1
  272. package/src/models/appointment-deckversion-tags.js +1 -1
  273. package/src/models/appointment-editor.js +1 -1
  274. package/src/models/appointment-section-tags.js +1 -1
  275. package/src/models/appointment-slide-tags.js +1 -1
  276. package/src/models/appointment-stats.js +1 -1
  277. package/src/models/appointment-tags.js +1 -1
  278. package/src/models/appointment-template.js +19 -0
  279. package/src/models/appointment-viewing.js +1 -1
  280. package/src/models/appointment.js +104 -38
  281. package/src/models/asset.js +15 -1
  282. package/src/models/auto-adjunct-key-check.js +1 -1
  283. package/src/models/auto-adjunct.js +2 -1
  284. package/src/models/base.js +36 -21
  285. package/src/models/base.spec.js +18 -18
  286. package/src/models/choicelist.js +1 -1
  287. package/src/models/cms-val.js +24 -1
  288. package/src/models/cms-val.spec.js +14 -0
  289. package/src/models/contact-phone.js +57 -0
  290. package/src/models/contact.js +1 -1
  291. package/src/models/customer.js +3 -3
  292. package/src/models/deck-note.js +1 -1
  293. package/src/models/deck-tags.js +1 -1
  294. package/src/models/deck-version-screenshot.js +1 -1
  295. package/src/models/deck-version.js +32 -6
  296. package/src/models/deck.js +1 -1
  297. package/src/models/dispatch-preview.js +1 -1
  298. package/src/models/dispatch.js +1 -1
  299. package/src/models/event-object.js +1 -1
  300. package/src/models/event.js +1 -1
  301. package/src/models/feed-data.js +2 -2
  302. package/src/models/file.js +1 -1
  303. package/src/models/group.js +1 -1
  304. package/src/models/handover.js +1 -1
  305. package/src/models/hosted-preso.js +1 -1
  306. package/src/models/image.js +1 -1
  307. package/src/models/location.js +1 -1
  308. package/src/models/manifest-json.js +65 -5
  309. package/src/models/onshare.js +1 -1
  310. package/src/models/opportunity.js +1 -1
  311. package/src/models/pack-diff.js +1 -1
  312. package/src/models/pack.js +1 -1
  313. package/src/models/preset.js +4 -1
  314. package/src/models/refresh-request.js +16 -1
  315. package/src/models/room.js +1 -1
  316. package/src/models/salesforce-lookup.js +1 -1
  317. package/src/models/section-selection.js +1 -1
  318. package/src/models/section.js +1 -1
  319. package/src/models/signer.js +37 -0
  320. package/src/models/signing-request.js +56 -0
  321. package/src/models/slide-selection.js +1 -1
  322. package/src/models/slide.js +1 -1
  323. package/src/models/snapshot.js +30 -2
  324. package/src/models/snapshot.spec.js +31 -0
  325. package/src/models/sub-slide.js +1 -1
  326. package/src/models/support-ticket.js +1 -1
  327. package/src/models/tag.js +1 -1
  328. package/src/models/team.js +14 -3
  329. package/src/models/template.js +72 -2
  330. package/src/models/tenancy.js +4 -1
  331. package/src/models/timing-log.js +2 -2
  332. package/src/models/timing-log.spec.js +1 -1
  333. package/src/models/token.js +1 -1
  334. package/src/models/transcribe-socket.js +1 -1
  335. package/src/models/user.js +13 -2
  336. package/src/models.js +4 -1
  337. package/src/presentation/appointment-presentation.js +4 -4
  338. package/src/presentation/base-presentation-collection.js +1 -1
  339. package/src/presentation/base-presentation-model.js +25 -16
  340. package/src/presentation/base-presentation-model.spec.js +5 -5
  341. package/src/presentation/presentation-deck.js +28 -23
  342. package/src/presentation/presentation-deck.spec.js +4 -4
  343. package/src/presentation/presentation-decks.js +1 -1
  344. package/src/presentation/presentation-section.js +59 -31
  345. package/src/presentation/presentation-section.spec.js +31 -32
  346. package/src/presentation/presentation-sections.js +1 -1
  347. package/src/presentation/presentation-slide.js +51 -25
  348. package/src/presentation/presentation-slide.spec.js +21 -27
  349. package/src/presentation/presentation-slides.js +1 -1
  350. package/src/presentation/presentation-subslide.js +5 -5
  351. package/src/presentation/presentation-subslide.spec.js +3 -3
  352. package/src/presentation/presentation-subslides.js +1 -1
  353. package/src/presentation/presentation.js +5 -3
  354. package/src/selections.js +71 -0
  355. package/src/sync.js +1 -1
  356. package/src/utils.js +31 -8
  357. package/src/utils.spec.js +8 -8
  358. package/.rush/temp/package-deps_test.json +0 -172
  359. package/cjs/collections/appointment-duplicates.js +0 -29
  360. package/cjs/collections/appointment-duplicates.js.map +0 -1
  361. package/cjs/models/appointment-duplicate.js +0 -94
  362. package/cjs/models/appointment-duplicate.js.map +0 -1
  363. package/src/collections/appointment-duplicates.js +0 -19
  364. package/src/models/appointment-duplicate.js +0 -73
@@ -0,0 +1,71 @@
1
+ import _ from "lodash";
2
+
3
+ export class SelectionsFailedError extends Error {}
4
+
5
+ /***
6
+ * Generates a selection changelist from a selections hook
7
+ * @param {SelectionHook} selectionsHook - This should match the interface used by
8
+ * selections. Ie it should have a .onSave() method on it.
9
+ * @param {String} deckKey - The key for the deck used
10
+ * @param {Object} options - Options that are passed straight into .onSave()
11
+ * @param {Object[]} options.sections - A list of serialized section models
12
+ * @param {Object} options.context - A context object
13
+ * @param {Object} options.feeds - A feeds object
14
+ * @param {Object} options.data - A data object
15
+ * @param {Object} options.fields - Basically just `context.fields` here.
16
+ */
17
+ export function getSelectionChanges(selectionsHook, deckKey, options) {
18
+ const opts = _.cloneDeep(options);
19
+ const { context } = opts;
20
+ let isContextUpdated = false;
21
+ let sections;
22
+
23
+ try {
24
+ sections = selectionsHook.onSave(opts);
25
+ } catch (e) {
26
+ throw new SelectionsFailedError(e);
27
+ }
28
+
29
+ const sortedSections = _.sortBy(sections, "sequence");
30
+
31
+ sortedSections.forEach((section) => {
32
+ section.slides = _.sortBy(section.slides, "sequence");
33
+ });
34
+
35
+ // If the user has applied a preset with a persistent context, we need to update
36
+ // the userChanges in the context. Specifically, if something registered as a user
37
+ // change has been negated by a change made by selections, we need to remove it
38
+ // from userChanges.
39
+ const userChanges =
40
+ context._persistent && context._persistent.userChanges
41
+ ? context._persistent.userChanges
42
+ : null;
43
+
44
+ if (userChanges) {
45
+ const updateChanges = (key, visible) => {
46
+ const change = userChanges[key];
47
+
48
+ if (change && change.visible !== visible) {
49
+ delete userChanges[key];
50
+
51
+ isContextUpdated = true;
52
+ }
53
+ };
54
+
55
+ sortedSections.forEach((section) => {
56
+ updateChanges(`${deckKey}/${section.key}`, section.visible);
57
+
58
+ section.slides.forEach((slide) => {
59
+ updateChanges(`${deckKey}/${section.key}/${slide.key}`, slide.visible);
60
+ });
61
+ });
62
+
63
+ context._persistent.userChanges = userChanges;
64
+ }
65
+
66
+ return {
67
+ context,
68
+ sections: sortedSections,
69
+ isContextUpdated,
70
+ };
71
+ }
package/src/sync.js CHANGED
@@ -238,7 +238,7 @@ export const ajaxSync = function (method, model, options) {
238
238
  response.originalError.code === "ECONNABORTED"
239
239
  ) {
240
240
  throw new Error(
241
- `Failed ${type} request on url: ${url}. ${response.message}`
241
+ `Failed ${type} request on url: ${url}. ${response.message}`,
242
242
  );
243
243
  }
244
244
 
package/src/utils.js CHANGED
@@ -14,26 +14,23 @@ export function getShortURL(url) {
14
14
  * In these circumstances those characters, when encoded with utf-8, look like errors.
15
15
  * see http://i18nqa.com/debug/utf8-debug.html for examples
16
16
  */
17
- export function removeMultiByteChars(txt) {
17
+ export function removeMultiByteChars(_txt) {
18
18
  // replace possible whitespace characters (non-breaking space, thin space etc.) with a normal space
19
- txt = txt.replace(/(\xA0|\x20|\x07| )/gmu, " ");
19
+ const txt = _txt.replace(/(\xA0|\x20|\x07| )/gmu, " ");
20
20
 
21
21
  // remove every other cursed character entirely.
22
22
  return txt.replace(
23
23
  /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}|[\x80-\xBF][\xC0-\xFF]/gmu,
24
- ""
24
+ "",
25
25
  );
26
26
  }
27
27
 
28
28
  const HOSTNAME_RE = /^(?:https?:\/\/)?([\w-\._]*)/;
29
29
 
30
- /**
31
- *
32
- */
33
30
  export function getHostname(data) {
34
31
  if (typeof data !== "string") {
35
32
  throw new Error(
36
- `Arg must contain a hostname, ie: "test.livepreso.com". Found "${data}"`
33
+ `Arg must contain a hostname, ie: "test.livepreso.com". Found "${data}"`,
37
34
  );
38
35
  }
39
36
 
@@ -130,6 +127,32 @@ export function isImpostorDeck(deckVersionModel) {
130
127
  const section = deckVersionModel.section_set.first();
131
128
 
132
129
  return Boolean(
133
- section && section.slide_set.find((slide) => isImpostor(slide))
130
+ section && section.slide_set.find((slide) => isImpostor(slide)),
134
131
  );
135
132
  }
133
+
134
+ /**
135
+ * Strips base64 strings recursively.
136
+ *
137
+ * Optionally accepts a condition function, which you can use you add any extra
138
+ * checks to test whether you want to clear the string.
139
+ */
140
+ export function sanitizeBase64(obj, conditionFn = () => true) {
141
+ if (Array.isArray(obj)) {
142
+ return obj.map((v) => sanitizeBase64(v, conditionFn));
143
+ } else if (
144
+ typeof obj === "object" &&
145
+ obj !== null &&
146
+ typeof obj !== "undefined"
147
+ ) {
148
+ return Object.keys(obj).reduce((acc, key) => {
149
+ return { ...acc, [key]: sanitizeBase64(obj[key], conditionFn) };
150
+ }, {});
151
+ } else if (typeof obj === "string") {
152
+ const re = /^data:image\/[a-zA-Z]+;base64,[A-Za-z0-9+/=]+$/;
153
+ if (re.test(obj) && conditionFn(obj)) {
154
+ return "";
155
+ }
156
+ }
157
+ return obj;
158
+ }
package/src/utils.spec.js CHANGED
@@ -6,35 +6,35 @@ import {
6
6
  } from "./utils.js";
7
7
 
8
8
  describe("getShortURL()", () => {
9
- test("shorten a full url to a short one", function () {
9
+ test("shorten a full url to a short one", () => {
10
10
  const url = "http://client.salespreso.com/api/users/1/";
11
11
  expect(getShortURL(url)).toEqual("/api/users/1/");
12
12
  });
13
13
 
14
- test("not break an already short url", function () {
14
+ test("not break an already short url", () => {
15
15
  const url = "/api/users/1/";
16
16
  expect(getShortURL(url)).toEqual("/api/users/1/");
17
17
  });
18
18
  });
19
19
 
20
20
  describe("removeMultiByteChars()", () => {
21
- test("correctly strip offending multibyte characters from string", function () {
21
+ test("correctly strip offending multibyte characters from string", () => {
22
22
  const testString = "SUZI LUCK’S CANTEEN & COCKTAIL BAR";
23
23
  expect(removeMultiByteChars(testString)).toEqual(
24
- "SUZI LUCKS CANTEEN & COCKTAIL BAR"
24
+ "SUZI LUCKS CANTEEN & COCKTAIL BAR",
25
25
  );
26
26
  });
27
27
 
28
- test("sanatize urls correctly", function () {
28
+ test("sanitize urls correctly", () => {
29
29
  const testString = "http://client.salespreso.com/api/users/1/’";
30
30
  const testString2 = "/api/users/1/’";
31
31
  const testString3 = "/api/users/1/?param=1&test=3&_r=4";
32
32
  expect(removeMultiByteChars(testString)).toEqual(
33
- "http://client.salespreso.com/api/users/1/"
33
+ "http://client.salespreso.com/api/users/1/",
34
34
  );
35
35
  expect(removeMultiByteChars(testString2)).toEqual("/api/users/1/");
36
36
  expect(removeMultiByteChars(testString3)).toEqual(
37
- "/api/users/1/?param=1&test=3&_r=4"
37
+ "/api/users/1/?param=1&test=3&_r=4",
38
38
  );
39
39
  });
40
40
  });
@@ -85,7 +85,7 @@ describe("replaceHostname()", () => {
85
85
  const actual = replaceHostname(
86
86
  data,
87
87
  "https://old.url.com/",
88
- "https://brand.new.com/"
88
+ "https://brand.new.com/",
89
89
  );
90
90
  expect(actual).toEqual(expected);
91
91
  });
@@ -1,172 +0,0 @@
1
- {
2
- "files": {
3
- "modules/api/.rush/temp/shrinkwrap-deps.json": "0e2b397767a81a32d8f824451a7fedbff985d2f2",
4
- "modules/api/.eslintrc.js": "a9325f85f01fb051f78549038c43cfb83ee96b90",
5
- "modules/api/.gitignore": "0f5447f79c2a1562c9ef7f89bfcbc0bfd464979f",
6
- "modules/api/.gitlab-ci.yml": "c8ea3c1a76db6d89e41afa8c42e96ceb5578a961",
7
- "modules/api/.husky/.gitignore": "31354ec1389994b5f6708c7d915fdcc6bb76ba6e",
8
- "modules/api/.husky/pre-commit": "36af219892fda8ea669cd4b6725cd7b892231967",
9
- "modules/api/CHANGELOG.json": "e690caa8b1d9e15c8729c87164fad24c55a18683",
10
- "modules/api/CHANGELOG.md": "ec7f28b18d1c40bb41782f3be3b8a2923f2af9ae",
11
- "modules/api/README.md": "4caa47d0b1b9891d98d5db95a2d0be992ba3fe20",
12
- "modules/api/babel.config.js": "d79af6ab5b63b449aa19d1229df1def3bd194dfd",
13
- "modules/api/bin/test.sh": "28b784dae8bcf12a584e93aca3e7f6c932a1d3a8",
14
- "modules/api/config/rush-project.json": "8f9f2e767a319520cb0d798f42faaab9f15233e5",
15
- "modules/api/index.js": "d7900e11dfff9acca7d3bfc19a8cfa4408833e19",
16
- "modules/api/jest.config.js": "fbd464c04e64e4b1bb731af7ff4e9364c8fab89b",
17
- "modules/api/mocha.opts": "33e6ba2ea1db0e7397b9c6ac9339f5f8657c3e99",
18
- "modules/api/package.json": "eb2596e67bd97d6599aed311d521754bc6d20456",
19
- "modules/api/setup-tests.js": "16e32752834050e369b9ced87b178e520806a87f",
20
- "modules/api/src/api.js": "dca5f22783c293a4fc187d46c5b7ee2c1029a15c",
21
- "modules/api/src/api.spec.js": "a9d30ed36f594f616601fe1b242c68440dff40df",
22
- "modules/api/src/auth.js": "312a042ebd29702ae23b0cf54ee7fcd49303203c",
23
- "modules/api/src/auth.spec.js": "d3947fdccdc1ccf0eaded0f11a57ef89494145c6",
24
- "modules/api/src/caching.js": "6582f01cc373c502f6fec49116b0efcdb4bb647d",
25
- "modules/api/src/collections.js": "907dd2971a63a4b763ebba61cdf84f6db90dbc3e",
26
- "modules/api/src/collections/activity.js": "397b6ead258127a179a95c9f278844d663f8c978",
27
- "modules/api/src/collections/adjunct-sections.js": "7d8315ea630a5ca07ff7abb4bb8e136a96e2434c",
28
- "modules/api/src/collections/adjunct-slides.js": "20e97b1b6858c06d2bd2e3bf612d1641de2c250b",
29
- "modules/api/src/collections/adjunct-sub-slides.js": "97205bf521e35a4fe2db8cd0914ce51626531764",
30
- "modules/api/src/collections/appointment-adjunct-tags.js": "e4d40364724ebc84981e693bce8a8e37d7da81bd",
31
- "modules/api/src/collections/appointment-deckversion-tags.js": "cfab71a071754ee4c02129c34fa5c6609dd01869",
32
- "modules/api/src/collections/appointment-duplicates.js": "492afc5d201ed5c3a5c3f45cb277b95b5d90edd0",
33
- "modules/api/src/collections/appointment-editors.js": "62a98737fc8dcd767d7750313e273a1ed36b66e9",
34
- "modules/api/src/collections/appointment-section-tags.js": "b9a241eaf72dc574762831c0e6436ad6b99932b6",
35
- "modules/api/src/collections/appointment-slide-tags.js": "a74850344c0ebee921d9a8f42e3505d7fd3cb3e3",
36
- "modules/api/src/collections/appointment-tags.js": "624f5ca850832cc26d3219945f7a87a0ef8d25aa",
37
- "modules/api/src/collections/appointments.js": "b0eb7b94ae3a27376c331468ceea661b1ef66b28",
38
- "modules/api/src/collections/assets.js": "13559d66d52988ed8366765ebaeaaa3007c4e006",
39
- "modules/api/src/collections/auto-adjuncts.js": "0c5d6c5c5d0d6d0243c35c27ab54ea0d25ff4e55",
40
- "modules/api/src/collections/base.js": "70f3c14367a9211692dfb140d583dc592785caf3",
41
- "modules/api/src/collections/base.spec.js": "efc6d94de7f56b1c83123ad63e634a4c450ee9d2",
42
- "modules/api/src/collections/cms-vals.js": "acec1fc3fcd22dfd4ef5e3d415d942c1dc5ac442",
43
- "modules/api/src/collections/contacts.js": "08ecd9c8678cc484292e160aaab8bf555bd1daa1",
44
- "modules/api/src/collections/created-assets.js": "57e474758149462501a16c4ecb0b6cd26a73d442",
45
- "modules/api/src/collections/customers.js": "61d110cae21198c9066a1ec3e2f4b6400240ec64",
46
- "modules/api/src/collections/deck-notes.js": "374106c2e0dd915264e40a27460173dd70ab5121",
47
- "modules/api/src/collections/deck-version-screenshots.js": "7129f75261f8d329def7d5be2131f82633a700ae",
48
- "modules/api/src/collections/deck-versions.js": "dcadf2d5190bf12e1bafb5ebfb93a7575641b4bd",
49
- "modules/api/src/collections/decks.js": "a63abd33c27b9dc3c520a78cd73e2010ac860da9",
50
- "modules/api/src/collections/deleted-assets.js": "1fd10cb90ca5db56b1ddd42adaa319c24bc677c7",
51
- "modules/api/src/collections/dispatches.js": "80cf8efaf16bf08ae5f72e9406d7d8aa879eff70",
52
- "modules/api/src/collections/event-objects.js": "7d9829592bf4c5e8318d47337f5a40a36545dbb8",
53
- "modules/api/src/collections/events.js": "bbd69bde8c2707544a49e333fbb1f8de6f3e0aa3",
54
- "modules/api/src/collections/groups.js": "d8c83a239536d197cad45d81489d6f127f0fd2bf",
55
- "modules/api/src/collections/images.js": "33478ccc49579c512e0c1a721220e0d4ba37ae1c",
56
- "modules/api/src/collections/locations.js": "3cea43d62b7403cca52053f968fd995f0e3a2ab7",
57
- "modules/api/src/collections/opportunities.js": "4baf140ee1de58a2c571cee74030d483a9d39b69",
58
- "modules/api/src/collections/pack-diffs.js": "34b15c23d8639f6e9228a2e9e011bbae03a1cbaa",
59
- "modules/api/src/collections/packs.js": "9df95c745bce8dc5b73a79d25839c003d7a47f0d",
60
- "modules/api/src/collections/presets.js": "8a5a9f8768a615fa2aff91acc3a019200d8a3e18",
61
- "modules/api/src/collections/section-selections.js": "cf98a333aecc727b0191d1d30873f6ee2cea2714",
62
- "modules/api/src/collections/sections.js": "92e31ee70f86cbdff3af03d211171da8d1558a10",
63
- "modules/api/src/collections/slide-selections.js": "cba5b7cd2391094c8c34da779e526c487abf14f8",
64
- "modules/api/src/collections/slides.js": "7a8de8e1283851e31e152807e869bebef3498343",
65
- "modules/api/src/collections/snapshots.js": "552701dc32820083094af95087f92f363a3620c2",
66
- "modules/api/src/collections/sub-slides.js": "cca9829425bde2cff77ff82636b9882658eee82e",
67
- "modules/api/src/collections/tags.js": "9faf7d945d492b701b436fb1f59c3f60df7adcdc",
68
- "modules/api/src/collections/teams.js": "636606c0805de259e1f6eba9557c48ba2235ad3a",
69
- "modules/api/src/collections/templates.js": "1f6c2f5b2b9771cbb736b52c722ee0649acfe843",
70
- "modules/api/src/collections/uploads.js": "113a9b075d4b5dc39ebee7a9e55b514163556b83",
71
- "modules/api/src/collections/users.js": "6e0e7e47f010b06b761e6f16cc9065da60f199fc",
72
- "modules/api/src/index.js": "1ae679c7adf90635cec78d7259100e7d9bdb24d7",
73
- "modules/api/src/log.js": "05b45bae12f46a37218b612292c0f0348d298c37",
74
- "modules/api/src/middleware.js": "aa725ef839660c0a69853a5f2ecf6188d5f85096",
75
- "modules/api/src/middlewares/auth.js": "6a10a37be9d9b5310643926a6e7a7bfb1a1d4222",
76
- "modules/api/src/middlewares/base.js": "2b3e393809401198be0d6e81618bcd89db2a1c59",
77
- "modules/api/src/middlewares/json.js": "3f1a0219087de4730a6eda75b5ff333a74f1d6a5",
78
- "modules/api/src/middlewares/redirect.js": "68153e042826951f38c83a0da16a692135cceb83",
79
- "modules/api/src/models.js": "24c3f165d814799d55910e546ff248a17759c46a",
80
- "modules/api/src/models/activity-item.js": "6007908a4adfb79c039fbb4740386e644fad4b68",
81
- "modules/api/src/models/adjunct-section.js": "4bb56e970d083bd611ae65162676ad95905a9e7a",
82
- "modules/api/src/models/adjunct-slide.js": "e51d4e97b6e9bd03d30ba5501210afa0e7f0ce71",
83
- "modules/api/src/models/adjunct-sub-slide.js": "8ad0eac5a0607a4e038e59069f397d1a042f9d57",
84
- "modules/api/src/models/adjunct.js": "ab09768f29dfbc27d91b6c7f88cca5ad6ca3e81b",
85
- "modules/api/src/models/api.js": "ff66a1e1a42083d669e9037e1787ac7c12e7318e",
86
- "modules/api/src/models/appointment-adjunct-tags.js": "192a4fbda0cf4665c9cf86f402c97eb54f884ffe",
87
- "modules/api/src/models/appointment-deckversion-tags.js": "d82f805991198655a3e647ad08f7eb78e0f8dcfa",
88
- "modules/api/src/models/appointment-duplicate.js": "33c74166458420a9682d4ab5eb95e732df8f125d",
89
- "modules/api/src/models/appointment-editor.js": "28b04fab366598d4c92931ab1ad60e35c0613a2c",
90
- "modules/api/src/models/appointment-section-tags.js": "c71568bb6217581fb0f5a2880f00440ef5aec3b5",
91
- "modules/api/src/models/appointment-slide-tags.js": "8c30905b30a4579b79abe6ef9699de998437e5c3",
92
- "modules/api/src/models/appointment-stats.js": "93d3e3a03f4c101ecb1b80b2b8a57b6796de0ada",
93
- "modules/api/src/models/appointment-tags.js": "a2887e3dd0468dd3b29c8000d5f71537ca409c71",
94
- "modules/api/src/models/appointment-viewing.js": "f6b1c762b58bb31b4e0c13a88fbd205466097d46",
95
- "modules/api/src/models/appointment.js": "cb3b029113aa25406874a61179c9ab5add01d08f",
96
- "modules/api/src/models/asset.js": "0918dfc931bad6ff63baba31b0829f3d75fbe547",
97
- "modules/api/src/models/auto-adjunct-key-check.js": "2a60f436d7ca5f8b10394a8389ef4d3875f395f4",
98
- "modules/api/src/models/auto-adjunct.js": "3650279c8d0ec9a8fe106c1c231b88d52cfd3d3f",
99
- "modules/api/src/models/base.js": "51e7ebf72b10daacc7bc940b9e6bac2d44bf71f1",
100
- "modules/api/src/models/base.spec.js": "87df85cf4bd83839b724d02dd5fcf76d52c890bc",
101
- "modules/api/src/models/choicelist.js": "588170fe36186ff8514e277c1a440c3ed2cdae05",
102
- "modules/api/src/models/cms-val.js": "2e49751cc77af1ff5da22da45695b8ef48391209",
103
- "modules/api/src/models/contact.js": "8b5a641cb45f1baed069af5035e854168624467f",
104
- "modules/api/src/models/customer.js": "121936bc7642577a78fc1ba451c9dcbc13757443",
105
- "modules/api/src/models/deck-note.js": "6f05b211052cb652c4c8d3e134341ad51e2ffd89",
106
- "modules/api/src/models/deck-tags.js": "d4b7dcc796880274f258fef31eb93345e7870b4e",
107
- "modules/api/src/models/deck-version-screenshot.js": "e9c14a4e4349e68251ab44bed1403fabd01431b7",
108
- "modules/api/src/models/deck-version.js": "cbeae3943ae8ebf844e169852d1ed7d56367a290",
109
- "modules/api/src/models/deck.js": "2cf4887a392c457ed210b35bf2e2875e2e9b6393",
110
- "modules/api/src/models/dispatch-preview.js": "c4fb0fe6e18d2dad00e3292a3d8ee17f516e934a",
111
- "modules/api/src/models/dispatch.js": "ca103c09b7a9f22ab7571c5b940d159ec30be23a",
112
- "modules/api/src/models/envs.js": "21e4f947067c89dd5c8e4e50ca69834581afcfd2",
113
- "modules/api/src/models/event-object.js": "99882f9610afef4c819c30d33ae612a1dcacc705",
114
- "modules/api/src/models/event.js": "bac7d246b2f1085844407d81bf05aa2f8b0d6c02",
115
- "modules/api/src/models/feed-data.js": "684d4c37e7d641ba1e1038a57107a27258122b61",
116
- "modules/api/src/models/file.js": "a21b05ccfe28ab4a35fc8d55d66eb99d7dff4045",
117
- "modules/api/src/models/group.js": "0047aa5ccdffedb1a469c24c60ca592f3d691a1e",
118
- "modules/api/src/models/handover.js": "6439713d0064a941257f688ad9923b3cde5e2b07",
119
- "modules/api/src/models/hosted-preso.js": "d0e29bf8feeb8a1f44e9bfbe26ff32420f123ba0",
120
- "modules/api/src/models/image.js": "12363b89bba814e2f81c7ef0934b95e7ad64572d",
121
- "modules/api/src/models/location.js": "4a242ff7ab7d1c0e65bc5f2c7b6ea69d8d84dcd2",
122
- "modules/api/src/models/manifest-json.js": "80f6d265b4965ed3886fe8ad75446b3f550561e2",
123
- "modules/api/src/models/onshare.js": "eba0b799c4c53160f03a17adfea740d79410366c",
124
- "modules/api/src/models/opportunity.js": "1b40eec14614bf533f48fc705e2f2db74d64b069",
125
- "modules/api/src/models/pack-diff.js": "9d42e8fff66d75a50427192de7c0c8800a4dc629",
126
- "modules/api/src/models/pack.js": "6b6ee1e6f897371572d9ea13f4555365a36373eb",
127
- "modules/api/src/models/preset.js": "2b594441fd2476df6595f1ce3b1b16427a3696ae",
128
- "modules/api/src/models/refresh-request.js": "b7990e8544a1f1d297e4a38be126193367dd5647",
129
- "modules/api/src/models/room.js": "12480d178a3e1dfb4d3c2e2ccc785a274d2b107c",
130
- "modules/api/src/models/salesforce-lookup.js": "f532cec1658d22a9c2b1789cd512177bbec1c404",
131
- "modules/api/src/models/section-selection.js": "389965117169fd55961a331b2cbac43e89ebe382",
132
- "modules/api/src/models/section.js": "90a5d7795c9b1f2228b2bb68c979b4d50f54694f",
133
- "modules/api/src/models/slide-selection.js": "02c8773bafcb57a0a66dd99faa8e9a04ccac6811",
134
- "modules/api/src/models/slide.js": "b0a3c37b3b1c6a8f7aa937487edfc02251aba47f",
135
- "modules/api/src/models/snapshot.js": "6717e3b710955e30dbf79514833658e4582f7577",
136
- "modules/api/src/models/sub-slide.js": "16a05a3b3cdd1f12087e8ad2f0e95188bde2cbec",
137
- "modules/api/src/models/support-ticket.js": "9a8d9a5cd70a9750e2bed9d1f3bbf7531d4a5dfd",
138
- "modules/api/src/models/tag.js": "be0ca863ab34b2d95ce546aa2376c3bbeadbf53c",
139
- "modules/api/src/models/team.js": "7dccd75223f112f1b57afd6ef7d50ca5ad6eca52",
140
- "modules/api/src/models/template.js": "b304bf3372d98b7b2bfb055a9475eecca0dd8b3c",
141
- "modules/api/src/models/tenancy.js": "5cdd68eaca289105f7143d2451ab839a3a9bead8",
142
- "modules/api/src/models/timing-log.js": "580ac92f5d02dc664a2c9e58f0f4904dd04b35d7",
143
- "modules/api/src/models/timing-log.spec.js": "a99c1d8e61c6a1706d85b6ff5443100fa91b4fe9",
144
- "modules/api/src/models/transcribe-socket.js": "cd5ad0dbdad4650b65ea78413710f2c3a0f722f9",
145
- "modules/api/src/models/upload.js": "be0d26ad0392a259b271b4c87e2931527fb8dc70",
146
- "modules/api/src/models/user.js": "73b35d6badfc44e63840da1b75ec5073df07e582",
147
- "modules/api/src/models/user.spec.js": "7e6f3b8909fe7c0df9b281375ed301c73fbce7d1",
148
- "modules/api/src/presentation.js": "42051579941c98eef6335b5178621da4aedcfe34",
149
- "modules/api/src/presentation/appointment-presentation.js": "3e60ddef0d6b147208e1995bf509cae7bf2f535a",
150
- "modules/api/src/presentation/base-presentation-collection.js": "7f56eaf2645da404dbd8ad85da6773e78c5dc82b",
151
- "modules/api/src/presentation/base-presentation-model.js": "3d8b10c96ec5bf97125ba109e37f4a056e7e6563",
152
- "modules/api/src/presentation/base-presentation-model.spec.js": "1a132cac8c90b4bc96f9ee11b4256f5b3a80228c",
153
- "modules/api/src/presentation/presentation-deck.js": "15bcbd3a077e1834402db361eace77a891441cca",
154
- "modules/api/src/presentation/presentation-deck.spec.js": "1c545a756b8264c3ae7aaf56fff93eab679206a1",
155
- "modules/api/src/presentation/presentation-decks.js": "317682581f5136bcd46c305c69e5ef87fa3eeeae",
156
- "modules/api/src/presentation/presentation-section.js": "2a8209abfb2da047dae74addadedea32deb3a811",
157
- "modules/api/src/presentation/presentation-section.spec.js": "93a8894df1333dcda2248e1f402940bf5fc884eb",
158
- "modules/api/src/presentation/presentation-sections.js": "db525e86a5e9557ed840096a13ca945c4d768f4c",
159
- "modules/api/src/presentation/presentation-slide.js": "bc4d9e136720e551c8bc41437b8b5c2070da9539",
160
- "modules/api/src/presentation/presentation-slide.spec.js": "ab509876a18b9f7d2f9451dd9ddb74fe9043efe9",
161
- "modules/api/src/presentation/presentation-slides.js": "6ae2aeba05cc8a631e82b501bdca79c5ab1a19ba",
162
- "modules/api/src/presentation/presentation-subslide.js": "32770cf9133269d99b8bc07fa248430b647da35e",
163
- "modules/api/src/presentation/presentation-subslide.spec.js": "36804ab2074b9b8c86890500f5594f4eec0b1144",
164
- "modules/api/src/presentation/presentation-subslides.js": "45691f17435264d79939af0a0911963655fd4c72",
165
- "modules/api/src/presentation/presentation.js": "211f8f21b68488c8b4c83d95f498a56f9ad09092",
166
- "modules/api/src/state-register.js": "98b74d8d62bda69f19e1706cd3e8c3ee414b314b",
167
- "modules/api/src/sync.js": "2d5a6c764d81a107160eeae8beb0d2750d5a685b",
168
- "modules/api/src/utils.js": "08a61c4843273a3e65f8d6925e5f3a0223395bdb",
169
- "modules/api/src/utils.spec.js": "5d739879c8b9de328f3cbc9de8c69c7ea69db902"
170
- },
171
- "arguments": "jest --coverage --coverageReporters=json --silent 2>&1 "
172
- }
@@ -1,29 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.AppointmentDuplicateCollection = void 0;
7
-
8
- require("../models/appointment-duplicate.js");
9
-
10
- var _base = require("./base.js");
11
-
12
- var _stateRegister = require("../state-register.js");
13
-
14
- /**
15
- * @constructor
16
- * @alias collections.AppointmentDuplicateCollection
17
- * @extends collections.BaseCollection
18
- * @see models.AppointmentDuplicateModel
19
- */
20
- var AppointmentDuplicateCollection = _base.BaseCollection.extend(
21
- /** @lends collections.AppointmentDuplicateCollection# */
22
- {
23
- comparator: "sequence",
24
- model: "AppointmentDuplicateModel"
25
- });
26
-
27
- exports.AppointmentDuplicateCollection = AppointmentDuplicateCollection;
28
- (0, _stateRegister.register)("AppointmentDuplicateCollection", AppointmentDuplicateCollection);
29
- //# sourceMappingURL=appointment-duplicates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/collections/appointment-duplicates.js"],"names":["AppointmentDuplicateCollection","BaseCollection","extend","comparator","model"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,8BAA8B,GAAGC,qBAAeC,MAAf;AAC7C;AAA0D;AACzDC,EAAAA,UAAU,EAAE,UAD6C;AAEzDC,EAAAA,KAAK,EAAE;AAFkD,CADb,CAAvC;;;AAOP,6BAAS,gCAAT,EAA2CJ,8BAA3C","sourcesContent":["import \"../models/appointment-duplicate.js\";\n\nimport { BaseCollection } from \"./base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias collections.AppointmentDuplicateCollection\n * @extends collections.BaseCollection\n * @see models.AppointmentDuplicateModel\n */\nexport const AppointmentDuplicateCollection = BaseCollection.extend(\n\t/** @lends collections.AppointmentDuplicateCollection# */ {\n\t\tcomparator: \"sequence\",\n\t\tmodel: \"AppointmentDuplicateModel\",\n\t}\n);\n\nregister(\"AppointmentDuplicateCollection\", AppointmentDuplicateCollection);\n"],"file":"appointment-duplicates.js"}
@@ -1,94 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.AppointmentDuplicateModel = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- require("./appointment.js");
13
-
14
- require("./preset.js");
15
-
16
- require("../collections/contacts.js");
17
-
18
- require("../collections/deck-versions.js");
19
-
20
- require("../collections/opportunities.js");
21
-
22
- var _base = require("./base.js");
23
-
24
- var _stateRegister = require("../state-register.js");
25
-
26
- 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; }
27
-
28
- 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; }
29
-
30
- /**
31
- * @constructor
32
- * @alias models.AppointmentDuplicate
33
- * @extends models.BaseModel
34
- */
35
- var AppointmentDuplicateModel = _base.BaseModel.extend(
36
- /** @lends models.AppointmentDuplicate# */
37
- {
38
- modelName: "appointment-duplicates",
39
- urlMatchKeys: {
40
- "appointment.id": "number"
41
- },
42
-
43
- /**
44
- * @property {string} type
45
- * @property {date} begin
46
- * @property {date} end
47
- */
48
- props: {
49
- type: "string",
50
- begin: "date",
51
- end: "date"
52
- },
53
-
54
- /**
55
- * @property {collections.ContactCollection} contact_set
56
- * @property {collections.DeckVersionCollection} deckversion_set
57
- * @property {collections.OpportunityCollection} opportunity_set
58
- */
59
- collections: {
60
- contact_set: "ContactCollection",
61
- deckversion_set: "DeckVersionCollection",
62
- opportunity_set: "OpportunityCollection"
63
- },
64
-
65
- /**
66
- * @property {models.AppointmentModel} from_appointment
67
- * @property {models.AppointmentModel} to_appointment
68
- */
69
- children: {
70
- from_appointment: "AppointmentModel",
71
- to_appointment: "AppointmentModel",
72
- preset: "PresetModel"
73
- },
74
- toServer: function toServer() {
75
- var duplicate = this.toJSON();
76
-
77
- var data = _objectSpread(_objectSpread({}, duplicate), {}, {
78
- preset: this._retrieveURL(duplicate.preset),
79
- contact_set: this._retrieveURL(duplicate.contact_set),
80
- deckversion_set: this._retrieveURL(duplicate.deckversion_set),
81
- opportunity_set: this._retrieveURL(duplicate.opportunity_set)
82
- });
83
-
84
- if (this.id) {
85
- data.id = this.id;
86
- }
87
-
88
- return data;
89
- }
90
- });
91
-
92
- exports.AppointmentDuplicateModel = AppointmentDuplicateModel;
93
- (0, _stateRegister.register)("AppointmentDuplicateModel", AppointmentDuplicateModel);
94
- //# sourceMappingURL=appointment-duplicate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/models/appointment-duplicate.js"],"names":["AppointmentDuplicateModel","BaseModel","extend","modelName","urlMatchKeys","props","type","begin","end","collections","contact_set","deckversion_set","opportunity_set","children","from_appointment","to_appointment","preset","toServer","duplicate","toJSON","data","_retrieveURL","id"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,yBAAyB,GAAGC,gBAAUC,MAAV;AACxC;AAA2C;AAC1CC,EAAAA,SAAS,EAAE,wBAD+B;AAG1CC,EAAAA,YAAY,EAAE;AACb,sBAAkB;AADL,GAH4B;;AAO1C;AACF;AACA;AACA;AACA;AACEC,EAAAA,KAAK,EAAE;AACNC,IAAAA,IAAI,EAAE,QADA;AAENC,IAAAA,KAAK,EAAE,MAFD;AAGNC,IAAAA,GAAG,EAAE;AAHC,GAZmC;;AAiB1C;AACF;AACA;AACA;AACA;AACEC,EAAAA,WAAW,EAAE;AACZC,IAAAA,WAAW,EAAE,mBADD;AAEZC,IAAAA,eAAe,EAAE,uBAFL;AAGZC,IAAAA,eAAe,EAAE;AAHL,GAtB6B;;AA2B1C;AACF;AACA;AACA;AACEC,EAAAA,QAAQ,EAAE;AACTC,IAAAA,gBAAgB,EAAE,kBADT;AAETC,IAAAA,cAAc,EAAE,kBAFP;AAGTC,IAAAA,MAAM,EAAE;AAHC,GA/BgC;AAqC1CC,EAAAA,QArC0C,sBAqC/B;AACV,QAAMC,SAAS,GAAG,KAAKC,MAAL,EAAlB;;AAEA,QAAMC,IAAI,mCACNF,SADM;AAETF,MAAAA,MAAM,EAAE,KAAKK,YAAL,CAAkBH,SAAS,CAACF,MAA5B,CAFC;AAGTN,MAAAA,WAAW,EAAE,KAAKW,YAAL,CAAkBH,SAAS,CAACR,WAA5B,CAHJ;AAITC,MAAAA,eAAe,EAAE,KAAKU,YAAL,CAAkBH,SAAS,CAACP,eAA5B,CAJR;AAKTC,MAAAA,eAAe,EAAE,KAAKS,YAAL,CAAkBH,SAAS,CAACN,eAA5B;AALR,MAAV;;AAQA,QAAI,KAAKU,EAAT,EAAa;AACZF,MAAAA,IAAI,CAACE,EAAL,GAAU,KAAKA,EAAf;AACA;;AAED,WAAOF,IAAP;AACA;AArDyC,CADH,CAAlC;;;AA0DP,6BAAS,2BAAT,EAAsCpB,yBAAtC","sourcesContent":["import \"./appointment.js\";\nimport \"./preset.js\";\nimport \"../collections/contacts.js\";\nimport \"../collections/deck-versions.js\";\nimport \"../collections/opportunities.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.AppointmentDuplicate\n * @extends models.BaseModel\n */\nexport const AppointmentDuplicateModel = BaseModel.extend(\n\t/** @lends models.AppointmentDuplicate# */ {\n\t\tmodelName: \"appointment-duplicates\",\n\n\t\turlMatchKeys: {\n\t\t\t\"appointment.id\": \"number\",\n\t\t},\n\n\t\t/**\n\t\t * @property {string} type\n\t\t * @property {date} begin\n\t\t * @property {date} end\n\t\t */\n\t\tprops: {\n\t\t\ttype: \"string\",\n\t\t\tbegin: \"date\",\n\t\t\tend: \"date\",\n\t\t},\n\t\t/**\n\t\t * @property {collections.ContactCollection} contact_set\n\t\t * @property {collections.DeckVersionCollection} deckversion_set\n\t\t * @property {collections.OpportunityCollection} opportunity_set\n\t\t */\n\t\tcollections: {\n\t\t\tcontact_set: \"ContactCollection\",\n\t\t\tdeckversion_set: \"DeckVersionCollection\",\n\t\t\topportunity_set: \"OpportunityCollection\",\n\t\t},\n\t\t/**\n\t\t * @property {models.AppointmentModel} from_appointment\n\t\t * @property {models.AppointmentModel} to_appointment\n\t\t */\n\t\tchildren: {\n\t\t\tfrom_appointment: \"AppointmentModel\",\n\t\t\tto_appointment: \"AppointmentModel\",\n\t\t\tpreset: \"PresetModel\",\n\t\t},\n\n\t\ttoServer() {\n\t\t\tconst duplicate = this.toJSON();\n\n\t\t\tconst data = {\n\t\t\t\t...duplicate,\n\t\t\t\tpreset: this._retrieveURL(duplicate.preset),\n\t\t\t\tcontact_set: this._retrieveURL(duplicate.contact_set),\n\t\t\t\tdeckversion_set: this._retrieveURL(duplicate.deckversion_set),\n\t\t\t\topportunity_set: this._retrieveURL(duplicate.opportunity_set),\n\t\t\t};\n\n\t\t\tif (this.id) {\n\t\t\t\tdata.id = this.id;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t},\n\t}\n);\n\nregister(\"AppointmentDuplicateModel\", AppointmentDuplicateModel);\n"],"file":"appointment-duplicate.js"}
@@ -1,19 +0,0 @@
1
- import "../models/appointment-duplicate.js";
2
-
3
- import { BaseCollection } from "./base.js";
4
- import { register } from "../state-register.js";
5
-
6
- /**
7
- * @constructor
8
- * @alias collections.AppointmentDuplicateCollection
9
- * @extends collections.BaseCollection
10
- * @see models.AppointmentDuplicateModel
11
- */
12
- export const AppointmentDuplicateCollection = BaseCollection.extend(
13
- /** @lends collections.AppointmentDuplicateCollection# */ {
14
- comparator: "sequence",
15
- model: "AppointmentDuplicateModel",
16
- }
17
- );
18
-
19
- register("AppointmentDuplicateCollection", AppointmentDuplicateCollection);
@@ -1,73 +0,0 @@
1
- import "./appointment.js";
2
- import "./preset.js";
3
- import "../collections/contacts.js";
4
- import "../collections/deck-versions.js";
5
- import "../collections/opportunities.js";
6
-
7
- import { BaseModel } from "./base.js";
8
- import { register } from "../state-register.js";
9
-
10
- /**
11
- * @constructor
12
- * @alias models.AppointmentDuplicate
13
- * @extends models.BaseModel
14
- */
15
- export const AppointmentDuplicateModel = BaseModel.extend(
16
- /** @lends models.AppointmentDuplicate# */ {
17
- modelName: "appointment-duplicates",
18
-
19
- urlMatchKeys: {
20
- "appointment.id": "number",
21
- },
22
-
23
- /**
24
- * @property {string} type
25
- * @property {date} begin
26
- * @property {date} end
27
- */
28
- props: {
29
- type: "string",
30
- begin: "date",
31
- end: "date",
32
- },
33
- /**
34
- * @property {collections.ContactCollection} contact_set
35
- * @property {collections.DeckVersionCollection} deckversion_set
36
- * @property {collections.OpportunityCollection} opportunity_set
37
- */
38
- collections: {
39
- contact_set: "ContactCollection",
40
- deckversion_set: "DeckVersionCollection",
41
- opportunity_set: "OpportunityCollection",
42
- },
43
- /**
44
- * @property {models.AppointmentModel} from_appointment
45
- * @property {models.AppointmentModel} to_appointment
46
- */
47
- children: {
48
- from_appointment: "AppointmentModel",
49
- to_appointment: "AppointmentModel",
50
- preset: "PresetModel",
51
- },
52
-
53
- toServer() {
54
- const duplicate = this.toJSON();
55
-
56
- const data = {
57
- ...duplicate,
58
- preset: this._retrieveURL(duplicate.preset),
59
- contact_set: this._retrieveURL(duplicate.contact_set),
60
- deckversion_set: this._retrieveURL(duplicate.deckversion_set),
61
- opportunity_set: this._retrieveURL(duplicate.opportunity_set),
62
- };
63
-
64
- if (this.id) {
65
- data.id = this.id;
66
- }
67
-
68
- return data;
69
- },
70
- }
71
- );
72
-
73
- register("AppointmentDuplicateModel", AppointmentDuplicateModel);