betterstart-cli 0.0.97 → 0.0.98

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.
Files changed (270) hide show
  1. package/dist/assets/adapters/next/integrations/mailchimp/integration.ts +1 -1
  2. package/dist/assets/adapters/next/integrations/r2/actions/r2.ts +1 -1
  3. package/dist/assets/adapters/next/integrations/r2/integration.ts +1 -1
  4. package/dist/assets/adapters/next/integrations/railway-bucket/actions/railway-bucket.ts +1 -1
  5. package/dist/assets/adapters/next/integrations/railway-bucket/integration.ts +1 -1
  6. package/dist/assets/adapters/next/integrations/resend/integration.ts +1 -1
  7. package/dist/assets/adapters/next/integrations/vercel-blob/actions/vercel-blob.ts +1 -1
  8. package/dist/assets/adapters/next/integrations/vercel-blob/integration.ts +1 -1
  9. package/dist/assets/adapters/next/presets/blog/preset.ts +1 -1
  10. package/dist/assets/adapters/next/presets/portfolio/preset.ts +1 -1
  11. package/dist/assets/adapters/next/templates/init/api/storage-read-route.ts +2 -1
  12. package/dist/assets/adapters/next/templates/init/api/upload-route.ts +3 -2
  13. package/dist/assets/adapters/next/templates/init/components/layouts/admin-providers.tsx +1 -1
  14. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-nav-link-skeleton.tsx +1 -1
  15. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar.tsx +1 -1
  16. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid.tsx +1 -1
  17. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-table-pagination.tsx +2 -2
  18. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-table.tsx +2 -5
  19. package/dist/assets/adapters/next/templates/init/components/shared/delete-dialog.tsx +1 -1
  20. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/copyable-code-block.tsx +2 -2
  21. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/dev-mode-code-mirror.tsx +2 -2
  22. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/lifecycle-hooks-tab.tsx +7 -17
  23. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/snippets-tab.tsx +3 -13
  24. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode-integrate.tsx +4 -4
  25. package/dist/assets/adapters/next/templates/init/components/shared/entity-filters-bar.tsx +1 -1
  26. package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-version-restore-dialog.tsx +1 -1
  27. package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-button.tsx +1 -1
  28. package/dist/assets/adapters/next/templates/init/components/shared/media/edit-media-dialog-content.tsx +2 -2
  29. package/dist/assets/adapters/next/templates/init/components/shared/media/edit-media-dialog.tsx +2 -2
  30. package/dist/assets/adapters/next/templates/init/components/shared/media/media-delete-dialog.tsx +2 -2
  31. package/dist/assets/adapters/next/templates/init/components/shared/media/media-delete-drawer.tsx +2 -2
  32. package/dist/assets/adapters/next/templates/init/components/shared/media/media-filters-bar.tsx +2 -2
  33. package/dist/assets/adapters/next/templates/init/components/shared/media/media-gallery-dialog.tsx +2 -2
  34. package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid-item.tsx +2 -2
  35. package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid-pagination.tsx +1 -1
  36. package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid.tsx +1 -1
  37. package/dist/assets/adapters/next/templates/init/components/shared/media/media-preview.tsx +1 -1
  38. package/dist/assets/adapters/next/templates/init/components/shared/media/media-url-importer.tsx +2 -2
  39. package/dist/assets/adapters/next/templates/init/components/shared/search-input.tsx +1 -1
  40. package/dist/assets/adapters/next/templates/init/components/shared/sort-order-dialog.tsx +3 -4
  41. package/dist/assets/adapters/next/templates/init/components/shared/sort-order-item.tsx +1 -1
  42. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-blockquote.ts +1 -70
  43. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-code-block.ts +1 -77
  44. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-color-highlight.ts +3 -51
  45. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-content-editor-media-insertion.ts +2 -2
  46. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-content-editor-slash-menu.ts +6 -8
  47. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-content-editor-source-mode.tsx +10 -8
  48. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-content-editor-table-add-controls.ts +4 -4
  49. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-content-editor.ts +7 -4
  50. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-heading-dropdown-menu.ts +3 -66
  51. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-heading.ts +1 -41
  52. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-is-breakpoint.ts +0 -8
  53. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-link-popover.ts +1 -83
  54. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-list-dropdown-menu.ts +3 -61
  55. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-list.ts +1 -43
  56. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-mark.ts +1 -72
  57. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-menu-navigation.ts +0 -35
  58. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-table-button.ts +2 -2
  59. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-tiptap-editor.ts +0 -11
  60. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-undo-redo.ts +1 -65
  61. package/dist/assets/adapters/next/templates/init/hooks/use-admin-theme.tsx +2 -4
  62. package/dist/assets/adapters/next/templates/init/hooks/use-dev-mode-integration.ts +1 -1
  63. package/dist/assets/adapters/next/templates/init/hooks/use-entity-versions.ts +1 -1
  64. package/dist/assets/adapters/next/templates/init/hooks/use-local-storage.ts +2 -7
  65. package/dist/assets/adapters/next/templates/init/hooks/use-media-filters-bar.ts +1 -1
  66. package/dist/assets/adapters/next/templates/init/hooks/use-media.ts +2 -2
  67. package/dist/assets/adapters/next/templates/init/hooks/use-page-boundary-blur-visibility.ts +1 -1
  68. package/dist/assets/adapters/next/templates/init/hooks/use-page-scroll-threshold.ts +1 -1
  69. package/dist/assets/adapters/next/templates/init/hooks/use-table-utils.ts +2 -2
  70. package/dist/assets/adapters/next/templates/init/hooks/use-upload.ts +6 -12
  71. package/dist/assets/adapters/next/templates/init/hooks/use-users.ts +1 -1
  72. package/dist/assets/adapters/next/templates/init/hooks/use-webhooks.ts +3 -2
  73. package/dist/assets/adapters/next/templates/init/lib/actions/audit/cleanup-audit-logs.ts +1 -1
  74. package/dist/assets/adapters/next/templates/init/lib/actions/audit/get-audit-logs.ts +1 -1
  75. package/dist/assets/adapters/next/templates/init/lib/actions/audit/record-audit-event.ts +1 -1
  76. package/dist/assets/adapters/next/templates/init/lib/actions/auth/auth.ts +4 -4
  77. package/dist/assets/adapters/next/templates/init/lib/actions/auth/middleware.ts +2 -10
  78. package/dist/assets/adapters/next/templates/init/lib/actions/email/form-delivery.ts +2 -2
  79. package/dist/assets/adapters/next/templates/init/lib/actions/email/provider.ts +1 -1
  80. package/dist/assets/adapters/next/templates/init/lib/actions/entity-versions/get-entity-versions.ts +1 -1
  81. package/dist/assets/adapters/next/templates/init/lib/actions/entity-versions/internal-create-entity-version.ts +1 -1
  82. package/dist/assets/adapters/next/templates/init/lib/actions/forms/get-all-form-settings.ts +1 -1
  83. package/dist/assets/adapters/next/templates/init/lib/actions/forms/get-form-settings.ts +1 -1
  84. package/dist/assets/adapters/next/templates/init/lib/actions/forms/upsert-form-settings.ts +1 -1
  85. package/dist/assets/adapters/next/templates/init/lib/actions/media/create-media.ts +2 -1
  86. package/dist/assets/adapters/next/templates/init/lib/actions/media/delete-media-bulk.ts +1 -1
  87. package/dist/assets/adapters/next/templates/init/lib/actions/media/delete-media.ts +1 -1
  88. package/dist/assets/adapters/next/templates/init/lib/actions/media/get-media-by-id.ts +1 -1
  89. package/dist/assets/adapters/next/templates/init/lib/actions/media/get-media-by-ids.ts +1 -1
  90. package/dist/assets/adapters/next/templates/init/lib/actions/media/get-media.ts +1 -1
  91. package/dist/assets/adapters/next/templates/init/lib/actions/media/update-media.ts +1 -1
  92. package/dist/assets/adapters/next/templates/init/lib/actions/profile/change-own-password.ts +1 -1
  93. package/dist/assets/adapters/next/templates/init/lib/actions/profile/update-email.ts +1 -1
  94. package/dist/assets/adapters/next/templates/init/lib/actions/storage/provider.ts +1 -1
  95. package/dist/assets/adapters/next/templates/init/lib/actions/upload/upload-files.ts +2 -2
  96. package/dist/assets/adapters/next/templates/init/lib/actions/upload/upload-media-from-url.ts +1 -1
  97. package/dist/assets/adapters/next/templates/init/lib/actions/users/change-user-password.ts +1 -1
  98. package/dist/assets/adapters/next/templates/init/lib/actions/users/create-user.ts +1 -1
  99. package/dist/assets/adapters/next/templates/init/lib/actions/users/delete-user.ts +1 -1
  100. package/dist/assets/adapters/next/templates/init/lib/actions/users/get-users.ts +1 -1
  101. package/dist/assets/adapters/next/templates/init/lib/actions/users/update-user-role.ts +1 -1
  102. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/create-webhook.ts +1 -1
  103. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/delete-webhook.ts +1 -1
  104. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/dispatch.ts +1 -2
  105. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/get-webhook-deliveries.ts +1 -1
  106. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/get-webhook-secret.ts +1 -1
  107. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/get-webhook-subscriptions.ts +1 -1
  108. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/get-webhooks.ts +1 -1
  109. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/regenerate-webhook-secret.ts +1 -1
  110. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/register.ts +2 -2
  111. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/send-test-webhook.ts +1 -1
  112. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/update-webhook.ts +1 -1
  113. package/dist/assets/adapters/next/templates/init/lib/db/client.ts +1 -1
  114. package/dist/assets/adapters/next/templates/init/lib/db/core/schema.ts +0 -24
  115. package/dist/assets/adapters/next/templates/init/lib/lifecycle-hooks/register.ts +0 -7
  116. package/dist/assets/adapters/next/templates/init/lib/lifecycle-hooks/runner.ts +1 -1
  117. package/dist/assets/adapters/next/templates/init/pages/forgot-password-form.tsx +1 -1
  118. package/dist/assets/adapters/next/templates/init/pages/login-form.tsx +1 -1
  119. package/dist/assets/adapters/next/templates/init/pages/media/media-page-content.tsx +4 -4
  120. package/dist/assets/adapters/next/templates/init/pages/profile/profile-form.tsx +1 -1
  121. package/dist/assets/adapters/next/templates/init/pages/reset-password-form.tsx +1 -1
  122. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-columns.tsx +1 -1
  123. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-page-content.tsx +1 -1
  124. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-page.tsx +1 -1
  125. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-table.tsx +3 -2
  126. package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-page-content.tsx +3 -2
  127. package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-page.tsx +1 -1
  128. package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-table.tsx +4 -3
  129. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhook-endpoint-dialog.tsx +1 -1
  130. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-columns.tsx +1 -1
  131. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-columns.tsx +1 -1
  132. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-page-content.tsx +1 -1
  133. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-page.tsx +1 -1
  134. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-table.tsx +2 -1
  135. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-page-content.tsx +1 -1
  136. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-page.tsx +1 -1
  137. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-table.tsx +2 -1
  138. package/dist/assets/adapters/next/templates/init/pages/users/change-password-dialog.tsx +1 -1
  139. package/dist/assets/adapters/next/templates/init/pages/users/columns.tsx +3 -2
  140. package/dist/assets/adapters/next/templates/init/pages/users/create-user-dialog.tsx +1 -1
  141. package/dist/assets/adapters/next/templates/init/pages/users/delete-user-dialog.tsx +1 -1
  142. package/dist/assets/adapters/next/templates/init/pages/users/edit-role-dialog.tsx +1 -1
  143. package/dist/assets/adapters/next/templates/init/pages/users/users-page-content.tsx +2 -1
  144. package/dist/assets/adapters/next/templates/init/pages/users/users-table.tsx +4 -3
  145. package/dist/assets/adapters/next/templates/init/types/index.ts +0 -5
  146. package/dist/assets/adapters/next/templates/init/utils/date/date.ts +1 -6
  147. package/dist/assets/adapters/next/templates/init/utils/editor/content-editor-rich-extensions.ts +2 -2
  148. package/dist/assets/adapters/next/templates/init/utils/editor/markdown.ts +5 -5
  149. package/dist/assets/adapters/next/templates/init/utils/editor/slash-commands.ts +2 -2
  150. package/dist/assets/adapters/next/templates/init/utils/editor/table-add-controls.ts +1 -1
  151. package/dist/assets/adapters/next/templates/init/utils/editor/tiptap.ts +8 -127
  152. package/dist/assets/adapters/next/templates/init/utils/media/query.ts +1 -1
  153. package/dist/assets/adapters/next/templates/init/utils/seo/seo.ts +0 -10
  154. package/dist/assets/adapters/next/templates/init/utils/shared/cn.ts +2 -1
  155. package/dist/assets/adapters/next/templates/init/utils/validation/validation.ts +0 -12
  156. package/dist/assets/shared-assets/react-admin/custom/content-editor/editor-toolbar.tsx +1 -1
  157. package/dist/assets/shared-assets/react-admin/custom/content-editor/horizontal-rule-button.tsx +1 -1
  158. package/dist/assets/shared-assets/react-admin/custom/content-editor/index.tsx +1 -1
  159. package/dist/assets/shared-assets/react-admin/custom/content-editor/main-toolbar-content.tsx +1 -1
  160. package/dist/assets/shared-assets/react-admin/custom/content-editor/math-bubble-menu.tsx +2 -2
  161. package/dist/assets/shared-assets/react-admin/custom/content-editor/math-button.tsx +1 -1
  162. package/dist/assets/shared-assets/react-admin/custom/content-editor/math-editor-controls.tsx +1 -1
  163. package/dist/assets/shared-assets/react-admin/custom/content-editor/math-popover-button.tsx +4 -3
  164. package/dist/assets/shared-assets/react-admin/custom/content-editor/remove-table-part-icon.tsx +1 -1
  165. package/dist/assets/shared-assets/react-admin/custom/content-editor/selection-bubble-menu.tsx +2 -2
  166. package/dist/assets/shared-assets/react-admin/custom/content-editor/slash-command-menu.tsx +3 -3
  167. package/dist/assets/shared-assets/react-admin/custom/content-editor/source-mode-dropdown-button.tsx +1 -1
  168. package/dist/assets/shared-assets/react-admin/custom/content-editor/source-mode.tsx +5 -11
  169. package/dist/assets/shared-assets/react-admin/custom/content-editor/table-add-controls.tsx +1 -1
  170. package/dist/assets/shared-assets/react-admin/custom/content-editor/table-bubble-menu.tsx +3 -3
  171. package/dist/assets/shared-assets/react-admin/custom/content-editor/table-button.tsx +1 -1
  172. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-extension/node-background-extension.ts +2 -25
  173. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-node/media-gallery-placeholder-node/media-gallery-placeholder-node-extension.ts +0 -20
  174. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-node/media-gallery-placeholder-node/media-gallery-placeholder-node.tsx +2 -2
  175. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-node/removable-image-node/removable-image-node.tsx +3 -3
  176. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/blockquote-button/blockquote-button.tsx +3 -18
  177. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/code-block-button/code-block-button.tsx +3 -18
  178. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/color-highlight-button.tsx +2 -37
  179. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover-button.tsx +3 -5
  180. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover-content.tsx +3 -9
  181. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover.tsx +6 -12
  182. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/highlight-color-button.tsx +2 -2
  183. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/highlight-colors.ts +2 -4
  184. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/source-color-highlight-popover.tsx +4 -9
  185. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/heading-dropdown-menu/heading-dropdown-menu-item.tsx +3 -2
  186. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/heading-dropdown-menu/heading-dropdown-menu.tsx +4 -19
  187. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/link-popover/link-button.tsx +3 -5
  188. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/link-popover/link-content.tsx +1 -1
  189. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/link-popover/link-control-popover.tsx +5 -3
  190. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/link-popover/link-main.tsx +1 -13
  191. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/link-popover/link-popover.tsx +5 -16
  192. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/list-dropdown-menu/list-dropdown-menu-item.tsx +3 -2
  193. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/list-dropdown-menu/list-dropdown-menu.tsx +4 -19
  194. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/mark-button/mark-button.tsx +3 -19
  195. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/undo-redo-button/undo-redo-button.tsx +3 -19
  196. package/dist/assets/shared-assets/react-admin/custom/date-picker.tsx +1 -3
  197. package/dist/assets/shared-assets/react-admin/custom/date-range-picker.tsx +2 -2
  198. package/dist/assets/shared-assets/react-admin/custom/gallery-field.tsx +5 -10
  199. package/dist/assets/shared-assets/react-admin/custom/icon-picker.tsx +7 -4
  200. package/dist/assets/shared-assets/react-admin/custom/media-field-empty-state.tsx +1 -1
  201. package/dist/assets/shared-assets/react-admin/custom/media-field.tsx +2 -2
  202. package/dist/assets/shared-assets/react-admin/custom/nested-object-list-field.tsx +1 -1
  203. package/dist/assets/shared-assets/react-admin/custom/placeholder-card.tsx +1 -1
  204. package/dist/assets/shared-assets/react-admin/custom/placeholder.tsx +1 -1
  205. package/dist/assets/shared-assets/react-admin/custom/progressive-blur.tsx +1 -1
  206. package/dist/assets/shared-assets/react-admin/custom/sortable-gallery-item.tsx +1 -1
  207. package/dist/assets/shared-assets/react-admin/custom/upload-dropzone.tsx +2 -2
  208. package/dist/assets/shared-assets/react-admin/ui/accordion.tsx +1 -1
  209. package/dist/assets/shared-assets/react-admin/ui/alert-dialog.tsx +1 -1
  210. package/dist/assets/shared-assets/react-admin/ui/alert.tsx +3 -2
  211. package/dist/assets/shared-assets/react-admin/ui/avatar.tsx +1 -1
  212. package/dist/assets/shared-assets/react-admin/ui/badge.tsx +3 -2
  213. package/dist/assets/shared-assets/react-admin/ui/breadcrumb.tsx +1 -1
  214. package/dist/assets/shared-assets/react-admin/ui/button-group.tsx +2 -1
  215. package/dist/assets/shared-assets/react-admin/ui/button.tsx +3 -2
  216. package/dist/assets/shared-assets/react-admin/ui/calendar.tsx +3 -2
  217. package/dist/assets/shared-assets/react-admin/ui/card.tsx +1 -1
  218. package/dist/assets/shared-assets/react-admin/ui/carousel.tsx +3 -2
  219. package/dist/assets/shared-assets/react-admin/ui/chart.tsx +1 -2
  220. package/dist/assets/shared-assets/react-admin/ui/checkbox.tsx +1 -1
  221. package/dist/assets/shared-assets/react-admin/ui/combobox.tsx +1 -1
  222. package/dist/assets/shared-assets/react-admin/ui/command.tsx +1 -1
  223. package/dist/assets/shared-assets/react-admin/ui/context-menu.tsx +1 -1
  224. package/dist/assets/shared-assets/react-admin/ui/dialog.tsx +1 -1
  225. package/dist/assets/shared-assets/react-admin/ui/direction.tsx +1 -1
  226. package/dist/assets/shared-assets/react-admin/ui/drawer.tsx +1 -1
  227. package/dist/assets/shared-assets/react-admin/ui/dropdown-menu.tsx +1 -1
  228. package/dist/assets/shared-assets/react-admin/ui/empty.tsx +2 -1
  229. package/dist/assets/shared-assets/react-admin/ui/field.tsx +2 -1
  230. package/dist/assets/shared-assets/react-admin/ui/form.tsx +4 -10
  231. package/dist/assets/shared-assets/react-admin/ui/hover-card.tsx +1 -1
  232. package/dist/assets/shared-assets/react-admin/ui/input-group.tsx +3 -2
  233. package/dist/assets/shared-assets/react-admin/ui/input-otp.tsx +1 -1
  234. package/dist/assets/shared-assets/react-admin/ui/input.tsx +1 -1
  235. package/dist/assets/shared-assets/react-admin/ui/item.tsx +3 -2
  236. package/dist/assets/shared-assets/react-admin/ui/label.tsx +1 -1
  237. package/dist/assets/shared-assets/react-admin/ui/menubar.tsx +1 -1
  238. package/dist/assets/shared-assets/react-admin/ui/native-select.tsx +1 -1
  239. package/dist/assets/shared-assets/react-admin/ui/navigation-menu.tsx +1 -1
  240. package/dist/assets/shared-assets/react-admin/ui/pagination.tsx +1 -1
  241. package/dist/assets/shared-assets/react-admin/ui/popover.tsx +1 -1
  242. package/dist/assets/shared-assets/react-admin/ui/progress.tsx +1 -1
  243. package/dist/assets/shared-assets/react-admin/ui/radio-group.tsx +1 -1
  244. package/dist/assets/shared-assets/react-admin/ui/resizable.tsx +1 -1
  245. package/dist/assets/shared-assets/react-admin/ui/scroll-area.tsx +1 -1
  246. package/dist/assets/shared-assets/react-admin/ui/select.tsx +1 -1
  247. package/dist/assets/shared-assets/react-admin/ui/separator.tsx +1 -1
  248. package/dist/assets/shared-assets/react-admin/ui/sheet.tsx +1 -1
  249. package/dist/assets/shared-assets/react-admin/ui/sidebar.tsx +3 -10
  250. package/dist/assets/shared-assets/react-admin/ui/slider.tsx +1 -1
  251. package/dist/assets/shared-assets/react-admin/ui/sonner.tsx +2 -1
  252. package/dist/assets/shared-assets/react-admin/ui/switch.tsx +1 -1
  253. package/dist/assets/shared-assets/react-admin/ui/table.tsx +1 -1
  254. package/dist/assets/shared-assets/react-admin/ui/tabs.tsx +3 -2
  255. package/dist/assets/shared-assets/react-admin/ui/textarea.tsx +1 -1
  256. package/dist/assets/shared-assets/react-admin/ui/toggle-group.tsx +2 -2
  257. package/dist/assets/shared-assets/react-admin/ui/toggle.tsx +3 -2
  258. package/dist/assets/shared-assets/react-admin/ui/tooltip.tsx +1 -1
  259. package/dist/{chunk-MJWUGEMK.js → chunk-AIQWGMU7.js} +136 -5
  260. package/dist/chunk-AIQWGMU7.js.map +1 -0
  261. package/dist/cli.js +1097 -1194
  262. package/dist/cli.js.map +1 -1
  263. package/dist/index.d.ts +1 -1
  264. package/dist/index.js +1 -1
  265. package/dist/index.js.map +1 -1
  266. package/dist/{template-reader-R2JIWUNK.js → template-reader-F2VFSDKV.js} +2 -2
  267. package/package.json +3 -3
  268. package/dist/assets/shared-assets/react-admin/dependencies.ts +0 -74
  269. package/dist/chunk-MJWUGEMK.js.map +0 -1
  270. /package/dist/{template-reader-R2JIWUNK.js.map → template-reader-F2VFSDKV.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../adapters/next/template-reader.ts","../core-engine/utils/cli-root.ts","../constants/cli.ts","../constants/patterns.ts","../constants/scaffolding.ts","../core-engine/utils/string.ts","../adapters/next/config/namespace.ts"],"sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { resolveCliAssetPath } from '@core-engine/utils/cli-root.js'\nimport {\n applyAdminNamespaceToContent,\n applyAdminNamespaceToPath\n} from '@next-adapter/config/namespace.js'\n\nexport function readTemplate(relativePath: string): string {\n return fs.readFileSync(\n path.join(resolveCliAssetPath('adapters', 'next', 'templates', 'init'), relativePath),\n 'utf-8'\n )\n}\n\nexport function applyNextCacheApiForVersion(content: string, nextMajorVersion: number): string {\n if (nextMajorVersion >= 16) {\n return content\n }\n\n return content\n .replace(\n /import \\{ cacheLife, cacheTag \\} from 'next\\/cache'\\n/g,\n \"import { unstable_cacheTag as cacheTag } from 'next/cache'\\n\"\n )\n .replace(/\\n {2}cacheLife\\('max'\\)/g, '')\n .replace(\n /import \\{ updateTag \\} from 'next\\/cache'\\n/g,\n \"import { revalidateTag } from 'next/cache'\\n\"\n )\n .replace(/revalidateTag\\(([^,\\n]+), \\{ expire: 0 \\}\\)/g, 'revalidateTag($1)')\n .replace(/\\bupdateTag\\(/g, 'revalidateTag(')\n}\n\nexport function readNamespacedTemplate(relativePath: string, namespace: string): string {\n return applyAdminNamespaceToContent(readTemplate(relativePath), namespace)\n}\n\nexport function namespacedTemplatePath(relativePath: string, namespace: string): string {\n return applyAdminNamespaceToPath(relativePath, namespace)\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport type { CliPackageJson } from '@cli-types/core-engine/utils.js'\nimport { CLI_PACKAGE_NAME } from '@cli-constants/cli.js'\nfunction findCliPackage(): { dir: string; pkg: CliPackageJson } | null {\n let dir = path.dirname(fileURLToPath(import.meta.url))\n\n for (;;) {\n const pkgPath = path.join(dir, 'package.json')\n if (fs.existsSync(pkgPath)) {\n try {\n const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8')) as CliPackageJson\n if (pkg.name === CLI_PACKAGE_NAME) {\n return { dir, pkg }\n }\n } catch {}\n }\n\n const parentDir = path.dirname(dir)\n if (parentDir === dir) {\n return null\n }\n dir = parentDir\n }\n}\n\nexport function findCliRoot(): string {\n const found = findCliPackage()\n if (found) {\n return found.dir\n }\n\n // Fallback: assume 2 levels up from dist/\n return path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..')\n}\n\nexport function getCurrentCliVersion(): string {\n return findCliPackage()?.pkg.version ?? '0.0.0'\n}\n\nexport function resolveCliAssetPath(...segments: string[]): string {\n const root = findCliRoot()\n const builtPath = path.join(root, 'dist', 'assets', ...segments)\n if (fs.existsSync(builtPath)) {\n return builtPath\n }\n\n return path.join(root, ...segments)\n}\n","export const CLI_PACKAGE_NAME = 'betterstart-cli'\nexport const REDACTED = '[redacted]'\n","// oxlint-disable-next-line no-control-regex -- needed to strip ANSI escape sequences from captured command output\nexport const ANSI_ESCAPE_PATTERN = /\\u001B\\[[0-?]*[ -/]*[@-~]/g\nexport const REMOVABLE_NAMESPACE_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/\nexport const SCHEMA_NAME_PATTERN = /^[a-z][a-zA-Z0-9-]*$/\nexport const NAMESPACE_PATTERN = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/\nexport const MODULE_SPECIFIER_PATTERN =\n /(\\bfrom\\s*|\\bimport\\s*|\\brequire\\s*\\(\\s*|\\bimport\\s*\\(\\s*)(['\"])([^'\"\\n]+)\\2/g\nexport const EXTERNAL_PACKAGE_PATTERN =\n /^(?:@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*(?:\\/[^'\"]*)?$/\nexport const DEV_PORT_FLAG_PATTERN = /(?:^|\\s)(?:--port(?:=|\\s+)|-p(?:=|\\s+)?)(\\d+)(?=\\s|$)/\nexport const DEV_PORT_ENV_PATTERN = /(?:^|\\s)PORT=(\\d+)(?=\\s|$)/\nexport const LOCAL_PROTOCOL_PATTERN = /^(workspace|link|file|portal):/\nexport const CONFIG_IMPORT_PATTERN =\n /^import\\s+\\{[^}]*\\bdefineConfig\\b[^}]*\\}\\s+from\\s+['\"]betterstart-cli['\"];?[^\\S\\n]*$/m\nexport const CONFIG_OBJECT_PATTERNS = [\n /\\b(?:const|let|var)\\s+\\w+\\s*:\\s*NextConfig\\s*=\\s*\\{/g,\n /\\b(?:const|let|var)\\s+nextConfig\\s*=\\s*\\{/g,\n /\\b(?:const|let|var)\\s+\\w+\\s*:\\s*NextConfig\\s*=\\s*(?:[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*)*\\(\\s*)+\\{/g,\n /\\b(?:const|let|var)\\s+nextConfig\\s*=\\s*(?:[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*)*\\(\\s*)+\\{/g,\n /export\\s+default\\s+\\{/g,\n /export\\s+default\\s+(?:[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*)*\\(\\s*)+\\{/g,\n /module\\.exports\\s*=\\s*\\{/g,\n /module\\.exports\\s*=\\s*(?:[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*)*\\(\\s*)+\\{/g\n]\n/**\n * On accounts without the Neon integration installed, the piped (non-TTY) `integration add` opens\n * the accept-terms page in a browser and polls until the user accepts, printing the URL in a\n * \"Visit this URL if the browser does not open\" line — the only signal that it is waiting.\n */\nexport const ACCEPT_TERMS_URL_PATTERN =\n /https:\\/\\/vercel\\.com\\/\\S+\\/integrations\\/accept-terms\\/\\S+/i\n/** Printed by the Vercel CLI once its accept-terms polling succeeds. */\nexport const TERMS_ACCEPTED_PATTERN = /terms accepted/i\n","export const DEFAULT_ADMIN_NAMESPACE = 'admin'\nexport const ADMIN_THEME_BLOCK = `\n@theme inline {\n --color-background: var(--background);\n --color-foreground: var(--foreground);\n --color-card: var(--card);\n --color-card-foreground: var(--card-foreground);\n --color-popover: var(--popover);\n --color-popover-foreground: var(--popover-foreground);\n --color-primary: var(--primary);\n --color-primary-foreground: var(--primary-foreground);\n --color-secondary: var(--secondary);\n --color-secondary-foreground: var(--secondary-foreground);\n --color-muted: var(--muted);\n --color-muted-foreground: var(--muted-foreground);\n --color-accent: var(--accent);\n --color-accent-foreground: var(--accent-foreground);\n --color-destructive: var(--destructive);\n --color-destructive-foreground: var(--destructive-foreground);\n --color-border: var(--border);\n --color-input: var(--input);\n --color-input-border: var(--input-border);\n --color-ring: var(--ring);\n --color-chart-1: var(--chart-1);\n --color-chart-2: var(--chart-2);\n --color-chart-3: var(--chart-3);\n --color-chart-4: var(--chart-4);\n --color-chart-5: var(--chart-5);\n --color-sidebar: var(--sidebar);\n --color-sidebar-foreground: var(--sidebar-foreground);\n --color-sidebar-primary: var(--sidebar-primary);\n --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);\n --color-sidebar-accent: var(--sidebar-accent);\n --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);\n --color-sidebar-border: var(--sidebar-border);\n --color-sidebar-ring: var(--sidebar-ring);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-md: calc(var(--radius) - 2px);\n --radius-lg: var(--radius);\n --radius-xl: calc(var(--radius) + 4px);\n}`\nexport const ADMIN_SHADOW_INPUT_UTILITY = `\n@utility shadow-input {\n --admin-shadow-input: rgba(0, 0, 0, 0.02) 0px 4px 8px -2px;\n --tw-shadow: var(--admin-shadow-input);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}`\nexport const DEPRECATED_ADMIN_PATH_ALIAS_SUFFIXES = ['/data/*', '/auth', '/auth/middleware']\nexport const BETTERSTART_ASSET_HOST = 'assets.betterstart.dev'\nexport const LEGACY_DEFAULT_AUTH_URL = 'http://localhost:3000'\nexport const DATABASE_URL_PLACEHOLDER = 'postgresql://...'\nexport const DEFAULT_DEV_PORT = 4242\nexport const MAIN_CSS_CANDIDATES = [\n 'src/app/globals.css',\n 'app/globals.css',\n 'src/app/global.css',\n 'app/global.css',\n 'src/app/app.css',\n 'app/app.css',\n 'src/globals.css',\n 'globals.css'\n]\nexport const CONFIG_IMPORT_SHIM = 'const defineConfig = <T>(config: T): T => config'\nexport const TIPTAP_CONTENT_EDITOR_DIRECTORIES = ['tiptap-extension', 'tiptap-node', 'tiptap-ui']\nexport const RAILWAY_BUCKET_ENV_KEYS = [\n 'BETTERSTART_RAILWAY_BUCKET_ENDPOINT',\n 'BETTERSTART_RAILWAY_BUCKET_ACCESS_KEY_ID',\n 'BETTERSTART_RAILWAY_BUCKET_SECRET_ACCESS_KEY',\n 'BETTERSTART_RAILWAY_BUCKET_NAME',\n 'BETTERSTART_RAILWAY_BUCKET_REGION',\n 'BETTERSTART_RAILWAY_BUCKET_URL_STYLE'\n] as const\nexport const R2_ENV_KEYS = [\n 'BETTERSTART_R2_ACCOUNT_ID',\n 'BETTERSTART_R2_ACCESS_KEY_ID',\n 'BETTERSTART_R2_SECRET_ACCESS_KEY',\n 'BETTERSTART_R2_BUCKET_NAME',\n 'BETTERSTART_R2_PUBLIC_URL'\n] as const\n","export function toPascalCase(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .split(/[-_\\s]+/)\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase())\n .join('')\n}\n\nexport function toCamelCase(str: string): string {\n const p = toPascalCase(str)\n return p.charAt(0).toLowerCase() + p.slice(1)\n}\n\nexport function singularize(str: string): string {\n if (str.endsWith('ies')) return `${str.slice(0, -3)}y`\n if (str.endsWith('ves')) return `${str.slice(0, -3)}f`\n if (\n str.endsWith('sses') ||\n str.endsWith('xes') ||\n str.endsWith('ches') ||\n str.endsWith('shes') ||\n str.endsWith('zes')\n )\n return str.slice(0, -2)\n if (str.endsWith('s') && !str.endsWith('ss')) return str.slice(0, -1)\n return str\n}\n\nexport function pluralize(str: string): string {\n if (str.endsWith('s') && !str.endsWith('ss')) return str\n if (str.endsWith('y') && !['ay', 'ey', 'iy', 'oy', 'uy'].some((v) => str.endsWith(v)))\n return `${str.slice(0, -1)}ies`\n if (str.endsWith('s') || str.endsWith('x') || str.endsWith('ch') || str.endsWith('sh'))\n return `${str}es`\n return `${str}s`\n}\n\nexport function toKebabCase(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/[\\s_]+/g, '-')\n .toLowerCase()\n}\n\nexport function toScreamingSnake(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, '$1_$2')\n .replace(/[\\s-]+/g, '_')\n .toUpperCase()\n}\n\nexport function quotePropertyName(name: string): string {\n return /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(name) ? name : `'${name}'`\n}\n\nexport function singularizeLabel(label: string): string {\n const words = label.split(' ')\n const lastWord = words[words.length - 1]\n words[words.length - 1] = singularize(lastWord.toLowerCase())\n words[words.length - 1] =\n words[words.length - 1].charAt(0).toUpperCase() + words[words.length - 1].slice(1)\n return words.join(' ')\n}\n\nexport function singleQuote(value: string): string {\n return `'${value.replace(/\\\\/g, '\\\\\\\\').replace(/'/g, \"\\\\'\")}'`\n}\n\nexport function escapeTemplateText(value: string): string {\n return value.replace(/\\\\/g, '\\\\\\\\').replace(/`/g, '\\\\`').replace(/\\$\\{/g, '\\\\${')\n}\n","import type { BetterstartNextPaths } from '@cli-types/core-engine/config.js'\nimport type { AdminNamespace } from '@cli-types/next-adapter/config.js'\nimport {\n EXTERNAL_PACKAGE_PATTERN,\n MODULE_SPECIFIER_PATTERN,\n NAMESPACE_PATTERN\n} from '@cli-constants/patterns.js'\nimport { DEFAULT_ADMIN_NAMESPACE } from '@cli-constants/scaffolding.js'\nimport { toCamelCase, toPascalCase, toScreamingSnake } from '@core-engine/utils/string.js'\nexport function validateAdminNamespace(value: string): string {\n const segment = value.trim()\n\n if (!NAMESPACE_PATTERN.test(segment)) {\n throw new Error(\n 'Namespace must be one lowercase kebab-case segment starting with a letter, for example \"admin\" or \"admin-panel\".'\n )\n }\n\n return segment\n}\n\nexport function validateAdminDashboardPath(value: string): string {\n const input = value.trim()\n const segment = input.startsWith('/') ? input.slice(1) : input\n\n if (input.startsWith('/') && input !== `/${segment}`) {\n throw new Error(\n 'Dashboard path must be one lowercase kebab-case segment starting with a letter, for example \"/admin\" or \"/admin-panel\".'\n )\n }\n\n try {\n return validateAdminNamespace(segment)\n } catch {\n throw new Error(\n 'Dashboard path must be one lowercase kebab-case segment starting with a letter, for example \"/admin\" or \"/admin-panel\".'\n )\n }\n}\n\nexport function resolveAdminNamespace(value = DEFAULT_ADMIN_NAMESPACE): AdminNamespace {\n const segment = validateAdminNamespace(value)\n const pascal = toPascalCase(segment)\n\n return {\n segment,\n alias: `@${segment}`,\n camel: toCamelCase(segment),\n pascal,\n screaming: toScreamingSnake(segment),\n routePath: `/${segment}`,\n apiPath: `/api/${segment}`,\n cssRootClass: `${segment}-root`,\n globalsFile: `${segment}-globals.css`,\n routeGroup: `(${segment})`\n }\n}\n\nexport function deriveNamespacePaths(\n namespaceValue: string,\n srcDir: boolean\n): BetterstartNextPaths {\n const namespace = resolveAdminNamespace(namespaceValue)\n const appBase = srcDir ? './src/app' : './app'\n\n return {\n admin: `./${namespace.segment}`,\n schemas: `./${namespace.segment}/schemas`,\n pages: `${appBase}/${namespace.routeGroup}/${namespace.segment}/(authenticated)`,\n login: `${appBase}/${namespace.routeGroup}/${namespace.segment}/(auth)/login`,\n api: `${appBase}/${namespace.routeGroup}/api/${namespace.segment}`\n }\n}\n\nexport function deriveMigrationsDir(namespaceValue: string): string {\n const namespace = resolveAdminNamespace(namespaceValue)\n return `./${namespace.segment}/lib/db/migrations`\n}\n\nfunction replaceAdminDashToken(value: string, namespace: AdminNamespace): string {\n return value.replaceAll('admin-', `${namespace.segment}-`)\n}\n\nfunction replaceAdminScreamingToken(value: string, namespace: AdminNamespace): string {\n return value.replaceAll('ADMIN_', `${namespace.screaming}_`)\n}\n\nfunction replaceAdminPascalToken(value: string, namespace: AdminNamespace): string {\n return value.replaceAll('Admin', namespace.pascal)\n}\n\nfunction replaceAdminCamelToken(value: string, namespace: AdminNamespace): string {\n return value.replace(/\\badmin(?=[A-Z])/g, namespace.camel)\n}\n\nfunction protectExistingNamespaceLiterals(\n value: string,\n namespace: AdminNamespace\n): {\n value: string\n restore: (output: string) => string\n} {\n if (namespace.segment === DEFAULT_ADMIN_NAMESPACE) {\n return {\n value,\n restore(output: string): string {\n return output\n }\n }\n }\n\n const literals = Array.from(\n new Set([\n namespace.alias,\n namespace.apiPath,\n namespace.routePath,\n namespace.routeGroup,\n namespace.cssRootClass,\n namespace.globalsFile,\n `${namespace.segment}/`,\n `${namespace.segment}-`,\n namespace.screaming,\n namespace.pascal,\n namespace.camel\n ])\n ).sort((a, b) => b.length - a.length)\n\n const replacements: Array<[string, string]> = []\n let protectedValue = value\n\n for (const [index, literal] of literals.entries()) {\n if (!protectedValue.includes(literal)) {\n continue\n }\n\n const token = `__BSTART_NS_${index}__`\n protectedValue = protectedValue.replaceAll(literal, token)\n replacements.push([token, literal])\n }\n\n return {\n value: protectedValue,\n restore(output: string): string {\n let restored = output\n for (const [token, literal] of replacements) {\n restored = restored.replaceAll(token, literal)\n }\n return restored\n }\n }\n}\n\nexport function applyAdminNamespaceToPath(filePath: string, namespaceValue: string): string {\n const namespace = resolveAdminNamespace(namespaceValue)\n\n const canonicalPath = filePath\n .replaceAll('lib/actions/auth/middleware.ts', 'lib/actions/auth/session.ts')\n .replaceAll('lib/actions/auth/auth.ts', 'lib/actions/auth/server.ts')\n .replaceAll('lib/actions/r2/r2.ts', 'lib/actions/r2/provider.ts')\n .replaceAll('lib/actions/resend/resend.ts', 'lib/actions/resend/provider.ts')\n .replaceAll(\n 'lib/actions/mailchimp/mailchimp.ts',\n 'lib/actions/mailchimp/add-to-mailchimp-audience.ts'\n )\n .replaceAll('(admin)', namespace.routeGroup)\n .replace(/@admin(?=\\/|$)/g, namespace.alias)\n .replace(/\\/api\\/admin(?=\\/|$)/g, namespace.apiPath)\n .replace(/(^|\\/)admin(?=\\/|$)/g, `$1${namespace.segment}`)\n\n const protectedNamespace = protectExistingNamespaceLiterals(canonicalPath, namespace)\n const namespacedPath = replaceAdminDashToken(protectedNamespace.value, namespace)\n\n return protectedNamespace.restore(namespacedPath)\n}\n\nfunction isExternalModuleSpecifier(specifier: string): boolean {\n if (specifier.startsWith('.') || specifier.startsWith('/')) {\n return false\n }\n\n if (new RegExp(`^@${DEFAULT_ADMIN_NAMESPACE}(?:/|$)`).test(specifier)) {\n return false\n }\n\n return EXTERNAL_PACKAGE_PATTERN.test(specifier)\n}\n\nfunction protectExternalModuleSpecifiers(content: string): {\n content: string\n restore: (value: string) => string\n} {\n const replacements: Array<[string, string]> = []\n\n const protectedContent = content.replace(\n MODULE_SPECIFIER_PATTERN,\n (match, prefix: string, quote: string, specifier: string) => {\n if (!isExternalModuleSpecifier(specifier)) {\n return match\n }\n\n const token = `__BETTERSTART_EXTERNAL_MODULE_${replacements.length}__`\n replacements.push([token, specifier])\n return `${prefix}${quote}${token}${quote}`\n }\n )\n\n return {\n content: protectedContent,\n restore(value: string): string {\n let restored = value\n for (const [token, specifier] of replacements) {\n restored = restored.replaceAll(token, specifier)\n }\n return restored\n }\n }\n}\n\nfunction protectAdminRoleLiterals(content: string): {\n content: string\n restore: (value: string) => string\n} {\n const protectedValues = [\n 'UserRole.ADMIN',\n \"'admin'\",\n '\"admin\"',\n '`admin`',\n '>Admin</SelectItem>',\n 'Manage admin users and roles'\n ]\n\n const replacements: Array<[string, string]> = []\n let protectedContent = content\n\n for (const [index, value] of protectedValues.entries()) {\n if (!protectedContent.includes(value)) {\n continue\n }\n\n const token = `__BETTERSTART_NAMESPACE_PROTECTED_${index}__`\n protectedContent = protectedContent.replaceAll(value, token)\n replacements.push([token, value])\n }\n\n return {\n content: protectedContent,\n restore(value: string): string {\n let restored = value\n for (const [token, original] of replacements) {\n restored = restored.replaceAll(token, original)\n }\n return restored\n }\n }\n}\n\nexport function applyAdminNamespaceToContent(content: string, namespaceValue: string): string {\n const namespace = resolveAdminNamespace(namespaceValue)\n const { content: externalSafeContent, restore: restoreExternalModules } =\n protectExternalModuleSpecifiers(content)\n const { content: protectedContent, restore } = protectAdminRoleLiterals(externalSafeContent)\n\n const canonicalContent = protectedContent\n .replaceAll('MediaListParams', `${namespace.pascal}MediaQuery`)\n .replaceAll('MediaListResult', `${namespace.pascal}MediaPage`)\n .replaceAll(\n `${namespace.pascal}MediaQuery, ${namespace.pascal}MediaPage`,\n `${namespace.pascal}MediaPage, ${namespace.pascal}MediaQuery`\n )\n .replaceAll('UserData', 'User')\n .replaceAll('UsersResponse', 'UsersPage')\n .replaceAll('SettingData', 'Setting')\n .replaceAll('UpsertSettingInput', 'SettingUpsertInput')\n .replaceAll('UpsertSettingResult', 'SettingUpsertResult')\n .replace(/\\bAdminThemeProvider\\b/g, `${namespace.pascal}ThemeProvider`)\n .replace(/\\bAdminThemeContext\\b/g, `${namespace.pascal}ThemeContext`)\n .replace(\n /import\\s+\\{\\s*admin\\s*\\}\\s+from\\s+(['\"])@admin\\/utils\\/app\\/admin\\1/g,\n (_match, quote: string) =>\n `import { ${namespace.camel} } from ${quote}${namespace.alias}/utils/app/${namespace.camel}${quote}`\n )\n .replace(/\\badmin(?=\\.name\\b)/g, namespace.camel)\n .replaceAll('@admin/auth/middleware', `${namespace.alias}/auth/session`)\n .replaceAll('@admin/auth/auth', `${namespace.alias}/auth/server`)\n .replaceAll('@admin/auth/client', `${namespace.alias}/auth/client`)\n .replace(/@admin\\/auth(?=['\"`\\s)]|$)/g, `${namespace.alias}/auth/server`)\n .replaceAll(\n \"import { auth, type User } from './auth'\",\n \"import { auth, type User } from './server'\"\n )\n .replace(/@admin(?=\\/|$)/g, namespace.alias)\n .replace(/\\/api\\/admin(?=\\/|['\"`]|$)/g, namespace.apiPath)\n .replace(/(^|\\/)admin(?=\\/|['\"`]|$)/g, `$1${namespace.segment}`)\n .replaceAll('(admin)', namespace.routeGroup)\n\n const protectedNamespace = protectExistingNamespaceLiterals(canonicalContent, namespace)\n const namespacedContent = replaceAdminCamelToken(\n replaceAdminPascalToken(\n replaceAdminScreamingToken(\n replaceAdminDashToken(protectedNamespace.value, namespace),\n namespace\n ),\n namespace\n ),\n namespace\n )\n\n return restoreExternalModules(restore(protectedNamespace.restore(namespacedContent)))\n}\n"],"mappings":"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","names":["fs","path","fs","path"]}