@livepreso/api 6.41.0 → 6.44.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/.eslintrc.js +5 -0
- package/.rush/temp/build-cache-tar.log +7 -0
- package/.rush/temp/package-deps_test.json +170 -0
- package/.rush/temp/shrinkwrap-deps.json +957 -0
- package/CHANGELOG.json +53 -0
- package/CHANGELOG.md +32 -0
- package/api.build.log +4 -0
- package/babel.config.js +9 -18
- package/cjs/api.js +1 -1
- package/cjs/api.js.map +1 -1
- package/cjs/api.spec.js +2 -2
- package/cjs/api.spec.js.map +1 -1
- package/cjs/auth.js +6 -5
- package/cjs/auth.js.map +1 -1
- package/cjs/auth.spec.js +25 -23
- package/cjs/auth.spec.js.map +1 -1
- package/cjs/caching.js +3 -3
- package/cjs/collections/activity.js +22 -27
- package/cjs/collections/activity.js.map +1 -1
- package/cjs/collections/adjunct-sections.js +2 -2
- package/cjs/collections/adjunct-sections.js.map +1 -1
- package/cjs/collections/adjunct-slides.js +2 -2
- package/cjs/collections/adjunct-slides.js.map +1 -1
- package/cjs/collections/adjunct-sub-slides.js +2 -2
- package/cjs/collections/adjunct-sub-slides.js.map +1 -1
- package/cjs/collections/appointment-adjunct-tags.js +28 -0
- package/cjs/collections/appointment-adjunct-tags.js.map +1 -0
- package/cjs/collections/appointment-deckversion-tags.js +28 -0
- package/cjs/collections/appointment-deckversion-tags.js.map +1 -0
- package/cjs/collections/appointment-duplicates.js +2 -2
- package/cjs/collections/appointment-duplicates.js.map +1 -1
- package/cjs/collections/appointment-editors.js +2 -2
- package/cjs/collections/appointment-editors.js.map +1 -1
- package/cjs/collections/appointment-section-tags.js +28 -0
- package/cjs/collections/appointment-section-tags.js.map +1 -0
- package/cjs/collections/appointment-slide-tags.js +28 -0
- package/cjs/collections/appointment-slide-tags.js.map +1 -0
- package/cjs/collections/appointment-tags.js +208 -0
- package/cjs/collections/appointment-tags.js.map +1 -0
- package/cjs/collections/appointments.js +10 -6
- package/cjs/collections/appointments.js.map +1 -1
- package/cjs/collections/assets.js +2 -2
- package/cjs/collections/assets.js.map +1 -1
- package/cjs/collections/auto-adjuncts.js +7 -3
- package/cjs/collections/auto-adjuncts.js.map +1 -1
- package/cjs/collections/base.js +103 -25
- package/cjs/collections/base.js.map +1 -1
- package/cjs/collections/base.spec.js +231 -123
- package/cjs/collections/base.spec.js.map +1 -1
- package/cjs/collections/cms-vals.js +2 -2
- package/cjs/collections/cms-vals.js.map +1 -1
- package/cjs/collections/contacts.js +2 -2
- package/cjs/collections/contacts.js.map +1 -1
- package/cjs/collections/created-assets.js +2 -2
- package/cjs/collections/created-assets.js.map +1 -1
- package/cjs/collections/customers.js +2 -2
- package/cjs/collections/customers.js.map +1 -1
- package/cjs/collections/deck-notes.js +2 -2
- package/cjs/collections/deck-notes.js.map +1 -1
- package/cjs/collections/deck-versions.js +20 -8
- package/cjs/collections/deck-versions.js.map +1 -1
- package/cjs/collections/decks.js +2 -2
- package/cjs/collections/decks.js.map +1 -1
- package/cjs/collections/deleted-assets.js +2 -2
- package/cjs/collections/deleted-assets.js.map +1 -1
- package/cjs/collections/dispatches.js +4 -4
- package/cjs/collections/dispatches.js.map +1 -1
- package/cjs/collections/event-objects.js +2 -2
- package/cjs/collections/event-objects.js.map +1 -1
- package/cjs/collections/events.js +2 -2
- package/cjs/collections/events.js.map +1 -1
- package/cjs/collections/groups.js +2 -2
- package/cjs/collections/groups.js.map +1 -1
- package/cjs/collections/images.js +2 -2
- package/cjs/collections/images.js.map +1 -1
- package/cjs/collections/locations.js +2 -2
- package/cjs/collections/locations.js.map +1 -1
- package/cjs/collections/opportunities.js +2 -2
- package/cjs/collections/opportunities.js.map +1 -1
- package/cjs/collections/pack-diffs.js +2 -2
- package/cjs/collections/pack-diffs.js.map +1 -1
- package/cjs/collections/packs.js +2 -2
- package/cjs/collections/packs.js.map +1 -1
- package/cjs/collections/presets.js +2 -2
- package/cjs/collections/presets.js.map +1 -1
- package/cjs/collections/section-selections.js +2 -2
- package/cjs/collections/section-selections.js.map +1 -1
- package/cjs/collections/sections.js +2 -2
- package/cjs/collections/sections.js.map +1 -1
- package/cjs/collections/slide-selections.js +2 -2
- package/cjs/collections/slide-selections.js.map +1 -1
- package/cjs/collections/slides.js +2 -2
- package/cjs/collections/slides.js.map +1 -1
- package/cjs/collections/snapshots.js +2 -2
- package/cjs/collections/snapshots.js.map +1 -1
- package/cjs/collections/sub-slides.js +2 -2
- package/cjs/collections/sub-slides.js.map +1 -1
- package/cjs/collections/tags.js +28 -0
- package/cjs/collections/tags.js.map +1 -0
- package/cjs/collections/teams.js +2 -2
- package/cjs/collections/teams.js.map +1 -1
- package/cjs/collections/templates.js +2 -2
- package/cjs/collections/templates.js.map +1 -1
- package/cjs/collections/uploads.js +2 -2
- package/cjs/collections/uploads.js.map +1 -1
- package/cjs/collections/users.js +2 -2
- package/cjs/collections/users.js.map +1 -1
- package/cjs/collections.js +115 -0
- package/cjs/collections.js.map +1 -1
- package/cjs/index.js +3 -0
- package/cjs/index.js.map +1 -1
- package/cjs/middleware.js.map +1 -1
- package/cjs/middlewares/auth.js +10 -6
- package/cjs/middlewares/auth.js.map +1 -1
- package/cjs/middlewares/base.js +1 -3
- package/cjs/middlewares/base.js.map +1 -1
- package/cjs/middlewares/json.js +10 -6
- package/cjs/middlewares/json.js.map +1 -1
- package/cjs/middlewares/redirect.js +10 -6
- package/cjs/middlewares/redirect.js.map +1 -1
- package/cjs/models/activity-item.js +6 -2
- package/cjs/models/activity-item.js.map +1 -1
- package/cjs/models/adjunct-section.js +2 -2
- package/cjs/models/adjunct-section.js.map +1 -1
- package/cjs/models/adjunct-slide.js +2 -2
- package/cjs/models/adjunct-slide.js.map +1 -1
- package/cjs/models/adjunct-sub-slide.js +2 -2
- package/cjs/models/adjunct-sub-slide.js.map +1 -1
- package/cjs/models/adjunct.js +2 -2
- package/cjs/models/adjunct.js.map +1 -1
- package/cjs/models/api.js.map +1 -1
- package/cjs/models/appointment-adjunct-tags.js +52 -0
- package/cjs/models/appointment-adjunct-tags.js.map +1 -0
- package/cjs/models/appointment-deckversion-tags.js +52 -0
- package/cjs/models/appointment-deckversion-tags.js.map +1 -0
- package/cjs/models/appointment-duplicate.js +8 -3
- package/cjs/models/appointment-duplicate.js.map +1 -1
- package/cjs/models/appointment-editor.js +2 -2
- package/cjs/models/appointment-editor.js.map +1 -1
- package/cjs/models/appointment-section-tags.js +52 -0
- package/cjs/models/appointment-section-tags.js.map +1 -0
- package/cjs/models/appointment-slide-tags.js +52 -0
- package/cjs/models/appointment-slide-tags.js.map +1 -0
- package/cjs/models/appointment-stats.js +2 -2
- package/cjs/models/appointment-stats.js.map +1 -1
- package/cjs/models/appointment-tags.js +48 -0
- package/cjs/models/appointment-tags.js.map +1 -0
- package/cjs/models/appointment-viewing.js +2 -2
- package/cjs/models/appointment-viewing.js.map +1 -1
- package/cjs/models/appointment.js +16 -7
- package/cjs/models/appointment.js.map +1 -1
- package/cjs/models/asset.js +2 -2
- package/cjs/models/asset.js.map +1 -1
- package/cjs/models/auto-adjunct-key-check.js +2 -2
- package/cjs/models/auto-adjunct-key-check.js.map +1 -1
- package/cjs/models/auto-adjunct.js +2 -2
- package/cjs/models/auto-adjunct.js.map +1 -1
- package/cjs/models/base.js +25 -36
- package/cjs/models/base.js.map +1 -1
- package/cjs/models/base.spec.js +45 -45
- package/cjs/models/base.spec.js.map +1 -1
- package/cjs/models/choicelist.js.map +1 -1
- package/cjs/models/cms-val.js.map +1 -1
- package/cjs/models/contact.js +2 -2
- package/cjs/models/contact.js.map +1 -1
- package/cjs/models/customer.js +2 -2
- package/cjs/models/customer.js.map +1 -1
- package/cjs/models/deck-note.js +2 -2
- package/cjs/models/deck-note.js.map +1 -1
- package/cjs/models/deck-tags.js +61 -0
- package/cjs/models/deck-tags.js.map +1 -0
- package/cjs/models/deck-version.js +5 -3
- package/cjs/models/deck-version.js.map +1 -1
- package/cjs/models/deck.js +6 -3
- package/cjs/models/deck.js.map +1 -1
- package/cjs/models/dispatch-preview.js +3 -3
- package/cjs/models/dispatch-preview.js.map +1 -1
- package/cjs/models/dispatch.js +2 -2
- package/cjs/models/dispatch.js.map +1 -1
- package/cjs/models/envs.js.map +1 -1
- package/cjs/models/event-object.js +2 -2
- package/cjs/models/event-object.js.map +1 -1
- package/cjs/models/event.js +2 -2
- package/cjs/models/event.js.map +1 -1
- package/cjs/models/feed-data.js +2 -2
- package/cjs/models/feed-data.js.map +1 -1
- package/cjs/models/file.js +2 -2
- package/cjs/models/file.js.map +1 -1
- package/cjs/models/group.js +2 -2
- package/cjs/models/group.js.map +1 -1
- package/cjs/models/handover.js +2 -2
- package/cjs/models/handover.js.map +1 -1
- package/cjs/models/hosted-preso.js +2 -2
- package/cjs/models/hosted-preso.js.map +1 -1
- package/cjs/models/image.js +2 -2
- package/cjs/models/image.js.map +1 -1
- package/cjs/models/location.js +2 -2
- package/cjs/models/location.js.map +1 -1
- package/cjs/models/manifest-json.js +83 -58
- package/cjs/models/manifest-json.js.map +1 -1
- package/cjs/models/onshare.js +2 -2
- package/cjs/models/onshare.js.map +1 -1
- package/cjs/models/opportunity.js +2 -2
- package/cjs/models/opportunity.js.map +1 -1
- package/cjs/models/pack-diff.js +2 -2
- package/cjs/models/pack-diff.js.map +1 -1
- package/cjs/models/pack.js +2 -2
- package/cjs/models/pack.js.map +1 -1
- package/cjs/models/preset.js +22 -2
- package/cjs/models/preset.js.map +1 -1
- package/cjs/models/refresh-request.js +2 -2
- package/cjs/models/refresh-request.js.map +1 -1
- package/cjs/models/room.js +2 -2
- package/cjs/models/room.js.map +1 -1
- package/cjs/models/salesforce-lookup.js +2 -2
- package/cjs/models/salesforce-lookup.js.map +1 -1
- package/cjs/models/section-selection.js +2 -2
- package/cjs/models/section-selection.js.map +1 -1
- package/cjs/models/section.js +2 -2
- package/cjs/models/section.js.map +1 -1
- package/cjs/models/slide-selection.js +2 -2
- package/cjs/models/slide-selection.js.map +1 -1
- package/cjs/models/slide.js +2 -2
- package/cjs/models/slide.js.map +1 -1
- package/cjs/models/snapshot.js +2 -2
- package/cjs/models/snapshot.js.map +1 -1
- package/cjs/models/sub-slide.js +2 -2
- package/cjs/models/sub-slide.js.map +1 -1
- package/cjs/models/support-ticket.js +2 -2
- package/cjs/models/support-ticket.js.map +1 -1
- package/cjs/models/tag.js +54 -0
- package/cjs/models/tag.js.map +1 -0
- package/cjs/models/team.js +2 -2
- package/cjs/models/team.js.map +1 -1
- package/cjs/models/template.js +2 -2
- package/cjs/models/template.js.map +1 -1
- package/cjs/models/tenancy.js +2 -2
- package/cjs/models/tenancy.js.map +1 -1
- package/cjs/models/timing-log.js +20 -41
- package/cjs/models/timing-log.js.map +1 -1
- package/cjs/models/timing-log.spec.js +18 -86
- package/cjs/models/timing-log.spec.js.map +1 -1
- package/cjs/models/transcribe-socket.js +2 -2
- package/cjs/models/transcribe-socket.js.map +1 -1
- package/cjs/models/upload.js +2 -2
- package/cjs/models/upload.js.map +1 -1
- package/cjs/models/user.js +4 -3
- package/cjs/models/user.js.map +1 -1
- package/cjs/models/user.spec.js +10 -8
- package/cjs/models/user.spec.js.map +1 -1
- package/cjs/models.js +148 -0
- package/cjs/models.js.map +1 -1
- package/cjs/presentation/appointment-presentation.js +13 -5
- package/cjs/presentation/appointment-presentation.js.map +1 -1
- package/cjs/presentation/base-presentation-collection.js.map +1 -1
- package/cjs/presentation/base-presentation-model.js +65 -0
- package/cjs/presentation/base-presentation-model.js.map +1 -1
- package/cjs/presentation/base-presentation-model.spec.js +87 -0
- package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
- package/cjs/presentation/presentation-deck.js +31 -20
- package/cjs/presentation/presentation-deck.js.map +1 -1
- package/cjs/presentation/presentation-deck.spec.js +15 -13
- package/cjs/presentation/presentation-deck.spec.js.map +1 -1
- package/cjs/presentation/presentation-decks.js +2 -2
- package/cjs/presentation/presentation-decks.js.map +1 -1
- package/cjs/presentation/presentation-section.js +36 -17
- package/cjs/presentation/presentation-section.js.map +1 -1
- package/cjs/presentation/presentation-section.spec.js +418 -0
- package/cjs/presentation/presentation-section.spec.js.map +1 -0
- package/cjs/presentation/presentation-sections.js +2 -2
- package/cjs/presentation/presentation-sections.js.map +1 -1
- package/cjs/presentation/presentation-slide.js +35 -18
- package/cjs/presentation/presentation-slide.js.map +1 -1
- package/cjs/presentation/presentation-slide.spec.js +294 -0
- package/cjs/presentation/presentation-slide.spec.js.map +1 -0
- package/cjs/presentation/presentation-slides.js +2 -2
- package/cjs/presentation/presentation-slides.js.map +1 -1
- package/cjs/presentation/presentation-subslide.js +11 -7
- package/cjs/presentation/presentation-subslide.js.map +1 -1
- package/cjs/presentation/presentation-subslide.spec.js +68 -20
- package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
- package/cjs/presentation/presentation-subslides.js +2 -2
- package/cjs/presentation/presentation-subslides.js.map +1 -1
- package/cjs/presentation/presentation.js +19 -9
- package/cjs/presentation/presentation.js.map +1 -1
- package/cjs/presentation.js +10 -0
- package/cjs/presentation.js.map +1 -1
- package/cjs/state-register.js +11 -1
- package/cjs/state-register.js.map +1 -1
- package/cjs/sync.js +7 -7
- package/cjs/sync.js.map +1 -1
- package/cjs/utils.js +7 -7
- package/cjs/utils.js.map +1 -1
- package/cjs/utils.spec.js.map +1 -1
- package/config/rush-project.json +11 -0
- package/index.js +0 -1
- package/jest.config.js +4 -4
- package/package.json +19 -59
- package/setup-tests.js +2 -1
- package/src/api.js +3 -3
- package/src/api.spec.js +3 -4
- package/src/auth.js +6 -7
- package/src/auth.spec.js +3 -4
- package/src/collections/activity.js +5 -6
- package/src/collections/adjunct-sections.js +4 -4
- package/src/collections/adjunct-slides.js +4 -4
- package/src/collections/adjunct-sub-slides.js +2 -2
- package/src/collections/appointment-adjunct-tags.js +18 -0
- package/src/collections/appointment-deckversion-tags.js +21 -0
- package/src/collections/appointment-duplicates.js +2 -2
- package/src/collections/appointment-editors.js +2 -2
- package/src/collections/appointment-section-tags.js +18 -0
- package/src/collections/appointment-slide-tags.js +18 -0
- package/src/collections/appointment-tags.js +136 -0
- package/src/collections/appointments.js +18 -23
- package/src/collections/assets.js +2 -2
- package/src/collections/auto-adjuncts.js +5 -5
- package/src/collections/base.js +88 -18
- package/src/collections/base.spec.js +100 -8
- package/src/collections/cms-vals.js +3 -3
- package/src/collections/contacts.js +2 -2
- package/src/collections/created-assets.js +2 -2
- package/src/collections/customers.js +2 -2
- package/src/collections/deck-notes.js +2 -2
- package/src/collections/deck-versions.js +18 -15
- package/src/collections/decks.js +2 -2
- package/src/collections/deleted-assets.js +2 -2
- package/src/collections/dispatches.js +8 -13
- package/src/collections/event-objects.js +2 -2
- package/src/collections/events.js +2 -2
- package/src/collections/groups.js +2 -2
- package/src/collections/images.js +2 -2
- package/src/collections/locations.js +2 -2
- package/src/collections/opportunities.js +2 -2
- package/src/collections/pack-diffs.js +2 -2
- package/src/collections/packs.js +2 -2
- package/src/collections/presets.js +2 -2
- package/src/collections/section-selections.js +4 -4
- package/src/collections/sections.js +2 -2
- package/src/collections/slide-selections.js +4 -4
- package/src/collections/slides.js +2 -2
- package/src/collections/snapshots.js +2 -2
- package/src/collections/sub-slides.js +2 -2
- package/src/collections/tags.js +18 -0
- package/src/collections/teams.js +2 -2
- package/src/collections/templates.js +2 -2
- package/src/collections/uploads.js +2 -2
- package/src/collections/users.js +2 -2
- package/src/collections.js +6 -0
- package/src/index.js +1 -4
- package/src/middleware.js +1 -1
- package/src/middlewares/json.js +2 -2
- package/src/middlewares/redirect.js +1 -2
- package/src/models/activity-item.js +6 -6
- package/src/models/adjunct-section.js +5 -5
- package/src/models/adjunct-slide.js +5 -5
- package/src/models/adjunct-sub-slide.js +5 -5
- package/src/models/adjunct.js +4 -4
- package/src/models/api.js +1 -1
- package/src/models/appointment-adjunct-tags.js +41 -0
- package/src/models/appointment-deckversion-tags.js +41 -0
- package/src/models/appointment-duplicate.js +7 -7
- package/src/models/appointment-editor.js +6 -6
- package/src/models/appointment-section-tags.js +41 -0
- package/src/models/appointment-slide-tags.js +41 -0
- package/src/models/appointment-stats.js +5 -5
- package/src/models/appointment-tags.js +39 -0
- package/src/models/appointment-viewing.js +3 -3
- package/src/models/appointment.js +35 -29
- package/src/models/asset.js +5 -5
- package/src/models/auto-adjunct-key-check.js +5 -5
- package/src/models/auto-adjunct.js +4 -4
- package/src/models/base.js +36 -37
- package/src/models/base.spec.js +61 -62
- package/src/models/choicelist.js +2 -2
- package/src/models/cms-val.js +3 -3
- package/src/models/contact.js +9 -9
- package/src/models/customer.js +13 -13
- package/src/models/deck-note.js +4 -4
- package/src/models/deck-tags.js +52 -0
- package/src/models/deck-version.js +9 -8
- package/src/models/deck.js +8 -6
- package/src/models/dispatch-preview.js +6 -7
- package/src/models/dispatch.js +6 -7
- package/src/models/envs.js +1 -1
- package/src/models/event-object.js +6 -6
- package/src/models/event.js +7 -7
- package/src/models/feed-data.js +5 -5
- package/src/models/file.js +4 -4
- package/src/models/group.js +3 -3
- package/src/models/handover.js +5 -5
- package/src/models/hosted-preso.js +5 -5
- package/src/models/image.js +4 -4
- package/src/models/location.js +5 -5
- package/src/models/manifest-json.js +77 -30
- package/src/models/onshare.js +5 -5
- package/src/models/opportunity.js +5 -5
- package/src/models/pack-diff.js +5 -5
- package/src/models/pack.js +4 -4
- package/src/models/preset.js +24 -5
- package/src/models/refresh-request.js +6 -6
- package/src/models/room.js +3 -3
- package/src/models/salesforce-lookup.js +3 -3
- package/src/models/section-selection.js +6 -6
- package/src/models/section.js +7 -7
- package/src/models/slide-selection.js +6 -6
- package/src/models/slide.js +7 -7
- package/src/models/snapshot.js +5 -5
- package/src/models/sub-slide.js +5 -5
- package/src/models/support-ticket.js +4 -4
- package/src/models/tag.js +42 -0
- package/src/models/team.js +4 -4
- package/src/models/template.js +4 -4
- package/src/models/tenancy.js +5 -5
- package/src/models/timing-log.js +18 -18
- package/src/models/timing-log.spec.js +28 -29
- package/src/models/transcribe-socket.js +3 -3
- package/src/models/upload.js +3 -3
- package/src/models/user.js +19 -17
- package/src/models/user.spec.js +2 -2
- package/src/models.js +7 -0
- package/src/presentation/appointment-presentation.js +14 -10
- package/src/presentation/base-presentation-model.js +67 -5
- package/src/presentation/base-presentation-model.spec.js +114 -22
- package/src/presentation/presentation-deck.js +54 -52
- package/src/presentation/presentation-deck.spec.js +26 -27
- package/src/presentation/presentation-decks.js +2 -2
- package/src/presentation/presentation-section.js +62 -48
- package/src/presentation/presentation-section.spec.js +363 -0
- package/src/presentation/presentation-sections.js +2 -2
- package/src/presentation/presentation-slide.js +51 -36
- package/src/presentation/presentation-slide.spec.js +250 -0
- package/src/presentation/presentation-slides.js +2 -2
- package/src/presentation/presentation-subslide.js +24 -17
- package/src/presentation/presentation-subslide.spec.js +40 -12
- package/src/presentation/presentation-subslides.js +2 -2
- package/src/presentation/presentation.js +27 -15
- package/src/state-register.js +7 -0
- package/src/sync.js +21 -23
- package/src/utils.js +8 -7
- package/src/utils.spec.js +15 -15
- package/.editorconfig +0 -9
- package/.eslintrc +0 -25
- package/.prettierrc.js +0 -3
- package/jsdoc.json +0 -12
- package/yarn.lock +0 -8099
package/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.js"],"names":["DATE_FORMAT","DATE_FORMAT_T","getShortURL","url","url2","parse","path","removeMultiByteChars","txt","replace","HOSTNAME_RE","getHostname","data","Error","match","replaceHostname","before","after","hostnameBefore","hostnameAfter","indexOf","Array","isArray","map","item","_","isObject","Object","keys","reduce","newObj","key","getMaxID","deckVersionModel","ids","section_set","section","slides","slide_set","slide","subslides","subslide_set","subslide","id","flatten","max","setSequentialSequences","deck","sections","forEach","index","sequence","isImpostor","model","tags","isImpostorDeck","first","Boolean","find"],"mappings":";;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../src/utils.js"],"names":["DATE_FORMAT","DATE_FORMAT_T","getShortURL","url","url2","parse","path","removeMultiByteChars","txt","replace","HOSTNAME_RE","getHostname","data","Error","match","replaceHostname","before","after","hostnameBefore","hostnameAfter","indexOf","Array","isArray","map","item","_","isObject","Object","keys","reduce","newObj","key","getMaxID","deckVersionModel","ids","section_set","section","slides","slide_set","slide","subslides","subslide_set","subslide","id","flatten","max","setSequentialSequences","deck","sections","forEach","index","sequence","isImpostor","model","tags","isImpostorDeck","first","Boolean","find"],"mappings":"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","sourcesContent":["import _ from \"lodash\";\n/* eslint-disable no-control-regex */\nimport url2 from \"url\";\n\nexport const DATE_FORMAT = \"YYYY-MM-DD HH:mm:ss.SSSSSS[Z]\";\nexport const DATE_FORMAT_T = \"YYYY-MM-DDTHH:mm:ss.SSSSSS[Z]\";\n\nexport function getShortURL(url) {\n\treturn url2.parse(url).path;\n}\n\n/**\n * Sometimes a string(especially from another platform) has characters encoded using another method.\n * In these circumstances those characters, when encoded with utf-8, look like errors.\n * see http://i18nqa.com/debug/utf8-debug.html for examples\n */\nexport function removeMultiByteChars(txt) {\n\t// replace possible whitespace characters (non-breaking space, thin space etc.) with a normal space\n\ttxt = txt.replace(/(\\xA0|\\x20|\\x07|â)/gmu, \" \");\n\n\t// remove every other cursed character entirely.\n\treturn txt.replace(\n\t\t/[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}|[\\x80-\\xBF][\\xC0-\\xFF]/gmu,\n\t\t\"\"\n\t);\n}\n\nconst HOSTNAME_RE = /^(?:https?:\\/\\/)?([\\w-\\._]*)/;\n\n/**\n *\n */\nexport function getHostname(data) {\n\tif (typeof data !== \"string\") {\n\t\tthrow new Error(\n\t\t\t`Arg must contain a hostname, ie: \"test.livepreso.com\". Found \"${data}\"`\n\t\t);\n\t}\n\n\treturn data.match(HOSTNAME_RE)[1];\n}\n\n/**\n * Replaces the hostname in some data (regardless of it being a string, array or object),\n * it will recursively update it all.\n *\n * Eg:\n *\n * replaceHostname(\"https://test.com/api/cool/1/\", \"test.com\", \"real.com\")\n * > \"https://real.com/api/cool/1/\"\n *\n */\nexport function replaceHostname(data, before, after) {\n\t// Don't do anything if they're the same!\n\tif (before === after) {\n\t\treturn data;\n\t}\n\n\tconst hostnameBefore = getHostname(before, \"Before\");\n\tconst hostnameAfter = getHostname(after, \"After\");\n\n\tif (typeof data === \"string\" && data.indexOf(\"http\") === 0) {\n\t\treturn data.replace(hostnameBefore, hostnameAfter);\n\t} else if (Array.isArray(data)) {\n\t\treturn data.map((item) => replaceHostname(item, before, after));\n\t} else if (_.isObject(data)) {\n\t\treturn Object.keys(data).reduce((newObj, key) => {\n\t\t\tnewObj[key] = replaceHostname(data[key], before, after);\n\t\t\treturn newObj;\n\t\t}, {});\n\t}\n\treturn data;\n}\n\n// Takes the deckversion model and retrieves the highest id between all of\n// the sections, slides and subslides\nexport function getMaxID(deckVersionModel) {\n\tconst ids = deckVersionModel.section_set.map((section) => {\n\t\tlet slides = [];\n\t\tif (section.slide_set) {\n\t\t\tslides = section.slide_set.map((slide) => {\n\t\t\t\tlet subslides = [];\n\n\t\t\t\tif (slide.subslide_set) {\n\t\t\t\t\tsubslides = slide.subslide_set.map((subslide) => subslide.id);\n\t\t\t\t}\n\n\t\t\t\treturn [slide.id, ...subslides];\n\t\t\t});\n\t\t}\n\n\t\treturn [section.id, ..._.flatten(slides)];\n\t});\n\n\treturn _.max(_.flatten(ids));\n}\n\n// The sections, slides and subslides are currently ordered by sequence\n// but the sequence is not necessarily 0-based and sequential (e.g. in the\n// case of impostor decks). We fix that here.\nexport function setSequentialSequences(deck) {\n\tdeck.sections.forEach((section, index) => {\n\t\tsection.sequence = index;\n\t\tsection.index = index;\n\n\t\tsection.slides.forEach((slide, index) => {\n\t\t\tslide.sequence = index;\n\t\t\tslide.index = index;\n\n\t\t\tslide.subslides.forEach((subslide, index) => {\n\t\t\t\tsubslide.sequence = index;\n\t\t\t\tsubslide.index = index;\n\t\t\t});\n\t\t});\n\t});\n}\n\n// A simple function to check the tags of a model - if it has the \"section-header\"\n// tag then it's an impostor slide\nexport function isImpostor(model) {\n\tconst tags = model.tags || [];\n\n\treturn tags.indexOf(\"section-header\") !== -1;\n}\n\n// An impostor deck will have impostor slides - checking for these is the\n// most reliable method of determining whether a deck is an impostor deck,\n// and is also the same method that the server uses.\nexport function isImpostorDeck(deckVersionModel) {\n\tconst section = deckVersionModel.section_set.first();\n\n\treturn Boolean(\n\t\tsection && section.slide_set.find((slide) => isImpostor(slide))\n\t);\n}\n"],"file":"utils.js"}
|
package/cjs/utils.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.spec.js"],"names":["describe","test","url","expect","toEqual","testString","testString2","testString3","it","actual","toThrow","data","expected","beforeURL","afterURL","first","anArray","nestedObject","second"],"mappings":";;AAAA;;AAOAA,QAAQ,CAAC,eAAD,EAAkB,YAAM;AAC/BC,EAAAA,IAAI,CAAC,mCAAD,EAAsC,
|
|
1
|
+
{"version":3,"sources":["../src/utils.spec.js"],"names":["describe","test","url","expect","toEqual","testString","testString2","testString3","it","actual","toThrow","data","expected","beforeURL","afterURL","first","anArray","nestedObject","second"],"mappings":"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","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"],"file":"utils.spec.js"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush-project.schema.json",
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Optionally specifies another JSON config file that this file extends from. This provides a way for standard
|
|
6
|
+
* settings to be shared across multiple projects.
|
|
7
|
+
*/
|
|
8
|
+
// "extends": "my-rig/profiles/default/config/rush-project.json",
|
|
9
|
+
|
|
10
|
+
"operationSettings": []
|
|
11
|
+
}
|
package/index.js
CHANGED
package/jest.config.js
CHANGED
|
@@ -3,22 +3,22 @@ const packageDep = require("./package.json");
|
|
|
3
3
|
const resolutions = Object.keys({
|
|
4
4
|
...packageDep.dependencies,
|
|
5
5
|
...packageDep.optionalDependencies,
|
|
6
|
-
...packageDep.devDependencies
|
|
6
|
+
...packageDep.devDependencies,
|
|
7
7
|
}).reduce((output, key) => {
|
|
8
8
|
output[`^${key}$`] = `<rootDir>/node_modules/${key}`;
|
|
9
9
|
return output;
|
|
10
10
|
}, {});
|
|
11
11
|
|
|
12
12
|
module.exports = {
|
|
13
|
-
transformIgnorePatterns: ["
|
|
13
|
+
transformIgnorePatterns: ["<rootDir>/node_modules/(?!(sp-.*?\\.js$))"],
|
|
14
14
|
coverageReporters: ["text-summary"],
|
|
15
15
|
moduleNameMapper: {
|
|
16
16
|
...resolutions,
|
|
17
17
|
// Use this project for all sp-api stuff, obviously. Prevents sp-test
|
|
18
18
|
// from having multiple registers
|
|
19
|
-
"^sp-api(.*)$": "<rootDir>/src/$1"
|
|
19
|
+
"^sp-api(.*)$": "<rootDir>/src/$1",
|
|
20
20
|
},
|
|
21
21
|
setupFilesAfterEnv: ["<rootDir>/setup-tests.js"],
|
|
22
22
|
collectCoverageFrom: ["<rootDir>/src/**/*.js"],
|
|
23
|
-
testPathIgnorePatterns: ["<rootDir>/cjs"]
|
|
23
|
+
testPathIgnorePatterns: ["<rootDir>/cjs"],
|
|
24
24
|
};
|
package/package.json
CHANGED
|
@@ -1,25 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livepreso/api",
|
|
3
|
-
"
|
|
3
|
+
"license": "UNLICENSED",
|
|
4
|
+
"version": "6.44.0",
|
|
4
5
|
"description": "Everything to do with talking to the SalePreso API",
|
|
5
|
-
"repository": "salespreso/sp-api",
|
|
6
|
-
"publishConfig": {
|
|
7
|
-
"registry": "http://registry.npmjs.org"
|
|
8
|
-
},
|
|
9
|
-
"scripts": {
|
|
10
|
-
"docs": "jsdoc src -c jsdoc.json",
|
|
11
|
-
"test:debug": "node --inspect node_modules/.bin/jest --watch --runInBand",
|
|
12
|
-
"test": "node_modules/.bin/jest --coverage",
|
|
13
|
-
"lint": "eslint --quiet --cache src/**/*.js",
|
|
14
|
-
"format:sort": "./node_modules/.bin/import-sort 'src/**/*.js' --write",
|
|
15
|
-
"format:prettier": "./node_modules/.bin/prettier --write 'src/**/*.{js,scss}'",
|
|
16
|
-
"format:all": "npm run format:prettier && npm run format:sort",
|
|
17
|
-
"format": "run-p format:*",
|
|
18
|
-
"build:cjs": "BABEL_ENV=cjs babel --delete-dir-on-start src/ --out-dir=cjs/ -s",
|
|
19
|
-
"build": "run-p build:*",
|
|
20
|
-
"prepublish": "npm run build",
|
|
21
|
-
"prepare": "husky install"
|
|
22
|
-
},
|
|
23
6
|
"main": "index.js",
|
|
24
7
|
"module": "esm/index.js",
|
|
25
8
|
"browser": "cjs/index.js",
|
|
@@ -33,6 +16,7 @@
|
|
|
33
16
|
"ampersand-collection": "^2.0.0",
|
|
34
17
|
"ampersand-model": "^8.0.0",
|
|
35
18
|
"ampersand-rest-collection": "^6.0.0",
|
|
19
|
+
"process": "^0.11.10",
|
|
36
20
|
"bluebird": "^3.5.0",
|
|
37
21
|
"consola": "^2.11.0",
|
|
38
22
|
"dedent-js": "^1.0.1",
|
|
@@ -45,63 +29,39 @@
|
|
|
45
29
|
},
|
|
46
30
|
"devDependencies": {
|
|
47
31
|
"@babel/cli": "^7.7.4",
|
|
48
|
-
"@babel/core": "
|
|
32
|
+
"@babel/core": "~7.14.6",
|
|
49
33
|
"@babel/helper-validator-identifier": "^7.10.4",
|
|
50
|
-
"@babel/plugin-proposal-class-properties": "^7.1.0",
|
|
51
|
-
"@babel/plugin-proposal-export-default-from": "^7.0.0",
|
|
52
|
-
"@babel/plugin-proposal-export-namespace-from": "^7.0.0",
|
|
53
|
-
"@babel/plugin-proposal-object-rest-spread": "^7.7.4",
|
|
54
34
|
"@babel/plugin-transform-modules-commonjs": "^7.7.4",
|
|
55
35
|
"@babel/plugin-transform-runtime": "^7.7.4",
|
|
56
36
|
"@babel/polyfill": "^7.4.4",
|
|
57
|
-
"@babel/preset-env": "
|
|
37
|
+
"@babel/preset-env": "~7.14.7",
|
|
58
38
|
"@babel/register": "^7.4.4",
|
|
59
39
|
"@babel/runtime": "^7.7.4",
|
|
60
|
-
"babel-eslint": "^10.0.2",
|
|
61
40
|
"babel-jest": "^24.9.0",
|
|
62
|
-
"babel-loader": "
|
|
41
|
+
"babel-loader": "~8.2.2",
|
|
63
42
|
"chai": "^3.5.0",
|
|
64
43
|
"docdash": "^1.0.0",
|
|
65
44
|
"esdoc": "^1.1.0",
|
|
66
45
|
"esdoc-standard-plugin": "^1.0.0",
|
|
67
|
-
"eslint": "^6.0.1",
|
|
68
|
-
"eslint-config-prettier": "^6.0.0",
|
|
69
|
-
"eslint-config-salespreso": "^2.0.2",
|
|
70
|
-
"eslint-plugin-react": "^7.14.2",
|
|
71
46
|
"git-hooks": "^1.0.2",
|
|
72
|
-
"
|
|
73
|
-
"import-sort-cli": "^6.0.0",
|
|
74
|
-
"import-sort-config": "^6.0.0",
|
|
75
|
-
"import-sort-parser-babylon": "^6.0.0",
|
|
76
|
-
"import-sort-style-module": "^6.0.0",
|
|
77
|
-
"jest": "^24.9.0",
|
|
78
|
-
"jsdoc": "^3.4.0",
|
|
79
|
-
"jsdoc-babel": "^1.0.0",
|
|
80
|
-
"jsdom": "^9.12.0",
|
|
47
|
+
"jest": "~27.4.7",
|
|
81
48
|
"jsdom-global": "^2.1.1",
|
|
82
|
-
"lint-staged": "^10.4.0",
|
|
83
49
|
"npm-run-all": "^4.1.5",
|
|
84
|
-
"prettier": "^2.3.0",
|
|
85
50
|
"sinon": "^2.1.0",
|
|
86
51
|
"source-map-support": "^0.4.14",
|
|
87
52
|
"sp-get-port-by-name": "^0.0.1",
|
|
88
53
|
"sp-test": "^0.0.1",
|
|
89
|
-
"
|
|
90
|
-
"
|
|
54
|
+
"testdouble": "^2.1.1",
|
|
55
|
+
"@livepreso/eslint-config": "~1.0.0",
|
|
56
|
+
"@rushstack/eslint-config": "~2.4.0",
|
|
57
|
+
"@babel/preset-react": "~7.14.5"
|
|
91
58
|
},
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
"
|
|
97
|
-
|
|
98
|
-
"eslint"
|
|
99
|
-
]
|
|
59
|
+
"scripts": {
|
|
60
|
+
"test:debug": "node --inspect node_modules/.bin/jest --watch --runInBand",
|
|
61
|
+
"test": "jest --silent 2>&1",
|
|
62
|
+
"build:cjs": "BABEL_ENV=cjs babel --delete-dir-on-start src/ --out-dir=cjs/ -s",
|
|
63
|
+
"build": "run-p build:*",
|
|
64
|
+
"prepublish": "npm run build"
|
|
100
65
|
},
|
|
101
|
-
"
|
|
102
|
-
|
|
103
|
-
"parser": "babylon",
|
|
104
|
-
"style": "module"
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
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 \"sp-api\";\nimport {registerMiddleware} from \"sp-api/middleware\";\nimport AuthMiddleware from \"sp-api/middlewares/auth\";\nimport RedirectMiddleware from \"sp-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
|
+
}
|
package/setup-tests.js
CHANGED
package/src/api.js
CHANGED
|
@@ -18,7 +18,7 @@ export const Api = {
|
|
|
18
18
|
* @memberof api.Api
|
|
19
19
|
* @prop {number} version
|
|
20
20
|
*/
|
|
21
|
-
version:
|
|
21
|
+
version: 29,
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* Initialize the api. Connects to the network and returns the
|
|
@@ -45,7 +45,7 @@ export const Api = {
|
|
|
45
45
|
Api.resources = api.toJSON();
|
|
46
46
|
Api.envs = envs.toJSON();
|
|
47
47
|
})
|
|
48
|
-
.catch(e => {
|
|
48
|
+
.catch((e) => {
|
|
49
49
|
Api.envs = null;
|
|
50
50
|
Api.resources = {};
|
|
51
51
|
|
|
@@ -76,7 +76,7 @@ export const Api = {
|
|
|
76
76
|
throw new Error(`No API endpoint for: ${resource}`);
|
|
77
77
|
}
|
|
78
78
|
return res;
|
|
79
|
-
}
|
|
79
|
+
},
|
|
80
80
|
};
|
|
81
81
|
|
|
82
82
|
export default Api;
|
package/src/api.spec.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import td from "testdouble";
|
|
2
|
-
|
|
3
1
|
import { Api } from "./api.js";
|
|
2
|
+
import td from "testdouble";
|
|
4
3
|
|
|
5
4
|
test("should return a resource by name", () => {
|
|
6
5
|
td.replace(Api, "resources", td.object());
|
|
@@ -8,8 +7,8 @@ test("should return a resource by name", () => {
|
|
|
8
7
|
expect(Api.getResourceURL("foo")).toEqual("bar");
|
|
9
8
|
});
|
|
10
9
|
|
|
11
|
-
test("should throw an error if resource does not exist", function() {
|
|
10
|
+
test("should throw an error if resource does not exist", function () {
|
|
12
11
|
expect(() => Api.getResourceURL("foo")).toThrow({
|
|
13
|
-
message: "No API endpoint for: foo"
|
|
12
|
+
message: "No API endpoint for: foo",
|
|
14
13
|
});
|
|
15
14
|
});
|
package/src/auth.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import SuperAgentRequest from "superagent-bluebird-promise";
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* @namespace auth
|
|
5
3
|
*/
|
|
6
4
|
import { Api } from "./api.js";
|
|
7
|
-
import log from "./log.js";
|
|
8
5
|
import { BaseModel } from "./models/base.js";
|
|
6
|
+
import SuperAgentRequest from "superagent-bluebird-promise";
|
|
9
7
|
import { UserModel } from "./models/user.js";
|
|
8
|
+
import log from "./log.js";
|
|
10
9
|
|
|
11
10
|
/**
|
|
12
11
|
* Deals with authentication with the api
|
|
@@ -22,7 +21,7 @@ export const Auth = {
|
|
|
22
21
|
|
|
23
22
|
get headers() {
|
|
24
23
|
const headerObj = {
|
|
25
|
-
Accept: `application/vnd.salespreso+json; version=${Api.version}
|
|
24
|
+
Accept: `application/vnd.salespreso+json; version=${Api.version}`,
|
|
26
25
|
};
|
|
27
26
|
|
|
28
27
|
if (this._token) {
|
|
@@ -44,10 +43,10 @@ export const Auth = {
|
|
|
44
43
|
const tokensURL = Api.getResourceURL("tokens");
|
|
45
44
|
return SuperAgentRequest("POST", tokensURL)
|
|
46
45
|
.set({
|
|
47
|
-
Accept: Auth.headers.Accept
|
|
46
|
+
Accept: Auth.headers.Accept,
|
|
48
47
|
})
|
|
49
48
|
.send({ username, password })
|
|
50
|
-
.then(res => {
|
|
49
|
+
.then((res) => {
|
|
51
50
|
let body = {};
|
|
52
51
|
let token = "";
|
|
53
52
|
if (res.statusCode === 200) {
|
|
@@ -107,7 +106,7 @@ export const Auth = {
|
|
|
107
106
|
*/
|
|
108
107
|
get token() {
|
|
109
108
|
return Auth._token;
|
|
110
|
-
}
|
|
109
|
+
},
|
|
111
110
|
};
|
|
112
111
|
|
|
113
112
|
BaseModel.Auth = Auth;
|
package/src/auth.spec.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
+
import { Api } from "./api.js";
|
|
2
|
+
import { Auth } from "./auth.js";
|
|
1
3
|
import { G } from "sp-test/api";
|
|
2
4
|
import superagent from "superagent-bluebird-promise";
|
|
3
5
|
import td from "testdouble";
|
|
4
6
|
|
|
5
|
-
import { Api } from "./api.js";
|
|
6
|
-
import { Auth } from "./auth.js";
|
|
7
|
-
|
|
8
7
|
beforeEach(() => {
|
|
9
8
|
Auth._loggedIn = false;
|
|
10
9
|
});
|
|
@@ -33,7 +32,7 @@ it("return a token from an auth request", async () => {
|
|
|
33
32
|
|
|
34
33
|
td.when(response()).thenResolve({
|
|
35
34
|
statusCode: 200,
|
|
36
|
-
text: JSON.stringify({ key: "token123" })
|
|
35
|
+
text: JSON.stringify({ key: "token123" }),
|
|
37
36
|
});
|
|
38
37
|
td.when(login("token123")).thenResolve();
|
|
39
38
|
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import "../models/activity-item.js";
|
|
2
2
|
|
|
3
|
-
import _ from "lodash";
|
|
4
|
-
|
|
5
3
|
import { BaseCollection } from "../collections/base.js";
|
|
4
|
+
import _ from "lodash";
|
|
6
5
|
import { register } from "../state-register.js";
|
|
7
6
|
|
|
8
7
|
/**
|
|
@@ -23,7 +22,7 @@ export const ActivityCollection = BaseCollection.extend(
|
|
|
23
22
|
}
|
|
24
23
|
|
|
25
24
|
this.model = this.model.extend({
|
|
26
|
-
modelName: `${options.type}-activities
|
|
25
|
+
modelName: `${options.type}-activities`,
|
|
27
26
|
});
|
|
28
27
|
|
|
29
28
|
BaseCollection.prototype.constructor.apply(this, arguments);
|
|
@@ -41,7 +40,7 @@ export const ActivityCollection = BaseCollection.extend(
|
|
|
41
40
|
}
|
|
42
41
|
|
|
43
42
|
return this.fetch({ ...options, data: { ...options.data, ...data } })
|
|
44
|
-
.catch(e => {
|
|
43
|
+
.catch((e) => {
|
|
45
44
|
// If we did end up getting a page that doesn't exist, just return models
|
|
46
45
|
// up to this point.
|
|
47
46
|
if (e.status === 404) {
|
|
@@ -62,7 +61,7 @@ export const ActivityCollection = BaseCollection.extend(
|
|
|
62
61
|
for (const model of this.models.slice().reverse()) {
|
|
63
62
|
if (model.activity === "create") {
|
|
64
63
|
const ser = this.models.slice(0, this.indexOf(model));
|
|
65
|
-
const groups = _.groupBy(ser, model => model.appointment.url);
|
|
64
|
+
const groups = _.groupBy(ser, (model) => model.appointment.url);
|
|
66
65
|
const hasAllActivities = Object.keys(groups).reduce(
|
|
67
66
|
(resp, url) => {
|
|
68
67
|
const group = groups[url];
|
|
@@ -111,7 +110,7 @@ export const ActivityCollection = BaseCollection.extend(
|
|
|
111
110
|
this._options = _.extend({}, this._options, options);
|
|
112
111
|
|
|
113
112
|
return BaseCollection.prototype.fetch.apply(this, arguments);
|
|
114
|
-
}
|
|
113
|
+
},
|
|
115
114
|
}
|
|
116
115
|
);
|
|
117
116
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../models/adjunct-section.js";
|
|
2
2
|
|
|
3
|
-
import { register } from "../state-register.js";
|
|
4
3
|
import { BaseCollection } from "./base.js";
|
|
4
|
+
import { register } from "../state-register.js";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @constructor
|
|
@@ -22,10 +22,10 @@ export const AdjunctSectionCollection = BaseCollection.extend(
|
|
|
22
22
|
fetchByAppointmentID(id) {
|
|
23
23
|
return this.fetch({
|
|
24
24
|
data: {
|
|
25
|
-
appointment: id
|
|
26
|
-
}
|
|
25
|
+
appointment: id,
|
|
26
|
+
},
|
|
27
27
|
});
|
|
28
|
-
}
|
|
28
|
+
},
|
|
29
29
|
}
|
|
30
30
|
);
|
|
31
31
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../models/adjunct-slide.js";
|
|
2
2
|
|
|
3
|
-
import { register } from "../state-register.js";
|
|
4
3
|
import { BaseCollection } from "./base.js";
|
|
4
|
+
import { register } from "../state-register.js";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @constructor
|
|
@@ -22,10 +22,10 @@ export const AdjunctSlideCollection = BaseCollection.extend(
|
|
|
22
22
|
fetchByAppointmentID(id) {
|
|
23
23
|
return this.fetch({
|
|
24
24
|
data: {
|
|
25
|
-
appointment: id
|
|
26
|
-
}
|
|
25
|
+
appointment: id,
|
|
26
|
+
},
|
|
27
27
|
});
|
|
28
|
-
}
|
|
28
|
+
},
|
|
29
29
|
}
|
|
30
30
|
);
|
|
31
31
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../models/adjunct-sub-slide.js";
|
|
2
2
|
|
|
3
|
-
import { register } from "../state-register.js";
|
|
4
3
|
import { BaseCollection } from "./base.js";
|
|
4
|
+
import { register } from "../state-register.js";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @constructor
|
|
@@ -12,7 +12,7 @@ import { BaseCollection } from "./base.js";
|
|
|
12
12
|
export const AdjunctSubSlideCollection = BaseCollection.extend(
|
|
13
13
|
/** @lends collections.AdjunctSubSlideCollection# */ {
|
|
14
14
|
comparator: "sequence",
|
|
15
|
-
model: "AdjunctSubSlideModel"
|
|
15
|
+
model: "AdjunctSubSlideModel",
|
|
16
16
|
}
|
|
17
17
|
);
|
|
18
18
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import "../models/appointment-adjunct-tags.js";
|
|
2
|
+
|
|
3
|
+
import { BaseCollection } from "./base.js";
|
|
4
|
+
import { register } from "../state-register.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @constructor
|
|
8
|
+
* @alias collections.AppointmentAdjunctTagsCollection
|
|
9
|
+
* @extends collections.BaseCollection
|
|
10
|
+
* @see models.AppointmentAdjunctTagsModel
|
|
11
|
+
*/
|
|
12
|
+
export const AppointmentAdjunctTagsCollection = BaseCollection.extend(
|
|
13
|
+
/** @lends collections.AppointmentAdjunctTagsCollection# */ {
|
|
14
|
+
model: "AppointmentAdjunctTagsModel",
|
|
15
|
+
}
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
register("AppointmentAdjunctTagsCollection", AppointmentAdjunctTagsCollection);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import "../models/appointment-deckversion-tags.js";
|
|
2
|
+
|
|
3
|
+
import { BaseCollection } from "./base.js";
|
|
4
|
+
import { register } from "../state-register.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @constructor
|
|
8
|
+
* @alias collections.AppointmentDeckVersionTagsCollection
|
|
9
|
+
* @extends collections.BaseCollection
|
|
10
|
+
* @see models.AppointmentDeckVersionTagsModel
|
|
11
|
+
*/
|
|
12
|
+
export const AppointmentDeckVersionTagsCollection = BaseCollection.extend(
|
|
13
|
+
/** @lends collections.AppointmentDeckVersionTagsCollection# */ {
|
|
14
|
+
model: "AppointmentDeckVersionTagsModel",
|
|
15
|
+
}
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
register(
|
|
19
|
+
"AppointmentDeckVersionTagsCollection",
|
|
20
|
+
AppointmentDeckVersionTagsCollection
|
|
21
|
+
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../models/appointment-duplicate.js";
|
|
2
2
|
|
|
3
|
-
import { register } from "../state-register.js";
|
|
4
3
|
import { BaseCollection } from "./base.js";
|
|
4
|
+
import { register } from "../state-register.js";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @constructor
|
|
@@ -12,7 +12,7 @@ import { BaseCollection } from "./base.js";
|
|
|
12
12
|
export const AppointmentDuplicateCollection = BaseCollection.extend(
|
|
13
13
|
/** @lends collections.AppointmentDuplicateCollection# */ {
|
|
14
14
|
comparator: "sequence",
|
|
15
|
-
model: "AppointmentDuplicateModel"
|
|
15
|
+
model: "AppointmentDuplicateModel",
|
|
16
16
|
}
|
|
17
17
|
);
|
|
18
18
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../models/appointment-editor.js";
|
|
2
2
|
|
|
3
|
-
import { register } from "../state-register.js";
|
|
4
3
|
import { BaseCollection } from "./base.js";
|
|
4
|
+
import { register } from "../state-register.js";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @constructor
|
|
@@ -19,7 +19,7 @@ export const AppointmentEditorCollection = BaseCollection.extend(
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
return BaseCollection.prototype.url.call(this);
|
|
22
|
-
}
|
|
22
|
+
},
|
|
23
23
|
}
|
|
24
24
|
);
|
|
25
25
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import "../models/appointment-section-tags.js";
|
|
2
|
+
|
|
3
|
+
import { BaseCollection } from "./base.js";
|
|
4
|
+
import { register } from "../state-register.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @constructor
|
|
8
|
+
* @alias collections.AppointmentSectionTagsCollection
|
|
9
|
+
* @extends collections.BaseCollection
|
|
10
|
+
* @see models.AppointmentSectionTagsModel
|
|
11
|
+
*/
|
|
12
|
+
export const AppointmentSectionTagsCollection = BaseCollection.extend(
|
|
13
|
+
/** @lends collections.AppointmentSectionTagsCollection# */ {
|
|
14
|
+
model: "AppointmentSectionTagsModel",
|
|
15
|
+
}
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
register("AppointmentSectionTagsCollection", AppointmentSectionTagsCollection);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import "../models/appointment-slide-tags.js";
|
|
2
|
+
|
|
3
|
+
import { BaseCollection } from "./base.js";
|
|
4
|
+
import { register } from "../state-register.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @constructor
|
|
8
|
+
* @alias collections.AppointmentSlideTagsCollection
|
|
9
|
+
* @extends collections.BaseCollection
|
|
10
|
+
* @see models.AppointmentSlideTagsModel
|
|
11
|
+
*/
|
|
12
|
+
export const AppointmentSlideTagsCollection = BaseCollection.extend(
|
|
13
|
+
/** @lends collections.AppointmentSlideTagsCollection# */ {
|
|
14
|
+
model: "AppointmentSlideTagsModel",
|
|
15
|
+
}
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
register("AppointmentSlideTagsCollection", AppointmentSlideTagsCollection);
|