@jsenv/core 39.11.2 → 39.13.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 (37) hide show
  1. package/dist/css/directory_listing.css +211 -0
  2. package/dist/html/directory_listing.html +18 -0
  3. package/dist/js/directory_listing.js +240 -0
  4. package/dist/jsenv_core.js +1057 -757
  5. package/dist/other/dir.png +0 -0
  6. package/dist/other/file.png +0 -0
  7. package/dist/other/home.svg +6 -0
  8. package/package.json +6 -6
  9. package/src/build/build.js +7 -7
  10. package/src/build/build_specifier_manager.js +0 -1
  11. package/src/dev/start_dev_server.js +39 -49
  12. package/src/kitchen/kitchen.js +20 -4
  13. package/src/kitchen/out_directory_url.js +2 -1
  14. package/src/kitchen/url_graph/references.js +3 -1
  15. package/src/kitchen/url_graph/url_graph.js +1 -0
  16. package/src/kitchen/url_graph/url_info_transformations.js +37 -4
  17. package/src/plugins/inlining/jsenv_plugin_inlining_into_html.js +10 -8
  18. package/src/plugins/plugin_controller.js +170 -114
  19. package/src/plugins/plugins.js +5 -4
  20. package/src/plugins/protocol_file/client/assets/home.svg +6 -0
  21. package/src/plugins/protocol_file/client/directory_listing.css +190 -0
  22. package/src/plugins/protocol_file/client/directory_listing.html +18 -0
  23. package/src/plugins/protocol_file/client/directory_listing.jsx +250 -0
  24. package/src/plugins/protocol_file/file_and_server_urls_converter.js +32 -0
  25. package/src/plugins/protocol_file/jsenv_plugin_directory_listing.js +398 -0
  26. package/src/plugins/protocol_file/jsenv_plugin_protocol_file.js +40 -333
  27. package/src/plugins/protocol_http/jsenv_plugin_protocol_http.js +3 -2
  28. package/src/plugins/reference_analysis/html/jsenv_plugin_html_reference_analysis.js +7 -6
  29. package/src/plugins/reference_analysis/js/jsenv_plugin_js_reference_analysis.js +1 -3
  30. package/src/plugins/reference_analysis/jsenv_plugin_reference_analysis.js +2 -18
  31. package/src/plugins/server_events/jsenv_plugin_server_events.js +100 -0
  32. package/dist/html/directory.html +0 -165
  33. package/dist/html/html_404_and_ancestor_dir.html +0 -203
  34. package/src/plugins/protocol_file/client/assets/directory.css +0 -133
  35. package/src/plugins/protocol_file/client/directory.html +0 -17
  36. package/src/plugins/protocol_file/client/html_404_and_ancestor_dir.html +0 -54
  37. package/src/plugins/server_events/jsenv_plugin_server_events_client_injection.js +0 -37
