@oneblink/apps-react 9.0.0-beta.2 → 9.0.0-beta.4
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/dist/OneBlinkForm.d.ts +6 -10
- package/dist/OneBlinkForm.js +0 -4
- package/dist/OneBlinkForm.js.map +1 -1
- package/dist/OneBlinkFormBase.d.ts +1 -1
- package/dist/OneBlinkFormBase.js +2 -1
- package/dist/OneBlinkFormBase.js.map +1 -1
- package/dist/OneBlinkReadOnlyForm.d.ts +1 -1
- package/dist/OneBlinkReadOnlyForm.js +1 -1
- package/dist/OneBlinkReadOnlyForm.js.map +1 -1
- package/dist/PaymentReceipt.d.ts +1 -1
- package/dist/PaymentReceipt.js +1 -1
- package/dist/PaymentReceipt.js.map +1 -1
- package/dist/apps/Sentry.d.ts +7 -0
- package/dist/apps/Sentry.js +16 -0
- package/dist/apps/Sentry.js.map +1 -0
- package/dist/apps/approvals-service.d.ts +390 -0
- package/dist/apps/approvals-service.js +987 -0
- package/dist/apps/approvals-service.js.map +1 -0
- package/dist/apps/attachments-service.d.ts +49 -0
- package/dist/apps/attachments-service.js +134 -0
- package/dist/apps/attachments-service.js.map +1 -0
- package/dist/apps/auth-service.d.ts +114 -0
- package/dist/apps/auth-service.js +194 -0
- package/dist/apps/auth-service.js.map +1 -0
- package/dist/apps/auto-save-service.d.ts +82 -0
- package/dist/apps/auto-save-service.js +105 -0
- package/dist/apps/auto-save-service.js.map +1 -0
- package/dist/apps/draft-service.d.ts +148 -0
- package/dist/apps/draft-service.js +583 -0
- package/dist/apps/draft-service.js.map +1 -0
- package/dist/apps/form-service.d.ts +204 -0
- package/dist/apps/form-service.js +718 -0
- package/dist/apps/form-service.js.map +1 -0
- package/dist/apps/form-store-service.d.ts +141 -0
- package/dist/apps/form-store-service.js +114 -0
- package/dist/apps/form-store-service.js.map +1 -0
- package/dist/apps/forms-app-environment-service.d.ts +19 -0
- package/dist/apps/forms-app-environment-service.js +55 -0
- package/dist/apps/forms-app-environment-service.js.map +1 -0
- package/dist/apps/forms-app-service.d.ts +18 -0
- package/dist/apps/forms-app-service.js +53 -0
- package/dist/apps/forms-app-service.js.map +1 -0
- package/dist/apps/index.d.ts +252 -0
- package/dist/apps/index.js +254 -0
- package/dist/apps/index.js.map +1 -0
- package/dist/apps/job-service.d.ts +20 -0
- package/dist/apps/job-service.js +95 -0
- package/dist/apps/job-service.js.map +1 -0
- package/dist/apps/localisation-service.d.ts +207 -0
- package/dist/apps/localisation-service.js +321 -0
- package/dist/apps/localisation-service.js.map +1 -0
- package/dist/apps/notification-service.d.ts +83 -0
- package/dist/apps/notification-service.js +315 -0
- package/dist/apps/notification-service.js.map +1 -0
- package/dist/apps/offline-service.d.ts +18 -0
- package/dist/apps/offline-service.js +25 -0
- package/dist/apps/offline-service.js.map +1 -0
- package/dist/apps/payment-service.d.ts +110 -0
- package/dist/apps/payment-service.js +182 -0
- package/dist/apps/payment-service.js.map +1 -0
- package/dist/apps/prefill-service.d.ts +14 -0
- package/dist/apps/prefill-service.js +19 -0
- package/dist/apps/prefill-service.js.map +1 -0
- package/dist/apps/scheduled-tasks-service.d.ts +127 -0
- package/dist/apps/scheduled-tasks-service.js +240 -0
- package/dist/apps/scheduled-tasks-service.js.map +1 -0
- package/dist/apps/scheduling-service.d.ts +101 -0
- package/dist/apps/scheduling-service.js +171 -0
- package/dist/apps/scheduling-service.js.map +1 -0
- package/dist/apps/services/AWSCognitoClient.d.ts +55 -0
- package/dist/apps/services/AWSCognitoClient.js +436 -0
- package/dist/apps/services/AWSCognitoClient.js.map +1 -0
- package/dist/apps/services/api/drafts.d.ts +7 -0
- package/dist/apps/services/api/drafts.js +236 -0
- package/dist/apps/services/api/drafts.js.map +1 -0
- package/dist/apps/services/api/notifications.d.ts +3 -0
- package/dist/apps/services/api/notifications.js +60 -0
- package/dist/apps/services/api/notifications.js.map +1 -0
- package/dist/apps/services/api/payment.d.ts +23 -0
- package/dist/apps/services/api/payment.js +235 -0
- package/dist/apps/services/api/payment.js.map +1 -0
- package/dist/apps/services/api/post-submission-attachment-urls.d.ts +7 -0
- package/dist/apps/services/api/post-submission-attachment-urls.js +19 -0
- package/dist/apps/services/api/post-submission-attachment-urls.js.map +1 -0
- package/dist/apps/services/api/prefill.d.ts +1 -0
- package/dist/apps/services/api/prefill.js +70 -0
- package/dist/apps/services/api/prefill.js.map +1 -0
- package/dist/apps/services/api/receipt-id.d.ts +2 -0
- package/dist/apps/services/api/receipt-id.js +54 -0
- package/dist/apps/services/api/receipt-id.js.map +1 -0
- package/dist/apps/services/api/scheduling.d.ts +38 -0
- package/dist/apps/services/api/scheduling.js +142 -0
- package/dist/apps/services/api/scheduling.js.map +1 -0
- package/dist/apps/services/api/submissions.d.ts +18 -0
- package/dist/apps/services/api/submissions.js +166 -0
- package/dist/apps/services/api/submissions.js.map +1 -0
- package/dist/apps/services/cognito.d.ts +302 -0
- package/dist/apps/services/cognito.js +441 -0
- package/dist/apps/services/cognito.js.map +1 -0
- package/dist/apps/services/draft-data-store.d.ts +16 -0
- package/dist/apps/services/draft-data-store.js +115 -0
- package/dist/apps/services/draft-data-store.js.map +1 -0
- package/dist/apps/services/errors/oneBlinkAppsError.d.ts +35 -0
- package/dist/apps/services/errors/oneBlinkAppsError.js +32 -0
- package/dist/apps/services/errors/oneBlinkAppsError.js.map +1 -0
- package/dist/apps/services/external-id-generation.d.ts +4 -0
- package/dist/apps/services/external-id-generation.js +59 -0
- package/dist/apps/services/external-id-generation.js.map +1 -0
- package/dist/apps/services/fetch.d.ts +12 -0
- package/dist/apps/services/fetch.js +95 -0
- package/dist/apps/services/fetch.js.map +1 -0
- package/dist/apps/services/forms-key.d.ts +51 -0
- package/dist/apps/services/forms-key.js +83 -0
- package/dist/apps/services/forms-key.js.map +1 -0
- package/dist/apps/services/generate-generic-error.d.ts +3 -0
- package/dist/apps/services/generate-generic-error.js +52 -0
- package/dist/apps/services/generate-generic-error.js.map +1 -0
- package/dist/apps/services/generateOneBlinkDownloader.d.ts +2 -0
- package/dist/apps/services/generateOneBlinkDownloader.js +11 -0
- package/dist/apps/services/generateOneBlinkDownloader.js.map +1 -0
- package/dist/apps/services/generateOneBlinkUploader.d.ts +2 -0
- package/dist/apps/services/generateOneBlinkUploader.js +11 -0
- package/dist/apps/services/generateOneBlinkUploader.js.map +1 -0
- package/dist/apps/services/getDeviceInformation.d.ts +17 -0
- package/dist/apps/services/getDeviceInformation.js +38 -0
- package/dist/apps/services/getDeviceInformation.js.map +1 -0
- package/dist/apps/services/integration-elements.d.ts +383 -0
- package/dist/apps/services/integration-elements.js +761 -0
- package/dist/apps/services/integration-elements.js.map +1 -0
- package/dist/apps/services/job-prefill.d.ts +40 -0
- package/dist/apps/services/job-prefill.js +78 -0
- package/dist/apps/services/job-prefill.js.map +1 -0
- package/dist/apps/services/payment-providers/BPOINTPaymentProvider.d.ts +29 -0
- package/dist/apps/services/payment-providers/BPOINTPaymentProvider.js +59 -0
- package/dist/apps/services/payment-providers/BPOINTPaymentProvider.js.map +1 -0
- package/dist/apps/services/payment-providers/CPPayPaymentProvider.d.ts +27 -0
- package/dist/apps/services/payment-providers/CPPayPaymentProvider.js +63 -0
- package/dist/apps/services/payment-providers/CPPayPaymentProvider.js.map +1 -0
- package/dist/apps/services/payment-providers/NSWGovPayPaymentProvider.d.ts +30 -0
- package/dist/apps/services/payment-providers/NSWGovPayPaymentProvider.js +116 -0
- package/dist/apps/services/payment-providers/NSWGovPayPaymentProvider.js.map +1 -0
- package/dist/apps/services/payment-providers/WestpacQuickStreamPaymentProvider.d.ts +49 -0
- package/dist/apps/services/payment-providers/WestpacQuickStreamPaymentProvider.js +116 -0
- package/dist/apps/services/payment-providers/WestpacQuickStreamPaymentProvider.js.map +1 -0
- package/dist/apps/services/payment-providers/receipt-items.d.ts +8 -0
- package/dist/apps/services/payment-providers/receipt-items.js +58 -0
- package/dist/apps/services/payment-providers/receipt-items.js.map +1 -0
- package/dist/apps/services/pending-queue.d.ts +150 -0
- package/dist/apps/services/pending-queue.js +316 -0
- package/dist/apps/services/pending-queue.js.map +1 -0
- package/dist/apps/services/prepareSubmissionData.d.ts +2 -0
- package/dist/apps/services/prepareSubmissionData.js +113 -0
- package/dist/apps/services/prepareSubmissionData.js.map +1 -0
- package/dist/apps/services/query-string.d.ts +1 -0
- package/dist/apps/services/query-string.js +16 -0
- package/dist/apps/services/query-string.js.map +1 -0
- package/dist/apps/services/replaceInjectablesWithSubmissionValues.d.ts +3 -0
- package/dist/apps/services/replaceInjectablesWithSubmissionValues.js +18 -0
- package/dist/apps/services/replaceInjectablesWithSubmissionValues.js.map +1 -0
- package/dist/apps/services/schedulingHandlers.d.ts +36 -0
- package/dist/apps/services/schedulingHandlers.js +76 -0
- package/dist/apps/services/schedulingHandlers.js.map +1 -0
- package/dist/apps/services/server-validation.d.ts +2 -0
- package/dist/apps/services/server-validation.js +36 -0
- package/dist/apps/services/server-validation.js.map +1 -0
- package/dist/apps/services/serverRequest.d.ts +5 -0
- package/dist/apps/services/serverRequest.js +24 -0
- package/dist/apps/services/serverRequest.js.map +1 -0
- package/dist/apps/services/submit.d.ts +19 -0
- package/dist/apps/services/submit.js +219 -0
- package/dist/apps/services/submit.js.map +1 -0
- package/dist/apps/services/uploadAttachment.d.ts +52 -0
- package/dist/apps/services/uploadAttachment.js +73 -0
- package/dist/apps/services/uploadAttachment.js.map +1 -0
- package/dist/apps/services/user-token.d.ts +27 -0
- package/dist/apps/services/user-token.js +33 -0
- package/dist/apps/services/user-token.js.map +1 -0
- package/dist/apps/services/utils.d.ts +12 -0
- package/dist/apps/services/utils.js +100 -0
- package/dist/apps/services/utils.js.map +1 -0
- package/dist/apps/submission-service.d.ts +226 -0
- package/dist/apps/submission-service.js +425 -0
- package/dist/apps/submission-service.js.map +1 -0
- package/dist/apps/tenants.d.ts +29 -0
- package/dist/apps/tenants.js +127 -0
- package/dist/apps/tenants.js.map +1 -0
- package/dist/apps/types/form.d.ts +4 -0
- package/dist/apps/types/form.js +2 -0
- package/dist/apps/types/form.js.map +1 -0
- package/dist/apps/types/payments.d.ts +45 -0
- package/dist/apps/types/payments.js +2 -0
- package/dist/apps/types/payments.js.map +1 -0
- package/dist/apps/types/scheduling.d.ts +5 -0
- package/dist/apps/types/scheduling.js +2 -0
- package/dist/apps/types/scheduling.js.map +1 -0
- package/dist/apps/types/submissions.d.ts +175 -0
- package/dist/apps/types/submissions.js +2 -0
- package/dist/apps/types/submissions.js.map +1 -0
- package/dist/components/ArcGISWebMap.js +1 -1
- package/dist/components/ArcGISWebMap.js.map +1 -1
- package/dist/components/CustomAccordion.d.ts +3 -3
- package/dist/components/Lists.d.ts +4 -1
- package/dist/components/calendar-bookings/CalendarBookingsCancelForm.js +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsCancelForm.js.map +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsForm.d.ts +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsForm.js +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsForm.js.map +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.js +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.js.map +1 -1
- package/dist/components/calendar-bookings/ErrorModal.d.ts +1 -1
- package/dist/components/calendar-bookings/ErrorModal.js +1 -1
- package/dist/components/calendar-bookings/ErrorModal.js.map +1 -1
- package/dist/components/downloadable-files/index.d.ts +1 -1
- package/dist/components/downloadable-files/index.js +1 -1
- package/dist/components/downloadable-files/index.js.map +1 -1
- package/dist/components/downloadable-files/resource-components.d.ts +1 -1
- package/dist/components/downloadable-files/resource-components.js +1 -1
- package/dist/components/downloadable-files/resource-components.js.map +1 -1
- package/dist/components/formStore/FormStoreTableProvider.js +1 -1
- package/dist/components/formStore/FormStoreTableProvider.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js +1 -1
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreProvider.js +1 -1
- package/dist/components/formStore/OneBlinkFormStoreProvider.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreTable.js.map +1 -1
- package/dist/components/formStore/display/ElementDisplay.js +2 -2
- package/dist/components/formStore/display/ElementDisplay.js.map +1 -1
- package/dist/components/formStore/table/ColumnFilters.js +1 -1
- package/dist/components/formStore/table/ColumnFilters.js.map +1 -1
- package/dist/components/formStore/table/FormElementTableCell.js +1 -1
- package/dist/components/formStore/table/FormElementTableCell.js.map +1 -1
- package/dist/components/formStore/table/Pickers.js +1 -1
- package/dist/components/formStore/table/Pickers.js.map +1 -1
- package/dist/components/formStore/table/generateColumns.d.ts +1 -1
- package/dist/components/formStore/table/generateColumns.js.map +1 -1
- package/dist/components/formStore/table/useFormStoreTable.d.ts +1 -1
- package/dist/components/formStore/table/useFormStoreTable.js +1 -1
- package/dist/components/formStore/table/useFormStoreTable.js.map +1 -1
- package/dist/components/formStore/useFormStoreTableContext.d.ts +2 -2
- package/dist/components/mfa/MfaDialog.d.ts +1 -1
- package/dist/components/mfa/MfaDialog.js +1 -1
- package/dist/components/mfa/MfaDialog.js.map +1 -1
- package/dist/components/mfa/MultiFactorAuthentication.d.ts +1 -1
- package/dist/components/payments/PaymentForm.js +1 -1
- package/dist/components/payments/PaymentForm.js.map +1 -1
- package/dist/components/payments/WestpacQuickStreamPaymentForm.d.ts +1 -1
- package/dist/components/payments/WestpacQuickStreamPaymentForm.js +1 -1
- package/dist/components/payments/WestpacQuickStreamPaymentForm.js.map +1 -1
- package/dist/components/renderer/AutocompleteDropdown.js +1 -1
- package/dist/components/renderer/AutocompleteDropdown.js.map +1 -1
- package/dist/components/renderer/LookupNotification.js +2 -2
- package/dist/components/renderer/LookupNotification.js.map +1 -1
- package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js +1 -1
- package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js.map +1 -1
- package/dist/components/renderer/OneBlinkFormElements.js.map +1 -1
- package/dist/components/renderer/ReverseGeocode.js +1 -1
- package/dist/components/renderer/ReverseGeocode.js.map +1 -1
- package/dist/form-elements/FormElementAPINSWLiquorLicence.js +1 -1
- package/dist/form-elements/FormElementAPINSWLiquorLicence.js.map +1 -1
- package/dist/form-elements/FormElementArcGISWebMap.js.map +1 -1
- package/dist/form-elements/FormElementAutocomplete.js +1 -1
- package/dist/form-elements/FormElementAutocomplete.js.map +1 -1
- package/dist/form-elements/FormElementBSB.js +1 -1
- package/dist/form-elements/FormElementBSB.js.map +1 -1
- package/dist/form-elements/FormElementCalculation.js +2 -2
- package/dist/form-elements/FormElementCalculation.js.map +1 -1
- package/dist/form-elements/FormElementCivicaNameRecord.js +1 -1
- package/dist/form-elements/FormElementCivicaNameRecord.js.map +1 -1
- package/dist/form-elements/FormElementCivicaStreetName.js +1 -1
- package/dist/form-elements/FormElementCivicaStreetName.js.map +1 -1
- package/dist/form-elements/FormElementCompliance.d.ts +1 -1
- package/dist/form-elements/FormElementCompliance.js.map +1 -1
- package/dist/form-elements/FormElementDate.js +1 -1
- package/dist/form-elements/FormElementDate.js.map +1 -1
- package/dist/form-elements/FormElementDateTime.js +1 -1
- package/dist/form-elements/FormElementDateTime.js.map +1 -1
- package/dist/form-elements/FormElementFile.d.ts +1 -1
- package/dist/form-elements/FormElementFile.js.map +1 -1
- package/dist/form-elements/FormElementFiles.d.ts +1 -1
- package/dist/form-elements/FormElementFiles.js.map +1 -1
- package/dist/form-elements/FormElementGeoscapeAddress.js +1 -1
- package/dist/form-elements/FormElementGeoscapeAddress.js.map +1 -1
- package/dist/form-elements/FormElementGoogleAddress.js +1 -1
- package/dist/form-elements/FormElementGoogleAddress.js.map +1 -1
- package/dist/form-elements/FormElementLocation.js +1 -1
- package/dist/form-elements/FormElementLocation.js.map +1 -1
- package/dist/form-elements/FormElementNumber.js +1 -1
- package/dist/form-elements/FormElementNumber.js.map +1 -1
- package/dist/form-elements/FormElementPointAddress.js +1 -1
- package/dist/form-elements/FormElementPointAddress.js.map +1 -1
- package/dist/form-elements/FormElementPointAddressV3.js +1 -1
- package/dist/form-elements/FormElementPointAddressV3.js.map +1 -1
- package/dist/form-elements/FormElementPointCadastralParcel.js +1 -1
- package/dist/form-elements/FormElementPointCadastralParcel.js.map +1 -1
- package/dist/form-elements/FormElementSummary.js +1 -1
- package/dist/form-elements/FormElementSummary.js.map +1 -1
- package/dist/form-elements/FormElementTime.js +1 -1
- package/dist/form-elements/FormElementTime.js.map +1 -1
- package/dist/hooks/attachments/useAttachment.d.ts +1 -1
- package/dist/hooks/attachments/useAttachment.js +1 -1
- package/dist/hooks/attachments/useAttachment.js.map +1 -1
- package/dist/hooks/attachments/useAttachments.d.ts +1 -1
- package/dist/hooks/attachments/useAttachments.js.map +1 -1
- package/dist/hooks/useAuth.js +1 -1
- package/dist/hooks/useAuth.js.map +1 -1
- package/dist/hooks/useConditionalLogic.js +1 -1
- package/dist/hooks/useConditionalLogic.js.map +1 -1
- package/dist/hooks/useDrafts.d.ts +1 -1
- package/dist/hooks/useDrafts.js +1 -1
- package/dist/hooks/useDrafts.js.map +1 -1
- package/dist/hooks/useDynamicOptionsLoaderState.d.ts +1 -1
- package/dist/hooks/useDynamicOptionsLoaderState.js +1 -1
- package/dist/hooks/useDynamicOptionsLoaderState.js.map +1 -1
- package/dist/hooks/useFormElementLookups.d.ts +1 -1
- package/dist/hooks/useFormElementLookups.js +1 -1
- package/dist/hooks/useFormElementLookups.js.map +1 -1
- package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +1 -1
- package/dist/hooks/useFormSubmissionAutoSaveState.js +1 -1
- package/dist/hooks/useFormSubmissionAutoSaveState.js.map +1 -1
- package/dist/hooks/useIsOffline.js +1 -1
- package/dist/hooks/useIsOffline.js.map +1 -1
- package/dist/hooks/useLogin.js +1 -1
- package/dist/hooks/useLogin.js.map +1 -1
- package/dist/hooks/useMfa.d.ts +1 -1
- package/dist/hooks/useMfa.js +1 -1
- package/dist/hooks/useMfa.js.map +1 -1
- package/dist/hooks/useOnUploadAttachment.d.ts +1 -1
- package/dist/hooks/useOnUploadAttachment.js +1 -1
- package/dist/hooks/useOnUploadAttachment.js.map +1 -1
- package/dist/hooks/usePendingSubmissions.d.ts +1 -1
- package/dist/hooks/usePendingSubmissions.js +1 -1
- package/dist/hooks/usePendingSubmissions.js.map +1 -1
- package/dist/hooks/useReplaceableText.js +1 -1
- package/dist/hooks/useReplaceableText.js.map +1 -1
- package/dist/hooks/useSignUp.js +1 -1
- package/dist/hooks/useSignUp.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/services/attachments.d.ts +1 -1
- package/dist/services/attachments.js +1 -1
- package/dist/services/attachments.js.map +1 -1
- package/dist/services/blob-utils.js +1 -1
- package/dist/services/blob-utils.js.map +1 -1
- package/dist/services/checkIfAttachmentsExist.d.ts +1 -1
- package/dist/services/checkIfAttachmentsExist.js.map +1 -1
- package/dist/services/defaultCoordinates.js +1 -1
- package/dist/services/defaultCoordinates.js.map +1 -1
- package/dist/services/download-file.d.ts +1 -1
- package/dist/services/download-file.js +2 -2
- package/dist/services/download-file.js.map +1 -1
- package/dist/services/drawTimestampOnCanvas.js +1 -1
- package/dist/services/drawTimestampOnCanvas.js.map +1 -1
- package/dist/services/form-validation/validateSubmission.js +1 -1
- package/dist/services/form-validation/validateSubmission.js.map +1 -1
- package/dist/services/form-validation/validators.d.ts +1 -1
- package/dist/services/form-validation/validators.js.map +1 -1
- package/dist/services/generate-default-data.js +1 -1
- package/dist/services/generate-default-data.js.map +1 -1
- package/dist/services/injectableOptions.js +1 -1
- package/dist/services/injectableOptions.js.map +1 -1
- package/dist/styles.css +208 -204
- package/dist/types/attachments.d.ts +1 -1
- package/dist/types/attachments.js.map +1 -1
- package/dist/utils/sendGoogleAnalyticsEvent.js +1 -1
- package/dist/utils/sendGoogleAnalyticsEvent.js.map +1 -1
- package/package.json +42 -34
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { createNylasExistingBookingSession } from './services/api/scheduling';
|
|
2
|
+
import { FormSubmissionResult } from './types/submissions';
|
|
3
|
+
import { SchedulingBooking } from './services/schedulingHandlers';
|
|
4
|
+
declare function getSchedulingFormSubmissionResult(submissionId: string, schedulingBooking: SchedulingBooking): Promise<FormSubmissionResult>;
|
|
5
|
+
/**
|
|
6
|
+
* Pass in query string parameters after a redirect back to your app after a
|
|
7
|
+
* booking is processed. Will return a SchedulingBooking and the submission
|
|
8
|
+
* result from the original submission before redirecting to
|
|
9
|
+
* `scheduling.bookingUrl`. If the booking has been rescheduled, the submission
|
|
10
|
+
* result will not be returned.
|
|
11
|
+
*
|
|
12
|
+
* #### Example
|
|
13
|
+
*
|
|
14
|
+
* ```js
|
|
15
|
+
* import queryString from 'query-string'
|
|
16
|
+
*
|
|
17
|
+
* const query = queryString.parse(window.location.search)
|
|
18
|
+
*
|
|
19
|
+
* const { booking, formSubmissionResult } =
|
|
20
|
+
* await schedulingService.handleSchedulingQuerystring(query)
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @param options
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
declare function handleSchedulingQuerystring({ start_time, end_time, location, submissionId, isReschedule, }: Record<string, unknown>): Promise<{
|
|
27
|
+
booking: SchedulingBooking;
|
|
28
|
+
formSubmissionResult?: FormSubmissionResult;
|
|
29
|
+
}>;
|
|
30
|
+
/**
|
|
31
|
+
* Pass in query string parameters after navigation to your app via a valid
|
|
32
|
+
* cancellation link.
|
|
33
|
+
*
|
|
34
|
+
* #### Example
|
|
35
|
+
*
|
|
36
|
+
* ```js
|
|
37
|
+
* import queryString from 'query-string'
|
|
38
|
+
*
|
|
39
|
+
* const query = queryString.parse(window.location.search)
|
|
40
|
+
*
|
|
41
|
+
* const bookingToCancel =
|
|
42
|
+
* await schedulingService.handleCancelSchedulingBookingQuerystring(query)
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @param options
|
|
46
|
+
* @returns
|
|
47
|
+
*/
|
|
48
|
+
declare function handleCancelSchedulingBookingQuerystring({ nylasEditHash, submissionId, startTime, endTime, eventName, location, timezone, cancellationPolicy, }: Record<string, unknown>): {
|
|
49
|
+
/** The nylas edit hash associated with the booking */
|
|
50
|
+
nylasEditHash: string;
|
|
51
|
+
/** The unique identifier for the submission associated with the booking */
|
|
52
|
+
submissionId: string;
|
|
53
|
+
/** The start time of the booking */
|
|
54
|
+
startTime: Date;
|
|
55
|
+
/** The end time of the booking */
|
|
56
|
+
endTime: Date;
|
|
57
|
+
/** The event name */
|
|
58
|
+
eventName: string;
|
|
59
|
+
/** The location of the event */
|
|
60
|
+
location: string;
|
|
61
|
+
/** The timezone the booking was booked in */
|
|
62
|
+
timezone: string;
|
|
63
|
+
/**
|
|
64
|
+
* The policy to display to users when asked why they are cancelling the
|
|
65
|
+
* booking
|
|
66
|
+
*/
|
|
67
|
+
cancellationPolicy?: string;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Create a Nylas Session
|
|
71
|
+
*
|
|
72
|
+
* #### Example
|
|
73
|
+
*
|
|
74
|
+
* ```js
|
|
75
|
+
* const {
|
|
76
|
+
* sessionId,
|
|
77
|
+
* configurationId,
|
|
78
|
+
* bookingRef,
|
|
79
|
+
* name,
|
|
80
|
+
* email,
|
|
81
|
+
* formSubmissionResult,
|
|
82
|
+
* } = await schedulingService.createNylasNewBookingSession(
|
|
83
|
+
* '89c6e98e-f56f-45fc-84fe-c4fc62331d34',
|
|
84
|
+
* )
|
|
85
|
+
* // use sessionId and configurationId/bookingRef to create or modify nylas bookings
|
|
86
|
+
* // use formSubmissionResult to execute post submission action for form
|
|
87
|
+
* ```
|
|
88
|
+
*
|
|
89
|
+
* @param submissionId
|
|
90
|
+
* @param abortSignal
|
|
91
|
+
* @returns
|
|
92
|
+
*/
|
|
93
|
+
declare function createNylasNewBookingSession(submissionId: string, abortSignal: AbortSignal): Promise<Awaited<ReturnType<typeof createNylasExistingBookingSession>> & {
|
|
94
|
+
/**
|
|
95
|
+
* A callback function run after the booking has been confirmed to prevent
|
|
96
|
+
* the user from making another booking against this form submission and
|
|
97
|
+
* execute post submission action.
|
|
98
|
+
*/
|
|
99
|
+
onBookingConfirmed: (schedulingBooking: SchedulingBooking) => Promise<FormSubmissionResult>;
|
|
100
|
+
}>;
|
|
101
|
+
export { SchedulingBooking, handleSchedulingQuerystring, handleCancelSchedulingBookingQuerystring, createNylasExistingBookingSession, createNylasNewBookingSession, getSchedulingFormSubmissionResult, };
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import OneBlinkAppsError from './services/errors/oneBlinkAppsError';
|
|
2
|
+
import { createNylasExistingBookingSession } from './services/api/scheduling';
|
|
3
|
+
import { checkForPaymentSubmissionEvent, handlePaymentSubmissionEvent, } from './payment-service';
|
|
4
|
+
import { getSchedulingSubmissionResult, removeSchedulingSubmissionResult, setSchedulingBooking, } from './services/schedulingHandlers';
|
|
5
|
+
async function getPaymentConfiguration({ paymentReceiptUrl, paymentFormUrl, preventPayment, formSubmissionResult, schedulingBooking, }) {
|
|
6
|
+
if (preventPayment || !paymentReceiptUrl) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
await setSchedulingBooking(schedulingBooking);
|
|
10
|
+
const paymentSubmissionEventConfiguration = checkForPaymentSubmissionEvent(formSubmissionResult);
|
|
11
|
+
if (paymentSubmissionEventConfiguration) {
|
|
12
|
+
return await handlePaymentSubmissionEvent({
|
|
13
|
+
...paymentSubmissionEventConfiguration,
|
|
14
|
+
formSubmissionResult,
|
|
15
|
+
paymentReceiptUrl,
|
|
16
|
+
paymentFormUrl,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
async function getSchedulingFormSubmissionResult(submissionId, schedulingBooking) {
|
|
22
|
+
const schedulingSubmissionResultConfiguration = await getSchedulingSubmissionResult();
|
|
23
|
+
// If the current transaction does not match the submission
|
|
24
|
+
// we will display message to user indicating
|
|
25
|
+
// they are looking for the wrong transaction receipt.
|
|
26
|
+
if (!schedulingSubmissionResultConfiguration) {
|
|
27
|
+
throw new OneBlinkAppsError('It looks like you are attempting to view a scheduling receipt for an unknown booking.');
|
|
28
|
+
}
|
|
29
|
+
const { formSubmissionResult, paymentReceiptUrl, paymentFormUrl, preventPayment, } = schedulingSubmissionResultConfiguration;
|
|
30
|
+
if (!formSubmissionResult ||
|
|
31
|
+
!formSubmissionResult.scheduling ||
|
|
32
|
+
!formSubmissionResult.scheduling.submissionEvent) {
|
|
33
|
+
throw new OneBlinkAppsError('It looks like you are attempting to view a scheduling receipt for a misconfigured booking.');
|
|
34
|
+
}
|
|
35
|
+
if (formSubmissionResult.submissionId !== submissionId) {
|
|
36
|
+
throw new OneBlinkAppsError('It looks like you are attempting to view a scheduling receipt for the incorrect booking.');
|
|
37
|
+
}
|
|
38
|
+
formSubmissionResult.payment = await getPaymentConfiguration({
|
|
39
|
+
paymentFormUrl,
|
|
40
|
+
paymentReceiptUrl,
|
|
41
|
+
preventPayment,
|
|
42
|
+
formSubmissionResult,
|
|
43
|
+
schedulingBooking,
|
|
44
|
+
});
|
|
45
|
+
await removeSchedulingSubmissionResult();
|
|
46
|
+
return formSubmissionResult;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Pass in query string parameters after a redirect back to your app after a
|
|
50
|
+
* booking is processed. Will return a SchedulingBooking and the submission
|
|
51
|
+
* result from the original submission before redirecting to
|
|
52
|
+
* `scheduling.bookingUrl`. If the booking has been rescheduled, the submission
|
|
53
|
+
* result will not be returned.
|
|
54
|
+
*
|
|
55
|
+
* #### Example
|
|
56
|
+
*
|
|
57
|
+
* ```js
|
|
58
|
+
* import queryString from 'query-string'
|
|
59
|
+
*
|
|
60
|
+
* const query = queryString.parse(window.location.search)
|
|
61
|
+
*
|
|
62
|
+
* const { booking, formSubmissionResult } =
|
|
63
|
+
* await schedulingService.handleSchedulingQuerystring(query)
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
* @param options
|
|
67
|
+
* @returns
|
|
68
|
+
*/
|
|
69
|
+
async function handleSchedulingQuerystring({ start_time, end_time, location, submissionId, isReschedule, }) {
|
|
70
|
+
if (typeof submissionId !== 'string' ||
|
|
71
|
+
typeof start_time !== 'string' ||
|
|
72
|
+
typeof end_time !== 'string' ||
|
|
73
|
+
typeof location !== 'string') {
|
|
74
|
+
throw new OneBlinkAppsError('Scheduling receipts cannot be displayed unless navigating here directly after a booking.');
|
|
75
|
+
}
|
|
76
|
+
const booking = {
|
|
77
|
+
submissionId,
|
|
78
|
+
startTime: new Date(parseInt(start_time) * 1000),
|
|
79
|
+
endTime: new Date(parseInt(end_time) * 1000),
|
|
80
|
+
location,
|
|
81
|
+
isReschedule: isReschedule === 'true',
|
|
82
|
+
};
|
|
83
|
+
console.log('Parsed booking result', booking);
|
|
84
|
+
if (isReschedule) {
|
|
85
|
+
return {
|
|
86
|
+
booking,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
const formSubmissionResult = await getSchedulingFormSubmissionResult(submissionId, booking);
|
|
90
|
+
return {
|
|
91
|
+
formSubmissionResult,
|
|
92
|
+
booking,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Pass in query string parameters after navigation to your app via a valid
|
|
97
|
+
* cancellation link.
|
|
98
|
+
*
|
|
99
|
+
* #### Example
|
|
100
|
+
*
|
|
101
|
+
* ```js
|
|
102
|
+
* import queryString from 'query-string'
|
|
103
|
+
*
|
|
104
|
+
* const query = queryString.parse(window.location.search)
|
|
105
|
+
*
|
|
106
|
+
* const bookingToCancel =
|
|
107
|
+
* await schedulingService.handleCancelSchedulingBookingQuerystring(query)
|
|
108
|
+
* ```
|
|
109
|
+
*
|
|
110
|
+
* @param options
|
|
111
|
+
* @returns
|
|
112
|
+
*/
|
|
113
|
+
function handleCancelSchedulingBookingQuerystring({ nylasEditHash, submissionId, startTime, endTime, eventName, location, timezone, cancellationPolicy, }) {
|
|
114
|
+
if (typeof submissionId !== 'string' ||
|
|
115
|
+
typeof nylasEditHash !== 'string' ||
|
|
116
|
+
typeof startTime !== 'string' ||
|
|
117
|
+
typeof endTime !== 'string' ||
|
|
118
|
+
typeof eventName !== 'string' ||
|
|
119
|
+
typeof location !== 'string' ||
|
|
120
|
+
typeof timezone !== 'string' ||
|
|
121
|
+
(typeof cancellationPolicy !== 'string' && cancellationPolicy !== undefined)) {
|
|
122
|
+
throw new OneBlinkAppsError('Scheduling bookings cannot be cancelled unless navigating here from the correct link.');
|
|
123
|
+
}
|
|
124
|
+
const booking = {
|
|
125
|
+
nylasEditHash,
|
|
126
|
+
submissionId,
|
|
127
|
+
startTime: new Date(parseInt(startTime) * 1000),
|
|
128
|
+
endTime: new Date(parseInt(endTime) * 1000),
|
|
129
|
+
eventName,
|
|
130
|
+
location,
|
|
131
|
+
timezone,
|
|
132
|
+
cancellationPolicy,
|
|
133
|
+
};
|
|
134
|
+
console.log('Parsed scheduling booking cancel data', booking);
|
|
135
|
+
return booking;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Create a Nylas Session
|
|
139
|
+
*
|
|
140
|
+
* #### Example
|
|
141
|
+
*
|
|
142
|
+
* ```js
|
|
143
|
+
* const {
|
|
144
|
+
* sessionId,
|
|
145
|
+
* configurationId,
|
|
146
|
+
* bookingRef,
|
|
147
|
+
* name,
|
|
148
|
+
* email,
|
|
149
|
+
* formSubmissionResult,
|
|
150
|
+
* } = await schedulingService.createNylasNewBookingSession(
|
|
151
|
+
* '89c6e98e-f56f-45fc-84fe-c4fc62331d34',
|
|
152
|
+
* )
|
|
153
|
+
* // use sessionId and configurationId/bookingRef to create or modify nylas bookings
|
|
154
|
+
* // use formSubmissionResult to execute post submission action for form
|
|
155
|
+
* ```
|
|
156
|
+
*
|
|
157
|
+
* @param submissionId
|
|
158
|
+
* @param abortSignal
|
|
159
|
+
* @returns
|
|
160
|
+
*/
|
|
161
|
+
async function createNylasNewBookingSession(submissionId, abortSignal) {
|
|
162
|
+
const session = await createNylasExistingBookingSession(submissionId, abortSignal);
|
|
163
|
+
return {
|
|
164
|
+
...session,
|
|
165
|
+
async onBookingConfirmed(schedulingBooking) {
|
|
166
|
+
return await getSchedulingFormSubmissionResult(submissionId, schedulingBooking);
|
|
167
|
+
},
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
export { handleSchedulingQuerystring, handleCancelSchedulingBookingQuerystring, createNylasExistingBookingSession, createNylasNewBookingSession, getSchedulingFormSubmissionResult, };
|
|
171
|
+
//# sourceMappingURL=scheduling-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduling-service.js","sourceRoot":"","sources":["../../src/apps/scheduling-service.ts"],"names":[],"mappings":"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","sourcesContent":["import OneBlinkAppsError from './services/errors/oneBlinkAppsError'\nimport { createNylasExistingBookingSession } from './services/api/scheduling'\nimport {\n checkForPaymentSubmissionEvent,\n handlePaymentSubmissionEvent,\n} from './payment-service'\nimport { FormSubmissionResult } from './types/submissions'\nimport {\n SchedulingBooking,\n getSchedulingSubmissionResult,\n removeSchedulingSubmissionResult,\n setSchedulingBooking,\n} from './services/schedulingHandlers'\n\nasync function getPaymentConfiguration({\n paymentReceiptUrl,\n paymentFormUrl,\n preventPayment,\n formSubmissionResult,\n schedulingBooking,\n}: {\n paymentReceiptUrl: string | undefined\n paymentFormUrl: string | undefined\n preventPayment: boolean\n formSubmissionResult: FormSubmissionResult\n schedulingBooking: SchedulingBooking\n}) {\n if (preventPayment || !paymentReceiptUrl) {\n return null\n }\n\n await setSchedulingBooking(schedulingBooking)\n const paymentSubmissionEventConfiguration =\n checkForPaymentSubmissionEvent(formSubmissionResult)\n if (paymentSubmissionEventConfiguration) {\n return await handlePaymentSubmissionEvent({\n ...paymentSubmissionEventConfiguration,\n formSubmissionResult,\n paymentReceiptUrl,\n paymentFormUrl,\n })\n }\n\n return null\n}\n\nasync function getSchedulingFormSubmissionResult(\n submissionId: string,\n schedulingBooking: SchedulingBooking,\n) {\n const schedulingSubmissionResultConfiguration =\n await getSchedulingSubmissionResult()\n // If the current transaction does not match the submission\n // we will display message to user indicating\n // they are looking for the wrong transaction receipt.\n if (!schedulingSubmissionResultConfiguration) {\n throw new OneBlinkAppsError(\n 'It looks like you are attempting to view a scheduling receipt for an unknown booking.',\n )\n }\n\n const {\n formSubmissionResult,\n paymentReceiptUrl,\n paymentFormUrl,\n preventPayment,\n } = schedulingSubmissionResultConfiguration\n if (\n !formSubmissionResult ||\n !formSubmissionResult.scheduling ||\n !formSubmissionResult.scheduling.submissionEvent\n ) {\n throw new OneBlinkAppsError(\n 'It looks like you are attempting to view a scheduling receipt for a misconfigured booking.',\n )\n }\n\n if (formSubmissionResult.submissionId !== submissionId) {\n throw new OneBlinkAppsError(\n 'It looks like you are attempting to view a scheduling receipt for the incorrect booking.',\n )\n }\n\n formSubmissionResult.payment = await getPaymentConfiguration({\n paymentFormUrl,\n paymentReceiptUrl,\n preventPayment,\n formSubmissionResult,\n schedulingBooking,\n })\n\n await removeSchedulingSubmissionResult()\n\n return formSubmissionResult\n}\n\n/**\n * Pass in query string parameters after a redirect back to your app after a\n * booking is processed. Will return a SchedulingBooking and the submission\n * result from the original submission before redirecting to\n * `scheduling.bookingUrl`. If the booking has been rescheduled, the submission\n * result will not be returned.\n *\n * #### Example\n *\n * ```js\n * import queryString from 'query-string'\n *\n * const query = queryString.parse(window.location.search)\n *\n * const { booking, formSubmissionResult } =\n * await schedulingService.handleSchedulingQuerystring(query)\n * ```\n *\n * @param options\n * @returns\n */\nasync function handleSchedulingQuerystring({\n start_time,\n end_time,\n location,\n submissionId,\n isReschedule,\n}: Record<string, unknown>): Promise<{\n booking: SchedulingBooking\n formSubmissionResult?: FormSubmissionResult\n}> {\n if (\n typeof submissionId !== 'string' ||\n typeof start_time !== 'string' ||\n typeof end_time !== 'string' ||\n typeof location !== 'string'\n ) {\n throw new OneBlinkAppsError(\n 'Scheduling receipts cannot be displayed unless navigating here directly after a booking.',\n )\n }\n const booking: SchedulingBooking = {\n submissionId,\n startTime: new Date(parseInt(start_time) * 1000),\n endTime: new Date(parseInt(end_time) * 1000),\n location,\n isReschedule: isReschedule === 'true',\n }\n console.log('Parsed booking result', booking)\n\n if (isReschedule) {\n return {\n booking,\n }\n }\n\n const formSubmissionResult = await getSchedulingFormSubmissionResult(\n submissionId,\n booking,\n )\n\n return {\n formSubmissionResult,\n booking,\n }\n}\n\n/**\n * Pass in query string parameters after navigation to your app via a valid\n * cancellation link.\n *\n * #### Example\n *\n * ```js\n * import queryString from 'query-string'\n *\n * const query = queryString.parse(window.location.search)\n *\n * const bookingToCancel =\n * await schedulingService.handleCancelSchedulingBookingQuerystring(query)\n * ```\n *\n * @param options\n * @returns\n */\nfunction handleCancelSchedulingBookingQuerystring({\n nylasEditHash,\n submissionId,\n startTime,\n endTime,\n eventName,\n location,\n timezone,\n cancellationPolicy,\n}: Record<string, unknown>): {\n /** The nylas edit hash associated with the booking */\n nylasEditHash: string\n /** The unique identifier for the submission associated with the booking */\n submissionId: string\n /** The start time of the booking */\n startTime: Date\n /** The end time of the booking */\n endTime: Date\n /** The event name */\n eventName: string\n /** The location of the event */\n location: string\n /** The timezone the booking was booked in */\n timezone: string\n /**\n * The policy to display to users when asked why they are cancelling the\n * booking\n */\n cancellationPolicy?: string\n} {\n if (\n typeof submissionId !== 'string' ||\n typeof nylasEditHash !== 'string' ||\n typeof startTime !== 'string' ||\n typeof endTime !== 'string' ||\n typeof eventName !== 'string' ||\n typeof location !== 'string' ||\n typeof timezone !== 'string' ||\n (typeof cancellationPolicy !== 'string' && cancellationPolicy !== undefined)\n ) {\n throw new OneBlinkAppsError(\n 'Scheduling bookings cannot be cancelled unless navigating here from the correct link.',\n )\n }\n\n const booking = {\n nylasEditHash,\n submissionId,\n startTime: new Date(parseInt(startTime) * 1000),\n endTime: new Date(parseInt(endTime) * 1000),\n eventName,\n location,\n timezone,\n cancellationPolicy,\n }\n console.log('Parsed scheduling booking cancel data', booking)\n\n return booking\n}\n\n/**\n * Create a Nylas Session\n *\n * #### Example\n *\n * ```js\n * const {\n * sessionId,\n * configurationId,\n * bookingRef,\n * name,\n * email,\n * formSubmissionResult,\n * } = await schedulingService.createNylasNewBookingSession(\n * '89c6e98e-f56f-45fc-84fe-c4fc62331d34',\n * )\n * // use sessionId and configurationId/bookingRef to create or modify nylas bookings\n * // use formSubmissionResult to execute post submission action for form\n * ```\n *\n * @param submissionId\n * @param abortSignal\n * @returns\n */\nasync function createNylasNewBookingSession(\n submissionId: string,\n abortSignal: AbortSignal,\n): Promise<\n Awaited<ReturnType<typeof createNylasExistingBookingSession>> & {\n /**\n * A callback function run after the booking has been confirmed to prevent\n * the user from making another booking against this form submission and\n * execute post submission action.\n */\n onBookingConfirmed: (\n schedulingBooking: SchedulingBooking,\n ) => Promise<FormSubmissionResult>\n }\n> {\n const session = await createNylasExistingBookingSession(\n submissionId,\n abortSignal,\n )\n\n return {\n ...session,\n async onBookingConfirmed(schedulingBooking: SchedulingBooking) {\n return await getSchedulingFormSubmissionResult(\n submissionId,\n schedulingBooking,\n )\n },\n }\n}\n\nexport {\n SchedulingBooking,\n handleSchedulingQuerystring,\n handleCancelSchedulingBookingQuerystring,\n createNylasExistingBookingSession,\n createNylasNewBookingSession,\n getSchedulingFormSubmissionResult,\n}\n"]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { AuthenticationResultType, CognitoIdentityProviderClient, InitiateAuthResponse } from '@aws-sdk/client-cognito-identity-provider';
|
|
2
|
+
export type LoginAttemptResponse = {
|
|
3
|
+
resetPasswordCallback?: (newPassword: string) => Promise<LoginAttemptResponse>;
|
|
4
|
+
mfaCodeCallback?: (code: string) => Promise<LoginAttemptResponse>;
|
|
5
|
+
};
|
|
6
|
+
export default class AWSCognitoClient {
|
|
7
|
+
clientId: string;
|
|
8
|
+
cognitoIdentityProviderClient: CognitoIdentityProviderClient;
|
|
9
|
+
loginDomain: string | void;
|
|
10
|
+
redirectUri: string | void;
|
|
11
|
+
logoutUri: string | void;
|
|
12
|
+
listeners: Array<() => unknown>;
|
|
13
|
+
constructor({ clientId, region, loginDomain, redirectUri, logoutUri, }: {
|
|
14
|
+
clientId: string;
|
|
15
|
+
region: string;
|
|
16
|
+
redirectUri?: string;
|
|
17
|
+
logoutUri?: string;
|
|
18
|
+
loginDomain?: string;
|
|
19
|
+
});
|
|
20
|
+
get EXPIRES_AT(): string;
|
|
21
|
+
get ACCESS_TOKEN(): string;
|
|
22
|
+
get ID_TOKEN(): string;
|
|
23
|
+
get REFRESH_TOKEN(): string;
|
|
24
|
+
get STATE(): string;
|
|
25
|
+
get PKCE_CODE_VERIFIER(): string;
|
|
26
|
+
_executeListeners(): void;
|
|
27
|
+
_storeAuthenticationResult(authenticationResult: AuthenticationResultType): void;
|
|
28
|
+
_removeAuthenticationResult(): void;
|
|
29
|
+
_getAccessToken(): string | undefined;
|
|
30
|
+
_getIdToken(): string | undefined;
|
|
31
|
+
_getRefreshToken(): string | undefined;
|
|
32
|
+
_isSessionValid(): boolean;
|
|
33
|
+
_refreshSession(): Promise<void>;
|
|
34
|
+
registerListener(listener: () => unknown): () => void;
|
|
35
|
+
responseToAuthChallenge(username: string, initiateAuthResponse: InitiateAuthResponse): Promise<LoginAttemptResponse>;
|
|
36
|
+
loginUsernamePassword(username: string, password: string): Promise<LoginAttemptResponse>;
|
|
37
|
+
loginHostedUI(identityProviderName?: string): Promise<void>;
|
|
38
|
+
handleAuthentication(): Promise<void>;
|
|
39
|
+
changePassword(existingPassword: string, newPassword: string): Promise<void>;
|
|
40
|
+
confirmForgotPassword({ username, code, password, }: {
|
|
41
|
+
username: string;
|
|
42
|
+
code: string;
|
|
43
|
+
password: string;
|
|
44
|
+
}): Promise<void>;
|
|
45
|
+
logoutHostedUI(): void;
|
|
46
|
+
logout(): Promise<void>;
|
|
47
|
+
getIdToken(): Promise<string | undefined>;
|
|
48
|
+
getAccessToken(): Promise<string | undefined>;
|
|
49
|
+
checkIsMfaEnabled(): Promise<boolean>;
|
|
50
|
+
disableMfa(): Promise<void>;
|
|
51
|
+
setupMfa(): Promise<{
|
|
52
|
+
secretCode: string | undefined;
|
|
53
|
+
mfaCodeCallback: (code: string) => Promise<void>;
|
|
54
|
+
} | undefined>;
|
|
55
|
+
}
|