superfast 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.dockerignore +47 -0
- data/.kamal/hooks/docker-setup.sample +3 -0
- data/.kamal/hooks/post-deploy.sample +14 -0
- data/.kamal/hooks/post-proxy-reboot.sample +3 -0
- data/.kamal/hooks/pre-build.sample +51 -0
- data/.kamal/hooks/pre-connect.sample +47 -0
- data/.kamal/hooks/pre-deploy.sample +109 -0
- data/.kamal/hooks/pre-proxy-reboot.sample +3 -0
- data/.kamal/secrets +17 -0
- data/.rubocop.yml +17 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +5 -0
- data/CODE_OF_CONDUCT.md +73 -0
- data/Dockerfile +77 -0
- data/LICENSE +21 -0
- data/README.md +64 -0
- data/Rakefile +6 -0
- data/SECURITY.md +23 -0
- data/app/assets/images/.keep +0 -0
- data/app/assets/stylesheets/application.css +10 -0
- data/app/controllers/application_controller.rb +4 -0
- data/app/controllers/concerns/.keep +0 -0
- data/app/helpers/application_helper.rb +2 -0
- data/app/javascript/application.js +3 -0
- data/app/javascript/controllers/application.js +9 -0
- data/app/javascript/controllers/hello_controller.js +7 -0
- data/app/javascript/controllers/index.js +4 -0
- data/app/jobs/application_job.rb +7 -0
- data/app/mailers/application_mailer.rb +4 -0
- data/app/models/application_record.rb +3 -0
- data/app/models/concerns/.keep +0 -0
- data/app/views/layouts/application.html.erb +28 -0
- data/app/views/layouts/mailer.html.erb +13 -0
- data/app/views/layouts/mailer.text.erb +1 -0
- data/app/views/pwa/manifest.json.erb +22 -0
- data/app/views/pwa/service-worker.js +26 -0
- data/assets/fibery.png +0 -0
- data/assets/superfast.png +0 -0
- data/assets/zulip.png +0 -0
- data/bin/brakeman +7 -0
- data/bin/bundle +109 -0
- data/bin/bundle.cmd +112 -0
- data/bin/dev +2 -0
- data/bin/docker-entrypoint +14 -0
- data/bin/importmap +4 -0
- data/bin/jobs +6 -0
- data/bin/kamal +27 -0
- data/bin/kamal.cmd +30 -0
- data/bin/rails +4 -0
- data/bin/rake +4 -0
- data/bin/rubocop +8 -0
- data/bin/setup +34 -0
- data/bin/thrust +5 -0
- data/config/application.rb +27 -0
- data/config/boot.rb +4 -0
- data/config/cable.yml +17 -0
- data/config/cache.yml +16 -0
- data/config/credentials.yml.enc +1 -0
- data/config/database.yml +102 -0
- data/config/deploy.yml +116 -0
- data/config/environment.rb +5 -0
- data/config/environments/development.rb +72 -0
- data/config/environments/production.rb +91 -0
- data/config/environments/test.rb +53 -0
- data/config/importmap.rb +8 -0
- data/config/initializers/assets.rb +7 -0
- data/config/initializers/content_security_policy.rb +25 -0
- data/config/initializers/filter_parameter_logging.rb +8 -0
- data/config/initializers/inflections.rb +16 -0
- data/config/locales/en.yml +31 -0
- data/config/puma.rb +41 -0
- data/config/queue.yml +18 -0
- data/config/recurring.yml +10 -0
- data/config/routes.rb +14 -0
- data/config/storage.yml +34 -0
- data/config.ru +6 -0
- data/db/cable_schema.rb +11 -0
- data/db/cache_schema.rb +14 -0
- data/db/queue_schema.rb +129 -0
- data/db/schema.rb +17 -0
- data/db/seeds.rb +9 -0
- data/lib/superfast/version.rb +5 -0
- data/lib/superfast.rb +8 -0
- data/lib/tasks/.keep +0 -0
- data/log/.keep +0 -0
- data/public/400.html +114 -0
- data/public/404.html +114 -0
- data/public/406-unsupported-browser.html +114 -0
- data/public/422.html +114 -0
- data/public/500.html +114 -0
- data/public/icon.png +0 -0
- data/public/icon.svg +3 -0
- data/public/robots.txt +1 -0
- data/script/.keep +0 -0
- data/storage/.keep +0 -0
- data/superfast.gemspec +48 -0
- data/tmp/.keep +0 -0
- data/tmp/pids/.keep +0 -0
- data/tmp/storage/.keep +0 -0
- data/vendor/.keep +0 -0
- data/vendor/javascript/.keep +0 -0
- metadata +298 -0
data/db/cable_schema.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
ActiveRecord::Schema[7.1].define(version: 1) do
|
2
|
+
create_table "solid_cable_messages", force: :cascade do |t|
|
3
|
+
t.binary "channel", limit: 1024, null: false
|
4
|
+
t.binary "payload", limit: 536870912, null: false
|
5
|
+
t.datetime "created_at", null: false
|
6
|
+
t.integer "channel_hash", limit: 8, null: false
|
7
|
+
t.index ["channel"], name: "index_solid_cable_messages_on_channel"
|
8
|
+
t.index ["channel_hash"], name: "index_solid_cable_messages_on_channel_hash"
|
9
|
+
t.index ["created_at"], name: "index_solid_cable_messages_on_created_at"
|
10
|
+
end
|
11
|
+
end
|
data/db/cache_schema.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
ActiveRecord::Schema[7.2].define(version: 1) do
|
4
|
+
create_table "solid_cache_entries", force: :cascade do |t|
|
5
|
+
t.binary "key", limit: 1024, null: false
|
6
|
+
t.binary "value", limit: 536870912, null: false
|
7
|
+
t.datetime "created_at", null: false
|
8
|
+
t.integer "key_hash", limit: 8, null: false
|
9
|
+
t.integer "byte_size", limit: 4, null: false
|
10
|
+
t.index ["byte_size"], name: "index_solid_cache_entries_on_byte_size"
|
11
|
+
t.index ["key_hash", "byte_size"], name: "index_solid_cache_entries_on_key_hash_and_byte_size"
|
12
|
+
t.index ["key_hash"], name: "index_solid_cache_entries_on_key_hash", unique: true
|
13
|
+
end
|
14
|
+
end
|
data/db/queue_schema.rb
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
ActiveRecord::Schema[7.1].define(version: 1) do
|
2
|
+
create_table "solid_queue_blocked_executions", force: :cascade do |t|
|
3
|
+
t.bigint "job_id", null: false
|
4
|
+
t.string "queue_name", null: false
|
5
|
+
t.integer "priority", default: 0, null: false
|
6
|
+
t.string "concurrency_key", null: false
|
7
|
+
t.datetime "expires_at", null: false
|
8
|
+
t.datetime "created_at", null: false
|
9
|
+
t.index [ "concurrency_key", "priority", "job_id" ], name: "index_solid_queue_blocked_executions_for_release"
|
10
|
+
t.index [ "expires_at", "concurrency_key" ], name: "index_solid_queue_blocked_executions_for_maintenance"
|
11
|
+
t.index [ "job_id" ], name: "index_solid_queue_blocked_executions_on_job_id", unique: true
|
12
|
+
end
|
13
|
+
|
14
|
+
create_table "solid_queue_claimed_executions", force: :cascade do |t|
|
15
|
+
t.bigint "job_id", null: false
|
16
|
+
t.bigint "process_id"
|
17
|
+
t.datetime "created_at", null: false
|
18
|
+
t.index [ "job_id" ], name: "index_solid_queue_claimed_executions_on_job_id", unique: true
|
19
|
+
t.index [ "process_id", "job_id" ], name: "index_solid_queue_claimed_executions_on_process_id_and_job_id"
|
20
|
+
end
|
21
|
+
|
22
|
+
create_table "solid_queue_failed_executions", force: :cascade do |t|
|
23
|
+
t.bigint "job_id", null: false
|
24
|
+
t.text "error"
|
25
|
+
t.datetime "created_at", null: false
|
26
|
+
t.index [ "job_id" ], name: "index_solid_queue_failed_executions_on_job_id", unique: true
|
27
|
+
end
|
28
|
+
|
29
|
+
create_table "solid_queue_jobs", force: :cascade do |t|
|
30
|
+
t.string "queue_name", null: false
|
31
|
+
t.string "class_name", null: false
|
32
|
+
t.text "arguments"
|
33
|
+
t.integer "priority", default: 0, null: false
|
34
|
+
t.string "active_job_id"
|
35
|
+
t.datetime "scheduled_at"
|
36
|
+
t.datetime "finished_at"
|
37
|
+
t.string "concurrency_key"
|
38
|
+
t.datetime "created_at", null: false
|
39
|
+
t.datetime "updated_at", null: false
|
40
|
+
t.index [ "active_job_id" ], name: "index_solid_queue_jobs_on_active_job_id"
|
41
|
+
t.index [ "class_name" ], name: "index_solid_queue_jobs_on_class_name"
|
42
|
+
t.index [ "finished_at" ], name: "index_solid_queue_jobs_on_finished_at"
|
43
|
+
t.index [ "queue_name", "finished_at" ], name: "index_solid_queue_jobs_for_filtering"
|
44
|
+
t.index [ "scheduled_at", "finished_at" ], name: "index_solid_queue_jobs_for_alerting"
|
45
|
+
end
|
46
|
+
|
47
|
+
create_table "solid_queue_pauses", force: :cascade do |t|
|
48
|
+
t.string "queue_name", null: false
|
49
|
+
t.datetime "created_at", null: false
|
50
|
+
t.index [ "queue_name" ], name: "index_solid_queue_pauses_on_queue_name", unique: true
|
51
|
+
end
|
52
|
+
|
53
|
+
create_table "solid_queue_processes", force: :cascade do |t|
|
54
|
+
t.string "kind", null: false
|
55
|
+
t.datetime "last_heartbeat_at", null: false
|
56
|
+
t.bigint "supervisor_id"
|
57
|
+
t.integer "pid", null: false
|
58
|
+
t.string "hostname"
|
59
|
+
t.text "metadata"
|
60
|
+
t.datetime "created_at", null: false
|
61
|
+
t.string "name", null: false
|
62
|
+
t.index [ "last_heartbeat_at" ], name: "index_solid_queue_processes_on_last_heartbeat_at"
|
63
|
+
t.index [ "name", "supervisor_id" ], name: "index_solid_queue_processes_on_name_and_supervisor_id", unique: true
|
64
|
+
t.index [ "supervisor_id" ], name: "index_solid_queue_processes_on_supervisor_id"
|
65
|
+
end
|
66
|
+
|
67
|
+
create_table "solid_queue_ready_executions", force: :cascade do |t|
|
68
|
+
t.bigint "job_id", null: false
|
69
|
+
t.string "queue_name", null: false
|
70
|
+
t.integer "priority", default: 0, null: false
|
71
|
+
t.datetime "created_at", null: false
|
72
|
+
t.index [ "job_id" ], name: "index_solid_queue_ready_executions_on_job_id", unique: true
|
73
|
+
t.index [ "priority", "job_id" ], name: "index_solid_queue_poll_all"
|
74
|
+
t.index [ "queue_name", "priority", "job_id" ], name: "index_solid_queue_poll_by_queue"
|
75
|
+
end
|
76
|
+
|
77
|
+
create_table "solid_queue_recurring_executions", force: :cascade do |t|
|
78
|
+
t.bigint "job_id", null: false
|
79
|
+
t.string "task_key", null: false
|
80
|
+
t.datetime "run_at", null: false
|
81
|
+
t.datetime "created_at", null: false
|
82
|
+
t.index [ "job_id" ], name: "index_solid_queue_recurring_executions_on_job_id", unique: true
|
83
|
+
t.index [ "task_key", "run_at" ], name: "index_solid_queue_recurring_executions_on_task_key_and_run_at", unique: true
|
84
|
+
end
|
85
|
+
|
86
|
+
create_table "solid_queue_recurring_tasks", force: :cascade do |t|
|
87
|
+
t.string "key", null: false
|
88
|
+
t.string "schedule", null: false
|
89
|
+
t.string "command", limit: 2048
|
90
|
+
t.string "class_name"
|
91
|
+
t.text "arguments"
|
92
|
+
t.string "queue_name"
|
93
|
+
t.integer "priority", default: 0
|
94
|
+
t.boolean "static", default: true, null: false
|
95
|
+
t.text "description"
|
96
|
+
t.datetime "created_at", null: false
|
97
|
+
t.datetime "updated_at", null: false
|
98
|
+
t.index [ "key" ], name: "index_solid_queue_recurring_tasks_on_key", unique: true
|
99
|
+
t.index [ "static" ], name: "index_solid_queue_recurring_tasks_on_static"
|
100
|
+
end
|
101
|
+
|
102
|
+
create_table "solid_queue_scheduled_executions", force: :cascade do |t|
|
103
|
+
t.bigint "job_id", null: false
|
104
|
+
t.string "queue_name", null: false
|
105
|
+
t.integer "priority", default: 0, null: false
|
106
|
+
t.datetime "scheduled_at", null: false
|
107
|
+
t.datetime "created_at", null: false
|
108
|
+
t.index [ "job_id" ], name: "index_solid_queue_scheduled_executions_on_job_id", unique: true
|
109
|
+
t.index [ "scheduled_at", "priority", "job_id" ], name: "index_solid_queue_dispatch_all"
|
110
|
+
end
|
111
|
+
|
112
|
+
create_table "solid_queue_semaphores", force: :cascade do |t|
|
113
|
+
t.string "key", null: false
|
114
|
+
t.integer "value", default: 1, null: false
|
115
|
+
t.datetime "expires_at", null: false
|
116
|
+
t.datetime "created_at", null: false
|
117
|
+
t.datetime "updated_at", null: false
|
118
|
+
t.index [ "expires_at" ], name: "index_solid_queue_semaphores_on_expires_at"
|
119
|
+
t.index [ "key", "value" ], name: "index_solid_queue_semaphores_on_key_and_value"
|
120
|
+
t.index [ "key" ], name: "index_solid_queue_semaphores_on_key", unique: true
|
121
|
+
end
|
122
|
+
|
123
|
+
add_foreign_key "solid_queue_blocked_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
124
|
+
add_foreign_key "solid_queue_claimed_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
125
|
+
add_foreign_key "solid_queue_failed_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
126
|
+
add_foreign_key "solid_queue_ready_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
127
|
+
add_foreign_key "solid_queue_recurring_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
128
|
+
add_foreign_key "solid_queue_scheduled_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
129
|
+
end
|
data/db/schema.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# This file is auto-generated from the current state of the database. Instead
|
2
|
+
# of editing this file, please use the migrations feature of Active Record to
|
3
|
+
# incrementally modify your database, and then regenerate this schema definition.
|
4
|
+
#
|
5
|
+
# This file is the source Rails uses to define your schema when running `bin/rails
|
6
|
+
# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
|
7
|
+
# be faster and is potentially less error prone than running all of your
|
8
|
+
# migrations from scratch. Old migrations may fail to apply correctly if those
|
9
|
+
# migrations use external dependencies or application code.
|
10
|
+
#
|
11
|
+
# It's strongly recommended that you check this file into your version control system.
|
12
|
+
|
13
|
+
ActiveRecord::Schema[8.0].define(version: 0) do
|
14
|
+
# These are extensions that must be enabled in order to support this database
|
15
|
+
enable_extension "pg_catalog.plpgsql"
|
16
|
+
|
17
|
+
end
|
data/db/seeds.rb
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
# This file should ensure the existence of records required to run the application in every environment (production,
|
2
|
+
# development, test). The code here should be idempotent so that it can be executed at any point in every environment.
|
3
|
+
# The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup).
|
4
|
+
#
|
5
|
+
# Example:
|
6
|
+
#
|
7
|
+
# ["Action", "Comedy", "Drama", "Horror"].each do |genre_name|
|
8
|
+
# MovieGenre.find_or_create_by!(name: genre_name)
|
9
|
+
# end
|
data/lib/superfast.rb
ADDED
data/lib/tasks/.keep
ADDED
File without changes
|
data/log/.keep
ADDED
File without changes
|
data/public/400.html
ADDED
@@ -0,0 +1,114 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
|
3
|
+
<html lang="en">
|
4
|
+
|
5
|
+
<head>
|
6
|
+
|
7
|
+
<title>The server cannot process the request due to a client error (400 Bad Request)</title>
|
8
|
+
|
9
|
+
<meta charset="utf-8">
|
10
|
+
<meta name="viewport" content="initial-scale=1, width=device-width">
|
11
|
+
<meta name="robots" content="noindex, nofollow">
|
12
|
+
|
13
|
+
<style>
|
14
|
+
|
15
|
+
*, *::before, *::after {
|
16
|
+
box-sizing: border-box;
|
17
|
+
}
|
18
|
+
|
19
|
+
* {
|
20
|
+
margin: 0;
|
21
|
+
}
|
22
|
+
|
23
|
+
html {
|
24
|
+
font-size: 16px;
|
25
|
+
}
|
26
|
+
|
27
|
+
body {
|
28
|
+
background: #FFF;
|
29
|
+
color: #261B23;
|
30
|
+
display: grid;
|
31
|
+
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Aptos, Roboto, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
32
|
+
font-size: clamp(1rem, 2.5vw, 2rem);
|
33
|
+
-webkit-font-smoothing: antialiased;
|
34
|
+
font-style: normal;
|
35
|
+
font-weight: 400;
|
36
|
+
letter-spacing: -0.0025em;
|
37
|
+
line-height: 1.4;
|
38
|
+
min-height: 100vh;
|
39
|
+
place-items: center;
|
40
|
+
text-rendering: optimizeLegibility;
|
41
|
+
-webkit-text-size-adjust: 100%;
|
42
|
+
}
|
43
|
+
|
44
|
+
a {
|
45
|
+
color: inherit;
|
46
|
+
font-weight: 700;
|
47
|
+
text-decoration: underline;
|
48
|
+
text-underline-offset: 0.0925em;
|
49
|
+
}
|
50
|
+
|
51
|
+
b, strong {
|
52
|
+
font-weight: 700;
|
53
|
+
}
|
54
|
+
|
55
|
+
i, em {
|
56
|
+
font-style: italic;
|
57
|
+
}
|
58
|
+
|
59
|
+
main {
|
60
|
+
display: grid;
|
61
|
+
gap: 1em;
|
62
|
+
padding: 2em;
|
63
|
+
place-items: center;
|
64
|
+
text-align: center;
|
65
|
+
}
|
66
|
+
|
67
|
+
main header {
|
68
|
+
width: min(100%, 12em);
|
69
|
+
}
|
70
|
+
|
71
|
+
main header svg {
|
72
|
+
height: auto;
|
73
|
+
max-width: 100%;
|
74
|
+
width: 100%;
|
75
|
+
}
|
76
|
+
|
77
|
+
main article {
|
78
|
+
width: min(100%, 30em);
|
79
|
+
}
|
80
|
+
|
81
|
+
main article p {
|
82
|
+
font-size: 75%;
|
83
|
+
}
|
84
|
+
|
85
|
+
main article br {
|
86
|
+
|
87
|
+
display: none;
|
88
|
+
|
89
|
+
@media(min-width: 48em) {
|
90
|
+
display: inline;
|
91
|
+
}
|
92
|
+
|
93
|
+
}
|
94
|
+
|
95
|
+
</style>
|
96
|
+
|
97
|
+
</head>
|
98
|
+
|
99
|
+
<body>
|
100
|
+
|
101
|
+
<!-- This file lives in public/400.html -->
|
102
|
+
|
103
|
+
<main>
|
104
|
+
<header>
|
105
|
+
<svg height="172" viewBox="0 0 480 172" width="480" xmlns="http://www.w3.org/2000/svg"><path d="m124.48 3.00509-45.6889 100.02991h26.2239v-28.1168h38.119v28.1168h21.628v35.145h-21.628v30.82h-37.308v-30.82h-72.1833v-31.901l50.2851-103.27391zm115.583 168.69891c-40.822 0-64.884-35.146-64.884-85.7015 0-50.5554 24.062-85.700907 64.884-85.700907 40.823 0 64.884 35.145507 64.884 85.700907 0 50.5555-24.061 85.7015-64.884 85.7015zm0-133.2831c-17.572 0-22.709 21.8984-22.709 47.5816 0 25.6835 5.137 47.5815 22.709 47.5815 17.303 0 22.71-21.898 22.71-47.5815 0-25.6832-5.407-47.5816-22.71-47.5816zm140.456 133.2831c-40.823 0-64.884-35.146-64.884-85.7015 0-50.5554 24.061-85.700907 64.884-85.700907 40.822 0 64.884 35.145507 64.884 85.700907 0 50.5555-24.062 85.7015-64.884 85.7015zm0-133.2831c-17.573 0-22.71 21.8984-22.71 47.5816 0 25.6835 5.137 47.5815 22.71 47.5815 17.302 0 22.709-21.898 22.709-47.5815 0-25.6832-5.407-47.5816-22.709-47.5816z" fill="#f0eff0"/><path d="m123.606 85.4445c3.212 1.0523 5.538 4.2089 5.538 8.0301 0 6.1472-4.209 9.5254-11.298 9.5254h-15.617v-34.0033h14.565c7.089 0 11.353 3.1566 11.353 9.2484 0 3.6551-2.049 6.3134-4.541 7.1994zm-12.904-2.9905h5.095c2.603 0 3.988-.9968 3.988-3.1013 0-2.1044-1.385-3.0459-3.988-3.0459h-5.095zm0 6.6456v6.5902h5.981c2.492 0 3.877-1.3291 3.877-3.2674 0-2.049-1.385-3.3228-3.877-3.3228zm43.786 13.9004h-8.362v-1.274c-.831.831-3.323 1.717-5.981 1.717-4.929 0-9.083-2.769-9.083-8.0301 0-4.818 4.154-7.9193 9.581-7.9193 2.049 0 4.486.6646 5.483 1.3845v-1.606c0-1.606-.942-2.9905-3.046-2.9905-1.606 0-2.548.7199-2.935 1.8275h-8.197c.72-4.8181 4.985-8.6393 11.409-8.6393 7.088 0 11.131 3.7659 11.131 10.2453zm-8.362-6.9779v-1.4399c-.554-1.0522-2.049-1.7167-3.655-1.7167-1.717 0-3.434.7199-3.434 2.3813 0 1.7168 1.717 2.4367 3.434 2.4367 1.606 0 3.101-.6645 3.655-1.6614zm27.996 6.9779v-1.994c-1.163 1.329-3.599 2.548-6.147 2.548-7.199 0-11.131-5.8151-11.131-13.0145s3.932-13.0143 11.131-13.0143c2.548 0 4.984 1.2184 6.147 2.5475v-13.0697h8.695v35.997zm0-9.1931v-6.5902c-.664-1.3291-2.159-2.326-3.821-2.326-2.99 0-4.763 2.4368-4.763 5.6488s1.773 5.5934 4.763 5.5934c1.717 0 3.157-.9415 3.821-2.326zm35.471-2.049h-3.101v11.2421h-8.806v-34.0033h15.285c7.31 0 12.35 4.1535 12.35 11.5744 0 5.1503-2.603 8.6947-6.757 10.2453l7.975 12.1836h-9.858zm-3.101-15.2849v8.1962h5.538c3.156 0 4.596-1.606 4.596-4.0981s-1.44-4.0981-4.596-4.0981zm36.957 17.8323h8.03c-.886 5.7597-5.206 9.2487-11.685 9.2487-7.643 0-12.682-5.2613-12.682-13.0145 0-7.6978 5.316-13.0143 12.515-13.0143 7.643 0 11.962 5.095 11.962 12.5159v2.1598h-16.115c.277 2.9905 1.827 4.5965 4.32 4.5965 1.772 0 3.156-.7753 3.655-2.4921zm-3.822-10.0237c-2.049 0-3.433 1.2737-3.987 3.5997h7.532c-.111-2.0491-1.385-3.5997-3.545-3.5997zm30.98 27.5234v-10.799c-1.163 1.329-3.6 2.548-6.147 2.548-7.2 0-11.132-5.9259-11.132-13.0145 0-7.144 3.932-13.0143 11.132-13.0143 2.547 0 4.984 1.2184 6.147 2.5475v-1.9937h8.695v33.726zm0-17.9981v-6.5902c-.665-1.3291-2.105-2.326-3.821-2.326-2.991 0-4.763 2.4368-4.763 5.6488s1.772 5.5934 4.763 5.5934c1.661 0 3.156-.9415 3.821-2.326zm36.789-15.7279v24.921h-8.695v-2.16c-1.329 1.551-3.821 2.714-6.646 2.714-5.482 0-8.75-3.5999-8.75-9.1379v-16.3371h8.64v14.288c0 2.1045.996 3.5997 3.212 3.5997 1.606 0 3.101-1.0522 3.544-2.769v-15.1187zm19.084 16.2263h8.03c-.886 5.7597-5.206 9.2487-11.685 9.2487-7.643 0-12.682-5.2613-12.682-13.0145 0-7.6978 5.316-13.0143 12.515-13.0143 7.643 0 11.963 5.095 11.963 12.5159v2.1598h-16.116c.277 2.9905 1.828 4.5965 4.32 4.5965 1.772 0 3.156-.7753 3.655-2.4921zm-3.822-10.0237c-2.049 0-3.433 1.2737-3.987 3.5997h7.532c-.111-2.0491-1.385-3.5997-3.545-3.5997zm13.428 11.0206h8.474c.387 1.3845 1.606 2.1598 3.156 2.1598 1.44 0 2.548-.5538 2.548-1.7168 0-.9414-.72-1.2737-1.939-1.5506l-4.873-.9969c-4.154-.886-6.867-2.8797-6.867-7.2547 0-5.3165 4.762-8.4178 10.633-8.4178 6.812 0 10.522 3.1567 11.297 8.0855h-8.03c-.277-1.0522-1.052-1.9937-3.046-1.9937-1.273 0-2.326.5538-2.326 1.6614 0 .7753.554 1.163 1.717 1.3845l4.929 1.163c4.541 1.0522 6.978 3.4335 6.978 7.4763 0 5.3168-4.818 8.2518-10.91 8.2518-6.369 0-10.965-2.88-11.741-8.2518zm27.538-.8861v-9.5807h-3.655v-6.7564h3.655v-6.8671h8.584v6.8671h5.205v6.7564h-5.205v8.307c0 1.9383.941 2.769 2.658 2.769.941 0 1.993-.2216 2.769-.5538v7.3654c-.997.443-2.88.775-4.818.775-5.871 0-9.193-2.769-9.193-9.0819z" fill="#d30001"/></svg>
|
106
|
+
</header>
|
107
|
+
<article>
|
108
|
+
<p><strong>The server cannot process the request due to a client error.</strong> Please check the request and try again. If you’re the application owner check the logs for more information.</p>
|
109
|
+
</article>
|
110
|
+
</main>
|
111
|
+
|
112
|
+
</body>
|
113
|
+
|
114
|
+
</html>
|
data/public/404.html
ADDED
@@ -0,0 +1,114 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
|
3
|
+
<html lang="en">
|
4
|
+
|
5
|
+
<head>
|
6
|
+
|
7
|
+
<title>The page you were looking for doesn’t exist (404 Not found)</title>
|
8
|
+
|
9
|
+
<meta charset="utf-8">
|
10
|
+
<meta name="viewport" content="initial-scale=1, width=device-width">
|
11
|
+
<meta name="robots" content="noindex, nofollow">
|
12
|
+
|
13
|
+
<style>
|
14
|
+
|
15
|
+
*, *::before, *::after {
|
16
|
+
box-sizing: border-box;
|
17
|
+
}
|
18
|
+
|
19
|
+
* {
|
20
|
+
margin: 0;
|
21
|
+
}
|
22
|
+
|
23
|
+
html {
|
24
|
+
font-size: 16px;
|
25
|
+
}
|
26
|
+
|
27
|
+
body {
|
28
|
+
background: #FFF;
|
29
|
+
color: #261B23;
|
30
|
+
display: grid;
|
31
|
+
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Aptos, Roboto, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
32
|
+
font-size: clamp(1rem, 2.5vw, 2rem);
|
33
|
+
-webkit-font-smoothing: antialiased;
|
34
|
+
font-style: normal;
|
35
|
+
font-weight: 400;
|
36
|
+
letter-spacing: -0.0025em;
|
37
|
+
line-height: 1.4;
|
38
|
+
min-height: 100vh;
|
39
|
+
place-items: center;
|
40
|
+
text-rendering: optimizeLegibility;
|
41
|
+
-webkit-text-size-adjust: 100%;
|
42
|
+
}
|
43
|
+
|
44
|
+
a {
|
45
|
+
color: inherit;
|
46
|
+
font-weight: 700;
|
47
|
+
text-decoration: underline;
|
48
|
+
text-underline-offset: 0.0925em;
|
49
|
+
}
|
50
|
+
|
51
|
+
b, strong {
|
52
|
+
font-weight: 700;
|
53
|
+
}
|
54
|
+
|
55
|
+
i, em {
|
56
|
+
font-style: italic;
|
57
|
+
}
|
58
|
+
|
59
|
+
main {
|
60
|
+
display: grid;
|
61
|
+
gap: 1em;
|
62
|
+
padding: 2em;
|
63
|
+
place-items: center;
|
64
|
+
text-align: center;
|
65
|
+
}
|
66
|
+
|
67
|
+
main header {
|
68
|
+
width: min(100%, 12em);
|
69
|
+
}
|
70
|
+
|
71
|
+
main header svg {
|
72
|
+
height: auto;
|
73
|
+
max-width: 100%;
|
74
|
+
width: 100%;
|
75
|
+
}
|
76
|
+
|
77
|
+
main article {
|
78
|
+
width: min(100%, 30em);
|
79
|
+
}
|
80
|
+
|
81
|
+
main article p {
|
82
|
+
font-size: 75%;
|
83
|
+
}
|
84
|
+
|
85
|
+
main article br {
|
86
|
+
|
87
|
+
display: none;
|
88
|
+
|
89
|
+
@media(min-width: 48em) {
|
90
|
+
display: inline;
|
91
|
+
}
|
92
|
+
|
93
|
+
}
|
94
|
+
|
95
|
+
</style>
|
96
|
+
|
97
|
+
</head>
|
98
|
+
|
99
|
+
<body>
|
100
|
+
|
101
|
+
<!-- This file lives in public/404.html -->
|
102
|
+
|
103
|
+
<main>
|
104
|
+
<header>
|
105
|
+
<svg height="172" viewBox="0 0 480 172" width="480" xmlns="http://www.w3.org/2000/svg"><path d="m124.48 3.00509-45.6889 100.02991h26.2239v-28.1168h38.119v28.1168h21.628v35.145h-21.628v30.82h-37.308v-30.82h-72.1833v-31.901l50.2851-103.27391zm115.583 168.69891c-40.822 0-64.884-35.146-64.884-85.7015 0-50.5554 24.062-85.700907 64.884-85.700907 40.823 0 64.884 35.145507 64.884 85.700907 0 50.5555-24.061 85.7015-64.884 85.7015zm0-133.2831c-17.572 0-22.709 21.8984-22.709 47.5816 0 25.6835 5.137 47.5815 22.709 47.5815 17.303 0 22.71-21.898 22.71-47.5815 0-25.6832-5.407-47.5816-22.71-47.5816zm165.328-35.41581-45.689 100.02991h26.224v-28.1168h38.119v28.1168h21.628v35.145h-21.628v30.82h-37.308v-30.82h-72.184v-31.901l50.285-103.27391z" fill="#f0eff0"/><path d="m157.758 68.9967v34.0033h-7.199l-14.233-19.8814v19.8814h-8.584v-34.0033h8.307l13.125 18.7184v-18.7184zm28.454 21.5428c0 7.6978-5.15 13.0145-12.737 13.0145-7.532 0-12.738-5.3167-12.738-13.0145s5.206-13.0143 12.738-13.0143c7.587 0 12.737 5.3165 12.737 13.0143zm-8.528 0c0-3.4336-1.496-5.8703-4.209-5.8703-2.659 0-4.154 2.4367-4.154 5.8703s1.495 5.8149 4.154 5.8149c2.713 0 4.209-2.3813 4.209-5.8149zm13.184 3.8766v-9.5807h-3.655v-6.7564h3.655v-6.8671h8.584v6.8671h5.205v6.7564h-5.205v8.307c0 1.9383.941 2.769 2.658 2.769.941 0 1.994-.2216 2.769-.5538v7.3654c-.997.443-2.88.775-4.818.775-5.87 0-9.193-2.769-9.193-9.0819zm37.027 8.5839h-8.806v-34.0033h23.924v7.6978h-15.118v6.7564h13.9v7.5316h-13.9zm41.876-12.4605c0 7.6978-5.15 13.0145-12.737 13.0145-7.532 0-12.738-5.3167-12.738-13.0145s5.206-13.0143 12.738-13.0143c7.587 0 12.737 5.3165 12.737 13.0143zm-8.529 0c0-3.4336-1.495-5.8703-4.208-5.8703-2.659 0-4.154 2.4367-4.154 5.8703s1.495 5.8149 4.154 5.8149c2.713 0 4.208-2.3813 4.208-5.8149zm35.337-12.4605v24.921h-8.695v-2.16c-1.329 1.551-3.821 2.714-6.646 2.714-5.482 0-8.75-3.5999-8.75-9.1379v-16.3371h8.64v14.288c0 2.1045.997 3.5997 3.212 3.5997 1.606 0 3.101-1.0522 3.544-2.769v-15.1187zm4.076 24.921v-24.921h8.694v2.1598c1.385-1.5506 3.822-2.7136 6.701-2.7136 5.538 0 8.806 3.5997 8.806 9.1377v16.3371h-8.639v-14.2327c0-2.049-1.053-3.5443-3.268-3.5443-1.717 0-3.156.9969-3.6 2.7136v15.0634zm44.113 0v-1.994c-1.163 1.329-3.6 2.548-6.147 2.548-7.2 0-11.132-5.8151-11.132-13.0145s3.932-13.0143 11.132-13.0143c2.547 0 4.984 1.2184 6.147 2.5475v-13.0697h8.695v35.997zm0-9.1931v-6.5902c-.665-1.3291-2.16-2.326-3.821-2.326-2.991 0-4.763 2.4368-4.763 5.6488s1.772 5.5934 4.763 5.5934c1.717 0 3.156-.9415 3.821-2.326z" fill="#d30001"/></svg>
|
106
|
+
</header>
|
107
|
+
<article>
|
108
|
+
<p><strong>The page you were looking for doesn’t exist.</strong> You may have mistyped the address or the page may have moved. If you’re the application owner check the logs for more information.</p>
|
109
|
+
</article>
|
110
|
+
</main>
|
111
|
+
|
112
|
+
</body>
|
113
|
+
|
114
|
+
</html>
|
@@ -0,0 +1,114 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
|
3
|
+
<html lang="en">
|
4
|
+
|
5
|
+
<head>
|
6
|
+
|
7
|
+
<title>Your browser is not supported (406 Not Acceptable)</title>
|
8
|
+
|
9
|
+
<meta charset="utf-8">
|
10
|
+
<meta name="viewport" content="initial-scale=1, width=device-width">
|
11
|
+
<meta name="robots" content="noindex, nofollow">
|
12
|
+
|
13
|
+
<style>
|
14
|
+
|
15
|
+
*, *::before, *::after {
|
16
|
+
box-sizing: border-box;
|
17
|
+
}
|
18
|
+
|
19
|
+
* {
|
20
|
+
margin: 0;
|
21
|
+
}
|
22
|
+
|
23
|
+
html {
|
24
|
+
font-size: 16px;
|
25
|
+
}
|
26
|
+
|
27
|
+
body {
|
28
|
+
background: #FFF;
|
29
|
+
color: #261B23;
|
30
|
+
display: grid;
|
31
|
+
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Aptos, Roboto, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
32
|
+
font-size: clamp(1rem, 2.5vw, 2rem);
|
33
|
+
-webkit-font-smoothing: antialiased;
|
34
|
+
font-style: normal;
|
35
|
+
font-weight: 400;
|
36
|
+
letter-spacing: -0.0025em;
|
37
|
+
line-height: 1.4;
|
38
|
+
min-height: 100vh;
|
39
|
+
place-items: center;
|
40
|
+
text-rendering: optimizeLegibility;
|
41
|
+
-webkit-text-size-adjust: 100%;
|
42
|
+
}
|
43
|
+
|
44
|
+
a {
|
45
|
+
color: inherit;
|
46
|
+
font-weight: 700;
|
47
|
+
text-decoration: underline;
|
48
|
+
text-underline-offset: 0.0925em;
|
49
|
+
}
|
50
|
+
|
51
|
+
b, strong {
|
52
|
+
font-weight: 700;
|
53
|
+
}
|
54
|
+
|
55
|
+
i, em {
|
56
|
+
font-style: italic;
|
57
|
+
}
|
58
|
+
|
59
|
+
main {
|
60
|
+
display: grid;
|
61
|
+
gap: 1em;
|
62
|
+
padding: 2em;
|
63
|
+
place-items: center;
|
64
|
+
text-align: center;
|
65
|
+
}
|
66
|
+
|
67
|
+
main header {
|
68
|
+
width: min(100%, 12em);
|
69
|
+
}
|
70
|
+
|
71
|
+
main header svg {
|
72
|
+
height: auto;
|
73
|
+
max-width: 100%;
|
74
|
+
width: 100%;
|
75
|
+
}
|
76
|
+
|
77
|
+
main article {
|
78
|
+
width: min(100%, 30em);
|
79
|
+
}
|
80
|
+
|
81
|
+
main article p {
|
82
|
+
font-size: 75%;
|
83
|
+
}
|
84
|
+
|
85
|
+
main article br {
|
86
|
+
|
87
|
+
display: none;
|
88
|
+
|
89
|
+
@media(min-width: 48em) {
|
90
|
+
display: inline;
|
91
|
+
}
|
92
|
+
|
93
|
+
}
|
94
|
+
|
95
|
+
</style>
|
96
|
+
|
97
|
+
</head>
|
98
|
+
|
99
|
+
<body>
|
100
|
+
|
101
|
+
<!-- This file lives in public/406-unsupported-browser.html -->
|
102
|
+
|
103
|
+
<main>
|
104
|
+
<header>
|
105
|
+
<svg height="172" viewBox="0 0 480 172" width="480" xmlns="http://www.w3.org/2000/svg"><path d="m124.48 3.00509-45.6889 100.02991h26.2239v-28.1168h38.119v28.1168h21.628v35.145h-21.628v30.82h-37.308v-30.82h-72.1833v-31.901l50.2851-103.27391zm115.583 168.69891c-40.822 0-64.884-35.146-64.884-85.7015 0-50.5554 24.062-85.700907 64.884-85.700907 40.823 0 64.884 35.145507 64.884 85.700907 0 50.5555-24.061 85.7015-64.884 85.7015zm0-133.2831c-17.572 0-22.709 21.8984-22.709 47.5816 0 25.6835 5.137 47.5815 22.709 47.5815 17.303 0 22.71-21.898 22.71-47.5815 0-25.6832-5.407-47.5816-22.71-47.5816zm202.906 9.7326h-41.093c-2.433-7.2994-7.84-12.4361-17.302-12.4361-16.221 0-25.413 17.5728-25.954 34.8752v1.3517c5.137-7.0291 16.221-12.4361 30.82-12.4361 33.524 0 54.881 24.0612 54.881 53.7998 0 33.253-23.791 58.396-61.64 58.396-21.628 0-39.741-10.003-50.825-27.576-9.733-14.599-13.788-32.442-13.788-54.3406 0-51.9072 24.331-89.485807 66.236-89.485807 32.712 0 53.258 18.654107 58.665 47.851907zm-82.727 66.2355c0 13.247 9.463 22.439 22.71 22.439 12.977 0 22.439-9.192 22.439-22.439 0-13.517-9.462-22.7091-22.439-22.7091-13.247 0-22.71 9.1921-22.71 22.7091z" fill="#f0eff0"/><path d="m100.761 68.9967v34.0033h-7.1991l-14.2326-19.8814v19.8814h-8.5839v-34.0033h8.307l13.125 18.7184v-18.7184zm28.454 21.5428c0 7.6978-5.15 13.0145-12.737 13.0145-7.532 0-12.738-5.3167-12.738-13.0145s5.206-13.0143 12.738-13.0143c7.587 0 12.737 5.3165 12.737 13.0143zm-8.529 0c0-3.4336-1.495-5.8703-4.208-5.8703-2.659 0-4.154 2.4367-4.154 5.8703s1.495 5.8149 4.154 5.8149c2.713 0 4.208-2.3813 4.208-5.8149zm13.185 3.8766v-9.5807h-3.655v-6.7564h3.655v-6.8671h8.584v6.8671h5.205v6.7564h-5.205v8.307c0 1.9383.941 2.769 2.658 2.769.941 0 1.994-.2216 2.769-.5538v7.3654c-.997.443-2.88.775-4.818.775-5.87 0-9.193-2.769-9.193-9.0819zm39.02-25.4194h9.083l12.958 34.0033h-9.027l-2.436-6.5902h-12.35l-2.381 6.5902h-8.806zm4.431 10.5222-3.489 9.5807h6.978zm17.44 11.0206c0-7.6978 5.095-13.0143 12.572-13.0143 6.701 0 10.854 3.9874 11.574 9.8023h-8.418c-.221-1.4953-1.384-2.6029-3.156-2.6029-2.437 0-3.988 2.2706-3.988 5.8149s1.551 5.7595 3.988 5.7595c1.772 0 2.935-1.0522 3.156-2.5475h8.418c-.72 5.7596-4.873 9.8025-11.574 9.8025-7.477 0-12.572-5.3167-12.572-13.0145zm25.676 0c0-7.6978 5.095-13.0143 12.572-13.0143 6.701 0 10.854 3.9874 11.574 9.8023h-8.418c-.221-1.4953-1.384-2.6029-3.156-2.6029-2.437 0-3.988 2.2706-3.988 5.8149s1.551 5.7595 3.988 5.7595c1.772 0 2.935-1.0522 3.156-2.5475h8.418c-.72 5.7596-4.873 9.8025-11.574 9.8025-7.477 0-12.572-5.3167-12.572-13.0145zm42.013 3.7658h8.031c-.887 5.7597-5.206 9.2487-11.686 9.2487-7.642 0-12.682-5.2613-12.682-13.0145 0-7.6978 5.317-13.0143 12.516-13.0143 7.643 0 11.962 5.095 11.962 12.5159v2.1598h-16.115c.277 2.9905 1.827 4.5965 4.319 4.5965 1.773 0 3.157-.7753 3.655-2.4921zm-3.821-10.0237c-2.049 0-3.433 1.2737-3.987 3.5997h7.532c-.111-2.0491-1.385-3.5997-3.545-3.5997zm23.4 16.7244v10.799h-8.694v-33.726h8.694v1.9937c1.163-1.3291 3.6-2.5475 6.148-2.5475 7.199 0 11.131 5.8703 11.131 13.0143 0 7.0886-3.932 13.0145-11.131 13.0145-2.548 0-4.985-1.219-6.148-2.548zm0-13.7893v6.5902c.665 1.3845 2.16 2.326 3.822 2.326 2.99 0 4.762-2.3814 4.762-5.5934s-1.772-5.6488-4.762-5.6488c-1.717 0-3.157.9969-3.822 2.326zm21.892 7.1994v-9.5807h-3.655v-6.7564h3.655v-6.8671h8.584v6.8671h5.206v6.7564h-5.206v8.307c0 1.9383.941 2.769 2.658 2.769.942 0 1.994-.2216 2.769-.5538v7.3654c-.997.443-2.88.775-4.818.775-5.87 0-9.193-2.769-9.193-9.0819zm39.458 8.5839h-8.363v-1.274c-.83.831-3.322 1.717-5.981 1.717-4.928 0-9.082-2.769-9.082-8.0301 0-4.818 4.154-7.9193 9.581-7.9193 2.049 0 4.486.6646 5.482 1.3845v-1.606c0-1.606-.941-2.9905-3.045-2.9905-1.606 0-2.548.7199-2.936 1.8275h-8.196c.72-4.8181 4.984-8.6393 11.408-8.6393 7.089 0 11.132 3.7659 11.132 10.2453zm-8.363-6.9779v-1.4399c-.553-1.0522-2.049-1.7167-3.655-1.7167-1.716 0-3.433.7199-3.433 2.3813 0 1.7168 1.717 2.4367 3.433 2.4367 1.606 0 3.102-.6645 3.655-1.6614zm20.742 4.9839v1.994h-8.694v-35.997h8.694v13.0697c1.163-1.3291 3.6-2.5475 6.148-2.5475 7.199 0 11.131 5.8149 11.131 13.0143s-3.932 13.0145-11.131 13.0145c-2.548 0-4.985-1.219-6.148-2.548zm0-13.7893v6.5902c.665 1.3845 2.105 2.326 3.822 2.326 2.99 0 4.762-2.3814 4.762-5.5934s-1.772-5.6488-4.762-5.6488c-1.662 0-3.157.9969-3.822 2.326zm28.759-20.2137v35.997h-8.695v-35.997zm19.172 27.3023h8.03c-.886 5.7597-5.206 9.2487-11.685 9.2487-7.643 0-12.682-5.2613-12.682-13.0145 0-7.6978 5.316-13.0143 12.516-13.0143 7.642 0 11.962 5.095 11.962 12.5159v2.1598h-16.116c.277 2.9905 1.828 4.5965 4.32 4.5965 1.772 0 3.157-.7753 3.655-2.4921zm-3.821-10.0237c-2.049 0-3.434 1.2737-3.988 3.5997h7.532c-.111-2.0491-1.384-3.5997-3.544-3.5997z" fill="#d30001"/></svg>
|
106
|
+
</header>
|
107
|
+
<article>
|
108
|
+
<p><strong>Your browser is not supported.</strong><br> Please upgrade your browser to continue.</p>
|
109
|
+
</article>
|
110
|
+
</main>
|
111
|
+
|
112
|
+
</body>
|
113
|
+
|
114
|
+
</html>
|