@salesforce/pwa-kit-dev 3.0.0-preview.0

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 +14 -0
  2. package/README.md +35 -0
  3. package/bin/pwa-kit-dev.js +461 -0
  4. package/configs/babel/babel-config.js +34 -0
  5. package/configs/eslint/README.md +21 -0
  6. package/configs/eslint/eslint-config.js +11 -0
  7. package/configs/eslint/index.js +11 -0
  8. package/configs/eslint/no-react.js +18 -0
  9. package/configs/eslint/partials/base.js +38 -0
  10. package/configs/eslint/partials/jest.js +24 -0
  11. package/configs/eslint/partials/react.js +29 -0
  12. package/configs/eslint/partials/typescript-permit-any.js +31 -0
  13. package/configs/eslint/partials/typescript.js +17 -0
  14. package/configs/eslint/recommended.js +20 -0
  15. package/configs/eslint/safe-types.js +20 -0
  16. package/configs/jest/jest-babel-transform.js +19 -0
  17. package/configs/jest/jest.config.js +33 -0
  18. package/configs/jest/mocks/fileMock.js +9 -0
  19. package/configs/jest/mocks/styleMock.js +9 -0
  20. package/configs/jest/mocks/svgMock.js +11 -0
  21. package/configs/webpack/config-names.js +24 -0
  22. package/configs/webpack/config.js +425 -0
  23. package/configs/webpack/overrides-plugin.js +120 -0
  24. package/configs/webpack/plugins.js +92 -0
  25. package/package.json +150 -0
  26. package/scripts/version.js +22 -0
  27. package/ssr/server/build-dev-server.js +443 -0
  28. package/ssr/server/build-dev-server.test.js +635 -0
  29. package/ssr/server/loading-screen/css/main.css +272 -0
  30. package/ssr/server/loading-screen/css/normalize.css +349 -0
  31. package/ssr/server/loading-screen/img/cloud-1.svg +1 -0
  32. package/ssr/server/loading-screen/img/cloud-2.svg +1 -0
  33. package/ssr/server/loading-screen/img/cloud-3.svg +1 -0
  34. package/ssr/server/loading-screen/img/cloud.svg +1 -0
  35. package/ssr/server/loading-screen/img/codey-arm.svg +1 -0
  36. package/ssr/server/loading-screen/img/codey-bear.svg +1 -0
  37. package/ssr/server/loading-screen/img/codey-bg.svg +1 -0
  38. package/ssr/server/loading-screen/img/codey-cloud.svg +1 -0
  39. package/ssr/server/loading-screen/img/codey-search.svg +1 -0
  40. package/ssr/server/loading-screen/img/codey.svg +1 -0
  41. package/ssr/server/loading-screen/img/codeyCarry.svg +1 -0
  42. package/ssr/server/loading-screen/img/devDocumentation.svg +1 -0
  43. package/ssr/server/loading-screen/img/devGithub.svg +1 -0
  44. package/ssr/server/loading-screen/img/devTrailhead.svg +1 -0
  45. package/ssr/server/loading-screen/img/logo.svg +1 -0
  46. package/ssr/server/loading-screen/img/slds_spinner_brand_9EA9F1.gif +0 -0
  47. package/ssr/server/loading-screen/index.html +130 -0
  48. package/ssr/server/test_fixtures/app/main.js +6 -0
  49. package/ssr/server/test_fixtures/app/static/favicon.ico +0 -0
  50. package/ssr/server/test_fixtures/localhost.pem +45 -0
  51. package/utils/script-utils.js +312 -0
  52. package/utils/script-utils.test.js +282 -0
  53. package/utils/test-fixtures/minimal-built-app/ssr.js +9 -0
  54. package/utils/test-fixtures/minimal-built-app/static/favicon.ico +0 -0
