add font to csp
This commit is contained in:
parent
585367118d
commit
3d4cbbc585
42 changed files with 5 additions and 24821 deletions
|
|
@ -1 +0,0 @@
|
|||
{"config":{"nodeModuleFormat":"esm"},"version":1}
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
import { init } from '../serverless.js';
|
||||
|
||||
export const handler = init((() => {
|
||||
function __memo(fn) {
|
||||
let value;
|
||||
return () => value ??= (value = fn());
|
||||
}
|
||||
|
||||
return {
|
||||
appDir: "_app",
|
||||
appPath: "_app",
|
||||
assets: new Set([".DS_Store","cursor.png","cursor.svg","favicon.png","pointer.png","pointer.svg","work/.DS_Store","work/adidas/adidas_hero.jpg","work/formo/formo-rec.mp4","work/formo/formo-rec.webm","work/formo/formo_hero.png","work/jpl/jpl_hero.jpg"]),
|
||||
mimeTypes: {".png":"image/png",".svg":"image/svg+xml",".jpg":"image/jpeg",".mp4":"video/mp4",".webm":"video/webm"},
|
||||
_: {
|
||||
client: {"start":"_app/immutable/entry/start.0e966e92.js","app":"_app/immutable/entry/app.fea8eb32.js","imports":["_app/immutable/entry/start.0e966e92.js","_app/immutable/chunks/scheduler.8b80e243.js","_app/immutable/chunks/singletons.a1418874.js","_app/immutable/entry/app.fea8eb32.js","_app/immutable/chunks/scheduler.8b80e243.js","_app/immutable/chunks/index.b20febff.js"],"stylesheets":[],"fonts":[]},
|
||||
nodes: [
|
||||
__memo(() => import('../server/nodes/0.js')),
|
||||
__memo(() => import('../server/nodes/1.js')),
|
||||
__memo(() => import('../server/nodes/2.js')),
|
||||
__memo(() => import('../server/nodes/3.js')),
|
||||
__memo(() => import('../server/nodes/4.js')),
|
||||
__memo(() => import('../server/nodes/5.js')),
|
||||
__memo(() => import('../server/nodes/6.js')),
|
||||
__memo(() => import('../server/nodes/7.js'))
|
||||
],
|
||||
routes: [
|
||||
{
|
||||
id: "/",
|
||||
pattern: /^\/$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 2 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/blog",
|
||||
pattern: /^\/blog\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 3 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/blog/[slug]",
|
||||
pattern: /^\/blog\/([^/]+?)\/?$/,
|
||||
params: [{"name":"slug","optional":false,"rest":false,"chained":false}],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 4 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/test",
|
||||
pattern: /^\/test\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 5 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/work",
|
||||
pattern: /^\/work\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 6 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/work/[slug]",
|
||||
pattern: /^\/work\/([^/]+?)\/?$/,
|
||||
params: [{"name":"slug","optional":false,"rest":false,"chained":false}],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 7 },
|
||||
endpoint: null
|
||||
}
|
||||
],
|
||||
matchers: async () => {
|
||||
|
||||
return { };
|
||||
}
|
||||
}
|
||||
}
|
||||
})());
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 61 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 31 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 72 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB |
|
|
@ -1,15 +0,0 @@
|
|||
import { c as create_ssr_component } from "./ssr.js";
|
||||
const metadata = {
|
||||
"title": "Adidas",
|
||||
"header_bg_image": "adidas_hero_ceurd8",
|
||||
"order": 12,
|
||||
"description": "Adidas, as you might have heard, is an international sports and lifestyle clothing brand. I worked on several digital campaigns as a graphic designer and illustrator.",
|
||||
"svg": '<svg id="adidas-logo" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 1000 674.2" style="enable-background:new 0 0 1000 674.2; fill: currentColor" xml:space="preserve"><path d="M654.5 442.2 448.9 84.8 596.6 0l255.7 442.2H654.5"/><path d="m106.8 392.1 147.7-85.4 78.2 135.5H135.5l-28.7-50.1"/><path d="M396.7 670.2h42V500.1h-42v170.1z"/><path d="M923.6 674.2c-47 0-75.3-24.3-76.8-58.5h44.3c0 10.7 6.7 26.4 35.4 26.9 19.1 0 28.1-11.3 28.1-19.7-1.1-13.4-18-14.5-35.9-17.4-18-2.9-33.3-6.1-44.3-11.8-14.1-7.3-23.7-22.9-23.7-40.9 0-30.4 26.4-54.5 70.3-54.5 42.6 0 69.6 22.4 72.4 55.6h-42.8c-.4-9-2.1-23.1-27.3-23.1-17 0-28.3 3.4-29.2 15.3 0 17.4 35.4 16.2 62.9 23.5 26.4 6.7 43.2 23.1 43.2 46.1-.2 42.2-34.4 58.5-76.6 58.5"/><path d="m280 240.4 147.7-85.2 165.7 287H438.8v42h-42V442L280 240.4"/><path class="st0" d="M283.8 674.2c-48.9 0-88.7-39.9-88.7-88.3 0-48.9 39.7-87.5 88.7-87.5 18.5 0 35.4 5 50.1 15.1v-71.3h42v228h-42v-11.3c-14.8 9.6-31.6 15.3-50.1 15.3zm-48.4-88.3c0 26.4 22.5 48.3 49.5 48.3 26.4 0 48.9-22 48.9-48.3 0-26.4-22.5-48.9-48.9-48.9-26.9 0-49.5 22.5-49.5 48.9"/><path class="st0" d="M594.5 442.2H636v228h-41.5v-11.3c-14.1 9.6-31.5 15.3-50.6 15.3-48.3 0-88.1-39.9-88.1-88.3 0-48.9 39.7-87.5 88.1-87.5 19.1 0 35.9 5 50.6 15.1v-71.3zm-97.8 143.7c0 26.4 22.5 48.3 48.3 48.3 26.9 0 49.5-22 49.5-48.3 0-26.4-22.5-48.9-49.5-48.9-25.8 0-48.3 22.5-48.3 48.9"/><path class="st0" d="M738.2 674.2c-48.2 0-88.1-39.9-88.1-88.3 0-48.9 39.9-87.5 88.1-87.5 18.5 0 35.9 5 50.1 15.1v-13.6h42v170.3h-42v-11.3c-14.2 9.6-31 15.3-50.1 15.3zM691 585.9c0 26.4 22.5 48.3 48.9 48.3s48.3-22 48.3-48.3c0-26.4-22-48.9-48.3-48.9-26.4 0-48.9 22.5-48.9 48.9"/><path class="st0" d="M40.5 585.9c0 26.4 22.5 48.3 48.9 48.3 26.9 0 49.5-22 49.5-48.3 0-26.4-22.5-48.9-49.5-48.9-26.3 0-48.9 22.5-48.9 48.9zm47.8 88.3c-48.4 0-88.3-40-88.3-88.3 0-48.9 39.9-87.5 88.3-87.5 18.5 0 35.9 5 50.6 15.1v-13.6h41.5v170.3h-41.5v-11.3c-14.1 9.6-31.5 15.3-50.6 15.3"/></svg>'
|
||||
};
|
||||
const Adidas = create_ssr_component(($$result, $$props, $$bindings, slots) => {
|
||||
return `<p data-svelte-h="svelte-j4j1u0">Adidas, as you might have heard, is an international sports and lifestyle clothing brand. I worked on several digital campaigns as a graphic designer and illustrator.</p>`;
|
||||
});
|
||||
export {
|
||||
Adidas as default,
|
||||
metadata
|
||||
};
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
import { c as create_ssr_component } from "./ssr.js";
|
||||
const metadata = {
|
||||
"title": "Formo.bio",
|
||||
"header_bg_image": "formo_hero_xgb6xo",
|
||||
"video": "/work/formo/formo-rec.webm",
|
||||
"order": 12,
|
||||
"description": "Formo, as you might have heard, is an international sports and lifestyle clothing brand. I worked on several digital campaigns as a graphic designer and illustrator.",
|
||||
"svg": '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70 20" style="enable-background:new 0 0 70 20" xml:space="preserve"><path d="m3.4 5.6 7.9-3.3c.1 0 .1-.1.1-.2l-.9-2c-.1-.1-.2-.1-.2-.1L2.4 3.3C.9 3.9 0 5.3 0 6.9v12.3c0 .1.1.1.1.1h2.2c.1 0 .1-.1.1-.1v-8.7c.2.1.3.1.5.2l7.2 1.8c.1 0 .1 0 .1-.1l.6-2.1c0-.1 0-.1-.1-.1L3.6 8.3C2.7 8 2.5 7.2 2.5 7s0-1 .9-1.4zm59.7.7c-3.8 0-6.9 3-6.9 6.8s3.1 6.8 6.9 6.8 6.9-3 6.9-6.8-3.1-6.8-6.9-6.8zm0 11.1c-2.4 0-4.4-1.9-4.4-4.3s2-4.3 4.4-4.3 4.4 1.9 4.4 4.3-2 4.3-4.4 4.3zM18.8 6.3c-3.8 0-6.9 3-6.9 6.8s3.1 6.8 6.9 6.8 6.9-3 6.9-6.8-3.1-6.8-6.9-6.8zm0 11.1c-2.4 0-4.4-1.9-4.4-4.3s2-4.3 4.4-4.3 4.4 1.9 4.4 4.3-2 4.3-4.4 4.3zM53.1 7.1c-.9-.7-2-.9-3-.6l-3.2.9c-.3.1-.6.2-.9.4-.2-.3-.4-.5-.7-.7-.9-.7-2-.9-3-.6l-3.3.9c-1.6.4-2.7 1.9-2.7 3.5v8.3c0 .1.1.1.1.1h2.2c.1 0 .1-.1.1-.1v-8.3c0-.5.4-1 .9-1.1l3.2-.9c.4-.1.7.1.8.2.3.2.4.5.4.8v9.4c0 .1.1.1.1.1h2.2c.1 0 .1-.1.1-.1V11c0-.5.4-1 .9-1.1l3.2-.9c.4-.1.7.1.8.2.3.2.4.5.4.8v9.4c0 .1.1.1.1.1H54c.1 0 .1 0 .1-.1V9.9c.4-1.1-.1-2.1-1-2.8zm-23 .3c-1.6.4-2.7 1.9-2.7 3.5v8.3c0 .1.1.1.1.1h2.2c.1 0 .1-.1.1-.1v-8.3c0-.5.4-1 .9-1.1l4.6-1.3c.1 0 .1-.1.1-.1l-.6-2.1c0-.1-.1-.1-.1-.1l-4.6 1.2z" style="fill:currentColor"/></svg>'
|
||||
};
|
||||
const Formo = create_ssr_component(($$result, $$props, $$bindings, slots) => {
|
||||
return `<h2 data-svelte-h="svelte-1t2xy0z">A website for the future of dairy.</h2> <p data-svelte-h="svelte-1601rnt">Formo is using precision fermentation instead of cows to make dairy products and save the world.</p> <p data-svelte-h="svelte-x210ak">Formo’s previous website was lacking an easy way for the team to create new, visually engaging content without technical knowledge. After consulting with the team, we decided to use the latest version of WordPress which offers full support for the powerful Gutenberg editor.</p> <p data-svelte-h="svelte-1vdi9hq">We built custom content blocks for the team to use and combine when creating new pages and articles.</p>`;
|
||||
});
|
||||
export {
|
||||
Formo as default,
|
||||
metadata
|
||||
};
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
class HttpError {
|
||||
/**
|
||||
* @param {number} status
|
||||
* @param {{message: string} extends App.Error ? (App.Error | string | undefined) : App.Error} body
|
||||
*/
|
||||
constructor(status, body) {
|
||||
this.status = status;
|
||||
if (typeof body === "string") {
|
||||
this.body = { message: body };
|
||||
} else if (body) {
|
||||
this.body = body;
|
||||
} else {
|
||||
this.body = { message: `Error: ${status}` };
|
||||
}
|
||||
}
|
||||
toString() {
|
||||
return JSON.stringify(this.body);
|
||||
}
|
||||
}
|
||||
class Redirect {
|
||||
/**
|
||||
* @param {300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308} status
|
||||
* @param {string} location
|
||||
*/
|
||||
constructor(status, location) {
|
||||
this.status = status;
|
||||
this.location = location;
|
||||
}
|
||||
}
|
||||
class ActionFailure {
|
||||
/**
|
||||
* @param {number} status
|
||||
* @param {T} [data]
|
||||
*/
|
||||
constructor(status, data) {
|
||||
this.status = status;
|
||||
this.data = data;
|
||||
}
|
||||
}
|
||||
function error(status, body) {
|
||||
if (isNaN(status) || status < 400 || status > 599) {
|
||||
throw new Error(`HTTP error status codes must be between 400 and 599 — ${status} is invalid`);
|
||||
}
|
||||
return new HttpError(status, body);
|
||||
}
|
||||
function json(data, init) {
|
||||
const body = JSON.stringify(data);
|
||||
const headers = new Headers(init?.headers);
|
||||
if (!headers.has("content-length")) {
|
||||
headers.set("content-length", encoder.encode(body).byteLength.toString());
|
||||
}
|
||||
if (!headers.has("content-type")) {
|
||||
headers.set("content-type", "application/json");
|
||||
}
|
||||
return new Response(body, {
|
||||
...init,
|
||||
headers
|
||||
});
|
||||
}
|
||||
const encoder = new TextEncoder();
|
||||
function text(body, init) {
|
||||
const headers = new Headers(init?.headers);
|
||||
if (!headers.has("content-length")) {
|
||||
const encoded = encoder.encode(body);
|
||||
headers.set("content-length", encoded.byteLength.toString());
|
||||
return new Response(encoded, {
|
||||
...init,
|
||||
headers
|
||||
});
|
||||
}
|
||||
return new Response(body, {
|
||||
...init,
|
||||
headers
|
||||
});
|
||||
}
|
||||
export {
|
||||
ActionFailure as A,
|
||||
HttpError as H,
|
||||
Redirect as R,
|
||||
error as e,
|
||||
json as j,
|
||||
text as t
|
||||
};
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
import { n as noop, a as safe_not_equal } from "./utils.js";
|
||||
const subscriber_queue = [];
|
||||
function readable(value, start) {
|
||||
return {
|
||||
subscribe: writable(value, start).subscribe
|
||||
};
|
||||
}
|
||||
function writable(value, start = noop) {
|
||||
let stop;
|
||||
const subscribers = /* @__PURE__ */ new Set();
|
||||
function set(new_value) {
|
||||
if (safe_not_equal(value, new_value)) {
|
||||
value = new_value;
|
||||
if (stop) {
|
||||
const run_queue = !subscriber_queue.length;
|
||||
for (const subscriber of subscribers) {
|
||||
subscriber[1]();
|
||||
subscriber_queue.push(subscriber, value);
|
||||
}
|
||||
if (run_queue) {
|
||||
for (let i = 0; i < subscriber_queue.length; i += 2) {
|
||||
subscriber_queue[i][0](subscriber_queue[i + 1]);
|
||||
}
|
||||
subscriber_queue.length = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function update(fn) {
|
||||
set(fn(value));
|
||||
}
|
||||
function subscribe(run, invalidate = noop) {
|
||||
const subscriber = [run, invalidate];
|
||||
subscribers.add(subscriber);
|
||||
if (subscribers.size === 1) {
|
||||
stop = start(set, update) || noop;
|
||||
}
|
||||
run(value);
|
||||
return () => {
|
||||
subscribers.delete(subscriber);
|
||||
if (subscribers.size === 0 && stop) {
|
||||
stop();
|
||||
stop = null;
|
||||
}
|
||||
};
|
||||
}
|
||||
return { set, update, subscribe };
|
||||
}
|
||||
export {
|
||||
readable as r,
|
||||
writable as w
|
||||
};
|
||||
|
|
@ -1,185 +0,0 @@
|
|||
import { c as create_ssr_component, s as setContext, v as validate_component, m as missing_component } from "./ssr.js";
|
||||
let base = "";
|
||||
let assets = base;
|
||||
const initial = { base, assets };
|
||||
function reset() {
|
||||
base = initial.base;
|
||||
assets = initial.assets;
|
||||
}
|
||||
function set_assets(path) {
|
||||
assets = initial.assets = path;
|
||||
}
|
||||
let public_env = {};
|
||||
function set_private_env(environment) {
|
||||
}
|
||||
function set_public_env(environment) {
|
||||
public_env = environment;
|
||||
}
|
||||
function afterUpdate() {
|
||||
}
|
||||
function set_building() {
|
||||
}
|
||||
const Root = create_ssr_component(($$result, $$props, $$bindings, slots) => {
|
||||
let { stores } = $$props;
|
||||
let { page } = $$props;
|
||||
let { constructors } = $$props;
|
||||
let { components = [] } = $$props;
|
||||
let { form } = $$props;
|
||||
let { data_0 = null } = $$props;
|
||||
let { data_1 = null } = $$props;
|
||||
{
|
||||
setContext("__svelte__", stores);
|
||||
}
|
||||
afterUpdate(stores.page.notify);
|
||||
if ($$props.stores === void 0 && $$bindings.stores && stores !== void 0)
|
||||
$$bindings.stores(stores);
|
||||
if ($$props.page === void 0 && $$bindings.page && page !== void 0)
|
||||
$$bindings.page(page);
|
||||
if ($$props.constructors === void 0 && $$bindings.constructors && constructors !== void 0)
|
||||
$$bindings.constructors(constructors);
|
||||
if ($$props.components === void 0 && $$bindings.components && components !== void 0)
|
||||
$$bindings.components(components);
|
||||
if ($$props.form === void 0 && $$bindings.form && form !== void 0)
|
||||
$$bindings.form(form);
|
||||
if ($$props.data_0 === void 0 && $$bindings.data_0 && data_0 !== void 0)
|
||||
$$bindings.data_0(data_0);
|
||||
if ($$props.data_1 === void 0 && $$bindings.data_1 && data_1 !== void 0)
|
||||
$$bindings.data_1(data_1);
|
||||
let $$settled;
|
||||
let $$rendered;
|
||||
do {
|
||||
$$settled = true;
|
||||
{
|
||||
stores.page.set(page);
|
||||
}
|
||||
$$rendered = ` ${constructors[1] ? `${validate_component(constructors[0] || missing_component, "svelte:component").$$render(
|
||||
$$result,
|
||||
{ data: data_0, this: components[0] },
|
||||
{
|
||||
this: ($$value) => {
|
||||
components[0] = $$value;
|
||||
$$settled = false;
|
||||
}
|
||||
},
|
||||
{
|
||||
default: () => {
|
||||
return `${validate_component(constructors[1] || missing_component, "svelte:component").$$render(
|
||||
$$result,
|
||||
{ data: data_1, form, this: components[1] },
|
||||
{
|
||||
this: ($$value) => {
|
||||
components[1] = $$value;
|
||||
$$settled = false;
|
||||
}
|
||||
},
|
||||
{}
|
||||
)}`;
|
||||
}
|
||||
}
|
||||
)}` : `${validate_component(constructors[0] || missing_component, "svelte:component").$$render(
|
||||
$$result,
|
||||
{ data: data_0, form, this: components[0] },
|
||||
{
|
||||
this: ($$value) => {
|
||||
components[0] = $$value;
|
||||
$$settled = false;
|
||||
}
|
||||
},
|
||||
{}
|
||||
)}`} ${``}`;
|
||||
} while (!$$settled);
|
||||
return $$rendered;
|
||||
});
|
||||
const options = {
|
||||
app_template_contains_nonce: false,
|
||||
csp: { "mode": "auto", "directives": { "upgrade-insecure-requests": false, "block-all-mixed-content": false }, "reportOnly": { "upgrade-insecure-requests": false, "block-all-mixed-content": false } },
|
||||
csrf_check_origin: true,
|
||||
track_server_fetches: false,
|
||||
embedded: false,
|
||||
env_public_prefix: "PUBLIC_",
|
||||
env_private_prefix: "",
|
||||
hooks: null,
|
||||
// added lazily, via `get_hooks`
|
||||
preload_strategy: "modulepreload",
|
||||
root: Root,
|
||||
service_worker: false,
|
||||
templates: {
|
||||
app: ({ head, body, assets: assets2, nonce, env }) => '<!DOCTYPE html>\n<html lang="en">\n <head>\n <meta charset="utf-8" />\n <link rel="icon" href="' + assets2 + '/favicon.png" />\n <link rel="stylesheet" href="https://use.typekit.net/ltu2cxf.css">\n <meta name="viewport" content="width=device-width" />\n ' + head + '\n </head>\n <body data-sveltekit-preload-data="hover">\n <div style="display: contents">' + body + "</div>\n </body>\n</html>\n",
|
||||
error: ({ status, message }) => '<!DOCTYPE html>\n<html lang="en">\n <head>\n <meta charset="utf-8" />\n <title>' + message + `</title>
|
||||
|
||||
<style>
|
||||
body {
|
||||
--bg: white;
|
||||
--fg: #222;
|
||||
--divider: #ccc;
|
||||
background: var(--bg);
|
||||
color: var(--fg);
|
||||
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
|
||||
Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 100vh;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.error {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
max-width: 32rem;
|
||||
margin: 0 1rem;
|
||||
}
|
||||
|
||||
.status {
|
||||
font-weight: 200;
|
||||
font-size: 3rem;
|
||||
line-height: 1;
|
||||
position: relative;
|
||||
top: -0.05rem;
|
||||
}
|
||||
|
||||
.message {
|
||||
border-left: 1px solid var(--divider);
|
||||
padding: 0 0 0 1rem;
|
||||
margin: 0 0 0 1rem;
|
||||
min-height: 2.5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.message h1 {
|
||||
font-weight: 400;
|
||||
font-size: 1em;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body {
|
||||
--bg: #222;
|
||||
--fg: #ddd;
|
||||
--divider: #666;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="error">
|
||||
<span class="status">` + status + '</span>\n <div class="message">\n <h1>' + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
|
||||
},
|
||||
version_hash: "fe2g2k"
|
||||
};
|
||||
function get_hooks() {
|
||||
return {};
|
||||
}
|
||||
export {
|
||||
assets as a,
|
||||
base as b,
|
||||
set_public_env as c,
|
||||
set_assets as d,
|
||||
set_building as e,
|
||||
get_hooks as g,
|
||||
options as o,
|
||||
public_env as p,
|
||||
reset as r,
|
||||
set_private_env as s
|
||||
};
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
import { c as create_ssr_component } from "./ssr.js";
|
||||
const metadata = {
|
||||
"title": "JustPeace Labs",
|
||||
"header_bg_image": "jpl_hero_eukxaw",
|
||||
"description": "JustPeace Labs is a non-profit organization that works with local communities to build peace and prevent violence.",
|
||||
"order": 11,
|
||||
"svg": '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" id="Layer_1" x="0" y="0" viewBox="0 0 240 63" style="enable-background:new 0 0 240 63" xml:space="preserve"><style>.st0{fill:currentColor}.st1{fill:currentColor}</style><g id="Layer_1-2"><path class="st0" d="M82.4 23.4c.4-2.3.6-4.7.5-7.1V3.1h4.6v13.1c.1 2.5 0 5-.3 7.5-.8 4.1-4.9 6-7.4 6.1l-1.1-2.4c1.9-.6 3.3-2.1 3.7-4zM92 3.1h4.5v12.3c0 5.1 1.6 6.2 4.4 6.2s4.3-1.3 4.3-6.2V3.1h4.5v12.7c0 6.1-3 9.5-8.9 9.5-6.6 0-8.8-3.8-8.8-9.6V3.1zM114 20.3c1.7.9 3.7 1.4 5.7 1.4 2.4 0 3.2-.8 3.2-2.2s-.9-2.2-4.2-3.9c-2.6-1.3-5.4-3.2-5.4-6.8 0-4.3 3.5-5.9 7.7-5.9 2-.1 3.9.4 5.7 1.3l-.8 3.6c-1.4-.9-3.1-1.4-4.7-1.4-2.4 0-3.3.9-3.3 2.2 0 1.6 1.1 2.2 3.8 3.7 3.4 1.8 6 3.4 6 7 0 4-3.1 6.1-7.5 6.1-2.3 0-4.5-.4-6.6-1.3l.4-3.8zM135.3 6.6H129V3.1h17.2v3.5h-6.3V25h-4.6V6.6zM149.4 3.1h1.4c2.4 0 4.4-.2 6.5-.2 5 0 8 2.2 8 7.6 0 5-3.1 8-8.8 8H154V25h-4.6V3.1zm7 11.8c2.2 0 4.3-.9 4.3-4.6 0-2.8-1.5-4.3-4.4-4.2-.8 0-1.6.1-2.4.2v8.4c.8.2 1.6.2 2.5.2zM168.4 3.1h13.4v3.5H173V12h6.8v3.5H173v5.9h9.7V25h-14.3V3.1zM192.8 2.9h4.6l8.2 22.1h-5l-1.5-4.6H191l-1.5 4.6h-4.9l8.2-22.1zm5.3 14.2-2.4-7.5-.6-2.3-.6 2.3-2.4 7.5h6zM216.4 2.9c2 0 4 .3 6 .9l-.7 4c-1.5-.9-3.2-1.3-5-1.3-3.6 0-6.3 2.7-6.3 7.3s2.5 7.9 6.7 7.9c1.8 0 3.5-.5 5.1-1.4v3.8c-1.7.8-3.6 1.2-5.5 1.1-6.8 0-11-4.5-11-11.1 0-7.3 4.7-11.2 10.7-11.2zM225.7 3.1h13.4v3.5h-8.8V12h6.7v3.5h-6.7v5.9h9.7V25h-14.3V3.1z"/><path class="st1" d="M80.4 39h2.5v20H92v2H80.4V39zM98 52.1c2.1-.7 4.2-1 6.4-1v-1.9c0-2.7-1.4-3.1-3.8-3.1-1.7.1-3.4.5-4.8 1.4l-.6-1.6c1.8-1 3.9-1.6 6-1.6 3.3 0 5.6.9 5.6 5v11.9h-1c-.8 0-1.3-.1-1.3-1.2v-.6c-1.4 1.2-3.2 1.8-5.1 1.8-2.9 0-5-1.7-5-4.6 0-2.1 1.3-3.6 3.6-4.5zm2.2 7.3c1.5 0 3-.5 4.2-1.4v-5.3c-1.7 0-3.4.2-5.1.8-1.6.6-2.5 1.5-2.5 3 0 1.7 1 2.9 3.4 2.9zM112 37h2.4v6.8l-.1 2.5c1.3-1.3 3.1-2 5-2 3.6 0 6.5 2.6 6.5 7.8s-3.3 9.1-8.3 9.1c-1.9 0-3.8-.4-5.5-1.2V37zm5.8 22.4c2.9 0 5.5-2.3 5.6-7 0-4.1-1.6-6.3-4.7-6.3-1.6 0-3.1.6-4.2 1.7v10.9c.9.6 2.1.8 3.3.7zM129.4 58.2c1.5.8 3.1 1.2 4.7 1.2 2.1 0 3.6-.8 3.6-2.5s-2-2.5-3.9-3.3c-2.5-1-4.7-2.4-4.7-5.1s2.7-4.1 5.7-4.2c1.5 0 2.9.3 4.2.9l-.4 1.8c-1.1-.6-2.4-.9-3.7-.9-2.4 0-3.6.9-3.6 2.2 0 1.7 1.4 2.5 3.6 3.4s5 2.2 5 5-2.2 4.5-5.7 4.5c-1.8 0-3.6-.4-5.2-1.2l.4-1.8zM7.2 31.7c0-12.2 8.9-22.6 21-24.4L27.1 0C11.6 2.4.1 15.7 0 31.5c0 6.8 2.2 13.5 6.2 19l5.8-4.3C8.9 42 7.2 36.9 7.2 31.7zM17.1 51.4l-4.2 5.7c4.2 3.1 9.1 5.1 14.2 5.9l1-7c-4-.6-7.8-2.2-11-4.6zM36.5 0l-1.1 7.3c13.5 2 22.7 14.5 20.7 28-.6 3.9-2.1 7.7-4.5 10.9l5.7 4.2c4.1-5.5 6.3-12.1 6.2-19 .1-15.7-11.4-29-27-31.4zM35.5 56l1 7c5.2-.8 10-2.8 14.2-5.9l-4.2-5.7c-3.2 2.4-7 4-11 4.6z"/></g></svg>'
|
||||
};
|
||||
const Jpl = create_ssr_component(($$result, $$props, $$bindings, slots) => {
|
||||
return `<h2 data-svelte-h="svelte-1u6sfw2">JPL’s Mission</h2> <p data-svelte-h="svelte-yzwltr">The startup has declared their mission “to empower local communities to be active participants in creating lasting just peace through the use of technology”. I created a logo and housestyle for them that conveyes their goals and products.</p> <h2 data-svelte-h="svelte-uqz2p8">The “broken peace” logo</h2> <p data-svelte-h="svelte-1wdfp25">Since 1958, the Symbol for the British nuclear disarmament movement by Gerald Holtom is used as an international symbol for peace.</p> <p data-svelte-h="svelte-x8fl2k">Clients of JustPeace Labs are peace builders. The logo is a ‘broken’ peace sign with only the frame intact. It stands for the technological and ethical frameworks that JPL aims to provide that can be used to achieve long lasting, just peace.</p>`;
|
||||
});
|
||||
export {
|
||||
Jpl as default,
|
||||
metadata
|
||||
};
|
||||
|
|
@ -1,221 +0,0 @@
|
|||
import { r as run_all, b as blank_object } from "./utils.js";
|
||||
let current_component;
|
||||
function set_current_component(component) {
|
||||
current_component = component;
|
||||
}
|
||||
function get_current_component() {
|
||||
if (!current_component)
|
||||
throw new Error("Function called outside component initialization");
|
||||
return current_component;
|
||||
}
|
||||
function onDestroy(fn) {
|
||||
get_current_component().$$.on_destroy.push(fn);
|
||||
}
|
||||
function setContext(key, context) {
|
||||
get_current_component().$$.context.set(key, context);
|
||||
return context;
|
||||
}
|
||||
function getContext(key) {
|
||||
return get_current_component().$$.context.get(key);
|
||||
}
|
||||
function ensure_array_like(array_like_or_iterator) {
|
||||
return array_like_or_iterator?.length !== void 0 ? array_like_or_iterator : Array.from(array_like_or_iterator);
|
||||
}
|
||||
const _boolean_attributes = (
|
||||
/** @type {const} */
|
||||
[
|
||||
"allowfullscreen",
|
||||
"allowpaymentrequest",
|
||||
"async",
|
||||
"autofocus",
|
||||
"autoplay",
|
||||
"checked",
|
||||
"controls",
|
||||
"default",
|
||||
"defer",
|
||||
"disabled",
|
||||
"formnovalidate",
|
||||
"hidden",
|
||||
"inert",
|
||||
"ismap",
|
||||
"loop",
|
||||
"multiple",
|
||||
"muted",
|
||||
"nomodule",
|
||||
"novalidate",
|
||||
"open",
|
||||
"playsinline",
|
||||
"readonly",
|
||||
"required",
|
||||
"reversed",
|
||||
"selected"
|
||||
]
|
||||
);
|
||||
const boolean_attributes = /* @__PURE__ */ new Set([..._boolean_attributes]);
|
||||
const invalid_attribute_name_character = /[\s'">/=\u{FDD0}-\u{FDEF}\u{FFFE}\u{FFFF}\u{1FFFE}\u{1FFFF}\u{2FFFE}\u{2FFFF}\u{3FFFE}\u{3FFFF}\u{4FFFE}\u{4FFFF}\u{5FFFE}\u{5FFFF}\u{6FFFE}\u{6FFFF}\u{7FFFE}\u{7FFFF}\u{8FFFE}\u{8FFFF}\u{9FFFE}\u{9FFFF}\u{AFFFE}\u{AFFFF}\u{BFFFE}\u{BFFFF}\u{CFFFE}\u{CFFFF}\u{DFFFE}\u{DFFFF}\u{EFFFE}\u{EFFFF}\u{FFFFE}\u{FFFFF}\u{10FFFE}\u{10FFFF}]/u;
|
||||
function spread(args, attrs_to_add) {
|
||||
const attributes = Object.assign({}, ...args);
|
||||
if (attrs_to_add) {
|
||||
const classes_to_add = attrs_to_add.classes;
|
||||
const styles_to_add = attrs_to_add.styles;
|
||||
if (classes_to_add) {
|
||||
if (attributes.class == null) {
|
||||
attributes.class = classes_to_add;
|
||||
} else {
|
||||
attributes.class += " " + classes_to_add;
|
||||
}
|
||||
}
|
||||
if (styles_to_add) {
|
||||
if (attributes.style == null) {
|
||||
attributes.style = style_object_to_string(styles_to_add);
|
||||
} else {
|
||||
attributes.style = style_object_to_string(
|
||||
merge_ssr_styles(attributes.style, styles_to_add)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
let str = "";
|
||||
Object.keys(attributes).forEach((name) => {
|
||||
if (invalid_attribute_name_character.test(name))
|
||||
return;
|
||||
const value = attributes[name];
|
||||
if (value === true)
|
||||
str += " " + name;
|
||||
else if (boolean_attributes.has(name.toLowerCase())) {
|
||||
if (value)
|
||||
str += " " + name;
|
||||
} else if (value != null) {
|
||||
str += ` ${name}="${value}"`;
|
||||
}
|
||||
});
|
||||
return str;
|
||||
}
|
||||
function merge_ssr_styles(style_attribute, style_directive) {
|
||||
const style_object = {};
|
||||
for (const individual_style of style_attribute.split(";")) {
|
||||
const colon_index = individual_style.indexOf(":");
|
||||
const name = individual_style.slice(0, colon_index).trim();
|
||||
const value = individual_style.slice(colon_index + 1).trim();
|
||||
if (!name)
|
||||
continue;
|
||||
style_object[name] = value;
|
||||
}
|
||||
for (const name in style_directive) {
|
||||
const value = style_directive[name];
|
||||
if (value) {
|
||||
style_object[name] = value;
|
||||
} else {
|
||||
delete style_object[name];
|
||||
}
|
||||
}
|
||||
return style_object;
|
||||
}
|
||||
const ATTR_REGEX = /[&"]/g;
|
||||
const CONTENT_REGEX = /[&<]/g;
|
||||
function escape(value, is_attr = false) {
|
||||
const str = String(value);
|
||||
const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;
|
||||
pattern.lastIndex = 0;
|
||||
let escaped = "";
|
||||
let last = 0;
|
||||
while (pattern.test(str)) {
|
||||
const i = pattern.lastIndex - 1;
|
||||
const ch = str[i];
|
||||
escaped += str.substring(last, i) + (ch === "&" ? "&" : ch === '"' ? """ : "<");
|
||||
last = i + 1;
|
||||
}
|
||||
return escaped + str.substring(last);
|
||||
}
|
||||
function escape_attribute_value(value) {
|
||||
const should_escape = typeof value === "string" || value && typeof value === "object";
|
||||
return should_escape ? escape(value, true) : value;
|
||||
}
|
||||
function escape_object(obj) {
|
||||
const result = {};
|
||||
for (const key in obj) {
|
||||
result[key] = escape_attribute_value(obj[key]);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
function each(items, fn) {
|
||||
items = ensure_array_like(items);
|
||||
let str = "";
|
||||
for (let i = 0; i < items.length; i += 1) {
|
||||
str += fn(items[i], i);
|
||||
}
|
||||
return str;
|
||||
}
|
||||
const missing_component = {
|
||||
$$render: () => ""
|
||||
};
|
||||
function validate_component(component, name) {
|
||||
if (!component || !component.$$render) {
|
||||
if (name === "svelte:component")
|
||||
name += " this={...}";
|
||||
throw new Error(
|
||||
`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`
|
||||
);
|
||||
}
|
||||
return component;
|
||||
}
|
||||
let on_destroy;
|
||||
function create_ssr_component(fn) {
|
||||
function $$render(result, props, bindings, slots, context) {
|
||||
const parent_component = current_component;
|
||||
const $$ = {
|
||||
on_destroy,
|
||||
context: new Map(context || (parent_component ? parent_component.$$.context : [])),
|
||||
// these will be immediately discarded
|
||||
on_mount: [],
|
||||
before_update: [],
|
||||
after_update: [],
|
||||
callbacks: blank_object()
|
||||
};
|
||||
set_current_component({ $$ });
|
||||
const html = fn(result, props, bindings, slots);
|
||||
set_current_component(parent_component);
|
||||
return html;
|
||||
}
|
||||
return {
|
||||
render: (props = {}, { $$slots = {}, context = /* @__PURE__ */ new Map() } = {}) => {
|
||||
on_destroy = [];
|
||||
const result = { title: "", head: "", css: /* @__PURE__ */ new Set() };
|
||||
const html = $$render(result, props, {}, $$slots, context);
|
||||
run_all(on_destroy);
|
||||
return {
|
||||
html,
|
||||
css: {
|
||||
code: Array.from(result.css).map((css) => css.code).join("\n"),
|
||||
map: null
|
||||
// TODO
|
||||
},
|
||||
head: result.title + result.head
|
||||
};
|
||||
},
|
||||
$$render
|
||||
};
|
||||
}
|
||||
function add_attribute(name, value, boolean) {
|
||||
if (value == null || boolean && !value)
|
||||
return "";
|
||||
const assignment = boolean && value === true ? "" : `="${escape(value, true)}"`;
|
||||
return ` ${name}${assignment}`;
|
||||
}
|
||||
function style_object_to_string(style_object) {
|
||||
return Object.keys(style_object).filter((key) => style_object[key]).map((key) => `${key}: ${escape_attribute_value(style_object[key])};`).join(" ");
|
||||
}
|
||||
export {
|
||||
add_attribute as a,
|
||||
each as b,
|
||||
create_ssr_component as c,
|
||||
spread as d,
|
||||
escape as e,
|
||||
escape_attribute_value as f,
|
||||
getContext as g,
|
||||
escape_object as h,
|
||||
missing_component as m,
|
||||
onDestroy as o,
|
||||
setContext as s,
|
||||
validate_component as v
|
||||
};
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
import { s as subscribe } from "../../chunks/utils.js";
|
||||
import { c as create_ssr_component, e as escape } from "../../chunks/ssr.js";
|
||||
import { p as page } from "../../chunks/stores.js";
|
||||
const Error = create_ssr_component(($$result, $$props, $$bindings, slots) => {
|
||||
let $page, $$unsubscribe_page;
|
||||
$$unsubscribe_page = subscribe(page, (value) => $page = value);
|
||||
$$unsubscribe_page();
|
||||
return `<h1>${escape($page.status)}</h1> <p>${escape($page.error?.message)}</p>`;
|
||||
});
|
||||
export {
|
||||
Error as default
|
||||
};
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
import { s as subscribe } from "../../chunks/utils.js";
|
||||
import { c as create_ssr_component, v as validate_component, e as escape } from "../../chunks/ssr.js";
|
||||
import { n as navigating } from "../../chunks/stores.js";
|
||||
const global = "";
|
||||
const Logo_svelte_svelte_type_style_lang = "";
|
||||
const css$3 = {
|
||||
code: "#floter-logo.svelte-vqchku{fill:currentColor;height:100%;width:auto;display:block}",
|
||||
map: null
|
||||
};
|
||||
const Logo = create_ssr_component(($$result, $$props, $$bindings, slots) => {
|
||||
$$result.css.add(css$3);
|
||||
return `<svg id="floter-logo" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 287.4 83.5" width="290" height="85" class="svelte-vqchku"><path id="r" d="M259.9 82.4h-24.2l11.6-54.9h22l-2.7 12.9c4.5-8.9 11-14 18.1-14 1 0 2.1 0 2.7.2l-4.7 22.1c-1.4-.4-3.3-.9-6.4-.9-5.4 0-9.7 2.3-10.8 7.7l-5.6 26.9z"></path><path id="e" d="M237.9 59.3h-35.7c.3 5.2 2.2 7.5 6.5 7.5 2.9 0 5.1-1.5 5.9-4.2h22.3c-4.3 13.2-14.5 20.9-30.4 20.9-16.3 0-26.5-9.7-26.5-25.2 0-17.8 13.4-32 32.3-32 16.3 0 26.5 9.7 26.5 25.2 0 2.7-.4 5.3-.9 7.8zM203.3 50h13.5c-.2-4-1.8-6.5-6-6.5-3.4 0-6.1 2.1-7.5 6.5z"></path><path id="t" d="M171.5 65.9c1.9 0 4.3-.3 6.3-1L174 82.2c-2.5.8-7.1 1.3-11.1 1.3-14 0-23.2-5.1-19.6-22.3l3.5-16.7h-5.5l3.6-17h5.5l3.3-15.4H178l-3.3 15.4h11l-3.6 17h-11l-3.3 15.8c-.9 3.9.3 5.6 3.7 5.6z"></path><polygon id="odash" points="137.1,22.5 94.7,22.4 98.2,5.7 140.6,5.9 "></polygon><path id="o" d="M111.4 26.4c16.7 0 27.2 9.7 27.2 25.2 0 17.8-13.7 32-33.1 32-16.7 0-27.2-9.7-27.2-25.2 0-17.9 13.8-32 33.1-32zm-3.9 36.7c5.3 0 8.8-4.3 8.8-9.4 0-4.2-2.5-6.8-6.6-6.8-5.4 0-8.9 4.3-8.9 9.4 0 4.1 2.5 6.8 6.7 6.8z"></path><polygon id="l" points="45.5,82.4 63,0 87.1,0 69.7,82.4"></polygon><polygon id="F" points="17.5,0 59.7,0 55.5,19.8 36.9,19.8 34.1,33 50.5,33 46.3,52.7 29.9,52.7 23.6,82.4 0,82.4"></polygon></svg>`;
|
||||
});
|
||||
const MainNav_svelte_svelte_type_style_lang = "";
|
||||
const css$2 = {
|
||||
code: 'header.svelte-16m5twg.svelte-16m5twg{position:fixed;bottom:0;right:0;z-index:3;padding:var(--spacing-nav);display:flex;gap:0.75em;justify-content:flex-end;align-items:flex-end;box-sizing:border-box}label.svelte-16m5twg.svelte-16m5twg{height:36px}.open.svelte-16m5twg.svelte-16m5twg,.close.svelte-16m5twg.svelte-16m5twg{font-size:4em;line-height:0.3;position:relative;z-index:2;cursor:url("/pointer.svg"), auto}.close.svelte-16m5twg.svelte-16m5twg{top:0.033em;color:#FFF}#menustate.svelte-16m5twg.svelte-16m5twg,#nav.svelte-16m5twg.svelte-16m5twg,.close.svelte-16m5twg.svelte-16m5twg{display:none}#menustate.svelte-16m5twg:checked~#nav.svelte-16m5twg,#menustate:checked~label.svelte-16m5twg .close.svelte-16m5twg{display:block}#menustate:checked~label.svelte-16m5twg .open.svelte-16m5twg{display:none}#nav.svelte-16m5twg.svelte-16m5twg{background-color:var(--color-bg);position:fixed;top:0;left:0;width:100%;height:100%;padding:var(--spacing-outer)}#nav.svelte-16m5twg a.svelte-16m5twg{display:block;line-height:1.3;font-size:3em;font-weight:800;font-style:italic;text-transform:lowercase;text-decoration:none;color:var(--color-text)}@media screen and (min-width: 768px){#nav.svelte-16m5twg a.svelte-16m5twg{font-size:5.5em}}#nav.svelte-16m5twg a.svelte-16m5twg:first-child{margin-top:1em}',
|
||||
map: null
|
||||
};
|
||||
const MainNav = create_ssr_component(($$result, $$props, $$bindings, slots) => {
|
||||
$$result.css.add(css$2);
|
||||
return `<header class="svelte-16m5twg" data-svelte-h="svelte-18a0w60"><input aria-hidden="true" type="checkbox" id="menustate" class="svelte-16m5twg"> <label for="menustate" aria-hidden="true" class="svelte-16m5twg"><span class="open svelte-16m5twg">≡</span> <span class="close svelte-16m5twg">×</span></label> <nav id="nav" class="svelte-16m5twg"><a href="/" class="svelte-16m5twg">Home</a> <a href="/work" class="svelte-16m5twg">About</a> <a href="/work" class="svelte-16m5twg">Hire</a></nav> </header>`;
|
||||
});
|
||||
const Header_svelte_svelte_type_style_lang = "";
|
||||
const css$1 = {
|
||||
code: '.logo.svelte-qrzgwy{height:36px;width:auto;position:fixed;bottom:0;z-index:4;display:block;margin:var(--spacing-nav);cursor:url("/pointer.svg"), auto}@media screen and (max-width: 767px){.header-nav.svelte-qrzgwy{background-color:var(--color-bg);width:100%;height:calc(36px + 2 * var(--spacing-nav));position:fixed;bottom:0;left:0;z-index:3;border-top:1px solid var(--color-text)}}',
|
||||
map: null
|
||||
};
|
||||
const Header = create_ssr_component(($$result, $$props, $$bindings, slots) => {
|
||||
$$result.css.add(css$1);
|
||||
return `<header class="header-nav svelte-qrzgwy"><a href="/" class="logo svelte-qrzgwy">${validate_component(Logo, "Logo").$$render($$result, {}, {}, {})}</a> ${validate_component(MainNav, "MainNav").$$render($$result, {}, {}, {})} </header>`;
|
||||
});
|
||||
const _layout_svelte_svelte_type_style_lang = "";
|
||||
const css = {
|
||||
code: ".loader.svelte-l3hxup{position:fixed;top:calc(50% - 0.5em);left:0;width:100%;height:1em;background:var(--color-bg);display:flex;justify-content:center;align-items:center;font-size:2rem;z-index:1000}",
|
||||
map: null
|
||||
};
|
||||
const Layout = create_ssr_component(($$result, $$props, $$bindings, slots) => {
|
||||
let $navigating, $$unsubscribe_navigating;
|
||||
$$unsubscribe_navigating = subscribe(navigating, (value) => $navigating = value);
|
||||
let { data } = $$props;
|
||||
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
|
||||
$$bindings.data(data);
|
||||
$$result.css.add(css);
|
||||
$$unsubscribe_navigating();
|
||||
return `${validate_component(Header, "Header").$$render($$result, {}, {}, {})} <div class="content">${$navigating ? `<div class="loader svelte-l3hxup">Loading ${escape(JSON.stringify($navigating.to?.route.id))}</div>` : ``} ${slots.default ? slots.default({}) : ``}</div>`;
|
||||
});
|
||||
export {
|
||||
Layout as default
|
||||
};
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
import { l as loading } from "../../chunks/stores2.js";
|
||||
loading.set(true);
|
||||
const load = async ({ url }) => {
|
||||
const { pathname } = url;
|
||||
loading.set(false);
|
||||
return {
|
||||
pathname
|
||||
};
|
||||
};
|
||||
export {
|
||||
load
|
||||
};
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
import { c as create_ssr_component, o as onDestroy, a as add_attribute, v as validate_component } from "../../chunks/ssr.js";
|
||||
import "pixi.js";
|
||||
import "pixi-filters";
|
||||
const HomeCanvas_svelte_svelte_type_style_lang = "";
|
||||
const css$1 = {
|
||||
code: "canvas.svelte-1819g2x{position:fixed;top:0;left:0;z-index:-1}",
|
||||
map: null
|
||||
};
|
||||
const HomeCanvas = create_ssr_component(($$result, $$props, $$bindings, slots) => {
|
||||
let { textsToCanvas = [] } = $$props;
|
||||
let { imgsToCanvas = [] } = $$props;
|
||||
let canvas;
|
||||
onDestroy(() => {
|
||||
});
|
||||
if ($$props.textsToCanvas === void 0 && $$bindings.textsToCanvas && textsToCanvas !== void 0)
|
||||
$$bindings.textsToCanvas(textsToCanvas);
|
||||
if ($$props.imgsToCanvas === void 0 && $$bindings.imgsToCanvas && imgsToCanvas !== void 0)
|
||||
$$bindings.imgsToCanvas(imgsToCanvas);
|
||||
$$result.css.add(css$1);
|
||||
return `<canvas class="svelte-1819g2x"${add_attribute("this", canvas, 0)}></canvas>`;
|
||||
});
|
||||
const _page_svelte_svelte_type_style_lang = "";
|
||||
const css = {
|
||||
code: ".loader.svelte-vkb8yx.svelte-vkb8yx{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);text-align:center}.loader.svelte-vkb8yx p.svelte-vkb8yx{font-size:1.25em}.lds-circle.svelte-vkb8yx.svelte-vkb8yx{display:inline-block;transform:translateZ(1px)}.lds-circle.svelte-vkb8yx>div.svelte-vkb8yx{display:inline-block;width:64px;height:64px;margin:8px;border-radius:50%;background:var(--color-text);animation:svelte-vkb8yx-lds-circle 2.4s cubic-bezier(0, 0.2, 0.8, 1) infinite}@keyframes svelte-vkb8yx-lds-circle{0%,100%{animation-timing-function:cubic-bezier(0.5, 0, 1, 0.5)}0%{transform:rotateY(0deg)}50%{transform:rotateY(1800deg);animation-timing-function:cubic-bezier(0, 0.5, 0.5, 1)}100%{transform:rotateY(3600deg)}}.scroller.svelte-vkb8yx.svelte-vkb8yx{font-size:clamp(32px, 4.5vw, 4.5vw)}section.svelte-vkb8yx.svelte-vkb8yx{scroll-snap-align:start;box-sizing:border-box;padding:var(--spacing-outer);overflow:hidden}@media screen and (min-width: 768px){section.svelte-vkb8yx.svelte-vkb8yx{padding:var(--spacing-outer) calc(var(--spacing-outer) * 2.5)}}section.svelte-vkb8yx.svelte-vkb8yx:last-child{padding-bottom:50svh}.splash.svelte-vkb8yx.svelte-vkb8yx{display:flex;flex-direction:column;justify-content:start;min-height:100svh;justify-content:center;padding:var(--spacing-outer);margin-bottom:-1em}h1.svelte-vkb8yx.svelte-vkb8yx,h2.svelte-vkb8yx.svelte-vkb8yx{line-height:1.1;letter-spacing:-0.025em;font-weight:400;font-style:normal;visibility:hidden;margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}h1.svelte-vkb8yx.svelte-vkb8yx{letter-spacing:-0.05em;line-height:0.9;font-size:17vw;margin-top:-0.5em}@media screen and (min-width: 768px){h1.svelte-vkb8yx.svelte-vkb8yx{font-size:12vw}}h2.svelte-vkb8yx.svelte-vkb8yx{font-size:1.25em;font-weight:800;font-style:italic;margin-bottom:0.5em}p.svelte-vkb8yx.svelte-vkb8yx{font-size:0.7em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}a.svelte-vkb8yx.svelte-vkb8yx{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}",
|
||||
map: null
|
||||
};
|
||||
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
|
||||
let canvasElems;
|
||||
$$result.css.add(css);
|
||||
return `${`<div class="loader svelte-vkb8yx" data-svelte-h="svelte-11wygpg"><div class="lds-circle svelte-vkb8yx"><div class="svelte-vkb8yx"></div></div> <p class="svelte-vkb8yx">Loading...</p></div>`} <article class="scroller svelte-vkb8yx" data-svelte-h="svelte-1oqwt97"><section class="splash svelte-vkb8yx"><h1 class="svelte-vkb8yx">Simon Flöter creates products that stand out.</h1></section> <section class="intro svelte-vkb8yx"><h2 class="svelte-vkb8yx">As a Creative Web Developer ...</h2> <div class="cols-2"><div><p class="svelte-vkb8yx">I specialise in delivering beautifully crafted bespoke websites.</p> </div></div> <div class="cta"><a href="/work" class="button svelte-vkb8yx">Learn More</a> <a href="/work" class="button button--primary svelte-vkb8yx">Hire Simon</a></div></section> <section class="more svelte-vkb8yx"><h2 class="svelte-vkb8yx">As a UX & Graphic Designer...</h2> <div class="cols-2"> <div><p class="svelte-vkb8yx">I have designed Websites, Housestyles, Typefaces, Advertising campaigns and Print publications for them.</p></div></div> <div class="cta"><a href="/work" class="button svelte-vkb8yx">Learn More</a> <a href="/work" class="button button--primary svelte-vkb8yx">Hire Simon</a></div></section> <section class="more svelte-vkb8yx"><h2 class="svelte-vkb8yx">I create products that help great companies reach their audiences. Need help?</h2> <div class="cta"><a href="/work" class="button button--xl svelte-vkb8yx">Reach out!</a></div></section></article> ${validate_component(HomeCanvas, "HomeCanvas").$$render($$result, { textsToCanvas: canvasElems }, {}, {})}`;
|
||||
});
|
||||
export {
|
||||
Page as default
|
||||
};
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
import { e as error } from "../../../chunks/index.js";
|
||||
function load({ params }) {
|
||||
const posts = fetch("https://uncommonbio.co/wp-json/wp/v2/pages/").then((r) => r.json().catch((err) => {
|
||||
console.log(err, params);
|
||||
}));
|
||||
if (!posts)
|
||||
throw error(404);
|
||||
return {
|
||||
posts
|
||||
};
|
||||
}
|
||||
export {
|
||||
load
|
||||
};
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
import { c as create_ssr_component, b as each, e as escape } from "../../../chunks/ssr.js";
|
||||
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
|
||||
let { data } = $$props;
|
||||
let posts = data.posts;
|
||||
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
|
||||
$$bindings.data(data);
|
||||
return `<h1 data-svelte-h="svelte-s9fqzi">Blog roll!</h1> ${each(posts, (post) => {
|
||||
return `<h2>${escape(post.title.rendered)}</h2>`;
|
||||
})}`;
|
||||
});
|
||||
export {
|
||||
Page as default
|
||||
};
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
import { e as error } from "../../../../chunks/index.js";
|
||||
function load({ params }) {
|
||||
const posts = fetch("https://uncommonbio.co/wp-json/wp/v2/posts/").then((r) => r.json().catch((err) => {
|
||||
console.log(err, params);
|
||||
}));
|
||||
if (!posts)
|
||||
throw error(404);
|
||||
return {
|
||||
posts
|
||||
};
|
||||
}
|
||||
export {
|
||||
load
|
||||
};
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
import { c as create_ssr_component } from "../../../../chunks/ssr.js";
|
||||
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
|
||||
let { data } = $$props;
|
||||
JSON.stringify(data);
|
||||
let dataone = data.posts[1].content.rendered;
|
||||
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
|
||||
$$bindings.data(data);
|
||||
return `<h1 data-svelte-h="svelte-7vdpfc">Blog post</h1> <p><!-- HTML_TAG_START -->${dataone}<!-- HTML_TAG_END --></p>`;
|
||||
});
|
||||
export {
|
||||
Page as default
|
||||
};
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
import { c as create_ssr_component, a as add_attribute } from "../../../chunks/ssr.js";
|
||||
const myImgSrcSetWebp = "/_app/immutable/assets/formo_hero.76612d9f.webp 1344w, /_app/immutable/assets/formo_hero.3c06dcdd.webp 672w, /_app/immutable/assets/formo_hero.bdd89961.webp 336w";
|
||||
const myImg = [
|
||||
"/_app/immutable/assets/formo_hero.10e20058.avif",
|
||||
"/_app/immutable/assets/formo_hero.eb33d576.webp",
|
||||
"/_app/immutable/assets/formo_hero.07fbd4ee.png"
|
||||
];
|
||||
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
|
||||
return `<h1 data-svelte-h="svelte-1igfkj5">hakc</h1> <img${add_attribute("src", myImg, 0)}${add_attribute("srcset", myImgSrcSetWebp, 0)} sizes="(min-width: 768px) 60vw, 100vw" alt="my donkey" width="700">`;
|
||||
});
|
||||
export {
|
||||
Page as default
|
||||
};
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
const fetchMarkdownPosts = async () => {
|
||||
const allPostFiles = /* @__PURE__ */ Object.assign({ "/src/routes/work/md/adidas.md": () => import("../../../chunks/adidas.js"), "/src/routes/work/md/formo.md": () => import("../../../chunks/formo.js"), "/src/routes/work/md/jpl.md": () => import("../../../chunks/jpl.js") });
|
||||
const iterablePostFiles = Object.entries(allPostFiles);
|
||||
const allPosts = await Promise.all(
|
||||
iterablePostFiles.map(async ([path, resolver]) => {
|
||||
const postPath = path.slice(11, -3).replace("work/md/", "work/");
|
||||
const data = await resolver();
|
||||
const postData = data;
|
||||
const content = postData.default.render();
|
||||
return {
|
||||
meta: postData.metadata,
|
||||
path: postPath,
|
||||
Content: content.html
|
||||
};
|
||||
})
|
||||
);
|
||||
return allPosts;
|
||||
};
|
||||
async function load() {
|
||||
const posts = await fetchMarkdownPosts();
|
||||
if (!posts)
|
||||
console.error("No posts found");
|
||||
return {
|
||||
posts
|
||||
};
|
||||
}
|
||||
export {
|
||||
load
|
||||
};
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
import { c as create_ssr_component, o as onDestroy, a as add_attribute, b as each, v as validate_component, e as escape } from "../../../chunks/ssr.js";
|
||||
import "pixi.js";
|
||||
import "pixi-filters";
|
||||
import { w as workbulge } from "../../../chunks/stores2.js";
|
||||
import { C as CldImage } from "../../../chunks/CldImage.js";
|
||||
const WorkCanvas_svelte_svelte_type_style_lang = "";
|
||||
const css$1 = {
|
||||
code: "canvas.svelte-1819g2x{position:fixed;top:0;left:0;z-index:-1}",
|
||||
map: null
|
||||
};
|
||||
const WorkCanvas = create_ssr_component(($$result, $$props, $$bindings, slots) => {
|
||||
let { textsToCanvas = [] } = $$props;
|
||||
let { imgsToCanvas = [] } = $$props;
|
||||
let { bulgeFactor = 0.15 } = $$props;
|
||||
let canvas;
|
||||
onDestroy(() => {
|
||||
});
|
||||
if ($$props.textsToCanvas === void 0 && $$bindings.textsToCanvas && textsToCanvas !== void 0)
|
||||
$$bindings.textsToCanvas(textsToCanvas);
|
||||
if ($$props.imgsToCanvas === void 0 && $$bindings.imgsToCanvas && imgsToCanvas !== void 0)
|
||||
$$bindings.imgsToCanvas(imgsToCanvas);
|
||||
if ($$props.bulgeFactor === void 0 && $$bindings.bulgeFactor && bulgeFactor !== void 0)
|
||||
$$bindings.bulgeFactor(bulgeFactor);
|
||||
$$result.css.add(css$1);
|
||||
return `<canvas class="svelte-1819g2x"${add_attribute("this", canvas, 0)}></canvas>`;
|
||||
});
|
||||
workbulge.subscribe((value) => {
|
||||
});
|
||||
const _page_svelte_svelte_type_style_lang = "";
|
||||
const css = {
|
||||
code: "h1.svelte-1wmqw8p.svelte-1wmqw8p{font-size:16vw;font-style:italic;margin:0 0 0.5em 0;letter-spacing:-0.04em;text-align:center;position:fixed;top:0;width:100%;visibility:hidden;transition:all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)}@media screen and (min-width: 768px){h1.svelte-1wmqw8p.svelte-1wmqw8p{font-size:7vw}}h1.svelte-1wmqw8p span.svelte-1wmqw8p{display:inline-block;padding:0 0.25em}h2.svelte-1wmqw8p.svelte-1wmqw8p{line-height:1.1;letter-spacing:-0.025em;font-size:2.5vw;opacity:0;position:absolute;left:0.5em;bottom:0.5em;transform:scale(0.8) translateY(100%);margin:0;padding:0.1em 0.4em 0.2em 0.4em;text-align:center;transform-origin:center center;width:auto;margin:0;background-color:var(--color-bg);color:var(--color-text);transition:all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)}.works.svelte-1wmqw8p .work:not(.active):hover h2.svelte-1wmqw8p{opacity:1;transform:scale(1) translateY(0)}.works.svelte-1wmqw8p.svelte-1wmqw8p{padding:15vw 0.5em 0.5em 0.5em;display:flex;gap:0.25em;flex-wrap:wrap}@media screen and (min-width: 768px){.works.svelte-1wmqw8p.svelte-1wmqw8p{gap:0.25em;padding:8.5vw 0.5em 0.5em 0.5em;width:100%;max-width:1200px;margin:0 auto;padding-bottom:20svh}}.work.svelte-1wmqw8p.svelte-1wmqw8p{flex:0 0 calc(50% - 0.125em);display:block;position:relative;padding:0;transition:all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);text-decoration:none;overflow:hidden}@media screen and (min-width: 768px){.work.svelte-1wmqw8p.svelte-1wmqw8p{flex:0 0 calc(33% - 0.125em)}}.work img{width:100%;height:auto;aspect-ratio:var(--aspect-ratio-heroes);object-fit:fill;visibility:hidden;display:block}",
|
||||
map: null
|
||||
};
|
||||
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
|
||||
let { data } = $$props;
|
||||
let canvasTextElems;
|
||||
let canvasImgElems;
|
||||
let bulge = { factor: 0 };
|
||||
workbulge.subscribe((val) => {
|
||||
bulge.factor = val;
|
||||
});
|
||||
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
|
||||
$$bindings.data(data);
|
||||
$$result.css.add(css);
|
||||
return `<h1 class="headline svelte-1wmqw8p" data-svelte-h="svelte-1us57h5"><span class="svelte-1wmqw8p">Casestudies</span></h1> <div class="works svelte-1wmqw8p">${each(data.posts, (work, i) => {
|
||||
return `<a data-sveltekit-preload-data${add_attribute("href", work.path, 0)} class="work svelte-1wmqw8p">${validate_component(CldImage, "CldImage").$$render(
|
||||
$$result,
|
||||
{
|
||||
src: work.meta.header_bg_image,
|
||||
sizes: "(min-width: 768px) 20vw, 50vw",
|
||||
alt: work.meta.title,
|
||||
width: "2100",
|
||||
height: "1400",
|
||||
objectFit: "fill",
|
||||
loading: i < 10 ? "eager" : "lazy"
|
||||
},
|
||||
{},
|
||||
{}
|
||||
)} <h2 class="svelte-1wmqw8p">${escape(work.meta.title)}</h2> </a>`;
|
||||
})}</div> ${validate_component(WorkCanvas, "WorkCanvas").$$render(
|
||||
$$result,
|
||||
{
|
||||
textsToCanvas: canvasTextElems,
|
||||
imgsToCanvas: canvasImgElems,
|
||||
bulgeFactor: bulge.factor
|
||||
},
|
||||
{},
|
||||
{}
|
||||
)}`;
|
||||
});
|
||||
export {
|
||||
Page as default
|
||||
};
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
const __variableDynamicImportRuntimeHelper = (glob, path) => {
|
||||
const v = glob[path];
|
||||
if (v) {
|
||||
return typeof v === "function" ? v() : Promise.resolve(v);
|
||||
}
|
||||
return new Promise((_, reject) => {
|
||||
(typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(reject.bind(null, new Error("Unknown variable dynamic import: " + path)));
|
||||
});
|
||||
};
|
||||
async function load({ params }) {
|
||||
try {
|
||||
const post = await __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../md/adidas.md": () => import("../../../../chunks/adidas.js"), "../md/formo.md": () => import("../../../../chunks/formo.js"), "../md/jpl.md": () => import("../../../../chunks/jpl.js") }), `../md/${params.slug}.md`);
|
||||
const { title, date, header_bg_image, svg, video } = post.metadata;
|
||||
const Content = post.default.render();
|
||||
return {
|
||||
title,
|
||||
date,
|
||||
header_bg_image,
|
||||
svg,
|
||||
video,
|
||||
Content
|
||||
};
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
}
|
||||
export {
|
||||
load
|
||||
};
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
import { c as create_ssr_component, v as validate_component } from "../../../../chunks/ssr.js";
|
||||
import { gsap } from "gsap";
|
||||
import { ScrollTrigger } from "gsap/dist/ScrollTrigger.js";
|
||||
import { C as CldImage } from "../../../../chunks/CldImage.js";
|
||||
const _page_svelte_svelte_type_style_lang = "";
|
||||
const css = {
|
||||
code: ".work.svelte-lxhlir.svelte-lxhlir{width:100vw;min-height:100svh;overflow:hidden;box-sizing:border-box;transform:translateY(100%)}@media screen and (min-width: 768px){.work.svelte-lxhlir.svelte-lxhlir{transform:translateX(100%)}}.subnav.svelte-lxhlir.svelte-lxhlir{position:fixed;top:0;right:0;z-index:4;padding:var(--spacing-outer)}.heromask.svelte-lxhlir.svelte-lxhlir{position:fixed;top:0;left:0;aspect-ratio:var(--aspect-ratio-heroes);width:100%;height:auto;z-index:2;clip-path:polygon(0 0, 100% 0, 100% 100%, 0% 100%)}.heromask img{z-index:0;display:block;position:relative;width:100%;height:100%;aspect-ratio:var(--aspect-ratio-heroes);margin:0;object-fit:fill}.work-content.svelte-lxhlir.svelte-lxhlir{padding:0 var(--spacing-outer);padding-top:calc(66.6vw + 1em);position:relative;z-index:1;color:var(--color-text)}.work-content.svelte-lxhlir .svelte-lxhlir:last-child{margin-bottom:100px}@media screen and (min-width: 768px){.work-content.svelte-lxhlir.svelte-lxhlir{margin-left:40vw;max-width:60vw;padding-top:calc(3 * var(--spacing-outer));padding-left:calc(var(--spacing-outer) * 1.5);padding-right:calc(var(--spacing-outer) * 2.5)}}@media screen and (min-width: 768px){.work-content-text.svelte-lxhlir.svelte-lxhlir{border-top:1px solid var(--color-text)}}h1.svelte-lxhlir.svelte-lxhlir{position:relative;z-index:1;margin:0}@media screen and (min-width: 768px){h1.svelte-lxhlir.svelte-lxhlir{padding:0 0 1em 0}}h1.svelte-lxhlir .name.svelte-lxhlir{display:none}h1.svelte-lxhlir .svg-logo.svelte-lxhlir svg{width:auto;height:auto;max-width:250px;max-height:80px;margin-bottom:1em}@media screen and (min-width: 768px){h1.svelte-lxhlir .svg-logo.svelte-lxhlir svg{max-width:400px;max-height:200px}}.header-nav{transition:all 0.3s cubic-bezier(0.075, 0.82, 0.165, 1)}.work .header-nav{transform:translateY(100%)}",
|
||||
map: null
|
||||
};
|
||||
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
|
||||
let { data } = $$props;
|
||||
gsap.registerPlugin(ScrollTrigger);
|
||||
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
|
||||
$$bindings.data(data);
|
||||
$$result.css.add(css);
|
||||
return `<div class="heromask svelte-lxhlir">${validate_component(CldImage, "CldImage").$$render(
|
||||
$$result,
|
||||
{
|
||||
src: data.header_bg_image,
|
||||
alt: data.title,
|
||||
sizes: "100vw",
|
||||
width: 2100,
|
||||
height: 1400,
|
||||
placeholder: "blur",
|
||||
loading: "eager",
|
||||
objectFit: "fill"
|
||||
},
|
||||
{},
|
||||
{}
|
||||
)}</div> <div class="subnav svelte-lxhlir" data-svelte-h="svelte-ywmcpa"><a href="/work" class="subnav-item">← Back</a></div> <article class="work svelte-lxhlir">${``} </article>`;
|
||||
});
|
||||
export {
|
||||
Page as default
|
||||
};
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,9 +0,0 @@
|
|||
import { g, o, d, e, s, c } from "./chunks/internal.js";
|
||||
export {
|
||||
g as get_hooks,
|
||||
o as options,
|
||||
d as set_assets,
|
||||
e as set_building,
|
||||
s as set_private_env,
|
||||
c as set_public_env
|
||||
};
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
export const manifest = (() => {
|
||||
function __memo(fn) {
|
||||
let value;
|
||||
return () => value ??= (value = fn());
|
||||
}
|
||||
|
||||
return {
|
||||
appDir: "_app",
|
||||
appPath: "_app",
|
||||
assets: new Set([".DS_Store","cursor.png","cursor.svg","favicon.png","pointer.png","pointer.svg","work/.DS_Store","work/adidas/adidas_hero.jpg","work/formo/formo-rec.mp4","work/formo/formo-rec.webm","work/formo/formo_hero.png","work/jpl/jpl_hero.jpg"]),
|
||||
mimeTypes: {".png":"image/png",".svg":"image/svg+xml",".jpg":"image/jpeg",".mp4":"video/mp4",".webm":"video/webm"},
|
||||
_: {
|
||||
client: {"start":"_app/immutable/entry/start.0e966e92.js","app":"_app/immutable/entry/app.fea8eb32.js","imports":["_app/immutable/entry/start.0e966e92.js","_app/immutable/chunks/scheduler.8b80e243.js","_app/immutable/chunks/singletons.a1418874.js","_app/immutable/entry/app.fea8eb32.js","_app/immutable/chunks/scheduler.8b80e243.js","_app/immutable/chunks/index.b20febff.js"],"stylesheets":[],"fonts":[]},
|
||||
nodes: [
|
||||
__memo(() => import('./nodes/0.js')),
|
||||
__memo(() => import('./nodes/1.js')),
|
||||
__memo(() => import('./nodes/2.js')),
|
||||
__memo(() => import('./nodes/3.js')),
|
||||
__memo(() => import('./nodes/4.js')),
|
||||
__memo(() => import('./nodes/5.js')),
|
||||
__memo(() => import('./nodes/6.js')),
|
||||
__memo(() => import('./nodes/7.js'))
|
||||
],
|
||||
routes: [
|
||||
{
|
||||
id: "/",
|
||||
pattern: /^\/$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 2 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/blog",
|
||||
pattern: /^\/blog\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 3 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/blog/[slug]",
|
||||
pattern: /^\/blog\/([^/]+?)\/?$/,
|
||||
params: [{"name":"slug","optional":false,"rest":false,"chained":false}],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 4 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/test",
|
||||
pattern: /^\/test\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 5 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/work",
|
||||
pattern: /^\/work\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 6 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/work/[slug]",
|
||||
pattern: /^\/work\/([^/]+?)\/?$/,
|
||||
params: [{"name":"slug","optional":false,"rest":false,"chained":false}],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 7 },
|
||||
endpoint: null
|
||||
}
|
||||
],
|
||||
matchers: async () => {
|
||||
|
||||
return { };
|
||||
}
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
export const manifest = (() => {
|
||||
function __memo(fn) {
|
||||
let value;
|
||||
return () => value ??= (value = fn());
|
||||
}
|
||||
|
||||
return {
|
||||
appDir: "_app",
|
||||
appPath: "_app",
|
||||
assets: new Set([".DS_Store","cursor.png","cursor.svg","favicon.png","pointer.png","pointer.svg","work/.DS_Store","work/adidas/adidas_hero.jpg","work/formo/formo-rec.mp4","work/formo/formo-rec.webm","work/formo/formo_hero.png","work/jpl/jpl_hero.jpg"]),
|
||||
mimeTypes: {".png":"image/png",".svg":"image/svg+xml",".jpg":"image/jpeg",".mp4":"video/mp4",".webm":"video/webm"},
|
||||
_: {
|
||||
client: {"start":"_app/immutable/entry/start.0e966e92.js","app":"_app/immutable/entry/app.fea8eb32.js","imports":["_app/immutable/entry/start.0e966e92.js","_app/immutable/chunks/scheduler.8b80e243.js","_app/immutable/chunks/singletons.a1418874.js","_app/immutable/entry/app.fea8eb32.js","_app/immutable/chunks/scheduler.8b80e243.js","_app/immutable/chunks/index.b20febff.js"],"stylesheets":[],"fonts":[]},
|
||||
nodes: [
|
||||
__memo(() => import('./nodes/0.js')),
|
||||
__memo(() => import('./nodes/1.js')),
|
||||
__memo(() => import('./nodes/2.js')),
|
||||
__memo(() => import('./nodes/3.js')),
|
||||
__memo(() => import('./nodes/4.js')),
|
||||
__memo(() => import('./nodes/5.js')),
|
||||
__memo(() => import('./nodes/6.js')),
|
||||
__memo(() => import('./nodes/7.js'))
|
||||
],
|
||||
routes: [
|
||||
{
|
||||
id: "/",
|
||||
pattern: /^\/$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 2 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/blog",
|
||||
pattern: /^\/blog\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 3 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/blog/[slug]",
|
||||
pattern: /^\/blog\/([^/]+?)\/?$/,
|
||||
params: [{"name":"slug","optional":false,"rest":false,"chained":false}],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 4 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/test",
|
||||
pattern: /^\/test\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 5 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/work",
|
||||
pattern: /^\/work\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 6 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/work/[slug]",
|
||||
pattern: /^\/work\/([^/]+?)\/?$/,
|
||||
params: [{"name":"slug","optional":false,"rest":false,"chained":false}],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 7 },
|
||||
endpoint: null
|
||||
}
|
||||
],
|
||||
matchers: async () => {
|
||||
|
||||
return { };
|
||||
}
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
import * as universal from '../entries/pages/_layout.ts.js';
|
||||
|
||||
export const index = 0;
|
||||
let component_cache;
|
||||
export const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;
|
||||
export { universal };
|
||||
export const universal_id = "src/routes/+layout.ts";
|
||||
export const imports = ["_app/immutable/nodes/0.87056fa6.js","_app/immutable/chunks/stores.0036eca8.js","_app/immutable/chunks/singletons.a1418874.js","_app/immutable/chunks/scheduler.8b80e243.js","_app/immutable/chunks/index.b20febff.js","_app/immutable/chunks/index.4db78ffb.js","_app/immutable/chunks/stores.b869df48.js"];
|
||||
export const stylesheets = ["_app/immutable/assets/0.bc59ba78.css"];
|
||||
export const fonts = [];
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
|
||||
|
||||
export const index = 1;
|
||||
let component_cache;
|
||||
export const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;
|
||||
export const imports = ["_app/immutable/nodes/1.2790111f.js","_app/immutable/chunks/scheduler.8b80e243.js","_app/immutable/chunks/index.b20febff.js","_app/immutable/chunks/stores.b869df48.js","_app/immutable/chunks/singletons.a1418874.js"];
|
||||
export const stylesheets = [];
|
||||
export const fonts = [];
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
|
||||
|
||||
export const index = 2;
|
||||
let component_cache;
|
||||
export const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js')).default;
|
||||
export const imports = ["_app/immutable/nodes/2.7bf3e2ea.js","_app/immutable/chunks/scheduler.8b80e243.js","_app/immutable/chunks/index.b20febff.js","_app/immutable/chunks/createCanvasImg.1e4cbea9.js","_app/immutable/chunks/ScrollTrigger.96597ec4.js","_app/immutable/chunks/index.4db78ffb.js"];
|
||||
export const stylesheets = ["_app/immutable/assets/2.4c80624d.css"];
|
||||
export const fonts = [];
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
import * as server from '../entries/pages/blog/_page.server.ts.js';
|
||||
|
||||
export const index = 3;
|
||||
let component_cache;
|
||||
export const component = async () => component_cache ??= (await import('../entries/pages/blog/_page.svelte.js')).default;
|
||||
export { server };
|
||||
export const server_id = "src/routes/blog/+page.server.ts";
|
||||
export const imports = ["_app/immutable/nodes/3.61bedb1a.js","_app/immutable/chunks/scheduler.8b80e243.js","_app/immutable/chunks/index.b20febff.js","_app/immutable/chunks/each.e59479a4.js"];
|
||||
export const stylesheets = [];
|
||||
export const fonts = [];
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
import * as server from '../entries/pages/blog/_slug_/_page.server.ts.js';
|
||||
|
||||
export const index = 4;
|
||||
let component_cache;
|
||||
export const component = async () => component_cache ??= (await import('../entries/pages/blog/_slug_/_page.svelte.js')).default;
|
||||
export { server };
|
||||
export const server_id = "src/routes/blog/[slug]/+page.server.ts";
|
||||
export const imports = ["_app/immutable/nodes/4.d8704671.js","_app/immutable/chunks/scheduler.8b80e243.js","_app/immutable/chunks/index.b20febff.js"];
|
||||
export const stylesheets = [];
|
||||
export const fonts = [];
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
|
||||
|
||||
export const index = 5;
|
||||
let component_cache;
|
||||
export const component = async () => component_cache ??= (await import('../entries/pages/test/_page.svelte.js')).default;
|
||||
export const imports = ["_app/immutable/nodes/5.da918b8f.js","_app/immutable/chunks/scheduler.8b80e243.js","_app/immutable/chunks/index.b20febff.js"];
|
||||
export const stylesheets = [];
|
||||
export const fonts = [];
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
import * as server from '../entries/pages/work/_page.server.ts.js';
|
||||
|
||||
export const index = 6;
|
||||
let component_cache;
|
||||
export const component = async () => component_cache ??= (await import('../entries/pages/work/_page.svelte.js')).default;
|
||||
export { server };
|
||||
export const server_id = "src/routes/work/+page.server.ts";
|
||||
export const imports = ["_app/immutable/nodes/6.82cbcbbe.js","_app/immutable/chunks/scheduler.8b80e243.js","_app/immutable/chunks/index.b20febff.js","_app/immutable/chunks/each.e59479a4.js","_app/immutable/chunks/createCanvasImg.1e4cbea9.js","_app/immutable/chunks/ScrollTrigger.96597ec4.js","_app/immutable/chunks/index.4db78ffb.js","_app/immutable/chunks/singletons.a1418874.js","_app/immutable/chunks/stores.0036eca8.js","_app/immutable/chunks/CldImage.7a2ca419.js"];
|
||||
export const stylesheets = ["_app/immutable/assets/6.21634584.css"];
|
||||
export const fonts = [];
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
import * as server from '../entries/pages/work/_slug_/_page.server.ts.js';
|
||||
|
||||
export const index = 7;
|
||||
let component_cache;
|
||||
export const component = async () => component_cache ??= (await import('../entries/pages/work/_slug_/_page.svelte.js')).default;
|
||||
export { server };
|
||||
export const server_id = "src/routes/work/[slug]/+page.server.ts";
|
||||
export const imports = ["_app/immutable/nodes/7.3d870ca5.js","_app/immutable/chunks/scheduler.8b80e243.js","_app/immutable/chunks/index.b20febff.js","_app/immutable/chunks/index.4db78ffb.js","_app/immutable/chunks/ScrollTrigger.96597ec4.js","_app/immutable/chunks/CldImage.7a2ca419.js"];
|
||||
export const stylesheets = ["_app/immutable/assets/7.9f510d70.css"];
|
||||
export const fonts = [];
|
||||
|
|
@ -1,372 +0,0 @@
|
|||
import './shims.js';
|
||||
import { Server } from './server/index.js';
|
||||
import 'node:stream/web';
|
||||
import 'node:buffer';
|
||||
import 'node:crypto';
|
||||
import 'assert';
|
||||
import 'net';
|
||||
import 'http';
|
||||
import 'stream';
|
||||
import 'buffer';
|
||||
import 'util';
|
||||
import 'querystring';
|
||||
import 'stream/web';
|
||||
import 'worker_threads';
|
||||
import 'perf_hooks';
|
||||
import 'util/types';
|
||||
import 'events';
|
||||
import 'tls';
|
||||
import 'async_hooks';
|
||||
import 'console';
|
||||
import 'url';
|
||||
import 'zlib';
|
||||
import 'string_decoder';
|
||||
import 'crypto';
|
||||
import 'diagnostics_channel';
|
||||
|
||||
var setCookie = {exports: {}};
|
||||
|
||||
var defaultParseOptions = {
|
||||
decodeValues: true,
|
||||
map: false,
|
||||
silent: false,
|
||||
};
|
||||
|
||||
function isNonEmptyString(str) {
|
||||
return typeof str === "string" && !!str.trim();
|
||||
}
|
||||
|
||||
function parseString(setCookieValue, options) {
|
||||
var parts = setCookieValue.split(";").filter(isNonEmptyString);
|
||||
|
||||
var nameValuePairStr = parts.shift();
|
||||
var parsed = parseNameValuePair(nameValuePairStr);
|
||||
var name = parsed.name;
|
||||
var value = parsed.value;
|
||||
|
||||
options = options
|
||||
? Object.assign({}, defaultParseOptions, options)
|
||||
: defaultParseOptions;
|
||||
|
||||
try {
|
||||
value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value
|
||||
} catch (e) {
|
||||
console.error(
|
||||
"set-cookie-parser encountered an error while decoding a cookie with value '" +
|
||||
value +
|
||||
"'. Set options.decodeValues to false to disable this feature.",
|
||||
e
|
||||
);
|
||||
}
|
||||
|
||||
var cookie = {
|
||||
name: name,
|
||||
value: value,
|
||||
};
|
||||
|
||||
parts.forEach(function (part) {
|
||||
var sides = part.split("=");
|
||||
var key = sides.shift().trimLeft().toLowerCase();
|
||||
var value = sides.join("=");
|
||||
if (key === "expires") {
|
||||
cookie.expires = new Date(value);
|
||||
} else if (key === "max-age") {
|
||||
cookie.maxAge = parseInt(value, 10);
|
||||
} else if (key === "secure") {
|
||||
cookie.secure = true;
|
||||
} else if (key === "httponly") {
|
||||
cookie.httpOnly = true;
|
||||
} else if (key === "samesite") {
|
||||
cookie.sameSite = value;
|
||||
} else {
|
||||
cookie[key] = value;
|
||||
}
|
||||
});
|
||||
|
||||
return cookie;
|
||||
}
|
||||
|
||||
function parseNameValuePair(nameValuePairStr) {
|
||||
// Parses name-value-pair according to rfc6265bis draft
|
||||
|
||||
var name = "";
|
||||
var value = "";
|
||||
var nameValueArr = nameValuePairStr.split("=");
|
||||
if (nameValueArr.length > 1) {
|
||||
name = nameValueArr.shift();
|
||||
value = nameValueArr.join("="); // everything after the first =, joined by a "=" if there was more than one part
|
||||
} else {
|
||||
value = nameValuePairStr;
|
||||
}
|
||||
|
||||
return { name: name, value: value };
|
||||
}
|
||||
|
||||
function parse(input, options) {
|
||||
options = options
|
||||
? Object.assign({}, defaultParseOptions, options)
|
||||
: defaultParseOptions;
|
||||
|
||||
if (!input) {
|
||||
if (!options.map) {
|
||||
return [];
|
||||
} else {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
if (input.headers) {
|
||||
if (typeof input.headers.getSetCookie === "function") {
|
||||
// for fetch responses - they combine headers of the same type in the headers array,
|
||||
// but getSetCookie returns an uncombined array
|
||||
input = input.headers.getSetCookie();
|
||||
} else if (input.headers["set-cookie"]) {
|
||||
// fast-path for node.js (which automatically normalizes header names to lower-case
|
||||
input = input.headers["set-cookie"];
|
||||
} else {
|
||||
// slow-path for other environments - see #25
|
||||
var sch =
|
||||
input.headers[
|
||||
Object.keys(input.headers).find(function (key) {
|
||||
return key.toLowerCase() === "set-cookie";
|
||||
})
|
||||
];
|
||||
// warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36
|
||||
if (!sch && input.headers.cookie && !options.silent) {
|
||||
console.warn(
|
||||
"Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."
|
||||
);
|
||||
}
|
||||
input = sch;
|
||||
}
|
||||
}
|
||||
if (!Array.isArray(input)) {
|
||||
input = [input];
|
||||
}
|
||||
|
||||
options = options
|
||||
? Object.assign({}, defaultParseOptions, options)
|
||||
: defaultParseOptions;
|
||||
|
||||
if (!options.map) {
|
||||
return input.filter(isNonEmptyString).map(function (str) {
|
||||
return parseString(str, options);
|
||||
});
|
||||
} else {
|
||||
var cookies = {};
|
||||
return input.filter(isNonEmptyString).reduce(function (cookies, str) {
|
||||
var cookie = parseString(str, options);
|
||||
cookies[cookie.name] = cookie;
|
||||
return cookies;
|
||||
}, cookies);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas
|
||||
that are within a single set-cookie field-value, such as in the Expires portion.
|
||||
|
||||
This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2
|
||||
Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128
|
||||
React Native's fetch does this for *every* header, including set-cookie.
|
||||
|
||||
Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25
|
||||
Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation
|
||||
*/
|
||||
function splitCookiesString(cookiesString) {
|
||||
if (Array.isArray(cookiesString)) {
|
||||
return cookiesString;
|
||||
}
|
||||
if (typeof cookiesString !== "string") {
|
||||
return [];
|
||||
}
|
||||
|
||||
var cookiesStrings = [];
|
||||
var pos = 0;
|
||||
var start;
|
||||
var ch;
|
||||
var lastComma;
|
||||
var nextStart;
|
||||
var cookiesSeparatorFound;
|
||||
|
||||
function skipWhitespace() {
|
||||
while (pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))) {
|
||||
pos += 1;
|
||||
}
|
||||
return pos < cookiesString.length;
|
||||
}
|
||||
|
||||
function notSpecialChar() {
|
||||
ch = cookiesString.charAt(pos);
|
||||
|
||||
return ch !== "=" && ch !== ";" && ch !== ",";
|
||||
}
|
||||
|
||||
while (pos < cookiesString.length) {
|
||||
start = pos;
|
||||
cookiesSeparatorFound = false;
|
||||
|
||||
while (skipWhitespace()) {
|
||||
ch = cookiesString.charAt(pos);
|
||||
if (ch === ",") {
|
||||
// ',' is a cookie separator if we have later first '=', not ';' or ','
|
||||
lastComma = pos;
|
||||
pos += 1;
|
||||
|
||||
skipWhitespace();
|
||||
nextStart = pos;
|
||||
|
||||
while (pos < cookiesString.length && notSpecialChar()) {
|
||||
pos += 1;
|
||||
}
|
||||
|
||||
// currently special character
|
||||
if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") {
|
||||
// we found cookies separator
|
||||
cookiesSeparatorFound = true;
|
||||
// pos is inside the next cookie, so back up and return it.
|
||||
pos = nextStart;
|
||||
cookiesStrings.push(cookiesString.substring(start, lastComma));
|
||||
start = pos;
|
||||
} else {
|
||||
// in param ',' or param separator ';',
|
||||
// we continue from that comma
|
||||
pos = lastComma + 1;
|
||||
}
|
||||
} else {
|
||||
pos += 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (!cookiesSeparatorFound || pos >= cookiesString.length) {
|
||||
cookiesStrings.push(cookiesString.substring(start, cookiesString.length));
|
||||
}
|
||||
}
|
||||
|
||||
return cookiesStrings;
|
||||
}
|
||||
|
||||
setCookie.exports = parse;
|
||||
setCookie.exports.parse = parse;
|
||||
setCookie.exports.parseString = parseString;
|
||||
var splitCookiesString_1 = setCookie.exports.splitCookiesString = splitCookiesString;
|
||||
|
||||
/**
|
||||
* Splits headers into two categories: single value and multi value
|
||||
* @param {Headers} headers
|
||||
* @returns {{
|
||||
* headers: Record<string, string>,
|
||||
* multiValueHeaders: Record<string, string[]>
|
||||
* }}
|
||||
*/
|
||||
function split_headers(headers) {
|
||||
/** @type {Record<string, string>} */
|
||||
const h = {};
|
||||
|
||||
/** @type {Record<string, string[]>} */
|
||||
const m = {};
|
||||
|
||||
headers.forEach((value, key) => {
|
||||
if (key === 'set-cookie') {
|
||||
if (!m[key]) m[key] = [];
|
||||
m[key].push(...splitCookiesString_1(value));
|
||||
} else {
|
||||
h[key] = value;
|
||||
}
|
||||
});
|
||||
|
||||
return {
|
||||
headers: h,
|
||||
multiValueHeaders: m
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {import('@sveltejs/kit').SSRManifest} manifest
|
||||
* @returns {import('@netlify/functions').Handler}
|
||||
*/
|
||||
function init(manifest) {
|
||||
const server = new Server(manifest);
|
||||
|
||||
let init_promise = server.init({
|
||||
env: process.env
|
||||
});
|
||||
|
||||
return async (event, context) => {
|
||||
if (init_promise !== null) {
|
||||
await init_promise;
|
||||
init_promise = null;
|
||||
}
|
||||
|
||||
const response = await server.respond(to_request(event), {
|
||||
platform: { context },
|
||||
getClientAddress() {
|
||||
return event.headers['x-nf-client-connection-ip'];
|
||||
}
|
||||
});
|
||||
|
||||
const partial_response = {
|
||||
statusCode: response.status,
|
||||
...split_headers(response.headers)
|
||||
};
|
||||
|
||||
if (!is_text(response.headers.get('content-type'))) {
|
||||
// Function responses should be strings (or undefined), and responses with binary
|
||||
// content should be base64 encoded and set isBase64Encoded to true.
|
||||
// https://github.com/netlify/functions/blob/main/src/function/response.ts
|
||||
return {
|
||||
...partial_response,
|
||||
isBase64Encoded: true,
|
||||
body: Buffer.from(await response.arrayBuffer()).toString('base64')
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
...partial_response,
|
||||
body: await response.text()
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {import('@netlify/functions').HandlerEvent} event
|
||||
* @returns {Request}
|
||||
*/
|
||||
function to_request(event) {
|
||||
const { httpMethod, headers, rawUrl, body, isBase64Encoded } = event;
|
||||
|
||||
/** @type {RequestInit} */
|
||||
const init = {
|
||||
method: httpMethod,
|
||||
headers: new Headers(headers)
|
||||
};
|
||||
|
||||
if (httpMethod !== 'GET' && httpMethod !== 'HEAD') {
|
||||
const encoding = isBase64Encoded ? 'base64' : 'utf-8';
|
||||
init.body = typeof body === 'string' ? Buffer.from(body, encoding) : body;
|
||||
}
|
||||
|
||||
return new Request(rawUrl, init);
|
||||
}
|
||||
|
||||
const text_types = new Set([
|
||||
'application/xml',
|
||||
'application/json',
|
||||
'application/x-www-form-urlencoded',
|
||||
'multipart/form-data'
|
||||
]);
|
||||
|
||||
/**
|
||||
* Decides how the body should be parsed based on its mime type
|
||||
*
|
||||
* @param {string | undefined | null} content_type The `content-type` header of a request/response.
|
||||
* @returns {boolean}
|
||||
*/
|
||||
function is_text(content_type) {
|
||||
if (!content_type) return true; // defaults to json
|
||||
const type = content_type.split(';')[0].toLowerCase(); // get the mime type
|
||||
|
||||
return type.startsWith('text/') || type.endsWith('+xml') || text_types.has(type);
|
||||
}
|
||||
|
||||
export { init };
|
||||
20414
.netlify/shims.js
20414
.netlify/shims.js
File diff suppressed because one or more lines are too long
|
|
@ -3,9 +3,5 @@ command = "npm run build"
|
|||
publish = "build"
|
||||
functions = "functions/"
|
||||
|
||||
[[headers]]
|
||||
for = "/*"
|
||||
[headers.values]
|
||||
X-Frame-Options = "SAMEORIGIN"
|
||||
X-XSS-Protection = "0"
|
||||
X-Content-Type-Options = "nosniff"
|
||||
[dev]
|
||||
command = "vite dev"
|
||||
|
|
@ -36,7 +36,9 @@ const config = {
|
|||
'default-src': ['self'],
|
||||
'img-src': ['self', '*.cloudinary.com', 'data:'],
|
||||
'style-src': ['self', 'unsafe-inline', '*.typekit.net'],
|
||||
'script-src': ['self', 'unsafe-eval', 'unsafe-inline']
|
||||
"font-src": ['self', '*.typekit.net'],
|
||||
'script-src': ['self', 'unsafe-eval', 'unsafe-inline'],
|
||||
"upgrade-insecure-requests": true
|
||||
},
|
||||
},
|
||||
// prerender: {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue