@browsersync/bslive 0.0.14 → 0.0.15

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 (153) hide show
  1. package/package.json +22 -17
  2. package/Cargo.toml +0 -34
  3. package/bslive/Cargo.toml +0 -35
  4. package/bslive/build.rs +0 -5
  5. package/bslive/src/lib.rs +0 -135
  6. package/bsnext/Cargo.toml +0 -21
  7. package/bsnext/src/main.rs +0 -116
  8. package/crates/bsnext_client/Cargo.toml +0 -8
  9. package/crates/bsnext_client/build.rs +0 -53
  10. package/crates/bsnext_client/generated/dto.ts +0 -147
  11. package/crates/bsnext_client/generated/schema.ts +0 -237
  12. package/crates/bsnext_client/inject/dist/index.js +0 -6540
  13. package/crates/bsnext_client/inject/package.json +0 -12
  14. package/crates/bsnext_client/inject/src/console.ts +0 -25
  15. package/crates/bsnext_client/inject/src/index.ts +0 -73
  16. package/crates/bsnext_client/package-lock.json +0 -2145
  17. package/crates/bsnext_client/package.json +0 -27
  18. package/crates/bsnext_client/src/lib.rs +0 -11
  19. package/crates/bsnext_client/tsconfig.json +0 -22
  20. package/crates/bsnext_client/ui/dist/index.css +0 -78
  21. package/crates/bsnext_client/ui/dist/index.js +0 -997
  22. package/crates/bsnext_client/ui/index.html +0 -18
  23. package/crates/bsnext_client/ui/input.yml +0 -19
  24. package/crates/bsnext_client/ui/package.json +0 -18
  25. package/crates/bsnext_client/ui/src/components/bs-debug.ts +0 -27
  26. package/crates/bsnext_client/ui/src/components/bs-header.ts +0 -33
  27. package/crates/bsnext_client/ui/src/components/bs-icon.ts +0 -101
  28. package/crates/bsnext_client/ui/src/components/bs-server-detail.ts +0 -21
  29. package/crates/bsnext_client/ui/src/components/bs-server-identity.ts +0 -24
  30. package/crates/bsnext_client/ui/src/components/bs-server-list.ts +0 -39
  31. package/crates/bsnext_client/ui/src/index.ts +0 -39
  32. package/crates/bsnext_client/ui/styles/base.css.ts +0 -17
  33. package/crates/bsnext_client/ui/styles/reset.css +0 -52
  34. package/crates/bsnext_client/ui/styles/style.css +0 -29
  35. package/crates/bsnext_client/ui/svg/wordmark-white.svg +0 -38
  36. package/crates/bsnext_core/Cargo.toml +0 -44
  37. package/crates/bsnext_core/src/common_layers.rs +0 -62
  38. package/crates/bsnext_core/src/dir_loader.rs +0 -230
  39. package/crates/bsnext_core/src/dto.rs +0 -341
  40. package/crates/bsnext_core/src/handlers/mod.rs +0 -1
  41. package/crates/bsnext_core/src/handlers/proxy.rs +0 -95
  42. package/crates/bsnext_core/src/lib.rs +0 -12
  43. package/crates/bsnext_core/src/meta/mod.rs +0 -5
  44. package/crates/bsnext_core/src/not_found/mod.rs +0 -1
  45. package/crates/bsnext_core/src/not_found/not_found_service.rs +0 -35
  46. package/crates/bsnext_core/src/panic_handler.rs +0 -32
  47. package/crates/bsnext_core/src/raw_loader.rs +0 -196
  48. package/crates/bsnext_core/src/server/actor.rs +0 -92
  49. package/crates/bsnext_core/src/server/error.rs +0 -41
  50. package/crates/bsnext_core/src/server/handler_change.rs +0 -85
  51. package/crates/bsnext_core/src/server/handler_listen.rs +0 -163
  52. package/crates/bsnext_core/src/server/handler_patch.rs +0 -42
  53. package/crates/bsnext_core/src/server/handler_routes_updated.rs +0 -27
  54. package/crates/bsnext_core/src/server/handler_stop.rs +0 -38
  55. package/crates/bsnext_core/src/server/mod.rs +0 -10
  56. package/crates/bsnext_core/src/server/router/assets.rs +0 -39
  57. package/crates/bsnext_core/src/server/router/mod.rs +0 -123
  58. package/crates/bsnext_core/src/server/router/pub_api.rs +0 -39
  59. package/crates/bsnext_core/src/server/router/snapshots/bsnext_core__server__router__tests__test__handlers.snap +0 -9
  60. package/crates/bsnext_core/src/server/router/tests.rs +0 -209
  61. package/crates/bsnext_core/src/server/signals.rs +0 -11
  62. package/crates/bsnext_core/src/server/state.rs +0 -23
  63. package/crates/bsnext_core/src/servers_supervisor/actor.rs +0 -199
  64. package/crates/bsnext_core/src/servers_supervisor/file_changed_handler.rs +0 -41
  65. package/crates/bsnext_core/src/servers_supervisor/get_servers_handler.rs +0 -24
  66. package/crates/bsnext_core/src/servers_supervisor/input_changed_handler.rs +0 -21
  67. package/crates/bsnext_core/src/servers_supervisor/mod.rs +0 -6
  68. package/crates/bsnext_core/src/servers_supervisor/start_handler.rs +0 -86
  69. package/crates/bsnext_core/src/servers_supervisor/stop_handler.rs +0 -26
  70. package/crates/bsnext_core/src/ws/mod.rs +0 -164
  71. package/crates/bsnext_example/Cargo.toml +0 -10
  72. package/crates/bsnext_example/src/basic.rs +0 -51
  73. package/crates/bsnext_example/src/lib.rs +0 -26
  74. package/crates/bsnext_example/src/lit.rs +0 -37
  75. package/crates/bsnext_example/src/md.rs +0 -18
  76. package/crates/bsnext_fs/Cargo.toml +0 -22
  77. package/crates/bsnext_fs/src/actor.rs +0 -123
  78. package/crates/bsnext_fs/src/buffered_debounce.rs +0 -166
  79. package/crates/bsnext_fs/src/filter.rs +0 -39
  80. package/crates/bsnext_fs/src/inner_fs_event_handler.rs +0 -94
  81. package/crates/bsnext_fs/src/lib.rs +0 -141
  82. package/crates/bsnext_fs/src/remove_path_handler.rs +0 -46
  83. package/crates/bsnext_fs/src/stop_handler.rs +0 -15
  84. package/crates/bsnext_fs/src/stream.rs +0 -167
  85. package/crates/bsnext_fs/src/test/mod.rs +0 -213
  86. package/crates/bsnext_fs/src/watch_path_handler.rs +0 -67
  87. package/crates/bsnext_fs/src/watcher.rs +0 -349
  88. package/crates/bsnext_input/Cargo.toml +0 -25
  89. package/crates/bsnext_input/src/input_test/mod.rs +0 -185
  90. package/crates/bsnext_input/src/input_test/snapshots/bsnext_input__input_test__deserialize_3_headers.snap +0 -29
  91. package/crates/bsnext_input/src/input_test/snapshots/bsnext_input__input_test__deserialize_3_headers_control.snap +0 -25
  92. package/crates/bsnext_input/src/lib.rs +0 -153
  93. package/crates/bsnext_input/src/md.rs +0 -541
  94. package/crates/bsnext_input/src/paths.rs +0 -64
  95. package/crates/bsnext_input/src/route.rs +0 -189
  96. package/crates/bsnext_input/src/route_manifest.rs +0 -186
  97. package/crates/bsnext_input/src/server_config.rs +0 -88
  98. package/crates/bsnext_input/src/target.rs +0 -7
  99. package/crates/bsnext_input/src/watch_opt_test/mod.rs +0 -68
  100. package/crates/bsnext_input/src/yml.rs +0 -1
  101. package/crates/bsnext_output/Cargo.toml +0 -16
  102. package/crates/bsnext_output/src/json.rs +0 -11
  103. package/crates/bsnext_output/src/lib.rs +0 -25
  104. package/crates/bsnext_output/src/pretty.rs +0 -147
  105. package/crates/bsnext_resp/Cargo.toml +0 -13
  106. package/crates/bsnext_resp/src/js/snippet.html +0 -1
  107. package/crates/bsnext_resp/src/js/ws.js +0 -1
  108. package/crates/bsnext_resp/src/lib.rs +0 -79
  109. package/crates/bsnext_system/Cargo.toml +0 -29
  110. package/crates/bsnext_system/src/args.rs +0 -46
  111. package/crates/bsnext_system/src/lib.rs +0 -227
  112. package/crates/bsnext_system/src/monitor.rs +0 -241
  113. package/crates/bsnext_system/src/monitor_any_watchables.rs +0 -133
  114. package/crates/bsnext_system/src/start_kind/snapshots/bsnext_system__start_kind__start_from_paths__test__test-2.snap +0 -12
  115. package/crates/bsnext_system/src/start_kind/snapshots/bsnext_system__start_kind__start_from_paths__test__test.snap +0 -30
  116. package/crates/bsnext_system/src/start_kind/start_from_example.rs +0 -49
  117. package/crates/bsnext_system/src/start_kind/start_from_inputs.rs +0 -67
  118. package/crates/bsnext_system/src/start_kind/start_from_paths.rs +0 -51
  119. package/crates/bsnext_system/src/start_kind.rs +0 -56
  120. package/crates/bsnext_system/src/startup.rs +0 -51
  121. package/crates/bsnext_tracing/Cargo.toml +0 -10
  122. package/crates/bsnext_tracing/src/lib.rs +0 -127
  123. package/examples/basic/input.yml +0 -5
  124. package/examples/basic/public/index.html +0 -15
  125. package/examples/basic/public/reset.css +0 -52
  126. package/examples/basic/public/script.js +0 -1
  127. package/examples/basic/public/styles.css +0 -3
  128. package/examples/kitchen-sink/a-file.md +0 -1
  129. package/examples/kitchen-sink/api/1.json +0 -1
  130. package/examples/kitchen-sink/api/2.json +0 -3
  131. package/examples/kitchen-sink/app.js +0 -1
  132. package/examples/kitchen-sink/input.html +0 -185
  133. package/examples/kitchen-sink/input.yml +0 -133
  134. package/examples/kitchen-sink/styles-2.css +0 -3
  135. package/examples/lit/index.html +0 -21
  136. package/examples/lit/input.yml +0 -5
  137. package/examples/lit/lit.js +0 -82
  138. package/examples/lit/package-lock.json +0 -62
  139. package/examples/lit/package.json +0 -15
  140. package/examples/md-single/frontmatter.md +0 -35
  141. package/examples/md-single/md-single.md +0 -35
  142. package/examples/openai/.nvm +0 -1
  143. package/examples/openai/build.mjs +0 -21
  144. package/examples/openai/index.html +0 -13
  145. package/examples/openai/input.yml +0 -59
  146. package/examples/openai/package-lock.json +0 -720
  147. package/examples/openai/package.json +0 -21
  148. package/examples/openai/src/index.js +0 -21
  149. package/examples/openai/sse/01.txt +0 -8
  150. package/examples/proxy-simple/input.yml +0 -9
  151. package/examples/single/input.yaml +0 -26
  152. package/input.yml +0 -8
  153. package/run.sh +0 -6
