navigation
This commit is contained in:
1 parent
5810c4c94f
commit
ff6ef46cd4
78 files changed
+666
-267
No files matched your search
+2
-1
@@ -1 +1,2 @@
|
||||
lassistanoque.db
|
||||
lassistanoque.db*
|
||||
build/*
|
||||
@@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="13mm"
|
||||
height="13mm"
|
||||
viewBox="0 0 13 13"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.4.4 (dcaf3e7d9e, 2026-05-05)"
|
||||
sodipodi:docname="logo-small.svg"
|
||||
inkscape:export-filename="../backend/web/src/lib/assets/logo-txt.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="1.4431818"
|
||||
inkscape:cx="287.90552"
|
||||
inkscape:cy="214.80315"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1011"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
inkscape:label="Calque 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:14.1111px;font-family:pixelart;-inkscape-font-specification:pixelart;writing-mode:lr-tb;direction:ltr;fill:#37abc8;stroke-width:0.264583"
|
||||
x="2.7499995"
|
||||
y="11.549997"
|
||||
id="text1"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.1111px;font-family:'GohuFont 11 Nerd Font';-inkscape-font-specification:'GohuFont 11 Nerd Font';fill:#0ea5e9;fill-opacity:1;stroke-width:0.264583"
|
||||
x="2.7499995"
|
||||
y="11.549997">l</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 2.7 KiB |
@@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="100mm"
|
||||
height="14mm"
|
||||
viewBox="0 0 100 14"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.4.4 (dcaf3e7d9e, 2026-05-05)"
|
||||
sodipodi:docname="logo-txt.svg"
|
||||
inkscape:export-filename="logo-txt.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="1.4431818"
|
||||
inkscape:cx="287.90552"
|
||||
inkscape:cy="214.80315"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1011"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
inkscape:label="Calque 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:14.1111px;font-family:pixelart;-inkscape-font-specification:pixelart;writing-mode:lr-tb;direction:ltr;fill:#37abc8;stroke-width:0.264583"
|
||||
x="-0.73333383"
|
||||
y="10.999997"
|
||||
id="text1"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.1111px;font-family:'GohuFont 11 Nerd Font';-inkscape-font-specification:'GohuFont 11 Nerd Font';fill:#0ea5e9;fill-opacity:1;stroke-width:0.264583"
|
||||
x="-0.73333383"
|
||||
y="10.999997">lassistanoque</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
+10
-6
@@ -7,9 +7,11 @@ import (
|
||||
"github.com/spf13/cobra"
|
||||
"trankilou.fr/lassistanoque/backend/internal/adapter/auth/password"
|
||||
"trankilou.fr/lassistanoque/backend/internal/adapter/database"
|
||||
"trankilou.fr/lassistanoque/backend/internal/adapter/file"
|
||||
"trankilou.fr/lassistanoque/backend/internal/adapter/security"
|
||||
"trankilou.fr/lassistanoque/backend/internal/http"
|
||||
"trankilou.fr/lassistanoque/backend/internal/service/auth"
|
||||
"trankilou.fr/lassistanoque/backend/internal/service/storage"
|
||||
"trankilou.fr/lassistanoque/backend/internal/service/user"
|
||||
)
|
||||
|
||||
@@ -45,28 +47,30 @@ func runServe() {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
settings, err := db.SettingsReporitory().GetSettings()
|
||||
// storage
|
||||
store, err := file.GetStorageProvider(db.FileRepository())
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
// Adapters
|
||||
tokenManager := security.NewJwtTokenManager(12*time.Hour, 7*24*time.Hour, "lassistanoque")
|
||||
pwdAuth := password.NewPasswordAuthenticator(tokenManager, db.UserReporitory())
|
||||
pwdAuth := password.NewPasswordAuthenticator(tokenManager, db.UserRepository())
|
||||
|
||||
// services
|
||||
authService := auth.NewService(
|
||||
db.SettingsReporitory(),
|
||||
db.UserReporitory(),
|
||||
db.SettingsRepository(),
|
||||
db.UserRepository(),
|
||||
map[string]auth.Authenticator{
|
||||
"password": pwdAuth,
|
||||
},
|
||||
)
|
||||
userService := user.NewService(db.UserReporitory())
|
||||
userService := user.NewService(db.UserRepository())
|
||||
storageService := storage.NewService(store)
|
||||
|
||||
// http server
|
||||
router := http.NewRouter(http.Dependencies{
|
||||
Settings: settings,
|
||||
StorageService: storageService,
|
||||
AuthService: authService,
|
||||
UserService: userService,
|
||||
TokenManager: tokenManager,
|
||||
|
||||
@@ -26,7 +26,7 @@ func NewPasswordAuthenticator(
|
||||
func (s *PasswordAuthenticator) Authenticate(ctx context.Context, creds auth.Credentials) (*auth.Session, error) {
|
||||
|
||||
user, err := s.userRepository.FindUserByEmail(creds.Email)
|
||||
if err != nil {
|
||||
if err != nil || !user.Enabled {
|
||||
return nil, fmt.Errorf("Unauthorized user %s : %s", creds.Email, err)
|
||||
}
|
||||
|
||||
@@ -61,15 +61,28 @@ func (s *PasswordAuthenticator) Register(ctx context.Context, registration auth.
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
user, err := s.userRepository.CreateUser(&domain.User{
|
||||
|
||||
user := &domain.User{
|
||||
Email: registration.Email,
|
||||
Firstname: registration.Firstname,
|
||||
Lastname: registration.Lastname,
|
||||
Password: hashedPassord,
|
||||
})
|
||||
Enabled: true,
|
||||
}
|
||||
|
||||
count, err := s.userRepository.CountUsers()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
_ = user
|
||||
return nil, nil
|
||||
if count == 0 {
|
||||
user.Administrator = true
|
||||
}
|
||||
|
||||
user, err = s.userRepository.CreateUser(user)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &auth.Session{User: user}, nil
|
||||
}
|
||||
@@ -9,8 +9,9 @@ import (
|
||||
)
|
||||
|
||||
type Database interface {
|
||||
SettingsReporitory() domain.SettingsRepository
|
||||
UserReporitory() domain.UserRepository
|
||||
SettingsRepository() domain.SettingsRepository
|
||||
UserRepository() domain.UserRepository
|
||||
FileRepository() domain.FileRepository
|
||||
Migrate() error
|
||||
Close()
|
||||
}
|
||||
|
||||
@@ -31,18 +31,6 @@ func NewTursoDB(cfg *config.Config) (*TursoDB, error) {
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (db *TursoDB) UserReporitory() domain.UserRepository {
|
||||
return &TursoUserRepository{
|
||||
DB: db.DB,
|
||||
}
|
||||
}
|
||||
|
||||
func (db *TursoDB) SettingsReporitory() domain.SettingsRepository {
|
||||
return &TursoSettingsRepository{
|
||||
DB: db.DB,
|
||||
}
|
||||
}
|
||||
|
||||
func (db *TursoDB) Close() {
|
||||
db.DB.Close()
|
||||
}
|
||||
@@ -67,3 +55,15 @@ func (db *TursoDB) Migrate() error {
|
||||
m.Up()
|
||||
return nil
|
||||
}
|
||||
|
||||
func (db *TursoDB) UserRepository() domain.UserRepository {
|
||||
return &TursoUserRepository{DB: db.DB}
|
||||
}
|
||||
|
||||
func (db *TursoDB) SettingsRepository() domain.SettingsRepository {
|
||||
return &TursoSettingsRepository{DB: db.DB}
|
||||
}
|
||||
|
||||
func (db *TursoDB) FileRepository() domain.FileRepository {
|
||||
return &TursoFileRepository{DB: db.DB}
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
package turso
|
||||
|
||||
import (
|
||||
"io"
|
||||
"time"
|
||||
|
||||
"github.com/jmoiron/sqlx"
|
||||
"trankilou.fr/lassistanoque/backend/internal/adapter/database/dberrors"
|
||||
"trankilou.fr/lassistanoque/backend/internal/domain"
|
||||
"trankilou.fr/lassistanoque/backend/internal/utility"
|
||||
)
|
||||
|
||||
type TursoFileRepository struct {
|
||||
DB *sqlx.DB
|
||||
}
|
||||
|
||||
func (fr *TursoFileRepository) FindByID(id string) (*domain.File, error) {
|
||||
var file domain.File
|
||||
err := fr.DB.Get(&file, "select id, name, content_type, storage_path, storage_filename, date_created, date_updated, _version from files where id=$1", id)
|
||||
return &file, err
|
||||
}
|
||||
|
||||
func (fr *TursoFileRepository) Create(file *domain.File) (*domain.File, error) {
|
||||
file.ID = utility.GenID()
|
||||
file.VersionId = utility.GenID()
|
||||
file.DateCreated = time.Now()
|
||||
file.DateUpdated = time.Now()
|
||||
_, err := fr.DB.NamedExec(
|
||||
`insert into files (id, name, content_type, storage_path, storage_filename, date_created, date_updated, _version)
|
||||
values (:id, :name, :content_type, :storage_path, :storage_filename, :date_created, :date_updated, :_version)`,
|
||||
file)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return file, nil
|
||||
}
|
||||
|
||||
func (fr *TursoFileRepository) Update(file *domain.File) (*domain.File, error) {
|
||||
newVersion := utility.GenID()
|
||||
file.DateUpdated = time.Now()
|
||||
res, err := fr.DB.Exec(
|
||||
`update files
|
||||
set name=$1,
|
||||
content_type=$2,
|
||||
storage_path=$3,
|
||||
storage_filename=$4,
|
||||
date_updated=$5,
|
||||
_version=$6
|
||||
where id=$7 and _version=$8`,
|
||||
file.Name, file.ContentType, file.StoragePath, file.StorageFilename, file.DateUpdated,
|
||||
newVersion, file.ID, file.VersionId,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if count, _ := res.RowsAffected(); count == 0 {
|
||||
return nil, dberrors.ErrNoRowUpdated
|
||||
}
|
||||
|
||||
file.VersionId = newVersion
|
||||
|
||||
return file, nil
|
||||
}
|
||||
|
||||
func (fr *TursoFileRepository) Delete(id string) error {
|
||||
res, err := fr.DB.Exec("delete from files where id=$1", id)
|
||||
if count, _ := res.RowsAffected(); count == 0 {
|
||||
return dberrors.ErrNoRowUpdated
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (fr *TursoFileRepository) Upload(reader io.Reader, path string, name string, contentType string, replace bool) (*domain.File, error) {
|
||||
|
||||
bytes, err := io.ReadAll(reader)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
file := &domain.File{
|
||||
ID: utility.GenID(),
|
||||
Name: name,
|
||||
StoragePath: path,
|
||||
StorageFilename: name,
|
||||
ContentType: contentType,
|
||||
VersionId: utility.GenID(),
|
||||
DateCreated: time.Now(),
|
||||
DateUpdated: time.Now(),
|
||||
Content: bytes,
|
||||
}
|
||||
|
||||
_, err = fr.DB.NamedExec(
|
||||
`insert into files (id, name, content_type, storage_path, storage_filename, date_created, date_updated, _version, content)
|
||||
values (:id, :name, :content_type, :storage_path, :storage_filename, :date_created, :date_updated, :_version, :content)`,
|
||||
file)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return file, nil
|
||||
}
|
||||
|
||||
func (fr *TursoFileRepository) Download(id string) (*domain.File, error) {
|
||||
var file domain.File
|
||||
err := fr.DB.Get(&file, "select * from files where id=$1", id)
|
||||
return &file, err
|
||||
}
|
||||
@@ -24,72 +24,72 @@ create table settings (
|
||||
);
|
||||
|
||||
create table oidc (
|
||||
id string not null primary key,
|
||||
label string,
|
||||
domain string,
|
||||
client_id string,
|
||||
client_secret string,
|
||||
wellknown_url string,
|
||||
id text not null primary key,
|
||||
label text,
|
||||
domain text,
|
||||
client_id text,
|
||||
client_secret text,
|
||||
wellknown_url text,
|
||||
_version text
|
||||
);
|
||||
|
||||
create table users (
|
||||
id string not null primary key,
|
||||
firstname string not null default '',
|
||||
lastname string not null default '',
|
||||
password string not null default '',
|
||||
email string not null unique,
|
||||
picture string not null default '',
|
||||
id text not null primary key,
|
||||
firstname text not null default '',
|
||||
lastname text not null default '',
|
||||
password text not null default '',
|
||||
email text not null unique,
|
||||
picture text not null default '',
|
||||
enabled numeric default true,
|
||||
administrator numeric default false,
|
||||
_version text not null
|
||||
);
|
||||
|
||||
create table user_addresses (
|
||||
id string not null primary key,
|
||||
user_id string,
|
||||
type string,
|
||||
address string,
|
||||
id text not null primary key,
|
||||
user_id text,
|
||||
type text,
|
||||
address text,
|
||||
_version text
|
||||
);
|
||||
|
||||
create table channels (
|
||||
id string not null primary key,
|
||||
name string,
|
||||
type string,
|
||||
id text not null primary key,
|
||||
name text,
|
||||
type text,
|
||||
enabled numeric,
|
||||
configuration string,
|
||||
configuration text,
|
||||
_version text
|
||||
);
|
||||
|
||||
create table tools (
|
||||
id string not null primary key,
|
||||
name string,
|
||||
type string,
|
||||
id text not null primary key,
|
||||
name text,
|
||||
type text,
|
||||
enabled numeric,
|
||||
configuration string,
|
||||
configuration text,
|
||||
_version text
|
||||
);
|
||||
|
||||
create table tasks (
|
||||
id string not null primary key,
|
||||
owner_id string,
|
||||
model_id string,
|
||||
label string,
|
||||
prompt string,
|
||||
cron string,
|
||||
status string,
|
||||
id text not null primary key,
|
||||
owner_id text,
|
||||
model_id text,
|
||||
label text,
|
||||
prompt text,
|
||||
cron text,
|
||||
status text,
|
||||
next_datetime numeric,
|
||||
_version text
|
||||
);
|
||||
|
||||
create table history (
|
||||
id string not null primary key,
|
||||
task_id string,
|
||||
id text not null primary key,
|
||||
task_id text,
|
||||
start_datetimle numeric,
|
||||
end_datetime numeric,
|
||||
prompt string,
|
||||
log string,
|
||||
response string,
|
||||
prompt text,
|
||||
log text,
|
||||
response text,
|
||||
_version text
|
||||
);
|
||||
@@ -0,0 +1 @@
|
||||
drop table files;
|
||||
@@ -0,0 +1,11 @@
|
||||
create table files (
|
||||
id text not null primary key,
|
||||
name text not null default '',
|
||||
content_type text not null default '',
|
||||
storage_path text not null default '',
|
||||
storage_filename text not null default '',
|
||||
date_created numeric not null default current_timestamp,
|
||||
date_updated numeric not null default 0,
|
||||
content blob,
|
||||
_version text not null
|
||||
);
|
||||
@@ -37,21 +37,18 @@ func (ur *TursoUserRepository) ListUsers() ([]*domain.User, error) {
|
||||
|
||||
func (ur *TursoUserRepository) CreateUser(user *domain.User) (*domain.User, error) {
|
||||
|
||||
count, err := ur.CountUsers()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if count == 0 {
|
||||
user.Administrator = true
|
||||
}
|
||||
user.ID = utility.GenID()
|
||||
user.VersionId = utility.GenID()
|
||||
|
||||
ur.DB.NamedExec(
|
||||
_, err := ur.DB.NamedExec(
|
||||
`insert into users (id, email, firstname, lastname, enabled, password, administrator, _version)
|
||||
values (:id, :email, :firstname, :lastname, :enabled, :password, :administrator, :_version)`,
|
||||
user)
|
||||
return nil, nil
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return user, nil
|
||||
}
|
||||
|
||||
func (ur *TursoUserRepository) UpdateUser(user *domain.User) (*domain.User, error) {
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io"
|
||||
"net/url"
|
||||
"time"
|
||||
|
||||
"trankilou.fr/lassistanoque/backend/internal/domain"
|
||||
)
|
||||
|
||||
type DatabaseStorageProvider struct {
|
||||
repo domain.FileRepository
|
||||
}
|
||||
|
||||
func NewDatabaseStorageProvider(repo domain.FileRepository) *DatabaseStorageProvider {
|
||||
return &DatabaseStorageProvider{repo}
|
||||
}
|
||||
|
||||
func (p *DatabaseStorageProvider) EnsureBucket(
|
||||
ctx context.Context,
|
||||
bucketName string,
|
||||
) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *DatabaseStorageProvider) PutObject(
|
||||
ctx context.Context,
|
||||
reader io.Reader,
|
||||
bucketName string,
|
||||
objectName string,
|
||||
filePath string,
|
||||
contentType string,
|
||||
) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *DatabaseStorageProvider) GetObject(
|
||||
ctx context.Context,
|
||||
bucketName string,
|
||||
objectName string,
|
||||
filePath string,
|
||||
) (io.ReadCloser, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (p *DatabaseStorageProvider) DeleteObject(
|
||||
ctx context.Context,
|
||||
bucketName string,
|
||||
objectName string,
|
||||
filePath string,
|
||||
) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *DatabaseStorageProvider) ExistsObject(
|
||||
ctx context.Context,
|
||||
bucketName string,
|
||||
objectName string,
|
||||
filePath string,
|
||||
) (bool, error) {
|
||||
return false, nil
|
||||
}
|
||||
func (p *DatabaseStorageProvider) GetPresignedURL(
|
||||
ctx context.Context,
|
||||
bucketName string,
|
||||
objectName string,
|
||||
filePath string,
|
||||
Expiry time.Time,
|
||||
) (*url.URL, error) {
|
||||
parsed, _ := url.Parse("https://localhost")
|
||||
return parsed, nil
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package file
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"trankilou.fr/lassistanoque/backend/internal/adapter/file/database"
|
||||
"trankilou.fr/lassistanoque/backend/internal/config"
|
||||
"trankilou.fr/lassistanoque/backend/internal/domain"
|
||||
"trankilou.fr/lassistanoque/backend/internal/service/storage"
|
||||
)
|
||||
|
||||
func GetStorageProvider(repository domain.FileRepository) (storage.StorageProvider, error) {
|
||||
cfg := config.GetConfig()
|
||||
switch cfg.StorageType {
|
||||
case "database":
|
||||
return database.NewDatabaseStorageProvider(repository), nil
|
||||
default:
|
||||
}
|
||||
return nil, fmt.Errorf("Storage %s not implemented", cfg.StorageType)
|
||||
}
|
||||
@@ -12,6 +12,7 @@ const (
|
||||
DEFAULT_DB_TYPE = "turso"
|
||||
DEFAULT_DB_URL = "lassistanoque.db"
|
||||
DEFAULT_HTTP_PORT = 3000
|
||||
DEFAULT_STORAGE_TYPE = "database"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
@@ -19,6 +20,13 @@ type Config struct {
|
||||
DatabaseURL string
|
||||
HttpPort int
|
||||
JWTSecret string
|
||||
StorageType string // Database, S3, filesystem
|
||||
StoragePath string // filesystem
|
||||
StorageS3Bucket string // S3
|
||||
StorageS3Endpoint string // S3
|
||||
StorageS3AccessKeyID string // S3
|
||||
StorageS3AccessKeySecret string // S3
|
||||
StorageS3UseSSL string // S3
|
||||
}
|
||||
|
||||
var config *Config
|
||||
@@ -44,11 +52,17 @@ func GetConfig() *Config {
|
||||
if jwtsecret == "" {
|
||||
log.Fatal("LASSISTANOQUE_JWT_SECRET must be set")
|
||||
}
|
||||
storageType := os.Getenv("LASSISTANOQUE_STORAGE_TYPE")
|
||||
if storageType == "" {
|
||||
storageType = DEFAULT_STORAGE_TYPE
|
||||
}
|
||||
|
||||
config = &Config{
|
||||
DatabaseType: databaseType,
|
||||
DatabaseURL: databaseURL,
|
||||
HttpPort: httpPort,
|
||||
JWTSecret: jwtsecret,
|
||||
StorageType: storageType,
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package domain
|
||||
|
||||
import (
|
||||
"io"
|
||||
"time"
|
||||
)
|
||||
|
||||
type File struct {
|
||||
ID string `db:"id" json:"id"`
|
||||
Name string `db:"name" json:"name"`
|
||||
ContentType string `db:"content_type" json:"contentType"`
|
||||
StoragePath string `db:"storage_path" json:"-"`
|
||||
StorageFilename string `db:"storage_filename" json:"-"`
|
||||
Content []byte `db:"content" json:"-"`
|
||||
DateCreated time.Time `db:"date_created" json:"-"`
|
||||
DateUpdated time.Time `db:"date_updated" json:"-"`
|
||||
VersionId string `db:"_version" json:"-"`
|
||||
}
|
||||
|
||||
type FileRepository interface {
|
||||
FindByID(id string) (*File, error)
|
||||
Create(file *File) (*File, error)
|
||||
Update(file *File) (*File, error)
|
||||
Delete(id string) error
|
||||
Upload(reader io.Reader, path string, name string, contentType string, replace bool) (*File, error)
|
||||
Download(id string) (*File, error)
|
||||
}
|
||||
@@ -9,9 +9,9 @@ import (
|
||||
"github.com/labstack/echo/v5"
|
||||
"github.com/labstack/echo/v5/middleware"
|
||||
"trankilou.fr/lassistanoque/backend/internal/config"
|
||||
"trankilou.fr/lassistanoque/backend/internal/domain"
|
||||
"trankilou.fr/lassistanoque/backend/internal/http/handlers"
|
||||
"trankilou.fr/lassistanoque/backend/internal/service/auth"
|
||||
"trankilou.fr/lassistanoque/backend/internal/service/storage"
|
||||
"trankilou.fr/lassistanoque/backend/internal/service/user"
|
||||
)
|
||||
|
||||
@@ -28,12 +28,11 @@ var indexhtml []byte
|
||||
var robotstxt []byte
|
||||
|
||||
type Router struct {
|
||||
settings *domain.Settings
|
||||
echo *echo.Echo
|
||||
}
|
||||
|
||||
type Dependencies struct {
|
||||
Settings *domain.Settings
|
||||
StorageService *storage.Service
|
||||
AuthService *auth.Service
|
||||
UserService *user.Service
|
||||
TokenManager auth.TokenManager
|
||||
@@ -71,10 +70,8 @@ func NewRouter(deps Dependencies) *Router {
|
||||
api := e.Group("/api")
|
||||
_ = handlers.NewAuthGroup("/auth", api, deps.AuthService)
|
||||
_ = handlers.NewUserGroup("/user", api, deps.UserService, deps.TokenManager.TokenMiddleware)
|
||||
//_ = handlers.NewUserGroup("/user", e, deps.UserService)
|
||||
|
||||
return &Router{
|
||||
settings: deps.Settings,
|
||||
echo: e,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
||||
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-outline-style:solid;--tw-font-weight:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-sky-500:oklch(68.5% .169 237.323);--color-stone-100:oklch(97% .001 106.424);--color-stone-200:oklch(92.3% .003 48.717);--color-stone-300:oklch(86.9% .005 56.366);--color-stone-400:oklch(70.9% .01 56.259);--color-stone-600:oklch(44.4% .011 73.639);--color-stone-700:oklch(37.4% .01 67.558);--color-stone-800:oklch(26.8% .007 34.298);--color-stone-900:oklch(21.6% .006 56.043);--color-white:#fff;--spacing:.25rem;--container-3xs:16rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-bold:700;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=urlLine truncated
|
||||
@@ -0,0 +1,2 @@
|
||||
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
||||
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-outline-style:solid;--tw-font-weight:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-700:oklch(50% .134 242.749);--color-sky-950:oklch(29.3% .066 243.157);--color-stone-50:oklch(98.5% .001 106.423);--color-stone-100:oklch(97% .001 106.424);--color-stone-200:oklch(92.3% .003 48.717);--color-stone-300:oklch(86.9% .005 56.366);--color-stone-400:oklch(70.9% .01 56.259);--color-stone-600:oklch(44.4% .011 73.639);--color-stone-700:oklch(37.4% .01 67.558);--color-stone-800:oklch(26.8% .007 34.298);--color-stone-900:oklch(21.6% .006 56.043);--color-stone-950:oklch(14.7% .004 49.25);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-bold:700;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
import"./DxmhE1z1.js";import{a as e,r as t}from"./DZTG_XPZ.js";var n={get data(){return e.data},get error(){return e.error},get form(){return e.form},get params(){return e.params},get route(){return e.route},get state(){return e.state},get status(){return e.status},get url(){return e.url}};t.updated.check;var r=n;export{r as t};
|
||||
@@ -0,0 +1 @@
|
||||
import{B as e,C as t,D as n,F as r,H as i,K as a,P as o,Q as s,R as c,V as l,_ as u,g as d,h as f,k as p,m,q as h,v as g,z as _}from"./DxmhE1z1.js";import"./xihTtKlq.js";var v=class extends Map{#e=new Map;#t=l(0);#n=l(0);#r=n||-1;constructor(e){if(super(),e){for(var[t,n]of e)super.set(t,n);this.#n.v=super.size}}#i(t){return n===this.#r?l(t):e(t)}has(e){var n=this.#e,r=n.get(e);if(r===void 0)if(super.has(e))r=this.#i(0),n.set(e,r);else return t(this.#t),!1;return t(r),!0}forEach(e,t){this.#a(),super.forEach(e,t)}get(e){var n=this.#e,r=n.get(e);if(r===void 0)if(super.has(e))r=this.#i(0),n.set(e,r);else{t(this.#t);return}return t(r),super.get(e)}set(e,t){var n=this.#e,r=n.get(e),i=super.get(e),a=super.set(e,t),o=this.#t;if(r===void 0)r=this.#i(0),n.set(e,r),_(this.#n,super.size),c(o);else if(i!==t){c(r);var s=o.reactions===null?null:new Set(o.reactions);(s===null||!r.reactions?.every(e=>s.has(e)))&&c(o)}return a}delete(e){var t=this.#e,n=t.get(e),r=super.delete(e);return n!==void 0&&(t.delete(e),_(n,-1)),r&&(_(this.#n,super.size),c(this.#t)),r}clear(){if(super.size!==0){super.clear();var e=this.#e;_(this.#n,0);for(var t of e.values())_(t,-1);c(this.#t),e.clear()}}#a(){t(this.#t);var e=this.#e;if(this.#n.v!==e.size){for(var n of super.keys())if(!e.has(n)){var r=this.#i(0);e.set(n,r)}}for([,r]of this.#e)t(r)}keys(){return t(this.#t),super.keys()}values(){return this.#a(),super.values()}entries(){return this.#a(),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return t(this.#n),super.size}},y=g(`<span class="text-red-700 dark:text-red-400 text-xs"> </span>`),b=g(`<span class="text-xs"> </span>`);function x(e,n){h(n,!0);var c=u(),l=r(c),g=e=>{var t=y(),r=o(t,!0);s(t),p(e=>f(r,e),[()=>n.errors.get(n.key)]),d(e,t)},_=i(()=>n.errors.has(n.key)),v=e=>{var t=b();d(e,t)};m(l,e=>{t(_)?e(g):e(v,-1)}),d(e,c),a()}export{v as n,x as t};
|
||||
@@ -1,3 +0,0 @@
|
||||
var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n=Array.isArray,r=Array.prototype.indexOf,i=Array.prototype.includes,a=Array.from,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyDescriptors,l=Object.prototype,u=Array.prototype,d=Object.getPrototypeOf,f=Object.isExtensible,p=()=>{};function m(e){for(var t=0;t<e.length;t++)e[t]()}function h(){var e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var g=1024,_=2048,v=4096,y=8192,ee=16384,te=32768,ne=1<<25,re=65536,ie=1<<18,ae=1<<19,oe=1<<20,se=65536,ce=1<<21,le=1<<22,ue=1<<23,de=Symbol(`$state`),fe=Symbol(`legacy props`),pe=Symbol(``),me=Symbol(`attributes`),he=Symbol(`class`),ge=Symbol(`style`),_e=Symbol(`text`),ve=Symbol(`form reset`),ye=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},be=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function xe(e){throw Error(`https://svelte.dev/e/experimental_async_required`)}function Se(e){throw Error(`https://svelte.dev/e/lifecycle_outside_component`)}function Ce(){throw Error(`https://svelte.dev/e/missing_context`)}function we(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function Te(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function Ee(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function De(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function Oe(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function ke(){throw Error(`https://svelte.dev/e/fork_discarded`)}function Ae(){throw Error(`https://svelte.dev/e/fork_timing`)}function je(){throw Error(`https://svelte.dev/e/get_abort_signal_outside_reaction`)}function Me(){throw Error(`https://svelte.dev/e/hydration_failed`)}function Ne(e){throw Error(`https://svelte.dev/e/lifecycle_legacy_only`)}function Pe(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function Fe(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function Ie(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function Le(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function Re(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var ze={},b=Symbol(`uninitialized`),Be=`http://www.w3.org/1999/xhtml`;function Ve(){console.warn(`https://svelte.dev/e/derived_inert`)}function He(e){console.warn(`https://svelte.dev/e/hydratable_missing_but_expected`)}function Ue(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function We(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var x=!1;function S(e){x=e}var C;function w(e){if(e===null)throw Ue(),ze;return C=e}function Ge(){return w(L(C))}function Ke(e){if(x){if(L(C)!==null)throw Ue(),ze;C=e}}function qe(e=1){if(x){for(var t=e,n=C;t--;)n=L(n);C=n}}function Je(e=!0){for(var t=0,n=C;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else(r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=L(n);e&&n.remove(),n=i}}function Ye(e){if(!e||e.nodeType!==8)throw Ue(),ze;return e.data}function Xe(e){return e===this.v}function Ze(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Qe(e){return!Ze(e,this.v)}var T=null;function $e(e){T=e}function et(){let e={};return[()=>(rt(e)||Ce(),tt(e)),t=>nt(e,t)]}function tt(e){return ct(`getContext`).get(e)}function nt(e,t){return ct(`setContext`).set(e,t),t}function rt(e){return ct(`hasContext`).has(e)}function it(){return ct(`getAllContexts`)}function at(e,t=!1,n){T={p:T,i:!1,c:null,e:null,s:e,x:null,r:G,l:null}}function ot(e){var t=T,n=t.e;if(n!==null){t.e=null;for(var r of n)Ln(r)}return e!==void 0&&(t.x=e),t.i=!0,T=t.p,e??{}}function st(){return!0}function ct(e){return T===null&&Se(e),T.c??=new Map(lt(T)||void 0)}function lt(e){let t=e.p;for(;t!==null;){let e=t.c;if(e!==null)return e;t=t.p}return null}var ut=[];function dt(){var e=ut;ut=[],m(e)}function E(e){if(ut.length===0&&!Jt){var t=ut;queueMicrotask(()=>{t===ut&&dt()})}ut.push(e)}function ft(){for(;ut.length>0;)dt()}function pt(e){var t=G;if(t===null)return H.f|=ue,e;if(!(t.f&32768)&&!(t.f&4))throw e;D(e,t)}function D(e,t){if(!(t!==null&&t.f&16384)){for(;t!==null;){if(t.f&128){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}}var mt=~(_|v|g);function O(e,t){e.f=e.f&mt|t}function ht(e){e.f&512||e.deps===null?O(e,g):O(e,v)}function gt(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=se,gt(t.deps))}function _t(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),gt(e.deps),O(e,g)}var vt=[];function yt(e,t=p){let n=null,r=new Set;function i(t){if(Ze(e,t)&&(e=t,n)){let t=!vt.length;for(let t of r)t[1](),vt.push(t,e);if(t){for(let e=0;e<vt.length;e+=2)vt[e][0](vt[e+1]);vt.length=0}}}function a(t){i(t(e))}function o(o,s=p){let c=[o,s];return r.add(c),r.size===1&&(nLine truncated
|
||||
`).some(e=>e.startsWith(`https://svelte.dev/e/`)))throw r;return r!==ze&&console.warn(`Failed to hydrate: `,r),t.recover===!1&&Me(),wn(),On(n),S(!1),Br(e,t)}finally{S(r),w(i)}}var Hr=new Map;function Ur(e,{target:t,anchor:n,props:r={},events:i,context:o,intro:s=!0,transformError:c}){wn();var l=void 0,u=zn(()=>{var s=n??t.appendChild(F());kt(s,{pending:()=>{}},t=>{at({});var n=T;if(o&&(n.c=o),i&&(r.$$events=i),x&&$(t,null),l=e(t,r)||{},x&&(G.nodes.end=C,C===null||C.nodeType!==8||C.data!==`]`))throw Ue(),ze;ot()},c);var u=new Set,d=e=>{for(var n=0;n<e.length;n++){var r=e[n];if(!u.has(r)){u.add(r);var i=Sr(r);for(let e of[t,document]){var a=Hr.get(e);a===void 0&&(a=new Map,Hr.set(e,a));var o=a.get(r);o===void 0?(e.addEventListener(r,jr,{passive:i}),a.set(r,1)):a.set(r,o+1)}}}};return d(a(wr)),Tr.add(d),()=>{for(var e of u)for(let n of[t,document]){var r=Hr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,jr),r.delete(e),r.size===0&&Hr.delete(n)):r.set(e,i)}Tr.delete(d),s!==n&&s.parentNode?.removeChild(s)}});return Wr.set(l,u),l}var Wr=new WeakMap;function Gr(e,t){let n=Wr.get(e);return n?(Wr.delete(e),n(t)):Promise.resolve()}var Kr=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)Qn(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(Qn(r.effect),this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(B(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();er(r,t),t.append(F()),this.#n.set(e,{effect:r,fragment:t})}else B(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),Xn(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(B(n.effect),this.#n.delete(e))};ensure(e,t){var n=k,r=kn();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=F();i.append(a),this.#n.set(e,{effect:z(()=>t(a)),fragment:i})}else this.#t.set(e,z(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else x&&(this.anchor=C),this.#a(n)}};function qr(e,t,n=!1){var r;x&&(r=C,Ge());var i=new Kr(e),a=n?re:0;function o(e,t){if(x){var n=Ye(r);if(e!==parseInt(n.substring(1))){var a=Je();w(a),i.anchor=a,S(!1),i.ensure(e,t),S(!0);return}}i.ensure(e,t)}Wn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function Jr(e,t,...n){var r=new Kr(e);Wn(()=>{let e=t()??null;r.ensure(e,e&&(t=>e(t,...n)))},re)}function Yr(e){return(t,...n)=>{var r=e(...n),i;x?(i=C,Ge()):(i=I(Pr(r.render().trim())),t.before(i));let a=r.setup?.(i);$(i,i),typeof a==`function`&&Fn(a)}}function Xr(e,t,n){var r;x&&(r=C,Ge());var i=new Kr(e);Wn(()=>{var e=t()??null;if(x&&Ye(r)===`[`!=(e!==null)){var a=Je();w(a),i.anchor=a,S(!1),i.ensure(e,e&&(t=>n(t,e))),S(!0);return}i.ensure(e,e&&(t=>n(t,e)))},re)}function Zr(e,t){let n=null,r=x;var i;if(x){n=C;for(var a=I(document.head);a!==null&&(a.nodeType!==8||a.data!==e);)a=L(a);if(a===null)S(!1);else{var o=L(a);a.remove(),w(o)}}x||(i=document.head.appendChild(F()));try{Wn(()=>{var e=z(()=>t(i));e.f|=ie})}finally{r&&(S(!0),w(n))}}function Qr(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=Qr(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function $r(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=Qr(e))&&(r&&(r+=` `),r+=t);return r}function ei(e){return typeof e==`object`?$r(e):e??``}var ti=[...`
|
||||
\r\f\xA0\v`];function ni(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||ti.includes(r[o-1]))&&(s===r.length||ti.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function ri(e,t,n,r,i,a){var o=e[he];if(x||o!==n||o===void 0){var s=ni(n,r,a);(!x||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[he]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}var ii=Symbol(`is custom element`),ai=Symbol(`is html`),oi=be?`link`:`LINK`;function si(e){if(x){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;ci(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;ci(e,`checked`,null),e.checked=r}}};e[ve]=n,E(n),wt()}}function ci(e,t,n,r){var i=li(e);x&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===oi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[pe]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&di(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function li(e){return e[me]??={[ii]:e.nodeName.includes(`-`),[ai]:e.namespaceURI===Be}}var ui=new Map;function di(e){var t=e.getAttribute(`is`)||e.nodeName,n=ui.get(t);if(n)return n;ui.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var o in r=c(i),r)r[o].set&&o!==`innerHTML`&&o!==`textContent`&&o!==`innerText`&&n.push(o);i=d(i)}return n}function fi(e,t,n=t){var r=new WeakSet;Et(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=pi(e)?mi(a):a,n(a),k!==null&&r.add(k),await _r(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(x&&e.defaultValue!==e.value||Q(t)==null&&e.value)&&(n(pi(e)?mi(e.value):e.value),k!==null&&r.add(k)),Hn(()=>{var n=t();if(e===document.activeElement){var i=k;if(r.has(i))return}pi(e)&&n===mi(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function pi(e){var t=e.type;return t===`number`||t===`range`}function mi(e){return e===``?null:+e}function hi(e,t){return e===t||e?.[de]===t}function gi(e={},t,n,r){var i=T.r,a=G;return Bn(()=>{var o,s;return Hn(()=>{o=s,s=r?.()||[],Q(()=>{hi(n(...s),e)||(t(e,...s),o&&hi(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&hi(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}function _i(e,t,n,r){var i=!0,a=!!(n&8),o=!!(n&16),c=r,l=!0,u=void 0,d=()=>o&&i?(u??=Ft(r),Z(u)):(l&&(l=!1,c=o?Q(r):r),c);let f;if(a){var p=de in e||fe in e;f=s(e,t)?.set??(p&&t in e?n=>e[t]=n:void 0)}var m,h=!1;a?[m,h]=xt(()=>e[t]):m=e[t],m===void 0&&r!==void 0&&(m=d(),f&&(i&&Pe(t),f(m)));var g=i?()=>{var n=e[t];return n===void 0?d():(l=!0,n)}:()=>{var n=e[t];return n!==void 0&&(c=void 0),n===void 0?c:n};if(i&&!(n&4))return g;if(f){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||h)&&f(t?g():e),e):g()})}var v=!1,y=(n&1?Ft:zt)(()=>(v=!1,g()));a&&Z(y);var ee=G;return(function(e,t){if(arguments.length>0){let n=t?Z(y):i&&a?yn(e):e;return P(y,n),v=!0,c!==void 0&&(c=n),e}return V&&v||ee.f&16384?y.v:Z(y)})}function vi(e){return class extends yi{constructor(t){super({component:e,...t})}}}var yi=class{#e;#t;constructor(e){var t=new Map,n=(e,n)=>{var r=mn(n,!1,!1);return t.set(e,r),r};let r=new Proxy({...e.props||{},$$events:{}},{get(e,r){return Z(t.get(r)??n(r,Reflect.get(e,r)))},has(e,r){return r===fe||(Z(t.get(r)??n(r,Reflect.get(e,r))),Reflect.has(e,r))},set(e,r,i){return P(t.get(r)??n(r,i),i),Reflect.set(e,r,i)}});this.#t=(e.hydrate?Vr:Br)(e.component,{target:e.target,anchor:e.anchor,props:r,context:e.context,intro:e.intro??!1,recover:e.recover,transformError:e.transformError}),(!e?.props?.$$host||e.sync===!1)&&en(),this.#e=r.$$events;for(let e of Object.keys(this.#t))e!==`$set`&&e!==`$destroy`&&e!==`$on`&&o(this,e,{get(){return this.#t[e]},set(t){this.#t[e]=t},enumerable:!0});this.#t.$set=e=>{Object.assign(r,e)},this.#t.$destroy=()=>{Gr(this.#t)}}$set(e){this.#t.$set(e)}$on(e,t){this.#e[e]=this.#e[e]||[];let n=(...e)=>t.call(this,...e);return this.#e[e].push(n),()=>{this.#e[e]=this.#e[e].filter(e=>e!==n)}}$destroy(){this.#t.$destroy()}};function bi(e,t){if(xe(`hydratable`),x){let t=window.__svelte?.h;if(t?.has(e))return t.get(e);He(e)}return t()}var xi=t({afterUpdate:()=>Oi,beforeUpdate:()=>Di,createContext:()=>et,createEventDispatcher:()=>Ei,createRawSnippet:()=>Yr,flushSync:()=>en,fork:()=>cn,getAbortSignal:()=>Si,getAllContexts:()=>it,getContext:()=>tt,hasContext:()=>rt,hydratable:()=>bi,hydrate:()=>Vr,mount:()=>Br,onDestroy:()=>wi,onMount:()=>Ci,setContext:()=>nt,settled:()=>vr,tick:()=>_r,unmount:()=>Gr,untrack:()=>Q});function Si(){return H===null&&je(),(H.ac??=new AbortControlle
Line truncated
|
||||
@@ -1 +0,0 @@
|
||||
import"./tTEyPFub.js";
|
||||
@@ -0,0 +1 @@
|
||||
import{C as e,T as t,V as n,W as r,n as i,t as a,w as o,z as s}from"./DxmhE1z1.js";var c=class{constructor(e,t){this.status=e,this.body=typeof t==`string`?{message:t}:t||{message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},l=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},u=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function d(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function f(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function p(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function h(e,t,n,r=!1){let i=new URL(e);Object.defineProperty(i,"searchParams",{value:new Proxy(i.searchParams,{get(e,r){if(r===`get`||r===`getAll`||r===`has`)return(t,...i)=>(n(t),e[r](t,...i));t();let i=Reflect.get(e,r);return typeof i==`function`?i.bind(e):i}}),enumerable:!0,configurable:!0});let a=[`href`,`pathname`,`search`,`toString`,`toJSON`];r&&a.push(`hash`);for(let n of a)Object.defineProperty(i,n,{get(){return t(),e[n]},enumerable:!0,configurable:!0});return i}function g(){}function _(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder;function v(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var ee=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&y.delete(x(e)),ee(e,t));var y=new Map;function b(e,t){let n=x(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent);r.getAttribute(`data-b64`)!==null&&(e=v(e));let i=r.getAttribute(`data-ttl`);return i&&y.set(n,{body:e,init:t,ttl:1e3*Number(i)}),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function te(e,t,n){if(y.size>0){let t=x(e,n),r=y.get(t);if(r){if(performance.now()<r.ttl&&[`default`,`force-cache`,`only-if-cached`,void 0].includes(n?.cache))return new Response(r.body,r.init);y.delete(t)}}return window.fetch(t,n)}function x(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){let e=[];t.headers&&e.push([...new Headers(t.headers)].join(`,`)),t.body&&(typeof t.body==`string`||ArrayBuffer.isView(t.body))&&e.push(t.body),n+=`[data-hash="${_(...e)}"]`}return n}var ne=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,re=/^\/\((?:[^)]+)\)$/;function ie(e){let t=[];return{pattern:e===`/`||re.test(e)?/^\/$/:RegExp(`^${oe(e).map(e=>{let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return ce(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return ce(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=ne.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return ce(e)}).join(``)}).join(``)}/?$`),params:t}}function ae(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function oe(e){return e.slice(1).split(`/`).filter(ae)}function se(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;e<t.length;e+=1){let s=t[e],c=i[e-o];if(s.chained&&s.rest&&o&&(c=i.slice(e-o,e+1).filter(e=>e).join(`/`),o=0),c===void 0)if(s.rest)c=``;else continue;if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function ce(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}function le({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=ie(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return se(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function ue(e,t=JSON.parse){try{return t(sessionStorage[e]
Line truncated
|
||||
@@ -0,0 +1,3 @@
|
||||
var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n=Array.isArray,r=Array.prototype.indexOf,i=Array.prototype.includes,a=Array.from,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyDescriptors,l=Object.prototype,u=Array.prototype,d=Object.getPrototypeOf,f=Object.isExtensible,p=()=>{};function m(e){for(var t=0;t<e.length;t++)e[t]()}function h(){var e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var g=1024,_=2048,v=4096,y=8192,ee=16384,te=32768,ne=1<<25,re=65536,ie=1<<18,ae=1<<19,oe=1<<20,se=65536,ce=1<<21,le=1<<22,ue=1<<23,de=Symbol(`$state`),fe=Symbol(`legacy props`),pe=Symbol(``),me=Symbol(`proxy path`),he=Symbol(`attributes`),ge=Symbol(`class`),_e=Symbol(`style`),ve=Symbol(`text`),ye=Symbol(`form reset`),be=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},xe=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function Se(e){throw Error(`https://svelte.dev/e/experimental_async_required`)}function Ce(e){throw Error(`https://svelte.dev/e/lifecycle_outside_component`)}function we(){throw Error(`https://svelte.dev/e/missing_context`)}function Te(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function Ee(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function De(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function Oe(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function ke(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function Ae(){throw Error(`https://svelte.dev/e/fork_discarded`)}function je(){throw Error(`https://svelte.dev/e/fork_timing`)}function Me(){throw Error(`https://svelte.dev/e/get_abort_signal_outside_reaction`)}function Ne(){throw Error(`https://svelte.dev/e/hydration_failed`)}function Pe(e){throw Error(`https://svelte.dev/e/lifecycle_legacy_only`)}function Fe(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function Ie(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function Le(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function Re(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function ze(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var Be={},b=Symbol(`uninitialized`),Ve=`http://www.w3.org/1999/xhtml`;function He(){console.warn(`https://svelte.dev/e/derived_inert`)}function Ue(e){console.warn(`https://svelte.dev/e/hydratable_missing_but_expected`)}function We(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function Ge(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var x=!1;function S(e){x=e}var C;function w(e){if(e===null)throw We(),Be;return C=e}function Ke(){return w(I(C))}function qe(e){if(x){if(I(C)!==null)throw We(),Be;C=e}}function Je(e=1){if(x){for(var t=e,n=C;t--;)n=I(n);C=n}}function Ye(e=!0){for(var t=0,n=C;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else(r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=I(n);e&&n.remove(),n=i}}function Xe(e){if(!e||e.nodeType!==8)throw We(),Be;return e.data}function Ze(e){return e===this.v}function Qe(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function $e(e){return!Qe(e,this.v)}function et(e,t){return e.label=t,tt(e.v,t),e}function tt(e,t){return e?.[me]?.(t),e}function nt(e){return typeof e==`symbol`?`Symbol(${e.description})`:typeof e==`function`?`<function>`:typeof e==`object`&&e?`<object>`:String(e)}var T=null;function rt(e){T=e}function it(){let e={};return[()=>(st(e)||we(),at(e)),t=>ot(e,t)]}function at(e){return ft(`getContext`).get(e)}function ot(e,t){return ft(`setContext`).set(e,t),t}function st(e){return ft(`hasContext`).has(e)}function ct(){return ft(`getAllContexts`)}function lt(e,t=!1,n){T={p:T,i:!1,c:null,e:null,s:e,x:null,r:W,l:null}}function ut(e){var t=T,n=t.e;if(n!==null){t.e=null;for(var r of n)Un(r)}return e!==void 0&&(t.x=e),t.i=!0,T=t.p,e??{}}function dt(){return!0}function ft(e){return T===null&&Ce(e),T.c??=new Map(pt(T)||void 0)}function pt(e){let t=e.p;for(;t!==null;){let e=t.c;if(e!==null)return e;t=t.p}return null}var mt=[];function ht(){var e=mt;mt=[],m(e)}function E(e){if(mt.length===0&&!Qt){var t=mt;queueMicrotask(()=>{t===mt&&ht()})}mt.push(e)}function gt(){for(;mt.length>0;)ht()}function _t(e){var t=W;if(t===null)return V.f|=ue,e;if(!(t.f&32768)&&!(t.f&4))throw e;D(e,t)}function D(e,t){if(!(t!==null&&t.f&16384)){for(;t!==null;){if(t.f&128){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}}var vt=~(_|v|g);function O(e,t){e.f=e.f&vt|t}function yt(e){e.f&512||e.deps===null?O(e,g):O(e,v)}function bt(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=se,bt(t.deps))}function xt(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),bt(e.deps),O(e,g)}var St=[];function Ct(e,t=p){letLine truncated
|
||||
`).some(e=>e.startsWith(`https://svelte.dev/e/`)))throw r;return r!==Be&&console.warn(`Failed to hydrate: `,r),t.recover===!1&&Ne(),An(),Pn(n),S(!1),Gr(e,t)}finally{S(r),w(i)}}var qr=new Map;function Jr(e,{target:t,anchor:n,props:r={},events:i,context:o,intro:s=!0,transformError:c}){An();var l=void 0,u=Gn(()=>{var s=n??t.appendChild(P());Nt(s,{pending:()=>{}},t=>{lt({});var n=T;if(o&&(n.c=o),i&&(r.$$events=i),x&&$(t,null),l=e(t,r)||{},x&&(W.nodes.end=C,C===null||C.nodeType!==8||C.data!==`]`))throw We(),Be;ut()},c);var u=new Set,d=e=>{for(var n=0;n<e.length;n++){var r=e[n];if(!u.has(r)){u.add(r);var i=Dr(r);for(let e of[t,document]){var a=qr.get(e);a===void 0&&(a=new Map,qr.set(e,a));var o=a.get(r);o===void 0?(e.addEventListener(r,Ir,{passive:i}),a.set(r,1)):a.set(r,o+1)}}}};return d(a(kr)),Ar.add(d),()=>{for(var e of u)for(let n of[t,document]){var r=qr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Ir),r.delete(e),r.size===0&&qr.delete(n)):r.set(e,i)}Ar.delete(d),s!==n&&s.parentNode?.removeChild(s)}});return Yr.set(l,u),l}var Yr=new WeakMap;function Xr(e,t){let n=Yr.get(e);return n?(Yr.delete(e),n(t)):Promise.resolve()}var Zr=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)ir(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(ir(r.effect),this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(z(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();or(r,t),t.append(P()),this.#n.set(e,{effect:r,fragment:t})}else z(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),nr(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(z(n.effect),this.#n.delete(e))};ensure(e,t){var n=k,r=Fn();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=P();i.append(a),this.#n.set(e,{effect:R(()=>t(a)),fragment:i})}else this.#t.set(e,R(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else x&&(this.anchor=C),this.#a(n)}};function Qr(e,t,n=!1){var r;x&&(r=C,Ke());var i=new Zr(e),a=n?re:0;function o(e,t){if(x){var n=Xe(r);if(e!==parseInt(n.substring(1))){var a=Ye();w(a),i.anchor=a,S(!1),i.ensure(e,t),S(!0);return}}i.ensure(e,t)}Xn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function $r(e,t,...n){var r=new Zr(e);Xn(()=>{let e=t()??null;r.ensure(e,e&&(t=>e(t,...n)))},re)}function ei(e){return(t,...n)=>{var r=e(...n),i;x?(i=C,Ke()):(i=F(zr(r.render().trim())),t.before(i));let a=r.setup?.(i);$(i,i),typeof a==`function`&&Vn(a)}}function ti(e,t,n){var r;x&&(r=C,Ke());var i=new Zr(e);Xn(()=>{var e=t()??null;if(x&&Xe(r)===`[`!=(e!==null)){var a=Ye();w(a),i.anchor=a,S(!1),i.ensure(e,e&&(t=>n(t,e))),S(!0);return}i.ensure(e,e&&(t=>n(t,e)))},re)}function ni(e,t){let n=null,r=x;var i;if(x){n=C;for(var a=F(document.head);a!==null&&(a.nodeType!==8||a.data!==e);)a=I(a);if(a===null)S(!1);else{var o=I(a);a.remove(),w(o)}}x||(i=document.head.appendChild(P()));try{Xn(()=>{var e=R(()=>t(i));e.f|=ie})}finally{r&&(S(!0),w(n))}}function ri(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=ri(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function ii(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=ri(e))&&(r&&(r+=` `),r+=t);return r}function ai(e){return typeof e==`object`?ii(e):e??``}var oi=[...`
|
||||
\r\f\xA0\v`];function si(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||oi.includes(r[o-1]))&&(s===r.length||oi.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function ci(e,t,n,r,i,a){var o=e[ge];if(x||o!==n||o===void 0){var s=si(n,r,a);(!x||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[ge]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}var li=Symbol(`is custom element`),ui=Symbol(`is html`),di=xe?`link`:`LINK`;function fi(e){if(x){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;pi(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;pi(e,`checked`,null),e.checked=r}}};e[ye]=n,E(n),Ot()}}function pi(e,t,n,r){var i=mi(e);x&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===di)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[pe]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&gi(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function mi(e){return e[he]??={[li]:e.nodeName.includes(`-`),[ui]:e.namespaceURI===Ve}}var hi=new Map;function gi(e){var t=e.getAttribute(`is`)||e.nodeName,n=hi.get(t);if(n)return n;hi.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var o in r=c(i),r)r[o].set&&o!==`innerHTML`&&o!==`textContent`&&o!==`innerText`&&n.push(o);i=d(i)}return n}function _i(e,t,n=t){var r=new WeakSet;At(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=vi(e)?yi(a):a,n(a),k!==null&&r.add(k),await Sr(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(x&&e.defaultValue!==e.value||Q(t)==null&&e.value)&&(n(vi(e)?yi(e.value):e.value),k!==null&&r.add(k)),Jn(()=>{var n=t();if(e===document.activeElement){var i=k;if(r.has(i))return}vi(e)&&n===yi(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function vi(e){var t=e.type;return t===`number`||t===`range`}function yi(e){return e===``?null:+e}function bi(e,t){return e===t||e?.[de]===t}function xi(e={},t,n,r){var i=T.r,a=W;return Kn(()=>{var o,s;return Jn(()=>{o=s,s=r?.()||[],Q(()=>{bi(n(...s),e)||(t(e,...s),o&&bi(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&bi(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}function Si(e,t,n,r){var i=!0,a=!!(n&8),o=!!(n&16),c=r,l=!0,u=void 0,d=()=>o&&i?(u??=zt(r),Z(u)):(l&&(l=!1,c=o?Q(r):r),c);let f;if(a){var p=de in e||fe in e;f=s(e,t)?.set??(p&&t in e?n=>e[t]=n:void 0)}var m,h=!1;a?[m,h]=Tt(()=>e[t]):m=e[t],m===void 0&&r!==void 0&&(m=d(),f&&(i&&Fe(t),f(m)));var g=i?()=>{var n=e[t];return n===void 0?d():(l=!0,n)}:()=>{var n=e[t];return n!==void 0&&(c=void 0),n===void 0?c:n};if(i&&!(n&4))return g;if(f){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||h)&&f(t?g():e),e):g()})}var v=!1,y=(n&1?zt:Ut)(()=>(v=!1,g()));a&&Z(y);var ee=W;return(function(e,t){if(arguments.length>0){let n=t?Z(y):i&&a?wn(e):e;return N(y,n),v=!0,c!==void 0&&(c=n),e}return B&&v||ee.f&16384?y.v:Z(y)})}function Ci(e){return class extends wi{constructor(t){super({component:e,...t})}}}var wi=class{#e;#t;constructor(e){var t=new Map,n=(e,n)=>{var r=yn(n,!1,!1);return t.set(e,r),r};let r=new Proxy({...e.props||{},$$events:{}},{get(e,r){return Z(t.get(r)??n(r,Reflect.get(e,r)))},has(e,r){return r===fe||(Z(t.get(r)??n(r,Reflect.get(e,r))),Reflect.has(e,r))},set(e,r,i){return N(t.get(r)??n(r,i),i),Reflect.set(e,r,i)}});this.#t=(e.hydrate?Kr:Gr)(e.component,{target:e.target,anchor:e.anchor,props:r,context:e.context,intro:e.intro??!1,recover:e.recover,transformError:e.transformError}),(!e?.props?.$$host||e.sync===!1)&&on(),this.#e=r.$$events;for(let e of Object.keys(this.#t))e!==`$set`&&e!==`$destroy`&&e!==`$on`&&o(this,e,{get(){return this.#t[e]},set(t){this.#t[e]=t},enumerable:!0});this.#t.$set=e=>{Object.assign(r,e)},this.#t.$destroy=()=>{Xr(this.#t)}}$set(e){this.#t.$set(e)}$on(e,t){this.#e[e]=this.#e[e]||[];let n=(...e)=>t.call(this,...e);return this.#e[e].push(n),()=>{this.#e[e]=this.#e[e].filter(e=>e!==n)}}$destroy(){this.#t.$destroy()}};function Ti(e,t){if(Se(`hydratable`),x){let t=window.__svelte?.h;if(t?.has(e))return t.get(e);Ue(e)}return t()}var Ei=t({afterUpdate:()=>Ni,beforeUpdate:()=>Mi,createContext:()=>it,createEventDispatcher:()=>ji,createRawSnippet:()=>ei,flushSync:()=>on,fork:()=>pn,getAbortSignal:()=>Di,getAllContexts:()=>ct,getContext:()=>at,hasContext:()=>st,hydratable:()=>Ti,hydrate:()=>Kr,mount:()=>Gr,onDestroy:()=>ki,onMount:()=>Oi,setContext:()=>ot,settled:()=>Cr,tick:()=>Sr,unmount:()=>Xr,untrack:()=>Q});function Di(){return V===null&&Me(),(V.ac??=new AbortControlle
Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
import{n as e}from"./puscbPt7.js";var t={register:t=>e.post(`/auth/register`,t),status:()=>e.get(`/auth/status`),login:t=>e.post(`/auth/login`,t)};export{t};
|
||||
@@ -1 +0,0 @@
|
||||
var e=`data:image/png;base64,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`;export{e as t};
|
||||
@@ -1 +0,0 @@
|
||||
import{P as e}from"./BXe04aPf.js";var t=e({user:null,accessToken:null,status:`loading`}),n=()=>{t.status=`unauthenticated`};export{n,t};
|
||||
@@ -0,0 +1 @@
|
||||
import{L as e}from"./DxmhE1z1.js";import{t}from"./DZTG_XPZ.js";var n=e({user:null,status:`loading`}),r=()=>{localStorage.removeItem(`accessToken`),n.status=`unauthenticated`},i=()=>localStorage.getItem(`accessToken`),a=e=>{localStorage.setItem(`accessToken`,e)},o=`/api`,s=class extends Error{status;body;constructor(e,t){super(`API Error ${e}`),this.status=e,this.body=t}};async function c(e,n={}){let{auth:a=!0,headers:c,...u}=n,d={"Content-Type":`application/json`,...c},f=new Headers(d);if(a){let e=i();e&&f.append(`Authorization`,`Bearer ${e}`)}let p=await fetch(`${o}${e}`,{...u,headers:f});if(p.status===401&&(r(),t(`/login`)),!p.ok)throw new s(p.status,await l(p));if(p.status!==204)return p.json()}async function l(e){try{return await e.json()}catch{return null}}var u={get:(e,t)=>c(e,{...t,method:`GET`}),post:(e,t,n)=>c(e,{...n,method:`POST`,body:JSON.stringify(t)}),put:(e,t,n)=>c(e,{...n,method:`PUT`,body:JSON.stringify(t)}),delete:(e,t)=>c(e,{...t,method:`DELETE`})},d=`data:image/png;base64,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`;export{a,r as i,u as n,n as r,d as t};
|
||||
@@ -1 +0,0 @@
|
||||
import{C as e,F as t,I as n,T as r,n as i,t as a,w as o,z as s}from"./BXe04aPf.js";var c=class{constructor(e,t){this.status=e,this.body=typeof t==`string`?{message:t}:t||{message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},l=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},u=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function d(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function f(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function p(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function h(){}function g(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder;function _(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var v=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&y.delete(x(e)),v(e,t));var y=new Map;function ee(e,t){let n=x(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent);r.getAttribute(`data-b64`)!==null&&(e=_(e));let i=r.getAttribute(`data-ttl`);return i&&y.set(n,{body:e,init:t,ttl:1e3*Number(i)}),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function b(e,t,n){if(y.size>0){let t=x(e,n),r=y.get(t);if(r){if(performance.now()<r.ttl&&[`default`,`force-cache`,`only-if-cached`,void 0].includes(n?.cache))return new Response(r.body,r.init);y.delete(t)}}return window.fetch(t,n)}function x(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){let e=[];t.headers&&e.push([...new Headers(t.headers)].join(`,`)),t.body&&(typeof t.body==`string`||ArrayBuffer.isView(t.body))&&e.push(t.body),n+=`[data-hash="${g(...e)}"]`}return n}var te=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,ne=/^\/\((?:[^)]+)\)$/;function re(e){let t=[];return{pattern:e===`/`||ne.test(e)?/^\/$/:RegExp(`^${ae(e).map(e=>{let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return se(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return se(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=te.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return se(e)}).join(``)}).join(``)}/?$`),params:t}}function ie(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function ae(e){return e.slice(1).split(`/`).filter(ie)}function oe(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;e<t.length;e+=1){let s=t[e],c=i[e-o];if(s.chained&&s.rest&&o&&(c=i.slice(e-o,e+1).filter(e=>e).join(`/`),o=0),c===void 0)if(s.rest)c=``;else continue;if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function se(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}function ce({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=re(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return oe(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function le(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function ue(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var S=globalThis.__sveltekit_1tkqncq?.base??``,de=globalThis.__sveltekit_1tkqncq?.assets??S??``,fe=`1785917155183`,pe=`sveltekit:snapshot`,me=`sveltekit:scroll`,he=`sveltekit:states`,C=`sveltekit:history`,w=`sveltekit:navigation`,T={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ge=location.origin;function _e(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.
Line truncated
|
||||
@@ -1,2 +0,0 @@
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.DUhcgpvL.js","../chunks/BXe04aPf.js","../chunks/xihTtKlq.js","../assets/0.CHStj0oN.css","../nodes/1.Dh_qEDnK.js","../chunks/tTEyPFub.js","../nodes/2.C55SYr5i.js","../chunks/kaCwo2dy.js","../chunks/Bthvo3p_.js","../nodes/3.BZSqsgG4.js","../chunks/bT040zHf.js","../nodes/4.5uyrhTtI.js","../nodes/5.z-y4HE0j.js"])))=>i.map(i=>d[i]);
|
||||
import{C as e,D as t,F as n,G as r,H as i,I as a,L as o,M as s,N as c,O as l,T as u,V as d,_ as f,a as p,f as m,g as h,h as g,i as _,j as v,k as y,m as b,n as x,r as S,v as C,y as w}from"../chunks/BXe04aPf.js";import"../chunks/xihTtKlq.js";var T=`modulepreload`,E=function(e,t){return new URL(e,t).href},D={},O=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=E(t,n),t=s(t),t in D)return;D[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:T,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},k={},A=C(`<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>`),j=C(`<!> <!>`,1);function M(S,C){i(C,!0);let T=_(C,`components`,23,()=>[]),E=_(C,`data_0`,3,null),D=_(C,`data_1`,3,null),O=_(C,`data_2`,3,null);y(()=>C.stores.page.set(C.page)),l(()=>{C.stores,C.page,C.constructors,T(),C.form,E(),D(),O(),C.stores.page.notify()});let k=a(!1),M=a(!1),N=a(null);x(()=>{let t=C.stores.page.subscribe(()=>{e(k)&&(n(M,!0),u().then(()=>{n(N,document.title||`untitled page`,!0)}))});return n(k,!0),t});let P=o(()=>C.constructors[2]);var F=j(),I=s(F),L=t=>{let n=o(()=>C.constructors[0]);var r=f(),i=s(r);m(i,()=>e(n),(t,n)=>{p(n(t,{get data(){return E()},get form(){return C.form},get params(){return C.page.params},children:(t,n)=>{var r=f(),i=s(r),a=t=>{let n=o(()=>C.constructors[1]);var r=f(),i=s(r);m(i,()=>e(n),(t,n)=>{p(n(t,{get data(){return D()},get form(){return C.form},get params(){return C.page.params},children:(t,n)=>{var r=f(),i=s(r);m(i,()=>e(P),(e,t)=>{p(t(e,{get data(){return O()},get form(){return C.form},get params(){return C.page.params}}),e=>T()[2]=e,()=>T()?.[2])}),h(t,r)},$$slots:{default:!0}}),e=>T()[1]=e,()=>T()?.[1])}),h(t,r)},c=t=>{let n=o(()=>C.constructors[1]);var r=f(),i=s(r);m(i,()=>e(n),(e,t)=>{p(t(e,{get data(){return D()},get form(){return C.form},get params(){return C.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),h(t,r)};b(i,e=>{C.constructors[2]?e(a):e(c,-1)}),h(t,r)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),h(t,r)},R=t=>{let n=o(()=>C.constructors[0]);var r=f(),i=s(r);m(i,()=>e(n),(e,t)=>{p(t(e,{get data(){return E()},get form(){return C.form},get params(){return C.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),h(t,r)};b(I,e=>{C.constructors[1]?e(L):e(R,-1)});var z=c(I,2),B=n=>{var i=A(),a=v(i),o=n=>{var r=w();t(()=>g(r,e(N))),h(n,r)};b(a,t=>{e(M)&&t(o)}),r(i),h(n,i)};b(z,t=>{e(k)&&t(B)}),h(S,F),d()}var N=S(M),P=[()=>O(()=>import(`../nodes/0.DUhcgpvL.js`),__vite__mapDeps([0,1,2,3]),import.meta.url),()=>O(()=>import(`../nodes/1.Dh_qEDnK.js`),__vite__mapDeps([4,1,5,2]),import.meta.url),()=>O(()=>import(`../nodes/2.C55SYr5i.js`),__vite__mapDeps([6,1,5,2,7,8]),import.meta.url),()=>O(()=>import(`../nodes/3.BZSqsgG4.js`),__vite__mapDeps([9,1,2,7,10]),import.meta.url),()=>O(()=>import(`../nodes/4.5uyrhTtI.js`),__vite__mapDeps([11,1,5,2,7,8,10]),import.meta.url),()=>O(()=>import(`../nodes/5.z-y4HE0j.js`),__vite__mapDeps([12,1,5,2,7,8,10]),import.meta.url)],F=[],I={"/(authenticated)":[3,[2]],"/(public)/login":[4],"/(public)/register":[5]},L={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},R=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.decode])),z=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.encode])),B=!1,V=(e,t)=>R[e](t),H=()=>O(()=>import(`../chunks/Bjy-W4x2.js`).then(e=>e.default),[],import.meta.url);export{V as decode,R as decoders,I as dictionary,z as encoders,H as get_error_template,B as hash,L as hooks,k as matchers,P as nodes,N as root,F as server_loads};
|
||||
@@ -0,0 +1,2 @@
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.Bz_yxCPk.js","../chunks/DxmhE1z1.js","../chunks/xihTtKlq.js","../assets/0.tR7PeoVK.css","../nodes/1.BXecr-g5.js","../chunks/BJ9updZG.js","../chunks/DZTG_XPZ.js","../nodes/2.Du7hfnuf.js","../chunks/puscbPt7.js","../nodes/3.BTi5lIWZ.js","../nodes/4.CGofJn_s.js","../nodes/5.DeDtZvF3.js","../nodes/6.Pd88j_py.js","../chunks/BT9KdPme.js","../nodes/7.Dq6C-eoP.js","../nodes/8.BW4HeEmf.js","../nodes/9.BK5CBBXk.js","../nodes/10.3_h0i6QI.js","../nodes/11.Q5ro3K8Z.js","../nodes/12.CqhEZfs2.js","../nodes/13.CyYsvdDt.js","../nodes/14.DZ-KMWs7.js","../nodes/15.CzF_DBRn.js","../nodes/16.DRUykhSC.js","../nodes/17.KofPYOuZ.js","../chunks/Nqp1gr6g.js","../nodes/18.3mUWXX_j.js"])))=>i.map(i=>d[i]);
|
||||
import{A as e,C as t,F as n,H as r,I as i,K as a,P as o,Q as s,T as c,V as l,_ as u,a as d,f,g as p,h as m,i as h,j as g,k as _,m as v,n as y,q as b,r as x,v as S,y as C,z as w}from"../chunks/DxmhE1z1.js";import"../chunks/xihTtKlq.js";var T=`modulepreload`,E=function(e,t){return new URL(e,t).href},D={},O=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=E(t,n),t=s(t),t in D)return;D[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:T,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},k={},A=S(`<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>`),j=S(`<!> <!>`,1);function M(x,S){b(S,!0);let T=h(S,`components`,23,()=>[]),E=h(S,`data_0`,3,null),D=h(S,`data_1`,3,null),O=h(S,`data_2`,3,null);g(()=>S.stores.page.set(S.page)),e(()=>{S.stores,S.page,S.constructors,T(),S.form,E(),D(),O(),S.stores.page.notify()});let k=l(!1),M=l(!1),N=l(null);y(()=>{let e=S.stores.page.subscribe(()=>{t(k)&&(w(M,!0),c().then(()=>{w(N,document.title||`untitled page`,!0)}))});return w(k,!0),e});let P=r(()=>S.constructors[2]);var F=j(),I=n(F),L=e=>{let i=r(()=>S.constructors[0]);var a=u(),o=n(a);f(o,()=>t(i),(e,i)=>{d(i(e,{get data(){return E()},get form(){return S.form},get params(){return S.page.params},children:(e,i)=>{var a=u(),o=n(a),s=e=>{let i=r(()=>S.constructors[1]);var a=u(),o=n(a);f(o,()=>t(i),(e,r)=>{d(r(e,{get data(){return D()},get form(){return S.form},get params(){return S.page.params},children:(e,r)=>{var i=u(),a=n(i);f(a,()=>t(P),(e,t)=>{d(t(e,{get data(){return O()},get form(){return S.form},get params(){return S.page.params}}),e=>T()[2]=e,()=>T()?.[2])}),p(e,i)},$$slots:{default:!0}}),e=>T()[1]=e,()=>T()?.[1])}),p(e,a)},c=e=>{let i=r(()=>S.constructors[1]);var a=u(),o=n(a);f(o,()=>t(i),(e,t)=>{d(t(e,{get data(){return D()},get form(){return S.form},get params(){return S.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),p(e,a)};v(o,e=>{S.constructors[2]?e(s):e(c,-1)}),p(e,a)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),p(e,a)},R=e=>{let i=r(()=>S.constructors[0]);var a=u(),o=n(a);f(o,()=>t(i),(e,t)=>{d(t(e,{get data(){return E()},get form(){return S.form},get params(){return S.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),p(e,a)};v(I,e=>{S.constructors[1]?e(L):e(R,-1)});var z=i(I,2),B=e=>{var n=A(),r=o(n),i=e=>{var n=C();_(()=>m(n,t(N))),p(e,n)};v(r,e=>{t(M)&&e(i)}),s(n),p(e,n)};v(z,e=>{t(k)&&e(B)}),p(x,F),a()}var N=x(M),P=[()=>O(()=>import(`../nodes/0.Bz_yxCPk.js`),__vite__mapDeps([0,1,2,3]),import.meta.url),()=>O(()=>import(`../nodes/1.BXecr-g5.js`),__vite__mapDeps([4,1,2,5,6]),import.meta.url),()=>O(()=>import(`../nodes/2.Du7hfnuf.js`),__vite__mapDeps([7,1,6,2,5,8]),import.meta.url),()=>O(()=>import(`../nodes/3.BTi5lIWZ.js`),__vite__mapDeps([9,1,2]),import.meta.url),()=>O(()=>import(`../nodes/4.CGofJn_s.js`),__vite__mapDeps([10,1,2]),import.meta.url),()=>O(()=>import(`../nodes/5.DeDtZvF3.js`),__vite__mapDeps([11,1,2]),import.meta.url),()=>O(()=>import(`../nodes/6.Pd88j_py.js`),__vite__mapDeps([12,1,2,13]),import.meta.url),()=>O(()=>import(`../nodes/7.Dq6C-eoP.js`),__vite__mapDeps([14,1,2]),import.meta.url),()=>O(()=>import(`../nodes/8.BW4HeEmf.js`),__vite__mapDeps([15,1,2]),import.meta.url),()=>O(()=>import(`../nodes/9.BK5CBBXk.js`),__vite__mapDeps([16,1,2]),import.meta.url),()=>O(()=>import(`../nodes/10.3_h0i6QI.js`),__vite__mapDeps([17,1,2]),import.meta.url),()=>O(()=>import(`../nodes/11.Q5ro3K8Z.js`),__vite__mapDeps([18,1,2]),import.meta.url),()=>O(()=>import(`../nodes/12.CqhEZfs2.js`),__vite__mapDeps([19,1,2]),import.meta.url),()=>O(()=>import(`../nodes/13.CyYsvdDt.js`),__vite__mapDeps([20,1,2]),import.meta.url),()=>O(()=>import(`../nodes/14.DZ-KMWs7.js`),__vite__mapDeps([21,1,2]),import.meta.url),()=>O(()=>import(`../nodes/15.CzF_DBRn.js`),__vite__mapDeps([22,1,2]),import.meta.url),()=>O(()=>import(`../nodes/16.DRUykhSC.js`),__vite__mapDeps([23,1,2]),import.meta.url),()=>O(()=>import(`../nodes/17.KofPYOuZ.js`)Line truncated
|
||||
@@ -1 +0,0 @@
|
||||
import{n as e,s as t}from"../chunks/tTEyPFub.js";export{t as load_css,e as start};
|
||||
@@ -0,0 +1 @@
|
||||
import{n as e,s as t}from"../chunks/DZTG_XPZ.js";export{t as load_css,e as start};
|
||||
@@ -0,0 +1 @@
|
||||
import{$ as e,F as t,M as n,O as r,Z as i,_ as a,c as o,d as s,g as c,k as l,p as u,v as d}from"../chunks/DxmhE1z1.js";import"../chunks/xihTtKlq.js";var f=e({prerender:()=>!1,ssr:()=>!1}),p=`data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iMTNtbSIKICAgaGVpZ2h0PSIxM21tIgogICB2aWV3Qm94PSIwIDAgMTMgMTMiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzEiCiAgIGlua3NjYXBlOnZlcnNpb249IjEuNC40IChkY2FmM2U3ZDllLCAyMDI2LTA1LTA1KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0iZmF2aWNvbi5zdmciCiAgIGlua3NjYXBlOmV4cG9ydC1maWxlbmFtZT0iLi4vYmFja2VuZC93ZWIvc3JjL2xpYi9hc3NldHMvbG9nby10eHQucG5nIgogICBpbmtzY2FwZTpleHBvcnQteGRwaT0iOTYiCiAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI5NiIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzEiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlY2hlY2tlcmJvYXJkPSIwIgogICAgIGlua3NjYXBlOmRlc2tjb2xvcj0iI2QxZDFkMSIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iCiAgICAgaW5rc2NhcGU6em9vbT0iMS40NDMxODE4IgogICAgIGlua3NjYXBlOmN4PSIyODcuOTA1NTIiCiAgICAgaW5rc2NhcGU6Y3k9IjIxNC44MDMxNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTAxMSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIgLz4KICA8ZGVmcwogICAgIGlkPSJkZWZzMSIgLz4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJDYWxxdWUgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiPgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjE0LjExMTFweDtmb250LWZhbWlseTpwaXhlbGFydDstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOnBpeGVsYXJ0O3dyaXRpbmctbW9kZTpsci10YjtkaXJlY3Rpb246bHRyO2ZpbGw6IzM3YWJjODtzdHJva2Utd2lkdGg6MC4yNjQ1ODMiCiAgICAgICB4PSIyLjc0OTk5OTUiCiAgICAgICB5PSIxMS41NDk5OTciCiAgICAgICBpZD0idGV4dDEiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW4xIgogICAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtmb250LXNpemU6MTQuMTExMXB4O2ZvbnQtZmFtaWx5OidHb2h1Rm9udCAxMSBOZXJkIEZvbnQnOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246J0dvaHVGb250IDExIE5lcmQgRm9udCc7ZmlsbDojMGVhNWU5O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjI2NDU4MyIKICAgICAgICAgeD0iMi43NDk5OTk1IgogICAgICAgICB5PSIxMS41NDk5OTciPmw8L3RzcGFuPjwvdGV4dD4KICA8L2c+Cjwvc3ZnPgo=`,m=d(`<link rel="icon"/> <link rel="stylesheet" href="/assets/fontello/css/fontello.css"/>`,1);function h(e,d){var f=a();s(`12qhfyh`,e=>{var a=m(),s=t(a);i(2),l(()=>o(s,`href`,p)),r(()=>{n.title=`Lasssistanoque`}),c(e,a)});var h=t(f);u(h,()=>d.children),c(e,f)}export{h as component,f as universal};
|
||||
@@ -1 +0,0 @@
|
||||
import{D as e,K as t,M as n,W as r,_ as i,c as a,d as o,g as s,p as c,v as l}from"../chunks/BXe04aPf.js";import"../chunks/xihTtKlq.js";var u=t({prerender:()=>!1,ssr:()=>!1}),d=`data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!--%20Created%20with%20Inkscape%20(http://www.inkscape.org/)%20--%3e%3csvg%20width='80mm'%20height='80mm'%20viewBox='0%200%2080%2080'%20version='1.1'%20id='svg1'%20inkscape:version='1.4.4%20(dcaf3e7d9e,%202026-05-05)'%20sodipodi:docname='dessin.svg'%20xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape'%20xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:svg='http://www.w3.org/2000/svg'%3e%3csodipodi:namedview%20id='namedview1'%20pagecolor='%23ffffff'%20bordercolor='%23000000'%20borderopacity='0.25'%20inkscape:showpageshadow='2'%20inkscape:pageopacity='0.0'%20inkscape:pagecheckerboard='0'%20inkscape:deskcolor='%23d1d1d1'%20inkscape:document-units='mm'%20inkscape:zoom='0.5'%20inkscape:cx='397'%20inkscape:cy='561'%20inkscape:window-width='2560'%20inkscape:window-height='1011'%20inkscape:window-x='0'%20inkscape:window-y='0'%20inkscape:window-maximized='1'%20inkscape:current-layer='layer1'%20inkscape:export-bgcolor='%23ffffff00'%20/%3e%3cdefs%20id='defs1'%20/%3e%3cg%20inkscape:label='Calque%201'%20inkscape:groupmode='layer'%20id='layer1'%3e%3ccircle%20style='fill:%23164450;stroke-width:0.265;stroke-dasharray:none'%20id='path1'%20cy='45.644962'%20cx='23.643471'%20r='20'%20/%3e%3ccircle%20style='fill:%23216778;stroke-width:0.264583'%20id='path1-3-1-6'%20cx='34.202797'%20cy='41.673168'%20r='17.5'%20/%3e%3ccircle%20style='fill:%232c89a0;stroke-width:0.264583'%20id='path1-3'%20cx='45.844456'%20cy='38.072063'%20r='15'%20/%3e%3ccircle%20style='fill:%2337abc8;stroke-width:0.264583'%20id='path1-3-1-3'%20cx='56.873432'%20cy='34.070667'%20r='12.5'%20/%3e%3ccircle%20style='fill:%235fbcd3;stroke-width:0.264583'%20id='path1-3-1'%20cx='65.639908'%20cy='30.484972'%20r='10'%20/%3e%3c/g%3e%3c/svg%3e`,f=l(`<link rel="icon"/> <link rel="stylesheet" href="/assets/fontello/css/fontello.css"/>`,1);function p(t,l){var u=i();o(`12qhfyh`,t=>{var i=f(),o=n(i);r(2),e(()=>a(o,`href`,d)),s(t,i)});var p=n(u);c(p,()=>l.children),s(t,u)}export{p as component,u as universal};
|
||||
@@ -0,0 +1 @@
|
||||
import{F as e,I as t,K as n,P as r,Q as i,g as a,h as o,k as s,q as c,v as l}from"../chunks/DxmhE1z1.js";import"../chunks/xihTtKlq.js";import{t as u}from"../chunks/BJ9updZG.js";var d=l(`<h1> </h1> <p> </p>`,1);function f(l,f){c(f,!0);var p=d(),m=e(p),h=r(m,!0);i(m);var g=t(m,2),_=r(g,!0);i(g),s(()=>{o(h,u.status),o(_,u.error?.message)}),a(l,p),n()}export{f as component};
|
||||
@@ -1 +0,0 @@
|
||||
import{D as e,G as t,H as n,M as r,N as i,V as a,g as o,h as s,j as c,v as l}from"../chunks/BXe04aPf.js";import{a as u,r as d}from"../chunks/tTEyPFub.js";import"../chunks/xihTtKlq.js";var f={get data(){return u.data},get error(){return u.error},get form(){return u.form},get params(){return u.params},get route(){return u.route},get state(){return u.state},get status(){return u.status},get url(){return u.url}};d.updated.check;var p=f,m=l(`<h1> </h1> <p> </p>`,1);function h(l,u){n(u,!0);var d=m(),f=r(d),h=c(f,!0);t(f);var g=i(f,2),_=c(g,!0);t(g),e(()=>{s(h,p.status),s(_,p.error?.message)}),o(l,d),a()}export{h as component};
|
||||
@@ -0,0 +1 @@
|
||||
import{$ as e,g as t,v as n}from"../chunks/DxmhE1z1.js";import"../chunks/xihTtKlq.js";var r=e({load:()=>i});function i(){return{title:`Paramétrage : Base de connaissance`,back:`/settings`}}var a=n(`<div>Modèles</div>`);function o(e){var n=a();t(e,n)}export{o as component,r as universal};
|
||||
@@ -0,0 +1 @@
|
||||
import{$ as e,g as t,v as n}from"../chunks/DxmhE1z1.js";import"../chunks/xihTtKlq.js";var r=e({load:()=>i});function i(){return{title:`Paramétrage : Mémoire`,back:`/settings`}}var a=n(`<div>Modèles</div>`);function o(e){var n=a();t(e,n)}export{o as component,r as universal};
|
||||
@@ -0,0 +1 @@
|
||||
import{$ as e,g as t,v as n}from"../chunks/DxmhE1z1.js";import"../chunks/xihTtKlq.js";var r=e({load:()=>i});function i(){return{title:`Paramétrage : Modèles`,back:`/settings`}}var a=n(`<div>Modèles</div>`);function o(e){var n=a();t(e,n)}export{o as component,r as universal};
|
||||
@@ -0,0 +1 @@
|
||||
import{$ as e,g as t,v as n}from"../chunks/DxmhE1z1.js";import"../chunks/xihTtKlq.js";var r=e({load:()=>i});function i(){return{title:`Paramétrage : Skills`,back:`/settings`}}var a=n(`<div>Modèles</div>`);function o(e){var n=a();t(e,n)}export{o as component,r as universal};
|
||||
@@ -0,0 +1 @@
|
||||
import{$ as e,g as t,v as n}from"../chunks/DxmhE1z1.js";import"../chunks/xihTtKlq.js";var r=e({load:()=>i});function i(){return{title:`Paramétrage : Outils`,back:`/settings`}}var a=n(`<div>Modèles</div>`);function o(e){var n=a();t(e,n)}export{o as component,r as universal};
|
||||
@@ -0,0 +1 @@
|
||||
import{$ as e,g as t,v as n}from"../chunks/DxmhE1z1.js";import"../chunks/xihTtKlq.js";var r=e({load:()=>i});function i(){return{title:`Paramétrage : Utilisateurs`,back:`/settings`}}var a=n(`<div>Modèles</div>`);function o(e){var n=a();t(e,n)}export{o as component,r as universal};
|
||||
@@ -0,0 +1 @@
|
||||
import{$ as e,g as t,v as n}from"../chunks/DxmhE1z1.js";import"../chunks/xihTtKlq.js";var r=e({load:()=>i});function i(){return{title:`Tâches`}}var a=n(`<div>Tâches</div>`);function o(e){var n=a();t(e,n)}export{o as component,r as universal};
|
||||
@@ -0,0 +1 @@
|
||||
import{F as e,I as t,K as n,L as r,P as i,Q as a,S as o,U as s,Z as c,b as l,c as u,g as d,k as f,m as p,o as m,q as h,s as g,v as _,x as v}from"../chunks/DxmhE1z1.js";import{t as y}from"../chunks/DZTG_XPZ.js";import"../chunks/xihTtKlq.js";import{a as b,r as x,t as S}from"../chunks/puscbPt7.js";import{t as C}from"../chunks/Nqp1gr6g.js";var w=_(`<form><div class="flex"><label for="email" class="block mb-2 flex-1">Email</label> <a href="/recover-password" class="text-xs">Mot de passe oublié ?</a></div> <div class="flex flex-row"><input type="text" class="textinput mr-1"/> <button class="bt" title="page suivante"><i class="icon-right-big"></i></button></div></form> <div class="my-4 text-xs"><a href="/register">Pas encore de compte ? Incrivez-vous.</a></div>`,1),T=_(`<form><div class="flex"><label for="email" class="block mb-2 flex-1">Mot de passe</label></div> <div class="flex flex-row"><input type="password" class="textinput mr-1"/> <button class="bt">Entrer</button></div> <a href="/login" class="text-xs">← Retour</a></form>`),E=_(`<div class="h-full w-full flex items-center public"><div class="m-auto w-96 max-w-full p-4"><img class="h-10 mb-4" alt="logo"/> <h1>Identifiez-vous ...</h1> <!> <hr class="my-4"/> <div class="grid grid-cols-[repeat(auto-fit,minmax(150px,1fr))] gap-4"><button class="bt p-5 text-center" title="Connexion avec Google"><i class="icon-google"></i></button> <button class="bt p-5 text-center" title="Connexion avec Facebook"><i class="icon-facebook"></i></button> <button class="bt p-5 text-center" title="Connexion avec Github"><i class="icon-github"></i></button> <button class="bt p-5 text-center" title="Connexion avec Apple"><i class="icon-apple"></i></button></div></div></div>`);function D(l,_){h(_,!0);let D=r({email:``,password:``,validemail:!1}),O=()=>{D.validemail=!0},k=e=>{e.preventDefault(),C.login(D).then(e=>{x.user=e.user,b(e.accessToken),y(`/`)}).catch(e=>{console.log(e)})};var A=E(),j=i(A),M=i(j),N=t(M,4),P=n=>{var r=w(),l=e(r),u=t(i(l),2),f=i(u);g(f),s(f,!0),c(2),a(u),a(l),c(2),o(`submit`,l,O),m(f,()=>D.email,e=>D.email=e),d(n,r)},F=e=>{var n=T(),r=t(i(n),2),l=i(r);g(l),s(l,!0),c(2),a(r);var u=t(r,2);a(n),o(`submit`,n,k),m(l,()=>D.password,e=>D.password=e),v(`click`,u,()=>{D.validemail=!1}),d(e,n)};p(N,e=>{D.validemail?e(F,-1):e(P)}),c(4),a(j),a(A),f(()=>u(M,`src`,S)),d(l,A),n()}l([`click`]);export{D as component};
|
||||
@@ -0,0 +1 @@
|
||||
import{I as e,K as t,L as n,P as r,Q as i,S as a,U as o,b as s,c,g as l,k as u,o as d,q as f,s as p,v as m,x as h}from"../chunks/DxmhE1z1.js";import{t as g}from"../chunks/DZTG_XPZ.js";import"../chunks/xihTtKlq.js";import{t as _}from"../chunks/puscbPt7.js";import{n as v,t as y}from"../chunks/BT9KdPme.js";import{t as b}from"../chunks/Nqp1gr6g.js";var x=/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;function S(e){return x.test(e)}var C=m(`<div class="h-full w-full flex items-center public"><div class="m-auto w-96 max-w-full p-4"><img class="h-10 mb-4" alt="logo"/> <h1>Inscription</h1> <form><label for="email" class="block my-1 flex-1">Email</label> <input id="email" type="text" class="textinput"/> <!> <label for="firstname" class="block my-1 flex-1">Prénom</label> <input id="firstname" type="text" class="textinput"/> <!> <label for="lastname" class="block my-1 flex-1">Nom</label> <input id="lastname" type="text" class="textinput"/> <!> <label for="password" class="block my-1 flex-1">Mot de passe</label> <input id="password" type="password" class="textinput"/> <!> <label for="verifpassword" class="block my-1 flex-1">Vérification du mot de passe</label> <input id="verifpassword" type="password" class="textinput"/> <!> <button class="bt my-2 w-full ">Enregistrer</button> <!></form></div></div>`);function w(s,m){f(m,!0);let x=new v,w=n({email:``,firstname:``,lastname:``,password:``,verifPassword:``}),T=e=>{if(e.preventDefault(),x.clear(),S(w.email)||x.set(`email`,`Adresse email invalide !`),w.password!==w.verifPassword&&x.set(`verifPassword`,`Les mots de pass ne correspondent pas.`),x.size==0){let e={method:`password`,email:w.email,firstname:w.firstname,lastname:w.lastname,password:w.password};b.register(e).then(()=>{g(`/`)}).catch(e=>{x.set(`submit`,`Erreur: `+e)})}};var E=C(),D=r(E),O=r(D),k=e(O,4),A=e(r(k),2);p(A),o(A,!0);var j=e(A,2);y(j,{key:`email`,get errors(){return x}});var M=e(j,4);p(M);var N=e(M,2);y(N,{key:`firstname`,get errors(){return x}});var P=e(N,4);p(P);var F=e(P,2);y(F,{key:`lastname`,get errors(){return x}});var I=e(F,4);p(I);var L=e(I,2);y(L,{key:`password`,get errors(){return x}});var R=e(L,4);p(R);var z=e(R,2);y(z,{key:`verifPassword`,get errors(){return x}});var B=e(z,4);y(B,{key:`submit`,get errors(){return x}}),i(k),i(D),i(E),u(()=>c(O,`src`,_)),a(`submit`,k,T),h(`change`,k,()=>{x.clear()}),d(A,()=>w.email,e=>w.email=e),d(M,()=>w.firstname,e=>w.firstname=e),d(P,()=>w.lastname,e=>w.lastname=e),d(I,()=>w.password,e=>w.password=e),d(R,()=>w.verifPassword,e=>w.verifPassword=e),l(s,E),t()}s([`change`]);export{w as component};
|
||||
@@ -1 +0,0 @@
|
||||
import{H as e,K as t,M as n,O as r,V as i,_ as a,g as o,p as s}from"../chunks/BXe04aPf.js";import{t as c}from"../chunks/tTEyPFub.js";import"../chunks/xihTtKlq.js";import{t as l}from"../chunks/kaCwo2dy.js";import"../chunks/Bthvo3p_.js";var u=t({});function d(t,u){e(u,!0),r(()=>{l.status==`unauthenticated`&&c(`/login`)});var d=a(),f=n(d);s(f,()=>u.children),o(t,d),i()}export{d as component,u as universal};
|
||||
@@ -0,0 +1 @@
|
||||
import{$ as e,A as t,F as n,I as r,K as i,L as a,N as o,P as s,Q as c,S as l,b as u,c as d,g as f,h as p,i as m,k as h,l as g,m as _,n as v,p as y,q as b,u as x,v as S,x as C}from"../chunks/DxmhE1z1.js";import{t as w}from"../chunks/DZTG_XPZ.js";import"../chunks/xihTtKlq.js";import{t as T}from"../chunks/BJ9updZG.js";import{i as E,n as D,r as O,t as k}from"../chunks/puscbPt7.js";var A={me:()=>D.get(`/user/me`)},j=e({load:()=>M}),M=async()=>({me:await A.me()}),N=a({sidebarDesktopOpen:!0,sidebarMobileOpen:!1,menuContentVisible:!0}),P=S(`<span class="ml-4"> </span>`),F=S(`<div class="my-2 block"><a class="p-2 w-full text-left menuitem block"><i></i> <!></a></div>`);function I(e,t){b(t,!0);let n=m(t,`label`,3,``),a=m(t,`icon`,3,``),o=m(t,`link`,3,``);var l=F(),u=s(l),v=s(u),y=r(v,2),S=e=>{var t=P(),r=s(t,!0);c(t),h(()=>p(r,n())),f(e,t)};_(y,e=>{N.menuContentVisible&&e(S)}),c(u),c(l),h(()=>{d(u,`href`,o()),g(v,1,x([a()]))}),f(e,l),i()}var L=S(`<div class="flex-1 p-3 font openonly"><img class="h-5" alt="logo"/></div>`),R=S(`<div class="p-4 flex-1 profile"><div>Fabien Masson</div> <div class="flex"><a href="/profile" class="text-xs flex-1">Modifier</a></div></div> <div class="p-2"><button class="w-full bt" title="Déconecter"><i class="icon-logout"></i></button></div>`,1),z=S(`<div class="flex flex-row italic mb-4"><!> <button id="hamburgerDesktop" title="Open menu"><i class="icon-menu pointer block p-2"></i></button> <button id="hamburgerMobile" title="Open menu"><i class="icon-menu pointer block p-2"></i></button></div> <div id="menu" class="flex-1 overflow-y-scroll"><!> <!> <!> <!> <!></div> <div id="profile" class="w-full flex flex-row items-center border-t border-stone-200 dark:border-stone-800"><!></div>`,1);function B(e,t){b(t,!0);let a=()=>{E()};var o=z(),l=n(o),u=s(l),p=e=>{var t=L(),n=s(t);c(t),h(()=>d(n,`src`,k)),f(e,t)};_(u,e=>{N.menuContentVisible&&e(p)});var m=r(u,2),g=r(m,2);c(l);var v=r(l,2),y=s(v);I(y,{label:`Conversation`,icon:`icon-chat`,link:`/`});var x=r(y,2);I(x,{label:`Tâches`,icon:`icon-tasks`,link:`/tasks`});var S=r(x,2);I(S,{label:`Connaissances`,icon:`icon-graduation-cap`,link:`/kb`});var w=r(S,2);I(w,{label:`Historique`,icon:`icon-history`,link:`/history`});var T=r(w,2),D=e=>{I(e,{label:`Paramétrage`,icon:`icon-cog`,link:`/settings`})};_(T,e=>{O.user?.administrator&&e(D)}),c(v);var A=r(v,2),j=s(A),M=e=>{var t=R(),i=r(n(t),2),o=s(i);c(i),C(`click`,o,a),f(e,t)},P=e=>{I(e,{label:`User`,icon:`icon-user`,link:`/profile`})};_(j,e=>{N.menuContentVisible?e(M):e(P,-1)}),c(A),C(`click`,m,function(...e){t.handleMenuDesktop?.apply(this,e)}),C(`click`,g,function(...e){t.handleMenuMobile?.apply(this,e)}),f(e,o),i()}u([`click`]);var V=S(`<span><a title="retour"><i class="icon-left-big"></i></a></span>`),H=S(`<div id="outer"><div id="sidebar" class="flex flex-col"><!></div> <div id="main"><div class="flex flex-col h-screen "><div class="header"><h1 class="flex"><span class="flex-1"> </span> <!></h1></div> <div class="overflow-scroll flex-1 p-2"><!></div></div></div></div>`);function U(e,n){b(n,!0);let a=()=>{N.sidebarDesktopOpen=!N.sidebarDesktopOpen,N.sidebarDesktopOpen?setTimeout(()=>{N.menuContentVisible=N.sidebarDesktopOpen},200):N.menuContentVisible=N.sidebarDesktopOpen},u=()=>{N.sidebarMobileOpen=!N.sidebarMobileOpen,N.sidebarMobileOpen?setTimeout(()=>{N.menuContentVisible=N.sidebarMobileOpen},200):N.menuContentVisible=N.sidebarMobileOpen},m=()=>{N.menuContentVisible=window.innerWidth<640?N.sidebarMobileOpen:N.sidebarDesktopOpen};v(async()=>{m(),n.data.me?(O.user=n.data.me,O.status=`authenticated`):O.status=`unauthenticated`}),t(()=>{O.status==`unauthenticated`&&w(`/login`)});var S=H();l(`resize`,o,m);var C=s(S);B(s(C),{handleMenuDesktop:a,handleMenuMobile:u}),c(C);var E=r(C,2),D=s(E),k=s(D),A=s(k),j=s(A),M=s(j,!0);c(j);var P=r(j,2),F=e=>{var t=V(),n=s(t);c(t),h(()=>d(n,`href`,T.data.back)),f(e,t)};_(P,e=>{T.data.back&&e(F)}),c(A),c(k);var I=r(k,2),L=s(I);y(L,()=>n.children),c(I),c(D),c(E),c(S),h(()=>{g(S,1,x([N.sidebarDesktopOpen?`desktopMenuOpen`:`desktopMenuClosed`,N.sidebarMobileOpen?`mobileMenuOpen`:`mobileMenuClosed`])),p(M,T.data.title)}),f(e,S),i()}export{U as component,j as universal};
|
||||
@@ -0,0 +1,6 @@
|
||||
import{$ as e,Z as t,g as n,y as r}from"../chunks/DxmhE1z1.js";import"../chunks/xihTtKlq.js";var i=e({load:()=>a});function a(){return{title:`Conversation`}}function o(e){t();var i=r(`Lorem ipsum dolor sit amet consectetur, adipisicing elit. Asperiores, reiciendis quo. Quos animi nisi modi cumque hic illo doloremque totam! Distinctio molestias sint magnam illum nostrum eos, fugit aliquid consequuntur?
|
||||
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Asperiores, reiciendis quo. Quos animi nisi modi cumque hic illo doloremque totam! Distinctio molestias sint magnam illum nostrum eos, fugit aliquid consequuntur?
|
||||
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Asperiores, reiciendis quo. Quos animi nisi modi cumque hic illo doloremque totam! Distinctio molestias sint magnam illum nostrum eos, fugit aliquid consequuntur?
|
||||
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Asperiores, reiciendis quo. Quos animi nisi modi cumque hic illo doloremque totam! Distinctio molestias sint magnam illum nostrum eos, fugit aliquid consequuntur?
|
||||
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Asperiores, reiciendis quo. Quos animi nisi modi cumque hic illo doloremque totam! Distinctio molestias sint magnam illum nostrum eos, fugit aliquid consequuntur?
|
||||
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Asperiores, reiciendis quo. Quos animi nisi modi cumque hic illo doloremque totam! Distinctio molestias sint magnam illum nostrum eos, fugit aliquid consequuntur?`);n(e,i)}export{o as component,i as universal};
|
||||
@@ -1 +0,0 @@
|
||||
import{A as e,D as t,G as n,H as r,M as i,N as a,P as o,S as s,V as c,W as l,b as u,c as d,g as f,h as p,i as m,j as h,l as g,m as _,n as v,u as y,v as b,x}from"../chunks/BXe04aPf.js";import"../chunks/xihTtKlq.js";import{n as S}from"../chunks/kaCwo2dy.js";import{t as C}from"../chunks/bT040zHf.js";var w=o({sidebarDesktopOpen:!0,sidebarMobileOpen:!1,menuContentVisible:!0}),T=b(`<span class="ml-4"> </span>`),E=b(`<div class="p-2" tabindex="0" role="button"><i></i> <!></div>`);function D(e,i){r(i,!0);let o=m(i,`label`,3,``),s=m(i,`icon`,3,``);var l=E(),u=h(l),d=a(u,2),v=e=>{var r=T(),i=h(r,!0);n(r),t(()=>p(i,o())),f(e,r)};_(d,e=>{w.menuContentVisible&&e(v)}),n(l),t(()=>g(u,1,y([s()]))),f(e,l),c()}var O=b(`<div class="flex-1 p-3 font openonly"><img class="w-24"/></div>`),k=b(`<div class="p-2 flex-1 "><div>Fabien Masson</div> <div class="flex"><a href="#" class="text-xs flex-1">Modifier</a></div></div> <div class="p-2"><button class="w-full bt"><i class="icon-logout"></i></button></div>`,1),A=b(`<div class="flex flex-row italic mb-4"><!> <i id="hamburgerDesktop" class="icon-menu pointer block p-2" tabindex="0" role="button"></i> <i id="hamburgerMobile" class="icon-menu pointer block p-2" tabindex="0" role="button"></i></div> <div id="menu" class="flex-1 overflow-y-scroll"><!> <!> <!> <!></div> <div id="profile" class="w-full flex flex-row items-center border-t border-stone-200 dark:border-stone-800"><!></div>`,1);function j(e,o){r(o,!0);let s=()=>{S()};var l=A(),u=i(l),p=h(u),m=e=>{var r=O(),i=h(r);n(r),t(()=>d(i,`src`,C)),f(e,r)};_(p,e=>{w.menuContentVisible&&e(m)});var g=a(p,2),v=a(g,2);n(u);var y=a(u,2),b=h(y);D(b,{label:`Conversation`,icon:`icon-chat`});var T=a(b,2);D(T,{label:`Tâches`,icon:`icon-tasks`});var E=a(T,2);D(E,{label:`Historique`,icon:`icon-history`}),D(a(E,2),{label:`Paramétrage`,icon:`icon-cog`}),n(y);var j=a(y,2),M=h(j),N=e=>{var t=k(),r=a(i(t),2),o=h(r);n(r),x(`click`,o,s),f(e,t)},P=e=>{D(e,{label:`User`,icon:`icon-user`})};_(M,e=>{w.menuContentVisible?e(N):e(P,-1)}),n(j),x(`click`,g,function(...e){o.handleMenuDesktop?.apply(this,e)}),x(`click`,v,function(...e){o.handleMenuMobile?.apply(this,e)}),f(e,l),c()}u([`click`]);var M=b(`<div id="outer"><div id="sidebar" class="flex flex-col"><!></div> <div id="main"><div id="content">Contenu</div></div></div>`);function N(i,a){r(a,!0);let o=()=>{w.sidebarDesktopOpen=!w.sidebarDesktopOpen,w.sidebarDesktopOpen?setTimeout(()=>{w.menuContentVisible=w.sidebarDesktopOpen},200):w.menuContentVisible=w.sidebarDesktopOpen},u=()=>{w.sidebarMobileOpen=!w.sidebarMobileOpen,w.sidebarMobileOpen?setTimeout(()=>{w.menuContentVisible=w.sidebarMobileOpen},200):w.menuContentVisible=w.sidebarMobileOpen},d=()=>{w.menuContentVisible=window.innerWidth<640?w.sidebarMobileOpen:w.sidebarDesktopOpen};v(()=>{d()});var p=M();s(`resize`,e,d);var m=h(p);j(h(m),{handleMenuDesktop:o,handleMenuMobile:u}),n(m),l(2),n(p),t(()=>g(p,1,y([w.sidebarDesktopOpen?`desktopMenuOpen`:`desktopMenuClosed`,w.sidebarMobileOpen?`mobileMenuOpen`:`mobileMenuClosed`]))),f(i,p),c()}export{N as component};
|
||||
@@ -1 +0,0 @@
|
||||
import{D as e,G as t,H as n,M as r,N as i,P as a,R as o,S as s,V as c,W as l,b as u,c as d,g as f,j as p,m,o as h,s as g,v as _,x as v}from"../chunks/BXe04aPf.js";import{t as y}from"../chunks/tTEyPFub.js";import"../chunks/xihTtKlq.js";import{t as b}from"../chunks/kaCwo2dy.js";import"../chunks/Bthvo3p_.js";import{t as x}from"../chunks/bT040zHf.js";var S=_(`<form><div class="flex"><label for="email" class="block mb-2 flex-1">Email</label> <a href="#" class="text-xs">Mot de passe oublié ?</a></div> <div class="flex flex-row"><input type="text" class="textinput mr-1"/> <button class="bt"><i class="icon-right-big"></i></button></div></form> <div class="my-4 text-xs"><a href="/register">Pas encore de compte ? Incrivez-vous.</a></div>`,1),C=_(`<form><div class="flex"><label for="email" class="block mb-2 flex-1">Mot de passe</label></div> <div class="flex flex-row"><input type="text" class="textinput mr-1"/> <button class="bt">Entrer</button></div> <a href="/register" class="text-xs">← Retour</a></form>`),w=_(`<div class="h-full w-full flex items-center"><div class="m-auto min-w-64 p-4"><img class="h-8 mb-4"/> <h1>Préparerez votre galet ...</h1> <!> <hr class="my-4"/> <div class="grid grid-cols-[repeat(auto-fit,minmax(150px,1fr))] gap-4"><button class="bt p-5 text-center"><i class="icon-google"></i></button> <button class="bt p-5 text-center"><i class="icon-facebook"></i></button> <button class="bt p-5 text-center"><i class="icon-github"></i></button> <button class="bt p-5 text-center"><i class="icon-apple"></i></button></div></div></div>`);function T(u,_){n(_,!0);let T=a({email:``,password:``,validemail:!1}),E=()=>{T.validemail=!0},D=e=>{e.preventDefault(),console.log(`formSubmitPass `+b.status),b.status=`authenticated`,console.log(`formSubmitPass après `+b.status),y(`/`)};var O=w(),k=p(O),A=p(k),j=i(A,4),M=e=>{var n=S(),a=r(n),c=i(p(a),2),u=p(c);g(u),o(u,!0),l(2),t(c),t(a),l(2),s(`submit`,a,E),h(u,()=>T.email,e=>T.email=e),f(e,n)},N=e=>{var n=C(),r=i(p(n),2),a=p(r);g(a),o(a,!0),l(2),t(r);var c=i(r,2);t(n),s(`submit`,n,D),h(a,()=>T.password,e=>T.password=e),v(`click`,c,()=>{T.validemail=!1}),f(e,n)};m(j,e=>{T.validemail?e(N,-1):e(M)}),l(4),t(k),t(O),e(()=>d(A,`src`,x)),f(u,O),c()}u([`click`]);export{T as component};
|
||||
@@ -0,0 +1,6 @@
|
||||
import{$ as e,Z as t,g as n,y as r}from"../chunks/DxmhE1z1.js";import"../chunks/xihTtKlq.js";var i=e({load:()=>a});function a(){return{title:`Historique`}}function o(e){t();var i=r(`Lorem ipsum dolor sit amet consectetur, adipisicing elit. Asperiores, reiciendis quo. Quos animi nisi modi cumque hic illo doloremque totam! Distinctio molestias sint magnam illum nostrum eos, fugit aliquid consequuntur?
|
||||
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Asperiores, reiciendis quo. Quos animi nisi modi cumque hic illo doloremque totam! Distinctio molestias sint magnam illum nostrum eos, fugit aliquid consequuntur?
|
||||
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Asperiores, reiciendis quo. Quos animi nisi modi cumque hic illo doloremque totam! Distinctio molestias sint magnam illum nostrum eos, fugit aliquid consequuntur?
|
||||
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Asperiores, reiciendis quo. Quos animi nisi modi cumque hic illo doloremque totam! Distinctio molestias sint magnam illum nostrum eos, fugit aliquid consequuntur?
|
||||
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Asperiores, reiciendis quo. Quos animi nisi modi cumque hic illo doloremque totam! Distinctio molestias sint magnam illum nostrum eos, fugit aliquid consequuntur?
|
||||
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Asperiores, reiciendis quo. Quos animi nisi modi cumque hic illo doloremque totam! Distinctio molestias sint magnam illum nostrum eos, fugit aliquid consequuntur?`);n(e,i)}export{o as component,i as universal};
|
||||
@@ -0,0 +1 @@
|
||||
import{$ as e}from"../chunks/DxmhE1z1.js";import"../chunks/xihTtKlq.js";var t=e({load:()=>n});function n(){return{title:`Base de connaissance`}}function r(e){}export{r as component,t as universal};
|
||||
@@ -1 +0,0 @@
|
||||
import{D as e,G as t,H as n,N as r,P as i,R as a,S as o,V as s,W as c,c as l,g as u,j as d,o as f,s as p,v as m}from"../chunks/BXe04aPf.js";import{t as h}from"../chunks/tTEyPFub.js";import"../chunks/xihTtKlq.js";import"../chunks/kaCwo2dy.js";import"../chunks/Bthvo3p_.js";import{t as g}from"../chunks/bT040zHf.js";var _=m(`<div class="h-full w-full flex items-center"><div class="m-auto min-w-64 p-4"><img class="h-8 mb-4"/> <h1>Inscription</h1> <form><label for="email" class="block my-1 flex-1">Email</label> <input id="email" type="text" class="textinput mb-4"/> <label for="firstname" class="block my-1 flex-1">Prénom</label> <input id="firstname" type="text" class="textinput mb-4"/> <label for="lastname" class="block my-1 flex-1">Nom</label> <input id="lastname" type="text" class="textinput mb-4"/> <label for="password" class="block my-1 flex-1">Mot de passe</label> <input id="password" type="password" class="textinput mb-4"/> <label for="verifpassword" class="block my-1 flex-1">Vérification du mot de passe</label> <input id="verifpassword" type="password" class="textinput mb-4"/> <button class="bt my-2">Enregistrer</button></form></div></div>`);function v(m,v){n(v,!0);let y=i({email:``,firstname:``,lastname:``,password:``,verifPassword:``,validation:!1}),b=()=>{y.validation=!0,h(`/`)};var x=_(),S=d(x),C=d(S),w=r(C,4),T=r(d(w),2);p(T),a(T,!0);var E=r(T,4);p(E);var D=r(E,4);p(D);var O=r(D,4);p(O);var k=r(O,4);p(k),c(2),t(w),t(S),t(x),e(()=>l(C,`src`,g)),o(`submit`,w,b),f(T,()=>y.email,e=>y.email=e),f(E,()=>y.firstname,e=>y.firstname=e),f(D,()=>y.lastname,e=>y.lastname=e),f(O,()=>y.password,e=>y.password=e),f(k,()=>y.verifPassword,e=>y.verifPassword=e),u(m,x),s()}export{v as component};
|
||||
@@ -0,0 +1 @@
|
||||
import{$ as e,F as t,I as n,K as r,L as i,P as a,Q as o,U as s,Z as c,g as l,o as u,q as d,s as f,v as p}from"../chunks/DxmhE1z1.js";import"../chunks/xihTtKlq.js";import{n as m,t as h}from"../chunks/BT9KdPme.js";var g=e({load:()=>_});function _(){return{title:`Profil`}}var v=p(`<div class="mb-4 formgroup"><h2>Mon compte</h2> <label for="email" class="block my-1 flex-1">Email</label> <input id="email" type="text" class="textinput"/> <!> <div class="flex"><div class="flex-1 mr-2"><label for="firstname" class="block my-1 flex-1">Prénom</label> <input id="firstname" type="text" class="textinput"/> <!></div> <div class="flex-1 ml-2"><label for="lastname" class="block my-1 flex-1">Nom</label> <input id="lastname" type="text" class="textinput"/> <!></div></div> <div class="flex"><div class="flex-1 mr-2"><label for="theme" class="block my-1 flex-1">Thème</label> <input id="theme" type="text" class="textinput"/> <!></div> <div class="flex-1 ml-2"><label for="lang" class="block my-1 flex-1">Langue</label> <input id="lang" type="text" class="textinput"/> <!></div></div></div> <div class="mb-4 formgroup"><h2>Canaux de communication</h2></div>`,1);function y(e,p){d(p,!0);let g=i({email:``,firstname:``,lastname:``,lang:`en`,theme:`auto`}),_=new m;var y=v(),b=t(y),x=n(a(b),4);f(x),s(x,!0);var S=n(x,2);h(S,{key:`email`,get errors(){return _}});var C=n(S,2),w=a(C),T=n(a(w),2);f(T);var E=n(T,2);h(E,{key:`firstname`,get errors(){return _}}),o(w);var D=n(w,2),O=n(a(D),2);f(O);var k=n(O,2);h(k,{key:`lastname`,get errors(){return _}}),o(D),o(C);var A=n(C,2),j=a(A),M=n(a(j),2);f(M);var N=n(M,2);h(N,{key:`theme`,get errors(){return _}}),o(j);var P=n(j,2),F=n(a(P),2);f(F);var I=n(F,2);h(I,{key:`lang`,get errors(){return _}}),o(P),o(A),o(b),c(2),u(x,()=>g.email,e=>g.email=e),u(T,()=>g.firstname,e=>g.firstname=e),u(O,()=>g.lastname,e=>g.lastname=e),u(M,()=>g.theme,e=>g.theme=e),u(F,()=>g.lang,e=>g.lang=e),l(e,y),r()}export{y as component,g as universal};
|
||||
@@ -0,0 +1 @@
|
||||
import{$ as e,g as t,v as n}from"../chunks/DxmhE1z1.js";import"../chunks/xihTtKlq.js";var r=e({load:()=>i});function i(){return{title:`Paramétrage`}}var a=n(`<div class="grid grid-cols-[repeat(auto-fit,minmax(250px,1fr))] gap-4"><a class="bt p-5 text-center" title="Modèles" href="/settings/models">Modèles <span class="ml-2 opacity-50 text-xs">mistral-medium-latest</span></a> <a class="bt p-5 text-center" title="Outils" href="/settings/tools">Outils <span class="ml-2 text-xs bg-red-900 text-red-300 rounded-lg p-1">12</span></a> <a class="bt p-5 text-center" title="Skills" href="/settings/skills">Skills <span class="ml-2 text-xs bg-red-900 text-red-300 rounded-lg p-1">3</span></a> <a class="bt p-5 text-center" title="Canaux de communication" href="/settings/channels">Canaux de communication <span class="ml-2 text-xs bg-red-900 text-red-300 rounded-lg p-1">12</span></a> <a class="bt p-5 text-center" title="Bases de connaissance" href="/settings/kb">Bases de connaissance</a> <a class="bt p-5 text-center" title="Agents" href="/settings/agents">Agents</a> <a class="bt p-5 text-center" title="Mémoire" href="/settings/memory">Mémoire <span class="ml-2 opacity-50 text-xs">standard</span></a> <a class="bt p-5 text-center" title="Utilisateurs" href="/settings/users">Utilisateurs <span class="ml-2 text-xs bg-red-900 text-red-300 rounded-lg p-1">1</span></a></div>`);function o(e){var n=a();t(e,n)}export{o as component,r as universal};
|
||||
@@ -0,0 +1 @@
|
||||
import{$ as e,g as t,v as n}from"../chunks/DxmhE1z1.js";import"../chunks/xihTtKlq.js";var r=e({load:()=>i});function i(){return{title:`Paramétrage : Agents`,back:`/settings`}}var a=n(`<div>Modèles</div>`);function o(e){var n=a();t(e,n)}export{o as component,r as universal};
|
||||
@@ -0,0 +1 @@
|
||||
import{$ as e,g as t,v as n}from"../chunks/DxmhE1z1.js";import"../chunks/xihTtKlq.js";var r=e({load:()=>i});function i(){return{title:`Paramétrage : Canaux de communication`,back:`/settings`}}var a=n(`<div>Modèles</div>`);function o(e){var n=a();t(e,n)}export{o as component,r as universal};
|
||||
@@ -1 +1 @@
|
||||
{"version":"1785917155183"}
|
||||
{"version":"1786123021130"}
|
||||
@@ -107,6 +107,12 @@
|
||||
"css": "logout",
|
||||
"code": 59399,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "555ef8c86832e686fef85f7af2eb7cde",
|
||||
"css": "left-big",
|
||||
"code": 59400,
|
||||
"src": "fontawesome"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -7,6 +7,7 @@
|
||||
.icon-edit:before { content: '\e805'; } /* '' */
|
||||
.icon-right-big:before { content: '\e806'; } /* '' */
|
||||
.icon-logout:before { content: '\e807'; } /* '' */
|
||||
.icon-left-big:before { content: '\e808'; } /* '' */
|
||||
.icon-facebook:before { content: '\f09a'; } /* '' */
|
||||
.icon-tasks:before { content: '\f0ae'; } /* '' */
|
||||
.icon-menu:before { content: '\f0c9'; } /* '' */
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('../font/fontello.eot?85841190');
|
||||
src: url('../font/fontello.eot?85841190#iefix') format('embedded-opentype'),
|
||||
url('../font/fontello.svg?85841190#fontello') format('svg');
|
||||
src: url('../font/fontello.eot?40016728');
|
||||
src: url('../font/fontello.eot?40016728#iefix') format('embedded-opentype'),
|
||||
url('../font/fontello.svg?40016728#fontello') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('data:application/octet-stream;base64,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 truncated
|
||||
url('data:application/octet-stream;base64,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 truncated
|
||||
src: url('data:application/octet-stream;base64,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 truncated
|
||||
url('data:application/octet-stream;base64,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 truncated
|
||||
}
|
||||
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
|
||||
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
|
||||
@@ -17,7 +17,7 @@
|
||||
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('../font/fontello.svg?85841190#fontello') format('svg');
|
||||
src: url('../font/fontello.svg?40016728#fontello') format('svg');
|
||||
}
|
||||
}
|
||||
*/
|
||||
@@ -65,6 +65,7 @@
|
||||
.icon-edit:before { content: '\e805'; } /* '' */
|
||||
.icon-right-big:before { content: '\e806'; } /* '' */
|
||||
.icon-logout:before { content: '\e807'; } /* '' */
|
||||
.icon-left-big:before { content: '\e808'; } /* '' */
|
||||
.icon-facebook:before { content: '\f09a'; } /* '' */
|
||||
.icon-tasks:before { content: '\f0ae'; } /* '' */
|
||||
.icon-menu:before { content: '\f0c9'; } /* '' */
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
.icon-edit { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-right-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-logout { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-left-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-facebook { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tasks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-menu { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
.icon-edit { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-right-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-logout { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-left-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-facebook { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tasks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-menu { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('../font/fontello.eot?44639875');
|
||||
src: url('../font/fontello.eot?44639875#iefix') format('embedded-opentype'),
|
||||
url('../font/fontello.woff2?44639875') format('woff2'),
|
||||
url('../font/fontello.woff?44639875') format('woff'),
|
||||
url('../font/fontello.ttf?44639875') format('truetype'),
|
||||
url('../font/fontello.svg?44639875#fontello') format('svg');
|
||||
src: url('../font/fontello.eot?64785462');
|
||||
src: url('../font/fontello.eot?64785462#iefix') format('embedded-opentype'),
|
||||
url('../font/fontello.woff2?64785462') format('woff2'),
|
||||
url('../font/fontello.woff?64785462') format('woff'),
|
||||
url('../font/fontello.ttf?64785462') format('truetype'),
|
||||
url('../font/fontello.svg?64785462#fontello') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@@ -15,7 +15,7 @@
|
||||
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('../font/fontello.svg?44639875#fontello') format('svg');
|
||||
src: url('../font/fontello.svg?64785462#fontello') format('svg');
|
||||
}
|
||||
}
|
||||
*/
|
||||
@@ -62,6 +62,7 @@
|
||||
.icon-edit:before { content: '\e805'; } /* '' */
|
||||
.icon-right-big:before { content: '\e806'; } /* '' */
|
||||
.icon-logout:before { content: '\e807'; } /* '' */
|
||||
.icon-left-big:before { content: '\e808'; } /* '' */
|
||||
.icon-facebook:before { content: '\f09a'; } /* '' */
|
||||
.icon-tasks:before { content: '\f0ae'; } /* '' */
|
||||
.icon-menu:before { content: '\f0c9'; } /* '' */
|
||||
|
||||
@@ -146,11 +146,11 @@
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('./font/fontello.eot?35012786');
|
||||
src: url('./font/fontello.eot?35012786#iefix') format('embedded-opentype'),
|
||||
url('./font/fontello.woff?35012786') format('woff'),
|
||||
url('./font/fontello.ttf?35012786') format('truetype'),
|
||||
url('./font/fontello.svg?35012786#fontello') format('svg');
|
||||
src: url('./font/fontello.eot?72761720');
|
||||
src: url('./font/fontello.eot?72761720#iefix') format('embedded-opentype'),
|
||||
url('./font/fontello.woff?72761720') format('woff'),
|
||||
url('./font/fontello.ttf?72761720') format('truetype'),
|
||||
url('./font/fontello.svg?72761720#fontello') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@@ -239,6 +239,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="span3" title="Code: 0xe808">
|
||||
<i class="demo-icon icon-left-big"></i> <span class="i-name">icon-left-big</span><span class="i-code">0xe808</span>
|
||||
</div>
|
||||
<div class="span3" title="Code: 0xf09a">
|
||||
<i class="demo-icon icon-facebook"></i> <span class="i-name">icon-facebook</span><span class="i-code">0xf09a</span>
|
||||
</div>
|
||||
@@ -248,11 +251,11 @@
|
||||
<div class="span3" title="Code: 0xf0c9">
|
||||
<i class="demo-icon icon-menu"></i> <span class="i-name">icon-menu</span><span class="i-code">0xf0c9</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="span3" title="Code: 0xf113">
|
||||
<i class="demo-icon icon-github"></i> <span class="i-name">icon-github</span><span class="i-code">0xf113</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="span3" title="Code: 0xf179">
|
||||
<i class="demo-icon icon-apple"></i> <span class="i-name">icon-apple</span><span class="i-code">0xf179</span>
|
||||
</div>
|
||||
@@ -262,11 +265,11 @@
|
||||
<div class="span3" title="Code: 0xf1a0">
|
||||
<i class="demo-icon icon-google"></i> <span class="i-name">icon-google</span><span class="i-code">0xf1a0</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="span3" title="Code: 0xf1d8">
|
||||
<i class="demo-icon icon-paper-plane"></i> <span class="i-name">icon-paper-plane</span><span class="i-code">0xf1d8</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="span3" title="Code: 0xf1da">
|
||||
<i class="demo-icon icon-history"></i> <span class="i-name">icon-history</span><span class="i-code">0xf1da</span>
|
||||
</div>
|
||||
|
||||
Binary file not shown.
@@ -22,6 +22,8 @@
|
||||
|
||||
<glyph glyph-name="logout" unicode="" d="M357 46q0-2 1-11t0-14-2-14-5-11-12-3h-178q-67 0-114 47t-47 114v392q0 67 47 114t114 47h178q8 0 13-5t5-13q0-2 1-11t0-15-2-13-5-11-12-3h-178q-37 0-63-26t-27-64v-392q0-37 27-63t63-27h174t6 0 7-2 4-3 4-5 1-8z m518 304q0-14-11-25l-303-304q-11-10-25-10t-25 10-11 25v161h-250q-14 0-25 11t-11 25v214q0 15 11 25t25 11h250v161q0 14 11 25t25 10 25-10l303-304q11-10 11-25z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="left-big" unicode="" d="M857 350v-71q0-30-18-51t-47-21h-393l164-164q21-20 21-50t-21-50l-42-43q-21-20-51-20-29 0-50 20l-364 364q-20 21-20 50 0 29 20 51l364 363q21 21 50 21 29 0 51-21l42-41q21-22 21-51t-21-51l-164-164h393q29 0 47-20t18-51z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="facebook" unicode="" d="M535 843v-147h-87q-48 0-65-20t-17-60v-106h164l-22-165h-142v-424h-171v424h-142v165h142v122q0 104 58 161t155 57q82 0 127-7z" horiz-adv-x="571.4" />
|
||||
|
||||
<glyph glyph-name="tasks" unicode="" d="M571 64h358v72h-358v-72z m-214 286h572v71h-572v-71z m357 286h215v71h-215v-71z m286-465v-142q0-15-11-25t-25-11h-928q-15 0-25 11t-11 25v142q0 15 11 26t25 10h928q15 0 25-10t11-26z m0 286v-143q0-14-11-25t-25-10h-928q-15 0-25 10t-11 25v143q0 15 11 25t25 11h928q15 0 25-11t11-25z m0 286v-143q0-14-11-25t-25-11h-928q-15 0-25 11t-11 25v143q0 14 11 25t25 11h928q15 0 25-11t11-25z" horiz-adv-x="1000" />
|
||||
|
||||
|
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 8.1 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -4,28 +4,28 @@
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="text-scale" content="scale" />
|
||||
<link href="/_app/immutable/entry/start.BDBpcwWA.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/tTEyPFub.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/BXe04aPf.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/entry/app.3rrbglG1.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/entry/start.DIAl6VsA.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/DZTG_XPZ.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/DxmhE1z1.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/entry/app.ByOsvHj7.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/xihTtKlq.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/nodes/0.DUhcgpvL.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/nodes/0.Bz_yxCPk.js" rel="modulepreload">
|
||||
|
||||
<link href="/_app/immutable/assets/0.CHStj0oN.css" rel="stylesheet">
|
||||
<link href="/_app/immutable/assets/0.tR7PeoVK.css" rel="stylesheet">
|
||||
</head>
|
||||
<body data-sveltekit-preload-data="hover">
|
||||
<div style="display: contents">
|
||||
<script>
|
||||
{
|
||||
__sveltekit_1tkqncq = {
|
||||
__sveltekit_vshol8 = {
|
||||
base: ""
|
||||
};
|
||||
|
||||
const element = document.currentScript.parentElement;
|
||||
|
||||
Promise.all([
|
||||
import("/_app/immutable/entry/start.BDBpcwWA.js"),
|
||||
import("/_app/immutable/entry/app.3rrbglG1.js")
|
||||
import("/_app/immutable/entry/start.DIAl6VsA.js"),
|
||||
import("/_app/immutable/entry/app.ByOsvHj7.js")
|
||||
]).then(([kit, app]) => {
|
||||
kit.start(app, element);
|
||||
});
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io"
|
||||
"log"
|
||||
"net/url"
|
||||
"time"
|
||||
)
|
||||
|
||||
const bucketName = "lassistanoque"
|
||||
|
||||
type StorageProvider interface {
|
||||
EnsureBucket(
|
||||
ctx context.Context,
|
||||
bucketName string,
|
||||
) error
|
||||
PutObject(
|
||||
ctx context.Context,
|
||||
reader io.Reader,
|
||||
bucketName string,
|
||||
objectName string,
|
||||
filePath string,
|
||||
contentType string,
|
||||
) error
|
||||
GetObject(
|
||||
ctx context.Context,
|
||||
bucketName string,
|
||||
objectName string,
|
||||
filePath string,
|
||||
) (io.ReadCloser, error)
|
||||
DeleteObject(
|
||||
ctx context.Context,
|
||||
bucketName string,
|
||||
objectName string,
|
||||
filePath string,
|
||||
) error
|
||||
ExistsObject(
|
||||
ctx context.Context,
|
||||
bucketName string,
|
||||
objectName string,
|
||||
filePath string,
|
||||
) (bool, error)
|
||||
GetPresignedURL(
|
||||
ctx context.Context,
|
||||
bucketName string,
|
||||
objectName string,
|
||||
filePath string,
|
||||
Expiry time.Time,
|
||||
) (*url.URL, error)
|
||||
}
|
||||
|
||||
type Service struct {
|
||||
provider StorageProvider
|
||||
}
|
||||
|
||||
func NewService(provider StorageProvider) *Service {
|
||||
err := provider.EnsureBucket(
|
||||
context.Background(),
|
||||
bucketName,
|
||||
)
|
||||
if err != nil {
|
||||
log.Fatal("error creating bucket", err)
|
||||
}
|
||||
return &Service{provider}
|
||||
}
|
||||
|
||||
func (s *Service) PutObject(
|
||||
ctx context.Context,
|
||||
reader io.Reader,
|
||||
objectName string,
|
||||
filePath string,
|
||||
contentType string,
|
||||
) error {
|
||||
return s.provider.PutObject(ctx, reader, bucketName, objectName, filePath, contentType)
|
||||
}
|
||||
|
||||
func (s *Service) GetObject(
|
||||
ctx context.Context,
|
||||
objectName string,
|
||||
filePath string,
|
||||
) (io.ReadCloser, error) {
|
||||
return s.provider.GetObject(ctx, bucketName, objectName, filePath)
|
||||
}
|
||||
|
||||
func (s *Service) DeleteObject(
|
||||
ctx context.Context,
|
||||
objectName string,
|
||||
filePath string,
|
||||
) error {
|
||||
return s.provider.DeleteObject(ctx, bucketName, objectName, filePath)
|
||||
}
|
||||
|
||||
func (s *Service) ExistsObject(
|
||||
ctx context.Context,
|
||||
objectName string,
|
||||
filePath string,
|
||||
) (bool, error) {
|
||||
return s.provider.ExistsObject(ctx, bucketName, objectName, filePath)
|
||||
}
|
||||
|
||||
func (s *Service) GetPresignedURL(
|
||||
ctx context.Context,
|
||||
objectName string,
|
||||
filePath string,
|
||||
Expiry time.Time,
|
||||
) (*url.URL, error) {
|
||||
return s.provider.GetPresignedURL(ctx, bucketName, objectName, filePath, Expiry)
|
||||
}
|
||||
@@ -1,6 +1,10 @@
|
||||
package user
|
||||
|
||||
import "trankilou.fr/lassistanoque/backend/internal/domain"
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"trankilou.fr/lassistanoque/backend/internal/domain"
|
||||
)
|
||||
|
||||
type Service struct {
|
||||
repo domain.UserRepository
|
||||
@@ -13,5 +17,12 @@ func NewService(repo domain.UserRepository) *Service {
|
||||
}
|
||||
|
||||
func (s *Service) GetUser(id string) (*domain.User, error) {
|
||||
return s.repo.FindUser(id)
|
||||
user, err := s.repo.FindUser(id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !user.Enabled {
|
||||
return nil, fmt.Errorf("unauthorized")
|
||||
}
|
||||
return user, nil
|
||||
}
|
||||
Binary file not shown.
@@ -1,139 +0,0 @@
|
||||
# Application CONCIERGE
|
||||
|
||||
## Généralités
|
||||
|
||||
Nom d'application: lassistanoque
|
||||
|
||||
Objectif :
|
||||
Le but de l'application est d'être à la fois un outil de chat, mais surtout un lieu ou l'utilisateur peut créer des agents autonomes, à la fois dans un contexte professionnel et personnel.
|
||||
Fonctionnalité :
|
||||
- Espace de chat
|
||||
- Espace de visualisation/gestion des tâches (tâches longues ou tâches récurrente)
|
||||
- Paramétrage :
|
||||
- Sélection et paramétrage du/des modèles de LLM
|
||||
- Outils et serveurs MCP
|
||||
- Canaux de communication (en lecture et écriture)
|
||||
- Paramétrage de la mémoire
|
||||
|
||||
Cibles :
|
||||
- Petite entreprise
|
||||
- Particulier (en selfhosting)
|
||||
Il doit permettre parexemple à une PME d'automatiser les réponse à son adresse de contact, faire des études de marché, sourcer des produits, codes des applications, ...
|
||||
|
||||
## Technologies
|
||||
|
||||
Composants
|
||||
- backend : Go avec le framework Echo
|
||||
- Base de données : turso
|
||||
- frontend web : pure HTML 5 + tailwind + Typescript
|
||||
- frontend desktop : Wails
|
||||
|
||||
Style :
|
||||
- Style épuré, minimaliste
|
||||
- 2 thèmes fournis : light et dark
|
||||
- Tailwind
|
||||
|
||||
Authentification :
|
||||
- multi-utilisateur
|
||||
- connexion en Openid Connect ou bien par utilisateur/mot de passe
|
||||
|
||||
Développe :
|
||||
- le squelette du backend + app web
|
||||
- le squelette de l'application Wail
|
||||
- la gestion des utilisateurs
|
||||
- les thèmes
|
||||
|
||||
Ne développe pas tout de suite :
|
||||
- L'accès aux LLM
|
||||
|
||||
Simule :
|
||||
- L'accès au LLM
|
||||
- La création des tâches
|
||||
|
||||
Le projet doit être structuré selon les règles de l'art.
|
||||
Le code doit être maintenable par un développeur moyen.
|
||||
|
||||
Privilégie la création d'un seul exécutable pour le serveur (avec go embed pour embarquer l'app web), et un executable pour l'app desktop.
|
||||
Un mode d'installation docker-compose doit être proposée.
|
||||
|
||||
## Mode Web et mode Desktop
|
||||
|
||||
Le mode web et le mode desktop utilisent la même authentification.
|
||||
Le mode Desktop est juste la même applicatoin que l'application web, mais davantage intégrée à l'OS (system tray, notifications, accès par touche de raccourci, ...).
|
||||
Le mode Desktop se connecte soit à un serveur distant, soit lance lui-même un serveur lorsqu'aucun serveur distant n'est configuré. Dans le dernier cas, le serveur doit être tué à la fermeture de l'application.
|
||||
|
||||
## Tâches
|
||||
|
||||
les tâches sont créer lors de conversation de Chat.
|
||||
Par exemple si l'utilisateur demande : "Regarde tous les jours sur ebay si tu trouve des timbres rares, et enregistre les annonces intéressantes dans ma base Grist (table Timbres). Envoie-moi un email de compte-rendu de tes recherches"
|
||||
Les tâches peuvent aussi être modifié par Chat.
|
||||
Les tâche peuvent être répétitives ou ponctuelles, longues avec Harness ou non.
|
||||
|
||||
## Base de données
|
||||
|
||||
Table provider : Fournisseurs de LLM
|
||||
- id -> uuid
|
||||
- name -> string
|
||||
- provider -> string
|
||||
- key -> string
|
||||
- url -> string
|
||||
|
||||
Table models : Modèles LLM
|
||||
- id -> uuid
|
||||
- provider_uuid -> uuid
|
||||
- name -> string
|
||||
- modelname -> string
|
||||
- configuration -> json
|
||||
|
||||
Table system : Configuration system
|
||||
- chat_model_uuid -> uuid
|
||||
- default_lang -> string
|
||||
- port -> string
|
||||
- register_enabled -> bool
|
||||
- password_enabled -> bool
|
||||
- oidc_wellknown_url -> string
|
||||
- oidc_client_id -> string
|
||||
- oidc_client_secret -> string
|
||||
|
||||
Table users : Utilisateur
|
||||
- id -> uuid
|
||||
- name -> string
|
||||
- picture -> blob
|
||||
- ...
|
||||
|
||||
Table user_adresses : Adresse de contact de l'utilisateur
|
||||
- id -> uuid
|
||||
- user_uuid : uuid
|
||||
- type (email, telegram, whatsapp, ...) -> string
|
||||
|
||||
Table channels : Canaux de communication utilisés par l'agent
|
||||
- id -> uuid
|
||||
- name -> string
|
||||
- enabled -> boolean
|
||||
- type (email, telegram, whatsapp, ...) -> string
|
||||
- configuration -> json
|
||||
|
||||
Table tools : Paramétrage des outils
|
||||
- id -> uuid
|
||||
- name -> string
|
||||
- enabled -> boolean
|
||||
- configuration -> json
|
||||
|
||||
Table tasks : Tâches
|
||||
- id -> uuid
|
||||
- owner_uuid -> uuid
|
||||
- model_uuid -> uuid
|
||||
- name -> string
|
||||
- prompt -> string
|
||||
- cron -> string
|
||||
- status (scheduled, done, paused, error) -> string
|
||||
- next_datetime -> datetime
|
||||
|
||||
Table task_history : Historique de tâche
|
||||
- id -> uuid
|
||||
- task_uuid -> uuid
|
||||
- start_datetime -> datetime
|
||||
- enb_datetime -> datetime
|
||||
- prompt -> string
|
||||
- log -> string
|
||||
- response -> string
|
||||
Reference in new issue
Block a user