@constructive-io/graphql-server 2.10.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +89 -0
  3. package/errors/404-message.d.ts +2 -0
  4. package/errors/404-message.js +232 -0
  5. package/errors/404.d.ts +2 -0
  6. package/errors/404.js +218 -0
  7. package/errors/50x.d.ts +2 -0
  8. package/errors/50x.js +216 -0
  9. package/esm/errors/404-message.js +230 -0
  10. package/esm/errors/404.js +216 -0
  11. package/esm/errors/50x.js +214 -0
  12. package/esm/index.js +2 -0
  13. package/esm/middleware/api.js +337 -0
  14. package/esm/middleware/auth.js +68 -0
  15. package/esm/middleware/cors.js +63 -0
  16. package/esm/middleware/flush.js +49 -0
  17. package/esm/middleware/gql.js +125 -0
  18. package/esm/middleware/graphile.js +84 -0
  19. package/esm/middleware/types.js +1 -0
  20. package/esm/plugins/PublicKeySignature.js +114 -0
  21. package/esm/run.js +8 -0
  22. package/esm/schema.js +86 -0
  23. package/esm/scripts/create-bucket.js +32 -0
  24. package/esm/server.js +95 -0
  25. package/esm/types.js +1 -0
  26. package/index.d.ts +2 -0
  27. package/index.js +18 -0
  28. package/middleware/api.d.ts +6 -0
  29. package/middleware/api.js +346 -0
  30. package/middleware/auth.d.ts +4 -0
  31. package/middleware/auth.js +75 -0
  32. package/middleware/cors.d.ts +14 -0
  33. package/middleware/cors.js +70 -0
  34. package/middleware/flush.d.ts +5 -0
  35. package/middleware/flush.js +54 -0
  36. package/middleware/gql.d.ts +6 -0
  37. package/middleware/gql.js +131 -0
  38. package/middleware/graphile.d.ts +4 -0
  39. package/middleware/graphile.js +91 -0
  40. package/middleware/types.d.ts +33 -0
  41. package/middleware/types.js +2 -0
  42. package/package.json +88 -0
  43. package/plugins/PublicKeySignature.d.ts +11 -0
  44. package/plugins/PublicKeySignature.js +121 -0
  45. package/run.d.ts +2 -0
  46. package/run.js +10 -0
  47. package/schema.d.ts +12 -0
  48. package/schema.js +123 -0
  49. package/scripts/create-bucket.d.ts +1 -0
  50. package/scripts/create-bucket.js +34 -0
  51. package/server.d.ts +17 -0
  52. package/server.js +102 -0
  53. package/types.d.ts +85 -0
  54. package/types.js +2 -0