@@ -1,997 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __decorateClass = (decorators, target, key, kind) => {
4
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
- for (var i4 = decorators.length - 1, decorator; i4 >= 0; i4--)
6
- if (decorator = decorators[i4])
7
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
- if (kind && result)
9
- __defProp(target, key, result);
10
- return result;
11
- };
12
-
13
- // ../node_modules/@lit/reactive-element/css-tag.js
14
- var t = globalThis;
15
- var e = t.ShadowRoot && (void 0 === t.ShadyCSS || t.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype;
16
- var s = Symbol();
17
- var o = /* @__PURE__ */ new WeakMap();
18
- var n = class {
19
- constructor(t3, e5, o5) {
20
- if (this._$cssResult$ = true, o5 !== s)
21
- throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
22
- this.cssText = t3, this.t = e5;
23
- }
24
- get styleSheet() {
25
- let t3 = this.o;
26
- const s4 = this.t;
27
- if (e && void 0 === t3) {
28
- const e5 = void 0 !== s4 && 1 === s4.length;
29
- e5 && (t3 = o.get(s4)), void 0 === t3 && ((this.o = t3 = new CSSStyleSheet()).replaceSync(this.cssText), e5 && o.set(s4, t3));
30
- }
31
- return t3;
32
- }
33
- toString() {
34
- return this.cssText;
35
- }
36
- };
37
- var r = (t3) => new n("string" == typeof t3 ? t3 : t3 + "", void 0, s);
38
- var i = (t3, ...e5) => {
39
- const o5 = 1 === t3.length ? t3[0] : e5.reduce((e6, s4, o6) => e6 + ((t4) => {
40
- if (true === t4._$cssResult$)
41
- return t4.cssText;
42
- if ("number" == typeof t4)
43
- return t4;
44
- throw Error("Value passed to 'css' function must be a 'css' function result: " + t4 + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.");
45
- })(s4) + t3[o6 + 1], t3[0]);
46
- return new n(o5, t3, s);
47
- };
48
- var S = (s4, o5) => {
49
- if (e)
50
- s4.adoptedStyleSheets = o5.map((t3) => t3 instanceof CSSStyleSheet ? t3 : t3.styleSheet);
51
- else
52
- for (const e5 of o5) {
53
- const o6 = document.createElement("style"), n5 = t.litNonce;
54
- void 0 !== n5 && o6.setAttribute("nonce", n5), o6.textContent = e5.cssText, s4.appendChild(o6);
55
- }
56
- };
57
- var c = e ? (t3) => t3 : (t3) => t3 instanceof CSSStyleSheet ? ((t4) => {
58
- let e5 = "";
59
- for (const s4 of t4.cssRules)
60
- e5 += s4.cssText;
61
- return r(e5);
62
- })(t3) : t3;
63
-
64
- // ../node_modules/@lit/reactive-element/reactive-element.js
65
- var { is: i2, defineProperty: e2, getOwnPropertyDescriptor: r2, getOwnPropertyNames: h, getOwnPropertySymbols: o2, getPrototypeOf: n2 } = Object;
66
- var a = globalThis;
67
- var c2 = a.trustedTypes;
68
- var l = c2 ? c2.emptyScript : "";
69
- var p = a.reactiveElementPolyfillSupport;
70
- var d = (t3, s4) => t3;
71
- var u = { toAttribute(t3, s4) {
72
- switch (s4) {
73
- case Boolean:
74
- t3 = t3 ? l : null;
75
- break;
76
- case Object:
77
- case Array:
78
- t3 = null == t3 ? t3 : JSON.stringify(t3);
79
- }
80
- return t3;
81
- }, fromAttribute(t3, s4) {
82
- let i4 = t3;
83
- switch (s4) {
84
- case Boolean:
85
- i4 = null !== t3;
86
- break;
87
- case Number:
88
- i4 = null === t3 ? null : Number(t3);
89
- break;
90
- case Object:
91
- case Array:
92
- try {
93
- i4 = JSON.parse(t3);
94
- } catch (t4) {
95
- i4 = null;
96
- }
97
- }
98
- return i4;
99
- } };
100
- var f = (t3, s4) => !i2(t3, s4);
101
- var y = { attribute: true, type: String, converter: u, reflect: false, hasChanged: f };
102
- Symbol.metadata ??= Symbol("metadata"), a.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap();
103
- var b = class extends HTMLElement {
104
- static addInitializer(t3) {
105
- this._$Ei(), (this.l ??= []).push(t3);
106
- }
107
- static get observedAttributes() {
108
- return this.finalize(), this._$Eh && [...this._$Eh.keys()];
109
- }
110
- static createProperty(t3, s4 = y) {
111
- if (s4.state && (s4.attribute = false), this._$Ei(), this.elementProperties.set(t3, s4), !s4.noAccessor) {
112
- const i4 = Symbol(), r6 = this.getPropertyDescriptor(t3, i4, s4);
113
- void 0 !== r6 && e2(this.prototype, t3, r6);
114
- }
115
- }
116
- static getPropertyDescriptor(t3, s4, i4) {
117
- const { get: e5, set: h3 } = r2(this.prototype, t3) ?? { get() {
118
- return this[s4];
119
- }, set(t4) {
120
- this[s4] = t4;
121
- } };
122
- return { get() {
123
- return e5?.call(this);
124
- }, set(s5) {
125
- const r6 = e5?.call(this);
126
- h3.call(this, s5), this.requestUpdate(t3, r6, i4);
127
- }, configurable: true, enumerable: true };
128
- }
129
- static getPropertyOptions(t3) {
130
- return this.elementProperties.get(t3) ?? y;
131
- }
132
- static _$Ei() {
133
- if (this.hasOwnProperty(d("elementProperties")))
134
- return;
135
- const t3 = n2(this);
136
- t3.finalize(), void 0 !== t3.l && (this.l = [...t3.l]), this.elementProperties = new Map(t3.elementProperties);
137
- }
138
- static finalize() {
139
- if (this.hasOwnProperty(d("finalized")))
140
- return;
141
- if (this.finalized = true, this._$Ei(), this.hasOwnProperty(d("properties"))) {
142
- const t4 = this.properties, s4 = [...h(t4), ...o2(t4)];
143
- for (const i4 of s4)
144
- this.createProperty(i4, t4[i4]);
145
- }
146
- const t3 = this[Symbol.metadata];
147
- if (null !== t3) {
148
- const s4 = litPropertyMetadata.get(t3);
149
- if (void 0 !== s4)
150
- for (const [t4, i4] of s4)
151
- this.elementProperties.set(t4, i4);
152
- }
153
- this._$Eh = /* @__PURE__ */ new Map();
154
- for (const [t4, s4] of this.elementProperties) {
155
- const i4 = this._$Eu(t4, s4);
156
- void 0 !== i4 && this._$Eh.set(i4, t4);
157
- }
158
- this.elementStyles = this.finalizeStyles(this.styles);
159
- }
160
- static finalizeStyles(s4) {
161
- const i4 = [];
162
- if (Array.isArray(s4)) {
163
- const e5 = new Set(s4.flat(1 / 0).reverse());
164
- for (const s5 of e5)
165
- i4.unshift(c(s5));
166
- } else
167
- void 0 !== s4 && i4.push(c(s4));
168
- return i4;
169
- }
170
- static _$Eu(t3, s4) {
171
- const i4 = s4.attribute;
172
- return false === i4 ? void 0 : "string" == typeof i4 ? i4 : "string" == typeof t3 ? t3.toLowerCase() : void 0;
173
- }
174
- constructor() {
175
- super(), this._$Ep = void 0, this.isUpdatePending = false, this.hasUpdated = false, this._$Em = null, this._$Ev();
176
- }
177
- _$Ev() {
178
- this._$ES = new Promise((t3) => this.enableUpdating = t3), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), this.constructor.l?.forEach((t3) => t3(this));
179
- }
180
- addController(t3) {
181
- (this._$EO ??= /* @__PURE__ */ new Set()).add(t3), void 0 !== this.renderRoot && this.isConnected && t3.hostConnected?.();
182
- }
183
- removeController(t3) {
184
- this._$EO?.delete(t3);
185
- }
186
- _$E_() {
187
- const t3 = /* @__PURE__ */ new Map(), s4 = this.constructor.elementProperties;
188
- for (const i4 of s4.keys())
189
- this.hasOwnProperty(i4) && (t3.set(i4, this[i4]), delete this[i4]);
190
- t3.size > 0 && (this._$Ep = t3);
191
- }
192
- createRenderRoot() {
193
- const t3 = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
194
- return S(t3, this.constructor.elementStyles), t3;
195
- }
196
- connectedCallback() {
197
- this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(true), this._$EO?.forEach((t3) => t3.hostConnected?.());
198
- }
199
- enableUpdating(t3) {
200
- }
201
- disconnectedCallback() {
202
- this._$EO?.forEach((t3) => t3.hostDisconnected?.());
203
- }
204
- attributeChangedCallback(t3, s4, i4) {
205
- this._$AK(t3, i4);
206
- }
207
- _$EC(t3, s4) {
208
- const i4 = this.constructor.elementProperties.get(t3), e5 = this.constructor._$Eu(t3, i4);
209
- if (void 0 !== e5 && true === i4.reflect) {
210
- const r6 = (void 0 !== i4.converter?.toAttribute ? i4.converter : u).toAttribute(s4, i4.type);
211
- this._$Em = t3, null == r6 ? this.removeAttribute(e5) : this.setAttribute(e5, r6), this._$Em = null;
212
- }
213
- }
214
- _$AK(t3, s4) {
215
- const i4 = this.constructor, e5 = i4._$Eh.get(t3);
216
- if (void 0 !== e5 && this._$Em !== e5) {
217
- const t4 = i4.getPropertyOptions(e5), r6 = "function" == typeof t4.converter ? { fromAttribute: t4.converter } : void 0 !== t4.converter?.fromAttribute ? t4.converter : u;
218
- this._$Em = e5, this[e5] = r6.fromAttribute(s4, t4.type), this._$Em = null;
219
- }
220
- }
221
- requestUpdate(t3, s4, i4) {
222
- if (void 0 !== t3) {
223
- if (i4 ??= this.constructor.getPropertyOptions(t3), !(i4.hasChanged ?? f)(this[t3], s4))
224
- return;
225
- this.P(t3, s4, i4);
226
- }
227
- false === this.isUpdatePending && (this._$ES = this._$ET());
228
- }
229
- P(t3, s4, i4) {
230
- this._$AL.has(t3) || this._$AL.set(t3, s4), true === i4.reflect && this._$Em !== t3 && (this._$Ej ??= /* @__PURE__ */ new Set()).add(t3);
231
- }
232
- async _$ET() {
233
- this.isUpdatePending = true;
234
- try {
235
- await this._$ES;
236
- } catch (t4) {
237
- Promise.reject(t4);
238
- }
239
- const t3 = this.scheduleUpdate();
240
- return null != t3 && await t3, !this.isUpdatePending;
241
- }
242
- scheduleUpdate() {
243
- return this.performUpdate();
244
- }
245
- performUpdate() {
246
- if (!this.isUpdatePending)
247
- return;
248
- if (!this.hasUpdated) {
249
- if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) {
250
- for (const [t5, s5] of this._$Ep)
251
- this[t5] = s5;
252
- this._$Ep = void 0;
253
- }
254
- const t4 = this.constructor.elementProperties;
255
- if (t4.size > 0)
256
- for (const [s5, i4] of t4)
257
- true !== i4.wrapped || this._$AL.has(s5) || void 0 === this[s5] || this.P(s5, this[s5], i4);
258
- }
259
- let t3 = false;
260
- const s4 = this._$AL;
261
- try {
262
- t3 = this.shouldUpdate(s4), t3 ? (this.willUpdate(s4), this._$EO?.forEach((t4) => t4.hostUpdate?.()), this.update(s4)) : this._$EU();
263
- } catch (s5) {
264
- throw t3 = false, this._$EU(), s5;
265
- }
266
- t3 && this._$AE(s4);
267
- }
268
- willUpdate(t3) {
269
- }
270
- _$AE(t3) {
271
- this._$EO?.forEach((t4) => t4.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = true, this.firstUpdated(t3)), this.updated(t3);
272
- }
273
- _$EU() {
274
- this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = false;
275
- }
276
- get updateComplete() {
277
- return this.getUpdateComplete();
278
- }
279
- getUpdateComplete() {
280
- return this._$ES;
281
- }
282
- shouldUpdate(t3) {
283
- return true;
284
- }
285
- update(t3) {
286
- this._$Ej &&= this._$Ej.forEach((t4) => this._$EC(t4, this[t4])), this._$EU();
287
- }
288
- updated(t3) {
289
- }
290
- firstUpdated(t3) {
291
- }
292
- };
293
- b.elementStyles = [], b.shadowRootOptions = { mode: "open" }, b[d("elementProperties")] = /* @__PURE__ */ new Map(), b[d("finalized")] = /* @__PURE__ */ new Map(), p?.({ ReactiveElement: b }), (a.reactiveElementVersions ??= []).push("2.0.4");
294
-
295
- // ../node_modules/lit-html/lit-html.js
296
- var t2 = globalThis;
297
- var i3 = t2.trustedTypes;
298
- var s2 = i3 ? i3.createPolicy("lit-html", { createHTML: (t3) => t3 }) : void 0;
299
- var e3 = "$lit$";
300
- var h2 = `lit$${Math.random().toFixed(9).slice(2)}$`;
301
- var o3 = "?" + h2;
302
- var n3 = `<${o3}>`;
303
- var r3 = document;
304
- var l2 = () => r3.createComment("");
305
- var c3 = (t3) => null === t3 || "object" != typeof t3 && "function" != typeof t3;
306
- var a2 = Array.isArray;
307
- var u2 = (t3) => a2(t3) || "function" == typeof t3?.[Symbol.iterator];
308
- var d2 = "[ \n\f\r]";
309
- var f2 = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g;
310
- var v = /-->/g;
311
- var _ = />/g;
312
- var m = RegExp(`>|${d2}(?:([^\\s"'>=/]+)(${d2}*=${d2}*(?:[^
313
- \f\r"'\`<>=]|("|')|))|$)`, "g");
314
- var p2 = /'/g;
315
- var g = /"/g;
316
- var $ = /^(?:script|style|textarea|title)$/i;
317
- var y2 = (t3) => (i4, ...s4) => ({ _$litType$: t3, strings: i4, values: s4 });
318
- var x = y2(1);
319
- var b2 = y2(2);
320
- var w = Symbol.for("lit-noChange");
321
- var T = Symbol.for("lit-nothing");
322
- var A = /* @__PURE__ */ new WeakMap();
323
- var E = r3.createTreeWalker(r3, 129);
324
- function C(t3, i4) {
325
- if (!Array.isArray(t3) || !t3.hasOwnProperty("raw"))
326
- throw Error("invalid template strings array");
327
- return void 0 !== s2 ? s2.createHTML(i4) : i4;
328
- }
329
- var P = (t3, i4) => {
330
- const s4 = t3.length - 1, o5 = [];
331
- let r6, l3 = 2 === i4 ? "<svg>" : "", c4 = f2;
332
- for (let i5 = 0; i5 < s4; i5++) {
333
- const s5 = t3[i5];
334
- let a3, u3, d3 = -1, y3 = 0;
335
- for (; y3 < s5.length && (c4.lastIndex = y3, u3 = c4.exec(s5), null !== u3); )
336
- y3 = c4.lastIndex, c4 === f2 ? "!--" === u3[1] ? c4 = v : void 0 !== u3[1] ? c4 = _ : void 0 !== u3[2] ? ($.test(u3[2]) && (r6 = RegExp("</" + u3[2], "g")), c4 = m) : void 0 !== u3[3] && (c4 = m) : c4 === m ? ">" === u3[0] ? (c4 = r6 ?? f2, d3 = -1) : void 0 === u3[1] ? d3 = -2 : (d3 = c4.lastIndex - u3[2].length, a3 = u3[1], c4 = void 0 === u3[3] ? m : '"' === u3[3] ? g : p2) : c4 === g || c4 === p2 ? c4 = m : c4 === v || c4 === _ ? c4 = f2 : (c4 = m, r6 = void 0);
337
- const x2 = c4 === m && t3[i5 + 1].startsWith("/>") ? " " : "";
338
- l3 += c4 === f2 ? s5 + n3 : d3 >= 0 ? (o5.push(a3), s5.slice(0, d3) + e3 + s5.slice(d3) + h2 + x2) : s5 + h2 + (-2 === d3 ? i5 : x2);
339
- }
340
- return [C(t3, l3 + (t3[s4] || "<?>") + (2 === i4 ? "</svg>" : "")), o5];
341
- };
342
- var V = class _V {
343
- constructor({ strings: t3, _$litType$: s4 }, n5) {
344
- let r6;
345
- this.parts = [];
346
- let c4 = 0, a3 = 0;
347
- const u3 = t3.length - 1, d3 = this.parts, [f3, v2] = P(t3, s4);
348
- if (this.el = _V.createElement(f3, n5), E.currentNode = this.el.content, 2 === s4) {
349
- const t4 = this.el.content.firstChild;
350
- t4.replaceWith(...t4.childNodes);
351
- }
352
- for (; null !== (r6 = E.nextNode()) && d3.length < u3; ) {
353
- if (1 === r6.nodeType) {
354
- if (r6.hasAttributes())
355
- for (const t4 of r6.getAttributeNames())
356
- if (t4.endsWith(e3)) {
357
- const i4 = v2[a3++], s5 = r6.getAttribute(t4).split(h2), e5 = /([.?@])?(.*)/.exec(i4);
358
- d3.push({ type: 1, index: c4, name: e5[2], strings: s5, ctor: "." === e5[1] ? k : "?" === e5[1] ? H : "@" === e5[1] ? I : R }), r6.removeAttribute(t4);
359
- } else
360
- t4.startsWith(h2) && (d3.push({ type: 6, index: c4 }), r6.removeAttribute(t4));
361
- if ($.test(r6.tagName)) {
362
- const t4 = r6.textContent.split(h2), s5 = t4.length - 1;
363
- if (s5 > 0) {
364
- r6.textContent = i3 ? i3.emptyScript : "";
365
- for (let i4 = 0; i4 < s5; i4++)
366
- r6.append(t4[i4], l2()), E.nextNode(), d3.push({ type: 2, index: ++c4 });
367
- r6.append(t4[s5], l2());
368
- }
369
- }
370
- } else if (8 === r6.nodeType)
371
- if (r6.data === o3)
372
- d3.push({ type: 2, index: c4 });
373
- else {
374
- let t4 = -1;
375
- for (; -1 !== (t4 = r6.data.indexOf(h2, t4 + 1)); )
376
- d3.push({ type: 7, index: c4 }), t4 += h2.length - 1;
377
- }
378
- c4++;
379
- }
380
- }
381
- static createElement(t3, i4) {
382
- const s4 = r3.createElement("template");
383
- return s4.innerHTML = t3, s4;
384
- }
385
- };
386
- function N(t3, i4, s4 = t3, e5) {
387
- if (i4 === w)
388
- return i4;
389
- let h3 = void 0 !== e5 ? s4._$Co?.[e5] : s4._$Cl;
390
- const o5 = c3(i4) ? void 0 : i4._$litDirective$;
391
- return h3?.constructor !== o5 && (h3?._$AO?.(false), void 0 === o5 ? h3 = void 0 : (h3 = new o5(t3), h3._$AT(t3, s4, e5)), void 0 !== e5 ? (s4._$Co ??= [])[e5] = h3 : s4._$Cl = h3), void 0 !== h3 && (i4 = N(t3, h3._$AS(t3, i4.values), h3, e5)), i4;
392
- }
393
- var S2 = class {
394
- constructor(t3, i4) {
395
- this._$AV = [], this._$AN = void 0, this._$AD = t3, this._$AM = i4;
396
- }
397
- get parentNode() {
398
- return this._$AM.parentNode;
399
- }
400
- get _$AU() {
401
- return this._$AM._$AU;
402
- }
403
- u(t3) {
404
- const { el: { content: i4 }, parts: s4 } = this._$AD, e5 = (t3?.creationScope ?? r3).importNode(i4, true);
405
- E.currentNode = e5;
406
- let h3 = E.nextNode(), o5 = 0, n5 = 0, l3 = s4[0];
407
- for (; void 0 !== l3; ) {
408
- if (o5 === l3.index) {
409
- let i5;
410
- 2 === l3.type ? i5 = new M(h3, h3.nextSibling, this, t3) : 1 === l3.type ? i5 = new l3.ctor(h3, l3.name, l3.strings, this, t3) : 6 === l3.type && (i5 = new L(h3, this, t3)), this._$AV.push(i5), l3 = s4[++n5];
411
- }
412
- o5 !== l3?.index && (h3 = E.nextNode(), o5++);
413
- }
414
- return E.currentNode = r3, e5;
415
- }
416
- p(t3) {
417
- let i4 = 0;
418
- for (const s4 of this._$AV)
419
- void 0 !== s4 && (void 0 !== s4.strings ? (s4._$AI(t3, s4, i4), i4 += s4.strings.length - 2) : s4._$AI(t3[i4])), i4++;
420
- }
421
- };
422
- var M = class _M {
423
- get _$AU() {
424
- return this._$AM?._$AU ?? this._$Cv;
425
- }
426
- constructor(t3, i4, s4, e5) {
427
- this.type = 2, this._$AH = T, this._$AN = void 0, this._$AA = t3, this._$AB = i4, this._$AM = s4, this.options = e5, this._$Cv = e5?.isConnected ?? true;
428
- }
429
- get parentNode() {
430
- let t3 = this._$AA.parentNode;
431
- const i4 = this._$AM;
432
- return void 0 !== i4 && 11 === t3?.nodeType && (t3 = i4.parentNode), t3;
433
- }
434
- get startNode() {
435
- return this._$AA;
436
- }
437
- get endNode() {
438
- return this._$AB;
439
- }
440
- _$AI(t3, i4 = this) {
441
- t3 = N(this, t3, i4), c3(t3) ? t3 === T || null == t3 || "" === t3 ? (this._$AH !== T && this._$AR(), this._$AH = T) : t3 !== this._$AH && t3 !== w && this._(t3) : void 0 !== t3._$litType$ ? this.$(t3) : void 0 !== t3.nodeType ? this.T(t3) : u2(t3) ? this.k(t3) : this._(t3);
442
- }
443
- S(t3) {
444
- return this._$AA.parentNode.insertBefore(t3, this._$AB);
445
- }
446
- T(t3) {
447
- this._$AH !== t3 && (this._$AR(), this._$AH = this.S(t3));
448
- }
449
- _(t3) {
450
- this._$AH !== T && c3(this._$AH) ? this._$AA.nextSibling.data = t3 : this.T(r3.createTextNode(t3)), this._$AH = t3;
451
- }
452
- $(t3) {
453
- const { values: i4, _$litType$: s4 } = t3, e5 = "number" == typeof s4 ? this._$AC(t3) : (void 0 === s4.el && (s4.el = V.createElement(C(s4.h, s4.h[0]), this.options)), s4);
454
- if (this._$AH?._$AD === e5)
455
- this._$AH.p(i4);
456
- else {
457
- const t4 = new S2(e5, this), s5 = t4.u(this.options);
458
- t4.p(i4), this.T(s5), this._$AH = t4;
459
- }
460
- }
461
- _$AC(t3) {
462
- let i4 = A.get(t3.strings);
463
- return void 0 === i4 && A.set(t3.strings, i4 = new V(t3)), i4;
464
- }
465
- k(t3) {
466
- a2(this._$AH) || (this._$AH = [], this._$AR());
467
- const i4 = this._$AH;
468
- let s4, e5 = 0;
469
- for (const h3 of t3)
470
- e5 === i4.length ? i4.push(s4 = new _M(this.S(l2()), this.S(l2()), this, this.options)) : s4 = i4[e5], s4._$AI(h3), e5++;
471
- e5 < i4.length && (this._$AR(s4 && s4._$AB.nextSibling, e5), i4.length = e5);
472
- }
473
- _$AR(t3 = this._$AA.nextSibling, i4) {
474
- for (this._$AP?.(false, true, i4); t3 && t3 !== this._$AB; ) {
475
- const i5 = t3.nextSibling;
476
- t3.remove(), t3 = i5;
477
- }
478
- }
479
- setConnected(t3) {
480
- void 0 === this._$AM && (this._$Cv = t3, this._$AP?.(t3));
481
- }
482
- };
483
- var R = class {
484
- get tagName() {
485
- return this.element.tagName;
486
- }
487
- get _$AU() {
488
- return this._$AM._$AU;
489
- }
490
- constructor(t3, i4, s4, e5, h3) {
491
- this.type = 1, this._$AH = T, this._$AN = void 0, this.element = t3, this.name = i4, this._$AM = e5, this.options = h3, s4.length > 2 || "" !== s4[0] || "" !== s4[1] ? (this._$AH = Array(s4.length - 1).fill(new String()), this.strings = s4) : this._$AH = T;
492
- }
493
- _$AI(t3, i4 = this, s4, e5) {
494
- const h3 = this.strings;
495
- let o5 = false;
496
- if (void 0 === h3)
497
- t3 = N(this, t3, i4, 0), o5 = !c3(t3) || t3 !== this._$AH && t3 !== w, o5 && (this._$AH = t3);
498
- else {
499
- const e6 = t3;
500
- let n5, r6;
501
- for (t3 = h3[0], n5 = 0; n5 < h3.length - 1; n5++)
502
- r6 = N(this, e6[s4 + n5], i4, n5), r6 === w && (r6 = this._$AH[n5]), o5 ||= !c3(r6) || r6 !== this._$AH[n5], r6 === T ? t3 = T : t3 !== T && (t3 += (r6 ?? "") + h3[n5 + 1]), this._$AH[n5] = r6;
503
- }
504
- o5 && !e5 && this.j(t3);
505
- }
506
- j(t3) {
507
- t3 === T ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t3 ?? "");
508
- }
509
- };
510
- var k = class extends R {
511
- constructor() {
512
- super(...arguments), this.type = 3;
513
- }
514
- j(t3) {
515
- this.element[this.name] = t3 === T ? void 0 : t3;
516
- }
517
- };
518
- var H = class extends R {
519
- constructor() {
520
- super(...arguments), this.type = 4;
521
- }
522
- j(t3) {
523
- this.element.toggleAttribute(this.name, !!t3 && t3 !== T);
524
- }
525
- };
526
- var I = class extends R {
527
- constructor(t3, i4, s4, e5, h3) {
528
- super(t3, i4, s4, e5, h3), this.type = 5;
529
- }
530
- _$AI(t3, i4 = this) {
531
- if ((t3 = N(this, t3, i4, 0) ?? T) === w)
532
- return;
533
- const s4 = this._$AH, e5 = t3 === T && s4 !== T || t3.capture !== s4.capture || t3.once !== s4.once || t3.passive !== s4.passive, h3 = t3 !== T && (s4 === T || e5);
534
- e5 && this.element.removeEventListener(this.name, this, s4), h3 && this.element.addEventListener(this.name, this, t3), this._$AH = t3;
535
- }
536
- handleEvent(t3) {
537
- "function" == typeof this._$AH ? this._$AH.call(this.options?.host ?? this.element, t3) : this._$AH.handleEvent(t3);
538
- }
539
- };
540
- var L = class {
541
- constructor(t3, i4, s4) {
542
- this.element = t3, this.type = 6, this._$AN = void 0, this._$AM = i4, this.options = s4;
543
- }
544
- get _$AU() {
545
- return this._$AM._$AU;
546
- }
547
- _$AI(t3) {
548
- N(this, t3);
549
- }
550
- };
551
- var Z = t2.litHtmlPolyfillSupport;
552
- Z?.(V, M), (t2.litHtmlVersions ??= []).push("3.1.3");
553
- var j = (t3, i4, s4) => {
554
- const e5 = s4?.renderBefore ?? i4;
555
- let h3 = e5._$litPart$;
556
- if (void 0 === h3) {
557
- const t4 = s4?.renderBefore ?? null;
558
- e5._$litPart$ = h3 = new M(i4.insertBefore(l2(), t4), t4, void 0, s4 ?? {});
559
- }
560
- return h3._$AI(t3), h3;
561
- };
562
-
563
- // ../node_modules/lit-element/lit-element.js
564
- var s3 = class extends b {
565
- constructor() {
566
- super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;
567
- }
568
- createRenderRoot() {
569
- const t3 = super.createRenderRoot();
570
- return this.renderOptions.renderBefore ??= t3.firstChild, t3;
571
- }
572
- update(t3) {
573
- const i4 = this.render();
574
- this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t3), this._$Do = j(i4, this.renderRoot, this.renderOptions);
575
- }
576
- connectedCallback() {
577
- super.connectedCallback(), this._$Do?.setConnected(true);
578
- }
579
- disconnectedCallback() {
580
- super.disconnectedCallback(), this._$Do?.setConnected(false);
581
- }
582
- render() {
583
- return w;
584
- }
585
- };
586
- s3._$litElement$ = true, s3["finalized", "finalized"] = true, globalThis.litElementHydrateSupport?.({ LitElement: s3 });
587
- var r4 = globalThis.litElementPolyfillSupport;
588
- r4?.({ LitElement: s3 });
589
- (globalThis.litElementVersions ??= []).push("4.0.5");
590
-
591
- // ../node_modules/@lit/reactive-element/decorators/property.js
592
- var o4 = { attribute: true, type: String, converter: u, reflect: false, hasChanged: f };
593
- var r5 = (t3 = o4, e5, r6) => {
594
- const { kind: n5, metadata: i4 } = r6;
595
- let s4 = globalThis.litPropertyMetadata.get(i4);
596
- if (void 0 === s4 && globalThis.litPropertyMetadata.set(i4, s4 = /* @__PURE__ */ new Map()), s4.set(r6.name, t3), "accessor" === n5) {
597
- const { name: o5 } = r6;
598
- return { set(r7) {
599
- const n6 = e5.get.call(this);
600
- e5.set.call(this, r7), this.requestUpdate(o5, n6, t3);
601
- }, init(e6) {
602
- return void 0 !== e6 && this.P(o5, void 0, t3), e6;
603
- } };
604
- }
605
- if ("setter" === n5) {
606
- const { name: o5 } = r6;
607
- return function(r7) {
608
- const n6 = this[o5];
609
- e5.call(this, r7), this.requestUpdate(o5, n6, t3);
610
- };
611
- }
612
- throw Error("Unsupported decorator location: " + n5);
613
- };
614
- function n4(t3) {
615
- return (e5, o5) => "object" == typeof o5 ? r5(t3, e5, o5) : ((t4, e6, o6) => {
616
- const r6 = e6.hasOwnProperty(o6);
617
- return e6.constructor.createProperty(o6, r6 ? { ...t4, wrapped: true } : t4), r6 ? Object.getOwnPropertyDescriptor(e6, o6) : void 0;
618
- })(t3, e5, o5);
619
- }
620
-
621
- // src/components/bs-debug.ts
622
- var BsDebug = class extends s3 {
623
- constructor() {
624
- super(...arguments);
625
- this.servers = { servers: [] };
626
- this.me = { routes: [], id: "" };
627
- }
628
- get otherServers() {
629
- return this.servers.servers.filter((server) => server.id !== this.me.id);
630
- }
631
- render() {
632
- return x`
633
- <bs-header></bs-header>
634
- <bs-server-detail .server=${this.me}></bs-server-detail>
635
- ${this.otherServers.length > 0 ? x`
636
- <bs-server-list .servers=${this.otherServers}></bs-server-list>` : null}
637
- `;
638
- }
639
- };
640
- __decorateClass([
641
- n4({ type: Object })
642
- ], BsDebug.prototype, "servers", 2);
643
- __decorateClass([
644
- n4({ type: Object })
645
- ], BsDebug.prototype, "me", 2);
646
- customElements.define("bs-debug", BsDebug);
647
-
648
- // styles/base.css.ts
649
- var base = i`
650
- pre {
651
- margin: 0
652
- }
653
- a {
654
- color: var(--theme-txt-color);
655
- &:hover {
656
- text-decoration: none;
657
- }
658
- }
659
- p {
660
- margin: 0;
661
- padding: 0;
662
- }
663
- `;
664
-
665
- // src/components/bs-server-list.ts
666
- var BsServerList = class extends s3 {
667
- constructor() {
668
- super(...arguments);
669
- this.servers = [];
670
- }
671
- static {
672
- this.styles = [
673
- base,
674
- i`
675
-
676
- `
677
- ];
678
- }
679
- render() {
680
- return x`
681
- ${this.servers.map((server) => {
682
- const display_addr = "http://" + server.socket_addr;
683
- let url = new URL(display_addr);
684
- let bs_url = new URL("./__bslive", display_addr);
685
- return x`
686
- <div>
687
- <bs-server-identity .identity=${server.identity}></bs-server-identity>
688
- <p><a href=${url} target="_blank"><code>${url}</code></a></p>
689
- <p>
690
- <bs-icon icon-name="logo"></bs-icon>
691
- <small><a href=${bs_url} target="_blank"><code>${bs_url}</code></a></small>
692
- </p>
693
- </div>
694
- `;
695
- })}
696
- `;
697
- }
698
- };
699
- __decorateClass([
700
- n4({ type: Object })
701
- ], BsServerList.prototype, "servers", 2);
702
- customElements.define("bs-server-list", BsServerList);
703
-
704
- // src/components/bs-server-detail.ts
705
- var BsServerDetail = class extends s3 {
706
- constructor() {
707
- super(...arguments);
708
- this.server = { routes: [], id: "" };
709
- }
710
- static {
711
- this.styles = [
712
- base
713
- ];
714
- }
715
- render() {
716
- return x`
717
- <pre><code>${JSON.stringify(this.server, null, 2)}</code></pre>
718
- `;
719
- }
720
- };
721
- __decorateClass([
722
- n4({ type: Object })
723
- ], BsServerDetail.prototype, "server", 2);
724
- customElements.define("bs-server-detail", BsServerDetail);
725
-
726
- // src/components/bs-server-identity.ts
727
- var BsServerIdentity = class extends s3 {
728
- static {
729
- this.styles = [base];
730
- }
731
- render() {
732
- switch (this.identity.kind) {
733
- case "Named":
734
- case "Both": {
735
- return x`<p><strong>[named] ${this.identity.payload.name}</strong></p>`;
736
- }
737
- default:
738
- return x`<p><strong>[unnamed]</strong></p>`;
739
- }
740
- }
741
- };
742
- __decorateClass([
743
- n4({ type: Object })
744
- ], BsServerIdentity.prototype, "identity", 2);
745
- customElements.define("bs-server-identity", BsServerIdentity);
746
-
747
- // src/components/bs-header.ts
748
- var BsHeader = class extends s3 {
749
- constructor() {
750
- super(...arguments);
751
- this.servers = [];
752
- }
753
- static {
754
- this.styles = [
755
- base,
756
- i`
757
- .logo {
758
- position: relative;
759
- color: var(--theme-txt-color);
760
- }
761
- .logo bs-icon::part(svg) {
762
- height: 30px;
763
- width: 140px;
764
- }
765
- `
766
- ];
767
- }
768
- render() {
769
- return x`
770
- <div class="logo">
771
- <bs-icon icon-name="wordmark"></bs-icon>
772
- </div>
773
- `;
774
- }
775
- };
776
- __decorateClass([
777
- n4({ type: Object })
778
- ], BsHeader.prototype, "servers", 2);
779
- customElements.define("bs-header", BsHeader);
780
-
781
- // src/components/bs-icon.ts
782
- var BsIcon = class extends s3 {
783
- static {
784
- this.styles = [
785
- base,
786
- i`
787
- .svg-icon {
788
- display: inline-block;
789
- fill: var(--bs-icon-color, currentColor);
790
- height: var(--bs-icon-height, 1em);
791
- width: var(--bs-icon-width, 1em);
792
- vertical-align: middle;
793
- }
794
- `
795
- ];
796
- }
797
- get icon() {
798
- switch (this.iconName) {
799
- case "logo":
800
- return x`<svg class="svg-icon" part="svg"><use xlink:href="#svg-logo"></use></svg>`;
801
- case "wordmark":
802
- return x`<svg class="svg-icon" part="svg"><use xlink:href="#svg-wordmark"></use></svg>`;
803
- default:
804
- return `unknown`;
805
- }
806
- }
807
- render() {
808
- return x`
809
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none">
810
- <symbol id="svg-check" viewBox="0 0 20 20">
811
- <path d="M8.294 16.998c-.435 0-.847-.203-1.11-.553l-3.574-4.72c-.465-.614-.344-1.487.27-1.952.615-.467 1.488-.344 1.953.27l2.35 3.104 5.912-9.492c.407-.652 1.267-.852 1.92-.445.654.406.855 1.266.447 1.92L9.478 16.34c-.242.39-.66.635-1.12.656-.022.002-.042.002-.064.002z"/>
812
- </symbol>
813
- <symbol id="svg-creative-commons-noncommercial-us" viewBox="0 0 20 20">
814
- <path d="M9.988.4c2.69 0 4.966.928 6.825 2.784C18.67 5.04 19.6 7.312 19.6 10s-.913 4.936-2.74 6.744C14.923 18.648 12.63 19.6 9.99 19.6c-2.61 0-4.862-.944-6.753-2.832C1.345 14.88.4 12.624.4 10s.945-4.896 2.835-6.816C5.078 1.328 7.33.4 9.988.4zM2.56 7.42c-.287.81-.43 1.67-.43 2.58 0 2.128.777 3.968 2.33 5.52 1.555 1.552 3.405 2.328 5.552 2.328s4.013-.784 5.6-2.352c.53-.513.967-1.073 1.31-1.68l-3.618-1.61c-.246 1.216-1.33 2.04-2.643 2.136v1.48h-1.1v-1.48c-1.078-.013-2.12-.453-2.915-1.15l1.322-1.333c.637.598 1.274.868 2.143.868.563 0 1.188-.22 1.188-.955 0-.26-.1-.44-.26-.577l-.915-.407-1.14-.508c-.563-.252-1.04-.464-1.52-.677L2.56 7.42zm7.452-5.292c-2.18 0-4.02.768-5.527 2.304-.41.414-.766.846-1.07 1.297l3.67 1.632c.332-1.017 1.3-1.635 2.474-1.704v-1.48h1.1v1.48c.76.037 1.593.245 2.413.88l-1.26 1.297c-.466-.33-1.054-.563-1.642-.563-.476 0-1.15.148-1.15.747 0 .09.03.17.086.242l1.228.547.83.37c.532.236 1.04.46 1.542.685l4.92 2.19c.162-.644.244-1.33.244-2.055 0-2.192-.77-4.048-2.307-5.568-1.522-1.536-3.372-2.304-5.55-2.304z"/>
815
- </symbol>
816
- <symbol id="svg-back-in-time" viewBox="0 0 20 20">
817
- <path d="M11 1.8c-4.445 0-8.06 3.56-8.17 7.995V10H.46l3.593 3.894L7.547 10H4.875v-.205C4.982 6.492 7.683 3.85 11 3.85c3.386 0 6.13 2.754 6.13 6.15 0 3.396-2.744 6.15-6.13 6.15-1.357 0-2.61-.445-3.627-1.193L5.967 16.46C7.355 17.55 9.102 18.2 11 18.2c4.515 0 8.174-3.67 8.174-8.2S15.514 1.8 11 1.8zM10 5v5c0 .13.027.26.077.382s.124.233.216.325l3.2 3.2c.283-.183.55-.39.787-.628L12 11V5h-2z"/>
818
- </symbol>
819
- <symbol id="svg-time-slot" viewBox="0 0 20 20">
820
- <path d="M10 .4C4.698.4.4 4.698.4 10s4.298 9.6 9.6 9.6c5.3 0 9.6-4.298 9.6-9.6S15.3.4 10 .4zm0 17.2c-4.197 0-7.6-3.403-7.6-7.6C2.4 5.8 5.802 2.4 10 2.4V10l6.792-3.396c.513 1.023.808 2.173.808 3.396 0 4.197-3.403 7.6-7.6 7.6z"/>
821
- </symbol>
822
- <symbol id="svg-merge" viewBox="0 0 20 20">
823
- <path d="M17.89 17.707L16.892 20c-3.137-1.366-5.496-3.152-6.892-5.275-1.396 2.123-3.755 3.91-6.892 5.275l-.998-2.293C5.14 16.39 8.55 14.102 8.55 10V7H5.5L10 0l4.5 7h-3.05v3c0 4.102 3.41 6.39 6.44 7.707z"/>
824
- </symbol>
825
- <symbol id="svg-text" viewBox="0 0 20 20">
826
- <path fill-rule="evenodd" clip-rule="evenodd" d="M15.5 11h-11c-.275 0-.5.225-.5.5v1c0 .276.225.5.5.5h11c.276 0 .5-.224.5-.5v-1c0-.275-.224-.5-.5-.5zm0-4h-11c-.275 0-.5.225-.5.5v1c0 .276.225.5.5.5h11c.276 0 .5-.224.5-.5v-1c0-.275-.224-.5-.5-.5zm-5 8h-6c-.275 0-.5.225-.5.5v1c0 .276.225.5.5.5h6c.276 0 .5-.224.5-.5v-1c0-.275-.224-.5-.5-.5zm5-12h-11c-.275 0-.5.225-.5.5v1c0 .276.225.5.5.5h11c.276 0 .5-.224.5-.5v-1c0-.275-.224-.5-.5-.5z"/>
827
- </symbol>
828
- <symbol id="svg-tv" viewBox="0 0 20 20">
829
- <path d="M18 1H2C.9 1 0 1.9 0 3v11c0 1.1.882 2.178 1.96 2.393l4.373.875S2.57 19 5 19h10c2.43 0-1.334-1.732-1.334-1.732l4.373-.875C19.116 16.178 20 15.1 20 14V3c0-1.1-.9-2-2-2zm0 13H2V3h16v11z"/>
830
- </symbol>
831
- <symbol id="svg-block" viewBox="0 0 20 20">
832
- <path d="M10 .4C4.697.4.4 4.698.4 10c0 5.303 4.297 9.6 9.6 9.6 5.3 0 9.6-4.297 9.6-9.6 0-5.302-4.3-9.6-9.6-9.6zM2.4 10c0-4.197 3.4-7.6 7.6-7.6 1.828 0 3.505.647 4.816 1.723L4.122 14.817C3.046 13.505 2.4 11.83 2.4 10zm7.6 7.6c-1.83 0-3.506-.647-4.816-1.723L15.878 5.184C16.953 6.496 17.6 8.17 17.6 10c0 4.197-3.404 7.6-7.6 7.6z"/>
833
- </symbol>
834
- <symbol id="svg-list" viewBox="0 0 20 20">
835
- <path d="M14.4 9H8.6c-.552 0-.6.447-.6 1s.048 1 .6 1h5.8c.552 0 .6-.447.6-1s-.048-1-.6-1zm2 5H8.6c-.552 0-.6.447-.6 1s.048 1 .6 1h7.8c.552 0 .6-.447.6-1s-.048-1-.6-1zM8.6 6h7.8c.552 0 .6-.447.6-1s-.048-1-.6-1H8.6c-.552 0-.6.447-.6 1s.048 1 .6 1zM5.4 9H3.6c-.552 0-.6.447-.6 1s.048 1 .6 1h1.8c.552 0 .6-.447.6-1s-.048-1-.6-1zm0 5H3.6c-.552 0-.6.447-.6 1s.048 1 .6 1h1.8c.552 0 .6-.447.6-1s-.048-1-.6-1zm0-10H3.6c-.552 0-.6.447-.6 1s.048 1 .6 1h1.8c.552 0 .6-.447.6-1s-.048-1-.6-1z"/>
836
- </symbol>
837
- <symbol id="svg-logo" viewBox="0 0 140 204.1">
838
- <path d="M63.5.3L1.7 31.2c-1 .5-1.7 1.5-1.7 2.7v136.3c0 1.1.6 2.2 1.7 2.7l61.8 30.9c2 1 4.3-.5 4.3-2.7V3c0-2.2-2.3-3.7-4.3-2.7zM76.5 203.8l61.8-30.9c1-.5 1.7-1.5 1.7-2.7v-66.3c0-1.1-.6-2.2-1.7-2.7L76.5 70.3c-2-1-4.3.5-4.3 2.7v128.1c0 2.2 2.3 3.7 4.3 2.7z"/>
839
- </symbol>
840
- <symbol id="svg-wordmark" viewBox="0 0 536.3 106.8">
841
- <path d="M33 .2L.9 16.2c-.6.3-.9.8-.9 1.4v70.8c0 .6.3 1.1.9 1.4l32.1 16c1 .5 2.3-.2 2.3-1.4V1.6C35.2.4 34-.4 33 .2zM39.7 105.8l32.1-16c.5-.3.9-.8.9-1.4V54c0-.6-.3-1.1-.9-1.4l-32.1-16c-1-.5-2.3.2-2.3 1.4v66.5c.1 1.1 1.3 1.8 2.3 1.3zM129.7 34.8c10.8 0 16.6 4 16.6 14.1 0 6.6-2.1 9.8-6.4 12.2 4.7 1.8 7.8 5.2 7.8 12.6 0 11.1-6.7 15.4-17.3 15.4H109V34.8h20.7zm-11.8 7.6V58h11.7c5.4 0 7.8-2.7 7.8-8 0-5.2-2.7-7.5-8.1-7.5h-11.4zm0 23v16.1h12c5.5 0 8.7-1.7 8.7-8.3 0-6.2-4.6-7.9-8.9-7.9h-11.8zM156.6 49.5h8.6v4.8s6.7-4.4 13.5-5.6v8.6c-7.2 1.4-13.4 6.3-13.4 6.3v25.6h-8.6V49.5zM365.4 49.5h8.6v4.8s6.7-4.4 13.5-5.6v8.6c-7.2 1.4-13.4 6.3-13.4 6.3v25.6h-8.6V49.5zM218.4 69.1c0 13.2-4 20.9-17.7 20.9-13.6 0-17.7-7.8-17.7-20.9 0-12.9 4.4-20.5 17.7-20.5s17.7 7.6 17.7 20.5zm-8.7 0c0-9.2-2-13.2-9-13.2s-9 4-9 13.2 1.6 13.6 9 13.6 9-4.4 9-13.6zM232.3 49.5l6.3 32.3h1.6l7.5-31.5h8.9l7.5 31.5h1.6l6.2-32.3h8.6l-8.4 39.7h-13.7L252.2 62 246 89.2h-13.7l-8.4-39.7h8.4zM315.4 57.7s-9.4-1.3-14.1-1.3c-4.8 0-6.9 1.1-6.9 4.4 0 2.6 1.7 3.3 9.4 4.7 9.5 1.7 12.9 4 12.9 12 0 9.3-5.9 12.6-15.7 12.6-5.5 0-14.7-1.7-14.7-1.7l.3-7.2s9.5 1.3 13.6 1.3c5.7 0 7.9-1.2 7.9-4.7 0-2.8-1.3-3.6-9.2-4.9-8.7-1.4-13.2-3.3-13.2-11.7 0-9 7-12.3 14.8-12.3 5.8 0 14.9 1.7 14.9 1.7v7.1zM355.6 81.8l.2 6.4s-9 1.8-16 1.8c-11.9 0-16.5-6.3-16.5-20.3 0-14.5 6.3-21.1 17.2-21.1 11.1 0 16.7 5.8 16.7 18.2l-.6 6.2H332c.1 6.3 2.5 9.5 9 9.5 6.2 0 14.6-.7 14.6-.7zm-7-15.5c0-7.9-2.4-10.6-8.2-10.6-5.9 0-8.5 2.9-8.6 10.6h16.8zM420.5 54.3S412 53 406.8 53c-4.9 0-9.4 1.3-9.4 6.7 0 4.1 2 5.3 10.6 6.7 10.2 1.7 14 3.5 14 11.1 0 9.3-5.8 12.3-15.3 12.3-4.8 0-13.6-1.4-13.6-1.4l.3-4.2s8.9 1.3 12.9 1.3c6.8 0 10.8-1.6 10.8-7.8 0-4.8-2.4-5.8-11.3-7.1-9.1-1.4-13.3-3.1-13.3-10.8 0-8.6 7.1-11.2 14-11.2 6 0 14 1.3 14 1.3v4.4zM432 49.5L442.5 85h2.9L456 49.5h4.8l-16.9 57.3h-4.8l5.1-17.7h-5.5L427 49.4h5zM468.9 89.2V49.5h4.7v2.9s6.7-3.7 12.9-3.7c10.9 0 13.3 5.1 13.3 19.6v20.9H495V68.5c0-11.7-1.3-15.6-9.2-15.6-6.2 0-12.2 3.3-12.2 3.3V89h-4.7zM536.2 49.7l-.2 4s-6.3-.8-9.3-.8c-9.5 0-12.3 4.2-12.3 15.6 0 12.5 1.9 17.1 12.3 17.1 3 0 9.4-.7 9.4-.7l.2 4s-7.1 1-10.5 1c-12.9 0-16.3-5.7-16.3-21.3 0-14.5 4.6-19.9 16.4-19.9 3.4 0 10.3 1 10.3 1z"/>
842
- </symbol>
843
- <symbol id="svg-github" viewBox="0 0 32 32">
844
- <path clip-rule="evenodd" d="M16.003 0C7.17 0 .008 7.162.008 15.997c0 7.067 4.582 13.063 10.94 15.18.8.145 1.052-.33 1.052-.753 0-.38.008-1.442 0-2.777-4.45.967-5.37-2.107-5.37-2.107-.728-1.848-1.776-2.34-1.776-2.34-1.452-.992.11-.973.11-.973 1.604.113 2.45 1.65 2.45 1.65 1.427 2.442 3.743 1.736 4.654 1.328.146-1.034.56-1.74 1.017-2.14C9.533 22.663 5.8 21.29 5.8 15.16c0-1.747.622-3.174 1.645-4.292-.165-.404-.715-2.03.157-4.234 0 0 1.343-.43 4.398 1.64 1.276-.354 2.645-.53 4.005-.537 1.36.006 2.727.183 4.005.538 3.055-2.07 4.396-1.64 4.396-1.64.872 2.202.323 3.83.16 4.233 1.022 1.118 1.643 2.545 1.643 4.292 0 6.146-3.74 7.498-7.305 7.893C19.48 23.548 20 24.508 20 26v4.428c0 .428.258.9 1.07.746C27.422 29.054 32 23.062 32 15.997 32 7.162 24.838 0 16.003 0z" fill-rule="evenodd"/>
845
- </symbol>
846
- <symbol id="svg-twitter" viewBox="0 0 273.4 222.2">
847
- <path d="M273.4 26.3c-10.1 4.5-20.9 7.5-32.2 8.8 11.6-6.9 20.5-17.9 24.7-31-10.9 6.4-22.9 11.1-35.7 13.6C220 6.8 205.4 0 189.3 0c-31 0-56.1 25.1-56.1 56.1 0 4.4.5 8.7 1.5 12.8C88 66.5 46.7 44.2 19 10.3c-4.8 8.3-7.6 17.9-7.6 28.2 0 19.5 9.9 36.6 25 46.7-9.2-.3-17.8-2.8-25.4-7v.7c0 27.2 19.3 49.8 45 55-4.7 1.3-9.7 2-14.8 2-3.6 0-7.1-.4-10.6-1 7.1 22.3 27.9 38.5 52.4 39-19.2 15-43.4 24-69.7 24-4.5 0-9-.3-13.4-.8 24.8 15.9 54.3 25.2 86 25.2 103.2 0 159.6-85.5 159.6-159.6 0-2.4-.1-4.9-.2-7.3 11.1-8 20.6-17.9 28.1-29.1z"/>
848
- </symbol>
849
- <symbol id="svg-circle-play" viewBox="0 0 191.4 191.4">
850
- <circle fill="none" stroke="#FFF" stroke-width="22" stroke-miterlimit="10" cx="95.7" cy="95.7" r="84.7"/>
851
- <path d="M87.8 57l46.7 32.6c4.2 3 4.2 9.2 0 12.2l-45.3 31.6c-4.7 3.3-11.1-.1-11.1-5.8V62c0-4.9 5.6-7.9 9.7-5z"/>
852
- </symbol>
853
- <symbol id="svg-code" viewBox="0 0 20 20">
854
- <path d="M5.72 14.75c-.237 0-.475-.083-.665-.252L-.005 10l5.34-4.748c.413-.365 1.045-.33 1.412.083.367.413.33 1.045-.083 1.412L3.004 10l3.38 3.002c.412.367.45 1 .082 1.412-.197.223-.472.336-.747.336zm8.944-.002L20.004 10l-5.06-4.498c-.412-.367-1.044-.33-1.41.083-.367.413-.33 1.045.083 1.412L16.995 10l-3.66 3.252c-.412.367-.45 1-.082 1.412.197.223.472.336.747.336.236 0 .474-.083.664-.252zm-4.678 1.417l2-12c.09-.545-.277-1.06-.822-1.15-.547-.093-1.06.276-1.15.82l-2 12c-.09.546.277 1.06.822 1.152.056.01.11.013.165.013.48 0 .905-.347.986-.835z"/>
855
- </symbol>
856
- <symbol id="svg-menu" viewBox="0 0 20 20">
857
- <path d="M16.4 9H3.6c-.552 0-.6.447-.6 1 0 .553.048 1 .6 1h12.8c.552 0 .6-.447.6-1 0-.553-.048-1-.6-1zm0 4H3.6c-.552 0-.6.447-.6 1 0 .553.048 1 .6 1h12.8c.552 0 .6-.447.6-1 0-.553-.048-1-.6-1zM3.6 7h12.8c.552 0 .6-.447.6-1 0-.553-.048-1-.6-1H3.6c-.552 0-.6.447-.6 1 0 .553.048 1 .6 1z"/>
858
- </symbol>
859
- <symbol id="svg-cross" viewBox="0 0 20 20">
860
- <path d="M14.348 14.85c-.47.468-1.23.468-1.697 0L10 11.82l-2.65 3.028c-.47.47-1.23.47-1.698 0-.47-.47-.47-1.23 0-1.697L8.41 10 5.65 6.85c-.468-.47-.468-1.23 0-1.698.47-.47 1.23-.47 1.698 0L10 8.182l2.65-3.03c.47-.47 1.23-.47 1.698 0 .47.47.47 1.23 0 1.697L11.59 10l2.758 3.15c.47.47.47 1.23 0 1.7z"/>
861
- </symbol>
862
- <symbol id="svg-typeface-reg" viewBox="0 0 113.8 77.2">
863
- <path d="M20.9 0h18.5l20.9 76.1h-8.4l-5.5-19.6H13.9L8.4 76.1H0L20.9 0zm-5.2 49h28.8L33 7.3h-5.7L15.7 49zM107.5 65.9c.2 3.2 2.9 4.4 6.4 4.8l-.3 6.5c-5.8 0-9.8-1.1-13.1-4.4 0 0-9.9 4.4-19.8 4.4-10 0-15.5-5.7-15.5-16.8 0-10.6 5.5-15.2 16.8-16.3l17.3-1.6v-4.7c0-7.7-3.3-10.5-9.9-10.5-7.7 0-20.8 1.4-20.8 1.4l-.3-6.3S80.4 20 89.9 20c12.4 0 17.7 5.7 17.7 17.7v28.2zM82.9 50.3c-6.7.7-9.4 3.9-9.4 9.9 0 6.4 2.8 10.1 8.4 10.1 8.1 0 17.3-3.4 17.3-3.4V48.7l-16.3 1.6z"/>
864
- </symbol>
865
- <symbol id="svg-typeface-bold" viewBox="0 0 114.3 76.6">
866
- <path d="M18.6 0h24.3l18.7 75.4H49.3l-4.1-16.2H16.3l-4.1 16.2H0L18.6 0zm.1 48.4h24.1l-9.2-38.2H28l-9.3 38.2zM109.5 62.4c.2 3.3 1.7 4.6 4.8 5.1l-.3 9.1c-6.7 0-10.6-.9-14.6-4.1 0 0-8.8 4.1-17.7 4.1-10.9 0-16.4-6-16.4-17.5 0-11.7 6.4-15.6 18.1-16.6l14.2-1.2v-4c0-6.1-2.6-7.9-8-7.9-7.4 0-20.7 1.1-20.7 1.1l-.5-8.5s12-2.9 22.1-2.9c13.4 0 18.9 5.6 18.9 18.2v25.1zM84.8 50.9c-5.1.4-7.6 2.9-7.6 7.8s2.1 8 6.7 8c6.3 0 13.6-2.4 13.6-2.4V49.7l-12.7 1.2z"/>
867
- </symbol>
868
- <symbol id="svg-typeface-thin" viewBox="0 0 113.3 78">
869
- <path d="M23.6 0h11.7L59 77h-4l-7.2-23.6H11.1L4 77H0L23.6 0zM12.3 49.6h34.3l-14-45.9h-6.2L12.3 49.6zM105 69.9c.3 3.2 4.4 4.3 8.2 4.6l-.2 3.4c-4.7 0-8.9-1.2-11.3-4.6 0 0-11.2 4.7-22.2 4.7-9 0-14.4-5.4-14.4-16.1 0-9.3 4.4-14.7 15.2-15.8l20.9-2.2v-5.7c0-9.6-4.2-13.4-12.2-13.4s-20.8 1.9-20.8 1.9l-.3-3.7s12.3-2 21.1-2c11.1 0 16.1 5.8 16.1 17.2v31.7zM80.7 49.5c-8.6.9-11.5 4.8-11.5 12.4 0 8 3.7 12.5 10.5 12.5 10.3 0 21.6-4.5 21.6-4.5V47.4l-20.6 2.1z"/>
870
- </symbol>
871
- </svg>
872
- ${this.icon}
873
- `;
874
- }
875
- };
876
- __decorateClass([
877
- n4({ type: String, attribute: "icon-name" })
878
- ], BsIcon.prototype, "iconName", 2);
879
- customElements.define("bs-icon", BsIcon);
880
-
881
- // src/index.ts
882
- var all = fetch("/__bs_api/servers").then((x2) => x2.json());
883
- var me = fetch("/__bs_api/me").then((x2) => x2.json());
884
- Promise.all([all, me]).then(([servers, me2]) => {
885
- let next = x`<bs-debug .servers=${servers} .me=${me2}></bs-debug>`;
886
- let app = document.querySelector("#app");
887
- if (!app)
888
- throw new Error("cannot...");
889
- j(next, app);
890
- }).catch(console.error);
891
- /*! Bundled license information:
892
-
893
- @lit/reactive-element/css-tag.js:
894
- (**
895
- * @license
896
- * Copyright 2019 Google LLC
897
- * SPDX-License-Identifier: BSD-3-Clause
898
- *)
899
-
900
- @lit/reactive-element/reactive-element.js:
901
- (**
902
- * @license
903
- * Copyright 2017 Google LLC
904
- * SPDX-License-Identifier: BSD-3-Clause
905
- *)
906
-
907
- lit-html/lit-html.js:
908
- (**
909
- * @license
910
- * Copyright 2017 Google LLC
911
- * SPDX-License-Identifier: BSD-3-Clause
912
- *)
913
-
914
- lit-element/lit-element.js:
915
- (**
916
- * @license
917
- * Copyright 2017 Google LLC
918
- * SPDX-License-Identifier: BSD-3-Clause
919
- *)
920
-
921
- lit-html/is-server.js:
922
- (**
923
- * @license
924
- * Copyright 2022 Google LLC
925
- * SPDX-License-Identifier: BSD-3-Clause
926
- *)
927
-
928
- @lit/reactive-element/decorators/custom-element.js:
929
- (**
930
- * @license
931
- * Copyright 2017 Google LLC
932
- * SPDX-License-Identifier: BSD-3-Clause
933
- *)
934
-
935
- @lit/reactive-element/decorators/property.js:
936
- (**
937
- * @license
938
- * Copyright 2017 Google LLC
939
- * SPDX-License-Identifier: BSD-3-Clause
940
- *)
941
-
942
- @lit/reactive-element/decorators/state.js:
943
- (**
944
- * @license
945
- * Copyright 2017 Google LLC
946
- * SPDX-License-Identifier: BSD-3-Clause
947
- *)
948
-
949
- @lit/reactive-element/decorators/event-options.js:
950
- (**
951
- * @license
952
- * Copyright 2017 Google LLC
953
- * SPDX-License-Identifier: BSD-3-Clause
954
- *)
955
-
956
- @lit/reactive-element/decorators/base.js:
957
- (**
958
- * @license
959
- * Copyright 2017 Google LLC
960
- * SPDX-License-Identifier: BSD-3-Clause
961
- *)
962
-
963
- @lit/reactive-element/decorators/query.js:
964
- (**
965
- * @license
966
- * Copyright 2017 Google LLC
967
- * SPDX-License-Identifier: BSD-3-Clause
968
- *)
969
-
970
- @lit/reactive-element/decorators/query-all.js:
971
- (**
972
- * @license
973
- * Copyright 2017 Google LLC
974
- * SPDX-License-Identifier: BSD-3-Clause
975
- *)
976
-
977
- @lit/reactive-element/decorators/query-async.js:
978
- (**
979
- * @license
980
- * Copyright 2017 Google LLC
981
- * SPDX-License-Identifier: BSD-3-Clause
982
- *)
983
-
984
- @lit/reactive-element/decorators/query-assigned-elements.js:
985
- (**
986
- * @license
987
- * Copyright 2021 Google LLC
988
- * SPDX-License-Identifier: BSD-3-Clause
989
- *)
990
-
991
- @lit/reactive-element/decorators/query-assigned-nodes.js:
992
- (**
993
- * @license
994
- * Copyright 2017 Google LLC
995
- * SPDX-License-Identifier: BSD-3-Clause
996
- *)
997
- */