lula2 0.6.5-nightly.4 → 0.6.6
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.
- package/dist/_app/immutable/chunks/{DXrzw5vH.js → BAMA-SMn.js} +1 -1
- package/dist/_app/immutable/chunks/{CLKU7xMl.js → BOeu7SQt.js} +1 -1
- package/dist/_app/immutable/chunks/{SkQ03fhi.js → Cd2GriD0.js} +1 -1
- package/dist/_app/immutable/chunks/{CCjXN_pa.js → Cd2O8aQy.js} +1 -1
- package/dist/_app/immutable/chunks/{D7KkMNZk.js → DQTRhwGS.js} +1 -1
- package/dist/_app/immutable/chunks/{Bmfatfij.js → DoNUPQ2F.js} +1 -1
- package/dist/_app/immutable/chunks/{r5h841NE.js → kqS9jm6m.js} +2 -2
- package/dist/_app/immutable/chunks/{4O6_nj87.js → oPg1Ic49.js} +1 -1
- package/dist/_app/immutable/chunks/upmOm7UR.js +1 -0
- package/dist/_app/immutable/entry/{app.DEqpNvcg.js → app.BDCsr7Tu.js} +2 -2
- package/dist/_app/immutable/entry/start.BSicA9mk.js +1 -0
- package/dist/_app/immutable/nodes/{0.CncU4RFX.js → 0.BXkDCIIZ.js} +1 -1
- package/dist/_app/immutable/nodes/{1.DhWx22M1.js → 1.DFZg9yTS.js} +1 -1
- package/dist/_app/immutable/nodes/{2.BO6peQzm.js → 2.B5xxJrgT.js} +1 -1
- package/dist/_app/immutable/nodes/{3.B8KbC43m.js → 3.CGvQYnYA.js} +1 -1
- package/dist/_app/immutable/nodes/{4.DyQPBHnU.js → 4.BZzneBBv.js} +1 -1
- package/dist/_app/version.json +1 -1
- package/dist/cli/commands/crawl.js +11 -5
- package/dist/index.html +10 -10
- package/dist/index.js +11 -5
- package/package.json +21 -20
- package/dist/_app/immutable/chunks/DuUZ8ki1.js +0 -1
- package/dist/_app/immutable/entry/start.Dfo0VaTH.js +0 -1
package/dist/index.html
CHANGED
|
@@ -6,28 +6,28 @@
|
|
|
6
6
|
<link rel="icon" href="/lula.png" />
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
8
8
|
|
|
9
|
-
<link rel="modulepreload" href="/_app/immutable/entry/start.
|
|
10
|
-
<link rel="modulepreload" href="/_app/immutable/chunks/
|
|
11
|
-
<link rel="modulepreload" href="/_app/immutable/chunks/
|
|
12
|
-
<link rel="modulepreload" href="/_app/immutable/entry/app.
|
|
9
|
+
<link rel="modulepreload" href="/_app/immutable/entry/start.BSicA9mk.js">
|
|
10
|
+
<link rel="modulepreload" href="/_app/immutable/chunks/upmOm7UR.js">
|
|
11
|
+
<link rel="modulepreload" href="/_app/immutable/chunks/kqS9jm6m.js">
|
|
12
|
+
<link rel="modulepreload" href="/_app/immutable/entry/app.BDCsr7Tu.js">
|
|
13
13
|
<link rel="modulepreload" href="/_app/immutable/chunks/DsnmJJEf.js">
|
|
14
|
-
<link rel="modulepreload" href="/_app/immutable/chunks/
|
|
15
|
-
<link rel="modulepreload" href="/_app/immutable/chunks/
|
|
16
|
-
<link rel="modulepreload" href="/_app/immutable/chunks/
|
|
14
|
+
<link rel="modulepreload" href="/_app/immutable/chunks/DoNUPQ2F.js">
|
|
15
|
+
<link rel="modulepreload" href="/_app/immutable/chunks/DQTRhwGS.js">
|
|
16
|
+
<link rel="modulepreload" href="/_app/immutable/chunks/oPg1Ic49.js">
|
|
17
17
|
</head>
|
|
18
18
|
<body data-sveltekit-preload-data="hover">
|
|
19
19
|
<div style="display: contents">
|
|
20
20
|
<script>
|
|
21
21
|
{
|
|
22
|
-
|
|
22
|
+
__sveltekit_nen0in = {
|
|
23
23
|
base: ""
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
const element = document.currentScript.parentElement;
|
|
27
27
|
|
|
28
28
|
Promise.all([
|
|
29
|
-
import("/_app/immutable/entry/start.
|
|
30
|
-
import("/_app/immutable/entry/app.
|
|
29
|
+
import("/_app/immutable/entry/start.BSicA9mk.js"),
|
|
30
|
+
import("/_app/immutable/entry/app.BDCsr7Tu.js")
|
|
31
31
|
]).then(([kit, app]) => {
|
|
32
32
|
kit.start(app, element);
|
|
33
33
|
});
|
package/dist/index.js
CHANGED
|
@@ -5693,7 +5693,7 @@ Lula reviewed ${filesCount} files changed that affect compliance.
|
|
|
5693
5693
|
`;
|
|
5694
5694
|
}
|
|
5695
5695
|
async function analyzeDeletedFiles(context) {
|
|
5696
|
-
const { octokit, owner, repo, files } = context;
|
|
5696
|
+
const { octokit, owner, repo, baseSha, files } = context;
|
|
5697
5697
|
const deletedFilesWithAnnotations = [];
|
|
5698
5698
|
for (const file of files) {
|
|
5699
5699
|
if (file.status === "removed") {
|
|
@@ -5703,7 +5703,7 @@ async function analyzeDeletedFiles(context) {
|
|
|
5703
5703
|
owner,
|
|
5704
5704
|
repo,
|
|
5705
5705
|
path: file.filename,
|
|
5706
|
-
ref:
|
|
5706
|
+
ref: baseSha
|
|
5707
5707
|
});
|
|
5708
5708
|
if (containsLulaAnnotations(oldText)) {
|
|
5709
5709
|
deletedFilesWithAnnotations.push(file.filename);
|
|
@@ -5804,15 +5804,17 @@ function generateRemovedBlocksContent(filename, removedBlocks, oldText) {
|
|
|
5804
5804
|
return content;
|
|
5805
5805
|
}
|
|
5806
5806
|
async function analyzeModifiedFiles(context) {
|
|
5807
|
-
const { octokit, owner, repo,
|
|
5807
|
+
const { octokit, owner, repo, baseSha, headSha, files } = context;
|
|
5808
5808
|
let changesContent = "";
|
|
5809
5809
|
let hasFindings = false;
|
|
5810
5810
|
for (const file of files) {
|
|
5811
5811
|
if (file.status === "added" || file.status === "removed") continue;
|
|
5812
5812
|
try {
|
|
5813
|
+
const oldPath = file.status === "renamed" && file.previous_filename ? file.previous_filename : file.filename;
|
|
5814
|
+
const newPath = file.filename;
|
|
5813
5815
|
const [oldText, newText] = await Promise.all([
|
|
5814
|
-
fetchRawFileViaAPI({ octokit, owner, repo, path:
|
|
5815
|
-
fetchRawFileViaAPI({ octokit, owner, repo, path:
|
|
5816
|
+
fetchRawFileViaAPI({ octokit, owner, repo, path: oldPath, ref: baseSha }),
|
|
5817
|
+
fetchRawFileViaAPI({ octokit, owner, repo, path: newPath, ref: headSha })
|
|
5816
5818
|
]);
|
|
5817
5819
|
const changedBlocks = getChangedBlocks(oldText, newText);
|
|
5818
5820
|
const removedBlocks = getRemovedBlocks(oldText, newText);
|
|
@@ -5863,6 +5865,8 @@ function crawlCommand() {
|
|
|
5863
5865
|
const octokit = new Octokit({ auth: process.env.GITHUB_TOKEN });
|
|
5864
5866
|
const pr = await octokit.pulls.get({ owner, repo, pull_number });
|
|
5865
5867
|
const prBranch = pr.data.head.ref;
|
|
5868
|
+
const baseSha = pr.data.base.sha;
|
|
5869
|
+
const headSha = pr.data.head.sha;
|
|
5866
5870
|
const { data: files } = await octokit.pulls.listFiles({ owner, repo, pull_number });
|
|
5867
5871
|
const context = {
|
|
5868
5872
|
octokit,
|
|
@@ -5870,6 +5874,8 @@ function crawlCommand() {
|
|
|
5870
5874
|
repo,
|
|
5871
5875
|
pull_number,
|
|
5872
5876
|
prBranch,
|
|
5877
|
+
baseSha,
|
|
5878
|
+
headSha,
|
|
5873
5879
|
files
|
|
5874
5880
|
};
|
|
5875
5881
|
const analysisResult = await performComplianceAnalysis(context);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lula2",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.6",
|
|
4
4
|
"description": "A tool for managing compliance as code in your GitHub repositories.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"lula2": "./dist/lula2"
|
|
@@ -33,6 +33,25 @@
|
|
|
33
33
|
"!dist/**/*.test.js*",
|
|
34
34
|
"!dist/**/*.test.d.ts*"
|
|
35
35
|
],
|
|
36
|
+
"scripts": {
|
|
37
|
+
"dev": "vite dev --port 5173",
|
|
38
|
+
"dev:api": "tsx --watch index.ts --debug ui --port 3000 --no-open-browser",
|
|
39
|
+
"dev:full": "concurrently \"npm run dev:api\" \"npm run dev\"",
|
|
40
|
+
"build": "npm run build:svelte && npm run build:cli && npm run postbuild:cli",
|
|
41
|
+
"build:svelte": "vite build",
|
|
42
|
+
"build:cli": "esbuild index.ts cli/**/*.ts --bundle --platform=node --target=node22 --format=esm --outdir=dist --external:express --external:commander --external:js-yaml --external:yaml --external:isomorphic-git --external:glob --external:open --external:ws --external:cors --external:multer --external:@octokit/rest --external:undici --external:xlsx-republish --external:csv-parse",
|
|
43
|
+
"postbuild:cli": "cp cli-wrapper.mjs dist/lula2 && chmod +x dist/lula2",
|
|
44
|
+
"preview": "vite preview",
|
|
45
|
+
"prepare": "svelte-kit sync || echo ''",
|
|
46
|
+
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json && tsc --noEmit",
|
|
47
|
+
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
48
|
+
"format": "prettier --write 'src/**/*.{ts,js,svelte}' 'cli/**/*.ts' 'index.ts' 'tests/**/*.ts'",
|
|
49
|
+
"format:check": "prettier --check 'src/**/*.{ts,js,svelte}' 'cli/**/*.ts' 'index.ts' 'tests/**/*.ts'",
|
|
50
|
+
"lint": "prettier --check 'src/**/*.{ts,js,svelte}' 'cli/**/*.ts' 'index.ts' 'tests/**/*.ts' && eslint src cli",
|
|
51
|
+
"test": "npm run test:unit -- --run --coverage",
|
|
52
|
+
"test:integration": "vitest --config integration/vitest.config.integration.ts",
|
|
53
|
+
"test:unit": "vitest"
|
|
54
|
+
},
|
|
36
55
|
"dependencies": {
|
|
37
56
|
"@octokit/rest": "^22.0.0",
|
|
38
57
|
"@types/ws": "^8.18.1",
|
|
@@ -105,23 +124,5 @@
|
|
|
105
124
|
"main",
|
|
106
125
|
"next"
|
|
107
126
|
]
|
|
108
|
-
},
|
|
109
|
-
"scripts": {
|
|
110
|
-
"dev": "vite dev --port 5173",
|
|
111
|
-
"dev:api": "tsx --watch index.ts --debug ui --port 3000 --no-open-browser",
|
|
112
|
-
"dev:full": "concurrently \"npm run dev:api\" \"npm run dev\"",
|
|
113
|
-
"build": "npm run build:svelte && npm run build:cli && npm run postbuild:cli",
|
|
114
|
-
"build:svelte": "vite build",
|
|
115
|
-
"build:cli": "esbuild index.ts cli/**/*.ts --bundle --platform=node --target=node22 --format=esm --outdir=dist --external:express --external:commander --external:js-yaml --external:yaml --external:isomorphic-git --external:glob --external:open --external:ws --external:cors --external:multer --external:@octokit/rest --external:undici --external:xlsx-republish --external:csv-parse",
|
|
116
|
-
"postbuild:cli": "cp cli-wrapper.mjs dist/lula2 && chmod +x dist/lula2",
|
|
117
|
-
"preview": "vite preview",
|
|
118
|
-
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json && tsc --noEmit",
|
|
119
|
-
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
120
|
-
"format": "prettier --write 'src/**/*.{ts,js,svelte}' 'cli/**/*.ts' 'index.ts' 'tests/**/*.ts'",
|
|
121
|
-
"format:check": "prettier --check 'src/**/*.{ts,js,svelte}' 'cli/**/*.ts' 'index.ts' 'tests/**/*.ts'",
|
|
122
|
-
"lint": "prettier --check 'src/**/*.{ts,js,svelte}' 'cli/**/*.ts' 'index.ts' 'tests/**/*.ts' && eslint src cli",
|
|
123
|
-
"test": "npm run test:unit -- --run --coverage",
|
|
124
|
-
"test:integration": "vitest --config integration/vitest.config.integration.ts",
|
|
125
|
-
"test:unit": "vitest"
|
|
126
127
|
}
|
|
127
|
-
}
|
|
128
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b0 as ye,o as je,g as A,h as T,d as I,bj as gt,bk as Ne,ab as De,bl as qe}from"./r5h841NE.js";class be{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class ke{constructor(t,n){this.status=t,this.location=n}}class Ee extends Error{constructor(t,n,a){super(a),this.status=t,this.text=n}}new URL("sveltekit-internal://");function _t(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function mt(e){return e.split("%25").map(decodeURI).join("%25")}function vt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function de({href:e}){return e.split("#")[0]}function wt(...e){let t=5381;for(const n of e)if(typeof n=="string"){let a=n.length;for(;a;)t=t*33^n.charCodeAt(--a)}else if(ArrayBuffer.isView(n)){const a=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let r=a.length;for(;r;)t=t*33^a[--r]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;new TextDecoder;function yt(e){const t=atob(e),n=new Uint8Array(t.length);for(let a=0;a<t.length;a++)n[a]=t.charCodeAt(a);return n}const bt=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&F.delete(Se(e)),bt(e,t));const F=new Map;function kt(e,t){const n=Se(e,t),a=document.querySelector(n);if(a?.textContent){a.remove();let{body:r,...s}=JSON.parse(a.textContent);const o=a.getAttribute("data-ttl");return o&&F.set(n,{body:r,init:s,ttl:1e3*Number(o)}),a.getAttribute("data-b64")!==null&&(r=yt(r)),Promise.resolve(new Response(r,s))}return window.fetch(e,t)}function Et(e,t,n){if(F.size>0){const a=Se(e,n),r=F.get(a);if(r){if(performance.now()<r.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(r.body,r.init);F.delete(a)}}return window.fetch(t,n)}function Se(e,t){let a=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const r=[];t.headers&&r.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&r.push(t.body),a+=`[data-hash="${wt(...r)}"]`}return a}const St=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function Rt(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${Lt(e).map(a=>{const r=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(a);if(r)return t.push({name:r[1],matcher:r[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const s=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(a);if(s)return t.push({name:s[1],matcher:s[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!a)return;const o=a.split(/\[(.+?)\](?!\])/);return"/"+o.map((c,l)=>{if(l%2){if(c.startsWith("x+"))return he(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return he(String.fromCharCode(...c.slice(2).split("-").map(m=>parseInt(m,16))));const f=St.exec(c),[,h,v,u,g]=f;return t.push({name:u,matcher:g,optional:!!h,rest:!!v,chained:v?l===1&&o[0]==="":!1}),v?"([^]*?)":h?"([^/]*)?":"([^/]+?)"}return he(c)}).join("")}).join("")}/?$`),params:t}}function xt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function Lt(e){return e.slice(1).split("/").filter(xt)}function Ut(e,t,n){const a={},r=e.slice(1),s=r.filter(i=>i!==void 0);let o=0;for(let i=0;i<t.length;i+=1){const c=t[i];let l=r[i-o];if(c.chained&&c.rest&&o&&(l=r.slice(i-o,i+1).filter(f=>f).join("/"),o=0),l===void 0){c.rest&&(a[c.name]="");continue}if(!c.matcher||n[c.matcher](l)){a[c.name]=l;const f=t[i+1],h=r[i+1];f&&!f.rest&&f.optional&&h&&c.chained&&(o=0),!f&&!h&&Object.keys(a).length===s.length&&(o=0);continue}if(c.optional&&c.chained){o++;continue}return}if(!o)return a}function he(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function At({nodes:e,server_loads:t,dictionary:n,matchers:a}){const r=new Set(t);return Object.entries(n).map(([i,[c,l,f]])=>{const{pattern:h,params:v}=Rt(i),u={id:i,exec:g=>{const m=h.exec(g);if(m)return Ut(m,v,a)},errors:[1,...f||[]].map(g=>e[g]),layouts:[0,...l||[]].map(o),leaf:s(c)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function s(i){const c=i<0;return c&&(i=~i),[c,e[i]]}function o(i){return i===void 0?i:[r.has(i),e[i]]}}function Ye(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function Ve(e,t,n=JSON.stringify){const a=n(t);try{sessionStorage[e]=a}catch{}}const x=globalThis.__sveltekit_c2lh6f?.base??"",Tt=globalThis.__sveltekit_c2lh6f?.assets??x??"",It="1761611497852",ze="sveltekit:snapshot",He="sveltekit:scroll",Je="sveltekit:states",Ot="sveltekit:pageurl",B="sveltekit:history",W="sveltekit:navigation",j={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ie=location.origin;function Re(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function ce(){return{x:pageXOffset,y:pageYOffset}}function V(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const Be={...j,"":j.hover};function Xe(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Qe(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=Xe(e)}}function _e(e,t,n){let a;try{if(a=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&a.hash.match(/^#[^/]/)){const i=location.hash.split("#")[1]||"/";a.hash=`#${i}${a.hash}`}}catch{}const r=e instanceof SVGAElement?e.target.baseVal:e.target,s=!a||!!r||le(a,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),o=a?.origin===ie&&e.hasAttribute("download");return{url:a,external:s,target:r,download:o}}function Z(e){let t=null,n=null,a=null,r=null,s=null,o=null,i=e;for(;i&&i!==document.documentElement;)a===null&&(a=V(i,"preload-code")),r===null&&(r=V(i,"preload-data")),t===null&&(t=V(i,"keepfocus")),n===null&&(n=V(i,"noscroll")),s===null&&(s=V(i,"reload")),o===null&&(o=V(i,"replacestate")),i=Xe(i);function c(l){switch(l){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Be[a??"off"],preload_data:Be[r??"off"],keepfocus:c(t),noscroll:c(n),reload:c(s),replace_state:c(o)}}function Ke(e){const t=ye(e);let n=!0;function a(){n=!0,t.update(o=>o)}function r(o){n=!1,t.set(o)}function s(o){let i;return t.subscribe(c=>{(i===void 0||n&&c!==i)&&o(i=c)})}return{notify:a,set:r,subscribe:s}}const Ze={v:()=>{}};function $t(){const{set:e,subscribe:t}=ye(!1);let n;async function a(){clearTimeout(n);try{const r=await fetch(`${Tt}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!r.ok)return!1;const o=(await r.json()).version!==It;return o&&(e(!0),Ze.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:t,check:a}}function le(e,t,n){return e.origin!==ie||!e.pathname.startsWith(t)?!0:n?!(e.pathname===t+"/"||e.pathname===t+"/index.html"||e.protocol==="file:"&&e.pathname.replace(/\/[^/]+\.html?$/,"")===t):!1}function sn(e){}const et=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...et];const Pt=new Set([...et]);[...Pt];function Ct(e){return e.filter(t=>t!=null)}function xe(e){return e instanceof be||e instanceof Ee?e.status:500}function jt(e){return e instanceof Ee?e.text:"Internal Error"}let k,Y,pe;const Nt=je.toString().includes("$$")||/function \w+\(\) \{\}/.test(je.toString());Nt?(k={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},Y={current:null},pe={current:!1}):(k=new class{#e=A({});get data(){return T(this.#e)}set data(t){I(this.#e,t)}#t=A(null);get form(){return T(this.#t)}set form(t){I(this.#t,t)}#n=A(null);get error(){return T(this.#n)}set error(t){I(this.#n,t)}#a=A({});get params(){return T(this.#a)}set params(t){I(this.#a,t)}#r=A({id:null});get route(){return T(this.#r)}set route(t){I(this.#r,t)}#o=A({});get state(){return T(this.#o)}set state(t){I(this.#o,t)}#s=A(-1);get status(){return T(this.#s)}set status(t){I(this.#s,t)}#i=A(new URL("https://example.com"));get url(){return T(this.#i)}set url(t){I(this.#i,t)}},Y=new class{#e=A(null);get current(){return T(this.#e)}set current(t){I(this.#e,t)}},pe=new class{#e=A(!1);get current(){return T(this.#e)}set current(t){I(this.#e,t)}},Ze.v=()=>pe.current=!0);function Dt(e){Object.assign(k,e)}const{tick:qt}=gt,Vt=new Set(["icon","shortcut icon","apple-touch-icon"]),D=Ye(He)??{},z=Ye(ze)??{},C={url:Ke({}),page:Ke({}),navigating:ye(null),updated:$t()};function Le(e){D[e]=ce()}function Bt(e,t){let n=e+1;for(;D[n];)delete D[n],n+=1;for(n=t+1;z[n];)delete z[n],n+=1}function H(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function tt(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(x||"/");e&&await e.update()}}function Me(){}let Ue,me,ee,$,ve,w;const te=[],ne=[];let S=null;function nt(){S?.fork?.then(e=>e?.discard()),S=null}const Q=new Map,at=new Set,Kt=new Set,G=new Set;let _={branch:[],error:null,url:null},rt=!1,ae=!1,Fe=!0,J=!1,M=!1,ot=!1,Ae=!1,Te,y,R,N;const re=new Set,Ge=new Map;async function fn(e,t,n){globalThis.__sveltekit_c2lh6f?.data&&globalThis.__sveltekit_c2lh6f.data,document.URL!==location.href&&(location.href=location.href),w=e,await e.hooks.init?.(),Ue=At(e),$=document.documentElement,ve=t,me=e.nodes[0],ee=e.nodes[1],me(),ee(),y=history.state?.[B],R=history.state?.[W],y||(y=R=Date.now(),history.replaceState({...history.state,[B]:y,[W]:R},""));const a=D[y];function r(){a&&(history.scrollRestoration="manual",scrollTo(a.x,a.y))}n?(r(),await tn(ve,n)):(await K({type:"enter",url:Re(w.hash?rn(new URL(location.href)):location.href),replace_state:!0}),r()),en()}function Mt(){te.length=0,Ae=!1}function st(e){ne.some(t=>t?.snapshot)&&(z[e]=ne.map(t=>t?.snapshot?.capture()))}function it(e){z[e]?.forEach((t,n)=>{ne[n]?.snapshot?.restore(t)})}function We(){Le(y),Ve(He,D),st(R),Ve(ze,z)}async function ct(e,t,n,a){let r;t.invalidateAll&&nt(),await K({type:"goto",url:Re(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:a,accept:()=>{t.invalidateAll&&(Ae=!0,r=[...Ge.keys()]),t.invalidate&&t.invalidate.forEach(Zt)}}),t.invalidateAll&&De().then(De).then(()=>{Ge.forEach(({resource:s},o)=>{r?.includes(o)&&s.refresh?.()})})}async function Ft(e){if(e.id!==S?.id){const t={};if(re.add(t),S={id:e.id,token:t,promise:ut({...e,preload:t}).then(n=>(re.delete(t),n.type==="loaded"&&n.state.error&&nt(),n)),fork:null},qe){const n=S;n.fork=n.promise.then(a=>{if(n===S&&a.type==="loaded")try{return qe(()=>{Te.$set(a.props)})}catch{}return null})}}return S.promise}async function ge(e){const t=(await ue(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].map(n=>n?.[1]()))}function lt(e,t,n){_=e.state;const a=document.querySelector("style[data-sveltekit]");if(a&&a.remove(),Object.assign(k,e.props.page),Te=new w.root({target:t,props:{...e.props,stores:C,components:ne},hydrate:n,sync:!1}),it(R),n){const r={from:null,to:{params:_.params,route:{id:_.route?.id??null},url:new URL(location.href)},willUnload:!1,type:"enter",complete:Promise.resolve()};G.forEach(s=>s(r))}ae=!0}function oe({url:e,params:t,branch:n,status:a,error:r,route:s,form:o}){let i="never";if(x&&(e.pathname===x||e.pathname===x+"/"))i="always";else for(const u of n)u?.slash!==void 0&&(i=u.slash);e.pathname=_t(e.pathname,i),e.search=e.search;const c={type:"loaded",state:{url:e,params:t,branch:n,error:r,route:s},props:{constructors:Ct(n).map(u=>u.node.component),page:Ce(k)}};o!==void 0&&(c.props.form=o);let l={},f=!k,h=0;for(let u=0;u<Math.max(n.length,_.branch.length);u+=1){const g=n[u],m=_.branch[u];g?.data!==m?.data&&(f=!0),g&&(l={...l,...g.data},f&&(c.props[`data_${h}`]=l),h+=1)}return(!_.url||e.href!==_.url.href||_.error!==r||o!==void 0&&o!==k.form||f)&&(c.props.page={error:r,params:t,route:{id:s?.id??null},state:{},status:a,url:new URL(e),form:o??null,data:f?l:k.data}),c}async function Ie({loader:e,parent:t,url:n,params:a,route:r,server_data_node:s}){let o=null;const i={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},c=await e();return{node:c,loader:e,server:s,universal:c.universal?.load?{type:"data",data:o,uses:i}:null,data:o??s?.data??null,slash:c.universal?.trailingSlash??s?.slash}}function Gt(e,t,n){let a=e instanceof Request?e.url:e;const r=new URL(a,n);r.origin===n.origin&&(a=r.href.slice(n.origin.length));const s=ae?Et(a,r.href,t):kt(a,t);return{resolved:r,promise:s}}function Wt(e,t,n,a,r,s){if(Ae)return!0;if(!r)return!1;if(r.parent&&e||r.route&&t||r.url&&n)return!0;for(const o of r.search_params)if(a.has(o))return!0;for(const o of r.params)if(s[o]!==_.params[o])return!0;for(const o of r.dependencies)if(te.some(i=>i(new URL(o))))return!0;return!1}function Oe(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function Yt(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const a of n){const r=e.searchParams.getAll(a),s=t.searchParams.getAll(a);r.every(o=>s.includes(o))&&s.every(o=>r.includes(o))&&n.delete(a)}return n}function zt({error:e,url:t,route:n,params:a}){return{type:"loaded",state:{error:e,url:t,route:n,params:a,branch:[]},props:{page:Ce(k),constructors:[]}}}async function ut({id:e,invalidating:t,url:n,params:a,route:r,preload:s}){if(S?.id===e)return re.delete(S.token),S.promise;const{errors:o,layouts:i,leaf:c}=r,l=[...i,c];o.forEach(p=>p?.().catch(()=>{})),l.forEach(p=>p?.[1]().catch(()=>{}));const f=_.url?e!==se(_.url):!1,h=_.route?r.id!==_.route.id:!1,v=Yt(_.url,n);let u=!1;const g=l.map(async(p,d)=>{if(!p)return;const E=_.branch[d];return p[1]===E?.loader&&!Wt(u,h,f,v,E.universal?.uses,a)?E:(u=!0,Ie({loader:p[1],url:n,params:a,route:r,parent:async()=>{const O={};for(let U=0;U<d;U+=1)Object.assign(O,(await g[U])?.data);return O},server_data_node:Oe(p[0]?{type:"skip"}:null,p[0]?E?.server:void 0)}))});for(const p of g)p.catch(()=>{});const m=[];for(let p=0;p<l.length;p+=1)if(l[p])try{m.push(await g[p])}catch(d){if(d instanceof ke)return{type:"redirect",location:d.location};if(re.has(s))return zt({error:await X(d,{params:a,url:n,route:{id:r.id}}),url:n,params:a,route:r});let E=xe(d),L;if(d instanceof be)L=d.body;else{if(await C.updated.check())return await tt(),await H(n);L=await X(d,{params:a,url:n,route:{id:r.id}})}const O=await Ht(p,m,o);return O?oe({url:n,params:a,branch:m.slice(0,O.idx).concat(O.node),status:E,error:L,route:r}):await dt(n,{id:r.id},L,E)}else m.push(void 0);return oe({url:n,params:a,branch:m,status:200,error:null,route:r,form:t?void 0:null})}async function Ht(e,t,n){for(;e--;)if(n[e]){let a=e;for(;!t[a];)a-=1;try{return{idx:a+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function $e({status:e,error:t,url:n,route:a}){const r={};let s=null;try{const o=await Ie({loader:me,url:n,params:r,route:a,parent:()=>Promise.resolve({}),server_data_node:Oe(s)}),i={node:await ee(),loader:ee,universal:null,server:null,data:null};return oe({url:n,params:r,branch:[o,i],status:e,error:t,route:null})}catch(o){if(o instanceof ke)return ct(new URL(o.location,location.href),{},0);throw o}}async function Jt(e){const t=e.href;if(Q.has(t))return Q.get(t);let n;try{const a=(async()=>{let r=await w.hooks.reroute({url:new URL(e),fetch:async(s,o)=>Gt(s,o,e).promise})??e;if(typeof r=="string"){const s=new URL(e);w.hash?s.hash=r:s.pathname=r,r=s}return r})();Q.set(t,a),n=await a}catch{Q.delete(t);return}return n}async function ue(e,t){if(e&&!le(e,x,w.hash)){const n=await Jt(e);if(!n)return;const a=Xt(n);for(const r of Ue){const s=r.exec(a);if(s)return{id:se(e),invalidating:t,route:r,params:vt(s),url:e}}}}function Xt(e){return mt(w.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(x.length))||"/"}function se(e){return(w.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function ft({url:e,type:t,intent:n,delta:a,event:r}){let s=!1;const o=Pe(_,n,e,t);a!==void 0&&(o.navigation.delta=a),r!==void 0&&(o.navigation.event=r);const i={...o.navigation,cancel:()=>{s=!0,o.reject(new Error("navigation cancelled"))}};return J||at.forEach(c=>c(i)),s?null:o}async function K({type:e,url:t,popped:n,keepfocus:a,noscroll:r,replace_state:s,state:o={},redirect_count:i=0,nav_token:c={},accept:l=Me,block:f=Me,event:h}){const v=N;N=c;const u=await ue(t,!1),g=e==="enter"?Pe(_,u,t,e):ft({url:t,type:e,delta:n?.delta,intent:u,event:h});if(!g){f(),N===c&&(N=v);return}const m=y,p=R;l(),J=!0,ae&&g.navigation.type!=="enter"&&C.navigating.set(Y.current=g.navigation);let d=u&&await ut(u);if(!d){if(le(t,x,w.hash))return await H(t,s);d=await dt(t,{id:null},await X(new Ee(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,s)}if(t=u?.url||t,N!==c)return g.reject(new Error("navigation aborted")),!1;if(d.type==="redirect"){if(i<20){await K({type:e,url:new URL(d.location,t),popped:n,keepfocus:a,noscroll:r,replace_state:s,state:o,redirect_count:i+1,nav_token:c}),g.fulfil(void 0);return}d=await $e({status:500,error:await X(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else d.props.page.status>=400&&await C.updated.check()&&(await tt(),await H(t,s));if(Mt(),Le(m),st(p),d.props.page.url.pathname!==t.pathname&&(t.pathname=d.props.page.url.pathname),o=n?n.state:o,!n){const b=s?0:1,q={[B]:y+=b,[W]:R+=b,[Je]:o};(s?history.replaceState:history.pushState).call(history,q,"",t),s||Bt(y,R)}const E=S?.fork;if(S=null,d.props.page.state=o,ae){const b=(await Promise.all(Array.from(Kt,P=>P(g.navigation)))).filter(P=>typeof P=="function");if(b.length>0){let P=function(){b.forEach(fe=>{G.delete(fe)})};b.push(P),b.forEach(fe=>{G.add(fe)})}_=d.state,d.props.page&&(d.props.page.url=t);const q=E&&await E;q?q.commit():Te.$set(d.props),Dt(d.props.page),ot=!0}else lt(d,ve,!1);const{activeElement:L}=document,O=[qt()];Ne&&O.push(Ne()),await Promise.all(O);let U=n?n.scroll:r?ce():null;if(Fe){const b=t.hash&&document.getElementById(ht(t));if(U)scrollTo(U.x,U.y);else if(b){b.scrollIntoView();const{top:q,left:P}=b.getBoundingClientRect();U={x:pageXOffset+P,y:pageYOffset+q}}else scrollTo(0,0)}const pt=document.activeElement!==L&&document.activeElement!==document.body;!a&&!pt&&an(t,U),Fe=!0,d.props.page&&Object.assign(k,d.props.page),J=!1,e==="popstate"&&it(R),g.fulfil(void 0),G.forEach(b=>b(g.navigation)),C.navigating.set(Y.current=null)}async function dt(e,t,n,a,r){return e.origin===ie&&e.pathname===location.pathname&&!rt?await $e({status:a,error:n,url:e,route:t}):await H(e,r)}function Qt(){let e,t,n;$.addEventListener("mousemove",i=>{const c=i.target;clearTimeout(e),e=setTimeout(()=>{s(c,j.hover)},20)});function a(i){i.defaultPrevented||s(i.composedPath()[0],j.tap)}$.addEventListener("mousedown",a),$.addEventListener("touchstart",a,{passive:!0});const r=new IntersectionObserver(i=>{for(const c of i)c.isIntersecting&&(ge(new URL(c.target.href)),r.unobserve(c.target))},{threshold:0});async function s(i,c){const l=Qe(i,$),f=l===t&&c>=n;if(!l||f)return;const{url:h,external:v,download:u}=_e(l,x,w.hash);if(v||u)return;const g=Z(l),m=h&&se(_.url)===se(h);if(!(g.reload||m))if(c<=g.preload_data){t=l,n=j.tap;const p=await ue(h,!1);if(!p)return;Ft(p)}else c<=g.preload_code&&(t=l,n=c,ge(h))}function o(){r.disconnect();for(const i of $.querySelectorAll("a")){const{url:c,external:l,download:f}=_e(i,x,w.hash);if(l||f)continue;const h=Z(i);h.reload||(h.preload_code===j.viewport&&r.observe(i),h.preload_code===j.eager&&ge(c))}}G.add(o),o()}function X(e,t){if(e instanceof be)return e.body;const n=xe(e),a=jt(e);return w.hooks.handleError({error:e,event:t,status:n,message:a})??{message:a}}function dn(e,t={}){return e=new URL(Re(e)),e.origin!==ie?Promise.reject(new Error("goto: invalid URL")):ct(e,t,0)}function Zt(e){if(typeof e=="function")te.push(e);else{const{href:t}=new URL(e,location.href);te.push(n=>n.href===t)}}function en(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(We(),!J){const a=Pe(_,void 0,null,"leave"),r={...a.navigation,cancel:()=>{n=!0,a.reject(new Error("navigation cancelled"))}};at.forEach(s=>s(r))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&We()}),navigator.connection?.saveData||Qt(),$.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=Qe(t.composedPath()[0],$);if(!n)return;const{url:a,external:r,target:s,download:o}=_e(n,x,w.hash);if(!a)return;if(s==="_parent"||s==="_top"){if(window.parent!==window)return}else if(s&&s!=="_self")return;const i=Z(n);if(!(n instanceof SVGAElement)&&a.protocol!==location.protocol&&!(a.protocol==="https:"||a.protocol==="http:")||o)return;const[l,f]=(w.hash?a.hash.replace(/^#/,""):a.href).split("#"),h=l===de(location);if(r||i.reload&&(!h||!f)){ft({url:a,type:"link",event:t})?J=!0:t.preventDefault();return}if(f!==void 0&&h){const[,v]=_.url.href.split("#");if(v===f){if(t.preventDefault(),f===""||f==="top"&&n.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const u=n.ownerDocument.getElementById(decodeURIComponent(f));u&&(u.scrollIntoView(),u.focus())}return}if(M=!0,Le(y),e(a),!i.replace_state)return;M=!1}t.preventDefault(),await new Promise(v=>{requestAnimationFrame(()=>{setTimeout(v,0)}),setTimeout(v,100)}),await K({type:"link",url:a,keepfocus:i.keepfocus,noscroll:i.noscroll,replace_state:i.replace_state??a.href===location.href,event:t})}),$.addEventListener("submit",t=>{if(t.defaultPrevented)return;const n=HTMLFormElement.prototype.cloneNode.call(t.target),a=t.submitter;if((a?.formTarget||n.target)==="_blank"||(a?.formMethod||n.method)!=="get")return;const o=new URL(a?.hasAttribute("formaction")&&a?.formAction||n.action);if(le(o,x,!1))return;const i=t.target,c=Z(i);if(c.reload)return;t.preventDefault(),t.stopPropagation();const l=new FormData(i,a);o.search=new URLSearchParams(l).toString(),K({type:"form",url:o,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??o.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!we){if(t.state?.[B]){const n=t.state[B];if(N={},n===y)return;const a=D[n],r=t.state[Je]??{},s=new URL(t.state[Ot]??location.href),o=t.state[W],i=_.url?de(location)===de(_.url):!1;if(o===R&&(ot||i)){r!==k.state&&(k.state=r),e(s),D[y]=ce(),a&&scrollTo(a.x,a.y),y=n;return}const l=n-y;await K({type:"popstate",url:s,popped:{state:r,scroll:a,delta:l},accept:()=>{y=n,R=o},block:()=>{history.go(-l)},nav_token:N,event:t})}else if(!M){const n=new URL(location.href);e(n),w.hash&&location.reload()}}}),addEventListener("hashchange",()=>{M&&(M=!1,history.replaceState({...history.state,[B]:++y,[W]:R},"",location.href))});for(const t of document.querySelectorAll("link"))Vt.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&C.navigating.set(Y.current=null)});function e(t){_.url=k.url=t,C.page.set(Ce(k)),C.page.notify()}}async function tn(e,{status:t=200,error:n,node_ids:a,params:r,route:s,server_route:o,data:i,form:c}){rt=!0;const l=new URL(location.href);let f;({params:r={},route:s={id:null}}=await ue(l,!1)||{}),f=Ue.find(({id:u})=>u===s.id);let h,v=!0;try{const u=a.map(async(m,p)=>{const d=i[p];return d?.uses&&(d.uses=nn(d.uses)),Ie({loader:w.nodes[m],url:l,params:r,route:s,parent:async()=>{const E={};for(let L=0;L<p;L+=1)Object.assign(E,(await u[L]).data);return E},server_data_node:Oe(d)})}),g=await Promise.all(u);if(f){const m=f.layouts;for(let p=0;p<m.length;p++)m[p]||g.splice(p,0,void 0)}h=oe({url:l,params:r,branch:g,status:t,error:n,form:c,route:f??null})}catch(u){if(u instanceof ke){await H(new URL(u.location,location.href));return}h=await $e({status:xe(u),error:await X(u,{url:l,params:r,route:s}),url:l,route:s}),e.textContent="",v=!1}h.props.page&&(h.props.page.state={}),lt(h,e,v)}function nn(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let we=!1;function an(e,t=null){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const a=ht(e);if(a&&document.getElementById(a)){const{x:s,y:o}=t??ce();setTimeout(()=>{const i=history.state;we=!0,location.replace(`#${a}`),w.hash&&location.replace(e.hash),history.replaceState(i,"",e.hash),scrollTo(s,o),we=!1})}else{const s=document.body,o=s.getAttribute("tabindex");s.tabIndex=-1,s.focus({preventScroll:!0,focusVisible:!1}),o!==null?s.setAttribute("tabindex",o):s.removeAttribute("tabindex")}const r=getSelection();if(r&&r.type!=="None"){const s=[];for(let o=0;o<r.rangeCount;o+=1)s.push(r.getRangeAt(o));setTimeout(()=>{if(r.rangeCount===s.length){for(let o=0;o<r.rangeCount;o+=1){const i=s[o],c=r.getRangeAt(o);if(i.commonAncestorContainer!==c.commonAncestorContainer||i.startContainer!==c.startContainer||i.endContainer!==c.endContainer||i.startOffset!==c.startOffset||i.endOffset!==c.endOffset)return}r.removeAllRanges()}})}}}function Pe(e,t,n,a){let r,s;const o=new Promise((c,l)=>{r=c,s=l});return o.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n},willUnload:!t,type:a,complete:o},fulfil:r,reject:s}}function Ce(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function rn(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function ht(e){let t;if(w.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{fn as a,dn as g,sn as l,k as p,C as s};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as o,a as r}from"../chunks/DuUZ8ki1.js";export{o as load_css,r as start};
|