package/errors/50x.js ADDED
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = `
4
+ <html lang="en">
5
+
6
+ <head>
7
+ <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
8
+ <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
9
+ <META NAME="GOOGLEBOT" CONTENT="NOARCHIVE">
10
+ <title>Uh Oh</title>
11
+
12
+ <link href='//fonts.googleapis.com/css2?family=Fjalla+One&display=swap' rel='stylesheet' type='text/css'>
13
+
14
+ <style type="text/css">
15
+ .fade-in-cls {
16
+ -webkit-animation: fade-in 2s 0.2s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275);
17
+ -moz-animation: fade-in 2s 0.2s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275);
18
+ animation: fade-in 2s 0.2s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275);
19
+ -webkit-transform: translateY(10px);
20
+ -moz-transform: translateY(10px);
21
+ -o-transform: translateY(10px);
22
+ transform: translateY(10px);
23
+ -webkit-opacity: 0;
24
+ -moz-opacity: 0;
25
+ opacity: 0;
26
+ }
27
+
28
+ @-webkit-keyframes fade-in {
29
+ 100% {
30
+ -webkit-transform: translateY(0px);
31
+ -moz-transform: translateY(0px);
32
+ -o-transform: translateY(0px);
33
+ transform: translateY(0px);
34
+ -webkit-opacity: 1;
35
+ -moz-opacity: 1;
36
+ opacity: 1;
37
+ }
38
+ }
39
+
40
+ @-moz-keyframes fade-in {
41
+ 100% {
42
+ -webkit-transform: translateY(0px);
43
+ -moz-transform: translateY(0px);
44
+ -o-transform: translateY(0px);
45
+ transform: translateY(0px);
46
+ -webkit-opacity: 1;
47
+ -moz-opacity: 1;
48
+ opacity: 1;
49
+ }
50
+ }
51
+
52
+ @keyframes fade-in {
53
+ 100% {
54
+ -webkit-transform: translateY(0px);
55
+ -moz-transform: translateY(0px);
56
+ -o-transform: translateY(0px);
57
+ transform: translateY(0px);
58
+ -webkit-opacity: 1;
59
+ -moz-opacity: 1;
60
+ opacity: 1;
61
+ }
62
+ }
63
+
64
+ .time {
65
+
66
+ -webkit-animation: ckw 15s infinite;
67
+ /* Safari 4+ */
68
+ -moz-animation: ckw 15s infinite;
69
+ /* Fx 5+ */
70
+ -o-animation: ckw 15s infinite;
71
+ /* Opera 12+ */
72
+ animation: ckw 15s infinite;
73
+ /* IE 10+, Fx 29+ */
74
+ -webkit-animation-timing-function: linear;
75
+ /* Chrome, Safari, Opera */
76
+ animation-timing-function: linear;
77
+ transform-origin: 50% 50%;
78
+ display: inline-block;
79
+ /* <--- */
80
+ }
81
+
82
+ @keyframes ckw {
83
+ 0% {
84
+ transform: rotate(0deg);
85
+ -webkit-transform: rotate(0deg);
86
+ -moz-transform: rotate(0deg);
87
+ -o-transform: rotate(0deg);
88
+ }
89
+
90
+ 100% {
91
+ transform: rotate(360deg);
92
+ -webkit-transform: rotate(360deg);
93
+ -moz-transform: rotate(360deg);
94
+ -o-transform: rotate(360deg);
95
+ }
96
+ }
97
+
98
+ @-webkit-keyframes ckw {
99
+ 0% {
100
+ transform: rotate(0deg);
101
+ -webkit-transform: rotate(0deg);
102
+ -moz-transform: rotate(0deg);
103
+ -o-transform: rotate(0deg);
104
+ }
105
+
106
+ 100% {
107
+ transform: rotate(360deg);
108
+ -webkit-transform: rotate(360deg);
109
+ -moz-transform: rotate(360deg);
110
+ -o-transform: rotate(360deg);
111
+ }
112
+ }
113
+
114
+ @-moz-keyframes ckw {
115
+ 0% {
116
+ transform: rotate(0deg);
117
+ -webkit-transform: rotate(0deg);
118
+ -moz-transform: rotate(0deg);
119
+ -o-transform: rotate(0deg);
120
+ }
121
+
122
+ 100% {
123
+ transform: rotate(360deg);
124
+ -webkit-transform: rotate(360deg);
125
+ -moz-transform: rotate(360deg);
126
+ -o-transform: rotate(360deg);
127
+ }
128
+ }
129
+
130
+ body {
131
+ background-color: #dde7e9;
132
+ color: #01A1FF;
133
+ font-family: 'Fjalla One', sans-serif;
134
+ position: relative;
135
+ margin: 0px;
136
+ }
137
+
138
+ section {
139
+ width: 100%;
140
+ height: 100%;
141
+ position: absolute;
142
+ }
143
+
144
+ article {
145
+ display: table;
146
+ width: 100%;
147
+ height: 100%;
148
+ }
149
+
150
+ /* .border-top {
151
+ width: 95px;
152
+ background-color: #fff;
153
+ height: 2px;
154
+ display: inline-block;
155
+ margin: 0px auto;
156
+ } */
157
+
158
+ .vcntr {
159
+ display: table-cell;
160
+ height: 100%;
161
+ width: 100%;
162
+ vertical-align: middle;
163
+ }
164
+
165
+ .logo {
166
+ width: 100px;
167
+ margin: 10px auto;
168
+ display: block;
169
+ }
170
+
171
+ h1 {
172
+ font-size: 21px;
173
+ line-height: 32px;
174
+ margin-bottom: 0px;
175
+ margin-top: 28px;
176
+ font-weight: 700;
177
+ text-transform: uppercase;
178
+ letter-spacing: 2px;
179
+ }
180
+
181
+ p {
182
+ font-size: 16px;
183
+ line-height: 23px;
184
+ margin-bottom: 8px;
185
+ margin-top: 6px;
186
+ }
187
+
188
+ .textc {
189
+ text-align: center;
190
+ }
191
+
192
+ @media only screen and (max-width:480px) {
193
+ .logo {
194
+ width: 100px;
195
+ }
196
+ }
197
+ </style>
198
+ </head>
199
+
200
+ <body class="">
201
+ <section>
202
+ <article>
203
+ <div class="vcntr">
204
+ <div class="logo fade-in-cls">
205
+ <svg data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64.95 61.24"><path d="M16.36 43.47a14.56 14.56 0 01-8.79 0A11.16 11.16 0 011 38.34a8.83 8.83 0 01-.45-1A8.09 8.09 0 01.76 31a10.08 10.08 0 013.68-4.17 6.23 6.23 0 01-.24-.65A8.17 8.17 0 014.68 20a10.47 10.47 0 014.53-4.53 13.25 13.25 0 012.12-.9 12.35 12.35 0 012.5-7.45A17.35 17.35 0 0122.7 1a22.38 22.38 0 0113.48 0 17.07 17.07 0 019.42 6.9 18.75 18.75 0 019.8.4 14 14 0 018.29 6.46 10.17 10.17 0 01.78 1.83 10 10 0 01-.59 7.56 13.05 13.05 0 01-5.64 5.64A17.05 17.05 0 0155.4 31l-39 12.45zM64.92 36q-1.05 4.48-10.54 7.63l-.36.12L15 56.22a9.87 9.87 0 01-1.91.41C6.88 57.55 2.16 54.78 0 51.24a8.2 8.2 0 00.56 3.2 7.45 7.45 0 00.45 1 11.09 11.09 0 006.56 5.13 14.64 14.64 0 008.79 0l39-12.45a17.07 17.07 0 002.84-1.2 13 13 0 005.64-5.63 10.19 10.19 0 001-5.27zm0-8.59q-1.05 4.49-10.54 7.64l-.36.12L15 47.64a9.84 9.84 0 01-1.91.4C6.88 49 2.16 46.19 0 42.65a8.28 8.28 0 00.56 3.21 8.83 8.83 0 00.45 1A11.16 11.16 0 007.57 52a14.64 14.64 0 008.79 0l39-12.45a17.05 17.05 0 002.84-1.19 13.05 13.05 0 005.64-5.64 10.17 10.17 0 001-5.27zM9 39.13a10.11 10.11 0 006 0l39-12.45a12.25 12.25 0 002.06-.87 8.52 8.52 0 003.7-3.62 5.52 5.52 0 00.37-4.19 6.6 6.6 0 00-.46-1A9.57 9.57 0 0054 12.68a14.17 14.17 0 00-8.48 0l-.16.05-.2.07-2 .69-.84-2c-.07-.16-.12-.27-.14-.33l-.18-.27a12.26 12.26 0 00-7.2-5.51 17.85 17.85 0 00-10.73 0 12.81 12.81 0 00-6.56 4.44 7.58 7.58 0 00-1.47 6l.45 2.29-2.31.4c-.27 0-.5.09-.68.13s-.46.12-.66.19a8.31 8.31 0 00-1.47.62A5.88 5.88 0 008.78 22a3.71 3.71 0 00-.24 2.79 3.77 3.77 0 00.31.7c.07.13.15.26.24.4.1.14.19.27.29.39l2 2.44-3 1.13a9.92 9.92 0 00-.94.44 5.79 5.79 0 00-2.59 2.57 3.57 3.57 0 00-.1 2.83 4.9 4.9 0 00.22.48 6.69 6.69 0 003.92 3z" fill="#01a1ff"/></svg>
206
+ </div>
207
+ <div class="textc">
208
+ <h1>Uh Oh!</h1>
209
+ <p>We’re really sorry about that. Please contact support of the issue persists.</p>
210
+ </div>
211
+ </div>
212
+ </article>
213
+ </section>
214
+ </body>
215
+
216
+ </html>`;
@@ -0,0 +1,230 @@
1
+ export default (message = "We’re really sorry about that. The service you were looking for doesn't exist.", html = '') => `
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
6
+ <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
7
+ <META NAME="GOOGLEBOT" CONTENT="NOARCHIVE">
8
+ <title>Not Found</title>
9
+
10
+ <link href='//fonts.googleapis.com/css2?family=Fjalla+One&display=swap' rel='stylesheet' type='text/css'>
11
+
12
+ <script src="https://cdn.tailwindcss.com"></script>
13
+ <style>
14
+ .text-brand {
15
+ color: #01a1ff;
16
+ }
17
+ .text-brand:hover {
18
+ text-decoration: underline;
19
+ }
20
+ h1.text-brand:hover {
21
+ text-decoration: none;
22
+ }
23
+ </style>
24
+
25
+ <style type="text/css">
26
+ .fade-in-cls {
27
+ -webkit-animation: fade-in 2s 0.2s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275);
28
+ -moz-animation: fade-in 2s 0.2s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275);
29
+ animation: fade-in 2s 0.2s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275);
30
+ -webkit-transform: translateY(10px);
31
+ -moz-transform: translateY(10px);
32
+ -o-transform: translateY(10px);
33
+ transform: translateY(10px);
34
+ -webkit-opacity: 0;
35
+ -moz-opacity: 0;
36
+ opacity: 0;
37
+ }
38
+
39
+ @-webkit-keyframes fade-in {
40
+ 100% {
41
+ -webkit-transform: translateY(0px);
42
+ -moz-transform: translateY(0px);
43
+ -o-transform: translateY(0px);
44
+ transform: translateY(0px);
45
+ -webkit-opacity: 1;
46
+ -moz-opacity: 1;
47
+ opacity: 1;
48
+ }
49
+ }
50
+
51
+ @-moz-keyframes fade-in {
52
+ 100% {
53
+ -webkit-transform: translateY(0px);
54
+ -moz-transform: translateY(0px);
55
+ -o-transform: translateY(0px);
56
+ transform: translateY(0px);
57
+ -webkit-opacity: 1;
58
+ -moz-opacity: 1;
59
+ opacity: 1;
60
+ }
61
+ }
62
+
63
+ @keyframes fade-in {
64
+ 100% {
65
+ -webkit-transform: translateY(0px);
66
+ -moz-transform: translateY(0px);
67
+ -o-transform: translateY(0px);
68
+ transform: translateY(0px);
69
+ -webkit-opacity: 1;
70
+ -moz-opacity: 1;
71
+ opacity: 1;
72
+ }
73
+ }
74
+
75
+ .time {
76
+
77
+ -webkit-animation: ckw 15s infinite;
78
+ /* Safari 4+ */
79
+ -moz-animation: ckw 15s infinite;
80
+ /* Fx 5+ */
81
+ -o-animation: ckw 15s infinite;
82
+ /* Opera 12+ */
83
+ animation: ckw 15s infinite;
84
+ /* IE 10+, Fx 29+ */
85
+ -webkit-animation-timing-function: linear;
86
+ /* Chrome, Safari, Opera */
87
+ animation-timing-function: linear;
88
+ transform-origin: 50% 50%;
89
+ display: inline-block;
90
+ /* <--- */
91
+ }
92
+
93
+ @keyframes ckw {
94
+ 0% {
95
+ transform: rotate(0deg);
96
+ -webkit-transform: rotate(0deg);
97
+ -moz-transform: rotate(0deg);
98
+ -o-transform: rotate(0deg);
99
+ }
100
+
101
+ 100% {
102
+ transform: rotate(360deg);
103
+ -webkit-transform: rotate(360deg);
104
+ -moz-transform: rotate(360deg);
105
+ -o-transform: rotate(360deg);
106
+ }
107
+ }
108
+
109
+ @-webkit-keyframes ckw {
110
+ 0% {
111
+ transform: rotate(0deg);
112
+ -webkit-transform: rotate(0deg);
113
+ -moz-transform: rotate(0deg);
114
+ -o-transform: rotate(0deg);
115
+ }
116
+
117
+ 100% {
118
+ transform: rotate(360deg);
119
+ -webkit-transform: rotate(360deg);
120
+ -moz-transform: rotate(360deg);
121
+ -o-transform: rotate(360deg);
122
+ }
123
+ }
124
+
125
+ @-moz-keyframes ckw {
126
+ 0% {
127
+ transform: rotate(0deg);
128
+ -webkit-transform: rotate(0deg);
129
+ -moz-transform: rotate(0deg);
130
+ -o-transform: rotate(0deg);
131
+ }
132
+
133
+ 100% {
134
+ transform: rotate(360deg);
135
+ -webkit-transform: rotate(360deg);
136
+ -moz-transform: rotate(360deg);
137
+ -o-transform: rotate(360deg);
138
+ }
139
+ }
140
+
141
+ body {
142
+ background-color: #dde7e9;
143
+ color: #01A1FF;
144
+ font-family: 'Fjalla One', sans-serif;
145
+ position: relative;
146
+ margin: 0px;
147
+ }
148
+
149
+ section {
150
+ width: 100%;
151
+ height: 100%;
152
+ position: absolute;
153
+ }
154
+
155
+ article {
156
+ display: table;
157
+ width: 100%;
158
+ height: 100%;
159
+ }
160
+
161
+ /* .border-top {
162
+ width: 95px;
163
+ background-color: #fff;
164
+ height: 2px;
165
+ display: inline-block;
166
+ margin: 0px auto;
167
+ } */
168
+
169
+ .vcntr {
170
+ display: table-cell;
171
+ height: 100%;
172
+ width: 100%;
173
+ vertical-align: middle;
174
+ }
175
+
176
+ .logo {
177
+ width: 100px;
178
+ margin: 10px auto;
179
+ display: block;
180
+ }
181
+
182
+ h1 {
183
+ font-size: 21px;
184
+ line-height: 32px;
185
+ margin-bottom: 0px;
186
+ margin-top: 28px;
187
+ font-weight: 700;
188
+ text-transform: uppercase;
189
+ letter-spacing: 2px;
190
+ }
191
+
192
+ p {
193
+ font-size: 16px;
194
+ line-height: 23px;
195
+ margin-bottom: 8px;
196
+ margin-top: 6px;
197
+ }
198
+
199
+ .textc {
200
+ text-align: center;
201
+ }
202
+
203
+ @media only screen and (max-width:480px) {
204
+ .logo {
205
+ width: 100px;
206
+ }
207
+ }
208
+ </style>
209
+ </head>
210
+
211
+ <body class="">
212
+ <section>
213
+ <article>
214
+ <div class="vcntr">
215
+ <div class="logo fade-in-cls">
216
+ <svg data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64.95 61.24"><path d="M16.36 43.47a14.56 14.56 0 01-8.79 0A11.16 11.16 0 011 38.34a8.83 8.83 0 01-.45-1A8.09 8.09 0 01.76 31a10.08 10.08 0 013.68-4.17 6.23 6.23 0 01-.24-.65A8.17 8.17 0 014.68 20a10.47 10.47 0 014.53-4.53 13.25 13.25 0 012.12-.9 12.35 12.35 0 012.5-7.45A17.35 17.35 0 0122.7 1a22.38 22.38 0 0113.48 0 17.07 17.07 0 019.42 6.9 18.75 18.75 0 019.8.4 14 14 0 018.29 6.46 10.17 10.17 0 01.78 1.83 10 10 0 01-.59 7.56 13.05 13.05 0 01-5.64 5.64A17.05 17.05 0 0155.4 31l-39 12.45zM64.92 36q-1.05 4.48-10.54 7.63l-.36.12L15 56.22a9.87 9.87 0 01-1.91.41C6.88 57.55 2.16 54.78 0 51.24a8.2 8.2 0 00.56 3.2 7.45 7.45 0 00.45 1 11.09 11.09 0 006.56 5.13 14.64 14.64 0 008.79 0l39-12.45a17.07 17.07 0 002.84-1.2 13 13 0 005.64-5.63 10.19 10.19 0 001-5.27zm0-8.59q-1.05 4.49-10.54 7.64l-.36.12L15 47.64a9.84 9.84 0 01-1.91.4C6.88 49 2.16 46.19 0 42.65a8.28 8.28 0 00.56 3.21 8.83 8.83 0 00.45 1A11.16 11.16 0 007.57 52a14.64 14.64 0 008.79 0l39-12.45a17.05 17.05 0 002.84-1.19 13.05 13.05 0 005.64-5.64 10.17 10.17 0 001-5.27zM9 39.13a10.11 10.11 0 006 0l39-12.45a12.25 12.25 0 002.06-.87 8.52 8.52 0 003.7-3.62 5.52 5.52 0 00.37-4.19 6.6 6.6 0 00-.46-1A9.57 9.57 0 0054 12.68a14.17 14.17 0 00-8.48 0l-.16.05-.2.07-2 .69-.84-2c-.07-.16-.12-.27-.14-.33l-.18-.27a12.26 12.26 0 00-7.2-5.51 17.85 17.85 0 00-10.73 0 12.81 12.81 0 00-6.56 4.44 7.58 7.58 0 00-1.47 6l.45 2.29-2.31.4c-.27 0-.5.09-.68.13s-.46.12-.66.19a8.31 8.31 0 00-1.47.62A5.88 5.88 0 008.78 22a3.71 3.71 0 00-.24 2.79 3.77 3.77 0 00.31.7c.07.13.15.26.24.4.1.14.19.27.29.39l2 2.44-3 1.13a9.92 9.92 0 00-.94.44 5.79 5.79 0 00-2.59 2.57 3.57 3.57 0 00-.1 2.83 4.9 4.9 0 00.22.48 6.69 6.69 0 003.92 3z" fill="#01a1ff"/></svg>
217
+
218
+ </div>
219
+ <div class="textc">
220
+ <h1>Not Found</h1>
221
+ <p>${message}</p>
222
+ ${html}
223
+ </div>
224
+ </div>
225
+ </article>
226
+ </section>
227
+ </body>
228
+
229
+ </html>
230
+ `;
@@ -0,0 +1,216 @@
1
+ export default `
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
6
+ <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
7
+ <META NAME="GOOGLEBOT" CONTENT="NOARCHIVE">
8
+ <title>Not Found</title>
9
+
10
+ <link href='//fonts.googleapis.com/css2?family=Fjalla+One&display=swap' rel='stylesheet' type='text/css'>
11
+
12
+ <style type="text/css">
13
+ .fade-in-cls {
14
+ -webkit-animation: fade-in 2s 0.2s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275);
15
+ -moz-animation: fade-in 2s 0.2s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275);
16
+ animation: fade-in 2s 0.2s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275);
17
+ -webkit-transform: translateY(10px);
18
+ -moz-transform: translateY(10px);
19
+ -o-transform: translateY(10px);
20
+ transform: translateY(10px);
21
+ -webkit-opacity: 0;
22
+ -moz-opacity: 0;
23
+ opacity: 0;
24
+ }
25
+
26
+ @-webkit-keyframes fade-in {
27
+ 100% {
28
+ -webkit-transform: translateY(0px);
29
+ -moz-transform: translateY(0px);
30
+ -o-transform: translateY(0px);
31
+ transform: translateY(0px);
32
+ -webkit-opacity: 1;
33
+ -moz-opacity: 1;
34
+ opacity: 1;
35
+ }
36
+ }
37
+
38
+ @-moz-keyframes fade-in {
39
+ 100% {
40
+ -webkit-transform: translateY(0px);
41
+ -moz-transform: translateY(0px);
42
+ -o-transform: translateY(0px);
43
+ transform: translateY(0px);
44
+ -webkit-opacity: 1;
45
+ -moz-opacity: 1;
46
+ opacity: 1;
47
+ }
48
+ }
49
+
50
+ @keyframes fade-in {
51
+ 100% {
52
+ -webkit-transform: translateY(0px);
53
+ -moz-transform: translateY(0px);
54
+ -o-transform: translateY(0px);
55
+ transform: translateY(0px);
56
+ -webkit-opacity: 1;
57
+ -moz-opacity: 1;
58
+ opacity: 1;
59
+ }
60
+ }
61
+
62
+ .time {
63
+
64
+ -webkit-animation: ckw 15s infinite;
65
+ /* Safari 4+ */
66
+ -moz-animation: ckw 15s infinite;
67
+ /* Fx 5+ */
68
+ -o-animation: ckw 15s infinite;
69
+ /* Opera 12+ */
70
+ animation: ckw 15s infinite;
71
+ /* IE 10+, Fx 29+ */
72
+ -webkit-animation-timing-function: linear;
73
+ /* Chrome, Safari, Opera */
74
+ animation-timing-function: linear;
75
+ transform-origin: 50% 50%;
76
+ display: inline-block;
77
+ /* <--- */
78
+ }
79
+
80
+ @keyframes ckw {
81
+ 0% {
82
+ transform: rotate(0deg);
83
+ -webkit-transform: rotate(0deg);
84
+ -moz-transform: rotate(0deg);
85
+ -o-transform: rotate(0deg);
86
+ }
87
+
88
+ 100% {
89
+ transform: rotate(360deg);
90
+ -webkit-transform: rotate(360deg);
91
+ -moz-transform: rotate(360deg);
92
+ -o-transform: rotate(360deg);
93
+ }
94
+ }
95
+
96
+ @-webkit-keyframes ckw {
97
+ 0% {
98
+ transform: rotate(0deg);
99
+ -webkit-transform: rotate(0deg);
100
+ -moz-transform: rotate(0deg);
101
+ -o-transform: rotate(0deg);
102
+ }
103
+
104
+ 100% {
105
+ transform: rotate(360deg);
106
+ -webkit-transform: rotate(360deg);
107
+ -moz-transform: rotate(360deg);
108
+ -o-transform: rotate(360deg);
109
+ }
110
+ }
111
+
112
+ @-moz-keyframes ckw {
113
+ 0% {
114
+ transform: rotate(0deg);
115
+ -webkit-transform: rotate(0deg);
116
+ -moz-transform: rotate(0deg);
117
+ -o-transform: rotate(0deg);
118
+ }
119
+
120
+ 100% {
121
+ transform: rotate(360deg);
122
+ -webkit-transform: rotate(360deg);
123
+ -moz-transform: rotate(360deg);
124
+ -o-transform: rotate(360deg);
125
+ }
126
+ }
127
+
128
+ body {
129
+ background-color: #dde7e9;
130
+ color: #01A1FF;
131
+ font-family: 'Fjalla One', sans-serif;
132
+ position: relative;
133
+ margin: 0px;
134
+ }
135
+
136
+ section {
137
+ width: 100%;
138
+ height: 100%;
139
+ position: absolute;
140
+ }
141
+
142
+ article {
143
+ display: table;
144
+ width: 100%;
145
+ height: 100%;
146
+ }
147
+
148
+ /* .border-top {
149
+ width: 95px;
150
+ background-color: #fff;
151
+ height: 2px;
152
+ display: inline-block;
153
+ margin: 0px auto;
154
+ } */
155
+
156
+ .vcntr {
157
+ display: table-cell;
158
+ height: 100%;
159
+ width: 100%;
160
+ vertical-align: middle;
161
+ }
162
+
163
+ .logo {
164
+ width: 100px;
165
+ margin: 10px auto;
166
+ display: block;
167
+ }
168
+
169
+ h1 {
170
+ font-size: 21px;
171
+ line-height: 32px;
172
+ margin-bottom: 0px;
173
+ margin-top: 28px;
174
+ font-weight: 700;
175
+ text-transform: uppercase;
176
+ letter-spacing: 2px;
177
+ }
178
+
179
+ p {
180
+ font-size: 16px;
181
+ line-height: 23px;
182
+ margin-bottom: 8px;
183
+ margin-top: 6px;
184
+ }
185
+
186
+ .textc {
187
+ text-align: center;
188
+ }
189
+
190
+ @media only screen and (max-width:480px) {
191
+ .logo {
192
+ width: 100px;
193
+ }
194
+ }
195
+ </style>
196
+ </head>
197
+
198
+ <body class="">
199
+ <section>
200
+ <article>
201
+ <div class="vcntr">
202
+ <div class="logo fade-in-cls">
203
+ <svg data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64.95 61.24"><path d="M16.36 43.47a14.56 14.56 0 01-8.79 0A11.16 11.16 0 011 38.34a8.83 8.83 0 01-.45-1A8.09 8.09 0 01.76 31a10.08 10.08 0 013.68-4.17 6.23 6.23 0 01-.24-.65A8.17 8.17 0 014.68 20a10.47 10.47 0 014.53-4.53 13.25 13.25 0 012.12-.9 12.35 12.35 0 012.5-7.45A17.35 17.35 0 0122.7 1a22.38 22.38 0 0113.48 0 17.07 17.07 0 019.42 6.9 18.75 18.75 0 019.8.4 14 14 0 018.29 6.46 10.17 10.17 0 01.78 1.83 10 10 0 01-.59 7.56 13.05 13.05 0 01-5.64 5.64A17.05 17.05 0 0155.4 31l-39 12.45zM64.92 36q-1.05 4.48-10.54 7.63l-.36.12L15 56.22a9.87 9.87 0 01-1.91.41C6.88 57.55 2.16 54.78 0 51.24a8.2 8.2 0 00.56 3.2 7.45 7.45 0 00.45 1 11.09 11.09 0 006.56 5.13 14.64 14.64 0 008.79 0l39-12.45a17.07 17.07 0 002.84-1.2 13 13 0 005.64-5.63 10.19 10.19 0 001-5.27zm0-8.59q-1.05 4.49-10.54 7.64l-.36.12L15 47.64a9.84 9.84 0 01-1.91.4C6.88 49 2.16 46.19 0 42.65a8.28 8.28 0 00.56 3.21 8.83 8.83 0 00.45 1A11.16 11.16 0 007.57 52a14.64 14.64 0 008.79 0l39-12.45a17.05 17.05 0 002.84-1.19 13.05 13.05 0 005.64-5.64 10.17 10.17 0 001-5.27zM9 39.13a10.11 10.11 0 006 0l39-12.45a12.25 12.25 0 002.06-.87 8.52 8.52 0 003.7-3.62 5.52 5.52 0 00.37-4.19 6.6 6.6 0 00-.46-1A9.57 9.57 0 0054 12.68a14.17 14.17 0 00-8.48 0l-.16.05-.2.07-2 .69-.84-2c-.07-.16-.12-.27-.14-.33l-.18-.27a12.26 12.26 0 00-7.2-5.51 17.85 17.85 0 00-10.73 0 12.81 12.81 0 00-6.56 4.44 7.58 7.58 0 00-1.47 6l.45 2.29-2.31.4c-.27 0-.5.09-.68.13s-.46.12-.66.19a8.31 8.31 0 00-1.47.62A5.88 5.88 0 008.78 22a3.71 3.71 0 00-.24 2.79 3.77 3.77 0 00.31.7c.07.13.15.26.24.4.1.14.19.27.29.39l2 2.44-3 1.13a9.92 9.92 0 00-.94.44 5.79 5.79 0 00-2.59 2.57 3.57 3.57 0 00-.1 2.83 4.9 4.9 0 00.22.48 6.69 6.69 0 003.92 3z" fill="#01a1ff"/></svg>
204
+
205
+ </div>
206
+ <div class="textc">
207
+ <h1>Not Found</h1>
208
+ <p>We’re really sorry about that. The service you were looking for doesn't exist.</p>
209
+ </div>
210
+ </div>
211
+ </article>
212
+ </section>
213
+ </body>
214
+
215
+ </html>
216
+ `;