@@ -1,165 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Directory explorer</title>
5
- <meta charset="utf-8">
6
- <link rel="icon" href="data:,">
7
- <style>
8
- html, body, h1, div, p, ul, li, a, p, button {
9
- -webkit-font-smoothing: antialiased;
10
- -moz-osx-font-smoothing: grayscale;
11
- border: 0;
12
- margin: 0;
13
- padding: 0;
14
- font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
15
- }
16
-
17
- .directory_nav {
18
- gap: .3em;
19
- margin: 20px 25px 15px;
20
- font-size: 16px;
21
- font-weight: bold;
22
- display: flex;
23
- }
24
-
25
- .directory_nav_item {
26
- text-decoration: none;
27
- position: relative;
28
- }
29
-
30
- .directory_empty_message {
31
- color: #bbb;
32
- margin: 1em;
33
- padding: .5em;
34
- }
35
-
36
- .directory_content {
37
- border-radius: 3px;
38
- margin: 10px 15px;
39
- list-style-type: none;
40
- }
41
-
42
- .directory_child {
43
- text-indent: 30px;
44
- box-sizing: border-box;
45
- background-position: 15px;
46
- background-repeat: no-repeat;
47
- background-size: 16px 16px;
48
- min-height: 19px;
49
- padding: 10px 15px;
50
- font-size: 15px;
51
- position: relative;
52
- }
53
-
54
- .directory_child:after {
55
- content: " ";
56
- display: block;
57
- position: absolute;
58
- bottom: 0;
59
- left: 15px;
60
- right: 0;
61
- }
62
-
63
- .directory_child:last-child {
64
- border-bottom: none;
65
- padding-bottom: 10px;
66
- }
67
-
68
- .directory_child:last-child:after {
69
- content: none;
70
- }
71
-
72
- .directory_child[data-type="file"] {
73
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAJBlWElmTU0AKgAAAAgABgEGAAMAAAABAAIAAAESAAMAAAABAAEAAAEaAAUAAAABAAAAVgEbAAUAAAABAAAAXgEoAAMAAAABAAIAAIdpAAQAAAABAAAAZgAAAAAAAABIAAAAAQAAAEgAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAACCgAwAEAAAAAQAAACAAAAAAF9yy1AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAgtpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0aW9uPjI8L3RpZmY6UGhvdG9tZXRyaWNJbnRlcnByZXRhdGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+MTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cu3MPn8AAAK5SURBVFgJ5Vc7jhpBEG1+MyA7sGxpQWScZU/g1HLqi+wl9goOnKxvQkCKRIjEahJYloEB1+udZ9U01cPMBk48UvOqql9Vve4e2F7n/venY2xAZ71efx0Oh4/n8/kO85fLxdNCZG5RFPl+v/+VJMmP6XT6wngT7BqkJE3TR4nfdTpv+mKochMR8E14v+fz+QcVv2laAtJut+tXjsax5oyjg+yUEwFuNBrdTyaTpzYiLAE9FGWDJiJwNHmeu8Fg4OToWomwBEjP6taHgkJf3gEvoN/vO4w2IiwBqH+1A3U7gSM4Ho+u1+t5AW1EmALCHdC+tr1S+cAOnE4nJ+9OaxGmgHAHQj8UAR/nj/cgFCHfqPvxePy0WCw+UrBG63fg83a7fSYp/O5rHzbG4XBwm83GZVnmvxE4CgjCUZQvppPfiJ+z2ey71C1YG2gK2O12z2wEEm0LEeM7gGOAjx3BTuABljt2lJ34JKHKD1Xfs258oAALh4hUNJGtxip9JXDwEL3j3EAQhIoA8x1AQ44ymaswsVyhOcf8Eq/6XQWYEBZFPIzRr5vTHNbWaApgUoixRuBxxDi6qbZNAbeKhMK0r22rjm4O2xQQK6KTYxzEY3M6n7YpAJNWEcaYTN9CK8Y8jaaAWDLiHCxyiwseOczRaArQSUwOURcJ57SvbZ1D2xQQJlk+YyxE30LGyNVoCgCBSXXIORakbyFj5BJNASQ3QXDIQ1HaMWRjoimgSaG6BnVzbEyMCvhXIkwBXMF7RHBlVq6eo20K0MnaprA65Bwb0CcyTrQE4I/5BgSdRLsJksMm8OVugJpvFwVOCFoCiuVy+SAJGXi6GO0mCA55cmnNVqvVg5SrXMd8fXwETyr+l3IMBa1rW5BS62LVrzJwz8Q4yPj7WMURw9UJQvBfksWRcOMHArByNM5lVI7hD10h1EqG5mxPAAAAAElFTkSuQmCC);
74
- }
75
-
76
- .directory_child[data-type="dir"] {
77
- background-image: url(data:image/png;base64,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);
78
- }
79
-
80
- .directory_child[data-type="dir"]:before {
81
- content: " ";
82
- border-top-right-radius: 1px;
83
- width: 5px;
84
- height: 5px;
85
- display: block;
86
- position: absolute;
87
- top: 16px;
88
- right: 15px;
89
- transform: rotate(45deg);
90
- }
91
-
92
- .directory_child a {
93
- text-decoration: none;
94
- display: block;
95
- }
96
-
97
- body[data-theme="dark"] {
98
- background: #121212;
99
- }
100
-
101
- body[data-theme="light"] {
102
- background: #f1f1f1;
103
- }
104
-
105
- body[data-theme="dark"] .directory_nav_item {
106
- color: #999;
107
- }
108
-
109
- body[data-theme="dark"] .directory_nav_item[data-current] {
110
- color: #f1f1f1;
111
- }
112
-
113
- body[data-theme="light"] .directory_nav_item {
114
- color: #000;
115
- }
116
-
117
- body[data-theme="dark"] .directory_separator {
118
- color: #666;
119
- }
120
-
121
- body[data-theme="light"] .directory_separator {
122
- color: #999;
123
- }
124
-
125
- body[data-theme="dark"] .directory_content {
126
- background: #1e1e1e;
127
- }
128
-
129
- body[data-theme="light"] .directory_content {
130
- background: #fefefe;
131
- }
132
-
133
- body[data-theme="dark"] .directory_child {
134
- border-bottom: 1px solid #121212;
135
- }
136
-
137
- body[data-theme="light"] .directory_child {
138
- border-bottom: 1px solid #f1f1f1;
139
- }
140
-
141
- body[data-theme="dark"] .directory_child[data-type="dir"]:before {
142
- border-top: 2px solid #666;
143
- border-right: 2px solid #666;
144
- }
145
-
146
- body[data-theme="light"] .directory_child[data-type="file"]:before {
147
- border-top: 2px solid #999;
148
- border-right: 2px solid #999;
149
- }
150
-
151
- body[data-theme="dark"] .directory_child a {
152
- color: #fff;
153
- }
154
-
155
- body[data-theme="light"] .directory_child a {
156
- color: #000;
157
- }
158
- </style>
159
- </head>
160
-
161
- <body data-theme="dark">
162
- <h1 class="directory_nav">${directoryNav}</h1>
163
- ${directoryContent}
164
- </body>
165
- </html>
@@ -1,203 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>404 ENOENT</title>
5
- <meta charset="utf-8">
6
- <link rel="icon" href="data:,">
7
- <style>
8
- html, body, h1, div, p, ul, li, a, p, button {
9
- -webkit-font-smoothing: antialiased;
10
- -moz-osx-font-smoothing: grayscale;
11
- border: 0;
12
- margin: 0;
13
- padding: 0;
14
- font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
15
- }
16
-
17
- .directory_nav {
18
- gap: .3em;
19
- margin: 20px 25px 15px;
20
- font-size: 16px;
21
- font-weight: bold;
22
- display: flex;
23
- }
24
-
25
- .directory_nav_item {
26
- text-decoration: none;
27
- position: relative;
28
- }
29
-
30
- .directory_empty_message {
31
- color: #bbb;
32
- margin: 1em;
33
- padding: .5em;
34
- }
35
-
36
- .directory_content {
37
- border-radius: 3px;
38
- margin: 10px 15px;
39
- list-style-type: none;
40
- }
41
-
42
- .directory_child {
43
- text-indent: 30px;
44
- box-sizing: border-box;
45
- background-position: 15px;
46
- background-repeat: no-repeat;
47
- background-size: 16px 16px;
48
- min-height: 19px;
49
- padding: 10px 15px;
50
- font-size: 15px;
51
- position: relative;
52
- }
53
-
54
- .directory_child:after {
55
- content: " ";
56
- display: block;
57
- position: absolute;
58
- bottom: 0;
59
- left: 15px;
60
- right: 0;
61
- }
62
-
63
- .directory_child:last-child {
64
- border-bottom: none;
65
- padding-bottom: 10px;
66
- }
67
-
68
- .directory_child:last-child:after {
69
- content: none;
70
- }
71
-
72
- .directory_child[data-type="file"] {
73
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAJBlWElmTU0AKgAAAAgABgEGAAMAAAABAAIAAAESAAMAAAABAAEAAAEaAAUAAAABAAAAVgEbAAUAAAABAAAAXgEoAAMAAAABAAIAAIdpAAQAAAABAAAAZgAAAAAAAABIAAAAAQAAAEgAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAACCgAwAEAAAAAQAAACAAAAAAF9yy1AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAgtpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0aW9uPjI8L3RpZmY6UGhvdG9tZXRyaWNJbnRlcnByZXRhdGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+MTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cu3MPn8AAAK5SURBVFgJ5Vc7jhpBEG1+MyA7sGxpQWScZU/g1HLqi+wl9goOnKxvQkCKRIjEahJYloEB1+udZ9U01cPMBk48UvOqql9Vve4e2F7n/venY2xAZ71efx0Oh4/n8/kO85fLxdNCZG5RFPl+v/+VJMmP6XT6wngT7BqkJE3TR4nfdTpv+mKochMR8E14v+fz+QcVv2laAtJut+tXjsax5oyjg+yUEwFuNBrdTyaTpzYiLAE9FGWDJiJwNHmeu8Fg4OToWomwBEjP6taHgkJf3gEvoN/vO4w2IiwBqH+1A3U7gSM4Ho+u1+t5AW1EmALCHdC+tr1S+cAOnE4nJ+9OaxGmgHAHQj8UAR/nj/cgFCHfqPvxePy0WCw+UrBG63fg83a7fSYp/O5rHzbG4XBwm83GZVnmvxE4CgjCUZQvppPfiJ+z2ey71C1YG2gK2O12z2wEEm0LEeM7gGOAjx3BTuABljt2lJ34JKHKD1Xfs258oAALh4hUNJGtxip9JXDwEL3j3EAQhIoA8x1AQ44ymaswsVyhOcf8Eq/6XQWYEBZFPIzRr5vTHNbWaApgUoixRuBxxDi6qbZNAbeKhMK0r22rjm4O2xQQK6KTYxzEY3M6n7YpAJNWEcaYTN9CK8Y8jaaAWDLiHCxyiwseOczRaArQSUwOURcJ57SvbZ1D2xQQJlk+YyxE30LGyNVoCgCBSXXIORakbyFj5BJNASQ3QXDIQ1HaMWRjoimgSaG6BnVzbEyMCvhXIkwBXMF7RHBlVq6eo20K0MnaprA65Bwb0CcyTrQE4I/5BgSdRLsJksMm8OVugJpvFwVOCFoCiuVy+SAJGXi6GO0mCA55cmnNVqvVg5SrXMd8fXwETyr+l3IMBa1rW5BS62LVrzJwz8Q4yPj7WMURw9UJQvBfksWRcOMHArByNM5lVI7hD10h1EqG5mxPAAAAAElFTkSuQmCC);
74
- }
75
-
76
- .directory_child[data-type="dir"] {
77
- background-image: url(data:image/png;base64,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);
78
- }
79
-
80
- .directory_child[data-type="dir"]:before {
81
- content: " ";
82
- border-top-right-radius: 1px;
83
- width: 5px;
84
- height: 5px;
85
- display: block;
86
- position: absolute;
87
- top: 16px;
88
- right: 15px;
89
- transform: rotate(45deg);
90
- }
91
-
92
- .directory_child a {
93
- text-decoration: none;
94
- display: block;
95
- }
96
-
97
- body[data-theme="dark"] {
98
- background: #121212;
99
- }
100
-
101
- body[data-theme="light"] {
102
- background: #f1f1f1;
103
- }
104
-
105
- body[data-theme="dark"] .directory_nav_item {
106
- color: #999;
107
- }
108
-
109
- body[data-theme="dark"] .directory_nav_item[data-current] {
110
- color: #f1f1f1;
111
- }
112
-
113
- body[data-theme="light"] .directory_nav_item {
114
- color: #000;
115
- }
116
-
117
- body[data-theme="dark"] .directory_separator {
118
- color: #666;
119
- }
120
-
121
- body[data-theme="light"] .directory_separator {
122
- color: #999;
123
- }
124
-
125
- body[data-theme="dark"] .directory_content {
126
- background: #1e1e1e;
127
- }
128
-
129
- body[data-theme="light"] .directory_content {
130
- background: #fefefe;
131
- }
132
-
133
- body[data-theme="dark"] .directory_child {
134
- border-bottom: 1px solid #121212;
135
- }
136
-
137
- body[data-theme="light"] .directory_child {
138
- border-bottom: 1px solid #f1f1f1;
139
- }
140
-
141
- body[data-theme="dark"] .directory_child[data-type="dir"]:before {
142
- border-top: 2px solid #666;
143
- border-right: 2px solid #666;
144
- }
145
-
146
- body[data-theme="light"] .directory_child[data-type="file"]:before {
147
- border-top: 2px solid #999;
148
- border-right: 2px solid #999;
149
- }
150
-
151
- body[data-theme="dark"] .directory_child a {
152
- color: #fff;
153
- }
154
-
155
- body[data-theme="light"] .directory_child a {
156
- color: #000;
157
- }
158
- </style>
159
- <style>.error_message {
160
- background-color: #fce4e4;
161
- border: 1px solid #fcc2c3;
162
- margin: 1em;
163
- padding: 1.5em 1.2em;
164
- display: block;
165
- }
166
-
167
- .error_text {
168
- color: #c03;
169
- text-shadow: 1px 1px #fafafa4d;
170
- font-weight: bold;
171
- line-height: 2em;
172
- }
173
-
174
- .hint_message {
175
- background-color: #add8e6;
176
- border: 1px solid #fcc2c3;
177
- margin: 1em;
178
- padding: 1.5em 1.2em;
179
- display: block;
180
- }
181
-
182
- .hint_text {
183
- color: #000;
184
- text-shadow: 1px 1px #fafafa4d;
185
- font-weight: bold;
186
- line-height: 2em;
187
- }
188
- </style>
189
- </head>
190
-
191
- <body data-theme="dark">
192
- <p class="error_message">
193
- <span class="error_text">
194
- No entry on the filesystem for <code>/${fileRelativeUrl}</code> (at
195
- ${fileUrl})
196
- <br>
197
- Content of first ancestor directory is listed below:
198
- </span>
199
- </p>
200
- <h1 class="directory_nav">${ancestorDirectoryNav}</h1>
201
- ${ancestorDirectoryContent}
202
- </body>
203
- </html>
@@ -1,133 +0,0 @@
1
- html,
2
- body,
3
- h1,
4
- div,
5
- p,
6
- ul,
7
- li,
8
- a,
9
- p,
10
- button {
11
- margin: 0;
12
- padding: 0;
13
- border: 0;
14
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
15
- -webkit-font-smoothing: antialiased;
16
- -moz-osx-font-smoothing: grayscale;
17
- }
18
- .directory_nav {
19
- font-size: 16px;
20
- font-weight: bold;
21
- margin: 20px 25px 15px 25px;
22
- display: flex;
23
- gap: 0.3em;
24
- }
25
- .directory_nav_item {
26
- text-decoration: none;
27
- position: relative;
28
- }
29
- .directory_empty_message {
30
- margin: 1em;
31
- padding: 0.5em;
32
- color: #bbbbbb;
33
- }
34
- .directory_content {
35
- margin: 10px 15px 10px 15px;
36
- list-style-type: none;
37
- border-radius: 3px;
38
- }
39
- .directory_child {
40
- position: relative;
41
- padding: 10px 15px 10px 15px;
42
- background-size: 16px 16px;
43
- background-position: 15px center;
44
- background-repeat: no-repeat;
45
- text-indent: 30px;
46
- font-size: 15px;
47
- min-height: 19px;
48
- box-sizing: border-box;
49
- }
50
- .directory_child::after {
51
- position: absolute;
52
- content: " ";
53
- display: block;
54
- bottom: 0;
55
- left: 15px;
56
- right: 0;
57
- }
58
- .directory_child:last-child {
59
- border-bottom: none;
60
- padding-bottom: 10px;
61
- }
62
- .directory_child:last-child::after {
63
- content: none;
64
- }
65
- .directory_child[data-type="file"] {
66
- background-image: url("./file.png?inline");
67
- }
68
- .directory_child[data-type="dir"] {
69
- background-image: url("./dir.png?inline");
70
- }
71
- .directory_child[data-type="dir"]::before {
72
- content: " ";
73
- position: absolute;
74
- display: block;
75
- width: 5px;
76
- height: 5px;
77
- border-top-right-radius: 1px;
78
- transform: rotate(45deg);
79
- right: 15px;
80
- top: 16px;
81
- }
82
- .directory_child a {
83
- text-decoration: none;
84
- display: block;
85
- }
86
-
87
- body[data-theme="dark"] {
88
- background: #121212;
89
- }
90
- body[data-theme="light"] {
91
- background: #f1f1f1;
92
- }
93
- body[data-theme="dark"] .directory_nav_item {
94
- color: #999999;
95
- }
96
- body[data-theme="dark"] .directory_nav_item[data-current] {
97
- color: #f1f1f1;
98
- }
99
- body[data-theme="light"] .directory_nav_item {
100
- color: #000000;
101
- }
102
- body[data-theme="dark"] .directory_separator {
103
- color: #666666;
104
- }
105
- body[data-theme="light"] .directory_separator {
106
- color: #999999;
107
- }
108
- body[data-theme="dark"] .directory_content {
109
- background: #1e1e1e;
110
- }
111
- body[data-theme="light"] .directory_content {
112
- background: #fefefe;
113
- }
114
- body[data-theme="dark"] .directory_child {
115
- border-bottom: 1px solid #121212;
116
- }
117
- body[data-theme="light"] .directory_child {
118
- border-bottom: 1px solid #f1f1f1;
119
- }
120
- body[data-theme="dark"] .directory_child[data-type="dir"]::before {
121
- border-top: 2px solid #666666;
122
- border-right: 2px solid #666666;
123
- }
124
- body[data-theme="light"] .directory_child[data-type="file"]::before {
125
- border-top: 2px solid #999999;
126
- border-right: 2px solid #999999;
127
- }
128
- body[data-theme="dark"] .directory_child a {
129
- color: #ffffff;
130
- }
131
- body[data-theme="light"] .directory_child a {
132
- color: #000000;
133
- }
@@ -1,17 +0,0 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <title>Directory explorer</title>
5
- <meta charset="utf-8" />
6
- <link rel="icon" href="data:," />
7
- <link
8
- rel="stylesheet"
9
- href="node_esm:@jsenv/core/src/plugins/protocol_file/client/assets/directory.css?inline"
10
- />
11
- </head>
12
-
13
- <body data-theme="dark">
14
- <h1 class="directory_nav">${directoryNav}</h1>
15
- ${directoryContent}
16
- </body>
17
- </html>
@@ -1,54 +0,0 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <title>404 ENOENT</title>
5
- <meta charset="utf-8" />
6
- <link rel="icon" href="data:," />
7
- <link
8
- rel="stylesheet"
9
- href="node_esm:@jsenv/core/src/plugins/protocol_file/client/assets/directory.css?inline"
10
- />
11
- <style>
12
- .error_message {
13
- background-color: #fce4e4;
14
- border: 1px solid #fcc2c3;
15
- padding: 1.5em 1.2em;
16
- margin: 1em;
17
- display: block;
18
- }
19
- .error_text {
20
- color: #cc0033;
21
- font-weight: bold;
22
- line-height: 2em;
23
- text-shadow: 1px 1px rgba(250, 250, 250, 0.3);
24
- }
25
-
26
- .hint_message {
27
- background-color: lightblue;
28
- border: 1px solid #fcc2c3;
29
- padding: 1.5em 1.2em;
30
- margin: 1em;
31
- display: block;
32
- }
33
- .hint_text {
34
- color: black;
35
- font-weight: bold;
36
- line-height: 2em;
37
- text-shadow: 1px 1px rgba(250, 250, 250, 0.3);
38
- }
39
- </style>
40
- </head>
41
-
42
- <body data-theme="dark">
43
- <p class="error_message">
44
- <span class="error_text">
45
- No entry on the filesystem for <code>/${fileRelativeUrl}</code> (at
46
- ${fileUrl})
47
- <br />
48
- Content of first ancestor directory is listed below:
49
- </span>
50
- </p>
51
- <h1 class="directory_nav">${ancestorDirectoryNav}</h1>
52
- ${ancestorDirectoryContent}
53
- </body>
54
- </html>
@@ -1,37 +0,0 @@
1
- /*
2
- * This plugin is very special because it is here
3
- * to provide "serverEvents" used by other plugins
4
- */
5
-
6
- import { injectJsenvScript, parseHtml, stringifyHtmlAst } from "@jsenv/ast";
7
-
8
- const serverEventsClientFileUrl = new URL(
9
- "./client/server_events_client.js",
10
- import.meta.url,
11
- ).href;
12
-
13
- export const jsenvPluginServerEventsClientInjection = ({ logs = true }) => {
14
- return {
15
- name: "jsenv:server_events_client_injection",
16
- appliesDuring: "*",
17
- transformUrlContent: {
18
- html: (urlInfo) => {
19
- const htmlAst = parseHtml({
20
- html: urlInfo.content,
21
- url: urlInfo.url,
22
- });
23
- injectJsenvScript(htmlAst, {
24
- src: serverEventsClientFileUrl,
25
- initCall: {
26
- callee: "window.__server_events__.setup",
27
- params: {
28
- logs,
29
- },
30
- },
31
- pluginName: "jsenv:server_events_client_injection",
32
- });
33
- return stringifyHtmlAst(htmlAst);
34
- },
35
- },
36
- };
37
- };