@sasjs/cli 6.30.0 → 6.31.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 (23) hide show
  1. package/build/commands/build/internal/mockSite/assets/api-console.css +365 -0
  2. package/build/commands/build/internal/mockSite/assets/api-console.js +762 -0
  3. package/build/commands/build/internal/mockSite/assets/api-index.html +83 -0
  4. package/build/commands/build/internal/mockSite/assets/boot.js +23 -1
  5. package/build/commands/build/internal/mockSite/assets/persist.js +76 -5
  6. package/build/commands/build/internal/mockSite/assets/runtime-core.js +413 -50
  7. package/build/commands/build/internal/mockSite/assets/sw.js +156 -15
  8. package/build/commands/build/internal/mockSite/mockSite.d.ts +25 -0
  9. package/build/commands/build/internal/mockSite/mockSite.js +311 -24
  10. package/build/commands/build/internal/mockSite/spec/apiConsole.spec.d.ts +1 -0
  11. package/build/commands/build/internal/mockSite/spec/apiConsole.spec.js +1371 -0
  12. package/build/commands/build/internal/mockSite/spec/apiConsoleBasePath.spec.d.ts +1 -0
  13. package/build/commands/build/internal/mockSite/spec/apiConsoleBasePath.spec.js +303 -0
  14. package/build/commands/build/internal/mockSite/spec/boot.spec.js +50 -3
  15. package/build/commands/build/internal/mockSite/spec/mockSite.spec.js +217 -3
  16. package/build/commands/build/internal/mockSite/spec/persist.spec.js +179 -1
  17. package/build/commands/build/internal/mockSite/spec/runtime-core.spec.js +546 -0
  18. package/build/commands/build/internal/mockSite/spec/sw.spec.js +407 -53
  19. package/build/commands/version/spec/version.spec.js +11 -1
  20. package/build/commands/version/version.d.ts +5 -3
  21. package/build/commands/version/version.js +17 -7
  22. package/build/types/mockWebBasePath.d.ts +9 -0
  23. package/package.json +13 -32
