@livepreso/api 6.56.0 → 6.56.1

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 (53) hide show
  1. package/.rush/temp/1aebf46f78ad5c45f82f8147751890adb37bef9d.log +10 -0
  2. package/.rush/temp/256021b5963b4c0221d3dec247b697b9691a9b2c.log +10 -0
  3. package/.rush/temp/2a322f00f12cf9d1e64afe81275cc78d01c49050.log +10 -0
  4. package/.rush/temp/30061f1865447dcbb3f20a305061205f3dbe6091.log +10 -0
  5. package/.rush/temp/3cdc82c352e8ed90607952873f3aa4c200490874.log +10 -0
  6. package/.rush/temp/45522aea0dee8cb2be1a53248ba45bd235743b43.log +10 -0
  7. package/.rush/temp/5489ab737e406518983c16c57fc3e1edc07c0341.log +10 -0
  8. package/.rush/temp/58fcbb7f15a76326d40e0839ab179755da82a891.log +10 -0
  9. package/.rush/temp/5bc0bba70b733baa4dd976667ba0a1386e516186.log +10 -0
  10. package/.rush/temp/64f1bb696f8d7d7e72907b80df316b127f72e23e.log +10 -0
  11. package/.rush/temp/6f640f951414ea68adb65c17e4ed7527cde54faf.log +10 -0
  12. package/.rush/temp/7c7b958682d4ab5697530be47d0aac62efe1adf1.log +10 -0
  13. package/.rush/temp/82bfb987463fbcfebf04022e6ed00015c73879c8.log +10 -0
  14. package/.rush/temp/844034aa6e542115075e8f3dc5ffc640973e0064.log +10 -0
  15. package/.rush/temp/8b42957a7c15da1f29cb57bee125f13affa70dca.log +10 -0
  16. package/.rush/temp/924652444ab5a6063f328a2217123a2227058896.log +10 -0
  17. package/.rush/temp/9f2030f96d62f3e38052e35201819a216566f14f.log +10 -0
  18. package/.rush/temp/a769db9d81a23000c0e9b1bf4f1a9a9e721d0d7c.log +10 -0
  19. package/.rush/temp/a87d3a8b4ece87ec66f27c86226a9f205617681f.log +10 -0
  20. package/.rush/temp/bb7a5bdcc4af4ad1507f81f33774b31f5b4e4fb7.log +10 -0
  21. package/.rush/temp/build-cache-tar.log +7 -0
  22. package/.rush/temp/c20e29ccaaa9231b38a28bb24451b4ce7562cdc0.log +10 -0
  23. package/.rush/temp/chunked-rush-logs/api.build.chunks.jsonl +15 -5
  24. package/.rush/temp/chunked-rush-logs/api.test.chunks.jsonl +1 -0
  25. package/.rush/temp/e21303db8f59b4625fd184c9114377d781fd24f8.log +10 -0
  26. package/.rush/temp/e6d303862765b6a5f41dd483d0f9ae083a1fae10.log +10 -0
  27. package/.rush/temp/eaf69fbc059d2f1258d7569136180d4a1d3c7072.log +10 -0
  28. package/.rush/temp/f85d279e2674966daaec83e1c3986a96f86ef304.log +10 -0
  29. package/.rush/temp/fc0a332c5b34c6b90006850cf2d93a48fb4b9a6e.log +10 -0
  30. package/.rush/temp/operation/build/all.log +15 -5
  31. package/.rush/temp/operation/build/error.log +13 -3
  32. package/.rush/temp/operation/build/log-chunks.jsonl +15 -5
  33. package/.rush/temp/operation/build/state.json +1 -1
  34. package/.rush/temp/operation/test/all.log +21 -0
  35. package/.rush/temp/operation/test/log-chunks.jsonl +21 -0
  36. package/.rush/temp/operation/test/state.json +3 -0
  37. package/.rush/temp/package-deps_build.json +185 -0
  38. package/CHANGELOG.json +12 -0
  39. package/CHANGELOG.md +8 -1
  40. package/api.build.log +9 -0
  41. package/api.test.cache.log +1 -0
  42. package/api.test.log +19 -0
  43. package/cjs/models/timing-log.js +17 -17
  44. package/cjs/models/timing-log.js.map +1 -1
  45. package/cjs/sync.js +14 -2
  46. package/cjs/sync.js.map +1 -1
  47. package/package.json +1 -1
  48. package/rush-logs/api.build.error.log +13 -3
  49. package/rush-logs/api.build.log +15 -5
  50. package/rush-logs/api.test.cache.log +1 -0
  51. package/rush-logs/api.test.log +1 -0
  52. package/src/models/timing-log.js +24 -28
  53. package/src/sync.js +14 -2
