@livepreso/api 6.45.0 → 6.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.rush/temp/1aebf46f78ad5c45f82f8147751890adb37bef9d.log +10 -0
- package/.rush/temp/3cdc82c352e8ed90607952873f3aa4c200490874.log +10 -0
- package/.rush/temp/5489ab737e406518983c16c57fc3e1edc07c0341.log +10 -0
- package/.rush/temp/924652444ab5a6063f328a2217123a2227058896.log +10 -0
- package/.rush/temp/9f2030f96d62f3e38052e35201819a216566f14f.log +10 -0
- package/.rush/temp/operation/test/all.log +19 -0
- package/.rush/temp/operation/test/state.json +3 -0
- package/.rush/temp/shrinkwrap-deps.json +563 -546
- package/CHANGELOG.json +12 -0
- package/CHANGELOG.md +8 -1
- package/README.md +4 -4
- package/api.build.log +2 -4
- package/api.test.cache.log +1 -0
- package/api.test.log +19 -0
- package/cjs/api.js +18 -17
- package/cjs/api.js.map +1 -1
- package/cjs/api.spec.js +0 -4
- package/cjs/api.spec.js.map +1 -1
- package/cjs/auth.js +5 -32
- package/cjs/auth.js.map +1 -1
- package/cjs/auth.spec.js +52 -77
- package/cjs/auth.spec.js.map +1 -1
- package/cjs/caching.js +2 -7
- package/cjs/caching.js.map +1 -1
- package/cjs/collections/activity.js +16 -56
- package/cjs/collections/activity.js.map +1 -1
- package/cjs/collections/adjunct-sections.js +1 -10
- package/cjs/collections/adjunct-sections.js.map +1 -1
- package/cjs/collections/adjunct-slides.js +1 -10
- package/cjs/collections/adjunct-slides.js.map +1 -1
- package/cjs/collections/adjunct-sub-slides.js +1 -9
- package/cjs/collections/adjunct-sub-slides.js.map +1 -1
- package/cjs/collections/appointment-adjunct-tags.js +1 -9
- package/cjs/collections/appointment-adjunct-tags.js.map +1 -1
- package/cjs/collections/appointment-deckversion-tags.js +1 -9
- package/cjs/collections/appointment-deckversion-tags.js.map +1 -1
- package/cjs/collections/appointment-duplicates.js +1 -9
- package/cjs/collections/appointment-duplicates.js.map +1 -1
- package/cjs/collections/appointment-editors.js +1 -10
- package/cjs/collections/appointment-editors.js.map +1 -1
- package/cjs/collections/appointment-section-tags.js +1 -9
- package/cjs/collections/appointment-section-tags.js.map +1 -1
- package/cjs/collections/appointment-slide-tags.js +1 -9
- package/cjs/collections/appointment-slide-tags.js.map +1 -1
- package/cjs/collections/appointment-tags.js +66 -103
- package/cjs/collections/appointment-tags.js.map +1 -1
- package/cjs/collections/appointment-templates.js +27 -0
- package/cjs/collections/appointment-templates.js.map +1 -0
- package/cjs/collections/appointments.js +9 -29
- package/cjs/collections/appointments.js.map +1 -1
- package/cjs/collections/assets.js +1 -9
- package/cjs/collections/assets.js.map +1 -1
- package/cjs/collections/auto-adjuncts.js +6 -21
- package/cjs/collections/auto-adjuncts.js.map +1 -1
- package/cjs/collections/base.js +37 -111
- package/cjs/collections/base.js.map +1 -1
- package/cjs/collections/base.spec.js +186 -233
- package/cjs/collections/base.spec.js.map +1 -1
- package/cjs/collections/cms-vals.js +9 -16
- package/cjs/collections/cms-vals.js.map +1 -1
- package/cjs/collections/contact-phones.js +20 -0
- package/cjs/collections/contact-phones.js.map +1 -0
- package/cjs/collections/contacts.js +1 -9
- package/cjs/collections/contacts.js.map +1 -1
- package/cjs/collections/created-assets.js +1 -10
- package/cjs/collections/created-assets.js.map +1 -1
- package/cjs/collections/customers.js +1 -9
- package/cjs/collections/customers.js.map +1 -1
- package/cjs/collections/deck-notes.js +1 -10
- package/cjs/collections/deck-notes.js.map +1 -1
- package/cjs/collections/deck-version-screenshots.js +4 -17
- package/cjs/collections/deck-version-screenshots.js.map +1 -1
- package/cjs/collections/deck-versions.js +5 -20
- package/cjs/collections/deck-versions.js.map +1 -1
- package/cjs/collections/decks.js +1 -9
- package/cjs/collections/decks.js.map +1 -1
- package/cjs/collections/deleted-assets.js +1 -10
- package/cjs/collections/deleted-assets.js.map +1 -1
- package/cjs/collections/dispatches.js +1 -13
- package/cjs/collections/dispatches.js.map +1 -1
- package/cjs/collections/event-objects.js +1 -9
- package/cjs/collections/event-objects.js.map +1 -1
- package/cjs/collections/events.js +1 -9
- package/cjs/collections/events.js.map +1 -1
- package/cjs/collections/groups.js +1 -9
- package/cjs/collections/groups.js.map +1 -1
- package/cjs/collections/images.js +1 -9
- package/cjs/collections/images.js.map +1 -1
- package/cjs/collections/locations.js +1 -9
- package/cjs/collections/locations.js.map +1 -1
- package/cjs/collections/opportunities.js +1 -9
- package/cjs/collections/opportunities.js.map +1 -1
- package/cjs/collections/pack-diffs.js +1 -9
- package/cjs/collections/pack-diffs.js.map +1 -1
- package/cjs/collections/packs.js +1 -9
- package/cjs/collections/packs.js.map +1 -1
- package/cjs/collections/presets.js +1 -9
- package/cjs/collections/presets.js.map +1 -1
- package/cjs/collections/section-selections.js +1 -9
- package/cjs/collections/section-selections.js.map +1 -1
- package/cjs/collections/sections.js +1 -9
- package/cjs/collections/sections.js.map +1 -1
- package/cjs/collections/slide-selections.js +1 -9
- package/cjs/collections/slide-selections.js.map +1 -1
- package/cjs/collections/slides.js +1 -9
- package/cjs/collections/slides.js.map +1 -1
- package/cjs/collections/snapshots.js +1 -9
- package/cjs/collections/snapshots.js.map +1 -1
- package/cjs/collections/sub-slides.js +1 -9
- package/cjs/collections/sub-slides.js.map +1 -1
- package/cjs/collections/tags.js +1 -9
- package/cjs/collections/tags.js.map +1 -1
- package/cjs/collections/teams.js +1 -9
- package/cjs/collections/teams.js.map +1 -1
- package/cjs/collections/templates.js +1 -9
- package/cjs/collections/templates.js.map +1 -1
- package/cjs/collections/uploads.js +1 -9
- package/cjs/collections/uploads.js.map +1 -1
- package/cjs/collections/users.js +1 -9
- package/cjs/collections/users.js.map +1 -1
- package/cjs/collections.js +22 -88
- package/cjs/collections.js.map +1 -1
- package/cjs/fixtures.js +187 -0
- package/cjs/fixtures.js.map +1 -0
- package/cjs/index.js +0 -10
- package/cjs/index.js.map +1 -1
- package/cjs/log.js +0 -1
- package/cjs/log.js.map +1 -1
- package/cjs/middleware.js +2 -7
- package/cjs/middleware.js.map +1 -1
- package/cjs/middlewares/auth.js +1 -17
- package/cjs/middlewares/auth.js.map +1 -1
- package/cjs/middlewares/base.js +3 -9
- package/cjs/middlewares/base.js.map +1 -1
- package/cjs/middlewares/json.js +1 -19
- package/cjs/middlewares/json.js.map +1 -1
- package/cjs/middlewares/redirect.js +5 -21
- package/cjs/middlewares/redirect.js.map +1 -1
- package/cjs/models/activity-item.js +3 -19
- package/cjs/models/activity-item.js.map +1 -1
- package/cjs/models/adjunct-section.js +8 -21
- package/cjs/models/adjunct-section.js.map +1 -1
- package/cjs/models/adjunct-slide.js +8 -21
- package/cjs/models/adjunct-slide.js.map +1 -1
- package/cjs/models/adjunct-sub-slide.js +1 -16
- package/cjs/models/adjunct-sub-slide.js.map +1 -1
- package/cjs/models/adjunct.js +34 -10
- package/cjs/models/adjunct.js.map +1 -1
- package/cjs/models/api.js +1 -6
- package/cjs/models/api.js.map +1 -1
- package/cjs/models/appointment-adjunct-tags.js +1 -13
- package/cjs/models/appointment-adjunct-tags.js.map +1 -1
- package/cjs/models/appointment-deckversion-tags.js +1 -13
- package/cjs/models/appointment-deckversion-tags.js.map +1 -1
- package/cjs/models/appointment-duplicate.js +3 -25
- package/cjs/models/appointment-duplicate.js.map +1 -1
- package/cjs/models/appointment-editor.js +1 -14
- package/cjs/models/appointment-editor.js.map +1 -1
- package/cjs/models/appointment-section-tags.js +1 -13
- package/cjs/models/appointment-section-tags.js.map +1 -1
- package/cjs/models/appointment-slide-tags.js +1 -13
- package/cjs/models/appointment-slide-tags.js.map +1 -1
- package/cjs/models/appointment-stats.js +1 -11
- package/cjs/models/appointment-stats.js.map +1 -1
- package/cjs/models/appointment-tags.js +1 -10
- package/cjs/models/appointment-tags.js.map +1 -1
- package/cjs/models/appointment-template.js +23 -0
- package/cjs/models/appointment-template.js.map +1 -0
- package/cjs/models/appointment-viewing.js +1 -8
- package/cjs/models/appointment-viewing.js.map +1 -1
- package/cjs/models/appointment.js +85 -70
- package/cjs/models/appointment.js.map +1 -1
- package/cjs/models/asset.js +12 -11
- package/cjs/models/asset.js.map +1 -1
- package/cjs/models/auto-adjunct-key-check.js +1 -15
- package/cjs/models/auto-adjunct-key-check.js.map +1 -1
- package/cjs/models/auto-adjunct.js +3 -14
- package/cjs/models/auto-adjunct.js.map +1 -1
- package/cjs/models/base.js +74 -176
- package/cjs/models/base.js.map +1 -1
- package/cjs/models/base.spec.js +0 -31
- package/cjs/models/base.spec.js.map +1 -1
- package/cjs/models/choicelist.js +1 -8
- package/cjs/models/choicelist.js.map +1 -1
- package/cjs/models/cms-val.js +28 -15
- package/cjs/models/cms-val.js.map +1 -1
- package/cjs/models/cms-val.spec.js +25 -0
- package/cjs/models/cms-val.spec.js.map +1 -0
- package/cjs/models/contact-phone.js +54 -0
- package/cjs/models/contact-phone.js.map +1 -0
- package/cjs/models/contact.js +1 -18
- package/cjs/models/contact.js.map +1 -1
- package/cjs/models/customer.js +5 -30
- package/cjs/models/customer.js.map +1 -1
- package/cjs/models/deck-note.js +1 -9
- package/cjs/models/deck-note.js.map +1 -1
- package/cjs/models/deck-tags.js +1 -12
- package/cjs/models/deck-tags.js.map +1 -1
- package/cjs/models/deck-version-screenshot.js +1 -13
- package/cjs/models/deck-version-screenshot.js.map +1 -1
- package/cjs/models/deck-version.js +28 -44
- package/cjs/models/deck-version.js.map +1 -1
- package/cjs/models/deck.js +1 -14
- package/cjs/models/deck.js.map +1 -1
- package/cjs/models/dispatch-preview.js +1 -13
- package/cjs/models/dispatch-preview.js.map +1 -1
- package/cjs/models/dispatch.js +1 -23
- package/cjs/models/dispatch.js.map +1 -1
- package/cjs/models/envs.js +1 -6
- package/cjs/models/envs.js.map +1 -1
- package/cjs/models/event-object.js +1 -11
- package/cjs/models/event-object.js.map +1 -1
- package/cjs/models/event.js +1 -13
- package/cjs/models/event.js.map +1 -1
- package/cjs/models/feed-data.js +1 -13
- package/cjs/models/feed-data.js.map +1 -1
- package/cjs/models/file.js +1 -11
- package/cjs/models/file.js.map +1 -1
- package/cjs/models/group.js +1 -11
- package/cjs/models/group.js.map +1 -1
- package/cjs/models/handover.js +1 -13
- package/cjs/models/handover.js.map +1 -1
- package/cjs/models/hosted-preso.js +1 -15
- package/cjs/models/hosted-preso.js.map +1 -1
- package/cjs/models/image.js +1 -16
- package/cjs/models/image.js.map +1 -1
- package/cjs/models/location.js +1 -13
- package/cjs/models/location.js.map +1 -1
- package/cjs/models/manifest-json.js +74 -73
- package/cjs/models/manifest-json.js.map +1 -1
- package/cjs/models/onshare.js +1 -14
- package/cjs/models/onshare.js.map +1 -1
- package/cjs/models/opportunity.js +1 -14
- package/cjs/models/opportunity.js.map +1 -1
- package/cjs/models/pack-diff.js +1 -14
- package/cjs/models/pack-diff.js.map +1 -1
- package/cjs/models/pack.js +1 -12
- package/cjs/models/pack.js.map +1 -1
- package/cjs/models/preset.js +4 -20
- package/cjs/models/preset.js.map +1 -1
- package/cjs/models/refresh-request.js +17 -11
- package/cjs/models/refresh-request.js.map +1 -1
- package/cjs/models/room.js +1 -9
- package/cjs/models/room.js.map +1 -1
- package/cjs/models/salesforce-lookup.js +1 -12
- package/cjs/models/salesforce-lookup.js.map +1 -1
- package/cjs/models/section-selection.js +1 -14
- package/cjs/models/section-selection.js.map +1 -1
- package/cjs/models/section.js +1 -14
- package/cjs/models/section.js.map +1 -1
- package/cjs/models/slide-selection.js +1 -14
- package/cjs/models/slide-selection.js.map +1 -1
- package/cjs/models/slide.js +1 -14
- package/cjs/models/slide.js.map +1 -1
- package/cjs/models/snapshot.js +13 -15
- package/cjs/models/snapshot.js.map +1 -1
- package/cjs/models/snapshot.spec.js +44 -0
- package/cjs/models/snapshot.spec.js.map +1 -0
- package/cjs/models/sub-slide.js +1 -12
- package/cjs/models/sub-slide.js.map +1 -1
- package/cjs/models/support-ticket.js +1 -11
- package/cjs/models/support-ticket.js.map +1 -1
- package/cjs/models/tag.js +1 -13
- package/cjs/models/tag.js.map +1 -1
- package/cjs/models/team.js +14 -13
- package/cjs/models/team.js.map +1 -1
- package/cjs/models/template.js +87 -15
- package/cjs/models/template.js.map +1 -1
- package/cjs/models/tenancy.js +4 -11
- package/cjs/models/tenancy.js.map +1 -1
- package/cjs/models/timing-log.js +21 -78
- package/cjs/models/timing-log.js.map +1 -1
- package/cjs/models/timing-log.spec.js +24 -37
- package/cjs/models/timing-log.spec.js.map +1 -1
- package/cjs/models/token.js +1 -11
- package/cjs/models/token.js.map +1 -1
- package/cjs/models/transcribe-socket.js +1 -8
- package/cjs/models/transcribe-socket.js.map +1 -1
- package/cjs/models/upload.js +1 -7
- package/cjs/models/upload.js.map +1 -1
- package/cjs/models/user.js +10 -28
- package/cjs/models/user.js.map +1 -1
- package/cjs/models/user.spec.js +20 -30
- package/cjs/models/user.spec.js.map +1 -1
- package/cjs/models.js +22 -132
- package/cjs/models.js.map +1 -1
- package/cjs/presentation/appointment-presentation.js +9 -35
- package/cjs/presentation/appointment-presentation.js.map +1 -1
- package/cjs/presentation/base-presentation-collection.js +1 -7
- package/cjs/presentation/base-presentation-collection.js.map +1 -1
- package/cjs/presentation/base-presentation-model.js +40 -74
- package/cjs/presentation/base-presentation-model.js.map +1 -1
- package/cjs/presentation/base-presentation-model.spec.js +6 -27
- package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
- package/cjs/presentation/presentation-deck.js +46 -83
- package/cjs/presentation/presentation-deck.js.map +1 -1
- package/cjs/presentation/presentation-deck.spec.js +72 -95
- package/cjs/presentation/presentation-deck.spec.js.map +1 -1
- package/cjs/presentation/presentation-decks.js +1 -9
- package/cjs/presentation/presentation-decks.js.map +1 -1
- package/cjs/presentation/presentation-section.js +37 -77
- package/cjs/presentation/presentation-section.js.map +1 -1
- package/cjs/presentation/presentation-section.spec.js +211 -271
- package/cjs/presentation/presentation-section.spec.js.map +1 -1
- package/cjs/presentation/presentation-sections.js +1 -9
- package/cjs/presentation/presentation-sections.js.map +1 -1
- package/cjs/presentation/presentation-slide.js +49 -76
- package/cjs/presentation/presentation-slide.js.map +1 -1
- package/cjs/presentation/presentation-slide.spec.js +145 -192
- package/cjs/presentation/presentation-slide.spec.js.map +1 -1
- package/cjs/presentation/presentation-slides.js +1 -9
- package/cjs/presentation/presentation-slides.js.map +1 -1
- package/cjs/presentation/presentation-subslide.js +3 -23
- package/cjs/presentation/presentation-subslide.js.map +1 -1
- package/cjs/presentation/presentation-subslide.spec.js +101 -125
- package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
- package/cjs/presentation/presentation-subslides.js +1 -9
- package/cjs/presentation/presentation-subslides.js.map +1 -1
- package/cjs/presentation/presentation.js +62 -111
- package/cjs/presentation/presentation.js.map +1 -1
- package/cjs/presentation.js +0 -20
- package/cjs/presentation.js.map +1 -1
- package/cjs/selections.js +81 -0
- package/cjs/selections.js.map +1 -0
- package/cjs/state-register.js +3 -11
- package/cjs/state-register.js.map +1 -1
- package/cjs/sync.js +32 -76
- package/cjs/sync.js.map +1 -1
- package/cjs/utils.js +51 -42
- package/cjs/utils.js.map +1 -1
- package/cjs/utils.spec.js +0 -4
- package/cjs/utils.spec.js.map +1 -1
- package/jest.config.js +4 -3
- package/package.json +9 -6
- package/src/api.js +17 -2
- package/src/auth.js +3 -3
- package/src/collections/activity.js +4 -4
- package/src/collections/adjunct-sections.js +1 -1
- package/src/collections/adjunct-slides.js +1 -1
- package/src/collections/adjunct-sub-slides.js +1 -1
- package/src/collections/appointment-adjunct-tags.js +1 -1
- package/src/collections/appointment-deckversion-tags.js +2 -2
- package/src/collections/appointment-duplicates.js +1 -1
- package/src/collections/appointment-editors.js +1 -1
- package/src/collections/appointment-section-tags.js +1 -1
- package/src/collections/appointment-slide-tags.js +1 -1
- package/src/collections/appointment-tags.js +20 -18
- package/src/collections/appointment-templates.js +26 -0
- package/src/collections/appointments.js +9 -9
- package/src/collections/assets.js +1 -1
- package/src/collections/auto-adjuncts.js +1 -1
- package/src/collections/base.js +10 -6
- package/src/collections/base.spec.js +2 -2
- package/src/collections/cms-vals.js +5 -1
- package/src/collections/contact-phones.js +18 -0
- package/src/collections/contacts.js +1 -1
- package/src/collections/created-assets.js +1 -1
- package/src/collections/customers.js +1 -1
- package/src/collections/deck-notes.js +1 -1
- package/src/collections/deck-version-screenshots.js +1 -1
- package/src/collections/deck-versions.js +1 -1
- package/src/collections/decks.js +1 -1
- package/src/collections/deleted-assets.js +1 -1
- package/src/collections/dispatches.js +2 -2
- package/src/collections/event-objects.js +1 -1
- package/src/collections/events.js +1 -1
- package/src/collections/groups.js +1 -1
- package/src/collections/images.js +1 -1
- package/src/collections/locations.js +1 -1
- package/src/collections/opportunities.js +1 -1
- package/src/collections/pack-diffs.js +1 -1
- package/src/collections/packs.js +1 -1
- package/src/collections/presets.js +1 -1
- package/src/collections/section-selections.js +1 -1
- package/src/collections/sections.js +1 -1
- package/src/collections/slide-selections.js +1 -1
- package/src/collections/slides.js +1 -1
- package/src/collections/snapshots.js +1 -1
- package/src/collections/sub-slides.js +1 -1
- package/src/collections/tags.js +1 -1
- package/src/collections/teams.js +1 -1
- package/src/collections/templates.js +1 -1
- package/src/collections/uploads.js +1 -1
- package/src/collections/users.js +1 -1
- package/src/collections.js +2 -0
- package/src/fixtures.js +193 -0
- package/src/models/activity-item.js +1 -1
- package/src/models/adjunct-section.js +7 -2
- package/src/models/adjunct-slide.js +7 -2
- package/src/models/adjunct-sub-slide.js +1 -1
- package/src/models/adjunct.js +39 -1
- package/src/models/appointment-adjunct-tags.js +1 -1
- package/src/models/appointment-deckversion-tags.js +1 -1
- package/src/models/appointment-duplicate.js +1 -1
- package/src/models/appointment-editor.js +1 -1
- package/src/models/appointment-section-tags.js +1 -1
- package/src/models/appointment-slide-tags.js +1 -1
- package/src/models/appointment-stats.js +1 -1
- package/src/models/appointment-tags.js +1 -1
- package/src/models/appointment-template.js +19 -0
- package/src/models/appointment-viewing.js +1 -1
- package/src/models/appointment.js +101 -38
- package/src/models/asset.js +15 -1
- package/src/models/auto-adjunct-key-check.js +1 -1
- package/src/models/auto-adjunct.js +2 -1
- package/src/models/base.js +36 -21
- package/src/models/base.spec.js +18 -18
- package/src/models/choicelist.js +1 -1
- package/src/models/cms-val.js +24 -1
- package/src/models/cms-val.spec.js +14 -0
- package/src/models/contact-phone.js +57 -0
- package/src/models/contact.js +1 -1
- package/src/models/customer.js +3 -3
- package/src/models/deck-note.js +1 -1
- package/src/models/deck-tags.js +1 -1
- package/src/models/deck-version-screenshot.js +1 -1
- package/src/models/deck-version.js +31 -6
- package/src/models/deck.js +1 -1
- package/src/models/dispatch-preview.js +1 -1
- package/src/models/dispatch.js +1 -1
- package/src/models/event-object.js +1 -1
- package/src/models/event.js +1 -1
- package/src/models/feed-data.js +2 -2
- package/src/models/file.js +1 -1
- package/src/models/group.js +1 -1
- package/src/models/handover.js +1 -1
- package/src/models/hosted-preso.js +1 -1
- package/src/models/image.js +1 -1
- package/src/models/location.js +1 -1
- package/src/models/manifest-json.js +56 -5
- package/src/models/onshare.js +1 -1
- package/src/models/opportunity.js +1 -1
- package/src/models/pack-diff.js +1 -1
- package/src/models/pack.js +1 -1
- package/src/models/preset.js +3 -1
- package/src/models/refresh-request.js +15 -1
- package/src/models/room.js +1 -1
- package/src/models/salesforce-lookup.js +1 -1
- package/src/models/section-selection.js +1 -1
- package/src/models/section.js +1 -1
- package/src/models/slide-selection.js +1 -1
- package/src/models/slide.js +1 -1
- package/src/models/snapshot.js +11 -2
- package/src/models/snapshot.spec.js +31 -0
- package/src/models/sub-slide.js +1 -1
- package/src/models/support-ticket.js +1 -1
- package/src/models/tag.js +1 -1
- package/src/models/team.js +14 -3
- package/src/models/template.js +72 -2
- package/src/models/tenancy.js +4 -1
- package/src/models/timing-log.js +2 -2
- package/src/models/timing-log.spec.js +1 -1
- package/src/models/token.js +1 -1
- package/src/models/transcribe-socket.js +1 -1
- package/src/models/user.js +13 -2
- package/src/models.js +2 -0
- package/src/presentation/appointment-presentation.js +4 -4
- package/src/presentation/base-presentation-collection.js +1 -1
- package/src/presentation/base-presentation-model.js +25 -16
- package/src/presentation/base-presentation-model.spec.js +5 -5
- package/src/presentation/presentation-deck.js +28 -23
- package/src/presentation/presentation-deck.spec.js +4 -4
- package/src/presentation/presentation-decks.js +1 -1
- package/src/presentation/presentation-section.js +59 -31
- package/src/presentation/presentation-section.spec.js +31 -32
- package/src/presentation/presentation-sections.js +1 -1
- package/src/presentation/presentation-slide.js +51 -25
- package/src/presentation/presentation-slide.spec.js +21 -27
- package/src/presentation/presentation-slides.js +1 -1
- package/src/presentation/presentation-subslide.js +5 -5
- package/src/presentation/presentation-subslide.spec.js +3 -3
- package/src/presentation/presentation-subslides.js +1 -1
- package/src/presentation/presentation.js +5 -3
- package/src/selections.js +71 -0
- package/src/sync.js +1 -1
- package/src/utils.js +31 -8
- package/src/utils.spec.js +4 -4
- package/.rush/temp/package-deps_test.json +0 -172
package/cjs/utils.spec.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _utils = require("./utils.js");
|
|
4
|
-
|
|
5
4
|
describe("getShortURL()", function () {
|
|
6
5
|
test("shorten a full url to a short one", function () {
|
|
7
6
|
var url = "http://client.salespreso.com/api/users/1/";
|
|
@@ -31,7 +30,6 @@ describe("getHostname()", function () {
|
|
|
31
30
|
var actual = function actual() {
|
|
32
31
|
return (0, _utils.getHostname)(null);
|
|
33
32
|
};
|
|
34
|
-
|
|
35
33
|
expect(actual).toThrow();
|
|
36
34
|
});
|
|
37
35
|
it("returns a hostname from a full URL", function () {
|
|
@@ -52,14 +50,12 @@ describe("replaceHostname()", function () {
|
|
|
52
50
|
var actual = function actual() {
|
|
53
51
|
return (0, _utils.replaceHostname)("foo", null, "brand.new.com");
|
|
54
52
|
};
|
|
55
|
-
|
|
56
53
|
expect(actual).toThrow();
|
|
57
54
|
});
|
|
58
55
|
it("throws an error if not to hostname", function () {
|
|
59
56
|
var actual = function actual() {
|
|
60
57
|
return (0, _utils.replaceHostname)("foo", "old.url.com", null);
|
|
61
58
|
};
|
|
62
|
-
|
|
63
59
|
expect(actual).toThrow();
|
|
64
60
|
});
|
|
65
61
|
it("replaces hostname of a string", function () {
|
package/cjs/utils.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"utils.spec.js","names":["_utils","require","describe","test","url","expect","getShortURL","toEqual","testString","removeMultiByteChars","testString2","testString3","it","actual","getHostname","toThrow","replaceHostname","data","expected","beforeURL","afterURL","first","anArray","nestedObject","second"],"sources":["../src/utils.spec.js"],"sourcesContent":["import {\n\tgetHostname,\n\tgetShortURL,\n\tremoveMultiByteChars,\n\treplaceHostname,\n} from \"./utils.js\";\n\ndescribe(\"getShortURL()\", () => {\n\ttest(\"shorten a full url to a short one\", function () {\n\t\tconst url = \"http://client.salespreso.com/api/users/1/\";\n\t\texpect(getShortURL(url)).toEqual(\"/api/users/1/\");\n\t});\n\n\ttest(\"not break an already short url\", function () {\n\t\tconst url = \"/api/users/1/\";\n\t\texpect(getShortURL(url)).toEqual(\"/api/users/1/\");\n\t});\n});\n\ndescribe(\"removeMultiByteChars()\", () => {\n\ttest(\"correctly strip offending multibyte characters from string\", function () {\n\t\tconst testString = \"SUZI LUCKâS CANTEENâ& COCKTAIL BAR\";\n\t\texpect(removeMultiByteChars(testString)).toEqual(\n\t\t\t\"SUZI LUCKS CANTEEN & COCKTAIL BAR\",\n\t\t);\n\t});\n\n\ttest(\"sanatize urls correctly\", function () {\n\t\tconst testString = \"http://client.salespreso.com/api/users/1/â\";\n\t\tconst testString2 = \"/api/users/1/â\";\n\t\tconst testString3 = \"/api/users/1/?param=1&test=3&_r=4\";\n\t\texpect(removeMultiByteChars(testString)).toEqual(\n\t\t\t\"http://client.salespreso.com/api/users/1/\",\n\t\t);\n\t\texpect(removeMultiByteChars(testString2)).toEqual(\"/api/users/1/\");\n\t\texpect(removeMultiByteChars(testString3)).toEqual(\n\t\t\t\"/api/users/1/?param=1&test=3&_r=4\",\n\t\t);\n\t});\n});\n\ndescribe(\"getHostname()\", () => {\n\tit(\"throws an error if hostname isn't a string\", () => {\n\t\tconst actual = () => getHostname(null);\n\t\texpect(actual).toThrow();\n\t});\n\n\tit(\"returns a hostname from a full URL\", () => {\n\t\tconst actual = getHostname(\"https://www.horse.com/api/horses/1/\");\n\t\texpect(actual).toEqual(\"www.horse.com\");\n\t});\n\n\tit(\"returns a hostname from just the domain\", () => {\n\t\tconst actual = getHostname(\"https://www.horse.com/\");\n\t\texpect(actual).toEqual(\"www.horse.com\");\n\t});\n\n\tit(\"just returns the hostname\", () => {\n\t\tconst actual = getHostname(\"www.horse.com\");\n\t\texpect(actual).toEqual(\"www.horse.com\");\n\t});\n});\n\ndescribe(\"replaceHostname()\", () => {\n\tit(\"throws an error if not from hostname\", () => {\n\t\tconst actual = () => replaceHostname(\"foo\", null, \"brand.new.com\");\n\t\texpect(actual).toThrow();\n\t});\n\n\tit(\"throws an error if not to hostname\", () => {\n\t\tconst actual = () => replaceHostname(\"foo\", \"old.url.com\", null);\n\t\texpect(actual).toThrow();\n\t});\n\n\tit(\"replaces hostname of a string\", () => {\n\t\tconst data = \"https://old.url.com/api/appointments/1/\";\n\t\tconst expected = \"https://brand.new.com/api/appointments/1/\";\n\t\tconst actual = replaceHostname(data, \"old.url.com\", \"brand.new.com\");\n\t\texpect(actual).toEqual(expected);\n\t});\n\n\tit(\"takes into account the protocol\", () => {\n\t\tconst data = \"http://old.url.com/api/appointments/1/\";\n\t\tconst expected = \"http://brand.new.com/api/appointments/1/\";\n\t\tconst actual = replaceHostname(\n\t\t\tdata,\n\t\t\t\"https://old.url.com/\",\n\t\t\t\"https://brand.new.com/\",\n\t\t);\n\t\texpect(actual).toEqual(expected);\n\t});\n\n\tit(\"replaces hostnames in an array\", () => {\n\t\tconst data = [\n\t\t\t\"https://old.url.com/api/appointments/1/\",\n\t\t\t\"https://old.url.com/api/foo/1/bars/1/\",\n\t\t];\n\t\tconst expected = [\n\t\t\t\"https://brand.new.com/api/appointments/1/\",\n\t\t\t\"https://brand.new.com/api/foo/1/bars/1/\",\n\t\t];\n\t\tconst actual = replaceHostname(data, \"old.url.com\", \"brand.new.com\");\n\t\texpect(actual).toEqual(expected);\n\t});\n\n\tit(\"replaces hostnames in an object\", () => {\n\t\tconst data = {\n\t\t\turl: \"https://old.url.com/api/appointments/1/\",\n\t\t};\n\t\tconst expected = {\n\t\t\turl: \"https://brand.new.com/api/appointments/1/\",\n\t\t};\n\n\t\tconst actual = replaceHostname(data, \"old.url.com\", \"brand.new.com\");\n\t\texpect(actual).toEqual(expected);\n\t});\n\n\tit(\"hostnames not related aren't affected\", () => {\n\t\tconst data = {\n\t\t\turl: \"https://some.otherurl.com/helloworld/\",\n\t\t};\n\t\tconst expected = {\n\t\t\turl: \"https://some.otherurl.com/helloworld/\",\n\t\t};\n\n\t\tconst actual = replaceHostname(data, \"old.url.com\", \"brand.new.com\");\n\t\texpect(actual).toEqual(expected);\n\t});\n\n\tit(\"updates data that is nested\", () => {\n\t\tconst beforeURL = \"https://old.url.com/api/appointments/1/\";\n\t\tconst afterURL = \"https://some.otherurl.com/api/appointments/1/\";\n\n\t\tconst data = {\n\t\t\tfirst: beforeURL,\n\t\t\tanArray: [beforeURL, beforeURL],\n\t\t\tnestedObject: {\n\t\t\t\tfirst: beforeURL,\n\t\t\t\tsecond: beforeURL,\n\t\t\t},\n\t\t};\n\n\t\tconst expected = {\n\t\t\tfirst: afterURL,\n\t\t\tanArray: [afterURL, afterURL],\n\t\t\tnestedObject: {\n\t\t\t\tfirst: afterURL,\n\t\t\t\tsecond: afterURL,\n\t\t\t},\n\t\t};\n\n\t\tconst actual = replaceHostname(data, \"old.url.com\", \"some.otherurl.com\");\n\t\texpect(actual).toEqual(expected);\n\t});\n\n\tit(\"does not affect hostname within a string\", () => {\n\t\tconst data = \"room:old.url.com:123\";\n\t\tconst expected = \"room:old.url.com:123\";\n\t\tconst actual = replaceHostname(data, \"old.url.com\", \"some.otherurl.com\");\n\t\texpect(actual).toEqual(expected);\n\t});\n});\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAOAC,QAAQ,CAAC,eAAe,EAAE,YAAM;EAC/BC,IAAI,CAAC,mCAAmC,EAAE,YAAY;IACrD,IAAMC,GAAG,GAAG,2CAA2C;IACvDC,MAAM,CAAC,IAAAC,kBAAW,EAACF,GAAG,CAAC,CAAC,CAACG,OAAO,CAAC,eAAe,CAAC;EAClD,CAAC,CAAC;EAEFJ,IAAI,CAAC,gCAAgC,EAAE,YAAY;IAClD,IAAMC,GAAG,GAAG,eAAe;IAC3BC,MAAM,CAAC,IAAAC,kBAAW,EAACF,GAAG,CAAC,CAAC,CAACG,OAAO,CAAC,eAAe,CAAC;EAClD,CAAC,CAAC;AACH,CAAC,CAAC;AAEFL,QAAQ,CAAC,wBAAwB,EAAE,YAAM;EACxCC,IAAI,CAAC,4DAA4D,EAAE,YAAY;IAC9E,IAAMK,UAAU,GAAG,wCAAwC;IAC3DH,MAAM,CAAC,IAAAI,2BAAoB,EAACD,UAAU,CAAC,CAAC,CAACD,OAAO,CAC/C,mCACD,CAAC;EACF,CAAC,CAAC;EAEFJ,IAAI,CAAC,yBAAyB,EAAE,YAAY;IAC3C,IAAMK,UAAU,GAAG,8CAA8C;IACjE,IAAME,WAAW,GAAG,kBAAkB;IACtC,IAAMC,WAAW,GAAG,mCAAmC;IACvDN,MAAM,CAAC,IAAAI,2BAAoB,EAACD,UAAU,CAAC,CAAC,CAACD,OAAO,CAC/C,2CACD,CAAC;IACDF,MAAM,CAAC,IAAAI,2BAAoB,EAACC,WAAW,CAAC,CAAC,CAACH,OAAO,CAAC,eAAe,CAAC;IAClEF,MAAM,CAAC,IAAAI,2BAAoB,EAACE,WAAW,CAAC,CAAC,CAACJ,OAAO,CAChD,mCACD,CAAC;EACF,CAAC,CAAC;AACH,CAAC,CAAC;AAEFL,QAAQ,CAAC,eAAe,EAAE,YAAM;EAC/BU,EAAE,CAAC,4CAA4C,EAAE,YAAM;IACtD,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAA;MAAA,OAAS,IAAAC,kBAAW,EAAC,IAAI,CAAC;IAAA;IACtCT,MAAM,CAACQ,MAAM,CAAC,CAACE,OAAO,CAAC,CAAC;EACzB,CAAC,CAAC;EAEFH,EAAE,CAAC,oCAAoC,EAAE,YAAM;IAC9C,IAAMC,MAAM,GAAG,IAAAC,kBAAW,EAAC,qCAAqC,CAAC;IACjET,MAAM,CAACQ,MAAM,CAAC,CAACN,OAAO,CAAC,eAAe,CAAC;EACxC,CAAC,CAAC;EAEFK,EAAE,CAAC,yCAAyC,EAAE,YAAM;IACnD,IAAMC,MAAM,GAAG,IAAAC,kBAAW,EAAC,wBAAwB,CAAC;IACpDT,MAAM,CAACQ,MAAM,CAAC,CAACN,OAAO,CAAC,eAAe,CAAC;EACxC,CAAC,CAAC;EAEFK,EAAE,CAAC,2BAA2B,EAAE,YAAM;IACrC,IAAMC,MAAM,GAAG,IAAAC,kBAAW,EAAC,eAAe,CAAC;IAC3CT,MAAM,CAACQ,MAAM,CAAC,CAACN,OAAO,CAAC,eAAe,CAAC;EACxC,CAAC,CAAC;AACH,CAAC,CAAC;AAEFL,QAAQ,CAAC,mBAAmB,EAAE,YAAM;EACnCU,EAAE,CAAC,sCAAsC,EAAE,YAAM;IAChD,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAA;MAAA,OAAS,IAAAG,sBAAe,EAAC,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC;IAAA;IAClEX,MAAM,CAACQ,MAAM,CAAC,CAACE,OAAO,CAAC,CAAC;EACzB,CAAC,CAAC;EAEFH,EAAE,CAAC,oCAAoC,EAAE,YAAM;IAC9C,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAA;MAAA,OAAS,IAAAG,sBAAe,EAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC;IAAA;IAChEX,MAAM,CAACQ,MAAM,CAAC,CAACE,OAAO,CAAC,CAAC;EACzB,CAAC,CAAC;EAEFH,EAAE,CAAC,+BAA+B,EAAE,YAAM;IACzC,IAAMK,IAAI,GAAG,yCAAyC;IACtD,IAAMC,QAAQ,GAAG,2CAA2C;IAC5D,IAAML,MAAM,GAAG,IAAAG,sBAAe,EAACC,IAAI,EAAE,aAAa,EAAE,eAAe,CAAC;IACpEZ,MAAM,CAACQ,MAAM,CAAC,CAACN,OAAO,CAACW,QAAQ,CAAC;EACjC,CAAC,CAAC;EAEFN,EAAE,CAAC,iCAAiC,EAAE,YAAM;IAC3C,IAAMK,IAAI,GAAG,wCAAwC;IACrD,IAAMC,QAAQ,GAAG,0CAA0C;IAC3D,IAAML,MAAM,GAAG,IAAAG,sBAAe,EAC7BC,IAAI,EACJ,sBAAsB,EACtB,wBACD,CAAC;IACDZ,MAAM,CAACQ,MAAM,CAAC,CAACN,OAAO,CAACW,QAAQ,CAAC;EACjC,CAAC,CAAC;EAEFN,EAAE,CAAC,gCAAgC,EAAE,YAAM;IAC1C,IAAMK,IAAI,GAAG,CACZ,yCAAyC,EACzC,uCAAuC,CACvC;IACD,IAAMC,QAAQ,GAAG,CAChB,2CAA2C,EAC3C,yCAAyC,CACzC;IACD,IAAML,MAAM,GAAG,IAAAG,sBAAe,EAACC,IAAI,EAAE,aAAa,EAAE,eAAe,CAAC;IACpEZ,MAAM,CAACQ,MAAM,CAAC,CAACN,OAAO,CAACW,QAAQ,CAAC;EACjC,CAAC,CAAC;EAEFN,EAAE,CAAC,iCAAiC,EAAE,YAAM;IAC3C,IAAMK,IAAI,GAAG;MACZb,GAAG,EAAE;IACN,CAAC;IACD,IAAMc,QAAQ,GAAG;MAChBd,GAAG,EAAE;IACN,CAAC;IAED,IAAMS,MAAM,GAAG,IAAAG,sBAAe,EAACC,IAAI,EAAE,aAAa,EAAE,eAAe,CAAC;IACpEZ,MAAM,CAACQ,MAAM,CAAC,CAACN,OAAO,CAACW,QAAQ,CAAC;EACjC,CAAC,CAAC;EAEFN,EAAE,CAAC,uCAAuC,EAAE,YAAM;IACjD,IAAMK,IAAI,GAAG;MACZb,GAAG,EAAE;IACN,CAAC;IACD,IAAMc,QAAQ,GAAG;MAChBd,GAAG,EAAE;IACN,CAAC;IAED,IAAMS,MAAM,GAAG,IAAAG,sBAAe,EAACC,IAAI,EAAE,aAAa,EAAE,eAAe,CAAC;IACpEZ,MAAM,CAACQ,MAAM,CAAC,CAACN,OAAO,CAACW,QAAQ,CAAC;EACjC,CAAC,CAAC;EAEFN,EAAE,CAAC,6BAA6B,EAAE,YAAM;IACvC,IAAMO,SAAS,GAAG,yCAAyC;IAC3D,IAAMC,QAAQ,GAAG,+CAA+C;IAEhE,IAAMH,IAAI,GAAG;MACZI,KAAK,EAAEF,SAAS;MAChBG,OAAO,EAAE,CAACH,SAAS,EAAEA,SAAS,CAAC;MAC/BI,YAAY,EAAE;QACbF,KAAK,EAAEF,SAAS;QAChBK,MAAM,EAAEL;MACT;IACD,CAAC;IAED,IAAMD,QAAQ,GAAG;MAChBG,KAAK,EAAED,QAAQ;MACfE,OAAO,EAAE,CAACF,QAAQ,EAAEA,QAAQ,CAAC;MAC7BG,YAAY,EAAE;QACbF,KAAK,EAAED,QAAQ;QACfI,MAAM,EAAEJ;MACT;IACD,CAAC;IAED,IAAMP,MAAM,GAAG,IAAAG,sBAAe,EAACC,IAAI,EAAE,aAAa,EAAE,mBAAmB,CAAC;IACxEZ,MAAM,CAACQ,MAAM,CAAC,CAACN,OAAO,CAACW,QAAQ,CAAC;EACjC,CAAC,CAAC;EAEFN,EAAE,CAAC,0CAA0C,EAAE,YAAM;IACpD,IAAMK,IAAI,GAAG,sBAAsB;IACnC,IAAMC,QAAQ,GAAG,sBAAsB;IACvC,IAAML,MAAM,GAAG,IAAAG,sBAAe,EAACC,IAAI,EAAE,aAAa,EAAE,mBAAmB,CAAC;IACxEZ,MAAM,CAACQ,MAAM,CAAC,CAACN,OAAO,CAACW,QAAQ,CAAC;EACjC,CAAC,CAAC;AACH,CAAC,CAAC"}
|
package/jest.config.js
CHANGED
|
@@ -14,12 +14,13 @@ module.exports = {
|
|
|
14
14
|
coverageReporters: ["text-summary"],
|
|
15
15
|
moduleNameMapper: {
|
|
16
16
|
...resolutions,
|
|
17
|
-
// Use this project for all sp-api stuff, obviously. Prevents sp-test
|
|
18
|
-
// from having multiple registers
|
|
19
|
-
"^sp-api(.*)$": "<rootDir>/src/$1",
|
|
20
17
|
"^@livepreso/api(.*)$": "<rootDir>/src/$1",
|
|
21
18
|
},
|
|
22
19
|
setupFilesAfterEnv: ["<rootDir>/setup-tests.js"],
|
|
23
20
|
collectCoverageFrom: ["<rootDir>/src/**/*.js"],
|
|
24
21
|
testPathIgnorePatterns: ["<rootDir>/cjs"],
|
|
22
|
+
reporters: [
|
|
23
|
+
"jest-fixed-default-reporter/DefaultReporter",
|
|
24
|
+
"jest-fixed-default-reporter/SummaryReporter",
|
|
25
|
+
],
|
|
25
26
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livepreso/api",
|
|
3
3
|
"license": "UNLICENSED",
|
|
4
|
-
"version": "6.
|
|
4
|
+
"version": "6.46.0",
|
|
5
5
|
"description": "Everything to do with talking to the SalePreso API",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"module": "esm/index.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"process": "^0.11.10",
|
|
20
20
|
"bluebird": "^3.5.0",
|
|
21
21
|
"consola": "^2.11.0",
|
|
22
|
-
"dedent-js": "
|
|
22
|
+
"dedent-js": "~1.0.1",
|
|
23
23
|
"lodash": "^4.17.4",
|
|
24
24
|
"moment": "^2.18.1",
|
|
25
25
|
"qs": "^6.4.0",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"esdoc": "^1.1.0",
|
|
45
45
|
"esdoc-standard-plugin": "^1.0.0",
|
|
46
46
|
"git-hooks": "^1.0.2",
|
|
47
|
-
"jest": "~
|
|
47
|
+
"jest": "~29.7.0",
|
|
48
48
|
"jsdom-global": "^2.1.1",
|
|
49
49
|
"npm-run-all": "^4.1.5",
|
|
50
50
|
"sinon": "^2.1.0",
|
|
@@ -54,14 +54,17 @@
|
|
|
54
54
|
"testdouble": "^2.1.1",
|
|
55
55
|
"@livepreso/eslint-config": "~1.0.0",
|
|
56
56
|
"@rushstack/eslint-config": "~2.4.0",
|
|
57
|
-
"@babel/preset-react": "~7.14.5"
|
|
57
|
+
"@babel/preset-react": "~7.14.5",
|
|
58
|
+
"jest-fixed-default-reporter": "~2.0.1",
|
|
59
|
+
"rosie": "~2.1.0",
|
|
60
|
+
"@faker-js/faker": "~7.5.0"
|
|
58
61
|
},
|
|
59
62
|
"scripts": {
|
|
60
63
|
"test:debug": "node --inspect node_modules/.bin/jest --watch --runInBand",
|
|
61
|
-
"test": "jest --coverage --coverageReporters=json
|
|
64
|
+
"test": "jest --coverage --coverageReporters=json",
|
|
62
65
|
"build:cjs": "BABEL_ENV=cjs babel --delete-dir-on-start src/ --out-dir=cjs/ -s",
|
|
63
66
|
"build": "run-p build:*",
|
|
64
67
|
"prepublish": "npm run build"
|
|
65
68
|
},
|
|
66
|
-
"readme": "# API\n\nThe single point of entry for interacting with the SalesPreso API. Contains functionality for contacting and authorizing\nwi the API endpoint, as well as middleware, models and collections for sending and retrieving data.\n\n## Install\n\n```bash\nnpm install sp-api\n```\n\nor\n\n```bash\nyarn add sp-api\n```\n\n## Examples\n\n```javascript\nimport {Auth, Api} from \"
|
|
69
|
+
"readme": "# API\n\nThe single point of entry for interacting with the SalesPreso API. Contains functionality for contacting and authorizing\nwi the API endpoint, as well as middleware, models and collections for sending and retrieving data.\n\n## Install\n\n```bash\nnpm install sp-api\n```\n\nor\n\n```bash\nyarn add sp-api\n```\n\n## Examples\n\n```javascript\nimport {Auth, Api} from \"@livepreso/api\";\nimport {registerMiddleware} from \"@livepreso/api/middleware\";\nimport AuthMiddleware from \"@livepreso/api/middlewares/auth\";\nimport RedirectMiddleware from \"@livepreso/api/middlewares/redirect\";\n\nconst middlewares = [\n new AuthMiddleware(),\n new RedirectMiddleware(),\n new JSONMiddleware()\n];\n\nmiddlewares.map(registerMiddleware);\n\nApi.initialize(\"http://localhost:8000/api/\")\n .then(() => {\n return Auth.login(\"yourlogin\", \"yourpassword\");\n });\n```\n\n## Documentation\n\nhttp://developers.salespreso.com/modules/sp-api/\n"
|
|
67
70
|
}
|
package/src/api.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import Promise from "bluebird";
|
|
2
|
+
import url2 from "url";
|
|
3
|
+
|
|
2
4
|
/**
|
|
3
5
|
* @namespace api
|
|
4
6
|
*/
|
|
@@ -7,7 +9,7 @@ import Promise from "bluebird";
|
|
|
7
9
|
* @constructor
|
|
8
10
|
* @alias api.Api
|
|
9
11
|
* @example
|
|
10
|
-
* import {Api} from "
|
|
12
|
+
* import {Api} from "@livepreso/api";
|
|
11
13
|
*/
|
|
12
14
|
export const Api = {
|
|
13
15
|
resources: {},
|
|
@@ -18,7 +20,7 @@ export const Api = {
|
|
|
18
20
|
* @memberof api.Api
|
|
19
21
|
* @prop {number} version
|
|
20
22
|
*/
|
|
21
|
-
version:
|
|
23
|
+
version: 31,
|
|
22
24
|
|
|
23
25
|
/**
|
|
24
26
|
* Initialize the api. Connects to the network and returns the
|
|
@@ -63,6 +65,19 @@ export const Api = {
|
|
|
63
65
|
return Api._apiURL;
|
|
64
66
|
},
|
|
65
67
|
|
|
68
|
+
/**
|
|
69
|
+
* Returns the root URL (origin) of the api server. Ie,
|
|
70
|
+
* server.com/api/ -> server.com/
|
|
71
|
+
* @memberof api.Api
|
|
72
|
+
* @returns {string}
|
|
73
|
+
*/
|
|
74
|
+
getRootURL() {
|
|
75
|
+
const urlObj = url2.parse(Api._apiURL);
|
|
76
|
+
urlObj.pathname = "";
|
|
77
|
+
urlObj.search = "";
|
|
78
|
+
return url2.format(urlObj);
|
|
79
|
+
},
|
|
80
|
+
|
|
66
81
|
/**
|
|
67
82
|
* Returns the full path to a resource endpoint, based on the resource
|
|
68
83
|
* name.
|
package/src/auth.js
CHANGED
|
@@ -12,7 +12,7 @@ import log from "./log.js";
|
|
|
12
12
|
* @constructor
|
|
13
13
|
* @alias auth.Auth
|
|
14
14
|
* @example
|
|
15
|
-
* import {Auth} from "
|
|
15
|
+
* import {Auth} from "@livepreso/api";
|
|
16
16
|
*/
|
|
17
17
|
export const Auth = {
|
|
18
18
|
_token: null,
|
|
@@ -97,10 +97,10 @@ export const Auth = {
|
|
|
97
97
|
|
|
98
98
|
return tokenModel
|
|
99
99
|
.fetch()
|
|
100
|
-
.
|
|
100
|
+
.tap(() => {
|
|
101
101
|
return tokenModel.user.fetch();
|
|
102
102
|
})
|
|
103
|
-
.
|
|
103
|
+
.tap(() => {
|
|
104
104
|
Auth._user = tokenModel.user;
|
|
105
105
|
Auth._loggedIn = true;
|
|
106
106
|
});
|
|
@@ -32,7 +32,7 @@ export const ActivityCollection = BaseCollection.extend(
|
|
|
32
32
|
options = {},
|
|
33
33
|
fromActivityDate = null,
|
|
34
34
|
page = 1,
|
|
35
|
-
activities = []
|
|
35
|
+
activities = [],
|
|
36
36
|
) {
|
|
37
37
|
const data = { page };
|
|
38
38
|
if (fromActivityDate) {
|
|
@@ -70,7 +70,7 @@ export const ActivityCollection = BaseCollection.extend(
|
|
|
70
70
|
}
|
|
71
71
|
return resp;
|
|
72
72
|
},
|
|
73
|
-
true
|
|
73
|
+
true,
|
|
74
74
|
);
|
|
75
75
|
|
|
76
76
|
if (!hasAllActivities) {
|
|
@@ -87,7 +87,7 @@ export const ActivityCollection = BaseCollection.extend(
|
|
|
87
87
|
options,
|
|
88
88
|
fromActivityDate,
|
|
89
89
|
page + 1,
|
|
90
|
-
[...activities, ...this.models]
|
|
90
|
+
[...activities, ...this.models],
|
|
91
91
|
);
|
|
92
92
|
});
|
|
93
93
|
},
|
|
@@ -111,7 +111,7 @@ export const ActivityCollection = BaseCollection.extend(
|
|
|
111
111
|
|
|
112
112
|
return BaseCollection.prototype.fetch.apply(this, arguments);
|
|
113
113
|
},
|
|
114
|
-
}
|
|
114
|
+
},
|
|
115
115
|
);
|
|
116
116
|
|
|
117
117
|
register("ActivityCollection", ActivityCollection);
|
|
@@ -13,7 +13,7 @@ export const AdjunctSubSlideCollection = BaseCollection.extend(
|
|
|
13
13
|
/** @lends collections.AdjunctSubSlideCollection# */ {
|
|
14
14
|
comparator: "sequence",
|
|
15
15
|
model: "AdjunctSubSlideModel",
|
|
16
|
-
}
|
|
16
|
+
},
|
|
17
17
|
);
|
|
18
18
|
|
|
19
19
|
register("AdjunctSubSlideCollection", AdjunctSubSlideCollection);
|
|
@@ -12,7 +12,7 @@ import { register } from "../state-register.js";
|
|
|
12
12
|
export const AppointmentAdjunctTagsCollection = BaseCollection.extend(
|
|
13
13
|
/** @lends collections.AppointmentAdjunctTagsCollection# */ {
|
|
14
14
|
model: "AppointmentAdjunctTagsModel",
|
|
15
|
-
}
|
|
15
|
+
},
|
|
16
16
|
);
|
|
17
17
|
|
|
18
18
|
register("AppointmentAdjunctTagsCollection", AppointmentAdjunctTagsCollection);
|
|
@@ -12,10 +12,10 @@ import { register } from "../state-register.js";
|
|
|
12
12
|
export const AppointmentDeckVersionTagsCollection = BaseCollection.extend(
|
|
13
13
|
/** @lends collections.AppointmentDeckVersionTagsCollection# */ {
|
|
14
14
|
model: "AppointmentDeckVersionTagsModel",
|
|
15
|
-
}
|
|
15
|
+
},
|
|
16
16
|
);
|
|
17
17
|
|
|
18
18
|
register(
|
|
19
19
|
"AppointmentDeckVersionTagsCollection",
|
|
20
|
-
AppointmentDeckVersionTagsCollection
|
|
20
|
+
AppointmentDeckVersionTagsCollection,
|
|
21
21
|
);
|
|
@@ -13,7 +13,7 @@ export const AppointmentDuplicateCollection = BaseCollection.extend(
|
|
|
13
13
|
/** @lends collections.AppointmentDuplicateCollection# */ {
|
|
14
14
|
comparator: "sequence",
|
|
15
15
|
model: "AppointmentDuplicateModel",
|
|
16
|
-
}
|
|
16
|
+
},
|
|
17
17
|
);
|
|
18
18
|
|
|
19
19
|
register("AppointmentDuplicateCollection", AppointmentDuplicateCollection);
|
|
@@ -12,7 +12,7 @@ import { register } from "../state-register.js";
|
|
|
12
12
|
export const AppointmentSectionTagsCollection = BaseCollection.extend(
|
|
13
13
|
/** @lends collections.AppointmentSectionTagsCollection# */ {
|
|
14
14
|
model: "AppointmentSectionTagsModel",
|
|
15
|
-
}
|
|
15
|
+
},
|
|
16
16
|
);
|
|
17
17
|
|
|
18
18
|
register("AppointmentSectionTagsCollection", AppointmentSectionTagsCollection);
|
|
@@ -12,7 +12,7 @@ import { register } from "../state-register.js";
|
|
|
12
12
|
export const AppointmentSlideTagsCollection = BaseCollection.extend(
|
|
13
13
|
/** @lends collections.AppointmentSlideTagsCollection# */ {
|
|
14
14
|
model: "AppointmentSlideTagsModel",
|
|
15
|
-
}
|
|
15
|
+
},
|
|
16
16
|
);
|
|
17
17
|
|
|
18
18
|
register("AppointmentSlideTagsCollection", AppointmentSlideTagsCollection);
|
|
@@ -80,23 +80,23 @@ export const AppointmentTagsCollection = BaseCollection.extend(
|
|
|
80
80
|
|
|
81
81
|
if (!hasAppointment) {
|
|
82
82
|
throw new Error(
|
|
83
|
-
"Requires an appointment model in collection options to fetch."
|
|
83
|
+
"Requires an appointment model in collection options to fetch.",
|
|
84
84
|
);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
const tagModels = Object.values(this.tagNameCollectionMapping);
|
|
88
88
|
// Fetch all the separate tag models and combine them into a single collection
|
|
89
|
-
const results = (
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
.flatMap((collection) => collection.results)
|
|
99
|
-
|
|
89
|
+
const results = _.compact(
|
|
90
|
+
(
|
|
91
|
+
await Promise.all(
|
|
92
|
+
tagModels.map((tagModel) => {
|
|
93
|
+
const Collection = getState(tagModel);
|
|
94
|
+
const tags = new Collection({}, this._options);
|
|
95
|
+
return tags.fetch(options);
|
|
96
|
+
}),
|
|
97
|
+
)
|
|
98
|
+
).flatMap((collection) => collection.results),
|
|
99
|
+
).map(this._mapResultsToModel.bind(this));
|
|
100
100
|
|
|
101
101
|
this.add(results);
|
|
102
102
|
|
|
@@ -119,16 +119,18 @@ export const AppointmentTagsCollection = BaseCollection.extend(
|
|
|
119
119
|
];
|
|
120
120
|
|
|
121
121
|
// flatMap currently doesn't work in TelePresenter
|
|
122
|
-
const results = _.
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
122
|
+
const results = _.compact(
|
|
123
|
+
_.flatten(
|
|
124
|
+
tagCollectionNames.map((collectionName) => {
|
|
125
|
+
const collection = appointment[collectionName];
|
|
126
|
+
return collection?._data || [];
|
|
127
|
+
}),
|
|
128
|
+
),
|
|
127
129
|
).map(this._mapResultsToModel.bind(this));
|
|
128
130
|
|
|
129
131
|
this.add(results);
|
|
130
132
|
},
|
|
131
|
-
}
|
|
133
|
+
},
|
|
132
134
|
);
|
|
133
135
|
|
|
134
136
|
AppointmentTagsCollection.canBeEmpty = true;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import "../models/appointment-template.js";
|
|
2
|
+
|
|
3
|
+
import { BaseCollection } from "./base.js";
|
|
4
|
+
import { register } from "../state-register.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @constructor
|
|
8
|
+
* @alias collections.AppointmentTemplateCollection
|
|
9
|
+
* @extends collections.BaseCollection
|
|
10
|
+
* @see models.AppointmentTemplateModel
|
|
11
|
+
*/
|
|
12
|
+
export const AppointmentTemplateCollection = BaseCollection.extend(
|
|
13
|
+
/** @lends collections.AppointmentTemplateCollection# */ {
|
|
14
|
+
comparator: "sequence",
|
|
15
|
+
model: "AppointmentTemplateModel",
|
|
16
|
+
url() {
|
|
17
|
+
if (!this._url && this.parent) {
|
|
18
|
+
this._options.appointment = this.parent;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return BaseCollection.prototype.url.call(this);
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
register("AppointmentTemplateCollection", AppointmentTemplateCollection);
|
|
@@ -29,7 +29,7 @@ export const AppointmentCollection = BaseCollection.extend(
|
|
|
29
29
|
`);
|
|
30
30
|
return AppointmentCollection.monthParametersForUser.apply(
|
|
31
31
|
null,
|
|
32
|
-
arguments
|
|
32
|
+
arguments,
|
|
33
33
|
);
|
|
34
34
|
},
|
|
35
35
|
|
|
@@ -42,14 +42,14 @@ export const AppointmentCollection = BaseCollection.extend(
|
|
|
42
42
|
fetchMonthForUser(
|
|
43
43
|
date = moment.now(),
|
|
44
44
|
options = {},
|
|
45
|
-
userID = Auth.user.id
|
|
45
|
+
userID = Auth.user.id,
|
|
46
46
|
) {
|
|
47
47
|
return this.fetch({
|
|
48
48
|
...options,
|
|
49
49
|
data: AppointmentCollection.monthParametersForUser(
|
|
50
50
|
date,
|
|
51
51
|
userID,
|
|
52
|
-
"sort"
|
|
52
|
+
"sort",
|
|
53
53
|
),
|
|
54
54
|
});
|
|
55
55
|
},
|
|
@@ -57,14 +57,14 @@ export const AppointmentCollection = BaseCollection.extend(
|
|
|
57
57
|
fetchFortnightForUser(
|
|
58
58
|
date = moment.now(),
|
|
59
59
|
options = {},
|
|
60
|
-
userID = Auth.user.id
|
|
60
|
+
userID = Auth.user.id,
|
|
61
61
|
) {
|
|
62
62
|
return this.fetch({
|
|
63
63
|
...options,
|
|
64
64
|
data: AppointmentCollection.fortnightParametersForUser(
|
|
65
65
|
date,
|
|
66
66
|
userID,
|
|
67
|
-
"sort"
|
|
67
|
+
"sort",
|
|
68
68
|
),
|
|
69
69
|
});
|
|
70
70
|
},
|
|
@@ -80,11 +80,11 @@ export const AppointmentCollection = BaseCollection.extend(
|
|
|
80
80
|
data: AppointmentCollection.monthParametersForUser(
|
|
81
81
|
date,
|
|
82
82
|
userID,
|
|
83
|
-
"created"
|
|
83
|
+
"created",
|
|
84
84
|
),
|
|
85
85
|
});
|
|
86
86
|
},
|
|
87
|
-
}
|
|
87
|
+
},
|
|
88
88
|
);
|
|
89
89
|
|
|
90
90
|
/**
|
|
@@ -99,7 +99,7 @@ export const AppointmentCollection = BaseCollection.extend(
|
|
|
99
99
|
AppointmentCollection.fortnightParametersForUser = function (
|
|
100
100
|
date,
|
|
101
101
|
userID = Auth.user.id,
|
|
102
|
-
parameter = "sort"
|
|
102
|
+
parameter = "sort",
|
|
103
103
|
) {
|
|
104
104
|
const dateFrom = moment(date).subtract(1, "week").format();
|
|
105
105
|
const dateTo = moment(date).add(1, "week").format();
|
|
@@ -128,7 +128,7 @@ AppointmentCollection.fortnightParametersForUser = function (
|
|
|
128
128
|
AppointmentCollection.monthParametersForUser = function (
|
|
129
129
|
date,
|
|
130
130
|
userID = Auth.user.id,
|
|
131
|
-
parameter = "sort"
|
|
131
|
+
parameter = "sort",
|
|
132
132
|
) {
|
|
133
133
|
const dateFrom = moment(date).startOf("month").format();
|
|
134
134
|
const dateTo = moment(date).endOf("month").format();
|
package/src/collections/base.js
CHANGED
|
@@ -98,7 +98,7 @@ export const BaseCollection = Collection.extend(
|
|
|
98
98
|
const Model = registeredStates[this.model];
|
|
99
99
|
if (!Model) {
|
|
100
100
|
throw new Error(
|
|
101
|
-
`'${this.model}' not found! Did you forget to import it on the '${this.modelName}' model
|
|
101
|
+
`'${this.model}' not found! Did you forget to import it on the '${this.modelName}' model?`,
|
|
102
102
|
);
|
|
103
103
|
}
|
|
104
104
|
this.model = Model;
|
|
@@ -123,7 +123,7 @@ export const BaseCollection = Collection.extend(
|
|
|
123
123
|
query = _.extend(
|
|
124
124
|
{},
|
|
125
125
|
qs.parse(url.slice(queryIndex + 1)),
|
|
126
|
-
this.queryData
|
|
126
|
+
this.queryData,
|
|
127
127
|
);
|
|
128
128
|
}
|
|
129
129
|
if (url.slice(-1) !== "/") {
|
|
@@ -143,6 +143,10 @@ export const BaseCollection = Collection.extend(
|
|
|
143
143
|
resp += "/";
|
|
144
144
|
}
|
|
145
145
|
|
|
146
|
+
if (!resp.includes("{") || !resp.includes("}")) {
|
|
147
|
+
return this.getFullURLPath(resp);
|
|
148
|
+
}
|
|
149
|
+
|
|
146
150
|
// Replace any values in a url with one from the collection's options.
|
|
147
151
|
// So if you have /path/to/{model.id}/models/
|
|
148
152
|
// It will check the collection options for "model.id" and replace
|
|
@@ -156,7 +160,7 @@ export const BaseCollection = Collection.extend(
|
|
|
156
160
|
resp = resp.replace(match, replacement);
|
|
157
161
|
} else if (!this.isNew()) {
|
|
158
162
|
log.error(
|
|
159
|
-
`Collection ${this.modelName} is missing value ${path} as an option
|
|
163
|
+
`Collection ${this.modelName} is missing value ${path} as an option`,
|
|
160
164
|
);
|
|
161
165
|
}
|
|
162
166
|
resp = resp.replace(match, replacement);
|
|
@@ -339,7 +343,7 @@ export const BaseCollection = Collection.extend(
|
|
|
339
343
|
return Promise.all(
|
|
340
344
|
this.map((model) => {
|
|
341
345
|
return model.save(model.toServer(), options);
|
|
342
|
-
})
|
|
346
|
+
}),
|
|
343
347
|
);
|
|
344
348
|
},
|
|
345
349
|
|
|
@@ -353,7 +357,7 @@ export const BaseCollection = Collection.extend(
|
|
|
353
357
|
return Promise.all(
|
|
354
358
|
this.map((model) => {
|
|
355
359
|
return model.delete(model.toServer(), options);
|
|
356
|
-
})
|
|
360
|
+
}),
|
|
357
361
|
);
|
|
358
362
|
},
|
|
359
363
|
|
|
@@ -376,7 +380,7 @@ export const BaseCollection = Collection.extend(
|
|
|
376
380
|
|
|
377
381
|
return results;
|
|
378
382
|
},
|
|
379
|
-
}
|
|
383
|
+
},
|
|
380
384
|
);
|
|
381
385
|
|
|
382
386
|
// Make matchesURL available as a static method
|
|
@@ -93,10 +93,10 @@ it("should query multiple values if using an array", () => {
|
|
|
93
93
|
data: {
|
|
94
94
|
foo: [1, 2, null],
|
|
95
95
|
},
|
|
96
|
-
}
|
|
96
|
+
},
|
|
97
97
|
);
|
|
98
98
|
expect(collection.url()).toEqual(
|
|
99
|
-
"/api/appointments/?per_page=1000&foo=1&foo=2&foo="
|
|
99
|
+
"/api/appointments/?per_page=1000&foo=1&foo=2&foo=",
|
|
100
100
|
);
|
|
101
101
|
});
|
|
102
102
|
|
|
@@ -34,7 +34,11 @@ export const CMSValCollection = BaseCollection.extend(
|
|
|
34
34
|
|
|
35
35
|
return BaseCollection.prototype.fetch.call(this, opts);
|
|
36
36
|
},
|
|
37
|
-
|
|
37
|
+
|
|
38
|
+
toCompactJSON() {
|
|
39
|
+
return this.models.map((cmsVal) => cmsVal.toCompactJSON());
|
|
40
|
+
},
|
|
41
|
+
},
|
|
38
42
|
);
|
|
39
43
|
|
|
40
44
|
CMSValCollection.canBeEmpty = true;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import "../models/contact-phone.js";
|
|
2
|
+
|
|
3
|
+
import { BaseCollection } from "./base.js";
|
|
4
|
+
import { register } from "../state-register.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @constructor
|
|
8
|
+
* @alias collections.ContactCollection
|
|
9
|
+
* @extends collections.BaseCollection
|
|
10
|
+
* @see models.ContactPhone
|
|
11
|
+
*/
|
|
12
|
+
export const ContactPhoneCollection = BaseCollection.extend(
|
|
13
|
+
/** @lends collections.ContactCollection# */ {
|
|
14
|
+
model: "ContactPhoneModel",
|
|
15
|
+
},
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
register("ContactPhoneCollection", ContactPhoneCollection);
|