@nebulit/embuilder 0.1.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +254 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +138 -0
- package/package.json +49 -0
- package/templates/.claude/hooks/QUICKSTART.md +256 -0
- package/templates/.claude/hooks/README.md +533 -0
- package/templates/.claude/hooks/analyze-commit.sh +22 -0
- package/templates/.claude/hooks/analyze-commit.ts +518 -0
- package/templates/.claude/hooks/analyzers/README.md +198 -0
- package/templates/.claude/hooks/analyzers/code-quality-checker.ts +154 -0
- package/templates/.claude/hooks/analyzers/code-quality.md +54 -0
- package/templates/.claude/hooks/analyzers/commit-blocker-example.ts.disabled +110 -0
- package/templates/.claude/hooks/analyzers/commit-policy.md +49 -0
- package/templates/.claude/hooks/analyzers/event-model-validator.md +49 -0
- package/templates/.claude/hooks/analyzers/event-model-validator.ts +169 -0
- package/templates/.claude/hooks/analyzers/example-logger.ts +70 -0
- package/templates/.claude/hooks/analyzers/slice-scope-validator.md +81 -0
- package/templates/.claude/hooks/check-review-result.sh +47 -0
- package/templates/.claude/hooks/prepare-review.sh +34 -0
- package/templates/.claude/hooks/review-agent-prompt.md +42 -0
- package/templates/.claude/hooks/run-review-agent.sh +124 -0
- package/templates/.claude/settings.local.json +37 -0
- package/templates/.claude/skills/help/README.md +84 -0
- package/templates/.claude/skills/help/SKILL.md +393 -0
- package/templates/.claude/skills/help/templates/demo-config.json +6753 -0
- package/templates/.claude/skills/sample-slices/SKILL.md +8 -0
- package/templates/.claude/skills/sample-slices/templates/.slices/Library/addbook/code-slice.json +124 -0
- package/templates/.claude/skills/sample-slices/templates/.slices/Library/addbook/slice.json +255 -0
- package/templates/.claude/skills/sample-slices/templates/.slices/Library/availablebooks/slice.json +107 -0
- package/templates/.claude/skills/sample-slices/templates/.slices/index.json +20 -0
- package/templates/.claude/skills/sample-slices/templates/Cart/additem/slice.json +979 -0
- package/templates/.claude/skills/sample-slices/templates/Cart/archiveitem/slice.json +529 -0
- package/templates/.claude/skills/sample-slices/templates/Cart/cartitems/slice.json +1072 -0
- package/templates/.claude/skills/sample-slices/templates/Cart/cartwithproducts/slice.json +394 -0
- package/templates/.claude/skills/sample-slices/templates/Cart/changedprices/slice.json +88 -0
- package/templates/.claude/skills/sample-slices/templates/Cart/changeinventory/slice.json +264 -0
- package/templates/.claude/skills/sample-slices/templates/Cart/changeprice/slice.json +308 -0
- package/templates/.claude/skills/sample-slices/templates/Cart/clearcart/slice.json +358 -0
- package/templates/.claude/skills/sample-slices/templates/Cart/inventories/slice.json +203 -0
- package/templates/.claude/skills/sample-slices/templates/Cart/publishcart/slice.json +876 -0
- package/templates/.claude/skills/sample-slices/templates/Cart/removeitem/slice.json +560 -0
- package/templates/.claude/skills/sample-slices/templates/Cart/submitcart/slice.json +708 -0
- package/templates/.claude/skills/sample-slices/templates/Cart/submittedcartdata/slice.json +399 -0
- package/templates/.claude/skills/sample-slices/templates/index.json +108 -0
- package/templates/.claude/skills/slice-automation/SKILL.md +49 -0
- package/templates/.claude/skills/slice-state-change/SKILL.md +369 -0
- package/templates/.claude/skills/slice-state-change/templates/AddLocation/AddLocation.test.ts.sample +76 -0
- package/templates/.claude/skills/slice-state-change/templates/AddLocation/AddLocationCommand.ts.sample +84 -0
- package/templates/.claude/skills/slice-state-change/templates/AddLocation/routes.ts.sample +73 -0
- package/templates/.claude/skills/slice-state-change/templates/README.md +46 -0
- package/templates/.claude/skills/slice-state-view/SKILL.md +336 -0
- package/templates/.claude/skills/slice-state-view/templates/Locations/Locations.test.ts.sample +84 -0
- package/templates/.claude/skills/slice-state-view/templates/Locations/LocationsProjection.ts.sample +50 -0
- package/templates/.claude/skills/slice-state-view/templates/Locations/routes.ts.sample +46 -0
- package/templates/.claude/skills/slice-state-view/templates/README.md +109 -0
- package/templates/.claude/skills/slice-state-view/templates/Tables/Tables.test.ts.sample +104 -0
- package/templates/.claude/skills/slice-state-view/templates/Tables/TablesProjection.ts.sample +59 -0
- package/templates/.claude/skills/slice-state-view/templates/Tables/routes.ts.sample +46 -0
- package/templates/.claude/skills/slice-state-view/templates/V2__tables.sql +7 -0
- package/templates/.claude/skills/slice-state-view/templates/V8__locations.sql +7 -0
- package/templates/.claude/skills/test-analyzer/SKILL.md +373 -0
- package/templates/.claude/skills/test-analyzer/examples/specification-format.md +143 -0
- package/templates/.claude/skills/test-analyzer/examples/state-change-example.md +111 -0
- package/templates/.claude/skills/test-analyzer/examples/state-view-example.md +122 -0
- package/templates/AGENTS.md +110 -0
- package/templates/Claude.md +58 -0
- package/templates/README.md +178 -0
- package/templates/backend/.env +9 -0
- package/templates/backend/BACKEND_AUTH_SETUP.md +183 -0
- package/templates/backend/SWAGGER.md +213 -0
- package/templates/backend/eslint.config.mjs +31 -0
- package/templates/backend/flyway.conf +17 -0
- package/templates/backend/package.json +44 -0
- package/templates/backend/prd.json.example +64 -0
- package/templates/backend/public/assets/images/banner.png +0 -0
- package/templates/backend/public/assets/logo.png +0 -0
- package/templates/backend/public/file.svg +4 -0
- package/templates/backend/public/globe.svg +12 -0
- package/templates/backend/public/next.svg +6 -0
- package/templates/backend/public/vercel.svg +3 -0
- package/templates/backend/public/window.svg +5 -0
- package/templates/backend/server.ts +129 -0
- package/templates/backend/setup-env.sh +50 -0
- package/templates/backend/src/common/assertions.ts +6 -0
- package/templates/backend/src/common/db.ts +1 -0
- package/templates/backend/src/common/loadPostgresEventstore.ts +16 -0
- package/templates/backend/src/common/parseEndpoint.ts +51 -0
- package/templates/backend/src/common/replay.ts +9 -0
- package/templates/backend/src/common/routes.ts +19 -0
- package/templates/backend/src/common/testHelpers.ts +53 -0
- package/templates/backend/src/core/readmodel.ts +28 -0
- package/templates/backend/src/core/types.ts +26 -0
- package/templates/backend/src/process/process.ts +53 -0
- package/templates/backend/src/supabase/LoginHandler.ts +36 -0
- package/templates/backend/src/supabase/ProtectedPageProps.ts +21 -0
- package/templates/backend/src/supabase/README.md +171 -0
- package/templates/backend/src/supabase/api.ts +63 -0
- package/templates/backend/src/supabase/authMiddleware.ts +53 -0
- package/templates/backend/src/supabase/component.ts +12 -0
- package/templates/backend/src/supabase/requireUser.ts +72 -0
- package/templates/backend/src/supabase/serverProps.ts +25 -0
- package/templates/backend/src/supabase/staticProps.ts +10 -0
- package/templates/backend/src/swagger.ts +34 -0
- package/templates/backend/src/util/assertions.ts +6 -0
- package/templates/backend/supabase/config.toml +295 -0
- package/templates/backend/supabase/migrations/20260121155918593_catalogentries.sql.sample +23 -0
- package/templates/backend/supabase/seed.sql +1 -0
- package/templates/backend/tsconfig.json +31 -0
- package/templates/frontend/.env.development +3 -0
- package/templates/frontend/AGENTS.md +7 -0
- package/templates/frontend/README.md +73 -0
- package/templates/frontend/components.json +20 -0
- package/templates/frontend/eslint.config.js +26 -0
- package/templates/frontend/index.html +18 -0
- package/templates/frontend/package-lock.json +8347 -0
- package/templates/frontend/package.json +94 -0
- package/templates/frontend/postcss.config.js +6 -0
- package/templates/frontend/public/favicon.ico +0 -0
- package/templates/frontend/public/logo.png +0 -0
- package/templates/frontend/public/placeholder.svg +1 -0
- package/templates/frontend/public/robots.txt +14 -0
- package/templates/frontend/src/App.css +42 -0
- package/templates/frontend/src/App.tsx +47 -0
- package/templates/frontend/src/components/NavLink.tsx +28 -0
- package/templates/frontend/src/components/ProtectedRoute.tsx +24 -0
- package/templates/frontend/src/components/calendar/Calendar.tsx +302 -0
- package/templates/frontend/src/components/layout/DashboardLayout.tsx +21 -0
- package/templates/frontend/src/components/layout/Header.tsx +45 -0
- package/templates/frontend/src/components/layout/Sidebar.tsx +82 -0
- package/templates/frontend/src/components/tables/ReservationTemplates.tsx +189 -0
- package/templates/frontend/src/components/ui/accordion.tsx +52 -0
- package/templates/frontend/src/components/ui/alert-dialog.tsx +104 -0
- package/templates/frontend/src/components/ui/alert.tsx +43 -0
- package/templates/frontend/src/components/ui/aspect-ratio.tsx +5 -0
- package/templates/frontend/src/components/ui/avatar.tsx +38 -0
- package/templates/frontend/src/components/ui/badge.tsx +29 -0
- package/templates/frontend/src/components/ui/breadcrumb.tsx +90 -0
- package/templates/frontend/src/components/ui/button.tsx +47 -0
- package/templates/frontend/src/components/ui/calendar.tsx +54 -0
- package/templates/frontend/src/components/ui/card.tsx +43 -0
- package/templates/frontend/src/components/ui/carousel.tsx +224 -0
- package/templates/frontend/src/components/ui/chart.tsx +303 -0
- package/templates/frontend/src/components/ui/checkbox.tsx +26 -0
- package/templates/frontend/src/components/ui/collapsible.tsx +9 -0
- package/templates/frontend/src/components/ui/command.tsx +132 -0
- package/templates/frontend/src/components/ui/context-menu.tsx +178 -0
- package/templates/frontend/src/components/ui/dialog.tsx +95 -0
- package/templates/frontend/src/components/ui/drawer.tsx +87 -0
- package/templates/frontend/src/components/ui/dropdown-menu.tsx +179 -0
- package/templates/frontend/src/components/ui/form.tsx +129 -0
- package/templates/frontend/src/components/ui/hover-card.tsx +27 -0
- package/templates/frontend/src/components/ui/input-otp.tsx +61 -0
- package/templates/frontend/src/components/ui/input.tsx +22 -0
- package/templates/frontend/src/components/ui/label.tsx +17 -0
- package/templates/frontend/src/components/ui/menubar.tsx +207 -0
- package/templates/frontend/src/components/ui/navigation-menu.tsx +120 -0
- package/templates/frontend/src/components/ui/pagination.tsx +81 -0
- package/templates/frontend/src/components/ui/popover.tsx +29 -0
- package/templates/frontend/src/components/ui/progress.tsx +23 -0
- package/templates/frontend/src/components/ui/radio-group.tsx +36 -0
- package/templates/frontend/src/components/ui/resizable.tsx +37 -0
- package/templates/frontend/src/components/ui/scroll-area.tsx +38 -0
- package/templates/frontend/src/components/ui/select.tsx +143 -0
- package/templates/frontend/src/components/ui/separator.tsx +20 -0
- package/templates/frontend/src/components/ui/sheet.tsx +107 -0
- package/templates/frontend/src/components/ui/sidebar.tsx +637 -0
- package/templates/frontend/src/components/ui/skeleton.tsx +7 -0
- package/templates/frontend/src/components/ui/slider.tsx +23 -0
- package/templates/frontend/src/components/ui/sonner.tsx +27 -0
- package/templates/frontend/src/components/ui/stat-card.tsx +44 -0
- package/templates/frontend/src/components/ui/switch.tsx +27 -0
- package/templates/frontend/src/components/ui/table.tsx +72 -0
- package/templates/frontend/src/components/ui/tabs.tsx +53 -0
- package/templates/frontend/src/components/ui/textarea.tsx +21 -0
- package/templates/frontend/src/components/ui/toast.tsx +111 -0
- package/templates/frontend/src/components/ui/toaster.tsx +24 -0
- package/templates/frontend/src/components/ui/toggle-group.tsx +49 -0
- package/templates/frontend/src/components/ui/toggle.tsx +37 -0
- package/templates/frontend/src/components/ui/tooltip.tsx +28 -0
- package/templates/frontend/src/components/ui/use-toast.ts +3 -0
- package/templates/frontend/src/contexts/AuthContext.tsx +94 -0
- package/templates/frontend/src/contexts/RefreshContext.tsx +236 -0
- package/templates/frontend/src/hooks/api/index.ts +2 -0
- package/templates/frontend/src/hooks/api/useLocations.ts +15 -0
- package/templates/frontend/src/hooks/use-mobile.tsx +19 -0
- package/templates/frontend/src/hooks/use-toast.ts +186 -0
- package/templates/frontend/src/hooks/useApiContext.ts +11 -0
- package/templates/frontend/src/index.css +118 -0
- package/templates/frontend/src/integrations/supabase/client.ts +9 -0
- package/templates/frontend/src/lib/api-client.ts +136 -0
- package/templates/frontend/src/lib/api.ts +1028 -0
- package/templates/frontend/src/lib/utils.ts +6 -0
- package/templates/frontend/src/main.tsx +5 -0
- package/templates/frontend/src/pages/Auth.tsx +408 -0
- package/templates/frontend/src/pages/Dashboard.tsx +168 -0
- package/templates/frontend/src/pages/Menus.tsx +224 -0
- package/templates/frontend/src/pages/NotFound.tsx +24 -0
- package/templates/frontend/src/pages/Register.tsx +285 -0
- package/templates/frontend/src/test/example.test.ts +0 -0
- package/templates/frontend/src/test/setup.ts +15 -0
- package/templates/frontend/src/types/index.ts +8 -0
- package/templates/frontend/src/vite-env.d.ts +1 -0
- package/templates/frontend/tailwind.config.ts +101 -0
- package/templates/frontend/tsconfig.app.json +31 -0
- package/templates/frontend/tsconfig.json +16 -0
- package/templates/frontend/tsconfig.node.json +22 -0
- package/templates/frontend/vite.config.ts +21 -0
- package/templates/frontend/vitest.config.ts +16 -0
- package/templates/init.sh +1 -0
- package/templates/prompt.md +139 -0
- package/templates/ralph.sh +120 -0
- package/templates/server.mjs +505 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
# For detailed configuration reference documentation, visit:
|
|
2
|
+
# https://supabase.com/docs/guides/local-development/cli/config
|
|
3
|
+
# A string used to distinguish different Supabase projects on the same host. Defaults to the
|
|
4
|
+
# working directory name when running `supabase init`.
|
|
5
|
+
project_id = "Cart"
|
|
6
|
+
|
|
7
|
+
[api]
|
|
8
|
+
enabled = true
|
|
9
|
+
# Port to use for the API URL.
|
|
10
|
+
port = 54321
|
|
11
|
+
# Schemas to expose in your API. Tables, views and stored procedures in this schema will get API
|
|
12
|
+
# endpoints. `public` and `graphql_public` schemas are included by default.
|
|
13
|
+
schemas = ["public", "graphql_public"]
|
|
14
|
+
# Extra schemas to add to the search_path of every request.
|
|
15
|
+
extra_search_path = ["public", "extensions"]
|
|
16
|
+
# The maximum number of rows returns from a view, table, or stored procedure. Limits payload size
|
|
17
|
+
# for accidental or malicious requests.
|
|
18
|
+
max_rows = 1000
|
|
19
|
+
|
|
20
|
+
[api.tls]
|
|
21
|
+
# Enable HTTPS endpoints locally using a self-signed certificate.
|
|
22
|
+
enabled = false
|
|
23
|
+
|
|
24
|
+
[db]
|
|
25
|
+
# Port to use for the local database URL.
|
|
26
|
+
port = 54322
|
|
27
|
+
# Port used by db diff command to initialize the shadow database.
|
|
28
|
+
shadow_port = 54320
|
|
29
|
+
# The database major version to use. This has to be the same as your remote database's. Run `SHOW
|
|
30
|
+
# server_version;` on the remote database to check.
|
|
31
|
+
major_version = 15
|
|
32
|
+
|
|
33
|
+
[db.pooler]
|
|
34
|
+
enabled = false
|
|
35
|
+
# Port to use for the local connection pooler.
|
|
36
|
+
port = 54329
|
|
37
|
+
# Specifies when a server connection can be reused by other clients.
|
|
38
|
+
# Configure one of the supported pooler modes: `transaction`, `session`.
|
|
39
|
+
pool_mode = "transaction"
|
|
40
|
+
# How many server connections to allow per user/database pair.
|
|
41
|
+
default_pool_size = 20
|
|
42
|
+
# Maximum number of client connections allowed.
|
|
43
|
+
max_client_conn = 100
|
|
44
|
+
|
|
45
|
+
# [db.vault]
|
|
46
|
+
# secret_key = "env(SECRET_VALUE)"
|
|
47
|
+
|
|
48
|
+
[db.migrations]
|
|
49
|
+
# Specifies an ordered list of schema files that describe your database.
|
|
50
|
+
# Supports glob patterns relative to supabase directory: "./schemas/*.sql"
|
|
51
|
+
schema_paths = []
|
|
52
|
+
|
|
53
|
+
[db.seed]
|
|
54
|
+
# If enabled, seeds the database after migrations during a db reset.
|
|
55
|
+
enabled = true
|
|
56
|
+
# Specifies an ordered list of seed files to load during db reset.
|
|
57
|
+
# Supports glob patterns relative to supabase directory: "./seeds/*.sql"
|
|
58
|
+
sql_paths = ["./seed.sql"]
|
|
59
|
+
|
|
60
|
+
[realtime]
|
|
61
|
+
enabled = true
|
|
62
|
+
# Bind realtime via either IPv4 or IPv6. (default: IPv4)
|
|
63
|
+
# ip_version = "IPv6"
|
|
64
|
+
# The maximum length in bytes of HTTP request headers. (default: 4096)
|
|
65
|
+
# max_header_length = 4096
|
|
66
|
+
|
|
67
|
+
[studio]
|
|
68
|
+
enabled = true
|
|
69
|
+
# Port to use for Supabase Studio.
|
|
70
|
+
port = 54323
|
|
71
|
+
# External URL of the API server that frontend connects to.
|
|
72
|
+
api_url = "http://127.0.0.1"
|
|
73
|
+
# OpenAI API Key to use for Supabase AI in the Supabase Studio.
|
|
74
|
+
openai_api_key = "env(OPENAI_API_KEY)"
|
|
75
|
+
|
|
76
|
+
# Email testing server. Emails sent with the local dev setup are not actually sent - rather, they
|
|
77
|
+
# are monitored, and you can view the emails that would have been sent from the web interface.
|
|
78
|
+
[inbucket]
|
|
79
|
+
enabled = true
|
|
80
|
+
# Port to use for the email testing server web interface.
|
|
81
|
+
port = 54324
|
|
82
|
+
# Uncomment to expose additional ports for testing user applications that send emails.
|
|
83
|
+
# smtp_port = 54325
|
|
84
|
+
# pop3_port = 54326
|
|
85
|
+
# admin_email = "admin@email.com"
|
|
86
|
+
# sender_name = "Admin"
|
|
87
|
+
|
|
88
|
+
[storage]
|
|
89
|
+
enabled = true
|
|
90
|
+
# The maximum file size allowed (e.g. "5MB", "500KB").
|
|
91
|
+
file_size_limit = "50MiB"
|
|
92
|
+
|
|
93
|
+
# Image transformation API is available to Supabase Pro plan.
|
|
94
|
+
# [storage.image_transformation]
|
|
95
|
+
# enabled = true
|
|
96
|
+
|
|
97
|
+
# Uncomment to configure local storage buckets
|
|
98
|
+
# [storage.buckets.images]
|
|
99
|
+
# public = false
|
|
100
|
+
# file_size_limit = "50MiB"
|
|
101
|
+
# allowed_mime_types = ["image/png", "image/jpeg"]
|
|
102
|
+
# objects_path = "./images"
|
|
103
|
+
|
|
104
|
+
[auth]
|
|
105
|
+
enabled = true
|
|
106
|
+
# The base URL of your website. Used as an allow-list for redirects and for constructing URLs used
|
|
107
|
+
# in emails.
|
|
108
|
+
site_url = "http://127.0.0.1:3000"
|
|
109
|
+
# A list of *exact* URLs that auth providers are permitted to redirect to post authentication.
|
|
110
|
+
additional_redirect_urls = ["https://127.0.0.1:3000"]
|
|
111
|
+
# How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 (1 week).
|
|
112
|
+
jwt_expiry = 3600
|
|
113
|
+
# If disabled, the refresh token will never expire.
|
|
114
|
+
enable_refresh_token_rotation = true
|
|
115
|
+
# Allows refresh tokens to be reused after expiry, up to the specified interval in seconds.
|
|
116
|
+
# Requires enable_refresh_token_rotation = true.
|
|
117
|
+
refresh_token_reuse_interval = 10
|
|
118
|
+
# Allow/disallow new user signups to your project.
|
|
119
|
+
enable_signup = true
|
|
120
|
+
# Allow/disallow anonymous sign-ins to your project.
|
|
121
|
+
enable_anonymous_sign_ins = false
|
|
122
|
+
# Allow/disallow testing manual linking of accounts
|
|
123
|
+
enable_manual_linking = false
|
|
124
|
+
# Passwords shorter than this value will be rejected as weak. Minimum 6, recommended 8 or more.
|
|
125
|
+
minimum_password_length = 6
|
|
126
|
+
# Passwords that do not meet the following requirements will be rejected as weak. Supported values
|
|
127
|
+
# are: `letters_digits`, `lower_upper_letters_digits`, `lower_upper_letters_digits_symbols`
|
|
128
|
+
password_requirements = ""
|
|
129
|
+
|
|
130
|
+
# Configure one of the supported captcha providers: `hcaptcha`, `turnstile`.
|
|
131
|
+
# [auth.captcha]
|
|
132
|
+
# enabled = true
|
|
133
|
+
# provider = "hcaptcha"
|
|
134
|
+
# secret = ""
|
|
135
|
+
|
|
136
|
+
[auth.email]
|
|
137
|
+
# Allow/disallow new user signups via email to your project.
|
|
138
|
+
enable_signup = true
|
|
139
|
+
# If enabled, a user will be required to confirm any email change on both the old, and new email
|
|
140
|
+
# addresses. If disabled, only the new email is required to confirm.
|
|
141
|
+
double_confirm_changes = true
|
|
142
|
+
# If enabled, users need to confirm their email address before signing in.
|
|
143
|
+
enable_confirmations = false
|
|
144
|
+
# If enabled, users will need to reauthenticate or have logged in recently to change their password.
|
|
145
|
+
secure_password_change = false
|
|
146
|
+
# Controls the minimum amount of time that must pass before sending another signup confirmation or password reset email.
|
|
147
|
+
max_frequency = "1s"
|
|
148
|
+
# Number of characters used in the email OTP.
|
|
149
|
+
otp_length = 6
|
|
150
|
+
# Number of seconds before the email OTP expires (defaults to 1 hour).
|
|
151
|
+
otp_expiry = 3600
|
|
152
|
+
|
|
153
|
+
# Use a production-ready SMTP server
|
|
154
|
+
# [auth.email.smtp]
|
|
155
|
+
# enabled = true
|
|
156
|
+
# host = "smtp.sendgrid.net"
|
|
157
|
+
# port = 587
|
|
158
|
+
# user = "apikey"
|
|
159
|
+
# pass = "env(SENDGRID_API_KEY)"
|
|
160
|
+
# admin_email = "admin@email.com"
|
|
161
|
+
# sender_name = "Admin"
|
|
162
|
+
|
|
163
|
+
# Uncomment to customize email template
|
|
164
|
+
# [auth.email.template.invite]
|
|
165
|
+
# subject = "You have been invited"
|
|
166
|
+
# content_path = "./supabase/templates/invite.html"
|
|
167
|
+
|
|
168
|
+
[auth.sms]
|
|
169
|
+
# Allow/disallow new user signups via SMS to your project.
|
|
170
|
+
enable_signup = false
|
|
171
|
+
# If enabled, users need to confirm their phone number before signing in.
|
|
172
|
+
enable_confirmations = false
|
|
173
|
+
# Template for sending OTP to users
|
|
174
|
+
template = "Your code is {{ .Code }}"
|
|
175
|
+
# Controls the minimum amount of time that must pass before sending another sms otp.
|
|
176
|
+
max_frequency = "5s"
|
|
177
|
+
|
|
178
|
+
# Use pre-defined map of phone number to OTP for testing.
|
|
179
|
+
# [auth.sms.test_otp]
|
|
180
|
+
# 4152127777 = "123456"
|
|
181
|
+
|
|
182
|
+
# Configure logged in session timeouts.
|
|
183
|
+
# [auth.sessions]
|
|
184
|
+
# Force log out after the specified duration.
|
|
185
|
+
# timebox = "24h"
|
|
186
|
+
# Force log out if the user has been inactive longer than the specified duration.
|
|
187
|
+
# inactivity_timeout = "8h"
|
|
188
|
+
|
|
189
|
+
# This hook runs before a token is issued and allows you to add additional claims based on the authentication method used.
|
|
190
|
+
# [auth.hook.custom_access_token]
|
|
191
|
+
# enabled = true
|
|
192
|
+
# uri = "pg-functions://<database>/<schema>/<hook_name>"
|
|
193
|
+
|
|
194
|
+
# Configure one of the supported SMS providers: `twilio`, `twilio_verify`, `messagebird`, `textlocal`, `vonage`.
|
|
195
|
+
[auth.sms.twilio]
|
|
196
|
+
enabled = false
|
|
197
|
+
account_sid = ""
|
|
198
|
+
message_service_sid = ""
|
|
199
|
+
# DO NOT commit your Twilio auth token to git. Use environment variable substitution instead:
|
|
200
|
+
auth_token = "env(SUPABASE_AUTH_SMS_TWILIO_AUTH_TOKEN)"
|
|
201
|
+
|
|
202
|
+
# Multi-factor-authentication is available to Supabase Pro plan.
|
|
203
|
+
[auth.mfa]
|
|
204
|
+
# Control how many MFA factors can be enrolled at once per user.
|
|
205
|
+
max_enrolled_factors = 10
|
|
206
|
+
|
|
207
|
+
# Control MFA via App Authenticator (TOTP)
|
|
208
|
+
[auth.mfa.totp]
|
|
209
|
+
enroll_enabled = false
|
|
210
|
+
verify_enabled = false
|
|
211
|
+
|
|
212
|
+
# Configure MFA via Phone Messaging
|
|
213
|
+
[auth.mfa.phone]
|
|
214
|
+
enroll_enabled = false
|
|
215
|
+
verify_enabled = false
|
|
216
|
+
otp_length = 6
|
|
217
|
+
template = "Your code is {{ .Code }}"
|
|
218
|
+
max_frequency = "5s"
|
|
219
|
+
|
|
220
|
+
# Configure MFA via WebAuthn
|
|
221
|
+
# [auth.mfa.web_authn]
|
|
222
|
+
# enroll_enabled = true
|
|
223
|
+
# verify_enabled = true
|
|
224
|
+
|
|
225
|
+
# Use an external OAuth provider. The full list of providers are: `apple`, `azure`, `bitbucket`,
|
|
226
|
+
# `discord`, `facebook`, `github`, `gitlab`, `google`, `keycloak`, `linkedin_oidc`, `notion`, `twitch`,
|
|
227
|
+
# `twitter`, `slack`, `spotify`, `workos`, `zoom`.
|
|
228
|
+
[auth.external.apple]
|
|
229
|
+
enabled = false
|
|
230
|
+
client_id = ""
|
|
231
|
+
# DO NOT commit your OAuth provider secret to git. Use environment variable substitution instead:
|
|
232
|
+
secret = "env(SUPABASE_AUTH_EXTERNAL_APPLE_SECRET)"
|
|
233
|
+
# Overrides the default auth redirectUrl.
|
|
234
|
+
redirect_uri = ""
|
|
235
|
+
# Overrides the default auth provider URL. Used to support self-hosted gitlab, single-tenant Azure,
|
|
236
|
+
# or any other third-party OIDC providers.
|
|
237
|
+
url = ""
|
|
238
|
+
# If enabled, the nonce check will be skipped. Required for local sign in with Google auth.
|
|
239
|
+
skip_nonce_check = false
|
|
240
|
+
|
|
241
|
+
# Use Firebase Auth as a third-party provider alongside Supabase Auth.
|
|
242
|
+
[auth.third_party.firebase]
|
|
243
|
+
enabled = false
|
|
244
|
+
# project_id = "my-firebase-project"
|
|
245
|
+
|
|
246
|
+
# Use Auth0 as a third-party provider alongside Supabase Auth.
|
|
247
|
+
[auth.third_party.auth0]
|
|
248
|
+
enabled = false
|
|
249
|
+
# tenant = "my-auth0-tenant"
|
|
250
|
+
# tenant_region = "us"
|
|
251
|
+
|
|
252
|
+
# Use AWS Cognito (Amplify) as a third-party provider alongside Supabase Auth.
|
|
253
|
+
[auth.third_party.aws_cognito]
|
|
254
|
+
enabled = false
|
|
255
|
+
# user_pool_id = "my-user-pool-id"
|
|
256
|
+
# user_pool_region = "us-east-1"
|
|
257
|
+
|
|
258
|
+
[edge_runtime]
|
|
259
|
+
enabled = true
|
|
260
|
+
# Configure one of the supported request policies: `oneshot`, `per_worker`.
|
|
261
|
+
# Use `oneshot` for hot reload, or `per_worker` for load testing.
|
|
262
|
+
policy = "oneshot"
|
|
263
|
+
# Port to attach the Chrome inspector for debugging edge functions.
|
|
264
|
+
inspector_port = 8083
|
|
265
|
+
|
|
266
|
+
# Use these configurations to customize your Edge Function.
|
|
267
|
+
# [functions.MY_FUNCTION_NAME]
|
|
268
|
+
# enabled = true
|
|
269
|
+
# verify_jwt = true
|
|
270
|
+
# import_map = "./functions/MY_FUNCTION_NAME/deno.json"
|
|
271
|
+
# Uncomment to specify a custom file path to the entrypoint.
|
|
272
|
+
# Supported file extensions are: .ts, .js, .mjs, .jsx, .tsx
|
|
273
|
+
# entrypoint = "./functions/MY_FUNCTION_NAME/index.ts"
|
|
274
|
+
# Specifies static files to be bundled with the function. Supports glob patterns.
|
|
275
|
+
# For example, if you want to serve static HTML pages in your function:
|
|
276
|
+
# static_files = [ "./functions/MY_FUNCTION_NAME/*.html" ]
|
|
277
|
+
|
|
278
|
+
[analytics]
|
|
279
|
+
enabled = true
|
|
280
|
+
port = 54327
|
|
281
|
+
# Configure one of the supported backends: `postgres`, `bigquery`.
|
|
282
|
+
backend = "postgres"
|
|
283
|
+
|
|
284
|
+
# Experimental features may be deprecated any time
|
|
285
|
+
[experimental]
|
|
286
|
+
# Configures Postgres storage engine to use OrioleDB (S3)
|
|
287
|
+
orioledb_version = ""
|
|
288
|
+
# Configures S3 bucket URL, eg. <bucket_name>.s3-<region>.amazonaws.com
|
|
289
|
+
s3_host = "env(S3_HOST)"
|
|
290
|
+
# Configures S3 bucket region, eg. us-east-1
|
|
291
|
+
s3_region = "env(S3_REGION)"
|
|
292
|
+
# Configures AWS_ACCESS_KEY_ID for S3 bucket
|
|
293
|
+
s3_access_key = "env(S3_ACCESS_KEY)"
|
|
294
|
+
# Configures AWS_SECRET_ACCESS_KEY for S3 bucket
|
|
295
|
+
s3_secret_key = "env(S3_SECRET_KEY)"
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
-- 001_create_pgmq_and_trigger.sql
|
|
2
|
+
|
|
3
|
+
-- Create the catalogentries-collection table if not exists
|
|
4
|
+
create table if not exists public."catalogentries-collection"
|
|
5
|
+
(
|
|
6
|
+
_id text not null,
|
|
7
|
+
data jsonb not null,
|
|
8
|
+
metadata jsonb not null default '{}'::jsonb,
|
|
9
|
+
_version bigint not null default 1,
|
|
10
|
+
_partition text not null default 'png_global'::text,
|
|
11
|
+
_archived boolean not null default false,
|
|
12
|
+
_created timestamp with time zone not null default now(),
|
|
13
|
+
_updated timestamp with time zone not null default now(),
|
|
14
|
+
constraint catalogentries_collection_pkey primary key (_id)
|
|
15
|
+
) TABLESPACE pg_default;
|
|
16
|
+
|
|
17
|
+
ALTER TABLE public."catalogentries-collection" ENABLE ROW LEVEL SECURITY;
|
|
18
|
+
|
|
19
|
+
CREATE POLICY "Allow read to authenticated users only"
|
|
20
|
+
ON public."catalogentries-collection"
|
|
21
|
+
FOR SELECT
|
|
22
|
+
TO authenticated
|
|
23
|
+
USING (true);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES6",
|
|
4
|
+
"module": "commonjs",
|
|
5
|
+
"strict": true,
|
|
6
|
+
"esModuleInterop": true,
|
|
7
|
+
"moduleResolution": "node",
|
|
8
|
+
"outDir": "dist",
|
|
9
|
+
"baseUrl": ".",
|
|
10
|
+
"paths": {
|
|
11
|
+
"*": [
|
|
12
|
+
"node_modules/*"
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
"resolveJsonModule": true,
|
|
16
|
+
"skipLibCheck": true,
|
|
17
|
+
"lib": [
|
|
18
|
+
"es2020"
|
|
19
|
+
],
|
|
20
|
+
"allowJs": true,
|
|
21
|
+
"incremental": true,
|
|
22
|
+
"isolatedModules": true
|
|
23
|
+
},
|
|
24
|
+
"include": [
|
|
25
|
+
"**/*.ts"
|
|
26
|
+
],
|
|
27
|
+
"exclude": [
|
|
28
|
+
"node_modules",
|
|
29
|
+
"**/*.sample"
|
|
30
|
+
]
|
|
31
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Welcome to your Lovable project
|
|
2
|
+
|
|
3
|
+
## Project info
|
|
4
|
+
|
|
5
|
+
**URL**: https://lovable.dev/projects/REPLACE_WITH_PROJECT_ID
|
|
6
|
+
|
|
7
|
+
## How can I edit this code?
|
|
8
|
+
|
|
9
|
+
There are several ways of editing your application.
|
|
10
|
+
|
|
11
|
+
**Use Lovable**
|
|
12
|
+
|
|
13
|
+
Simply visit the [Lovable Project](https://lovable.dev/projects/REPLACE_WITH_PROJECT_ID) and start prompting.
|
|
14
|
+
|
|
15
|
+
Changes made via Lovable will be committed automatically to this repo.
|
|
16
|
+
|
|
17
|
+
**Use your preferred IDE**
|
|
18
|
+
|
|
19
|
+
If you want to work locally using your own IDE, you can clone this repo and push changes. Pushed changes will also be reflected in Lovable.
|
|
20
|
+
|
|
21
|
+
The only requirement is having Node.js & npm installed - [install with nvm](https://github.com/nvm-sh/nvm#installing-and-updating)
|
|
22
|
+
|
|
23
|
+
Follow these steps:
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
# Step 1: Clone the repository using the project's Git URL.
|
|
27
|
+
git clone <YOUR_GIT_URL>
|
|
28
|
+
|
|
29
|
+
# Step 2: Navigate to the project directory.
|
|
30
|
+
cd <YOUR_PROJECT_NAME>
|
|
31
|
+
|
|
32
|
+
# Step 3: Install the necessary dependencies.
|
|
33
|
+
npm i
|
|
34
|
+
|
|
35
|
+
# Step 4: Start the development server with auto-reloading and an instant preview.
|
|
36
|
+
npm run dev
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Edit a file directly in GitHub**
|
|
40
|
+
|
|
41
|
+
- Navigate to the desired file(s).
|
|
42
|
+
- Click the "Edit" button (pencil icon) at the top right of the file view.
|
|
43
|
+
- Make your changes and commit the changes.
|
|
44
|
+
|
|
45
|
+
**Use GitHub Codespaces**
|
|
46
|
+
|
|
47
|
+
- Navigate to the main page of your repository.
|
|
48
|
+
- Click on the "Code" button (green button) near the top right.
|
|
49
|
+
- Select the "Codespaces" tab.
|
|
50
|
+
- Click on "New codespace" to launch a new Codespace environment.
|
|
51
|
+
- Edit files directly within the Codespace and commit and push your changes once you're done.
|
|
52
|
+
|
|
53
|
+
## What technologies are used for this project?
|
|
54
|
+
|
|
55
|
+
This project is built with:
|
|
56
|
+
|
|
57
|
+
- Vite
|
|
58
|
+
- TypeScript
|
|
59
|
+
- React
|
|
60
|
+
- shadcn-ui
|
|
61
|
+
- Tailwind CSS
|
|
62
|
+
|
|
63
|
+
## How can I deploy this project?
|
|
64
|
+
|
|
65
|
+
Simply open [Lovable](https://lovable.dev/projects/REPLACE_WITH_PROJECT_ID) and click on Share -> Publish.
|
|
66
|
+
|
|
67
|
+
## Can I connect a custom domain to my Lovable project?
|
|
68
|
+
|
|
69
|
+
Yes, you can!
|
|
70
|
+
|
|
71
|
+
To connect a domain, navigate to Project > Settings > Domains and click Connect Domain.
|
|
72
|
+
|
|
73
|
+
Read more here: [Setting up a custom domain](https://docs.lovable.dev/features/custom-domain#custom-domain)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://ui.shadcn.com/schema.json",
|
|
3
|
+
"style": "default",
|
|
4
|
+
"rsc": false,
|
|
5
|
+
"tsx": true,
|
|
6
|
+
"tailwind": {
|
|
7
|
+
"config": "tailwind.config.ts",
|
|
8
|
+
"css": "src/index.css",
|
|
9
|
+
"baseColor": "slate",
|
|
10
|
+
"cssVariables": true,
|
|
11
|
+
"prefix": ""
|
|
12
|
+
},
|
|
13
|
+
"aliases": {
|
|
14
|
+
"components": "@/components",
|
|
15
|
+
"utils": "@/lib/utils",
|
|
16
|
+
"ui": "@/components/ui",
|
|
17
|
+
"lib": "@/lib",
|
|
18
|
+
"hooks": "@/hooks"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import js from "@eslint/js";
|
|
2
|
+
import globals from "globals";
|
|
3
|
+
import reactHooks from "eslint-plugin-react-hooks";
|
|
4
|
+
import reactRefresh from "eslint-plugin-react-refresh";
|
|
5
|
+
import tseslint from "typescript-eslint";
|
|
6
|
+
|
|
7
|
+
export default tseslint.config(
|
|
8
|
+
{ ignores: ["dist"] },
|
|
9
|
+
{
|
|
10
|
+
extends: [js.configs.recommended, ...tseslint.configs.recommended],
|
|
11
|
+
files: ["**/*.{ts,tsx}"],
|
|
12
|
+
languageOptions: {
|
|
13
|
+
ecmaVersion: 2020,
|
|
14
|
+
globals: globals.browser,
|
|
15
|
+
},
|
|
16
|
+
plugins: {
|
|
17
|
+
"react-hooks": reactHooks,
|
|
18
|
+
"react-refresh": reactRefresh,
|
|
19
|
+
},
|
|
20
|
+
rules: {
|
|
21
|
+
...reactHooks.configs.recommended.rules,
|
|
22
|
+
"react-refresh/only-export-components": ["warn", { allowConstantExport: true }],
|
|
23
|
+
"@typescript-eslint/no-unused-vars": "off",
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>App</title>
|
|
7
|
+
<meta name="description" content="Generic Code Generator App" />
|
|
8
|
+
|
|
9
|
+
<meta property="og:title" content="App" />
|
|
10
|
+
<meta property="og:description" content="Generic Code Generator App" />
|
|
11
|
+
<meta property="og:type" content="website" />
|
|
12
|
+
</head>
|
|
13
|
+
|
|
14
|
+
<body>
|
|
15
|
+
<div id="root"></div>
|
|
16
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
17
|
+
</body>
|
|
18
|
+
</html>
|