@@ -0,0 +1,365 @@
1
+ /*
2
+ * The API console's stylesheet.
3
+ *
4
+ * Plain CSS, no framework, no external font: the page has to work on a static
5
+ * host with a `default-src 'self'` policy, so everything it needs is here.
6
+ */
7
+ :root {
8
+ --bg: #11161c;
9
+ --panel: #18202a;
10
+ --panel-2: #1f2937;
11
+ --line: #2b3543;
12
+ --text: #e6edf3;
13
+ --muted: #9aa7b4;
14
+ --accent: #4f9cf9;
15
+ --ok: #3fb950;
16
+ --bad: #f85149;
17
+ --get: #4f9cf9;
18
+ --post: #3fb950;
19
+ --patch: #d29922;
20
+ --put: #a371f7;
21
+ --delete: #f85149;
22
+ }
23
+
24
+ * {
25
+ box-sizing: border-box;
26
+ }
27
+
28
+ body {
29
+ margin: 0;
30
+ background: var(--bg);
31
+ color: var(--text);
32
+ font:
33
+ 14px/1.5 -apple-system,
34
+ BlinkMacSystemFont,
35
+ 'Segoe UI',
36
+ Roboto,
37
+ Helvetica,
38
+ Arial,
39
+ sans-serif;
40
+ }
41
+
42
+ code {
43
+ background: var(--panel-2);
44
+ padding: 1px 4px;
45
+ border-radius: 4px;
46
+ }
47
+
48
+ .bar {
49
+ display: flex;
50
+ align-items: center;
51
+ gap: 10px;
52
+ padding: 12px 18px;
53
+ border-bottom: 1px solid var(--line);
54
+ background: var(--panel);
55
+ }
56
+
57
+ .bar h1 {
58
+ font-size: 16px;
59
+ margin: 0;
60
+ font-weight: 600;
61
+ }
62
+
63
+ .badge {
64
+ font-size: 11px;
65
+ text-transform: uppercase;
66
+ letter-spacing: 0.06em;
67
+ color: var(--muted);
68
+ border: 1px solid var(--line);
69
+ border-radius: 999px;
70
+ padding: 2px 8px;
71
+ }
72
+
73
+ .spacer {
74
+ flex: 1;
75
+ }
76
+
77
+ .who {
78
+ font-size: 12px;
79
+ color: var(--muted);
80
+ }
81
+
82
+ .who.acting {
83
+ color: var(--patch);
84
+ font-weight: 600;
85
+ }
86
+
87
+ .layout {
88
+ display: grid;
89
+ grid-template-columns: 340px 1fr;
90
+ min-height: calc(100vh - 49px);
91
+ }
92
+
93
+ .list {
94
+ border-right: 1px solid var(--line);
95
+ padding: 12px;
96
+ overflow-y: auto;
97
+ max-height: calc(100vh - 49px);
98
+ position: sticky;
99
+ top: 0;
100
+ }
101
+
102
+ #filter {
103
+ width: 100%;
104
+ padding: 8px 10px;
105
+ margin-bottom: 12px;
106
+ border-radius: 6px;
107
+ border: 1px solid var(--line);
108
+ background: var(--panel);
109
+ color: var(--text);
110
+ }
111
+
112
+ .list h3 {
113
+ font-size: 11px;
114
+ text-transform: uppercase;
115
+ letter-spacing: 0.08em;
116
+ color: var(--muted);
117
+ margin: 14px 0 6px;
118
+ }
119
+
120
+ .route {
121
+ display: flex;
122
+ gap: 8px;
123
+ align-items: baseline;
124
+ width: 100%;
125
+ text-align: left;
126
+ background: transparent;
127
+ border: 1px solid transparent;
128
+ border-radius: 6px;
129
+ padding: 6px 8px;
130
+ color: var(--text);
131
+ cursor: pointer;
132
+ font: inherit;
133
+ }
134
+
135
+ .route:hover {
136
+ background: var(--panel);
137
+ border-color: var(--line);
138
+ }
139
+
140
+ .route.active {
141
+ background: var(--panel-2);
142
+ border-color: var(--accent);
143
+ }
144
+
145
+ .method {
146
+ font-size: 10px;
147
+ font-weight: 700;
148
+ letter-spacing: 0.04em;
149
+ min-width: 46px;
150
+ }
151
+
152
+ .method.get {
153
+ color: var(--get);
154
+ }
155
+ .method.post {
156
+ color: var(--post);
157
+ }
158
+ .method.patch {
159
+ color: var(--patch);
160
+ }
161
+ .method.put {
162
+ color: var(--put);
163
+ }
164
+ .method.delete {
165
+ color: var(--delete);
166
+ }
167
+
168
+ .path {
169
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
170
+ font-size: 12px;
171
+ overflow: hidden;
172
+ text-overflow: ellipsis;
173
+ white-space: nowrap;
174
+ }
175
+
176
+ .detail {
177
+ padding: 20px 24px 60px;
178
+ max-width: 900px;
179
+ }
180
+
181
+ .detail h2 {
182
+ font-size: 18px;
183
+ margin: 0 0 4px;
184
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
185
+ }
186
+
187
+ .summary {
188
+ color: var(--muted);
189
+ margin: 0 0 18px;
190
+ }
191
+
192
+ .empty {
193
+ color: var(--muted);
194
+ max-width: 640px;
195
+ }
196
+
197
+ .hint {
198
+ color: var(--muted);
199
+ font-size: 12px;
200
+ }
201
+
202
+ .hint.warn {
203
+ color: var(--patch);
204
+ }
205
+
206
+ fieldset {
207
+ border: 1px solid var(--line);
208
+ border-radius: 8px;
209
+ margin: 0 0 14px;
210
+ padding: 12px 14px 14px;
211
+ background: var(--panel);
212
+ }
213
+
214
+ legend {
215
+ font-size: 11px;
216
+ text-transform: uppercase;
217
+ letter-spacing: 0.08em;
218
+ color: var(--muted);
219
+ padding: 0 6px;
220
+ }
221
+
222
+ .field {
223
+ display: grid;
224
+ grid-template-columns: 200px 1fr;
225
+ grid-template-areas: 'name input' 'where input';
226
+ align-items: center;
227
+ gap: 0 12px;
228
+ padding: 6px 0;
229
+ }
230
+
231
+ .field .name {
232
+ grid-area: name;
233
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
234
+ font-size: 12px;
235
+ }
236
+
237
+ .field .where {
238
+ grid-area: where;
239
+ font-size: 10px;
240
+ color: var(--muted);
241
+ }
242
+
243
+ .field input[type='text'] {
244
+ grid-area: input;
245
+ padding: 7px 9px;
246
+ border-radius: 6px;
247
+ border: 1px solid var(--line);
248
+ background: var(--panel-2);
249
+ color: var(--text);
250
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
251
+ font-size: 12px;
252
+ }
253
+
254
+ .field input[type='checkbox'] {
255
+ grid-area: input;
256
+ justify-self: start;
257
+ width: 16px;
258
+ height: 16px;
259
+ }
260
+
261
+ .actions {
262
+ display: flex;
263
+ align-items: center;
264
+ gap: 12px;
265
+ margin: 4px 0 16px;
266
+ }
267
+
268
+ #send {
269
+ background: var(--accent);
270
+ color: #06121f;
271
+ border: 0;
272
+ border-radius: 6px;
273
+ padding: 9px 20px;
274
+ font-weight: 600;
275
+ cursor: pointer;
276
+ }
277
+
278
+ #send:disabled {
279
+ opacity: 0.6;
280
+ cursor: default;
281
+ }
282
+
283
+ .timing {
284
+ font-size: 12px;
285
+ color: var(--muted);
286
+ }
287
+
288
+ .response {
289
+ border: 1px solid var(--line);
290
+ border-radius: 8px;
291
+ overflow: hidden;
292
+ background: var(--panel);
293
+ }
294
+
295
+ .responsebar {
296
+ display: flex;
297
+ align-items: center;
298
+ gap: 10px;
299
+ padding: 8px 12px;
300
+ border-bottom: 1px solid var(--line);
301
+ background: var(--panel-2);
302
+ }
303
+
304
+ .status {
305
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
306
+ font-size: 12px;
307
+ font-weight: 600;
308
+ }
309
+
310
+ .status.ok {
311
+ color: var(--ok);
312
+ }
313
+
314
+ .status.bad {
315
+ color: var(--bad);
316
+ }
317
+
318
+ .link {
319
+ background: none;
320
+ border: 0;
321
+ color: var(--accent);
322
+ cursor: pointer;
323
+ font: inherit;
324
+ font-size: 12px;
325
+ }
326
+
327
+ .link:disabled {
328
+ color: var(--muted);
329
+ cursor: default;
330
+ }
331
+
332
+ pre {
333
+ margin: 0;
334
+ padding: 12px;
335
+ overflow: auto;
336
+ max-height: 60vh;
337
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
338
+ font-size: 12px;
339
+ white-space: pre-wrap;
340
+ word-break: break-word;
341
+ }
342
+
343
+ table {
344
+ border-collapse: collapse;
345
+ margin: 8px 0 0;
346
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
347
+ font-size: 12px;
348
+ }
349
+
350
+ td {
351
+ border: 1px solid var(--line);
352
+ padding: 4px 10px;
353
+ }
354
+
355
+ @media (max-width: 800px) {
356
+ .layout {
357
+ grid-template-columns: 1fr;
358
+ }
359
+ .list {
360
+ position: static;
361
+ max-height: none;
362
+ border-right: 0;
363
+ border-bottom: 1px solid var(--line);
364
+ }
365
+ }