@@ -0,0 +1,185 @@
1
+ {
2
+ "files": {
3
+ "modules/api/.rush/temp/shrinkwrap-deps.json": "5c8b0aa31f8ad2a37763d02137c071bb4e1c2521",
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": "342749140a6776d3957f34ac688f6e363c457beb",
10
+ "modules/api/CHANGELOG.md": "262498a27c36aa3595d58902cfb049496bdd6f1f",
11
+ "modules/api/README.md": "7974bb11bba4378faccb7dcddb88b20cd8f1a94c",
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": "52c0810f84aed86d3e62dc4b95dc3f440fa05253",
17
+ "modules/api/mocha.opts": "33e6ba2ea1db0e7397b9c6ac9339f5f8657c3e99",
18
+ "modules/api/package.json": "bd75872f7210a59b67bacc2c41187fe3e3e1b562",
19
+ "modules/api/setup-tests.js": "16e32752834050e369b9ced87b178e520806a87f",
20
+ "modules/api/src/api.js": "21ee077b2fde0bd605933fd203c9b2190d947393",
21
+ "modules/api/src/api.spec.js": "a9d30ed36f594f616601fe1b242c68440dff40df",
22
+ "modules/api/src/auth.js": "5032ada348fb919e88272af228214a39971bbbd3",
23
+ "modules/api/src/auth.spec.js": "ebd302b60032cacebac16a8d25ad09ee4bc98f92",
24
+ "modules/api/src/caching.js": "6582f01cc373c502f6fec49116b0efcdb4bb647d",
25
+ "modules/api/src/collections.js": "3875de63f9159911945c9c1116a4540cf6e8fe3d",
26
+ "modules/api/src/collections/activity.js": "c6076b1cca55bc244bf2290e54c8e580e5295329",
27
+ "modules/api/src/collections/adjunct-sections.js": "5f0d390b4cfdd30d0245a1c032b06dc80668bfed",
28
+ "modules/api/src/collections/adjunct-slides.js": "f82de8cb59a77e02836aa04b8c3f7ada67f0319a",
29
+ "modules/api/src/collections/adjunct-sub-slides.js": "d2628ba16bf0708abadbc408ba6e175ad3d88d81",
30
+ "modules/api/src/collections/appointment-adjunct-tags.js": "8d61b61a8bdd1088406ca31170a1f9f963608a2c",
31
+ "modules/api/src/collections/appointment-deckversion-tags.js": "4de75e496e89bde5ae1bb58566a0e87069ede4b2",
32
+ "modules/api/src/collections/appointment-editors.js": "ce45091f5f5288f2b0db803af535a9f5c15d9f58",
33
+ "modules/api/src/collections/appointment-section-tags.js": "59b07ab2e55cf28e6f863e42d2adda81d08ee3f1",
34
+ "modules/api/src/collections/appointment-slide-tags.js": "e6e3c84a366f0868cf1b2ce8914364ab8968f1c1",
35
+ "modules/api/src/collections/appointment-tags.js": "bc5ec3ab6257d89f23872a087a6fa30987f77da3",
36
+ "modules/api/src/collections/appointment-templates.js": "160348c9a5a9fe2fd14ded9f4be25a19ffac89a5",
37
+ "modules/api/src/collections/appointments.js": "5ddebad495dfa646cc6e3b27a9c298ae89a85e9a",
38
+ "modules/api/src/collections/assets.js": "14a0c10fd3245f362a5b027d869f172c9fb35c67",
39
+ "modules/api/src/collections/auto-adjuncts.js": "37f925d9619f2cb2a1cd6237f6c24a23f937cd60",
40
+ "modules/api/src/collections/base.js": "494baf8642cafc751ce22cbff660ff8829d4b608",
41
+ "modules/api/src/collections/base.spec.js": "e30be2f7761eebe924a1d966a85ba2537a571737",
42
+ "modules/api/src/collections/cms-vals.js": "2cebc5244ff8316ab735f7a6fd321f42be27a17a",
43
+ "modules/api/src/collections/contact-phones.js": "2d2266e34d88330515b37d6d8c082d728a2265e3",
44
+ "modules/api/src/collections/contacts.js": "0d169ff47381b926e385a2424fea617afea83a74",
45
+ "modules/api/src/collections/created-assets.js": "67cb9501b3c76829a9320cf2ee3f23e42fdd3744",
46
+ "modules/api/src/collections/customers.js": "10722ef80032fda6bcc91aab468aed5978cccd19",
47
+ "modules/api/src/collections/deck-notes.js": "9473a81feb6012d0a8291be01d23a9728817ccb1",
48
+ "modules/api/src/collections/deck-version-screenshots.js": "0959fd227227b881647ab00810b43cac6722988f",
49
+ "modules/api/src/collections/deck-versions.js": "6914538addc83b98be29f2317c1c8441f4ad4496",
50
+ "modules/api/src/collections/decks.js": "1b7082dd20084b0860216e34b9940e8435864f03",
51
+ "modules/api/src/collections/deleted-assets.js": "221a7516091d81e43cf30dcc10ad5bbf5eb19292",
52
+ "modules/api/src/collections/dispatches.js": "cce349d1749ad6fed64b4cde02c89787c8b0d2f5",
53
+ "modules/api/src/collections/event-objects.js": "13a8ec2666cfe6b055a0b1edea8b16d08191bebf",
54
+ "modules/api/src/collections/events.js": "18c2aab7a9e33b2eef624f4966d28b178c345eda",
55
+ "modules/api/src/collections/groups.js": "ec329ac97e012ef0e3b81bfb3d3f364375d81017",
56
+ "modules/api/src/collections/images.js": "0fca66cd02346fbe9bcc928b9a8c3b9915c00ce9",
57
+ "modules/api/src/collections/locations.js": "4306f196992a38304f26417406068634b3bf7a5c",
58
+ "modules/api/src/collections/opportunities.js": "f56985be2ffa02aab61478abc772c0479a185036",
59
+ "modules/api/src/collections/pack-diffs.js": "476c70ee820b0f51aebe3fd39715cd6e75feb2d1",
60
+ "modules/api/src/collections/packs.js": "88598a2559b08c3fd9f5c4f032e185a44e94a1b3",
61
+ "modules/api/src/collections/presets.js": "e8b3ddacf019bef18f7af97e7bec5d033c8c7953",
62
+ "modules/api/src/collections/section-selections.js": "2d4f24822aa9a279b071e15877f41c30d68b73ea",
63
+ "modules/api/src/collections/sections.js": "797309aef62e40953b85a8bce3cd749b9fa591c6",
64
+ "modules/api/src/collections/signers.js": "2b0fc90e6fb544e8d2d6af22744fb037c6f7674b",
65
+ "modules/api/src/collections/signing-backends.js": "78888f4688777eac2d7e21fd8a7d7fdfd6bce11e",
66
+ "modules/api/src/collections/signing-requests.js": "c89ff8aa91b38d97ebaf2c1c7a045ad028268ff6",
67
+ "modules/api/src/collections/slide-selections.js": "bda3676b5356b0fc0bbdc544b48b542b33560ed5",
68
+ "modules/api/src/collections/slides.js": "2034263b15814d1117a092427bcde39f01b8a636",
69
+ "modules/api/src/collections/snapshots.js": "ff0ed1b1bbe4d50fab810225465d03c48a89b558",
70
+ "modules/api/src/collections/sub-slides.js": "f8e8b21538f9029c700f70d6ec3ef0ad98679533",
71
+ "modules/api/src/collections/tags.js": "0fd3e59088b3cac437c0a396c02bd229dc8660ba",
72
+ "modules/api/src/collections/teams.js": "0995840e8ca7ce9e2964fbbb1887061e58fe6dc5",
73
+ "modules/api/src/collections/templates.js": "14413e9879a2f2a6c11631730903d0f33783c742",
74
+ "modules/api/src/collections/uploads.js": "026cfe15fe76c485c58ca444afb8d9c8ea817b7e",
75
+ "modules/api/src/collections/users.js": "4d0462ebbcd46b27fa745603923613100bb5ca65",
76
+ "modules/api/src/fixtures.js": "89a775c7c4f7912dfc1cf816418b251173f78279",
77
+ "modules/api/src/index.js": "f48ebb12d42bb51b833265e29a15d9abf162ff46",
78
+ "modules/api/src/log.js": "05b45bae12f46a37218b612292c0f0348d298c37",
79
+ "modules/api/src/middleware.js": "aa725ef839660c0a69853a5f2ecf6188d5f85096",
80
+ "modules/api/src/middlewares/auth.js": "6a10a37be9d9b5310643926a6e7a7bfb1a1d4222",
81
+ "modules/api/src/middlewares/base.js": "2b3e393809401198be0d6e81618bcd89db2a1c59",
82
+ "modules/api/src/middlewares/json.js": "3f1a0219087de4730a6eda75b5ff333a74f1d6a5",
83
+ "modules/api/src/middlewares/redirect.js": "68153e042826951f38c83a0da16a692135cceb83",
84
+ "modules/api/src/models.js": "8bccb2fbbd7d75888e957f85dd96dac7e0dda30c",
85
+ "modules/api/src/models/activity-item.js": "aa0d87239f6183c21b35207b5b11c6a3c239b058",
86
+ "modules/api/src/models/adjunct-section.js": "f00f5ecb3d011822ceeb4de0bc0a2de6179ba4b7",
87
+ "modules/api/src/models/adjunct-slide.js": "56983f0b2a40683d4801d7d931008db536722919",
88
+ "modules/api/src/models/adjunct-sub-slide.js": "3659582b7e0b052eee2698bc6085b0142518773a",
89
+ "modules/api/src/models/adjunct.js": "dca1384e7cc9ddc932b45c70f22e5fad947d7218",
90
+ "modules/api/src/models/api.js": "ff66a1e1a42083d669e9037e1787ac7c12e7318e",
91
+ "modules/api/src/models/appointment-adjunct-tags.js": "6f34d561f608bae351699b397dcecd80d3aa6ae6",
92
+ "modules/api/src/models/appointment-deckversion-tags.js": "48ab3c0e3d16d29cd30ff7bba251073a2388b03f",
93
+ "modules/api/src/models/appointment-editor.js": "ed9f7531cfd6d01fbf370cb8f392cd5ec366af02",
94
+ "modules/api/src/models/appointment-section-tags.js": "3ac4428c04f173a8aab47557369854da8d31c8de",
95
+ "modules/api/src/models/appointment-slide-tags.js": "578b47bb8be70859992576d6d061d71a127fca94",
96
+ "modules/api/src/models/appointment-stats.js": "1843db4ec0cb6e48c3746d1c1cb8591475593a58",
97
+ "modules/api/src/models/appointment-tags.js": "9b9d072f815edd6001f78103a92d1ac0fbdafb1c",
98
+ "modules/api/src/models/appointment-template.js": "a505764a179d5c3bb0bcf2bf470247f59ca172f3",
99
+ "modules/api/src/models/appointment-viewing.js": "ed259008ae9454b7ce29e7a62e59fac0b7cddd82",
100
+ "modules/api/src/models/appointment.js": "d6a0fd1f9609e12030e1ea73f2d5ed8b742e5297",
101
+ "modules/api/src/models/asset.js": "6698368fa65e8672485e551d948a34885135c489",
102
+ "modules/api/src/models/auto-adjunct-key-check.js": "eaecd2d50d626f4dedac346a76eefa2714f64f34",
103
+ "modules/api/src/models/auto-adjunct.js": "b64eab4f95b946d68256d8d8a4ca7be9bbbd0207",
104
+ "modules/api/src/models/base.js": "da1cfc4cd5ac767a70870e148d381a84f53a23f1",
105
+ "modules/api/src/models/base.spec.js": "f93cddb6ce982573052f43e5b7d22d4d7d3e41ca",
106
+ "modules/api/src/models/choicelist.js": "294c908f509a37e86e612ccd456c1c4b3f472cff",
107
+ "modules/api/src/models/cms-val.js": "eb0a5c94016dd94fad28ad56e5eed0865d24667b",
108
+ "modules/api/src/models/cms-val.spec.js": "7255d5190f90437f9fc5374ee4b2086a695c1e85",
109
+ "modules/api/src/models/contact-phone.js": "08653855815262ed90a7999462230a37fd61dfc5",
110
+ "modules/api/src/models/contact.js": "f770da24e2cab94e412b25401644b08af13f2315",
111
+ "modules/api/src/models/customer.js": "fdce7fb9cb75cf3e00777a3f6f78c41a6fd95a08",
112
+ "modules/api/src/models/deck-note.js": "f2825ffd6f42f1c1e56962bf0d2a6ded2f7174c0",
113
+ "modules/api/src/models/deck-tags.js": "d0122cb9aee76127ae1f03264982fa9495ee432c",
114
+ "modules/api/src/models/deck-version-screenshot.js": "8ff8406419bddf6cf24230340edd8a604a6bd24f",
115
+ "modules/api/src/models/deck-version.js": "efdc0e4c29c87fde56b23fbb629dc507c87c79be",
116
+ "modules/api/src/models/deck.js": "ed9f83951b1787a065171783b033e03f1698b142",
117
+ "modules/api/src/models/dispatch-preview.js": "27ca131aac1d6069329d3c4afec6c794a7c514cc",
118
+ "modules/api/src/models/dispatch.js": "f20a2ad58cb3701356d150baa9599b5d73ec505d",
119
+ "modules/api/src/models/envs.js": "21e4f947067c89dd5c8e4e50ca69834581afcfd2",
120
+ "modules/api/src/models/event-object.js": "5ac9d07b485d21deef25aaae7e9be031d3b0967d",
121
+ "modules/api/src/models/event.js": "0330db27741083c066373da56c2fe024dda5e1b1",
122
+ "modules/api/src/models/feed-data.js": "d84006def6aa7c35201ea5c281500dc97262c710",
123
+ "modules/api/src/models/file.js": "dbae7b5a1ab81d19652dd51a2c546eadee8db948",
124
+ "modules/api/src/models/group.js": "b4de18740e483e47942fcc26ca20d00e0c99bb22",
125
+ "modules/api/src/models/handover.js": "cbae12f03c08e38165bfdc748497eb260c5f8553",
126
+ "modules/api/src/models/hosted-preso.js": "49d320fbd80b2238df46baaaef8963f94b040012",
127
+ "modules/api/src/models/image.js": "33e76f12ae465f9cbea84ee265e9d30af76416d6",
128
+ "modules/api/src/models/location.js": "1add45f18fb385ec27f4be0c0a324ac351b106d4",
129
+ "modules/api/src/models/manifest-json.js": "967f75b087602221477fbea4f655c98821aa745b",
130
+ "modules/api/src/models/onshare.js": "605c792a26eb2e3d4d4caf3483eefa9698d656e4",
131
+ "modules/api/src/models/opportunity.js": "23f5d114e4d974136eea750733c8ac834e5545ae",
132
+ "modules/api/src/models/pack-diff.js": "00d3fe89099d61bff9c5ba56eba5b45e41371148",
133
+ "modules/api/src/models/pack.js": "6ac776d642e2b6ca944c178207dcee381acacce8",
134
+ "modules/api/src/models/preset.js": "db7a958b2de1968675d48454811895442f12b651",
135
+ "modules/api/src/models/refresh-request.js": "a56d8c02c22df3d9283033ffe26b2dd4a020c463",
136
+ "modules/api/src/models/room.js": "c0afadc136fd7b5c57c434264f1e019d339c4000",
137
+ "modules/api/src/models/salesforce-lookup.js": "ad07db52149fc5db6a5111874f94724f2d4d97f5",
138
+ "modules/api/src/models/section-selection.js": "2f640a3bb70a3636f6bdfa444da75ec029ca48da",
139
+ "modules/api/src/models/section.js": "8af095a56d8c1118806e7f0b829e8fc9b0ffd77e",
140
+ "modules/api/src/models/signer.js": "1f94b6f93f80a64437da695fe222f5ace7c55b8a",
141
+ "modules/api/src/models/signing-backend.js": "09961d923782fc1e11dc447c80de56c2b2f8c31d",
142
+ "modules/api/src/models/signing-request.js": "2d4846b0c057e5734f6a4b09066416bcdd1affbc",
143
+ "modules/api/src/models/slide-selection.js": "d5d6b9e5da69b00bcc1573a3300567ee0f440386",
144
+ "modules/api/src/models/slide.js": "2c6d3a40aa80366537fa278503a2af44852736de",
145
+ "modules/api/src/models/snapshot.js": "199af68cb40f234375f4ef62398f6239879293eb",
146
+ "modules/api/src/models/snapshot.spec.js": "583eedfb79e5f6df31543598116cf2b15082fbf7",
147
+ "modules/api/src/models/sub-slide.js": "a27fee2928d848a4511a0dd0920705e1783b17f5",
148
+ "modules/api/src/models/support-ticket.js": "7f29e6489042d44b8b7b51ab3ae6c1ce7cb3fdc7",
149
+ "modules/api/src/models/tag.js": "f1eac63baa56639dab996081c846742ae7bff2c0",
150
+ "modules/api/src/models/team.js": "e754c590e8a57e9815b297001081b245de0b8d77",
151
+ "modules/api/src/models/template.js": "e80be6f32e82b1b4c155611fa36a3d9b25939c16",
152
+ "modules/api/src/models/tenancy.js": "966af3d4280e854077209ac691494a82573f7806",
153
+ "modules/api/src/models/timing-log.js": "b86ee0fe5ecb0cf948f442fa215656b0dc26cd09",
154
+ "modules/api/src/models/timing-log.spec.js": "c60d04eaaf66da38bd131ad9368c07b1d90d426d",
155
+ "modules/api/src/models/token.js": "29a7b9e73271e9faca389fd03754b450c51b4b33",
156
+ "modules/api/src/models/transcribe-socket.js": "eaa72b3be6db99293efd09fc8738a6fb32116c7a",
157
+ "modules/api/src/models/upload.js": "be0d26ad0392a259b271b4c87e2931527fb8dc70",
158
+ "modules/api/src/models/user.js": "9f574cec9d1957c81be8ec7fa9acb99741a14866",
159
+ "modules/api/src/models/user.spec.js": "7e6f3b8909fe7c0df9b281375ed301c73fbce7d1",
160
+ "modules/api/src/presentation.js": "42051579941c98eef6335b5178621da4aedcfe34",
161
+ "modules/api/src/presentation/appointment-presentation.js": "c76d8362f34344e8e4b68da7c05ec67289d65344",
162
+ "modules/api/src/presentation/base-presentation-collection.js": "c4be3b78cc105e00b1455fe0c7c3ce580959f0a0",
163
+ "modules/api/src/presentation/base-presentation-model.js": "127d9cd450b13520bd7f32703c413bd217a45b83",
164
+ "modules/api/src/presentation/base-presentation-model.spec.js": "2aefa4868b6f24b8fa428d23a2f9601860c48177",
165
+ "modules/api/src/presentation/presentation-deck.js": "68e50f419d36215999b1804dd146d930735be1c9",
166
+ "modules/api/src/presentation/presentation-deck.spec.js": "96a1f522fbc6d2f6ad90ff831e5c3f36ced5ef4e",
167
+ "modules/api/src/presentation/presentation-decks.js": "d22cc2d74886a55d6086e598e8ccb01aad0fcad4",
168
+ "modules/api/src/presentation/presentation-section.js": "8a83c0b01772f5a94635bc34e31f64905143d23c",
169
+ "modules/api/src/presentation/presentation-section.spec.js": "ecbe0dd452befe11a03e2b461411b39e81a8d0f6",
170
+ "modules/api/src/presentation/presentation-sections.js": "7d8ae82b1b59899cc75d93bab6278d275594e367",
171
+ "modules/api/src/presentation/presentation-slide.js": "1ab44122b3f69ed8fe27081f974a6f4537e804b2",
172
+ "modules/api/src/presentation/presentation-slide.spec.js": "74d87b487672ed6f293e588363e94ce3335981d3",
173
+ "modules/api/src/presentation/presentation-slides.js": "1ec73eae0cc06c1c19aa8633ec7a52ccbe83f2a8",
174
+ "modules/api/src/presentation/presentation-subslide.js": "71b30552f1f00bc0849a81193b042d3a2ddedfb2",
175
+ "modules/api/src/presentation/presentation-subslide.spec.js": "6380401fa11c69254749faad31ef0a8faef2d515",
176
+ "modules/api/src/presentation/presentation-subslides.js": "e6e46e45efdd1af8202a07093aeb5629d374445c",
177
+ "modules/api/src/presentation/presentation.js": "094efe8eb17c522c2921ec67b961dfb472dfd9cf",
178
+ "modules/api/src/selections.js": "58aab5f958720f8221e31a9b211dbd7f968f9696",
179
+ "modules/api/src/state-register.js": "98b74d8d62bda69f19e1706cd3e8c3ee414b314b",
180
+ "modules/api/src/sync.js": "98bb0a898d40a9fee16d8aebbd858291f2f416a7",
181
+ "modules/api/src/utils.js": "345f4d0cdb2b0175b5f8a63bdc631aa3eaefa2c8",
182
+ "modules/api/src/utils.spec.js": "edc57a35fd88e6b6ab4fde025ca5998ea425bee6"
183
+ },
184
+ "arguments": "run-p build:* "
185
+ }
package/CHANGELOG.json CHANGED
@@ -1,6 +1,18 @@
1
1
  {
2
2
  "name": "@livepreso/api",
3
3
  "entries": [
4
+ {
5
+ "version": "6.56.1",
6
+ "tag": "@livepreso/api_v6.56.1",
7
+ "date": "Fri, 06 Mar 2026 02:29:21 GMT",
8
+ "comments": {
9
+ "patch": [
10
+ {
11
+ "comment": "Improve timing log code to use internal models"
12
+ }
13
+ ]
14
+ }
15
+ },
4
16
  {
5
17
  "version": "6.56.0",
6
18
  "tag": "@livepreso/api_v6.56.0",
package/CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
1
1
  # Change Log - @livepreso/api
2
2
 
3
- This log was last generated on Tue, 24 Feb 2026 21:01:56 GMT and should not be manually modified.
3
+ This log was last generated on Fri, 06 Mar 2026 02:29:21 GMT and should not be manually modified.
4
+
5
+ ## 6.56.1
6
+ Fri, 06 Mar 2026 02:29:21 GMT
7
+
8
+ ### Patches
9
+
10
+ - Improve timing log code to use internal models
4
11
 
5
12
  ## 6.56.0
6
13
  Tue, 24 Feb 2026 21:01:56 GMT
package/api.build.log ADDED
@@ -0,0 +1,9 @@
1
+ This project was not found in the build cache.
2
+
3
+ Invoking: run-p build:*
4
+
5
+
6
+ > @livepreso/api@6.48.0 build:cjs
7
+ > BABEL_ENV=cjs babel --delete-dir-on-start src/ --out-dir=cjs/ -s
8
+
9
+ Successfully compiled 163 files with Babel (4607ms).
@@ -0,0 +1 @@
1
+ This project does not define the caching behavior of the "test" command, so caching has been disabled.
package/api.test.log ADDED
@@ -0,0 +1,19 @@
1
+ Invoking: jest --coverage --coverageReporters=json
2
+ PASS src/presentation/base-presentation-model.spec.js (46.851 s)
3
+ PASS src/presentation/presentation-section.spec.js (47.38 s)
4
+ PASS src/models/timing-log.spec.js (47.233 s)
5
+ PASS src/presentation/presentation-slide.spec.js (47.313 s)
6
+ PASS src/collections/base.spec.js (47.337 s)
7
+ PASS src/presentation/presentation-deck.spec.js (47.104 s)
8
+ PASS src/models/base.spec.js (48.024 s)
9
+ PASS src/api.spec.js
10
+ PASS src/presentation/presentation-subslide.spec.js
11
+ PASS src/models/user.spec.js
12
+ PASS src/utils.spec.js
13
+ PASS src/auth.spec.js
14
+
15
+ Test Suites: 12 passed, 12 total
16
+ Tests: 140 passed, 140 total
17
+ Snapshots: 0 total
18
+ Time: 55.503 s, estimated 60 s
19
+ Ran all test suites.
@@ -11,14 +11,11 @@ require("./hosted-preso.js");
11
11
  require("./user.js");
12
12
  require("../collections/users.js");
13
13
  var _utils = require("../utils.js");
14
- var _auth = require("../auth.js");
15
14
  var _base = require("./base.js");
16
- var _lodash = _interopRequireDefault(require("lodash"));
17
15
  var _dedentJs = _interopRequireDefault(require("dedent-js"));
18
16
  var _log = _interopRequireDefault(require("../log.js"));
19
17
  var _moment = _interopRequireDefault(require("moment"));
20
18
  var _stateRegister = require("../state-register.js");
21
- var _superagent = _interopRequireDefault(require("superagent"));
22
19
  var _templateObject, _templateObject2;
23
20
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
24
21
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
@@ -121,6 +118,16 @@ var TimingLogModel = exports.TimingLogModel = _base.BaseModel.extend(/** @lends
121
118
  attendee_set: "UserCollection",
122
119
  remote_attendee_set: "UserCollection"
123
120
  },
121
+ ajaxConfig: function ajaxConfig() {
122
+ return {
123
+ headers: {
124
+ "content-type": "application/vnd.salespreso+timinglog"
125
+ }
126
+ };
127
+ },
128
+ toServer: function toServer() {
129
+ return this.toCompactFormat();
130
+ },
124
131
  /**
125
132
  * Returns the current timing log model in expected compact format.
126
133
  * @see http://doc.dev.salespreso.com/api/tracking.html#compact-representation
@@ -191,7 +198,8 @@ var TimingLogModel = exports.TimingLogModel = _base.BaseModel.extend(/** @lends
191
198
  * timingLog.addEvent("http://client.salespreso.com/api/sections/28/", moment());
192
199
  * timingLog.addEvent("http://client.salespreso.com/api/slides/100/", "2016-10-27T00:42:47.045186Z");
193
200
  */
194
- addEvent: function addEvent(path, timestamp) {
201
+ addEvent: function addEvent(_path, timestamp) {
202
+ var path = _path;
195
203
  if (!path) {
196
204
  throw new Error("A path is required");
197
205
  }
@@ -260,26 +268,18 @@ var TimingLogModel = exports.TimingLogModel = _base.BaseModel.extend(/** @lends
260
268
  });
261
269
  },
262
270
  save: function save(data, options) {
263
- var _this2 = this;
264
271
  if (!this.events.length) {
265
272
  return Promise.resolve(this.toJSON());
266
273
  }
267
- if (options && options.patch) {
268
- return _base.BaseModel.prototype.save.call(this, data, options);
269
- }
270
274
  this.checkEventsAscending();
271
- var method = this.isNew() ? "post" : "put";
272
- return _superagent.default[method](this.url()).set(_auth.Auth.headers).type("application/vnd.salespreso+timinglog").send(this.toCompactFormat()).then(function (_ref3) {
273
- var body = _ref3.body;
274
- _this2.set(_lodash.default.omit(body, ["events"]));
275
- return body;
276
- }).catch(_superagent.default.SuperagentPromiseError, function (e) {
277
- if (e.status === 405 && e.res.body.detail.indexOf("end") > -1) {
278
- // Don't send timing log events if the tracking is ended.
275
+ return _base.BaseModel.prototype.save.call(this, data, options).catch(function (e) {
276
+ var _e$response, _e$response$body, _e$response$body$deta;
277
+ if (e.status === 405 && ((_e$response = e.response) === null || _e$response === void 0 ? void 0 : (_e$response$body = _e$response.body) === null || _e$response$body === void 0 ? void 0 : (_e$response$body$deta = _e$response$body.detail) === null || _e$response$body$deta === void 0 ? void 0 : _e$response$body$deta.indexOf("end")) > -1) {
279
278
  throw e;
280
279
  }
281
280
  if (e.status >= 400 && e.status <= 499 || e.status === 503) {
282
- e.message += "\nBody: ".concat(JSON.stringify(e.res.body));
281
+ var _e$response2;
282
+ e.message += "\nBody: ".concat(JSON.stringify((_e$response2 = e.response) === null || _e$response2 === void 0 ? void 0 : _e$response2.body));
283
283
  }
284
284
  throw e;
285
285
  });
@@ -1 +1 @@
1
- {"version":3,"file":"timing-log.js","names":["require","_utils","_auth","_base","_lodash","_interopRequireDefault","_dedentJs","_log","_moment","_stateRegister","_superagent","_templateObject","_templateObject2","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","from","test","TimingLogModel","exports","BaseModel","extend","modelName","props","begin","type","required","end","events","default","created_date","modified_date","provisional","mode","values","children","appointment","hostedPreso","user","collections","attendee_set","remote_attendee_set","toCompactFormat","_this","getShortURL","url","moment","utc","format","DATE_FORMAT","startIndex","i","is_unfocused","map","_ref","timestamp","path","isUnfocused","millis","diff","duration","concat","attendeeSet","attendee","join","remoteAttendeeSet","modeTypeMap","present","view","prep","review","modeType","compact","dedent","_taggedTemplateLiteral2","addEvent","Error","time","push","DATE_FORMAT_T","checkEventsAscending","lastDate","sortEvents","_iterator","_step","event","isAfter","err","_ref2","log","warn","sort","event1","event2","save","data","options","_this2","Promise","resolve","toJSON","patch","prototype","method","isNew","superagent","set","Auth","headers","send","then","_ref3","body","_","omit","catch","SuperagentPromiseError","status","res","detail","indexOf","message","JSON","stringify","register"],"sources":["../../src/models/timing-log.js"],"sourcesContent":["import \"./appointment.js\";\nimport \"./hosted-preso.js\";\nimport \"./user.js\";\nimport \"../collections/users.js\";\n\nimport { DATE_FORMAT, DATE_FORMAT_T } from \"../utils.js\";\n\nimport { Auth } from \"../auth.js\";\nimport { BaseModel } from \"./base.js\";\nimport _ from \"lodash\";\nimport dedent from \"dedent-js\";\nimport { getShortURL } from \"../utils.js\";\nimport log from \"../log.js\";\nimport moment from \"moment\";\nimport { register } from \"../state-register.js\";\nimport superagent from \"superagent\";\n\n/**\n * @typedef Event\n * @type {object}\n * @property {string} path\n * @property {date} timestamp\n * @example\n * {\n *\t\"path\": \"https://client.salespreso.com/api/deckversions/4/\",\n *\t\"timestamp\": \"2016-10-27T00:42:47.045186Z\",\n *\t\"is_unfocused\": false,\n * }\n * @example\n * {\n * \t\"path\": \"https://client.salespreso.com/api/sections/28/\",\n * \t\"timestamp\": \"2016-10-27T00:43:59.430102Z\"\n *\t\"is_unfocused\": false,\n * }\n * @example\n * {\n * \t\"path\": \"https://client.salespreso.com/api/slides/380/\",\n * \t\"timestamp\": \"2016-10-27T00:45:01.038661Z\"\n *\t\"is_unfocused\": false,\n * }\n * @example\n * {\n * \t\"path\": \"https://client.salespreso.com/api/slides/378/\",\n * \t\"timestamp\": \"2016-10-27T00:45:13.495713Z\"\n *\t\"is_unfocused\": false,\n * }\n */\n\n/**\n * @constructor\n * @alias models.TimingLogModel\n * @extends models.BaseModel\n */\nexport const TimingLogModel = BaseModel.extend(\n\t/** @lends models.TimingLogModel# */ {\n\t\tmodelName: \"timinglogs\",\n\n\t\t/**\n\t\t * @property {date} begin\n\t\t * @property {date} end\n\t\t * @property {Event[]} events\n\t\t * @property {date} created_date\n\t\t * @property {date} modified_date\n\t\t */\n\t\tprops: {\n\t\t\tbegin: { type: \"date\", required: true },\n\t\t\tend: \"date\",\n\t\t\tevents: { type: \"array\", default: () => [] },\n\t\t\tcreated_date: \"date\",\n\t\t\tmodified_date: \"date\",\n\t\t\tprovisional: { type: \"boolean\", default: () => true },\n\t\t\tmode: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tdefault: () => \"view\",\n\t\t\t\tvalues: [\n\t\t\t\t\t// A salesperson has presented a preso\n\t\t\t\t\t\"present\",\n\t\t\t\t\t// A customer has viewed an online preso\n\t\t\t\t\t\"view\",\n\t\t\t\t\t// A prep user or salesperson as prepared a preso\n\t\t\t\t\t\"prep\",\n\t\t\t\t\t// A salesperson has reviewed an old preso\n\t\t\t\t\t\"review\",\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * @property {models.AppointmentModel} appointment\n\t\t * @property {models.UserModel} user\n\t\t */\n\t\tchildren: {\n\t\t\tappointment: \"AppointmentModel\",\n\t\t\thostedPreso: \"HostedPresoModel\",\n\t\t\tuser: \"UserModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.UserCollection} attendee_set\n\t\t * @property {collections.UserCollection} remote_attendee_set\n\t\t */\n\t\tcollections: {\n\t\t\tattendee_set: \"UserCollection\",\n\t\t\tremote_attendee_set: \"UserCollection\",\n\t\t},\n\n\t\t/**\n\t\t * Returns the current timing log model in expected compact format.\n\t\t * @see http://doc.dev.salespreso.com/api/tracking.html#compact-representation\n\t\t * @returns {string}\n\t\t */\n\t\ttoCompactFormat() {\n\t\t\tconst user = getShortURL(this.user.url());\n\n\t\t\tconst url = getShortURL(\n\t\t\t\tthis.hostedPreso ? this.hostedPreso.url() : this.appointment.url(),\n\t\t\t);\n\t\t\t// At this point, the expected output should have a space instead of a T in this\n\t\t\t// date format.\n\t\t\tconst begin = moment.utc(this.begin).format(DATE_FORMAT);\n\n\t\t\t// Strip out all unfocused events from the start (including any that are\n\t\t\t// in a row), as these will throw errors server side.\n\t\t\tlet startIndex = 0;\n\t\t\tfor (let i = 0; i < this.events.length; i++) {\n\t\t\t\tif (this.events[i].is_unfocused) {\n\t\t\t\t\tstartIndex = i + 1;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst events = this.events\n\t\t\t\t.slice(startIndex)\n\t\t\t\t.map(({ timestamp, path, is_unfocused: isUnfocused }) => {\n\t\t\t\t\tconst millis = moment(timestamp).diff(moment(this.begin), \"millis\");\n\n\t\t\t\t\tif (isUnfocused) {\n\t\t\t\t\t\tconst duration = moment\n\t\t\t\t\t\t\t.utc(timestamp)\n\t\t\t\t\t\t\t.diff(moment.utc(begin), \"milliseconds\");\n\n\t\t\t\t\t\treturn `${duration}ms unfocused`;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn `${millis}ms ${getShortURL(path)}`;\n\t\t\t\t});\n\n\t\t\tconst attendeeSet =\n\t\t\t\tthis.attendee_set && this.attendee_set.length\n\t\t\t\t\t? `\\n${this.attendee_set\n\t\t\t\t\t\t\t.map((attendee) => getShortURL(attendee.url()))\n\t\t\t\t\t\t\t.join(\" \")} attending`\n\t\t\t\t\t: \"\";\n\n\t\t\tconst remoteAttendeeSet =\n\t\t\t\tthis.remote_attendee_set && this.remote_attendee_set.length\n\t\t\t\t\t? `\\n${this.remote_attendee_set\n\t\t\t\t\t\t\t.map((attendee) => getShortURL(attendee.url()))\n\t\t\t\t\t\t\t.join(\" \")} attending remotely`\n\t\t\t\t\t: \"\";\n\n\t\t\tconst modeTypeMap = {\n\t\t\t\tpresent: \"viewing\",\n\t\t\t\tview: \"viewing\",\n\t\t\t\tprep: \"preparing\",\n\t\t\t\treview: \"reviewing\",\n\t\t\t};\n\n\t\t\tconst modeType = modeTypeMap[this.mode];\n\n\t\t\t// Note the newline is required at the end for the parser\n\t\t\t// to understand this\n\t\t\tlet compact = dedent`\n\t\t\t${user} ${modeType} ${url}${attendeeSet}${remoteAttendeeSet}\n\t\t\t${begin}\n\t\t\t${events.join(\"\\n\")}\\n\n\t\t`;\n\n\t\t\tif (this.end) {\n\t\t\t\tconst end = moment.utc(this.end).format(DATE_FORMAT);\n\t\t\t\tcompact += end;\n\t\t\t\tif (this.provisional) {\n\t\t\t\t\tcompact += \" provisional\";\n\t\t\t\t}\n\t\t\t\tcompact += \"\\n\";\n\t\t\t}\n\n\t\t\treturn compact;\n\t\t},\n\n\t\t/**\n\t\t * Add a new event to the log\n\t\t * @param {string} path - URL path. Matches a deck related endpoint (deckversion, section, slide. etc.)\n\t\t * @param {any} timestamp - A timestamp for the event - note that it can be anything that can be passed to moment\n\t\t * @example\n\t\t * const timingLog = new TimingLogModel();\n\t\t * timingLog.addEvent(\"http://client.salespreso.com/api/sections/28/\", moment());\n\t\t * timingLog.addEvent(\"http://client.salespreso.com/api/slides/100/\", \"2016-10-27T00:42:47.045186Z\");\n\t\t */\n\t\taddEvent(path, timestamp) {\n\t\t\tif (!path) {\n\t\t\t\tthrow new Error(\"A path is required\");\n\t\t\t}\n\t\t\tif (!timestamp) {\n\t\t\t\tthrow new Error(\"A timestamp is required\");\n\t\t\t}\n\n\t\t\tconst time = moment.utc(timestamp);\n\t\t\tconst isUnfocused = path === \"unfocused\";\n\n\t\t\tif (isUnfocused) {\n\t\t\t\tif (!this.events.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (let i = this.events.length - 1; i >= 0; i--) {\n\t\t\t\t\tif (!this.events[i].is_unfocused) {\n\t\t\t\t\t\tpath = this.events[i].path;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.events.push({\n\t\t\t\ttimestamp: time.format(DATE_FORMAT_T),\n\t\t\t\tpath,\n\t\t\t\tis_unfocused: isUnfocused,\n\t\t\t});\n\t\t},\n\n\t\tcheckEventsAscending() {\n\t\t\tlet lastDate = null;\n\t\t\tlet sortEvents = false;\n\n\t\t\tfor (const event of this.events) {\n\t\t\t\tconst timestamp = moment(event.timestamp);\n\n\t\t\t\tif (lastDate && lastDate.isAfter(timestamp)) {\n\t\t\t\t\tsortEvents = true;\n\t\t\t\t}\n\n\t\t\t\tlastDate = timestamp;\n\t\t\t}\n\n\t\t\tif (sortEvents) {\n\t\t\t\tconst events = this.events.map(({ timestamp, path }) => {\n\t\t\t\t\treturn `${timestamp} ${getShortURL(path)}`;\n\t\t\t\t});\n\t\t\t\tlog.warn(dedent`\n\t\t\t\t\tEvents must be in ascending order. Instead we found:\n\n\t\t\t\t\t${this.begin} - begin\n\t\t\t\t\t${events.join(\"\\n\")}\n\t\t\t\t\t${this.end} - end\n\t\t\t\t`);\n\n\t\t\t\tthis.sortEvents();\n\t\t\t}\n\t\t},\n\n\t\t// We can't trust the server to give us events in the\n\t\t// correct order, so we sort them when necessary\n\t\tsortEvents() {\n\t\t\tthis.events.sort((event1, event2) => {\n\t\t\t\tconst diff = moment(event2.timestamp).diff(moment(event1.timestamp));\n\n\t\t\t\tif (diff > 0) {\n\t\t\t\t\treturn -1;\n\t\t\t\t} else if (diff < 0) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\n\t\t\t\treturn 0;\n\t\t\t});\n\t\t},\n\n\t\tsave(data, options) {\n\t\t\tif (!this.events.length) {\n\t\t\t\treturn Promise.resolve(this.toJSON());\n\t\t\t}\n\n\t\t\tif (options && options.patch) {\n\t\t\t\treturn BaseModel.prototype.save.call(this, data, options);\n\t\t\t}\n\n\t\t\tthis.checkEventsAscending();\n\n\t\t\tconst method = this.isNew() ? \"post\" : \"put\";\n\n\t\t\treturn superagent[method](this.url())\n\t\t\t\t.set(Auth.headers)\n\t\t\t\t.type(\"application/vnd.salespreso+timinglog\")\n\t\t\t\t.send(this.toCompactFormat())\n\t\t\t\t.then(({ body }) => {\n\t\t\t\t\tthis.set(_.omit(body, [\"events\"]));\n\t\t\t\t\treturn body;\n\t\t\t\t})\n\t\t\t\t.catch(superagent.SuperagentPromiseError, (e) => {\n\t\t\t\t\tif (e.status === 405 && e.res.body.detail.indexOf(\"end\") > -1) {\n\t\t\t\t\t\t// Don't send timing log events if the tracking is ended.\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ((e.status >= 400 && e.status <= 499) || e.status === 503) {\n\t\t\t\t\t\te.message += `\\nBody: ${JSON.stringify(e.res.body)}`;\n\t\t\t\t\t}\n\t\t\t\t\tthrow e;\n\t\t\t\t});\n\t\t},\n\t},\n);\n\nregister(\"TimingLogModel\", TimingLogModel);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"timing-log.js","names":["require","_utils","_base","_dedentJs","_interopRequireDefault","_log","_moment","_stateRegister","_templateObject","_templateObject2","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","from","test","TimingLogModel","exports","BaseModel","extend","modelName","props","begin","type","required","end","events","default","created_date","modified_date","provisional","mode","values","children","appointment","hostedPreso","user","collections","attendee_set","remote_attendee_set","ajaxConfig","headers","toServer","toCompactFormat","_this","getShortURL","url","moment","utc","format","DATE_FORMAT","startIndex","i","is_unfocused","map","_ref","timestamp","path","isUnfocused","millis","diff","duration","concat","attendeeSet","attendee","join","remoteAttendeeSet","modeTypeMap","present","view","prep","review","modeType","compact","dedent","_taggedTemplateLiteral2","addEvent","_path","Error","time","push","DATE_FORMAT_T","checkEventsAscending","lastDate","sortEvents","_iterator","_step","event","isAfter","err","_ref2","log","warn","sort","event1","event2","save","data","options","Promise","resolve","toJSON","prototype","catch","_e$response","_e$response$body","_e$response$body$deta","status","response","body","detail","indexOf","_e$response2","message","JSON","stringify","register"],"sources":["../../src/models/timing-log.js"],"sourcesContent":["import \"./appointment.js\";\nimport \"./hosted-preso.js\";\nimport \"./user.js\";\nimport \"../collections/users.js\";\n\nimport { DATE_FORMAT, DATE_FORMAT_T } from \"../utils.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport dedent from \"dedent-js\";\nimport { getShortURL } from \"../utils.js\";\nimport log from \"../log.js\";\nimport moment from \"moment\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @typedef Event\n * @type {object}\n * @property {string} path\n * @property {date} timestamp\n * @example\n * {\n *\t\"path\": \"https://client.salespreso.com/api/deckversions/4/\",\n *\t\"timestamp\": \"2016-10-27T00:42:47.045186Z\",\n *\t\"is_unfocused\": false,\n * }\n * @example\n * {\n * \t\"path\": \"https://client.salespreso.com/api/sections/28/\",\n * \t\"timestamp\": \"2016-10-27T00:43:59.430102Z\"\n *\t\"is_unfocused\": false,\n * }\n * @example\n * {\n * \t\"path\": \"https://client.salespreso.com/api/slides/380/\",\n * \t\"timestamp\": \"2016-10-27T00:45:01.038661Z\"\n *\t\"is_unfocused\": false,\n * }\n * @example\n * {\n * \t\"path\": \"https://client.salespreso.com/api/slides/378/\",\n * \t\"timestamp\": \"2016-10-27T00:45:13.495713Z\"\n *\t\"is_unfocused\": false,\n * }\n */\n\n/**\n * @constructor\n * @alias models.TimingLogModel\n * @extends models.BaseModel\n */\nexport const TimingLogModel = BaseModel.extend(\n\t/** @lends models.TimingLogModel# */ {\n\t\tmodelName: \"timinglogs\",\n\n\t\t/**\n\t\t * @property {date} begin\n\t\t * @property {date} end\n\t\t * @property {Event[]} events\n\t\t * @property {date} created_date\n\t\t * @property {date} modified_date\n\t\t */\n\t\tprops: {\n\t\t\tbegin: { type: \"date\", required: true },\n\t\t\tend: \"date\",\n\t\t\tevents: { type: \"array\", default: () => [] },\n\t\t\tcreated_date: \"date\",\n\t\t\tmodified_date: \"date\",\n\t\t\tprovisional: { type: \"boolean\", default: () => true },\n\t\t\tmode: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tdefault: () => \"view\",\n\t\t\t\tvalues: [\n\t\t\t\t\t// A salesperson has presented a preso\n\t\t\t\t\t\"present\",\n\t\t\t\t\t// A customer has viewed an online preso\n\t\t\t\t\t\"view\",\n\t\t\t\t\t// A prep user or salesperson as prepared a preso\n\t\t\t\t\t\"prep\",\n\t\t\t\t\t// A salesperson has reviewed an old preso\n\t\t\t\t\t\"review\",\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * @property {models.AppointmentModel} appointment\n\t\t * @property {models.UserModel} user\n\t\t */\n\t\tchildren: {\n\t\t\tappointment: \"AppointmentModel\",\n\t\t\thostedPreso: \"HostedPresoModel\",\n\t\t\tuser: \"UserModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.UserCollection} attendee_set\n\t\t * @property {collections.UserCollection} remote_attendee_set\n\t\t */\n\t\tcollections: {\n\t\t\tattendee_set: \"UserCollection\",\n\t\t\tremote_attendee_set: \"UserCollection\",\n\t\t},\n\n\t\tajaxConfig() {\n\t\t\treturn {\n\t\t\t\theaders: {\n\t\t\t\t\t\"content-type\": \"application/vnd.salespreso+timinglog\",\n\t\t\t\t},\n\t\t\t};\n\t\t},\n\n\t\ttoServer() {\n\t\t\treturn this.toCompactFormat();\n\t\t},\n\n\t\t/**\n\t\t * Returns the current timing log model in expected compact format.\n\t\t * @see http://doc.dev.salespreso.com/api/tracking.html#compact-representation\n\t\t * @returns {string}\n\t\t */\n\t\ttoCompactFormat() {\n\t\t\tconst user = getShortURL(this.user.url());\n\n\t\t\tconst url = getShortURL(\n\t\t\t\tthis.hostedPreso ? this.hostedPreso.url() : this.appointment.url(),\n\t\t\t);\n\t\t\t// At this point, the expected output should have a space instead of a T in this\n\t\t\t// date format.\n\t\t\tconst begin = moment.utc(this.begin).format(DATE_FORMAT);\n\n\t\t\t// Strip out all unfocused events from the start (including any that are\n\t\t\t// in a row), as these will throw errors server side.\n\t\t\tlet startIndex = 0;\n\t\t\tfor (let i = 0; i < this.events.length; i++) {\n\t\t\t\tif (this.events[i].is_unfocused) {\n\t\t\t\t\tstartIndex = i + 1;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst events = this.events\n\t\t\t\t.slice(startIndex)\n\t\t\t\t.map(({ timestamp, path, is_unfocused: isUnfocused }) => {\n\t\t\t\t\tconst millis = moment(timestamp).diff(moment(this.begin), \"millis\");\n\n\t\t\t\t\tif (isUnfocused) {\n\t\t\t\t\t\tconst duration = moment\n\t\t\t\t\t\t\t.utc(timestamp)\n\t\t\t\t\t\t\t.diff(moment.utc(begin), \"milliseconds\");\n\n\t\t\t\t\t\treturn `${duration}ms unfocused`;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn `${millis}ms ${getShortURL(path)}`;\n\t\t\t\t});\n\n\t\t\tconst attendeeSet =\n\t\t\t\tthis.attendee_set && this.attendee_set.length\n\t\t\t\t\t? `\\n${this.attendee_set\n\t\t\t\t\t\t\t.map((attendee) => getShortURL(attendee.url()))\n\t\t\t\t\t\t\t.join(\" \")} attending`\n\t\t\t\t\t: \"\";\n\n\t\t\tconst remoteAttendeeSet =\n\t\t\t\tthis.remote_attendee_set && this.remote_attendee_set.length\n\t\t\t\t\t? `\\n${this.remote_attendee_set\n\t\t\t\t\t\t\t.map((attendee) => getShortURL(attendee.url()))\n\t\t\t\t\t\t\t.join(\" \")} attending remotely`\n\t\t\t\t\t: \"\";\n\n\t\t\tconst modeTypeMap = {\n\t\t\t\tpresent: \"viewing\",\n\t\t\t\tview: \"viewing\",\n\t\t\t\tprep: \"preparing\",\n\t\t\t\treview: \"reviewing\",\n\t\t\t};\n\n\t\t\tconst modeType = modeTypeMap[this.mode];\n\n\t\t\t// Note the newline is required at the end for the parser\n\t\t\t// to understand this\n\t\t\tlet compact = dedent`\n\t\t\t${user} ${modeType} ${url}${attendeeSet}${remoteAttendeeSet}\n\t\t\t${begin}\n\t\t\t${events.join(\"\\n\")}\\n\n\t\t`;\n\n\t\t\tif (this.end) {\n\t\t\t\tconst end = moment.utc(this.end).format(DATE_FORMAT);\n\t\t\t\tcompact += end;\n\t\t\t\tif (this.provisional) {\n\t\t\t\t\tcompact += \" provisional\";\n\t\t\t\t}\n\t\t\t\tcompact += \"\\n\";\n\t\t\t}\n\n\t\t\treturn compact;\n\t\t},\n\n\t\t/**\n\t\t * Add a new event to the log\n\t\t * @param {string} path - URL path. Matches a deck related endpoint (deckversion, section, slide. etc.)\n\t\t * @param {any} timestamp - A timestamp for the event - note that it can be anything that can be passed to moment\n\t\t * @example\n\t\t * const timingLog = new TimingLogModel();\n\t\t * timingLog.addEvent(\"http://client.salespreso.com/api/sections/28/\", moment());\n\t\t * timingLog.addEvent(\"http://client.salespreso.com/api/slides/100/\", \"2016-10-27T00:42:47.045186Z\");\n\t\t */\n\t\taddEvent(_path, timestamp) {\n\t\t\tlet path = _path;\n\n\t\t\tif (!path) {\n\t\t\t\tthrow new Error(\"A path is required\");\n\t\t\t}\n\t\t\tif (!timestamp) {\n\t\t\t\tthrow new Error(\"A timestamp is required\");\n\t\t\t}\n\n\t\t\tconst time = moment.utc(timestamp);\n\t\t\tconst isUnfocused = path === \"unfocused\";\n\n\t\t\tif (isUnfocused) {\n\t\t\t\tif (!this.events.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (let i = this.events.length - 1; i >= 0; i--) {\n\t\t\t\t\tif (!this.events[i].is_unfocused) {\n\t\t\t\t\t\tpath = this.events[i].path;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.events.push({\n\t\t\t\ttimestamp: time.format(DATE_FORMAT_T),\n\t\t\t\tpath,\n\t\t\t\tis_unfocused: isUnfocused,\n\t\t\t});\n\t\t},\n\n\t\tcheckEventsAscending() {\n\t\t\tlet lastDate = null;\n\t\t\tlet sortEvents = false;\n\n\t\t\tfor (const event of this.events) {\n\t\t\t\tconst timestamp = moment(event.timestamp);\n\n\t\t\t\tif (lastDate && lastDate.isAfter(timestamp)) {\n\t\t\t\t\tsortEvents = true;\n\t\t\t\t}\n\n\t\t\t\tlastDate = timestamp;\n\t\t\t}\n\n\t\t\tif (sortEvents) {\n\t\t\t\tconst events = this.events.map(({ timestamp, path }) => {\n\t\t\t\t\treturn `${timestamp} ${getShortURL(path)}`;\n\t\t\t\t});\n\t\t\t\tlog.warn(dedent`\n\t\t\t\t\tEvents must be in ascending order. Instead we found:\n\n\t\t\t\t\t${this.begin} - begin\n\t\t\t\t\t${events.join(\"\\n\")}\n\t\t\t\t\t${this.end} - end\n\t\t\t\t`);\n\n\t\t\t\tthis.sortEvents();\n\t\t\t}\n\t\t},\n\n\t\t// We can't trust the server to give us events in the\n\t\t// correct order, so we sort them when necessary\n\t\tsortEvents() {\n\t\t\tthis.events.sort((event1, event2) => {\n\t\t\t\tconst diff = moment(event2.timestamp).diff(moment(event1.timestamp));\n\n\t\t\t\tif (diff > 0) {\n\t\t\t\t\treturn -1;\n\t\t\t\t} else if (diff < 0) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\n\t\t\t\treturn 0;\n\t\t\t});\n\t\t},\n\n\t\tsave(data, options) {\n\t\t\tif (!this.events.length) {\n\t\t\t\treturn Promise.resolve(this.toJSON());\n\t\t\t}\n\n\t\t\tthis.checkEventsAscending();\n\n\t\t\treturn BaseModel.prototype.save.call(this, data, options).catch((e) => {\n\t\t\t\tif (e.status === 405 && e.response?.body?.detail?.indexOf(\"end\") > -1) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\tif ((e.status >= 400 && e.status <= 499) || e.status === 503) {\n\t\t\t\t\te.message += `\\nBody: ${JSON.stringify(e.response?.body)}`;\n\t\t\t\t}\n\t\t\t\tthrow e;\n\t\t\t});\n\t\t},\n\t},\n);\n\nregister(\"TimingLogModel\", TimingLogModel);\n"],"mappings":"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","ignoreList":[]}
package/cjs/sync.js CHANGED
@@ -131,12 +131,24 @@ var ajaxSync = exports.ajaxSync = function ajaxSync(method, model, options) {
131
131
  // Combine generated headers with user's headers.
132
132
  if (ajaxConfig.headers) {
133
133
  for (var key in ajaxConfig.headers) {
134
- request.header[key.toLowerCase()] = ajaxConfig.headers[key];
134
+ var lowerKey = key.toLowerCase();
135
+ // Use superagent's .type() method to explicitly set content-type
136
+ // This ensures superagent respects the content-type and doesn't override it
137
+ if (lowerKey === "content-type") {
138
+ request.type(ajaxConfig.headers[key].split(";")[0]);
139
+ } else {
140
+ request.header[lowerKey] = ajaxConfig.headers[key];
141
+ }
135
142
  }
136
143
  }
137
144
  if (options.headers) {
138
145
  for (var _key2 in options.headers) {
139
- request.header[_key2.toLowerCase()] = options.headers[_key2];
146
+ var _lowerKey = _key2.toLowerCase();
147
+ if (_lowerKey === "content-type") {
148
+ request.type(options.headers[_key2].split(";")[0]);
149
+ } else {
150
+ request.header[_lowerKey] = options.headers[_key2];
151
+ }
140
152
  }
141
153
  }
142
154
 
package/cjs/sync.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","names":["_bluebird","_interopRequireDefault","require","_superagentBluebirdPromise","_lodash","_log","_middleware","_superagent","defaults","_","assign","urlError","Error","methodMap","exports","create","update","patch","delete","read","defaultFetchURL","_ref","model","log","warn","url","buildURL","_ref2","method","split","sync","defaultOpts","_this","syncArguments","arguments","syncActions","middlewares","forEach","middleware","push","apply","Promise","all","then","_len","length","newOpts","Array","_key","joinedOpts","merge","concat","_toConsumableArray2","default","flat","ajaxSync","call","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","intercept","resolve","trigger","ajaxConfig","headers","key","header","toLowerCase","cachedResponse","JSON","parse","text","each","success","catch","error","message","timeout","e","set","emit","superagent","SuperagentPromiseError","res","body","status","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\";\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\n\t// If not a GET request, strip the query params from the url\n\tif (method !== \"read\") {\n\t\treturn url.split(\"?\")[0];\n\t}\n\n\treturn url;\n};\n\nexport const sync = function (method, model, defaultOpts) {\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((...newOpts) => {\n\t\t\tconst joinedOpts = _.merge({}, defaultOpts, ...newOpts.flat());\n\t\t\treturn ajaxSync.call(this, method, model, joinedOpts);\n\t\t});\n\t}\n\treturn ajaxSync.call(this, method, model, defaultOpts);\n};\n\nexport const ajaxSync = function (method, model, options) {\n\tconst type = methodMap[method];\n\n\t// Default options, unless specified.\n\tdefaults(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, model, options);\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.cachedResponse) {\n\t\treturn Promise.resolve(options.cachedResponse)\n\t\t\t.then(getNextMiddleware(request))\n\t\t\t.then((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((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// 60 seconds is the timeout the server has, so we go for 65 seconds,\n\t\t\t// so we give the chance to the server to time out first - helps with\n\t\t\t// debugging.\n\t\t\t.timeout(65 * 1000)\n\t\t\t.then(getNextMiddleware(request))\n\t\t\t.then((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((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":[]}
1
+ {"version":3,"file":"sync.js","names":["_bluebird","_interopRequireDefault","require","_superagentBluebirdPromise","_lodash","_log","_middleware","_superagent","defaults","_","assign","urlError","Error","methodMap","exports","create","update","patch","delete","read","defaultFetchURL","_ref","model","log","warn","url","buildURL","_ref2","method","split","sync","defaultOpts","_this","syncArguments","arguments","syncActions","middlewares","forEach","middleware","push","apply","Promise","all","then","_len","length","newOpts","Array","_key","joinedOpts","merge","concat","_toConsumableArray2","default","flat","ajaxSync","call","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","intercept","resolve","trigger","ajaxConfig","headers","key","lowerKey","toLowerCase","header","cachedResponse","JSON","parse","text","each","success","catch","error","message","timeout","e","set","emit","superagent","SuperagentPromiseError","res","body","status","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\";\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\n\t// If not a GET request, strip the query params from the url\n\tif (method !== \"read\") {\n\t\treturn url.split(\"?\")[0];\n\t}\n\n\treturn url;\n};\n\nexport const sync = function (method, model, defaultOpts) {\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((...newOpts) => {\n\t\t\tconst joinedOpts = _.merge({}, defaultOpts, ...newOpts.flat());\n\t\t\treturn ajaxSync.call(this, method, model, joinedOpts);\n\t\t});\n\t}\n\treturn ajaxSync.call(this, method, model, defaultOpts);\n};\n\nexport const ajaxSync = function (method, model, options) {\n\tconst type = methodMap[method];\n\n\t// Default options, unless specified.\n\tdefaults(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, model, options);\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\tconst lowerKey = key.toLowerCase();\n\t\t\t// Use superagent's .type() method to explicitly set content-type\n\t\t\t// This ensures superagent respects the content-type and doesn't override it\n\t\t\tif (lowerKey === \"content-type\") {\n\t\t\t\trequest.type(ajaxConfig.headers[key].split(\";\")[0]);\n\t\t\t} else {\n\t\t\t\trequest.header[lowerKey] = ajaxConfig.headers[key];\n\t\t\t}\n\t\t}\n\t}\n\n\tif (options.headers) {\n\t\tfor (const key in options.headers) {\n\t\t\tconst lowerKey = key.toLowerCase();\n\t\t\tif (lowerKey === \"content-type\") {\n\t\t\t\trequest.type(options.headers[key].split(\";\")[0]);\n\t\t\t} else {\n\t\t\t\trequest.header[lowerKey] = options.headers[key];\n\t\t\t}\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.cachedResponse) {\n\t\treturn Promise.resolve(options.cachedResponse)\n\t\t\t.then(getNextMiddleware(request))\n\t\t\t.then((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((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// 60 seconds is the timeout the server has, so we go for 65 seconds,\n\t\t\t// so we give the chance to the server to time out first - helps with\n\t\t\t// debugging.\n\t\t\t.timeout(65 * 1000)\n\t\t\t.then(getNextMiddleware(request))\n\t\t\t.then((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((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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@livepreso/api",
3
3
  "license": "UNLICENSED",
4
- "version": "6.56.0",
4
+ "version": "6.56.1",
5
5
  "description": "Everything to do with talking to the SalePreso API",
6
6
  "main": "index.js",
7
7
  "module": "esm/index.js",
@@ -1,3 +1,13 @@
1
- Browserslist: browsers data (caniuse-lite) is 9 months old. Please run:
2
- npx update-browserslist-db@latest
3
- Why you should do it regularly: https://github.com/browserslist/update-db#readme
1
+ npm verbose cli /home/adam/.nvm/versions/node/v24.12.0/bin/node /home/adam/.nvm/versions/node/v24.12.0/bin/npm
2
+ npm info using npm@11.6.2
3
+ npm info using node@v24.12.0
4
+ npm verbose title npm run build:cjs
5
+ npm verbose argv "run" "build:cjs"
6
+ npm verbose logfile logs-max:10 dir:/home/adam/.npm/_logs/2026-02-17T02_45_57_253Z-
7
+ npm verbose logfile /home/adam/.npm/_logs/2026-02-17T02_45_57_253Z-debug-0.log
8
+ npm verbose cwd /home/adam/Programming/work/livepreso/modules/api
9
+ npm verbose os Linux 6.14.0-29-generic
10
+ npm verbose node v24.12.0
11
+ npm verbose npm v11.6.2
12
+ npm verbose exit 0
13
+ npm info ok