ambient-display 1.1.0 → 1.1.2

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 (162) hide show
  1. package/build/client/_app/immutable/assets/0.Dl9__I4E.css +1 -0
  2. package/build/client/_app/immutable/assets/0.Dl9__I4E.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.Dl9__I4E.css.gz +0 -0
  4. package/build/client/_app/immutable/assets/2.BtzFOBtk.css +1 -0
  5. package/build/client/_app/immutable/assets/2.BtzFOBtk.css.br +0 -0
  6. package/build/client/_app/immutable/assets/2.BtzFOBtk.css.gz +0 -0
  7. package/build/client/_app/immutable/assets/3.BvcZlbFP.css +1 -0
  8. package/build/client/_app/immutable/assets/3.BvcZlbFP.css.br +0 -0
  9. package/build/client/_app/immutable/assets/3.BvcZlbFP.css.gz +0 -0
  10. package/build/client/_app/immutable/assets/LoadingIndicator.D0m6rSKQ.css +1 -0
  11. package/build/client/_app/immutable/assets/LoadingIndicator.D0m6rSKQ.css.br +0 -0
  12. package/build/client/_app/immutable/assets/LoadingIndicator.D0m6rSKQ.css.gz +0 -0
  13. package/build/client/_app/immutable/assets/PlayingTracker.9uM5nyWg.css +1 -0
  14. package/build/client/_app/immutable/assets/PlayingTracker.9uM5nyWg.css.br +0 -0
  15. package/build/client/_app/immutable/assets/PlayingTracker.9uM5nyWg.css.gz +0 -0
  16. package/build/client/_app/immutable/assets/_layout.Dl9__I4E.css +1 -0
  17. package/build/client/_app/immutable/assets/_layout.Dl9__I4E.css.br +0 -0
  18. package/build/client/_app/immutable/assets/_layout.Dl9__I4E.css.gz +0 -0
  19. package/build/client/_app/immutable/assets/_page.BtzFOBtk.css +1 -0
  20. package/build/client/_app/immutable/assets/_page.BtzFOBtk.css.br +0 -0
  21. package/build/client/_app/immutable/assets/_page.BtzFOBtk.css.gz +0 -0
  22. package/build/client/_app/immutable/assets/_page.BvcZlbFP.css +1 -0
  23. package/build/client/_app/immutable/assets/_page.BvcZlbFP.css.br +0 -0
  24. package/build/client/_app/immutable/assets/_page.BvcZlbFP.css.gz +0 -0
  25. package/build/client/_app/immutable/chunks/LoadingIndicator.COVTk436.js +1 -0
  26. package/build/client/_app/immutable/chunks/LoadingIndicator.COVTk436.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/LoadingIndicator.COVTk436.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/PlayingTracker.Cymhk9j5.js +5 -0
  29. package/build/client/_app/immutable/chunks/PlayingTracker.Cymhk9j5.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/PlayingTracker.Cymhk9j5.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/disclose-version.N57b1q78.js +1 -0
  32. package/build/client/_app/immutable/chunks/disclose-version.N57b1q78.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/disclose-version.N57b1q78.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/entry.CTcSu7Oh.js +3 -0
  35. package/build/client/_app/immutable/chunks/entry.CTcSu7Oh.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/entry.CTcSu7Oh.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/index-client.DV07uIiZ.js +1 -0
  38. package/build/client/_app/immutable/chunks/index-client.DV07uIiZ.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/index-client.DV07uIiZ.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/index.DFULH2AN.js +1 -0
  41. package/build/client/_app/immutable/chunks/index.DFULH2AN.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/index.DFULH2AN.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/index.DLR8Bvs6.js +4 -0
  44. package/build/client/_app/immutable/chunks/index.DLR8Bvs6.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/index.DLR8Bvs6.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/legacy.DZgMwYuQ.js +1 -0
  47. package/build/client/_app/immutable/chunks/legacy.DZgMwYuQ.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/legacy.DZgMwYuQ.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/props.DYfFZGja.js +1 -0
  50. package/build/client/_app/immutable/chunks/props.DYfFZGja.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/props.DYfFZGja.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/snippet.BVSCguOu.js +1 -0
  53. package/build/client/_app/immutable/chunks/snippet.BVSCguOu.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/snippet.BVSCguOu.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/this.EZLWgc5v.js +1 -0
  56. package/build/client/_app/immutable/chunks/this.EZLWgc5v.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/this.EZLWgc5v.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/utils.BXcQV2KO.js +1 -0
  59. package/build/client/_app/immutable/chunks/utils.BXcQV2KO.js.br +0 -0
  60. package/build/client/_app/immutable/chunks/utils.BXcQV2KO.js.gz +0 -0
  61. package/build/client/_app/immutable/entry/app.DHMJZPqS.js +2 -0
  62. package/build/client/_app/immutable/entry/app.DHMJZPqS.js.br +0 -0
  63. package/build/client/_app/immutable/entry/app.DHMJZPqS.js.gz +0 -0
  64. package/build/client/_app/immutable/entry/start.BGJKS9mR.js +1 -0
  65. package/build/client/_app/immutable/entry/start.BGJKS9mR.js.br +2 -0
  66. package/build/client/_app/immutable/entry/start.BGJKS9mR.js.gz +0 -0
  67. package/build/client/_app/immutable/nodes/0.DaJoi3FK.js +2 -0
  68. package/build/client/_app/immutable/nodes/0.DaJoi3FK.js.br +0 -0
  69. package/build/client/_app/immutable/nodes/0.DaJoi3FK.js.gz +0 -0
  70. package/build/client/_app/immutable/nodes/1.0EwG4xPT.js +1 -0
  71. package/build/client/_app/immutable/nodes/1.0EwG4xPT.js.br +0 -0
  72. package/build/client/_app/immutable/nodes/1.0EwG4xPT.js.gz +0 -0
  73. package/build/client/_app/immutable/nodes/2.CIcrK0Mf.js +1 -0
  74. package/build/client/_app/immutable/nodes/2.CIcrK0Mf.js.br +0 -0
  75. package/build/client/_app/immutable/nodes/2.CIcrK0Mf.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/3.vzk8SJSG.js +1 -0
  77. package/build/client/_app/immutable/nodes/3.vzk8SJSG.js.br +0 -0
  78. package/build/client/_app/immutable/nodes/3.vzk8SJSG.js.gz +0 -0
  79. package/build/client/_app/version.json +1 -0
  80. package/build/client/_app/version.json.br +0 -0
  81. package/build/client/_app/version.json.gz +0 -0
  82. package/build/client/manifest.json.br +0 -0
  83. package/build/client/manifest.json.gz +0 -0
  84. package/build/env.js +45 -0
  85. package/build/handler.js +1375 -0
  86. package/build/index.js +334 -0
  87. package/build/server/chunks/0-D_yciAvo.js +91 -0
  88. package/build/server/chunks/0-D_yciAvo.js.map +1 -0
  89. package/build/server/chunks/1-BA-qTHOy.js +9 -0
  90. package/build/server/chunks/1-BA-qTHOy.js.map +1 -0
  91. package/build/server/chunks/2-DPsIhdeI.js +9 -0
  92. package/build/server/chunks/2-DPsIhdeI.js.map +1 -0
  93. package/build/server/chunks/3-CZREXwZu.js +9 -0
  94. package/build/server/chunks/3-CZREXwZu.js.map +1 -0
  95. package/build/server/chunks/LoadingIndicator-CTUFEPkL.js +10 -0
  96. package/build/server/chunks/LoadingIndicator-CTUFEPkL.js.map +1 -0
  97. package/build/server/chunks/LoadingIndicator.svelte_svelte_type_style_lang-CVdBHA1v.js +172 -0
  98. package/build/server/chunks/LoadingIndicator.svelte_svelte_type_style_lang-CVdBHA1v.js.map +1 -0
  99. package/build/server/chunks/PlayingTracker-BIq1bdv_.js +18 -0
  100. package/build/server/chunks/PlayingTracker-BIq1bdv_.js.map +1 -0
  101. package/build/server/chunks/_layout.svelte-BoFI04Ng.js +24 -0
  102. package/build/server/chunks/_layout.svelte-BoFI04Ng.js.map +1 -0
  103. package/build/server/chunks/_page.svelte-C3Mw7ZhL.js +115 -0
  104. package/build/server/chunks/_page.svelte-C3Mw7ZhL.js.map +1 -0
  105. package/build/server/chunks/_page.svelte-CzGyTA7b.js +368 -0
  106. package/build/server/chunks/_page.svelte-CzGyTA7b.js.map +1 -0
  107. package/build/server/chunks/error.svelte-BZE1ioPX.js +116 -0
  108. package/build/server/chunks/error.svelte-BZE1ioPX.js.map +1 -0
  109. package/build/server/chunks/exports-DAjI6ZSp.js +125 -0
  110. package/build/server/chunks/exports-DAjI6ZSp.js.map +1 -0
  111. package/build/server/chunks/index2-BA59f76P.js +1214 -0
  112. package/build/server/chunks/index2-BA59f76P.js.map +1 -0
  113. package/build/server/index.js +4868 -0
  114. package/build/server/index.js.map +1 -0
  115. package/build/server/manifest.js +50 -0
  116. package/build/server/manifest.js.map +1 -0
  117. package/build/shims.js +32 -0
  118. package/package.json +9 -2
  119. package/server/index.js +4 -0
  120. package/server/spotify_auth.json +1 -0
  121. package/.prettierignore +0 -4
  122. package/.prettierrc +0 -17
  123. package/CHANGELOG.md +0 -34
  124. package/env.template +0 -2
  125. package/eslint.config.js +0 -24
  126. package/jsconfig.json +0 -19
  127. package/screenshot.png +0 -0
  128. package/src/app.d.ts +0 -13
  129. package/src/app.html +0 -12
  130. package/src/lib/actions/qr.svelte.js +0 -23
  131. package/src/lib/comms.js +0 -25
  132. package/src/lib/components/AuthenticateTrigger.svelte +0 -74
  133. package/src/lib/components/Controls.svelte +0 -91
  134. package/src/lib/components/ImageLoad.svelte +0 -79
  135. package/src/lib/components/LoadingIndicator.svelte +0 -75
  136. package/src/lib/components/MediaItem.svelte +0 -75
  137. package/src/lib/components/PlayingTracker.svelte +0 -94
  138. package/src/lib/components/ResultsList.svelte +0 -80
  139. package/src/lib/components/Toast/Item.svelte +0 -71
  140. package/src/lib/components/Toast/Manager.svelte +0 -34
  141. package/src/lib/icons/disc.svg +0 -1
  142. package/src/lib/index.js +0 -1
  143. package/src/lib/store.js +0 -146
  144. package/src/lib/styles.scss +0 -166
  145. package/src/lib/toast.js +0 -57
  146. package/src/lib/utils.js +0 -723
  147. package/src/routes/+layout.server.js +0 -25
  148. package/src/routes/+layout.svelte +0 -72
  149. package/src/routes/+page.svelte +0 -381
  150. package/src/routes/player/+page.svelte +0 -294
  151. package/svelte.config.js +0 -19
  152. package/tools/BuildManifest.js +0 -87
  153. package/vite.config.js +0 -46
  154. /package/{static → build/client}/favicon.ico +0 -0
  155. /package/{static → build/client}/favicon.png +0 -0
  156. /package/{static → build/client}/icons/144.favicon.png +0 -0
  157. /package/{static → build/client}/icons/168.favicon.png +0 -0
  158. /package/{static → build/client}/icons/192.favicon.png +0 -0
  159. /package/{static → build/client}/icons/48.favicon.png +0 -0
  160. /package/{static → build/client}/icons/72.favicon.png +0 -0
  161. /package/{static → build/client}/icons/96.favicon.png +0 -0
  162. /package/{static → build/client}/manifest.json +0 -0
