@jpkme/diff-review 0.1.2 → 0.1.3
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/package.json +1 -1
- package/web/build/client/_app/immutable/assets/{3.BDe920_w.css → 3.qhPDz1xQ.css} +1 -1
- package/web/build/client/_app/immutable/assets/3.qhPDz1xQ.css.br +0 -0
- package/web/build/client/_app/immutable/assets/3.qhPDz1xQ.css.gz +0 -0
- package/web/build/client/_app/immutable/chunks/{DA6AD4pE.js → C5moC2DW.js} +1 -1
- package/web/build/client/_app/immutable/chunks/C5moC2DW.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/C5moC2DW.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/{DWVUjZfW.js → WxPrACSs.js} +2 -2
- package/web/build/client/_app/immutable/chunks/WxPrACSs.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/WxPrACSs.js.gz +0 -0
- package/web/build/client/_app/immutable/entry/{app.DfeyUgCE.js → app.Dei8qxo7.js} +2 -2
- package/web/build/client/_app/immutable/entry/app.Dei8qxo7.js.br +0 -0
- package/web/build/client/_app/immutable/entry/app.Dei8qxo7.js.gz +0 -0
- package/web/build/client/_app/immutable/entry/start.Fzxrn2l4.js +1 -0
- package/web/build/client/_app/immutable/entry/start.Fzxrn2l4.js.br +1 -0
- package/web/build/client/_app/immutable/entry/start.Fzxrn2l4.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/{1.BnePkiVL.js → 1.Cn_iktkl.js} +1 -1
- package/web/build/client/_app/immutable/nodes/1.Cn_iktkl.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/1.Cn_iktkl.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/{2.Dr69zJpD.js → 2.vvYFHTy-.js} +1 -1
- package/web/build/client/_app/immutable/nodes/2.vvYFHTy-.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/2.vvYFHTy-.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/3.CeJ7dEsh.js +170 -0
- package/web/build/client/_app/immutable/nodes/3.CeJ7dEsh.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/3.CeJ7dEsh.js.gz +0 -0
- package/web/build/client/_app/version.json +1 -1
- package/web/build/client/_app/version.json.br +0 -0
- package/web/build/client/_app/version.json.gz +0 -0
- package/web/build/handler.js +3 -3
- package/web/build/index.js +3 -3
- package/web/build/server/chunks/1-Bjgeu1Iz.js +7 -0
- package/web/build/server/chunks/{1-eKskvjnM.js.map → 1-Bjgeu1Iz.js.map} +1 -1
- package/web/build/server/chunks/{2-WcOxbtb4.js → 2-BvMZU9fP.js} +2 -2
- package/web/build/server/chunks/{2-WcOxbtb4.js.map → 2-BvMZU9fP.js.map} +1 -1
- package/web/build/server/chunks/3-Zc5_qwgV.js +7 -0
- package/web/build/server/chunks/{3-D95XsQMA.js.map → 3-Zc5_qwgV.js.map} +1 -1
- package/web/build/server/chunks/{handler-BtMUV-EL.js → handler-BmuqxCCf.js} +3 -3
- package/web/build/server/chunks/{handler-BtMUV-EL.js.map → handler-BmuqxCCf.js.map} +1 -1
- package/web/build/server/chunks/{index.js-D3hB-kQu.js → index.js-41EcOndB.js} +2 -2
- package/web/build/server/chunks/{index.js-D3hB-kQu.js.map → index.js-41EcOndB.js.map} +1 -1
- package/web/build/server/chunks/{manifest.js-BjQCm6Fj.js → manifest.js-KnmnjP9i.js} +6 -6
- package/web/build/server/chunks/{manifest.js-BjQCm6Fj.js.map → manifest.js-KnmnjP9i.js.map} +1 -1
- package/web/build/server/chunks/{remote-1g4ayag-vByXJn4W.js → remote-1g4ayag-BgUNMUS8.js} +2 -2
- package/web/build/server/chunks/{remote-1g4ayag-vByXJn4W.js.map → remote-1g4ayag-BgUNMUS8.js.map} +1 -1
- package/web/build/client/_app/immutable/assets/3.BDe920_w.css.br +0 -0
- package/web/build/client/_app/immutable/assets/3.BDe920_w.css.gz +0 -0
- package/web/build/client/_app/immutable/chunks/DA6AD4pE.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/DA6AD4pE.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/DWVUjZfW.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/DWVUjZfW.js.gz +0 -0
- package/web/build/client/_app/immutable/entry/app.DfeyUgCE.js.br +0 -0
- package/web/build/client/_app/immutable/entry/app.DfeyUgCE.js.gz +0 -0
- package/web/build/client/_app/immutable/entry/start.CBt8Pu89.js +0 -1
- package/web/build/client/_app/immutable/entry/start.CBt8Pu89.js.br +0 -0
- package/web/build/client/_app/immutable/entry/start.CBt8Pu89.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/1.BnePkiVL.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/1.BnePkiVL.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/2.Dr69zJpD.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/2.Dr69zJpD.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/3.BjjzqFKA.js +0 -170
- package/web/build/client/_app/immutable/nodes/3.BjjzqFKA.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/3.BjjzqFKA.js.gz +0 -0
- package/web/build/server/chunks/1-eKskvjnM.js +0 -7
- package/web/build/server/chunks/3-D95XsQMA.js +0 -7
package/web/build/server/chunks/{remote-1g4ayag-vByXJn4W.js.map → remote-1g4ayag-BgUNMUS8.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-1g4ayag-vByXJn4W.js","sources":["../../../.svelte-kit/output/server/chunks/remote.js","../../../.svelte-kit/output/server/chunks/git.remote.js","../../../.svelte-kit/output/server/chunks/remote-1g4ayag.js"],"sourcesContent":["import { _ as noop, i as parse_remote_arg, o as stringify, r as create_remote_key, s as stringify_remote_arg } from \"./shared.js\";\nimport { i as app_dir, o as base, t as prerendering } from \"./internal.js\";\nimport { C as set_nested_value, E as MUTATIVE_METHODS, S as normalize_issue, s as handle_error_and_jsonify, v as create_field_proxy, x as flatten_issues, y as deep_set } from \"./utils.js\";\nimport { error, json } from \"@sveltejs/kit\";\nimport { HttpError, SvelteKitError, ValidationError } from \"@sveltejs/kit/internal\";\nimport { get_request_store, with_request_store } from \"@sveltejs/kit/internal/server\";\nimport { parse } from \"devalue\";\n//#region node_modules/@sveltejs/kit/src/runtime/app/server/remote/shared.js\n/** @import { RequestEvent } from '@sveltejs/kit' */\n/** @import { ServerHooks, MaybePromise, RequestState, RemoteInternals, RequestStore, RemoteLiveQueryUserFunctionReturnType } from 'types' */\n/**\n* @param {any} validate_or_fn\n* @param {((arg?: any) => any) | undefined} [maybe_fn]\n* @returns {(arg?: any) => MaybePromise<any>}\n*/\nfunction create_validator(validate_or_fn, maybe_fn) {\n\tif (!maybe_fn) return (arg) => {\n\t\tif (arg !== void 0) error(400, \"Bad Request\");\n\t};\n\tif (validate_or_fn === \"unchecked\") return (arg) => arg;\n\tif (\"~standard\" in validate_or_fn) return async (arg) => {\n\t\tconst { event, state } = get_request_store();\n\t\tconst result = await validate_or_fn[\"~standard\"].validate(arg);\n\t\tif (result.issues) error(400, await state.handleValidationError({\n\t\t\tissues: result.issues,\n\t\t\tevent\n\t\t}));\n\t\treturn result.value;\n\t};\n\tthrow new Error(\"Invalid validator passed to remote function. Expected \\\"unchecked\\\" or a Standard Schema (https://standardschema.dev)\");\n}\n/**\n* In case of a single remote function call, just returns the result.\n*\n* In case of a full page reload, returns the response for a remote function call,\n* either from the cache or by invoking the function.\n* Also saves an uneval'ed version of the result for later HTML inlining for hydration.\n*\n* @template {MaybePromise<any>} T\n* @param {RemoteInternals} internals\n* @param {string} payload — the stringified raw argument (i.e. the cache key the client will use)\n* @param {RequestState} state\n* @param {() => Promise<T>} get_result\n* @returns {Promise<T>}\n*/\nasync function get_response(internals, payload, state, get_result) {\n\tawait 0;\n\tconst cache = get_cache(internals, state);\n\tif (!state.is_in_remote_query) get_implicit_lookup(internals, state)[payload] = get_result;\n\treturn cache[payload] ??= get_result();\n}\n/**\n* @param {any} data\n* @param {ServerHooks['transport']} transport\n*/\nfunction parse_remote_response(data, transport) {\n\t/** @type {Record<string, any>} */\n\tconst revivers = {};\n\tfor (const key in transport) revivers[key] = transport[key].decode;\n\treturn parse(data, revivers);\n}\n/**\n* @param {RequestEvent} event\n* @param {RequestState} state\n* @param {boolean} allow_cookies\n* @returns {RequestStore}\n*/\nfunction derive_remote_function_event(event, state, allow_cookies) {\n\treturn {\n\t\tevent: {\n\t\t\t...event,\n\t\t\tsetHeaders: () => {\n\t\t\t\tthrow new Error(\"setHeaders is not allowed in remote functions\");\n\t\t\t},\n\t\t\tcookies: {\n\t\t\t\t...event.cookies,\n\t\t\t\tset: (name, value, opts) => {\n\t\t\t\t\tif (!allow_cookies) throw new Error(\"Cannot set cookies in `query` or `prerender` functions\");\n\t\t\t\t\tif (opts.path && !opts.path.startsWith(\"/\")) throw new Error(\"Cookies set in remote functions must have an absolute path\");\n\t\t\t\t\treturn event.cookies.set(name, value, opts);\n\t\t\t\t},\n\t\t\t\tdelete: (name, opts) => {\n\t\t\t\t\tif (!allow_cookies) throw new Error(\"Cannot delete cookies in `query` or `prerender` functions\");\n\t\t\t\t\tif (opts.path && !opts.path.startsWith(\"/\")) throw new Error(\"Cookies deleted in remote functions must have an absolute path\");\n\t\t\t\t\treturn event.cookies.delete(name, opts);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tstate: {\n\t\t\t...state,\n\t\t\tis_in_remote_function: true\n\t\t}\n\t};\n}\n/**\n* Like `with_event` but removes things from `event` you cannot see/call in remote functions, such as `setHeaders`.\n* @template T\n* @param {RequestEvent} event\n* @param {RequestState} state\n* @param {boolean} allow_cookies\n* @param {() => any} get_input\n* @param {(arg?: any) => T} fn\n*/\nasync function run_remote_function(event, state, allow_cookies, get_input, fn) {\n\tconst store = derive_remote_function_event(event, state, allow_cookies);\n\tconst input = await with_request_store(store, get_input);\n\treturn with_request_store(store, () => fn(input));\n}\n/**\n* Like `with_event` but removes things from `event` you cannot see/call in remote functions, such as `setHeaders`.\n* @template T\n* @param {RequestEvent} event\n* @param {RequestState} state\n* @param {boolean} allow_cookies\n* @param {() => any} get_input\n* @param {(arg?: any) => RemoteLiveQueryUserFunctionReturnType<T>} fn\n* @param {string} name\n*/\nasync function* run_remote_generator(event, state, allow_cookies, get_input, fn, name) {\n\tconst store = derive_remote_function_event(event, state, allow_cookies);\n\tconst input = await with_request_store(store, get_input);\n\tconst iterator = to_iterator(await with_request_store(store, () => fn(input)), name);\n\tlet done = false;\n\ttry {\n\t\twhile (true) {\n\t\t\tconst result = await with_request_store(store, () => iterator.next());\n\t\t\tif (result.done) {\n\t\t\t\tdone = true;\n\t\t\t\treturn result.value;\n\t\t\t}\n\t\t\tyield result.value;\n\t\t}\n\t} finally {\n\t\tif (!done && typeof iterator.return === \"function\") await with_request_store(store, () => iterator.return?.(void 0));\n\t}\n}\n/**\n* @template T\n* @param {Awaited<RemoteLiveQueryUserFunctionReturnType<T>>} source\n* @param {string} name\n* @returns {Iterator<T> | AsyncIterator<T>}\n*/\nfunction to_iterator(source, name) {\n\tif (\"next\" in source && typeof source.next === \"function\") return source;\n\tif (Symbol.asyncIterator in source && typeof source[Symbol.asyncIterator] === \"function\") return source[Symbol.asyncIterator]();\n\tif (Symbol.iterator in source && typeof source[Symbol.iterator] === \"function\") return source[Symbol.iterator]();\n\tthrow new Error(`query.live '${name}' must return an Iterator, Iterable, AsyncIterator or AsyncIterable`);\n}\n/**\n* Note that `state` is deliberately not optional: resources that capture the request\n* state at creation must pass it explicitly, because reading it from the request store\n* at call time is only equivalent on runtimes with `AsyncLocalStorage` support.\n* Callers without a captured state (such as the module-level `form` instance getters)\n* should pass `get_request_store().state` themselves.\n* @param {RemoteInternals} internals\n* @param {RequestState} state\n*/\nfunction get_cache(internals, state) {\n\tlet cache = state.remote.data?.get(internals);\n\tif (cache === void 0) {\n\t\tcache = {};\n\t\t(state.remote.data ??= /* @__PURE__ */ new Map()).set(internals, cache);\n\t}\n\treturn cache;\n}\n/**\n* @param {RemoteInternals} internals\n* @param {RequestState} state\n*/\nfunction get_implicit_lookup(internals, state) {\n\tlet cache = state.remote.implicit?.get(internals);\n\tif (cache === void 0) {\n\t\tcache = {};\n\t\t(state.remote.implicit ??= /* @__PURE__ */ new Map()).set(internals, cache);\n\t}\n\treturn cache;\n}\n//#endregion\n//#region node_modules/@sveltejs/kit/src/runtime/app/server/remote/command.js\n/** @import { RemoteCommand } from '@sveltejs/kit' */\n/** @import { MaybePromise, RemoteCommandInternals } from 'types' */\n/** @import { StandardSchemaV1 } from '@standard-schema/spec' */\n/**\n* Creates a remote command. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#command) for full documentation.\n*\n* @template Output\n* @overload\n* @param {() => MaybePromise<Output>} fn\n* @returns {RemoteCommand<void, Output>}\n* @since 2.27\n*/\n/**\n* Creates a remote command. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#command) for full documentation.\n*\n* @template Input\n* @template Output\n* @overload\n* @param {'unchecked'} validate\n* @param {(arg: Input) => MaybePromise<Output>} fn\n* @returns {RemoteCommand<Input, Output>}\n* @since 2.27\n*/\n/**\n* Creates a remote command. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#command) for full documentation.\n*\n* @template {StandardSchemaV1} Schema\n* @template Output\n* @overload\n* @param {Schema} validate\n* @param {(arg: StandardSchemaV1.InferOutput<Schema>) => MaybePromise<Output>} fn\n* @returns {RemoteCommand<StandardSchemaV1.InferInput<Schema>, Output>}\n* @since 2.27\n*/\n/**\n* @template Input\n* @template Output\n* @param {any} validate_or_fn\n* @param {(arg?: Input) => MaybePromise<Output>} [maybe_fn]\n* @returns {RemoteCommand<Input, Output>}\n* @since 2.27\n*/\n/*@__NO_SIDE_EFFECTS__*/\nfunction command(validate_or_fn, maybe_fn) {\n\t/** @type {(arg?: Input) => MaybePromise<Output>} */\n\tconst fn = maybe_fn ?? validate_or_fn;\n\t/** @type {(arg?: any) => MaybePromise<Input>} */\n\tconst validate = create_validator(validate_or_fn, maybe_fn);\n\t/** @type {RemoteCommandInternals} */\n\tconst __ = {\n\t\ttype: \"command\",\n\t\tid: \"\",\n\t\tname: \"\"\n\t};\n\t/** @type {RemoteCommand<Input, Output> & { __: RemoteCommandInternals }} */\n\tconst wrapper = (arg) => {\n\t\tconst { event, state } = get_request_store();\n\t\tif (!MUTATIVE_METHODS.includes(event.request.method)) throw new Error(`Cannot call a command (\\`${__.name}(${maybe_fn ? \"...\" : \"\"})\\`) from a ${event.request.method} handler`);\n\t\tif (state.is_in_render) throw new Error(`Cannot call a command (\\`${__.name}(${maybe_fn ? \"...\" : \"\"})\\`) during server-side rendering`);\n\t\tconst promise = Promise.resolve(run_remote_function(event, state, true, () => validate(arg), fn));\n\t\tpromise.updates = () => {\n\t\t\tthrow new Error(`Cannot call '${__.name}(...).updates(...)' on the server`);\n\t\t};\n\t\treturn promise;\n\t};\n\tObject.defineProperty(wrapper, \"__\", { value: __ });\n\tObject.defineProperty(wrapper, \"pending\", { get: () => 0 });\n\treturn wrapper;\n}\n//#endregion\n//#region node_modules/@sveltejs/kit/src/runtime/app/server/remote/form.js\n/** @import { RemoteFormInput, RemoteForm, InvalidField } from '@sveltejs/kit' */\n/** @import { InternalRemoteFormIssue, MaybePromise, HasNonOptionalBoolean, RemoteFormInternals } from 'types' */\n/** @import { StandardSchemaV1 } from '@standard-schema/spec' */\n/**\n* Creates a form object that can be spread onto a `<form>` element.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#form) for full documentation.\n*\n* @template Output\n* @overload\n* @param {() => MaybePromise<Output>} fn\n* @returns {RemoteForm<void, Output>}\n* @since 2.27\n*/\n/**\n* Creates a form object that can be spread onto a `<form>` element.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#form) for full documentation.\n*\n* @template {RemoteFormInput} Input\n* @template Output\n* @overload\n* @param {'unchecked'} validate\n* @param {(data: Input, issue: InvalidField<Input>) => MaybePromise<Output>} fn\n* @returns {RemoteForm<Input, Output>}\n* @since 2.27\n*/\n/**\n* Creates a form object that can be spread onto a `<form>` element.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#form) for full documentation.\n*\n* @template {StandardSchemaV1<RemoteFormInput, Record<string, any>>} Schema\n* @template Output\n* @overload\n* @param {true extends HasNonOptionalBoolean<StandardSchemaV1.InferInput<Schema>> ? 'Error: All booleans in form schemas must be optional (e.g. `v.optional(v.boolean(), false)`) because checkbox inputs do not send a false value when unchecked.' : Schema} validate\n* @param {(data: StandardSchemaV1.InferOutput<Schema>, issue: InvalidField<StandardSchemaV1.InferInput<Schema>>) => MaybePromise<Output>} fn\n* @returns {RemoteForm<StandardSchemaV1.InferInput<Schema>, Output>}\n* @since 2.27\n*/\n/**\n* @template {RemoteFormInput} Input\n* @template Output\n* @param {any} validate_or_fn\n* @param {(data_or_issue: any, issue?: any) => MaybePromise<Output>} [maybe_fn]\n* @returns {RemoteForm<Input, Output>}\n* @since 2.27\n*/\n/*@__NO_SIDE_EFFECTS__*/\nfunction form(validate_or_fn, maybe_fn) {\n\t/** @type {any} */\n\tconst fn = maybe_fn ?? validate_or_fn;\n\t/** @type {StandardSchemaV1 | null} */\n\tconst schema = !maybe_fn || validate_or_fn === \"unchecked\" ? null : validate_or_fn;\n\t/**\n\t* @param {string | number | boolean} [key]\n\t*/\n\tfunction create_instance(key) {\n\t\t/** @type {RemoteForm<Input, Output>} */\n\t\tconst instance = {};\n\t\tinstance.method = \"POST\";\n\t\tObject.defineProperty(instance, \"enhance\", { value: () => {\n\t\t\treturn {\n\t\t\t\taction: instance.action,\n\t\t\t\tmethod: instance.method\n\t\t\t};\n\t\t} });\n\t\t/** @type {RemoteFormInternals} */\n\t\tconst __ = {\n\t\t\ttype: \"form\",\n\t\t\tname: \"\",\n\t\t\tid: \"\",\n\t\t\tfn: async (data, meta, form_data) => {\n\t\t\t\t/** @type {{ submission: true, input?: Record<string, any>, issues?: InternalRemoteFormIssue[], result: Output }} */\n\t\t\t\tconst output = {};\n\t\t\t\toutput.submission = true;\n\t\t\t\tconst { event, state } = get_request_store();\n\t\t\t\tconst validated = await schema?.[\"~standard\"].validate(data);\n\t\t\t\tif (meta.validate_only) return validated?.issues?.map((issue) => normalize_issue(issue, true)) ?? [];\n\t\t\t\tif (validated?.issues !== void 0) handle_issues(output, validated.issues, form_data);\n\t\t\t\telse {\n\t\t\t\t\tif (validated !== void 0) data = validated.value;\n\t\t\t\t\tconst issue = create_issues();\n\t\t\t\t\ttry {\n\t\t\t\t\t\toutput.result = await run_remote_function(event, state, true, () => data, (data) => !maybe_fn ? fn() : fn(data, issue));\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tif (e instanceof ValidationError) handle_issues(output, e.issues, form_data);\n\t\t\t\t\t\telse throw e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!event.isRemoteRequest) {\n\t\t\t\t\tconst cache = get_cache(__, state);\n\t\t\t\t\tcache[\"\"] ??= output;\n\t\t\t\t\tget_implicit_lookup(__, state)[__.action_id ?? __.id] = () => cache[\"\"];\n\t\t\t\t}\n\t\t\t\treturn output;\n\t\t\t}\n\t\t};\n\t\tObject.defineProperty(instance, \"__\", { value: __ });\n\t\tObject.defineProperty(instance, \"action\", {\n\t\t\tget: () => `?/remote=${__.id}`,\n\t\t\tenumerable: true\n\t\t});\n\t\tObject.defineProperty(instance, \"fields\", { get() {\n\t\t\treturn create_field_proxy({}, () => get_cache(__, get_request_store().state)?.[\"\"]?.input ?? {}, (path, value) => {\n\t\t\t\tconst cache = get_cache(__, get_request_store().state);\n\t\t\t\tconst entry = cache[\"\"];\n\t\t\t\tif (entry?.submission) return;\n\t\t\t\tif (path.length === 0) {\n\t\t\t\t\t(cache[\"\"] ??= {}).input = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst input = entry?.input ?? {};\n\t\t\t\tdeep_set(input, path.map(String), value);\n\t\t\t\t(cache[\"\"] ??= {}).input = input;\n\t\t\t}, () => flatten_issues(get_cache(__, get_request_store().state)?.[\"\"]?.issues ?? []));\n\t\t} });\n\t\tObject.defineProperty(instance, \"result\", { get() {\n\t\t\ttry {\n\t\t\t\treturn get_cache(__, get_request_store().state)?.[\"\"]?.result;\n\t\t\t} catch {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} });\n\t\tObject.defineProperty(instance, \"pending\", { get: () => 0 });\n\t\tObject.defineProperty(instance, \"submitted\", { get: () => false });\n\t\tObject.defineProperty(instance, \"preflight\", { value: () => instance });\n\t\tObject.defineProperty(instance, \"validate\", { value: () => {\n\t\t\tthrow new Error(\"Cannot call validate() on the server\");\n\t\t} });\n\t\tObject.defineProperty(instance, \"submit\", { value: () => {\n\t\t\tthrow new Error(\"Cannot call submit() on the server\");\n\t\t} });\n\t\tObject.defineProperty(instance, \"element\", { get: () => null });\n\t\tif (key == void 0) Object.defineProperty(instance, \"for\", { \n\t\t/** @type {RemoteForm<any, any>['for']} */\nvalue: (key) => {\n\t\t\tconst { state } = get_request_store();\n\t\t\tconst cache_key = __.id + \"|\" + JSON.stringify(key);\n\t\t\tlet instance = (state.remote.forms ??= /* @__PURE__ */ new Map()).get(cache_key);\n\t\t\tif (!instance) {\n\t\t\t\tinstance = create_instance(key);\n\t\t\t\tinstance.__.id = `${__.id}/${encodeURIComponent(JSON.stringify(key))}`;\n\t\t\t\tinstance.__.action_id = `${__.id}/${JSON.stringify(key)}`;\n\t\t\t\tinstance.__.name = __.name;\n\t\t\t\tstate.remote.forms.set(cache_key, instance);\n\t\t\t}\n\t\t\treturn instance;\n\t\t} });\n\t\treturn instance;\n\t}\n\treturn create_instance();\n}\n/**\n* @param {{ issues?: InternalRemoteFormIssue[], input?: Record<string, any>, result: any }} output\n* @param {readonly StandardSchemaV1.Issue[]} issues\n* @param {FormData | null} form_data - null if the form is progressively enhanced\n*/\nfunction handle_issues(output, issues, form_data) {\n\toutput.issues = issues.map((issue) => normalize_issue(issue, true));\n\tif (form_data) {\n\t\toutput.input = {};\n\t\tfor (let key of form_data.keys()) {\n\t\t\tif (/^[.\\]]?_/.test(key)) continue;\n\t\t\tconst is_array = key.endsWith(\"[]\");\n\t\t\tconst values = form_data.getAll(key).filter((value) => typeof value === \"string\");\n\t\t\tif (is_array) key = key.slice(0, -2);\n\t\t\tset_nested_value(output.input, key, is_array ? values : values[0]);\n\t\t}\n\t}\n}\n/**\n* Creates an invalid function that can be used to imperatively mark form fields as invalid\n* @returns {InvalidField<any>}\n*/\nfunction create_issues() {\n\treturn new Proxy(\n\t\t/** @param {string} message */\n\t\t(message) => {\n\t\t\tif (typeof message !== \"string\") throw new Error(\"`invalid` should now be imported from `@sveltejs/kit` to throw validation issues. The second parameter provided to the form function (renamed to `issue`) is still used to construct issues, e.g. `invalid(issue.field('message'))`. For more info see https://github.com/sveltejs/kit/pulls/14768\");\n\t\t\treturn create_issue(message);\n\t\t},\n\t\t{ get(target, prop) {\n\t\t\tif (typeof prop === \"symbol\") return target[prop];\n\t\t\treturn create_issue_proxy(prop, []);\n\t\t} }\n\t);\n\t/**\n\t* @param {string} message\n\t* @param {(string | number)[]} path\n\t* @returns {StandardSchemaV1.Issue}\n\t*/\n\tfunction create_issue(message, path = []) {\n\t\treturn {\n\t\t\tmessage,\n\t\t\tpath\n\t\t};\n\t}\n\t/**\n\t* Creates a proxy that builds up a path and returns a function to create an issue\n\t* @param {string | number} key\n\t* @param {(string | number)[]} path\n\t*/\n\tfunction create_issue_proxy(key, path) {\n\t\tconst new_path = [...path, key];\n\t\t/**\n\t\t* @param {string} message\n\t\t* @returns {StandardSchemaV1.Issue}\n\t\t*/\n\t\tconst issue_func = (message) => create_issue(message, new_path);\n\t\treturn new Proxy(issue_func, { get(target, prop) {\n\t\t\tif (typeof prop === \"symbol\") return target[prop];\n\t\t\tif (/^\\d+$/.test(prop)) return create_issue_proxy(parseInt(prop, 10), new_path);\n\t\t\treturn create_issue_proxy(prop, new_path);\n\t\t} });\n\t}\n}\n//#endregion\n//#region node_modules/@sveltejs/kit/src/runtime/app/server/remote/prerender.js\n/** @import { RemoteResource, RemotePrerenderFunction } from '@sveltejs/kit' */\n/** @import { RemotePrerenderInputsGenerator, RemotePrerenderInternals, MaybePromise } from 'types' */\n/** @import { StandardSchemaV1 } from '@standard-schema/spec' */\n/**\n* Creates a remote prerender function. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#prerender) for full documentation.\n*\n* @template Output\n* @overload\n* @param {() => MaybePromise<Output>} fn\n* @param {{ inputs?: RemotePrerenderInputsGenerator<void>, dynamic?: boolean }} [options]\n* @returns {RemotePrerenderFunction<void, Output>}\n* @since 2.27\n*/\n/**\n* Creates a remote prerender function. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#prerender) for full documentation.\n*\n* @template Input\n* @template Output\n* @overload\n* @param {'unchecked'} validate\n* @param {(arg: Input) => MaybePromise<Output>} fn\n* @param {{ inputs?: RemotePrerenderInputsGenerator<Input>, dynamic?: boolean }} [options]\n* @returns {RemotePrerenderFunction<Input, Output>}\n* @since 2.27\n*/\n/**\n* Creates a remote prerender function. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#prerender) for full documentation.\n*\n* @template {StandardSchemaV1} Schema\n* @template Output\n* @overload\n* @param {Schema} schema\n* @param {(arg: StandardSchemaV1.InferOutput<Schema>) => MaybePromise<Output>} fn\n* @param {{ inputs?: RemotePrerenderInputsGenerator<StandardSchemaV1.InferInput<Schema>>, dynamic?: boolean }} [options]\n* @returns {RemotePrerenderFunction<StandardSchemaV1.InferInput<Schema>, Output>}\n* @since 2.27\n*/\n/**\n* @template Input\n* @template Output\n* @param {any} validate_or_fn\n* @param {any} [fn_or_options]\n* @param {{ inputs?: RemotePrerenderInputsGenerator<Input>, dynamic?: boolean }} [maybe_options]\n* @returns {RemotePrerenderFunction<Input, Output>}\n* @since 2.27\n*/\n/*@__NO_SIDE_EFFECTS__*/\nfunction prerender(validate_or_fn, fn_or_options, maybe_options) {\n\tconst maybe_fn = typeof fn_or_options === \"function\" ? fn_or_options : void 0;\n\t/** @type {typeof maybe_options} */\n\tconst options = maybe_options ?? (maybe_fn ? void 0 : fn_or_options);\n\t/** @type {(arg?: Input) => MaybePromise<Output>} */\n\tconst fn = maybe_fn ?? validate_or_fn;\n\t/** @type {(arg?: any) => MaybePromise<Input>} */\n\tconst validate = create_validator(validate_or_fn, maybe_fn);\n\t/** @type {RemotePrerenderInternals} */\n\tconst __ = {\n\t\ttype: \"prerender\",\n\t\tid: \"\",\n\t\tname: \"\",\n\t\thas_arg: !!maybe_fn,\n\t\tinputs: options?.inputs,\n\t\tdynamic: options?.dynamic\n\t};\n\t/** @type {RemotePrerenderFunction<Input, Output> & { __: RemotePrerenderInternals }} */\n\tconst wrapper = (arg) => {\n\t\tconst { event, state } = get_request_store();\n\t\tconst payload = stringify_remote_arg(arg, state.transport);\n\t\t/** @type {Promise<Output> & Partial<RemoteResource<Output>>} */\n\t\tconst promise = get_response(__, payload, state, async () => {\n\t\t\tconst url = `${base}/${app_dir}/remote/${__.id}${payload ? `/${payload}` : \"\"}`;\n\t\t\tif (!state.prerendering && !event.isRemoteRequest) try {\n\t\t\t\tconst response = await fetch(new URL(url, event.url.origin).href);\n\t\t\t\tif (!response.ok) throw new Error(\"Prerendered response not found\");\n\t\t\t\tconst prerendered = await response.json();\n\t\t\t\tif (prerendered.type === \"error\") error(prerendered.status, prerendered.error);\n\t\t\t\treturn parse_remote_response(prerendered.data, state.transport)._;\n\t\t\t} catch {}\n\t\t\tif (state.prerendering?.remote_responses.has(url)) return state.prerendering.remote_responses.get(url);\n\t\t\tconst promise = run_remote_function(event, state, false, () => validate(arg), fn);\n\t\t\tif (state.prerendering) state.prerendering.remote_responses.set(url, promise);\n\t\t\tconst result = await promise;\n\t\t\tif (state.prerendering) {\n\t\t\t\tconst body = {\n\t\t\t\t\ttype: \"result\",\n\t\t\t\t\tdata: stringify({ _: result }, state.transport)\n\t\t\t\t};\n\t\t\t\tstate.prerendering.dependencies.set(url, {\n\t\t\t\t\tbody: JSON.stringify(body),\n\t\t\t\t\tresponse: json(body)\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn result;\n\t\t});\n\t\tpromise.catch(noop);\n\t\treturn promise;\n\t};\n\tObject.defineProperty(wrapper, \"__\", { value: __ });\n\treturn wrapper;\n}\n//#endregion\n//#region node_modules/@sveltejs/kit/src/utils/shared-iterator.js\n/**\n* A pull-style async iterator that fans out a single stream of values to\n* multiple `for await (...)` consumers. Each subscriber gets its own\n* `AsyncGenerator` whose `.next()` resolves whenever a value is pushed via\n* `push(value)`. Multiple consumers see the same values without each one\n* driving an independent underlying source.\n*\n* Backpressure is **latest-wins**: if values arrive faster than a particular\n* consumer drains its iterator, only the most-recently-pushed value is kept\n* pending for that subscriber. Earlier undrained values are dropped. This is\n* appropriate for live data streams (reactive state replication), not for\n* event logs where every value must be delivered.\n*\n* Lifecycle hooks are exposed via the constructor:\n*\n* - `start()` is called when the subscriber count transitions\n* from 0 to 1 (e.g. to start a pump pulling from a real source).\n* - `stop()` is called when the subscriber count transitions\n* from non-zero back to 0 (e.g. to tear down that pump).\n*\n* Either hook may be omitted.\n*\n* The owner is responsible for calling `push(value)` to broadcast values,\n* `done()` to signal natural completion to all subscribers, and `fail(error)`\n* to broadcast a terminal error. After `done()` or `fail()`, the iterator\n* rejects further `subscribe()` calls with the terminal state appropriately.\n*\n* @template T\n*/\nvar SharedIterator = class {\n\t/**\n\t* @typedef {object} Subscriber\n\t* @property {{ value: any } | null} pending\n\t* @property {{ error: unknown } | null} pending_error\n\t* @property {boolean} finished\n\t* @property {((result: IteratorResult<any, void>) => void) | null} waiting_resolve\n\t* @property {((reason: unknown) => void) | null} waiting_reject\n\t*/\n\t/** @type {Set<Subscriber>} */\n\t#subscribers = /* @__PURE__ */ new Set();\n\t/** @type {((instance: SharedIterator<T>) => (() => void)) | undefined} */\n\t#start = void 0;\n\t/** @type {(() => void) | undefined} */\n\t#stop = void 0;\n\t/** Once `done()` or `fail()` has been broadcast, no new values are accepted. */\n\t#closed = false;\n\t/** @type {unknown} */\n\t#terminal_error = void 0;\n\t/** Whether `done()` or `fail()` has been broadcast. */\n\tget closed() {\n\t\treturn this.#closed;\n\t}\n\t/**\n\t* @param {(instance: SharedIterator<T>) => (() => void)} [start]\n\t*/\n\tconstructor(start) {\n\t\tthis.#start = start;\n\t}\n\t/** @param {T} value */\n\tpush(value) {\n\t\tif (this.#closed) return;\n\t\tfor (const subscriber of this.#subscribers) if (subscriber.waiting_resolve) {\n\t\t\tconst resolve = subscriber.waiting_resolve;\n\t\t\tsubscriber.waiting_resolve = null;\n\t\t\tsubscriber.waiting_reject = null;\n\t\t\tresolve({\n\t\t\t\tvalue,\n\t\t\t\tdone: false\n\t\t\t});\n\t\t} else subscriber.pending = { value };\n\t}\n\t/**\n\t* Signal natural completion to all current subscribers, and to any future\n\t* subscriber (which will receive an immediately-done iterator).\n\t*/\n\tdone() {\n\t\tif (this.#closed) return;\n\t\tthis.#closed = true;\n\t\tfor (const subscriber of this.#subscribers) {\n\t\t\tsubscriber.finished = true;\n\t\t\tif (subscriber.waiting_resolve) {\n\t\t\t\tconst resolve = subscriber.waiting_resolve;\n\t\t\t\tsubscriber.waiting_resolve = null;\n\t\t\t\tsubscriber.waiting_reject = null;\n\t\t\t\tresolve({\n\t\t\t\t\tvalue: void 0,\n\t\t\t\t\tdone: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tthis.#subscribers.clear();\n\t}\n\t/**\n\t* Broadcast a terminal error. All current subscribers will reject their\n\t* next `.next()` call with `error`. Future subscribers will also reject\n\t* their first `.next()`.\n\t*\n\t* @param {unknown} error\n\t*/\n\tfail(error) {\n\t\tif (this.#closed) return;\n\t\tthis.#closed = true;\n\t\tthis.#terminal_error = error;\n\t\tfor (const subscriber of this.#subscribers) {\n\t\t\tsubscriber.finished = true;\n\t\t\tif (subscriber.waiting_reject) {\n\t\t\t\tconst reject = subscriber.waiting_reject;\n\t\t\t\tsubscriber.waiting_resolve = null;\n\t\t\t\tsubscriber.waiting_reject = null;\n\t\t\t\treject(error);\n\t\t\t} else subscriber.pending_error = { error };\n\t\t}\n\t\tthis.#subscribers.clear();\n\t}\n\t/**\n\t* Subscribe to the shared stream. Returns an `AsyncGenerator<T>` that\n\t* yields every value pushed after this call (and, if `initial_value` is\n\t* provided, that value as the first yield).\n\t*\n\t* @param {{ initial_value?: { value: T } }} [options]\n\t* `initial_value` lets the caller seed the iterator with a synchronously-\n\t* available current value before any new pushes arrive (e.g. the\n\t* \"last-seen value\" of a reactive resource). Pass it wrapped in an\n\t* object so `undefined` can be distinguished from \"no initial value\".\n\t* @returns {AsyncGenerator<T, void, void>}\n\t*/\n\tsubscribe(options) {\n\t\t/** @type {Subscriber} */\n\t\tconst subscriber = {\n\t\t\tpending: options?.initial_value ? { value: options.initial_value.value } : null,\n\t\t\tpending_error: this.#closed && this.#terminal_error !== void 0 ? { error: this.#terminal_error } : null,\n\t\t\tfinished: this.#closed && this.#terminal_error === void 0,\n\t\t\twaiting_resolve: null,\n\t\t\twaiting_reject: null\n\t\t};\n\t\tif (!subscriber.finished && subscriber.pending_error === null) this.#subscribers.add(subscriber);\n\t\tif (!this.#closed) this.#stop ??= this.#start?.(this);\n\t\tconst unsubscribe = () => {\n\t\t\tsubscriber.finished = true;\n\t\t\tif (this.#subscribers.delete(subscriber) && this.#subscribers.size === 0) this.#stop?.();\n\t\t};\n\t\t/** @type {AsyncGenerator<T, void, void>} */\n\t\tconst iterator = {\n\t\t\tnext() {\n\t\t\t\tif (subscriber.pending_error) {\n\t\t\t\t\tconst { error } = subscriber.pending_error;\n\t\t\t\t\tsubscriber.pending_error = null;\n\t\t\t\t\tunsubscribe();\n\t\t\t\t\treturn Promise.reject(error);\n\t\t\t\t}\n\t\t\t\tif (subscriber.pending) {\n\t\t\t\t\tconst { value } = subscriber.pending;\n\t\t\t\t\tsubscriber.pending = null;\n\t\t\t\t\treturn Promise.resolve({\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tdone: false\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (subscriber.finished) return Promise.resolve({\n\t\t\t\t\tvalue: void 0,\n\t\t\t\t\tdone: true\n\t\t\t\t});\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tsubscriber.waiting_resolve = resolve;\n\t\t\t\t\tsubscriber.waiting_reject = reject;\n\t\t\t\t});\n\t\t\t},\n\t\t\treturn(value) {\n\t\t\t\tunsubscribe();\n\t\t\t\tif (subscriber.waiting_resolve) {\n\t\t\t\t\tconst resolve = subscriber.waiting_resolve;\n\t\t\t\t\tsubscriber.waiting_resolve = null;\n\t\t\t\t\tsubscriber.waiting_reject = null;\n\t\t\t\t\tresolve({\n\t\t\t\t\t\tvalue: void 0,\n\t\t\t\t\t\tdone: true\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn Promise.resolve({\n\t\t\t\t\tvalue,\n\t\t\t\t\tdone: true\n\t\t\t\t});\n\t\t\t},\n\t\t\tthrow(error) {\n\t\t\t\tunsubscribe();\n\t\t\t\tif (subscriber.waiting_reject) {\n\t\t\t\t\tconst reject = subscriber.waiting_reject;\n\t\t\t\t\tsubscriber.waiting_resolve = null;\n\t\t\t\t\tsubscriber.waiting_reject = null;\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t\treturn Promise.reject(error);\n\t\t\t},\n\t\t\t[Symbol.asyncIterator]() {\n\t\t\t\treturn iterator;\n\t\t\t}\n\t\t};\n\t\treturn iterator;\n\t}\n};\n//#endregion\n//#region node_modules/@sveltejs/kit/src/runtime/app/server/remote/query.js\n/** @import { RemoteLiveQuery, RemoteLiveQueryFunction, RemoteQuery, RemoteQueryFunction, RequestEvent } from '@sveltejs/kit' */\n/** @import { RemoteInternals, MaybePromise, RequestState, RemoteQueryLiveInternals, RemoteQueryBatchInternals, RemoteQueryInternals, RemoteLiveQueryUserFunctionReturnType } from 'types' */\n/** @import { StandardSchemaV1 } from '@standard-schema/spec' */\n/**\n* Creates a remote query. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#query) for full documentation.\n*\n* @template Output\n* @overload\n* @param {() => MaybePromise<Output>} fn\n* @returns {RemoteQueryFunction<void, Output>}\n* @since 2.27\n*/\n/**\n* Creates a remote query. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#query) for full documentation.\n*\n* @template Input\n* @template Output\n* @overload\n* @param {'unchecked'} validate\n* @param {(arg: Input) => MaybePromise<Output>} fn\n* @returns {RemoteQueryFunction<Input, Output>}\n* @since 2.27\n*/\n/**\n* Creates a remote query. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#query) for full documentation.\n*\n* @template {StandardSchemaV1} Schema\n* @template Output\n* @overload\n* @param {Schema} schema\n* @param {(arg: StandardSchemaV1.InferOutput<Schema>) => MaybePromise<Output>} fn\n* @returns {RemoteQueryFunction<StandardSchemaV1.InferInput<Schema>, Output, StandardSchemaV1.InferOutput<Schema>>}\n* @since 2.27\n*/\n/**\n* @template Input\n* @template Output\n* @param {any} validate_or_fn\n* @param {(args?: Input) => MaybePromise<Output>} [maybe_fn]\n* @returns {RemoteQueryFunction<Input, Output>}\n* @since 2.27\n*/\n/*@__NO_SIDE_EFFECTS__*/\nfunction query(validate_or_fn, maybe_fn) {\n\t/** @type {(arg?: Input) => Output} */\n\tconst fn = maybe_fn ?? validate_or_fn;\n\t/** @type {(arg?: any) => MaybePromise<Input>} */\n\tconst validate = create_validator(validate_or_fn, maybe_fn);\n\t/** @type {RemoteQueryInternals} */\n\tconst __ = {\n\t\ttype: \"query\",\n\t\tid: \"\",\n\t\tname: \"\",\n\t\tvalidate,\n\t\tbind(payload, validated_arg) {\n\t\t\tconst { event, state } = get_request_store();\n\t\t\treturn create_query_resource(__, payload, event, state, () => run_remote_function(event, {\n\t\t\t\t...state,\n\t\t\t\tis_in_remote_query: true\n\t\t\t}, false, () => validated_arg, fn));\n\t\t}\n\t};\n\t/** @type {RemoteQueryFunction<Input, Output> & { __: RemoteQueryInternals }} */\n\tconst wrapper = (arg) => {\n\t\tif (prerendering) throw new Error(`Cannot call query '${__.name}' while prerendering, as prerendered pages need static data. Use 'prerender' from $app/server instead`);\n\t\tconst { event, state } = get_request_store();\n\t\tconst payload = stringify_remote_arg(arg, state.transport);\n\t\treturn create_query_resource(__, payload, event, state, () => run_remote_function(event, {\n\t\t\t...state,\n\t\t\tis_in_remote_query: true\n\t\t}, false, () => validate(arg), fn));\n\t};\n\tObject.defineProperty(wrapper, \"__\", { value: __ });\n\treturn wrapper;\n}\n/**\n* Creates a live remote query. When called from the browser, the function will be invoked on the server via a streaming `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#query.live) for full documentation.\n*\n* @template Output\n* @overload\n* @param {(arg: void) => RemoteLiveQueryUserFunctionReturnType<Output>} fn\n* @returns {RemoteLiveQueryFunction<void, Output>}\n*/\n/**\n* @template Input\n* @template Output\n* @overload\n* @param {'unchecked'} validate\n* @param {(arg: Input) => RemoteLiveQueryUserFunctionReturnType<Output>} fn\n* @returns {RemoteLiveQueryFunction<Input, Output>}\n*/\n/**\n* @template {StandardSchemaV1} Schema\n* @template Output\n* @overload\n* @param {Schema} schema\n* @param {(arg: StandardSchemaV1.InferOutput<Schema>) => RemoteLiveQueryUserFunctionReturnType<Output>} fn\n* @returns {RemoteLiveQueryFunction<StandardSchemaV1.InferInput<Schema>, Output, StandardSchemaV1.InferOutput<Schema>>}\n*/\n/**\n* @template Input\n* @template Output\n* @param {any} validate_or_fn\n* @param {(args: Input) => RemoteLiveQueryUserFunctionReturnType<Output>} [maybe_fn]\n* @returns {RemoteLiveQueryFunction<Input, Output>}\n*/\n/*@__NO_SIDE_EFFECTS__*/\nfunction live(validate_or_fn, maybe_fn) {\n\t/** @type {(arg: Input) => RemoteLiveQueryUserFunctionReturnType<Output>} */\n\tconst fn = maybe_fn ?? validate_or_fn;\n\t/** @type {(arg?: any) => MaybePromise<Input>} */\n\tconst validate = create_validator(validate_or_fn, maybe_fn);\n\t/**\n\t* @param {any} event\n\t* @param {any} state\n\t* @param {any} get_input\n\t*/\n\tconst run = (event, state, get_input) => run_remote_generator(event, {\n\t\t...state,\n\t\tis_in_remote_query: true\n\t}, false, get_input, fn, __.name);\n\t/** @type {RemoteQueryLiveInternals} */\n\tconst __ = {\n\t\ttype: \"query_live\",\n\t\tid: \"\",\n\t\tname: \"\",\n\t\trun: (event, state, arg) => run(event, state, () => validate(arg)),\n\t\tvalidate,\n\t\tbind(payload, validated_arg) {\n\t\t\tconst { event, state } = get_request_store();\n\t\t\treturn create_live_query_resource(__, payload, event, state, () => run(event, state, () => validated_arg));\n\t\t}\n\t};\n\t/** @type {RemoteLiveQueryFunction<Input, Output> & { __: RemoteQueryLiveInternals }} */\n\tconst wrapper = (arg) => {\n\t\tif (prerendering) throw new Error(`Cannot call query.live '${__.name}' while prerendering, as prerendered pages need static data. Use 'prerender' from $app/server instead`);\n\t\tconst { event, state } = get_request_store();\n\t\tconst payload = stringify_remote_arg(arg, state.transport);\n\t\treturn create_live_query_resource(__, payload, event, state, () => run(event, state, () => validate(arg)));\n\t};\n\tObject.defineProperty(wrapper, \"__\", { value: __ });\n\treturn wrapper;\n}\n/**\n* Creates a batch query function that collects multiple calls and executes them in a single request\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#query.batch) for full documentation.\n*\n* @template Input\n* @template Output\n* @overload\n* @param {'unchecked'} validate\n* @param {(args: Input[]) => MaybePromise<(arg: Input, idx: number) => Output>} fn\n* @returns {RemoteQueryFunction<Input, Output>}\n* @since 2.35\n*/\n/**\n* Creates a batch query function that collects multiple calls and executes them in a single request\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#query.batch) for full documentation.\n*\n* @template {StandardSchemaV1} Schema\n* @template Output\n* @overload\n* @param {Schema} schema\n* @param {(args: StandardSchemaV1.InferOutput<Schema>[]) => MaybePromise<(arg: StandardSchemaV1.InferOutput<Schema>, idx: number) => Output>} fn\n* @returns {RemoteQueryFunction<StandardSchemaV1.InferInput<Schema>, Output, StandardSchemaV1.InferOutput<Schema>>}\n* @since 2.35\n*/\n/**\n* @template Input\n* @template Output\n* @param {any} validate_or_fn\n* @param {(args?: Input[]) => MaybePromise<(arg: Input, idx: number) => Output>} [maybe_fn]\n* @returns {RemoteQueryFunction<Input, Output>}\n* @since 2.35\n*/\n/*@__NO_SIDE_EFFECTS__*/\nfunction batch(validate_or_fn, maybe_fn) {\n\t/** @type {(args?: Input[]) => MaybePromise<(arg: Input, idx: number) => Output>} */\n\tconst fn = maybe_fn ?? validate_or_fn;\n\t/** @type {(arg?: any) => MaybePromise<Input>} */\n\tconst validate = create_validator(validate_or_fn, maybe_fn);\n\t/**\n\t* Enqueues a single call into the current batch (creating one if necessary)\n\t* and returns a promise that resolves with the result for this entry.\n\t*\n\t* @param {string} payload — the stringified raw argument (cache key)\n\t* @param {() => MaybePromise<any>} get_validated — produces the validated argument for this entry\n\t* @returns {Promise<any>}\n\t*/\n\tconst enqueue = (payload, get_validated) => {\n\t\tconst { event, state } = get_request_store();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst batches = state.remote.batches ??= /* @__PURE__ */ new Map();\n\t\t\tlet batched = batches.get(__.id);\n\t\t\tif (!batched) {\n\t\t\t\tbatched = /* @__PURE__ */ new Map();\n\t\t\t\tbatches.set(__.id, batched);\n\t\t\t}\n\t\t\tconst entry = batched.get(payload);\n\t\t\tif (entry) {\n\t\t\t\tentry.resolvers.push({\n\t\t\t\t\tresolve,\n\t\t\t\t\treject\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tbatched.set(payload, {\n\t\t\t\tget_validated,\n\t\t\t\tresolvers: [{\n\t\t\t\t\tresolve,\n\t\t\t\t\treject\n\t\t\t\t}]\n\t\t\t});\n\t\t\tif (batched.size > 1) return;\n\t\t\tsetTimeout(async () => {\n\t\t\t\tbatches.delete(__.id);\n\t\t\t\tconst entries = Array.from(batched.values());\n\t\t\t\ttry {\n\t\t\t\t\treturn await run_remote_function(event, {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tis_in_remote_query: true\n\t\t\t\t\t}, false, async () => Promise.all(entries.map((entry) => entry.get_validated())), async (input) => {\n\t\t\t\t\t\tconst get_result = await fn(input);\n\t\t\t\t\t\tfor (let i = 0; i < entries.length; i++) try {\n\t\t\t\t\t\t\tconst result = get_result(input[i], i);\n\t\t\t\t\t\t\tfor (const resolver of entries[i].resolvers) resolver.resolve(result);\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tfor (const resolver of entries[i].resolvers) resolver.reject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} catch (error) {\n\t\t\t\t\tfor (const entry of batched.values()) for (const resolver of entry.resolvers) resolver.reject(error);\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t});\n\t};\n\t/** @type {RemoteQueryBatchInternals} */\n\tconst __ = {\n\t\ttype: \"query_batch\",\n\t\tid: \"\",\n\t\tname: \"\",\n\t\tvalidate,\n\t\trun: async (args, options) => {\n\t\t\tconst { event, state } = get_request_store();\n\t\t\treturn run_remote_function(event, {\n\t\t\t\t...state,\n\t\t\t\tis_in_remote_query: true\n\t\t\t}, false, async () => Promise.all(args.map(validate)), async (input) => {\n\t\t\t\tconst get_result = await fn(input);\n\t\t\t\treturn Promise.all(input.map(async (arg, i) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttype: \"result\",\n\t\t\t\t\t\t\tdata: get_result(arg, i)\n\t\t\t\t\t\t};\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\terror: await handle_error_and_jsonify(event, state, options, error),\n\t\t\t\t\t\t\tstatus: error instanceof HttpError || error instanceof SvelteKitError ? error.status : 500\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t});\n\t\t},\n\t\tbind(payload, validated_arg) {\n\t\t\tconst { event, state } = get_request_store();\n\t\t\treturn create_query_resource(__, payload, event, state, () => enqueue(payload, () => validated_arg));\n\t\t}\n\t};\n\t/** @type {RemoteQueryFunction<Input, Output> & { __: RemoteQueryBatchInternals }} */\n\tconst wrapper = (arg) => {\n\t\tif (prerendering) throw new Error(`Cannot call query.batch '${__.name}' while prerendering, as prerendered pages need static data. Use 'prerender' from $app/server instead`);\n\t\tconst { event, state } = get_request_store();\n\t\tconst payload = stringify_remote_arg(arg, state.transport);\n\t\treturn create_query_resource(__, payload, event, state, () => enqueue(payload, () => validate(arg)));\n\t};\n\tObject.defineProperty(wrapper, \"__\", { value: __ });\n\treturn wrapper;\n}\n/**\n* Include this value in the returned payload...\n* @param {RequestEvent} event\n* @param {RequestState} state\n* @param {RemoteInternals} internals\n* @param {string} payload\n* @param {() => Promise<any>} fn\n*/\nfunction refresh(event, state, internals, payload, fn) {\n\tif (!internals.id) return;\n\tif (!event.isRemoteRequest) return;\n\tconst key = create_remote_key(internals.id, payload);\n\tconst promise = fn();\n\tpromise.catch(() => {});\n\t(state.remote.explicit ??= /* @__PURE__ */ new Map()).set(key, {\n\t\tinternals,\n\t\tpromise\n\t});\n}\n/**\n* @param {RemoteInternals} __\n* @param {string} payload — the stringified raw argument (i.e. the cache key the client will use)\n* @param {RequestEvent} event\n* @param {RequestState} state\n* @param {() => Promise<any>} fn\n* @returns {RemoteQuery<any>}\n*/\nfunction create_query_resource(__, payload, event, state, fn) {\n\t/** @type {Promise<any> | null} */\n\tlet promise = null;\n\tconst get_promise = () => {\n\t\treturn promise ??= get_response(__, payload, state, fn);\n\t};\n\tconst populate_hydratable = () => {\n\t\tif (__.id && state.is_in_render) get_promise().catch(noop);\n\t};\n\treturn {\n\t\t/** @type {Promise<any>['catch']} */\n\t\tcatch(onrejected) {\n\t\t\treturn get_promise().catch(onrejected);\n\t\t},\n\t\tget current() {\n\t\t\tpopulate_hydratable();\n\t\t},\n\t\tget error() {\n\t\t\tpopulate_hydratable();\n\t\t},\n\t\t/** @type {Promise<any>['finally']} */\n\t\tfinally(onfinally) {\n\t\t\treturn get_promise().finally(onfinally);\n\t\t},\n\t\tget loading() {\n\t\t\tpopulate_hydratable();\n\t\t\treturn true;\n\t\t},\n\t\tget ready() {\n\t\t\tpopulate_hydratable();\n\t\t\treturn false;\n\t\t},\n\t\trefresh() {\n\t\t\tpromise = null;\n\t\t\tdelete get_cache(__, state)[payload];\n\t\t\trefresh(event, state, __, payload, get_promise);\n\t\t\treturn Promise.resolve();\n\t\t},\n\t\t/** @param {any} value */\n\t\tset(value) {\n\t\t\tconst p = promise = Promise.resolve(value);\n\t\t\tget_cache(__, state)[payload] = p;\n\t\t\trefresh(event, state, __, payload, () => p);\n\t\t},\n\t\trun() {\n\t\t\tthrow new Error(`\\`myQuery().run()\\` has been removed — please replace it with \\`myQuery()\\`. See https://github.com/sveltejs/kit/pull/15779 for more details`);\n\t\t},\n\t\t/** @type {Promise<any>['then']} */\n\t\tthen(onfulfilled, onrejected) {\n\t\t\treturn get_promise().then(onfulfilled, onrejected);\n\t\t},\n\t\twithOverride() {\n\t\t\tthrow new Error(`Cannot call '${__.name}.withOverride()' on the server`);\n\t\t},\n\t\tget [Symbol.toStringTag]() {\n\t\t\treturn \"QueryResource\";\n\t\t}\n\t};\n}\n/**\n* @param {RemoteQueryLiveInternals} __\n* @param {string} payload — the stringified raw argument (i.e. the cache key the client will use)\n* @param {RequestEvent} event\n* @param {RequestState} state\n* @param {() => AsyncGenerator<any, void, void>} get_generator\n* @returns {RemoteLiveQuery<any>}\n*/\nfunction create_live_query_resource(__, payload, event, state, get_generator) {\n\t/** @type {Promise<any> | null} */\n\tlet promise = null;\n\tconst get_first_value = async () => {\n\t\tfor await (const value of get_generator()) return value;\n\t\tthrow new Error(`query.live '${__.name}' did not yield a value`);\n\t};\n\tconst get_promise = () => {\n\t\treturn promise ??= get_response(__, payload, state, get_first_value);\n\t};\n\tconst populate_hydratable = () => {\n\t\tif (__.id && state.is_in_render) get_promise().catch(noop);\n\t};\n\treturn {\n\t\t/** @type {Promise<any>['catch']} */\n\t\tcatch(onrejected) {\n\t\t\treturn get_promise().catch(onrejected);\n\t\t},\n\t\tget current() {\n\t\t\tpopulate_hydratable();\n\t\t},\n\t\tget error() {\n\t\t\tpopulate_hydratable();\n\t\t},\n\t\t/** @type {Promise<any>['finally']} */\n\t\tfinally(onfinally) {\n\t\t\treturn get_promise().finally(onfinally);\n\t\t},\n\t\tget done() {\n\t\t\tpopulate_hydratable();\n\t\t\treturn false;\n\t\t},\n\t\tget loading() {\n\t\t\tpopulate_hydratable();\n\t\t\treturn true;\n\t\t},\n\t\tget ready() {\n\t\t\tpopulate_hydratable();\n\t\t\treturn false;\n\t\t},\n\t\tget connected() {\n\t\t\tpopulate_hydratable();\n\t\t\treturn false;\n\t\t},\n\t\treconnect() {\n\t\t\tpromise = null;\n\t\t\tdelete get_cache(__, state)[payload];\n\t\t\trefresh(event, state, __, payload, get_promise);\n\t\t\treturn Promise.resolve();\n\t\t},\n\t\t/** @ts-expect-error This method no longer exists */\n\t\trun() {\n\t\t\tthrow new Error(\"`.run()` has been removed from live queries. Use `for await (const value of liveQuery())` instead.\");\n\t\t},\n\t\t/** @type {Promise<any>['then']} */\n\t\tthen(onfulfilled, onrejected) {\n\t\t\treturn get_promise().then(onfulfilled, onrejected);\n\t\t},\n\t\t[Symbol.asyncIterator]() {\n\t\t\tconst key = create_remote_key(__.id, payload);\n\t\t\tconst cache = state.remote.live_iterators ??= /* @__PURE__ */ new Map();\n\t\t\tlet cached = cache.get(key);\n\t\t\tif (!cached) {\n\t\t\t\tcached = create_shared_live_iterator(event.request.signal, get_generator);\n\t\t\t\tcache.set(key, cached);\n\t\t\t}\n\t\t\treturn cached.subscribe();\n\t\t},\n\t\tget [Symbol.toStringTag]() {\n\t\t\treturn \"LiveQueryResource\";\n\t\t}\n\t};\n}\n/**\n* Wraps a lazily-created live-query generator so that multiple `for await`\n* consumers within the same request share one underlying iteration. The first\n* subscriber starts the generator; values are broadcast to all subscribers\n* via a `SharedIterator`. When the last subscriber unsubscribes, the generator\n* is closed via `generator.return(undefined)`.\n*\n* If `signal` aborts (typically because the client has disconnected), the\n* pump is torn down and any in-flight `next()` calls on consumer iterators\n* resolve with `{ done: true }`, so suspended `for await` loops unwind\n* cleanly rather than leaking.\n*\n* @param {AbortSignal} signal\n* @param {() => AsyncGenerator<any, void, void>} get_generator\n*/\nfunction create_shared_live_iterator(signal, get_generator) {\n\treturn new SharedIterator((instance) => {\n\t\tif (signal.aborted) {\n\t\t\tinstance.done();\n\t\t\treturn noop;\n\t\t}\n\t\tconst generator = get_generator();\n\t\tlet aborted = false;\n\t\tconst close = () => {\n\t\t\taborted = true;\n\t\t\tgenerator.return().catch(noop);\n\t\t};\n\t\tsignal.addEventListener(\"abort\", () => (close(), instance.done()), { once: true });\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\twhile (true) {\n\t\t\t\t\tconst result = await generator.next();\n\t\t\t\t\tif (result.done) {\n\t\t\t\t\t\tinstance.done();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tinstance.push(result.value);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (!aborted) instance.fail(error);\n\t\t\t} finally {\n\t\t\t\tclose();\n\t\t\t}\n\t\t})();\n\t\treturn close;\n\t});\n}\nObject.defineProperty(query, \"batch\", {\n\tvalue: batch,\n\tenumerable: true\n});\nObject.defineProperty(query, \"live\", {\n\tvalue: live,\n\tenumerable: true\n});\n//#endregion\n//#region node_modules/@sveltejs/kit/src/runtime/app/server/remote/requested.js\n/** @import { RemoteLiveQuery, RemoteLiveQueryFunction, RemoteQuery, RemoteQueryFunction, RequestedResult, QueryRequestedResult, LiveQueryRequestedResult } from '@sveltejs/kit' */\n/** @import { MaybePromise, RemoteAnyQueryInternals } from 'types' */\n/**\n* Inside a remote `command` or `form` callback, returns an iterable\n* of `{ arg, query }` entries for the query instances the client asked to refresh, up to\n* the supplied `limit`. Each `query` is a `RemoteQuery` bound to the original\n* client-side cache key, so `refresh()` / `set()` propagate correctly even when\n* the query's schema transforms the input. `arg` is the *validated* argument,\n* i.e. the value after the schema has run (so `InferOutput<Schema>` for queries\n* declared with a Standard Schema).\n*\n* Arguments that fail validation or exceed `limit` are recorded as failures in\n* the response to the client.\n* See [Client-requested refreshes](https://svelte.dev/docs/kit/remote-functions#Single-flight-mutations-Client-requested-refreshes)\n* for usage in a remote `command` or `form`.\n*\n* @example\n* ```ts\n* import { requested } from '$app/server';\n*\n* for (const { arg, query } of requested(getPost, 5)) {\n* \t// `arg` is the validated argument; `query` is bound to the client's\n* \t// cache key. It's safe to throw away this promise -- SvelteKit will\n* \t// await it and forward any errors to the client.\n* \tvoid query.refresh();\n* }\n* ```\n*\n* As a shorthand for the above, you can also call `refreshAll` on the result:\n*\n* @example\n* ```ts\n* import { requested } from '$app/server';\n*\n* await requested(getPost, 5).refreshAll();\n* ```\n*\n* Works with `query.batch` as well — refreshes for individual entries are\n* collected into a single batched call.\n*\n* For live queries, the same applies, but with `reconnect` and `reconnectAll`.\n*\n* @template Input\n* @template Output\n* @template [Validated=Input]\n* @overload\n* @param {RemoteQueryFunction<Input, Output, Validated>} query\n* @param {number} limit\n* @returns {QueryRequestedResult<Validated, Output>}\n*/\n/**\n* Inside a remote `command` or `form` callback, returns an iterable\n* of `{ arg, query }` entries for the live query instances the client asked to reconnect, up to\n* the supplied `limit`. Each `query` is a `RemoteLiveQuery` bound to the original\n* client-side cache key, so `reconnect()` propagates correctly even when\n* the query's schema transforms the input. `arg` is the *validated* argument.\n*\n* Arguments that fail validation or exceed `limit` are recorded as failures in\n* the response to the client.\n* See [Client-requested refreshes](https://svelte.dev/docs/kit/remote-functions#Single-flight-mutations-Client-requested-refreshes)\n* for usage in a remote `command` or `form`.\n*\n* @example\n* ```ts\n* import { requested } from '$app/server';\n*\n* for (const { query } of requested(getPost, 5)) {\n* \tvoid query.reconnect();\n* }\n* ```\n*\n* As a shorthand, you can also call `reconnectAll` on the result:\n*\n* @example\n* ```ts\n* import { requested } from '$app/server';\n*\n* await requested(getPost, 5).reconnectAll();\n* ```\n*\n* @template Input\n* @template Output\n* @template [Validated=Input]\n* @overload\n* @param {RemoteLiveQueryFunction<Input, Output, Validated>} query\n* @param {number} limit\n* @returns {LiveQueryRequestedResult<Validated, Output>}\n*/\n/**\n* @template Input\n* @template Output\n* @template [Validated=Input]\n* @param {RemoteQueryFunction<Input, Output, Validated> | RemoteLiveQueryFunction<Input, Output, Validated>} query\n* @param {number} limit\n* @returns {RequestedResult<Validated, Output>}\n*/\nfunction requested(query, limit) {\n\tconst { event, state } = get_request_store();\n\tconst internals = query.__;\n\tif (internals?.type !== \"query\" && internals?.type !== \"query_batch\" && internals?.type !== \"query_live\") throw new Error(\"requested(...) expects a query function created with query(...), query.batch(...), or query.live(...)\");\n\tconst __ = internals;\n\tconst payloads = state.remote.requested?.get(__.id) ?? [];\n\tif (!state.is_in_remote_form_or_command) throw new Error(\"requested(...) can only be called in the context of a command/form remote function\");\n\tconst [selected, skipped] = split_limit(payloads, limit);\n\t/**\n\t* Registers the failure exactly like `.set()` registers a value: the error record\n\t* is serialized to the client (putting the query there into a failed state), and\n\t* subsequent server-side calls of the query with the same argument reject with it.\n\t* @param {string} payload\n\t* @param {unknown} error\n\t*/\n\tconst record_failure = (payload, error) => {\n\t\tconst promise = Promise.reject(error);\n\t\tpromise.catch(noop);\n\t\tget_cache(__, state)[payload] = promise;\n\t\trefresh(event, state, __, payload, () => promise);\n\t};\n\tfor (const payload of skipped) record_failure(payload, new HttpError(400, `Requested refresh was rejected because it exceeded requested(${__.name}, ${limit}) limit`));\n\tconst result = {\n\t\t*[Symbol.iterator]() {\n\t\t\tfor (const payload of selected) try {\n\t\t\t\tconst parsed = parse_remote_arg(payload, state.transport);\n\t\t\t\tconst validated = __.validate(parsed);\n\t\t\t\tif (is_thenable(validated)) throw new Error(`requested(${__.name}, ${limit}) cannot be used with synchronous iteration because the query validator is async. Use \\`for await ... of\\` instead`);\n\t\t\t\tyield {\n\t\t\t\t\targ: validated,\n\t\t\t\t\tquery: __.bind(payload, validated)\n\t\t\t\t};\n\t\t\t} catch (error) {\n\t\t\t\trecord_failure(payload, error);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t},\n\t\tasync *[Symbol.asyncIterator]() {\n\t\t\tyield* race_all(selected, async (payload) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst parsed = parse_remote_arg(payload, state.transport);\n\t\t\t\t\tconst validated = await __.validate(parsed);\n\t\t\t\t\treturn {\n\t\t\t\t\t\targ: validated,\n\t\t\t\t\t\tquery: __.bind(payload, validated)\n\t\t\t\t\t};\n\t\t\t\t} catch (error) {\n\t\t\t\t\trecord_failure(payload, error);\n\t\t\t\t\tthrow new Error(`Skipping ${__.name}(${payload})`, { cause: error });\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tasync refreshAll() {\n\t\t\tif (__.type === \"query_live\") throw new Error(\"refreshAll() is invalid for live queries. Use reconnectAll() instead.\");\n\t\t\tfor await (const { query } of result) query.refresh();\n\t\t},\n\t\tasync reconnectAll() {\n\t\t\tif (__.type !== \"query_live\") throw new Error(\"reconnectAll() is invalid for regular queries. Use refreshAll() instead.\");\n\t\t\tfor await (const { query } of result) query.reconnect();\n\t\t}\n\t};\n\treturn result;\n}\n/**\n* @template T\n* @param {Array<T>} array\n* @param {number} limit\n* @returns {[Array<T>, Array<T>]}\n*/\nfunction split_limit(array, limit) {\n\tif (limit === Infinity) return [array, []];\n\tif (!Number.isInteger(limit) || limit < 0) throw new Error(\"Limit must be a non-negative integer or Infinity\");\n\treturn [array.slice(0, limit), array.slice(limit)];\n}\n/**\n* @param {any} value\n* @returns {value is PromiseLike<any>}\n*/\nfunction is_thenable(value) {\n\treturn !!value && (typeof value === \"object\" || typeof value === \"function\") && \"then\" in value;\n}\n/**\n* Runs all callbacks immediately and yields resolved values in completion order.\n* If the promise rejects, it is skipped.\n*\n* @template T\n* @template R\n* @param {Array<T>} array\n* @param {(value: T) => MaybePromise<R>} fn\n* @returns {AsyncIterable<R>}\n*/\nasync function* race_all(array, fn) {\n\t/** @type {Set<Promise<{ promise: Promise<any>, value: Awaited<R> }>>} */\n\tconst pending = /* @__PURE__ */ new Set();\n\tfor (const value of array) {\n\t\t/** @type {Promise<{ promise: Promise<any>, value: Awaited<R> }>} */\n\t\tconst promise = Promise.resolve(fn(value)).then((result) => ({\n\t\t\tpromise,\n\t\t\tvalue: result\n\t\t}));\n\t\tpromise.catch(() => pending.delete(promise));\n\t\tpending.add(promise);\n\t}\n\twhile (pending.size > 0) try {\n\t\tconst { promise, value } = await Promise.race(pending);\n\t\tpending.delete(promise);\n\t\tyield value;\n\t} catch {}\n}\n//#endregion\nexport { command as a, form as i, query as n, prerender as r, requested as t };\n","import { X as __exportAll } from \"./index-server.js\";\nimport \"./shared.js\";\nimport { a as command, n as query } from \"./remote.js\";\nimport \"./paths.js\";\nimport { error } from \"@sveltejs/kit\";\nimport { init_remote_functions } from \"@sveltejs/kit/internal\";\nimport \"@sveltejs/kit/internal/server\";\nimport { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport { execFileSync, spawnSync } from \"node:child_process\";\nimport { createHash } from \"node:crypto\";\nimport { platform, tmpdir } from \"node:os\";\nimport process$1 from \"node:process\";\n//#region ../lib/config.mjs\nvar DEFAULT_IGNORE = [\n\t\"**/package-lock.json\",\n\t\"**/pnpm-lock.yaml\",\n\t\"**/yarn.lock\",\n\t\"**/bun.lock\",\n\t\"**/bun.lockb\",\n\t\"**/*.g.cs\",\n\t\"**/*Snapshot.cs\",\n\t\"**/*.Designer.cs\",\n\t\"**/node_modules/**\",\n\t\"**/.svelte-kit/**\",\n\t\"**/dist/**\",\n\t\"**/build/**\",\n\t\"**/*.min.js\",\n\t\"**/*.min.css\",\n\t\"**/CODE_REVIEW_CORRECTNESS_FINDINGS.md\"\n];\nvar STORE_DIFF_MAX = 4e5;\nvar GUIDELINE_FILES = [\n\t\"REVIEW.md\",\n\t\"CLAUDE.md\",\n\t\"AGENTS.md\"\n];\nfunction unquote(s) {\n\tconst t = String(s || \"\").trim();\n\tif (t.startsWith(\"\\\"\") && t.endsWith(\"\\\"\") || t.startsWith(\"'\") && t.endsWith(\"'\")) return t.slice(1, -1);\n\treturn t;\n}\n/** Minimal YAML: `key: value` and `key:\\n - item`. */\nfunction parseSimpleYaml(text) {\n\tconst result = {};\n\tlet key = null;\n\tfor (const raw of String(text || \"\").split(/\\r?\\n/)) {\n\t\tif (!raw.trim() || raw.trim().startsWith(\"#\")) continue;\n\t\tconst list = raw.match(/^\\s+-\\s+(.*)$/);\n\t\tif (list && key) {\n\t\t\tif (!Array.isArray(result[key])) result[key] = [];\n\t\t\tresult[key].push(unquote(list[1]));\n\t\t\tcontinue;\n\t\t}\n\t\tconst kv = raw.match(/^([A-Za-z][\\w]*)\\s*:\\s*(.*)$/);\n\t\tif (!kv) continue;\n\t\tkey = kv[1];\n\t\tconst v = kv[2].trim();\n\t\tresult[key] = v === \"\" ? [] : unquote(v);\n\t}\n\treturn result;\n}\nfunction globToRegExp(glob) {\n\tlet g = String(glob || \"\").replace(/\\\\/g, \"/\");\n\tif (!g.includes(\"/\")) g = `**/${g}`;\n\tlet s = \"\";\n\tfor (let i = 0; i < g.length; i++) {\n\t\tconst c = g[i];\n\t\tif (c === \"*\" && g[i + 1] === \"*\") if (g[i + 2] === \"/\") {\n\t\t\ts += \"(?:.*/)?\";\n\t\t\ti += 2;\n\t\t} else {\n\t\t\ts += \".*\";\n\t\t\ti += 1;\n\t\t}\n\t\telse if (c === \"*\") s += \"[^/]*\";\n\t\telse if (c === \"?\") s += \"[^/]\";\n\t\telse if (\"+()[]{}|.^$\".includes(c)) s += `\\\\${c}`;\n\t\telse s += c;\n\t}\n\treturn new RegExp(`^${s}$`, \"i\");\n}\nfunction globMatch(filePath, pattern) {\n\tconst norm = String(filePath || \"\").replace(/\\\\/g, \"/\");\n\treturn globToRegExp(pattern).test(norm);\n}\nfunction isIgnored(filePath, patterns) {\n\treturn (patterns || []).some((p) => globMatch(filePath, p));\n}\nfunction isTestPath(filePath) {\n\tconst p = String(filePath || \"\").replace(/\\\\/g, \"/\");\n\treturn /(^|\\/)(__tests__|tests?|spec)s?(\\/|$)/i.test(p) || /\\.(test|spec)\\.[^.]+$/i.test(p);\n}\nfunction readIfExists(path) {\n\ttry {\n\t\treturn existsSync(path) ? readFileSync(path, \"utf8\") : null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nfunction loadReviewConfig(repo) {\n\tconst jsonText = readIfExists(join(repo, \".diff-review.json\"));\n\tconst yamlText = readIfExists(join(repo, \".diff-review.yml\")) || readIfExists(join(repo, \".diff-review.yaml\"));\n\tlet extra = {};\n\tif (jsonText) try {\n\t\textra = JSON.parse(jsonText);\n\t} catch {\n\t\textra = {};\n\t}\n\telse if (yamlText) extra = parseSimpleYaml(yamlText);\n\tconst extraIgnore = Array.isArray(extra.ignore) ? extra.ignore.map(String) : [];\n\tconst rulesFile = extra.rulesFile ? String(extra.rulesFile) : \"REVIEW.md\";\n\tconst rules = readIfExists(join(repo, rulesFile)) || \"\";\n\tconst model = extra.model && extra.model !== \"default\" ? String(extra.model) : null;\n\treturn {\n\t\tignore: [...DEFAULT_IGNORE, ...extraIgnore],\n\t\tmodel,\n\t\trulesFile,\n\t\trules: rules.trim()\n\t};\n}\n/** CLAUDE.md / REVIEW.md / AGENTS.md from repo root and immediate parent dirs of touched files. */\nfunction collectGuidelines(repo, filePaths, { rulesFile = \"REVIEW.md\", maxChars = 8e3, maxTotalChars = 12e3, maxDepth = 1, skipNames = [] } = {}) {\n\tconst skip = new Set(skipNames);\n\tconst names = [.../* @__PURE__ */ new Set([rulesFile, ...GUIDELINE_FILES])].filter((name) => !skip.has(name));\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst out = [];\n\tconst addRel = (rel) => {\n\t\tconst norm = String(rel || \"\").replace(/\\\\/g, \"/\").replace(/^\\/+/, \"\");\n\t\tif (!norm || seen.has(norm)) return;\n\t\tconst text = readIfExists(join(repo, ...norm.split(\"/\")));\n\t\tif (!text || !text.trim()) return;\n\t\tseen.add(norm);\n\t\tout.push({\n\t\t\tpath: norm,\n\t\t\ttext: text.trim()\n\t\t});\n\t};\n\tfor (const name of names) addRel(name);\n\tconst depth = Math.max(1, Number(maxDepth) || 1);\n\tfor (const filePath of filePaths || []) {\n\t\tconst parts = String(filePath || \"\").replace(/\\\\/g, \"/\").split(\"/\").filter(Boolean);\n\t\tconst minLen = Math.max(1, parts.length - depth);\n\t\tfor (let len = parts.length - 1; len >= minLen; len--) {\n\t\t\tconst dir = parts.slice(0, len).join(\"/\");\n\t\t\tfor (const name of names) addRel(`${dir}/${name}`);\n\t\t}\n\t}\n\tlet total = 0;\n\tconst capped = [];\n\tfor (const item of out) {\n\t\tif (total >= maxTotalChars) break;\n\t\tconst room = maxTotalChars - total;\n\t\tconst slice = item.text.slice(0, Math.min(maxChars, room));\n\t\tif (!slice) continue;\n\t\tcapped.push({\n\t\t\tpath: item.path,\n\t\t\ttext: slice\n\t\t});\n\t\ttotal += slice.length;\n\t}\n\treturn capped;\n}\nfunction capDiff(diff, max = STORE_DIFF_MAX) {\n\tconst text = String(diff || \"\");\n\tif (text.length <= max) return {\n\t\tdiff: text,\n\t\tdiffChars: text.length,\n\t\ttruncated: false\n\t};\n\treturn {\n\t\tdiff: `${text.slice(0, max)}\\n\\n… [diff recortado: se guardan ${max} de ${text.length} caracteres]`,\n\t\tdiffChars: text.length,\n\t\ttruncated: true\n\t};\n}\n//#endregion\n//#region ../lib/git.mjs\nfunction assertGitRepo(repo) {\n\tconst raw = String(repo || \"\").trim();\n\tif (!raw) throw new Error(\"Indicá la ruta absoluta de un repositorio git.\");\n\tif (!/[\\\\/]/.test(raw) && !/^[A-Za-z]:/.test(raw)) throw new Error(`\"${raw}\" no es una ruta. Pegá la ruta absoluta del repo (ej. C:\\\\tienda-argenta\\\\tienda-argenta-2).`);\n\tconst resolved = resolve(raw);\n\tif (!resolved || resolved === \".\") throw new Error(\"Indicá la ruta absoluta de un repositorio git.\");\n\tif (!existsSync(resolved)) throw new Error(`No existe la carpeta: ${resolved}`);\n\tif (!existsSync(join(resolved, \".git\"))) throw new Error(`No es un repositorio git (falta .git): ${resolved}`);\n\treturn resolved;\n}\n/**\n* Si `cwd` está dentro de un repo git, devuelve la raíz absoluta; si no, null.\n* Acepta subcarpetas (usa `git rev-parse --show-toplevel`).\n*/\nfunction tryResolveGitRoot(cwd) {\n\tconst raw = String(cwd || \"\").trim();\n\tif (!raw) return null;\n\tconst dir = resolve(raw);\n\tif (!existsSync(dir)) return null;\n\ttry {\n\t\tconst root = execFileSync(\"git\", [\"rev-parse\", \"--show-toplevel\"], {\n\t\t\tcwd: dir,\n\t\t\tencoding: \"utf8\",\n\t\t\twindowsHide: true,\n\t\t\tstdio: [\n\t\t\t\t\"ignore\",\n\t\t\t\t\"pipe\",\n\t\t\t\t\"ignore\"\n\t\t\t]\n\t\t}).trim();\n\t\treturn root ? resolve(root) : null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nfunction git(repo, args, { maxBuffer = 64 * 1024 * 1024 } = {}) {\n\treturn execFileSync(\"git\", args, {\n\t\tcwd: repo,\n\t\tencoding: \"utf8\",\n\t\tmaxBuffer,\n\t\twindowsHide: true\n\t});\n}\nfunction commitLog(repo, mergeBase, branch, limit = 25) {\n\ttry {\n\t\treturn git(repo, [\n\t\t\t\"log\",\n\t\t\t\"--oneline\",\n\t\t\t\"--no-merges\",\n\t\t\t\"-n\",\n\t\t\tString(limit),\n\t\t\t`${mergeBase}..${branch}`\n\t\t]).trim().split(\"\\n\").filter(Boolean);\n\t} catch {\n\t\treturn [];\n\t}\n}\nvar FILE_LINE_CACHE = /* @__PURE__ */ new Map();\nvar FILE_LINE_CACHE_MAX = 48;\nfunction rememberFileLines(key, lines) {\n\tif (FILE_LINE_CACHE.has(key)) FILE_LINE_CACHE.delete(key);\n\tFILE_LINE_CACHE.set(key, lines);\n\twhile (FILE_LINE_CACHE.size > FILE_LINE_CACHE_MAX) {\n\t\tconst oldest = FILE_LINE_CACHE.keys().next().value;\n\t\tFILE_LINE_CACHE.delete(oldest);\n\t}\n}\nfunction showFileLines(repo, rev, path) {\n\tconst resolved = assertGitRepo(repo);\n\tconst safeRev = String(rev || \"\").trim();\n\tconst safePath = String(path || \"\").replace(/\\\\/g, \"/\").trim();\n\tif (!safeRev || !/^[A-Za-z0-9._/\\-]+$/.test(safeRev)) throw new Error(\"Rev inválido.\");\n\tif (!safePath || safePath.startsWith(\"/\") || safePath.includes(\"..\") || safePath.includes(\"\\0\")) throw new Error(\"Ruta inválida.\");\n\tconst key = `${resolved}\\0${safeRev}\\0${safePath}`;\n\tif (FILE_LINE_CACHE.has(key)) return FILE_LINE_CACHE.get(key);\n\tlet text;\n\ttry {\n\t\ttext = git(resolved, [\"show\", `${safeRev}:${safePath}`]);\n\t} catch {\n\t\trememberFileLines(key, null);\n\t\treturn null;\n\t}\n\tif (text.includes(\"\\0\")) {\n\t\trememberFileLines(key, null);\n\t\treturn null;\n\t}\n\tconst raw = text.replace(/\\r\\n/g, \"\\n\");\n\tconst lines = raw.endsWith(\"\\n\") ? raw.slice(0, -1).split(\"\\n\") : raw.split(\"\\n\");\n\trememberFileLines(key, lines);\n\treturn lines;\n}\nfunction listBranches(repo) {\n\tconst names = git(repo, [\n\t\t\"for-each-ref\",\n\t\t\"--sort=-committerdate\",\n\t\t\"--format=%(refname:short)\",\n\t\t\"refs/heads\",\n\t\t\"refs/remotes\"\n\t]).split(\"\\n\").map((s) => s.trim()).filter(Boolean).map((name) => name.replace(/^origin\\//, \"\")).filter((name) => name !== \"HEAD\" && !name.endsWith(\"/HEAD\"));\n\tconst unique = [...new Set(names)];\n\tconst current = git(repo, [\n\t\t\"rev-parse\",\n\t\t\"--abbrev-ref\",\n\t\t\"HEAD\"\n\t]).trim();\n\tconst bases = unique.filter((n) => n === \"develop\" || n === \"main\" || n === \"master\");\n\treturn {\n\t\tbranches: unique,\n\t\tcurrent,\n\t\tdefaultBase: bases.includes(\"develop\") ? \"develop\" : bases.includes(\"main\") ? \"main\" : bases[0] || \"develop\"\n\t};\n}\n/** URL del remote (origin, o el primero disponible). Vacío si no hay. */\nfunction getRemoteUrl(repo, preferred = \"origin\") {\n\ttry {\n\t\tconst url = git(repo, [\n\t\t\t\"remote\",\n\t\t\t\"get-url\",\n\t\t\tpreferred\n\t\t]).trim();\n\t\tif (url) return url;\n\t} catch {}\n\ttry {\n\t\tconst remotes = git(repo, [\"remote\"]).split(\"\\n\").map((s) => s.trim()).filter(Boolean);\n\t\tif (!remotes.length) return \"\";\n\t\treturn git(repo, [\n\t\t\t\"remote\",\n\t\t\t\"get-url\",\n\t\t\tremotes[0]\n\t\t]).trim();\n\t} catch {\n\t\treturn \"\";\n\t}\n}\n//#endregion\n//#region ../lib/extract.mjs\nfunction extractBranchDiff({ repo, branch, base = \"develop\" }) {\n\tif (!branch) throw new Error(\"Falta el branch a revisar.\");\n\tconst config = loadReviewConfig(repo);\n\tconst mergeBase = git(repo, [\n\t\t\"merge-base\",\n\t\tbase,\n\t\tbranch\n\t]).trim();\n\tconst branchSha = git(repo, [\"rev-parse\", branch]).trim();\n\tconst baseSha = git(repo, [\"rev-parse\", base]).trim();\n\tconst nameStatus = git(repo, [\n\t\t\"diff\",\n\t\tmergeBase,\n\t\tbranch,\n\t\t\"--name-status\"\n\t]).trim().split(\"\\n\").filter(Boolean).map((line) => {\n\t\tconst [status, ...rest] = line.split(\"\t\");\n\t\tconst path = rest[rest.length - 1];\n\t\tconst oldPath = rest.length > 1 ? rest[0] : null;\n\t\tlet changeType = \"modified\";\n\t\tif (status.startsWith(\"A\")) changeType = \"added\";\n\t\telse if (status.startsWith(\"D\")) changeType = \"deleted\";\n\t\telse if (status.startsWith(\"R\")) changeType = \"renamed\";\n\t\treturn {\n\t\t\tpath,\n\t\t\toldPath,\n\t\t\tchangeType\n\t\t};\n\t});\n\tconst ignored = [];\n\tconst included = [];\n\tfor (const f of nameStatus) if (isIgnored(f.path, config.ignore)) ignored.push(f.path);\n\telse included.push(f);\n\tconst files = included.map((f) => {\n\t\tlet raw = \"\";\n\t\ttry {\n\t\t\traw = git(repo, [\n\t\t\t\t\"diff\",\n\t\t\t\tmergeBase,\n\t\t\t\tbranch,\n\t\t\t\t\"--\",\n\t\t\t\tf.path\n\t\t\t]);\n\t\t\tconst idx = raw.indexOf(\"\\n@@\");\n\t\t\tif (idx !== -1) raw = raw.slice(idx + 1);\n\t\t} catch {\n\t\t\traw = \"\";\n\t\t}\n\t\tconst capped = capDiff(raw);\n\t\treturn {\n\t\t\tpath: f.path,\n\t\t\toldPath: f.oldPath || void 0,\n\t\t\tchangeType: f.changeType,\n\t\t\tdiff: capped.diff,\n\t\t\tdiffChars: capped.diffChars,\n\t\t\ttruncated: capped.truncated,\n\t\t\tmodelChars: capped.diff.length,\n\t\t\tgroup: \"\"\n\t\t};\n\t});\n\tconst shortstat = git(repo, [\n\t\t\"diff\",\n\t\tmergeBase,\n\t\tbranch,\n\t\t\"--shortstat\"\n\t]).trim();\n\tconst insMatch = shortstat.match(/(\\d+) insertion/);\n\tconst delMatch = shortstat.match(/(\\d+) deletion/);\n\treturn {\n\t\tversion: 2,\n\t\trepo,\n\t\tbranch,\n\t\tbaseBranch: base,\n\t\tmergeBase,\n\t\tbranchSha,\n\t\tbaseSha,\n\t\tgeneratedAt: (/* @__PURE__ */ new Date()).toISOString(),\n\t\tintent: \"\",\n\t\tstats: {\n\t\t\tfilesChanged: files.length,\n\t\t\tfilesIgnored: ignored.length,\n\t\t\tfilesTruncated: files.filter((f) => f.truncated).length,\n\t\t\tinsertions: insMatch ? Number(insMatch[1]) : 0,\n\t\t\tdeletions: delMatch ? Number(delMatch[1]) : 0\n\t\t},\n\t\tcontext: {\n\t\t\tcommits: commitLog(repo, mergeBase, branch),\n\t\t\trules: config.rules,\n\t\t\trulesFile: config.rulesFile,\n\t\t\tignored: ignored.slice(0, 40),\n\t\t\ttestsTouched: files.filter((f) => isTestPath(f.path)).map((f) => f.path),\n\t\t\ttestsMissing: files.filter((f) => !isTestPath(f.path)).length,\n\t\t\tguidelines: collectGuidelines(repo, files.map((f) => f.path), {\n\t\t\t\trulesFile: config.rulesFile,\n\t\t\t\tskipNames: config.rules.trim() ? [config.rulesFile] : [],\n\t\t\t\tmaxDepth: 1,\n\t\t\t\tmaxChars: 8e3,\n\t\t\t\tmaxTotalChars: 12e3\n\t\t\t})\n\t\t},\n\t\tfiles,\n\t\tgroups: [],\n\t\tblocks: [],\n\t\tfindings: [],\n\t\tskipped: []\n\t};\n}\n//#endregion\n//#region ../lib/remote-repo.mjs\nvar CACHE_ROOT = join(tmpdir(), \"diff-review-clones\");\nvar MAX_DEEPEN_ROUNDS = 8;\nvar DEEPEN_BY = \"50\";\nfunction looksLikeGitUrl(value) {\n\tconst v = String(value || \"\").trim();\n\tif (!v) return false;\n\tif (/^(https?:\\/\\/|git@|ssh:\\/\\/)/i.test(v)) return true;\n\tif (/\\.git$/i.test(v) && !/^[A-Za-z]:/.test(v) && !v.startsWith(\"/\") && !v.startsWith(\"\\\\\")) return true;\n\treturn false;\n}\nfunction normalizeGitUrl(url) {\n\tconst raw = String(url || \"\").trim();\n\tif (!raw) throw new Error(\"Indicá la URL del repositorio.\");\n\tif (!looksLikeGitUrl(raw)) throw new Error(`\"${raw}\" no parece una URL git. Usá https://…, git@… o ssh://…`);\n\tif (/^(file:|javascript:|data:)/i.test(raw)) throw new Error(\"Esquema de URL no permitido.\");\n\treturn raw.replace(/\\/$/, \"\");\n}\nfunction cacheDirFor(url) {\n\treturn join(CACHE_ROOT, createHash(\"sha1\").update(url).digest(\"hex\").slice(0, 16));\n}\nfunction runGit(args, { cwd, timeout = 300 * 1e3 } = {}) {\n\treturn execFileSync(\"git\", args, {\n\t\tcwd,\n\t\tencoding: \"utf8\",\n\t\twindowsHide: true,\n\t\ttimeout,\n\t\tmaxBuffer: 64 * 1024 * 1024\n\t});\n}\n/** Lista heads del remote sin clonar. */\nfunction listRemoteBranches(url) {\n\tconst remote = normalizeGitUrl(url);\n\tlet raw;\n\ttry {\n\t\traw = runGit([\n\t\t\t\"ls-remote\",\n\t\t\t\"--heads\",\n\t\t\tremote\n\t\t]);\n\t} catch (err) {\n\t\tconst stderr = String(\n\t\t\t/** @type {{ stderr?: string }} */\n\t\t\terr.stderr || err.message || err\n\t\t);\n\t\tthrow new Error(\"No se pudo listar branches del remote: \" + stderr.split(\"\\n\").find(Boolean));\n\t}\n\tconst branches = [...new Set(raw.split(\"\\n\").map((line) => line.trim()).filter(Boolean).map((line) => {\n\t\treturn (line.split(\"\t\")[1] || \"\").replace(/^refs\\/heads\\//, \"\");\n\t}).filter(Boolean))].sort((a, b) => a.localeCompare(b));\n\tif (!branches.length) throw new Error(\"El remote no expone branches (refs/heads).\");\n\treturn {\n\t\tbranches,\n\t\tcurrent: \"\",\n\t\tdefaultBase: branches.includes(\"develop\") ? \"develop\" : branches.includes(\"main\") ? \"main\" : branches.includes(\"master\") ? \"master\" : branches[0]\n\t};\n}\nfunction fetchRef(repo, ref) {\n\tconst name = String(ref || \"\").trim();\n\tif (!name) return;\n\ttry {\n\t\trunGit([\n\t\t\t\"rev-parse\",\n\t\t\t\"--verify\",\n\t\t\tname\n\t\t], { cwd: repo });\n\t\treturn;\n\t} catch {}\n\trunGit([\n\t\t\"fetch\",\n\t\t\"--depth\",\n\t\tDEEPEN_BY,\n\t\t\"origin\",\n\t\t`refs/heads/${name}:refs/heads/${name}`\n\t], { cwd: repo });\n}\nfunction deepenUntilMergeBase(repo, base, branch) {\n\tfor (let i = 0; i < MAX_DEEPEN_ROUNDS; i++) try {\n\t\tgit(repo, [\n\t\t\t\"merge-base\",\n\t\t\tbase,\n\t\t\tbranch\n\t\t]);\n\t\treturn;\n\t} catch {\n\t\trunGit([\n\t\t\t\"fetch\",\n\t\t\t\"--deepen\",\n\t\t\tDEEPEN_BY,\n\t\t\t\"origin\",\n\t\t\t`refs/heads/${base}:refs/heads/${base}`,\n\t\t\t`refs/heads/${branch}:refs/heads/${branch}`\n\t\t], { cwd: repo });\n\t}\n\tthrow new Error(`No se encontró merge-base entre \"${base}\" y \"${branch}\" (historial shallow insuficiente). Probá con más historia o usá una carpeta local.`);\n}\n/**\n* Asegura un worktree local (cache en tmp) con branch y base disponibles para diff.\n* @returns {string} ruta absoluta del clone\n*/\nfunction ensureRemoteWorktree(url, branch, base = \"develop\") {\n\tconst remote = normalizeGitUrl(url);\n\tconst b = String(branch || \"\").trim();\n\tconst baseRef = String(base || \"develop\").trim() || \"develop\";\n\tif (!b) throw new Error(\"Falta el branch a revisar.\");\n\tmkdirSync(CACHE_ROOT, { recursive: true });\n\tconst dir = cacheDirFor(remote);\n\tif (!existsSync(join(dir, \".git\"))) {\n\t\tif (existsSync(dir)) rmSync(dir, {\n\t\t\trecursive: true,\n\t\t\tforce: true\n\t\t});\n\t\ttry {\n\t\t\trunGit([\n\t\t\t\t\"clone\",\n\t\t\t\t\"--filter=blob:none\",\n\t\t\t\t\"--depth\",\n\t\t\t\tDEEPEN_BY,\n\t\t\t\t\"--branch\",\n\t\t\t\tb,\n\t\t\t\tremote,\n\t\t\t\tdir\n\t\t\t], { timeout: 600 * 1e3 });\n\t\t} catch (err) {\n\t\t\tif (existsSync(dir)) rmSync(dir, {\n\t\t\t\trecursive: true,\n\t\t\t\tforce: true\n\t\t\t});\n\t\t\tconst stderr = String(\n\t\t\t\t/** @type {{ stderr?: string }} */\n\t\t\t\terr.stderr || err.message || err\n\t\t\t);\n\t\t\tthrow new Error(\"No se pudo clonar el repo: \" + stderr.split(\"\\n\").find(Boolean));\n\t\t}\n\t} else {\n\t\ttry {\n\t\t\trunGit([\n\t\t\t\t\"remote\",\n\t\t\t\t\"set-url\",\n\t\t\t\t\"origin\",\n\t\t\t\tremote\n\t\t\t], { cwd: dir });\n\t\t} catch {}\n\t\tfetchRef(dir, b);\n\t\ttry {\n\t\t\trunGit([\n\t\t\t\t\"checkout\",\n\t\t\t\t\"--force\",\n\t\t\t\tb\n\t\t\t], { cwd: dir });\n\t\t} catch {}\n\t}\n\tif (baseRef !== b) fetchRef(dir, baseRef);\n\tdeepenUntilMergeBase(dir, baseRef, b);\n\treturn dir;\n}\n//#endregion\n//#region ../lib/validate.mjs\nvar GROUP_KINDS = [\n\t\"feat\",\n\t\"fix\",\n\t\"refactor\",\n\t\"perf\",\n\t\"test\",\n\t\"chore\",\n\t\"docs\",\n\t\"infra\"\n];\nvar BLOCK_OPS = [\n\t\"add\",\n\t\"mod\",\n\t\"del\",\n\t\"rename\"\n];\nvar WHY_SOURCES = [\n\t\"code\",\n\t\"commit\",\n\t\"pr\",\n\t\"issue\",\n\t\"inferred\"\n];\nvar FINDING_CLASSES = [\"risk\", \"quality\"];\nvar FINDING_SEVERITIES = [\n\t\"high\",\n\t\"med\",\n\t\"low\",\n\t\"nit\"\n];\nvar FINDING_KINDS = [\n\t\"bug\",\n\t\"race\",\n\t\"auth\",\n\t\"security\",\n\t\"api-break\",\n\t\"missing-test\",\n\t\"perf\",\n\t\"maintainability\",\n\t\"docs\",\n\t\"other\"\n];\nvar SKIP_REASONS = [\n\t\"generated\",\n\t\"lockfile\",\n\t\"format\",\n\t\"vendored\",\n\t\"binary\",\n\t\"trivial\",\n\t\"ignored\"\n];\n//#endregion\n//#region ../lib/review.mjs\nvar MAX = {\n\tintent: 700,\n\tgroupTitle: 100,\n\tgroupIntent: 300,\n\twhat: 240,\n\twhy: 240,\n\tfinding: 360\n};\nfunction text$1(value, max) {\n\tconst raw = String(value ?? \"\").replace(/\\s+/g, \" \").trim();\n\treturn raw.length > max ? `${raw.slice(0, max - 1).trimEnd()}…` : raw;\n}\nfunction oneOf(value, allowed, fallback) {\n\tconst raw = String(value ?? \"\").trim().toLowerCase();\n\treturn allowed.includes(raw) ? raw : fallback;\n}\n/**\n* Rango de líneas de un bloque. `L40-58` es post-imagen (lo que quedó);\n* `-L88-95` es pre-imagen, que es la única forma de señalar líneas borradas.\n*/\nfunction parseLineRange(value) {\n\tconst raw = String(value ?? \"\").trim();\n\tconst match = /^(-)?L?(\\d+)(?:\\s*[-–]\\s*L?(\\d+))?$/i.exec(raw);\n\tif (!match) return null;\n\tconst start = Number(match[2]);\n\tconst end = match[3] ? Number(match[3]) : start;\n\treturn {\n\t\tside: match[1] ? \"old\" : \"new\",\n\t\tstart: Math.min(start, end),\n\t\tend: Math.max(start, end)\n\t};\n}\nfunction formatLineRange(range) {\n\tif (!range) return \"\";\n\tconst prefix = range.side === \"old\" ? \"-L\" : \"L\";\n\treturn range.start === range.end ? `${prefix}${range.start}` : `${prefix}${range.start}-${range.end}`;\n}\nfunction countHunks(files) {\n\tlet total = 0;\n\tfor (const file of files || []) for (const line of String(file.diff || \"\").split(\"\\n\")) if (line.startsWith(\"@@\")) total += 1;\n\treturn total;\n}\nfunction normalizeGroups(raw) {\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst groups = [];\n\tfor (const item of raw || []) {\n\t\tconst id = String(item?.id || \"\").trim();\n\t\tif (!id || seen.has(id)) continue;\n\t\tseen.add(id);\n\t\tgroups.push({\n\t\t\tid,\n\t\t\tkind: oneOf(item.kind, GROUP_KINDS, \"chore\"),\n\t\t\ttitle: text$1(item.title, MAX.groupTitle) || `${oneOf(item.kind, GROUP_KINDS, \"chore\")}: cambios`,\n\t\t\tintent: text$1(item.intent, MAX.groupIntent)\n\t\t});\n\t}\n\treturn groups;\n}\nfunction normalizeBlocks(raw, { groupIds, knownPaths }) {\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst blocks = [];\n\tfor (const item of raw || []) {\n\t\tconst id = String(item?.id || \"\").trim();\n\t\tconst group = String(item?.group || \"\").trim();\n\t\tconst file = String(item?.file || \"\").trim();\n\t\tif (!id || seen.has(id)) continue;\n\t\tif (!groupIds.has(group)) continue;\n\t\tif (knownPaths.size && !knownPaths.has(file)) continue;\n\t\tconst range = parseLineRange(item.lines);\n\t\tseen.add(id);\n\t\tblocks.push({\n\t\t\tid,\n\t\t\tgroup,\n\t\t\tfile,\n\t\t\tlines: range ? formatLineRange(range) : text$1(item.lines, 24),\n\t\t\tside: range?.side || \"new\",\n\t\t\tstart: range?.start ?? 0,\n\t\t\tend: range?.end ?? 0,\n\t\t\top: oneOf(item.op, BLOCK_OPS, \"mod\"),\n\t\t\twhat: text$1(item.what, MAX.what),\n\t\t\twhy: text$1(item.why, MAX.why),\n\t\t\tsource: oneOf(item.source, WHY_SOURCES, \"inferred\")\n\t\t});\n\t}\n\tblocks.sort((a, b) => a.file.localeCompare(b.file) || a.start - b.start);\n\treturn blocks;\n}\nfunction findingKey(finding) {\n\treturn [\n\t\tfinding.file,\n\t\tfinding.line ?? \"\",\n\t\tfinding.kind,\n\t\tfinding.what\n\t].join(\"|\");\n}\nfunction normalizeFindings(raw, { blockIds, knownPaths }) {\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst findings = [];\n\tfor (const item of raw || []) {\n\t\tconst file = String(item?.file || item?.path || \"\").trim();\n\t\tconst what = text$1(item?.what || item?.title, MAX.finding);\n\t\tif (!file || !what) continue;\n\t\tif (knownPaths.size && !knownPaths.has(file)) continue;\n\t\tconst cls = oneOf(item.class, FINDING_CLASSES, \"risk\");\n\t\tconst severity = oneOf(item.severity, FINDING_SEVERITIES, \"med\");\n\t\tconst block = String(item?.block || \"\").trim();\n\t\tconst line = Number.isFinite(Number(item?.line)) ? Number(item.line) : null;\n\t\tconst finding = {\n\t\t\tid: \"\",\n\t\t\tclass: cls,\n\t\t\tseverity,\n\t\t\tblocking: cls === \"risk\" && (item?.blocking === true || severity === \"high\"),\n\t\t\tkind: oneOf(item.kind, FINDING_KINDS, \"other\"),\n\t\t\tfile,\n\t\t\tline,\n\t\t\tblock: blockIds.has(block) ? block : \"\",\n\t\t\twhat,\n\t\t\tfix: text$1(item.fix || item.detail, MAX.finding)\n\t\t};\n\t\tconst key = findingKey(finding);\n\t\tif (seen.has(key)) continue;\n\t\tseen.add(key);\n\t\tfindings.push(finding);\n\t}\n\tconst rank = {\n\t\thigh: 0,\n\t\tmed: 1,\n\t\tlow: 2,\n\t\tnit: 3\n\t};\n\tfindings.sort((a, b) => Number(b.blocking) - Number(a.blocking) || (a.class === b.class ? 0 : a.class === \"risk\" ? -1 : 1) || rank[a.severity] - rank[b.severity] || a.file.localeCompare(b.file));\n\tfindings.forEach((finding, i) => {\n\t\tfinding.id = `f${i + 1}`;\n\t});\n\treturn findings;\n}\nfunction normalizeSkipped(raw, ignored) {\n\tconst byFile = /* @__PURE__ */ new Map();\n\tfor (const path of ignored || []) byFile.set(String(path), {\n\t\tfile: String(path),\n\t\treason: \"ignored\"\n\t});\n\tfor (const item of raw || []) {\n\t\tconst file = String(item?.file || \"\").trim();\n\t\tif (!file) continue;\n\t\tbyFile.set(file, {\n\t\t\tfile,\n\t\t\treason: oneOf(item.reason, SKIP_REASONS, \"trivial\")\n\t\t});\n\t}\n\treturn [...byFile.values()];\n}\n/** Tema donde se dibuja el archivo: el que aporta más bloques, desempatando por orden de tema. */\nfunction dominantGroup(blocks, path, groupOrder) {\n\tconst tally = /* @__PURE__ */ new Map();\n\tfor (const block of blocks) {\n\t\tif (block.file !== path) continue;\n\t\ttally.set(block.group, (tally.get(block.group) || 0) + 1);\n\t}\n\tif (!tally.size) return \"\";\n\treturn [...tally.entries()].sort((a, b) => b[1] - a[1] || groupOrder.indexOf(a[0]) - groupOrder.indexOf(b[0]))[0][0];\n}\n/**\n* Documento final: lo que dijo el modelo, saneado y cruzado contra los archivos\n* reales del diff. Todo lo que no cierra se descarta acá en vez de romper la UI.\n*/\nfunction buildReview({ skeleton, payload, notes = [] }) {\n\tconst files = skeleton.files || [];\n\tconst knownPaths = new Set(files.map((f) => f.path));\n\tconst groups = normalizeGroups(payload?.groups);\n\tconst groupIds = new Set(groups.map((g) => g.id));\n\tconst blocks = normalizeBlocks(payload?.blocks, {\n\t\tgroupIds,\n\t\tknownPaths\n\t});\n\tconst blockIds = new Set(blocks.map((b) => b.id));\n\tconst findings = normalizeFindings(payload?.findings, {\n\t\tblockIds,\n\t\tknownPaths\n\t});\n\tconst skipped = normalizeSkipped(payload?.skipped, skeleton.context?.ignored);\n\tconst usedGroups = new Set(blocks.map((b) => b.group));\n\tconst liveGroups = groups.filter((g) => usedGroups.has(g.id));\n\tconst groupOrder = liveGroups.map((g) => g.id);\n\tconst skippedFiles = new Set(skipped.map((s) => s.file));\n\tconst orphans = files.filter((f) => !blocks.some((b) => b.file === f.path) && !skippedFiles.has(f.path));\n\tif (orphans.length) notes = [...notes, `${orphans.length} archivo(s) quedaron sin explicación del modelo.`];\n\tconst decorated = files.map((file) => ({\n\t\t...file,\n\t\tgroup: dominantGroup(blocks, file.path, groupOrder)\n\t}));\n\treturn {\n\t\t...skeleton,\n\t\tversion: 2,\n\t\tintent: text$1(payload?.intent, MAX.intent),\n\t\tgroups: liveGroups,\n\t\tblocks,\n\t\tfindings,\n\t\tskipped,\n\t\tfiles: decorated,\n\t\tstats: {\n\t\t\t...skeleton.stats,\n\t\t\thunks: countHunks(files)\n\t\t},\n\t\tnotes,\n\t\tgeneratedAt: (/* @__PURE__ */ new Date()).toISOString()\n\t};\n}\n//#endregion\n//#region src/lib/server/pick-folder.ts\n/**\n* Diálogo nativo de carpetas.\n* Windows: PowerShell DPI-aware (exit 2 = canceló; 1 = error → fallback).\n* Otros: @bindrs/rfd; si falla, shell (VBS / osascript / zenity).\n*/\nasync function pickFolder() {\n\tif (platform() === \"win32\") try {\n\t\treturn pickWindowsDpiAware();\n\t} catch (err) {\n\t\tconsole.warn(\"[diff-review] picker DPI-aware falló, probando rfd/fallback:\", err instanceof Error ? err.message : err);\n\t}\n\ttry {\n\t\treturn pickWithRfdWorker();\n\t} catch (err) {\n\t\tconsole.warn(\"[diff-review] @bindrs/rfd no disponible, usando fallback:\", err instanceof Error ? err.message : err);\n\t\treturn pickFolderFallback();\n\t}\n}\nfunction resolveNodeBin() {\n\tif (process$1.execPath && /node(\\.exe)?$/i.test(process$1.execPath)) return process$1.execPath;\n\treturn \"node\";\n}\nfunction writeUtf8Bom(path, content) {\n\twriteFileSync(path, `\\uFEFF${content}`, \"utf8\");\n}\n/**\n* IFileOpenDialog nativo (Vista+) + DPI Per-Monitor V2 ANTES de cualquier UI.\n* Exit: 0 ok, 2 canceló, otro error → fallback.\n*/\nfunction pickWindowsDpiAware() {\n\tconst dir = mkdtempSync(join(tmpdir(), \"diff-review-pick-\"));\n\tconst script = join(dir, \"pick.ps1\");\n\tconst outFile = join(dir, \"path.txt\");\n\ttry {\n\t\twriteUtf8Bom(script, `\n$ErrorActionPreference = 'Stop'\n\n# 1) DPI awareness ANTES de cargar WinForms / crear ventanas.\nAdd-Type @'\nusing System;\nusing System.Runtime.InteropServices;\npublic static class DiffReviewDpi {\n [DllImport(\"user32.dll\")] public static extern IntPtr SetThreadDpiAwarenessContext(IntPtr dpiContext);\n [DllImport(\"shcore.dll\")] public static extern int SetProcessDpiAwareness(int value);\n [DllImport(\"user32.dll\")] public static extern bool SetProcessDPIAware();\n public static readonly IntPtr PerMonitorV2 = unchecked((IntPtr)(-4));\n public static void Enable() {\n try { SetThreadDpiAwarenessContext(PerMonitorV2); return; } catch { }\n try { SetProcessDpiAwareness(2); return; } catch { }\n try { SetProcessDPIAware(); } catch { }\n }\n}\n'@\n[DiffReviewDpi]::Enable()\n\n# 2) IFileOpenDialog COM (mismo dialogo nitido que el Explorer).\nAdd-Type @'\nusing System;\nusing System.Runtime.InteropServices;\n\n[ComImport, Guid(\"DC1C5A9C-E88A-4DDE-A5A1-60F82A20AEF7\")]\ninternal class FileOpenDialogRCW { }\n\n[ComImport, Guid(\"42F85136-DB7E-439C-85F1-E4075D135FC8\"),\n InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\ninternal interface IFileDialog {\n [PreserveSig] int Show(IntPtr parent);\n void SetFileTypes(uint cFileTypes, IntPtr rgFilterSpec);\n void SetFileTypeIndex(uint iFileType);\n void GetFileTypeIndex(out uint piFileType);\n void Advise(IntPtr pfde, out uint pdwCookie);\n void Unadvise(uint dwCookie);\n void SetOptions(uint fos);\n void GetOptions(out uint pfos);\n void SetDefaultFolder(IShellItem psi);\n void SetFolder(IShellItem psi);\n void GetFolder(out IShellItem ppsi);\n void GetCurrentSelection(out IShellItem ppsi);\n void SetFileName([MarshalAs(UnmanagedType.LPWStr)] string pszName);\n void GetFileName([MarshalAs(UnmanagedType.LPWStr)] out string pszName);\n void SetTitle([MarshalAs(UnmanagedType.LPWStr)] string pszTitle);\n void SetOkButtonLabel([MarshalAs(UnmanagedType.LPWStr)] string pszText);\n void SetFileNameLabel([MarshalAs(UnmanagedType.LPWStr)] string pszLabel);\n void GetResult(out IShellItem ppsi);\n void AddPlace(IShellItem psi, int fdap);\n void SetDefaultExtension([MarshalAs(UnmanagedType.LPWStr)] string pszDefaultExtension);\n void Close(int hr);\n void SetClientGuid(ref Guid guid);\n void ClearClientData();\n void SetFilter(IntPtr pFilter);\n}\n\n[ComImport, Guid(\"43826D1E-E718-42EE-BC55-A1E261C37BFE\"),\n InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\ninternal interface IShellItem {\n void BindToHandler(IntPtr pbc, ref Guid bhid, ref Guid riid, out IntPtr ppv);\n void GetParent(out IShellItem ppsi);\n void GetDisplayName(uint sigdnName, out IntPtr ppszName);\n void GetAttributes(uint sfgaoMask, out uint psfgaoAttribs);\n void Compare(IShellItem psi, uint hint, out int piOrder);\n}\n\npublic static class DiffReviewFolderPicker {\n const uint FOS_PICKFOLDERS = 0x00000020;\n const uint FOS_FORCEFILESYSTEM = 0x00000040;\n const uint FOS_PATHMUSTEXIST = 0x00000800;\n const uint SIGDN_FILESYSPATH = 0x80058000;\n\n [DllImport(\"ole32.dll\")]\n static extern void CoTaskMemFree(IntPtr pv);\n\n public static string Pick(string title) {\n var dialog = (IFileDialog)new FileOpenDialogRCW();\n uint options;\n dialog.GetOptions(out options);\n dialog.SetOptions(options | FOS_PICKFOLDERS | FOS_FORCEFILESYSTEM | FOS_PATHMUSTEXIST);\n if (!string.IsNullOrEmpty(title)) dialog.SetTitle(title);\n int hr = dialog.Show(IntPtr.Zero);\n if (hr != 0) return null; // cancel / error\n IShellItem item;\n dialog.GetResult(out item);\n IntPtr psz;\n item.GetDisplayName(SIGDN_FILESYSPATH, out psz);\n string path = Marshal.PtrToStringUni(psz);\n CoTaskMemFree(psz);\n return path;\n }\n}\n'@\n\n$path = [DiffReviewFolderPicker]::Pick('Elegi el repositorio git')\nif ([string]::IsNullOrWhiteSpace($path)) { exit 2 }\n[System.IO.File]::WriteAllText(${JSON.stringify(outFile)}, $path)\nexit 0\n`.trim() + \"\\r\\n\");\n\t\tconst result = spawnSync(\"powershell.exe\", [\n\t\t\t\"-STA\",\n\t\t\t\"-NoProfile\",\n\t\t\t\"-ExecutionPolicy\",\n\t\t\t\"Bypass\",\n\t\t\t\"-File\",\n\t\t\tscript\n\t\t], {\n\t\t\tencoding: \"utf8\",\n\t\t\twindowsHide: false,\n\t\t\tstdio: [\n\t\t\t\t\"ignore\",\n\t\t\t\t\"pipe\",\n\t\t\t\t\"pipe\"\n\t\t\t],\n\t\t\ttimeout: 600 * 1e3\n\t\t});\n\t\tif (result.status === 2) return null;\n\t\tif (result.status !== 0) {\n\t\t\tconst err = (result.stderr || result.stdout || result.error?.message || `exit ${result.status}`).toString().trim();\n\t\t\tthrow new Error(err || \"powershell picker fallo\");\n\t\t}\n\t\tif (!existsSync(outFile)) throw new Error(\"powershell picker no escribio la ruta\");\n\t\tconst path = readFileSync(outFile, \"utf8\").replace(/^\\uFEFF/, \"\").trim();\n\t\tif (!path) throw new Error(\"powershell picker devolvio ruta vacia\");\n\t\treturn path;\n\t} finally {\n\t\ttry {\n\t\t\trmSync(dir, {\n\t\t\t\trecursive: true,\n\t\t\t\tforce: true\n\t\t\t});\n\t\t} catch {}\n\t}\n}\nfunction pickWithRfdWorker() {\n\tconst dir = mkdtempSync(join(tmpdir(), \"diff-review-rfd-\"));\n\tconst worker = join(dir, \"pick.mjs\");\n\tconst outFile = join(dir, \"path.txt\");\n\ttry {\n\t\twriteFileSync(worker, `import { createRequire } from 'node:module';\nimport { existsSync, writeFileSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\n\nconst require = createRequire(import.meta.url);\nconst outFile = ${JSON.stringify(outFile)};\n\nfunction findRfdIndex() {\n const seen = new Set();\n let dir = process.cwd();\n for (let i = 0; i < 16; i++) {\n if (seen.has(dir)) break;\n seen.add(dir);\n const indexJs = join(dir, 'node_modules', '@bindrs', 'rfd', 'index.js');\n if (existsSync(indexJs)) return indexJs;\n const parent = dirname(dir);\n if (parent === dir) break;\n dir = parent;\n }\n throw new Error('No se encontro @bindrs/rfd en node_modules');\n}\n\nconst { AsyncFileDialog } = require(findRfdIndex());\nconst handle = await new AsyncFileDialog().setTitle('Elegi el repositorio git').pickFolder();\nif (!handle) process.exit(2);\nwriteFileSync(outFile, handle.path(), 'utf8');\n`, \"utf8\");\n\t\tconst result = spawnSync(resolveNodeBin(), [worker], {\n\t\t\tencoding: \"utf8\",\n\t\t\twindowsHide: false,\n\t\t\tstdio: [\n\t\t\t\t\"ignore\",\n\t\t\t\t\"pipe\",\n\t\t\t\t\"pipe\"\n\t\t\t],\n\t\t\ttimeout: 600 * 1e3,\n\t\t\tcwd: process$1.cwd(),\n\t\t\tenv: process$1.env\n\t\t});\n\t\tif (result.status === 2 || result.status === 1) return null;\n\t\tif (result.status !== 0) {\n\t\t\tconst err = (result.stderr || result.stdout || result.error?.message || `exit ${result.status}`).toString().trim();\n\t\t\tthrow new Error(err || \"worker rfd fallo\");\n\t\t}\n\t\tif (!existsSync(outFile)) return null;\n\t\treturn readFileSync(outFile, \"utf8\").replace(/^\\uFEFF/, \"\").trim() || null;\n\t} finally {\n\t\ttry {\n\t\t\trmSync(dir, {\n\t\t\t\trecursive: true,\n\t\t\t\tforce: true\n\t\t\t});\n\t\t} catch {}\n\t}\n}\nfunction pickFolderFallback() {\n\tconst os = platform();\n\tif (os === \"win32\") return pickWindowsVbs();\n\tif (os === \"darwin\") return pickMac();\n\treturn pickLinux();\n}\nfunction pickWindowsVbs() {\n\tconst dir = mkdtempSync(join(tmpdir(), \"diff-review-pick-\"));\n\tconst vbs = join(dir, \"pick.vbs\");\n\tconst outFile = join(dir, \"path.txt\");\n\ttry {\n\t\twriteFileSync(vbs, [\n\t\t\t\"Set shell = CreateObject(\\\"Shell.Application\\\")\",\n\t\t\t\"Set folder = shell.BrowseForFolder(0, \\\"Elegi el repositorio git\\\", 0)\",\n\t\t\t\"If folder Is Nothing Then\",\n\t\t\t\" WScript.Quit 1\",\n\t\t\t\"End If\",\n\t\t\t\"Set fso = CreateObject(\\\"Scripting.FileSystemObject\\\")\",\n\t\t\t`Set file = fso.CreateTextFile(${JSON.stringify(outFile)}, True, True)`,\n\t\t\t\"file.Write folder.Self.Path\",\n\t\t\t\"file.Close\"\n\t\t].join(\"\\r\\n\"), \"utf8\");\n\t\tconst result = spawnSync(\"cscript.exe\", [\n\t\t\t\"//nologo\",\n\t\t\t\"//E:VBScript\",\n\t\t\tvbs\n\t\t], {\n\t\t\tencoding: \"utf8\",\n\t\t\twindowsHide: false,\n\t\t\tstdio: [\n\t\t\t\t\"ignore\",\n\t\t\t\t\"ignore\",\n\t\t\t\t\"pipe\"\n\t\t\t],\n\t\t\ttimeout: 600 * 1e3\n\t\t});\n\t\tif (result.status === 1) return null;\n\t\tif (result.status !== 0) {\n\t\t\tconst err = (result.stderr || result.error?.message || `exit ${result.status}`).toString().trim();\n\t\t\tthrow new Error(err || \"cscript fallo\");\n\t\t}\n\t\tif (!existsSync(outFile)) return null;\n\t\tconst buf = readFileSync(outFile);\n\t\treturn (buf.length >= 2 && buf[0] === 255 && buf[1] === 254 ? buf.subarray(2).toString(\"utf16le\").trim() : buf.toString(\"utf8\").replace(/^\\uFEFF/, \"\").trim()) || null;\n\t} catch (err) {\n\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\tif (/canceled|cancelled|abort/i.test(msg)) return null;\n\t\tthrow new Error(\"No se pudo abrir el dialogo de carpetas: \" + msg);\n\t} finally {\n\t\ttry {\n\t\t\trmSync(dir, {\n\t\t\t\trecursive: true,\n\t\t\t\tforce: true\n\t\t\t});\n\t\t} catch {}\n\t}\n}\nfunction pickMac() {\n\ttry {\n\t\tconst out = execFileSync(\"osascript\", [\"-e\", \"POSIX path of (choose folder with prompt \\\"Elegi el repositorio git\\\")\"], {\n\t\t\tencoding: \"utf8\",\n\t\t\ttimeout: 600 * 1e3\n\t\t});\n\t\treturn String(out || \"\").trim().replace(/\\/$/, \"\");\n\t} catch (err) {\n\t\tif (err.status === 1 || /User canceled|-128/i.test(String(err))) return null;\n\t\tthrow new Error(\"No se pudo abrir el dialogo de carpetas: \" + (err instanceof Error ? err.message : String(err)));\n\t}\n}\nfunction pickLinux() {\n\ttry {\n\t\tconst out = execFileSync(\"zenity\", [\n\t\t\t\"--file-selection\",\n\t\t\t\"--directory\",\n\t\t\t\"--title=Elegi el repositorio git\"\n\t\t], {\n\t\t\tencoding: \"utf8\",\n\t\t\ttimeout: 600 * 1e3\n\t\t});\n\t\treturn String(out || \"\").trim() || null;\n\t} catch (zenityErr) {\n\t\tif (zenityErr.status === 1) return null;\n\t\ttry {\n\t\t\tconst out = execFileSync(\"kdialog\", [\n\t\t\t\t\"--getexistingdirectory\",\n\t\t\t\t\".\",\n\t\t\t\t\"Elegi el repositorio git\"\n\t\t\t], {\n\t\t\t\tencoding: \"utf8\",\n\t\t\t\ttimeout: 600 * 1e3\n\t\t\t});\n\t\t\treturn String(out || \"\").trim() || null;\n\t\t} catch (kErr) {\n\t\t\tif (kErr.status === 1) return null;\n\t\t\tthrow new Error(\"No hay dialogo de carpetas disponible. Instala zenity o kdialog, o pega la ruta a mano.\");\n\t\t}\n\t}\n}\n//#endregion\n//#region src/lib/server/git-review.ts\nfunction describeGitError(err) {\n\tif (err && typeof err === \"object\") {\n\t\tconst rec = err;\n\t\tconst stderr = String(rec.stderr || \"\").trim().split(\"\\n\").find(Boolean);\n\t\tif (stderr) return stderr;\n\t\tif (rec.message) return rec.message;\n\t}\n\treturn err instanceof Error ? err.message : String(err);\n}\nfunction resolveSource(source, repo) {\n\tif (source === \"local\" || source === \"url\") return source;\n\treturn looksLikeGitUrl(repo) ? \"url\" : \"local\";\n}\nfunction loadRepoInfo(source, repo) {\n\tif (resolveSource(source, repo) === \"url\") {\n\t\tconst url = normalizeGitUrl(repo);\n\t\treturn {\n\t\t\trepo: url,\n\t\t\tsource: \"url\",\n\t\t\tremoteUrl: url,\n\t\t\t...listRemoteBranches(url)\n\t\t};\n\t}\n\tconst resolved = assertGitRepo(repo);\n\tconst listed = listBranches(resolved);\n\treturn {\n\t\trepo: resolved,\n\t\tsource: \"local\",\n\t\tremoteUrl: getRemoteUrl(resolved) || void 0,\n\t\t...listed\n\t};\n}\n/**\n* Repo + branch del directorio desde el que se lanzó `diff-review` (env DIFF_REVIEW_LAUNCH_CWD).\n* En `npm run dev` cae a process.cwd(). Null si no hay git.\n*/\nfunction loadLaunchRepoInfo() {\n\tconst cwd = String(process.env.DIFF_REVIEW_LAUNCH_CWD || process.cwd() || \"\").trim();\n\tif (!cwd) return null;\n\tconst root = tryResolveGitRoot(cwd);\n\tif (!root) return null;\n\ttry {\n\t\treturn loadRepoInfo(\"local\", root);\n\t} catch {\n\t\treturn null;\n\t}\n}\nasync function pickLocalFolder$1() {\n\treturn pickFolder();\n}\nfunction resolveWorktree(source, repo, branch, base) {\n\tif (source === \"url\") return ensureRemoteWorktree(repo, branch, base);\n\treturn assertGitRepo(repo);\n}\nfunction toReviewFile(file) {\n\tconst changeType = file.changeType;\n\tconst typed = changeType === \"added\" || changeType === \"deleted\" || changeType === \"renamed\" || changeType === \"modified\" ? changeType : \"modified\";\n\treturn {\n\t\tpath: file.path,\n\t\toldPath: file.oldPath || void 0,\n\t\tchangeType: typed,\n\t\tdiff: String(file.diff ?? \"\").replaceAll(\"\\0\", \"\"),\n\t\tgroup: file.group ?? \"\"\n\t};\n}\n/**\n* Contenido del archivo en la punta del branch, para rellenar en el viewer las líneas\n* que el diff no trae. Devuelve null (en vez de reventar) cuando el repo no está a mano\n* o el archivo es binario: ahí el viewer apaga los botones de expandir.\n*/\nfunction loadFileLines(input) {\n\ttry {\n\t\treturn showFileLines(resolveWorktree(resolveSource(input.source, input.repo), input.repo, input.branch, input.base || \"develop\"), input.branch, input.path);\n\t} catch (err) {\n\t\tconsole.error(\"[diff-review git] no se pudo leer\", input.path, describeGitError(err));\n\t\treturn null;\n\t}\n}\nfunction hydrateReviewPayload(input) {\n\tconst skeleton = extractBranchDiff({\n\t\trepo: resolveWorktree(resolveSource(input.source, input.repo), input.repo, input.branch, input.base || \"develop\"),\n\t\tbranch: input.branch,\n\t\tbase: input.base || \"develop\"\n\t});\n\tconst extraNotes = Array.isArray(input.payload?.notes) ? input.payload.notes.filter((n) => typeof n === \"string\") : [];\n\tconst built = buildReview({\n\t\tskeleton,\n\t\tpayload: input.payload,\n\t\tnotes: extraNotes\n\t});\n\tconst doc = {\n\t\tintent: built.intent,\n\t\tgroups: built.groups,\n\t\tblocks: built.blocks,\n\t\tfindings: built.findings,\n\t\tskipped: built.skipped,\n\t\tfiles: (built.files || []).map(toReviewFile),\n\t\tnotes: built.notes || []\n\t};\n\treturn JSON.parse(JSON.stringify(doc));\n}\n//#endregion\n//#region src/lib/report/git.remote.ts\nvar git_remote_exports = /* @__PURE__ */ __exportAll({\n\tfileLines: () => fileLines,\n\thydrateFromGit: () => hydrateFromGit,\n\tlaunchContext: () => launchContext,\n\tloadRepo: () => loadRepo,\n\tpickLocalFolder: () => pickLocalFolder\n});\nfunction fail(err) {\n\tconst message = describeGitError(err) || \"No se pudo hablar con git.\";\n\tconsole.error(\"[diff-review git]\", message, err);\n\terror(400, message);\n}\nvar loadRepo = /* @__PURE__ */ query(\"unchecked\", async (input) => {\n\ttry {\n\t\treturn loadRepoInfo(input?.source, String(input?.repo || \"\").trim());\n\t} catch (err) {\n\t\tfail(err);\n\t}\n});\n/** Repo del CWD de lanzamiento, o null si no hay git. */\nvar launchContext = /* @__PURE__ */ query(async () => {\n\ttry {\n\t\treturn loadLaunchRepoInfo();\n\t} catch (err) {\n\t\tconsole.error(\"[diff-review git] launch context\", describeGitError(err), err);\n\t\treturn null;\n\t}\n});\nvar pickLocalFolder = /* @__PURE__ */ command(\"unchecked\", async (_input) => {\n\ttry {\n\t\treturn await pickLocalFolder$1();\n\t} catch (err) {\n\t\tfail(err);\n\t}\n});\n/** Líneas del archivo en el branch revisado, para expandir el contexto oculto de un diff. */\nvar fileLines = /* @__PURE__ */ query(\"unchecked\", async (input) => loadFileLines({\n\trepo: String(input?.repo || \"\").trim(),\n\tbranch: String(input?.branch || \"\").trim(),\n\tbase: String(input?.base || \"develop\").trim(),\n\tsource: input?.source,\n\tpath: String(input?.path || \"\").trim()\n}));\nvar hydrateFromGit = /* @__PURE__ */ command(\"unchecked\", async (input) => {\n\ttry {\n\t\treturn hydrateReviewPayload({\n\t\t\trepo: String(input?.repo || \"\").trim(),\n\t\t\tbranch: String(input?.branch || \"\").trim(),\n\t\t\tbase: String(input?.base || \"develop\").trim(),\n\t\t\tsource: input?.source,\n\t\t\tpayload: input?.payload\n\t\t});\n\t} catch (err) {\n\t\tfail(err);\n\t}\n});\ninit_remote_functions(git_remote_exports, \"src/lib/report/git.remote.ts\", \"1g4ayag\");\nfor (const [name, fn] of Object.entries(git_remote_exports)) {\n\tfn.__.id = \"1g4ayag/\" + name;\n\tfn.__.name = name;\n}\n//#endregion\nexport { launchContext as n, loadRepo as r, git_remote_exports as t };\n","import { t as git_remote_exports } from \"./git.remote.js\";\n//#region \\0sveltekit-remote:1g4ayag\nvar _sveltekit_remote_1g4ayag_default = git_remote_exports;\n//#endregion\nexport { _sveltekit_remote_1g4ayag_default as default };\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"remote-1g4ayag-BgUNMUS8.js","sources":["../../../.svelte-kit/output/server/chunks/remote.js","../../../.svelte-kit/output/server/chunks/git.remote.js","../../../.svelte-kit/output/server/chunks/remote-1g4ayag.js"],"sourcesContent":["import { _ as noop, i as parse_remote_arg, o as stringify, r as create_remote_key, s as stringify_remote_arg } from \"./shared.js\";\nimport { i as app_dir, o as base, t as prerendering } from \"./internal.js\";\nimport { C as set_nested_value, E as MUTATIVE_METHODS, S as normalize_issue, s as handle_error_and_jsonify, v as create_field_proxy, x as flatten_issues, y as deep_set } from \"./utils.js\";\nimport { error, json } from \"@sveltejs/kit\";\nimport { HttpError, SvelteKitError, ValidationError } from \"@sveltejs/kit/internal\";\nimport { get_request_store, with_request_store } from \"@sveltejs/kit/internal/server\";\nimport { parse } from \"devalue\";\n//#region node_modules/@sveltejs/kit/src/runtime/app/server/remote/shared.js\n/** @import { RequestEvent } from '@sveltejs/kit' */\n/** @import { ServerHooks, MaybePromise, RequestState, RemoteInternals, RequestStore, RemoteLiveQueryUserFunctionReturnType } from 'types' */\n/**\n* @param {any} validate_or_fn\n* @param {((arg?: any) => any) | undefined} [maybe_fn]\n* @returns {(arg?: any) => MaybePromise<any>}\n*/\nfunction create_validator(validate_or_fn, maybe_fn) {\n\tif (!maybe_fn) return (arg) => {\n\t\tif (arg !== void 0) error(400, \"Bad Request\");\n\t};\n\tif (validate_or_fn === \"unchecked\") return (arg) => arg;\n\tif (\"~standard\" in validate_or_fn) return async (arg) => {\n\t\tconst { event, state } = get_request_store();\n\t\tconst result = await validate_or_fn[\"~standard\"].validate(arg);\n\t\tif (result.issues) error(400, await state.handleValidationError({\n\t\t\tissues: result.issues,\n\t\t\tevent\n\t\t}));\n\t\treturn result.value;\n\t};\n\tthrow new Error(\"Invalid validator passed to remote function. Expected \\\"unchecked\\\" or a Standard Schema (https://standardschema.dev)\");\n}\n/**\n* In case of a single remote function call, just returns the result.\n*\n* In case of a full page reload, returns the response for a remote function call,\n* either from the cache or by invoking the function.\n* Also saves an uneval'ed version of the result for later HTML inlining for hydration.\n*\n* @template {MaybePromise<any>} T\n* @param {RemoteInternals} internals\n* @param {string} payload — the stringified raw argument (i.e. the cache key the client will use)\n* @param {RequestState} state\n* @param {() => Promise<T>} get_result\n* @returns {Promise<T>}\n*/\nasync function get_response(internals, payload, state, get_result) {\n\tawait 0;\n\tconst cache = get_cache(internals, state);\n\tif (!state.is_in_remote_query) get_implicit_lookup(internals, state)[payload] = get_result;\n\treturn cache[payload] ??= get_result();\n}\n/**\n* @param {any} data\n* @param {ServerHooks['transport']} transport\n*/\nfunction parse_remote_response(data, transport) {\n\t/** @type {Record<string, any>} */\n\tconst revivers = {};\n\tfor (const key in transport) revivers[key] = transport[key].decode;\n\treturn parse(data, revivers);\n}\n/**\n* @param {RequestEvent} event\n* @param {RequestState} state\n* @param {boolean} allow_cookies\n* @returns {RequestStore}\n*/\nfunction derive_remote_function_event(event, state, allow_cookies) {\n\treturn {\n\t\tevent: {\n\t\t\t...event,\n\t\t\tsetHeaders: () => {\n\t\t\t\tthrow new Error(\"setHeaders is not allowed in remote functions\");\n\t\t\t},\n\t\t\tcookies: {\n\t\t\t\t...event.cookies,\n\t\t\t\tset: (name, value, opts) => {\n\t\t\t\t\tif (!allow_cookies) throw new Error(\"Cannot set cookies in `query` or `prerender` functions\");\n\t\t\t\t\tif (opts.path && !opts.path.startsWith(\"/\")) throw new Error(\"Cookies set in remote functions must have an absolute path\");\n\t\t\t\t\treturn event.cookies.set(name, value, opts);\n\t\t\t\t},\n\t\t\t\tdelete: (name, opts) => {\n\t\t\t\t\tif (!allow_cookies) throw new Error(\"Cannot delete cookies in `query` or `prerender` functions\");\n\t\t\t\t\tif (opts.path && !opts.path.startsWith(\"/\")) throw new Error(\"Cookies deleted in remote functions must have an absolute path\");\n\t\t\t\t\treturn event.cookies.delete(name, opts);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tstate: {\n\t\t\t...state,\n\t\t\tis_in_remote_function: true\n\t\t}\n\t};\n}\n/**\n* Like `with_event` but removes things from `event` you cannot see/call in remote functions, such as `setHeaders`.\n* @template T\n* @param {RequestEvent} event\n* @param {RequestState} state\n* @param {boolean} allow_cookies\n* @param {() => any} get_input\n* @param {(arg?: any) => T} fn\n*/\nasync function run_remote_function(event, state, allow_cookies, get_input, fn) {\n\tconst store = derive_remote_function_event(event, state, allow_cookies);\n\tconst input = await with_request_store(store, get_input);\n\treturn with_request_store(store, () => fn(input));\n}\n/**\n* Like `with_event` but removes things from `event` you cannot see/call in remote functions, such as `setHeaders`.\n* @template T\n* @param {RequestEvent} event\n* @param {RequestState} state\n* @param {boolean} allow_cookies\n* @param {() => any} get_input\n* @param {(arg?: any) => RemoteLiveQueryUserFunctionReturnType<T>} fn\n* @param {string} name\n*/\nasync function* run_remote_generator(event, state, allow_cookies, get_input, fn, name) {\n\tconst store = derive_remote_function_event(event, state, allow_cookies);\n\tconst input = await with_request_store(store, get_input);\n\tconst iterator = to_iterator(await with_request_store(store, () => fn(input)), name);\n\tlet done = false;\n\ttry {\n\t\twhile (true) {\n\t\t\tconst result = await with_request_store(store, () => iterator.next());\n\t\t\tif (result.done) {\n\t\t\t\tdone = true;\n\t\t\t\treturn result.value;\n\t\t\t}\n\t\t\tyield result.value;\n\t\t}\n\t} finally {\n\t\tif (!done && typeof iterator.return === \"function\") await with_request_store(store, () => iterator.return?.(void 0));\n\t}\n}\n/**\n* @template T\n* @param {Awaited<RemoteLiveQueryUserFunctionReturnType<T>>} source\n* @param {string} name\n* @returns {Iterator<T> | AsyncIterator<T>}\n*/\nfunction to_iterator(source, name) {\n\tif (\"next\" in source && typeof source.next === \"function\") return source;\n\tif (Symbol.asyncIterator in source && typeof source[Symbol.asyncIterator] === \"function\") return source[Symbol.asyncIterator]();\n\tif (Symbol.iterator in source && typeof source[Symbol.iterator] === \"function\") return source[Symbol.iterator]();\n\tthrow new Error(`query.live '${name}' must return an Iterator, Iterable, AsyncIterator or AsyncIterable`);\n}\n/**\n* Note that `state` is deliberately not optional: resources that capture the request\n* state at creation must pass it explicitly, because reading it from the request store\n* at call time is only equivalent on runtimes with `AsyncLocalStorage` support.\n* Callers without a captured state (such as the module-level `form` instance getters)\n* should pass `get_request_store().state` themselves.\n* @param {RemoteInternals} internals\n* @param {RequestState} state\n*/\nfunction get_cache(internals, state) {\n\tlet cache = state.remote.data?.get(internals);\n\tif (cache === void 0) {\n\t\tcache = {};\n\t\t(state.remote.data ??= /* @__PURE__ */ new Map()).set(internals, cache);\n\t}\n\treturn cache;\n}\n/**\n* @param {RemoteInternals} internals\n* @param {RequestState} state\n*/\nfunction get_implicit_lookup(internals, state) {\n\tlet cache = state.remote.implicit?.get(internals);\n\tif (cache === void 0) {\n\t\tcache = {};\n\t\t(state.remote.implicit ??= /* @__PURE__ */ new Map()).set(internals, cache);\n\t}\n\treturn cache;\n}\n//#endregion\n//#region node_modules/@sveltejs/kit/src/runtime/app/server/remote/command.js\n/** @import { RemoteCommand } from '@sveltejs/kit' */\n/** @import { MaybePromise, RemoteCommandInternals } from 'types' */\n/** @import { StandardSchemaV1 } from '@standard-schema/spec' */\n/**\n* Creates a remote command. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#command) for full documentation.\n*\n* @template Output\n* @overload\n* @param {() => MaybePromise<Output>} fn\n* @returns {RemoteCommand<void, Output>}\n* @since 2.27\n*/\n/**\n* Creates a remote command. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#command) for full documentation.\n*\n* @template Input\n* @template Output\n* @overload\n* @param {'unchecked'} validate\n* @param {(arg: Input) => MaybePromise<Output>} fn\n* @returns {RemoteCommand<Input, Output>}\n* @since 2.27\n*/\n/**\n* Creates a remote command. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#command) for full documentation.\n*\n* @template {StandardSchemaV1} Schema\n* @template Output\n* @overload\n* @param {Schema} validate\n* @param {(arg: StandardSchemaV1.InferOutput<Schema>) => MaybePromise<Output>} fn\n* @returns {RemoteCommand<StandardSchemaV1.InferInput<Schema>, Output>}\n* @since 2.27\n*/\n/**\n* @template Input\n* @template Output\n* @param {any} validate_or_fn\n* @param {(arg?: Input) => MaybePromise<Output>} [maybe_fn]\n* @returns {RemoteCommand<Input, Output>}\n* @since 2.27\n*/\n/*@__NO_SIDE_EFFECTS__*/\nfunction command(validate_or_fn, maybe_fn) {\n\t/** @type {(arg?: Input) => MaybePromise<Output>} */\n\tconst fn = maybe_fn ?? validate_or_fn;\n\t/** @type {(arg?: any) => MaybePromise<Input>} */\n\tconst validate = create_validator(validate_or_fn, maybe_fn);\n\t/** @type {RemoteCommandInternals} */\n\tconst __ = {\n\t\ttype: \"command\",\n\t\tid: \"\",\n\t\tname: \"\"\n\t};\n\t/** @type {RemoteCommand<Input, Output> & { __: RemoteCommandInternals }} */\n\tconst wrapper = (arg) => {\n\t\tconst { event, state } = get_request_store();\n\t\tif (!MUTATIVE_METHODS.includes(event.request.method)) throw new Error(`Cannot call a command (\\`${__.name}(${maybe_fn ? \"...\" : \"\"})\\`) from a ${event.request.method} handler`);\n\t\tif (state.is_in_render) throw new Error(`Cannot call a command (\\`${__.name}(${maybe_fn ? \"...\" : \"\"})\\`) during server-side rendering`);\n\t\tconst promise = Promise.resolve(run_remote_function(event, state, true, () => validate(arg), fn));\n\t\tpromise.updates = () => {\n\t\t\tthrow new Error(`Cannot call '${__.name}(...).updates(...)' on the server`);\n\t\t};\n\t\treturn promise;\n\t};\n\tObject.defineProperty(wrapper, \"__\", { value: __ });\n\tObject.defineProperty(wrapper, \"pending\", { get: () => 0 });\n\treturn wrapper;\n}\n//#endregion\n//#region node_modules/@sveltejs/kit/src/runtime/app/server/remote/form.js\n/** @import { RemoteFormInput, RemoteForm, InvalidField } from '@sveltejs/kit' */\n/** @import { InternalRemoteFormIssue, MaybePromise, HasNonOptionalBoolean, RemoteFormInternals } from 'types' */\n/** @import { StandardSchemaV1 } from '@standard-schema/spec' */\n/**\n* Creates a form object that can be spread onto a `<form>` element.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#form) for full documentation.\n*\n* @template Output\n* @overload\n* @param {() => MaybePromise<Output>} fn\n* @returns {RemoteForm<void, Output>}\n* @since 2.27\n*/\n/**\n* Creates a form object that can be spread onto a `<form>` element.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#form) for full documentation.\n*\n* @template {RemoteFormInput} Input\n* @template Output\n* @overload\n* @param {'unchecked'} validate\n* @param {(data: Input, issue: InvalidField<Input>) => MaybePromise<Output>} fn\n* @returns {RemoteForm<Input, Output>}\n* @since 2.27\n*/\n/**\n* Creates a form object that can be spread onto a `<form>` element.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#form) for full documentation.\n*\n* @template {StandardSchemaV1<RemoteFormInput, Record<string, any>>} Schema\n* @template Output\n* @overload\n* @param {true extends HasNonOptionalBoolean<StandardSchemaV1.InferInput<Schema>> ? 'Error: All booleans in form schemas must be optional (e.g. `v.optional(v.boolean(), false)`) because checkbox inputs do not send a false value when unchecked.' : Schema} validate\n* @param {(data: StandardSchemaV1.InferOutput<Schema>, issue: InvalidField<StandardSchemaV1.InferInput<Schema>>) => MaybePromise<Output>} fn\n* @returns {RemoteForm<StandardSchemaV1.InferInput<Schema>, Output>}\n* @since 2.27\n*/\n/**\n* @template {RemoteFormInput} Input\n* @template Output\n* @param {any} validate_or_fn\n* @param {(data_or_issue: any, issue?: any) => MaybePromise<Output>} [maybe_fn]\n* @returns {RemoteForm<Input, Output>}\n* @since 2.27\n*/\n/*@__NO_SIDE_EFFECTS__*/\nfunction form(validate_or_fn, maybe_fn) {\n\t/** @type {any} */\n\tconst fn = maybe_fn ?? validate_or_fn;\n\t/** @type {StandardSchemaV1 | null} */\n\tconst schema = !maybe_fn || validate_or_fn === \"unchecked\" ? null : validate_or_fn;\n\t/**\n\t* @param {string | number | boolean} [key]\n\t*/\n\tfunction create_instance(key) {\n\t\t/** @type {RemoteForm<Input, Output>} */\n\t\tconst instance = {};\n\t\tinstance.method = \"POST\";\n\t\tObject.defineProperty(instance, \"enhance\", { value: () => {\n\t\t\treturn {\n\t\t\t\taction: instance.action,\n\t\t\t\tmethod: instance.method\n\t\t\t};\n\t\t} });\n\t\t/** @type {RemoteFormInternals} */\n\t\tconst __ = {\n\t\t\ttype: \"form\",\n\t\t\tname: \"\",\n\t\t\tid: \"\",\n\t\t\tfn: async (data, meta, form_data) => {\n\t\t\t\t/** @type {{ submission: true, input?: Record<string, any>, issues?: InternalRemoteFormIssue[], result: Output }} */\n\t\t\t\tconst output = {};\n\t\t\t\toutput.submission = true;\n\t\t\t\tconst { event, state } = get_request_store();\n\t\t\t\tconst validated = await schema?.[\"~standard\"].validate(data);\n\t\t\t\tif (meta.validate_only) return validated?.issues?.map((issue) => normalize_issue(issue, true)) ?? [];\n\t\t\t\tif (validated?.issues !== void 0) handle_issues(output, validated.issues, form_data);\n\t\t\t\telse {\n\t\t\t\t\tif (validated !== void 0) data = validated.value;\n\t\t\t\t\tconst issue = create_issues();\n\t\t\t\t\ttry {\n\t\t\t\t\t\toutput.result = await run_remote_function(event, state, true, () => data, (data) => !maybe_fn ? fn() : fn(data, issue));\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tif (e instanceof ValidationError) handle_issues(output, e.issues, form_data);\n\t\t\t\t\t\telse throw e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!event.isRemoteRequest) {\n\t\t\t\t\tconst cache = get_cache(__, state);\n\t\t\t\t\tcache[\"\"] ??= output;\n\t\t\t\t\tget_implicit_lookup(__, state)[__.action_id ?? __.id] = () => cache[\"\"];\n\t\t\t\t}\n\t\t\t\treturn output;\n\t\t\t}\n\t\t};\n\t\tObject.defineProperty(instance, \"__\", { value: __ });\n\t\tObject.defineProperty(instance, \"action\", {\n\t\t\tget: () => `?/remote=${__.id}`,\n\t\t\tenumerable: true\n\t\t});\n\t\tObject.defineProperty(instance, \"fields\", { get() {\n\t\t\treturn create_field_proxy({}, () => get_cache(__, get_request_store().state)?.[\"\"]?.input ?? {}, (path, value) => {\n\t\t\t\tconst cache = get_cache(__, get_request_store().state);\n\t\t\t\tconst entry = cache[\"\"];\n\t\t\t\tif (entry?.submission) return;\n\t\t\t\tif (path.length === 0) {\n\t\t\t\t\t(cache[\"\"] ??= {}).input = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst input = entry?.input ?? {};\n\t\t\t\tdeep_set(input, path.map(String), value);\n\t\t\t\t(cache[\"\"] ??= {}).input = input;\n\t\t\t}, () => flatten_issues(get_cache(__, get_request_store().state)?.[\"\"]?.issues ?? []));\n\t\t} });\n\t\tObject.defineProperty(instance, \"result\", { get() {\n\t\t\ttry {\n\t\t\t\treturn get_cache(__, get_request_store().state)?.[\"\"]?.result;\n\t\t\t} catch {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} });\n\t\tObject.defineProperty(instance, \"pending\", { get: () => 0 });\n\t\tObject.defineProperty(instance, \"submitted\", { get: () => false });\n\t\tObject.defineProperty(instance, \"preflight\", { value: () => instance });\n\t\tObject.defineProperty(instance, \"validate\", { value: () => {\n\t\t\tthrow new Error(\"Cannot call validate() on the server\");\n\t\t} });\n\t\tObject.defineProperty(instance, \"submit\", { value: () => {\n\t\t\tthrow new Error(\"Cannot call submit() on the server\");\n\t\t} });\n\t\tObject.defineProperty(instance, \"element\", { get: () => null });\n\t\tif (key == void 0) Object.defineProperty(instance, \"for\", { \n\t\t/** @type {RemoteForm<any, any>['for']} */\nvalue: (key) => {\n\t\t\tconst { state } = get_request_store();\n\t\t\tconst cache_key = __.id + \"|\" + JSON.stringify(key);\n\t\t\tlet instance = (state.remote.forms ??= /* @__PURE__ */ new Map()).get(cache_key);\n\t\t\tif (!instance) {\n\t\t\t\tinstance = create_instance(key);\n\t\t\t\tinstance.__.id = `${__.id}/${encodeURIComponent(JSON.stringify(key))}`;\n\t\t\t\tinstance.__.action_id = `${__.id}/${JSON.stringify(key)}`;\n\t\t\t\tinstance.__.name = __.name;\n\t\t\t\tstate.remote.forms.set(cache_key, instance);\n\t\t\t}\n\t\t\treturn instance;\n\t\t} });\n\t\treturn instance;\n\t}\n\treturn create_instance();\n}\n/**\n* @param {{ issues?: InternalRemoteFormIssue[], input?: Record<string, any>, result: any }} output\n* @param {readonly StandardSchemaV1.Issue[]} issues\n* @param {FormData | null} form_data - null if the form is progressively enhanced\n*/\nfunction handle_issues(output, issues, form_data) {\n\toutput.issues = issues.map((issue) => normalize_issue(issue, true));\n\tif (form_data) {\n\t\toutput.input = {};\n\t\tfor (let key of form_data.keys()) {\n\t\t\tif (/^[.\\]]?_/.test(key)) continue;\n\t\t\tconst is_array = key.endsWith(\"[]\");\n\t\t\tconst values = form_data.getAll(key).filter((value) => typeof value === \"string\");\n\t\t\tif (is_array) key = key.slice(0, -2);\n\t\t\tset_nested_value(output.input, key, is_array ? values : values[0]);\n\t\t}\n\t}\n}\n/**\n* Creates an invalid function that can be used to imperatively mark form fields as invalid\n* @returns {InvalidField<any>}\n*/\nfunction create_issues() {\n\treturn new Proxy(\n\t\t/** @param {string} message */\n\t\t(message) => {\n\t\t\tif (typeof message !== \"string\") throw new Error(\"`invalid` should now be imported from `@sveltejs/kit` to throw validation issues. The second parameter provided to the form function (renamed to `issue`) is still used to construct issues, e.g. `invalid(issue.field('message'))`. For more info see https://github.com/sveltejs/kit/pulls/14768\");\n\t\t\treturn create_issue(message);\n\t\t},\n\t\t{ get(target, prop) {\n\t\t\tif (typeof prop === \"symbol\") return target[prop];\n\t\t\treturn create_issue_proxy(prop, []);\n\t\t} }\n\t);\n\t/**\n\t* @param {string} message\n\t* @param {(string | number)[]} path\n\t* @returns {StandardSchemaV1.Issue}\n\t*/\n\tfunction create_issue(message, path = []) {\n\t\treturn {\n\t\t\tmessage,\n\t\t\tpath\n\t\t};\n\t}\n\t/**\n\t* Creates a proxy that builds up a path and returns a function to create an issue\n\t* @param {string | number} key\n\t* @param {(string | number)[]} path\n\t*/\n\tfunction create_issue_proxy(key, path) {\n\t\tconst new_path = [...path, key];\n\t\t/**\n\t\t* @param {string} message\n\t\t* @returns {StandardSchemaV1.Issue}\n\t\t*/\n\t\tconst issue_func = (message) => create_issue(message, new_path);\n\t\treturn new Proxy(issue_func, { get(target, prop) {\n\t\t\tif (typeof prop === \"symbol\") return target[prop];\n\t\t\tif (/^\\d+$/.test(prop)) return create_issue_proxy(parseInt(prop, 10), new_path);\n\t\t\treturn create_issue_proxy(prop, new_path);\n\t\t} });\n\t}\n}\n//#endregion\n//#region node_modules/@sveltejs/kit/src/runtime/app/server/remote/prerender.js\n/** @import { RemoteResource, RemotePrerenderFunction } from '@sveltejs/kit' */\n/** @import { RemotePrerenderInputsGenerator, RemotePrerenderInternals, MaybePromise } from 'types' */\n/** @import { StandardSchemaV1 } from '@standard-schema/spec' */\n/**\n* Creates a remote prerender function. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#prerender) for full documentation.\n*\n* @template Output\n* @overload\n* @param {() => MaybePromise<Output>} fn\n* @param {{ inputs?: RemotePrerenderInputsGenerator<void>, dynamic?: boolean }} [options]\n* @returns {RemotePrerenderFunction<void, Output>}\n* @since 2.27\n*/\n/**\n* Creates a remote prerender function. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#prerender) for full documentation.\n*\n* @template Input\n* @template Output\n* @overload\n* @param {'unchecked'} validate\n* @param {(arg: Input) => MaybePromise<Output>} fn\n* @param {{ inputs?: RemotePrerenderInputsGenerator<Input>, dynamic?: boolean }} [options]\n* @returns {RemotePrerenderFunction<Input, Output>}\n* @since 2.27\n*/\n/**\n* Creates a remote prerender function. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#prerender) for full documentation.\n*\n* @template {StandardSchemaV1} Schema\n* @template Output\n* @overload\n* @param {Schema} schema\n* @param {(arg: StandardSchemaV1.InferOutput<Schema>) => MaybePromise<Output>} fn\n* @param {{ inputs?: RemotePrerenderInputsGenerator<StandardSchemaV1.InferInput<Schema>>, dynamic?: boolean }} [options]\n* @returns {RemotePrerenderFunction<StandardSchemaV1.InferInput<Schema>, Output>}\n* @since 2.27\n*/\n/**\n* @template Input\n* @template Output\n* @param {any} validate_or_fn\n* @param {any} [fn_or_options]\n* @param {{ inputs?: RemotePrerenderInputsGenerator<Input>, dynamic?: boolean }} [maybe_options]\n* @returns {RemotePrerenderFunction<Input, Output>}\n* @since 2.27\n*/\n/*@__NO_SIDE_EFFECTS__*/\nfunction prerender(validate_or_fn, fn_or_options, maybe_options) {\n\tconst maybe_fn = typeof fn_or_options === \"function\" ? fn_or_options : void 0;\n\t/** @type {typeof maybe_options} */\n\tconst options = maybe_options ?? (maybe_fn ? void 0 : fn_or_options);\n\t/** @type {(arg?: Input) => MaybePromise<Output>} */\n\tconst fn = maybe_fn ?? validate_or_fn;\n\t/** @type {(arg?: any) => MaybePromise<Input>} */\n\tconst validate = create_validator(validate_or_fn, maybe_fn);\n\t/** @type {RemotePrerenderInternals} */\n\tconst __ = {\n\t\ttype: \"prerender\",\n\t\tid: \"\",\n\t\tname: \"\",\n\t\thas_arg: !!maybe_fn,\n\t\tinputs: options?.inputs,\n\t\tdynamic: options?.dynamic\n\t};\n\t/** @type {RemotePrerenderFunction<Input, Output> & { __: RemotePrerenderInternals }} */\n\tconst wrapper = (arg) => {\n\t\tconst { event, state } = get_request_store();\n\t\tconst payload = stringify_remote_arg(arg, state.transport);\n\t\t/** @type {Promise<Output> & Partial<RemoteResource<Output>>} */\n\t\tconst promise = get_response(__, payload, state, async () => {\n\t\t\tconst url = `${base}/${app_dir}/remote/${__.id}${payload ? `/${payload}` : \"\"}`;\n\t\t\tif (!state.prerendering && !event.isRemoteRequest) try {\n\t\t\t\tconst response = await fetch(new URL(url, event.url.origin).href);\n\t\t\t\tif (!response.ok) throw new Error(\"Prerendered response not found\");\n\t\t\t\tconst prerendered = await response.json();\n\t\t\t\tif (prerendered.type === \"error\") error(prerendered.status, prerendered.error);\n\t\t\t\treturn parse_remote_response(prerendered.data, state.transport)._;\n\t\t\t} catch {}\n\t\t\tif (state.prerendering?.remote_responses.has(url)) return state.prerendering.remote_responses.get(url);\n\t\t\tconst promise = run_remote_function(event, state, false, () => validate(arg), fn);\n\t\t\tif (state.prerendering) state.prerendering.remote_responses.set(url, promise);\n\t\t\tconst result = await promise;\n\t\t\tif (state.prerendering) {\n\t\t\t\tconst body = {\n\t\t\t\t\ttype: \"result\",\n\t\t\t\t\tdata: stringify({ _: result }, state.transport)\n\t\t\t\t};\n\t\t\t\tstate.prerendering.dependencies.set(url, {\n\t\t\t\t\tbody: JSON.stringify(body),\n\t\t\t\t\tresponse: json(body)\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn result;\n\t\t});\n\t\tpromise.catch(noop);\n\t\treturn promise;\n\t};\n\tObject.defineProperty(wrapper, \"__\", { value: __ });\n\treturn wrapper;\n}\n//#endregion\n//#region node_modules/@sveltejs/kit/src/utils/shared-iterator.js\n/**\n* A pull-style async iterator that fans out a single stream of values to\n* multiple `for await (...)` consumers. Each subscriber gets its own\n* `AsyncGenerator` whose `.next()` resolves whenever a value is pushed via\n* `push(value)`. Multiple consumers see the same values without each one\n* driving an independent underlying source.\n*\n* Backpressure is **latest-wins**: if values arrive faster than a particular\n* consumer drains its iterator, only the most-recently-pushed value is kept\n* pending for that subscriber. Earlier undrained values are dropped. This is\n* appropriate for live data streams (reactive state replication), not for\n* event logs where every value must be delivered.\n*\n* Lifecycle hooks are exposed via the constructor:\n*\n* - `start()` is called when the subscriber count transitions\n* from 0 to 1 (e.g. to start a pump pulling from a real source).\n* - `stop()` is called when the subscriber count transitions\n* from non-zero back to 0 (e.g. to tear down that pump).\n*\n* Either hook may be omitted.\n*\n* The owner is responsible for calling `push(value)` to broadcast values,\n* `done()` to signal natural completion to all subscribers, and `fail(error)`\n* to broadcast a terminal error. After `done()` or `fail()`, the iterator\n* rejects further `subscribe()` calls with the terminal state appropriately.\n*\n* @template T\n*/\nvar SharedIterator = class {\n\t/**\n\t* @typedef {object} Subscriber\n\t* @property {{ value: any } | null} pending\n\t* @property {{ error: unknown } | null} pending_error\n\t* @property {boolean} finished\n\t* @property {((result: IteratorResult<any, void>) => void) | null} waiting_resolve\n\t* @property {((reason: unknown) => void) | null} waiting_reject\n\t*/\n\t/** @type {Set<Subscriber>} */\n\t#subscribers = /* @__PURE__ */ new Set();\n\t/** @type {((instance: SharedIterator<T>) => (() => void)) | undefined} */\n\t#start = void 0;\n\t/** @type {(() => void) | undefined} */\n\t#stop = void 0;\n\t/** Once `done()` or `fail()` has been broadcast, no new values are accepted. */\n\t#closed = false;\n\t/** @type {unknown} */\n\t#terminal_error = void 0;\n\t/** Whether `done()` or `fail()` has been broadcast. */\n\tget closed() {\n\t\treturn this.#closed;\n\t}\n\t/**\n\t* @param {(instance: SharedIterator<T>) => (() => void)} [start]\n\t*/\n\tconstructor(start) {\n\t\tthis.#start = start;\n\t}\n\t/** @param {T} value */\n\tpush(value) {\n\t\tif (this.#closed) return;\n\t\tfor (const subscriber of this.#subscribers) if (subscriber.waiting_resolve) {\n\t\t\tconst resolve = subscriber.waiting_resolve;\n\t\t\tsubscriber.waiting_resolve = null;\n\t\t\tsubscriber.waiting_reject = null;\n\t\t\tresolve({\n\t\t\t\tvalue,\n\t\t\t\tdone: false\n\t\t\t});\n\t\t} else subscriber.pending = { value };\n\t}\n\t/**\n\t* Signal natural completion to all current subscribers, and to any future\n\t* subscriber (which will receive an immediately-done iterator).\n\t*/\n\tdone() {\n\t\tif (this.#closed) return;\n\t\tthis.#closed = true;\n\t\tfor (const subscriber of this.#subscribers) {\n\t\t\tsubscriber.finished = true;\n\t\t\tif (subscriber.waiting_resolve) {\n\t\t\t\tconst resolve = subscriber.waiting_resolve;\n\t\t\t\tsubscriber.waiting_resolve = null;\n\t\t\t\tsubscriber.waiting_reject = null;\n\t\t\t\tresolve({\n\t\t\t\t\tvalue: void 0,\n\t\t\t\t\tdone: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tthis.#subscribers.clear();\n\t}\n\t/**\n\t* Broadcast a terminal error. All current subscribers will reject their\n\t* next `.next()` call with `error`. Future subscribers will also reject\n\t* their first `.next()`.\n\t*\n\t* @param {unknown} error\n\t*/\n\tfail(error) {\n\t\tif (this.#closed) return;\n\t\tthis.#closed = true;\n\t\tthis.#terminal_error = error;\n\t\tfor (const subscriber of this.#subscribers) {\n\t\t\tsubscriber.finished = true;\n\t\t\tif (subscriber.waiting_reject) {\n\t\t\t\tconst reject = subscriber.waiting_reject;\n\t\t\t\tsubscriber.waiting_resolve = null;\n\t\t\t\tsubscriber.waiting_reject = null;\n\t\t\t\treject(error);\n\t\t\t} else subscriber.pending_error = { error };\n\t\t}\n\t\tthis.#subscribers.clear();\n\t}\n\t/**\n\t* Subscribe to the shared stream. Returns an `AsyncGenerator<T>` that\n\t* yields every value pushed after this call (and, if `initial_value` is\n\t* provided, that value as the first yield).\n\t*\n\t* @param {{ initial_value?: { value: T } }} [options]\n\t* `initial_value` lets the caller seed the iterator with a synchronously-\n\t* available current value before any new pushes arrive (e.g. the\n\t* \"last-seen value\" of a reactive resource). Pass it wrapped in an\n\t* object so `undefined` can be distinguished from \"no initial value\".\n\t* @returns {AsyncGenerator<T, void, void>}\n\t*/\n\tsubscribe(options) {\n\t\t/** @type {Subscriber} */\n\t\tconst subscriber = {\n\t\t\tpending: options?.initial_value ? { value: options.initial_value.value } : null,\n\t\t\tpending_error: this.#closed && this.#terminal_error !== void 0 ? { error: this.#terminal_error } : null,\n\t\t\tfinished: this.#closed && this.#terminal_error === void 0,\n\t\t\twaiting_resolve: null,\n\t\t\twaiting_reject: null\n\t\t};\n\t\tif (!subscriber.finished && subscriber.pending_error === null) this.#subscribers.add(subscriber);\n\t\tif (!this.#closed) this.#stop ??= this.#start?.(this);\n\t\tconst unsubscribe = () => {\n\t\t\tsubscriber.finished = true;\n\t\t\tif (this.#subscribers.delete(subscriber) && this.#subscribers.size === 0) this.#stop?.();\n\t\t};\n\t\t/** @type {AsyncGenerator<T, void, void>} */\n\t\tconst iterator = {\n\t\t\tnext() {\n\t\t\t\tif (subscriber.pending_error) {\n\t\t\t\t\tconst { error } = subscriber.pending_error;\n\t\t\t\t\tsubscriber.pending_error = null;\n\t\t\t\t\tunsubscribe();\n\t\t\t\t\treturn Promise.reject(error);\n\t\t\t\t}\n\t\t\t\tif (subscriber.pending) {\n\t\t\t\t\tconst { value } = subscriber.pending;\n\t\t\t\t\tsubscriber.pending = null;\n\t\t\t\t\treturn Promise.resolve({\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tdone: false\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (subscriber.finished) return Promise.resolve({\n\t\t\t\t\tvalue: void 0,\n\t\t\t\t\tdone: true\n\t\t\t\t});\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tsubscriber.waiting_resolve = resolve;\n\t\t\t\t\tsubscriber.waiting_reject = reject;\n\t\t\t\t});\n\t\t\t},\n\t\t\treturn(value) {\n\t\t\t\tunsubscribe();\n\t\t\t\tif (subscriber.waiting_resolve) {\n\t\t\t\t\tconst resolve = subscriber.waiting_resolve;\n\t\t\t\t\tsubscriber.waiting_resolve = null;\n\t\t\t\t\tsubscriber.waiting_reject = null;\n\t\t\t\t\tresolve({\n\t\t\t\t\t\tvalue: void 0,\n\t\t\t\t\t\tdone: true\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn Promise.resolve({\n\t\t\t\t\tvalue,\n\t\t\t\t\tdone: true\n\t\t\t\t});\n\t\t\t},\n\t\t\tthrow(error) {\n\t\t\t\tunsubscribe();\n\t\t\t\tif (subscriber.waiting_reject) {\n\t\t\t\t\tconst reject = subscriber.waiting_reject;\n\t\t\t\t\tsubscriber.waiting_resolve = null;\n\t\t\t\t\tsubscriber.waiting_reject = null;\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t\treturn Promise.reject(error);\n\t\t\t},\n\t\t\t[Symbol.asyncIterator]() {\n\t\t\t\treturn iterator;\n\t\t\t}\n\t\t};\n\t\treturn iterator;\n\t}\n};\n//#endregion\n//#region node_modules/@sveltejs/kit/src/runtime/app/server/remote/query.js\n/** @import { RemoteLiveQuery, RemoteLiveQueryFunction, RemoteQuery, RemoteQueryFunction, RequestEvent } from '@sveltejs/kit' */\n/** @import { RemoteInternals, MaybePromise, RequestState, RemoteQueryLiveInternals, RemoteQueryBatchInternals, RemoteQueryInternals, RemoteLiveQueryUserFunctionReturnType } from 'types' */\n/** @import { StandardSchemaV1 } from '@standard-schema/spec' */\n/**\n* Creates a remote query. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#query) for full documentation.\n*\n* @template Output\n* @overload\n* @param {() => MaybePromise<Output>} fn\n* @returns {RemoteQueryFunction<void, Output>}\n* @since 2.27\n*/\n/**\n* Creates a remote query. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#query) for full documentation.\n*\n* @template Input\n* @template Output\n* @overload\n* @param {'unchecked'} validate\n* @param {(arg: Input) => MaybePromise<Output>} fn\n* @returns {RemoteQueryFunction<Input, Output>}\n* @since 2.27\n*/\n/**\n* Creates a remote query. When called from the browser, the function will be invoked on the server via a `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#query) for full documentation.\n*\n* @template {StandardSchemaV1} Schema\n* @template Output\n* @overload\n* @param {Schema} schema\n* @param {(arg: StandardSchemaV1.InferOutput<Schema>) => MaybePromise<Output>} fn\n* @returns {RemoteQueryFunction<StandardSchemaV1.InferInput<Schema>, Output, StandardSchemaV1.InferOutput<Schema>>}\n* @since 2.27\n*/\n/**\n* @template Input\n* @template Output\n* @param {any} validate_or_fn\n* @param {(args?: Input) => MaybePromise<Output>} [maybe_fn]\n* @returns {RemoteQueryFunction<Input, Output>}\n* @since 2.27\n*/\n/*@__NO_SIDE_EFFECTS__*/\nfunction query(validate_or_fn, maybe_fn) {\n\t/** @type {(arg?: Input) => Output} */\n\tconst fn = maybe_fn ?? validate_or_fn;\n\t/** @type {(arg?: any) => MaybePromise<Input>} */\n\tconst validate = create_validator(validate_or_fn, maybe_fn);\n\t/** @type {RemoteQueryInternals} */\n\tconst __ = {\n\t\ttype: \"query\",\n\t\tid: \"\",\n\t\tname: \"\",\n\t\tvalidate,\n\t\tbind(payload, validated_arg) {\n\t\t\tconst { event, state } = get_request_store();\n\t\t\treturn create_query_resource(__, payload, event, state, () => run_remote_function(event, {\n\t\t\t\t...state,\n\t\t\t\tis_in_remote_query: true\n\t\t\t}, false, () => validated_arg, fn));\n\t\t}\n\t};\n\t/** @type {RemoteQueryFunction<Input, Output> & { __: RemoteQueryInternals }} */\n\tconst wrapper = (arg) => {\n\t\tif (prerendering) throw new Error(`Cannot call query '${__.name}' while prerendering, as prerendered pages need static data. Use 'prerender' from $app/server instead`);\n\t\tconst { event, state } = get_request_store();\n\t\tconst payload = stringify_remote_arg(arg, state.transport);\n\t\treturn create_query_resource(__, payload, event, state, () => run_remote_function(event, {\n\t\t\t...state,\n\t\t\tis_in_remote_query: true\n\t\t}, false, () => validate(arg), fn));\n\t};\n\tObject.defineProperty(wrapper, \"__\", { value: __ });\n\treturn wrapper;\n}\n/**\n* Creates a live remote query. When called from the browser, the function will be invoked on the server via a streaming `fetch` call.\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#query.live) for full documentation.\n*\n* @template Output\n* @overload\n* @param {(arg: void) => RemoteLiveQueryUserFunctionReturnType<Output>} fn\n* @returns {RemoteLiveQueryFunction<void, Output>}\n*/\n/**\n* @template Input\n* @template Output\n* @overload\n* @param {'unchecked'} validate\n* @param {(arg: Input) => RemoteLiveQueryUserFunctionReturnType<Output>} fn\n* @returns {RemoteLiveQueryFunction<Input, Output>}\n*/\n/**\n* @template {StandardSchemaV1} Schema\n* @template Output\n* @overload\n* @param {Schema} schema\n* @param {(arg: StandardSchemaV1.InferOutput<Schema>) => RemoteLiveQueryUserFunctionReturnType<Output>} fn\n* @returns {RemoteLiveQueryFunction<StandardSchemaV1.InferInput<Schema>, Output, StandardSchemaV1.InferOutput<Schema>>}\n*/\n/**\n* @template Input\n* @template Output\n* @param {any} validate_or_fn\n* @param {(args: Input) => RemoteLiveQueryUserFunctionReturnType<Output>} [maybe_fn]\n* @returns {RemoteLiveQueryFunction<Input, Output>}\n*/\n/*@__NO_SIDE_EFFECTS__*/\nfunction live(validate_or_fn, maybe_fn) {\n\t/** @type {(arg: Input) => RemoteLiveQueryUserFunctionReturnType<Output>} */\n\tconst fn = maybe_fn ?? validate_or_fn;\n\t/** @type {(arg?: any) => MaybePromise<Input>} */\n\tconst validate = create_validator(validate_or_fn, maybe_fn);\n\t/**\n\t* @param {any} event\n\t* @param {any} state\n\t* @param {any} get_input\n\t*/\n\tconst run = (event, state, get_input) => run_remote_generator(event, {\n\t\t...state,\n\t\tis_in_remote_query: true\n\t}, false, get_input, fn, __.name);\n\t/** @type {RemoteQueryLiveInternals} */\n\tconst __ = {\n\t\ttype: \"query_live\",\n\t\tid: \"\",\n\t\tname: \"\",\n\t\trun: (event, state, arg) => run(event, state, () => validate(arg)),\n\t\tvalidate,\n\t\tbind(payload, validated_arg) {\n\t\t\tconst { event, state } = get_request_store();\n\t\t\treturn create_live_query_resource(__, payload, event, state, () => run(event, state, () => validated_arg));\n\t\t}\n\t};\n\t/** @type {RemoteLiveQueryFunction<Input, Output> & { __: RemoteQueryLiveInternals }} */\n\tconst wrapper = (arg) => {\n\t\tif (prerendering) throw new Error(`Cannot call query.live '${__.name}' while prerendering, as prerendered pages need static data. Use 'prerender' from $app/server instead`);\n\t\tconst { event, state } = get_request_store();\n\t\tconst payload = stringify_remote_arg(arg, state.transport);\n\t\treturn create_live_query_resource(__, payload, event, state, () => run(event, state, () => validate(arg)));\n\t};\n\tObject.defineProperty(wrapper, \"__\", { value: __ });\n\treturn wrapper;\n}\n/**\n* Creates a batch query function that collects multiple calls and executes them in a single request\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#query.batch) for full documentation.\n*\n* @template Input\n* @template Output\n* @overload\n* @param {'unchecked'} validate\n* @param {(args: Input[]) => MaybePromise<(arg: Input, idx: number) => Output>} fn\n* @returns {RemoteQueryFunction<Input, Output>}\n* @since 2.35\n*/\n/**\n* Creates a batch query function that collects multiple calls and executes them in a single request\n*\n* See [Remote functions](https://svelte.dev/docs/kit/remote-functions#query.batch) for full documentation.\n*\n* @template {StandardSchemaV1} Schema\n* @template Output\n* @overload\n* @param {Schema} schema\n* @param {(args: StandardSchemaV1.InferOutput<Schema>[]) => MaybePromise<(arg: StandardSchemaV1.InferOutput<Schema>, idx: number) => Output>} fn\n* @returns {RemoteQueryFunction<StandardSchemaV1.InferInput<Schema>, Output, StandardSchemaV1.InferOutput<Schema>>}\n* @since 2.35\n*/\n/**\n* @template Input\n* @template Output\n* @param {any} validate_or_fn\n* @param {(args?: Input[]) => MaybePromise<(arg: Input, idx: number) => Output>} [maybe_fn]\n* @returns {RemoteQueryFunction<Input, Output>}\n* @since 2.35\n*/\n/*@__NO_SIDE_EFFECTS__*/\nfunction batch(validate_or_fn, maybe_fn) {\n\t/** @type {(args?: Input[]) => MaybePromise<(arg: Input, idx: number) => Output>} */\n\tconst fn = maybe_fn ?? validate_or_fn;\n\t/** @type {(arg?: any) => MaybePromise<Input>} */\n\tconst validate = create_validator(validate_or_fn, maybe_fn);\n\t/**\n\t* Enqueues a single call into the current batch (creating one if necessary)\n\t* and returns a promise that resolves with the result for this entry.\n\t*\n\t* @param {string} payload — the stringified raw argument (cache key)\n\t* @param {() => MaybePromise<any>} get_validated — produces the validated argument for this entry\n\t* @returns {Promise<any>}\n\t*/\n\tconst enqueue = (payload, get_validated) => {\n\t\tconst { event, state } = get_request_store();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst batches = state.remote.batches ??= /* @__PURE__ */ new Map();\n\t\t\tlet batched = batches.get(__.id);\n\t\t\tif (!batched) {\n\t\t\t\tbatched = /* @__PURE__ */ new Map();\n\t\t\t\tbatches.set(__.id, batched);\n\t\t\t}\n\t\t\tconst entry = batched.get(payload);\n\t\t\tif (entry) {\n\t\t\t\tentry.resolvers.push({\n\t\t\t\t\tresolve,\n\t\t\t\t\treject\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tbatched.set(payload, {\n\t\t\t\tget_validated,\n\t\t\t\tresolvers: [{\n\t\t\t\t\tresolve,\n\t\t\t\t\treject\n\t\t\t\t}]\n\t\t\t});\n\t\t\tif (batched.size > 1) return;\n\t\t\tsetTimeout(async () => {\n\t\t\t\tbatches.delete(__.id);\n\t\t\t\tconst entries = Array.from(batched.values());\n\t\t\t\ttry {\n\t\t\t\t\treturn await run_remote_function(event, {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tis_in_remote_query: true\n\t\t\t\t\t}, false, async () => Promise.all(entries.map((entry) => entry.get_validated())), async (input) => {\n\t\t\t\t\t\tconst get_result = await fn(input);\n\t\t\t\t\t\tfor (let i = 0; i < entries.length; i++) try {\n\t\t\t\t\t\t\tconst result = get_result(input[i], i);\n\t\t\t\t\t\t\tfor (const resolver of entries[i].resolvers) resolver.resolve(result);\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tfor (const resolver of entries[i].resolvers) resolver.reject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} catch (error) {\n\t\t\t\t\tfor (const entry of batched.values()) for (const resolver of entry.resolvers) resolver.reject(error);\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t});\n\t};\n\t/** @type {RemoteQueryBatchInternals} */\n\tconst __ = {\n\t\ttype: \"query_batch\",\n\t\tid: \"\",\n\t\tname: \"\",\n\t\tvalidate,\n\t\trun: async (args, options) => {\n\t\t\tconst { event, state } = get_request_store();\n\t\t\treturn run_remote_function(event, {\n\t\t\t\t...state,\n\t\t\t\tis_in_remote_query: true\n\t\t\t}, false, async () => Promise.all(args.map(validate)), async (input) => {\n\t\t\t\tconst get_result = await fn(input);\n\t\t\t\treturn Promise.all(input.map(async (arg, i) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttype: \"result\",\n\t\t\t\t\t\t\tdata: get_result(arg, i)\n\t\t\t\t\t\t};\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\terror: await handle_error_and_jsonify(event, state, options, error),\n\t\t\t\t\t\t\tstatus: error instanceof HttpError || error instanceof SvelteKitError ? error.status : 500\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t});\n\t\t},\n\t\tbind(payload, validated_arg) {\n\t\t\tconst { event, state } = get_request_store();\n\t\t\treturn create_query_resource(__, payload, event, state, () => enqueue(payload, () => validated_arg));\n\t\t}\n\t};\n\t/** @type {RemoteQueryFunction<Input, Output> & { __: RemoteQueryBatchInternals }} */\n\tconst wrapper = (arg) => {\n\t\tif (prerendering) throw new Error(`Cannot call query.batch '${__.name}' while prerendering, as prerendered pages need static data. Use 'prerender' from $app/server instead`);\n\t\tconst { event, state } = get_request_store();\n\t\tconst payload = stringify_remote_arg(arg, state.transport);\n\t\treturn create_query_resource(__, payload, event, state, () => enqueue(payload, () => validate(arg)));\n\t};\n\tObject.defineProperty(wrapper, \"__\", { value: __ });\n\treturn wrapper;\n}\n/**\n* Include this value in the returned payload...\n* @param {RequestEvent} event\n* @param {RequestState} state\n* @param {RemoteInternals} internals\n* @param {string} payload\n* @param {() => Promise<any>} fn\n*/\nfunction refresh(event, state, internals, payload, fn) {\n\tif (!internals.id) return;\n\tif (!event.isRemoteRequest) return;\n\tconst key = create_remote_key(internals.id, payload);\n\tconst promise = fn();\n\tpromise.catch(() => {});\n\t(state.remote.explicit ??= /* @__PURE__ */ new Map()).set(key, {\n\t\tinternals,\n\t\tpromise\n\t});\n}\n/**\n* @param {RemoteInternals} __\n* @param {string} payload — the stringified raw argument (i.e. the cache key the client will use)\n* @param {RequestEvent} event\n* @param {RequestState} state\n* @param {() => Promise<any>} fn\n* @returns {RemoteQuery<any>}\n*/\nfunction create_query_resource(__, payload, event, state, fn) {\n\t/** @type {Promise<any> | null} */\n\tlet promise = null;\n\tconst get_promise = () => {\n\t\treturn promise ??= get_response(__, payload, state, fn);\n\t};\n\tconst populate_hydratable = () => {\n\t\tif (__.id && state.is_in_render) get_promise().catch(noop);\n\t};\n\treturn {\n\t\t/** @type {Promise<any>['catch']} */\n\t\tcatch(onrejected) {\n\t\t\treturn get_promise().catch(onrejected);\n\t\t},\n\t\tget current() {\n\t\t\tpopulate_hydratable();\n\t\t},\n\t\tget error() {\n\t\t\tpopulate_hydratable();\n\t\t},\n\t\t/** @type {Promise<any>['finally']} */\n\t\tfinally(onfinally) {\n\t\t\treturn get_promise().finally(onfinally);\n\t\t},\n\t\tget loading() {\n\t\t\tpopulate_hydratable();\n\t\t\treturn true;\n\t\t},\n\t\tget ready() {\n\t\t\tpopulate_hydratable();\n\t\t\treturn false;\n\t\t},\n\t\trefresh() {\n\t\t\tpromise = null;\n\t\t\tdelete get_cache(__, state)[payload];\n\t\t\trefresh(event, state, __, payload, get_promise);\n\t\t\treturn Promise.resolve();\n\t\t},\n\t\t/** @param {any} value */\n\t\tset(value) {\n\t\t\tconst p = promise = Promise.resolve(value);\n\t\t\tget_cache(__, state)[payload] = p;\n\t\t\trefresh(event, state, __, payload, () => p);\n\t\t},\n\t\trun() {\n\t\t\tthrow new Error(`\\`myQuery().run()\\` has been removed — please replace it with \\`myQuery()\\`. See https://github.com/sveltejs/kit/pull/15779 for more details`);\n\t\t},\n\t\t/** @type {Promise<any>['then']} */\n\t\tthen(onfulfilled, onrejected) {\n\t\t\treturn get_promise().then(onfulfilled, onrejected);\n\t\t},\n\t\twithOverride() {\n\t\t\tthrow new Error(`Cannot call '${__.name}.withOverride()' on the server`);\n\t\t},\n\t\tget [Symbol.toStringTag]() {\n\t\t\treturn \"QueryResource\";\n\t\t}\n\t};\n}\n/**\n* @param {RemoteQueryLiveInternals} __\n* @param {string} payload — the stringified raw argument (i.e. the cache key the client will use)\n* @param {RequestEvent} event\n* @param {RequestState} state\n* @param {() => AsyncGenerator<any, void, void>} get_generator\n* @returns {RemoteLiveQuery<any>}\n*/\nfunction create_live_query_resource(__, payload, event, state, get_generator) {\n\t/** @type {Promise<any> | null} */\n\tlet promise = null;\n\tconst get_first_value = async () => {\n\t\tfor await (const value of get_generator()) return value;\n\t\tthrow new Error(`query.live '${__.name}' did not yield a value`);\n\t};\n\tconst get_promise = () => {\n\t\treturn promise ??= get_response(__, payload, state, get_first_value);\n\t};\n\tconst populate_hydratable = () => {\n\t\tif (__.id && state.is_in_render) get_promise().catch(noop);\n\t};\n\treturn {\n\t\t/** @type {Promise<any>['catch']} */\n\t\tcatch(onrejected) {\n\t\t\treturn get_promise().catch(onrejected);\n\t\t},\n\t\tget current() {\n\t\t\tpopulate_hydratable();\n\t\t},\n\t\tget error() {\n\t\t\tpopulate_hydratable();\n\t\t},\n\t\t/** @type {Promise<any>['finally']} */\n\t\tfinally(onfinally) {\n\t\t\treturn get_promise().finally(onfinally);\n\t\t},\n\t\tget done() {\n\t\t\tpopulate_hydratable();\n\t\t\treturn false;\n\t\t},\n\t\tget loading() {\n\t\t\tpopulate_hydratable();\n\t\t\treturn true;\n\t\t},\n\t\tget ready() {\n\t\t\tpopulate_hydratable();\n\t\t\treturn false;\n\t\t},\n\t\tget connected() {\n\t\t\tpopulate_hydratable();\n\t\t\treturn false;\n\t\t},\n\t\treconnect() {\n\t\t\tpromise = null;\n\t\t\tdelete get_cache(__, state)[payload];\n\t\t\trefresh(event, state, __, payload, get_promise);\n\t\t\treturn Promise.resolve();\n\t\t},\n\t\t/** @ts-expect-error This method no longer exists */\n\t\trun() {\n\t\t\tthrow new Error(\"`.run()` has been removed from live queries. Use `for await (const value of liveQuery())` instead.\");\n\t\t},\n\t\t/** @type {Promise<any>['then']} */\n\t\tthen(onfulfilled, onrejected) {\n\t\t\treturn get_promise().then(onfulfilled, onrejected);\n\t\t},\n\t\t[Symbol.asyncIterator]() {\n\t\t\tconst key = create_remote_key(__.id, payload);\n\t\t\tconst cache = state.remote.live_iterators ??= /* @__PURE__ */ new Map();\n\t\t\tlet cached = cache.get(key);\n\t\t\tif (!cached) {\n\t\t\t\tcached = create_shared_live_iterator(event.request.signal, get_generator);\n\t\t\t\tcache.set(key, cached);\n\t\t\t}\n\t\t\treturn cached.subscribe();\n\t\t},\n\t\tget [Symbol.toStringTag]() {\n\t\t\treturn \"LiveQueryResource\";\n\t\t}\n\t};\n}\n/**\n* Wraps a lazily-created live-query generator so that multiple `for await`\n* consumers within the same request share one underlying iteration. The first\n* subscriber starts the generator; values are broadcast to all subscribers\n* via a `SharedIterator`. When the last subscriber unsubscribes, the generator\n* is closed via `generator.return(undefined)`.\n*\n* If `signal` aborts (typically because the client has disconnected), the\n* pump is torn down and any in-flight `next()` calls on consumer iterators\n* resolve with `{ done: true }`, so suspended `for await` loops unwind\n* cleanly rather than leaking.\n*\n* @param {AbortSignal} signal\n* @param {() => AsyncGenerator<any, void, void>} get_generator\n*/\nfunction create_shared_live_iterator(signal, get_generator) {\n\treturn new SharedIterator((instance) => {\n\t\tif (signal.aborted) {\n\t\t\tinstance.done();\n\t\t\treturn noop;\n\t\t}\n\t\tconst generator = get_generator();\n\t\tlet aborted = false;\n\t\tconst close = () => {\n\t\t\taborted = true;\n\t\t\tgenerator.return().catch(noop);\n\t\t};\n\t\tsignal.addEventListener(\"abort\", () => (close(), instance.done()), { once: true });\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\twhile (true) {\n\t\t\t\t\tconst result = await generator.next();\n\t\t\t\t\tif (result.done) {\n\t\t\t\t\t\tinstance.done();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tinstance.push(result.value);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (!aborted) instance.fail(error);\n\t\t\t} finally {\n\t\t\t\tclose();\n\t\t\t}\n\t\t})();\n\t\treturn close;\n\t});\n}\nObject.defineProperty(query, \"batch\", {\n\tvalue: batch,\n\tenumerable: true\n});\nObject.defineProperty(query, \"live\", {\n\tvalue: live,\n\tenumerable: true\n});\n//#endregion\n//#region node_modules/@sveltejs/kit/src/runtime/app/server/remote/requested.js\n/** @import { RemoteLiveQuery, RemoteLiveQueryFunction, RemoteQuery, RemoteQueryFunction, RequestedResult, QueryRequestedResult, LiveQueryRequestedResult } from '@sveltejs/kit' */\n/** @import { MaybePromise, RemoteAnyQueryInternals } from 'types' */\n/**\n* Inside a remote `command` or `form` callback, returns an iterable\n* of `{ arg, query }` entries for the query instances the client asked to refresh, up to\n* the supplied `limit`. Each `query` is a `RemoteQuery` bound to the original\n* client-side cache key, so `refresh()` / `set()` propagate correctly even when\n* the query's schema transforms the input. `arg` is the *validated* argument,\n* i.e. the value after the schema has run (so `InferOutput<Schema>` for queries\n* declared with a Standard Schema).\n*\n* Arguments that fail validation or exceed `limit` are recorded as failures in\n* the response to the client.\n* See [Client-requested refreshes](https://svelte.dev/docs/kit/remote-functions#Single-flight-mutations-Client-requested-refreshes)\n* for usage in a remote `command` or `form`.\n*\n* @example\n* ```ts\n* import { requested } from '$app/server';\n*\n* for (const { arg, query } of requested(getPost, 5)) {\n* \t// `arg` is the validated argument; `query` is bound to the client's\n* \t// cache key. It's safe to throw away this promise -- SvelteKit will\n* \t// await it and forward any errors to the client.\n* \tvoid query.refresh();\n* }\n* ```\n*\n* As a shorthand for the above, you can also call `refreshAll` on the result:\n*\n* @example\n* ```ts\n* import { requested } from '$app/server';\n*\n* await requested(getPost, 5).refreshAll();\n* ```\n*\n* Works with `query.batch` as well — refreshes for individual entries are\n* collected into a single batched call.\n*\n* For live queries, the same applies, but with `reconnect` and `reconnectAll`.\n*\n* @template Input\n* @template Output\n* @template [Validated=Input]\n* @overload\n* @param {RemoteQueryFunction<Input, Output, Validated>} query\n* @param {number} limit\n* @returns {QueryRequestedResult<Validated, Output>}\n*/\n/**\n* Inside a remote `command` or `form` callback, returns an iterable\n* of `{ arg, query }` entries for the live query instances the client asked to reconnect, up to\n* the supplied `limit`. Each `query` is a `RemoteLiveQuery` bound to the original\n* client-side cache key, so `reconnect()` propagates correctly even when\n* the query's schema transforms the input. `arg` is the *validated* argument.\n*\n* Arguments that fail validation or exceed `limit` are recorded as failures in\n* the response to the client.\n* See [Client-requested refreshes](https://svelte.dev/docs/kit/remote-functions#Single-flight-mutations-Client-requested-refreshes)\n* for usage in a remote `command` or `form`.\n*\n* @example\n* ```ts\n* import { requested } from '$app/server';\n*\n* for (const { query } of requested(getPost, 5)) {\n* \tvoid query.reconnect();\n* }\n* ```\n*\n* As a shorthand, you can also call `reconnectAll` on the result:\n*\n* @example\n* ```ts\n* import { requested } from '$app/server';\n*\n* await requested(getPost, 5).reconnectAll();\n* ```\n*\n* @template Input\n* @template Output\n* @template [Validated=Input]\n* @overload\n* @param {RemoteLiveQueryFunction<Input, Output, Validated>} query\n* @param {number} limit\n* @returns {LiveQueryRequestedResult<Validated, Output>}\n*/\n/**\n* @template Input\n* @template Output\n* @template [Validated=Input]\n* @param {RemoteQueryFunction<Input, Output, Validated> | RemoteLiveQueryFunction<Input, Output, Validated>} query\n* @param {number} limit\n* @returns {RequestedResult<Validated, Output>}\n*/\nfunction requested(query, limit) {\n\tconst { event, state } = get_request_store();\n\tconst internals = query.__;\n\tif (internals?.type !== \"query\" && internals?.type !== \"query_batch\" && internals?.type !== \"query_live\") throw new Error(\"requested(...) expects a query function created with query(...), query.batch(...), or query.live(...)\");\n\tconst __ = internals;\n\tconst payloads = state.remote.requested?.get(__.id) ?? [];\n\tif (!state.is_in_remote_form_or_command) throw new Error(\"requested(...) can only be called in the context of a command/form remote function\");\n\tconst [selected, skipped] = split_limit(payloads, limit);\n\t/**\n\t* Registers the failure exactly like `.set()` registers a value: the error record\n\t* is serialized to the client (putting the query there into a failed state), and\n\t* subsequent server-side calls of the query with the same argument reject with it.\n\t* @param {string} payload\n\t* @param {unknown} error\n\t*/\n\tconst record_failure = (payload, error) => {\n\t\tconst promise = Promise.reject(error);\n\t\tpromise.catch(noop);\n\t\tget_cache(__, state)[payload] = promise;\n\t\trefresh(event, state, __, payload, () => promise);\n\t};\n\tfor (const payload of skipped) record_failure(payload, new HttpError(400, `Requested refresh was rejected because it exceeded requested(${__.name}, ${limit}) limit`));\n\tconst result = {\n\t\t*[Symbol.iterator]() {\n\t\t\tfor (const payload of selected) try {\n\t\t\t\tconst parsed = parse_remote_arg(payload, state.transport);\n\t\t\t\tconst validated = __.validate(parsed);\n\t\t\t\tif (is_thenable(validated)) throw new Error(`requested(${__.name}, ${limit}) cannot be used with synchronous iteration because the query validator is async. Use \\`for await ... of\\` instead`);\n\t\t\t\tyield {\n\t\t\t\t\targ: validated,\n\t\t\t\t\tquery: __.bind(payload, validated)\n\t\t\t\t};\n\t\t\t} catch (error) {\n\t\t\t\trecord_failure(payload, error);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t},\n\t\tasync *[Symbol.asyncIterator]() {\n\t\t\tyield* race_all(selected, async (payload) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst parsed = parse_remote_arg(payload, state.transport);\n\t\t\t\t\tconst validated = await __.validate(parsed);\n\t\t\t\t\treturn {\n\t\t\t\t\t\targ: validated,\n\t\t\t\t\t\tquery: __.bind(payload, validated)\n\t\t\t\t\t};\n\t\t\t\t} catch (error) {\n\t\t\t\t\trecord_failure(payload, error);\n\t\t\t\t\tthrow new Error(`Skipping ${__.name}(${payload})`, { cause: error });\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tasync refreshAll() {\n\t\t\tif (__.type === \"query_live\") throw new Error(\"refreshAll() is invalid for live queries. Use reconnectAll() instead.\");\n\t\t\tfor await (const { query } of result) query.refresh();\n\t\t},\n\t\tasync reconnectAll() {\n\t\t\tif (__.type !== \"query_live\") throw new Error(\"reconnectAll() is invalid for regular queries. Use refreshAll() instead.\");\n\t\t\tfor await (const { query } of result) query.reconnect();\n\t\t}\n\t};\n\treturn result;\n}\n/**\n* @template T\n* @param {Array<T>} array\n* @param {number} limit\n* @returns {[Array<T>, Array<T>]}\n*/\nfunction split_limit(array, limit) {\n\tif (limit === Infinity) return [array, []];\n\tif (!Number.isInteger(limit) || limit < 0) throw new Error(\"Limit must be a non-negative integer or Infinity\");\n\treturn [array.slice(0, limit), array.slice(limit)];\n}\n/**\n* @param {any} value\n* @returns {value is PromiseLike<any>}\n*/\nfunction is_thenable(value) {\n\treturn !!value && (typeof value === \"object\" || typeof value === \"function\") && \"then\" in value;\n}\n/**\n* Runs all callbacks immediately and yields resolved values in completion order.\n* If the promise rejects, it is skipped.\n*\n* @template T\n* @template R\n* @param {Array<T>} array\n* @param {(value: T) => MaybePromise<R>} fn\n* @returns {AsyncIterable<R>}\n*/\nasync function* race_all(array, fn) {\n\t/** @type {Set<Promise<{ promise: Promise<any>, value: Awaited<R> }>>} */\n\tconst pending = /* @__PURE__ */ new Set();\n\tfor (const value of array) {\n\t\t/** @type {Promise<{ promise: Promise<any>, value: Awaited<R> }>} */\n\t\tconst promise = Promise.resolve(fn(value)).then((result) => ({\n\t\t\tpromise,\n\t\t\tvalue: result\n\t\t}));\n\t\tpromise.catch(() => pending.delete(promise));\n\t\tpending.add(promise);\n\t}\n\twhile (pending.size > 0) try {\n\t\tconst { promise, value } = await Promise.race(pending);\n\t\tpending.delete(promise);\n\t\tyield value;\n\t} catch {}\n}\n//#endregion\nexport { command as a, form as i, query as n, prerender as r, requested as t };\n","import { X as __exportAll } from \"./index-server.js\";\nimport \"./shared.js\";\nimport { a as command, n as query } from \"./remote.js\";\nimport \"./paths.js\";\nimport { error } from \"@sveltejs/kit\";\nimport { init_remote_functions } from \"@sveltejs/kit/internal\";\nimport \"@sveltejs/kit/internal/server\";\nimport { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport { execFileSync, spawnSync } from \"node:child_process\";\nimport { createHash } from \"node:crypto\";\nimport { platform, tmpdir } from \"node:os\";\nimport process$1 from \"node:process\";\n//#region ../lib/config.mjs\nvar DEFAULT_IGNORE = [\n\t\"**/package-lock.json\",\n\t\"**/pnpm-lock.yaml\",\n\t\"**/yarn.lock\",\n\t\"**/bun.lock\",\n\t\"**/bun.lockb\",\n\t\"**/*.g.cs\",\n\t\"**/*Snapshot.cs\",\n\t\"**/*.Designer.cs\",\n\t\"**/node_modules/**\",\n\t\"**/.svelte-kit/**\",\n\t\"**/dist/**\",\n\t\"**/build/**\",\n\t\"**/*.min.js\",\n\t\"**/*.min.css\",\n\t\"**/CODE_REVIEW_CORRECTNESS_FINDINGS.md\"\n];\nvar STORE_DIFF_MAX = 4e5;\nvar GUIDELINE_FILES = [\n\t\"REVIEW.md\",\n\t\"CLAUDE.md\",\n\t\"AGENTS.md\"\n];\nfunction unquote(s) {\n\tconst t = String(s || \"\").trim();\n\tif (t.startsWith(\"\\\"\") && t.endsWith(\"\\\"\") || t.startsWith(\"'\") && t.endsWith(\"'\")) return t.slice(1, -1);\n\treturn t;\n}\n/** Minimal YAML: `key: value` and `key:\\n - item`. */\nfunction parseSimpleYaml(text) {\n\tconst result = {};\n\tlet key = null;\n\tfor (const raw of String(text || \"\").split(/\\r?\\n/)) {\n\t\tif (!raw.trim() || raw.trim().startsWith(\"#\")) continue;\n\t\tconst list = raw.match(/^\\s+-\\s+(.*)$/);\n\t\tif (list && key) {\n\t\t\tif (!Array.isArray(result[key])) result[key] = [];\n\t\t\tresult[key].push(unquote(list[1]));\n\t\t\tcontinue;\n\t\t}\n\t\tconst kv = raw.match(/^([A-Za-z][\\w]*)\\s*:\\s*(.*)$/);\n\t\tif (!kv) continue;\n\t\tkey = kv[1];\n\t\tconst v = kv[2].trim();\n\t\tresult[key] = v === \"\" ? [] : unquote(v);\n\t}\n\treturn result;\n}\nfunction globToRegExp(glob) {\n\tlet g = String(glob || \"\").replace(/\\\\/g, \"/\");\n\tif (!g.includes(\"/\")) g = `**/${g}`;\n\tlet s = \"\";\n\tfor (let i = 0; i < g.length; i++) {\n\t\tconst c = g[i];\n\t\tif (c === \"*\" && g[i + 1] === \"*\") if (g[i + 2] === \"/\") {\n\t\t\ts += \"(?:.*/)?\";\n\t\t\ti += 2;\n\t\t} else {\n\t\t\ts += \".*\";\n\t\t\ti += 1;\n\t\t}\n\t\telse if (c === \"*\") s += \"[^/]*\";\n\t\telse if (c === \"?\") s += \"[^/]\";\n\t\telse if (\"+()[]{}|.^$\".includes(c)) s += `\\\\${c}`;\n\t\telse s += c;\n\t}\n\treturn new RegExp(`^${s}$`, \"i\");\n}\nfunction globMatch(filePath, pattern) {\n\tconst norm = String(filePath || \"\").replace(/\\\\/g, \"/\");\n\treturn globToRegExp(pattern).test(norm);\n}\nfunction isIgnored(filePath, patterns) {\n\treturn (patterns || []).some((p) => globMatch(filePath, p));\n}\nfunction isTestPath(filePath) {\n\tconst p = String(filePath || \"\").replace(/\\\\/g, \"/\");\n\treturn /(^|\\/)(__tests__|tests?|spec)s?(\\/|$)/i.test(p) || /\\.(test|spec)\\.[^.]+$/i.test(p);\n}\nfunction readIfExists(path) {\n\ttry {\n\t\treturn existsSync(path) ? readFileSync(path, \"utf8\") : null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nfunction loadReviewConfig(repo) {\n\tconst jsonText = readIfExists(join(repo, \".diff-review.json\"));\n\tconst yamlText = readIfExists(join(repo, \".diff-review.yml\")) || readIfExists(join(repo, \".diff-review.yaml\"));\n\tlet extra = {};\n\tif (jsonText) try {\n\t\textra = JSON.parse(jsonText);\n\t} catch {\n\t\textra = {};\n\t}\n\telse if (yamlText) extra = parseSimpleYaml(yamlText);\n\tconst extraIgnore = Array.isArray(extra.ignore) ? extra.ignore.map(String) : [];\n\tconst rulesFile = extra.rulesFile ? String(extra.rulesFile) : \"REVIEW.md\";\n\tconst rules = readIfExists(join(repo, rulesFile)) || \"\";\n\tconst model = extra.model && extra.model !== \"default\" ? String(extra.model) : null;\n\treturn {\n\t\tignore: [...DEFAULT_IGNORE, ...extraIgnore],\n\t\tmodel,\n\t\trulesFile,\n\t\trules: rules.trim()\n\t};\n}\n/** CLAUDE.md / REVIEW.md / AGENTS.md from repo root and immediate parent dirs of touched files. */\nfunction collectGuidelines(repo, filePaths, { rulesFile = \"REVIEW.md\", maxChars = 8e3, maxTotalChars = 12e3, maxDepth = 1, skipNames = [] } = {}) {\n\tconst skip = new Set(skipNames);\n\tconst names = [.../* @__PURE__ */ new Set([rulesFile, ...GUIDELINE_FILES])].filter((name) => !skip.has(name));\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst out = [];\n\tconst addRel = (rel) => {\n\t\tconst norm = String(rel || \"\").replace(/\\\\/g, \"/\").replace(/^\\/+/, \"\");\n\t\tif (!norm || seen.has(norm)) return;\n\t\tconst text = readIfExists(join(repo, ...norm.split(\"/\")));\n\t\tif (!text || !text.trim()) return;\n\t\tseen.add(norm);\n\t\tout.push({\n\t\t\tpath: norm,\n\t\t\ttext: text.trim()\n\t\t});\n\t};\n\tfor (const name of names) addRel(name);\n\tconst depth = Math.max(1, Number(maxDepth) || 1);\n\tfor (const filePath of filePaths || []) {\n\t\tconst parts = String(filePath || \"\").replace(/\\\\/g, \"/\").split(\"/\").filter(Boolean);\n\t\tconst minLen = Math.max(1, parts.length - depth);\n\t\tfor (let len = parts.length - 1; len >= minLen; len--) {\n\t\t\tconst dir = parts.slice(0, len).join(\"/\");\n\t\t\tfor (const name of names) addRel(`${dir}/${name}`);\n\t\t}\n\t}\n\tlet total = 0;\n\tconst capped = [];\n\tfor (const item of out) {\n\t\tif (total >= maxTotalChars) break;\n\t\tconst room = maxTotalChars - total;\n\t\tconst slice = item.text.slice(0, Math.min(maxChars, room));\n\t\tif (!slice) continue;\n\t\tcapped.push({\n\t\t\tpath: item.path,\n\t\t\ttext: slice\n\t\t});\n\t\ttotal += slice.length;\n\t}\n\treturn capped;\n}\nfunction capDiff(diff, max = STORE_DIFF_MAX) {\n\tconst text = String(diff || \"\");\n\tif (text.length <= max) return {\n\t\tdiff: text,\n\t\tdiffChars: text.length,\n\t\ttruncated: false\n\t};\n\treturn {\n\t\tdiff: `${text.slice(0, max)}\\n\\n… [diff recortado: se guardan ${max} de ${text.length} caracteres]`,\n\t\tdiffChars: text.length,\n\t\ttruncated: true\n\t};\n}\n//#endregion\n//#region ../lib/git.mjs\nfunction assertGitRepo(repo) {\n\tconst raw = String(repo || \"\").trim();\n\tif (!raw) throw new Error(\"Indicá la ruta absoluta de un repositorio git.\");\n\tif (!/[\\\\/]/.test(raw) && !/^[A-Za-z]:/.test(raw)) throw new Error(`\"${raw}\" no es una ruta. Pegá la ruta absoluta del repo (ej. C:\\\\tienda-argenta\\\\tienda-argenta-2).`);\n\tconst resolved = resolve(raw);\n\tif (!resolved || resolved === \".\") throw new Error(\"Indicá la ruta absoluta de un repositorio git.\");\n\tif (!existsSync(resolved)) throw new Error(`No existe la carpeta: ${resolved}`);\n\tif (!existsSync(join(resolved, \".git\"))) throw new Error(`No es un repositorio git (falta .git): ${resolved}`);\n\treturn resolved;\n}\n/**\n* Si `cwd` está dentro de un repo git, devuelve la raíz absoluta; si no, null.\n* Acepta subcarpetas (usa `git rev-parse --show-toplevel`).\n*/\nfunction tryResolveGitRoot(cwd) {\n\tconst raw = String(cwd || \"\").trim();\n\tif (!raw) return null;\n\tconst dir = resolve(raw);\n\tif (!existsSync(dir)) return null;\n\ttry {\n\t\tconst root = execFileSync(\"git\", [\"rev-parse\", \"--show-toplevel\"], {\n\t\t\tcwd: dir,\n\t\t\tencoding: \"utf8\",\n\t\t\twindowsHide: true,\n\t\t\tstdio: [\n\t\t\t\t\"ignore\",\n\t\t\t\t\"pipe\",\n\t\t\t\t\"ignore\"\n\t\t\t]\n\t\t}).trim();\n\t\treturn root ? resolve(root) : null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nfunction git(repo, args, { maxBuffer = 64 * 1024 * 1024 } = {}) {\n\treturn execFileSync(\"git\", args, {\n\t\tcwd: repo,\n\t\tencoding: \"utf8\",\n\t\tmaxBuffer,\n\t\twindowsHide: true\n\t});\n}\nfunction commitLog(repo, mergeBase, branch, limit = 25) {\n\ttry {\n\t\treturn git(repo, [\n\t\t\t\"log\",\n\t\t\t\"--oneline\",\n\t\t\t\"--no-merges\",\n\t\t\t\"-n\",\n\t\t\tString(limit),\n\t\t\t`${mergeBase}..${branch}`\n\t\t]).trim().split(\"\\n\").filter(Boolean);\n\t} catch {\n\t\treturn [];\n\t}\n}\nvar FILE_LINE_CACHE = /* @__PURE__ */ new Map();\nvar FILE_LINE_CACHE_MAX = 48;\nfunction rememberFileLines(key, lines) {\n\tif (FILE_LINE_CACHE.has(key)) FILE_LINE_CACHE.delete(key);\n\tFILE_LINE_CACHE.set(key, lines);\n\twhile (FILE_LINE_CACHE.size > FILE_LINE_CACHE_MAX) {\n\t\tconst oldest = FILE_LINE_CACHE.keys().next().value;\n\t\tFILE_LINE_CACHE.delete(oldest);\n\t}\n}\nfunction showFileLines(repo, rev, path) {\n\tconst resolved = assertGitRepo(repo);\n\tconst safeRev = String(rev || \"\").trim();\n\tconst safePath = String(path || \"\").replace(/\\\\/g, \"/\").trim();\n\tif (!safeRev || !/^[A-Za-z0-9._/\\-]+$/.test(safeRev)) throw new Error(\"Rev inválido.\");\n\tif (!safePath || safePath.startsWith(\"/\") || safePath.includes(\"..\") || safePath.includes(\"\\0\")) throw new Error(\"Ruta inválida.\");\n\tconst key = `${resolved}\\0${safeRev}\\0${safePath}`;\n\tif (FILE_LINE_CACHE.has(key)) return FILE_LINE_CACHE.get(key);\n\tlet text;\n\ttry {\n\t\ttext = git(resolved, [\"show\", `${safeRev}:${safePath}`]);\n\t} catch {\n\t\trememberFileLines(key, null);\n\t\treturn null;\n\t}\n\tif (text.includes(\"\\0\")) {\n\t\trememberFileLines(key, null);\n\t\treturn null;\n\t}\n\tconst raw = text.replace(/\\r\\n/g, \"\\n\");\n\tconst lines = raw.endsWith(\"\\n\") ? raw.slice(0, -1).split(\"\\n\") : raw.split(\"\\n\");\n\trememberFileLines(key, lines);\n\treturn lines;\n}\nfunction listBranches(repo) {\n\tconst names = git(repo, [\n\t\t\"for-each-ref\",\n\t\t\"--sort=-committerdate\",\n\t\t\"--format=%(refname:short)\",\n\t\t\"refs/heads\",\n\t\t\"refs/remotes\"\n\t]).split(\"\\n\").map((s) => s.trim()).filter(Boolean).map((name) => name.replace(/^origin\\//, \"\")).filter((name) => name !== \"HEAD\" && !name.endsWith(\"/HEAD\"));\n\tconst unique = [...new Set(names)];\n\tconst current = git(repo, [\n\t\t\"rev-parse\",\n\t\t\"--abbrev-ref\",\n\t\t\"HEAD\"\n\t]).trim();\n\tconst bases = unique.filter((n) => n === \"develop\" || n === \"main\" || n === \"master\");\n\treturn {\n\t\tbranches: unique,\n\t\tcurrent,\n\t\tdefaultBase: bases.includes(\"develop\") ? \"develop\" : bases.includes(\"main\") ? \"main\" : bases[0] || \"develop\"\n\t};\n}\n/** URL del remote (origin, o el primero disponible). Vacío si no hay. */\nfunction getRemoteUrl(repo, preferred = \"origin\") {\n\ttry {\n\t\tconst url = git(repo, [\n\t\t\t\"remote\",\n\t\t\t\"get-url\",\n\t\t\tpreferred\n\t\t]).trim();\n\t\tif (url) return url;\n\t} catch {}\n\ttry {\n\t\tconst remotes = git(repo, [\"remote\"]).split(\"\\n\").map((s) => s.trim()).filter(Boolean);\n\t\tif (!remotes.length) return \"\";\n\t\treturn git(repo, [\n\t\t\t\"remote\",\n\t\t\t\"get-url\",\n\t\t\tremotes[0]\n\t\t]).trim();\n\t} catch {\n\t\treturn \"\";\n\t}\n}\n//#endregion\n//#region ../lib/extract.mjs\nfunction extractBranchDiff({ repo, branch, base = \"develop\" }) {\n\tif (!branch) throw new Error(\"Falta el branch a revisar.\");\n\tconst config = loadReviewConfig(repo);\n\tconst mergeBase = git(repo, [\n\t\t\"merge-base\",\n\t\tbase,\n\t\tbranch\n\t]).trim();\n\tconst branchSha = git(repo, [\"rev-parse\", branch]).trim();\n\tconst baseSha = git(repo, [\"rev-parse\", base]).trim();\n\tconst nameStatus = git(repo, [\n\t\t\"diff\",\n\t\tmergeBase,\n\t\tbranch,\n\t\t\"--name-status\"\n\t]).trim().split(\"\\n\").filter(Boolean).map((line) => {\n\t\tconst [status, ...rest] = line.split(\"\t\");\n\t\tconst path = rest[rest.length - 1];\n\t\tconst oldPath = rest.length > 1 ? rest[0] : null;\n\t\tlet changeType = \"modified\";\n\t\tif (status.startsWith(\"A\")) changeType = \"added\";\n\t\telse if (status.startsWith(\"D\")) changeType = \"deleted\";\n\t\telse if (status.startsWith(\"R\")) changeType = \"renamed\";\n\t\treturn {\n\t\t\tpath,\n\t\t\toldPath,\n\t\t\tchangeType\n\t\t};\n\t});\n\tconst ignored = [];\n\tconst included = [];\n\tfor (const f of nameStatus) if (isIgnored(f.path, config.ignore)) ignored.push(f.path);\n\telse included.push(f);\n\tconst files = included.map((f) => {\n\t\tlet raw = \"\";\n\t\ttry {\n\t\t\traw = git(repo, [\n\t\t\t\t\"diff\",\n\t\t\t\tmergeBase,\n\t\t\t\tbranch,\n\t\t\t\t\"--\",\n\t\t\t\tf.path\n\t\t\t]);\n\t\t\tconst idx = raw.indexOf(\"\\n@@\");\n\t\t\tif (idx !== -1) raw = raw.slice(idx + 1);\n\t\t} catch {\n\t\t\traw = \"\";\n\t\t}\n\t\tconst capped = capDiff(raw);\n\t\treturn {\n\t\t\tpath: f.path,\n\t\t\toldPath: f.oldPath || void 0,\n\t\t\tchangeType: f.changeType,\n\t\t\tdiff: capped.diff,\n\t\t\tdiffChars: capped.diffChars,\n\t\t\ttruncated: capped.truncated,\n\t\t\tmodelChars: capped.diff.length,\n\t\t\tgroup: \"\"\n\t\t};\n\t});\n\tconst shortstat = git(repo, [\n\t\t\"diff\",\n\t\tmergeBase,\n\t\tbranch,\n\t\t\"--shortstat\"\n\t]).trim();\n\tconst insMatch = shortstat.match(/(\\d+) insertion/);\n\tconst delMatch = shortstat.match(/(\\d+) deletion/);\n\treturn {\n\t\tversion: 2,\n\t\trepo,\n\t\tbranch,\n\t\tbaseBranch: base,\n\t\tmergeBase,\n\t\tbranchSha,\n\t\tbaseSha,\n\t\tgeneratedAt: (/* @__PURE__ */ new Date()).toISOString(),\n\t\tintent: \"\",\n\t\tstats: {\n\t\t\tfilesChanged: files.length,\n\t\t\tfilesIgnored: ignored.length,\n\t\t\tfilesTruncated: files.filter((f) => f.truncated).length,\n\t\t\tinsertions: insMatch ? Number(insMatch[1]) : 0,\n\t\t\tdeletions: delMatch ? Number(delMatch[1]) : 0\n\t\t},\n\t\tcontext: {\n\t\t\tcommits: commitLog(repo, mergeBase, branch),\n\t\t\trules: config.rules,\n\t\t\trulesFile: config.rulesFile,\n\t\t\tignored: ignored.slice(0, 40),\n\t\t\ttestsTouched: files.filter((f) => isTestPath(f.path)).map((f) => f.path),\n\t\t\ttestsMissing: files.filter((f) => !isTestPath(f.path)).length,\n\t\t\tguidelines: collectGuidelines(repo, files.map((f) => f.path), {\n\t\t\t\trulesFile: config.rulesFile,\n\t\t\t\tskipNames: config.rules.trim() ? [config.rulesFile] : [],\n\t\t\t\tmaxDepth: 1,\n\t\t\t\tmaxChars: 8e3,\n\t\t\t\tmaxTotalChars: 12e3\n\t\t\t})\n\t\t},\n\t\tfiles,\n\t\tgroups: [],\n\t\tblocks: [],\n\t\tfindings: [],\n\t\tskipped: []\n\t};\n}\n//#endregion\n//#region ../lib/remote-repo.mjs\nvar CACHE_ROOT = join(tmpdir(), \"diff-review-clones\");\nvar MAX_DEEPEN_ROUNDS = 8;\nvar DEEPEN_BY = \"50\";\nfunction looksLikeGitUrl(value) {\n\tconst v = String(value || \"\").trim();\n\tif (!v) return false;\n\tif (/^(https?:\\/\\/|git@|ssh:\\/\\/)/i.test(v)) return true;\n\tif (/\\.git$/i.test(v) && !/^[A-Za-z]:/.test(v) && !v.startsWith(\"/\") && !v.startsWith(\"\\\\\")) return true;\n\treturn false;\n}\nfunction normalizeGitUrl(url) {\n\tconst raw = String(url || \"\").trim();\n\tif (!raw) throw new Error(\"Indicá la URL del repositorio.\");\n\tif (!looksLikeGitUrl(raw)) throw new Error(`\"${raw}\" no parece una URL git. Usá https://…, git@… o ssh://…`);\n\tif (/^(file:|javascript:|data:)/i.test(raw)) throw new Error(\"Esquema de URL no permitido.\");\n\treturn raw.replace(/\\/$/, \"\");\n}\nfunction cacheDirFor(url) {\n\treturn join(CACHE_ROOT, createHash(\"sha1\").update(url).digest(\"hex\").slice(0, 16));\n}\nfunction runGit(args, { cwd, timeout = 300 * 1e3 } = {}) {\n\treturn execFileSync(\"git\", args, {\n\t\tcwd,\n\t\tencoding: \"utf8\",\n\t\twindowsHide: true,\n\t\ttimeout,\n\t\tmaxBuffer: 64 * 1024 * 1024\n\t});\n}\n/** Lista heads del remote sin clonar. */\nfunction listRemoteBranches(url) {\n\tconst remote = normalizeGitUrl(url);\n\tlet raw;\n\ttry {\n\t\traw = runGit([\n\t\t\t\"ls-remote\",\n\t\t\t\"--heads\",\n\t\t\tremote\n\t\t]);\n\t} catch (err) {\n\t\tconst stderr = String(\n\t\t\t/** @type {{ stderr?: string }} */\n\t\t\terr.stderr || err.message || err\n\t\t);\n\t\tthrow new Error(\"No se pudo listar branches del remote: \" + stderr.split(\"\\n\").find(Boolean));\n\t}\n\tconst branches = [...new Set(raw.split(\"\\n\").map((line) => line.trim()).filter(Boolean).map((line) => {\n\t\treturn (line.split(\"\t\")[1] || \"\").replace(/^refs\\/heads\\//, \"\");\n\t}).filter(Boolean))].sort((a, b) => a.localeCompare(b));\n\tif (!branches.length) throw new Error(\"El remote no expone branches (refs/heads).\");\n\treturn {\n\t\tbranches,\n\t\tcurrent: \"\",\n\t\tdefaultBase: branches.includes(\"develop\") ? \"develop\" : branches.includes(\"main\") ? \"main\" : branches.includes(\"master\") ? \"master\" : branches[0]\n\t};\n}\nfunction fetchRef(repo, ref) {\n\tconst name = String(ref || \"\").trim();\n\tif (!name) return;\n\ttry {\n\t\trunGit([\n\t\t\t\"rev-parse\",\n\t\t\t\"--verify\",\n\t\t\tname\n\t\t], { cwd: repo });\n\t\treturn;\n\t} catch {}\n\trunGit([\n\t\t\"fetch\",\n\t\t\"--depth\",\n\t\tDEEPEN_BY,\n\t\t\"origin\",\n\t\t`refs/heads/${name}:refs/heads/${name}`\n\t], { cwd: repo });\n}\nfunction deepenUntilMergeBase(repo, base, branch) {\n\tfor (let i = 0; i < MAX_DEEPEN_ROUNDS; i++) try {\n\t\tgit(repo, [\n\t\t\t\"merge-base\",\n\t\t\tbase,\n\t\t\tbranch\n\t\t]);\n\t\treturn;\n\t} catch {\n\t\trunGit([\n\t\t\t\"fetch\",\n\t\t\t\"--deepen\",\n\t\t\tDEEPEN_BY,\n\t\t\t\"origin\",\n\t\t\t`refs/heads/${base}:refs/heads/${base}`,\n\t\t\t`refs/heads/${branch}:refs/heads/${branch}`\n\t\t], { cwd: repo });\n\t}\n\tthrow new Error(`No se encontró merge-base entre \"${base}\" y \"${branch}\" (historial shallow insuficiente). Probá con más historia o usá una carpeta local.`);\n}\n/**\n* Asegura un worktree local (cache en tmp) con branch y base disponibles para diff.\n* @returns {string} ruta absoluta del clone\n*/\nfunction ensureRemoteWorktree(url, branch, base = \"develop\") {\n\tconst remote = normalizeGitUrl(url);\n\tconst b = String(branch || \"\").trim();\n\tconst baseRef = String(base || \"develop\").trim() || \"develop\";\n\tif (!b) throw new Error(\"Falta el branch a revisar.\");\n\tmkdirSync(CACHE_ROOT, { recursive: true });\n\tconst dir = cacheDirFor(remote);\n\tif (!existsSync(join(dir, \".git\"))) {\n\t\tif (existsSync(dir)) rmSync(dir, {\n\t\t\trecursive: true,\n\t\t\tforce: true\n\t\t});\n\t\ttry {\n\t\t\trunGit([\n\t\t\t\t\"clone\",\n\t\t\t\t\"--filter=blob:none\",\n\t\t\t\t\"--depth\",\n\t\t\t\tDEEPEN_BY,\n\t\t\t\t\"--branch\",\n\t\t\t\tb,\n\t\t\t\tremote,\n\t\t\t\tdir\n\t\t\t], { timeout: 600 * 1e3 });\n\t\t} catch (err) {\n\t\t\tif (existsSync(dir)) rmSync(dir, {\n\t\t\t\trecursive: true,\n\t\t\t\tforce: true\n\t\t\t});\n\t\t\tconst stderr = String(\n\t\t\t\t/** @type {{ stderr?: string }} */\n\t\t\t\terr.stderr || err.message || err\n\t\t\t);\n\t\t\tthrow new Error(\"No se pudo clonar el repo: \" + stderr.split(\"\\n\").find(Boolean));\n\t\t}\n\t} else {\n\t\ttry {\n\t\t\trunGit([\n\t\t\t\t\"remote\",\n\t\t\t\t\"set-url\",\n\t\t\t\t\"origin\",\n\t\t\t\tremote\n\t\t\t], { cwd: dir });\n\t\t} catch {}\n\t\tfetchRef(dir, b);\n\t\ttry {\n\t\t\trunGit([\n\t\t\t\t\"checkout\",\n\t\t\t\t\"--force\",\n\t\t\t\tb\n\t\t\t], { cwd: dir });\n\t\t} catch {}\n\t}\n\tif (baseRef !== b) fetchRef(dir, baseRef);\n\tdeepenUntilMergeBase(dir, baseRef, b);\n\treturn dir;\n}\n//#endregion\n//#region ../lib/validate.mjs\nvar GROUP_KINDS = [\n\t\"feat\",\n\t\"fix\",\n\t\"refactor\",\n\t\"perf\",\n\t\"test\",\n\t\"chore\",\n\t\"docs\",\n\t\"infra\"\n];\nvar BLOCK_OPS = [\n\t\"add\",\n\t\"mod\",\n\t\"del\",\n\t\"rename\"\n];\nvar WHY_SOURCES = [\n\t\"code\",\n\t\"commit\",\n\t\"pr\",\n\t\"issue\",\n\t\"inferred\"\n];\nvar FINDING_CLASSES = [\"risk\", \"quality\"];\nvar FINDING_SEVERITIES = [\n\t\"high\",\n\t\"med\",\n\t\"low\",\n\t\"nit\"\n];\nvar FINDING_KINDS = [\n\t\"bug\",\n\t\"race\",\n\t\"auth\",\n\t\"security\",\n\t\"api-break\",\n\t\"missing-test\",\n\t\"perf\",\n\t\"maintainability\",\n\t\"docs\",\n\t\"other\"\n];\nvar SKIP_REASONS = [\n\t\"generated\",\n\t\"lockfile\",\n\t\"format\",\n\t\"vendored\",\n\t\"binary\",\n\t\"trivial\",\n\t\"ignored\"\n];\n//#endregion\n//#region ../lib/review.mjs\nvar MAX = {\n\tintent: 700,\n\tgroupTitle: 100,\n\tgroupIntent: 300,\n\twhat: 240,\n\twhy: 240,\n\tfinding: 360\n};\nfunction text$1(value, max) {\n\tconst raw = String(value ?? \"\").replace(/\\s+/g, \" \").trim();\n\treturn raw.length > max ? `${raw.slice(0, max - 1).trimEnd()}…` : raw;\n}\nfunction oneOf(value, allowed, fallback) {\n\tconst raw = String(value ?? \"\").trim().toLowerCase();\n\treturn allowed.includes(raw) ? raw : fallback;\n}\n/**\n* Rango de líneas de un bloque. `L40-58` es post-imagen (lo que quedó);\n* `-L88-95` es pre-imagen, que es la única forma de señalar líneas borradas.\n*/\nfunction parseLineRange(value) {\n\tconst raw = String(value ?? \"\").trim();\n\tconst match = /^(-)?L?(\\d+)(?:\\s*[-–]\\s*L?(\\d+))?$/i.exec(raw);\n\tif (!match) return null;\n\tconst start = Number(match[2]);\n\tconst end = match[3] ? Number(match[3]) : start;\n\treturn {\n\t\tside: match[1] ? \"old\" : \"new\",\n\t\tstart: Math.min(start, end),\n\t\tend: Math.max(start, end)\n\t};\n}\nfunction formatLineRange(range) {\n\tif (!range) return \"\";\n\tconst prefix = range.side === \"old\" ? \"-L\" : \"L\";\n\treturn range.start === range.end ? `${prefix}${range.start}` : `${prefix}${range.start}-${range.end}`;\n}\nfunction countHunks(files) {\n\tlet total = 0;\n\tfor (const file of files || []) for (const line of String(file.diff || \"\").split(\"\\n\")) if (line.startsWith(\"@@\")) total += 1;\n\treturn total;\n}\nfunction normalizeGroups(raw) {\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst groups = [];\n\tfor (const item of raw || []) {\n\t\tconst id = String(item?.id || \"\").trim();\n\t\tif (!id || seen.has(id)) continue;\n\t\tseen.add(id);\n\t\tgroups.push({\n\t\t\tid,\n\t\t\tkind: oneOf(item.kind, GROUP_KINDS, \"chore\"),\n\t\t\ttitle: text$1(item.title, MAX.groupTitle) || `${oneOf(item.kind, GROUP_KINDS, \"chore\")}: cambios`,\n\t\t\tintent: text$1(item.intent, MAX.groupIntent)\n\t\t});\n\t}\n\treturn groups;\n}\nfunction normalizeBlocks(raw, { groupIds, knownPaths }) {\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst blocks = [];\n\tfor (const item of raw || []) {\n\t\tconst id = String(item?.id || \"\").trim();\n\t\tconst group = String(item?.group || \"\").trim();\n\t\tconst file = String(item?.file || \"\").trim();\n\t\tif (!id || seen.has(id)) continue;\n\t\tif (!groupIds.has(group)) continue;\n\t\tif (knownPaths.size && !knownPaths.has(file)) continue;\n\t\tconst range = parseLineRange(item.lines);\n\t\tseen.add(id);\n\t\tblocks.push({\n\t\t\tid,\n\t\t\tgroup,\n\t\t\tfile,\n\t\t\tlines: range ? formatLineRange(range) : text$1(item.lines, 24),\n\t\t\tside: range?.side || \"new\",\n\t\t\tstart: range?.start ?? 0,\n\t\t\tend: range?.end ?? 0,\n\t\t\top: oneOf(item.op, BLOCK_OPS, \"mod\"),\n\t\t\twhat: text$1(item.what, MAX.what),\n\t\t\twhy: text$1(item.why, MAX.why),\n\t\t\tsource: oneOf(item.source, WHY_SOURCES, \"inferred\")\n\t\t});\n\t}\n\tblocks.sort((a, b) => a.file.localeCompare(b.file) || a.start - b.start);\n\treturn blocks;\n}\nfunction findingKey(finding) {\n\treturn [\n\t\tfinding.file,\n\t\tfinding.line ?? \"\",\n\t\tfinding.kind,\n\t\tfinding.what\n\t].join(\"|\");\n}\nfunction normalizeFindings(raw, { blockIds, knownPaths }) {\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst findings = [];\n\tfor (const item of raw || []) {\n\t\tconst file = String(item?.file || item?.path || \"\").trim();\n\t\tconst what = text$1(item?.what || item?.title, MAX.finding);\n\t\tif (!file || !what) continue;\n\t\tif (knownPaths.size && !knownPaths.has(file)) continue;\n\t\tconst cls = oneOf(item.class, FINDING_CLASSES, \"risk\");\n\t\tconst severity = oneOf(item.severity, FINDING_SEVERITIES, \"med\");\n\t\tconst block = String(item?.block || \"\").trim();\n\t\tconst line = Number.isFinite(Number(item?.line)) ? Number(item.line) : null;\n\t\tconst finding = {\n\t\t\tid: \"\",\n\t\t\tclass: cls,\n\t\t\tseverity,\n\t\t\tblocking: cls === \"risk\" && (item?.blocking === true || severity === \"high\"),\n\t\t\tkind: oneOf(item.kind, FINDING_KINDS, \"other\"),\n\t\t\tfile,\n\t\t\tline,\n\t\t\tblock: blockIds.has(block) ? block : \"\",\n\t\t\twhat,\n\t\t\tfix: text$1(item.fix || item.detail, MAX.finding)\n\t\t};\n\t\tconst key = findingKey(finding);\n\t\tif (seen.has(key)) continue;\n\t\tseen.add(key);\n\t\tfindings.push(finding);\n\t}\n\tconst rank = {\n\t\thigh: 0,\n\t\tmed: 1,\n\t\tlow: 2,\n\t\tnit: 3\n\t};\n\tfindings.sort((a, b) => Number(b.blocking) - Number(a.blocking) || (a.class === b.class ? 0 : a.class === \"risk\" ? -1 : 1) || rank[a.severity] - rank[b.severity] || a.file.localeCompare(b.file));\n\tfindings.forEach((finding, i) => {\n\t\tfinding.id = `f${i + 1}`;\n\t});\n\treturn findings;\n}\nfunction normalizeSkipped(raw, ignored) {\n\tconst byFile = /* @__PURE__ */ new Map();\n\tfor (const path of ignored || []) byFile.set(String(path), {\n\t\tfile: String(path),\n\t\treason: \"ignored\"\n\t});\n\tfor (const item of raw || []) {\n\t\tconst file = String(item?.file || \"\").trim();\n\t\tif (!file) continue;\n\t\tbyFile.set(file, {\n\t\t\tfile,\n\t\t\treason: oneOf(item.reason, SKIP_REASONS, \"trivial\")\n\t\t});\n\t}\n\treturn [...byFile.values()];\n}\n/** Tema donde se dibuja el archivo: el que aporta más bloques, desempatando por orden de tema. */\nfunction dominantGroup(blocks, path, groupOrder) {\n\tconst tally = /* @__PURE__ */ new Map();\n\tfor (const block of blocks) {\n\t\tif (block.file !== path) continue;\n\t\ttally.set(block.group, (tally.get(block.group) || 0) + 1);\n\t}\n\tif (!tally.size) return \"\";\n\treturn [...tally.entries()].sort((a, b) => b[1] - a[1] || groupOrder.indexOf(a[0]) - groupOrder.indexOf(b[0]))[0][0];\n}\n/**\n* Documento final: lo que dijo el modelo, saneado y cruzado contra los archivos\n* reales del diff. Todo lo que no cierra se descarta acá en vez de romper la UI.\n*/\nfunction buildReview({ skeleton, payload, notes = [] }) {\n\tconst files = skeleton.files || [];\n\tconst knownPaths = new Set(files.map((f) => f.path));\n\tconst groups = normalizeGroups(payload?.groups);\n\tconst groupIds = new Set(groups.map((g) => g.id));\n\tconst blocks = normalizeBlocks(payload?.blocks, {\n\t\tgroupIds,\n\t\tknownPaths\n\t});\n\tconst blockIds = new Set(blocks.map((b) => b.id));\n\tconst findings = normalizeFindings(payload?.findings, {\n\t\tblockIds,\n\t\tknownPaths\n\t});\n\tconst skipped = normalizeSkipped(payload?.skipped, skeleton.context?.ignored);\n\tconst usedGroups = new Set(blocks.map((b) => b.group));\n\tconst liveGroups = groups.filter((g) => usedGroups.has(g.id));\n\tconst groupOrder = liveGroups.map((g) => g.id);\n\tconst skippedFiles = new Set(skipped.map((s) => s.file));\n\tconst orphans = files.filter((f) => !blocks.some((b) => b.file === f.path) && !skippedFiles.has(f.path));\n\tif (orphans.length) notes = [...notes, `${orphans.length} archivo(s) quedaron sin explicación del modelo.`];\n\tconst decorated = files.map((file) => ({\n\t\t...file,\n\t\tgroup: dominantGroup(blocks, file.path, groupOrder)\n\t}));\n\treturn {\n\t\t...skeleton,\n\t\tversion: 2,\n\t\tintent: text$1(payload?.intent, MAX.intent),\n\t\tgroups: liveGroups,\n\t\tblocks,\n\t\tfindings,\n\t\tskipped,\n\t\tfiles: decorated,\n\t\tstats: {\n\t\t\t...skeleton.stats,\n\t\t\thunks: countHunks(files)\n\t\t},\n\t\tnotes,\n\t\tgeneratedAt: (/* @__PURE__ */ new Date()).toISOString()\n\t};\n}\n//#endregion\n//#region src/lib/server/pick-folder.ts\n/**\n* Diálogo nativo de carpetas.\n* Windows: PowerShell DPI-aware (exit 2 = canceló; 1 = error → fallback).\n* Otros: @bindrs/rfd; si falla, shell (VBS / osascript / zenity).\n*/\nasync function pickFolder() {\n\tif (platform() === \"win32\") try {\n\t\treturn pickWindowsDpiAware();\n\t} catch (err) {\n\t\tconsole.warn(\"[diff-review] picker DPI-aware falló, probando rfd/fallback:\", err instanceof Error ? err.message : err);\n\t}\n\ttry {\n\t\treturn pickWithRfdWorker();\n\t} catch (err) {\n\t\tconsole.warn(\"[diff-review] @bindrs/rfd no disponible, usando fallback:\", err instanceof Error ? err.message : err);\n\t\treturn pickFolderFallback();\n\t}\n}\nfunction resolveNodeBin() {\n\tif (process$1.execPath && /node(\\.exe)?$/i.test(process$1.execPath)) return process$1.execPath;\n\treturn \"node\";\n}\nfunction writeUtf8Bom(path, content) {\n\twriteFileSync(path, `\\uFEFF${content}`, \"utf8\");\n}\n/**\n* IFileOpenDialog nativo (Vista+) + DPI Per-Monitor V2 ANTES de cualquier UI.\n* Exit: 0 ok, 2 canceló, otro error → fallback.\n*/\nfunction pickWindowsDpiAware() {\n\tconst dir = mkdtempSync(join(tmpdir(), \"diff-review-pick-\"));\n\tconst script = join(dir, \"pick.ps1\");\n\tconst outFile = join(dir, \"path.txt\");\n\ttry {\n\t\twriteUtf8Bom(script, `\n$ErrorActionPreference = 'Stop'\n\n# 1) DPI awareness ANTES de cargar WinForms / crear ventanas.\nAdd-Type @'\nusing System;\nusing System.Runtime.InteropServices;\npublic static class DiffReviewDpi {\n [DllImport(\"user32.dll\")] public static extern IntPtr SetThreadDpiAwarenessContext(IntPtr dpiContext);\n [DllImport(\"shcore.dll\")] public static extern int SetProcessDpiAwareness(int value);\n [DllImport(\"user32.dll\")] public static extern bool SetProcessDPIAware();\n public static readonly IntPtr PerMonitorV2 = unchecked((IntPtr)(-4));\n public static void Enable() {\n try { SetThreadDpiAwarenessContext(PerMonitorV2); return; } catch { }\n try { SetProcessDpiAwareness(2); return; } catch { }\n try { SetProcessDPIAware(); } catch { }\n }\n}\n'@\n[DiffReviewDpi]::Enable()\n\n# 2) IFileOpenDialog COM (mismo dialogo nitido que el Explorer).\nAdd-Type @'\nusing System;\nusing System.Runtime.InteropServices;\n\n[ComImport, Guid(\"DC1C5A9C-E88A-4DDE-A5A1-60F82A20AEF7\")]\ninternal class FileOpenDialogRCW { }\n\n[ComImport, Guid(\"42F85136-DB7E-439C-85F1-E4075D135FC8\"),\n InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\ninternal interface IFileDialog {\n [PreserveSig] int Show(IntPtr parent);\n void SetFileTypes(uint cFileTypes, IntPtr rgFilterSpec);\n void SetFileTypeIndex(uint iFileType);\n void GetFileTypeIndex(out uint piFileType);\n void Advise(IntPtr pfde, out uint pdwCookie);\n void Unadvise(uint dwCookie);\n void SetOptions(uint fos);\n void GetOptions(out uint pfos);\n void SetDefaultFolder(IShellItem psi);\n void SetFolder(IShellItem psi);\n void GetFolder(out IShellItem ppsi);\n void GetCurrentSelection(out IShellItem ppsi);\n void SetFileName([MarshalAs(UnmanagedType.LPWStr)] string pszName);\n void GetFileName([MarshalAs(UnmanagedType.LPWStr)] out string pszName);\n void SetTitle([MarshalAs(UnmanagedType.LPWStr)] string pszTitle);\n void SetOkButtonLabel([MarshalAs(UnmanagedType.LPWStr)] string pszText);\n void SetFileNameLabel([MarshalAs(UnmanagedType.LPWStr)] string pszLabel);\n void GetResult(out IShellItem ppsi);\n void AddPlace(IShellItem psi, int fdap);\n void SetDefaultExtension([MarshalAs(UnmanagedType.LPWStr)] string pszDefaultExtension);\n void Close(int hr);\n void SetClientGuid(ref Guid guid);\n void ClearClientData();\n void SetFilter(IntPtr pFilter);\n}\n\n[ComImport, Guid(\"43826D1E-E718-42EE-BC55-A1E261C37BFE\"),\n InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\ninternal interface IShellItem {\n void BindToHandler(IntPtr pbc, ref Guid bhid, ref Guid riid, out IntPtr ppv);\n void GetParent(out IShellItem ppsi);\n void GetDisplayName(uint sigdnName, out IntPtr ppszName);\n void GetAttributes(uint sfgaoMask, out uint psfgaoAttribs);\n void Compare(IShellItem psi, uint hint, out int piOrder);\n}\n\npublic static class DiffReviewFolderPicker {\n const uint FOS_PICKFOLDERS = 0x00000020;\n const uint FOS_FORCEFILESYSTEM = 0x00000040;\n const uint FOS_PATHMUSTEXIST = 0x00000800;\n const uint SIGDN_FILESYSPATH = 0x80058000;\n\n [DllImport(\"ole32.dll\")]\n static extern void CoTaskMemFree(IntPtr pv);\n\n public static string Pick(string title) {\n var dialog = (IFileDialog)new FileOpenDialogRCW();\n uint options;\n dialog.GetOptions(out options);\n dialog.SetOptions(options | FOS_PICKFOLDERS | FOS_FORCEFILESYSTEM | FOS_PATHMUSTEXIST);\n if (!string.IsNullOrEmpty(title)) dialog.SetTitle(title);\n int hr = dialog.Show(IntPtr.Zero);\n if (hr != 0) return null; // cancel / error\n IShellItem item;\n dialog.GetResult(out item);\n IntPtr psz;\n item.GetDisplayName(SIGDN_FILESYSPATH, out psz);\n string path = Marshal.PtrToStringUni(psz);\n CoTaskMemFree(psz);\n return path;\n }\n}\n'@\n\n$path = [DiffReviewFolderPicker]::Pick('Elegi el repositorio git')\nif ([string]::IsNullOrWhiteSpace($path)) { exit 2 }\n[System.IO.File]::WriteAllText(${JSON.stringify(outFile)}, $path)\nexit 0\n`.trim() + \"\\r\\n\");\n\t\tconst result = spawnSync(\"powershell.exe\", [\n\t\t\t\"-STA\",\n\t\t\t\"-NoProfile\",\n\t\t\t\"-ExecutionPolicy\",\n\t\t\t\"Bypass\",\n\t\t\t\"-File\",\n\t\t\tscript\n\t\t], {\n\t\t\tencoding: \"utf8\",\n\t\t\twindowsHide: false,\n\t\t\tstdio: [\n\t\t\t\t\"ignore\",\n\t\t\t\t\"pipe\",\n\t\t\t\t\"pipe\"\n\t\t\t],\n\t\t\ttimeout: 600 * 1e3\n\t\t});\n\t\tif (result.status === 2) return null;\n\t\tif (result.status !== 0) {\n\t\t\tconst err = (result.stderr || result.stdout || result.error?.message || `exit ${result.status}`).toString().trim();\n\t\t\tthrow new Error(err || \"powershell picker fallo\");\n\t\t}\n\t\tif (!existsSync(outFile)) throw new Error(\"powershell picker no escribio la ruta\");\n\t\tconst path = readFileSync(outFile, \"utf8\").replace(/^\\uFEFF/, \"\").trim();\n\t\tif (!path) throw new Error(\"powershell picker devolvio ruta vacia\");\n\t\treturn path;\n\t} finally {\n\t\ttry {\n\t\t\trmSync(dir, {\n\t\t\t\trecursive: true,\n\t\t\t\tforce: true\n\t\t\t});\n\t\t} catch {}\n\t}\n}\nfunction pickWithRfdWorker() {\n\tconst dir = mkdtempSync(join(tmpdir(), \"diff-review-rfd-\"));\n\tconst worker = join(dir, \"pick.mjs\");\n\tconst outFile = join(dir, \"path.txt\");\n\ttry {\n\t\twriteFileSync(worker, `import { createRequire } from 'node:module';\nimport { existsSync, writeFileSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\n\nconst require = createRequire(import.meta.url);\nconst outFile = ${JSON.stringify(outFile)};\n\nfunction findRfdIndex() {\n const seen = new Set();\n let dir = process.cwd();\n for (let i = 0; i < 16; i++) {\n if (seen.has(dir)) break;\n seen.add(dir);\n const indexJs = join(dir, 'node_modules', '@bindrs', 'rfd', 'index.js');\n if (existsSync(indexJs)) return indexJs;\n const parent = dirname(dir);\n if (parent === dir) break;\n dir = parent;\n }\n throw new Error('No se encontro @bindrs/rfd en node_modules');\n}\n\nconst { AsyncFileDialog } = require(findRfdIndex());\nconst handle = await new AsyncFileDialog().setTitle('Elegi el repositorio git').pickFolder();\nif (!handle) process.exit(2);\nwriteFileSync(outFile, handle.path(), 'utf8');\n`, \"utf8\");\n\t\tconst result = spawnSync(resolveNodeBin(), [worker], {\n\t\t\tencoding: \"utf8\",\n\t\t\twindowsHide: false,\n\t\t\tstdio: [\n\t\t\t\t\"ignore\",\n\t\t\t\t\"pipe\",\n\t\t\t\t\"pipe\"\n\t\t\t],\n\t\t\ttimeout: 600 * 1e3,\n\t\t\tcwd: process$1.cwd(),\n\t\t\tenv: process$1.env\n\t\t});\n\t\tif (result.status === 2 || result.status === 1) return null;\n\t\tif (result.status !== 0) {\n\t\t\tconst err = (result.stderr || result.stdout || result.error?.message || `exit ${result.status}`).toString().trim();\n\t\t\tthrow new Error(err || \"worker rfd fallo\");\n\t\t}\n\t\tif (!existsSync(outFile)) return null;\n\t\treturn readFileSync(outFile, \"utf8\").replace(/^\\uFEFF/, \"\").trim() || null;\n\t} finally {\n\t\ttry {\n\t\t\trmSync(dir, {\n\t\t\t\trecursive: true,\n\t\t\t\tforce: true\n\t\t\t});\n\t\t} catch {}\n\t}\n}\nfunction pickFolderFallback() {\n\tconst os = platform();\n\tif (os === \"win32\") return pickWindowsVbs();\n\tif (os === \"darwin\") return pickMac();\n\treturn pickLinux();\n}\nfunction pickWindowsVbs() {\n\tconst dir = mkdtempSync(join(tmpdir(), \"diff-review-pick-\"));\n\tconst vbs = join(dir, \"pick.vbs\");\n\tconst outFile = join(dir, \"path.txt\");\n\ttry {\n\t\twriteFileSync(vbs, [\n\t\t\t\"Set shell = CreateObject(\\\"Shell.Application\\\")\",\n\t\t\t\"Set folder = shell.BrowseForFolder(0, \\\"Elegi el repositorio git\\\", 0)\",\n\t\t\t\"If folder Is Nothing Then\",\n\t\t\t\" WScript.Quit 1\",\n\t\t\t\"End If\",\n\t\t\t\"Set fso = CreateObject(\\\"Scripting.FileSystemObject\\\")\",\n\t\t\t`Set file = fso.CreateTextFile(${JSON.stringify(outFile)}, True, True)`,\n\t\t\t\"file.Write folder.Self.Path\",\n\t\t\t\"file.Close\"\n\t\t].join(\"\\r\\n\"), \"utf8\");\n\t\tconst result = spawnSync(\"cscript.exe\", [\n\t\t\t\"//nologo\",\n\t\t\t\"//E:VBScript\",\n\t\t\tvbs\n\t\t], {\n\t\t\tencoding: \"utf8\",\n\t\t\twindowsHide: false,\n\t\t\tstdio: [\n\t\t\t\t\"ignore\",\n\t\t\t\t\"ignore\",\n\t\t\t\t\"pipe\"\n\t\t\t],\n\t\t\ttimeout: 600 * 1e3\n\t\t});\n\t\tif (result.status === 1) return null;\n\t\tif (result.status !== 0) {\n\t\t\tconst err = (result.stderr || result.error?.message || `exit ${result.status}`).toString().trim();\n\t\t\tthrow new Error(err || \"cscript fallo\");\n\t\t}\n\t\tif (!existsSync(outFile)) return null;\n\t\tconst buf = readFileSync(outFile);\n\t\treturn (buf.length >= 2 && buf[0] === 255 && buf[1] === 254 ? buf.subarray(2).toString(\"utf16le\").trim() : buf.toString(\"utf8\").replace(/^\\uFEFF/, \"\").trim()) || null;\n\t} catch (err) {\n\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\tif (/canceled|cancelled|abort/i.test(msg)) return null;\n\t\tthrow new Error(\"No se pudo abrir el dialogo de carpetas: \" + msg);\n\t} finally {\n\t\ttry {\n\t\t\trmSync(dir, {\n\t\t\t\trecursive: true,\n\t\t\t\tforce: true\n\t\t\t});\n\t\t} catch {}\n\t}\n}\nfunction pickMac() {\n\ttry {\n\t\tconst out = execFileSync(\"osascript\", [\"-e\", \"POSIX path of (choose folder with prompt \\\"Elegi el repositorio git\\\")\"], {\n\t\t\tencoding: \"utf8\",\n\t\t\ttimeout: 600 * 1e3\n\t\t});\n\t\treturn String(out || \"\").trim().replace(/\\/$/, \"\");\n\t} catch (err) {\n\t\tif (err.status === 1 || /User canceled|-128/i.test(String(err))) return null;\n\t\tthrow new Error(\"No se pudo abrir el dialogo de carpetas: \" + (err instanceof Error ? err.message : String(err)));\n\t}\n}\nfunction pickLinux() {\n\ttry {\n\t\tconst out = execFileSync(\"zenity\", [\n\t\t\t\"--file-selection\",\n\t\t\t\"--directory\",\n\t\t\t\"--title=Elegi el repositorio git\"\n\t\t], {\n\t\t\tencoding: \"utf8\",\n\t\t\ttimeout: 600 * 1e3\n\t\t});\n\t\treturn String(out || \"\").trim() || null;\n\t} catch (zenityErr) {\n\t\tif (zenityErr.status === 1) return null;\n\t\ttry {\n\t\t\tconst out = execFileSync(\"kdialog\", [\n\t\t\t\t\"--getexistingdirectory\",\n\t\t\t\t\".\",\n\t\t\t\t\"Elegi el repositorio git\"\n\t\t\t], {\n\t\t\t\tencoding: \"utf8\",\n\t\t\t\ttimeout: 600 * 1e3\n\t\t\t});\n\t\t\treturn String(out || \"\").trim() || null;\n\t\t} catch (kErr) {\n\t\t\tif (kErr.status === 1) return null;\n\t\t\tthrow new Error(\"No hay dialogo de carpetas disponible. Instala zenity o kdialog, o pega la ruta a mano.\");\n\t\t}\n\t}\n}\n//#endregion\n//#region src/lib/server/git-review.ts\nfunction describeGitError(err) {\n\tif (err && typeof err === \"object\") {\n\t\tconst rec = err;\n\t\tconst stderr = String(rec.stderr || \"\").trim().split(\"\\n\").find(Boolean);\n\t\tif (stderr) return stderr;\n\t\tif (rec.message) return rec.message;\n\t}\n\treturn err instanceof Error ? err.message : String(err);\n}\nfunction resolveSource(source, repo) {\n\tif (source === \"local\" || source === \"url\") return source;\n\treturn looksLikeGitUrl(repo) ? \"url\" : \"local\";\n}\nfunction loadRepoInfo(source, repo) {\n\tif (resolveSource(source, repo) === \"url\") {\n\t\tconst url = normalizeGitUrl(repo);\n\t\treturn {\n\t\t\trepo: url,\n\t\t\tsource: \"url\",\n\t\t\tremoteUrl: url,\n\t\t\t...listRemoteBranches(url)\n\t\t};\n\t}\n\tconst resolved = assertGitRepo(repo);\n\tconst listed = listBranches(resolved);\n\treturn {\n\t\trepo: resolved,\n\t\tsource: \"local\",\n\t\tremoteUrl: getRemoteUrl(resolved) || void 0,\n\t\t...listed\n\t};\n}\n/**\n* Repo + branch del directorio desde el que se lanzó `diff-review` (env DIFF_REVIEW_LAUNCH_CWD).\n* En `npm run dev` cae a process.cwd(). Null si no hay git.\n*/\nfunction loadLaunchRepoInfo() {\n\tconst cwd = String(process.env.DIFF_REVIEW_LAUNCH_CWD || process.cwd() || \"\").trim();\n\tif (!cwd) return null;\n\tconst root = tryResolveGitRoot(cwd);\n\tif (!root) return null;\n\ttry {\n\t\treturn loadRepoInfo(\"local\", root);\n\t} catch {\n\t\treturn null;\n\t}\n}\nasync function pickLocalFolder$1() {\n\treturn pickFolder();\n}\nfunction resolveWorktree(source, repo, branch, base) {\n\tif (source === \"url\") return ensureRemoteWorktree(repo, branch, base);\n\treturn assertGitRepo(repo);\n}\nfunction toReviewFile(file) {\n\tconst changeType = file.changeType;\n\tconst typed = changeType === \"added\" || changeType === \"deleted\" || changeType === \"renamed\" || changeType === \"modified\" ? changeType : \"modified\";\n\treturn {\n\t\tpath: file.path,\n\t\toldPath: file.oldPath || void 0,\n\t\tchangeType: typed,\n\t\tdiff: String(file.diff ?? \"\").replaceAll(\"\\0\", \"\"),\n\t\tgroup: file.group ?? \"\"\n\t};\n}\n/**\n* Contenido del archivo en la punta del branch, para rellenar en el viewer las líneas\n* que el diff no trae. Devuelve null (en vez de reventar) cuando el repo no está a mano\n* o el archivo es binario: ahí el viewer apaga los botones de expandir.\n*/\nfunction loadFileLines(input) {\n\ttry {\n\t\treturn showFileLines(resolveWorktree(resolveSource(input.source, input.repo), input.repo, input.branch, input.base || \"develop\"), input.branch, input.path);\n\t} catch (err) {\n\t\tconsole.error(\"[diff-review git] no se pudo leer\", input.path, describeGitError(err));\n\t\treturn null;\n\t}\n}\nfunction hydrateReviewPayload(input) {\n\tconst skeleton = extractBranchDiff({\n\t\trepo: resolveWorktree(resolveSource(input.source, input.repo), input.repo, input.branch, input.base || \"develop\"),\n\t\tbranch: input.branch,\n\t\tbase: input.base || \"develop\"\n\t});\n\tconst extraNotes = Array.isArray(input.payload?.notes) ? input.payload.notes.filter((n) => typeof n === \"string\") : [];\n\tconst built = buildReview({\n\t\tskeleton,\n\t\tpayload: input.payload,\n\t\tnotes: extraNotes\n\t});\n\tconst doc = {\n\t\tintent: built.intent,\n\t\tgroups: built.groups,\n\t\tblocks: built.blocks,\n\t\tfindings: built.findings,\n\t\tskipped: built.skipped,\n\t\tfiles: (built.files || []).map(toReviewFile),\n\t\tnotes: built.notes || []\n\t};\n\treturn JSON.parse(JSON.stringify(doc));\n}\n//#endregion\n//#region src/lib/report/git.remote.ts\nvar git_remote_exports = /* @__PURE__ */ __exportAll({\n\tfileLines: () => fileLines,\n\thydrateFromGit: () => hydrateFromGit,\n\tlaunchContext: () => launchContext,\n\tloadRepo: () => loadRepo,\n\tpickLocalFolder: () => pickLocalFolder\n});\nfunction fail(err) {\n\tconst message = describeGitError(err) || \"No se pudo hablar con git.\";\n\tconsole.error(\"[diff-review git]\", message, err);\n\terror(400, message);\n}\nvar loadRepo = /* @__PURE__ */ query(\"unchecked\", async (input) => {\n\ttry {\n\t\treturn loadRepoInfo(input?.source, String(input?.repo || \"\").trim());\n\t} catch (err) {\n\t\tfail(err);\n\t}\n});\n/** Repo del CWD de lanzamiento, o null si no hay git. */\nvar launchContext = /* @__PURE__ */ query(async () => {\n\ttry {\n\t\treturn loadLaunchRepoInfo();\n\t} catch (err) {\n\t\tconsole.error(\"[diff-review git] launch context\", describeGitError(err), err);\n\t\treturn null;\n\t}\n});\nvar pickLocalFolder = /* @__PURE__ */ command(\"unchecked\", async (_input) => {\n\ttry {\n\t\treturn await pickLocalFolder$1();\n\t} catch (err) {\n\t\tfail(err);\n\t}\n});\n/** Líneas del archivo en el branch revisado, para expandir el contexto oculto de un diff. */\nvar fileLines = /* @__PURE__ */ query(\"unchecked\", async (input) => loadFileLines({\n\trepo: String(input?.repo || \"\").trim(),\n\tbranch: String(input?.branch || \"\").trim(),\n\tbase: String(input?.base || \"develop\").trim(),\n\tsource: input?.source,\n\tpath: String(input?.path || \"\").trim()\n}));\nvar hydrateFromGit = /* @__PURE__ */ command(\"unchecked\", async (input) => {\n\ttry {\n\t\treturn hydrateReviewPayload({\n\t\t\trepo: String(input?.repo || \"\").trim(),\n\t\t\tbranch: String(input?.branch || \"\").trim(),\n\t\t\tbase: String(input?.base || \"develop\").trim(),\n\t\t\tsource: input?.source,\n\t\t\tpayload: input?.payload\n\t\t});\n\t} catch (err) {\n\t\tfail(err);\n\t}\n});\ninit_remote_functions(git_remote_exports, \"src/lib/report/git.remote.ts\", \"1g4ayag\");\nfor (const [name, fn] of Object.entries(git_remote_exports)) {\n\tfn.__.id = \"1g4ayag/\" + name;\n\tfn.__.name = name;\n}\n//#endregion\nexport { launchContext as n, loadRepo as r, git_remote_exports as t };\n","import { t as git_remote_exports } from \"./git.remote.js\";\n//#region \\0sveltekit-remote:1g4ayag\nvar _sveltekit_remote_1g4ayag_default = git_remote_exports;\n//#endregion\nexport { _sveltekit_remote_1g4ayag_default as default };\n"],"names":[],"mappings":"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"}
|