-
-
-
-
- {$_('auth.unauthorized.title')}
-
-
-
-
-
- {$_('auth.unauthorized.description')}
-
-
-
-
{$_('auth.login.login')}
-
+
+
+
+ Resource Unauthorized
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
You do not have access to this
+
+ Your login session may have expired, or you do not have access to this resource. Please re-login and try again,
+ or contact your administrator for assistance.
+
+
+
+
+ Back to login
+
-
+
-
-
diff --git a/src/routes/auth/update-email/+page.server.ts b/src/routes/auth/update-email/+page.server.ts
deleted file mode 100644
index 4441472b..00000000
--- a/src/routes/auth/update-email/+page.server.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-// src/routes/update_email/+page.server.js
-import { AuthApiError } from "@supabase/supabase-js"
-import { fail, redirect } from "@sveltejs/kit"
-
-export const actions = {
- update_email: async ({ request, locals }) => {
- const formData = await request.formData()
- const email = formData.get('email')
-
- const { data, error: err } = await locals.supabase.auth.updateUser({
- email
- })
-
- if (err) {
- if (err instanceof AuthApiError && err.status >= 400 && err.status < 500) {
- return fail(400, {
- error: "invalidCredentials", invalid: true, message: err.message
- })
- }
- return fail(500, {
- error: "Server error. Please try again later.",
- })
- }
-
- redirect(303, "/check_email");
- },
-}
diff --git a/src/routes/auth/update-email/+page.svelte b/src/routes/auth/update-email/+page.svelte
deleted file mode 100644
index fd680b31..00000000
--- a/src/routes/auth/update-email/+page.svelte
+++ /dev/null
@@ -1,13 +0,0 @@
-// src/routes/update_email/+page.svelte
-
-
-
Change your email
-
-{#if form?.invalid}
{form?.message}! {/if}
\ No newline at end of file
diff --git a/src/routes/auth/update-password/+page.server.ts b/src/routes/auth/update-password/+page.server.ts
index 5c33a793..575e100c 100644
--- a/src/routes/auth/update-password/+page.server.ts
+++ b/src/routes/auth/update-password/+page.server.ts
@@ -1,28 +1,38 @@
-// src/routes/update_password/+page.server.js
-import { AuthApiError } from "@supabase/supabase-js"
-import { fail, redirect } from "@sveltejs/kit"
+import { message } from 'sveltekit-superforms';
+import { fail, redirect } from '@sveltejs/kit';
+import { superValidate } from 'sveltekit-superforms';
+import { zod } from 'sveltekit-superforms/adapters';
+import { UpdatePasswordFormSchema } from './forms/update-password.schema';
+
+export const load = async ({ url, locals: { supabase } }) => {
+ // Initialize the form
+ const form = await superValidate(zod(UpdatePasswordFormSchema));
+
+ return { form };
+};
export const actions = {
- default: async ({ request, locals }) => {
- const formData = await request.formData()
- const password = formData.get('new_password')
+ default: async ({ request, params, locals: { supabase } }) => {
+ const form = await superValidate(request, zod(UpdatePasswordFormSchema));
+ if (!form.valid) {
+ return fail(400, { form });
+ }
+
+ const { data, error: err } = await supabase.auth.updateUser({
+ password: form.data.password
+ });
- const { data, error: err } = await locals.supabase.auth.updateUser({
- password
- })
+ console.log(data);
- if (err) {
- console.log(err);
- if (err instanceof AuthApiError && err.status >= 400 && err.status < 500) {
- return fail(400, {
- error: "invalidCredentials", invalid: true, message: err.message
- });
- }
- return fail(500, {
- error: JSON.stringify(err),
+ if (error) {
+ return fail(400, {
+ form: message(form, error.message)
});
}
- return { success: !err }
- },
-}
+ // Password updated successfully
+ return {
+ form: message(form, 'Password updated successfully! Redirecting to login...')
+ };
+ }
+};
\ No newline at end of file
diff --git a/src/routes/auth/update-password/+page.svelte b/src/routes/auth/update-password/+page.svelte
index 7ff0ea24..ef52eef9 100644
--- a/src/routes/auth/update-password/+page.svelte
+++ b/src/routes/auth/update-password/+page.svelte
@@ -1,129 +1,82 @@
-
-
-
-
-
-
-
- {$_('login.update_title')}
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
- {#if submissionResult}
-
-
Submission Result
-
{displayJSON(submissionResult)}
-
- {/if}
+
-
-
-
+
+
Confirm Password
+
+
+
+
-
+
+ Update Password
+
+
+
+
+
\ No newline at end of file
diff --git a/src/routes/auth/update-password/forms/update-password.schema.ts b/src/routes/auth/update-password/forms/update-password.schema.ts
new file mode 100644
index 00000000..14ce22d2
--- /dev/null
+++ b/src/routes/auth/update-password/forms/update-password.schema.ts
@@ -0,0 +1,14 @@
+import { z } from 'zod';
+
+export const UpdatePasswordFormSchema = z.object({
+ password: z
+ .string()
+ .min(8, 'Password must be at least 8 characters')
+ .regex(/[A-Z]/, 'Password must contain at least one uppercase letter')
+ .regex(/[a-z]/, 'Password must contain at least one lowercase letter')
+ .regex(/[0-9]/, 'Password must contain at least one number'),
+ confirmPassword: z.string()
+}).refine((data) => data.password === data.confirmPassword, {
+ message: "Passwords don't match",
+ path: ["confirmPassword"]
+});
\ No newline at end of file
diff --git a/src/routes/auth/user-profile/+page.server.ts b/src/routes/auth/user-profile/+page.server.ts
deleted file mode 100644
index 4198d3a5..00000000
--- a/src/routes/auth/user-profile/+page.server.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-import { fail, redirect } from '@sveltejs/kit'
-import type { Actions, PageServerLoad } from './$types'
-
-export const load: PageServerLoad = async ({ locals: { supabase, getSession } }) => {
- const session = await getSession()
-
- if (!session) {
- throw redirect(303, '/')
- }
-
- const { data: profile } = await supabase
- .from('profiles')
- .select(`username, full_name, website, avatar_url`)
- .eq('id', session.user.id)
- .single()
-
- return { session, profile }
-}
-
-export const actions: Actions = {
- update: async ({ request, locals: { supabase, getSession } }) => {
- const formData = await request.formData()
- const fullName = formData.get('fullName') as string
- const username = formData.get('username') as string
- const website = formData.get('website') as string
- const avatarUrl = formData.get('avatarUrl') as string
-
- const session = await getSession()
-
- const { error } = await supabase.from('profiles').upsert({
- id: session?.user.id,
- full_name: fullName,
- username,
- website,
- avatar_url: avatarUrl,
- updated_at: new Date(),
- })
-
- if (error) {
- return fail(500, {
- fullName,
- username,
- website,
- avatarUrl,
- })
- }
-
- return {
- fullName,
- username,
- website,
- avatarUrl,
- }
- },
- signout: async ({ locals: { supabase, getSession } }) => {
- const session = await getSession()
- if (session) {
- await supabase.auth.signOut()
- throw redirect(303, '/')
- }
- },
-}
\ No newline at end of file
diff --git a/src/routes/auth/user-profile/+page.svelte b/src/routes/auth/user-profile/+page.svelte
deleted file mode 100644
index 6fb6d866..00000000
--- a/src/routes/auth/user-profile/+page.svelte
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-
-
diff --git a/src/routes/auth/user-profile/Avatar.svelte b/src/routes/auth/user-profile/Avatar.svelte
deleted file mode 100644
index a0639965..00000000
--- a/src/routes/auth/user-profile/Avatar.svelte
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-
- {#if avatarUrl}
-
- {:else}
-
- {/if}
-
-
-
-
- {uploading ? 'Uploading ...' : 'Upload'}
-
-
-
-
\ No newline at end of file
diff --git a/src/routes/legal/+layout.svelte b/src/routes/legal/+layout.svelte
deleted file mode 100644
index 5c553fa9..00000000
--- a/src/routes/legal/+layout.svelte
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/routes/legal/appendix/+page.svelte b/src/routes/legal/appendix/+page.svelte
deleted file mode 100644
index 2198c3e3..00000000
--- a/src/routes/legal/appendix/+page.svelte
+++ /dev/null
@@ -1,56 +0,0 @@
-
別添 個人情報の安全管理措置
-
-
- 当社は、利用者等の個人情報を正確かつ最新の内容に保つよう努めるとともに、基本方針及び個人情報の取扱規程を策定して、以下の必要かつ適切な安全管理措置を講じます。
-
-
-
-
- 1. 基本方針の策定
- 個人情報の適正な取扱いの確保のために、関係法令・ガイドライン等の遵守、質問及び苦情処理の窓口等について基本方針を策定する。
-
-
- 2. 個人情報の取扱いに係る規律の整備 取得、利用、保存等を行う場合の基本的な取扱方法を整備する。
-
-
- 3. 組織的安全管理措置
-
- ・個人情報を取り扱う従業者が複数いる場合、責任ある立場の者とその他の者を区分する。
-
- ・あらかじめ整備した基取扱方法に従って個人情報が取り扱われていることを、責任ある立場の者が確認する。
-
- ・漏えい事案等に対応する体制を整備する。
- ・責任ある立場の者が、個人情報の取扱状況について、定期的に点検する。
-
-
-
- 4. 人的安全管理措置
- ・個人情報の取扱いに関する留意事項について、従業者への周知徹底、教育等を行う。
- ・個人情報の秘密保持に関する事項を就業規則等に記載する。
-
-
- 5. 物理的安全管理措置
-
- ・個人情報を取り扱うことのできる従業者及び本人以外が容易に個人情報を閲覧等できないような措置を講ずる。
-
-
- ・個人情報を取り扱う機器や個人情報が記録された電子媒体、個人情報が記載された書類等を、施錠できるキャビネット・書庫等に保管する。
-
-
- ・個人情報が記録された電子媒体又は個人情報が記載された書類等を持ち運ぶ場合、パスワードを設定するなど、紛失・盗難等を防ぐための安全な方策を講ずる。
-
-
- ・個人情報を削除し、又は、個人情報が記録された機器、電子媒体等を廃棄する場合、容易に復元不可能な手段を採用する。
-
-
-
- 6. 技術的安全管理措置
-
- ・個人情報を取り扱うことのできる従業者についてアクセス権限を設定・管理し、ユーザID・パスワードなどで、個人情報を取り扱う情報システムを使用する従業者を識別・認証する。
-
- ・個人情報の漏えい・毀損等防止策を講じる。
- ・外部からの不正アクセス又は不正ソフトウェアから保護する仕組みを導入する。
-
-
-
-
2024年8月1日 制定
diff --git a/src/routes/legal/cookie-policy/+page.svelte b/src/routes/legal/cookie-policy/+page.svelte
index d060883c..97c263fc 100644
--- a/src/routes/legal/cookie-policy/+page.svelte
+++ b/src/routes/legal/cookie-policy/+page.svelte
@@ -1,102 +1,77 @@
-
クッキーポリシー
-
-
-
- 合同会社クロップウォッチ(以下「当社」といいます。)が提供するサービス(以下「本サービス」といいます。)においては、クッキー(Cookie)その他情報収集モジュール等(以下「クッキー等」といいます。)を使用しています。当社はクッキー等を通じて、本サービスへの利用者のアクセス情報、閲覧情報等を取得することができます。なお、クッキー等を通じて取得するこれらの情報(以下「クッキー情報」といいます。)には、単独で利用者自身を識別し特定できる情報は含まれていません。
-
-
- 利用者は本サービス上でのクッキー等の使用を許可しない場合には、利用者のブラウザの設定等においてクッキー等を無効にしてください。なお、クッキー等を無効にした場合、本サービスの利便性が損なわれたり、本サービスで提供するサービスのご利用範囲が限定されたりすることがあります。
-
- 本サービスで利用しているクッキー等の内容については、以下をご参照ください。
-
-
-
クッキー等の概要
-
-
-
- クッキー名称
- 送信先
- 取得する情報の概要
- 利用目的
-
-
-
-
- Google Analytics
-
- Google LLC
-
-
- 【例】
-
- IPアドレス
- 端末固有のユニークID
- 利用者の行動情報(サイト上のクリックやページ遷移等)
- 利用者が閲覧したページのURL
- 位置情報
- 滞在時間等
-
-
-
- 【例】
-
- 本サービスの利用状況を把握することにより、サービス向上及び利用者の興味やニーズにより適したサービスを提供するため
-
-
-
-
- sb-dpaoqrcfswnzknixwkll-auth-token.X
-
- Supabase Inc
-
- 利用者のJavaScript Webトークン(JWT)およびリフレッシュトークン
- 認証および認可に使用
-
-
-
-
-
2024年8月1日 制定・施行
+
+
クッキーポリシー
+
+
+ 合同会社クロップウォッチ(以下「当社」といいます。)が提供するサービス(以下「本サービス」といいます。)においては、クッキー(Cookie)その他情報収集モジュール等(以下「クッキー等」といいます。)を使用しています。当社はクッキー等を通じて、本サービスへの利用者のアクセス情報、閲覧情報等を取得することができます。なお、クッキー等を通じて取得するこれらの情報(以下「クッキー情報」といいます。)には、単独で利用者自身を識別し特定できる情報は含まれていません。
+
+
+ 利用者は本サービス上でのクッキー等の使用を許可しない場合には、利用者のブラウザの設定等においてクッキー等を無効にしてください。なお、クッキー等を無効にした場合、本サービスの利便性が損なわれたり、本サービスで提供するサービスのご利用範囲が限定されたりすることがあります。
+
+ 本サービスで利用しているクッキー等の内容については、以下をご参照ください。
+
+
クッキー等の概要
+
+
+
+ クッキー名称
+ 送信先
+ 取得する情報の概要
+ 利用目的
+
+
+
+
+ Google Analytics
+
+ Google LLC
+
+
+ 【例】
+
+ IPアドレス
+ 端末固有のユニークID
+ 利用者の行動情報(サイト上のクリックやページ遷移等)
+ 利用者が閲覧したページのURL
+ 位置情報
+ 滞在時間等
+
+
+
+ 【例】
+
+ 本サービスの利用状況を把握することにより、サービス向上及び利用者の興味やニーズにより適したサービスを提供するため
+
+
+
+
+ sb-dpaoqrcfswnzknixwkll-auth-token.X
+
+ Supabase Inc
+
+
+ 利用者のJavaScript Webトークン(JWT)およびリフレッシュトークン
+
+
+ 認証および認可に使用
+
+
+
+
+
2024年8月1日 制定・施行
+
+ ol, ul {
+ list-style: decimal;
+ }
+
\ No newline at end of file
diff --git "a/src/routes/legal/downloads/240716_\343\202\257\343\203\203\343\202\255\343\203\274\343\203\235\343\203\252\343\202\267\343\203\274.docx" "b/src/routes/legal/downloads/240716_\343\202\257\343\203\203\343\202\255\343\203\274\343\203\235\343\203\252\343\202\267\343\203\274.docx"
deleted file mode 100644
index f2dc1056..00000000
Binary files "a/src/routes/legal/downloads/240716_\343\202\257\343\203\203\343\202\255\343\203\274\343\203\235\343\203\252\343\202\267\343\203\274.docx" and /dev/null differ
diff --git "a/src/routes/legal/downloads/240721_\343\203\227\343\203\251\343\202\244\343\203\220\343\202\267\343\203\274\343\203\235\343\203\252\343\202\267\343\203\274_\343\202\257\343\203\252\343\203\274\343\203\263\347\211\210.docx" "b/src/routes/legal/downloads/240721_\343\203\227\343\203\251\343\202\244\343\203\220\343\202\267\343\203\274\343\203\235\343\203\252\343\202\267\343\203\274_\343\202\257\343\203\252\343\203\274\343\203\263\347\211\210.docx"
deleted file mode 100644
index f90d4e93..00000000
Binary files "a/src/routes/legal/downloads/240721_\343\203\227\343\203\251\343\202\244\343\203\220\343\202\267\343\203\274\343\203\235\343\203\252\343\202\267\343\203\274_\343\202\257\343\203\252\343\203\274\343\203\263\347\211\210.docx" and /dev/null differ
diff --git "a/src/routes/legal/downloads/240721_\343\203\227\343\203\251\343\202\244\343\203\220\343\202\267\343\203\274\343\203\235\343\203\252\343\202\267\343\203\274_\343\202\257\343\203\252\343\203\274\343\203\263\347\211\210.html" "b/src/routes/legal/downloads/240721_\343\203\227\343\203\251\343\202\244\343\203\220\343\202\267\343\203\274\343\203\235\343\203\252\343\202\267\343\203\274_\343\202\257\343\203\252\343\203\274\343\203\263\347\211\210.html"
deleted file mode 100644
index a3f4db1d..00000000
--- "a/src/routes/legal/downloads/240721_\343\203\227\343\203\251\343\202\244\343\203\220\343\202\267\343\203\274\343\203\235\343\203\252\343\202\267\343\203\274_\343\202\257\343\203\252\343\203\274\343\203\263\347\211\210.html"
+++ /dev/null
@@ -1,225 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-プライバシーポリシー
-
-
-
-
-
-合同会社クロップウォッチ(以下「当社」といいます。)は、当社のサービスを利用する方(以下「利用者」といいます。)の個人情報の取扱いについて、以下のとおりプライバシーポリシー(以下「本ポリシー」といいます。)を定め、個人情報保護の仕組みを構築し、全従業員に個人情報保護の重要性を認識させるとともにその取組みを徹底させることにより、個人情報の保護を推進します。
-
-
-
-
-
- (個人情報)
-
-
-「個人情報」とは、個人情報の保護に関する法律(平成十五年法律第五十七号、以下「個人情報保護法」といいます。)にいう「個人情報」を指し、生存する個人に関する情報であって、当該情報に含まれる氏名、生年月日その他の記述等により特定の個人を識別できるもの又は個人識別符号が含まれるものを指します。
-
-
-
-
- (個人情報の利用目的)
-
-
-当社は、以下の目的に必要な範囲で、利用者の 個人情報 を取得し、取得した情報を利用させていただきます。以下の目的の範囲を超えて 個人情報 を利用する場合には、事前に適切な方法で利用者からの同意を得るものとします。
-
-
- 当社のサービス(以下「本サービス」といいます。)を提供するため
-
- 本サービスの内容を改良・改善し、又は新サービスを開発するため
-
- 本サービスの新機能、更新情報、キャンペーン等及び当社が提供する他のサービスのご案内(電子メール、チラシ、その他のダイレクトメールの送付を含みます。)のため
-
- メンテナンス、重要なお知らせ等必要に応じたご連絡のため
-
- 本サービスに関する利用者からのご意見、お問い合わせ等に回答するため(本人確認を行うことを含みます。)
-
- 本サービスの利用状況を利用者にご報告するため
-
- 本サービスに関するアンケート・取材等のご協力依頼や各種イベントへのご参加をお願いし、又はその結果等をご報告するため
-
- 本サービスの利用履歴等を調査・分析し、その結果を本サービスの改良・開発や広告の配信に利用するため
-
- 利用者の承諾・申し込みに基づく、当社主催イベントの参加企業等への個人情報の提供
-
- 利用規約に違反した利用者や、不正・不当な目的で本サービスを利用しようとする利用者の特定をし、ご利用をお断りするため
-
-
-
-
-
-
- (クッキー等の利用)
-
-
-当社は、本サービスへの利用者のアクセス情報、閲覧情報等を取得するために、クッキー( Cookie )、情報収集モジュール等(以下「クッキー等」といいます。)の技術を使用しています。本サービスで利用しているクッキー等の内容については、当社が別途定めるクッキーポリシーをご確認ください。
-
-
-
-
- (個人情報の管理と保護)
-
-
-個人情報の管理は、厳重に行うこととし、次に掲げるときを除き、利用者の同意がない限り、第三者に対し個人情報を開示・提供することはいたしません。また、安全性を考慮し、個人情報への不正アクセス、個人情報の紛失、破壊、改ざん及び漏えい等のリスクに対する予防並びに是正に関する対策を講じます。
-
-
- 人の生命、身体又は財産の保護のために必要がある場合であって、利用者の同意を得ることが困難であるとき。
-
- 公衆衛生の向上又は児童の健全な育成の推進のために特に必要がある場合であって、利用者の同意を得ることが困難であるとき。
-
- 国の機関若しくは地方公共団体又はその委託を受けた者が法令の定める事務を遂行することに対して協力する必要がある場合であって、利用者の同意を得ることにより当該事務の遂行に支障を及ぼすおそれがあるとき。
-
- その他法令で認められるとき。
-
-
-
-
-
-
- (個人情報の取扱いの委託)
-
-
-当社は、利用目的の達成に必要な範囲内において、個人情報の取扱いの全部又は一部を委託する場合がございます。この場合、当社は、委託先としての適格性を十分審査するとともに、契約にあたって守秘義務に関する事項等を定め、委託先に対する必要かつ適切な監督を行います。
-
-
-
-
-
- (個人情報の開示)
-
-
-利用者は、当社に対し、当社の保有する個人情報の開示を請求することができます。当社は、利用者から当該請求を受けたときは、利用者に対し、遅滞なくこれを開示します。ただし、開示することにより次のいずれかに該当する場合は、その全部又は一部を開示しないこともあり、開示しない決定をした場合には、その旨を遅滞なく通知します。
-
-
- 利用者又は第三者の生命、身体、財産その他の権利利益を害するおそれがある場合
-
- 当社の業務の適正な実施に著しい支障を及ぼすおそれがある場合
-
- その他法令に違反することとなる場合
-
-
-
-
-
-
- (個人情報訂正等)
-
-
- 利用者は、当社の保有する個人情報が誤った情報である場合には、当社に対し、当該個人情報の訂正、追加又は削除(以下「訂正等」といいます。)を請求することができます。
- 前項の請求を受けた場合、当社は遅滞なく必要な調査を行い、その結果前項の請求に理由があると判断した場合には、遅滞なく当該個人情報の訂正等を行います。
- 当社は、前項に基づき訂正等の実施・不実施について判断した場合には、遅滞なく、利用者ご本人に対してご連絡いたします。
-
-
-
-
-
- (個人情報の利用停止等)
-
-
- 利用者は、当社に対し、当社の保有する個人情報の利用の停止、消去又は第三者提供の停止(以下「利用停止等」といいます。)を請求することができます。
- 当社は、前項の請求を受けた場合には、必要な調査を行い、その結果前項の請求に理由があると判断した場合には、当該個人情報の利用停止等を行います。ただし、個人情報の利用停止等に多額の費用を要する場合その他利用停止等を行うことが困難な場合であって、利用者の権利利益を保護するために必要なこれに代わるべき措置をとれるときは、この代替策を講じます。
- 当社は、前項に基づき利用停止等の実施・不実施について判断した場合には、利用者ご本人に対してご連絡いたします。
-
-
-
-
-
-
- (プライバシーポリシーの変更手続)
-
-
-当社は本ポリシーの内容を適宜見直し、その改善に努めます。本ポリシーの内容は、法令その他本ポリシーに別段の定めのある事項を除いて、変更することができるものとします。変更後のプライバシーポリシーは、当社所定の方法により、利用者に通知し、又は当社ウェブサイトに掲載したときから効力を生じるものとします。
-
-
-
-
-
- (法令、規範の遵守)
-
-
-当社は、保有する個人情報に関して適用される日本の法令、その他規範を遵守します。
-
-
-
-
-
- (苦情及び相談への対応)
-
-
-当社は、個人情報の取扱いに関する利用者からの苦情、相談を受け付け、適切かつ迅速に対応いたします。また、利用者からの当該個人情報の開示、訂正、追加、削除、利用又は提供の拒否等のご要望に対しても、迅速かつ適切に対応いたします。
-
-
-
-
-
- (安全管理措置)
-
-
-当社が利用者よりお預かりした個人情報は、個人情報ファイルへのアクセス制限の実施、アクセスログの記録及び外部からの不正アクセス防止のためのセキュリティ対策の実施等、組織的、物理的、人的、技術的施策を講じることで個人情報への不正な侵入、個人情報の紛失、破壊、改ざん、及び漏えい等を防止いたします。万一、利用者の個人情報の漏えい等の事故が発生した場合、当社は、個人情報保護法及び関連するガイドラインに則り、速やかに監督官庁への報告を行うとともに、当該監督官庁の指示に従い、類似事案の発生防止措置及び再発防止措置等の必要な対応を行います。詳細については、別添「個人情報の安全管理措置」をご確認ください。
-
-
-
-
- (当社住所・代表者氏名・個人情報保護管理者)
-
-
-当社住所、代表者及び個人情報保護管理者の氏名は以下のとおりです。
-
-住所:宮崎県西都市南方 806-5
-
-代表者:池水 彩
-
-個人情報保護管理者: 池水 彩
-
-
-
-
- (お問い合わせ窓口)
-
-
-当社の個人情報の取扱いに関するお問い合せは以下までご連絡ください。
-合同会社クロップウォッチ
-
-〒
- 881-0027 宮崎県西都市南方 806-5
-
-TEL: 080-4284-3390
-
-Mail:
-sayaka@cropwatch.io
-
-
-
-
-
-
-
-
-
-2024 年 8 月 1 日 制定・施行
-
-
\ No newline at end of file
diff --git "a/src/routes/legal/downloads/240721_\345\210\245\346\267\273_\345\200\213\344\272\272\346\203\205\345\240\261\343\201\256\345\256\211\345\205\250\347\256\241\347\220\206\346\216\252\347\275\256.docx" "b/src/routes/legal/downloads/240721_\345\210\245\346\267\273_\345\200\213\344\272\272\346\203\205\345\240\261\343\201\256\345\256\211\345\205\250\347\256\241\347\220\206\346\216\252\347\275\256.docx"
deleted file mode 100644
index 92532f17..00000000
Binary files "a/src/routes/legal/downloads/240721_\345\210\245\346\267\273_\345\200\213\344\272\272\346\203\205\345\240\261\343\201\256\345\256\211\345\205\250\347\256\241\347\220\206\346\216\252\347\275\256.docx" and /dev/null differ
diff --git "a/src/routes/legal/downloads/240820_\343\202\265\343\203\274\343\203\223\343\202\271\345\210\251\347\224\250\350\246\217\347\264\204_\343\202\257\343\203\252\343\203\274\343\203\263\347\211\210_v2.pdf" "b/src/routes/legal/downloads/240820_\343\202\265\343\203\274\343\203\223\343\202\271\345\210\251\347\224\250\350\246\217\347\264\204_\343\202\257\343\203\252\343\203\274\343\203\263\347\211\210_v2.pdf"
deleted file mode 100644
index a04d1edb..00000000
Binary files "a/src/routes/legal/downloads/240820_\343\202\265\343\203\274\343\203\223\343\202\271\345\210\251\347\224\250\350\246\217\347\264\204_\343\202\257\343\203\252\343\203\274\343\203\263\347\211\210_v2.pdf" and /dev/null differ
diff --git a/src/routes/legal/eula/+page.svelte b/src/routes/legal/eula/+page.svelte
deleted file mode 100644
index 42ce37e4..00000000
--- a/src/routes/legal/eula/+page.svelte
+++ /dev/null
@@ -1,715 +0,0 @@
-
-
-
- 第1章総則
-
- 第 1.1 条(本規約について)
-
- このサービス利用規約(以下「本規約」という。)は、合同会社クロップウォッチ(以下「当社」という。)
- が提供するデータの提供等に関するクラウドサービス(以下「本サービス」という。)を顧客が利用す
- るにあたり遵守すべき事項等を定める。
-
-
- 第 1.2 条(定義)
- 本規約においては、次の用語はそれぞれ次の意味で使用する。
-
-
- 「管理責任者」とは、顧客を代理して顧客アカウントの管理並びに本サービス利用契約の変更
- 及び解約等を行う権限を付与された顧客の役員又は従業員(顧客が個人の場合は当該個人) をいう。
-
- 「顧客」とは、本規約に同意して当社と本サービス利用契約を締結した事業者をいう。
-
- 「顧客アカウント」とは、顧客の管理責任者が作成した本サービスを利用するためのアカウント
- であり、本サービス利用契約の変更及び解約等を行うことができるアカウントをいう。
-
-
- 「顧客情報」とは、顧客が本サービスに登録する情報その他第 3.1 条に具体的に定める情報を
- 含む、本サービスの利用を通じて顧客から直接又は間接に当社に提供される全ての情報、並
- びにこれらの情報に加工又は分析等を加えた情報(ただし、本データを除く。)をいう。
-
-
- 「知的財産権」とは、著作権(著作権法第 27 条及び第 28 条に定める権利を含む。)、特許権、
- 実用新案権、意匠権、商標権その他の知的財産権(これらを受ける権利及び出願中の権利を
- 含む。)をいう。
-
-
- 「匿名データ」とは、顧客情報及び本データに対して一定の処理(統計的な処理又は解析を含
- む。)を加え、顧客及び個人が特定又は識別されないよう加工した情報をいう。
-
-
- 「パスワード」とは、ログイン ID と組み合わせて、本サービス上で顧客をその他の顧客と区別す
- るために用いられる符号であり、顧客が所定の条件に従って自ら設定する半角英数字及び記
- 号の組み合わせをいう。
-
- 「本サービス利用契約」とは、顧客と当社との間の本サービスの利用に関する契約をいう。
-
- 「本ソフトウェア」とは、本サービスのために当社が提供するソフトウェア(本デバイスに組み込ま
- れるものを含む。)をいう。
-
-
- 「本データ」とは、本サービスを通じて収集されるデータ及びこれらに加工又は分析等を加えた
- データをいう。
-
-
- 「本デバイス」とは、本データの収集、送信等のために当社が提供し、又は顧客が準備する情報
- 端末、センサ、通信機器その他のデバイスをいう。
-
-
- 「ログイン ID」とは、本サービスの利用に際して各顧客をその他の顧客と区別するために用いら
- れるメールアドレスその他の符号であり、顧客が自ら登録する半角英数字及び記号の組み合
- わせをいう。
-
-
-
- 第 1.3 条(本規約の適用・変更)
-
-
- 当社は、顧客に対して、本規約に記載する条件にて本サービス及び本ソフトウェアの利用を許諾する。
-
-
- 本規約は、顧客と当社との間の本サービス利用契約に適用される。但し、当社は、本規約とは別に、
- 当社が提供する個別の本サービス(以下「個別サービス」という。)の内容に応じて、当該個別サー
- ビスの利用条件(名称の如何を問わず、以下「個別条件」といいます。)を定め、当社ウェブサイト上
- で掲載等する場合があり、この場合、個別サービスの利用者は、個別条件に同意のうえ、個別サービ
- スを利用するものとする。
-
-
- 前項の場合を含め、顧客及び当社が本サービス利用契約において本規約の条件と異なる条件を合
- 意した場合は、当該本サービス利用契約の条件が本規約の条件に優先するものとする。
-
-
- 当社は、いつでも本規約を変更することができるものとする。但し、本規約の変更を行うときは、その
- 効力発生時期を定め、かつ、本規約を変更する旨及び変更後の本規約の内容並びにその効力発生
- 時期を当社ウェブサイトを通じて公開する方法その他の適切な方法により顧客に周知するものとす る。
-
-
- 顧客は、前項に基づき定める変更後の本規約の効力発生時期以降に本サービスの利用を継続した
- 場合、変更後の本規約の内容に合意したものとみなされるものとし、かかる合意に基づいて本サー
- ビス利用契約の内容も変更されるものとする。
-
-
-
- 第 1.4 条(本サービス利用契約)
-
- 顧客が当社所定の方法により本サービスの利用を申し込み、当社が当該申込みを承諾することによ
- り本サービス利用契約を締結する。但し、当該顧客が過去に当社との間の契約に基づく義務に違反
- した等合理的な理由がある場合、当社は当該顧客との間の本サービス利用契約の締結を拒絶する
- ことができる。
-
-
- 第 1.5 条(委託)
-
- 当社は、顧客に対する本サービスの提供又は本サービス若しくは本ソフトウェアの開発若しくは保守
- 等に関して必要となる業務の全部又は一部を、当社の判断において国内及び国外の第三者(以下
- 「委託先」という。)に委託することができる。
-
-
- 第 1.6 条(設備等の準備及び維持)
-
-
- 顧客は、当社が認めた場合を除き、自己の費用と責任において、当社が定める条件にて本デバイス 及び
- LoRaWAN 基地局の設置及び設定を行い、本サービス利用契約の期間中、本サービス(本デ バイス及び
- LoRaWAN 基地局を含む。)が利用可能な環境を維持する。
-
-
- 顧客は、本サービスを利用するために必要な場合は、自己の責任と費用において、電気通信事業者
- 等の電気通信サービスを利用して本デバイスをインターネットに接続する。
-
-
- 顧客は、LoRaWAN 接続、本デバイス(第 6.1 条第 9 項に基づく保証の期間内のものを除く。)、前
- 項に定めるインターネット接続その他本サービスを利用するための環境に不具合がある場合又はそ
- れらに関するセキュリティ上の問題が生じた場合、本サービスの利用ができなくなる可能性があることを了承し、自己の費用と責任において、十分な対策(セキュリティ対策を含む。)を講じるものとする
- 。 当社は、当該不具合又はセキュリティ上の問題により顧客が本サービスを利用できないことに対し
- て責任を負わない。
-
-
-
-
-
- 第2章 本サービスの利用等
-
- 第 2.1 条(本サービスの利用)
-
-
- 本サービス利用契約に基づき、当社は顧客に対して、本ソフトウェアの利用を行うための制限的かつ
- 譲渡不可能なライセンスを許諾する。
-
-
- 顧客には、本規約及び本サービス利用契約を遵守する限度において、本規約及び本サービス利用
- 契約に定める利用目的の範囲内に限り、本サービスを利用する権限が付与されるものとし、本サー
- ビスに含まれる全ての権限、著作権その他知的財産権は当社又は当社にライセンスを許諾している
- 者に帰属する。
-
-
- 顧客は、本サービスの利用権を第三者に譲渡することはできず、当社から書面により明示の権限を
- 付与されない限り、本サービスに含まれる如何なる権利も第三者にサブライセンスすることはできな
- い。
-
-
-
- 第 2.2 条(アカウントの管理等)
-
-
- 顧客は、顧客アカウントのログイン ID 及びパスワードを、自己の責任のもと厳重に管理し、第三者へ
- の貸与等本規約に定める利用目的に反した一切の利用を行わない。
-
-
- 顧客アカウントのログイン ID 及びパスワードを用いた本サービスの利用行為は、全て当該顧客によ
- る行為とみなすものとし、顧客の同意の有無を問わず、第三者が顧客アカウントのログイン ID 及び
- パスワードを用いて本サービスを利用した場合であっても、当該顧客はかかる利用について一切の
- 責任を負う。また、当該第三者の行為により当社が損害を被った場合、顧客はその損害を補償する。
-
-
- 顧客は、顧客アカウントのログイン ID 及びパスワードを用いた本サービスの利用において、本規約
- 又は本サービス利用契約の違反があったことを知った場合、又はそのおそれがあると判断した場合
- は、直ちに当社に通知するものとし、同違反について一切の責任を負う。
-
-
-
- 第 2.3 条(利用料金)
-
-
- 本サービスの利用は有料であり、顧客は本サービスの利用の対価として当社所定の利用料金(以
- 下「本サービス利用料金」という。)を支払わなければならない。本サービス利用料金は、当社が別
- 途顧客に対して提示する条件に従うものとする。
-
-
- 本サービス利用料金の支払方法及び支払時期等は、当社が別途顧客に対して提示する条件に従う
- ものとする。
-
-
-
- 第 2.4 条(契約期間)
-
-
- 本サービス利用契約の契約期間及び更新条件は、当社が別途顧客に対して提示する条件に従うも
- のとする。
-
-
-
-
-
- 第3章 顧客情報の取得・利用等
-
- 第 3.1 条(顧客情報の取得・利用等)
-
-
- 顧客は、本サービスの利用に際して、本ソフトウェアを通じて又はその他の方法により、当社が下記
- 各号に定める情報を含む顧客情報を取得することに同意する。なお、顧客情報には、個人情報(個
- 人情報の保護に関する法律に定める個人情報をいう。以下同じ。)が含まれる場合がある。
-
- 顧客が本サービス利用契約締結時に登録した住所、氏名、メールアドレス等の情報
- 顧客の管理責任者の氏名、メールアドレス等の情報
-
- 雇用、委任等の形態を問わず、外形上顧客のために顧客のログイン ID 及びパスワードを用い
- て本サービスを利用する個人が利用時に登録した氏名、メールアドレス等の情報
-
- 本ソフトウェアの利用履歴
- その他、本サービスの性能を実現するために必要な情報
-
-
-
- 顧客は、当社及び委託先が、下記各号に定める目的のために顧客情報を閲覧、利用及び管理する
- ことをあらかじめ同意する。
-
- 顧客に対し本サービス及びこれに付随するサービスを提供する目的
- メンテナンス又はセキュリティ上の対応等を実施する目的
- 顧客へのアフターサービスを実施する目的
- 本ソフトウェアを開発、提供又は保守等する目的
- 顧客以外の者に対するアフターサービスその他のサポート体制を向上させる目的
- 当社の製品・サービスの開発・改善等のために利用する目的
- 統計数値その他匿名データの作成及びその分析のために利用する目的
- 当社と顧客との間のコミュニケーション(アンケート、問い合わせ対応等を含む)
- 本サービスの不正利用(なりすまし等)の防止
- 紛争、訴訟等の対応
-
- 当社のその他の事業目的(開発、設計、エンジニアリング、生産、販売又は本サービスの提供・
- 改善を含むがこれらに限られない。)を遂行する目的
-
-
-
-
- 前項に定める場合を除き、当社は、匿名データ以外の顧客情報を第三者に提供するときは、顧客の
- 承諾を得るものとする。但し、以下の場合はこの限りでない。
-
- 法令に基づいて、開示が必要であると当社が合理的に判断した場合
-
- 人の生命、身体又は財産の保護のために必要がある場合であって、本人の同意を得ることが
- 困難であると判断した場合
-
-
- 公衆衛生の向上又は児童の健全な育成の推進のために特に必要がある場合であって、本人
- の同意を得ることが困難であると判断した場合
-
-
- 国の機関若しくは地方公共団体又はその委託を受けた者が法令の定める事務を遂行すること
- に対して協力する必要がある場合であって、本人の同意を得ることにより当該事務の遂行に支
- 障を及ぼすおそれがあると判断した場合
-
-
- 合併その他の事由により本サービスの権利者、サービスの主体が変更され、サービスの継続のため個人情報を移管する必要があると判断した場合
-
-
-
-
- 顧客は、個人情報保護法その他の法令を遵守の上、顧客自身の責任において、顧客情報を第三者
- に提供することができる。かかる第三者に対する顧客情報の提供に関して、当社は一切責任を負わ
- ず、当該第三者への顧客情報の提供により又はこれに関連して当社が損害を被った場合、顧客はそ
- の損害を補償する。
-
-
- 顧客は、本サービスの利用による顧客情報の提供に際して、本データの主体又は本デバイスを利用
- 若しくは所持する主体が顧客と異なる場合には、情報の取得について当該主体に対して十分な説
- 明を実施するものとする。
-
-
- 顧客は、顧客情報のうち、個人情報に該当するため送信を希望しない情報がある場合には、当該情
- 報の削除を行う又は当社に削除を依頼することができる。この場合、当該情報が取得されないことに
- より、本サービスの機能の一部が利用できなくなることがあることを了承する。
-
-
-
- 第 3.2 条(個人情報の保護)
-
-
- 当社は、本サービスに関して取得した又は提供を受けた個人情報を、前条に定める利用目的の範
- 囲内でのみ使用し、また、前条の規定に従い第三者に提供する。
-
-
- 当社は、前項に定める個人情報を、当社ウェブサイト上で公開するプライバシーポリシーに従い、適
- 切に取り扱うものとする。
-
-
-
- 第 3.3 条(利害関係者の同意等)
-
-
- 顧客は、顧客情報に顧客以外の第三者の情報が含まれる場合は、当該情報を当社に提供する前に 、 第
- 3.1 条の内容につき当該第三者の同意を得るものとする。
-
-
- 顧客は、本サービスの利用開始時及び利用期間中において、前項の同意を取得していること、顧客
- 情報について適法な権利を有していること及び第 3.1 条第 2 項各号に定める顧客情報の利用が
- 第三者の権利を侵害しないことを保証する。顧客は、当該保証の違反により第三者との間で生じた
- 紛争等について、顧客の責任において対処するものとし、当社はこれらに関して一切責任を負わな い。
-
-
-
-
-
- 第4章 本データの取得・管理等
-
- 第 4.1 条(本データの取得・管理等)
-
-
- 顧客は、本データが、当社が管理するクラウドサーバに送信、保存、管理されることに同意する。
-
-
- 顧客は、当社が、下記各号に定める目的のために本データを閲覧、利用及び管理することをあらか
- じめ同意する。
-
- 顧客に対し本サービス及びこれに付随するサービスを提供する目的
- メンテナンス又はセキュリティ上の対応等を実施する目的
- 顧客へのアフターサービスを実施する目的
- 本ソフトウェアを開発又は保守等する目的
- 統計数値の作成及びその分析のために利用する目的
- 本サービスの不正利用(なりすまし等)の防止
- 紛争、訴訟等の対応
-
-
- 顧客は、当社が匿名データを第三者に提供する場合があることをあらかじめ同意する。
-
- 前二項の場合を除き、当社は、匿名データ以外の本データを第三者に提供するときは、顧客の承諾
- を得るものとする。ただし、法令の定めに基づく場合又は権限ある官公署からの要求を受けた場合
- はこの限りではない。
-
-
- 顧客は、個人情報保護法その他の法令を遵守の上、顧客自身の責任において、本データを第三者
- に提供することができる。かかる第三者に対する本データの提供に関して、当社は一切責任を負わ
- ず、当該第三者への本データの提供により又はこれに関連して当社が損害を被った場合、顧客はそ
- の損害を補償する。
-
-
- 顧客は、第 2 項に基づく当社による本データの利用等及び顧客から第三者への本データの提供に
- 際して、本データの主体又は本デバイスを利用若しくは所持する主体が顧客と異なる場合には、本
- データの取得について当該主体に対して十分な説明を実施するものとする。
-
-
-
- 第 4.2 条(利害関係者の同意等)
-
-
- 顧客は、本データに顧客以外の第三者の情報が含まれる場合は、当該情報を提供する前に、第 4.1
- 条の内容につき当該第三者の同意を得るものとする。
-
-
- 顧客は、本サービスの利用開始時及びその利用期間中において、前項の同意を取得していること、
- 本データについて適法な権利を有していること及び第 4.1 条第 2 項各号に定める当社による本
- データの利用が第三者の権利を侵害しないことを保証する。顧客は、当該保証の違反により第三者
- との間で生じた紛争等について、顧客の責任において対処するものとし、当社はこれらに関して一切
- 責任を負わない。
-
-
-
-
-
- 第5章 禁止事項
-
- 第 5.1 条(禁止事項)
-
- 顧客は、本サービスの利用に際して、下記各号の行為を行ってはならない。なお、当社は、下記各号
- に該当する行為に関連する情報及びデータについては、任意に削除することができる。
-
-
- 当社若しくは第三者の知的財産権その他の権利を侵害する行為又は侵害するおそれのある行 為
- 本サービスの内容や本サービスにおいて利用しうる情報を改ざん又は消去する行為
-
- 匿名データに係る個人又は顧客を識別するために当該匿名データを他の情報と照合し、また、
- 当該本人を特定する行為又はこれらの照合若しくは特定をしようとする行為
-
-
- 本デバイス又は本ソフトウェアの全部又は一部を変更、リバースエンジニアリング、逆コンパイル、
- 分解し、それらの派生物を生成し、その他の方法でソースコードを解読する等の行為
-
- 本規約に定める以外の目的又は方法で、本サービスを利用する行為
-
- 本規約若しくは本サービス利用契約に反する態様又は当社の判断により不適当とみなした態
- 様で本サービスを利用する行為
-
- 本規約又は本サービス利用契約に違反して、第三者に本サービスを利用させる行為
- 第三者になりすまして本サービスを利用する行為
- 法令又は公序良俗に違反する行為
- 他者を差別若しくは誹謗中傷し、又はその名誉若しくは信用を毀損する行為
- 詐欺等の犯罪に結びつく又は結びつくおそれがある行為
- わいせつ、児童ポルノ又は児童虐待にあたる画像、文書等を登録する行為
- 無限連鎖講を開設し、又はこれを勧誘する行為
- コンピュータ・ウイルス等の有害なデータ、コンピュータ・プログラム等を登録する行為
-
- 広告、宣伝若しくは勧誘のために本サービスを利用する行為、又は第三者が嫌悪感を抱く若し
- くはそのおそれのある表現を含む情報を本サービスに登録する行為
-
- 本サービスの提供・動作に支障を与える行為、又は与えるおそれのある行為
- 面識のない者との出会いを目的とした情報を登録する行為
-
- ある行為が前各号のいずれかに該当することを知りつつ、その行為を助長する態様・目的でリ
- ンクを貼る行為
-
- その他、当社が不適切と判断する行為
-
-
-
-
- 第6章 保証・責任
-
- 第 6.1 条 (保証・責任の制限)
-
-
- 当社は、本サービスを現状有姿で提供するものとし、本サービス又は本ソフトウェアに瑕疵・バグ等
- が存在する場合又はシステムの過負荷、不具合等により本サービスの利用等が停止する場合にお
- いても、当社は本規約に規定する限度においてのみ責任を負うものとする。
-
-
- 当社は、当社が必要と判断した場合には、顧客に通知することなくいつでも本サービスの内容を変
- 更し、又は本サービスの提供を停止若しくは中止することができるものとする。本サービスの提供を
- 停止又は中止した場合、当社は顧客に対して、月額等で継続的に支払われる利用料の精算を除き、
- 一切責任を負わないものとする。
-
-
- 当社は、本サービス及び本ソフトウェアの完全性、有用性、信頼性、真実性、正確性、妥当性、動作保
- 証、特定の目的への適合性、使用機器への適合性、適法性、第三者の権利を侵害していないことそ
- の他本サービス及び本ソフトウェアの機能及び性質について一切の保証を行わないものとし、顧客
- は自らの判断及び責任に基づき本サービスを利用するものとする。
-
-
- 当社は、本サービスを提供する機器又はサーバの故障・トラブル、停電、通信回線の異常及びシステ
- ム障害等の不可抗力により発生する障害について、一切責任を負わないものとする。この場合、顧客
- 情報、本データその他顧客に関するデータが消失等することがあり、また、かかる事態の発生により
- 顧客情報、本データその他顧客に関するデータが消失、紛失、遅延等した場合、本デバイスの利用
- 制限や初期化が行われる可能性があることを顧客は理解し、顧客はかかる消失等につき当社に対
- して責任を追及しない。
-
-
- 当社は、顧客情報及び本データの保護に関し、業界標準に照らし合理的なセキュリティ対策を講じ
- るものとする。但し、第三者による不正アクセス、盗難、破壊、改ざん等により生じた損害については、顧客と不正アクセス等を実施した第三者との間でこれを解決するものとする。
-
-
- 当社は、顧客情報及び本データについてバックアップを取る義務を負わない。顧客は、顧客情報及び
- 本データのバックアップについて、自己の責任で定期的に実施する。
-
-
- 当社は、顧客が本デバイスと USB メモリ等の外部記憶装置を接続し、データの書き出し若しくは書
- き込みを行う場合又は本デバイスがデータ通信を行う場合、当該外部記憶装置又は転送される
- データがコンピュータ・ウイルスに感染していないことを保証するものではなく、かかる感染に起因す
- る損害について一切の責任を負わない。
-
-
- 顧客の操作により、本サービスが、第三者が提供する他のアプリケーションその他ソフトウェアを呼び
- 出す場合又は第三者が提供する他のアプリケーションその他ソフトウェアの機能を利用する場合、当
- 該アプリケーションその他ソフトウェアの仕様、動作、機能等並びに本サービスとの接続及び連携等
- について、当社は一切の責任を負わない。
-
-
- 本デバイスのうち、当社製品の保証については、当社が別途顧客に交付する保証書等に定めるとこ
- ろによる。当社製品でない製品の保証については、当該製品のメーカーの保証による。
-
-
-
- 第 6.1 条 (保証・責任の制限)
-
-
- 当社は、顧客の行為が本規約又は本サービス利用契約に違反すると判断した場合、当該顧客への
- 事前の通知なしに、顧客情報及び本データの全部又は一部の削除を行い、本サービスの利用の停
- 止又は制限等、当社が適当と判断する措置を講ずることができる。
-
-
- 当社は、前項の規定に基づき当社が講じた措置に起因する損害が発生した場合であっても、一切責
- 任を負わないものとする。
-
-
- 前二項の規定は、当社が当該処置を講じることにより当社又は第三者に損害が発生した場合にお
- ける、顧客の責任を免責するものではない。顧客は、本規約又は本サービス利用契約に違反したこ
- とにより第三者に損害を与えた場合又は第三者と紛争を生じさせた場合、自己の責任と費用でこれ
- を解決し、当社にいかなる責任も負担させないものとする。また、顧客は、当社が他の顧客や第三者
- から責任を追及された場合は、その責任と費用において当該紛争を解決するものとし、当社にいか
- なる責任も負担させないものとする。
-
-
-
- 第 6.3 条(顧客情報等による損害)
-
-
- 当社は、顧客情報又は本データに起因して本サービス又は当社のサーバに支障が生じた場合若し
- くはそのおそれがある場合、事前に顧客の承諾を得ることなく、自ら又は委託先をして、顧客情報及
- び本データの一部又は全部の削除等当社が適当と判断する措置を講ずることができる。
-
-
- 当社は、前項の規定に基づき当社が講じた措置に起因する損害が発生した場合であっても、一切責
- 任を負わないものとする。
-
-
- 前二項の規定は、当社が当該処置を講じることにより当社又は第三者に損害が発生した場合にお
- ける、顧客の責任を免責するものではない。 顧客は、当該措置に起因して顧客に発生した損害につ
- いて、当社にいかなる責任も負担させないものとする。
-
-
-
- 第 6.4 条(当社による損害賠償)
-
-
- 当社は、本サービスに関して顧客に生じた損害について、当社に故意または重過失が認められる場
- 合に限り、その損害を賠償する責任を負うものとし、以下各号の事由により生じた損害については一
- 切責任を負わない。
-
-
- 地震、津波、落雷、洪水等の天変地異、新型コロナウィルス、インフルエンザ、鳥インフルエンザ
- 等の感染症、戦争(日本国外のものを含む)、革命、暴動、テロ行為等の騒乱、本サービスの提
- 供に影響する法改正(特に AI 及び個人情報を巡る規制)、輸送機関・通信回線等の事故、その
- 他の不可抗力
-
-
- 当社以外の者が本デバイス、LoRaWAN 基地局その他本サービスに供される機器又は設備
- (以下「本件設備等」という。)に対し加えた損傷等
-
- 本件設備等以外の設備又は機器に起因する事故
-
- 本サービス利用契約締結時点での一般的な技術水準に従った管理をしていたにもかかわらず
- 発生した不具合(第三者によるサーバ攻撃、インターネットのダウン等通信環境の不調、サーバ
- 提供事業者の債務不履行(倒産や故障を含む)等に起因するものを含む)
-
-
- 本デバイスを通じて収集した情報に誤り・偏り等が含まれることでなされた AI の不適切な学習
-
-
- 顧客以外の第三者が被った損害(本デバイスを装着した個人のバイタルサインが本サービス
- をもってしても適時・正確に伝達されないことに起因する、当該個人の損害を含むがこれに限ら
- ない。)
-
- その他、発生原因を特定できない事故等
-
-
-
- 当社は、本規約において顧客の責任としている事項および当社が保証しないまたは責任を負わない
- ものとしている事項については、一切の責任を負わない。
-
-
- 第一項の規定にかかわらず、当社の賠償責任は、顧客が直接被った通常の損害に限定されるもの
- とし、付随的損害、間接損害、特別損害、将来の損害および逸失利益にかかる損害については、賠償
- する責任を負わない。また、賠償すべき損害の金額は、直近 12 か月間に顧客が当社に支払った本
- サービス利用料金の合計に相当する金額を上限とする。
-
-
-
-
-
- 第7章 その他
-
- 第 7.1 条(秘密保持義務)
-
-
- 顧客及び当社は、本サービスに関して知り得た相手方の技術上又は営業上その他業務上の情報
- (但し、顧客情報を除く。以下「秘密情報」という。)を、本サービスの利用の目的の範囲内でのみ使
- 用し、事前に相手方の書面による承諾を得ない限り第三者(当社においては委託先を除く。)に開示
- 又は漏洩しない。但し、下記各号のいずれかに該当することを立証できる情報は秘密情報に含まれ
- ない。
-
- 秘密保持義務を負うことなく既に保有している情報
- 秘密保持義務を負うことなく第三者から正当に入手した情報
- 相手方から提供を受けた情報によらず、独自に開発した情報
-
- 本規約及び本サービス利用契約に違反することなく、かつ、受領の前後を問わず公知となった 情報
-
-
-
-
- 前項の定めにかかわらず、顧客及び当社は、秘密情報のうち法令の定めに基づき又は権限ある官
- 公署からの要求により開示すべき情報を、当該法令の定めに基づく開示先又は当該官公署に対し
- 開示することができる。この場合、顧客及び当社は、関連法令に反しない限り、当該開示前に開示す
- る旨を相手方に通知するものとし、開示前に通知を行うことができない場合は開示後速やかにこれ
- を行う。
-
-
- 第 1 項の定めにかかわらず、当社が必要と認めた場合には、当社はその委託先に対して、本条に定
- める義務を遵守させることを条件に、必要な範囲で、顧客から事前の書面による承諾を受けることな
- く顧客の秘密情報を開示することができる。
-
-
-
- 第 7.1 条(秘密保持義務)
-
-
- 顧客は、当社所定の方法によって申し込むことにより、本サービス利用契約を解約することができる。
- この場合の解約に関する条件は、当社が別途顧客に対して提示する条件に従うものとする。
-
-
- 当社は、顧客が本規約又は本サービス利用契約に違反し、一定期間を定めて是正を催告したにも
- かかわらず顧客がこれを履行しない場合は、書面又は電子メールによる通知を行うことによって本
- サービス利用契約の全部又は一部を解約することができる。また、当社は、当該違反が是正されるま
- での間、顧客による本サービスの利用を一時的に停止することができる。
-
-
- 当社は、顧客が下記各号のいずれかに該当する場合、何ら催告することなく顧客への書面又は電子
- メールによる通知を行うことによって、顧客による本サービスの利用を一時的に停止し、又は本サー
- ビス利用契約の全部又は一部を解約することができる。
-
- 支払停止又は支払不能となった場合
- 手形又は小切手が不渡りとなった場合
- 差押え、仮差押え若しくは競売の申立があったとき又は公租公課の滞納処分を受けた場合
-
- 破産、会社更生手続開始若しくは民事再生手続開始の申立があったとき又は信用状態に重大
- な不安が生じた場合
-
- 監督官庁から営業許可の取消、停止等の処分を受けた場合
- 解散、減資、営業の全部又は重要な一部の譲渡等の決議をした場合
- その他前各号に準じる事由が生じた場合
-
-
-
- 当社は、本条の規定に基づき当社が本サービス利用契約を解除し又は顧客による本サービスの利
- 用を停止したことにより、顧客に損害が発生した場合であっても、一切責任を負わないものとする。
-
-
-
- 第 7.4 条(契約終了後の処理)
-
- 顧客は、本サービス利用契約の終了後は、本サービスを利用することができないものとする。
-
- 顧客は、本サービス利用契約の終了後、顧客が顧客情報、本データその他顧客から当社に提供さ
- れた全てのデータ及び情報を、当社が任意に削除できることに同意する。顧客は、適時に必要な全
- てのデータ及び情報について自らの責任及び負担でバックアップを作成するものとし、当社は顧客
- のデータ及び情報の喪失について一切責任を負わない。
-
-
- 顧客は、本サービスの利用にあたって当社から提供を受けた機器又はソフトウェア(当社から購入し
- た本デバイスは除くが、当社からレンタルされた本デバイスを含む。)がある場合は、当該機器又はソ
- フトウェア及びこれに関する全ての資料等(当該ソフトウェア及び資料等の複製物を含む。)を、本
- サービス利用契約終了後直ちに当社に返還する。
-
-
-
- 第 7.5 条(存続条項)
- 第 3.1 条乃至第 7.10 条は、本サービス利用契約の終了後も引き続き効力を有する。
-
- 第 7.6 条(地位等の譲渡禁止)
-
- 顧客は、当社の事前の書面による承諾なしに、本規約及び本サービス利用契約上の地位並びに本
- 規約及び本サービス利用契約に基づく権利又は義務の全部若しくは一部を第三者に譲渡してはな らない。
-
-
- 第 7.7 条(分離可能性)
-
- 本規約及び本サービス利用契約の各条項は、法律が許す範囲で可能な限り有効となる方法で解釈
- されるものとし、本規約及び本サービス利用契約のいかなる条項についても法律に違反している又
- は執行不能と判断される場合には、その条項の残りの部分又は他の条項を無効又は執行不能にす
- ることなく、その条項はその法律違反の限度においてのみ無効又は執行不能となる。
-
-
- 第 7.8 条(専属的合意管轄)
-
- 本規約及び本サービス利用契約に基づく顧客及び当社間の紛争に関しては、宮崎地方裁判所を第
- 一審の専属的合意管轄裁判所とする。
-
-
- 第 7.9(準拠法)
- 本規約及び本サービス利用契約の成立、効力、履行及び解釈に関する準拠法は、日本法とする。
-
- 第 7.10 条(誠実協議)
-
- 本規約及び本サービス利用契約に定めのない事項並びに定められた事項の解釈について疑義が
- 生じた場合は両者誠意を持って協議の上解決する。
-
-
-
-
-
- 2024 年 8 月 1 日 制定・施行
-
-
-
-
diff --git a/src/routes/legal/privacy-policy/+page.svelte b/src/routes/legal/privacy-policy/+page.svelte
deleted file mode 100644
index 62c9e082..00000000
--- a/src/routes/legal/privacy-policy/+page.svelte
+++ /dev/null
@@ -1,147 +0,0 @@
-
-
-
プライバシーポリシー
-
-合同会社クロップウォッチ(以下「当社」といいます。)は、当社のサービスを利用する方(以下「利用者」といいます。)の個人情報の取扱いについて、以下のとおりプライバシーポリシー(以下「本ポリシー」といいます。)を定め、個人情報保護の仕組みを構築し、全従業員に個人情報保護の重要性を認識させるとともにその取組みを徹底させることにより、個人情報の保護を推進します。
-
-
-
第 1 条 (個人情報)
-
-
- 「個人情報」とは、個人情報の保護に関する法律(平成十五年法律第五十七号、以下「個人情報保護法」といいます。)にいう「個人情報」を指し、生存する個人に関する情報であって、当該情報に含まれる氏名、生年月日その他の記述等により特定の個人を識別できるもの又は個人識別符号が含まれるものを指します。
-
-
-
第 2 条 (個人情報の利用目的)
-
- 当社は、以下の目的に必要な範囲で、利用者の個人情報を取得し、取得した情報を利用させていただきます。以下の目的の範囲を超えて個人情報を利用する場合には、事前に適切な方法で利用者からの同意を得るものとします。
-
-
- (1) 当社のサービス(以下「本サービス」といいます。)を提供するため
- (2)本サービスの内容を改良・改善し、又は新サービスを開発するため
-
- (3)
- 本サービスの新機能、更新情報、キャンペーン等及び当社が提供する他のサービスのご案内(電子メール、チラシ、その他のダイレクトメールの送付を含みます。)のため
-
- (4) メンテナンス、重要なお知らせ等必要に応じたご連絡のため
-
- (5)
- 本サービスに関する利用者からのご意見、お問い合わせ等に回答するため(本人確認を行うことを含みます。)
-
- (6) 本サービスの利用状況を利用者にご報告するため
-
- (7)
- 本サービスに関するアンケート・取材等のご協力依頼や各種イベントへのご参加をお願いし、又はその結果等をご報告するため
-
-
- (8)
- 本サービスの利用履歴等を調査・分析し、その結果を本サービスの改良・開発や広告の配信に利用するため
-
- (9) 利用者の承諾・申し込みに基づく、当社主催イベントの参加企業等への個人情報の提供
-
- (10)
- 利用規約に違反した利用者や、不正・不当な目的で本サービスを利用しようとする利用者の特定をし、ご利用をお断りするため
-
-
-
-
-
第 3 条 (クッキー等の利用)
-
- 当社は、本サービスへの利用者のアクセス情報、閲覧情報等を取得するために、クッキー(Cookie)、情報収集モジュール等(以下「クッキー等」といいます。)の技術を使用しています。本サービスで利用しているクッキー等の内容については、当社が別途定めるクッキーポリシーをご確認ください。
-
-
-
第 4 条 (個人情報の管理と保護)
-
- 個人情報の管理は、厳重に行うこととし、次に掲げるときを除き、利用者の同意がない限り、第三者に対し個人情報を開示・提供することはいたしません。また、安全性を考慮し、個人情報への不正アクセス、個人情報の紛失、破壊、改ざん及び漏えい等のリスクに対する予防並びに是正に関する対策を講じます。
-
-
-
- (1)
- 人の生命、身体又は財産の保護のために必要がある場合であって、利用者の同意を得ることが困難であるとき。
-
-
- (2)
- 公衆衛生の向上又は児童の健全な育成の推進のために特に必要がある場合であって、利用者の同意を得ることが困難であるとき。
-
-
- (3)
- 国の機関若しくは地方公共団体又はその委託を受けた者が法令の定める事務を遂行することに対して協力する必要がある場合であって、利用者の同意を得ることにより当該事務の遂行に支障を及ぼすおそれがあるとき。
-
- (4) その他法令で認められるとき。
-
-
-
-
第 5 条 (個人情報の取扱いの委託)
-
- 当社は、利用目的の達成に必要な範囲内において、個人情報の取扱いの全部又は一部を委託する場合がございます。この場合、当社は、委託先としての適格性を十分審査するとともに、契約にあたって守秘義務に関する事項等を定め、委託先に対する必要かつ適切な監督を行います。
-
-
-
第 6 条 (個人情報の開示)
-
- 利用者は、当社に対し、当社の保有する個人情報の開示を請求することができます。当社は、利用者から当該請求を受けたときは、利用者に対し、遅滞なくこれを開示します。ただし、開示することにより次のいずれかに該当する場合は、その全部又は一部を開示しないこともあり、開示しない決定をした場合には、その旨を遅滞なく通知します。
-
-
- (1) 利用者又は第三者の生命、身体、財産その他の権利利益を害するおそれがある場合
- (2) 当社の業務の適正な実施に著しい支障を及ぼすおそれがある場合
- (3) その他法令に違反することとなる場合
-
-
-
-
第 7 条 (個人情報訂正等)
-
- 1. 利用者は、当社の保有する個人情報が誤った情報である場合には、当社に対し、当該個人情報の訂正、追加又は削除(以下「訂正等」といいます。)を請求することができます。
- 2. 前項の請求を受けた場合、当社は遅滞なく必要な調査を行い、その結果前項の請求に理由があると判断した場合には、遅滞なく当該個人情報の訂正等を行います。
- 3. 当社は、前項に基づき訂正等の実施・不実施について判断した場合には、遅滞なく、利用者ご本人に対してご連絡いたします。
-
-
-
第 8 条 (個人情報の利用停止等)
-
- 1. 利用者は、当社に対し、当社の保有する個人情報の利用の停止、消去又は第三者提供の停止(以下「利用停止等」といいます。)を請求することができます。
- 2. 当社は、前項の請求を受けた場合には、必要な調査を行い、その結果前項の請求に理由があると判断した場合には、当該個人情報の利用停止等を行います。ただし、個人情報の利用停止等に多額の費用を要する場合その他利用停止等を行うことが困難な場合であって、利用者の権利利益を保護するために必要なこれに代わるべき措置をとれるときは、この代替策を講じます。
- 3. 当社は、前項に基づき利用停止等の実施・不実施について判断した場合には、利用者ご本人に対してご連絡いたします。
-
-
-
第 9 条 (プライバシーポリシーの変更手続)
-
- 当社は本ポリシーの内容を適宜見直し、その改善に努めます。本ポリシーの内容は、法令その他本ポリシーに別段の定めのある事項を除いて、変更することができるものとします。変更後のプライバシーポリシーは、当社所定の方法により、利用者に通知し、又は当社ウェブサイトに掲載したときから効力を生じるものとします。
-
-
-
第 10 条 (法令、規範の遵守)
-
当社は、保有する個人情報に関して適用される日本の法令、その他規範を遵守します。
-
-
第 11 条 (苦情及び相談への対応)
-
- 当社は、個人情報の取扱いに関する利用者からの苦情、相談を受け付け、適切かつ迅速に対応いたします。また、利用者からの当該個人情報の開示、訂正、追加、削除、利用又は提供の拒否等のご要望に対しても、迅速かつ適切に対応いたします。
-
-
-
第 12 条 (安全管理措置)
-
- 当社が利用者よりお預かりした個人情報は、個人情報ファイルへのアクセス制限の実施、アクセスログの記録及び外部からの不正アクセス防止のためのセキュリティ対策の実施等、組織的、物理的、人的、技術的施策を講じることで個人情報への不正な侵入、個人情報の紛失、破壊、改ざん、及び漏えい等を防止いたします。万一、利用者の個人情報の漏えい等の事故が発生した場合、当社は、個人情報保護法及び関連するガイドラインに則り、速やかに監督官庁への報告を行うとともに、当該監督官庁の指示に従い、類似事案の発生防止措置及び再発防止措置等の必要な対応を行います。詳細については、別添「個人情報の安全管理措置」 をご確認ください。
-
-
-
第 13 条 (当社住所・代表者氏名・個人情報保護管理者)
-
- 当社住所、代表者及び個人情報保護管理者の氏名は以下のとおりです。
- 住所:宮崎県西都市南方806-5
- 代表者:池水 彩 個人情報保護管理者:池水 彩
-
-
-
-
第 14 条 (お問い合わせ窓口)
-
- 当社の個人情報の取扱いに関するお問い合せは以下までご連絡ください。
- 合同会社クロップウォッチ 〒881-0027 宮崎県西都市南方806-5
- TEL: 080-4284-3390 Mail: sayaka@cropwatch.io
-
- 2024年8月1日 制定・施行
-
-
-
diff --git a/src/routes/app/rules/+page.svelte b/src/routes/locations/+page.svelte
similarity index 100%
rename from src/routes/app/rules/+page.svelte
rename to src/routes/locations/+page.svelte
diff --git a/src/routes/auth/login/+page.ts b/src/routes/locations/[location_id]/+page.svelte
similarity index 100%
rename from src/routes/auth/login/+page.ts
rename to src/routes/locations/[location_id]/+page.svelte
diff --git a/supabase/seed.sql b/src/routes/locations/[location_id]/devices/+page.svelte
similarity index 100%
rename from supabase/seed.sql
rename to src/routes/locations/[location_id]/devices/+page.svelte
diff --git a/src/service-worker.js b/src/service-worker.js
index 935445d6..e496ff77 100644
--- a/src/service-worker.js
+++ b/src/service-worker.js
@@ -1,80 +1,2 @@
///
import { build, files, version } from '$service-worker';
-
-// Create a unique cache name for this deployment
-const CACHE = `cache-${version}`;
-
-const ASSETS = [
- ...build, // the app itself
- ...files // everything in `static`
-];
-
-self.addEventListener('install', (event) => {
- // Create a new cache and add all files to it
- async function addFilesToCache() {
- const cache = await caches.open(CACHE);
- await cache.addAll(ASSETS);
- }
-
- event.waitUntil(addFilesToCache());
-});
-
-self.addEventListener('activate', (event) => {
- // Remove previous cached data from disk
- async function deleteOldCaches() {
- for (const key of await caches.keys()) {
- if (key !== CACHE) await caches.delete(key);
- }
- }
-
- event.waitUntil(deleteOldCaches());
-});
-
-self.addEventListener('fetch', (event) => {
- // ignore POST requests etc
- if (event.request.method !== 'GET') return;
-
- async function respond() {
- const url = new URL(event.request.url);
- const cache = await caches.open(CACHE);
-
- // `build`/`files` can always be served from the cache
- if (ASSETS.includes(url.pathname)) {
- const response = await cache.match(url.pathname);
-
- if (response) {
- return response;
- }
- }
-
- // for everything else, try the network first, but
- // fall back to the cache if we're offline
- try {
- const response = await fetch(event.request);
-
- // if we're offline, fetch can return a value that is not a Response
- // instead of throwing - and we can't pass this non-Response to respondWith
- if (!(response instanceof Response)) {
- throw new Error('invalid response from fetch');
- }
-
- if (response.status === 200) {
- cache.put(event.request, response.clone());
- }
-
- return response;
- } catch (err) {
- const response = await cache.match(event.request);
-
- if (response) {
- return response;
- }
-
- // if there's no cache, then just error out
- // as there is nothing we can do to respond to this request
- throw err;
- }
- }
-
- event.respondWith(respond());
-});
\ No newline at end of file
diff --git a/static/fonts/NotoSansJP/NotoSansJP-Black.ttf b/static/fonts/NotoSansJP/NotoSansJP-Black.ttf
deleted file mode 100644
index eb8ac8d4..00000000
Binary files a/static/fonts/NotoSansJP/NotoSansJP-Black.ttf and /dev/null differ
diff --git a/static/fonts/NotoSansJP/NotoSansJP-Bold.ttf b/static/fonts/NotoSansJP/NotoSansJP-Bold.ttf
deleted file mode 100644
index 00a854ce..00000000
Binary files a/static/fonts/NotoSansJP/NotoSansJP-Bold.ttf and /dev/null differ
diff --git a/static/fonts/NotoSansJP/NotoSansJP-ExtraBold.ttf b/static/fonts/NotoSansJP/NotoSansJP-ExtraBold.ttf
deleted file mode 100644
index 06da8191..00000000
Binary files a/static/fonts/NotoSansJP/NotoSansJP-ExtraBold.ttf and /dev/null differ
diff --git a/static/fonts/NotoSansJP/NotoSansJP-ExtraLight.ttf b/static/fonts/NotoSansJP/NotoSansJP-ExtraLight.ttf
deleted file mode 100644
index 711dbaf4..00000000
Binary files a/static/fonts/NotoSansJP/NotoSansJP-ExtraLight.ttf and /dev/null differ
diff --git a/static/fonts/NotoSansJP/NotoSansJP-Light.ttf b/static/fonts/NotoSansJP/NotoSansJP-Light.ttf
deleted file mode 100644
index f4e93503..00000000
Binary files a/static/fonts/NotoSansJP/NotoSansJP-Light.ttf and /dev/null differ
diff --git a/static/fonts/NotoSansJP/NotoSansJP-Medium.ttf b/static/fonts/NotoSansJP/NotoSansJP-Medium.ttf
deleted file mode 100644
index ee16db0d..00000000
Binary files a/static/fonts/NotoSansJP/NotoSansJP-Medium.ttf and /dev/null differ
diff --git a/static/fonts/NotoSansJP/NotoSansJP-Regular.ttf b/static/fonts/NotoSansJP/NotoSansJP-Regular.ttf
deleted file mode 100644
index b2dad730..00000000
Binary files a/static/fonts/NotoSansJP/NotoSansJP-Regular.ttf and /dev/null differ
diff --git a/static/fonts/NotoSansJP/NotoSansJP-SemiBold.ttf b/static/fonts/NotoSansJP/NotoSansJP-SemiBold.ttf
deleted file mode 100644
index 6150de39..00000000
Binary files a/static/fonts/NotoSansJP/NotoSansJP-SemiBold.ttf and /dev/null differ
diff --git a/static/fonts/NotoSansJP/NotoSansJP-Thin.ttf b/static/fonts/NotoSansJP/NotoSansJP-Thin.ttf
deleted file mode 100644
index 063ec5be..00000000
Binary files a/static/fonts/NotoSansJP/NotoSansJP-Thin.ttf and /dev/null differ
diff --git a/static/fonts/Roboto-Regular.ttf b/static/fonts/Roboto-Regular.ttf
deleted file mode 100644
index 2d116d92..00000000
Binary files a/static/fonts/Roboto-Regular.ttf and /dev/null differ
diff --git a/static/images/Dashboard-screenshot1.png b/static/images/Dashboard-screenshot1.png
new file mode 100644
index 00000000..434fd49a
Binary files /dev/null and b/static/images/Dashboard-screenshot1.png differ
diff --git a/static/images/EM500-co2.png b/static/images/EM500-co2.png
new file mode 100644
index 00000000..3f31a5dc
Binary files /dev/null and b/static/images/EM500-co2.png differ
diff --git a/static/images/RA02A.png b/static/images/RA02A.png
new file mode 100644
index 00000000..7f853374
Binary files /dev/null and b/static/images/RA02A.png differ
diff --git a/static/images/S2100.png b/static/images/S2100.png
new file mode 100644
index 00000000..4c056908
Binary files /dev/null and b/static/images/S2100.png differ
diff --git a/static/images/SenseCAP S2103.png b/static/images/SenseCAP S2103.png
new file mode 100644
index 00000000..4c056908
Binary files /dev/null and b/static/images/SenseCAP S2103.png differ
diff --git a/static/images/apple-touch-icon.png b/static/images/apple-touch-icon.png
new file mode 100644
index 00000000..f253a5ac
Binary files /dev/null and b/static/images/apple-touch-icon.png differ
diff --git a/static/images/cropwatch_animated.svg b/static/images/cropwatch_animated.svg
new file mode 100644
index 00000000..0ca67786
--- /dev/null
+++ b/static/images/cropwatch_animated.svg
@@ -0,0 +1 @@
+
diff --git a/static/images/cropwatch_static_100.svg b/static/images/cropwatch_static_100.svg
new file mode 100644
index 00000000..e399c925
--- /dev/null
+++ b/static/images/cropwatch_static_100.svg
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/static/images/cropwatch_static_512.svg b/static/images/cropwatch_static_512.svg
new file mode 100644
index 00000000..eb2f1c72
--- /dev/null
+++ b/static/images/cropwatch_static_512.svg
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/static/images/favicon.ico b/static/images/favicon.ico
new file mode 100644
index 00000000..52cbb4bb
Binary files /dev/null and b/static/images/favicon.ico differ
diff --git a/static/images/favicon.png b/static/images/favicon.png
new file mode 100644
index 00000000..57e0d8cb
Binary files /dev/null and b/static/images/favicon.png differ
diff --git a/static/images/favicon.svg b/static/images/favicon.svg
new file mode 100644
index 00000000..e399c925
--- /dev/null
+++ b/static/images/favicon.svg
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/static/images/google-touch-icon.png b/static/images/google-touch-icon.png
new file mode 100644
index 00000000..10e703c2
Binary files /dev/null and b/static/images/google-touch-icon.png differ
diff --git a/static/images/login-screenshot1.png b/static/images/login-screenshot1.png
new file mode 100644
index 00000000..43d8ced8
Binary files /dev/null and b/static/images/login-screenshot1.png differ
diff --git a/static/images/logo_1024.png b/static/images/logo_1024.png
new file mode 100644
index 00000000..d55372e2
Binary files /dev/null and b/static/images/logo_1024.png differ
diff --git a/src/lib/images/UI/logo_192.png b/static/images/logo_192.png
similarity index 100%
rename from src/lib/images/UI/logo_192.png
rename to static/images/logo_192.png
diff --git a/static/images/logo_2048.png b/static/images/logo_2048.png
new file mode 100644
index 00000000..48c56a47
Binary files /dev/null and b/static/images/logo_2048.png differ
diff --git a/static/images/logo_32.png b/static/images/logo_32.png
new file mode 100644
index 00000000..6af14e4f
Binary files /dev/null and b/static/images/logo_32.png differ
diff --git a/static/images/logo_4096.png b/static/images/logo_4096.png
new file mode 100644
index 00000000..5aa8000a
Binary files /dev/null and b/static/images/logo_4096.png differ
diff --git a/static/images/logo_48.png b/static/images/logo_48.png
new file mode 100644
index 00000000..159a636d
Binary files /dev/null and b/static/images/logo_48.png differ
diff --git a/static/images/logo_5000.png b/static/images/logo_5000.png
new file mode 100644
index 00000000..da7cefdc
Binary files /dev/null and b/static/images/logo_5000.png differ
diff --git a/static/images/logo_512.png b/static/images/logo_512.png
new file mode 100644
index 00000000..10e703c2
Binary files /dev/null and b/static/images/logo_512.png differ
diff --git a/static/images/logo_96.ico b/static/images/logo_96.ico
new file mode 100644
index 00000000..847bd78c
Binary files /dev/null and b/static/images/logo_96.ico differ
diff --git a/static/images/logo_96.png b/static/images/logo_96.png
new file mode 100644
index 00000000..079002e1
Binary files /dev/null and b/static/images/logo_96.png differ
diff --git a/static/manifest.json b/static/manifest.json
deleted file mode 100644
index df6d4c80..00000000
--- a/static/manifest.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": "CropWatch",
- "short_name": "CW",
- "start_url": "/",
- "scope": "/",
- "id": "/",
- "display": "standalone",
- "description": "CropWatch is a web application that helps you monitor all of your sensors in one place.",
- "display_override": ["window-controls-overlay"],
- "orientation": "portrait-primary",
- "icons": [
- {
- "src": "/favicon.svg",
- "type": "image/svg+xml",
- "sizes": "any"
- }
- ],
- "screenshots": [
- {
- "src": "/pwa/screenshot1.png",
- "sizes": "640x320",
- "type": "image/png",
- "form_factor": "wide",
- "label": "CropWatch UI Desktop"
- },
- {
- "src": "/pwa/screenshot2.png",
- "type": "image/png",
- "sizes": "540x720",
- "form_factor": "narrow"
- }
- ],
- "background_color": "#f3eea524",
- "theme_color": "#4eba3d00"
-}
\ No newline at end of file
diff --git a/static/manifest.webmanifest b/static/manifest.webmanifest
new file mode 100644
index 00000000..481a79f2
--- /dev/null
+++ b/static/manifest.webmanifest
@@ -0,0 +1,73 @@
+{
+ "lang": "ja",
+ "short_name": "CropWatch",
+ "name": "CropWatch User Interface",
+ "icons": [
+ {
+ "src": "/images/cropwatch_static_512.svg",
+ "type": "image/svg+xml",
+ "sizes": "512x512"
+ },
+ {
+ "src": "/images/logo_192.png",
+ "type": "image/png",
+ "sizes": "192x192"
+ },
+ {
+ "src": "/images/logo_512.png",
+ "type": "image/png",
+ "sizes": "512x512"
+ }
+ ],
+ "id": "/cropwatch-ui-app",
+ "start_url": "/",
+ "background_color": "#3367D6",
+ "display": "standalone",
+ "display_override": [
+ "fullscreen",
+ "minimal-ui"
+ ],
+ "scope": "/",
+ "theme_color": "#3367D6",
+ "shortcuts": [
+ {
+ "name": "CropWatch UI",
+ "short_name": "CropWatch",
+ "description": "CropWatch UI",
+ "url": "/",
+ "icons": [
+ {
+ "src": "/images/logo_192.png",
+ "sizes": "192x192"
+ }
+ ]
+ },
+ {
+ "name": "CropWatch UI",
+ "short_name": "CropWatch",
+ "description": "CropWatch",
+ "url": "/",
+ "icons": [
+ {
+ "src": "/images/logo_192.png",
+ "sizes": "192x192"
+ }
+ ]
+ }
+ ],
+ "description": "CropWatch UI",
+ "screenshots": [
+ {
+ "src": "/images/Dashboard-screenshot1.png",
+ "type": "image/png",
+ "sizes": "540x720",
+ "form_factor": "narrow"
+ },
+ {
+ "src": "/images/login-screenshot1.png",
+ "type": "image/png",
+ "sizes": "720x540",
+ "form_factor": "wide"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/static/pwa/screenshot1.png b/static/pwa/screenshot1.png
deleted file mode 100644
index 963c90e3..00000000
Binary files a/static/pwa/screenshot1.png and /dev/null differ
diff --git a/static/pwa/screenshot2.png b/static/pwa/screenshot2.png
deleted file mode 100644
index df217a39..00000000
Binary files a/static/pwa/screenshot2.png and /dev/null differ
diff --git a/supabase/.branches/_current_branch b/supabase/.branches/_current_branch
deleted file mode 100644
index 88d050b1..00000000
--- a/supabase/.branches/_current_branch
+++ /dev/null
@@ -1 +0,0 @@
-main
\ No newline at end of file
diff --git a/supabase/.temp/cli-latest b/supabase/.temp/cli-latest
deleted file mode 100644
index ea6995c1..00000000
--- a/supabase/.temp/cli-latest
+++ /dev/null
@@ -1 +0,0 @@
-v1.187.10
\ No newline at end of file
diff --git a/supabase/.temp/gotrue-version b/supabase/.temp/gotrue-version
deleted file mode 100644
index 420a7bed..00000000
--- a/supabase/.temp/gotrue-version
+++ /dev/null
@@ -1 +0,0 @@
-v2.156.0
\ No newline at end of file
diff --git a/supabase/.temp/pooler-url b/supabase/.temp/pooler-url
deleted file mode 100644
index 73c430e4..00000000
--- a/supabase/.temp/pooler-url
+++ /dev/null
@@ -1 +0,0 @@
-postgresql://postgres.dpaoqrcfswnzknixwkll:[YOUR-PASSWORD]@aws-0-ap-northeast-1.pooler.supabase.com:6543/postgres
\ No newline at end of file
diff --git a/supabase/.temp/postgres-version b/supabase/.temp/postgres-version
deleted file mode 100644
index 0c84ed06..00000000
--- a/supabase/.temp/postgres-version
+++ /dev/null
@@ -1 +0,0 @@
-15.6.1.100
\ No newline at end of file
diff --git a/supabase/.temp/project-ref b/supabase/.temp/project-ref
deleted file mode 100644
index 25efdc39..00000000
--- a/supabase/.temp/project-ref
+++ /dev/null
@@ -1 +0,0 @@
-dpaoqrcfswnzknixwkll
\ No newline at end of file
diff --git a/supabase/.temp/rest-version b/supabase/.temp/rest-version
deleted file mode 100644
index cf6fa542..00000000
--- a/supabase/.temp/rest-version
+++ /dev/null
@@ -1 +0,0 @@
-v12.2.2
\ No newline at end of file
diff --git a/supabase/.temp/storage-version b/supabase/.temp/storage-version
deleted file mode 100644
index 1a6afeda..00000000
--- a/supabase/.temp/storage-version
+++ /dev/null
@@ -1 +0,0 @@
-v1.6.8
\ No newline at end of file
diff --git a/supabase/config.toml b/supabase/config.toml
deleted file mode 100644
index 9b2d3b49..00000000
--- a/supabase/config.toml
+++ /dev/null
@@ -1,73 +0,0 @@
-# A string used to distinguish different Supabase projects on the same host. Defaults to the working
-# directory name when running `supabase init`.
-project_id = "CropWatch"
-
-[api]
-# Port to use for the API URL.
-port = 54321
-# Schemas to expose in your API. Tables, views and stored procedures in this schema will get API
-# endpoints. public and storage are always included.
-schemas = ["public", "storage", "graphql_public"]
-# Extra schemas to add to the search_path of every request. public is always included.
-extra_search_path = ["public", "extensions"]
-# The maximum number of rows returns from a view, table, or stored procedure. Limits payload size
-# for accidental or malicious requests.
-max_rows = 525600
-default_pool_size = 15,
-
-[db]
-# Port to use for the local database URL.
-port = 54322
-# The database major version to use. This has to be the same as your remote database's. Run `SHOW
-# server_version;` on the remote database to check.
-major_version = 15
-
-[studio]
-# Port to use for Supabase Studio.
-port = 54323
-
-# Email testing server. Emails sent with the local dev setup are not actually sent - rather, they
-# are monitored, and you can view the emails that would have been sent from the web interface.
-[inbucket]
-# Port to use for the email testing server web interface.
-port = 54324
-smtp_port = 54325
-pop3_port = 54326
-
-[storage]
-# The maximum file size allowed (e.g. "5MB", "500KB").
-file_size_limit = "50MiB"
-
-[auth]
-# The base URL of your website. Used as an allow-list for redirects and for constructing URLs used
-# in emails.
-site_url = "http://localhost:3000"
-# A list of *exact* URLs that auth providers are permitted to redirect to post authentication.
-additional_redirect_urls = ["https://localhost:3000"]
-# How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 seconds (one
-# week).
-jwt_expiry = 3600
-# Allow/disallow new user signups to your project.
-enable_signup = true
-
-[auth.email]
-# Allow/disallow new user signups via email to your project.
-enable_signup = true
-# If enabled, a user will be required to confirm any email change on both the old, and new email
-# addresses. If disabled, only the new email is required to confirm.
-double_confirm_changes = true
-# If enabled, users need to confirm their email address before signing in.
-enable_confirmations = false
-
-# Use an external OAuth provider. The full list of providers are: `apple`, `azure`, `bitbucket`,
-# `discord`, `facebook`, `github`, `gitlab`, `google`, `keycloak`, `linkedin`, `notion`, `twitch`,
-# `twitter`, `slack`, `spotify`, `workos`, `zoom`.
-[auth.external.apple]
-enabled = false
-client_id = ""
-secret = ""
-# Overrides the default auth redirectUrl.
-redirect_uri = ""
-# Overrides the default auth provider URL. Used to support self-hosted gitlab, single-tenant Azure,
-# or any other third-party OIDC providers.
-url = ""
diff --git a/supabase/migrations/20240818120057_remote_schema.sql b/supabase/migrations/20240818120057_remote_schema.sql
deleted file mode 100644
index f15a1fea..00000000
--- a/supabase/migrations/20240818120057_remote_schema.sql
+++ /dev/null
@@ -1,2357 +0,0 @@
-
-SET statement_timeout = 0;
-SET lock_timeout = 0;
-SET idle_in_transaction_session_timeout = 0;
-SET client_encoding = 'UTF8';
-SET standard_conforming_strings = on;
-SELECT pg_catalog.set_config('search_path', '', false);
-SET check_function_bodies = false;
-SET xmloption = content;
-SET client_min_messages = warning;
-SET row_security = off;
-
-CREATE EXTENSION IF NOT EXISTS "timescaledb" WITH SCHEMA "extensions";
-
-CREATE EXTENSION IF NOT EXISTS "pgsodium" WITH SCHEMA "pgsodium";
-
-COMMENT ON SCHEMA "public" IS 'standard public schema';
-
-CREATE SCHEMA IF NOT EXISTS "stripe";
-
-ALTER SCHEMA "stripe" OWNER TO "postgres";
-
-CREATE EXTENSION IF NOT EXISTS "http" WITH SCHEMA "extensions";
-
-CREATE EXTENSION IF NOT EXISTS "hypopg" WITH SCHEMA "extensions";
-
-CREATE EXTENSION IF NOT EXISTS "index_advisor" WITH SCHEMA "extensions";
-
-CREATE EXTENSION IF NOT EXISTS "pg_graphql" WITH SCHEMA "graphql";
-
-CREATE EXTENSION IF NOT EXISTS "pg_stat_statements" WITH SCHEMA "extensions";
-
-CREATE EXTENSION IF NOT EXISTS "pgcrypto" WITH SCHEMA "extensions";
-
-CREATE EXTENSION IF NOT EXISTS "pgjwt" WITH SCHEMA "extensions";
-
-CREATE EXTENSION IF NOT EXISTS "postgis" WITH SCHEMA "extensions";
-
-CREATE EXTENSION IF NOT EXISTS "supabase_vault" WITH SCHEMA "vault";
-
-CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA "extensions";
-
-CREATE EXTENSION IF NOT EXISTS "wrappers" WITH SCHEMA "extensions";
-
-CREATE OR REPLACE FUNCTION "public"."delete_avatar"("avatar_url" "text", OUT "status" integer, OUT "content" character varying) RETURNS "record"
- LANGUAGE "plpgsql" SECURITY DEFINER
- AS $$
-begin
- select
- into status, content
- result.status, result.content
- from public.delete_storage_object('avatars', avatar_url) as result;
-end;
-$$;
-
-ALTER FUNCTION "public"."delete_avatar"("avatar_url" "text", OUT "status" integer, OUT "content" character varying) OWNER TO "postgres";
-
-CREATE OR REPLACE FUNCTION "public"."delete_old_avatar"() RETURNS "trigger"
- LANGUAGE "plpgsql" SECURITY DEFINER
- AS $$
-declare
- status int;
- content varchar;
-begin
- if coalesce(old.avatar_url, '') <> ''
- and (tg_op = 'DELETE' or (old.avatar_url <> new.avatar_url)) then
- select
- into status, content
- result.status, result.content
- from public.delete_avatar(old.avatar_url) as result;
- if status <> 200 then
- raise warning 'Could not delete avatar: % %', status, content;
- end if;
- end if;
- if tg_op = 'DELETE' then
- return old;
- end if;
- return new;
-end;
-$$;
-
-ALTER FUNCTION "public"."delete_old_avatar"() OWNER TO "postgres";
-
-CREATE OR REPLACE FUNCTION "public"."delete_old_profile"() RETURNS "trigger"
- LANGUAGE "plpgsql" SECURITY DEFINER
- AS $$
-begin
- delete from public.profiles where id = old.id;
- return old;
-end;
-$$;
-
-ALTER FUNCTION "public"."delete_old_profile"() OWNER TO "postgres";
-
-CREATE OR REPLACE FUNCTION "public"."delete_storage_object"("bucket" "text", "object" "text", OUT "status" integer, OUT "content" character varying) RETURNS "record"
- LANGUAGE "plpgsql" SECURITY DEFINER
- AS $$
-declare
- project_url varchar := '
';
- service_role_key varchar := ''; -- full access needed
- url varchar := project_url||'/storage/v1/object/'||bucket||'/'||object;
-begin
- select
- into status, content
- result.status::int, result.content::varchar
- FROM extensions.http((
- 'DELETE',
- url,
- ARRAY[extensions.http_header('authorization','Bearer '||service_role_key)],
- NULL,
- NULL)::extensions.http_request) as result;
-end;
-$$;
-
-ALTER FUNCTION "public"."delete_storage_object"("bucket" "text", "object" "text", OUT "status" integer, OUT "content" character varying) OWNER TO "postgres";
-
-CREATE PROCEDURE "public"."get_hloc_data"(IN "start_time" timestamp without time zone, IN "end_time" timestamp without time zone, IN "time_interval" "text", IN "table_name" "text", IN "column_name" "text")
- LANGUAGE "plpgsql"
- AS $_$
-BEGIN
- EXECUTE format(
- 'SELECT
- date_trunc(%L, created_at) AS interval,
- MIN(%I) AS low,
- MAX(%I) AS high,
- FIRST_VALUE(%I) OVER (PARTITION BY date_trunc(%L, created_at) ORDER BY created_at) AS open,
- LAST_VALUE(%I) OVER (PARTITION BY date_trunc(%L, created_at) ORDER BY created_at ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS close
- FROM
- %I
- WHERE
- created_at >= $1 AND created_at <= $2
- GROUP BY
- date_trunc(%L, created_at)
- ORDER BY
- interval',
- temperature,
- time_interval, column_name, column_name, column_name, time_interval, column_name, column_name, table_name, time_interval
- )
- USING start_time, end_time;
-END;
-$_$;
-
-ALTER PROCEDURE "public"."get_hloc_data"(IN "start_time" timestamp without time zone, IN "end_time" timestamp without time zone, IN "time_interval" "text", IN "table_name" "text", IN "column_name" "text") OWNER TO "postgres";
-
-CREATE OR REPLACE FUNCTION "public"."get_hloc_data"("start_time" timestamp without time zone, "end_time" timestamp without time zone, "time_interval" "text", "table_name" "text", "device_eui" character varying) RETURNS TABLE("interval_time" timestamp with time zone, "low" double precision, "high" double precision, "open" double precision, "close" double precision)
- LANGUAGE "plpgsql"
- AS $_$BEGIN
- RETURN QUERY EXECUTE format(
- 'SELECT
- date_trunc(%L, created_at) AS interval_time,
- MIN(car_count) AS low,
- MAX(car_count) AS high,
- (array_agg(car_count ORDER BY created_at))[1] AS open,
- (array_agg(car_count ORDER BY created_at DESC))[1] AS close
- FROM
- %I
- WHERE
- created_at >= $1
- AND created_at <= $2
- AND dev_eui = $3
- GROUP BY
- date_trunc(%L, created_at)
- ORDER BY
- interval_time',
- time_interval, table_name, time_interval
- )
- USING start_time, end_time, device_eui;
-END;$_$;
-
-ALTER FUNCTION "public"."get_hloc_data"("start_time" timestamp without time zone, "end_time" timestamp without time zone, "time_interval" "text", "table_name" "text", "device_eui" character varying) OWNER TO "postgres";
-
-CREATE OR REPLACE FUNCTION "public"."get_location_for_user"("user_id" "uuid") RETURNS SETOF bigint
- LANGUAGE "sql" STABLE SECURITY DEFINER
- AS $_$
- select location_id from cw_locations where owner_id = $1
-$_$;
-
-ALTER FUNCTION "public"."get_location_for_user"("user_id" "uuid") OWNER TO "postgres";
-
-CREATE OR REPLACE FUNCTION "public"."get_road_events"("time_grouping" "text") RETURNS TABLE("group_period" timestamp without time zone, "event_count" integer)
- LANGUAGE "plpgsql"
- AS $$
-BEGIN
- RETURN QUERY
- SELECT
- CASE
- WHEN time_grouping = 'hour' THEN date_trunc('hour', re.created_at AT TIME ZONE 'UTC' AT TIME ZONE 'Asia/Tokyo')
- WHEN time_grouping = 'day' THEN date_trunc('day', re.created_at AT TIME ZONE 'UTC' AT TIME ZONE 'Asia/Tokyo')
- WHEN time_grouping = 'month' THEN date_trunc('month', re.created_at AT TIME ZONE 'UTC' AT TIME ZONE 'Asia/Tokyo')
- END as group_period,
- COUNT(*) as event_count
- FROM
- road_events re
- WHERE
- re.created_at >= '2024-01-15 00:00:00' AT TIME ZONE 'Asia/Tokyo' AT TIME ZONE 'UTC'
- AND re.created_at < '2024-01-16 00:00:00' AT TIME ZONE 'Asia/Tokyo' AT TIME ZONE 'UTC'
- GROUP BY group_period
- ORDER BY group_period;
-END;
-$$;
-
-ALTER FUNCTION "public"."get_road_events"("time_grouping" "text") OWNER TO "postgres";
-
-CREATE OR REPLACE FUNCTION "public"."get_road_events_summary1"("classes" "text"[], "end_date" timestamp with time zone, "line_id" "text", "start_date" timestamp with time zone, "time_span" "text") RETURNS TABLE("period_start" timestamp with time zone, "count" bigint)
- LANGUAGE "plpgsql"
- AS $$
-DECLARE
- query TEXT;
-BEGIN
- set timezone to 'asia/tokyo'; -- MUST SET TIMEZONE BCAUSE WE WILL BE GROUPING TIMES
- RETURN QUERY EXECUTE format('
- SELECT
- date_trunc(%L, created_at) as period_start,
- COUNT(*) as count
- FROM
- public.road_events
- WHERE
- "class" = ANY(%L)
- AND created_at BETWEEN %L AND %L
- %s
- GROUP BY
- period_start
- ORDER BY
- period_start ASC
- ', time_span, classes, start_date, end_date,
- CASE WHEN line_id IS NOT NULL THEN format('AND line_id = %L', line_id) ELSE '' END);
-END;
-$$;
-
-ALTER FUNCTION "public"."get_road_events_summary1"("classes" "text"[], "end_date" timestamp with time zone, "line_id" "text", "start_date" timestamp with time zone, "time_span" "text") OWNER TO "postgres";
-
-CREATE OR REPLACE FUNCTION "public"."handle_new_user"() RETURNS "trigger"
- LANGUAGE "plpgsql" SECURITY DEFINER
- AS $$begin
- insert into public.profiles (id, full_name, avatar_url, email)
- values (new.id, new.raw_user_meta_data->>'full_name', new.raw_user_meta_data->>'avatar_url', new.email);
- return new;
-end;$$;
-
-ALTER FUNCTION "public"."handle_new_user"() OWNER TO "postgres";
-
-CREATE FOREIGN DATA WRAPPER "stripe_customers" HANDLER "extensions"."stripe_fdw_handler" VALIDATOR "extensions"."stripe_fdw_validator";
-
-CREATE FOREIGN DATA WRAPPER "stripe_subscriptions" HANDLER "extensions"."stripe_fdw_handler" VALIDATOR "extensions"."stripe_fdw_validator";
-
-CREATE SERVER "stripe_customers_server" FOREIGN DATA WRAPPER "stripe_customers" OPTIONS (
- "api_key_id" '30c2cce0-93cf-42ee-bf25-ec2be22f2510',
- "api_url" 'https://api.stripe.com/v1'
-);
-
-ALTER SERVER "stripe_customers_server" OWNER TO "postgres";
-
-CREATE SERVER "stripe_subscriptions_server" FOREIGN DATA WRAPPER "stripe_subscriptions" OPTIONS (
- "api_key_id" '7c5963c3-7de4-442e-9264-275dee6b62e8',
- "api_url" 'https://api.stripe.com/v1'
-);
-
-ALTER SERVER "stripe_subscriptions_server" OWNER TO "postgres";
-
-SET default_tablespace = '';
-
-SET default_table_access_method = "heap";
-
-CREATE TABLE IF NOT EXISTS "public"."seeed_t1000" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "dev_eui" character varying NOT NULL,
- "lat" numeric NOT NULL,
- "long" numeric NOT NULL,
- "sos" numeric DEFAULT '0'::numeric,
- "battery_level" numeric,
- "temperatureC" numeric,
- "profile_id" "uuid"
-);
-
-ALTER TABLE "public"."seeed_t1000" OWNER TO "postgres";
-
-ALTER TABLE "public"."seeed_t1000" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."SEEED_T1000_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."babylon_connection_types" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "type_id" bigint NOT NULL,
- "name" "text" NOT NULL
-);
-
-ALTER TABLE "public"."babylon_connection_types" OWNER TO "postgres";
-
-ALTER TABLE "public"."babylon_connection_types" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."babylon_connection_types_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-ALTER TABLE "public"."babylon_connection_types" ALTER COLUMN "type_id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."babylon_connection_types_type_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."babylon_in_connections" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "profile_id" "uuid" NOT NULL,
- "endpoint" "text" NOT NULL,
- "username" "text",
- "password" "text",
- "connection_name" "text" NOT NULL,
- "port" numeric,
- "type" bigint NOT NULL,
- "connection_id" bigint NOT NULL
-);
-
-ALTER TABLE "public"."babylon_in_connections" OWNER TO "postgres";
-
-COMMENT ON TABLE "public"."babylon_in_connections" IS 'All Connections configured for Babylon';
-
-COMMENT ON COLUMN "public"."babylon_in_connections"."connection_name" IS 'User Friendly name of this connection';
-
-COMMENT ON COLUMN "public"."babylon_in_connections"."port" IS 'Port the connection is made over';
-
-ALTER TABLE "public"."babylon_in_connections" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."babylon_connections_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."babylon_decoders" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "decoder" "text",
- "name" "text" DEFAULT 'Unnamed Decoder'::"text" NOT NULL,
- "decoder_id" bigint NOT NULL
-);
-
-ALTER TABLE "public"."babylon_decoders" OWNER TO "postgres";
-
-COMMENT ON COLUMN "public"."babylon_decoders"."name" IS 'User Friendly name for this decoder';
-
-ALTER TABLE "public"."babylon_decoders" ALTER COLUMN "decoder_id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."babylon_decoders_decoder_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-ALTER TABLE "public"."babylon_decoders" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."babylon_decoders_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-ALTER TABLE "public"."babylon_in_connections" ALTER COLUMN "connection_id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."babylon_in_connections_connection_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."babylon_input_output" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "in_id" bigint NOT NULL,
- "out_id" bigint NOT NULL
-);
-
-ALTER TABLE "public"."babylon_input_output" OWNER TO "postgres";
-
-ALTER TABLE "public"."babylon_input_output" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."babylon_input_output_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."babylon_notifier_types" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "notifier_id" bigint NOT NULL,
- "name" "text" NOT NULL
-);
-
-ALTER TABLE "public"."babylon_notifier_types" OWNER TO "postgres";
-
-ALTER TABLE "public"."babylon_notifier_types" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."babylon_notifier_type_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-ALTER TABLE "public"."babylon_notifier_types" ALTER COLUMN "notifier_id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."babylon_notifier_type_notifier_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."babylon_notifiers" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "notifier_id" bigint,
- "name" "text" NOT NULL,
- "username" "text",
- "password" "text",
- "api_key" "text",
- "host" "text",
- "port" numeric,
- "isSecure" boolean DEFAULT false NOT NULL,
- "type" bigint
-);
-
-ALTER TABLE "public"."babylon_notifiers" OWNER TO "postgres";
-
-ALTER TABLE "public"."babylon_notifiers" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."babylon_notifiers_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."babylon_notifiers_out_connections" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "notifier_id" bigint NOT NULL,
- "out_connection_id" bigint NOT NULL
-);
-
-ALTER TABLE "public"."babylon_notifiers_out_connections" OWNER TO "postgres";
-
-ALTER TABLE "public"."babylon_notifiers_out_connections" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."babylon_notifiers_out_connections_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."babylon_out_connections" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "profile_id" "uuid" NOT NULL,
- "endpoint" "text",
- "username" "text",
- "password" "text",
- "connection_name" "text" NOT NULL,
- "port" numeric,
- "type" bigint NOT NULL,
- "connection_id" bigint NOT NULL,
- "decoder" bigint
-);
-
-ALTER TABLE "public"."babylon_out_connections" OWNER TO "postgres";
-
-COMMENT ON TABLE "public"."babylon_out_connections" IS 'This is a duplicate of babylon_in_connections';
-
-COMMENT ON COLUMN "public"."babylon_out_connections"."connection_name" IS 'User Friendly name of this connection';
-
-COMMENT ON COLUMN "public"."babylon_out_connections"."port" IS 'Port the connection is made over';
-
-COMMENT ON COLUMN "public"."babylon_out_connections"."decoder" IS 'fk to the decoder used for this connection';
-
-ALTER TABLE "public"."babylon_out_connections" ALTER COLUMN "connection_id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."babylon_out_connections_connection_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-ALTER TABLE "public"."babylon_out_connections" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."babylon_out_connections_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_air_thvd" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "dewPointC" numeric,
- "humidity" numeric NOT NULL,
- "temperatureC" numeric NOT NULL,
- "vpd" numeric,
- "dev_eui" character varying NOT NULL,
- "profile_id" "uuid"
-);
-
-ALTER TABLE "public"."cw_air_thvd" OWNER TO "postgres";
-
-COMMENT ON TABLE "public"."cw_air_thvd" IS 'CropWatch''s own Air Sensor';
-
-COMMENT ON COLUMN "public"."cw_air_thvd"."profile_id" IS 'profile id if available';
-
-ALTER TABLE "public"."cw_air_thvd" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_air_thvd_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_co2_alerts" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "profile_id" "uuid" NOT NULL,
- "dev_eui" character varying NOT NULL,
- "operator" "text" NOT NULL,
- "action" "text" NOT NULL,
- "subject" "text" NOT NULL,
- "receiver" "text" NOT NULL,
- "cleared" boolean NOT NULL,
- "value" numeric NOT NULL,
- "OneSignalID" "text"
-);
-
-ALTER TABLE "public"."cw_co2_alerts" OWNER TO "postgres";
-
-ALTER TABLE "public"."cw_co2_alerts" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_co2_alerts_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_co2_uplinks" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "dev_eui" character varying,
- "battery" integer,
- "temperature" numeric NOT NULL,
- "humidity" numeric NOT NULL,
- "co2_level" numeric,
- "pressure" numeric,
- "profile_id" "uuid"
-);
-
-ALTER TABLE "public"."cw_co2_uplinks" OWNER TO "postgres";
-
-COMMENT ON TABLE "public"."cw_co2_uplinks" IS 'Temperature type devices that may also have co2 or pressure';
-
-ALTER TABLE "public"."cw_co2_uplinks" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_co2_uplinks_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_device_locations" (
- "dev_eui" character varying(255) NOT NULL,
- "location_id" bigint NOT NULL,
- "id" bigint NOT NULL
-);
-
-ALTER TABLE "public"."cw_device_locations" OWNER TO "postgres";
-
-ALTER TABLE "public"."cw_device_locations" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_device_locations_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_device_owners" (
- "user_id" "uuid" NOT NULL,
- "dev_eui" character varying(255) NOT NULL,
- "owner_id" bigint NOT NULL,
- "id" bigint NOT NULL,
- "permission_level" numeric DEFAULT '1'::numeric NOT NULL
-);
-
-ALTER TABLE "public"."cw_device_owners" OWNER TO "postgres";
-
-COMMENT ON COLUMN "public"."cw_device_owners"."owner_id" IS 'Simply the ID for this column, leave blank is OK!';
-
-ALTER TABLE "public"."cw_device_owners" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_device_owners_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-ALTER TABLE "public"."cw_device_owners" ALTER COLUMN "owner_id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_device_owners_owner_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_device_type" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "name" "text" NOT NULL,
- "model" "text",
- "decoder" "text",
- "manufacturer" "text",
- "data_table" "text",
- "device_app" "text",
- "primary_data" "text",
- "primary_data_notation" "text",
- "secondary_data" "text",
- "secondary_data_notation" "text",
- "primary_multiplier" numeric DEFAULT '1'::numeric,
- "primary_divider" numeric DEFAULT '1'::numeric NOT NULL,
- "secondary_divider" numeric DEFAULT '1'::numeric NOT NULL,
- "default_upload_interval" numeric,
- "secondary_multiplier" numeric DEFAULT '1'::numeric NOT NULL
-);
-
-ALTER TABLE "public"."cw_device_type" OWNER TO "postgres";
-
-COMMENT ON TABLE "public"."cw_device_type" IS 'types of devices';
-
-COMMENT ON COLUMN "public"."cw_device_type"."model" IS 'the model number';
-
-COMMENT ON COLUMN "public"."cw_device_type"."decoder" IS 'link to Javascript decoder';
-
-COMMENT ON COLUMN "public"."cw_device_type"."manufacturer" IS 'Milesite, HKT, Rak, CropWatch';
-
-COMMENT ON COLUMN "public"."cw_device_type"."data_table" IS 'Data Table where the sensors save data may be found';
-
-COMMENT ON COLUMN "public"."cw_device_type"."device_app" IS 'URL or endpoint of the app that displays data for this device';
-
-COMMENT ON COLUMN "public"."cw_device_type"."primary_data" IS 'Most important data from this device';
-
-COMMENT ON COLUMN "public"."cw_device_type"."primary_data_notation" IS 'type of notation to append to the paimary data';
-
-COMMENT ON COLUMN "public"."cw_device_type"."primary_multiplier" IS 'Optionally Multiply value by this';
-
-COMMENT ON COLUMN "public"."cw_device_type"."default_upload_interval" IS 'the device default normal upload interval';
-
-ALTER TABLE "public"."cw_device_type" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_device_type_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_devices" (
- "dev_eui" character varying(255) NOT NULL,
- "name" "text" DEFAULT 'UnNamed Device'::"text" NOT NULL,
- "type" bigint,
- "upload_interval" numeric DEFAULT '-1'::numeric,
- "lat" numeric,
- "long" numeric,
- "installed_at" "date",
- "battery_changed_at" "date",
- "user_id" "uuid",
- "warranty_start_date" "date",
- "serial_number" "text",
- "location_id" numeric
-);
-
-ALTER TABLE "public"."cw_devices" OWNER TO "postgres";
-
-COMMENT ON COLUMN "public"."cw_devices"."name" IS 'Display name of the LoRaWAN device';
-
-COMMENT ON COLUMN "public"."cw_devices"."type" IS 'link to the type of device';
-
-COMMENT ON COLUMN "public"."cw_devices"."upload_interval" IS 'The uplink frequency that each device sends data at in minutes, -1 mean random event based. any thing over that is the expected interval';
-
-COMMENT ON COLUMN "public"."cw_devices"."installed_at" IS 'Date of installation at client location';
-
-COMMENT ON COLUMN "public"."cw_devices"."battery_changed_at" IS 'Date the battery was last changed';
-
-COMMENT ON COLUMN "public"."cw_devices"."warranty_start_date" IS 'Date that the warranty begins on the device.';
-
-CREATE TABLE IF NOT EXISTS "public"."cw_gateways" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "updated_at" timestamp with time zone DEFAULT "now"(),
- "gateway_name" "text" NOT NULL,
- "isOnline" boolean NOT NULL,
- "gateway_id" "text" NOT NULL
-);
-
-ALTER TABLE "public"."cw_gateways" OWNER TO "postgres";
-
-COMMENT ON TABLE "public"."cw_gateways" IS 'This table tracks gateway status';
-
-ALTER TABLE "public"."cw_gateways" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_gateways_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_gps_uplinks" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "dev_eui" character varying NOT NULL,
- "latitude" numeric NOT NULL,
- "longitude" numeric NOT NULL,
- "geoPos" "extensions"."geometry",
- "isHistoric" boolean DEFAULT false NOT NULL,
- "altitude" numeric,
- "hdop" numeric,
- "battery" numeric,
- "collected_time" timestamp with time zone
-);
-
-ALTER TABLE "public"."cw_gps_uplinks" OWNER TO "postgres";
-
-COMMENT ON TABLE "public"."cw_gps_uplinks" IS 'generic dump of all GPS positions from many different devices';
-
-COMMENT ON COLUMN "public"."cw_gps_uplinks"."collected_time" IS 'the time the data was collected by the sensor';
-
-ALTER TABLE "public"."cw_gps_uplinks" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_gps_uplinks_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_location_owners" (
- "user_id" "uuid" NOT NULL,
- "owner_id" bigint NOT NULL,
- "id" bigint NOT NULL,
- "location_id" bigint NOT NULL,
- "permission_level" numeric DEFAULT '1'::numeric,
- "is_active" boolean DEFAULT true,
- "description" "text"
-);
-
-ALTER TABLE "public"."cw_location_owners" OWNER TO "postgres";
-
-COMMENT ON COLUMN "public"."cw_location_owners"."owner_id" IS 'Simply the ID for this column, leave blank is OK!';
-
-COMMENT ON COLUMN "public"."cw_location_owners"."permission_level" IS '0 = no access 1 = readonly';
-
-COMMENT ON COLUMN "public"."cw_location_owners"."description" IS 'Optional Descripton of location and owner';
-
-ALTER TABLE "public"."cw_location_owners" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_location_owners_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-ALTER TABLE "public"."cw_location_owners" ALTER COLUMN "owner_id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_location_owners_owner_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_locations" (
- "location_id" bigint NOT NULL,
- "name" character varying(255) NOT NULL,
- "lat" numeric(9,6),
- "long" numeric(9,6),
- "description" "text",
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "owner_id" "uuid"
-);
-
-ALTER TABLE "public"."cw_locations" OWNER TO "postgres";
-
-COMMENT ON COLUMN "public"."cw_locations"."owner_id" IS 'The Top most owner of the location';
-
-ALTER TABLE "public"."cw_locations" ALTER COLUMN "location_id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_locations_location_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_permission_level_types" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "permission_level_id" bigint NOT NULL,
- "name" "text" NOT NULL
-);
-
-ALTER TABLE "public"."cw_permission_level_types" OWNER TO "postgres";
-
-ALTER TABLE "public"."cw_permission_level_types" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_permission_level_types_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-ALTER TABLE "public"."cw_permission_level_types" ALTER COLUMN "permission_level_id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_permission_level_types_permission_level_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_pulse_meters" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "count" numeric DEFAULT '0'::numeric NOT NULL,
- "dev_eui" character varying NOT NULL,
- "periodCount" numeric DEFAULT '0'::numeric NOT NULL,
- "litersPerPulse" numeric DEFAULT '10'::numeric NOT NULL
-);
-
-ALTER TABLE "public"."cw_pulse_meters" OWNER TO "postgres";
-
-COMMENT ON TABLE "public"."cw_pulse_meters" IS 'This is a duplicate of cw_air_thvd';
-
-COMMENT ON COLUMN "public"."cw_pulse_meters"."count" IS 'All Time Pulse Count';
-
-COMMENT ON COLUMN "public"."cw_pulse_meters"."periodCount" IS 'Count Since Last Data Send';
-
-COMMENT ON COLUMN "public"."cw_pulse_meters"."litersPerPulse" IS 'Number of liters per pulse';
-
-ALTER TABLE "public"."cw_pulse_meters" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_pulse_meters_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_rule_criteria" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "subject" "text" NOT NULL,
- "operator" "text" NOT NULL,
- "trigger_value" numeric NOT NULL,
- "reset_value" numeric,
- "ruleGroupId" "text" NOT NULL,
- "parent_id" "text",
- "criteria_id" bigint
-);
-
-ALTER TABLE "public"."cw_rule_criteria" OWNER TO "postgres";
-
-COMMENT ON TABLE "public"."cw_rule_criteria" IS 'criterion that cause cw_rules to be triggered';
-
-ALTER TABLE "public"."cw_rule_criteria" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_rule_criterion_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_rules" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "dev_eui" character varying,
- "name" "text" NOT NULL,
- "babylon_notifier_type" bigint NOT NULL,
- "action_recipient" "text" NOT NULL,
- "is_triggered" boolean DEFAULT false NOT NULL,
- "last_triggered" timestamp with time zone DEFAULT ("now"() AT TIME ZONE 'utc'::"text"),
- "ruleGroupId" "text" NOT NULL,
- "profile_id" "uuid" DEFAULT "gen_random_uuid"() NOT NULL,
- "trigger_count" numeric DEFAULT '0'::numeric NOT NULL
-);
-
-ALTER TABLE "public"."cw_rules" OWNER TO "postgres";
-
-COMMENT ON TABLE "public"."cw_rules" IS 'All Top Level Rules, Please ref cw_rule_criteria for note info';
-
-COMMENT ON COLUMN "public"."cw_rules"."trigger_count" IS 'number of time rule has been triggered in total since last reset';
-
-ALTER TABLE "public"."cw_rules" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_rules_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_soil_uplinks" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "dev_eui" character varying,
- "battery" integer,
- "temperature" numeric NOT NULL,
- "moisture" numeric NOT NULL,
- "ec" numeric,
- "ph" numeric,
- "n" numeric,
- "p" numeric,
- "k" numeric,
- "internal_temp" numeric,
- "real_duration" numeric,
- "read_attempts" integer
-);
-
-ALTER TABLE "public"."cw_soil_uplinks" OWNER TO "postgres";
-
-COMMENT ON TABLE "public"."cw_soil_uplinks" IS 'Data from CropWatch V2.0';
-
-ALTER TABLE "public"."cw_soil_uplinks" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_soil_uplinks_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_ss_tme" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "soil_EC" numeric,
- "soil_moisture" numeric NOT NULL,
- "soil_temperatureC" numeric NOT NULL,
- "dev_eui" character varying NOT NULL,
- "modbusAttempts" smallint,
- "internalTemp" numeric,
- "batteryVoltage" numeric,
- "profile_id" "uuid"
-);
-
-ALTER TABLE "public"."cw_ss_tme" OWNER TO "postgres";
-
-COMMENT ON TABLE "public"."cw_ss_tme" IS 'Soil Temp, Moisture and EC Sensor Data';
-
-COMMENT ON COLUMN "public"."cw_ss_tme"."soil_EC" IS 'soil EC in us/cm';
-
-COMMENT ON COLUMN "public"."cw_ss_tme"."soil_moisture" IS 'Soil Moisture in %';
-
-COMMENT ON COLUMN "public"."cw_ss_tme"."soil_temperatureC" IS 'Soil Temp in C';
-
-COMMENT ON COLUMN "public"."cw_ss_tme"."modbusAttempts" IS 'Number of try it took to get this data';
-
-COMMENT ON COLUMN "public"."cw_ss_tme"."internalTemp" IS 'Temp of the main processor Must not exceed 85C';
-
-COMMENT ON COLUMN "public"."cw_ss_tme"."batteryVoltage" IS 'is the battery good or not';
-
-ALTER TABLE "public"."cw_ss_tme" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_ss_tme_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_ss_tmepnpk" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "soil_EC" numeric,
- "soil_moisture" numeric NOT NULL,
- "soil_temperatureC" numeric NOT NULL,
- "soil_PH" numeric,
- "dev_eui" character varying NOT NULL,
- "soil_N" numeric,
- "soil_P" numeric,
- "soil_K" numeric,
- "modbusAttempts" smallint,
- "internalTemp" numeric,
- "batteryVoltage" numeric
-);
-
-ALTER TABLE "public"."cw_ss_tmepnpk" OWNER TO "postgres";
-
-COMMENT ON COLUMN "public"."cw_ss_tmepnpk"."soil_EC" IS 'soil EC in us/cm';
-
-COMMENT ON COLUMN "public"."cw_ss_tmepnpk"."soil_moisture" IS 'Soil Moisture in %';
-
-COMMENT ON COLUMN "public"."cw_ss_tmepnpk"."soil_temperatureC" IS 'Soil Temp in C';
-
-COMMENT ON COLUMN "public"."cw_ss_tmepnpk"."soil_PH" IS 'Soil PH - 0 to 9';
-
-COMMENT ON COLUMN "public"."cw_ss_tmepnpk"."soil_N" IS 'Soil Nitrigen in mg/kg';
-
-COMMENT ON COLUMN "public"."cw_ss_tmepnpk"."soil_P" IS 'Soil Phosporus in mg/kg';
-
-COMMENT ON COLUMN "public"."cw_ss_tmepnpk"."soil_K" IS 'soil potacium in mg/kg';
-
-COMMENT ON COLUMN "public"."cw_ss_tmepnpk"."modbusAttempts" IS 'Number of try it took to get this data';
-
-COMMENT ON COLUMN "public"."cw_ss_tmepnpk"."internalTemp" IS 'Temp of the main processor Must not exceed 85C';
-
-COMMENT ON COLUMN "public"."cw_ss_tmepnpk"."batteryVoltage" IS 'is the battery good or not';
-
-ALTER TABLE "public"."cw_ss_tmepnpk" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_ss_tmepnpk_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_traffic" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "object_type" "text" NOT NULL,
- "period_in" numeric DEFAULT '0'::numeric NOT NULL,
- "period_out" numeric DEFAULT '0'::numeric NOT NULL,
- "period_total" numeric DEFAULT '0'::numeric NOT NULL,
- "dev_eui" character varying NOT NULL
-);
-
-ALTER TABLE "public"."cw_traffic" OWNER TO "postgres";
-
-CREATE TABLE IF NOT EXISTS "public"."cw_traffic2" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "people_count" numeric DEFAULT '0'::numeric NOT NULL,
- "bicycle_count" numeric DEFAULT '0'::numeric NOT NULL,
- "car_count" numeric DEFAULT '0'::numeric NOT NULL,
- "truck_count" numeric DEFAULT '0'::numeric NOT NULL,
- "bus_count" numeric DEFAULT '0'::numeric NOT NULL,
- "dev_eui" character varying NOT NULL
-);
-
-ALTER TABLE "public"."cw_traffic2" OWNER TO "postgres";
-
-ALTER TABLE "public"."cw_traffic2" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_traffic2_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-ALTER TABLE "public"."cw_traffic" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_traffic_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."cw_watermeter_uplinks" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "dev_eui" character varying NOT NULL,
- "count" bigint NOT NULL,
- "internal_temp" real,
- "battery_level" smallint
-);
-
-ALTER TABLE "public"."cw_watermeter_uplinks" OWNER TO "postgres";
-
-COMMENT ON TABLE "public"."cw_watermeter_uplinks" IS 'Recordings of pulse water meters';
-
-ALTER TABLE "public"."cw_watermeter_uplinks" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."cw_water_meter_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."devices" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"(),
- "dev_eui" "text" NOT NULL,
- "profile_id" "uuid",
- "type" "text" DEFAULT 'Not Set'::"text",
- "lat" double precision,
- "lng" double precision,
- "device_name" "text",
- "active" boolean DEFAULT false NOT NULL,
- "linked_device_eui" "text"
-);
-
-ALTER TABLE "public"."devices" OWNER TO "postgres";
-
-COMMENT ON COLUMN "public"."devices"."type" IS 'Type of device (eg. CropWatch or LoRaWATCH)';
-
-COMMENT ON COLUMN "public"."devices"."device_name" IS 'user friendly name for this device';
-
-ALTER TABLE "public"."devices" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."devices_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."locations" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"(),
- "lat" numeric,
- "lng" numeric,
- "name" "text" NOT NULL,
- "description" "text",
- "sensor_type" "text",
- "profile_id" "uuid",
- "dev_eui" "text"
-);
-
-ALTER TABLE "public"."locations" OWNER TO "postgres";
-
-ALTER TABLE "public"."locations" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."locations_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."netvox_ra02a" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "dev_eui" character varying NOT NULL,
- "fireAlarm" smallint NOT NULL,
- "highTempAlarm" smallint NOT NULL,
- "temperatureC" numeric NOT NULL,
- "battery" numeric NOT NULL,
- "profile_id" "uuid"
-);
-
-ALTER TABLE "public"."netvox_ra02a" OWNER TO "postgres";
-
-ALTER TABLE "public"."netvox_ra02a" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."netvox_ra02a_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."permissions" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"(),
- "resource" "text" NOT NULL,
- "role_id" bigint NOT NULL,
- "allowed_profile_id" "uuid",
- "allowed_by_profile_id" "uuid",
- "description" "text"
-);
-
-ALTER TABLE "public"."permissions" OWNER TO "postgres";
-
-ALTER TABLE "public"."permissions" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."permissions_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."profiles" (
- "id" "uuid" NOT NULL,
- "updated_at" timestamp with time zone,
- "username" "text",
- "full_name" "text",
- "avatar_url" "text",
- "website" "text",
- "email" character varying,
- "last_login" timestamp with time zone,
- CONSTRAINT "username_length" CHECK (("char_length"("username") >= 3))
-);
-
-ALTER TABLE "public"."profiles" OWNER TO "postgres";
-
-COMMENT ON COLUMN "public"."profiles"."email" IS 'User''s Email Address';
-
-CREATE TABLE IF NOT EXISTS "public"."road_events" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"(),
- "class" "text" NOT NULL,
- "track_id" numeric NOT NULL,
- "direction" numeric NOT NULL,
- "source_datetime" timestamp with time zone,
- "server_event_datetime" timestamp with time zone DEFAULT "now"(),
- "camera_id" "text",
- "line_id" "text"
-);
-
-ALTER TABLE "public"."road_events" OWNER TO "postgres";
-
-ALTER TABLE "public"."road_events" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."road_event_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."road_event_lines" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"(),
- "line_name" "text" NOT NULL,
- "camera_name" "text" NOT NULL,
- "camera_id" "text" DEFAULT ''::"text" NOT NULL
-);
-
-ALTER TABLE "public"."road_event_lines" OWNER TO "postgres";
-
-COMMENT ON TABLE "public"."road_event_lines" IS 'Lines from each camera';
-
-COMMENT ON COLUMN "public"."road_event_lines"."camera_id" IS 'id of camera in yaml file';
-
-ALTER TABLE "public"."road_event_lines" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."road_event_lines_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."roles" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"(),
- "name" "text" NOT NULL,
- "code" bigint,
- "description" "text"
-);
-
-ALTER TABLE "public"."roles" OWNER TO "postgres";
-
-ALTER TABLE "public"."roles" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."roles_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."seeed_co2_lorawan_uplinks" (
- "id" integer NOT NULL,
- "dev_eui" character varying(255) NOT NULL,
- "valid" boolean,
- "err" integer,
- "payload" "text",
- "rssi" integer,
- "snr" double precision,
- "created_at" timestamp with time zone DEFAULT "now"(),
- "battery" integer,
- "interval" integer,
- "temperature" double precision,
- "humidity" double precision,
- "co2_level" integer,
- "pressure" double precision
-);
-
-ALTER TABLE "public"."seeed_co2_lorawan_uplinks" OWNER TO "postgres";
-
-CREATE SEQUENCE IF NOT EXISTS "public"."seeed_co2_lorawan_uplinks_id_seq"
- AS integer
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1;
-
-ALTER TABLE "public"."seeed_co2_lorawan_uplinks_id_seq" OWNER TO "postgres";
-
-ALTER SEQUENCE "public"."seeed_co2_lorawan_uplinks_id_seq" OWNED BY "public"."seeed_co2_lorawan_uplinks"."id";
-
-CREATE TABLE IF NOT EXISTS "public"."seeed_sensecap_s2103_WaterLevel" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "dev_eui" character varying NOT NULL,
- "profile_id" "uuid",
- "water_level" numeric NOT NULL
-);
-
-ALTER TABLE "public"."seeed_sensecap_s2103_WaterLevel" OWNER TO "postgres";
-
-COMMENT ON TABLE "public"."seeed_sensecap_s2103_WaterLevel" IS 'Water Level using seeed sensecap';
-
-ALTER TABLE "public"."seeed_sensecap_s2103_WaterLevel" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."seeed_sensecap_s2103_WaterLevel_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."seeed_sensecap_s2120" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "dev_eui" character varying NOT NULL,
- "profile_id" "uuid",
- "temperatureC" numeric,
- "humidity" numeric,
- "rainfall" numeric,
- "pressure" numeric DEFAULT '92670'::numeric,
- "wind_speed" numeric,
- "wind_direction" numeric DEFAULT '1'::numeric,
- "lux" numeric,
- "uv" numeric,
- "frame_id" numeric,
- CONSTRAINT "seeed_sensecap_s2120_frame_id_check" CHECK (("frame_id" > (0)::numeric))
-);
-
-ALTER TABLE "public"."seeed_sensecap_s2120" OWNER TO "postgres";
-
-COMMENT ON COLUMN "public"."seeed_sensecap_s2120"."frame_id" IS 'If a message is split, this is the split ID';
-
-ALTER TABLE "public"."seeed_sensecap_s2120" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."seeed_sensecap_s2120_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE TABLE IF NOT EXISTS "public"."sensors" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "connected_device" "text",
- "lat" numeric,
- "lng" numeric,
- "type" "text",
- "address" numeric
-);
-
-ALTER TABLE "public"."sensors" OWNER TO "postgres";
-
-COMMENT ON TABLE "public"."sensors" IS 'table of individual sensors, they may be connected to another device, or stand-alone';
-
-COMMENT ON COLUMN "public"."sensors"."type" IS 'communication type (standalone, modbus, i2c, serial, ...)';
-
-COMMENT ON COLUMN "public"."sensors"."address" IS 'If it has an address, or channel ID, add it here';
-
-ALTER TABLE "public"."sensors" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."sensors_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE FOREIGN TABLE "public"."stripe_customers" (
- "id" "text",
- "email" "text",
- "name" "text",
- "description" "text",
- "created" timestamp without time zone,
- "attrs" "jsonb"
-)
-SERVER "stripe_customers_server"
-OPTIONS (
- "object" 'customers',
- "rowid_column" 'id',
- "schema" 'public'
-);
-
-ALTER FOREIGN TABLE "public"."stripe_customers" OWNER TO "postgres";
-
-CREATE TABLE IF NOT EXISTS "public"."temp_humid_co2_alert_settings" (
- "id" bigint NOT NULL,
- "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
- "profile_id" "uuid" NOT NULL,
- "dev_eui" "text" NOT NULL,
- "operator" "text" NOT NULL,
- "action" numeric NOT NULL,
- "subject" "text" NOT NULL,
- "receiver" "text" NOT NULL,
- "cleared" boolean NOT NULL,
- "value" numeric NOT NULL,
- "OneSignalID" "text"
-);
-
-ALTER TABLE "public"."temp_humid_co2_alert_settings" OWNER TO "postgres";
-
-COMMENT ON TABLE "public"."temp_humid_co2_alert_settings" IS 'Temerature Humidity CO2 Alert Settings where user settings are stored';
-
-ALTER TABLE "public"."temp_humid_co2_alert_settings" ALTER COLUMN "id" ADD GENERATED BY DEFAULT AS IDENTITY (
- SEQUENCE NAME "public"."temp_humid_co2_alert_settings_id_seq"
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1
-);
-
-CREATE FOREIGN TABLE "stripe"."stripe_subscriptions" (
- "id" "text",
- "current_period_start" timestamp without time zone,
- "current_period_end" timestamp without time zone,
- "attrs" "jsonb",
- "customer" "text",
- "currency" "text"
-)
-SERVER "stripe_subscriptions_server"
-OPTIONS (
- "object" 'subscriptions',
- "rowid_column" 'id',
- "schema" 'custom'
-);
-
-ALTER FOREIGN TABLE "stripe"."stripe_subscriptions" OWNER TO "postgres";
-
-ALTER TABLE ONLY "public"."seeed_co2_lorawan_uplinks" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."seeed_co2_lorawan_uplinks_id_seq"'::"regclass");
-
-ALTER TABLE ONLY "public"."seeed_t1000"
- ADD CONSTRAINT "SEEED_T1000_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."babylon_connection_types"
- ADD CONSTRAINT "babylon_connection_types_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."babylon_connection_types"
- ADD CONSTRAINT "babylon_connection_types_type_id_key" UNIQUE ("type_id");
-
-ALTER TABLE ONLY "public"."babylon_in_connections"
- ADD CONSTRAINT "babylon_connections_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."babylon_decoders"
- ADD CONSTRAINT "babylon_decoders_decoder_id_key" UNIQUE ("decoder_id");
-
-ALTER TABLE ONLY "public"."babylon_decoders"
- ADD CONSTRAINT "babylon_decoders_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."babylon_in_connections"
- ADD CONSTRAINT "babylon_in_connections_connection_id_key" UNIQUE ("connection_id");
-
-ALTER TABLE ONLY "public"."babylon_input_output"
- ADD CONSTRAINT "babylon_input_output_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."babylon_notifier_types"
- ADD CONSTRAINT "babylon_notifier_type_name_key" UNIQUE ("name");
-
-ALTER TABLE ONLY "public"."babylon_notifier_types"
- ADD CONSTRAINT "babylon_notifier_type_notifier_id_key" UNIQUE ("notifier_id");
-
-ALTER TABLE ONLY "public"."babylon_notifier_types"
- ADD CONSTRAINT "babylon_notifier_type_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."babylon_notifiers_out_connections"
- ADD CONSTRAINT "babylon_notifiers_out_connections_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."babylon_notifiers"
- ADD CONSTRAINT "babylon_notifiers_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."babylon_out_connections"
- ADD CONSTRAINT "babylon_out_connections_connection_id_key" UNIQUE ("connection_id");
-
-ALTER TABLE ONLY "public"."babylon_out_connections"
- ADD CONSTRAINT "babylon_out_connections_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_air_thvd"
- ADD CONSTRAINT "cw_air_thvd_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_co2_alerts"
- ADD CONSTRAINT "cw_co2_alerts_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_co2_uplinks"
- ADD CONSTRAINT "cw_co2_uplinks_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_device_locations"
- ADD CONSTRAINT "cw_device_locations_dev_eui_key" UNIQUE ("dev_eui");
-
-ALTER TABLE ONLY "public"."cw_device_locations"
- ADD CONSTRAINT "cw_device_locations_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_device_owners"
- ADD CONSTRAINT "cw_device_owners_owner_id_key" UNIQUE ("owner_id");
-
-ALTER TABLE ONLY "public"."cw_device_owners"
- ADD CONSTRAINT "cw_device_owners_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_device_type"
- ADD CONSTRAINT "cw_device_type_name_key" UNIQUE ("name");
-
-ALTER TABLE ONLY "public"."cw_device_type"
- ADD CONSTRAINT "cw_device_type_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_gateways"
- ADD CONSTRAINT "cw_gateways_gateway_id_key" UNIQUE ("gateway_id");
-
-ALTER TABLE ONLY "public"."cw_gateways"
- ADD CONSTRAINT "cw_gateways_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_gps_uplinks"
- ADD CONSTRAINT "cw_gps_uplinks_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_location_owners"
- ADD CONSTRAINT "cw_location_owners_owner_id_key" UNIQUE ("owner_id");
-
-ALTER TABLE ONLY "public"."cw_location_owners"
- ADD CONSTRAINT "cw_location_owners_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_locations"
- ADD CONSTRAINT "cw_locations_pkey" PRIMARY KEY ("location_id");
-
-ALTER TABLE ONLY "public"."cw_permission_level_types"
- ADD CONSTRAINT "cw_permission_level_types_name_key" UNIQUE ("name");
-
-ALTER TABLE ONLY "public"."cw_permission_level_types"
- ADD CONSTRAINT "cw_permission_level_types_permission_level_id_key" UNIQUE ("permission_level_id");
-
-ALTER TABLE ONLY "public"."cw_permission_level_types"
- ADD CONSTRAINT "cw_permission_level_types_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_pulse_meters"
- ADD CONSTRAINT "cw_pulse_meters_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_rule_criteria"
- ADD CONSTRAINT "cw_rule_criteria_parent_id_key" UNIQUE ("parent_id");
-
-ALTER TABLE ONLY "public"."cw_rule_criteria"
- ADD CONSTRAINT "cw_rule_criterion_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_rules"
- ADD CONSTRAINT "cw_rules_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_rules"
- ADD CONSTRAINT "cw_rules_ruleGroupId_key" UNIQUE ("ruleGroupId");
-
-ALTER TABLE ONLY "public"."cw_soil_uplinks"
- ADD CONSTRAINT "cw_soil_uplinks_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_ss_tme"
- ADD CONSTRAINT "cw_ss_tme_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_ss_tmepnpk"
- ADD CONSTRAINT "cw_ss_tmepnpk_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_traffic2"
- ADD CONSTRAINT "cw_traffic2_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_traffic"
- ADD CONSTRAINT "cw_traffic_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_watermeter_uplinks"
- ADD CONSTRAINT "cw_water_meter_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."devices"
- ADD CONSTRAINT "devices_dev_eui_key" UNIQUE ("dev_eui");
-
-ALTER TABLE ONLY "public"."devices"
- ADD CONSTRAINT "devices_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."locations"
- ADD CONSTRAINT "locations_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."netvox_ra02a"
- ADD CONSTRAINT "netvox_ra02a_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."permissions"
- ADD CONSTRAINT "permissions_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."cw_devices"
- ADD CONSTRAINT "pk_cw_devices" PRIMARY KEY ("dev_eui");
-
-ALTER TABLE ONLY "public"."profiles"
- ADD CONSTRAINT "profiles_email_key" UNIQUE ("email");
-
-ALTER TABLE ONLY "public"."profiles"
- ADD CONSTRAINT "profiles_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."profiles"
- ADD CONSTRAINT "profiles_username_key" UNIQUE ("username");
-
-ALTER TABLE ONLY "public"."road_event_lines"
- ADD CONSTRAINT "road_event_lines_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."road_events"
- ADD CONSTRAINT "road_event_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."roles"
- ADD CONSTRAINT "roles_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."seeed_co2_lorawan_uplinks"
- ADD CONSTRAINT "seeed_co2_lorawan_uplinks_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."seeed_sensecap_s2103_WaterLevel"
- ADD CONSTRAINT "seeed_sensecap_s2103_WaterLevel_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."seeed_sensecap_s2120"
- ADD CONSTRAINT "seeed_sensecap_s2120_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."sensors"
- ADD CONSTRAINT "sensors_pkey" PRIMARY KEY ("id");
-
-ALTER TABLE ONLY "public"."temp_humid_co2_alert_settings"
- ADD CONSTRAINT "temp_humid_co2_alert_settings_pkey" PRIMARY KEY ("id");
-
-CREATE INDEX "cw_device_owners_dev_eui_idx" ON "public"."cw_device_owners" USING "btree" ("dev_eui");
-
-CREATE INDEX "road_events_created_at_idx" ON "public"."road_events" USING "btree" ("created_at");
-
-CREATE INDEX "seeed_co2_lorawan_uplinks_created_at_idx" ON "public"."seeed_co2_lorawan_uplinks" USING "btree" ("created_at");
-
-CREATE OR REPLACE TRIGGER "before_profile_changes" BEFORE DELETE OR UPDATE OF "avatar_url" ON "public"."profiles" FOR EACH ROW EXECUTE FUNCTION "public"."delete_old_avatar"();
-
-ALTER TABLE ONLY "public"."seeed_t1000"
- ADD CONSTRAINT "SEEED_T1000_dev_eui_fkey" FOREIGN KEY ("dev_eui") REFERENCES "public"."cw_devices"("dev_eui") ON UPDATE CASCADE ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."babylon_input_output"
- ADD CONSTRAINT "babylon_input_output_in_id_fkey" FOREIGN KEY ("in_id") REFERENCES "public"."babylon_in_connections"("connection_id") ON UPDATE CASCADE ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."babylon_input_output"
- ADD CONSTRAINT "babylon_input_output_out_id_fkey" FOREIGN KEY ("out_id") REFERENCES "public"."babylon_out_connections"("connection_id") ON UPDATE CASCADE ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."cw_air_thvd"
- ADD CONSTRAINT "cw_air_thvd_dev_eui_fkey" FOREIGN KEY ("dev_eui") REFERENCES "public"."cw_devices"("dev_eui") ON UPDATE CASCADE ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."cw_co2_alerts"
- ADD CONSTRAINT "cw_co2_alerts_dev_eui_fkey" FOREIGN KEY ("dev_eui") REFERENCES "public"."cw_devices"("dev_eui");
-
-ALTER TABLE ONLY "public"."cw_co2_alerts"
- ADD CONSTRAINT "cw_co2_alerts_profile_id_fkey" FOREIGN KEY ("profile_id") REFERENCES "public"."profiles"("id");
-
-ALTER TABLE ONLY "public"."cw_co2_uplinks"
- ADD CONSTRAINT "cw_co2_uplinks_dev_eui_fkey" FOREIGN KEY ("dev_eui") REFERENCES "public"."cw_devices"("dev_eui") ON UPDATE CASCADE ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."cw_device_locations"
- ADD CONSTRAINT "cw_device_locations_dev_eui_fkey" FOREIGN KEY ("dev_eui") REFERENCES "public"."cw_devices"("dev_eui") ON UPDATE CASCADE ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."cw_device_locations"
- ADD CONSTRAINT "cw_device_locations_location_id_fkey" FOREIGN KEY ("location_id") REFERENCES "public"."cw_locations"("location_id") ON UPDATE CASCADE ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."cw_device_owners"
- ADD CONSTRAINT "cw_device_owners_dev_eui_fkey" FOREIGN KEY ("dev_eui") REFERENCES "public"."cw_devices"("dev_eui") ON UPDATE CASCADE ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."cw_device_owners"
- ADD CONSTRAINT "cw_device_owners_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."profiles"("id");
-
-ALTER TABLE ONLY "public"."cw_devices"
- ADD CONSTRAINT "cw_devices_type_fkey" FOREIGN KEY ("type") REFERENCES "public"."cw_device_type"("id");
-
-ALTER TABLE ONLY "public"."cw_location_owners"
- ADD CONSTRAINT "cw_location_owners_location_id_fkey" FOREIGN KEY ("location_id") REFERENCES "public"."cw_locations"("location_id") ON UPDATE CASCADE ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."cw_location_owners"
- ADD CONSTRAINT "cw_location_owners_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."profiles"("id") ON UPDATE CASCADE ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."cw_locations"
- ADD CONSTRAINT "cw_locations_owner_id_fkey" FOREIGN KEY ("owner_id") REFERENCES "public"."profiles"("id");
-
-ALTER TABLE ONLY "public"."cw_rules"
- ADD CONSTRAINT "cw_rules_dev_eui_fkey" FOREIGN KEY ("dev_eui") REFERENCES "public"."cw_devices"("dev_eui") ON UPDATE CASCADE ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."cw_soil_uplinks"
- ADD CONSTRAINT "cw_soil_uplinks_dev_eui_fkey" FOREIGN KEY ("dev_eui") REFERENCES "public"."cw_devices"("dev_eui");
-
-ALTER TABLE ONLY "public"."cw_ss_tme"
- ADD CONSTRAINT "cw_ss_tme_dev_eui_fkey" FOREIGN KEY ("dev_eui") REFERENCES "public"."cw_devices"("dev_eui") ON UPDATE CASCADE ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."cw_ss_tmepnpk"
- ADD CONSTRAINT "cw_ss_tmepnpk_dev_eui_fkey" FOREIGN KEY ("dev_eui") REFERENCES "public"."cw_devices"("dev_eui") ON UPDATE CASCADE ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."cw_traffic2"
- ADD CONSTRAINT "cw_traffic2_dev_eui_fkey" FOREIGN KEY ("dev_eui") REFERENCES "public"."cw_devices"("dev_eui");
-
-ALTER TABLE ONLY "public"."cw_watermeter_uplinks"
- ADD CONSTRAINT "cw_watermeter_uplinks_dev_eui_fkey" FOREIGN KEY ("dev_eui") REFERENCES "public"."cw_devices"("dev_eui");
-
-ALTER TABLE ONLY "public"."devices"
- ADD CONSTRAINT "devices_profile_id_fkey" FOREIGN KEY ("profile_id") REFERENCES "auth"."users"("id");
-
-ALTER TABLE ONLY "public"."netvox_ra02a"
- ADD CONSTRAINT "netvox_ra02a_profile_id_fkey" FOREIGN KEY ("profile_id") REFERENCES "public"."profiles"("id") ON UPDATE CASCADE ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."permissions"
- ADD CONSTRAINT "permissions_allowed_by_profile_id_fkey" FOREIGN KEY ("allowed_by_profile_id") REFERENCES "public"."profiles"("id") ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."permissions"
- ADD CONSTRAINT "permissions_allowed_profile_id_fkey" FOREIGN KEY ("allowed_profile_id") REFERENCES "public"."profiles"("id") ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."permissions"
- ADD CONSTRAINT "permissions_role_id_fkey" FOREIGN KEY ("role_id") REFERENCES "public"."roles"("id");
-
-ALTER TABLE ONLY "public"."profiles"
- ADD CONSTRAINT "profiles_id_fkey" FOREIGN KEY ("id") REFERENCES "auth"."users"("id") ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."babylon_in_connections"
- ADD CONSTRAINT "public_babylon_connections_profile_id_fkey" FOREIGN KEY ("profile_id") REFERENCES "public"."profiles"("id");
-
-ALTER TABLE ONLY "public"."babylon_in_connections"
- ADD CONSTRAINT "public_babylon_in_connections_type_fkey" FOREIGN KEY ("type") REFERENCES "public"."babylon_connection_types"("type_id");
-
-ALTER TABLE ONLY "public"."babylon_out_connections"
- ADD CONSTRAINT "public_babylon_out_connections_decoder_fkey" FOREIGN KEY ("decoder") REFERENCES "public"."babylon_decoders"("decoder_id");
-
-ALTER TABLE ONLY "public"."babylon_out_connections"
- ADD CONSTRAINT "public_babylon_out_connections_profile_id_fkey" FOREIGN KEY ("profile_id") REFERENCES "public"."profiles"("id");
-
-ALTER TABLE ONLY "public"."babylon_out_connections"
- ADD CONSTRAINT "public_babylon_out_connections_type_fkey" FOREIGN KEY ("type") REFERENCES "public"."babylon_connection_types"("type_id");
-
-ALTER TABLE ONLY "public"."cw_air_thvd"
- ADD CONSTRAINT "public_cw_air_thvd_profile_id_fkey" FOREIGN KEY ("profile_id") REFERENCES "public"."profiles"("id");
-
-ALTER TABLE ONLY "public"."cw_pulse_meters"
- ADD CONSTRAINT "public_cw_pulse_meters_dev_eui_fkey" FOREIGN KEY ("dev_eui") REFERENCES "public"."cw_devices"("dev_eui");
-
-ALTER TABLE ONLY "public"."cw_rule_criteria"
- ADD CONSTRAINT "public_cw_rule_criteria_ruleGroupId_fkey" FOREIGN KEY ("ruleGroupId") REFERENCES "public"."cw_rules"("ruleGroupId") ON UPDATE CASCADE ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."cw_rules"
- ADD CONSTRAINT "public_cw_rules_babylon_notifier_type_fkey" FOREIGN KEY ("babylon_notifier_type") REFERENCES "public"."babylon_notifier_types"("notifier_id");
-
-ALTER TABLE ONLY "public"."cw_rules"
- ADD CONSTRAINT "public_cw_rules_profile_id_fkey" FOREIGN KEY ("profile_id") REFERENCES "public"."profiles"("id");
-
-ALTER TABLE ONLY "public"."seeed_co2_lorawan_uplinks"
- ADD CONSTRAINT "seeed_co2_lorawan_uplinks_dev_eui_fkey" FOREIGN KEY ("dev_eui") REFERENCES "public"."cw_devices"("dev_eui") ON UPDATE CASCADE ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."seeed_sensecap_s2103_WaterLevel"
- ADD CONSTRAINT "seeed_sensecap_s2103_WaterLevel_dev_eui_fkey" FOREIGN KEY ("dev_eui") REFERENCES "public"."cw_devices"("dev_eui");
-
-ALTER TABLE ONLY "public"."seeed_sensecap_s2120"
- ADD CONSTRAINT "seeed_sensecap_s2120_dev_eui_fkey" FOREIGN KEY ("dev_eui") REFERENCES "public"."cw_devices"("dev_eui");
-
-ALTER TABLE ONLY "public"."seeed_t1000"
- ADD CONSTRAINT "seeed_t1000_profile_id_fkey" FOREIGN KEY ("profile_id") REFERENCES "public"."profiles"("id") ON UPDATE CASCADE ON DELETE CASCADE;
-
-ALTER TABLE ONLY "public"."sensors"
- ADD CONSTRAINT "sensors_connected_device_fkey" FOREIGN KEY ("connected_device") REFERENCES "public"."devices"("dev_eui");
-
-ALTER TABLE ONLY "public"."temp_humid_co2_alert_settings"
- ADD CONSTRAINT "temp_humid_co2_alert_settings_dev_eui_fkey" FOREIGN KEY ("dev_eui") REFERENCES "public"."devices"("dev_eui");
-
-ALTER TABLE ONLY "public"."temp_humid_co2_alert_settings"
- ADD CONSTRAINT "temp_humid_co2_alert_settings_profile_id_fkey" FOREIGN KEY ("profile_id") REFERENCES "public"."profiles"("id");
-
-CREATE POLICY "Allow device owners access." ON "public"."devices" USING (("dev_eui" IN ( SELECT "cw_device_owners"."dev_eui"
- FROM "public"."cw_device_owners"
- WHERE ("cw_device_owners"."user_id" = "auth"."uid"())))) WITH CHECK (("dev_eui" IN ( SELECT "cw_device_owners"."dev_eui"
- FROM "public"."cw_device_owners"
- WHERE ("cw_device_owners"."user_id" = "auth"."uid"()))));
-
-CREATE POLICY "Enable Select for users based on user_id" ON "public"."cw_rules" FOR SELECT USING (("auth"."uid"() = "profile_id"));
-
-CREATE POLICY "Enable cw_device_types read access for all users" ON "public"."cw_device_type" FOR SELECT USING (true);
-
-CREATE POLICY "Enable delete for users based on user_id" ON "public"."cw_location_owners" FOR SELECT USING ((("auth"."uid"() = "user_id") AND ("is_active" = true)));
-
-CREATE POLICY "Enable delete for users based on user_id" ON "public"."cw_locations" FOR DELETE USING ((( SELECT "auth"."uid"() AS "uid") = "owner_id"));
-
-CREATE POLICY "Enable delete for users based on user_id" ON "public"."cw_rules" FOR DELETE USING (("auth"."uid"() = "profile_id"));
-
-CREATE POLICY "Enable delete for users based on user_id" ON "public"."temp_humid_co2_alert_settings" FOR DELETE USING (("auth"."uid"() = "profile_id"));
-
-CREATE POLICY "Enable insert for authenticated users only" ON "public"."cw_devices" FOR INSERT TO "authenticated" WITH CHECK (true);
-
-CREATE POLICY "Enable insert for authenticated users only" ON "public"."cw_rules" FOR INSERT TO "authenticated" WITH CHECK (true);
-
-CREATE POLICY "Enable insert to Locations for authenticated users only" ON "public"."cw_locations" FOR INSERT TO "authenticated" WITH CHECK (true);
-
-CREATE POLICY "Enable read access for all users" ON "public"."cw_gateways" FOR SELECT USING (true);
-
-CREATE POLICY "Enable read access for all users" ON "public"."cw_permission_level_types" FOR SELECT USING (true);
-
-CREATE POLICY "Enable read access for all users" ON "public"."road_events" FOR SELECT USING (true);
-
-CREATE POLICY "Enable read access for service_role users" ON "public"."babylon_in_connections" FOR SELECT TO "service_role" USING (true);
-
-CREATE POLICY "Enable select for users based on user_id" ON "public"."cw_device_owners" FOR SELECT USING (("auth"."uid"() = "user_id"));
-
-CREATE POLICY "Enable update for users based on user_id" ON "public"."cw_rules" FOR UPDATE USING (("auth"."uid"() = "profile_id"));
-
-CREATE POLICY "Members can insert team details if they belong to the team" ON "public"."cw_device_owners" FOR INSERT WITH CHECK (( SELECT true
- FROM "public"."cw_device_owners" "cw_device_owners_1"
- WHERE ("cw_device_owners_1"."permission_level" = (3)::numeric)));
-
-CREATE POLICY "Public profiles are viewable by everyone." ON "public"."profiles" FOR SELECT USING (true);
-
-CREATE POLICY "Update only devices you own" ON "public"."cw_devices" FOR UPDATE USING ((EXISTS ( SELECT 1
- FROM "public"."cw_device_owners" "cdo"
- WHERE ((("cdo"."dev_eui")::"text" = ("cw_devices"."dev_eui")::"text") AND ("cdo"."user_id" = "auth"."uid"())))));
-
-CREATE POLICY "Users can insert their own profile." ON "public"."profiles" FOR INSERT WITH CHECK (("auth"."uid"() = "id"));
-
-CREATE POLICY "Users can update own profile." ON "public"."profiles" FOR UPDATE USING (("auth"."uid"() = "id"));
-
-CREATE POLICY "allow only authenticated user to view their own cw_devices" ON "public"."cw_devices" FOR SELECT USING ((EXISTS ( SELECT 1
- FROM "public"."cw_device_owners" "cdo"
- WHERE ((("cdo"."dev_eui")::"text" = ("cw_devices"."dev_eui")::"text") AND ("cdo"."user_id" = "auth"."uid"())))));
-
-ALTER TABLE "public"."babylon_connection_types" ENABLE ROW LEVEL SECURITY;
-
-ALTER TABLE "public"."babylon_decoders" ENABLE ROW LEVEL SECURITY;
-
-ALTER TABLE "public"."babylon_in_connections" ENABLE ROW LEVEL SECURITY;
-
-ALTER TABLE "public"."babylon_input_output" ENABLE ROW LEVEL SECURITY;
-
-ALTER TABLE "public"."babylon_notifier_types" ENABLE ROW LEVEL SECURITY;
-
-ALTER TABLE "public"."babylon_notifiers" ENABLE ROW LEVEL SECURITY;
-
-ALTER TABLE "public"."babylon_notifiers_out_connections" ENABLE ROW LEVEL SECURITY;
-
-ALTER TABLE "public"."babylon_out_connections" ENABLE ROW LEVEL SECURITY;
-
-ALTER TABLE "public"."cw_device_type" ENABLE ROW LEVEL SECURITY;
-
-ALTER TABLE "public"."cw_devices" ENABLE ROW LEVEL SECURITY;
-
-ALTER TABLE "public"."cw_gateways" ENABLE ROW LEVEL SECURITY;
-
-ALTER TABLE "public"."cw_locations" ENABLE ROW LEVEL SECURITY;
-
-ALTER TABLE "public"."cw_permission_level_types" ENABLE ROW LEVEL SECURITY;
-
-ALTER TABLE "public"."cw_pulse_meters" ENABLE ROW LEVEL SECURITY;
-
-ALTER TABLE "public"."cw_rules" ENABLE ROW LEVEL SECURITY;
-
-ALTER TABLE "public"."cw_watermeter_uplinks" ENABLE ROW LEVEL SECURITY;
-
-CREATE POLICY "location owner can insert team members if they own to the locat" ON "public"."cw_location_owners" USING (("location_id" IN ( SELECT "public"."get_location_for_user"("auth"."uid"()) AS "get_location_for_user")));
-
-ALTER TABLE "public"."locations" ENABLE ROW LEVEL SECURITY;
-
-ALTER TABLE "public"."profiles" ENABLE ROW LEVEL SECURITY;
-
-ALTER TABLE "public"."road_events" ENABLE ROW LEVEL SECURITY;
-
-CREATE POLICY "select if you have been granted permission" ON "public"."locations" FOR SELECT USING ((("auth"."uid"() = "profile_id") OR (0 < ( SELECT "count"(*) AS "count"
- FROM "public"."permissions"
- WHERE (("permissions"."allowed_profile_id" = "auth"."uid"()) AND (("permissions"."allowed_by_profile_id" = "locations"."profile_id") AND ("permissions"."resource" = "locations"."name")))))));
-
-CREATE POLICY "select_user_devices_only" ON "public"."devices" USING (("auth"."uid"() = "profile_id"));
-
-CREATE POLICY "update_if_user_owns_table" ON "public"."cw_locations" FOR UPDATE USING ((EXISTS ( SELECT 1
- FROM "public"."cw_location_owners"
- WHERE (("cw_location_owners"."user_id" = "auth"."uid"()) AND ("cw_location_owners"."location_id" = "cw_locations"."location_id")))));
-
-CREATE POLICY "user_owns_location" ON "public"."cw_locations" FOR SELECT USING (((EXISTS ( SELECT 1
- FROM "public"."cw_location_owners"
- WHERE (("cw_location_owners"."location_id" = "cw_locations"."location_id") AND ("cw_location_owners"."user_id" = "auth"."uid"()) AND ("cw_location_owners"."is_active" = true)))) OR (NOT (EXISTS ( SELECT 1
- FROM "public"."cw_location_owners"
- WHERE ("cw_location_owners"."location_id" = "cw_locations"."location_id"))))));
-
-ALTER PUBLICATION "supabase_realtime" OWNER TO "postgres";
-
-ALTER PUBLICATION "supabase_realtime" ADD TABLE ONLY "public"."babylon_in_connections";
-
-ALTER PUBLICATION "supabase_realtime" ADD TABLE ONLY "public"."cw_air_thvd";
-
-ALTER PUBLICATION "supabase_realtime" ADD TABLE ONLY "public"."cw_co2_uplinks";
-
-ALTER PUBLICATION "supabase_realtime" ADD TABLE ONLY "public"."cw_rules";
-
-ALTER PUBLICATION "supabase_realtime" ADD TABLE ONLY "public"."cw_soil_uplinks";
-
-ALTER PUBLICATION "supabase_realtime" ADD TABLE ONLY "public"."cw_ss_tme";
-
-ALTER PUBLICATION "supabase_realtime" ADD TABLE ONLY "public"."cw_ss_tmepnpk";
-
-ALTER PUBLICATION "supabase_realtime" ADD TABLE ONLY "public"."cw_traffic";
-
-ALTER PUBLICATION "supabase_realtime" ADD TABLE ONLY "public"."netvox_ra02a";
-
-ALTER PUBLICATION "supabase_realtime" ADD TABLE ONLY "public"."road_events";
-
-ALTER PUBLICATION "supabase_realtime" ADD TABLE ONLY "public"."seeed_co2_lorawan_uplinks";
-
-ALTER PUBLICATION "supabase_realtime" ADD TABLE ONLY "public"."seeed_sensecap_s2103_WaterLevel";
-
-ALTER PUBLICATION "supabase_realtime" ADD TABLE ONLY "public"."seeed_sensecap_s2120";
-
-ALTER PUBLICATION "supabase_realtime" ADD TABLE ONLY "public"."seeed_t1000";
-
-GRANT USAGE ON SCHEMA "public" TO "postgres";
-GRANT USAGE ON SCHEMA "public" TO "anon";
-GRANT USAGE ON SCHEMA "public" TO "authenticated";
-GRANT USAGE ON SCHEMA "public" TO "service_role";
-
-GRANT ALL ON FUNCTION "public"."delete_avatar"("avatar_url" "text", OUT "status" integer, OUT "content" character varying) TO "anon";
-GRANT ALL ON FUNCTION "public"."delete_avatar"("avatar_url" "text", OUT "status" integer, OUT "content" character varying) TO "authenticated";
-GRANT ALL ON FUNCTION "public"."delete_avatar"("avatar_url" "text", OUT "status" integer, OUT "content" character varying) TO "service_role";
-
-GRANT ALL ON FUNCTION "public"."delete_old_avatar"() TO "anon";
-GRANT ALL ON FUNCTION "public"."delete_old_avatar"() TO "authenticated";
-GRANT ALL ON FUNCTION "public"."delete_old_avatar"() TO "service_role";
-
-GRANT ALL ON FUNCTION "public"."delete_old_profile"() TO "anon";
-GRANT ALL ON FUNCTION "public"."delete_old_profile"() TO "authenticated";
-GRANT ALL ON FUNCTION "public"."delete_old_profile"() TO "service_role";
-
-GRANT ALL ON FUNCTION "public"."delete_storage_object"("bucket" "text", "object" "text", OUT "status" integer, OUT "content" character varying) TO "anon";
-GRANT ALL ON FUNCTION "public"."delete_storage_object"("bucket" "text", "object" "text", OUT "status" integer, OUT "content" character varying) TO "authenticated";
-GRANT ALL ON FUNCTION "public"."delete_storage_object"("bucket" "text", "object" "text", OUT "status" integer, OUT "content" character varying) TO "service_role";
-
-GRANT ALL ON PROCEDURE "public"."get_hloc_data"(IN "start_time" timestamp without time zone, IN "end_time" timestamp without time zone, IN "time_interval" "text", IN "table_name" "text", IN "column_name" "text") TO "anon";
-GRANT ALL ON PROCEDURE "public"."get_hloc_data"(IN "start_time" timestamp without time zone, IN "end_time" timestamp without time zone, IN "time_interval" "text", IN "table_name" "text", IN "column_name" "text") TO "authenticated";
-GRANT ALL ON PROCEDURE "public"."get_hloc_data"(IN "start_time" timestamp without time zone, IN "end_time" timestamp without time zone, IN "time_interval" "text", IN "table_name" "text", IN "column_name" "text") TO "service_role";
-
-GRANT ALL ON FUNCTION "public"."get_hloc_data"("start_time" timestamp without time zone, "end_time" timestamp without time zone, "time_interval" "text", "table_name" "text", "device_eui" character varying) TO "anon";
-GRANT ALL ON FUNCTION "public"."get_hloc_data"("start_time" timestamp without time zone, "end_time" timestamp without time zone, "time_interval" "text", "table_name" "text", "device_eui" character varying) TO "authenticated";
-GRANT ALL ON FUNCTION "public"."get_hloc_data"("start_time" timestamp without time zone, "end_time" timestamp without time zone, "time_interval" "text", "table_name" "text", "device_eui" character varying) TO "service_role";
-
-GRANT ALL ON FUNCTION "public"."get_location_for_user"("user_id" "uuid") TO "anon";
-GRANT ALL ON FUNCTION "public"."get_location_for_user"("user_id" "uuid") TO "authenticated";
-GRANT ALL ON FUNCTION "public"."get_location_for_user"("user_id" "uuid") TO "service_role";
-
-GRANT ALL ON FUNCTION "public"."get_road_events"("time_grouping" "text") TO "anon";
-GRANT ALL ON FUNCTION "public"."get_road_events"("time_grouping" "text") TO "authenticated";
-GRANT ALL ON FUNCTION "public"."get_road_events"("time_grouping" "text") TO "service_role";
-
-GRANT ALL ON FUNCTION "public"."get_road_events_summary1"("classes" "text"[], "end_date" timestamp with time zone, "line_id" "text", "start_date" timestamp with time zone, "time_span" "text") TO "anon";
-GRANT ALL ON FUNCTION "public"."get_road_events_summary1"("classes" "text"[], "end_date" timestamp with time zone, "line_id" "text", "start_date" timestamp with time zone, "time_span" "text") TO "authenticated";
-GRANT ALL ON FUNCTION "public"."get_road_events_summary1"("classes" "text"[], "end_date" timestamp with time zone, "line_id" "text", "start_date" timestamp with time zone, "time_span" "text") TO "service_role";
-
-GRANT ALL ON FUNCTION "public"."handle_new_user"() TO "anon";
-GRANT ALL ON FUNCTION "public"."handle_new_user"() TO "authenticated";
-GRANT ALL ON FUNCTION "public"."handle_new_user"() TO "service_role";
-
-GRANT ALL ON TABLE "public"."seeed_t1000" TO "anon";
-GRANT ALL ON TABLE "public"."seeed_t1000" TO "authenticated";
-GRANT ALL ON TABLE "public"."seeed_t1000" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."SEEED_T1000_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."SEEED_T1000_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."SEEED_T1000_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."babylon_connection_types" TO "anon";
-GRANT ALL ON TABLE "public"."babylon_connection_types" TO "authenticated";
-GRANT ALL ON TABLE "public"."babylon_connection_types" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."babylon_connection_types_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."babylon_connection_types_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."babylon_connection_types_id_seq" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."babylon_connection_types_type_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."babylon_connection_types_type_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."babylon_connection_types_type_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."babylon_in_connections" TO "anon";
-GRANT ALL ON TABLE "public"."babylon_in_connections" TO "authenticated";
-GRANT ALL ON TABLE "public"."babylon_in_connections" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."babylon_connections_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."babylon_connections_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."babylon_connections_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."babylon_decoders" TO "anon";
-GRANT ALL ON TABLE "public"."babylon_decoders" TO "authenticated";
-GRANT ALL ON TABLE "public"."babylon_decoders" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."babylon_decoders_decoder_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."babylon_decoders_decoder_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."babylon_decoders_decoder_id_seq" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."babylon_decoders_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."babylon_decoders_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."babylon_decoders_id_seq" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."babylon_in_connections_connection_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."babylon_in_connections_connection_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."babylon_in_connections_connection_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."babylon_input_output" TO "anon";
-GRANT ALL ON TABLE "public"."babylon_input_output" TO "authenticated";
-GRANT ALL ON TABLE "public"."babylon_input_output" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."babylon_input_output_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."babylon_input_output_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."babylon_input_output_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."babylon_notifier_types" TO "anon";
-GRANT ALL ON TABLE "public"."babylon_notifier_types" TO "authenticated";
-GRANT ALL ON TABLE "public"."babylon_notifier_types" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."babylon_notifier_type_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."babylon_notifier_type_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."babylon_notifier_type_id_seq" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."babylon_notifier_type_notifier_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."babylon_notifier_type_notifier_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."babylon_notifier_type_notifier_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."babylon_notifiers" TO "anon";
-GRANT ALL ON TABLE "public"."babylon_notifiers" TO "authenticated";
-GRANT ALL ON TABLE "public"."babylon_notifiers" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."babylon_notifiers_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."babylon_notifiers_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."babylon_notifiers_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."babylon_notifiers_out_connections" TO "anon";
-GRANT ALL ON TABLE "public"."babylon_notifiers_out_connections" TO "authenticated";
-GRANT ALL ON TABLE "public"."babylon_notifiers_out_connections" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."babylon_notifiers_out_connections_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."babylon_notifiers_out_connections_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."babylon_notifiers_out_connections_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."babylon_out_connections" TO "anon";
-GRANT ALL ON TABLE "public"."babylon_out_connections" TO "authenticated";
-GRANT ALL ON TABLE "public"."babylon_out_connections" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."babylon_out_connections_connection_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."babylon_out_connections_connection_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."babylon_out_connections_connection_id_seq" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."babylon_out_connections_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."babylon_out_connections_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."babylon_out_connections_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_air_thvd" TO "anon";
-GRANT ALL ON TABLE "public"."cw_air_thvd" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_air_thvd" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_air_thvd_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_air_thvd_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_air_thvd_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_co2_alerts" TO "anon";
-GRANT ALL ON TABLE "public"."cw_co2_alerts" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_co2_alerts" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_co2_alerts_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_co2_alerts_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_co2_alerts_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_co2_uplinks" TO "anon";
-GRANT ALL ON TABLE "public"."cw_co2_uplinks" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_co2_uplinks" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_co2_uplinks_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_co2_uplinks_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_co2_uplinks_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_device_locations" TO "anon";
-GRANT ALL ON TABLE "public"."cw_device_locations" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_device_locations" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_device_locations_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_device_locations_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_device_locations_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_device_owners" TO "anon";
-GRANT ALL ON TABLE "public"."cw_device_owners" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_device_owners" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_device_owners_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_device_owners_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_device_owners_id_seq" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_device_owners_owner_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_device_owners_owner_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_device_owners_owner_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_device_type" TO "anon";
-GRANT ALL ON TABLE "public"."cw_device_type" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_device_type" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_device_type_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_device_type_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_device_type_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_devices" TO "anon";
-GRANT ALL ON TABLE "public"."cw_devices" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_devices" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_gateways" TO "anon";
-GRANT ALL ON TABLE "public"."cw_gateways" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_gateways" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_gateways_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_gateways_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_gateways_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_gps_uplinks" TO "anon";
-GRANT ALL ON TABLE "public"."cw_gps_uplinks" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_gps_uplinks" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_gps_uplinks_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_gps_uplinks_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_gps_uplinks_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_location_owners" TO "anon";
-GRANT ALL ON TABLE "public"."cw_location_owners" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_location_owners" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_location_owners_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_location_owners_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_location_owners_id_seq" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_location_owners_owner_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_location_owners_owner_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_location_owners_owner_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_locations" TO "anon";
-GRANT ALL ON TABLE "public"."cw_locations" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_locations" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_locations_location_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_locations_location_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_locations_location_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_permission_level_types" TO "anon";
-GRANT ALL ON TABLE "public"."cw_permission_level_types" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_permission_level_types" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_permission_level_types_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_permission_level_types_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_permission_level_types_id_seq" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_permission_level_types_permission_level_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_permission_level_types_permission_level_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_permission_level_types_permission_level_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_pulse_meters" TO "anon";
-GRANT ALL ON TABLE "public"."cw_pulse_meters" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_pulse_meters" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_pulse_meters_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_pulse_meters_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_pulse_meters_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_rule_criteria" TO "anon";
-GRANT ALL ON TABLE "public"."cw_rule_criteria" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_rule_criteria" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_rule_criterion_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_rule_criterion_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_rule_criterion_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_rules" TO "anon";
-GRANT ALL ON TABLE "public"."cw_rules" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_rules" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_rules_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_rules_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_rules_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_soil_uplinks" TO "anon";
-GRANT ALL ON TABLE "public"."cw_soil_uplinks" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_soil_uplinks" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_soil_uplinks_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_soil_uplinks_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_soil_uplinks_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_ss_tme" TO "anon";
-GRANT ALL ON TABLE "public"."cw_ss_tme" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_ss_tme" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_ss_tme_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_ss_tme_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_ss_tme_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_ss_tmepnpk" TO "anon";
-GRANT ALL ON TABLE "public"."cw_ss_tmepnpk" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_ss_tmepnpk" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_ss_tmepnpk_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_ss_tmepnpk_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_ss_tmepnpk_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_traffic" TO "anon";
-GRANT ALL ON TABLE "public"."cw_traffic" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_traffic" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_traffic2" TO "anon";
-GRANT ALL ON TABLE "public"."cw_traffic2" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_traffic2" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_traffic2_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_traffic2_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_traffic2_id_seq" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_traffic_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_traffic_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_traffic_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."cw_watermeter_uplinks" TO "anon";
-GRANT ALL ON TABLE "public"."cw_watermeter_uplinks" TO "authenticated";
-GRANT ALL ON TABLE "public"."cw_watermeter_uplinks" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."cw_water_meter_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."cw_water_meter_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."cw_water_meter_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."devices" TO "anon";
-GRANT ALL ON TABLE "public"."devices" TO "authenticated";
-GRANT ALL ON TABLE "public"."devices" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."devices_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."devices_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."devices_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."locations" TO "anon";
-GRANT ALL ON TABLE "public"."locations" TO "authenticated";
-GRANT ALL ON TABLE "public"."locations" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."locations_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."locations_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."locations_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."netvox_ra02a" TO "anon";
-GRANT ALL ON TABLE "public"."netvox_ra02a" TO "authenticated";
-GRANT ALL ON TABLE "public"."netvox_ra02a" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."netvox_ra02a_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."netvox_ra02a_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."netvox_ra02a_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."permissions" TO "anon";
-GRANT ALL ON TABLE "public"."permissions" TO "authenticated";
-GRANT ALL ON TABLE "public"."permissions" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."permissions_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."permissions_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."permissions_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."profiles" TO "anon";
-GRANT ALL ON TABLE "public"."profiles" TO "authenticated";
-GRANT ALL ON TABLE "public"."profiles" TO "service_role";
-
-GRANT ALL ON TABLE "public"."road_events" TO "anon";
-GRANT ALL ON TABLE "public"."road_events" TO "authenticated";
-GRANT ALL ON TABLE "public"."road_events" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."road_event_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."road_event_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."road_event_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."road_event_lines" TO "anon";
-GRANT ALL ON TABLE "public"."road_event_lines" TO "authenticated";
-GRANT ALL ON TABLE "public"."road_event_lines" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."road_event_lines_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."road_event_lines_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."road_event_lines_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."roles" TO "anon";
-GRANT ALL ON TABLE "public"."roles" TO "authenticated";
-GRANT ALL ON TABLE "public"."roles" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."roles_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."roles_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."roles_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."seeed_co2_lorawan_uplinks" TO "anon";
-GRANT ALL ON TABLE "public"."seeed_co2_lorawan_uplinks" TO "authenticated";
-GRANT ALL ON TABLE "public"."seeed_co2_lorawan_uplinks" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."seeed_co2_lorawan_uplinks_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."seeed_co2_lorawan_uplinks_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."seeed_co2_lorawan_uplinks_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."seeed_sensecap_s2103_WaterLevel" TO "anon";
-GRANT ALL ON TABLE "public"."seeed_sensecap_s2103_WaterLevel" TO "authenticated";
-GRANT ALL ON TABLE "public"."seeed_sensecap_s2103_WaterLevel" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."seeed_sensecap_s2103_WaterLevel_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."seeed_sensecap_s2103_WaterLevel_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."seeed_sensecap_s2103_WaterLevel_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."seeed_sensecap_s2120" TO "anon";
-GRANT ALL ON TABLE "public"."seeed_sensecap_s2120" TO "authenticated";
-GRANT ALL ON TABLE "public"."seeed_sensecap_s2120" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."seeed_sensecap_s2120_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."seeed_sensecap_s2120_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."seeed_sensecap_s2120_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."sensors" TO "anon";
-GRANT ALL ON TABLE "public"."sensors" TO "authenticated";
-GRANT ALL ON TABLE "public"."sensors" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."sensors_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."sensors_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."sensors_id_seq" TO "service_role";
-
-GRANT ALL ON TABLE "public"."stripe_customers" TO "anon";
-GRANT ALL ON TABLE "public"."stripe_customers" TO "authenticated";
-GRANT ALL ON TABLE "public"."stripe_customers" TO "service_role";
-
-GRANT ALL ON TABLE "public"."temp_humid_co2_alert_settings" TO "anon";
-GRANT ALL ON TABLE "public"."temp_humid_co2_alert_settings" TO "authenticated";
-GRANT ALL ON TABLE "public"."temp_humid_co2_alert_settings" TO "service_role";
-
-GRANT ALL ON SEQUENCE "public"."temp_humid_co2_alert_settings_id_seq" TO "anon";
-GRANT ALL ON SEQUENCE "public"."temp_humid_co2_alert_settings_id_seq" TO "authenticated";
-GRANT ALL ON SEQUENCE "public"."temp_humid_co2_alert_settings_id_seq" TO "service_role";
-
-ALTER DEFAULT PRIVILEGES FOR ROLE "postgres" IN SCHEMA "public" GRANT ALL ON SEQUENCES TO "postgres";
-ALTER DEFAULT PRIVILEGES FOR ROLE "postgres" IN SCHEMA "public" GRANT ALL ON SEQUENCES TO "anon";
-ALTER DEFAULT PRIVILEGES FOR ROLE "postgres" IN SCHEMA "public" GRANT ALL ON SEQUENCES TO "authenticated";
-ALTER DEFAULT PRIVILEGES FOR ROLE "postgres" IN SCHEMA "public" GRANT ALL ON SEQUENCES TO "service_role";
-
-ALTER DEFAULT PRIVILEGES FOR ROLE "postgres" IN SCHEMA "public" GRANT ALL ON FUNCTIONS TO "postgres";
-ALTER DEFAULT PRIVILEGES FOR ROLE "postgres" IN SCHEMA "public" GRANT ALL ON FUNCTIONS TO "anon";
-ALTER DEFAULT PRIVILEGES FOR ROLE "postgres" IN SCHEMA "public" GRANT ALL ON FUNCTIONS TO "authenticated";
-ALTER DEFAULT PRIVILEGES FOR ROLE "postgres" IN SCHEMA "public" GRANT ALL ON FUNCTIONS TO "service_role";
-
-ALTER DEFAULT PRIVILEGES FOR ROLE "postgres" IN SCHEMA "public" GRANT ALL ON TABLES TO "postgres";
-ALTER DEFAULT PRIVILEGES FOR ROLE "postgres" IN SCHEMA "public" GRANT ALL ON TABLES TO "anon";
-ALTER DEFAULT PRIVILEGES FOR ROLE "postgres" IN SCHEMA "public" GRANT ALL ON TABLES TO "authenticated";
-ALTER DEFAULT PRIVILEGES FOR ROLE "postgres" IN SCHEMA "public" GRANT ALL ON TABLES TO "service_role";
-
-RESET ALL;
diff --git a/supabase/migrations/20240818120324_remote_schema.sql b/supabase/migrations/20240818120324_remote_schema.sql
deleted file mode 100644
index dc04437e..00000000
--- a/supabase/migrations/20240818120324_remote_schema.sql
+++ /dev/null
@@ -1,68 +0,0 @@
-grant select on table "auth"."users" to "service_role";
-
-CREATE TRIGGER before_delete_user BEFORE DELETE ON auth.users FOR EACH ROW EXECUTE FUNCTION delete_old_profile();
-
-CREATE TRIGGER on_auth_user_created AFTER INSERT ON auth.users FOR EACH ROW EXECUTE FUNCTION handle_new_user();
-
-
-set check_function_bodies = off;
-
-CREATE OR REPLACE FUNCTION storage.extension(name text)
- RETURNS text
- LANGUAGE plpgsql
-AS $function$
-DECLARE
-_parts text[];
-_filename text;
-BEGIN
- select string_to_array(name, '/') into _parts;
- select _parts[array_length(_parts,1)] into _filename;
- -- @todo return the last part instead of 2
- return split_part(_filename, '.', 2);
-END
-$function$
-;
-
-CREATE OR REPLACE FUNCTION storage.filename(name text)
- RETURNS text
- LANGUAGE plpgsql
-AS $function$
-DECLARE
-_parts text[];
-BEGIN
- select string_to_array(name, '/') into _parts;
- return _parts[array_length(_parts,1)];
-END
-$function$
-;
-
-CREATE OR REPLACE FUNCTION storage.foldername(name text)
- RETURNS text[]
- LANGUAGE plpgsql
-AS $function$
-DECLARE
-_parts text[];
-BEGIN
- select string_to_array(name, '/') into _parts;
- return _parts[1:array_length(_parts,1)-1];
-END
-$function$
-;
-
-create policy "Anyone can upload an avatar."
-on "storage"."objects"
-as permissive
-for insert
-to public
-with check ((bucket_id = 'avatars'::text));
-
-
-create policy "Avatar images are publicly accessible."
-on "storage"."objects"
-as permissive
-for select
-to public
-using ((bucket_id = 'avatars'::text));
-
-
-
diff --git a/svelte.config.js b/svelte.config.js
index 05893556..71acee9d 100644
--- a/svelte.config.js
+++ b/svelte.config.js
@@ -4,19 +4,16 @@ import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
/** @type {import('@sveltejs/kit').Config} */
const config = {
- // Consult https://kit.svelte.dev/docs/integrations#preprocessors
+ // Consult https://svelte.dev/docs/kit/integrations
// for more information about preprocessors
preprocess: vitePreprocess(),
kit: {
- files: {
- serviceWorker: 'src/my-sw.js', // or `src/my-sw.ts`
- },
- // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
+ // adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.
// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
- // See https://kit.svelte.dev/docs/adapters for more information about adapters.
+ // See https://svelte.dev/docs/kit/adapters for more information about adapters.
adapter: adapter()
- }
+ },
};
export default config;
diff --git a/tailwind.config.cjs b/tailwind.config.cjs
deleted file mode 100644
index 4de62bbb..00000000
--- a/tailwind.config.cjs
+++ /dev/null
@@ -1,58 +0,0 @@
-const colors = require('tailwindcss/colors');
-const svelteUx = require('svelte-ux/plugins/tailwind.cjs');
-
-module.exports = {
- content: [
- './src/**/*.{html,svelte}',
- './node_modules/svelte-ux/**/*.{svelte,js}'
- ],
-
- // See customization docs: https://svelte-ux.techniq.dev/customization
- ux: {
- themes: {
- "light": {
- "color-scheme": "light",
- "primary": "hsl(215.4061 100% 50%)",
- "secondary": "hsl(0 0% 0%)",
- "accent": "hsl(310.4132 49.3878% 51.9608%)",
- "neutral": "hsl(217.0213 92.1569% 10%)",
- "info": "hsl(191.5385 92.8571% 78.0392%)",
- "success": "hsl(181.5 46.5116% 66.2745%)",
- "warning": "hsl(32.3077 61.9048% 83.5294%)",
- "danger": "hsl(0 63.3803% 72.1569%)",
- "surface-100": "hsl(217.5 26.6667% 94.1176%)",
- "surface-200": "hsl(218.5714 42.4242% 87.0588%)",
- "surface-300": "hsl(212.68deg 38.38% 55.02%)",
- "surface": "hsl(0 0% 0%)"
- },
-
-
-
-
-
-
- "dark": {
- "color-scheme": "dark",
- "primary": "#1C4E80",
- "secondary": "#7C909A",
- "accent": "#EA6947",
- "neutral": "#23282E",
- "surface-100": "hsl(0 0% 21.1765%)", // Background
- "surface-200": "hsl(0 0% 12.9412%)", // Card Background
- "surface-300": "hsl(0 6.6667% 5.8824%)", // Sidenav Background
- "info": "#0091D5",
- "success": "#6BB187",
- "warning": "#DBAE59",
- "danger": "#AC3E31",
- "--rounded-box": "0.25rem",
- "--rounded-btn": ".125rem",
- "--rounded-badge": ".125rem",
- "surface": "hsl(0 0% 100%)"
- }
- },
- },
-
- plugins: [
- svelteUx, // uses hsl() color space by default. To use oklch(), use: svelteUx({ colorSpace: 'oklch' }),
- ]
-};
diff --git a/tailwind.config.ts b/tailwind.config.ts
new file mode 100644
index 00000000..c6a1302a
--- /dev/null
+++ b/tailwind.config.ts
@@ -0,0 +1,63 @@
+import aspectRatio from '@tailwindcss/aspect-ratio';
+import containerQueries from '@tailwindcss/container-queries';
+import forms from '@tailwindcss/forms';
+import typography from '@tailwindcss/typography';
+import colors from 'tailwindcss/colors';
+import svelteUx from 'svelte-ux/plugins/tailwind.cjs';
+import type { Config } from 'tailwindcss';
+
+export default {
+ content: [
+ './src/**/*.{html,js,svelte,ts}',
+ './node_modules/svelte-ux/**/*.{svelte,js}',
+ ],
+
+ ux: {
+ themes: {
+ "light": {
+ "color-scheme": "light",
+ "bg-primary-content": "lightgray",
+ "primary": "oklch(60.39% 0.228 269.1)",
+ "text-primary-content": "black",
+ "secondary": "#7b92b2",
+ "accent": "#67cba0",
+ "neutral": "#181a2a",
+ "neutral-content": "#edf2f7",
+ "surface-100": "oklch(100% 0 0)",
+ "surface-content": "#181a2a",
+ "--rounded-box": "0.25rem",
+ "--rounded-btn": ".125rem",
+ "--rounded-badge": ".125rem",
+ "--tab-radius": "0.25rem",
+ "--animation-btn": "0",
+ "--animation-input": "0",
+ "--btn-focus-scale": "1"
+ },
+ "dark": {
+ "color-scheme": "dark",
+ "primary": "#1C4E80",
+ "bg-primary-content": "#d9d9d9eb",
+ "text-primary-content": "white",
+ "secondary": "#7C909A",
+ "accent": "#EA6947",
+ "neutral": "#23282E",
+ "surface-100": "#202020",
+ "info": "#0091D5",
+ "success": "#6BB187",
+ "warning": "#DBAE59",
+ "danger": "#AC3E31",
+ "--rounded-box": "0.25rem",
+ "--rounded-btn": ".125rem",
+ "--rounded-badge": ".125rem"
+ }
+ },
+ },
+
+ plugins: [
+ typography,
+ forms,
+ containerQueries,
+ aspectRatio,
+ svelteUx
+ ],
+} satisfies Config;
diff --git a/test-results/.last-run.json b/test-results/.last-run.json
deleted file mode 100644
index 92686056..00000000
--- a/test-results/.last-run.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "status": "failed",
- "failedTests": [
- "5f7b6aabace88f74752a-de99721552b5c1da498e"
- ]
-}
\ No newline at end of file
diff --git a/themes.json b/themes.json
deleted file mode 100644
index 0b6f4bcd..00000000
--- a/themes.json
+++ /dev/null
@@ -1,1798 +0,0 @@
-{
- "light": {
- "color-scheme": "light",
- "primary": "oklch(49.12% 0.3096 275.75)",
- "secondary": "oklch(69.71% 0.329 342.55)",
- "secondary-content": "oklch(98.71% 0.0106 342.55)",
- "accent": "oklch(76.76% 0.184 183.61)",
- "neutral": "#2B3440",
- "neutral-content": "#D7DDE4",
- "surface-100": "oklch(100% 0 0)",
- "surface-200": "#F2F2F2",
- "surface-300": "#E5E6E6",
- "surface-content": "#1f2937"
- },
- "dark": {
- "color-scheme": "dark",
- "primary": "oklch(65.69% 0.196 275.75)",
- "secondary": "oklch(74.8% 0.26 342.55)",
- "accent": "oklch(74.51% 0.167 183.61)",
- "neutral": "#2a323c",
- "neutral-content": "#A6ADBB",
- "surface-100": "#1d232a",
- "surface-200": "#191e24",
- "surface-300": "#15191e",
- "surface-content": "#A6ADBB"
- },
- "cupcake": {
- "color-scheme": "light",
- "primary": "#65c3c8",
- "secondary": "#ef9fbc",
- "accent": "#eeaf3a",
- "neutral": "#291334",
- "surface-100": "#faf7f5",
- "surface-200": "#efeae6",
- "surface-300": "#e7e2df",
- "surface-content": "#291334",
- "--rounded-btn": "1.9rem",
- "--tab-border": "2px",
- "--tab-radius": "0.7rem"
- },
- "bumblebee": {
- "color-scheme": "light",
- "primary": "oklch(89.51% 0.2132 96.61)",
- "primary-content": "oklch(38.92% 0.046 96.61)",
- "secondary": "oklch(80.39% 0.194 70.76)",
- "secondary-content": "oklch(39.38% 0.068 70.76)",
- "accent": "oklch(81.27% 0.157 56.52)",
- "neutral": "oklch(12.75% 0.075 281.99)",
- "surface-100": "oklch(100% 0 0)"
- },
- "emerald": {
- "color-scheme": "light",
- "primary": "#66cc8a",
- "primary-content": "#223D30",
- "secondary": "#377cfb",
- "secondary-content": "#fff",
- "accent": "#f68067",
- "accent-content": "#000",
- "neutral": "#333c4d",
- "neutral-content": "#f9fafb",
- "surface-100": "oklch(100% 0 0)",
- "surface-content": "#333c4d",
- "--animation-btn": "0",
- "--animation-input": "0",
- "--btn-focus-scale": "1"
- },
- "corporate": {
- "color-scheme": "light",
- "primary": "oklch(60.39% 0.228 269.1)",
- "secondary": "#7b92b2",
- "accent": "#67cba0",
- "neutral": "#181a2a",
- "neutral-content": "#edf2f7",
- "surface-100": "oklch(100% 0 0)",
- "surface-content": "#181a2a",
- "--rounded-box": "0.25rem",
- "--rounded-btn": ".125rem",
- "--rounded-badge": ".125rem",
- "--tab-radius": "0.25rem",
- "--animation-btn": "0",
- "--animation-input": "0",
- "--btn-focus-scale": "1"
- },
- "synthwave": {
- "color-scheme": "dark",
- "primary": "#e779c1",
- "secondary": "#58c7f3",
- "accent": "oklch(88.04% 0.206 93.72)",
- "neutral": "#221551",
- "neutral-content": "#f9f7fd",
- "surface-100": "#1a103d",
- "surface-content": "#f9f7fd",
- "info": "#53c0f3",
- "info-content": "#201047",
- "success": "#71ead2",
- "success-content": "#201047",
- "warning": "#eace6c",
- "warning-content": "#201047",
- "danger": "#ec8c78",
- "danger-content": "#201047"
- },
- "retro": {
- "color-scheme": "light",
- "primary": "#ef9995",
- "primary-content": "#282425",
- "secondary": "#a4cbb4",
- "secondary-content": "#282425",
- "accent": "#DC8850",
- "accent-content": "#282425",
- "neutral": "#2E282A",
- "neutral-content": "#EDE6D4",
- "surface-100": "#ece3ca",
- "surface-200": "#e4d8b4",
- "surface-300": "#DBCA9A",
- "surface-content": "#282425",
- "info": "#2563eb",
- "success": "#16a34a",
- "warning": "#d97706",
- "danger": "oklch(65.72% 0.199 27.33)",
- "--rounded-box": "0.4rem",
- "--rounded-btn": "0.4rem",
- "--rounded-badge": "0.4rem",
- "--tab-radius": "0.4rem"
- },
- "cyberpunk": {
- "color-scheme": "light",
- "fontFamily": "ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace",
- "primary": "oklch(74.22% 0.209 6.35)",
- "secondary": "oklch(83.33% 0.184 204.72)",
- "accent": "oklch(71.86% 0.2176 310.43)",
- "neutral": "oklch(23.04% 0.065 269.31)",
- "neutral-content": "oklch(94.51% 0.179 104.32)",
- "surface-100": "oklch(94.51% 0.179 104.32)",
- "--rounded-box": "0",
- "--rounded-btn": "0",
- "--rounded-badge": "0",
- "--tab-radius": "0"
- },
- "valentine": {
- "color-scheme": "light",
- "primary": "#e96d7b",
- "secondary": "#a991f7",
- "accent": "#66b1b3",
- "neutral": "#af4670",
- "neutral-content": "#f0d6e8",
- "surface-100": "#fae7f4",
- "surface-content": "#632c3b",
- "info": "#2563eb",
- "success": "#16a34a",
- "warning": "#d97706",
- "danger": "oklch(73.07% 0.207 27.33)",
- "--rounded-btn": "1.9rem",
- "--tab-radius": "0.7rem"
- },
- "halloween": {
- "color-scheme": "dark",
- "primary": "oklch(77.48% 0.204 60.62)",
- "primary-content": "#131616",
- "secondary": "oklch(45.98% 0.248 305.03)",
- "accent": "oklch(64.8% 0.223 136.07347934356451)",
- "accent-content": "#000000",
- "neutral": "#2F1B05",
- "surface-100": "#212121",
- "info": "#2563eb",
- "success": "#16a34a",
- "warning": "#d97706",
- "danger": "oklch(65.72% 0.199 27.33)"
- },
- "garden": {
- "color-scheme": "light",
- "primary": "oklch(62.45% 0.278 3.8363600743192197)",
- "primary-content": "#fff",
- "secondary": "#8E4162",
- "accent": "#5c7f67",
- "neutral": "#291E00",
- "neutral-content": "#e9e7e7",
- "surface-100": "#e9e7e7",
- "surface-content": "#100f0f"
- },
- "forest": {
- "color-scheme": "dark",
- "primary": "#1eb854",
- "primary-content": "#000000",
- "secondary": "#1DB88E",
- "accent": "#1DB8AB",
- "neutral": "#19362D",
- "surface-100": "#171212",
- "--rounded-btn": "1.9rem"
- },
- "aqua": {
- "color-scheme": "dark",
- "primary": "#09ecf3",
- "primary-content": "#005355",
- "secondary": "#966fb3",
- "accent": "#ffe999",
- "neutral": "#3b8ac4",
- "surface-100": "#345da7",
- "info": "#2563eb",
- "success": "#16a34a",
- "warning": "#d97706",
- "danger": "oklch(73.95% 0.19 27.33)"
- },
- "lofi": {
- "color-scheme": "light",
- "primary": "#0D0D0D",
- "primary-content": "oklch(100% 0 0)",
- "secondary": "#1A1919",
- "secondary-content": "oklch(100% 0 0)",
- "accent": "#262626",
- "accent-content": "oklch(100% 0 0)",
- "neutral": "#000000",
- "neutral-content": "oklch(100% 0 0)",
- "surface-100": "oklch(100% 0 0)",
- "surface-200": "#F2F2F2",
- "surface-300": "#E6E5E5",
- "surface-content": "#000000",
- "info": "oklch(79.54% 0.103 205.9)",
- "success": "oklch(90.13% 0.153 164.14)",
- "warning": "oklch(88.37% 0.135 79.94)",
- "danger": "oklch(78.66% 0.15 28.47)",
- "--rounded-box": "0.25rem",
- "--rounded-btn": "0.125rem",
- "--rounded-badge": "0.125rem",
- "--tab-radius": "0.125rem",
- "--animation-btn": "0",
- "--animation-input": "0",
- "--btn-focus-scale": "1"
- },
- "pastel": {
- "color-scheme": "light",
- "primary": "#d1c1d7",
- "secondary": "#f6cbd1",
- "accent": "#b4e9d6",
- "neutral": "#70acc7",
- "surface-100": "oklch(100% 0 0)",
- "surface-200": "#f9fafb",
- "surface-300": "#d1d5db",
- "--rounded-btn": "1.9rem",
- "--tab-radius": "0.7rem"
- },
- "fantasy": {
- "color-scheme": "light",
- "primary": "oklch(37.45% 0.189 325.02)",
- "secondary": "oklch(53.92% 0.162 241.36)",
- "accent": "oklch(75.98% 0.204 56.72)",
- "neutral": "#1f2937",
- "surface-100": "oklch(100% 0 0)",
- "surface-content": "#1f2937"
- },
- "wireframe": {
- "color-scheme": "light",
- "fontFamily": "Chalkboard,comic sans ms,'sans-serif'",
- "primary": "#b8b8b8",
- "secondary": "#b8b8b8",
- "accent": "#b8b8b8",
- "neutral": "#ebebeb",
- "surface-100": "oklch(100% 0 0)",
- "surface-200": "#eeeeee",
- "surface-300": "#dddddd",
- "info": "#0000ff",
- "success": "#008000",
- "warning": "#a6a659",
- "danger": "#ff0000",
- "--rounded-box": "0.2rem",
- "--rounded-btn": "0.2rem",
- "--rounded-badge": "0.2rem",
- "--tab-radius": "0.2rem"
- },
- "black": {
- "color-scheme": "dark",
- "primary": "#373737",
- "secondary": "#373737",
- "accent": "#373737",
- "surface-100": "#000000",
- "surface-200": "#141414",
- "surface-300": "#262626",
- "surface-content": "#d6d6d6",
- "neutral": "#373737",
- "info": "#0000ff",
- "success": "#008000",
- "warning": "#ffff00",
- "danger": "#ff0000",
- "--rounded-box": "0",
- "--rounded-btn": "0",
- "--rounded-badge": "0",
- "--animation-btn": "0",
- "--animation-input": "0",
- "--btn-focus-scale": "1",
- "--tab-radius": "0"
- },
- "luxury": {
- "color-scheme": "dark",
- "primary": "oklch(100% 0 0)",
- "secondary": "#152747",
- "accent": "#513448",
- "neutral": "#331800",
- "neutral-content": "#FFE7A3",
- "surface-100": "#09090b",
- "surface-200": "#171618",
- "surface-300": "#2e2d2f",
- "surface-content": "#dca54c",
- "info": "#66c6ff",
- "success": "#87d039",
- "warning": "#e2d562",
- "danger": "#ff6f6f"
- },
- "dracula": {
- "color-scheme": "dark",
- "primary": "#ff79c6",
- "secondary": "#bd93f9",
- "accent": "#ffb86c",
- "neutral": "#414558",
- "surface-100": "#282a36",
- "surface-content": "#f8f8f2",
- "info": "#8be9fd",
- "success": "#50fa7b",
- "warning": "#f1fa8c",
- "danger": "#ff5555"
- },
- "cmyk": {
- "color-scheme": "light",
- "primary": "#45AEEE",
- "secondary": "#E8488A",
- "accent": "#FFF232",
- "neutral": "#1a1a1a",
- "surface-100": "oklch(100% 0 0)",
- "info": "#4AA8C0",
- "success": "#823290",
- "warning": "#EE8133",
- "danger": "#E93F33"
- },
- "autumn": {
- "color-scheme": "light",
- "primary": "#8C0327",
- "secondary": "#D85251",
- "accent": "#D59B6A",
- "neutral": "#826A5C",
- "surface-100": "#f1f1f1",
- "info": "#42ADBB",
- "success": "#499380",
- "warning": "#E97F14",
- "danger": "oklch(53.07% 0.241 24.16)"
- },
- "business": {
- "color-scheme": "dark",
- "primary": "#1C4E80",
- "secondary": "#7C909A",
- "accent": "#EA6947",
- "neutral": "#23282E",
- "surface-100": "#202020",
- "info": "#0091D5",
- "success": "#6BB187",
- "warning": "#DBAE59",
- "danger": "#AC3E31",
- "--rounded-box": "0.25rem",
- "--rounded-btn": ".125rem",
- "--rounded-badge": ".125rem"
- },
- "acid": {
- "color-scheme": "light",
- "primary": "oklch(71.9% 0.357 330.7595734057481)",
- "secondary": "oklch(73.37% 0.224 48.25087840015526)",
- "accent": "oklch(92.78% 0.264 122.96295065960891)",
- "neutral": "oklch(21.31% 0.128 278.68)",
- "surface-100": "#fafafa",
- "info": "oklch(60.72% 0.227 252.05)",
- "success": "oklch(85.72% 0.266 158.53)",
- "warning": "oklch(91.01% 0.212 100.5)",
- "danger": "oklch(64.84% 0.293 29.34918758658804)",
- "--rounded-box": "1.25rem",
- "--rounded-btn": "1rem",
- "--rounded-badge": "1rem",
- "--tab-radius": "0.7rem"
- },
- "lemonade": {
- "color-scheme": "light",
- "primary": "oklch(58.92% 0.199 134.6)",
- "secondary": "oklch(77.75% 0.196 111.09)",
- "accent": "oklch(85.39% 0.201 100.73)",
- "neutral": "oklch(30.98% 0.075 108.6)",
- "surface-100": "oklch(98.71% 0.02 123.72)",
- "info": "oklch(86.19% 0.047 224.14)",
- "success": "oklch(86.19% 0.047 157.85)",
- "warning": "oklch(86.19% 0.047 102.15)",
- "danger": "oklch(86.19% 0.047 25.85)"
- },
- "night": {
- "color-scheme": "dark",
- "primary": "#38bdf8",
- "secondary": "#818CF8",
- "accent": "#F471B5",
- "neutral": "#1E293B",
- "surface-100": "#0F172A",
- "info": "#0CA5E9",
- "info-content": "#000000",
- "success": "#2DD4BF",
- "warning": "#F4BF50",
- "danger": "#FB7085"
- },
- "coffee": {
- "color-scheme": "dark",
- "primary": "#DB924B",
- "secondary": "#263E3F",
- "accent": "#10576D",
- "neutral": "#120C12",
- "surface-100": "#20161F",
- "surface-content": "#c59f60",
- "info": "#8DCAC1",
- "success": "#9DB787",
- "warning": "#FFD25F",
- "danger": "#FC9581"
- },
- "winter": {
- "color-scheme": "light",
- "primary": "oklch(56.86% 0.255 257.57)",
- "secondary": "#463AA2",
- "accent": "#C148AC",
- "neutral": "#021431",
- "surface-100": "oklch(100% 0 0)",
- "surface-200": "#F2F7FF",
- "surface-300": "#E3E9F4",
- "surface-content": "#394E6A",
- "info": "#93E7FB",
- "success": "#81CFD1",
- "warning": "#EFD7BB",
- "danger": "#E58B8B"
- },
- "dim": {
- "color-scheme": "dark",
- "primary": "#9FE88D",
- "secondary": "#FF7D5C",
- "accent": "#C792E9",
- "neutral": "#1c212b",
- "neutral-content": "#B2CCD6",
- "surface-100": "#2A303C",
- "surface-200": "#242933",
- "surface-300": "#20252E",
- "surface-content": "#B2CCD6",
- "info": "#28ebff",
- "success": "#62efbd",
- "warning": "#efd057",
- "danger": "#ffae9b"
- },
- "nord": {
- "color-scheme": "light",
- "primary": "#5E81AC",
- "secondary": "#81A1C1",
- "accent": "#88C0D0",
- "neutral": "#4C566A",
- "neutral-content": "#D8DEE9",
- "surface-100": "#ECEFF4",
- "surface-200": "#E5E9F0",
- "surface-300": "#D8DEE9",
- "surface-content": "#2E3440",
- "info": "#B48EAD",
- "success": "#A3BE8C",
- "warning": "#EBCB8B",
- "danger": "#BF616A",
- "--rounded-box": "0.4rem",
- "--rounded-btn": "0.2rem",
- "--rounded-badge": "0.4rem",
- "--tab-radius": "0.2rem"
- },
- "sunset": {
- "color-scheme": "dark",
- "primary": "#FF865B",
- "secondary": "#FD6F9C",
- "accent": "#B387FA",
- "neutral": "oklch(26% 0.019 237.69)",
- "neutral-content": "oklch(70% 0.019 237.69)",
- "surface-100": "oklch(22% 0.019 237.69)",
- "surface-200": "oklch(20% 0.019 237.69)",
- "surface-300": "oklch(18% 0.019 237.69)",
- "surface-content": "#9fb9d0",
- "info": "#89e0eb",
- "success": "#addfad",
- "warning": "#f1c891",
- "danger": "#ffbbbd",
- "--rounded-box": "1.2rem",
- "--rounded-btn": "0.8rem",
- "--rounded-badge": "0.4rem",
- "--tab-radius": "0.7rem"
- },
- "skeleton-light": {
- "primary-content": "rgb(0 0 0)",
- "secondary-content": "rgb(255 255 255)",
- "accent-content": "rgb(0 0 0)",
- "success-content": "rgb(0 0 0)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(255 255 255)",
- "surface-content": "rgb(0 0 0)",
- "primary-100": "rgb(207 241 230)",
- "primary-200": "rgb(195 238 224)",
- "primary-300": "rgb(159 227 205)",
- "primary-400": "rgb(87 207 167)",
- "primary-500": "rgb(15 186 129)",
- "primary-600": "rgb(14 167 116)",
- "primary-700": "rgb(11 140 97)",
- "primary-800": "rgb(9 112 77)",
- "primary-900": "rgb(7 91 63)",
- "secondary-100": "rgb(220 218 250)",
- "secondary-200": "rgb(211 209 249)",
- "secondary-300": "rgb(185 181 245)",
- "secondary-400": "rgb(132 126 237)",
- "secondary-500": "rgb(79 70 229)",
- "secondary-600": "rgb(71 63 206)",
- "secondary-700": "rgb(59 53 172)",
- "secondary-800": "rgb(47 42 137)",
- "secondary-900": "rgb(39 34 112)",
- "accent-100": "rgb(207 237 251)",
- "accent-200": "rgb(195 233 250)",
- "accent-300": "rgb(159 219 246)",
- "accent-400": "rgb(86 192 240)",
- "accent-500": "rgb(14 165 233)",
- "accent-600": "rgb(13 149 210)",
- "accent-700": "rgb(11 124 175)",
- "accent-800": "rgb(8 99 140)",
- "accent-900": "rgb(7 81 114)",
- "success-100": "rgb(230 245 208)",
- "success-200": "rgb(224 242 197)",
- "success-300": "rgb(206 235 162)",
- "success-400": "rgb(169 219 92)",
- "success-500": "rgb(132 204 22)",
- "success-600": "rgb(119 184 20)",
- "success-700": "rgb(99 153 17)",
- "success-800": "rgb(79 122 13)",
- "success-900": "rgb(65 100 11)",
- "warning-100": "rgb(251 240 206)",
- "warning-200": "rgb(250 236 193)",
- "warning-300": "rgb(247 225 156)",
- "warning-400": "rgb(240 202 82)",
- "warning-500": "rgb(234 179 8)",
- "warning-600": "rgb(211 161 7)",
- "warning-700": "rgb(176 134 6)",
- "warning-800": "rgb(140 107 5)",
- "warning-900": "rgb(115 88 4)",
- "danger-100": "rgb(246 209 228)",
- "danger-200": "rgb(244 198 221)",
- "danger-300": "rgb(238 163 200)",
- "danger-400": "rgb(225 94 159)",
- "danger-500": "rgb(212 25 118)",
- "danger-600": "rgb(191 23 106)",
- "danger-700": "rgb(159 19 89)",
- "danger-800": "rgb(127 15 71)",
- "danger-900": "rgb(104 12 58)",
- "surface-100": "rgb(228 230 238)",
- "surface-200": "rgb(219 222 233)",
- "surface-300": "rgb(210 214 227)",
- "surface-400": "rgb(128 140 177)",
- "surface-500": "rgb(73 90 143)",
- "surface-600": "rgb(66 81 129)",
- "surface-700": "rgb(55 68 107)",
- "surface-800": "rgb(44 54 86)",
- "surface-900": "rgb(36 44 70)",
- "color-scheme": "light"
- },
- "skeleton-dark": {
- "primary-content": "rgb(0 0 0)",
- "secondary-content": "rgb(255 255 255)",
- "accent-content": "rgb(0 0 0)",
- "success-content": "rgb(0 0 0)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(255 255 255)",
- "surface-content": "rgb(255 255 255)",
- "primary-100": "rgb(207 241 230)",
- "primary-200": "rgb(195 238 224)",
- "primary-300": "rgb(159 227 205)",
- "primary-400": "rgb(87 207 167)",
- "primary-500": "rgb(15 186 129)",
- "primary-600": "rgb(14 167 116)",
- "primary-700": "rgb(11 140 97)",
- "primary-800": "rgb(9 112 77)",
- "primary-900": "rgb(7 91 63)",
- "secondary-100": "rgb(220 218 250)",
- "secondary-200": "rgb(211 209 249)",
- "secondary-300": "rgb(185 181 245)",
- "secondary-400": "rgb(132 126 237)",
- "secondary-500": "rgb(79 70 229)",
- "secondary-600": "rgb(71 63 206)",
- "secondary-700": "rgb(59 53 172)",
- "secondary-800": "rgb(47 42 137)",
- "secondary-900": "rgb(39 34 112)",
- "accent-100": "rgb(207 237 251)",
- "accent-200": "rgb(195 233 250)",
- "accent-300": "rgb(159 219 246)",
- "accent-400": "rgb(86 192 240)",
- "accent-500": "rgb(14 165 233)",
- "accent-600": "rgb(13 149 210)",
- "accent-700": "rgb(11 124 175)",
- "accent-800": "rgb(8 99 140)",
- "accent-900": "rgb(7 81 114)",
- "success-100": "rgb(230 245 208)",
- "success-200": "rgb(224 242 197)",
- "success-300": "rgb(206 235 162)",
- "success-400": "rgb(169 219 92)",
- "success-500": "rgb(132 204 22)",
- "success-600": "rgb(119 184 20)",
- "success-700": "rgb(99 153 17)",
- "success-800": "rgb(79 122 13)",
- "success-900": "rgb(65 100 11)",
- "warning-100": "rgb(251 240 206)",
- "warning-200": "rgb(250 236 193)",
- "warning-300": "rgb(247 225 156)",
- "warning-400": "rgb(240 202 82)",
- "warning-500": "rgb(234 179 8)",
- "warning-600": "rgb(211 161 7)",
- "warning-700": "rgb(176 134 6)",
- "warning-800": "rgb(140 107 5)",
- "warning-900": "rgb(115 88 4)",
- "danger-100": "rgb(246 209 228)",
- "danger-200": "rgb(244 198 221)",
- "danger-300": "rgb(238 163 200)",
- "danger-400": "rgb(225 94 159)",
- "danger-500": "rgb(212 25 118)",
- "danger-600": "rgb(191 23 106)",
- "danger-700": "rgb(159 19 89)",
- "danger-800": "rgb(127 15 71)",
- "danger-900": "rgb(104 12 58)",
- "surface-100": "rgb(55 68 107)",
- "surface-200": "rgb(44 54 86)",
- "surface-300": "rgb(36 44 70)",
- "surface-400": "rgb(128 140 177)",
- "surface-500": "rgb(73 90 143)",
- "surface-600": "rgb(66 81 129)",
- "surface-700": "rgb(55 68 107)",
- "surface-800": "rgb(44 54 86)",
- "surface-900": "rgb(36 44 70)",
- "color-scheme": "dark"
- },
- "wintry": {
- "primary-content": "rgb(0 0 0)",
- "secondary-content": "rgb(0 0 0)",
- "accent-content": "rgb(255 255 255)",
- "success-content": "rgb(0 0 0)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(255 255 255)",
- "surface-content": "rgb(0 0 0)",
- "primary-100": "rgb(219 234 254)",
- "primary-200": "rgb(191 219 254)",
- "primary-300": "rgb(147 197 253)",
- "primary-400": "rgb(96 165 250)",
- "primary-500": "rgb(59 130 246)",
- "primary-600": "rgb(37 99 235)",
- "primary-700": "rgb(29 78 216)",
- "primary-800": "rgb(30 64 175)",
- "primary-900": "rgb(30 58 138)",
- "secondary-100": "rgb(224 242 254)",
- "secondary-200": "rgb(186 230 253)",
- "secondary-300": "rgb(125 211 252)",
- "secondary-400": "rgb(56 189 248)",
- "secondary-500": "rgb(14 165 233)",
- "secondary-600": "rgb(2 132 199)",
- "secondary-700": "rgb(3 105 161)",
- "secondary-800": "rgb(7 89 133)",
- "secondary-900": "rgb(12 74 110)",
- "accent-100": "rgb(224 231 255)",
- "accent-200": "rgb(199 210 254)",
- "accent-300": "rgb(165 180 252)",
- "accent-400": "rgb(129 140 248)",
- "accent-500": "rgb(99 102 241)",
- "accent-600": "rgb(79 70 229)",
- "accent-700": "rgb(67 56 202)",
- "accent-800": "rgb(55 48 163)",
- "accent-900": "rgb(49 46 129)",
- "success-100": "rgb(230 245 208)",
- "success-200": "rgb(224 242 197)",
- "success-300": "rgb(206 235 162)",
- "success-400": "rgb(169 219 92)",
- "success-500": "rgb(132 204 22)",
- "success-600": "rgb(119 184 20)",
- "success-700": "rgb(99 153 17)",
- "success-800": "rgb(79 122 13)",
- "success-900": "rgb(65 100 11)",
- "warning-100": "rgb(251 240 206)",
- "warning-200": "rgb(250 236 193)",
- "warning-300": "rgb(247 225 156)",
- "warning-400": "rgb(240 202 82)",
- "warning-500": "rgb(234 179 8)",
- "warning-600": "rgb(211 161 7)",
- "warning-700": "rgb(176 134 6)",
- "warning-800": "rgb(140 107 5)",
- "warning-900": "rgb(115 88 4)",
- "danger-100": "rgb(246 209 228)",
- "danger-200": "rgb(244 198 221)",
- "danger-300": "rgb(238 163 200)",
- "danger-400": "rgb(225 94 159)",
- "danger-500": "rgb(212 25 118)",
- "danger-600": "rgb(191 23 106)",
- "danger-700": "rgb(159 19 89)",
- "danger-800": "rgb(127 15 71)",
- "danger-900": "rgb(104 12 58)",
- "surface-100": "rgb(249 250 251)",
- "surface-200": "rgb(243 244 246)",
- "surface-300": "rgb(229 231 235)",
- "surface-400": "rgb(156 163 175)",
- "surface-500": "rgb(107 114 128)",
- "surface-600": "rgb(75 85 99)",
- "surface-700": "rgb(55 65 81)",
- "surface-800": "rgb(31 41 55)",
- "surface-900": "rgb(17 24 39)",
- "color-scheme": "light"
- },
- "wintry-dark": {
- "primary-content": "rgb(0 0 0)",
- "secondary-content": "rgb(0 0 0)",
- "accent-content": "rgb(255 255 255)",
- "success-content": "rgb(0 0 0)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(255 255 255)",
- "surface-content": "rgb(255 255 255)",
- "primary-100": "rgb(219 234 254)",
- "primary-200": "rgb(191 219 254)",
- "primary-300": "rgb(147 197 253)",
- "primary-400": "rgb(96 165 250)",
- "primary-500": "rgb(59 130 246)",
- "primary-600": "rgb(37 99 235)",
- "primary-700": "rgb(29 78 216)",
- "primary-800": "rgb(30 64 175)",
- "primary-900": "rgb(30 58 138)",
- "secondary-100": "rgb(224 242 254)",
- "secondary-200": "rgb(186 230 253)",
- "secondary-300": "rgb(125 211 252)",
- "secondary-400": "rgb(56 189 248)",
- "secondary-500": "rgb(14 165 233)",
- "secondary-600": "rgb(2 132 199)",
- "secondary-700": "rgb(3 105 161)",
- "secondary-800": "rgb(7 89 133)",
- "secondary-900": "rgb(12 74 110)",
- "accent-100": "rgb(224 231 255)",
- "accent-200": "rgb(199 210 254)",
- "accent-300": "rgb(165 180 252)",
- "accent-400": "rgb(129 140 248)",
- "accent-500": "rgb(99 102 241)",
- "accent-600": "rgb(79 70 229)",
- "accent-700": "rgb(67 56 202)",
- "accent-800": "rgb(55 48 163)",
- "accent-900": "rgb(49 46 129)",
- "success-100": "rgb(230 245 208)",
- "success-200": "rgb(224 242 197)",
- "success-300": "rgb(206 235 162)",
- "success-400": "rgb(169 219 92)",
- "success-500": "rgb(132 204 22)",
- "success-600": "rgb(119 184 20)",
- "success-700": "rgb(99 153 17)",
- "success-800": "rgb(79 122 13)",
- "success-900": "rgb(65 100 11)",
- "warning-100": "rgb(251 240 206)",
- "warning-200": "rgb(250 236 193)",
- "warning-300": "rgb(247 225 156)",
- "warning-400": "rgb(240 202 82)",
- "warning-500": "rgb(234 179 8)",
- "warning-600": "rgb(211 161 7)",
- "warning-700": "rgb(176 134 6)",
- "warning-800": "rgb(140 107 5)",
- "warning-900": "rgb(115 88 4)",
- "danger-100": "rgb(246 209 228)",
- "danger-200": "rgb(244 198 221)",
- "danger-300": "rgb(238 163 200)",
- "danger-400": "rgb(225 94 159)",
- "danger-500": "rgb(212 25 118)",
- "danger-600": "rgb(191 23 106)",
- "danger-700": "rgb(159 19 89)",
- "danger-800": "rgb(127 15 71)",
- "danger-900": "rgb(104 12 58)",
- "surface-100": "rgb(55 65 81)",
- "surface-200": "rgb(31 41 55)",
- "surface-300": "rgb(17 24 39)",
- "surface-400": "rgb(156 163 175)",
- "surface-500": "rgb(107 114 128)",
- "surface-600": "rgb(75 85 99)",
- "surface-700": "rgb(55 65 81)",
- "surface-800": "rgb(31 41 55)",
- "surface-900": "rgb(17 24 39)",
- "color-scheme": "dark"
- },
- "modern": {
- "primary-content": "rgb(255 255 255)",
- "secondary-content": "rgb(0 0 0)",
- "accent-content": "rgb(0 0 0)",
- "success-content": "rgb(0 0 0)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(255 255 255)",
- "surface-content": "rgb(0 0 0)",
- "primary-100": "rgb(251 218 235)",
- "primary-200": "rgb(250 209 230)",
- "primary-300": "rgb(247 182 214)",
- "primary-400": "rgb(242 127 184)",
- "primary-500": "rgb(236 72 153)",
- "primary-600": "rgb(212 65 138)",
- "primary-700": "rgb(177 54 115)",
- "primary-800": "rgb(142 43 92)",
- "primary-900": "rgb(116 35 75)",
- "secondary-100": "rgb(205 240 246)",
- "secondary-200": "rgb(193 237 244)",
- "secondary-300": "rgb(155 226 238)",
- "secondary-400": "rgb(81 204 225)",
- "secondary-500": "rgb(6 182 212)",
- "secondary-600": "rgb(5 164 191)",
- "secondary-700": "rgb(5 137 159)",
- "secondary-800": "rgb(4 109 127)",
- "secondary-900": "rgb(3 89 104)",
- "accent-100": "rgb(208 241 237)",
- "accent-200": "rgb(196 237 233)",
- "accent-300": "rgb(161 227 219)",
- "accent-400": "rgb(91 205 193)",
- "accent-500": "rgb(20 184 166)",
- "accent-600": "rgb(18 166 149)",
- "accent-700": "rgb(15 138 125)",
- "accent-800": "rgb(12 110 100)",
- "accent-900": "rgb(10 90 81)",
- "success-100": "rgb(230 245 208)",
- "success-200": "rgb(224 242 197)",
- "success-300": "rgb(206 235 162)",
- "success-400": "rgb(169 219 92)",
- "success-500": "rgb(132 204 22)",
- "success-600": "rgb(119 184 20)",
- "success-700": "rgb(99 153 17)",
- "success-800": "rgb(79 122 13)",
- "success-900": "rgb(65 100 11)",
- "warning-100": "rgb(251 240 206)",
- "warning-200": "rgb(250 236 193)",
- "warning-300": "rgb(247 225 156)",
- "warning-400": "rgb(240 202 82)",
- "warning-500": "rgb(234 179 8)",
- "warning-600": "rgb(211 161 7)",
- "warning-700": "rgb(176 134 6)",
- "warning-800": "rgb(140 107 5)",
- "warning-900": "rgb(115 88 4)",
- "danger-100": "rgb(252 218 218)",
- "danger-200": "rgb(251 208 208)",
- "danger-300": "rgb(249 180 180)",
- "danger-400": "rgb(244 124 124)",
- "danger-500": "rgb(239 68 68)",
- "danger-600": "rgb(215 61 61)",
- "danger-700": "rgb(179 51 51)",
- "danger-800": "rgb(143 41 41)",
- "danger-900": "rgb(117 33 33)",
- "surface-100": "rgb(232 232 253)",
- "surface-200": "rgb(224 224 252)",
- "surface-300": "rgb(216 217 252)",
- "surface-400": "rgb(146 148 245)",
- "surface-500": "rgb(99 102 241)",
- "surface-600": "rgb(89 92 217)",
- "surface-700": "rgb(74 77 181)",
- "surface-800": "rgb(59 61 145)",
- "surface-900": "rgb(49 50 118)",
- "color-scheme": "light"
- },
- "modern-dark": {
- "primary-content": "rgb(255 255 255)",
- "secondary-content": "rgb(0 0 0)",
- "accent-content": "rgb(0 0 0)",
- "success-content": "rgb(0 0 0)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(255 255 255)",
- "surface-content": "rgb(255 255 255)",
- "primary-100": "rgb(251 218 235)",
- "primary-200": "rgb(250 209 230)",
- "primary-300": "rgb(247 182 214)",
- "primary-400": "rgb(242 127 184)",
- "primary-500": "rgb(236 72 153)",
- "primary-600": "rgb(212 65 138)",
- "primary-700": "rgb(177 54 115)",
- "primary-800": "rgb(142 43 92)",
- "primary-900": "rgb(116 35 75)",
- "secondary-100": "rgb(205 240 246)",
- "secondary-200": "rgb(193 237 244)",
- "secondary-300": "rgb(155 226 238)",
- "secondary-400": "rgb(81 204 225)",
- "secondary-500": "rgb(6 182 212)",
- "secondary-600": "rgb(5 164 191)",
- "secondary-700": "rgb(5 137 159)",
- "secondary-800": "rgb(4 109 127)",
- "secondary-900": "rgb(3 89 104)",
- "accent-100": "rgb(208 241 237)",
- "accent-200": "rgb(196 237 233)",
- "accent-300": "rgb(161 227 219)",
- "accent-400": "rgb(91 205 193)",
- "accent-500": "rgb(20 184 166)",
- "accent-600": "rgb(18 166 149)",
- "accent-700": "rgb(15 138 125)",
- "accent-800": "rgb(12 110 100)",
- "accent-900": "rgb(10 90 81)",
- "success-100": "rgb(230 245 208)",
- "success-200": "rgb(224 242 197)",
- "success-300": "rgb(206 235 162)",
- "success-400": "rgb(169 219 92)",
- "success-500": "rgb(132 204 22)",
- "success-600": "rgb(119 184 20)",
- "success-700": "rgb(99 153 17)",
- "success-800": "rgb(79 122 13)",
- "success-900": "rgb(65 100 11)",
- "warning-100": "rgb(251 240 206)",
- "warning-200": "rgb(250 236 193)",
- "warning-300": "rgb(247 225 156)",
- "warning-400": "rgb(240 202 82)",
- "warning-500": "rgb(234 179 8)",
- "warning-600": "rgb(211 161 7)",
- "warning-700": "rgb(176 134 6)",
- "warning-800": "rgb(140 107 5)",
- "warning-900": "rgb(115 88 4)",
- "danger-100": "rgb(252 218 218)",
- "danger-200": "rgb(251 208 208)",
- "danger-300": "rgb(249 180 180)",
- "danger-400": "rgb(244 124 124)",
- "danger-500": "rgb(239 68 68)",
- "danger-600": "rgb(215 61 61)",
- "danger-700": "rgb(179 51 51)",
- "danger-800": "rgb(143 41 41)",
- "danger-900": "rgb(117 33 33)",
- "surface-100": "rgb(74 77 181)",
- "surface-200": "rgb(59 61 145)",
- "surface-300": "rgb(49 50 118)",
- "surface-400": "rgb(146 148 245)",
- "surface-500": "rgb(99 102 241)",
- "surface-600": "rgb(89 92 217)",
- "surface-700": "rgb(74 77 181)",
- "surface-800": "rgb(59 61 145)",
- "surface-900": "rgb(49 50 118)",
- "color-scheme": "dark"
- },
- "rocket": {
- "primary-content": "rgb(0 0 0)",
- "secondary-content": "rgb(255 255 255)",
- "accent-content": "rgb(255 255 255)",
- "success-content": "rgb(0 0 0)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(255 255 255)",
- "surface-content": "rgb(0 0 0)",
- "primary-100": "rgb(205 240 246)",
- "primary-200": "rgb(193 237 244)",
- "primary-300": "rgb(155 226 238)",
- "primary-400": "rgb(81 204 225)",
- "primary-500": "rgb(6 182 212)",
- "primary-600": "rgb(5 164 191)",
- "primary-700": "rgb(5 137 159)",
- "primary-800": "rgb(4 109 127)",
- "primary-900": "rgb(3 89 104)",
- "secondary-100": "rgb(216 230 253)",
- "secondary-200": "rgb(206 224 253)",
- "secondary-300": "rgb(177 205 251)",
- "secondary-400": "rgb(118 168 249)",
- "secondary-500": "rgb(59 130 246)",
- "secondary-600": "rgb(53 117 221)",
- "secondary-700": "rgb(44 98 185)",
- "secondary-800": "rgb(35 78 148)",
- "secondary-900": "rgb(29 64 121)",
- "accent-100": "rgb(238 221 253)",
- "accent-200": "rgb(233 213 253)",
- "accent-300": "rgb(220 187 252)",
- "accent-400": "rgb(194 136 249)",
- "accent-500": "rgb(168 85 247)",
- "accent-600": "rgb(151 77 222)",
- "accent-700": "rgb(126 64 185)",
- "accent-800": "rgb(101 51 148)",
- "accent-900": "rgb(82 42 121)",
- "success-100": "rgb(219 245 208)",
- "success-200": "rgb(210 242 197)",
- "success-300": "rgb(183 234 161)",
- "success-400": "rgb(130 219 91)",
- "success-500": "rgb(76 203 21)",
- "success-600": "rgb(68 183 19)",
- "success-700": "rgb(57 152 16)",
- "success-800": "rgb(46 122 13)",
- "success-900": "rgb(37 99 10)",
- "warning-100": "rgb(253 243 212)",
- "warning-200": "rgb(252 240 202)",
- "warning-300": "rgb(251 230 170)",
- "warning-400": "rgb(247 212 106)",
- "warning-500": "rgb(244 193 42)",
- "warning-600": "rgb(220 174 38)",
- "warning-700": "rgb(183 145 32)",
- "warning-800": "rgb(146 116 25)",
- "warning-900": "rgb(120 95 21)",
- "danger-100": "rgb(240 213 221)",
- "danger-200": "rgb(237 202 213)",
- "danger-300": "rgb(225 171 187)",
- "danger-400": "rgb(203 107 136)",
- "danger-500": "rgb(181 44 85)",
- "danger-600": "rgb(163 40 77)",
- "danger-700": "rgb(136 33 64)",
- "danger-800": "rgb(109 26 51)",
- "danger-900": "rgb(89 22 42)",
- "surface-100": "rgb(232 234 238)",
- "surface-200": "rgb(224 227 232)",
- "surface-300": "rgb(216 220 226)",
- "surface-400": "rgb(147 158 174)",
- "surface-500": "rgb(100 116 139)",
- "surface-600": "rgb(90 104 125)",
- "surface-700": "rgb(75 87 104)",
- "surface-800": "rgb(60 70 83)",
- "surface-900": "rgb(49 57 68)",
- "color-scheme": "light"
- },
- "rocket-dark": {
- "primary-content": "rgb(0 0 0)",
- "secondary-content": "rgb(255 255 255)",
- "accent-content": "rgb(255 255 255)",
- "success-content": "rgb(0 0 0)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(255 255 255)",
- "surface-content": "rgb(255 255 255)",
- "primary-100": "rgb(205 240 246)",
- "primary-200": "rgb(193 237 244)",
- "primary-300": "rgb(155 226 238)",
- "primary-400": "rgb(81 204 225)",
- "primary-500": "rgb(6 182 212)",
- "primary-600": "rgb(5 164 191)",
- "primary-700": "rgb(5 137 159)",
- "primary-800": "rgb(4 109 127)",
- "primary-900": "rgb(3 89 104)",
- "secondary-100": "rgb(216 230 253)",
- "secondary-200": "rgb(206 224 253)",
- "secondary-300": "rgb(177 205 251)",
- "secondary-400": "rgb(118 168 249)",
- "secondary-500": "rgb(59 130 246)",
- "secondary-600": "rgb(53 117 221)",
- "secondary-700": "rgb(44 98 185)",
- "secondary-800": "rgb(35 78 148)",
- "secondary-900": "rgb(29 64 121)",
- "accent-100": "rgb(238 221 253)",
- "accent-200": "rgb(233 213 253)",
- "accent-300": "rgb(220 187 252)",
- "accent-400": "rgb(194 136 249)",
- "accent-500": "rgb(168 85 247)",
- "accent-600": "rgb(151 77 222)",
- "accent-700": "rgb(126 64 185)",
- "accent-800": "rgb(101 51 148)",
- "accent-900": "rgb(82 42 121)",
- "success-100": "rgb(219 245 208)",
- "success-200": "rgb(210 242 197)",
- "success-300": "rgb(183 234 161)",
- "success-400": "rgb(130 219 91)",
- "success-500": "rgb(76 203 21)",
- "success-600": "rgb(68 183 19)",
- "success-700": "rgb(57 152 16)",
- "success-800": "rgb(46 122 13)",
- "success-900": "rgb(37 99 10)",
- "warning-100": "rgb(253 243 212)",
- "warning-200": "rgb(252 240 202)",
- "warning-300": "rgb(251 230 170)",
- "warning-400": "rgb(247 212 106)",
- "warning-500": "rgb(244 193 42)",
- "warning-600": "rgb(220 174 38)",
- "warning-700": "rgb(183 145 32)",
- "warning-800": "rgb(146 116 25)",
- "warning-900": "rgb(120 95 21)",
- "danger-100": "rgb(240 213 221)",
- "danger-200": "rgb(237 202 213)",
- "danger-300": "rgb(225 171 187)",
- "danger-400": "rgb(203 107 136)",
- "danger-500": "rgb(181 44 85)",
- "danger-600": "rgb(163 40 77)",
- "danger-700": "rgb(136 33 64)",
- "danger-800": "rgb(109 26 51)",
- "danger-900": "rgb(89 22 42)",
- "surface-100": "rgb(75 87 104)",
- "surface-200": "rgb(60 70 83)",
- "surface-300": "rgb(49 57 68)",
- "surface-400": "rgb(147 158 174)",
- "surface-500": "rgb(100 116 139)",
- "surface-600": "rgb(90 104 125)",
- "surface-700": "rgb(75 87 104)",
- "surface-800": "rgb(60 70 83)",
- "surface-900": "rgb(49 57 68)",
- "color-scheme": "dark"
- },
- "seafoam": {
- "primary-content": "rgb(0 0 0)",
- "secondary-content": "rgb(255 255 255)",
- "accent-content": "rgb(255 255 255)",
- "success-content": "rgb(0 0 0)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(255 255 255)",
- "surface-content": "rgb(0 0 0)",
- "primary-100": "rgb(231 246 245)",
- "primary-200": "rgb(225 243 242)",
- "primary-300": "rgb(207 236 234)",
- "primary-400": "rgb(170 222 219)",
- "primary-500": "rgb(134 208 203)",
- "primary-600": "rgb(121 187 183)",
- "primary-700": "rgb(101 156 152)",
- "primary-800": "rgb(80 125 122)",
- "primary-900": "rgb(66 102 99)",
- "secondary-100": "rgb(211 214 221)",
- "secondary-200": "rgb(200 204 213)",
- "secondary-300": "rgb(166 173 187)",
- "secondary-400": "rgb(100 112 136)",
- "secondary-500": "rgb(33 51 85)",
- "secondary-600": "rgb(30 46 77)",
- "secondary-700": "rgb(25 38 64)",
- "secondary-800": "rgb(20 31 51)",
- "secondary-900": "rgb(16 25 42)",
- "accent-100": "rgb(255 216 204)",
- "accent-200": "rgb(255 207 191)",
- "accent-300": "rgb(255 177 153)",
- "accent-400": "rgb(255 119 77)",
- "accent-500": "rgb(255 61 0)",
- "accent-600": "rgb(230 55 0)",
- "accent-700": "rgb(191 46 0)",
- "accent-800": "rgb(153 37 0)",
- "accent-900": "rgb(125 30 0)",
- "success-100": "rgb(205 250 236)",
- "success-200": "rgb(193 249 232)",
- "success-300": "rgb(155 245 218)",
- "success-400": "rgb(81 237 190)",
- "success-500": "rgb(6 229 162)",
- "success-600": "rgb(5 206 146)",
- "success-700": "rgb(5 172 122)",
- "success-800": "rgb(4 137 97)",
- "success-900": "rgb(3 112 79)",
- "warning-100": "rgb(251 250 221)",
- "warning-200": "rgb(250 249 213)",
- "warning-300": "rgb(247 245 188)",
- "warning-400": "rgb(240 237 137)",
- "warning-500": "rgb(234 229 87)",
- "warning-600": "rgb(211 206 78)",
- "warning-700": "rgb(176 172 65)",
- "warning-800": "rgb(140 137 52)",
- "warning-900": "rgb(115 112 43)",
- "danger-100": "rgb(246 218 218)",
- "danger-200": "rgb(244 209 209)",
- "danger-300": "rgb(237 181 181)",
- "danger-400": "rgb(224 126 126)",
- "danger-500": "rgb(210 70 70)",
- "danger-600": "rgb(189 63 63)",
- "danger-700": "rgb(158 53 53)",
- "danger-800": "rgb(126 42 42)",
- "danger-900": "rgb(103 34 34)",
- "surface-100": "rgb(222 248 249)",
- "surface-200": "rgb(211 246 246)",
- "surface-300": "rgb(201 244 244)",
- "surface-400": "rgb(102 223 225)",
- "surface-500": "rgb(37 209 212)",
- "surface-600": "rgb(33 188 191)",
- "surface-700": "rgb(28 157 159)",
- "surface-800": "rgb(22 125 127)",
- "surface-900": "rgb(18 102 104)",
- "color-scheme": "light"
- },
- "seafoam-dark": {
- "primary-content": "rgb(0 0 0)",
- "secondary-content": "rgb(255 255 255)",
- "accent-content": "rgb(255 255 255)",
- "success-content": "rgb(0 0 0)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(255 255 255)",
- "surface-content": "rgb(255 255 255)",
- "primary-100": "rgb(231 246 245)",
- "primary-200": "rgb(225 243 242)",
- "primary-300": "rgb(207 236 234)",
- "primary-400": "rgb(170 222 219)",
- "primary-500": "rgb(134 208 203)",
- "primary-600": "rgb(121 187 183)",
- "primary-700": "rgb(101 156 152)",
- "primary-800": "rgb(80 125 122)",
- "primary-900": "rgb(66 102 99)",
- "secondary-100": "rgb(211 214 221)",
- "secondary-200": "rgb(200 204 213)",
- "secondary-300": "rgb(166 173 187)",
- "secondary-400": "rgb(100 112 136)",
- "secondary-500": "rgb(33 51 85)",
- "secondary-600": "rgb(30 46 77)",
- "secondary-700": "rgb(25 38 64)",
- "secondary-800": "rgb(20 31 51)",
- "secondary-900": "rgb(16 25 42)",
- "accent-100": "rgb(255 216 204)",
- "accent-200": "rgb(255 207 191)",
- "accent-300": "rgb(255 177 153)",
- "accent-400": "rgb(255 119 77)",
- "accent-500": "rgb(255 61 0)",
- "accent-600": "rgb(230 55 0)",
- "accent-700": "rgb(191 46 0)",
- "accent-800": "rgb(153 37 0)",
- "accent-900": "rgb(125 30 0)",
- "success-100": "rgb(205 250 236)",
- "success-200": "rgb(193 249 232)",
- "success-300": "rgb(155 245 218)",
- "success-400": "rgb(81 237 190)",
- "success-500": "rgb(6 229 162)",
- "success-600": "rgb(5 206 146)",
- "success-700": "rgb(5 172 122)",
- "success-800": "rgb(4 137 97)",
- "success-900": "rgb(3 112 79)",
- "warning-100": "rgb(251 250 221)",
- "warning-200": "rgb(250 249 213)",
- "warning-300": "rgb(247 245 188)",
- "warning-400": "rgb(240 237 137)",
- "warning-500": "rgb(234 229 87)",
- "warning-600": "rgb(211 206 78)",
- "warning-700": "rgb(176 172 65)",
- "warning-800": "rgb(140 137 52)",
- "warning-900": "rgb(115 112 43)",
- "danger-100": "rgb(246 218 218)",
- "danger-200": "rgb(244 209 209)",
- "danger-300": "rgb(237 181 181)",
- "danger-400": "rgb(224 126 126)",
- "danger-500": "rgb(210 70 70)",
- "danger-600": "rgb(189 63 63)",
- "danger-700": "rgb(158 53 53)",
- "danger-800": "rgb(126 42 42)",
- "danger-900": "rgb(103 34 34)",
- "surface-100": "rgb(28 157 159)",
- "surface-200": "rgb(22 125 127)",
- "surface-300": "rgb(18 102 104)",
- "surface-400": "rgb(102 223 225)",
- "surface-500": "rgb(37 209 212)",
- "surface-600": "rgb(33 188 191)",
- "surface-700": "rgb(28 157 159)",
- "surface-800": "rgb(22 125 127)",
- "surface-900": "rgb(18 102 104)",
- "color-scheme": "dark"
- },
- "vintage": {
- "primary-content": "rgb(0 0 0)",
- "secondary-content": "rgb(0 0 0)",
- "accent-content": "rgb(0 0 0)",
- "success-content": "rgb(0 0 0)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(0 0 0)",
- "surface-content": "rgb(0 0 0)",
- "primary-100": "rgb(251 231 209)",
- "primary-200": "rgb(250 225 198)",
- "primary-300": "rgb(247 207 163)",
- "primary-400": "rgb(240 170 95)",
- "primary-500": "rgb(234 134 26)",
- "primary-600": "rgb(211 121 23)",
- "primary-700": "rgb(176 101 20)",
- "primary-800": "rgb(140 80 16)",
- "primary-900": "rgb(115 66 13)",
- "secondary-100": "rgb(234 245 237)",
- "secondary-200": "rgb(229 243 233)",
- "secondary-300": "rgb(213 235 219)",
- "secondary-400": "rgb(182 221 192)",
- "secondary-500": "rgb(151 206 165)",
- "secondary-600": "rgb(136 185 149)",
- "secondary-700": "rgb(113 155 124)",
- "secondary-800": "rgb(91 124 99)",
- "secondary-900": "rgb(74 101 81)",
- "accent-100": "rgb(205 240 246)",
- "accent-200": "rgb(193 237 244)",
- "accent-300": "rgb(155 226 238)",
- "accent-400": "rgb(81 204 225)",
- "accent-500": "rgb(6 182 212)",
- "accent-600": "rgb(5 164 191)",
- "accent-700": "rgb(5 137 159)",
- "accent-800": "rgb(4 109 127)",
- "accent-900": "rgb(3 89 104)",
- "success-100": "rgb(230 245 223)",
- "success-200": "rgb(224 242 215)",
- "success-300": "rgb(206 234 190)",
- "success-400": "rgb(169 219 142)",
- "success-500": "rgb(132 203 93)",
- "success-600": "rgb(119 183 84)",
- "success-700": "rgb(99 152 70)",
- "success-800": "rgb(79 122 56)",
- "success-900": "rgb(65 99 46)",
- "warning-100": "rgb(252 238 211)",
- "warning-200": "rgb(252 234 200)",
- "warning-300": "rgb(250 222 167)",
- "warning-400": "rgb(246 197 101)",
- "warning-500": "rgb(242 172 35)",
- "warning-600": "rgb(218 155 32)",
- "warning-700": "rgb(182 129 26)",
- "warning-800": "rgb(145 103 21)",
- "warning-900": "rgb(119 84 17)",
- "danger-100": "rgb(247 229 228)",
- "danger-200": "rgb(245 223 221)",
- "danger-300": "rgb(238 203 201)",
- "danger-400": "rgb(226 165 161)",
- "danger-500": "rgb(213 126 120)",
- "danger-600": "rgb(192 113 108)",
- "danger-700": "rgb(160 95 90)",
- "danger-800": "rgb(128 76 72)",
- "danger-900": "rgb(104 62 59)",
- "surface-100": "rgb(226 225 224)",
- "surface-200": "rgb(217 215 214)",
- "surface-300": "rgb(207 205 204)",
- "surface-400": "rgb(121 115 111)",
- "surface-500": "rgb(63 55 49)",
- "surface-600": "rgb(57 50 44)",
- "surface-700": "rgb(47 41 37)",
- "surface-800": "rgb(38 33 29)",
- "surface-900": "rgb(31 27 24)",
- "color-scheme": "light"
- },
- "vintage-dark": {
- "primary-content": "rgb(0 0 0)",
- "secondary-content": "rgb(0 0 0)",
- "accent-content": "rgb(0 0 0)",
- "success-content": "rgb(0 0 0)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(0 0 0)",
- "surface-content": "rgb(255 255 255)",
- "primary-100": "rgb(251 231 209)",
- "primary-200": "rgb(250 225 198)",
- "primary-300": "rgb(247 207 163)",
- "primary-400": "rgb(240 170 95)",
- "primary-500": "rgb(234 134 26)",
- "primary-600": "rgb(211 121 23)",
- "primary-700": "rgb(176 101 20)",
- "primary-800": "rgb(140 80 16)",
- "primary-900": "rgb(115 66 13)",
- "secondary-100": "rgb(234 245 237)",
- "secondary-200": "rgb(229 243 233)",
- "secondary-300": "rgb(213 235 219)",
- "secondary-400": "rgb(182 221 192)",
- "secondary-500": "rgb(151 206 165)",
- "secondary-600": "rgb(136 185 149)",
- "secondary-700": "rgb(113 155 124)",
- "secondary-800": "rgb(91 124 99)",
- "secondary-900": "rgb(74 101 81)",
- "accent-100": "rgb(205 240 246)",
- "accent-200": "rgb(193 237 244)",
- "accent-300": "rgb(155 226 238)",
- "accent-400": "rgb(81 204 225)",
- "accent-500": "rgb(6 182 212)",
- "accent-600": "rgb(5 164 191)",
- "accent-700": "rgb(5 137 159)",
- "accent-800": "rgb(4 109 127)",
- "accent-900": "rgb(3 89 104)",
- "success-100": "rgb(230 245 223)",
- "success-200": "rgb(224 242 215)",
- "success-300": "rgb(206 234 190)",
- "success-400": "rgb(169 219 142)",
- "success-500": "rgb(132 203 93)",
- "success-600": "rgb(119 183 84)",
- "success-700": "rgb(99 152 70)",
- "success-800": "rgb(79 122 56)",
- "success-900": "rgb(65 99 46)",
- "warning-100": "rgb(252 238 211)",
- "warning-200": "rgb(252 234 200)",
- "warning-300": "rgb(250 222 167)",
- "warning-400": "rgb(246 197 101)",
- "warning-500": "rgb(242 172 35)",
- "warning-600": "rgb(218 155 32)",
- "warning-700": "rgb(182 129 26)",
- "warning-800": "rgb(145 103 21)",
- "warning-900": "rgb(119 84 17)",
- "danger-100": "rgb(247 229 228)",
- "danger-200": "rgb(245 223 221)",
- "danger-300": "rgb(238 203 201)",
- "danger-400": "rgb(226 165 161)",
- "danger-500": "rgb(213 126 120)",
- "danger-600": "rgb(192 113 108)",
- "danger-700": "rgb(160 95 90)",
- "danger-800": "rgb(128 76 72)",
- "danger-900": "rgb(104 62 59)",
- "surface-100": "rgb(47 41 37)",
- "surface-200": "rgb(38 33 29)",
- "surface-300": "rgb(31 27 24)",
- "surface-400": "rgb(121 115 111)",
- "surface-500": "rgb(63 55 49)",
- "surface-600": "rgb(57 50 44)",
- "surface-700": "rgb(47 41 37)",
- "surface-800": "rgb(38 33 29)",
- "surface-900": "rgb(31 27 24)",
- "color-scheme": "dark"
- },
- "sahara": {
- "primary-content": "rgb(0 0 0)",
- "secondary-content": "rgb(0 0 0)",
- "accent-content": "rgb(0 0 0)",
- "success-content": "rgb(0 0 0)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(255 255 255)",
- "surface-content": "rgb(0 0 0)",
- "primary-100": "rgb(251 238 215)",
- "primary-200": "rgb(250 234 205)",
- "primary-300": "rgb(247 221 175)",
- "primary-400": "rgb(242 196 114)",
- "primary-500": "rgb(236 170 54)",
- "primary-600": "rgb(212 153 49)",
- "primary-700": "rgb(177 128 41)",
- "primary-800": "rgb(142 102 32)",
- "primary-900": "rgb(116 83 26)",
- "secondary-100": "rgb(216 245 241)",
- "secondary-200": "rgb(206 242 238)",
- "secondary-300": "rgb(176 234 227)",
- "secondary-400": "rgb(117 219 207)",
- "secondary-500": "rgb(58 203 186)",
- "secondary-600": "rgb(52 183 167)",
- "secondary-700": "rgb(44 152 140)",
- "secondary-800": "rgb(35 122 112)",
- "secondary-900": "rgb(28 99 91)",
- "accent-100": "rgb(241 249 231)",
- "accent-200": "rgb(238 247 225)",
- "accent-300": "rgb(228 242 207)",
- "accent-400": "rgb(207 233 170)",
- "accent-500": "rgb(187 223 134)",
- "accent-600": "rgb(168 201 121)",
- "accent-700": "rgb(140 167 101)",
- "accent-800": "rgb(112 134 80)",
- "accent-900": "rgb(92 109 66)",
- "success-100": "rgb(230 245 208)",
- "success-200": "rgb(224 242 197)",
- "success-300": "rgb(206 235 162)",
- "success-400": "rgb(169 219 92)",
- "success-500": "rgb(132 204 22)",
- "success-600": "rgb(119 184 20)",
- "success-700": "rgb(99 153 17)",
- "success-800": "rgb(79 122 13)",
- "success-900": "rgb(65 100 11)",
- "warning-100": "rgb(250 243 221)",
- "warning-200": "rgb(249 240 213)",
- "warning-300": "rgb(245 230 188)",
- "warning-400": "rgb(237 212 137)",
- "warning-500": "rgb(229 193 87)",
- "warning-600": "rgb(206 174 78)",
- "warning-700": "rgb(172 145 65)",
- "warning-800": "rgb(137 116 52)",
- "warning-900": "rgb(112 95 43)",
- "danger-100": "rgb(248 222 235)",
- "danger-200": "rgb(246 214 230)",
- "danger-300": "rgb(241 190 215)",
- "danger-400": "rgb(230 141 186)",
- "danger-500": "rgb(219 92 156)",
- "danger-600": "rgb(197 83 140)",
- "danger-700": "rgb(164 69 117)",
- "danger-800": "rgb(131 55 94)",
- "danger-900": "rgb(107 45 76)",
- "surface-100": "rgb(249 228 232)",
- "surface-200": "rgb(248 220 224)",
- "surface-300": "rgb(246 211 217)",
- "surface-400": "rgb(229 131 147)",
- "surface-500": "rgb(218 78 101)",
- "surface-600": "rgb(196 70 91)",
- "surface-700": "rgb(164 59 76)",
- "surface-800": "rgb(131 47 61)",
- "surface-900": "rgb(107 38 49)",
- "color-scheme": "light"
- },
- "sahara-dark": {
- "primary-content": "rgb(0 0 0)",
- "secondary-content": "rgb(0 0 0)",
- "accent-content": "rgb(0 0 0)",
- "success-content": "rgb(0 0 0)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(255 255 255)",
- "surface-content": "rgb(255 255 255)",
- "primary-100": "rgb(251 238 215)",
- "primary-200": "rgb(250 234 205)",
- "primary-300": "rgb(247 221 175)",
- "primary-400": "rgb(242 196 114)",
- "primary-500": "rgb(236 170 54)",
- "primary-600": "rgb(212 153 49)",
- "primary-700": "rgb(177 128 41)",
- "primary-800": "rgb(142 102 32)",
- "primary-900": "rgb(116 83 26)",
- "secondary-100": "rgb(216 245 241)",
- "secondary-200": "rgb(206 242 238)",
- "secondary-300": "rgb(176 234 227)",
- "secondary-400": "rgb(117 219 207)",
- "secondary-500": "rgb(58 203 186)",
- "secondary-600": "rgb(52 183 167)",
- "secondary-700": "rgb(44 152 140)",
- "secondary-800": "rgb(35 122 112)",
- "secondary-900": "rgb(28 99 91)",
- "accent-100": "rgb(241 249 231)",
- "accent-200": "rgb(238 247 225)",
- "accent-300": "rgb(228 242 207)",
- "accent-400": "rgb(207 233 170)",
- "accent-500": "rgb(187 223 134)",
- "accent-600": "rgb(168 201 121)",
- "accent-700": "rgb(140 167 101)",
- "accent-800": "rgb(112 134 80)",
- "accent-900": "rgb(92 109 66)",
- "success-100": "rgb(230 245 208)",
- "success-200": "rgb(224 242 197)",
- "success-300": "rgb(206 235 162)",
- "success-400": "rgb(169 219 92)",
- "success-500": "rgb(132 204 22)",
- "success-600": "rgb(119 184 20)",
- "success-700": "rgb(99 153 17)",
- "success-800": "rgb(79 122 13)",
- "success-900": "rgb(65 100 11)",
- "warning-100": "rgb(250 243 221)",
- "warning-200": "rgb(249 240 213)",
- "warning-300": "rgb(245 230 188)",
- "warning-400": "rgb(237 212 137)",
- "warning-500": "rgb(229 193 87)",
- "warning-600": "rgb(206 174 78)",
- "warning-700": "rgb(172 145 65)",
- "warning-800": "rgb(137 116 52)",
- "warning-900": "rgb(112 95 43)",
- "danger-100": "rgb(248 222 235)",
- "danger-200": "rgb(246 214 230)",
- "danger-300": "rgb(241 190 215)",
- "danger-400": "rgb(230 141 186)",
- "danger-500": "rgb(219 92 156)",
- "danger-600": "rgb(197 83 140)",
- "danger-700": "rgb(164 69 117)",
- "danger-800": "rgb(131 55 94)",
- "danger-900": "rgb(107 45 76)",
- "surface-100": "rgb(164 59 76)",
- "surface-200": "rgb(131 47 61)",
- "surface-300": "rgb(107 38 49)",
- "surface-400": "rgb(229 131 147)",
- "surface-500": "rgb(218 78 101)",
- "surface-600": "rgb(196 70 91)",
- "surface-700": "rgb(164 59 76)",
- "surface-800": "rgb(131 47 61)",
- "surface-900": "rgb(107 38 49)",
- "color-scheme": "dark"
- },
- "hamlindigo": {
- "primary-content": "rgb(0 0 0)",
- "secondary-content": "rgb(255 255 255)",
- "accent-content": "rgb(255 255 255)",
- "success-content": "rgb(255 255 255)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(255 255 255)",
- "surface-content": "rgb(0 0 0)",
- "primary-100": "rgb(238 242 252)",
- "primary-200": "rgb(233 239 252)",
- "primary-300": "rgb(220 229 249)",
- "primary-400": "rgb(194 210 245)",
- "primary-500": "rgb(168 190 241)",
- "primary-600": "rgb(151 171 217)",
- "primary-700": "rgb(126 143 181)",
- "primary-800": "rgb(101 114 145)",
- "primary-900": "rgb(82 93 118)",
- "secondary-100": "rgb(237 232 222)",
- "secondary-200": "rgb(232 227 214)",
- "secondary-300": "rgb(219 210 189)",
- "secondary-400": "rgb(191 176 140)",
- "secondary-500": "rgb(164 142 91)",
- "secondary-600": "rgb(148 128 82)",
- "secondary-700": "rgb(123 107 68)",
- "secondary-800": "rgb(98 85 55)",
- "secondary-900": "rgb(80 70 45)",
- "accent-100": "rgb(223 234 237)",
- "accent-200": "rgb(216 229 232)",
- "accent-300": "rgb(192 213 218)",
- "accent-400": "rgb(144 182 191)",
- "accent-500": "rgb(97 151 163)",
- "accent-600": "rgb(87 136 147)",
- "accent-700": "rgb(73 113 122)",
- "accent-800": "rgb(58 91 98)",
- "accent-900": "rgb(48 74 80)",
- "success-100": "rgb(218 234 229)",
- "success-200": "rgb(209 228 223)",
- "success-300": "rgb(181 212 203)",
- "success-400": "rgb(126 180 164)",
- "success-500": "rgb(71 148 125)",
- "success-600": "rgb(64 133 113)",
- "success-700": "rgb(53 111 94)",
- "success-800": "rgb(43 89 75)",
- "success-900": "rgb(35 73 61)",
- "warning-100": "rgb(248 238 216)",
- "warning-200": "rgb(246 234 207)",
- "warning-300": "rgb(240 221 178)",
- "warning-400": "rgb(229 195 120)",
- "warning-500": "rgb(218 169 62)",
- "warning-600": "rgb(196 152 56)",
- "warning-700": "rgb(164 127 47)",
- "warning-800": "rgb(131 101 37)",
- "warning-900": "rgb(107 83 30)",
- "danger-100": "rgb(236 223 227)",
- "danger-200": "rgb(232 216 221)",
- "danger-300": "rgb(218 192 200)",
- "danger-400": "rgb(190 144 158)",
- "danger-500": "rgb(162 97 117)",
- "danger-600": "rgb(146 87 105)",
- "danger-700": "rgb(122 73 88)",
- "danger-800": "rgb(97 58 70)",
- "danger-900": "rgb(79 48 57)",
- "surface-100": "rgb(232 234 241)",
- "surface-200": "rgb(224 228 237)",
- "surface-300": "rgb(216 221 232)",
- "surface-400": "rgb(146 159 191)",
- "surface-500": "rgb(99 118 163)",
- "surface-600": "rgb(89 106 147)",
- "surface-700": "rgb(74 89 122)",
- "surface-800": "rgb(59 71 98)",
- "surface-900": "rgb(49 58 80)",
- "color-scheme": "light"
- },
- "hamlindigo-dark": {
- "primary-content": "rgb(0 0 0)",
- "secondary-content": "rgb(255 255 255)",
- "accent-content": "rgb(255 255 255)",
- "success-content": "rgb(255 255 255)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(255 255 255)",
- "surface-content": "rgb(255 255 255)",
- "primary-100": "rgb(238 242 252)",
- "primary-200": "rgb(233 239 252)",
- "primary-300": "rgb(220 229 249)",
- "primary-400": "rgb(194 210 245)",
- "primary-500": "rgb(168 190 241)",
- "primary-600": "rgb(151 171 217)",
- "primary-700": "rgb(126 143 181)",
- "primary-800": "rgb(101 114 145)",
- "primary-900": "rgb(82 93 118)",
- "secondary-100": "rgb(237 232 222)",
- "secondary-200": "rgb(232 227 214)",
- "secondary-300": "rgb(219 210 189)",
- "secondary-400": "rgb(191 176 140)",
- "secondary-500": "rgb(164 142 91)",
- "secondary-600": "rgb(148 128 82)",
- "secondary-700": "rgb(123 107 68)",
- "secondary-800": "rgb(98 85 55)",
- "secondary-900": "rgb(80 70 45)",
- "accent-100": "rgb(223 234 237)",
- "accent-200": "rgb(216 229 232)",
- "accent-300": "rgb(192 213 218)",
- "accent-400": "rgb(144 182 191)",
- "accent-500": "rgb(97 151 163)",
- "accent-600": "rgb(87 136 147)",
- "accent-700": "rgb(73 113 122)",
- "accent-800": "rgb(58 91 98)",
- "accent-900": "rgb(48 74 80)",
- "success-100": "rgb(218 234 229)",
- "success-200": "rgb(209 228 223)",
- "success-300": "rgb(181 212 203)",
- "success-400": "rgb(126 180 164)",
- "success-500": "rgb(71 148 125)",
- "success-600": "rgb(64 133 113)",
- "success-700": "rgb(53 111 94)",
- "success-800": "rgb(43 89 75)",
- "success-900": "rgb(35 73 61)",
- "warning-100": "rgb(248 238 216)",
- "warning-200": "rgb(246 234 207)",
- "warning-300": "rgb(240 221 178)",
- "warning-400": "rgb(229 195 120)",
- "warning-500": "rgb(218 169 62)",
- "warning-600": "rgb(196 152 56)",
- "warning-700": "rgb(164 127 47)",
- "warning-800": "rgb(131 101 37)",
- "warning-900": "rgb(107 83 30)",
- "danger-100": "rgb(236 223 227)",
- "danger-200": "rgb(232 216 221)",
- "danger-300": "rgb(218 192 200)",
- "danger-400": "rgb(190 144 158)",
- "danger-500": "rgb(162 97 117)",
- "danger-600": "rgb(146 87 105)",
- "danger-700": "rgb(122 73 88)",
- "danger-800": "rgb(97 58 70)",
- "danger-900": "rgb(79 48 57)",
- "surface-100": "rgb(74 89 122)",
- "surface-200": "rgb(59 71 98)",
- "surface-300": "rgb(49 58 80)",
- "surface-400": "rgb(146 159 191)",
- "surface-500": "rgb(99 118 163)",
- "surface-600": "rgb(89 106 147)",
- "surface-700": "rgb(74 89 122)",
- "surface-800": "rgb(59 71 98)",
- "surface-900": "rgb(49 58 80)",
- "color-scheme": "dark"
- },
- "gold-nouveau": {
- "primary-content": "rgb(255 255 255)",
- "secondary-content": "rgb(255 255 255)",
- "accent-content": "rgb(255 255 255)",
- "success-content": "rgb(0 0 0)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(255 255 255)",
- "surface-content": "rgb(0 0 0)",
- "primary-100": "rgb(242 238 247)",
- "primary-200": "rgb(229 220 239)",
- "primary-300": "rgb(209 192 226)",
- "primary-400": "rgb(162 129 197)",
- "primary-500": "rgb(116 74 161)",
- "primary-600": "rgb(83 53 115)",
- "primary-700": "rgb(60 39 84)",
- "primary-800": "rgb(35 22 49)",
- "primary-900": "rgb(18 11 24)",
- "secondary-100": "rgb(205 227 250)",
- "secondary-200": "rgb(193 220 249)",
- "secondary-300": "rgb(155 199 245)",
- "secondary-400": "rgb(81 156 237)",
- "secondary-500": "rgb(6 114 229)",
- "secondary-600": "rgb(5 103 206)",
- "secondary-700": "rgb(5 86 172)",
- "secondary-800": "rgb(4 68 137)",
- "secondary-900": "rgb(3 56 112)",
- "accent-100": "rgb(229 228 248)",
- "accent-200": "rgb(223 221 247)",
- "accent-300": "rgb(204 201 241)",
- "accent-400": "rgb(165 161 231)",
- "accent-500": "rgb(127 120 221)",
- "accent-600": "rgb(114 108 199)",
- "accent-700": "rgb(95 90 166)",
- "accent-800": "rgb(76 72 133)",
- "accent-900": "rgb(62 59 108)",
- "success-100": "rgb(227 243 231)",
- "success-200": "rgb(220 241 225)",
- "success-300": "rgb(199 232 206)",
- "success-400": "rgb(156 214 170)",
- "success-500": "rgb(114 197 133)",
- "success-600": "rgb(103 177 120)",
- "success-700": "rgb(86 148 100)",
- "success-800": "rgb(68 118 80)",
- "success-900": "rgb(56 97 65)",
- "warning-100": "rgb(250 229 206)",
- "warning-200": "rgb(249 223 193)",
- "warning-300": "rgb(245 204 156)",
- "warning-400": "rgb(238 165 82)",
- "warning-500": "rgb(231 127 8)",
- "warning-600": "rgb(208 114 7)",
- "warning-700": "rgb(173 95 6)",
- "warning-800": "rgb(139 76 5)",
- "warning-900": "rgb(113 62 4)",
- "danger-100": "rgb(233 207 211)",
- "danger-200": "rgb(227 195 200)",
- "danger-300": "rgb(210 159 167)",
- "danger-400": "rgb(177 87 100)",
- "danger-500": "rgb(143 15 34)",
- "danger-600": "rgb(129 14 31)",
- "danger-700": "rgb(107 11 26)",
- "danger-800": "rgb(86 9 20)",
- "danger-900": "rgb(70 7 17)",
- "surface-100": "rgb(250 248 252)",
- "surface-200": "rgb(242 238 247)",
- "surface-300": "rgb(229 220 239)",
- "surface-400": "rgb(162 129 197)",
- "surface-500": "rgb(116 74 161)",
- "surface-600": "rgb(83 53 115)",
- "surface-700": "rgb(60 39 84)",
- "surface-800": "rgb(35 22 49)",
- "surface-900": "rgb(18 11 24)",
- "color-scheme": "light"
- },
- "gold-nouveau-dark": {
- "primary-content": "rgb(255 255 255)",
- "secondary-content": "rgb(255 255 255)",
- "accent-content": "rgb(255 255 255)",
- "success-content": "rgb(0 0 0)",
- "warning-content": "rgb(0 0 0)",
- "danger-content": "rgb(255 255 255)",
- "surface-content": "rgb(255 255 255)",
- "primary-100": "rgb(242 238 247)",
- "primary-200": "rgb(229 220 239)",
- "primary-300": "rgb(209 192 226)",
- "primary-400": "rgb(162 129 197)",
- "primary-500": "rgb(116 74 161)",
- "primary-600": "rgb(83 53 115)",
- "primary-700": "rgb(60 39 84)",
- "primary-800": "rgb(35 22 49)",
- "primary-900": "rgb(18 11 24)",
- "secondary-100": "rgb(205 227 250)",
- "secondary-200": "rgb(193 220 249)",
- "secondary-300": "rgb(155 199 245)",
- "secondary-400": "rgb(81 156 237)",
- "secondary-500": "rgb(6 114 229)",
- "secondary-600": "rgb(5 103 206)",
- "secondary-700": "rgb(5 86 172)",
- "secondary-800": "rgb(4 68 137)",
- "secondary-900": "rgb(3 56 112)",
- "accent-100": "rgb(229 228 248)",
- "accent-200": "rgb(223 221 247)",
- "accent-300": "rgb(204 201 241)",
- "accent-400": "rgb(165 161 231)",
- "accent-500": "rgb(127 120 221)",
- "accent-600": "rgb(114 108 199)",
- "accent-700": "rgb(95 90 166)",
- "accent-800": "rgb(76 72 133)",
- "accent-900": "rgb(62 59 108)",
- "success-100": "rgb(227 243 231)",
- "success-200": "rgb(220 241 225)",
- "success-300": "rgb(199 232 206)",
- "success-400": "rgb(156 214 170)",
- "success-500": "rgb(114 197 133)",
- "success-600": "rgb(103 177 120)",
- "success-700": "rgb(86 148 100)",
- "success-800": "rgb(68 118 80)",
- "success-900": "rgb(56 97 65)",
- "warning-100": "rgb(250 229 206)",
- "warning-200": "rgb(249 223 193)",
- "warning-300": "rgb(245 204 156)",
- "warning-400": "rgb(238 165 82)",
- "warning-500": "rgb(231 127 8)",
- "warning-600": "rgb(208 114 7)",
- "warning-700": "rgb(173 95 6)",
- "warning-800": "rgb(139 76 5)",
- "warning-900": "rgb(113 62 4)",
- "danger-100": "rgb(233 207 211)",
- "danger-200": "rgb(227 195 200)",
- "danger-300": "rgb(210 159 167)",
- "danger-400": "rgb(177 87 100)",
- "danger-500": "rgb(143 15 34)",
- "danger-600": "rgb(129 14 31)",
- "danger-700": "rgb(107 11 26)",
- "danger-800": "rgb(86 9 20)",
- "danger-900": "rgb(70 7 17)",
- "surface-100": "rgb(60 39 84)",
- "surface-200": "rgb(35 22 49)",
- "surface-300": "rgb(18 11 24)",
- "surface-400": "rgb(162 129 197)",
- "surface-500": "rgb(116 74 161)",
- "surface-600": "rgb(83 53 115)",
- "surface-700": "rgb(60 39 84)",
- "surface-800": "rgb(35 22 49)",
- "surface-900": "rgb(18 11 24)",
- "color-scheme": "dark"
- }
- }
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
index c369c4c3..ba34272e 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -9,11 +9,12 @@
"skipLibCheck": true,
"sourceMap": true,
"strict": true,
- "moduleResolution": "bundler"
+ "moduleResolution": "bundler",
+ "types": ["leaflet", "leaflet.markercluster"]
}
- // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
- // except $lib which is handled by https://kit.svelte.dev/docs/configuration#files
+ // Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias
+ // except $lib which is handled by https://svelte.dev/docs/kit/configuration#files
//
// If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
// from the referenced tsconfig.json - TypeScript does not merge them in
-}
\ No newline at end of file
+}
diff --git a/vite.config.ts b/vite.config.ts
index 050d5566..ae1ebc3e 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,10 +1,12 @@
-import { sveltekit } from '@sveltejs/kit/vite';
+import { paraglideVitePlugin } from '@inlang/paraglide-js'
import { defineConfig } from 'vitest/config';
+import { sveltekit } from '@sveltejs/kit/vite';
export default defineConfig({
- plugins: [
- sveltekit(),
+ plugins: [paraglideVitePlugin({ project: './project.inlang', outdir: './src/lib/paraglide' }),
+ sveltekit(),
],
+
test: {
include: ['src/**/*.{test,spec}.{js,ts}']
}