@@ -0,0 +1,272 @@
1
+ @font-face {
2
+ font-family: 'Salesforce Sans';
3
+ src: local('Salesforce Sans'), local('SalesforceSans-Regular'),
4
+ url('https://unpkg.com/@salesforce-ux/design-system@2.14.3/assets/fonts/webfonts/SalesforceSans-Regular.woff2')
5
+ format('woff2'),
6
+ url('https://unpkg.com/@salesforce-ux/design-system@2.14.3/assets/fonts/webfonts/SalesforceSans-Regular.woff')
7
+ format('woff');
8
+ font-display: swap;
9
+ }
10
+
11
+ @font-face {
12
+ font-family: 'Salesforce Sans';
13
+ font-weight: 700;
14
+ src: local('Salesforce Sans Bold'), local('SalesforceSans-Bold'),
15
+ url('https://unpkg.com/@salesforce-ux/design-system@2.14.3/assets/fonts/webfonts/SalesforceSans-Bold.woff2')
16
+ format('woff2'),
17
+ url('https://unpkg.com/@salesforce-ux/design-system@2.14.3/assets/fonts/webfonts/SalesforceSans-Bold.woff')
18
+ format('woff');
19
+ font-display: swap;
20
+ }
21
+
22
+ @font-face {
23
+ font-family: 'ITC Avant Garde Demi Bold';
24
+ font-weight: 600;
25
+ src: url('data:font/woff2;base64,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')
26
+ format('woff2');
27
+ font-display: swap;
28
+ }
29
+
30
+ @keyframes drop-in {
31
+ from {
32
+ transform: translate(-50%, -55%);
33
+ }
34
+ to {
35
+ transform: translate(-50%, -50%);
36
+ }
37
+ }
38
+
39
+ @keyframes fade-in {
40
+ from {
41
+ opacity: 0;
42
+ }
43
+ to {
44
+ opacity: 1;
45
+ }
46
+ }
47
+
48
+ @keyframes floating {
49
+ from {
50
+ top: 50%;
51
+ }
52
+ 65% {
53
+ top: 52%;
54
+ }
55
+ to {
56
+ top: 50%;
57
+ }
58
+ }
59
+
60
+ :root {
61
+ --footer-height: 56px;
62
+ }
63
+
64
+ body {
65
+ /* As a fallback font, we prefer the system font that's available in the users OS */
66
+ font-family: 'Salesforce Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
67
+ sans-serif;
68
+ color: #3a49da;
69
+ }
70
+
71
+ main {
72
+ background: linear-gradient(180deg, rgba(234, 245, 255, 1) 0%, rgba(255, 255, 255, 1) 50%);
73
+ display: flex;
74
+ flex-direction: column;
75
+ justify-content: center;
76
+ height: calc(100vh - var(--footer-height));
77
+ margin-bottom: var(--footer-height);
78
+ }
79
+
80
+ .wrapper {
81
+ display: flex;
82
+ flex-direction: column;
83
+ max-height: calc(100% - (2 * 1.5em));
84
+ padding: 1.5em;
85
+ }
86
+
87
+ .main-img {
88
+ position: relative;
89
+ width: 100%;
90
+ max-width: 800px;
91
+ margin: 0 auto;
92
+ overflow: hidden;
93
+ }
94
+
95
+ /* Make sure that the container doesn't collapse due to absolutely positioned children */
96
+ .main-img::before {
97
+ content: '';
98
+ height: 0;
99
+ padding-bottom: 71.2%; /* 410/576 which is the aspect ratio of the illustration svg */
100
+ display: block;
101
+ }
102
+
103
+ .message {
104
+ opacity: 0;
105
+ animation: fade-in 1.5s 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
106
+ text-align: center;
107
+ }
108
+
109
+ .message h1 {
110
+ font-family: 'ITC Avant Garde Demi Bold', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
111
+ sans-serif;
112
+ font-style: normal;
113
+ font-weight: 600;
114
+ font-size: 24px;
115
+ }
116
+
117
+ .message p {
118
+ margin-top: 0;
119
+ font-style: normal;
120
+ font-weight: 400;
121
+ font-size: 14px;
122
+ line-height: 1.5;
123
+ }
124
+
125
+ .message a {
126
+ font-weight: 700;
127
+ color: #0176d3;
128
+ }
129
+
130
+ footer {
131
+ position: fixed;
132
+ bottom: 0;
133
+ left: 0;
134
+ right: 0;
135
+ padding: 0 20px;
136
+ height: var(--footer-height);
137
+
138
+ display: flex;
139
+ justify-content: space-between;
140
+ align-items: center;
141
+
142
+ background-color: #211989;
143
+ color: white;
144
+ }
145
+ footer a {
146
+ color: inherit;
147
+ font-style: normal;
148
+ font-weight: 400;
149
+ font-size: 16px;
150
+ line-height: 1;
151
+ text-decoration: none;
152
+ }
153
+ footer ul {
154
+ list-style: none;
155
+ display: flex;
156
+ }
157
+
158
+ .external-links a {
159
+ display: flex;
160
+ align-items: center;
161
+ }
162
+ .external-links img {
163
+ margin-right: 8px;
164
+ width: 28px;
165
+ height: 28px;
166
+ }
167
+ .external-links li {
168
+ margin-right: 40px;
169
+ }
170
+ .external-links li:last-child {
171
+ margin-right: 0;
172
+ }
173
+
174
+ .logo img {
175
+ /* So the logo is vertically aligned in the footer */
176
+ display: block;
177
+ }
178
+
179
+ .layer {
180
+ position: absolute;
181
+ top: 50%;
182
+ left: 50%;
183
+ object-fit: contain;
184
+ max-width: 100%;
185
+ height: 100%;
186
+ margin: 0 auto;
187
+ opacity: 0;
188
+ transform: translate(-50%, -55%);
189
+ animation: drop-in 1.5s cubic-bezier(0.16, 1, 0.3, 1) forwards,
190
+ fade-in 1.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
191
+ }
192
+
193
+ .layer-1 {
194
+ animation-delay: 0s;
195
+ }
196
+ .layer-2 {
197
+ animation-delay: 0.3s;
198
+ }
199
+
200
+ .cloud-1 {
201
+ animation: fade-in 1.5s 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards,
202
+ floating 6s -2.5s ease-in-out infinite;
203
+ }
204
+ .cloud-2 {
205
+ animation: fade-in 1.5s 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards,
206
+ floating 6s -1.5s ease-in-out infinite;
207
+ }
208
+ .cloud-3 {
209
+ animation: fade-in 1.5s 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards,
210
+ floating 6s -5s ease-in-out infinite;
211
+ }
212
+
213
+ .loading-text {
214
+ margin: 0 0 0.5em 0;
215
+ }
216
+ .loading-text:after {
217
+ overflow: hidden;
218
+ display: inline-block;
219
+ vertical-align: bottom;
220
+ animation: ellipsis steps(4, end) 4s infinite;
221
+ content: '\2026'; /* ascii code for the ellipsis character */
222
+ width: 0px;
223
+ position: absolute;
224
+ }
225
+
226
+ @keyframes ellipsis {
227
+ to {
228
+ width: 1.25em;
229
+ }
230
+ }
231
+
232
+ .fun-facts {
233
+ position: relative;
234
+ min-height: 2.5em;
235
+ }
236
+
237
+ .fun-fact {
238
+ margin: 0;
239
+ position: absolute;
240
+ top: 0;
241
+ left: 0;
242
+ width: 100%;
243
+ opacity: 0;
244
+ transition: opacity;
245
+ transition-duration: 0ms;
246
+ transition-timing-function: ease-in-out;
247
+ }
248
+
249
+ .fun-fact--hidden {
250
+ display: none;
251
+ }
252
+
253
+ .fun-fact--show {
254
+ opacity: 1;
255
+ }
256
+
257
+ @media (max-width: 600px) {
258
+ .external-links img {
259
+ margin-right: 0;
260
+ width: 32px;
261
+ height: 32px;
262
+ }
263
+ .external-links li {
264
+ margin-right: 24px;
265
+ }
266
+ .external-links li:last-child {
267
+ margin-right: 0;
268
+ }
269
+ .external-links span {
270
+ display: none;
271
+ }
272
+ }
@@ -0,0 +1,349 @@
1
+ /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
2
+
3
+ /* Document
4
+ ========================================================================== */
5
+
6
+ /**
7
+ * 1. Correct the line height in all browsers.
8
+ * 2. Prevent adjustments of font size after orientation changes in iOS.
9
+ */
10
+
11
+ html {
12
+ line-height: 1.15; /* 1 */
13
+ -webkit-text-size-adjust: 100%; /* 2 */
14
+ }
15
+
16
+ /* Sections
17
+ ========================================================================== */
18
+
19
+ /**
20
+ * Remove the margin in all browsers.
21
+ */
22
+
23
+ body {
24
+ margin: 0;
25
+ }
26
+
27
+ /**
28
+ * Render the `main` element consistently in IE.
29
+ */
30
+
31
+ main {
32
+ display: block;
33
+ }
34
+
35
+ /**
36
+ * Correct the font size and margin on `h1` elements within `section` and
37
+ * `article` contexts in Chrome, Firefox, and Safari.
38
+ */
39
+
40
+ h1 {
41
+ font-size: 2em;
42
+ margin: 0.67em 0;
43
+ }
44
+
45
+ /* Grouping content
46
+ ========================================================================== */
47
+
48
+ /**
49
+ * 1. Add the correct box sizing in Firefox.
50
+ * 2. Show the overflow in Edge and IE.
51
+ */
52
+
53
+ hr {
54
+ box-sizing: content-box; /* 1 */
55
+ height: 0; /* 1 */
56
+ overflow: visible; /* 2 */
57
+ }
58
+
59
+ /**
60
+ * 1. Correct the inheritance and scaling of font size in all browsers.
61
+ * 2. Correct the odd `em` font sizing in all browsers.
62
+ */
63
+
64
+ pre {
65
+ font-family: monospace, monospace; /* 1 */
66
+ font-size: 1em; /* 2 */
67
+ }
68
+
69
+ /* Text-level semantics
70
+ ========================================================================== */
71
+
72
+ /**
73
+ * Remove the gray background on active links in IE 10.
74
+ */
75
+
76
+ a {
77
+ background-color: transparent;
78
+ }
79
+
80
+ /**
81
+ * 1. Remove the bottom border in Chrome 57-
82
+ * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
83
+ */
84
+
85
+ abbr[title] {
86
+ border-bottom: none; /* 1 */
87
+ text-decoration: underline; /* 2 */
88
+ text-decoration: underline dotted; /* 2 */
89
+ }
90
+
91
+ /**
92
+ * Add the correct font weight in Chrome, Edge, and Safari.
93
+ */
94
+
95
+ b,
96
+ strong {
97
+ font-weight: bolder;
98
+ }
99
+
100
+ /**
101
+ * 1. Correct the inheritance and scaling of font size in all browsers.
102
+ * 2. Correct the odd `em` font sizing in all browsers.
103
+ */
104
+
105
+ code,
106
+ kbd,
107
+ samp {
108
+ font-family: monospace, monospace; /* 1 */
109
+ font-size: 1em; /* 2 */
110
+ }
111
+
112
+ /**
113
+ * Add the correct font size in all browsers.
114
+ */
115
+
116
+ small {
117
+ font-size: 80%;
118
+ }
119
+
120
+ /**
121
+ * Prevent `sub` and `sup` elements from affecting the line height in
122
+ * all browsers.
123
+ */
124
+
125
+ sub,
126
+ sup {
127
+ font-size: 75%;
128
+ line-height: 0;
129
+ position: relative;
130
+ vertical-align: baseline;
131
+ }
132
+
133
+ sub {
134
+ bottom: -0.25em;
135
+ }
136
+
137
+ sup {
138
+ top: -0.5em;
139
+ }
140
+
141
+ /* Embedded content
142
+ ========================================================================== */
143
+
144
+ /**
145
+ * Remove the border on images inside links in IE 10.
146
+ */
147
+
148
+ img {
149
+ border-style: none;
150
+ }
151
+
152
+ /* Forms
153
+ ========================================================================== */
154
+
155
+ /**
156
+ * 1. Change the font styles in all browsers.
157
+ * 2. Remove the margin in Firefox and Safari.
158
+ */
159
+
160
+ button,
161
+ input,
162
+ optgroup,
163
+ select,
164
+ textarea {
165
+ font-family: inherit; /* 1 */
166
+ font-size: 100%; /* 1 */
167
+ line-height: 1.15; /* 1 */
168
+ margin: 0; /* 2 */
169
+ }
170
+
171
+ /**
172
+ * Show the overflow in IE.
173
+ * 1. Show the overflow in Edge.
174
+ */
175
+
176
+ button,
177
+ input { /* 1 */
178
+ overflow: visible;
179
+ }
180
+
181
+ /**
182
+ * Remove the inheritance of text transform in Edge, Firefox, and IE.
183
+ * 1. Remove the inheritance of text transform in Firefox.
184
+ */
185
+
186
+ button,
187
+ select { /* 1 */
188
+ text-transform: none;
189
+ }
190
+
191
+ /**
192
+ * Correct the inability to style clickable types in iOS and Safari.
193
+ */
194
+
195
+ button,
196
+ [type="button"],
197
+ [type="reset"],
198
+ [type="submit"] {
199
+ -webkit-appearance: button;
200
+ }
201
+
202
+ /**
203
+ * Remove the inner border and padding in Firefox.
204
+ */
205
+
206
+ button::-moz-focus-inner,
207
+ [type="button"]::-moz-focus-inner,
208
+ [type="reset"]::-moz-focus-inner,
209
+ [type="submit"]::-moz-focus-inner {
210
+ border-style: none;
211
+ padding: 0;
212
+ }
213
+
214
+ /**
215
+ * Restore the focus styles unset by the previous rule.
216
+ */
217
+
218
+ button:-moz-focusring,
219
+ [type="button"]:-moz-focusring,
220
+ [type="reset"]:-moz-focusring,
221
+ [type="submit"]:-moz-focusring {
222
+ outline: 1px dotted ButtonText;
223
+ }
224
+
225
+ /**
226
+ * Correct the padding in Firefox.
227
+ */
228
+
229
+ fieldset {
230
+ padding: 0.35em 0.75em 0.625em;
231
+ }
232
+
233
+ /**
234
+ * 1. Correct the text wrapping in Edge and IE.
235
+ * 2. Correct the color inheritance from `fieldset` elements in IE.
236
+ * 3. Remove the padding so developers are not caught out when they zero out
237
+ * `fieldset` elements in all browsers.
238
+ */
239
+
240
+ legend {
241
+ box-sizing: border-box; /* 1 */
242
+ color: inherit; /* 2 */
243
+ display: table; /* 1 */
244
+ max-width: 100%; /* 1 */
245
+ padding: 0; /* 3 */
246
+ white-space: normal; /* 1 */
247
+ }
248
+
249
+ /**
250
+ * Add the correct vertical alignment in Chrome, Firefox, and Opera.
251
+ */
252
+
253
+ progress {
254
+ vertical-align: baseline;
255
+ }
256
+
257
+ /**
258
+ * Remove the default vertical scrollbar in IE 10+.
259
+ */
260
+
261
+ textarea {
262
+ overflow: auto;
263
+ }
264
+
265
+ /**
266
+ * 1. Add the correct box sizing in IE 10.
267
+ * 2. Remove the padding in IE 10.
268
+ */
269
+
270
+ [type="checkbox"],
271
+ [type="radio"] {
272
+ box-sizing: border-box; /* 1 */
273
+ padding: 0; /* 2 */
274
+ }
275
+
276
+ /**
277
+ * Correct the cursor style of increment and decrement buttons in Chrome.
278
+ */
279
+
280
+ [type="number"]::-webkit-inner-spin-button,
281
+ [type="number"]::-webkit-outer-spin-button {
282
+ height: auto;
283
+ }
284
+
285
+ /**
286
+ * 1. Correct the odd appearance in Chrome and Safari.
287
+ * 2. Correct the outline style in Safari.
288
+ */
289
+
290
+ [type="search"] {
291
+ -webkit-appearance: textfield; /* 1 */
292
+ outline-offset: -2px; /* 2 */
293
+ }
294
+
295
+ /**
296
+ * Remove the inner padding in Chrome and Safari on macOS.
297
+ */
298
+
299
+ [type="search"]::-webkit-search-decoration {
300
+ -webkit-appearance: none;
301
+ }
302
+
303
+ /**
304
+ * 1. Correct the inability to style clickable types in iOS and Safari.
305
+ * 2. Change font properties to `inherit` in Safari.
306
+ */
307
+
308
+ ::-webkit-file-upload-button {
309
+ -webkit-appearance: button; /* 1 */
310
+ font: inherit; /* 2 */
311
+ }
312
+
313
+ /* Interactive
314
+ ========================================================================== */
315
+
316
+ /*
317
+ * Add the correct display in Edge, IE 10+, and Firefox.
318
+ */
319
+
320
+ details {
321
+ display: block;
322
+ }
323
+
324
+ /*
325
+ * Add the correct display in all browsers.
326
+ */
327
+
328
+ summary {
329
+ display: list-item;
330
+ }
331
+
332
+ /* Misc
333
+ ========================================================================== */
334
+
335
+ /**
336
+ * Add the correct display in IE 10+.
337
+ */
338
+
339
+ template {
340
+ display: none;
341
+ }
342
+
343
+ /**
344
+ * Add the correct display in IE 10.
345
+ */
346
+
347
+ [hidden] {
348
+ display: none;
349
+ }