@underpeaks/generator-nextjs 1.0.47 → 1.0.49
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/components/boolean/display/nxf_icon_check.js +5 -5
- package/dist/components/boolean/display/nxf_icon_check.js.map +1 -1
- package/dist/components/boolean/edit/nxf_checkbox.d.ts.map +1 -1
- package/dist/components/boolean/edit/nxf_checkbox.js +7 -8
- package/dist/components/boolean/edit/nxf_checkbox.js.map +1 -1
- package/dist/components/boolean/edit/nxf_radio_yes_no.d.ts.map +1 -1
- package/dist/components/boolean/edit/nxf_radio_yes_no.js +19 -12
- package/dist/components/boolean/edit/nxf_radio_yes_no.js.map +1 -1
- package/dist/components/boolean/edit/nxf_switch.d.ts.map +1 -1
- package/dist/components/boolean/edit/nxf_switch.js +5 -14
- package/dist/components/boolean/edit/nxf_switch.js.map +1 -1
- package/dist/components/boolean/edit/nxf_toggle.d.ts.map +1 -1
- package/dist/components/boolean/edit/nxf_toggle.js +5 -14
- package/dist/components/boolean/edit/nxf_toggle.js.map +1 -1
- package/dist/components/choice/display/nxf_checklist_display.d.ts.map +1 -1
- package/dist/components/choice/display/nxf_checklist_display.js +5 -3
- package/dist/components/choice/display/nxf_checklist_display.js.map +1 -1
- package/dist/components/choice/display/nxf_chip.d.ts.map +1 -1
- package/dist/components/choice/display/nxf_chip.js +3 -5
- package/dist/components/choice/display/nxf_chip.js.map +1 -1
- package/dist/components/choice/display/nxf_chip_list.js +4 -4
- package/dist/components/choice/display/nxf_chip_list.js.map +1 -1
- package/dist/components/choice/display/nxf_dropdown_display.js +1 -1
- package/dist/components/choice/display/nxf_dropdown_display.js.map +1 -1
- package/dist/components/choice/display/nxf_radio_display.js +1 -1
- package/dist/components/choice/display/nxf_radio_display.js.map +1 -1
- package/dist/components/choice/display/nxf_text_button.d.ts.map +1 -1
- package/dist/components/choice/display/nxf_text_button.js +4 -2
- package/dist/components/choice/display/nxf_text_button.js.map +1 -1
- package/dist/components/choice/edit/nxf_autocomplete.d.ts.map +1 -1
- package/dist/components/choice/edit/nxf_autocomplete.js +10 -9
- package/dist/components/choice/edit/nxf_autocomplete.js.map +1 -1
- package/dist/components/choice/edit/nxf_checkbox_group.d.ts.map +1 -1
- package/dist/components/choice/edit/nxf_checkbox_group.js +11 -8
- package/dist/components/choice/edit/nxf_checkbox_group.js.map +1 -1
- package/dist/components/choice/edit/nxf_multi_select.d.ts.map +1 -1
- package/dist/components/choice/edit/nxf_multi_select.js +11 -10
- package/dist/components/choice/edit/nxf_multi_select.js.map +1 -1
- package/dist/components/choice/edit/nxf_radio.js +13 -13
- package/dist/components/choice/edit/nxf_radio.js.map +1 -1
- package/dist/components/choice/edit/nxf_select.d.ts.map +1 -1
- package/dist/components/choice/edit/nxf_select.js +21 -15
- package/dist/components/choice/edit/nxf_select.js.map +1 -1
- package/dist/components/datetime/display/nxf_formatted_date.js +2 -2
- package/dist/components/datetime/display/nxf_formatted_date.js.map +1 -1
- package/dist/components/datetime/display/nxf_formatted_date_range.js +2 -2
- package/dist/components/datetime/display/nxf_formatted_date_range.js.map +1 -1
- package/dist/components/datetime/display/nxf_formatted_datetime.js +2 -2
- package/dist/components/datetime/display/nxf_formatted_datetime.js.map +1 -1
- package/dist/components/datetime/display/nxf_formatted_time.js +1 -1
- package/dist/components/datetime/display/nxf_formatted_time.js.map +1 -1
- package/dist/components/datetime/display/nxf_relative_time.js +1 -1
- package/dist/components/datetime/display/nxf_relative_time.js.map +1 -1
- package/dist/components/datetime/edit/nxf_date_picker.d.ts.map +1 -1
- package/dist/components/datetime/edit/nxf_date_picker.js +9 -7
- package/dist/components/datetime/edit/nxf_date_picker.js.map +1 -1
- package/dist/components/datetime/edit/nxf_date_range_picker.d.ts.map +1 -1
- package/dist/components/datetime/edit/nxf_date_range_picker.js +12 -10
- package/dist/components/datetime/edit/nxf_date_range_picker.js.map +1 -1
- package/dist/components/datetime/edit/nxf_datetime_picker.js +7 -7
- package/dist/components/datetime/edit/nxf_datetime_picker.js.map +1 -1
- package/dist/components/datetime/edit/nxf_month_picker.js +7 -7
- package/dist/components/datetime/edit/nxf_month_picker.js.map +1 -1
- package/dist/components/datetime/edit/nxf_relative_date_input.d.ts.map +1 -1
- package/dist/components/datetime/edit/nxf_relative_date_input.js +7 -4
- package/dist/components/datetime/edit/nxf_relative_date_input.js.map +1 -1
- package/dist/components/datetime/edit/nxf_time_picker.js +7 -7
- package/dist/components/datetime/edit/nxf_time_picker.js.map +1 -1
- package/dist/components/datetime/edit/nxf_week_picker.d.ts.map +1 -1
- package/dist/components/datetime/edit/nxf_week_picker.js +9 -8
- package/dist/components/datetime/edit/nxf_week_picker.js.map +1 -1
- package/dist/components/documents/display/nxf_file_download_link.d.ts.map +1 -1
- package/dist/components/documents/display/nxf_file_download_link.js +5 -3
- package/dist/components/documents/display/nxf_file_download_link.js.map +1 -1
- package/dist/components/documents/edit/nxf_document_upload.d.ts.map +1 -1
- package/dist/components/documents/edit/nxf_document_upload.js +13 -15
- package/dist/components/documents/edit/nxf_document_upload.js.map +1 -1
- package/dist/components/documents/edit/nxf_file_upload.d.ts.map +1 -1
- package/dist/components/documents/edit/nxf_file_upload.js +12 -14
- package/dist/components/documents/edit/nxf_file_upload.js.map +1 -1
- package/dist/components/files/edit/nxf_file_list_upload.d.ts.map +1 -1
- package/dist/components/files/edit/nxf_file_list_upload.js +8 -9
- package/dist/components/files/edit/nxf_file_list_upload.js.map +1 -1
- package/dist/components/identifier/display/nxf_barcode_display.js +1 -1
- package/dist/components/identifier/display/nxf_barcode_display.js.map +1 -1
- package/dist/components/identifier/display/nxf_qr_code_display.js +1 -1
- package/dist/components/identifier/display/nxf_qr_code_display.js.map +1 -1
- package/dist/components/lists/display/nxf_file_list_display.d.ts.map +1 -1
- package/dist/components/lists/display/nxf_file_list_display.js +5 -3
- package/dist/components/lists/display/nxf_file_list_display.js.map +1 -1
- package/dist/components/lists/display/nxf_list_display.js +3 -3
- package/dist/components/lists/display/nxf_list_display.js.map +1 -1
- package/dist/components/lists/display/nxf_ordered_list_display.js +3 -3
- package/dist/components/lists/display/nxf_ordered_list_display.js.map +1 -1
- package/dist/components/lists/edit/nxf_checklist.d.ts.map +1 -1
- package/dist/components/lists/edit/nxf_checklist.js +8 -6
- package/dist/components/lists/edit/nxf_checklist.js.map +1 -1
- package/dist/components/lists/edit/nxf_chip_list_input.d.ts.map +1 -1
- package/dist/components/lists/edit/nxf_chip_list_input.js +9 -7
- package/dist/components/lists/edit/nxf_chip_list_input.js.map +1 -1
- package/dist/components/lists/edit/nxf_list.d.ts.map +1 -1
- package/dist/components/lists/edit/nxf_list.js +8 -7
- package/dist/components/lists/edit/nxf_list.js.map +1 -1
- package/dist/components/lists/edit/nxf_ordered_list_input.d.ts.map +1 -1
- package/dist/components/lists/edit/nxf_ordered_list_input.js +8 -7
- package/dist/components/lists/edit/nxf_ordered_list_input.js.map +1 -1
- package/dist/components/lists/edit/nxf_repeater.d.ts.map +1 -1
- package/dist/components/lists/edit/nxf_repeater.js +11 -17
- package/dist/components/lists/edit/nxf_repeater.js.map +1 -1
- package/dist/components/lists/edit/nxf_tags_input.d.ts.map +1 -1
- package/dist/components/lists/edit/nxf_tags_input.js +9 -7
- package/dist/components/lists/edit/nxf_tags_input.js.map +1 -1
- package/dist/components/location/display/nxf_address_label.d.ts.map +1 -1
- package/dist/components/location/display/nxf_address_label.js +4 -2
- package/dist/components/location/display/nxf_address_label.js.map +1 -1
- package/dist/components/location/display/nxf_map_preview.d.ts.map +1 -1
- package/dist/components/location/display/nxf_map_preview.js +6 -4
- package/dist/components/location/display/nxf_map_preview.js.map +1 -1
- package/dist/components/location/edit/nxf_location_input.d.ts.map +1 -1
- package/dist/components/location/edit/nxf_location_input.js +12 -13
- package/dist/components/location/edit/nxf_location_input.js.map +1 -1
- package/dist/components/media/display/nxf_audio_player.js +2 -2
- package/dist/components/media/display/nxf_audio_player.js.map +1 -1
- package/dist/components/media/display/nxf_video_player.js +3 -3
- package/dist/components/media/display/nxf_video_player.js.map +1 -1
- package/dist/components/media/edit/nxf_audio_upload.d.ts.map +1 -1
- package/dist/components/media/edit/nxf_audio_upload.js +39 -51
- package/dist/components/media/edit/nxf_audio_upload.js.map +1 -1
- package/dist/components/media/edit/nxf_signature_pad.d.ts.map +1 -1
- package/dist/components/media/edit/nxf_signature_pad.js +10 -8
- package/dist/components/media/edit/nxf_signature_pad.js.map +1 -1
- package/dist/components/media/edit/nxf_video_upload.d.ts.map +1 -1
- package/dist/components/media/edit/nxf_video_upload.js +12 -14
- package/dist/components/media/edit/nxf_video_upload.js.map +1 -1
- package/dist/components/numeric/display/nxf_formatted_currency.js +1 -1
- package/dist/components/numeric/display/nxf_formatted_currency.js.map +1 -1
- package/dist/components/numeric/display/nxf_formatted_percentage.js +1 -1
- package/dist/components/numeric/display/nxf_formatted_percentage.js.map +1 -1
- package/dist/components/numeric/display/nxf_formatted_unit.js +1 -1
- package/dist/components/numeric/display/nxf_formatted_unit.js.map +1 -1
- package/dist/components/numeric/display/nxf_progress_bar.d.ts.map +1 -1
- package/dist/components/numeric/display/nxf_progress_bar.js +3 -5
- package/dist/components/numeric/display/nxf_progress_bar.js.map +1 -1
- package/dist/components/numeric/display/nxf_star_display.d.ts.map +1 -1
- package/dist/components/numeric/display/nxf_star_display.js +3 -1
- package/dist/components/numeric/display/nxf_star_display.js.map +1 -1
- package/dist/components/numeric/edit/nxf_counter.d.ts.map +1 -1
- package/dist/components/numeric/edit/nxf_counter.js +8 -15
- package/dist/components/numeric/edit/nxf_counter.js.map +1 -1
- package/dist/components/numeric/edit/nxf_currency_input.d.ts.map +1 -1
- package/dist/components/numeric/edit/nxf_currency_input.js +9 -7
- package/dist/components/numeric/edit/nxf_currency_input.js.map +1 -1
- package/dist/components/numeric/edit/nxf_distance_input.d.ts.map +1 -1
- package/dist/components/numeric/edit/nxf_distance_input.js +8 -6
- package/dist/components/numeric/edit/nxf_distance_input.js.map +1 -1
- package/dist/components/numeric/edit/nxf_number_input.js +6 -6
- package/dist/components/numeric/edit/nxf_number_input.js.map +1 -1
- package/dist/components/numeric/edit/nxf_percentage_input.js +6 -6
- package/dist/components/numeric/edit/nxf_percentage_input.js.map +1 -1
- package/dist/components/numeric/edit/nxf_range_slider.d.ts.map +1 -1
- package/dist/components/numeric/edit/nxf_range_slider.js +15 -29
- package/dist/components/numeric/edit/nxf_range_slider.js.map +1 -1
- package/dist/components/numeric/edit/nxf_rating.d.ts.map +1 -1
- package/dist/components/numeric/edit/nxf_rating.js +7 -9
- package/dist/components/numeric/edit/nxf_rating.js.map +1 -1
- package/dist/components/numeric/edit/nxf_slider.d.ts.map +1 -1
- package/dist/components/numeric/edit/nxf_slider.js +8 -7
- package/dist/components/numeric/edit/nxf_slider.js.map +1 -1
- package/dist/components/numeric/edit/nxf_stepper.d.ts.map +1 -1
- package/dist/components/numeric/edit/nxf_stepper.js +8 -15
- package/dist/components/numeric/edit/nxf_stepper.js.map +1 -1
- package/dist/components/numeric/edit/nxf_weight_input.js +6 -6
- package/dist/components/numeric/edit/nxf_weight_input.js.map +1 -1
- package/dist/components/other/display/nxf_signature_display.d.ts.map +1 -1
- package/dist/components/other/display/nxf_signature_display.js +3 -4
- package/dist/components/other/display/nxf_signature_display.js.map +1 -1
- package/dist/components/reference/edit/nxf_icon_picker.d.ts.map +1 -1
- package/dist/components/reference/edit/nxf_icon_picker.js +9 -8
- package/dist/components/reference/edit/nxf_icon_picker.js.map +1 -1
- package/dist/components/reference/edit/nxf_image_url.d.ts.map +1 -1
- package/dist/components/reference/edit/nxf_image_url.js +9 -10
- package/dist/components/reference/edit/nxf_image_url.js.map +1 -1
- package/dist/components/reference/edit/nxf_media_picker.d.ts.map +1 -1
- package/dist/components/reference/edit/nxf_media_picker.js +10 -13
- package/dist/components/reference/edit/nxf_media_picker.js.map +1 -1
- package/dist/components/structured_data/display/nxf_json_viewer_display.d.ts.map +1 -1
- package/dist/components/structured_data/display/nxf_json_viewer_display.js +1 -3
- package/dist/components/structured_data/display/nxf_json_viewer_display.js.map +1 -1
- package/dist/components/structured_data/display/nxf_key_value_display.js +3 -3
- package/dist/components/structured_data/display/nxf_key_value_display.js.map +1 -1
- package/dist/components/structured_data/edit/nxf_form_builder.d.ts.map +1 -1
- package/dist/components/structured_data/edit/nxf_form_builder.js +13 -21
- package/dist/components/structured_data/edit/nxf_form_builder.js.map +1 -1
- package/dist/components/structured_data/edit/nxf_json_viewer.js +10 -10
- package/dist/components/structured_data/edit/nxf_json_viewer.js.map +1 -1
- package/dist/components/structured_data/edit/nxf_key_value_editor.d.ts.map +1 -1
- package/dist/components/structured_data/edit/nxf_key_value_editor.js +13 -21
- package/dist/components/structured_data/edit/nxf_key_value_editor.js.map +1 -1
- package/dist/components/structured_data/edit/nxf_schema_editor.d.ts.map +1 -1
- package/dist/components/structured_data/edit/nxf_schema_editor.js +7 -6
- package/dist/components/structured_data/edit/nxf_schema_editor.js.map +1 -1
- package/dist/components/text/display/nxf_badge.d.ts.map +1 -1
- package/dist/components/text/display/nxf_badge.js +3 -5
- package/dist/components/text/display/nxf_badge.js.map +1 -1
- package/dist/components/text/display/nxf_code_block.js +1 -1
- package/dist/components/text/display/nxf_code_block.js.map +1 -1
- package/dist/components/text/display/nxf_color_swatch.js +3 -3
- package/dist/components/text/display/nxf_color_swatch.js.map +1 -1
- package/dist/components/text/display/nxf_heading.js +1 -1
- package/dist/components/text/display/nxf_heading.js.map +1 -1
- package/dist/components/text/display/nxf_label.js +1 -1
- package/dist/components/text/display/nxf_label.js.map +1 -1
- package/dist/components/text/display/nxf_link.js +2 -2
- package/dist/components/text/display/nxf_link.js.map +1 -1
- package/dist/components/text/display/nxf_mailto_link.d.ts.map +1 -1
- package/dist/components/text/display/nxf_mailto_link.js +5 -3
- package/dist/components/text/display/nxf_mailto_link.js.map +1 -1
- package/dist/components/text/display/nxf_masked_label.js +1 -1
- package/dist/components/text/display/nxf_masked_label.js.map +1 -1
- package/dist/components/text/display/nxf_paragraph.js +1 -1
- package/dist/components/text/display/nxf_paragraph.js.map +1 -1
- package/dist/components/text/display/nxf_rendered_html.js +2 -2
- package/dist/components/text/display/nxf_rendered_html.js.map +1 -1
- package/dist/components/text/display/nxf_rendered_markdown.js +1 -1
- package/dist/components/text/display/nxf_rendered_markdown.js.map +1 -1
- package/dist/components/text/display/nxf_tel_link.d.ts.map +1 -1
- package/dist/components/text/display/nxf_tel_link.js +5 -3
- package/dist/components/text/display/nxf_tel_link.js.map +1 -1
- package/dist/components/text/display/nxf_truncated_text.js +1 -1
- package/dist/components/text/display/nxf_truncated_text.js.map +1 -1
- package/dist/components/text/edit/nxf_barcode_input.d.ts.map +1 -1
- package/dist/components/text/edit/nxf_barcode_input.js +10 -15
- package/dist/components/text/edit/nxf_barcode_input.js.map +1 -1
- package/dist/components/text/edit/nxf_code_editor.d.ts.map +1 -1
- package/dist/components/text/edit/nxf_code_editor.js +7 -6
- package/dist/components/text/edit/nxf_code_editor.js.map +1 -1
- package/dist/components/text/edit/nxf_color_picker.d.ts.map +1 -1
- package/dist/components/text/edit/nxf_color_picker.js +9 -7
- package/dist/components/text/edit/nxf_color_picker.js.map +1 -1
- package/dist/components/text/edit/nxf_email_input.js +6 -6
- package/dist/components/text/edit/nxf_email_input.js.map +1 -1
- package/dist/components/text/edit/nxf_html_editor.d.ts.map +1 -1
- package/dist/components/text/edit/nxf_html_editor.js +7 -6
- package/dist/components/text/edit/nxf_html_editor.js.map +1 -1
- package/dist/components/text/edit/nxf_markdown_editor.d.ts.map +1 -1
- package/dist/components/text/edit/nxf_markdown_editor.js +7 -6
- package/dist/components/text/edit/nxf_markdown_editor.js.map +1 -1
- package/dist/components/text/edit/nxf_masked_input.js +8 -8
- package/dist/components/text/edit/nxf_masked_input.js.map +1 -1
- package/dist/components/text/edit/nxf_otp_input.d.ts.map +1 -1
- package/dist/components/text/edit/nxf_otp_input.js +19 -29
- package/dist/components/text/edit/nxf_otp_input.js.map +1 -1
- package/dist/components/text/edit/nxf_password_input.js +7 -7
- package/dist/components/text/edit/nxf_password_input.js.map +1 -1
- package/dist/components/text/edit/nxf_phone_input.js +6 -6
- package/dist/components/text/edit/nxf_phone_input.js.map +1 -1
- package/dist/components/text/edit/nxf_qr_code_input.d.ts.map +1 -1
- package/dist/components/text/edit/nxf_qr_code_input.js +9 -12
- package/dist/components/text/edit/nxf_qr_code_input.js.map +1 -1
- package/dist/components/text/edit/nxf_rich_text.d.ts.map +1 -1
- package/dist/components/text/edit/nxf_rich_text.js +7 -6
- package/dist/components/text/edit/nxf_rich_text.js.map +1 -1
- package/dist/components/text/edit/nxf_search_input.js +6 -6
- package/dist/components/text/edit/nxf_search_input.js.map +1 -1
- package/dist/components/text/edit/nxf_slug_input.js +6 -6
- package/dist/components/text/edit/nxf_slug_input.js.map +1 -1
- package/dist/components/text/edit/nxf_textarea.js +6 -6
- package/dist/components/text/edit/nxf_textarea.js.map +1 -1
- package/dist/components/text/edit/nxf_textfield.js +6 -6
- package/dist/components/text/edit/nxf_textfield.js.map +1 -1
- package/dist/components/text/edit/nxf_url_input.js +6 -6
- package/dist/components/text/edit/nxf_url_input.js.map +1 -1
- package/dist/components/upload/display/nxf_avatar_display.d.ts.map +1 -1
- package/dist/components/upload/display/nxf_avatar_display.js +6 -17
- package/dist/components/upload/display/nxf_avatar_display.js.map +1 -1
- package/dist/components/upload/display/nxf_image_carousel.d.ts.map +1 -1
- package/dist/components/upload/display/nxf_image_carousel.js +7 -4
- package/dist/components/upload/display/nxf_image_carousel.js.map +1 -1
- package/dist/components/upload/display/nxf_image_grid.js +2 -2
- package/dist/components/upload/display/nxf_image_grid.js.map +1 -1
- package/dist/components/upload/display/nxf_single_image.js +2 -2
- package/dist/components/upload/display/nxf_single_image.js.map +1 -1
- package/dist/components/upload/display/nxf_thumbnail.js +1 -1
- package/dist/components/upload/display/nxf_thumbnail.js.map +1 -1
- package/dist/components/upload/edit/nxf_avatar_upload.d.ts.map +1 -1
- package/dist/components/upload/edit/nxf_avatar_upload.js +10 -13
- package/dist/components/upload/edit/nxf_avatar_upload.js.map +1 -1
- package/dist/components/upload/edit/nxf_cover_image_upload.d.ts.map +1 -1
- package/dist/components/upload/edit/nxf_cover_image_upload.js +9 -10
- package/dist/components/upload/edit/nxf_cover_image_upload.js.map +1 -1
- package/dist/components/upload/edit/nxf_image_gallery_upload.d.ts.map +1 -1
- package/dist/components/upload/edit/nxf_image_gallery_upload.js +7 -5
- package/dist/components/upload/edit/nxf_image_gallery_upload.js.map +1 -1
- package/dist/components/upload/edit/nxf_image_upload.d.ts.map +1 -1
- package/dist/components/upload/edit/nxf_image_upload.js +10 -13
- package/dist/components/upload/edit/nxf_image_upload.js.map +1 -1
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +39 -55
- package/dist/generator.js.map +1 -1
- package/dist/templates/api-auth-routes.d.ts +3 -0
- package/dist/templates/api-auth-routes.d.ts.map +1 -0
- package/dist/templates/api-auth-routes.js +330 -0
- package/dist/templates/api-auth-routes.js.map +1 -0
- package/dist/templates/app-nav.d.ts.map +1 -1
- package/dist/templates/app-nav.js +5 -3
- package/dist/templates/app-nav.js.map +1 -1
- package/dist/templates/auth-bootstrap.d.ts +3 -0
- package/dist/templates/auth-bootstrap.d.ts.map +1 -0
- package/dist/templates/auth-bootstrap.js +82 -0
- package/dist/templates/auth-bootstrap.js.map +1 -0
- package/dist/templates/auth-guard.d.ts +3 -0
- package/dist/templates/auth-guard.d.ts.map +1 -0
- package/dist/templates/auth-guard.js +29 -0
- package/dist/templates/auth-guard.js.map +1 -0
- package/dist/templates/customer-auth.d.ts +3 -0
- package/dist/templates/customer-auth.d.ts.map +1 -0
- package/dist/templates/customer-auth.js +108 -0
- package/dist/templates/customer-auth.js.map +1 -0
- package/dist/templates/layout.d.ts.map +1 -1
- package/dist/templates/layout.js +7 -9
- package/dist/templates/layout.js.map +1 -1
- package/dist/templates/middleware.d.ts +3 -0
- package/dist/templates/middleware.d.ts.map +1 -0
- package/dist/templates/middleware.js +96 -0
- package/dist/templates/middleware.js.map +1 -0
- package/dist/templates/page-auth.d.ts +1 -1
- package/dist/templates/page-auth.d.ts.map +1 -1
- package/dist/templates/page-auth.js +144 -275
- package/dist/templates/page-auth.js.map +1 -1
- package/dist/templates/page-blog-post.js +8 -8
- package/dist/templates/page-blog-post.js.map +1 -1
- package/dist/templates/page-calendar.d.ts.map +1 -1
- package/dist/templates/page-calendar.js +12 -11
- package/dist/templates/page-calendar.js.map +1 -1
- package/dist/templates/page-cart.d.ts.map +1 -1
- package/dist/templates/page-cart.js +11 -8
- package/dist/templates/page-cart.js.map +1 -1
- package/dist/templates/page-chat.d.ts.map +1 -1
- package/dist/templates/page-chat.js +9 -8
- package/dist/templates/page-chat.js.map +1 -1
- package/dist/templates/page-checkout.d.ts.map +1 -1
- package/dist/templates/page-checkout.js +20 -18
- package/dist/templates/page-checkout.js.map +1 -1
- package/dist/templates/page-custom.d.ts.map +1 -1
- package/dist/templates/page-custom.js +9 -5
- package/dist/templates/page-custom.js.map +1 -1
- package/dist/templates/page-dashboard.d.ts.map +1 -1
- package/dist/templates/page-dashboard.js +15 -12
- package/dist/templates/page-dashboard.js.map +1 -1
- package/dist/templates/page-detail.d.ts +1 -1
- package/dist/templates/page-detail.d.ts.map +1 -1
- package/dist/templates/page-detail.js +104 -214
- package/dist/templates/page-detail.js.map +1 -1
- package/dist/templates/page-feed.d.ts.map +1 -1
- package/dist/templates/page-feed.js +25 -20
- package/dist/templates/page-feed.js.map +1 -1
- package/dist/templates/page-forgot-password.d.ts +3 -0
- package/dist/templates/page-forgot-password.d.ts.map +1 -0
- package/dist/templates/page-forgot-password.js +92 -0
- package/dist/templates/page-forgot-password.js.map +1 -0
- package/dist/templates/page-form.d.ts.map +1 -1
- package/dist/templates/page-form.js +10 -8
- package/dist/templates/page-form.js.map +1 -1
- package/dist/templates/page-gallery.js +7 -7
- package/dist/templates/page-gallery.js.map +1 -1
- package/dist/templates/page-invoice.d.ts.map +1 -1
- package/dist/templates/page-invoice.js +27 -22
- package/dist/templates/page-invoice.js.map +1 -1
- package/dist/templates/page-kanban.d.ts.map +1 -1
- package/dist/templates/page-kanban.js +12 -9
- package/dist/templates/page-kanban.js.map +1 -1
- package/dist/templates/page-landing-hero-cta.js +6 -6
- package/dist/templates/page-landing-hero-cta.js.map +1 -1
- package/dist/templates/page-landing-hero-features.js +4 -4
- package/dist/templates/page-landing-hero-features.js.map +1 -1
- package/dist/templates/page-landing-hero-pricing.d.ts.map +1 -1
- package/dist/templates/page-landing-hero-pricing.js +11 -7
- package/dist/templates/page-landing-hero-pricing.js.map +1 -1
- package/dist/templates/page-landing-minimal.js +1 -1
- package/dist/templates/page-landing-minimal.js.map +1 -1
- package/dist/templates/page-landing.d.ts.map +1 -1
- package/dist/templates/page-landing.js +61 -51
- package/dist/templates/page-landing.js.map +1 -1
- package/dist/templates/page-list.d.ts.map +1 -1
- package/dist/templates/page-list.js +29 -40
- package/dist/templates/page-list.js.map +1 -1
- package/dist/templates/page-map.d.ts.map +1 -1
- package/dist/templates/page-map.js +11 -7
- package/dist/templates/page-map.js.map +1 -1
- package/dist/templates/page-messages.d.ts.map +1 -1
- package/dist/templates/page-messages.js +9 -5
- package/dist/templates/page-messages.js.map +1 -1
- package/dist/templates/page-otp-entry.d.ts.map +1 -1
- package/dist/templates/page-otp-entry.js +36 -30
- package/dist/templates/page-otp-entry.js.map +1 -1
- package/dist/templates/page-otp-request.d.ts.map +1 -1
- package/dist/templates/page-otp-request.js +20 -14
- package/dist/templates/page-otp-request.js.map +1 -1
- package/dist/templates/page-profile.d.ts.map +1 -1
- package/dist/templates/page-profile.js +20 -17
- package/dist/templates/page-profile.js.map +1 -1
- package/dist/templates/page-reset-password.d.ts.map +1 -1
- package/dist/templates/page-reset-password.js +29 -24
- package/dist/templates/page-reset-password.js.map +1 -1
- package/dist/templates/page-search.d.ts.map +1 -1
- package/dist/templates/page-search.js +15 -11
- package/dist/templates/page-search.js.map +1 -1
- package/dist/templates/page-settings.d.ts.map +1 -1
- package/dist/templates/page-settings.js +32 -34
- package/dist/templates/page-settings.js.map +1 -1
- package/dist/templates/page-wallet.d.ts.map +1 -1
- package/dist/templates/page-wallet.js +29 -24
- package/dist/templates/page-wallet.js.map +1 -1
- package/package.json +1 -1
package/dist/generator.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// File: underpeaks_codegen
|
|
3
|
-
//
|
|
4
|
-
// ⚠️ RECONSTRUCTED FILE — see chat: this was rebuilt from an old base copy
|
|
5
|
-
// plus every fix made today, because the current version of this file was
|
|
6
|
-
// never actually provided despite being requested three times. Diff this
|
|
7
|
-
// against the real file before trusting it — anything that changed in the
|
|
8
|
-
// real file since the last time it WAS shared here will be missing.
|
|
2
|
+
// File: D:\underpeaks\underpeaks_codegen\packages\generator-nextjs\src\generator.ts
|
|
9
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
4
|
exports.generateNextjs = generateNextjs;
|
|
11
5
|
const generator_core_1 = require("@underpeaks/generator-core");
|
|
@@ -18,10 +12,7 @@ const page_list_1 = require("./templates/page-list");
|
|
|
18
12
|
const page_detail_1 = require("./templates/page-detail");
|
|
19
13
|
const page_form_1 = require("./templates/page-form");
|
|
20
14
|
const page_auth_1 = require("./templates/page-auth");
|
|
21
|
-
|
|
22
|
-
// landing template_type, ignoring which one was actually selected — all
|
|
23
|
-
// four rendered identically. Split into 4 real generators matching
|
|
24
|
-
// Flutter's structure; page-landing.ts is now dead code (not imported).
|
|
15
|
+
const page_forgot_password_1 = require("./templates/page-forgot-password");
|
|
25
16
|
const page_landing_hero_cta_1 = require("./templates/page-landing-hero-cta");
|
|
26
17
|
const page_landing_hero_features_1 = require("./templates/page-landing-hero-features");
|
|
27
18
|
const page_landing_hero_pricing_1 = require("./templates/page-landing-hero-pricing");
|
|
@@ -29,10 +20,6 @@ const page_landing_minimal_1 = require("./templates/page-landing-minimal");
|
|
|
29
20
|
const page_dashboard_1 = require("./templates/page-dashboard");
|
|
30
21
|
const page_profile_1 = require("./templates/page-profile");
|
|
31
22
|
const page_blog_post_1 = require("./templates/page-blog-post");
|
|
32
|
-
// REMOVED: generateContactPage — page-contact.ts is now commented out
|
|
33
|
-
// (posted to a nonexistent '/api/contact' route). 'contact' template_type
|
|
34
|
-
// now routes through the generic model-driven form generator instead,
|
|
35
|
-
// matching how Flutter already handles it.
|
|
36
23
|
const page_cart_1 = require("./templates/page-cart");
|
|
37
24
|
const page_checkout_1 = require("./templates/page-checkout");
|
|
38
25
|
const page_wallet_1 = require("./templates/page-wallet");
|
|
@@ -46,8 +33,7 @@ const page_settings_1 = require("./templates/page-settings");
|
|
|
46
33
|
const page_gallery_1 = require("./templates/page-gallery");
|
|
47
34
|
const page_kanban_1 = require("./templates/page-kanban");
|
|
48
35
|
const page_calendar_1 = require("./templates/page-calendar");
|
|
49
|
-
const
|
|
50
|
-
const page_otp_entry_1 = require("./templates/page-otp-entry");
|
|
36
|
+
const page_reset_password_1 = require("./templates/page-reset-password");
|
|
51
37
|
const page_custom_1 = require("./templates/page-custom");
|
|
52
38
|
const tailwind_1 = require("./templates/tailwind");
|
|
53
39
|
const theme_1 = require("./templates/theme");
|
|
@@ -60,12 +46,11 @@ const api_builder_1 = require("./templates/api-builder");
|
|
|
60
46
|
const index_1 = require("./integrations/index");
|
|
61
47
|
const storage_1 = require("./integrations/storage");
|
|
62
48
|
const validators_1 = require("./templates/validators");
|
|
63
|
-
//
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
// be used on the Next.js side.
|
|
49
|
+
// NEW today — auth session plumbing that never existed for Next.js before.
|
|
50
|
+
const customer_auth_1 = require("./templates/customer-auth");
|
|
51
|
+
const api_auth_routes_1 = require("./templates/api-auth-routes");
|
|
52
|
+
const auth_bootstrap_1 = require("./templates/auth-bootstrap");
|
|
53
|
+
const middleware_1 = require("./templates/middleware");
|
|
69
54
|
async function generateNextjs(data) {
|
|
70
55
|
const filtered = (0, generator_core_1.filterProjectData)(data);
|
|
71
56
|
const files = [];
|
|
@@ -84,6 +69,22 @@ async function generateNextjs(data) {
|
|
|
84
69
|
files.push((0, app_nav_1.generateAppFooter)(filtered.pages));
|
|
85
70
|
}
|
|
86
71
|
files.push((0, env_1.generateEnvTemplate)(data.project_id));
|
|
72
|
+
// NEW: cookie-session helper + all /api/auth/* route handlers + the
|
|
73
|
+
// client-side bootstrap wrapper are now unconditional — every
|
|
74
|
+
// generated Next.js app needs a working session, since even 'Public'
|
|
75
|
+
// pages benefit from an anonymous user_id (cart, wishlist, etc.) per
|
|
76
|
+
// the auth design finalized today. Previously none of this existed —
|
|
77
|
+
// page-auth.ts's sign-in/sign-up calls to /api/auth/signin have never
|
|
78
|
+
// had a real route behind them until now.
|
|
79
|
+
files.push((0, customer_auth_1.generateCustomerAuth)());
|
|
80
|
+
files.push(...(0, api_auth_routes_1.generateApiAuthRoutes)());
|
|
81
|
+
files.push((0, auth_bootstrap_1.generateAuthBootstrap)());
|
|
82
|
+
// NEW: middleware.ts only gets generated when at least one page is set
|
|
83
|
+
// to 'Authenticated' visibility — no point shipping a middleware file
|
|
84
|
+
// that matches nothing (see generateMiddleware's own anti-bloat check).
|
|
85
|
+
const middlewareFile = (0, middleware_1.generateMiddleware)(filtered.pages);
|
|
86
|
+
if (middlewareFile)
|
|
87
|
+
files.push(middlewareFile);
|
|
87
88
|
for (const model of filtered.models) {
|
|
88
89
|
files.push((0, types_1.generateTypes)(model));
|
|
89
90
|
files.push((0, api_route_1.generateApiRoute)(model, data.source));
|
|
@@ -93,10 +94,6 @@ async function generateNextjs(data) {
|
|
|
93
94
|
files.push((0, tailwind_1.generateTailwindConfig)(data.theme));
|
|
94
95
|
files.push((0, theme_1.generateTheme)(data.theme));
|
|
95
96
|
}
|
|
96
|
-
// CORE PARITY: API Builder and third-party Integrations are not a Core
|
|
97
|
-
// feature — explicitly gated on source !== 'core' rather than relying
|
|
98
|
-
// on data.endpoints/data.integrations happening to be empty for Core
|
|
99
|
-
// projects. Matches the same guard added to generator-flutter today.
|
|
100
97
|
if (data.source !== 'core') {
|
|
101
98
|
const apiBuilderFile = (0, api_builder_1.generateApiBuilderNextjs)(data.endpoints ?? []);
|
|
102
99
|
if (apiBuilderFile)
|
|
@@ -111,56 +108,49 @@ async function generateNextjs(data) {
|
|
|
111
108
|
for (const page of filtered.pages) {
|
|
112
109
|
const model = filtered.models.find((m) => m.sm_id === page.model_id);
|
|
113
110
|
if (generator_core_1.AUTH_TEMPLATE_TYPES.includes(page.template_type)) {
|
|
114
|
-
// NAVIGATOR: pages passed through so sign-in/sign-up/forgot-password
|
|
115
|
-
// links resolve to real slugs instead of hardcoded literals.
|
|
116
111
|
files.push(...(0, page_auth_1.generateNextjsAuthPages)(page, filtered.pages));
|
|
117
112
|
continue;
|
|
118
113
|
}
|
|
119
114
|
switch (page.template_type) {
|
|
120
115
|
case 'list':
|
|
121
116
|
case 'grid':
|
|
122
|
-
// NAVIGATOR: routes + pages passed through for card-tap/button triggers.
|
|
123
117
|
if (model)
|
|
124
118
|
files.push((0, page_list_1.generateListPage)(page, model, data.project_type, filtered.routes, filtered.pages));
|
|
125
119
|
break;
|
|
126
120
|
case 'detail':
|
|
127
|
-
//
|
|
121
|
+
// FIX: generateDetailPage now returns GeneratedFile[] — an
|
|
122
|
+
// 'authenticated'-visibility detail page produces TWO files
|
|
123
|
+
// (a server guard wrapper + the underlying client component),
|
|
124
|
+
// a Public one produces two as well (a thin re-export + the
|
|
125
|
+
// client component) so the file layout is consistent either way.
|
|
126
|
+
// Previously this pushed a single file; must spread now.
|
|
128
127
|
if (model)
|
|
129
|
-
files.push((0, page_detail_1.generateDetailPage)(page, model, filtered.routes, filtered.pages));
|
|
128
|
+
files.push(...(0, page_detail_1.generateDetailPage)(page, model, filtered.routes, filtered.pages));
|
|
130
129
|
break;
|
|
131
130
|
case 'form':
|
|
132
131
|
case 'contact':
|
|
133
|
-
// FIX: 'contact' now routes through the generic model-driven form
|
|
134
|
-
// generator instead of the disabled page-contact.ts — matches Flutter.
|
|
135
132
|
if (model)
|
|
136
133
|
files.push((0, page_form_1.generateFormPage)(page, model));
|
|
137
134
|
break;
|
|
138
135
|
case 'dashboard':
|
|
139
|
-
// NAVIGATOR: routes + pages passed through for card-tap trigger.
|
|
140
136
|
files.push((0, page_dashboard_1.generateDashboardPage)(page, model, filtered.routes, filtered.pages));
|
|
141
137
|
break;
|
|
142
138
|
case 'profile':
|
|
143
|
-
// NAVIGATOR: routes + pages passed through for back/button triggers.
|
|
144
139
|
files.push((0, page_profile_1.generateProfilePage)(page, model, filtered.routes, filtered.pages));
|
|
145
140
|
break;
|
|
146
141
|
case 'blog-post':
|
|
147
|
-
// NAVIGATOR: routes + pages passed through for back/button triggers.
|
|
148
142
|
files.push((0, page_blog_post_1.generateBlogPostPage)(page, model, filtered.routes, filtered.pages));
|
|
149
143
|
break;
|
|
150
144
|
case 'cart':
|
|
151
|
-
// NAVIGATOR: routes + pages passed through for back-trigger override.
|
|
152
145
|
files.push((0, page_cart_1.generateCartPage)(page, filtered.routes, filtered.pages));
|
|
153
146
|
break;
|
|
154
147
|
case 'checkout':
|
|
155
|
-
// NAVIGATOR: routes + pages passed through for button-trigger override.
|
|
156
148
|
files.push((0, page_checkout_1.generateCheckoutPage)(page, filtered.routes, filtered.pages));
|
|
157
149
|
break;
|
|
158
150
|
case 'wallet':
|
|
159
|
-
// NAVIGATOR: routes + pages passed through for label-matched button routes.
|
|
160
151
|
files.push((0, page_wallet_1.generateWalletPage)(page, filtered.routes, filtered.pages));
|
|
161
152
|
break;
|
|
162
153
|
case 'invoice':
|
|
163
|
-
// NAVIGATOR: routes + pages passed through for back/button triggers.
|
|
164
154
|
files.push((0, page_invoice_1.generateInvoicePage)(page, model, filtered.routes, filtered.pages));
|
|
165
155
|
break;
|
|
166
156
|
case 'chat':
|
|
@@ -170,43 +160,38 @@ async function generateNextjs(data) {
|
|
|
170
160
|
files.push((0, page_messages_1.generateMessagesPage)(page));
|
|
171
161
|
break;
|
|
172
162
|
case 'feed':
|
|
173
|
-
// NAVIGATOR: routes + pages passed through for card-tap/button triggers.
|
|
174
163
|
files.push((0, page_feed_1.generateFeedPage)(page, model, filtered.routes, filtered.pages));
|
|
175
164
|
break;
|
|
176
165
|
case 'map':
|
|
177
166
|
files.push((0, page_map_1.generateMapPage)(page));
|
|
178
167
|
break;
|
|
179
168
|
case 'search':
|
|
180
|
-
files.push((0, page_search_1.generateSearchPage)(page, model));
|
|
169
|
+
files.push((0, page_search_1.generateSearchPage)(page, model, filtered.routes, filtered.pages));
|
|
181
170
|
break;
|
|
182
171
|
case 'settings':
|
|
183
172
|
files.push((0, page_settings_1.generateSettingsPage)(page));
|
|
184
173
|
break;
|
|
185
174
|
case 'gallery':
|
|
186
|
-
// NAVIGATOR: routes + pages passed through for card-tap/button triggers.
|
|
187
175
|
files.push((0, page_gallery_1.generateGalleryPage)(page, model, filtered.routes, filtered.pages));
|
|
188
176
|
break;
|
|
189
177
|
case 'kanban':
|
|
190
|
-
// NAVIGATOR: routes + pages passed through for card-tap trigger.
|
|
191
178
|
files.push((0, page_kanban_1.generateKanbanPage)(page, model, filtered.routes, filtered.pages));
|
|
192
179
|
break;
|
|
193
180
|
case 'calendar':
|
|
194
|
-
// NAVIGATOR: routes + pages passed through for card-tap trigger.
|
|
195
181
|
files.push((0, page_calendar_1.generateCalendarPage)(page, model, filtered.routes, filtered.pages));
|
|
196
182
|
break;
|
|
197
|
-
case '
|
|
198
|
-
|
|
199
|
-
files.push((0, page_otp_request_1.generateOtpRequestPage)(page, filtered.routes, filtered.pages));
|
|
183
|
+
case 'reset_password':
|
|
184
|
+
files.push((0, page_reset_password_1.generateResetPasswordPage)(page, filtered.routes, filtered.pages));
|
|
200
185
|
break;
|
|
201
|
-
case '
|
|
202
|
-
|
|
186
|
+
case 'forgot_password':
|
|
187
|
+
// NEW: this case existed already but generateForgotPasswordPage
|
|
188
|
+
// never existed until today — was almost certainly a build
|
|
189
|
+
// error or silently unreachable before now.
|
|
190
|
+
files.push((0, page_forgot_password_1.generateForgotPasswordPage)(page));
|
|
203
191
|
break;
|
|
204
192
|
case 'custom':
|
|
205
193
|
files.push((0, page_custom_1.generateCustomPage)(page));
|
|
206
194
|
break;
|
|
207
|
-
// NAVIGATOR: landing types now each get their own real generator
|
|
208
|
-
// (previously all four fell into one generic template that ignored
|
|
209
|
-
// which type was actually selected).
|
|
210
195
|
case 'landing-hero-cta':
|
|
211
196
|
files.push((0, page_landing_hero_cta_1.generateLandingHeroCta)(page, filtered.routes, filtered.pages));
|
|
212
197
|
break;
|
|
@@ -219,7 +204,6 @@ async function generateNextjs(data) {
|
|
|
219
204
|
case 'landing-minimal':
|
|
220
205
|
files.push((0, page_landing_minimal_1.generateLandingMinimal)(page));
|
|
221
206
|
break;
|
|
222
|
-
// 'reset_password' deliberately has no case — see NOTE at top of file.
|
|
223
207
|
default:
|
|
224
208
|
if (generator_core_1.STANDARD_TEMPLATE_TYPES.includes(page.template_type)) {
|
|
225
209
|
console.warn(`[nxf] template_type '${page.template_type}' is listed as standard but has no generator wired in generator.ts.`);
|
package/dist/generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-auth-routes.d.ts","sourceRoot":"","sources":["../../src/templates/api-auth-routes.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAiB/D,wBAAgB,qBAAqB,IAAI,aAAa,EAAE,CA0TvD"}
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: D:\underpeaks\underpeaks_codegen\packages\generator-nextjs\src\templates\api-auth-routes.ts
|
|
3
|
+
// (adding the 'me' route to the existing generateApiAuthRoutes() function —
|
|
4
|
+
// full file below since every file in this project is DO NOT EDIT MANUALLY /
|
|
5
|
+
// regenerated wholesale, not patched)
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.generateApiAuthRoutes = generateApiAuthRoutes;
|
|
8
|
+
// Generates the app/api/auth/* Route Handlers that page-auth.ts's
|
|
9
|
+
// sign-in/sign-up pages call. These never existed before — page-auth.ts
|
|
10
|
+
// has always called '/api/auth/signin' etc., but nothing generated that
|
|
11
|
+
// route, so sign-in/sign-up have never actually worked in a generated
|
|
12
|
+
// Next.js app until now. These are thin proxies to the real backend
|
|
13
|
+
// (studio.underpeaks.com), setting/clearing the httpOnly session cookie
|
|
14
|
+
// via lib/customerAuth.ts on success — mirrors Flutter's ApiConfig
|
|
15
|
+
// pattern, cookie-based instead of SharedPreferences-based.
|
|
16
|
+
//
|
|
17
|
+
// FIX: every route below read process.env.NXF_BASE_URL, but the actual
|
|
18
|
+
// generated .env.example / env.ts template (and lib/nxf-client.ts) use
|
|
19
|
+
// NXF_STUDIO_URL — NXF_BASE_URL was never a real generated env var, so
|
|
20
|
+
// baseUrl silently resolved to '' in every one of these routes and every
|
|
21
|
+
// fetch below was hitting a relative/invalid URL. Now reads
|
|
22
|
+
// NXF_STUDIO_URL to match env.ts, middleware.ts, and nxf-client.ts.
|
|
23
|
+
function generateApiAuthRoutes() {
|
|
24
|
+
const files = [];
|
|
25
|
+
// ── signin ────────────────────────────────────────────────────────────
|
|
26
|
+
files.push({
|
|
27
|
+
path: 'app/api/auth/signin/route.ts',
|
|
28
|
+
content: [
|
|
29
|
+
`// GENERATED BY UNDERPEAKS CODEGEN v1.0.0`,
|
|
30
|
+
`// Proxies sign-in to the real backend, sets the session cookie on success.`,
|
|
31
|
+
`// Regenerate: nxf generate nextjs`,
|
|
32
|
+
``,
|
|
33
|
+
`import { NextRequest, NextResponse } from 'next/server'`,
|
|
34
|
+
`import { setCustomerToken } from '@/lib/customerAuth'`,
|
|
35
|
+
``,
|
|
36
|
+
`export async function POST(req: NextRequest) {`,
|
|
37
|
+
` let body: any`,
|
|
38
|
+
` try { body = await req.json() } catch {`,
|
|
39
|
+
` return NextResponse.json({ error: 'Invalid JSON body' }, { status: 400 })`,
|
|
40
|
+
` }`,
|
|
41
|
+
``,
|
|
42
|
+
` const baseUrl = process.env.NXF_STUDIO_URL ?? ''`,
|
|
43
|
+
` const projectId = process.env.NXF_PROJECT_ID ?? ''`,
|
|
44
|
+
` const apiKey = process.env.NXF_API_KEY ?? ''`,
|
|
45
|
+
``,
|
|
46
|
+
` try {`,
|
|
47
|
+
` const res = await fetch(\`\${baseUrl}/api-public/v1/\${projectId}/auth/signin\`, {`,
|
|
48
|
+
` method: 'POST',`,
|
|
49
|
+
` headers: { 'Content-Type': 'application/json', 'x-api-key': apiKey },`,
|
|
50
|
+
` body: JSON.stringify(body),`,
|
|
51
|
+
` cache: 'no-store',`,
|
|
52
|
+
` })`,
|
|
53
|
+
``,
|
|
54
|
+
` const data = await res.json()`,
|
|
55
|
+
``,
|
|
56
|
+
` if (!res.ok) {`,
|
|
57
|
+
` return NextResponse.json({ error: data.error ?? 'Sign in failed' }, { status: res.status })`,
|
|
58
|
+
` }`,
|
|
59
|
+
``,
|
|
60
|
+
` await setCustomerToken(data.token)`,
|
|
61
|
+
` return NextResponse.json({ user: data.user })`,
|
|
62
|
+
` } catch {`,
|
|
63
|
+
` return NextResponse.json({ error: 'Network error. Please try again.' }, { status: 502 })`,
|
|
64
|
+
` }`,
|
|
65
|
+
`}`,
|
|
66
|
+
``,
|
|
67
|
+
].join('\n'),
|
|
68
|
+
category: 'customizable',
|
|
69
|
+
});
|
|
70
|
+
// ── signup ────────────────────────────────────────────────────────────
|
|
71
|
+
files.push({
|
|
72
|
+
path: 'app/api/auth/signup/route.ts',
|
|
73
|
+
content: [
|
|
74
|
+
`// GENERATED BY UNDERPEAKS CODEGEN v1.0.0`,
|
|
75
|
+
`// Proxies sign-up to the real backend, sets the session cookie on success.`,
|
|
76
|
+
`// If an anonymous session cookie already exists, forwards it as`,
|
|
77
|
+
`// x-customer-token so the backend upgrades that existing account in`,
|
|
78
|
+
`// place (see /auth/signup's own logic) rather than creating a new one.`,
|
|
79
|
+
`// Regenerate: nxf generate nextjs`,
|
|
80
|
+
``,
|
|
81
|
+
`import { NextRequest, NextResponse } from 'next/server'`,
|
|
82
|
+
`import { setCustomerToken, getCustomerToken } from '@/lib/customerAuth'`,
|
|
83
|
+
``,
|
|
84
|
+
`export async function POST(req: NextRequest) {`,
|
|
85
|
+
` let body: any`,
|
|
86
|
+
` try { body = await req.json() } catch {`,
|
|
87
|
+
` return NextResponse.json({ error: 'Invalid JSON body' }, { status: 400 })`,
|
|
88
|
+
` }`,
|
|
89
|
+
``,
|
|
90
|
+
` const baseUrl = process.env.NXF_STUDIO_URL ?? ''`,
|
|
91
|
+
` const projectId = process.env.NXF_PROJECT_ID ?? ''`,
|
|
92
|
+
` const apiKey = process.env.NXF_API_KEY ?? ''`,
|
|
93
|
+
``,
|
|
94
|
+
` const existingToken = await getCustomerToken()`,
|
|
95
|
+
``,
|
|
96
|
+
` try {`,
|
|
97
|
+
` const res = await fetch(\`\${baseUrl}/api-public/v1/\${projectId}/auth/signup\`, {`,
|
|
98
|
+
` method: 'POST',`,
|
|
99
|
+
` headers: {`,
|
|
100
|
+
` 'Content-Type': 'application/json',`,
|
|
101
|
+
` 'x-api-key': apiKey,`,
|
|
102
|
+
` ...(existingToken ? { 'x-customer-token': existingToken } : {}),`,
|
|
103
|
+
` },`,
|
|
104
|
+
` body: JSON.stringify(body),`,
|
|
105
|
+
` cache: 'no-store',`,
|
|
106
|
+
` })`,
|
|
107
|
+
``,
|
|
108
|
+
` const data = await res.json()`,
|
|
109
|
+
``,
|
|
110
|
+
` if (!res.ok) {`,
|
|
111
|
+
` return NextResponse.json({ error: data.error ?? 'Sign up failed' }, { status: res.status })`,
|
|
112
|
+
` }`,
|
|
113
|
+
``,
|
|
114
|
+
` await setCustomerToken(data.token)`,
|
|
115
|
+
` return NextResponse.json({ user: data.user }, { status: 201 })`,
|
|
116
|
+
` } catch {`,
|
|
117
|
+
` return NextResponse.json({ error: 'Network error. Please try again.' }, { status: 502 })`,
|
|
118
|
+
` }`,
|
|
119
|
+
`}`,
|
|
120
|
+
``,
|
|
121
|
+
].join('\n'),
|
|
122
|
+
category: 'customizable',
|
|
123
|
+
});
|
|
124
|
+
// ── signout ───────────────────────────────────────────────────────────
|
|
125
|
+
files.push({
|
|
126
|
+
path: 'app/api/auth/signout/route.ts',
|
|
127
|
+
content: [
|
|
128
|
+
`// GENERATED BY UNDERPEAKS CODEGEN v1.0.0`,
|
|
129
|
+
`// Revokes the session on the backend, clears the local cookie either way.`,
|
|
130
|
+
`// Regenerate: nxf generate nextjs`,
|
|
131
|
+
``,
|
|
132
|
+
`import { NextRequest, NextResponse } from 'next/server'`,
|
|
133
|
+
`import { getCustomerToken, clearCustomerToken } from '@/lib/customerAuth'`,
|
|
134
|
+
``,
|
|
135
|
+
`export async function POST(_req: NextRequest) {`,
|
|
136
|
+
` const baseUrl = process.env.NXF_STUDIO_URL ?? ''`,
|
|
137
|
+
` const projectId = process.env.NXF_PROJECT_ID ?? ''`,
|
|
138
|
+
` const apiKey = process.env.NXF_API_KEY ?? ''`,
|
|
139
|
+
``,
|
|
140
|
+
` const token = await getCustomerToken()`,
|
|
141
|
+
``,
|
|
142
|
+
` if (token) {`,
|
|
143
|
+
` try {`,
|
|
144
|
+
` await fetch(\`\${baseUrl}/api-public/v1/\${projectId}/auth/signout\`, {`,
|
|
145
|
+
` method: 'POST',`,
|
|
146
|
+
` headers: { 'x-api-key': apiKey, 'x-customer-token': token },`,
|
|
147
|
+
` cache: 'no-store',`,
|
|
148
|
+
` })`,
|
|
149
|
+
` } catch {`,
|
|
150
|
+
` // Best-effort — clear the local cookie regardless of backend result.`,
|
|
151
|
+
` }`,
|
|
152
|
+
` }`,
|
|
153
|
+
``,
|
|
154
|
+
` await clearCustomerToken()`,
|
|
155
|
+
` return NextResponse.json({ success: true })`,
|
|
156
|
+
`}`,
|
|
157
|
+
``,
|
|
158
|
+
].join('\n'),
|
|
159
|
+
category: 'customizable',
|
|
160
|
+
});
|
|
161
|
+
// ── anonymous ─────────────────────────────────────────────────────────
|
|
162
|
+
files.push({
|
|
163
|
+
path: 'app/api/auth/anonymous/route.ts',
|
|
164
|
+
content: [
|
|
165
|
+
`// GENERATED BY UNDERPEAKS CODEGEN v1.0.0`,
|
|
166
|
+
`// Bootstraps an anonymous session — called by AuthBootstrap.tsx when no`,
|
|
167
|
+
`// session cookie exists yet, so every visitor has a working user_id`,
|
|
168
|
+
`// before any page that needs one (forms, profile) can render.`,
|
|
169
|
+
`// Regenerate: nxf generate nextjs`,
|
|
170
|
+
``,
|
|
171
|
+
`import { NextRequest, NextResponse } from 'next/server'`,
|
|
172
|
+
`import { setCustomerToken } from '@/lib/customerAuth'`,
|
|
173
|
+
``,
|
|
174
|
+
`export async function POST(_req: NextRequest) {`,
|
|
175
|
+
` const baseUrl = process.env.NXF_STUDIO_URL ?? ''`,
|
|
176
|
+
` const projectId = process.env.NXF_PROJECT_ID ?? ''`,
|
|
177
|
+
` const apiKey = process.env.NXF_API_KEY ?? ''`,
|
|
178
|
+
``,
|
|
179
|
+
` try {`,
|
|
180
|
+
` const res = await fetch(\`\${baseUrl}/api-public/v1/\${projectId}/auth/anonymous\`, {`,
|
|
181
|
+
` method: 'POST',`,
|
|
182
|
+
` headers: { 'x-api-key': apiKey },`,
|
|
183
|
+
` cache: 'no-store',`,
|
|
184
|
+
` })`,
|
|
185
|
+
``,
|
|
186
|
+
` if (!res.ok) {`,
|
|
187
|
+
` const data = await res.json().catch(() => ({}))`,
|
|
188
|
+
` return NextResponse.json({ error: data.error ?? 'Could not start session' }, { status: res.status })`,
|
|
189
|
+
` }`,
|
|
190
|
+
``,
|
|
191
|
+
` const data = await res.json()`,
|
|
192
|
+
` await setCustomerToken(data.token)`,
|
|
193
|
+
` return NextResponse.json({ user: data.user }, { status: 201 })`,
|
|
194
|
+
` } catch {`,
|
|
195
|
+
` return NextResponse.json({ error: 'Network error. Please try again.' }, { status: 502 })`,
|
|
196
|
+
` }`,
|
|
197
|
+
`}`,
|
|
198
|
+
``,
|
|
199
|
+
].join('\n'),
|
|
200
|
+
category: 'customizable',
|
|
201
|
+
});
|
|
202
|
+
// ── me ────────────────────────────────────────────────────────────────
|
|
203
|
+
files.push({
|
|
204
|
+
path: 'app/api/auth/me/route.ts',
|
|
205
|
+
content: [
|
|
206
|
+
`// GENERATED BY UNDERPEAKS CODEGEN v1.0.0`,
|
|
207
|
+
`// Returns the currently signed-in user (real or anonymous), or 401 if`,
|
|
208
|
+
`// there's no valid, unrevoked session. Called by AuthBootstrap.tsx on`,
|
|
209
|
+
`// first mount to decide whether an anonymous session still needs to`,
|
|
210
|
+
`// be created, and by any page/component that needs to know who's`,
|
|
211
|
+
`// signed in and whether they're anonymous (for a real-login guard).`,
|
|
212
|
+
`// Regenerate: nxf generate nextjs`,
|
|
213
|
+
``,
|
|
214
|
+
`import { NextRequest, NextResponse } from 'next/server'`,
|
|
215
|
+
`import { getCustomerToken } from '@/lib/customerAuth'`,
|
|
216
|
+
``,
|
|
217
|
+
`export async function GET(_req: NextRequest) {`,
|
|
218
|
+
` const token = await getCustomerToken()`,
|
|
219
|
+
` if (!token) {`,
|
|
220
|
+
` return NextResponse.json({ error: 'No session' }, { status: 401 })`,
|
|
221
|
+
` }`,
|
|
222
|
+
``,
|
|
223
|
+
` const baseUrl = process.env.NXF_STUDIO_URL ?? ''`,
|
|
224
|
+
` const projectId = process.env.NXF_PROJECT_ID ?? ''`,
|
|
225
|
+
` const apiKey = process.env.NXF_API_KEY ?? ''`,
|
|
226
|
+
``,
|
|
227
|
+
` try {`,
|
|
228
|
+
` const res = await fetch(\`\${baseUrl}/api-public/v1/\${projectId}/auth/me\`, {`,
|
|
229
|
+
` headers: {`,
|
|
230
|
+
` 'x-api-key': apiKey,`,
|
|
231
|
+
` 'x-customer-token': token,`,
|
|
232
|
+
` },`,
|
|
233
|
+
` cache: 'no-store',`,
|
|
234
|
+
` })`,
|
|
235
|
+
``,
|
|
236
|
+
` if (!res.ok) {`,
|
|
237
|
+
` return NextResponse.json({ error: 'Invalid or expired session' }, { status: 401 })`,
|
|
238
|
+
` }`,
|
|
239
|
+
``,
|
|
240
|
+
` const data = await res.json()`,
|
|
241
|
+
` return NextResponse.json({ user: data.user })`,
|
|
242
|
+
` } catch {`,
|
|
243
|
+
` return NextResponse.json({ error: 'Network error. Please try again.' }, { status: 502 })`,
|
|
244
|
+
` }`,
|
|
245
|
+
`}`,
|
|
246
|
+
``,
|
|
247
|
+
].join('\n'),
|
|
248
|
+
category: 'customizable',
|
|
249
|
+
});
|
|
250
|
+
// ── forgot-password ───────────────────────────────────────────────────
|
|
251
|
+
files.push({
|
|
252
|
+
path: 'app/api/auth/forgot-password/route.ts',
|
|
253
|
+
content: [
|
|
254
|
+
`// GENERATED BY UNDERPEAKS CODEGEN v1.0.0`,
|
|
255
|
+
`// Proxies a password-reset request to the real backend. No cookie —`,
|
|
256
|
+
`// no session is created by this step.`,
|
|
257
|
+
`// Regenerate: nxf generate nextjs`,
|
|
258
|
+
``,
|
|
259
|
+
`import { NextRequest, NextResponse } from 'next/server'`,
|
|
260
|
+
``,
|
|
261
|
+
`export async function POST(req: NextRequest) {`,
|
|
262
|
+
` let body: any`,
|
|
263
|
+
` try { body = await req.json() } catch {`,
|
|
264
|
+
` return NextResponse.json({ error: 'Invalid JSON body' }, { status: 400 })`,
|
|
265
|
+
` }`,
|
|
266
|
+
``,
|
|
267
|
+
` const baseUrl = process.env.NXF_STUDIO_URL ?? ''`,
|
|
268
|
+
` const projectId = process.env.NXF_PROJECT_ID ?? ''`,
|
|
269
|
+
` const apiKey = process.env.NXF_API_KEY ?? ''`,
|
|
270
|
+
``,
|
|
271
|
+
` try {`,
|
|
272
|
+
` const res = await fetch(\`\${baseUrl}/api-public/v1/\${projectId}/auth/forgot-password\`, {`,
|
|
273
|
+
` method: 'POST',`,
|
|
274
|
+
` headers: { 'Content-Type': 'application/json', 'x-api-key': apiKey },`,
|
|
275
|
+
` body: JSON.stringify(body),`,
|
|
276
|
+
` cache: 'no-store',`,
|
|
277
|
+
` })`,
|
|
278
|
+
``,
|
|
279
|
+
` const data = await res.json()`,
|
|
280
|
+
` return NextResponse.json(data, { status: res.status })`,
|
|
281
|
+
` } catch {`,
|
|
282
|
+
` return NextResponse.json({ error: 'Network error. Please try again.' }, { status: 502 })`,
|
|
283
|
+
` }`,
|
|
284
|
+
`}`,
|
|
285
|
+
``,
|
|
286
|
+
].join('\n'),
|
|
287
|
+
category: 'customizable',
|
|
288
|
+
});
|
|
289
|
+
// ── reset-password ────────────────────────────────────────────────────
|
|
290
|
+
files.push({
|
|
291
|
+
path: 'app/api/auth/reset-password/route.ts',
|
|
292
|
+
content: [
|
|
293
|
+
`// GENERATED BY UNDERPEAKS CODEGEN v1.0.0`,
|
|
294
|
+
`// Proxies the actual password reset (with token) to the real backend.`,
|
|
295
|
+
`// No cookie — this only changes the password, it doesn't sign anyone in.`,
|
|
296
|
+
`// Regenerate: nxf generate nextjs`,
|
|
297
|
+
``,
|
|
298
|
+
`import { NextRequest, NextResponse } from 'next/server'`,
|
|
299
|
+
``,
|
|
300
|
+
`export async function POST(req: NextRequest) {`,
|
|
301
|
+
` let body: any`,
|
|
302
|
+
` try { body = await req.json() } catch {`,
|
|
303
|
+
` return NextResponse.json({ error: 'Invalid JSON body' }, { status: 400 })`,
|
|
304
|
+
` }`,
|
|
305
|
+
``,
|
|
306
|
+
` const baseUrl = process.env.NXF_STUDIO_URL ?? ''`,
|
|
307
|
+
` const projectId = process.env.NXF_PROJECT_ID ?? ''`,
|
|
308
|
+
` const apiKey = process.env.NXF_API_KEY ?? ''`,
|
|
309
|
+
``,
|
|
310
|
+
` try {`,
|
|
311
|
+
` const res = await fetch(\`\${baseUrl}/api-public/v1/\${projectId}/auth/reset-password\`, {`,
|
|
312
|
+
` method: 'POST',`,
|
|
313
|
+
` headers: { 'Content-Type': 'application/json', 'x-api-key': apiKey },`,
|
|
314
|
+
` body: JSON.stringify(body),`,
|
|
315
|
+
` cache: 'no-store',`,
|
|
316
|
+
` })`,
|
|
317
|
+
``,
|
|
318
|
+
` const data = await res.json()`,
|
|
319
|
+
` return NextResponse.json(data, { status: res.status })`,
|
|
320
|
+
` } catch {`,
|
|
321
|
+
` return NextResponse.json({ error: 'Network error. Please try again.' }, { status: 502 })`,
|
|
322
|
+
` }`,
|
|
323
|
+
`}`,
|
|
324
|
+
``,
|
|
325
|
+
].join('\n'),
|
|
326
|
+
category: 'customizable',
|
|
327
|
+
});
|
|
328
|
+
return files;
|
|
329
|
+
}
|
|
330
|
+
//# sourceMappingURL=api-auth-routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-auth-routes.js","sourceRoot":"","sources":["../../src/templates/api-auth-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-nav.d.ts","sourceRoot":"","sources":["../../src/templates/app-nav.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAExE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAKpF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAEnE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"app-nav.d.ts","sourceRoot":"","sources":["../../src/templates/app-nav.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAExE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAKpF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAEnE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,aAAa,CA+G9D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,aAAa,CAwCjE"}
|
|
@@ -30,6 +30,7 @@ function generateAppNav(pages) {
|
|
|
30
30
|
lines.push(`import { useState } from 'react'`);
|
|
31
31
|
lines.push(`import Link from 'next/link'`);
|
|
32
32
|
lines.push(`import { usePathname } from 'next/navigation'`);
|
|
33
|
+
lines.push(`import { Button } from '@/components/ui/button'`);
|
|
33
34
|
lines.push(``);
|
|
34
35
|
lines.push(`const NAV_LINKS = [`);
|
|
35
36
|
for (const page of navPages) {
|
|
@@ -48,13 +49,14 @@ function generateAppNav(pages) {
|
|
|
48
49
|
lines.push(` {/* Mobile top bar with menu toggle */}`);
|
|
49
50
|
lines.push(` <div className="flex items-center justify-between px-4 py-3 border-b border-border md:hidden">`);
|
|
50
51
|
lines.push(` <span className="font-semibold">Menu</span>`);
|
|
51
|
-
lines.push(` <
|
|
52
|
+
lines.push(` <Button`);
|
|
53
|
+
lines.push(` variant="ghost"`);
|
|
54
|
+
lines.push(` size="icon"`);
|
|
52
55
|
lines.push(` onClick={() => setOpen((v) => !v)}`);
|
|
53
56
|
lines.push(` aria-label="Toggle navigation"`);
|
|
54
|
-
lines.push(` className="p-2"`);
|
|
55
57
|
lines.push(` >`);
|
|
56
58
|
lines.push(` {open ? '✕' : '☰'}`);
|
|
57
|
-
lines.push(` </
|
|
59
|
+
lines.push(` </Button>`);
|
|
58
60
|
lines.push(` </div>`);
|
|
59
61
|
lines.push(``);
|
|
60
62
|
lines.push(` {/* Sidebar — persistent on desktop, toggleable on mobile */}`);
|