@@ -0,0 +1,116 @@
1
+ import { a0 as noop, a1 as escape_html, x as pop, X as writable, v as push, a2 as getContext } from './index2-BA59f76P.js';
2
+ import './exports-DAjI6ZSp.js';
3
+
4
+ const SNAPSHOT_KEY = "sveltekit:snapshot";
5
+ const SCROLL_KEY = "sveltekit:scroll";
6
+ function notifiable_store(value) {
7
+ const store = writable(value);
8
+ let ready = true;
9
+ function notify() {
10
+ ready = true;
11
+ store.update((val) => val);
12
+ }
13
+ function set(new_value) {
14
+ ready = false;
15
+ store.set(new_value);
16
+ }
17
+ function subscribe(run) {
18
+ let old_value;
19
+ return store.subscribe((new_value) => {
20
+ if (old_value === void 0 || ready && new_value !== old_value) {
21
+ run(old_value = new_value);
22
+ }
23
+ });
24
+ }
25
+ return { notify, set, subscribe };
26
+ }
27
+ function create_updated_store() {
28
+ const { set, subscribe } = writable(false);
29
+ {
30
+ return {
31
+ subscribe,
32
+ // eslint-disable-next-line @typescript-eslint/require-await
33
+ check: async () => false
34
+ };
35
+ }
36
+ }
37
+ let updated;
38
+ const is_legacy = noop.toString().includes("$$") || /function \w+\(\) \{\}/.test(noop.toString());
39
+ if (is_legacy) {
40
+ ({
41
+ data: {},
42
+ form: null,
43
+ error: null,
44
+ params: {},
45
+ route: { id: null },
46
+ state: {},
47
+ status: -1,
48
+ url: new URL("https://example.com")
49
+ });
50
+ updated = { current: false };
51
+ } else {
52
+ updated = new class Updated {
53
+ current = false;
54
+ }();
55
+ }
56
+ function get(key, parse = JSON.parse) {
57
+ try {
58
+ return parse(sessionStorage[key]);
59
+ } catch {
60
+ }
61
+ }
62
+ get(SCROLL_KEY) ?? {};
63
+ get(SNAPSHOT_KEY) ?? {};
64
+ const stores = {
65
+ url: /* @__PURE__ */ notifiable_store({}),
66
+ page: /* @__PURE__ */ notifiable_store({}),
67
+ navigating: /* @__PURE__ */ writable(
68
+ /** @type {import('@sveltejs/kit').Navigation | null} */
69
+ null
70
+ ),
71
+ updated: /* @__PURE__ */ create_updated_store()
72
+ };
73
+ ({
74
+ get current() {
75
+ return updated.current;
76
+ },
77
+ check: stores.updated.check
78
+ });
79
+ function context() {
80
+ return getContext("__request__");
81
+ }
82
+ const page$1 = {
83
+ get data() {
84
+ return context().page.data;
85
+ },
86
+ get error() {
87
+ return context().page.error;
88
+ },
89
+ get form() {
90
+ return context().page.form;
91
+ },
92
+ get params() {
93
+ return context().page.params;
94
+ },
95
+ get route() {
96
+ return context().page.route;
97
+ },
98
+ get state() {
99
+ return context().page.state;
100
+ },
101
+ get status() {
102
+ return context().page.status;
103
+ },
104
+ get url() {
105
+ return context().page.url;
106
+ }
107
+ };
108
+ const page = page$1;
109
+ function Error$1($$payload, $$props) {
110
+ push();
111
+ $$payload.out += `<h1>${escape_html(page.status)}</h1> <p>${escape_html(page.error?.message)}</p>`;
112
+ pop();
113
+ }
114
+
115
+ export { Error$1 as default };
116
+ //# sourceMappingURL=error.svelte-BZE1ioPX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.svelte-BZE1ioPX.js","sources":["../../../.svelte-kit/adapter-node/entries/fallbacks/error.svelte.js"],"sourcesContent":["import { _ as noop, $ as getContext, a0 as escape_html, V as pop, S as push } from \"../../chunks/index.js\";\nimport \"../../chunks/exports.js\";\nimport { w as writable } from \"../../chunks/index2.js\";\nconst SNAPSHOT_KEY = \"sveltekit:snapshot\";\nconst SCROLL_KEY = \"sveltekit:scroll\";\nfunction notifiable_store(value) {\n const store = writable(value);\n let ready = true;\n function notify() {\n ready = true;\n store.update((val) => val);\n }\n function set(new_value) {\n ready = false;\n store.set(new_value);\n }\n function subscribe(run) {\n let old_value;\n return store.subscribe((new_value) => {\n if (old_value === void 0 || ready && new_value !== old_value) {\n run(old_value = new_value);\n }\n });\n }\n return { notify, set, subscribe };\n}\nfunction create_updated_store() {\n const { set, subscribe } = writable(false);\n {\n return {\n subscribe,\n // eslint-disable-next-line @typescript-eslint/require-await\n check: async () => false\n };\n }\n}\nlet updated;\nconst is_legacy = noop.toString().includes(\"$$\") || /function \\w+\\(\\) \\{\\}/.test(noop.toString());\nif (is_legacy) {\n ({\n data: {},\n form: null,\n error: null,\n params: {},\n route: { id: null },\n state: {},\n status: -1,\n url: new URL(\"https://example.com\")\n });\n updated = { current: false };\n} else {\n updated = new class Updated {\n current = false;\n }();\n}\nfunction get(key, parse = JSON.parse) {\n try {\n return parse(sessionStorage[key]);\n } catch {\n }\n}\nget(SCROLL_KEY) ?? {};\nget(SNAPSHOT_KEY) ?? {};\nconst stores = {\n url: /* @__PURE__ */ notifiable_store({}),\n page: /* @__PURE__ */ notifiable_store({}),\n navigating: /* @__PURE__ */ writable(\n /** @type {import('@sveltejs/kit').Navigation | null} */\n null\n ),\n updated: /* @__PURE__ */ create_updated_store()\n};\n({\n get current() {\n return updated.current;\n },\n check: stores.updated.check\n});\nfunction context() {\n return getContext(\"__request__\");\n}\nconst page$1 = {\n get data() {\n return context().page.data;\n },\n get error() {\n return context().page.error;\n },\n get form() {\n return context().page.form;\n },\n get params() {\n return context().page.params;\n },\n get route() {\n return context().page.route;\n },\n get state() {\n return context().page.state;\n },\n get status() {\n return context().page.status;\n },\n get url() {\n return context().page.url;\n }\n};\nconst page = page$1;\nfunction Error$1($$payload, $$props) {\n push();\n $$payload.out += `<h1>${escape_html(page.status)}</h1> <p>${escape_html(page.error?.message)}</p>`;\n pop();\n}\nexport {\n Error$1 as default\n};\n"],"names":[],"mappings":";;;AAGA,MAAM,YAAY,GAAG,oBAAoB;AACzC,MAAM,UAAU,GAAG,kBAAkB;AACrC,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACjC,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC/B,EAAE,IAAI,KAAK,GAAG,IAAI;AAClB,EAAE,SAAS,MAAM,GAAG;AACpB,IAAI,KAAK,GAAG,IAAI;AAChB,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;AAC9B;AACA,EAAE,SAAS,GAAG,CAAC,SAAS,EAAE;AAC1B,IAAI,KAAK,GAAG,KAAK;AACjB,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;AACxB;AACA,EAAE,SAAS,SAAS,CAAC,GAAG,EAAE;AAC1B,IAAI,IAAI,SAAS;AACjB,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,SAAS,KAAK;AAC1C,MAAM,IAAI,SAAS,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,SAAS,KAAK,SAAS,EAAE;AACpE,QAAQ,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;AAClC;AACA,KAAK,CAAC;AACN;AACA,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE;AACnC;AACA,SAAS,oBAAoB,GAAG;AAChC,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC5C,EAAE;AACF,IAAI,OAAO;AACX,MAAM,SAAS;AACf;AACA,MAAM,KAAK,EAAE,YAAY;AACzB,KAAK;AACL;AACA;AACA,IAAI,OAAO;AACX,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACjG,IAAI,SAAS,EAAE;AACf,EAAE,CAAC;AACH,IAAI,IAAI,EAAE,EAAE;AACZ,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,KAAK,EAAE,IAAI;AACf,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;AACvB,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,CAAC,CAAC;AACd,IAAI,GAAG,EAAE,IAAI,GAAG,CAAC,qBAAqB;AACtC,GAAG;AACH,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;AAC9B,CAAC,MAAM;AACP,EAAE,OAAO,GAAG,IAAI,MAAM,OAAO,CAAC;AAC9B,IAAI,OAAO,GAAG,KAAK;AACnB,GAAG,EAAE;AACL;AACA,SAAS,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AACtC,EAAE,IAAI;AACN,IAAI,OAAO,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACrC,GAAG,CAAC,MAAM;AACV;AACA;AACA,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE;AACrB,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE;AACvB,MAAM,MAAM,GAAG;AACf,EAAE,GAAG,kBAAkB,gBAAgB,CAAC,EAAE,CAAC;AAC3C,EAAE,IAAI,kBAAkB,gBAAgB,CAAC,EAAE,CAAC;AAC5C,EAAE,UAAU,kBAAkB,QAAQ;AACtC;AACA,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,kBAAkB,oBAAoB;AAC/C,CAAC;AACD,CAAC;AACD,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,OAAO,CAAC,OAAO;AAC1B,GAAG;AACH,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AACD,SAAS,OAAO,GAAG;AACnB,EAAE,OAAO,UAAU,CAAC,aAAa,CAAC;AAClC;AACA,MAAM,MAAM,GAAG;AACf,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI;AAC9B,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK;AAC/B,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI;AAC9B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM;AAChC,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK;AAC/B,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK;AAC/B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM;AAChC,GAAG;AACH,EAAE,IAAI,GAAG,GAAG;AACZ,IAAI,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG;AAC7B;AACA,CAAC;AACD,MAAM,IAAI,GAAG,MAAM;AACnB,SAAS,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE;AACrC,EAAE,IAAI,EAAE;AACR,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;AACpG,EAAE,GAAG,EAAE;AACP;;;;"}
@@ -0,0 +1,125 @@
1
+ const internal = new URL("sveltekit-internal://");
2
+ function resolve(base, path) {
3
+ if (path[0] === "/" && path[1] === "/") return path;
4
+ let url = new URL(base, internal);
5
+ url = new URL(path, url);
6
+ return url.protocol === internal.protocol ? url.pathname + url.search + url.hash : url.href;
7
+ }
8
+ function normalize_path(path, trailing_slash) {
9
+ if (path === "/" || trailing_slash === "ignore") return path;
10
+ if (trailing_slash === "never") {
11
+ return path.endsWith("/") ? path.slice(0, -1) : path;
12
+ } else if (trailing_slash === "always" && !path.endsWith("/")) {
13
+ return path + "/";
14
+ }
15
+ return path;
16
+ }
17
+ function decode_pathname(pathname) {
18
+ return pathname.split("%25").map(decodeURI).join("%25");
19
+ }
20
+ function decode_params(params) {
21
+ for (const key in params) {
22
+ params[key] = decodeURIComponent(params[key]);
23
+ }
24
+ return params;
25
+ }
26
+ function make_trackable(url, callback, search_params_callback, allow_hash = false) {
27
+ const tracked = new URL(url);
28
+ Object.defineProperty(tracked, "searchParams", {
29
+ value: new Proxy(tracked.searchParams, {
30
+ get(obj, key) {
31
+ if (key === "get" || key === "getAll" || key === "has") {
32
+ return (param) => {
33
+ search_params_callback(param);
34
+ return obj[key](param);
35
+ };
36
+ }
37
+ callback();
38
+ const value = Reflect.get(obj, key);
39
+ return typeof value === "function" ? value.bind(obj) : value;
40
+ }
41
+ }),
42
+ enumerable: true,
43
+ configurable: true
44
+ });
45
+ const tracked_url_properties = ["href", "pathname", "search", "toString", "toJSON"];
46
+ if (allow_hash) tracked_url_properties.push("hash");
47
+ for (const property of tracked_url_properties) {
48
+ Object.defineProperty(tracked, property, {
49
+ get() {
50
+ callback();
51
+ return url[property];
52
+ },
53
+ enumerable: true,
54
+ configurable: true
55
+ });
56
+ }
57
+ {
58
+ tracked[Symbol.for("nodejs.util.inspect.custom")] = (depth, opts, inspect) => {
59
+ return inspect(url, opts);
60
+ };
61
+ tracked.searchParams[Symbol.for("nodejs.util.inspect.custom")] = (depth, opts, inspect) => {
62
+ return inspect(url.searchParams, opts);
63
+ };
64
+ }
65
+ if (!allow_hash) {
66
+ disable_hash(tracked);
67
+ }
68
+ return tracked;
69
+ }
70
+ function disable_hash(url) {
71
+ allow_nodejs_console_log(url);
72
+ Object.defineProperty(url, "hash", {
73
+ get() {
74
+ throw new Error(
75
+ "Cannot access event.url.hash. Consider using `page.url.hash` inside a component instead"
76
+ );
77
+ }
78
+ });
79
+ }
80
+ function disable_search(url) {
81
+ allow_nodejs_console_log(url);
82
+ for (const property of ["search", "searchParams"]) {
83
+ Object.defineProperty(url, property, {
84
+ get() {
85
+ throw new Error(`Cannot access url.${property} on a page with prerendering enabled`);
86
+ }
87
+ });
88
+ }
89
+ }
90
+ function allow_nodejs_console_log(url) {
91
+ {
92
+ url[Symbol.for("nodejs.util.inspect.custom")] = (depth, opts, inspect) => {
93
+ return inspect(new URL(url), opts);
94
+ };
95
+ }
96
+ }
97
+ const DATA_SUFFIX = "/__data.json";
98
+ const HTML_DATA_SUFFIX = ".html__data.json";
99
+ function has_data_suffix(pathname) {
100
+ return pathname.endsWith(DATA_SUFFIX) || pathname.endsWith(HTML_DATA_SUFFIX);
101
+ }
102
+ function add_data_suffix(pathname) {
103
+ if (pathname.endsWith(".html")) return pathname.replace(/\.html$/, HTML_DATA_SUFFIX);
104
+ return pathname.replace(/\/$/, "") + DATA_SUFFIX;
105
+ }
106
+ function strip_data_suffix(pathname) {
107
+ if (pathname.endsWith(HTML_DATA_SUFFIX)) {
108
+ return pathname.slice(0, -HTML_DATA_SUFFIX.length) + ".html";
109
+ }
110
+ return pathname.slice(0, -DATA_SUFFIX.length);
111
+ }
112
+ const valid_layout_exports = /* @__PURE__ */ new Set([
113
+ "load",
114
+ "prerender",
115
+ "csr",
116
+ "ssr",
117
+ "trailingSlash",
118
+ "config"
119
+ ]);
120
+ /* @__PURE__ */ new Set([...valid_layout_exports, "entries"]);
121
+ const valid_layout_server_exports = /* @__PURE__ */ new Set([...valid_layout_exports]);
122
+ /* @__PURE__ */ new Set([...valid_layout_server_exports, "actions", "entries"]);
123
+
124
+ export { decode_params as a, disable_search as b, add_data_suffix as c, decode_pathname as d, has_data_suffix as h, make_trackable as m, normalize_path as n, resolve as r, strip_data_suffix as s };
125
+ //# sourceMappingURL=exports-DAjI6ZSp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exports-DAjI6ZSp.js","sources":["../../../.svelte-kit/adapter-node/chunks/exports.js"],"sourcesContent":["const internal = new URL(\"sveltekit-internal://\");\nfunction resolve(base, path) {\n if (path[0] === \"/\" && path[1] === \"/\") return path;\n let url = new URL(base, internal);\n url = new URL(path, url);\n return url.protocol === internal.protocol ? url.pathname + url.search + url.hash : url.href;\n}\nfunction normalize_path(path, trailing_slash) {\n if (path === \"/\" || trailing_slash === \"ignore\") return path;\n if (trailing_slash === \"never\") {\n return path.endsWith(\"/\") ? path.slice(0, -1) : path;\n } else if (trailing_slash === \"always\" && !path.endsWith(\"/\")) {\n return path + \"/\";\n }\n return path;\n}\nfunction decode_pathname(pathname) {\n return pathname.split(\"%25\").map(decodeURI).join(\"%25\");\n}\nfunction decode_params(params) {\n for (const key in params) {\n params[key] = decodeURIComponent(params[key]);\n }\n return params;\n}\nfunction make_trackable(url, callback, search_params_callback, allow_hash = false) {\n const tracked = new URL(url);\n Object.defineProperty(tracked, \"searchParams\", {\n value: new Proxy(tracked.searchParams, {\n get(obj, key) {\n if (key === \"get\" || key === \"getAll\" || key === \"has\") {\n return (param) => {\n search_params_callback(param);\n return obj[key](param);\n };\n }\n callback();\n const value = Reflect.get(obj, key);\n return typeof value === \"function\" ? value.bind(obj) : value;\n }\n }),\n enumerable: true,\n configurable: true\n });\n const tracked_url_properties = [\"href\", \"pathname\", \"search\", \"toString\", \"toJSON\"];\n if (allow_hash) tracked_url_properties.push(\"hash\");\n for (const property of tracked_url_properties) {\n Object.defineProperty(tracked, property, {\n get() {\n callback();\n return url[property];\n },\n enumerable: true,\n configurable: true\n });\n }\n {\n tracked[Symbol.for(\"nodejs.util.inspect.custom\")] = (depth, opts, inspect) => {\n return inspect(url, opts);\n };\n tracked.searchParams[Symbol.for(\"nodejs.util.inspect.custom\")] = (depth, opts, inspect) => {\n return inspect(url.searchParams, opts);\n };\n }\n if (!allow_hash) {\n disable_hash(tracked);\n }\n return tracked;\n}\nfunction disable_hash(url) {\n allow_nodejs_console_log(url);\n Object.defineProperty(url, \"hash\", {\n get() {\n throw new Error(\n \"Cannot access event.url.hash. Consider using `page.url.hash` inside a component instead\"\n );\n }\n });\n}\nfunction disable_search(url) {\n allow_nodejs_console_log(url);\n for (const property of [\"search\", \"searchParams\"]) {\n Object.defineProperty(url, property, {\n get() {\n throw new Error(`Cannot access url.${property} on a page with prerendering enabled`);\n }\n });\n }\n}\nfunction allow_nodejs_console_log(url) {\n {\n url[Symbol.for(\"nodejs.util.inspect.custom\")] = (depth, opts, inspect) => {\n return inspect(new URL(url), opts);\n };\n }\n}\nconst DATA_SUFFIX = \"/__data.json\";\nconst HTML_DATA_SUFFIX = \".html__data.json\";\nfunction has_data_suffix(pathname) {\n return pathname.endsWith(DATA_SUFFIX) || pathname.endsWith(HTML_DATA_SUFFIX);\n}\nfunction add_data_suffix(pathname) {\n if (pathname.endsWith(\".html\")) return pathname.replace(/\\.html$/, HTML_DATA_SUFFIX);\n return pathname.replace(/\\/$/, \"\") + DATA_SUFFIX;\n}\nfunction strip_data_suffix(pathname) {\n if (pathname.endsWith(HTML_DATA_SUFFIX)) {\n return pathname.slice(0, -HTML_DATA_SUFFIX.length) + \".html\";\n }\n return pathname.slice(0, -DATA_SUFFIX.length);\n}\nfunction validator(expected) {\n function validate(module, file) {\n if (!module) return;\n for (const key in module) {\n if (key[0] === \"_\" || expected.has(key)) continue;\n const values = [...expected.values()];\n const hint = hint_for_supported_files(key, file?.slice(file.lastIndexOf(\".\"))) ?? `valid exports are ${values.join(\", \")}, or anything with a '_' prefix`;\n throw new Error(`Invalid export '${key}'${file ? ` in ${file}` : \"\"} (${hint})`);\n }\n }\n return validate;\n}\nfunction hint_for_supported_files(key, ext = \".js\") {\n const supported_files = [];\n if (valid_layout_exports.has(key)) {\n supported_files.push(`+layout${ext}`);\n }\n if (valid_page_exports.has(key)) {\n supported_files.push(`+page${ext}`);\n }\n if (valid_layout_server_exports.has(key)) {\n supported_files.push(`+layout.server${ext}`);\n }\n if (valid_page_server_exports.has(key)) {\n supported_files.push(`+page.server${ext}`);\n }\n if (valid_server_exports.has(key)) {\n supported_files.push(`+server${ext}`);\n }\n if (supported_files.length > 0) {\n return `'${key}' is a valid export in ${supported_files.slice(0, -1).join(\", \")}${supported_files.length > 1 ? \" or \" : \"\"}${supported_files.at(-1)}`;\n }\n}\nconst valid_layout_exports = /* @__PURE__ */ new Set([\n \"load\",\n \"prerender\",\n \"csr\",\n \"ssr\",\n \"trailingSlash\",\n \"config\"\n]);\nconst valid_page_exports = /* @__PURE__ */ new Set([...valid_layout_exports, \"entries\"]);\nconst valid_layout_server_exports = /* @__PURE__ */ new Set([...valid_layout_exports]);\nconst valid_page_server_exports = /* @__PURE__ */ new Set([...valid_layout_server_exports, \"actions\", \"entries\"]);\nconst valid_server_exports = /* @__PURE__ */ new Set([\n \"GET\",\n \"POST\",\n \"PATCH\",\n \"PUT\",\n \"DELETE\",\n \"OPTIONS\",\n \"HEAD\",\n \"fallback\",\n \"prerender\",\n \"trailingSlash\",\n \"config\",\n \"entries\"\n]);\nconst validate_layout_exports = validator(valid_layout_exports);\nconst validate_page_exports = validator(valid_page_exports);\nconst validate_layout_server_exports = validator(valid_layout_server_exports);\nconst validate_page_server_exports = validator(valid_page_server_exports);\nconst validate_server_exports = validator(valid_server_exports);\nexport {\n add_data_suffix as a,\n decode_pathname as b,\n decode_params as c,\n disable_search as d,\n validate_layout_exports as e,\n validate_page_server_exports as f,\n validate_page_exports as g,\n has_data_suffix as h,\n validate_server_exports as i,\n make_trackable as m,\n normalize_path as n,\n resolve as r,\n strip_data_suffix as s,\n validate_layout_server_exports as v\n};\n"],"names":[],"mappings":"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"}