@things-factory/shell 9.1.13 → 9.2.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.
package/client/index.js CHANGED
@@ -8,6 +8,20 @@ export const PROCESS = {
8
8
  'NODE-ENV': process.env['NODE-ENV']
9
9
  }
10
10
 
11
+ /* Service Worker: production only */
12
+ if (process.env['NODE-ENV'] === 'production') {
13
+ if ('serviceWorker' in navigator) {
14
+ navigator.serviceWorker.register('/service-worker.js', { scope: '/' })
15
+ }
16
+ } else {
17
+ /* Development: unregister stale service workers so code changes reflect immediately */
18
+ if ('serviceWorker' in navigator) {
19
+ navigator.serviceWorker.getRegistrations().then(registrations => {
20
+ registrations.forEach(r => r.unregister())
21
+ })
22
+ }
23
+ }
24
+
11
25
  /* Export APIs */
12
26
 
13
27
  // store, actions, page-view,
@@ -0,0 +1,103 @@
1
+ .domain-theme-cherry-red {
2
+ --md-sys-color-primary: rgb(211 47 47);
3
+ --md-sys-color-surface-tint: rgb(211 47 47);
4
+ --md-sys-color-on-primary: rgb(255 255 255);
5
+ --md-sys-color-primary-container: rgb(255 205 210);
6
+ --md-sys-color-on-primary-container: rgb(183 28 28);
7
+ --md-sys-color-secondary: rgb(229 115 115);
8
+ --md-sys-color-on-secondary: rgb(255 255 255);
9
+ --md-sys-color-secondary-container: rgb(255 235 238);
10
+ --md-sys-color-on-secondary-container: rgb(198 40 40);
11
+ --md-sys-color-tertiary: rgb(233 30 99);
12
+ --md-sys-color-on-tertiary: rgb(255 255 255);
13
+ --md-sys-color-tertiary-container: rgb(252 228 236);
14
+ --md-sys-color-on-tertiary-container: rgb(136 14 79);
15
+ --md-sys-color-error: #fe594e;
16
+ --md-sys-color-on-error: rgb(255 255 255);
17
+ --md-sys-color-error-container: rgb(255 218 215);
18
+ --md-sys-color-on-error-container: #fe594e;
19
+ --md-sys-color-background: rgb(255 250 250);
20
+ --md-sys-color-on-background: rgb(35 25 25);
21
+ --md-sys-color-surface: rgb(255 250 250);
22
+ --md-sys-color-on-surface: rgb(35 25 25);
23
+ --md-sys-color-surface-variant: rgb(239 225 225);
24
+ --md-sys-color-on-surface-variant: rgb(83 67 67);
25
+ --md-sys-color-outline: rgba(0, 0, 0, 0.25);
26
+ --md-sys-color-outline-variant: rgb(215 196 196);
27
+ --md-sys-color-shadow: rgb(0 0 0);
28
+ --md-sys-color-scrim: rgb(0 0 0);
29
+ --md-sys-color-inverse-surface: rgb(56 43 43);
30
+ --md-sys-color-inverse-on-surface: rgb(250 239 239);
31
+ --md-sys-color-inverse-primary: rgb(239 154 154);
32
+ --md-sys-color-primary-fixed: rgb(255 205 210);
33
+ --md-sys-color-on-primary-fixed: rgb(183 28 28);
34
+ --md-sys-color-primary-fixed-dim: rgb(239 154 154);
35
+ --md-sys-color-on-primary-fixed-variant: rgb(198 40 40);
36
+ --md-sys-color-secondary-fixed: rgb(255 235 238);
37
+ --md-sys-color-on-secondary-fixed: rgb(198 40 40);
38
+ --md-sys-color-secondary-fixed-dim: rgb(239 154 154);
39
+ --md-sys-color-on-secondary-fixed-variant: rgb(211 47 47);
40
+ --md-sys-color-tertiary-fixed: rgb(252 228 236);
41
+ --md-sys-color-on-tertiary-fixed: rgb(136 14 79);
42
+ --md-sys-color-tertiary-fixed-dim: rgb(244 143 177);
43
+ --md-sys-color-on-tertiary-fixed-variant: rgb(194 24 91);
44
+ --md-sys-color-surface-dim: rgb(226 214 214);
45
+ --md-sys-color-surface-bright: rgb(255 250 250);
46
+ --md-sys-color-surface-container-lowest: rgb(255 255 255);
47
+ --md-sys-color-surface-container-low: rgb(252 244 244);
48
+ --md-sys-color-surface-container: rgb(248 238 238);
49
+ --md-sys-color-surface-container-high: rgb(243 232 232);
50
+ --md-sys-color-surface-container-highest: rgb(238 226 226);
51
+ }
52
+
53
+ .domain-theme-cherry-red.dark {
54
+ --md-sys-color-primary: rgb(239 154 154);
55
+ --md-sys-color-surface-tint: rgb(239 154 154);
56
+ --md-sys-color-on-primary: rgb(183 28 28);
57
+ --md-sys-color-primary-container: rgb(198 40 40);
58
+ --md-sys-color-on-primary-container: rgb(255 205 210);
59
+ --md-sys-color-secondary: rgb(239 154 154);
60
+ --md-sys-color-on-secondary: rgb(198 40 40);
61
+ --md-sys-color-secondary-container: rgb(211 47 47);
62
+ --md-sys-color-on-secondary-container: rgb(255 235 238);
63
+ --md-sys-color-tertiary: rgb(244 143 177);
64
+ --md-sys-color-on-tertiary: rgb(136 14 79);
65
+ --md-sys-color-tertiary-container: rgb(173 20 87);
66
+ --md-sys-color-on-tertiary-container: rgb(252 228 236);
67
+ --md-sys-color-error: #fbafa9;
68
+ --md-sys-color-on-error: #fe594e;
69
+ --md-sys-color-error-container: #fe594e;
70
+ --md-sys-color-on-error-container: #fbafa9;
71
+ --md-sys-color-background: rgb(25 17 17);
72
+ --md-sys-color-on-background: rgb(238 226 226);
73
+ --md-sys-color-surface: rgb(25 17 17);
74
+ --md-sys-color-on-surface: rgb(238 226 226);
75
+ --md-sys-color-surface-variant: rgb(83 67 67);
76
+ --md-sys-color-on-surface-variant: rgb(215 196 196);
77
+ --md-sys-color-outline: rgb(159 140 140);
78
+ --md-sys-color-outline-variant: rgb(83 67 67);
79
+ --md-sys-color-shadow: rgb(0 0 0);
80
+ --md-sys-color-scrim: rgb(0 0 0);
81
+ --md-sys-color-inverse-surface: rgb(238 226 226);
82
+ --md-sys-color-inverse-on-surface: rgb(56 43 43);
83
+ --md-sys-color-inverse-primary: rgb(211 47 47);
84
+ --md-sys-color-primary-fixed: rgb(255 205 210);
85
+ --md-sys-color-on-primary-fixed: rgb(183 28 28);
86
+ --md-sys-color-primary-fixed-dim: rgb(239 154 154);
87
+ --md-sys-color-on-primary-fixed-variant: rgb(198 40 40);
88
+ --md-sys-color-secondary-fixed: rgb(255 235 238);
89
+ --md-sys-color-on-secondary-fixed: rgb(198 40 40);
90
+ --md-sys-color-secondary-fixed-dim: rgb(239 154 154);
91
+ --md-sys-color-on-secondary-fixed-variant: rgb(211 47 47);
92
+ --md-sys-color-tertiary-fixed: rgb(252 228 236);
93
+ --md-sys-color-on-tertiary-fixed: rgb(136 14 79);
94
+ --md-sys-color-tertiary-fixed-dim: rgb(244 143 177);
95
+ --md-sys-color-on-tertiary-fixed-variant: rgb(194 24 91);
96
+ --md-sys-color-surface-dim: rgb(25 17 17);
97
+ --md-sys-color-surface-bright: rgb(63 51 51);
98
+ --md-sys-color-surface-container-lowest: rgb(20 12 12);
99
+ --md-sys-color-surface-container-low: rgb(35 25 25);
100
+ --md-sys-color-surface-container: rgb(39 29 29);
101
+ --md-sys-color-surface-container-high: rgb(50 40 40);
102
+ --md-sys-color-surface-container-highest: rgb(61 51 51);
103
+ }
@@ -0,0 +1,103 @@
1
+ .domain-theme-forest-green {
2
+ --md-sys-color-primary: rgb(56 142 60);
3
+ --md-sys-color-surface-tint: rgb(56 142 60);
4
+ --md-sys-color-on-primary: rgb(255 255 255);
5
+ --md-sys-color-primary-container: rgb(200 230 201);
6
+ --md-sys-color-on-primary-container: rgb(27 94 32);
7
+ --md-sys-color-secondary: rgb(76 175 80);
8
+ --md-sys-color-on-secondary: rgb(255 255 255);
9
+ --md-sys-color-secondary-container: rgb(220 237 200);
10
+ --md-sys-color-on-secondary-container: rgb(51 105 30);
11
+ --md-sys-color-tertiary: rgb(0 150 136);
12
+ --md-sys-color-on-tertiary: rgb(255 255 255);
13
+ --md-sys-color-tertiary-container: rgb(178 223 219);
14
+ --md-sys-color-on-tertiary-container: rgb(0 77 64);
15
+ --md-sys-color-error: #fe594e;
16
+ --md-sys-color-on-error: rgb(255 255 255);
17
+ --md-sys-color-error-container: rgb(255 218 215);
18
+ --md-sys-color-on-error-container: #fe594e;
19
+ --md-sys-color-background: rgb(250 253 250);
20
+ --md-sys-color-on-background: rgb(25 32 25);
21
+ --md-sys-color-surface: rgb(250 253 250);
22
+ --md-sys-color-on-surface: rgb(25 32 25);
23
+ --md-sys-color-surface-variant: rgb(225 233 225);
24
+ --md-sys-color-on-surface-variant: rgb(67 79 67);
25
+ --md-sys-color-outline: rgba(0, 0, 0, 0.25);
26
+ --md-sys-color-outline-variant: rgb(193 205 193);
27
+ --md-sys-color-shadow: rgb(0 0 0);
28
+ --md-sys-color-scrim: rgb(0 0 0);
29
+ --md-sys-color-inverse-surface: rgb(43 54 43);
30
+ --md-sys-color-inverse-on-surface: rgb(239 244 239);
31
+ --md-sys-color-inverse-primary: rgb(165 214 167);
32
+ --md-sys-color-primary-fixed: rgb(200 230 201);
33
+ --md-sys-color-on-primary-fixed: rgb(27 94 32);
34
+ --md-sys-color-primary-fixed-dim: rgb(165 214 167);
35
+ --md-sys-color-on-primary-fixed-variant: rgb(46 125 50);
36
+ --md-sys-color-secondary-fixed: rgb(220 237 200);
37
+ --md-sys-color-on-secondary-fixed: rgb(51 105 30);
38
+ --md-sys-color-secondary-fixed-dim: rgb(174 213 129);
39
+ --md-sys-color-on-secondary-fixed-variant: rgb(85 139 47);
40
+ --md-sys-color-tertiary-fixed: rgb(178 223 219);
41
+ --md-sys-color-on-tertiary-fixed: rgb(0 77 64);
42
+ --md-sys-color-tertiary-fixed-dim: rgb(128 203 196);
43
+ --md-sys-color-on-tertiary-fixed-variant: rgb(0 121 107);
44
+ --md-sys-color-surface-dim: rgb(217 225 217);
45
+ --md-sys-color-surface-bright: rgb(250 253 250);
46
+ --md-sys-color-surface-container-lowest: rgb(255 255 255);
47
+ --md-sys-color-surface-container-low: rgb(244 249 244);
48
+ --md-sys-color-surface-container: rgb(238 245 238);
49
+ --md-sys-color-surface-container-high: rgb(232 240 232);
50
+ --md-sys-color-surface-container-highest: rgb(226 235 226);
51
+ }
52
+
53
+ .domain-theme-forest-green.dark {
54
+ --md-sys-color-primary: rgb(165 214 167);
55
+ --md-sys-color-surface-tint: rgb(165 214 167);
56
+ --md-sys-color-on-primary: rgb(27 94 32);
57
+ --md-sys-color-primary-container: rgb(46 125 50);
58
+ --md-sys-color-on-primary-container: rgb(200 230 201);
59
+ --md-sys-color-secondary: rgb(174 213 129);
60
+ --md-sys-color-on-secondary: rgb(51 105 30);
61
+ --md-sys-color-secondary-container: rgb(85 139 47);
62
+ --md-sys-color-on-secondary-container: rgb(220 237 200);
63
+ --md-sys-color-tertiary: rgb(128 203 196);
64
+ --md-sys-color-on-tertiary: rgb(0 77 64);
65
+ --md-sys-color-tertiary-container: rgb(0 105 92);
66
+ --md-sys-color-on-tertiary-container: rgb(178 223 219);
67
+ --md-sys-color-error: #fbafa9;
68
+ --md-sys-color-on-error: #fe594e;
69
+ --md-sys-color-error-container: #fe594e;
70
+ --md-sys-color-on-error-container: #fbafa9;
71
+ --md-sys-color-background: rgb(17 22 17);
72
+ --md-sys-color-on-background: rgb(226 235 226);
73
+ --md-sys-color-surface: rgb(17 22 17);
74
+ --md-sys-color-on-surface: rgb(226 235 226);
75
+ --md-sys-color-surface-variant: rgb(67 79 67);
76
+ --md-sys-color-on-surface-variant: rgb(193 205 193);
77
+ --md-sys-color-outline: rgb(137 149 137);
78
+ --md-sys-color-outline-variant: rgb(67 79 67);
79
+ --md-sys-color-shadow: rgb(0 0 0);
80
+ --md-sys-color-scrim: rgb(0 0 0);
81
+ --md-sys-color-inverse-surface: rgb(226 235 226);
82
+ --md-sys-color-inverse-on-surface: rgb(43 54 43);
83
+ --md-sys-color-inverse-primary: rgb(56 142 60);
84
+ --md-sys-color-primary-fixed: rgb(200 230 201);
85
+ --md-sys-color-on-primary-fixed: rgb(27 94 32);
86
+ --md-sys-color-primary-fixed-dim: rgb(165 214 167);
87
+ --md-sys-color-on-primary-fixed-variant: rgb(46 125 50);
88
+ --md-sys-color-secondary-fixed: rgb(220 237 200);
89
+ --md-sys-color-on-secondary-fixed: rgb(51 105 30);
90
+ --md-sys-color-secondary-fixed-dim: rgb(174 213 129);
91
+ --md-sys-color-on-secondary-fixed-variant: rgb(85 139 47);
92
+ --md-sys-color-tertiary-fixed: rgb(178 223 219);
93
+ --md-sys-color-on-tertiary-fixed: rgb(0 77 64);
94
+ --md-sys-color-tertiary-fixed-dim: rgb(128 203 196);
95
+ --md-sys-color-on-tertiary-fixed-variant: rgb(0 121 107);
96
+ --md-sys-color-surface-dim: rgb(17 22 17);
97
+ --md-sys-color-surface-bright: rgb(55 66 55);
98
+ --md-sys-color-surface-container-lowest: rgb(12 17 12);
99
+ --md-sys-color-surface-container-low: rgb(25 32 25);
100
+ --md-sys-color-surface-container: rgb(29 36 29);
101
+ --md-sys-color-surface-container-high: rgb(40 47 40);
102
+ --md-sys-color-surface-container-highest: rgb(51 58 51);
103
+ }
@@ -0,0 +1,103 @@
1
+ .domain-theme-ocean-blue {
2
+ --md-sys-color-primary: rgb(30 136 229);
3
+ --md-sys-color-surface-tint: rgb(30 136 229);
4
+ --md-sys-color-on-primary: rgb(255 255 255);
5
+ --md-sys-color-primary-container: rgb(187 222 251);
6
+ --md-sys-color-on-primary-container: rgb(1 87 155);
7
+ --md-sys-color-secondary: rgb(3 169 244);
8
+ --md-sys-color-on-secondary: rgb(255 255 255);
9
+ --md-sys-color-secondary-container: rgb(179 229 252);
10
+ --md-sys-color-on-secondary-container: rgb(1 87 155);
11
+ --md-sys-color-tertiary: rgb(0 188 212);
12
+ --md-sys-color-on-tertiary: rgb(255 255 255);
13
+ --md-sys-color-tertiary-container: rgb(178 235 242);
14
+ --md-sys-color-on-tertiary-container: rgb(0 96 100);
15
+ --md-sys-color-error: #fe594e;
16
+ --md-sys-color-on-error: rgb(255 255 255);
17
+ --md-sys-color-error-container: rgb(255 218 215);
18
+ --md-sys-color-on-error-container: #fe594e;
19
+ --md-sys-color-background: rgb(250 252 255);
20
+ --md-sys-color-on-background: rgb(23 29 35);
21
+ --md-sys-color-surface: rgb(250 252 255);
22
+ --md-sys-color-on-surface: rgb(23 29 35);
23
+ --md-sys-color-surface-variant: rgb(224 231 239);
24
+ --md-sys-color-on-surface-variant: rgb(66 78 90);
25
+ --md-sys-color-outline: rgba(0, 0, 0, 0.25);
26
+ --md-sys-color-outline-variant: rgb(189 201 213);
27
+ --md-sys-color-shadow: rgb(0 0 0);
28
+ --md-sys-color-scrim: rgb(0 0 0);
29
+ --md-sys-color-inverse-surface: rgb(38 50 62);
30
+ --md-sys-color-inverse-on-surface: rgb(236 240 244);
31
+ --md-sys-color-inverse-primary: rgb(144 202 249);
32
+ --md-sys-color-primary-fixed: rgb(187 222 251);
33
+ --md-sys-color-on-primary-fixed: rgb(1 87 155);
34
+ --md-sys-color-primary-fixed-dim: rgb(144 202 249);
35
+ --md-sys-color-on-primary-fixed-variant: rgb(21 101 192);
36
+ --md-sys-color-secondary-fixed: rgb(179 229 252);
37
+ --md-sys-color-on-secondary-fixed: rgb(1 87 155);
38
+ --md-sys-color-secondary-fixed-dim: rgb(129 212 250);
39
+ --md-sys-color-on-secondary-fixed-variant: rgb(2 119 189);
40
+ --md-sys-color-tertiary-fixed: rgb(178 235 242);
41
+ --md-sys-color-on-tertiary-fixed: rgb(0 96 100);
42
+ --md-sys-color-tertiary-fixed-dim: rgb(128 222 234);
43
+ --md-sys-color-on-tertiary-fixed-variant: rgb(0 151 167);
44
+ --md-sys-color-surface-dim: rgb(214 222 230);
45
+ --md-sys-color-surface-bright: rgb(250 252 255);
46
+ --md-sys-color-surface-container-lowest: rgb(255 255 255);
47
+ --md-sys-color-surface-container-low: rgb(244 248 252);
48
+ --md-sys-color-surface-container: rgb(238 244 250);
49
+ --md-sys-color-surface-container-high: rgb(232 239 246);
50
+ --md-sys-color-surface-container-highest: rgb(226 234 242);
51
+ }
52
+
53
+ .domain-theme-ocean-blue.dark {
54
+ --md-sys-color-primary: rgb(144 202 249);
55
+ --md-sys-color-surface-tint: rgb(144 202 249);
56
+ --md-sys-color-on-primary: rgb(1 87 155);
57
+ --md-sys-color-primary-container: rgb(21 101 192);
58
+ --md-sys-color-on-primary-container: rgb(187 222 251);
59
+ --md-sys-color-secondary: rgb(129 212 250);
60
+ --md-sys-color-on-secondary: rgb(1 87 155);
61
+ --md-sys-color-secondary-container: rgb(2 119 189);
62
+ --md-sys-color-on-secondary-container: rgb(179 229 252);
63
+ --md-sys-color-tertiary: rgb(128 222 234);
64
+ --md-sys-color-on-tertiary: rgb(0 96 100);
65
+ --md-sys-color-tertiary-container: rgb(0 131 143);
66
+ --md-sys-color-on-tertiary-container: rgb(178 235 242);
67
+ --md-sys-color-error: #fbafa9;
68
+ --md-sys-color-on-error: #fe594e;
69
+ --md-sys-color-error-container: #fe594e;
70
+ --md-sys-color-on-error-container: #fbafa9;
71
+ --md-sys-color-background: rgb(16 22 28);
72
+ --md-sys-color-on-background: rgb(226 234 242);
73
+ --md-sys-color-surface: rgb(16 22 28);
74
+ --md-sys-color-on-surface: rgb(226 234 242);
75
+ --md-sys-color-surface-variant: rgb(66 78 90);
76
+ --md-sys-color-on-surface-variant: rgb(189 201 213);
77
+ --md-sys-color-outline: rgb(133 145 157);
78
+ --md-sys-color-outline-variant: rgb(66 78 90);
79
+ --md-sys-color-shadow: rgb(0 0 0);
80
+ --md-sys-color-scrim: rgb(0 0 0);
81
+ --md-sys-color-inverse-surface: rgb(226 234 242);
82
+ --md-sys-color-inverse-on-surface: rgb(38 50 62);
83
+ --md-sys-color-inverse-primary: rgb(30 136 229);
84
+ --md-sys-color-primary-fixed: rgb(187 222 251);
85
+ --md-sys-color-on-primary-fixed: rgb(1 87 155);
86
+ --md-sys-color-primary-fixed-dim: rgb(144 202 249);
87
+ --md-sys-color-on-primary-fixed-variant: rgb(21 101 192);
88
+ --md-sys-color-secondary-fixed: rgb(179 229 252);
89
+ --md-sys-color-on-secondary-fixed: rgb(1 87 155);
90
+ --md-sys-color-secondary-fixed-dim: rgb(129 212 250);
91
+ --md-sys-color-on-secondary-fixed-variant: rgb(2 119 189);
92
+ --md-sys-color-tertiary-fixed: rgb(178 235 242);
93
+ --md-sys-color-on-tertiary-fixed: rgb(0 96 100);
94
+ --md-sys-color-tertiary-fixed-dim: rgb(128 222 234);
95
+ --md-sys-color-on-tertiary-fixed-variant: rgb(0 151 167);
96
+ --md-sys-color-surface-dim: rgb(16 22 28);
97
+ --md-sys-color-surface-bright: rgb(54 66 78);
98
+ --md-sys-color-surface-container-lowest: rgb(11 17 23);
99
+ --md-sys-color-surface-container-low: rgb(23 29 35);
100
+ --md-sys-color-surface-container: rgb(27 33 39);
101
+ --md-sys-color-surface-container-high: rgb(38 44 50);
102
+ --md-sys-color-surface-container-highest: rgb(49 55 61);
103
+ }
@@ -0,0 +1,103 @@
1
+ .domain-theme-royal-purple {
2
+ --md-sys-color-primary: rgb(123 31 162);
3
+ --md-sys-color-surface-tint: rgb(123 31 162);
4
+ --md-sys-color-on-primary: rgb(255 255 255);
5
+ --md-sys-color-primary-container: rgb(225 190 231);
6
+ --md-sys-color-on-primary-container: rgb(74 20 140);
7
+ --md-sys-color-secondary: rgb(156 39 176);
8
+ --md-sys-color-on-secondary: rgb(255 255 255);
9
+ --md-sys-color-secondary-container: rgb(243 229 245);
10
+ --md-sys-color-on-secondary-container: rgb(106 27 154);
11
+ --md-sys-color-tertiary: rgb(103 58 183);
12
+ --md-sys-color-on-tertiary: rgb(255 255 255);
13
+ --md-sys-color-tertiary-container: rgb(209 196 233);
14
+ --md-sys-color-on-tertiary-container: rgb(49 27 146);
15
+ --md-sys-color-error: #fe594e;
16
+ --md-sys-color-on-error: rgb(255 255 255);
17
+ --md-sys-color-error-container: rgb(255 218 215);
18
+ --md-sys-color-on-error-container: #fe594e;
19
+ --md-sys-color-background: rgb(253 250 255);
20
+ --md-sys-color-on-background: rgb(30 25 35);
21
+ --md-sys-color-surface: rgb(253 250 255);
22
+ --md-sys-color-on-surface: rgb(30 25 35);
23
+ --md-sys-color-surface-variant: rgb(234 225 239);
24
+ --md-sys-color-on-surface-variant: rgb(75 66 83);
25
+ --md-sys-color-outline: rgba(0, 0, 0, 0.25);
26
+ --md-sys-color-outline-variant: rgb(206 196 215);
27
+ --md-sys-color-shadow: rgb(0 0 0);
28
+ --md-sys-color-scrim: rgb(0 0 0);
29
+ --md-sys-color-inverse-surface: rgb(48 41 56);
30
+ --md-sys-color-inverse-on-surface: rgb(245 239 250);
31
+ --md-sys-color-inverse-primary: rgb(206 147 216);
32
+ --md-sys-color-primary-fixed: rgb(225 190 231);
33
+ --md-sys-color-on-primary-fixed: rgb(74 20 140);
34
+ --md-sys-color-primary-fixed-dim: rgb(206 147 216);
35
+ --md-sys-color-on-primary-fixed-variant: rgb(106 27 154);
36
+ --md-sys-color-secondary-fixed: rgb(243 229 245);
37
+ --md-sys-color-on-secondary-fixed: rgb(106 27 154);
38
+ --md-sys-color-secondary-fixed-dim: rgb(206 147 216);
39
+ --md-sys-color-on-secondary-fixed-variant: rgb(142 36 170);
40
+ --md-sys-color-tertiary-fixed: rgb(209 196 233);
41
+ --md-sys-color-on-tertiary-fixed: rgb(49 27 146);
42
+ --md-sys-color-tertiary-fixed-dim: rgb(179 157 219);
43
+ --md-sys-color-on-tertiary-fixed-variant: rgb(81 45 168);
44
+ --md-sys-color-surface-dim: rgb(222 215 228);
45
+ --md-sys-color-surface-bright: rgb(253 250 255);
46
+ --md-sys-color-surface-container-lowest: rgb(255 255 255);
47
+ --md-sys-color-surface-container-low: rgb(248 244 252);
48
+ --md-sys-color-surface-container: rgb(242 238 248);
49
+ --md-sys-color-surface-container-high: rgb(236 232 242);
50
+ --md-sys-color-surface-container-highest: rgb(230 226 236);
51
+ }
52
+
53
+ .domain-theme-royal-purple.dark {
54
+ --md-sys-color-primary: rgb(206 147 216);
55
+ --md-sys-color-surface-tint: rgb(206 147 216);
56
+ --md-sys-color-on-primary: rgb(74 20 140);
57
+ --md-sys-color-primary-container: rgb(106 27 154);
58
+ --md-sys-color-on-primary-container: rgb(225 190 231);
59
+ --md-sys-color-secondary: rgb(206 147 216);
60
+ --md-sys-color-on-secondary: rgb(106 27 154);
61
+ --md-sys-color-secondary-container: rgb(142 36 170);
62
+ --md-sys-color-on-secondary-container: rgb(243 229 245);
63
+ --md-sys-color-tertiary: rgb(179 157 219);
64
+ --md-sys-color-on-tertiary: rgb(49 27 146);
65
+ --md-sys-color-tertiary-container: rgb(69 39 160);
66
+ --md-sys-color-on-tertiary-container: rgb(209 196 233);
67
+ --md-sys-color-error: #fbafa9;
68
+ --md-sys-color-on-error: #fe594e;
69
+ --md-sys-color-error-container: #fe594e;
70
+ --md-sys-color-on-error-container: #fbafa9;
71
+ --md-sys-color-background: rgb(20 16 25);
72
+ --md-sys-color-on-background: rgb(230 226 236);
73
+ --md-sys-color-surface: rgb(20 16 25);
74
+ --md-sys-color-on-surface: rgb(230 226 236);
75
+ --md-sys-color-surface-variant: rgb(75 66 83);
76
+ --md-sys-color-on-surface-variant: rgb(206 196 215);
77
+ --md-sys-color-outline: rgb(150 140 159);
78
+ --md-sys-color-outline-variant: rgb(75 66 83);
79
+ --md-sys-color-shadow: rgb(0 0 0);
80
+ --md-sys-color-scrim: rgb(0 0 0);
81
+ --md-sys-color-inverse-surface: rgb(230 226 236);
82
+ --md-sys-color-inverse-on-surface: rgb(48 41 56);
83
+ --md-sys-color-inverse-primary: rgb(123 31 162);
84
+ --md-sys-color-primary-fixed: rgb(225 190 231);
85
+ --md-sys-color-on-primary-fixed: rgb(74 20 140);
86
+ --md-sys-color-primary-fixed-dim: rgb(206 147 216);
87
+ --md-sys-color-on-primary-fixed-variant: rgb(106 27 154);
88
+ --md-sys-color-secondary-fixed: rgb(243 229 245);
89
+ --md-sys-color-on-secondary-fixed: rgb(106 27 154);
90
+ --md-sys-color-secondary-fixed-dim: rgb(206 147 216);
91
+ --md-sys-color-on-secondary-fixed-variant: rgb(142 36 170);
92
+ --md-sys-color-tertiary-fixed: rgb(209 196 233);
93
+ --md-sys-color-on-tertiary-fixed: rgb(49 27 146);
94
+ --md-sys-color-tertiary-fixed-dim: rgb(179 157 219);
95
+ --md-sys-color-on-tertiary-fixed-variant: rgb(81 45 168);
96
+ --md-sys-color-surface-dim: rgb(20 16 25);
97
+ --md-sys-color-surface-bright: rgb(58 51 66);
98
+ --md-sys-color-surface-container-lowest: rgb(15 11 20);
99
+ --md-sys-color-surface-container-low: rgb(30 25 35);
100
+ --md-sys-color-surface-container: rgb(34 29 39);
101
+ --md-sys-color-surface-container-high: rgb(45 40 50);
102
+ --md-sys-color-surface-container-highest: rgb(56 51 61);
103
+ }
@@ -0,0 +1,103 @@
1
+ .domain-theme-sunset-orange {
2
+ --md-sys-color-primary: rgb(245 124 0);
3
+ --md-sys-color-surface-tint: rgb(245 124 0);
4
+ --md-sys-color-on-primary: rgb(255 255 255);
5
+ --md-sys-color-primary-container: rgb(255 224 178);
6
+ --md-sys-color-on-primary-container: rgb(230 81 0);
7
+ --md-sys-color-secondary: rgb(255 152 0);
8
+ --md-sys-color-on-secondary: rgb(255 255 255);
9
+ --md-sys-color-secondary-container: rgb(255 236 179);
10
+ --md-sys-color-on-secondary-container: rgb(255 111 0);
11
+ --md-sys-color-tertiary: rgb(255 193 7);
12
+ --md-sys-color-on-tertiary: rgb(0 0 0);
13
+ --md-sys-color-tertiary-container: rgb(255 249 196);
14
+ --md-sys-color-on-tertiary-container: rgb(255 143 0);
15
+ --md-sys-color-error: #fe594e;
16
+ --md-sys-color-on-error: rgb(255 255 255);
17
+ --md-sys-color-error-container: rgb(255 218 215);
18
+ --md-sys-color-on-error-container: #fe594e;
19
+ --md-sys-color-background: rgb(255 252 248);
20
+ --md-sys-color-on-background: rgb(35 30 24);
21
+ --md-sys-color-surface: rgb(255 252 248);
22
+ --md-sys-color-on-surface: rgb(35 30 24);
23
+ --md-sys-color-surface-variant: rgb(238 230 218);
24
+ --md-sys-color-on-surface-variant: rgb(82 73 61);
25
+ --md-sys-color-outline: rgba(0, 0, 0, 0.25);
26
+ --md-sys-color-outline-variant: rgb(211 200 185);
27
+ --md-sys-color-shadow: rgb(0 0 0);
28
+ --md-sys-color-scrim: rgb(0 0 0);
29
+ --md-sys-color-inverse-surface: rgb(54 47 38);
30
+ --md-sys-color-inverse-on-surface: rgb(247 241 232);
31
+ --md-sys-color-inverse-primary: rgb(255 204 128);
32
+ --md-sys-color-primary-fixed: rgb(255 224 178);
33
+ --md-sys-color-on-primary-fixed: rgb(230 81 0);
34
+ --md-sys-color-primary-fixed-dim: rgb(255 204 128);
35
+ --md-sys-color-on-primary-fixed-variant: rgb(239 108 0);
36
+ --md-sys-color-secondary-fixed: rgb(255 236 179);
37
+ --md-sys-color-on-secondary-fixed: rgb(255 111 0);
38
+ --md-sys-color-secondary-fixed-dim: rgb(255 213 79);
39
+ --md-sys-color-on-secondary-fixed-variant: rgb(255 143 0);
40
+ --md-sys-color-tertiary-fixed: rgb(255 249 196);
41
+ --md-sys-color-on-tertiary-fixed: rgb(255 143 0);
42
+ --md-sys-color-tertiary-fixed-dim: rgb(255 241 118);
43
+ --md-sys-color-on-tertiary-fixed-variant: rgb(255 179 0);
44
+ --md-sys-color-surface-dim: rgb(225 218 206);
45
+ --md-sys-color-surface-bright: rgb(255 252 248);
46
+ --md-sys-color-surface-container-lowest: rgb(255 255 255);
47
+ --md-sys-color-surface-container-low: rgb(251 246 238);
48
+ --md-sys-color-surface-container: rgb(246 240 232);
49
+ --md-sys-color-surface-container-high: rgb(240 234 226);
50
+ --md-sys-color-surface-container-highest: rgb(234 228 220);
51
+ }
52
+
53
+ .domain-theme-sunset-orange.dark {
54
+ --md-sys-color-primary: rgb(255 204 128);
55
+ --md-sys-color-surface-tint: rgb(255 204 128);
56
+ --md-sys-color-on-primary: rgb(230 81 0);
57
+ --md-sys-color-primary-container: rgb(239 108 0);
58
+ --md-sys-color-on-primary-container: rgb(255 224 178);
59
+ --md-sys-color-secondary: rgb(255 213 79);
60
+ --md-sys-color-on-secondary: rgb(255 111 0);
61
+ --md-sys-color-secondary-container: rgb(255 143 0);
62
+ --md-sys-color-on-secondary-container: rgb(255 236 179);
63
+ --md-sys-color-tertiary: rgb(255 241 118);
64
+ --md-sys-color-on-tertiary: rgb(255 143 0);
65
+ --md-sys-color-tertiary-container: rgb(255 160 0);
66
+ --md-sys-color-on-tertiary-container: rgb(255 249 196);
67
+ --md-sys-color-error: #fbafa9;
68
+ --md-sys-color-on-error: #fe594e;
69
+ --md-sys-color-error-container: #fe594e;
70
+ --md-sys-color-on-error-container: #fbafa9;
71
+ --md-sys-color-background: rgb(24 20 14);
72
+ --md-sys-color-on-background: rgb(234 228 220);
73
+ --md-sys-color-surface: rgb(24 20 14);
74
+ --md-sys-color-on-surface: rgb(234 228 220);
75
+ --md-sys-color-surface-variant: rgb(82 73 61);
76
+ --md-sys-color-on-surface-variant: rgb(211 200 185);
77
+ --md-sys-color-outline: rgb(155 144 129);
78
+ --md-sys-color-outline-variant: rgb(82 73 61);
79
+ --md-sys-color-shadow: rgb(0 0 0);
80
+ --md-sys-color-scrim: rgb(0 0 0);
81
+ --md-sys-color-inverse-surface: rgb(234 228 220);
82
+ --md-sys-color-inverse-on-surface: rgb(54 47 38);
83
+ --md-sys-color-inverse-primary: rgb(245 124 0);
84
+ --md-sys-color-primary-fixed: rgb(255 224 178);
85
+ --md-sys-color-on-primary-fixed: rgb(230 81 0);
86
+ --md-sys-color-primary-fixed-dim: rgb(255 204 128);
87
+ --md-sys-color-on-primary-fixed-variant: rgb(239 108 0);
88
+ --md-sys-color-secondary-fixed: rgb(255 236 179);
89
+ --md-sys-color-on-secondary-fixed: rgb(255 111 0);
90
+ --md-sys-color-secondary-fixed-dim: rgb(255 213 79);
91
+ --md-sys-color-on-secondary-fixed-variant: rgb(255 143 0);
92
+ --md-sys-color-tertiary-fixed: rgb(255 249 196);
93
+ --md-sys-color-on-tertiary-fixed: rgb(255 143 0);
94
+ --md-sys-color-tertiary-fixed-dim: rgb(255 241 118);
95
+ --md-sys-color-on-tertiary-fixed-variant: rgb(255 179 0);
96
+ --md-sys-color-surface-dim: rgb(24 20 14);
97
+ --md-sys-color-surface-bright: rgb(62 54 44);
98
+ --md-sys-color-surface-container-lowest: rgb(19 15 9);
99
+ --md-sys-color-surface-container-low: rgb(35 30 24);
100
+ --md-sys-color-surface-container: rgb(39 34 28);
101
+ --md-sys-color-surface-container-high: rgb(50 45 39);
102
+ --md-sys-color-surface-container-highest: rgb(61 56 50);
103
+ }
@@ -46,6 +46,7 @@ const webpackConfig = require(flags.webpack || '@things-factory/builder/webpack.
46
46
  const compiler = (0, webpack_1.default)(webpackConfig);
47
47
  const PORT = (process.env.PORT = flags.port);
48
48
  const requestBody = env_1.config.get('requestBody') || {};
49
+ process['PROXY_PASSTHROUGH_PATHS'] = [];
49
50
  const bodyParserOption = {
50
51
  formLimit: requestBody.formLimit || '10mb',
51
52
  jsonLimit: requestBody.jsonLimit || '10mb',
@@ -174,9 +175,17 @@ const bootstrap = async () => {
174
175
  });
175
176
  // only for development mode. triggered after webpack compilation is done.
176
177
  compiler.hooks.done.tap({ name: 'server-dev' }, stats => {
178
+ ;
177
179
  process.emit('client-rebuilt', app, compiler.outputFileSystem);
178
180
  });
179
- app.use((0, koa_bodyparser_1.default)(bodyParserOption));
181
+ // Skip body parser for proxy paths to allow raw body forwarding
182
+ app.use(async (ctx, next) => {
183
+ const PROXY_PASSTHROUGH_PATHS = process['PROXY_PASSTHROUGH_PATHS'] || [];
184
+ if (PROXY_PASSTHROUGH_PATHS.some(path => ctx.path.startsWith(path))) {
185
+ return next();
186
+ }
187
+ return (0, koa_bodyparser_1.default)(bodyParserOption)(ctx, next);
188
+ });
180
189
  /* routers */
181
190
  const ssoMiddlewares = [];
182
191
  process.emit('bootstrap-collect-sso-middleware', null, ssoMiddlewares);
@@ -1 +1 @@
1
- {"version":3,"file":"server-dev.js","sourceRoot":"","sources":["../server/server-dev.ts"],"names":[],"mappings":"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","sourcesContent":["// ts-import-sorter: disable\n\n/* following 7 lines should be located in top of the file */\nimport OS from 'os'\nprocess.env.UV_THREADPOOL_SIZE = String(OS.availableParallelism())\n\nconsole.log('UV_THREADPOOL_SIZE', process.env.UV_THREADPOOL_SIZE)\n\nprocess.env.NODE_ENV = 'development'\nprocess.setMaxListeners(0)\n\nimport { ApolloServer } from '@apollo/server'\nimport { ApolloServerPluginDrainHttpServer } from '@apollo/server/plugin/drainHttpServer'\nimport { ApolloServerPluginLandingPageLocalDefault } from '@apollo/server/plugin/landingPage/default'\n\nimport { koaMiddleware } from '@as-integrations/koa'\nimport { EntityManager } from 'typeorm'\nimport args from 'args'\nimport wdm from 'webpack-dev-middleware'\nimport bytesFormat from 'bytes'\nimport graphqlUploadKoa from 'graphql-upload/graphqlUploadKoa.js'\nimport { useServer } from 'graphql-ws/lib/use/ws'\nimport { createServer } from 'http'\nimport Koa from 'koa'\nimport koaBodyParser from 'koa-bodyparser'\nimport compose from 'koa-compose'\nimport { historyApiFallback } from 'koa2-connect-history-api-fallback'\nimport { WebSocketServer } from 'ws'\nimport co from 'co'\nimport http from 'http'\n\nimport cors from '@koa/cors'\n\nimport crypto from 'crypto'\n\nimport { config, loader, logger, orderedModuleNames } from '@things-factory/env'\nimport { initLicense, checkValidity } from '@things-factory/operato-license-checker'\n\nimport { GraphqlLocalClient } from './graphql-local-client.js'\nimport { databaseInitializer } from './initializers/database.js'\nimport {\n domainPrivateRouter,\n domainPublicRouter,\n globalPrivateRouter,\n globalPublicRouter,\n graphqlRouter\n} from './routers/index.js'\nimport { schema } from './schema.js'\nimport { Domain } from './service/index.js'\nimport { domainMiddleware } from './middlewares/domain-middleware.js'\nimport { setupProcessExitHandlers } from './process-cleaner.js'\n\nsetupProcessExitHandlers()\n\nargs.option('port', 'The port on which the app will be running', config.get('port', 3000))\nargs.option(\n 'inspect',\n `The address on which the inspection will be running. Used in development mode only.\n This option is just to prevent termination for reasons of not recognizing the 'inspect' option.`,\n config.get('inspect', ':9229')\n)\nargs.option('webpack', 'webpack configuration file', config.get('webpack'))\n\nconst flags = args.parse(process.argv)\n\nimport webpack from 'webpack'\nconst webpackConfig = require(flags.webpack || '@things-factory/builder/webpack.config.dev.js')\n\nconst compiler = webpack(webpackConfig)\n\nconst PORT = (process.env.PORT = flags.port)\n\nconst requestBody = config.get('requestBody') || {}\n\nconst bodyParserOption = {\n formLimit: requestBody.formLimit || '10mb',\n jsonLimit: requestBody.jsonLimit || '10mb',\n textLimit: requestBody.textLimit || '10mb'\n}\n\nconst fileUpload = config.get('fileUpload') || {}\nconst fileUploadOption = {\n maxFileSize: bytesFormat.parse(fileUpload.maxFileSize) || bytesFormat.parse('10mb'),\n maxFiles: fileUpload.maxFiles || 10\n}\n\ninterface ICustomAppState {\n domain: Domain\n user: any\n tx: EntityManager\n}\n\ninterface ICustomAppContext {\n t: any\n ssoMiddlewares: any[]\n}\n\ninitLicense(config.get('licenseKey'))\n\n/* bootstrap */\nconst bootstrap = async () => {\n await databaseInitializer()\n\n const app = new Koa<ICustomAppState, ICustomAppContext>() as any\n app.proxy = true\n\n app.use(\n cors({\n origin: function (ctx) {\n return ctx.request.headers.origin || '*'\n },\n exposeHeaders: ['WWW-Authenticate', 'Server-Authorization'],\n maxAge: 5,\n credentials: true,\n /* allowMethods: ['GET', 'POST', 'DELETE'], -- use default */\n allowHeaders: ['Content-Type', 'Authorization', 'Accept']\n })\n )\n\n app.use(async (ctx, next) => {\n ctx.set('X-Content-Type-Options', 'nosniff')\n\n const { directives = {} } = config.get('CSP') || {}\n\n const nonce = crypto.randomBytes(16).toString('base64')\n ctx.state.nonce = nonce\n\n const cspHeader = Object.entries(directives as { [key: string]: string[] })\n .map(([key, value]) => `${key} ${value.join(' ')}`)\n .join('; ')\n\n ctx.set('Content-Security-Policy', cspHeader)\n\n await next()\n })\n\n var subscriptionMiddleware = []\n process.emit('bootstrap-module-subscription' as any, app, subscriptionMiddleware)\n\n const builtSchema = await schema()\n\n const httpServer = createServer(app.callback())\n const websocketServer = new WebSocketServer({\n server: httpServer,\n path: '/graphql'\n })\n\n // Save the returned server's info so we can shut down this server later\n const serverCleanup = useServer(\n {\n schema: builtSchema,\n context: async (ctx, msg, args) => {\n return ctx['context']\n },\n onConnect: async ctx => {\n var { extra, connectionParams } = ctx\n var { request } = extra\n\n if (((connectionParams['headers'] as any) || connectionParams)?.referer) {\n var url = new URL(((connectionParams['headers'] as any) || connectionParams).referer)\n var accessToken = url.searchParams.get('access_token')\n if (accessToken) {\n connectionParams['headers']['authorization'] = accessToken\n }\n }\n\n request.headers = {\n ...request.headers,\n ...(connectionParams['headers'] || (connectionParams as any))\n }\n\n var koacontext = await app.createContext(request, new http.ServerResponse(request))\n koacontext['state'] = {}\n\n /* in case connect error(like a authentication error) just throw exception */\n var middlewares = [domainMiddleware, ...subscriptionMiddleware]\n const fn = co.wrap(compose(middlewares))\n\n await fn(koacontext)\n\n return (ctx['context'] = koacontext)\n },\n onDisconnect(ctx, code, reason) {\n console.log('Disconnected!')\n },\n onError(ctx, msg, errors) {\n console.error(msg, errors)\n }\n },\n websocketServer\n )\n\n const server = new ApolloServer({\n schema: builtSchema,\n formatError: error => {\n logger.error(error)\n return error\n },\n introspection: true,\n csrfPrevention: true,\n stopOnTerminationSignals: false, // ★ 자동 시그널 핸들러 비활성화\n plugins: [\n // Proper shutdown for the HTTP server.\n ApolloServerPluginDrainHttpServer({ httpServer }),\n // Proper shutdown for the WebSocket server.\n {\n async serverWillStart() {\n return {\n async drainServer() {\n await serverCleanup.dispose()\n }\n }\n }\n },\n // TODO make this landing page work\n ApolloServerPluginLandingPageLocalDefault({\n footer: false,\n embed: true,\n includeCookies: true\n })\n ],\n cache: 'bounded'\n })\n\n await server.start()\n\n GraphqlLocalClient.init(builtSchema, app)\n\n orderedModuleNames.forEach(name => {\n const { initMiddlewares } = loader(name)\n initMiddlewares && initMiddlewares(app)\n })\n\n const render = require('@things-factory/ejs-remote')\n render(app, {\n root: '/views',\n host: `http://127.0.0.1:${PORT}`,\n layout: false,\n viewExt: 'html',\n cache: false,\n debug: false\n })\n\n // only for development mode. triggered after webpack compilation is done.\n compiler.hooks.done.tap({ name: 'server-dev' }, stats => {\n process.emit('client-rebuilt' as any, app, compiler.outputFileSystem)\n })\n\n app.use(koaBodyParser(bodyParserOption))\n\n /* routers */\n const ssoMiddlewares = []\n process.emit('bootstrap-collect-sso-middleware' as any, null, ssoMiddlewares)\n app.ssoMiddlewares = ssoMiddlewares\n\n process.emit('bootstrap-module-global-public-route' as any, app, globalPublicRouter)\n process.emit('bootstrap-module-global-private-route' as any, app, globalPrivateRouter)\n process.emit('bootstrap-module-domain-public-route' as any, app, domainPublicRouter)\n process.emit('bootstrap-module-domain-private-route' as any, app, domainPrivateRouter)\n\n app.use(checkValidity) /* Check the license after most of the context has been built */\n\n app\n .use(globalPublicRouter.routes())\n .use(globalPublicRouter.allowedMethods())\n .use(globalPrivateRouter.routes())\n .use(globalPrivateRouter.allowedMethods())\n .use(domainPublicRouter.routes())\n .use(domainPublicRouter.allowedMethods())\n .use(domainPrivateRouter.routes())\n .use(domainPrivateRouter.allowedMethods())\n\n /* Graphql Upload's multipart/form-data handling affects the restful file upload feature, so it should be placed after the routers configuration. */\n app.use(graphqlUploadKoa(fileUploadOption))\n\n graphqlRouter.post(\n '/graphql',\n koaMiddleware(server, {\n context: async ({ ctx }) => ctx\n })\n )\n app.use(graphqlRouter.routes())\n app.use(graphqlRouter.allowedMethods())\n\n /* should follow this order : history-fallback => webpack-middleware */\n app.use(historyApiFallback({ whiteList: [] }))\n\n app.use(\n wdm.koaWrapper(compiler, {\n publicPath: webpackConfig.output.publicPath\n })\n )\n\n httpServer.listen({ port: PORT }, () => {\n logger.info(`🚀 Server ready at http://0.0.0.0:${PORT}/graphql`)\n logger.info(`🚀 Subscriptions ready at ws://0.0.0.0:${PORT}/graphql`)\n\n process.emit('bootstrap-module-start' as any, { app, config, builtSchema, httpServer } as any)\n })\n}\n\nbootstrap()\n"]}
1
+ {"version":3,"file":"server-dev.js","sourceRoot":"","sources":["../server/server-dev.ts"],"names":[],"mappings":"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","sourcesContent":["// ts-import-sorter: disable\n\n/* following 7 lines should be located in top of the file */\nimport OS from 'os'\nprocess.env.UV_THREADPOOL_SIZE = String(OS.availableParallelism())\n\nconsole.log('UV_THREADPOOL_SIZE', process.env.UV_THREADPOOL_SIZE)\n\nprocess.env.NODE_ENV = 'development'\nprocess.setMaxListeners(0)\n\nimport { ApolloServer } from '@apollo/server'\nimport { ApolloServerPluginDrainHttpServer } from '@apollo/server/plugin/drainHttpServer'\nimport { ApolloServerPluginLandingPageLocalDefault } from '@apollo/server/plugin/landingPage/default'\n\nimport { koaMiddleware } from '@as-integrations/koa'\nimport { EntityManager } from 'typeorm'\nimport args from 'args'\nimport wdm from 'webpack-dev-middleware'\nimport bytesFormat from 'bytes'\nimport graphqlUploadKoa from 'graphql-upload/graphqlUploadKoa.js'\nimport { useServer } from 'graphql-ws/lib/use/ws'\nimport { createServer } from 'http'\nimport Koa from 'koa'\nimport koaBodyParser from 'koa-bodyparser'\nimport compose from 'koa-compose'\nimport { historyApiFallback } from 'koa2-connect-history-api-fallback'\nimport { WebSocketServer } from 'ws'\nimport co from 'co'\nimport http from 'http'\n\nimport cors from '@koa/cors'\n\nimport crypto from 'crypto'\n\nimport { config, loader, logger, orderedModuleNames } from '@things-factory/env'\nimport { initLicense, checkValidity } from '@things-factory/operato-license-checker'\n\nimport { GraphqlLocalClient } from './graphql-local-client.js'\nimport { databaseInitializer } from './initializers/database.js'\nimport {\n domainPrivateRouter,\n domainPublicRouter,\n globalPrivateRouter,\n globalPublicRouter,\n graphqlRouter\n} from './routers/index.js'\nimport { schema } from './schema.js'\nimport { Domain } from './service/index.js'\nimport { domainMiddleware } from './middlewares/domain-middleware.js'\nimport { setupProcessExitHandlers } from './process-cleaner.js'\n\nsetupProcessExitHandlers()\n\nargs.option('port', 'The port on which the app will be running', config.get('port', 3000))\nargs.option(\n 'inspect',\n `The address on which the inspection will be running. Used in development mode only.\n This option is just to prevent termination for reasons of not recognizing the 'inspect' option.`,\n config.get('inspect', ':9229')\n)\nargs.option('webpack', 'webpack configuration file', config.get('webpack'))\n\nconst flags = args.parse(process.argv)\n\nimport webpack from 'webpack'\nconst webpackConfig = require(flags.webpack || '@things-factory/builder/webpack.config.dev.js')\n\nconst compiler = webpack(webpackConfig)\n\nconst PORT = (process.env.PORT = flags.port)\n\nconst requestBody = config.get('requestBody') || {}\n\nprocess['PROXY_PASSTHROUGH_PATHS'] = []\nconst bodyParserOption = {\n formLimit: requestBody.formLimit || '10mb',\n jsonLimit: requestBody.jsonLimit || '10mb',\n textLimit: requestBody.textLimit || '10mb'\n}\n\nconst fileUpload = config.get('fileUpload') || {}\nconst fileUploadOption = {\n maxFileSize: bytesFormat.parse(fileUpload.maxFileSize) || bytesFormat.parse('10mb'),\n maxFiles: fileUpload.maxFiles || 10\n}\n\ninterface ICustomAppState {\n domain: Domain\n user: any\n tx: EntityManager\n}\n\ninterface ICustomAppContext {\n t: any\n ssoMiddlewares: any[]\n}\n\ninitLicense(config.get('licenseKey'))\n\n/* bootstrap */\nconst bootstrap = async () => {\n await databaseInitializer()\n\n const app = new Koa<ICustomAppState, ICustomAppContext>() as any\n app.proxy = true\n\n app.use(\n cors({\n origin: function (ctx) {\n return ctx.request.headers.origin || '*'\n },\n exposeHeaders: ['WWW-Authenticate', 'Server-Authorization'],\n maxAge: 5,\n credentials: true,\n /* allowMethods: ['GET', 'POST', 'DELETE'], -- use default */\n allowHeaders: ['Content-Type', 'Authorization', 'Accept']\n })\n )\n\n app.use(async (ctx, next) => {\n ctx.set('X-Content-Type-Options', 'nosniff')\n\n const { directives = {} } = config.get('CSP') || {}\n\n const nonce = crypto.randomBytes(16).toString('base64')\n ctx.state.nonce = nonce\n\n const cspHeader = Object.entries(directives as { [key: string]: string[] })\n .map(([key, value]) => `${key} ${value.join(' ')}`)\n .join('; ')\n\n ctx.set('Content-Security-Policy', cspHeader)\n\n await next()\n })\n\n var subscriptionMiddleware = []\n ;(process as any).emit('bootstrap-module-subscription', app, subscriptionMiddleware)\n\n const builtSchema = await schema()\n\n const httpServer = createServer(app.callback())\n const websocketServer = new WebSocketServer({\n server: httpServer,\n path: '/graphql'\n })\n\n // Save the returned server's info so we can shut down this server later\n const serverCleanup = useServer(\n {\n schema: builtSchema,\n context: async (ctx, msg, args) => {\n return ctx['context']\n },\n onConnect: async ctx => {\n var { extra, connectionParams } = ctx\n var { request } = extra\n\n if (((connectionParams['headers'] as any) || connectionParams)?.referer) {\n var url = new URL(((connectionParams['headers'] as any) || connectionParams).referer)\n var accessToken = url.searchParams.get('access_token')\n if (accessToken) {\n connectionParams['headers']['authorization'] = accessToken\n }\n }\n\n request.headers = {\n ...request.headers,\n ...(connectionParams['headers'] || (connectionParams as any))\n }\n\n var koacontext = await app.createContext(request, new http.ServerResponse(request))\n koacontext['state'] = {}\n\n /* in case connect error(like a authentication error) just throw exception */\n var middlewares = [domainMiddleware, ...subscriptionMiddleware]\n const fn = co.wrap(compose(middlewares))\n\n await fn(koacontext)\n\n return (ctx['context'] = koacontext)\n },\n onDisconnect(ctx, code, reason) {\n console.log('Disconnected!')\n },\n onError(ctx, msg, errors) {\n console.error(msg, errors)\n }\n },\n websocketServer\n )\n\n const server = new ApolloServer({\n schema: builtSchema,\n formatError: error => {\n logger.error(error)\n return error\n },\n introspection: true,\n csrfPrevention: true,\n stopOnTerminationSignals: false, // ★ 자동 시그널 핸들러 비활성화\n plugins: [\n // Proper shutdown for the HTTP server.\n ApolloServerPluginDrainHttpServer({ httpServer }),\n // Proper shutdown for the WebSocket server.\n {\n async serverWillStart() {\n return {\n async drainServer() {\n await serverCleanup.dispose()\n }\n }\n }\n },\n // TODO make this landing page work\n ApolloServerPluginLandingPageLocalDefault({\n footer: false,\n embed: true,\n includeCookies: true\n })\n ],\n cache: 'bounded'\n })\n\n await server.start()\n\n GraphqlLocalClient.init(builtSchema, app)\n\n orderedModuleNames.forEach(name => {\n const { initMiddlewares } = loader(name)\n initMiddlewares && initMiddlewares(app)\n })\n\n const render = require('@things-factory/ejs-remote')\n render(app, {\n root: '/views',\n host: `http://127.0.0.1:${PORT}`,\n layout: false,\n viewExt: 'html',\n cache: false,\n debug: false\n })\n\n // only for development mode. triggered after webpack compilation is done.\n compiler.hooks.done.tap({ name: 'server-dev' }, stats => {\n ;(process as any).emit('client-rebuilt', app, compiler.outputFileSystem)\n })\n\n // Skip body parser for proxy paths to allow raw body forwarding\n app.use(async (ctx, next) => {\n const PROXY_PASSTHROUGH_PATHS = process['PROXY_PASSTHROUGH_PATHS'] || []\n if (PROXY_PASSTHROUGH_PATHS.some(path => ctx.path.startsWith(path))) {\n return next()\n }\n return koaBodyParser(bodyParserOption)(ctx, next)\n })\n\n /* routers */\n const ssoMiddlewares = []\n ;(process as any).emit('bootstrap-collect-sso-middleware', null, ssoMiddlewares)\n app.ssoMiddlewares = ssoMiddlewares\n\n ;(process as any).emit('bootstrap-module-global-public-route', app, globalPublicRouter)\n ;(process as any).emit('bootstrap-module-global-private-route', app, globalPrivateRouter)\n ;(process as any).emit('bootstrap-module-domain-public-route', app, domainPublicRouter)\n ;(process as any).emit('bootstrap-module-domain-private-route', app, domainPrivateRouter)\n\n app.use(checkValidity) /* Check the license after most of the context has been built */\n\n app\n .use(globalPublicRouter.routes())\n .use(globalPublicRouter.allowedMethods())\n .use(globalPrivateRouter.routes())\n .use(globalPrivateRouter.allowedMethods())\n .use(domainPublicRouter.routes())\n .use(domainPublicRouter.allowedMethods())\n .use(domainPrivateRouter.routes())\n .use(domainPrivateRouter.allowedMethods())\n\n /* Graphql Upload's multipart/form-data handling affects the restful file upload feature, so it should be placed after the routers configuration. */\n app.use(graphqlUploadKoa(fileUploadOption))\n\n graphqlRouter.post(\n '/graphql',\n koaMiddleware(server, {\n context: async ({ ctx }) => ctx\n })\n )\n app.use(graphqlRouter.routes())\n app.use(graphqlRouter.allowedMethods())\n\n /* should follow this order : history-fallback => webpack-middleware */\n app.use(historyApiFallback({ whiteList: [] }))\n\n app.use(\n wdm.koaWrapper(compiler, {\n publicPath: webpackConfig.output.publicPath\n })\n )\n\n httpServer.listen({ port: PORT }, () => {\n logger.info(`🚀 Server ready at http://0.0.0.0:${PORT}/graphql`)\n logger.info(`🚀 Subscriptions ready at ws://0.0.0.0:${PORT}/graphql`)\n\n ;(process as any).emit('bootstrap-module-start', { app, config, builtSchema, httpServer })\n })\n}\n\nbootstrap()\n"]}