@mrfylke/contact-form 0.1.24 → 0.1.26
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/README.md +42 -24
- package/lib/ContactFormRoot.d.ts +2 -2
- package/lib/ContactFormRoot.d.ts.map +1 -1
- package/lib/ContactFormRoot.js +6 -4
- package/lib/components/button/link.d.ts +1 -1
- package/lib/components/button/link.d.ts.map +1 -1
- package/lib/components/button/utils.d.ts +2 -2
- package/lib/components/button/utils.d.ts.map +1 -1
- package/lib/components/checkbox/checkbox.d.ts +1 -1
- package/lib/components/checkbox/checkbox.d.ts.map +1 -1
- package/lib/components/error-message/error-message.d.ts +1 -1
- package/lib/components/error-message/error-message.d.ts.map +1 -1
- package/lib/components/external-link-page.d.ts +1 -1
- package/lib/components/external-link-page.d.ts.map +1 -1
- package/lib/components/form/date-selector.d.ts +1 -1
- package/lib/components/form/date-selector.d.ts.map +1 -1
- package/lib/components/form/date-selector.js +2 -2
- package/lib/components/form/departure-time-field.d.ts +1 -1
- package/lib/components/form/departure-time-field.d.ts.map +1 -1
- package/lib/components/form/description-modal.d.ts +1 -1
- package/lib/components/form/description-modal.d.ts.map +1 -1
- package/lib/components/form/field-wrapper-with-error/index.d.ts +1 -1
- package/lib/components/form/field-wrapper-with-error/index.d.ts.map +1 -1
- package/lib/components/form/fieldset/index.d.ts +1 -1
- package/lib/components/form/fieldset/index.d.ts.map +1 -1
- package/lib/components/form/file-input.d.ts +1 -1
- package/lib/components/form/file-input.d.ts.map +1 -1
- package/lib/components/form/form-component-label/index.d.ts +3 -2
- package/lib/components/form/form-component-label/index.d.ts.map +1 -1
- package/lib/components/form/form-component-label/index.js +2 -2
- package/lib/components/form/input.d.ts +1 -1
- package/lib/components/form/input.d.ts.map +1 -1
- package/lib/components/form/radio.d.ts +1 -1
- package/lib/components/form/radio.d.ts.map +1 -1
- package/lib/components/form/searchable-select/searchable-select.d.ts +1 -1
- package/lib/components/form/searchable-select/searchable-select.d.ts.map +1 -1
- package/lib/components/form/searchable-select/searchable-select.js +1 -1
- package/lib/components/form/select.d.ts +1 -1
- package/lib/components/form/select.d.ts.map +1 -1
- package/lib/components/form/select.js +1 -1
- package/lib/components/form/textarea.d.ts +1 -1
- package/lib/components/form/textarea.d.ts.map +1 -1
- package/lib/components/form/time-selector.d.ts +1 -1
- package/lib/components/form/time-selector.d.ts.map +1 -1
- package/lib/components/form/time-selector.js +2 -2
- package/lib/components/icon/checkbox-icon.d.ts +1 -1
- package/lib/components/icon/checkbox-icon.d.ts.map +1 -1
- package/lib/components/icon/color-icon.d.ts +1 -1
- package/lib/components/icon/color-icon.d.ts.map +1 -1
- package/lib/components/icon/generated-icons.d.ts +422 -262
- package/lib/components/icon/generated-icons.d.ts.map +1 -1
- package/lib/components/icon/generated-icons.js +1931 -1771
- package/lib/components/icon/illustration.d.ts +1 -1
- package/lib/components/icon/illustration.d.ts.map +1 -1
- package/lib/components/icon/image.d.ts +1 -1
- package/lib/components/icon/image.d.ts.map +1 -1
- package/lib/components/icon/mono-icon.d.ts +1 -1
- package/lib/components/icon/mono-icon.d.ts.map +1 -1
- package/lib/components/icon/utils.d.ts.map +1 -1
- package/lib/components/icon/utils.js +6 -6
- package/lib/components/loading/index.d.ts +2 -2
- package/lib/components/loading/index.d.ts.map +1 -1
- package/lib/components/section-card/section-card.d.ts +1 -1
- package/lib/components/section-card/section-card.d.ts.map +1 -1
- package/lib/components/typography/index.d.ts +6 -6
- package/lib/components/typography/index.d.ts.map +1 -1
- package/lib/contact.module.css +0 -9
- package/lib/error-content/error-content.d.ts +1 -1
- package/lib/error-content/error-content.d.ts.map +1 -1
- package/lib/group-travel/index.d.ts +1 -1
- package/lib/group-travel/index.d.ts.map +1 -1
- package/lib/group-travel/index.js +1 -2
- package/lib/index.d.ts +3 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +5 -10
- package/lib/journey-info/events.d.ts.map +1 -1
- package/lib/journey-info/index.d.ts +1 -1
- package/lib/journey-info/index.d.ts.map +1 -1
- package/lib/journey-info/index.js +10 -8
- package/lib/journey-info/journeyInfoStateMachine.d.ts +2 -2
- package/lib/journey-info/journeyInfoStateMachine.d.ts.map +1 -1
- package/lib/journey-info/journeyInfoStateMachine.js +1 -1
- package/lib/layouts/contact-form-container.d.ts +1 -1
- package/lib/layouts/contact-form-container.d.ts.map +1 -1
- package/lib/layouts/contact-page-layout.d.ts +1 -8
- package/lib/layouts/contact-page-layout.d.ts.map +1 -1
- package/lib/layouts/contact-page-layout.js +8 -93
- package/lib/layouts/contact-pages.d.ts +20 -0
- package/lib/layouts/contact-pages.d.ts.map +1 -0
- package/lib/layouts/contact-pages.js +124 -0
- package/lib/layouts/index.d.ts +2 -1
- package/lib/layouts/index.d.ts.map +1 -1
- package/lib/layouts/index.js +5 -2
- package/lib/lines/use-departures.js +2 -2
- package/lib/lines/use-lines.d.ts +2 -2
- package/lib/lines/use-lines.js +1 -1
- package/lib/lost-property/LostPropertyForm.d.ts +2 -1
- package/lib/lost-property/LostPropertyForm.d.ts.map +1 -1
- package/lib/lost-property/LostPropertyMachine.d.ts +2 -2
- package/lib/lost-property/LostPropertyMachine.d.ts.map +1 -1
- package/lib/lost-property/LostPropertyMachine.js +1 -1
- package/lib/lost-property/index.d.ts +1 -1
- package/lib/lost-property/index.d.ts.map +1 -1
- package/lib/lost-property-external/index.d.ts +1 -1
- package/lib/lost-property-external/index.d.ts.map +1 -1
- package/lib/lost-property-external/index.js +1 -2
- package/lib/means-of-transport/events.d.ts.map +1 -1
- package/lib/means-of-transport/forms/delayForm.d.ts +1 -1
- package/lib/means-of-transport/forms/delayForm.d.ts.map +1 -1
- package/lib/means-of-transport/forms/driverForm.d.ts +1 -1
- package/lib/means-of-transport/forms/driverForm.d.ts.map +1 -1
- package/lib/means-of-transport/forms/injuryForm.d.ts +1 -1
- package/lib/means-of-transport/forms/injuryForm.d.ts.map +1 -1
- package/lib/means-of-transport/forms/serviceOfferingForm.d.ts +1 -1
- package/lib/means-of-transport/forms/serviceOfferingForm.d.ts.map +1 -1
- package/lib/means-of-transport/forms/serviceOfferingForm.js +3 -1
- package/lib/means-of-transport/forms/stopForm.d.ts +1 -1
- package/lib/means-of-transport/forms/stopForm.d.ts.map +1 -1
- package/lib/means-of-transport/forms/transportationForm.d.ts +1 -1
- package/lib/means-of-transport/forms/transportationForm.d.ts.map +1 -1
- package/lib/means-of-transport/index.d.ts +1 -1
- package/lib/means-of-transport/index.d.ts.map +1 -1
- package/lib/means-of-transport/index.js +8 -2
- package/lib/means-of-transport/means-of-transport-form-machine.d.ts +4 -2
- package/lib/means-of-transport/means-of-transport-form-machine.d.ts.map +1 -1
- package/lib/means-of-transport/means-of-transport-form-machine.js +9 -3
- package/lib/modules/config/context.d.ts +13 -38
- package/lib/modules/config/context.d.ts.map +1 -1
- package/lib/modules/config/context.js +16 -52
- package/lib/modules/config/default-submit.d.ts +3 -0
- package/lib/modules/config/default-submit.d.ts.map +1 -0
- package/lib/modules/config/default-submit.js +13 -0
- package/lib/modules/config/index.d.ts +1 -0
- package/lib/modules/config/index.d.ts.map +1 -1
- package/lib/modules/config/index.js +1 -0
- package/lib/modules/config/types.d.ts +60 -78
- package/lib/modules/config/types.d.ts.map +1 -1
- package/lib/modules/org-data/index.d.ts +1 -2
- package/lib/modules/org-data/index.d.ts.map +1 -1
- package/lib/modules/org-data/index.js +1 -2
- package/lib/modules/theme/theme-context.d.ts +1 -1
- package/lib/modules/theme/theme-context.d.ts.map +1 -1
- package/lib/modules/transport-mode/filter/filter.d.ts +1 -1
- package/lib/modules/transport-mode/filter/filter.d.ts.map +1 -1
- package/lib/modules/transport-mode/icon/index.d.ts +4 -4
- package/lib/modules/transport-mode/icon/index.d.ts.map +1 -1
- package/lib/modules/transport-mode/types.d.ts +3 -5
- package/lib/modules/transport-mode/types.d.ts.map +1 -1
- package/lib/modules/transport-mode/types.js +3 -138
- package/lib/modules/transport-mode/utils.d.ts +2 -2
- package/lib/modules/transport-mode/utils.d.ts.map +1 -1
- package/lib/modules/transport-mode/utils.js +39 -6
- package/lib/refund/forms/refund-and-travel-guarantee/index.d.ts +1 -1
- package/lib/refund/forms/refund-and-travel-guarantee/index.d.ts.map +1 -1
- package/lib/refund/forms/refund-and-travel-guarantee/index.js +1 -1
- package/lib/refund/forms/refund-and-travel-guarantee/refundCarForm.d.ts +1 -1
- package/lib/refund/forms/refund-and-travel-guarantee/refundCarForm.d.ts.map +1 -1
- package/lib/refund/forms/refund-and-travel-guarantee/refundCarForm.js +1 -1
- package/lib/refund/forms/refund-and-travel-guarantee/refundTaxiForm.d.ts +1 -1
- package/lib/refund/forms/refund-and-travel-guarantee/refundTaxiForm.d.ts.map +1 -1
- package/lib/refund/forms/refund-ticket/appTicketRefund.d.ts +2 -2
- package/lib/refund/forms/refund-ticket/appTicketRefund.d.ts.map +1 -1
- package/lib/refund/forms/refund-ticket/appTicketRefund.js +18 -2
- package/lib/refund/forms/refund-ticket/index.d.ts +1 -1
- package/lib/refund/forms/refund-ticket/index.d.ts.map +1 -1
- package/lib/refund/forms/refund-ticket/index.js +1 -1
- package/lib/refund/forms/refund-ticket/otherTicketRefund.d.ts +1 -1
- package/lib/refund/forms/refund-ticket/otherTicketRefund.d.ts.map +1 -1
- package/lib/refund/forms/refund-ticket/otherTicketRefund.js +16 -4
- package/lib/refund/forms/residualValueOnTravelCard/index.d.ts +1 -1
- package/lib/refund/forms/residualValueOnTravelCard/index.d.ts.map +1 -1
- package/lib/refund/forms/residualValueOnTravelCard/index.js +1 -2
- package/lib/refund/index.d.ts +1 -1
- package/lib/refund/index.d.ts.map +1 -1
- package/lib/refund/index.js +9 -0
- package/lib/refund/refundFormMachine.d.ts +10 -2
- package/lib/refund/refundFormMachine.d.ts.map +1 -1
- package/lib/refund/refundFormMachine.js +23 -2
- package/lib/server/departures-route-handler.d.ts +27 -0
- package/lib/server/departures-route-handler.d.ts.map +1 -0
- package/lib/server/departures-route-handler.js +93 -0
- package/lib/server/index.d.ts +2 -0
- package/lib/server/index.d.ts.map +1 -1
- package/lib/server/index.js +5 -1
- package/lib/server/journey-planner/authority.d.ts +2 -2
- package/lib/server/journey-planner/authority.js +3 -3
- package/lib/server/journey-planner/index.d.ts.map +1 -1
- package/lib/server/journey-planner/index.js +8 -9
- package/lib/server/journey-planner/journey-gql/lines.generated.d.ts +1 -0
- package/lib/server/journey-planner/journey-gql/lines.generated.d.ts.map +1 -1
- package/lib/server/journey-planner/journey-gql/lines.generated.js +1 -0
- package/lib/server/journey-planner/validators.d.ts +4 -4
- package/lib/server/journey-planner/validators.js +3 -3
- package/lib/server/lines-route-handler.d.ts +7 -18
- package/lib/server/lines-route-handler.d.ts.map +1 -1
- package/lib/server/lines-route-handler.js +15 -17
- package/lib/server/submit-route-handler.d.ts +20 -0
- package/lib/server/submit-route-handler.d.ts.map +1 -0
- package/lib/server/submit-route-handler.js +62 -0
- package/lib/success-content/success-content.d.ts +1 -1
- package/lib/success-content/success-content.d.ts.map +1 -1
- package/lib/ticket-control/events.d.ts +1 -1
- package/lib/ticket-control/events.d.ts.map +1 -1
- package/lib/ticket-control/forms/feeComplaintForm.d.ts +1 -1
- package/lib/ticket-control/forms/feeComplaintForm.d.ts.map +1 -1
- package/lib/ticket-control/forms/feeComplaintForm.js +5 -1
- package/lib/ticket-control/forms/feedbackForm.d.ts +1 -1
- package/lib/ticket-control/forms/feedbackForm.d.ts.map +1 -1
- package/lib/ticket-control/forms/postponePayment.d.ts +1 -1
- package/lib/ticket-control/forms/postponePayment.d.ts.map +1 -1
- package/lib/ticket-control/forms/postponePayment.js +5 -1
- package/lib/ticket-control/index.d.ts +1 -1
- package/lib/ticket-control/index.d.ts.map +1 -1
- package/lib/ticket-control/index.js +2 -0
- package/lib/ticket-control/ticket-control-form-machine.d.ts +8 -4
- package/lib/ticket-control/ticket-control-form-machine.d.ts.map +1 -1
- package/lib/ticket-control/ticket-control-form-machine.js +14 -3
- package/lib/ticketing/events.d.ts.map +1 -1
- package/lib/ticketing/forms/app/appAccountForm.d.ts +1 -1
- package/lib/ticketing/forms/app/appAccountForm.d.ts.map +1 -1
- package/lib/ticketing/forms/app/appTicketingForm.d.ts +1 -1
- package/lib/ticketing/forms/app/appTicketingForm.d.ts.map +1 -1
- package/lib/ticketing/forms/app/appTravelSuggestionForm.d.ts +1 -1
- package/lib/ticketing/forms/app/appTravelSuggestionForm.d.ts.map +1 -1
- package/lib/ticketing/forms/app/index.d.ts +1 -1
- package/lib/ticketing/forms/app/index.d.ts.map +1 -1
- package/lib/ticketing/forms/priceAndTicketTypesForm.d.ts +1 -1
- package/lib/ticketing/forms/priceAndTicketTypesForm.d.ts.map +1 -1
- package/lib/ticketing/forms/travel-card/index.d.ts +1 -1
- package/lib/ticketing/forms/travel-card/index.d.ts.map +1 -1
- package/lib/ticketing/forms/travel-card/orderTravelCard.d.ts +1 -1
- package/lib/ticketing/forms/travel-card/orderTravelCard.d.ts.map +1 -1
- package/lib/ticketing/forms/travel-card/orderTravelCard.js +1 -1
- package/lib/ticketing/forms/travel-card/travelCardQuestionForm.d.ts +1 -1
- package/lib/ticketing/forms/travel-card/travelCardQuestionForm.d.ts.map +1 -1
- package/lib/ticketing/forms/webshop/index.d.ts +1 -1
- package/lib/ticketing/forms/webshop/index.d.ts.map +1 -1
- package/lib/ticketing/forms/webshop/webshopAccountForm.d.ts +1 -1
- package/lib/ticketing/forms/webshop/webshopAccountForm.d.ts.map +1 -1
- package/lib/ticketing/forms/webshop/webshopTicketingForm.d.ts +1 -1
- package/lib/ticketing/forms/webshop/webshopTicketingForm.d.ts.map +1 -1
- package/lib/ticketing/index.d.ts +1 -1
- package/lib/ticketing/index.d.ts.map +1 -1
- package/lib/ticketing/ticketingStateMachine.d.ts +2 -2
- package/lib/ticketing/ticketingStateMachine.d.ts.map +1 -1
- package/lib/translations/commons.d.ts +1 -0
- package/lib/translations/commons.d.ts.map +1 -1
- package/lib/translations/commons.js +4 -4
- package/lib/translations/index.d.ts +2 -6
- package/lib/translations/index.d.ts.map +1 -1
- package/lib/translations/index.js +1 -9
- package/lib/translations/language-context.d.ts +3 -11
- package/lib/translations/language-context.d.ts.map +1 -1
- package/lib/translations/language-context.js +1 -31
- package/lib/translations/merge-overrides.d.ts +3 -9
- package/lib/translations/merge-overrides.d.ts.map +1 -1
- package/lib/translations/merge-overrides.js +3 -15
- package/lib/translations/pages/contact.d.ts +15 -4
- package/lib/translations/pages/contact.d.ts.map +1 -1
- package/lib/translations/pages/contact.js +17 -20
- package/lib/translations/server/endpoints.d.ts +0 -62
- package/lib/translations/server/endpoints.d.ts.map +1 -1
- package/lib/translations/server/endpoints.js +1 -139
- package/lib/translations/translations-context.d.ts +1 -1
- package/lib/translations/translations-context.d.ts.map +1 -1
- package/lib/translations/types.d.ts +7 -13
- package/lib/translations/types.d.ts.map +1 -1
- package/lib/translations/utils.d.ts +0 -7
- package/lib/translations/utils.d.ts.map +1 -1
- package/lib/translations/utils.js +0 -26
- package/lib/types/submit-payloads.d.ts +1 -0
- package/lib/types/submit-payloads.d.ts.map +1 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/validation/validationRules.d.ts.map +1 -1
- package/lib/validation/validationRules.js +7 -0
- package/package.json +37 -32
- package/lib/components/icon/icon-wrapper.d.ts +0 -30
- package/lib/components/icon/icon-wrapper.d.ts.map +0 -1
- package/lib/components/icon/icon-wrapper.js +0 -39
- package/lib/components/icon/mono-icon-new.d.ts +0 -32
- package/lib/components/icon/mono-icon-new.d.ts.map +0 -1
- package/lib/components/icon/mono-icon-new.js +0 -43
- package/lib/translations/common/index.d.ts +0 -3
- package/lib/translations/common/index.d.ts.map +0 -1
- package/lib/translations/common/index.js +0 -7
- package/lib/translations/common/layout.d.ts +0 -8
- package/lib/translations/common/layout.d.ts.map +0 -1
- package/lib/translations/common/layout.js +0 -39
- package/lib/translations/common/titles.d.ts +0 -4
- package/lib/translations/common/titles.d.ts.map +0 -1
- package/lib/translations/common/titles.js +0 -25
- package/lib/translations/json-to-override.d.ts +0 -19
- package/lib/translations/json-to-override.d.ts.map +0 -1
- package/lib/translations/json-to-override.js +0 -65
- package/lib/translations/load-org-translations.d.ts +0 -19
- package/lib/translations/load-org-translations.d.ts.map +0 -1
- package/lib/translations/load-org-translations.js +0 -23
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.refundStateMachine = exports.FormType = exports.RefundAndTravelGuarantee = exports.RefundTicketForm = exports.FormCategory = void 0;
|
|
4
4
|
exports.createRefundStateMachine = createRefundStateMachine;
|
|
5
|
+
const types_1 = require("../types");
|
|
5
6
|
const xstate_1 = require("xstate");
|
|
6
7
|
const validation_1 = require("../validation");
|
|
7
8
|
const utils_1 = require("../utils");
|
|
@@ -46,7 +47,7 @@ const setInitialAgreementAndFormType = (context, isChecked) => {
|
|
|
46
47
|
};
|
|
47
48
|
};
|
|
48
49
|
const setInputToValidate = (context) => {
|
|
49
|
-
const { formType, firstName, lastName, email, phoneNumber, address, postalCode, city, hasInternationalBankAccount, bankAccountNumber, IBAN, SWIFT, transportMode, line, fromStop, toStop, date, kilometersDriven, fromAddress, toAddress, plannedDepartureTime, reasonForTransportFailure, amount, attachments, orderId, ticketType, refundReason, includeOtherTicketTypeSelector, includeRefundDepartureInfo, } = context;
|
|
50
|
+
const { formType, firstName, lastName, email, phoneNumber, address, postalCode, city, hasInternationalBankAccount, bankAccountNumber, IBAN, SWIFT, transportMode, line, fromStop, toStop, date, kilometersDriven, fromAddress, toAddress, plannedDepartureTime, reasonForTransportFailure, amount, attachments, orderId, ticketType, refundReason, includeOtherTicketTypeSelector, includeRefundDepartureInfo, includeCustomerNumberAndPurchasePlatformInAppTicketRefund, customerNumber, purchasePlatform, includeOrderIdAndAmountInOtherTicketRefund, enableFileUploads, enableRequiredAttachmentInOtherTicketRefund, } = context;
|
|
50
51
|
const commonFields = {
|
|
51
52
|
formType,
|
|
52
53
|
transportMode,
|
|
@@ -82,6 +83,9 @@ const setInputToValidate = (context) => {
|
|
|
82
83
|
city,
|
|
83
84
|
email,
|
|
84
85
|
phoneNumber,
|
|
86
|
+
...(includeCustomerNumberAndPurchasePlatformInAppTicketRefund
|
|
87
|
+
? { customerNumber, purchasePlatform }
|
|
88
|
+
: {}),
|
|
85
89
|
...(includeRefundDepartureInfo
|
|
86
90
|
? {
|
|
87
91
|
transportMode,
|
|
@@ -96,6 +100,9 @@ const setInputToValidate = (context) => {
|
|
|
96
100
|
case FormType.OtherTicketRefund:
|
|
97
101
|
return {
|
|
98
102
|
formType,
|
|
103
|
+
...(includeOrderIdAndAmountInOtherTicketRefund
|
|
104
|
+
? { orderId, amount }
|
|
105
|
+
: {}),
|
|
99
106
|
...(includeOtherTicketTypeSelector ? { ticketType } : {}),
|
|
100
107
|
refundReason,
|
|
101
108
|
firstName,
|
|
@@ -105,7 +112,13 @@ const setInputToValidate = (context) => {
|
|
|
105
112
|
city,
|
|
106
113
|
email,
|
|
107
114
|
phoneNumber,
|
|
108
|
-
|
|
115
|
+
...(!includeOtherTicketTypeSelector ||
|
|
116
|
+
context.ticketType?.id === types_1.TicketTypeId.PeriodTicket
|
|
117
|
+
? { travelCardNumber: context.travelCardNumber }
|
|
118
|
+
: {}),
|
|
119
|
+
...(enableFileUploads && enableRequiredAttachmentInOtherTicketRefund
|
|
120
|
+
? { attachments }
|
|
121
|
+
: {}),
|
|
109
122
|
...(hasInternationalBankAccount
|
|
110
123
|
? { IBAN, SWIFT }
|
|
111
124
|
: { bankAccountNumber }),
|
|
@@ -171,6 +184,10 @@ function createRefundStateMachine(onSubmit, paths) {
|
|
|
171
184
|
const errorPath = paths?.errorPath ?? '/contact/error';
|
|
172
185
|
const includeOtherTicketTypeSelector = paths?.includeOtherTicketTypeSelector !== false;
|
|
173
186
|
const includeRefundDepartureInfo = paths?.includeRefundDepartureInfo === true;
|
|
187
|
+
const includeCustomerNumberAndPurchasePlatformInAppTicketRefund = paths?.includeCustomerNumberAndPurchasePlatformInAppTicketRefund === true;
|
|
188
|
+
const includeOrderIdAndAmountInOtherTicketRefund = paths?.includeOrderIdAndAmountInOtherTicketRefund === true;
|
|
189
|
+
const enableFileUploads = paths?.enableFileUploads === true;
|
|
190
|
+
const enableRequiredAttachmentInOtherTicketRefund = paths?.enableRequiredAttachmentInOtherTicketRefund === true;
|
|
174
191
|
return (0, xstate_1.setup)({
|
|
175
192
|
types: { context: {}, events: events_1.RefundFormEvents },
|
|
176
193
|
guards: {
|
|
@@ -319,6 +336,10 @@ function createRefundStateMachine(onSubmit, paths) {
|
|
|
319
336
|
hasInternationalBankAccount: false,
|
|
320
337
|
includeOtherTicketTypeSelector,
|
|
321
338
|
includeRefundDepartureInfo,
|
|
339
|
+
includeCustomerNumberAndPurchasePlatformInAppTicketRefund,
|
|
340
|
+
includeOrderIdAndAmountInOtherTicketRefund,
|
|
341
|
+
enableFileUploads,
|
|
342
|
+
enableRequiredAttachmentInOtherTicketRefund,
|
|
322
343
|
errorMessages: {},
|
|
323
344
|
},
|
|
324
345
|
on: {
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Next.js App Router API route handler for the departures endpoint.
|
|
3
|
+
* Hosts mount this at their chosen path (e.g. /api/contact/departures) and
|
|
4
|
+
* supply the GTFS agency ID and (optionally) the GCP project ID for BigQuery.
|
|
5
|
+
*/
|
|
6
|
+
import type { NextRequest } from 'next/server';
|
|
7
|
+
export type DeparturesRouteHandlerOptions = {
|
|
8
|
+
/** GTFS agency ID (the host's Entur authority ID) to scope the query to. */
|
|
9
|
+
agencyId: string;
|
|
10
|
+
/** GCP project ID for BigQuery. */
|
|
11
|
+
projectId: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Creates a Next.js App Router API route handler for
|
|
15
|
+
* GET /api/contact/departures.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { createDeparturesRouteHandler } from '@mrfylke/contact-form/server';
|
|
20
|
+
* export const GET = createDeparturesRouteHandler({
|
|
21
|
+
* agencyId: 'INN:Authority:INN_ID',
|
|
22
|
+
* projectId: process.env.GOOGLE_CLOUD_PROJECT!,
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function createDeparturesRouteHandler(options: DeparturesRouteHandlerOptions): (request: NextRequest) => Promise<Response>;
|
|
27
|
+
//# sourceMappingURL=departures-route-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"departures-route-handler.d.ts","sourceRoot":"","sources":["../../src/server/departures-route-handler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA0B/C,MAAM,MAAM,6BAA6B,GAAG;IAC1C,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;GAYG;AAOH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,6BAA6B,GACrC,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CA6D7C"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Next.js App Router API route handler for the departures endpoint.
|
|
4
|
+
* Hosts mount this at their chosen path (e.g. /api/contact/departures) and
|
|
5
|
+
* supply the GTFS agency ID and (optionally) the GCP project ID for BigQuery.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.createDeparturesRouteHandler = createDeparturesRouteHandler;
|
|
9
|
+
const bigquery_1 = require("@google-cloud/bigquery");
|
|
10
|
+
const DEPARTURES_QUERY = `
|
|
11
|
+
SELECT DISTINCT
|
|
12
|
+
FORMAT_TIMESTAMP('%H:%M:%S', f.departure_time, 'Europe/Oslo') AS departure_time,
|
|
13
|
+
f.trip_id
|
|
14
|
+
FROM \`ent-data-sharing-ext-prd.timetable_gtfs.gtfs_last_recorded_ent_v1\` AS f
|
|
15
|
+
JOIN \`ent-data-sharing-ext-prd.timetable_gtfs.gtfs_last_recorded_ent_v1\` AS t
|
|
16
|
+
ON f.trip_id = t.trip_id
|
|
17
|
+
AND f.operating_date = t.operating_date
|
|
18
|
+
AND f.stop_sequence < t.stop_sequence
|
|
19
|
+
WHERE f.operating_date = CAST(@date AS DATE)
|
|
20
|
+
AND f.agency_id = @agencyId
|
|
21
|
+
AND f.route_id = @lineId
|
|
22
|
+
AND f.stop_id = @fromStopId
|
|
23
|
+
AND t.parent_station = (
|
|
24
|
+
SELECT parent_station
|
|
25
|
+
FROM \`ent-data-sharing-ext-prd.timetable_gtfs.gtfs_last_recorded_ent_v1\`
|
|
26
|
+
WHERE operating_date = CAST(@date AS DATE)
|
|
27
|
+
AND stop_id = @toStopId
|
|
28
|
+
LIMIT 1
|
|
29
|
+
)
|
|
30
|
+
ORDER BY departure_time ASC
|
|
31
|
+
LIMIT 1000
|
|
32
|
+
`;
|
|
33
|
+
/**
|
|
34
|
+
* Creates a Next.js App Router API route handler for
|
|
35
|
+
* GET /api/contact/departures.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* import { createDeparturesRouteHandler } from '@mrfylke/contact-form/server';
|
|
40
|
+
* export const GET = createDeparturesRouteHandler({
|
|
41
|
+
* agencyId: 'INN:Authority:INN_ID',
|
|
42
|
+
* projectId: process.env.GOOGLE_CLOUD_PROJECT!,
|
|
43
|
+
* });
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
// Deliberately returns a plain Response, built with Response.json(), rather
|
|
47
|
+
// than NextResponse from 'next/server': Turbopack strips a runtime
|
|
48
|
+
// `require("next/server")` from this package's compiled CJS output when
|
|
49
|
+
// consumed as a symlinked monorepo package
|
|
50
|
+
// (https://github.com/vercel/next.js/issues/74062), leaving NextResponse
|
|
51
|
+
// undefined at request time.
|
|
52
|
+
function createDeparturesRouteHandler(options) {
|
|
53
|
+
return async (request) => {
|
|
54
|
+
const date = request.nextUrl.searchParams.get('date');
|
|
55
|
+
const lineId = request.nextUrl.searchParams.get('lineId');
|
|
56
|
+
const fromStopId = request.nextUrl.searchParams.get('fromStopId');
|
|
57
|
+
const toStopId = request.nextUrl.searchParams.get('toStopId');
|
|
58
|
+
if (!date || !lineId || !fromStopId || !toStopId) {
|
|
59
|
+
return Response.json({
|
|
60
|
+
message: 'Missing required params: date, lineId, fromStopId, toStopId',
|
|
61
|
+
}, { status: 400 });
|
|
62
|
+
}
|
|
63
|
+
if (!/^\d{4}-\d{2}-\d{2}$/.test(date)) {
|
|
64
|
+
return Response.json({ message: 'Invalid date format, expected YYYY-MM-DD' }, { status: 400 });
|
|
65
|
+
}
|
|
66
|
+
if (!options.projectId) {
|
|
67
|
+
console.error('[contact-form] GOOGLE_CLOUD_PROJECT is not set');
|
|
68
|
+
return Response.json({ message: 'Failed to fetch departures' }, { status: 500 });
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
const bigquery = new bigquery_1.BigQuery({ projectId: options.projectId });
|
|
72
|
+
const [rows] = await bigquery.query({
|
|
73
|
+
query: DEPARTURES_QUERY,
|
|
74
|
+
params: {
|
|
75
|
+
date,
|
|
76
|
+
agencyId: options.agencyId,
|
|
77
|
+
lineId,
|
|
78
|
+
fromStopId,
|
|
79
|
+
toStopId,
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
const departures = rows.map((row) => ({
|
|
83
|
+
departureTime: row.departure_time,
|
|
84
|
+
tripId: row.trip_id,
|
|
85
|
+
}));
|
|
86
|
+
return Response.json({ departures });
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
console.error('[contact-form] BigQuery departures error:', error);
|
|
90
|
+
return Response.json({ message: 'Failed to fetch departures' }, { status: 500 });
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
}
|
package/lib/server/index.d.ts
CHANGED
|
@@ -7,4 +7,6 @@
|
|
|
7
7
|
export { getLines } from './journey-planner';
|
|
8
8
|
export { getEnturAuthorityId, EnturAuthority, } from './journey-planner/authority';
|
|
9
9
|
export { createLinesRouteHandler, type LinesRouteHandlerOptions, } from './lines-route-handler';
|
|
10
|
+
export { createDeparturesRouteHandler, type DeparturesRouteHandlerOptions, } from './departures-route-handler';
|
|
11
|
+
export { createSubmitRouteHandler, type SubmitRouteHandlerOptions, } from './submit-route-handler';
|
|
10
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EACL,mBAAmB,EACnB,cAAc,GACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,uBAAuB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EACL,mBAAmB,EACnB,cAAc,GACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,uBAAuB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAC5B,KAAK,6BAA6B,GACnC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,wBAAwB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,wBAAwB,CAAC"}
|
package/lib/server/index.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* API route handlers or server components.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.createLinesRouteHandler = exports.EnturAuthority = exports.getEnturAuthorityId = exports.getLines = void 0;
|
|
9
|
+
exports.createSubmitRouteHandler = exports.createDeparturesRouteHandler = exports.createLinesRouteHandler = exports.EnturAuthority = exports.getEnturAuthorityId = exports.getLines = void 0;
|
|
10
10
|
var journey_planner_1 = require("./journey-planner");
|
|
11
11
|
Object.defineProperty(exports, "getLines", { enumerable: true, get: function () { return journey_planner_1.getLines; } });
|
|
12
12
|
var authority_1 = require("./journey-planner/authority");
|
|
@@ -14,3 +14,7 @@ Object.defineProperty(exports, "getEnturAuthorityId", { enumerable: true, get: f
|
|
|
14
14
|
Object.defineProperty(exports, "EnturAuthority", { enumerable: true, get: function () { return authority_1.EnturAuthority; } });
|
|
15
15
|
var lines_route_handler_1 = require("./lines-route-handler");
|
|
16
16
|
Object.defineProperty(exports, "createLinesRouteHandler", { enumerable: true, get: function () { return lines_route_handler_1.createLinesRouteHandler; } });
|
|
17
|
+
var departures_route_handler_1 = require("./departures-route-handler");
|
|
18
|
+
Object.defineProperty(exports, "createDeparturesRouteHandler", { enumerable: true, get: function () { return departures_route_handler_1.createDeparturesRouteHandler; } });
|
|
19
|
+
var submit_route_handler_1 = require("./submit-route-handler");
|
|
20
|
+
Object.defineProperty(exports, "createSubmitRouteHandler", { enumerable: true, get: function () { return submit_route_handler_1.createSubmitRouteHandler; } });
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* The package reads the Entur authority ID from:
|
|
5
5
|
* 1. Environment variable: ENTUR_AUTHORITY_ID (or NEXT_PUBLIC_ENTUR_AUTHORITY_ID)
|
|
6
|
-
* 2.
|
|
6
|
+
* 2. An optional fallback passed in by the caller
|
|
7
7
|
*
|
|
8
8
|
* Host apps should set ENTUR_AUTHORITY_ID in their .env file.
|
|
9
9
|
*/
|
|
@@ -18,7 +18,7 @@ export declare enum EnturAuthority {
|
|
|
18
18
|
/**
|
|
19
19
|
* Get the Entur authority ID from environment variable or fallback.
|
|
20
20
|
*
|
|
21
|
-
* @param fallbackAuthorityId - Optional fallback
|
|
21
|
+
* @param fallbackAuthorityId - Optional fallback provided by the caller
|
|
22
22
|
* @returns The authority ID string
|
|
23
23
|
* @throws Error if neither env var nor fallback is provided
|
|
24
24
|
*/
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* The package reads the Entur authority ID from:
|
|
6
6
|
* 1. Environment variable: ENTUR_AUTHORITY_ID (or NEXT_PUBLIC_ENTUR_AUTHORITY_ID)
|
|
7
|
-
* 2.
|
|
7
|
+
* 2. An optional fallback passed in by the caller
|
|
8
8
|
*
|
|
9
9
|
* Host apps should set ENTUR_AUTHORITY_ID in their .env file.
|
|
10
10
|
*/
|
|
@@ -24,7 +24,7 @@ let cachedAuthorityId = null;
|
|
|
24
24
|
/**
|
|
25
25
|
* Get the Entur authority ID from environment variable or fallback.
|
|
26
26
|
*
|
|
27
|
-
* @param fallbackAuthorityId - Optional fallback
|
|
27
|
+
* @param fallbackAuthorityId - Optional fallback provided by the caller
|
|
28
28
|
* @returns The authority ID string
|
|
29
29
|
* @throws Error if neither env var nor fallback is provided
|
|
30
30
|
*/
|
|
@@ -44,5 +44,5 @@ function getEnturAuthorityId(fallbackAuthorityId) {
|
|
|
44
44
|
}
|
|
45
45
|
throw new Error('ENTUR_AUTHORITY_ID environment variable must be set. ' +
|
|
46
46
|
'Set it in your .env file (e.g., ENTUR_AUTHORITY_ID=ATB:Authority:2) ' +
|
|
47
|
-
'or provide
|
|
47
|
+
'or provide a fallback authority ID.');
|
|
48
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/journey-planner/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAe,MAAM,cAAc,CAAC;AAgBjD;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/journey-planner/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAe,MAAM,cAAc,CAAC;AAgBjD;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CA8D5E"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getLines = getLines;
|
|
4
4
|
const lines_generated_1 = require("./journey-gql/lines.generated");
|
|
5
5
|
const validators_1 = require("./validators");
|
|
6
|
-
const
|
|
6
|
+
const utils_1 = require("../../modules/transport-mode/utils");
|
|
7
7
|
const entur_client_1 = require("./entur-client");
|
|
8
8
|
const authority_1 = require("./authority");
|
|
9
9
|
/**
|
|
@@ -26,21 +26,20 @@ async function getLines(fallbackAuthorityId) {
|
|
|
26
26
|
if (result.error || result.errors) {
|
|
27
27
|
throw result.error || result.errors;
|
|
28
28
|
}
|
|
29
|
-
const data = result.data.lines.map((line) => ({
|
|
29
|
+
const data = (result.data.lines ?? []).map((line) => ({
|
|
30
30
|
id: line.id,
|
|
31
31
|
name: line.name ?? '',
|
|
32
32
|
publicCode: line.publicCode ?? null,
|
|
33
|
-
transportMode: (0,
|
|
33
|
+
transportMode: (0, utils_1.isTransportModeType)(line.transportMode)
|
|
34
34
|
? line.transportMode
|
|
35
35
|
: null,
|
|
36
|
-
transportSubmode: (0,
|
|
36
|
+
transportSubmode: (0, utils_1.isTransportSubmodeType)(line.transportSubmode)
|
|
37
37
|
? line.transportSubmode
|
|
38
38
|
: null,
|
|
39
|
-
quays: line.quays
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
sensitivity: 'base',
|
|
39
|
+
quays: line.quays.map((quay) => ({
|
|
40
|
+
id: quay.id,
|
|
41
|
+
name: quay.name,
|
|
42
|
+
description: quay.description ?? null,
|
|
44
43
|
})),
|
|
45
44
|
}));
|
|
46
45
|
const validated = validators_1.linesSchema.safeParse(data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lines.generated.d.ts","sourceRoot":"","sources":["../../../../src/server/journey-planner/journey-gql/lines.generated.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kEAAkE,CAAC;AAE1F,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,KAAK,CAAC;IAC5C,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;CAC7C,CAAC,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QACpC,gBAAgB,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC;QAC1C,KAAK,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"lines.generated.d.ts","sourceRoot":"","sources":["../../../../src/server/journey-planner/journey-gql/lines.generated.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kEAAkE,CAAC;AAE1F,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,KAAK,CAAC;IAC5C,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;CAC7C,CAAC,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QACpC,gBAAgB,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC;QAC1C,KAAK,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClE,CAAC,CAAC;CACJ,CAAC;AAEF,eAAO,MAAM,aAAa,cAezB,CAAC;AACF,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EACxD,GAAG,EAAE,YAAY,EACjB,IAAI,CAAC,EAAE,CAAC,EACR,OAAO,CAAC,EAAE,CAAC,KACR,OAAO,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAEnC,wBAAgB,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;qBAE5B,mBAAmB,YAAY,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;EAQ1E;AAED,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC"}
|
|
@@ -3,8 +3,8 @@ export declare const lineSchema: z.ZodObject<{
|
|
|
3
3
|
id: z.ZodString;
|
|
4
4
|
name: z.ZodString;
|
|
5
5
|
publicCode: z.ZodNullable<z.ZodString>;
|
|
6
|
-
transportMode: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<"
|
|
7
|
-
transportSubmode: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<"SchengenAreaFlight">, z.ZodLiteral<"airportBoatLink">, z.ZodLiteral<"airportLinkBus">, z.ZodLiteral<"airportLinkRail">, z.ZodLiteral<"airshipService">, z.ZodLiteral<"allFunicularServices">, z.ZodLiteral<"allHireVehicles">, z.ZodLiteral<"allTaxiServices">, z.ZodLiteral<"bikeTaxi">, z.ZodLiteral<"blackCab">, z.ZodLiteral<"cableCar">, z.ZodLiteral<"cableFerry">, z.ZodLiteral<"canalBarge">, z.ZodLiteral<"carTransportRailService">, z.ZodLiteral<"chairLift">, z.ZodLiteral<"charterTaxi">, z.ZodLiteral<"cityTram">, z.ZodLiteral<"communalTaxi">, z.ZodLiteral<"commuterCoach">, z.ZodLiteral<"crossCountryRail">, z.ZodLiteral<"dedicatedLaneBus">, z.ZodLiteral<"demandAndResponseBus">, z.ZodLiteral<"domesticCharterFlight">, z.ZodLiteral<"domesticFlight">, z.ZodLiteral<"domesticScheduledFlight">, z.ZodLiteral<"dragLift">, z.ZodLiteral<"
|
|
6
|
+
transportMode: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<"bicycle">, z.ZodLiteral<"foot">, z.ZodLiteral<"scooter">, z.ZodLiteral<"air">, z.ZodLiteral<"bus">, z.ZodLiteral<"cableway">, z.ZodLiteral<"car">, z.ZodLiteral<"carpool">, z.ZodLiteral<"coach">, z.ZodLiteral<"funicular">, z.ZodLiteral<"lift">, z.ZodLiteral<"metro">, z.ZodLiteral<"monorail">, z.ZodLiteral<"rail">, z.ZodLiteral<"taxi">, z.ZodLiteral<"tram">, z.ZodLiteral<"trolleybus">, z.ZodLiteral<"snowAndIce">, z.ZodLiteral<"unknown">, z.ZodLiteral<"water">]>>;
|
|
7
|
+
transportSubmode: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<"escooter">, z.ZodLiteral<"ebicycle">, z.ZodLiteral<"SchengenAreaFlight">, z.ZodLiteral<"airportBoatLink">, z.ZodLiteral<"airportLinkBus">, z.ZodLiteral<"airportLinkRail">, z.ZodLiteral<"airshipService">, z.ZodLiteral<"allFunicularServices">, z.ZodLiteral<"allHireVehicles">, z.ZodLiteral<"allTaxiServices">, z.ZodLiteral<"bikeTaxi">, z.ZodLiteral<"blackCab">, z.ZodLiteral<"cableCar">, z.ZodLiteral<"cableFerry">, z.ZodLiteral<"canalBarge">, z.ZodLiteral<"carTransportRailService">, z.ZodLiteral<"chairLift">, z.ZodLiteral<"charterTaxi">, z.ZodLiteral<"cityTram">, z.ZodLiteral<"communalTaxi">, z.ZodLiteral<"commuterCoach">, z.ZodLiteral<"crossCountryRail">, z.ZodLiteral<"dedicatedLaneBus">, z.ZodLiteral<"demandAndResponseBus">, z.ZodLiteral<"domesticCharterFlight">, z.ZodLiteral<"domesticFlight">, z.ZodLiteral<"domesticScheduledFlight">, z.ZodLiteral<"dragLift">, z.ZodLiteral<"expressBus">, z.ZodLiteral<"funicular">, z.ZodLiteral<"helicopterService">, z.ZodLiteral<"highFrequencyBus">, z.ZodLiteral<"highSpeedPassengerService">, z.ZodLiteral<"highSpeedRail">, z.ZodLiteral<"highSpeedVehicleService">, z.ZodLiteral<"hireCar">, z.ZodLiteral<"hireCycle">, z.ZodLiteral<"hireMotorbike">, z.ZodLiteral<"hireVan">, z.ZodLiteral<"intercontinentalCharterFlight">, z.ZodLiteral<"intercontinentalFlight">, z.ZodLiteral<"international">, z.ZodLiteral<"internationalCarFerry">, z.ZodLiteral<"internationalCharterFlight">, z.ZodLiteral<"internationalCoach">, z.ZodLiteral<"internationalFlight">, z.ZodLiteral<"internationalPassengerFerry">, z.ZodLiteral<"interregionalRail">, z.ZodLiteral<"lift">, z.ZodLiteral<"local">, z.ZodLiteral<"localBus">, z.ZodLiteral<"localCarFerry">, z.ZodLiteral<"localPassengerFerry">, z.ZodLiteral<"localTram">, z.ZodLiteral<"longDistance">, z.ZodLiteral<"metro">, z.ZodLiteral<"miniCab">, z.ZodLiteral<"mobilityBus">, z.ZodLiteral<"mobilityBusForRegisteredDisabled">, z.ZodLiteral<"nationalCarFerry">, z.ZodLiteral<"nationalCoach">, z.ZodLiteral<"nationalPassengerFerry">, z.ZodLiteral<"nightBus">, z.ZodLiteral<"nightRail">, z.ZodLiteral<"postBoat">, z.ZodLiteral<"postBus">, z.ZodLiteral<"rackAndPinionRailway">, z.ZodLiteral<"railReplacementBus">, z.ZodLiteral<"railShuttle">, z.ZodLiteral<"railTaxi">, z.ZodLiteral<"regionalBus">, z.ZodLiteral<"regionalCarFerry">, z.ZodLiteral<"regionalCoach">, z.ZodLiteral<"regionalPassengerFerry">, z.ZodLiteral<"regionalRail">, z.ZodLiteral<"regionalTram">, z.ZodLiteral<"replacementRailService">, z.ZodLiteral<"riverBus">, z.ZodLiteral<"roadFerryLink">, z.ZodLiteral<"roundTripCharterFlight">, z.ZodLiteral<"scheduledFerry">, z.ZodLiteral<"schoolAndPublicServiceBus">, z.ZodLiteral<"schoolBoat">, z.ZodLiteral<"schoolBus">, z.ZodLiteral<"schoolCoach">, z.ZodLiteral<"shortHaulInternationalFlight">, z.ZodLiteral<"shuttleBus">, z.ZodLiteral<"shuttleCoach">, z.ZodLiteral<"shuttleFerryService">, z.ZodLiteral<"shuttleFlight">, z.ZodLiteral<"shuttleTram">, z.ZodLiteral<"sightseeingBus">, z.ZodLiteral<"sightseeingCoach">, z.ZodLiteral<"sightseeingFlight">, z.ZodLiteral<"sightseeingService">, z.ZodLiteral<"sightseeingTram">, z.ZodLiteral<"sleeperRailService">, z.ZodLiteral<"specialCoach">, z.ZodLiteral<"specialNeedsBus">, z.ZodLiteral<"specialTrain">, z.ZodLiteral<"streetCableCar">, z.ZodLiteral<"suburbanRailway">, z.ZodLiteral<"telecabin">, z.ZodLiteral<"telecabinLink">, z.ZodLiteral<"touristCoach">, z.ZodLiteral<"touristRailway">, z.ZodLiteral<"trainFerry">, z.ZodLiteral<"trainTram">, z.ZodLiteral<"tube">, z.ZodLiteral<"undefined">, z.ZodLiteral<"undefinedFunicular">, z.ZodLiteral<"unknown">, z.ZodLiteral<"urbanRailway">, z.ZodLiteral<"waterTaxi">]>>;
|
|
8
8
|
quays: z.ZodArray<z.ZodObject<{
|
|
9
9
|
id: z.ZodString;
|
|
10
10
|
name: z.ZodString;
|
|
@@ -15,8 +15,8 @@ export declare const linesSchema: z.ZodArray<z.ZodObject<{
|
|
|
15
15
|
id: z.ZodString;
|
|
16
16
|
name: z.ZodString;
|
|
17
17
|
publicCode: z.ZodNullable<z.ZodString>;
|
|
18
|
-
transportMode: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<"
|
|
19
|
-
transportSubmode: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<"SchengenAreaFlight">, z.ZodLiteral<"airportBoatLink">, z.ZodLiteral<"airportLinkBus">, z.ZodLiteral<"airportLinkRail">, z.ZodLiteral<"airshipService">, z.ZodLiteral<"allFunicularServices">, z.ZodLiteral<"allHireVehicles">, z.ZodLiteral<"allTaxiServices">, z.ZodLiteral<"bikeTaxi">, z.ZodLiteral<"blackCab">, z.ZodLiteral<"cableCar">, z.ZodLiteral<"cableFerry">, z.ZodLiteral<"canalBarge">, z.ZodLiteral<"carTransportRailService">, z.ZodLiteral<"chairLift">, z.ZodLiteral<"charterTaxi">, z.ZodLiteral<"cityTram">, z.ZodLiteral<"communalTaxi">, z.ZodLiteral<"commuterCoach">, z.ZodLiteral<"crossCountryRail">, z.ZodLiteral<"dedicatedLaneBus">, z.ZodLiteral<"demandAndResponseBus">, z.ZodLiteral<"domesticCharterFlight">, z.ZodLiteral<"domesticFlight">, z.ZodLiteral<"domesticScheduledFlight">, z.ZodLiteral<"dragLift">, z.ZodLiteral<"
|
|
18
|
+
transportMode: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<"bicycle">, z.ZodLiteral<"foot">, z.ZodLiteral<"scooter">, z.ZodLiteral<"air">, z.ZodLiteral<"bus">, z.ZodLiteral<"cableway">, z.ZodLiteral<"car">, z.ZodLiteral<"carpool">, z.ZodLiteral<"coach">, z.ZodLiteral<"funicular">, z.ZodLiteral<"lift">, z.ZodLiteral<"metro">, z.ZodLiteral<"monorail">, z.ZodLiteral<"rail">, z.ZodLiteral<"taxi">, z.ZodLiteral<"tram">, z.ZodLiteral<"trolleybus">, z.ZodLiteral<"snowAndIce">, z.ZodLiteral<"unknown">, z.ZodLiteral<"water">]>>;
|
|
19
|
+
transportSubmode: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<"escooter">, z.ZodLiteral<"ebicycle">, z.ZodLiteral<"SchengenAreaFlight">, z.ZodLiteral<"airportBoatLink">, z.ZodLiteral<"airportLinkBus">, z.ZodLiteral<"airportLinkRail">, z.ZodLiteral<"airshipService">, z.ZodLiteral<"allFunicularServices">, z.ZodLiteral<"allHireVehicles">, z.ZodLiteral<"allTaxiServices">, z.ZodLiteral<"bikeTaxi">, z.ZodLiteral<"blackCab">, z.ZodLiteral<"cableCar">, z.ZodLiteral<"cableFerry">, z.ZodLiteral<"canalBarge">, z.ZodLiteral<"carTransportRailService">, z.ZodLiteral<"chairLift">, z.ZodLiteral<"charterTaxi">, z.ZodLiteral<"cityTram">, z.ZodLiteral<"communalTaxi">, z.ZodLiteral<"commuterCoach">, z.ZodLiteral<"crossCountryRail">, z.ZodLiteral<"dedicatedLaneBus">, z.ZodLiteral<"demandAndResponseBus">, z.ZodLiteral<"domesticCharterFlight">, z.ZodLiteral<"domesticFlight">, z.ZodLiteral<"domesticScheduledFlight">, z.ZodLiteral<"dragLift">, z.ZodLiteral<"expressBus">, z.ZodLiteral<"funicular">, z.ZodLiteral<"helicopterService">, z.ZodLiteral<"highFrequencyBus">, z.ZodLiteral<"highSpeedPassengerService">, z.ZodLiteral<"highSpeedRail">, z.ZodLiteral<"highSpeedVehicleService">, z.ZodLiteral<"hireCar">, z.ZodLiteral<"hireCycle">, z.ZodLiteral<"hireMotorbike">, z.ZodLiteral<"hireVan">, z.ZodLiteral<"intercontinentalCharterFlight">, z.ZodLiteral<"intercontinentalFlight">, z.ZodLiteral<"international">, z.ZodLiteral<"internationalCarFerry">, z.ZodLiteral<"internationalCharterFlight">, z.ZodLiteral<"internationalCoach">, z.ZodLiteral<"internationalFlight">, z.ZodLiteral<"internationalPassengerFerry">, z.ZodLiteral<"interregionalRail">, z.ZodLiteral<"lift">, z.ZodLiteral<"local">, z.ZodLiteral<"localBus">, z.ZodLiteral<"localCarFerry">, z.ZodLiteral<"localPassengerFerry">, z.ZodLiteral<"localTram">, z.ZodLiteral<"longDistance">, z.ZodLiteral<"metro">, z.ZodLiteral<"miniCab">, z.ZodLiteral<"mobilityBus">, z.ZodLiteral<"mobilityBusForRegisteredDisabled">, z.ZodLiteral<"nationalCarFerry">, z.ZodLiteral<"nationalCoach">, z.ZodLiteral<"nationalPassengerFerry">, z.ZodLiteral<"nightBus">, z.ZodLiteral<"nightRail">, z.ZodLiteral<"postBoat">, z.ZodLiteral<"postBus">, z.ZodLiteral<"rackAndPinionRailway">, z.ZodLiteral<"railReplacementBus">, z.ZodLiteral<"railShuttle">, z.ZodLiteral<"railTaxi">, z.ZodLiteral<"regionalBus">, z.ZodLiteral<"regionalCarFerry">, z.ZodLiteral<"regionalCoach">, z.ZodLiteral<"regionalPassengerFerry">, z.ZodLiteral<"regionalRail">, z.ZodLiteral<"regionalTram">, z.ZodLiteral<"replacementRailService">, z.ZodLiteral<"riverBus">, z.ZodLiteral<"roadFerryLink">, z.ZodLiteral<"roundTripCharterFlight">, z.ZodLiteral<"scheduledFerry">, z.ZodLiteral<"schoolAndPublicServiceBus">, z.ZodLiteral<"schoolBoat">, z.ZodLiteral<"schoolBus">, z.ZodLiteral<"schoolCoach">, z.ZodLiteral<"shortHaulInternationalFlight">, z.ZodLiteral<"shuttleBus">, z.ZodLiteral<"shuttleCoach">, z.ZodLiteral<"shuttleFerryService">, z.ZodLiteral<"shuttleFlight">, z.ZodLiteral<"shuttleTram">, z.ZodLiteral<"sightseeingBus">, z.ZodLiteral<"sightseeingCoach">, z.ZodLiteral<"sightseeingFlight">, z.ZodLiteral<"sightseeingService">, z.ZodLiteral<"sightseeingTram">, z.ZodLiteral<"sleeperRailService">, z.ZodLiteral<"specialCoach">, z.ZodLiteral<"specialNeedsBus">, z.ZodLiteral<"specialTrain">, z.ZodLiteral<"streetCableCar">, z.ZodLiteral<"suburbanRailway">, z.ZodLiteral<"telecabin">, z.ZodLiteral<"telecabinLink">, z.ZodLiteral<"touristCoach">, z.ZodLiteral<"touristRailway">, z.ZodLiteral<"trainFerry">, z.ZodLiteral<"trainTram">, z.ZodLiteral<"tube">, z.ZodLiteral<"undefined">, z.ZodLiteral<"undefinedFunicular">, z.ZodLiteral<"unknown">, z.ZodLiteral<"urbanRailway">, z.ZodLiteral<"waterTaxi">]>>;
|
|
20
20
|
quays: z.ZodArray<z.ZodObject<{
|
|
21
21
|
id: z.ZodString;
|
|
22
22
|
name: z.ZodString;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.linesSchema = exports.lineSchema = void 0;
|
|
4
|
-
const
|
|
4
|
+
const types_1 = require("../../modules/transport-mode/types");
|
|
5
5
|
const zod_1 = require("zod");
|
|
6
6
|
exports.lineSchema = zod_1.z.object({
|
|
7
7
|
id: zod_1.z.string(),
|
|
8
8
|
name: zod_1.z.string(),
|
|
9
9
|
publicCode: zod_1.z.string().nullable(),
|
|
10
|
-
transportMode:
|
|
11
|
-
transportSubmode:
|
|
10
|
+
transportMode: types_1.transportModeSchema.nullable(),
|
|
11
|
+
transportSubmode: types_1.transportSubmodeSchema.nullable(),
|
|
12
12
|
quays: zod_1.z.array(zod_1.z.object({
|
|
13
13
|
id: zod_1.z.string(),
|
|
14
14
|
name: zod_1.z.string(),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Next.js API route handler for the lines endpoint.
|
|
2
|
+
* Next.js App Router API route handler for the lines endpoint.
|
|
3
3
|
* Hosts mount this at their chosen path (e.g. /api/contact/lines) and supply
|
|
4
4
|
* the region/authority prefix only.
|
|
5
5
|
*/
|
|
@@ -11,35 +11,24 @@ export type LinesRouteHandlerOptions = {
|
|
|
11
11
|
*/
|
|
12
12
|
getAuthorityId?: () => string | Promise<string>;
|
|
13
13
|
};
|
|
14
|
-
type NextApiResponseLike = {
|
|
15
|
-
status(code: number): {
|
|
16
|
-
json(body: unknown): void;
|
|
17
|
-
};
|
|
18
|
-
json(body: unknown): void;
|
|
19
|
-
};
|
|
20
|
-
type NextApiRequestLike = {
|
|
21
|
-
method?: string;
|
|
22
|
-
};
|
|
23
14
|
/**
|
|
24
|
-
* Creates a Next.js API route handler for GET /api/contact/lines.
|
|
15
|
+
* Creates a Next.js App Router API route handler for GET /api/contact/lines.
|
|
25
16
|
* The handler fetches lines from Entur for the given authority; the host
|
|
26
17
|
* only supplies the region/authority prefix via getAuthorityId or env.
|
|
27
18
|
*
|
|
28
19
|
* @example With env-based authority (host sets ENTUR_AUTHORITY_ID):
|
|
29
20
|
* ```ts
|
|
30
21
|
* import { createLinesRouteHandler } from '@mrfylke/contact-form/server';
|
|
31
|
-
* export
|
|
22
|
+
* export const GET = createLinesRouteHandler();
|
|
32
23
|
* ```
|
|
33
24
|
*
|
|
34
|
-
* @example With app-provided authority
|
|
25
|
+
* @example With app-provided authority:
|
|
35
26
|
* ```ts
|
|
36
27
|
* import { createLinesRouteHandler } from '@mrfylke/contact-form/server';
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* getAuthorityId: () => getOrgData().authorityId,
|
|
28
|
+
* export const GET = createLinesRouteHandler({
|
|
29
|
+
* getAuthorityId: () => 'ATB:Authority:2',
|
|
40
30
|
* });
|
|
41
31
|
* ```
|
|
42
32
|
*/
|
|
43
|
-
export declare function createLinesRouteHandler(options?: LinesRouteHandlerOptions): (
|
|
44
|
-
export {};
|
|
33
|
+
export declare function createLinesRouteHandler(options?: LinesRouteHandlerOptions): () => Promise<Response>;
|
|
45
34
|
//# sourceMappingURL=lines-route-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lines-route-handler.d.ts","sourceRoot":"","sources":["../../src/server/lines-route-handler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,MAAM,wBAAwB,GAAG;IACrC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjD,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"lines-route-handler.d.ts","sourceRoot":"","sources":["../../src/server/lines-route-handler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,MAAM,wBAAwB,GAAG;IACrC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjD,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AAOH,wBAAgB,uBAAuB,CACrC,OAAO,CAAC,EAAE,wBAAwB,GACjC,MAAM,OAAO,CAAC,QAAQ,CAAC,CAqBzB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Next.js API route handler for the lines endpoint.
|
|
3
|
+
* Next.js App Router API route handler for the lines endpoint.
|
|
4
4
|
* Hosts mount this at their chosen path (e.g. /api/contact/lines) and supply
|
|
5
5
|
* the region/authority prefix only.
|
|
6
6
|
*/
|
|
@@ -9,31 +9,32 @@ exports.createLinesRouteHandler = createLinesRouteHandler;
|
|
|
9
9
|
const journey_planner_1 = require("./journey-planner");
|
|
10
10
|
const authority_1 = require("./journey-planner/authority");
|
|
11
11
|
/**
|
|
12
|
-
* Creates a Next.js API route handler for GET /api/contact/lines.
|
|
12
|
+
* Creates a Next.js App Router API route handler for GET /api/contact/lines.
|
|
13
13
|
* The handler fetches lines from Entur for the given authority; the host
|
|
14
14
|
* only supplies the region/authority prefix via getAuthorityId or env.
|
|
15
15
|
*
|
|
16
16
|
* @example With env-based authority (host sets ENTUR_AUTHORITY_ID):
|
|
17
17
|
* ```ts
|
|
18
18
|
* import { createLinesRouteHandler } from '@mrfylke/contact-form/server';
|
|
19
|
-
* export
|
|
19
|
+
* export const GET = createLinesRouteHandler();
|
|
20
20
|
* ```
|
|
21
21
|
*
|
|
22
|
-
* @example With app-provided authority
|
|
22
|
+
* @example With app-provided authority:
|
|
23
23
|
* ```ts
|
|
24
24
|
* import { createLinesRouteHandler } from '@mrfylke/contact-form/server';
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* getAuthorityId: () => getOrgData().authorityId,
|
|
25
|
+
* export const GET = createLinesRouteHandler({
|
|
26
|
+
* getAuthorityId: () => 'ATB:Authority:2',
|
|
28
27
|
* });
|
|
29
28
|
* ```
|
|
30
29
|
*/
|
|
30
|
+
// Deliberately returns a plain Response, built with Response.json(), rather
|
|
31
|
+
// than NextResponse from 'next/server': Turbopack strips a runtime
|
|
32
|
+
// `require("next/server")` from this package's compiled CJS output when
|
|
33
|
+
// consumed as a symlinked monorepo package
|
|
34
|
+
// (https://github.com/vercel/next.js/issues/74062), leaving NextResponse
|
|
35
|
+
// undefined at request time.
|
|
31
36
|
function createLinesRouteHandler(options) {
|
|
32
|
-
return async (
|
|
33
|
-
if (req.method !== 'GET') {
|
|
34
|
-
res.status(405).json({ error: 'Method not allowed' });
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
+
return async () => {
|
|
37
38
|
try {
|
|
38
39
|
let authorityId;
|
|
39
40
|
if (options?.getAuthorityId) {
|
|
@@ -44,14 +45,11 @@ function createLinesRouteHandler(options) {
|
|
|
44
45
|
authorityId = (0, authority_1.getEnturAuthorityId)();
|
|
45
46
|
}
|
|
46
47
|
const lines = await (0, journey_planner_1.getLines)(authorityId);
|
|
47
|
-
|
|
48
|
+
return Response.json(lines);
|
|
48
49
|
}
|
|
49
50
|
catch (err) {
|
|
50
51
|
console.error('[contact-form] lines API error:', err);
|
|
51
|
-
|
|
52
|
-
error: 'Failed to fetch lines',
|
|
53
|
-
message: err instanceof Error ? err.message : String(err),
|
|
54
|
-
});
|
|
52
|
+
return Response.json({ message: 'Failed to fetch lines' }, { status: 500 });
|
|
55
53
|
}
|
|
56
54
|
};
|
|
57
55
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Next.js App Router handler for POST /api/contact/submit. Reads `$slug`
|
|
3
|
+
* from the JSON body, validates it, and forwards the rest of the body to the
|
|
4
|
+
* connector at that path via `request`.
|
|
5
|
+
*/
|
|
6
|
+
export type SubmitRouteHandlerOptions = {
|
|
7
|
+
/** Sends a request to the org's connector for the given slug path and body. */
|
|
8
|
+
request: (path: `/${string}`, init: RequestInit) => Promise<Response>;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { createSubmitRouteHandler } from '@mrfylke/contact-form/server';
|
|
14
|
+
* export const POST = createSubmitRouteHandler({
|
|
15
|
+
* request: (path, init) => fetch(`${process.env.CONNECTOR_URL}${path}`, init),
|
|
16
|
+
* });
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare function createSubmitRouteHandler(options: SubmitRouteHandlerOptions): (request: Request) => Promise<Response>;
|
|
20
|
+
//# sourceMappingURL=submit-route-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submit-route-handler.d.ts","sourceRoot":"","sources":["../../src/server/submit-route-handler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,yBAAyB,GAAG;IACtC,+EAA+E;IAC/E,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACvE,CAAC;AAEF;;;;;;;;GAQG;AAIH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,yBAAyB,GACjC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CA4CzC"}
|