svelte-effect-runtime 1.4.0 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{effect-CL8GJs8A.js → effect-Cx8OzrcW.js} +3 -3
- package/dist/chunks/{effect-CL8GJs8A.js.map → effect-Cx8OzrcW.js.map} +1 -1
- package/dist/chunks/effect-compat-BhW0YPIs.js.map +1 -1
- package/dist/chunks/{markup-BpSHnnYD.js → markup-BMn2sQOB.js} +3 -1
- package/dist/chunks/{markup-BpSHnnYD.js.map → markup-BMn2sQOB.js.map} +1 -1
- package/dist/chunks/{preprocess-CtLrnJcK.js → preprocess-CGKEA3Py.js} +13 -8
- package/dist/chunks/preprocess-CGKEA3Py.js.map +1 -0
- package/dist/chunks/{vite-DqjXRZd4.js → vite-C8ujN78r.js} +14 -5
- package/dist/chunks/vite-C8ujN78r.js.map +1 -0
- package/dist/effect.js +1 -1
- package/dist/internal/markup.js +1 -1
- package/dist/internal/transform.js +1 -1
- package/dist/internal/transform.js.map +1 -1
- package/dist/language-server.js +1 -1
- package/dist/preprocess.js +1 -1
- package/dist/root-node.js +1 -1
- package/dist/root-node.js.map +1 -1
- package/dist/v4/effect.js +1 -1
- package/dist/v4/preprocess.js +1 -1
- package/dist/v4/vite.js +1 -1
- package/dist/vite.js +1 -1
- package/package.json +1 -1
- package/dist/chunks/preprocess-CtLrnJcK.js.map +0 -1
- package/dist/chunks/vite-DqjXRZd4.js.map +0 -1
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import { t as transformEffectMarkup } from "./markup-
|
|
1
|
+
import { t as transformEffectMarkup } from "./markup-BMn2sQOB.js";
|
|
2
2
|
import { transformEffectScript } from "../internal/transform.js";
|
|
3
3
|
//#region v3/preprocess.ts
|
|
4
|
+
const EMPTY_MAP = {
|
|
5
|
+
version: 3,
|
|
6
|
+
sources: [],
|
|
7
|
+
names: [],
|
|
8
|
+
mappings: ""
|
|
9
|
+
};
|
|
4
10
|
/**
|
|
5
11
|
* Low-level Svelte preprocessor for `<script effect>` and supported markup
|
|
6
12
|
* `yield*` transforms.
|
|
@@ -26,13 +32,12 @@ function effect_preprocess(options = {}) {
|
|
|
26
32
|
script({ content, attributes, filename }) {
|
|
27
33
|
if (attributes.context === "module" || !Object.hasOwn(attributes, "effect")) return;
|
|
28
34
|
const { effect: _effect, ...nextAttributes } = attributes;
|
|
29
|
-
const transformed = transformEffectScript(content, {
|
|
30
|
-
...options,
|
|
31
|
-
filename: filename ?? "Component.svelte"
|
|
32
|
-
});
|
|
33
35
|
return {
|
|
34
|
-
code:
|
|
35
|
-
|
|
36
|
+
code: transformEffectScript(content, {
|
|
37
|
+
...options,
|
|
38
|
+
filename: filename ?? "Component.svelte"
|
|
39
|
+
}).code,
|
|
40
|
+
map: EMPTY_MAP,
|
|
36
41
|
attributes: nextAttributes
|
|
37
42
|
};
|
|
38
43
|
}
|
|
@@ -41,4 +46,4 @@ function effect_preprocess(options = {}) {
|
|
|
41
46
|
//#endregion
|
|
42
47
|
export { effect_preprocess as t };
|
|
43
48
|
|
|
44
|
-
//# sourceMappingURL=preprocess-
|
|
49
|
+
//# sourceMappingURL=preprocess-CGKEA3Py.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preprocess-CGKEA3Py.js","names":[],"sources":["../../../modules/svelte-effect-runtime/v3/preprocess.ts"],"sourcesContent":["/**\n * Low-level Svelte preprocessing primitives for `svelte-effect-runtime`.\n *\n * @example\n * ```ts\n * import { effect_preprocess } from \"svelte-effect-runtime/preprocess\";\n *\n * const preprocess = effect_preprocess();\n * ```\n *\n * @module\n */\nimport type { PreprocessorGroup } from \"svelte/compiler\";\nimport { transformEffectMarkup } from \"$internal/markup.ts\";\nimport { transformEffectScript } from \"$internal/transform.ts\";\n\n/** Options that control how generated helper imports are emitted. */\nexport interface EffectPreprocessOptions {\n runtimeModuleId?: string;\n effectModuleId?: string;\n svelteModuleId?: string;\n}\n\nconst EMPTY_MAP = {\n version: 3,\n sources: [],\n names: [],\n mappings: \"\",\n};\n\n/**\n * Low-level Svelte preprocessor for `<script effect>` and supported markup\n * `yield*` transforms.\n *\n * Advanced entry point used by tooling and custom build setups.\n *\n * @see https://ser.barekey.dev/content/reference/preprocess\n */\nexport function effect_preprocess(\n options: EffectPreprocessOptions = {},\n): PreprocessorGroup {\n return {\n name: \"svelte-effect-runtime\",\n markup({ content, filename }) {\n const transformed = transformEffectMarkup(content, {\n ...options,\n filename: filename ?? \"Component.svelte\",\n });\n\n if (transformed.code === content) {\n return;\n }\n\n return {\n code: transformed.code,\n map: transformed.map,\n };\n },\n script({ content, attributes, filename }) {\n if (\n attributes.context === \"module\" || !Object.hasOwn(attributes, \"effect\")\n ) {\n return;\n }\n\n const { effect: _effect, ...nextAttributes } = attributes;\n const transformed = transformEffectScript(content, {\n ...options,\n filename: filename ?? \"Component.svelte\",\n });\n\n return {\n code: transformed.code,\n map: EMPTY_MAP,\n attributes: nextAttributes,\n };\n },\n };\n}\n"],"mappings":";;;AAuBA,MAAM,YAAY;CAChB,SAAS;CACT,SAAS,EAAE;CACX,OAAO,EAAE;CACT,UAAU;CACX;;;;;;;;;AAUD,SAAgB,kBACd,UAAmC,EAAE,EAClB;AACnB,QAAO;EACL,MAAM;EACN,OAAO,EAAE,SAAS,YAAY;GAC5B,MAAM,cAAc,sBAAsB,SAAS;IACjD,GAAG;IACH,UAAU,YAAY;IACvB,CAAC;AAEF,OAAI,YAAY,SAAS,QACvB;AAGF,UAAO;IACL,MAAM,YAAY;IAClB,KAAK,YAAY;IAClB;;EAEH,OAAO,EAAE,SAAS,YAAY,YAAY;AACxC,OACE,WAAW,YAAY,YAAY,CAAC,OAAO,OAAO,YAAY,SAAS,CAEvE;GAGF,MAAM,EAAE,QAAQ,SAAS,GAAG,mBAAmB;AAM/C,UAAO;IACL,MANkB,sBAAsB,SAAS;KACjD,GAAG;KACH,UAAU,YAAY;KACvB,CAAC,CAGkB;IAClB,KAAK;IACL,YAAY;IACb;;EAEJ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as effect_preprocess } from "./preprocess-
|
|
1
|
+
import { t as effect_preprocess } from "./preprocess-CGKEA3Py.js";
|
|
2
2
|
import { svelte } from "@sveltejs/vite-plugin-svelte";
|
|
3
3
|
import { createRequire } from "node:module";
|
|
4
4
|
import { dirname, resolve } from "node:path";
|
|
@@ -49,8 +49,12 @@ function resolve_runtime_internal_path(source_relative_path, dist_relative_path)
|
|
|
49
49
|
function resolve_kit_internal_runtime_path(relative_path) {
|
|
50
50
|
return pathToFileURL(resolve(dirname(createRequire(resolve(process.cwd(), "package.json")).resolve("@sveltejs/kit/package.json")), relative_path)).href;
|
|
51
51
|
}
|
|
52
|
+
function resolve_runtime_dependency_path(package_id) {
|
|
53
|
+
return pathToFileURL(createRequire(import.meta.url).resolve(package_id)).href;
|
|
54
|
+
}
|
|
52
55
|
function create_remote_runtime_module_code() {
|
|
53
56
|
const adapter_module_path = resolve_runtime_internal_path("../internal/remote-client.ts", "../internal/remote-client.js");
|
|
57
|
+
const devalue_module_path = resolve_runtime_dependency_path("devalue");
|
|
54
58
|
const kit_query_module_path = resolve_kit_internal_runtime_path("src/runtime/client/remote-functions/query.svelte.js");
|
|
55
59
|
const kit_command_module_path = resolve_kit_internal_runtime_path("src/runtime/client/remote-functions/command.svelte.js");
|
|
56
60
|
const kit_form_module_path = resolve_kit_internal_runtime_path("src/runtime/client/remote-functions/form.svelte.js");
|
|
@@ -60,9 +64,9 @@ function create_remote_runtime_module_code() {
|
|
|
60
64
|
const kit_form_utils_module_path = resolve_kit_internal_runtime_path("src/runtime/form-utils.js");
|
|
61
65
|
const kit_shared_runtime_module_path = resolve_kit_internal_runtime_path("src/runtime/shared.js");
|
|
62
66
|
return `
|
|
63
|
-
import * as devalue from
|
|
67
|
+
import * as devalue from ${JSON.stringify(devalue_module_path)};
|
|
64
68
|
import { base, app_dir } from "$app/paths/internal/client";
|
|
65
|
-
import
|
|
69
|
+
import * as native_query_module from ${JSON.stringify(kit_query_module_path)};
|
|
66
70
|
import { command as native_command } from ${JSON.stringify(kit_command_module_path)};
|
|
67
71
|
import { form as native_form } from ${JSON.stringify(kit_form_module_path)};
|
|
68
72
|
import { prerender as native_prerender } from ${JSON.stringify(kit_prerender_module_path)};
|
|
@@ -91,8 +95,13 @@ const request_dependencies = {
|
|
|
91
95
|
stringify_remote_arg
|
|
92
96
|
};
|
|
93
97
|
|
|
98
|
+
const native_query = native_query_module.query;
|
|
99
|
+
const native_query_batch = Reflect.get(native_query_module, "query_batch");
|
|
100
|
+
|
|
94
101
|
export const query = create_remote_query_adapter(native_query, decode_payload, request_dependencies, "query");
|
|
95
|
-
export const query_batch =
|
|
102
|
+
export const query_batch = native_query_batch
|
|
103
|
+
? create_remote_query_adapter(native_query_batch, decode_payload, request_dependencies, "query_batch")
|
|
104
|
+
: create_remote_query_adapter(native_query, decode_payload, request_dependencies, "query");
|
|
96
105
|
export const command = create_remote_command_adapter(native_command, decode_payload, request_dependencies);
|
|
97
106
|
export const prerender = create_remote_query_adapter(native_prerender, decode_payload, request_dependencies, "prerender");
|
|
98
107
|
export const form = create_remote_form_adapter(native_form, decode_payload, {
|
|
@@ -140,4 +149,4 @@ function sveltekit_effect_runtime(options = {}) {
|
|
|
140
149
|
//#endregion
|
|
141
150
|
export { sveltekit_effect_runtime as n, svelte_effect_runtime as t };
|
|
142
151
|
|
|
143
|
-
//# sourceMappingURL=vite-
|
|
152
|
+
//# sourceMappingURL=vite-C8ujN78r.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-C8ujN78r.js","names":[],"sources":["../../../modules/svelte-effect-runtime/v3/vite.ts"],"sourcesContent":["/**\n * Low-level Vite integration entrypoints for `svelte-effect-runtime`.\n *\n * @example\n * ```ts\n * import { svelte_effect_runtime } from \"svelte-effect-runtime/vite\";\n *\n * export default {\n * plugins: [svelte_effect_runtime()],\n * };\n * ```\n *\n * @module\n */\nimport {\n type Options as SveltePluginOptions,\n svelte,\n} from \"@sveltejs/vite-plugin-svelte\";\nimport { createRequire } from \"node:module\";\nimport { dirname, resolve } from \"node:path\";\nimport process from \"node:process\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\nimport type { Plugin } from \"vite\";\nimport {\n effect_preprocess,\n type EffectPreprocessOptions,\n} from \"$/v3/preprocess.ts\";\n\n/** Options for the plain Vite + Svelte preprocess wrapper. */\nexport interface SvelteEffectRuntimeOptions {\n effect?: EffectPreprocessOptions;\n svelte?: SveltePluginOptions;\n}\n\n/** Options for the SvelteKit remote-function adapter plugin. */\nexport interface SveltekitEffectRuntimeOptions {\n /**\n * Override the client-side module SvelteKit uses for generated `.remote.ts`\n * imports so remote calls default to Effect-returning adapters.\n */\n remoteModuleId?: string;\n}\n\nconst SERVER_RUNTIME_PACKAGE_IDS = new Map([\n [\"svelte-effect-runtime\", \"svelte-effect-runtime/_server\"],\n [\"svelte-effect-runtime/v3\", \"svelte-effect-runtime/v3/_server\"],\n [\"svelte-effect-runtime/v4\", \"svelte-effect-runtime/v4/_server\"],\n]);\nconst SERVER_SOURCE_PATTERN =\n /(?:^|\\/)(?:hooks\\.server\\.[cm]?[jt]s|.+\\.server\\.[cm]?[jt]s|.+\\.remote\\.[cm]?[jt]s)$/;\n\nfunction arrayify<T>(value: T | T[] | undefined): T[] {\n if (value === undefined) {\n return [];\n }\n\n return Array.isArray(value) ? value : [value];\n}\n\n/**\n * Low-level Vite plugin wrapper for non-SvelteKit builds that only need the\n * Svelte preprocessor integration.\n *\n * @see https://ser.barekey.dev/content/reference/tooling\n */\nexport function svelte_effect_runtime(\n options: SvelteEffectRuntimeOptions = {},\n): Plugin[] {\n const existingPreprocessors = arrayify(options.svelte?.preprocess);\n\n return svelte({\n ...options.svelte,\n preprocess: [\n effect_preprocess(options.effect),\n ...existingPreprocessors,\n ],\n });\n}\n\nfunction resolve_runtime_internal_path(\n source_relative_path: string,\n dist_relative_path: string,\n): string {\n const relative_path = import.meta.url.endsWith(\".ts\")\n ? source_relative_path\n : dist_relative_path;\n\n return fileURLToPath(new URL(relative_path, import.meta.url));\n}\n\nfunction resolve_kit_internal_runtime_path(relative_path: string): string {\n const runtime_require = createRequire(resolve(process.cwd(), \"package.json\"));\n const kit_package_path = runtime_require.resolve(\n \"@sveltejs/kit/package.json\",\n );\n const kit_root = dirname(kit_package_path);\n\n return pathToFileURL(resolve(kit_root, relative_path)).href;\n}\n\nfunction resolve_runtime_dependency_path(package_id: string): string {\n const runtime_require = createRequire(import.meta.url);\n return pathToFileURL(runtime_require.resolve(package_id)).href;\n}\n\nfunction create_remote_runtime_module_code(): string {\n const adapter_module_path = resolve_runtime_internal_path(\n \"../internal/remote-client.ts\",\n \"../internal/remote-client.js\",\n );\n const devalue_module_path = resolve_runtime_dependency_path(\"devalue\");\n const kit_query_module_path = resolve_kit_internal_runtime_path(\n \"src/runtime/client/remote-functions/query.svelte.js\",\n );\n const kit_command_module_path = resolve_kit_internal_runtime_path(\n \"src/runtime/client/remote-functions/command.svelte.js\",\n );\n const kit_form_module_path = resolve_kit_internal_runtime_path(\n \"src/runtime/client/remote-functions/form.svelte.js\",\n );\n const kit_prerender_module_path = resolve_kit_internal_runtime_path(\n \"src/runtime/client/remote-functions/prerender.svelte.js\",\n );\n const kit_shared_module_path = resolve_kit_internal_runtime_path(\n \"src/runtime/client/remote-functions/shared.svelte.js\",\n );\n const kit_client_module_path = resolve_kit_internal_runtime_path(\n \"src/runtime/client/client.js\",\n );\n const kit_form_utils_module_path = resolve_kit_internal_runtime_path(\n \"src/runtime/form-utils.js\",\n );\n const kit_shared_runtime_module_path = resolve_kit_internal_runtime_path(\n \"src/runtime/shared.js\",\n );\n\n return `\nimport * as devalue from ${JSON.stringify(devalue_module_path)};\nimport { base, app_dir } from \"$app/paths/internal/client\";\nimport * as native_query_module from ${JSON.stringify(kit_query_module_path)};\nimport { command as native_command } from ${\n JSON.stringify(kit_command_module_path)\n };\nimport { form as native_form } from ${JSON.stringify(kit_form_module_path)};\nimport { prerender as native_prerender } from ${\n JSON.stringify(kit_prerender_module_path)\n };\nimport {\n apply_refreshes,\n get_remote_request_headers,\n remote_request\n} from ${JSON.stringify(kit_shared_module_path)};\nimport { app, invalidateAll, _goto } from ${\n JSON.stringify(kit_client_module_path)\n };\nimport { BINARY_FORM_CONTENT_TYPE, serialize_binary_form } from ${\n JSON.stringify(kit_form_utils_module_path)\n };\nimport { stringify_remote_arg } from ${\n JSON.stringify(kit_shared_runtime_module_path)\n };\nimport {\n create_remote_command_adapter,\n create_remote_form_adapter,\n create_remote_query_adapter\n} from ${JSON.stringify(adapter_module_path)};\n\nconst decode_payload = (encoded) => devalue.parse(encoded, app?.decoders ?? {});\nconst request_dependencies = {\n app,\n app_dir,\n apply_refreshes,\n base,\n get_remote_request_headers,\n remote_request,\n stringify_remote_arg\n};\n\nconst native_query = native_query_module.query;\nconst native_query_batch = Reflect.get(native_query_module, \"query_batch\");\n\nexport const query = create_remote_query_adapter(native_query, decode_payload, request_dependencies, \"query\");\nexport const query_batch = native_query_batch\n ? create_remote_query_adapter(native_query_batch, decode_payload, request_dependencies, \"query_batch\")\n : create_remote_query_adapter(native_query, decode_payload, request_dependencies, \"query\");\nexport const command = create_remote_command_adapter(native_command, decode_payload, request_dependencies);\nexport const prerender = create_remote_query_adapter(native_prerender, decode_payload, request_dependencies, \"prerender\");\nexport const form = create_remote_form_adapter(native_form, decode_payload, {\n binary_form_content_type: BINARY_FORM_CONTENT_TYPE,\n goto: _goto,\n invalidate_all: invalidateAll,\n serialize_binary_form,\n ...request_dependencies\n});\n`;\n}\n\n/**\n * Low-level Vite plugin that swaps SvelteKit's generated remote client module\n * for the Effect-aware adapters used by `effect()`.\n *\n * Prefer `effect()` unless you are assembling a custom Vite plugin stack.\n *\n * @see https://ser.barekey.dev/content/reference/tooling\n */\nexport function sveltekit_effect_runtime(\n options: SveltekitEffectRuntimeOptions = {},\n): Plugin {\n const remote_module_id = options.remoteModuleId ??\n \"\\0svelte-effect-runtime:remote\";\n\n return {\n name: \"svelte-effect-runtime-remote\",\n enforce: \"pre\",\n resolveId(id) {\n if (id === \"__sveltekit/remote\") {\n return remote_module_id;\n }\n },\n load(id) {\n if (id !== remote_module_id) {\n return;\n }\n\n return create_remote_runtime_module_code();\n },\n transform(code, id) {\n const filename = id.split(\"?\", 1)[0];\n if (!SERVER_SOURCE_PATTERN.test(filename)) {\n return null;\n }\n\n let transformed = code;\n\n for (\n const [client_package_id, server_package_id]\n of SERVER_RUNTIME_PACKAGE_IDS\n ) {\n transformed = transformed.replaceAll(\n `\"${client_package_id}\"`,\n `\"${server_package_id}\"`,\n );\n transformed = transformed.replaceAll(\n `'${client_package_id}'`,\n `'${server_package_id}'`,\n );\n }\n\n if (transformed === code) {\n return null;\n }\n\n return transformed;\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA2CA,MAAM,6BAA6B,IAAI,IAAI;CACzC,CAAC,yBAAyB,gCAAgC;CAC1D,CAAC,4BAA4B,mCAAmC;CAChE,CAAC,4BAA4B,mCAAmC;CACjE,CAAC;AACF,MAAM,wBACJ;AAEF,SAAS,SAAY,OAAiC;AACpD,KAAI,UAAU,KAAA,EACZ,QAAO,EAAE;AAGX,QAAO,MAAM,QAAQ,MAAM,GAAG,QAAQ,CAAC,MAAM;;;;;;;;AAS/C,SAAgB,sBACd,UAAsC,EAAE,EAC9B;CACV,MAAM,wBAAwB,SAAS,QAAQ,QAAQ,WAAW;AAElE,QAAO,OAAO;EACZ,GAAG,QAAQ;EACX,YAAY,CACV,kBAAkB,QAAQ,OAAO,EACjC,GAAG,sBACJ;EACF,CAAC;;AAGJ,SAAS,8BACP,sBACA,oBACQ;CACR,MAAM,gBAAgB,OAAO,KAAK,IAAI,SAAS,MAAM,GACjD,uBACA;AAEJ,QAAO,cAAc,IAAI,IAAI,eAAe,OAAO,KAAK,IAAI,CAAC;;AAG/D,SAAS,kCAAkC,eAA+B;AAOxE,QAAO,cAAc,QAFJ,QAJO,cAAc,QAAQ,QAAQ,KAAK,EAAE,eAAe,CAAC,CACpC,QACvC,6BACD,CACyC,EAEH,cAAc,CAAC,CAAC;;AAGzD,SAAS,gCAAgC,YAA4B;AAEnE,QAAO,cADiB,cAAc,OAAO,KAAK,IAAI,CACjB,QAAQ,WAAW,CAAC,CAAC;;AAG5D,SAAS,oCAA4C;CACnD,MAAM,sBAAsB,8BAC1B,gCACA,+BACD;CACD,MAAM,sBAAsB,gCAAgC,UAAU;CACtE,MAAM,wBAAwB,kCAC5B,sDACD;CACD,MAAM,0BAA0B,kCAC9B,wDACD;CACD,MAAM,uBAAuB,kCAC3B,qDACD;CACD,MAAM,4BAA4B,kCAChC,0DACD;CACD,MAAM,yBAAyB,kCAC7B,uDACD;CACD,MAAM,yBAAyB,kCAC7B,+BACD;CACD,MAAM,6BAA6B,kCACjC,4BACD;CACD,MAAM,iCAAiC,kCACrC,wBACD;AAED,QAAO;2BACkB,KAAK,UAAU,oBAAoB,CAAC;;uCAExB,KAAK,UAAU,sBAAsB,CAAC;4CAEzE,KAAK,UAAU,wBAAwB,CACxC;sCACmC,KAAK,UAAU,qBAAqB,CAAC;gDAEvE,KAAK,UAAU,0BAA0B,CAC1C;;;;;SAKM,KAAK,UAAU,uBAAuB,CAAC;4CAE5C,KAAK,UAAU,uBAAuB,CACvC;kEAEC,KAAK,UAAU,2BAA2B,CAC3C;uCAEC,KAAK,UAAU,+BAA+B,CAC/C;;;;;SAKM,KAAK,UAAU,oBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwC7C,SAAgB,yBACd,UAAyC,EAAE,EACnC;CACR,MAAM,mBAAmB,QAAQ,kBAC/B;AAEF,QAAO;EACL,MAAM;EACN,SAAS;EACT,UAAU,IAAI;AACZ,OAAI,OAAO,qBACT,QAAO;;EAGX,KAAK,IAAI;AACP,OAAI,OAAO,iBACT;AAGF,UAAO,mCAAmC;;EAE5C,UAAU,MAAM,IAAI;GAClB,MAAM,WAAW,GAAG,MAAM,KAAK,EAAE,CAAC;AAClC,OAAI,CAAC,sBAAsB,KAAK,SAAS,CACvC,QAAO;GAGT,IAAI,cAAc;AAElB,QACE,MAAM,CAAC,mBAAmB,sBACrB,4BACL;AACA,kBAAc,YAAY,WACxB,IAAI,kBAAkB,IACtB,IAAI,kBAAkB,GACvB;AACD,kBAAc,YAAY,WACxB,IAAI,kBAAkB,IACtB,IAAI,kBAAkB,GACvB;;AAGH,OAAI,gBAAgB,KAClB,QAAO;AAGT,UAAO;;EAEV"}
|
package/dist/effect.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as effect } from "./chunks/effect-
|
|
1
|
+
import { t as effect } from "./chunks/effect-Cx8OzrcW.js";
|
|
2
2
|
export { effect };
|
package/dist/internal/markup.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as transformEffectMarkup } from "../chunks/markup-
|
|
1
|
+
import { t as transformEffectMarkup } from "../chunks/markup-BMn2sQOB.js";
|
|
2
2
|
export { transformEffectMarkup };
|
|
@@ -309,7 +309,7 @@ function makeInjectedImports(options) {
|
|
|
309
309
|
return lines.join("\n");
|
|
310
310
|
}
|
|
311
311
|
function makeTypedStateBinding(name, stateTypeText) {
|
|
312
|
-
return `let ${name}: ${stateTypeText}
|
|
312
|
+
return `let ${name}: ${stateTypeText} = $state(undefined as unknown as ${stateTypeText});`;
|
|
313
313
|
}
|
|
314
314
|
function create_lowered_declaration_helper(declaration, content) {
|
|
315
315
|
if (declaration.type || !declaration.initializer) return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","names":[],"sources":["../../../modules/svelte-effect-runtime/internal/transform.ts"],"sourcesContent":["import MagicString, { type SourceMap } from \"magic-string\";\nimport ts from \"typescript\";\nimport type { EffectPreprocessOptions } from \"$/preprocess.ts\";\n\nconst DEFAULT_RUNTIME_MODULE_ID = \"svelte-effect-runtime\";\nconst DEFAULT_EFFECT_MODULE_ID = \"effect\";\nconst DEFAULT_SVELTE_MODULE_ID = \"svelte\";\n\nconst RUNE_IDENTIFIERS = new Set([\n \"$bindable\",\n \"$derived\",\n \"$effect\",\n \"$host\",\n \"$inspect\",\n \"$props\",\n \"$state\",\n]);\n\ninterface TransformEffectScriptOptions extends EffectPreprocessOptions {\n filename: string;\n}\n\ninterface TransformEffectScriptResult {\n code: string;\n map: SourceMap;\n relocations: Array<TransformRelocation>;\n}\n\ninterface VariableStatementTransform {\n effectTexts: string[];\n hoistedText: string;\n loweredBindings: string[];\n pendingRelocations: Array<PendingRelocation>;\n usesPendingYieldHelper: boolean;\n}\n\ninterface TransformRelocation {\n originalStart: number;\n originalEnd: number;\n generatedStart: number;\n generatedEnd: number;\n}\n\ninterface PendingRelocation {\n originalStart: number;\n originalEnd: number;\n generatedSnippet: string;\n generatedInnerStart: number;\n generatedInnerEnd: number;\n}\n\ninterface StateDeclarationTransform {\n code: string;\n pendingRelocations: Array<PendingRelocation>;\n}\n\ninterface LoweredDeclarationHelper {\n declarationText: string;\n stateTypeText: string;\n assignmentExpression: string;\n expressionRelocation: PendingRelocation;\n tempName?: string;\n}\n\nconst HOISTED_KINDS = new Set<ts.SyntaxKind>([\n ts.SyntaxKind.ClassDeclaration,\n ts.SyntaxKind.EmptyStatement,\n ts.SyntaxKind.EnumDeclaration,\n ts.SyntaxKind.ExportAssignment,\n ts.SyntaxKind.ExportDeclaration,\n ts.SyntaxKind.FunctionDeclaration,\n ts.SyntaxKind.ImportDeclaration,\n ts.SyntaxKind.ImportEqualsDeclaration,\n ts.SyntaxKind.InterfaceDeclaration,\n ts.SyntaxKind.ModuleDeclaration,\n ts.SyntaxKind.TypeAliasDeclaration,\n]);\n\nconst HOISTED_CALL_IDENTIFIERS = new Set([\n \"$effect\",\n \"__svelteEffectRuntimeMarkupOnDestroy\",\n \"onDestroy\",\n]);\n\nexport function transformEffectScript(\n content: string,\n options: TransformEffectScriptOptions,\n): TransformEffectScriptResult {\n const sourceFile = ts.createSourceFile(\n options.filename,\n content,\n ts.ScriptTarget.Latest,\n true,\n ts.ScriptKind.TS,\n );\n\n const effectStatements: Array<{ node: ts.Statement; text: string }> = [];\n const runtimeStatements: string[] = [];\n const pendingRelocations: Array<PendingRelocation> = [];\n const magicString = new MagicString(content);\n const effectBoundBindings = new Set<string>();\n\n for (const statement of sourceFile.statements) {\n if (ts.isVariableStatement(statement)) {\n if (isGeneratedMarkupHelperStatement(statement, content)) {\n continue;\n }\n\n const transformed = transformVariableStatement(\n statement,\n content,\n options.filename,\n effectBoundBindings,\n );\n\n if (transformed.hoistedText.length === 0) {\n magicString.remove(statement.getFullStart(), statement.end);\n } else {\n magicString.overwrite(\n statement.getStart(sourceFile),\n statement.end,\n transformed.hoistedText,\n );\n }\n\n runtimeStatements.push(...transformed.effectTexts);\n pendingRelocations.push(...transformed.pendingRelocations);\n for (const bindingName of transformed.loweredBindings) {\n effectBoundBindings.add(bindingName);\n }\n continue;\n }\n\n if (isHoistedExpressionStatement(statement)) {\n continue;\n }\n\n if (isHoistedStatement(statement)) {\n continue;\n }\n\n if (containsTopLevelAwait(statement)) {\n throw new Error(\n `${options.filename}: top-level await is not supported in <script effect>. Use yield* Effect.promise(...) or yield* Effect.tryPromise(...) instead.`,\n );\n }\n\n effectStatements.push({\n node: statement,\n text: normalizeStatementText(sliceNode(content, statement)),\n });\n pendingRelocations.push({\n originalStart: statement.getStart(sourceFile),\n originalEnd: statement.end,\n generatedSnippet: normalizeStatementText(sliceNode(content, statement)),\n generatedInnerStart: 0,\n generatedInnerEnd: normalizeStatementText(sliceNode(content, statement))\n .length,\n });\n }\n\n for (const statement of [...effectStatements].reverse()) {\n magicString.remove(statement.node.getFullStart(), statement.node.end);\n }\n\n const allRuntimeStatements = [\n ...runtimeStatements,\n ...effectStatements.map((statement) => statement.text),\n ];\n\n if (allRuntimeStatements.length > 0) {\n magicString.prepend(makeInjectedImports(options));\n magicString.append(makeRuntimeBlock(allRuntimeStatements));\n }\n\n const code = magicString.toString();\n\n return {\n code,\n map: magicString.generateMap({\n hires: true,\n includeContent: true,\n source: options.filename,\n }),\n relocations: resolvePendingRelocations(pendingRelocations, code),\n };\n}\n\nfunction isHoistedStatement(statement: ts.Statement): boolean {\n return HOISTED_KINDS.has(statement.kind);\n}\n\nfunction isHoistedExpressionStatement(statement: ts.Statement): boolean {\n if (!ts.isExpressionStatement(statement)) {\n return false;\n }\n\n if (!ts.isCallExpression(statement.expression)) {\n return false;\n }\n\n return getCalledIdentifierText(statement.expression.expression) !==\n undefined &&\n HOISTED_CALL_IDENTIFIERS.has(\n getCalledIdentifierText(statement.expression.expression)!,\n );\n}\n\nfunction getCalledIdentifierText(\n expression: ts.Expression,\n): string | undefined {\n if (ts.isIdentifier(expression)) {\n return expression.text;\n }\n\n if (ts.isPropertyAccessExpression(expression)) {\n const base = getCalledIdentifierText(expression.expression);\n return base ? `${base}.${expression.name.text}` : expression.name.text;\n }\n\n return undefined;\n}\n\nfunction transformVariableStatement(\n statement: ts.VariableStatement,\n content: string,\n filename: string,\n effectBoundBindings: ReadonlySet<string>,\n): VariableStatementTransform {\n if ((statement.modifiers?.length ?? 0) > 0) {\n validateModifiedVariableStatement(statement, content, filename);\n return {\n effectTexts: [],\n hoistedText: normalizeStatementText(sliceNode(content, statement)),\n loweredBindings: [],\n pendingRelocations: [],\n usesPendingYieldHelper: false,\n };\n }\n\n const effectTexts: string[] = [];\n const hoistedDeclarations: string[] = [];\n const loweredBindings: string[] = [];\n const pendingRelocations: Array<PendingRelocation> = [];\n\n for (const declaration of statement.declarationList.declarations) {\n if (\n declaration.initializer && containsTopLevelAwait(declaration.initializer)\n ) {\n const statementText = normalizeStatementText(\n sliceNode(content, statement),\n );\n\n throw new Error(\n `${filename}: declarations in <script effect> cannot depend on await.\\nUse yield* Effect.promise(...) or yield* Effect.tryPromise(...) instead.\\n\\nProblematic statement:\\n${statementText}`,\n );\n }\n\n if (declaration.initializer && isRuneInitializer(declaration.initializer)) {\n const renderedDeclaration =\n `${getDeclarationKind(statement.declarationList.flags)} ${\n normalizeStatementText(sliceNode(content, declaration))\n };`;\n hoistedDeclarations.push(renderedDeclaration);\n pendingRelocations.push(\n ...make_declaration_relocations(declaration, renderedDeclaration, content),\n );\n continue;\n }\n\n if (\n shouldHoistDeclaration(\n statement.declarationList.flags,\n declaration,\n effectBoundBindings,\n )\n ) {\n const renderedDeclaration =\n `${getDeclarationKind(statement.declarationList.flags)} ${\n normalizeStatementText(sliceNode(content, declaration))\n };`;\n hoistedDeclarations.push(renderedDeclaration);\n pendingRelocations.push(\n ...make_declaration_relocations(declaration, renderedDeclaration, content),\n );\n continue;\n }\n\n const bindingNames = extractBindingNames(declaration.name);\n const helper = create_lowered_declaration_helper(declaration, content);\n\n if (helper) {\n hoistedDeclarations.push(helper.declarationText);\n pendingRelocations.push(helper.expressionRelocation);\n }\n\n if (helper?.tempName) {\n hoistedDeclarations.push(\n makeTypedStateBinding(helper.tempName, helper.stateTypeText),\n );\n }\n\n for (const bindingName of bindingNames) {\n const stateDeclaration = makeStateDeclaration(\n bindingName,\n declaration,\n content,\n helper?.tempName ? null : helper?.stateTypeText,\n );\n hoistedDeclarations.push(stateDeclaration.code);\n pendingRelocations.push(...stateDeclaration.pendingRelocations);\n }\n loweredBindings.push(...bindingNames);\n\n if (declaration.initializer) {\n if (helper?.tempName) {\n effectTexts.push(`${helper.tempName} = ${helper.assignmentExpression};`);\n effectTexts.push(\n makeEffectAssignment(\n declaration.name,\n helper.tempName,\n content,\n ),\n );\n } else {\n const effectAssignment = helper\n ? `${bindingNames[0]} = ${helper.assignmentExpression};`\n : makeEffectAssignment(\n declaration.name,\n declaration.initializer,\n content,\n );\n effectTexts.push(effectAssignment);\n if (!helper) {\n pendingRelocations.push(\n makeEffectAssignmentRelocation(\n declaration.initializer,\n effectAssignment,\n content,\n ),\n );\n }\n }\n }\n }\n\n return {\n effectTexts,\n hoistedText: hoistedDeclarations.join(\"\\n\"),\n loweredBindings,\n pendingRelocations,\n usesPendingYieldHelper: false,\n };\n}\n\nfunction shouldHoistDeclaration(\n flags: ts.NodeFlags,\n declaration: ts.VariableDeclaration,\n effectBoundBindings: ReadonlySet<string>,\n): boolean {\n if ((flags & ts.NodeFlags.Const) === 0) {\n return false;\n }\n\n if (!declaration.initializer) {\n return false;\n }\n\n if (\n containsYieldStar(declaration.initializer) ||\n containsTopLevelAwait(declaration.initializer)\n ) {\n return false;\n }\n\n return !referencesEffectBoundBindings(\n declaration.initializer,\n effectBoundBindings,\n );\n}\n\nfunction referencesEffectBoundBindings(\n node: ts.Node,\n effectBoundBindings: ReadonlySet<string>,\n): boolean {\n const localScopes: Array<Set<string>> = [new Set()];\n let found = false;\n\n const visit = (current: ts.Node): void => {\n if (found) {\n return;\n }\n\n if (\n ts.isArrowFunction(current) || ts.isFunctionDeclaration(current) ||\n ts.isFunctionExpression(current)\n ) {\n const scope = new Set<string>();\n\n if (current.name) {\n scope.add(current.name.text);\n }\n\n for (const parameter of current.parameters) {\n declareBindingInto(scope, parameter.name);\n }\n\n localScopes.unshift(scope);\n current.forEachChild(visit);\n localScopes.shift();\n return;\n }\n\n if (ts.isIdentifier(current)) {\n if (\n !isSkippedReference(current) &&\n effectBoundBindings.has(current.text) &&\n !localScopes.some((scope) => scope.has(current.text))\n ) {\n found = true;\n }\n\n return;\n }\n\n current.forEachChild(visit);\n };\n\n const declareBindingInto = (\n scope: Set<string>,\n name: ts.BindingName,\n ): void => {\n if (ts.isIdentifier(name)) {\n scope.add(name.text);\n return;\n }\n\n for (const element of name.elements) {\n if (ts.isOmittedExpression(element)) {\n continue;\n }\n\n declareBindingInto(scope, element.name);\n }\n };\n\n visit(node);\n return found;\n}\n\nfunction isSkippedReference(identifier: ts.Identifier): boolean {\n const parent = identifier.parent;\n\n return ts.isPropertyAccessExpression(parent) && parent.name === identifier ||\n ts.isPropertyAssignment(parent) && parent.name === identifier ||\n ts.isShorthandPropertyAssignment(parent) &&\n parent.objectAssignmentInitializer === identifier ||\n ts.isBindingElement(parent) && parent.propertyName === identifier ||\n ts.isImportSpecifier(parent) ||\n ts.isExportSpecifier(parent) ||\n ts.isLabeledStatement(parent) && parent.label === identifier;\n}\n\nfunction isGeneratedMarkupHelperStatement(\n statement: ts.VariableStatement,\n content: string,\n): boolean {\n return statement.declarationList.declarations.every((declaration) =>\n extractBindingNames(declaration.name).every((name) =>\n name.startsWith(\"__svelteEffectRuntimeMarkup\")\n ) ||\n normalizeStatementText(sliceNode(content, declaration)).startsWith(\n \"__svelteEffectRuntimeMarkup\",\n )\n );\n}\n\nfunction validateModifiedVariableStatement(\n statement: ts.VariableStatement,\n content: string,\n filename: string,\n): void {\n for (const declaration of statement.declarationList.declarations) {\n if (\n declaration.initializer &&\n (containsYieldStar(declaration.initializer) ||\n containsTopLevelAwait(declaration.initializer))\n ) {\n const statementText = normalizeStatementText(\n sliceNode(content, statement),\n );\n\n throw new Error(\n `${filename}: declarations with modifiers cannot depend on yield* or await in <script effect> right now.\\nSplit the declaration into a plain top-level binding and assign inside the effect body instead.\\n\\nProblematic statement:\\n${statementText}`,\n );\n }\n }\n}\n\nfunction getDeclarationKind(flags: ts.NodeFlags): \"const\" | \"let\" | \"var\" {\n if ((flags & ts.NodeFlags.Const) !== 0) {\n return \"const\";\n }\n\n if ((flags & ts.NodeFlags.Let) !== 0) {\n return \"let\";\n }\n\n return \"var\";\n}\n\nfunction makeStateDeclaration(\n name: string,\n declaration: ts.VariableDeclaration,\n content: string,\n inferredTypeText?: string | null,\n): StateDeclarationTransform {\n let stateTypeText: string | null = null;\n\n if (ts.isIdentifier(declaration.name) && declaration.type) {\n stateTypeText = normalizeStatementText(\n sliceNode(content, declaration.type),\n );\n } else if (inferredTypeText) {\n stateTypeText = inferredTypeText;\n }\n\n const code = stateTypeText\n ? makeTypedStateBinding(name, stateTypeText)\n : `let ${name} = $state<any>(undefined);`;\n\n const nameStart = code.indexOf(name);\n const pendingRelocations: Array<PendingRelocation> = [{\n originalStart: find_binding_name_start(declaration.name, name),\n originalEnd: find_binding_name_end(declaration.name, name),\n generatedSnippet: \"\",\n generatedInnerStart: nameStart,\n generatedInnerEnd: nameStart + name.length,\n }];\n\n pendingRelocations[0] = {\n ...pendingRelocations[0],\n generatedSnippet: code,\n };\n\n return {\n code,\n pendingRelocations,\n };\n}\n\nfunction makeEffectAssignment(\n name: ts.BindingName,\n initializer: ts.Expression | string,\n content: string,\n): string {\n const target = normalizeStatementText(sliceNode(content, name));\n const expression = typeof initializer === \"string\"\n ? initializer\n : normalizeStatementText(sliceNode(content, initializer));\n\n if (ts.isIdentifier(name)) {\n return `${target} = ${expression};`;\n }\n\n return `(${target} = ${expression});`;\n}\n\nfunction makeEffectAssignmentRelocation(\n initializer: ts.Expression,\n effectAssignment: string,\n content: string,\n): PendingRelocation {\n const expression = normalizeStatementText(sliceNode(content, initializer));\n const generatedInnerStart = effectAssignment.lastIndexOf(expression);\n\n return {\n originalStart: initializer.getStart(),\n originalEnd: initializer.end,\n generatedSnippet: effectAssignment,\n generatedInnerStart,\n generatedInnerEnd: generatedInnerStart + expression.length,\n };\n}\n\nfunction extractBindingNames(name: ts.BindingName): string[] {\n if (ts.isIdentifier(name)) {\n return [name.text];\n }\n\n const names: string[] = [];\n\n for (const element of name.elements) {\n if (ts.isOmittedExpression(element)) {\n continue;\n }\n\n names.push(...extractBindingNames(element.name));\n }\n\n return names;\n}\n\nfunction isRuneInitializer(expression: ts.Expression): boolean {\n if (!ts.isCallExpression(expression)) {\n return false;\n }\n\n return isRuneCallee(expression.expression);\n}\n\nfunction isRuneCallee(expression: ts.Expression): boolean {\n if (ts.isIdentifier(expression)) {\n return RUNE_IDENTIFIERS.has(expression.text);\n }\n\n if (ts.isPropertyAccessExpression(expression)) {\n return isRuneCallee(expression.expression);\n }\n\n return false;\n}\n\nfunction containsYieldStar(node: ts.Node): boolean {\n if (\n ts.isBinaryExpression(node) &&\n node.operatorToken.kind === ts.SyntaxKind.AsteriskToken &&\n ts.isIdentifier(node.left) &&\n node.left.text === \"yield\"\n ) {\n return true;\n }\n\n return node.getChildren().some((child) =>\n isFunctionBoundary(child) ? false : containsYieldStar(child)\n );\n}\n\nfunction getYieldOperand(node: ts.Node | undefined): ts.Expression | null {\n if (\n node &&\n ts.isBinaryExpression(node) &&\n node.operatorToken.kind === ts.SyntaxKind.AsteriskToken &&\n ts.isIdentifier(node.left) &&\n node.left.text === \"yield\"\n ) {\n return node.right;\n }\n\n return null;\n}\n\nfunction containsTopLevelAwait(node: ts.Node): boolean {\n if (ts.isAwaitExpression(node)) {\n return true;\n }\n\n return node.getChildren().some((child) =>\n isFunctionBoundary(child) ? false : containsTopLevelAwait(child)\n );\n}\n\nfunction isFunctionBoundary(node: ts.Node): boolean {\n return ts.isArrowFunction(node) ||\n ts.isFunctionDeclaration(node) ||\n ts.isFunctionExpression(node) ||\n ts.isMethodDeclaration(node) ||\n ts.isGetAccessorDeclaration(node) ||\n ts.isSetAccessorDeclaration(node);\n}\n\nfunction sliceNode(content: string, node: ts.Node): string {\n return content.slice(node.getFullStart(), node.end);\n}\n\nfunction normalizeStatementText(text: string): string {\n return text.trim();\n}\n\nfunction indentBlock(text: string, indent: string): string {\n return text.split(\"\\n\").map((line) =>\n line.length > 0 ? `${indent}${line}` : line\n ).join(\"\\n\");\n}\n\nfunction makeInjectedImports(\n options: TransformEffectScriptOptions,\n): string {\n const runtimeModuleId = options.runtimeModuleId ?? DEFAULT_RUNTIME_MODULE_ID;\n const effectModuleId = options.effectModuleId ?? DEFAULT_EFFECT_MODULE_ID;\n const svelteModuleId = options.svelteModuleId ?? DEFAULT_SVELTE_MODULE_ID;\n\n const lines = [\n `import { onMount as __svelteEffectRuntimeOnMount } from \"${svelteModuleId}\";`,\n `import { Effect as __svelteEffectRuntimeEffect } from \"${effectModuleId}\";`,\n `import { get_effect_runtime_or_throw as __svelteEffectRuntimeGetRuntime, run_component_effect as __svelteEffectRuntimeRunComponentEffect } from \"${runtimeModuleId}\";`,\n `type __svelteEffectRuntimeYielded<T> = T extends __svelteEffectRuntimeEffect.Effect<infer A, any, any> ? A : T;`,\n ];\n\n lines.push(\"\");\n return lines.join(\"\\n\");\n}\n\nfunction makeTypedStateBinding(name: string, stateTypeText: string): string {\n return `let ${name}: ${stateTypeText} | undefined = $state(undefined as ${stateTypeText} | undefined);`;\n}\n\nfunction create_lowered_declaration_helper(\n declaration: ts.VariableDeclaration,\n content: string,\n): LoweredDeclarationHelper | null {\n if (declaration.type || !declaration.initializer) {\n return null;\n }\n\n const bindingNames = extractBindingNames(declaration.name);\n const suffix = declaration.getStart();\n const baseName = bindingNames[0] ?? \"binding\";\n const helperName = `__svelteEffectRuntime_${baseName}_${suffix}`;\n const expressionNode = getYieldOperand(declaration.initializer) ??\n declaration.initializer;\n const expressionText = normalizeStatementText(sliceNode(content, expressionNode));\n const declarationText = `const ${helperName} = () => ${expressionText};`;\n const yieldedExpression = getYieldOperand(declaration.initializer);\n const stateTypeText = yieldedExpression\n ? `__svelteEffectRuntimeYielded<ReturnType<typeof ${helperName}>>`\n : `ReturnType<typeof ${helperName}>`;\n const assignmentExpression = yieldedExpression\n ? `yield* ${helperName}()`\n : `${helperName}()`;\n\n return {\n declarationText,\n stateTypeText,\n assignmentExpression,\n tempName: ts.isIdentifier(declaration.name)\n ? undefined\n : `__svelteEffectRuntimeTemp_${suffix}`,\n expressionRelocation: {\n originalStart: expressionNode.getStart(),\n originalEnd: expressionNode.end,\n generatedSnippet: declarationText,\n generatedInnerStart: declarationText.lastIndexOf(expressionText),\n generatedInnerEnd: declarationText.lastIndexOf(expressionText) +\n expressionText.length,\n },\n };\n}\n\nfunction make_declaration_relocations(\n declaration: ts.VariableDeclaration,\n renderedDeclaration: string,\n content: string,\n): Array<PendingRelocation> {\n const relocations: Array<PendingRelocation> = [];\n\n if (ts.isIdentifier(declaration.name)) {\n const nameStart = renderedDeclaration.indexOf(declaration.name.text);\n relocations.push({\n originalStart: declaration.name.getStart(),\n originalEnd: declaration.name.end,\n generatedSnippet: renderedDeclaration,\n generatedInnerStart: nameStart,\n generatedInnerEnd: nameStart + declaration.name.text.length,\n });\n }\n\n if (declaration.initializer) {\n const initializerText = normalizeStatementText(\n sliceNode(content, declaration.initializer),\n );\n const initializerStart = renderedDeclaration.lastIndexOf(initializerText);\n if (initializerStart >= 0) {\n relocations.push({\n originalStart: declaration.initializer.getStart(),\n originalEnd: declaration.initializer.end,\n generatedSnippet: renderedDeclaration,\n generatedInnerStart: initializerStart,\n generatedInnerEnd: initializerStart + initializerText.length,\n });\n }\n }\n\n return relocations;\n}\n\nfunction find_binding_name_start(name: ts.BindingName, bindingName: string): number {\n if (ts.isIdentifier(name)) {\n return name.text === bindingName ? name.getStart() : -1;\n }\n\n for (const element of name.elements) {\n if (ts.isOmittedExpression(element)) {\n continue;\n }\n\n const start = find_binding_name_start(element.name, bindingName);\n if (start !== -1) {\n return start;\n }\n }\n\n return -1;\n}\n\nfunction find_binding_name_end(name: ts.BindingName, bindingName: string): number {\n if (ts.isIdentifier(name)) {\n return name.text === bindingName ? name.end : -1;\n }\n\n for (const element of name.elements) {\n if (ts.isOmittedExpression(element)) {\n continue;\n }\n\n const end = find_binding_name_end(element.name, bindingName);\n if (end !== -1) {\n return end;\n }\n }\n\n return -1;\n}\n\nfunction makeRuntimeBlock(statements: string[]): string {\n const body = statements.map((statement) => indentBlock(statement, \" \"))\n .join(\"\\n\\n\");\n\n return [\n \"\",\n \"const __svelteEffectRuntimeProgram = __svelteEffectRuntimeEffect.gen(function* () {\",\n body,\n \"});\",\n \"\",\n \"__svelteEffectRuntimeOnMount(() => {\",\n \" const __svelteEffectRuntimeCleanup = __svelteEffectRuntimeRunComponentEffect(\",\n \" __svelteEffectRuntimeGetRuntime(),\",\n \" __svelteEffectRuntimeProgram,\",\n \" );\",\n \"\",\n \" import.meta.hot?.dispose(__svelteEffectRuntimeCleanup);\",\n \" return __svelteEffectRuntimeCleanup;\",\n \"});\",\n \"\",\n ].join(\"\\n\");\n}\n\nfunction resolvePendingRelocations(\n pendingRelocations: Array<PendingRelocation>,\n code: string,\n): Array<TransformRelocation> {\n const relocations: Array<TransformRelocation> = [];\n let searchStart = 0;\n\n for (const relocation of pendingRelocations) {\n const generatedStart = code.indexOf(relocation.generatedSnippet, searchStart);\n\n if (generatedStart === -1) {\n continue;\n }\n\n searchStart = generatedStart + relocation.generatedSnippet.length;\n relocations.push({\n originalStart: relocation.originalStart,\n originalEnd: relocation.originalEnd,\n generatedStart: generatedStart + relocation.generatedInnerStart,\n generatedEnd: generatedStart + relocation.generatedInnerEnd,\n });\n }\n\n return relocations;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transform.js","names":[],"sources":["../../../modules/svelte-effect-runtime/internal/transform.ts"],"sourcesContent":["import MagicString, { type SourceMap } from \"magic-string\";\nimport ts from \"typescript\";\nimport type { EffectPreprocessOptions } from \"$/preprocess.ts\";\n\nconst DEFAULT_RUNTIME_MODULE_ID = \"svelte-effect-runtime\";\nconst DEFAULT_EFFECT_MODULE_ID = \"effect\";\nconst DEFAULT_SVELTE_MODULE_ID = \"svelte\";\n\nconst RUNE_IDENTIFIERS = new Set([\n \"$bindable\",\n \"$derived\",\n \"$effect\",\n \"$host\",\n \"$inspect\",\n \"$props\",\n \"$state\",\n]);\n\ninterface TransformEffectScriptOptions extends EffectPreprocessOptions {\n filename: string;\n}\n\ninterface TransformEffectScriptResult {\n code: string;\n map: SourceMap;\n relocations: Array<TransformRelocation>;\n}\n\ninterface VariableStatementTransform {\n effectTexts: string[];\n hoistedText: string;\n loweredBindings: string[];\n pendingRelocations: Array<PendingRelocation>;\n usesPendingYieldHelper: boolean;\n}\n\ninterface TransformRelocation {\n originalStart: number;\n originalEnd: number;\n generatedStart: number;\n generatedEnd: number;\n}\n\ninterface PendingRelocation {\n originalStart: number;\n originalEnd: number;\n generatedSnippet: string;\n generatedInnerStart: number;\n generatedInnerEnd: number;\n}\n\ninterface StateDeclarationTransform {\n code: string;\n pendingRelocations: Array<PendingRelocation>;\n}\n\ninterface LoweredDeclarationHelper {\n declarationText: string;\n stateTypeText: string;\n assignmentExpression: string;\n expressionRelocation: PendingRelocation;\n tempName?: string;\n}\n\nconst HOISTED_KINDS = new Set<ts.SyntaxKind>([\n ts.SyntaxKind.ClassDeclaration,\n ts.SyntaxKind.EmptyStatement,\n ts.SyntaxKind.EnumDeclaration,\n ts.SyntaxKind.ExportAssignment,\n ts.SyntaxKind.ExportDeclaration,\n ts.SyntaxKind.FunctionDeclaration,\n ts.SyntaxKind.ImportDeclaration,\n ts.SyntaxKind.ImportEqualsDeclaration,\n ts.SyntaxKind.InterfaceDeclaration,\n ts.SyntaxKind.ModuleDeclaration,\n ts.SyntaxKind.TypeAliasDeclaration,\n]);\n\nconst HOISTED_CALL_IDENTIFIERS = new Set([\n \"$effect\",\n \"__svelteEffectRuntimeMarkupOnDestroy\",\n \"onDestroy\",\n]);\n\nexport function transformEffectScript(\n content: string,\n options: TransformEffectScriptOptions,\n): TransformEffectScriptResult {\n const sourceFile = ts.createSourceFile(\n options.filename,\n content,\n ts.ScriptTarget.Latest,\n true,\n ts.ScriptKind.TS,\n );\n\n const effectStatements: Array<{ node: ts.Statement; text: string }> = [];\n const runtimeStatements: string[] = [];\n const pendingRelocations: Array<PendingRelocation> = [];\n const magicString = new MagicString(content);\n const effectBoundBindings = new Set<string>();\n\n for (const statement of sourceFile.statements) {\n if (ts.isVariableStatement(statement)) {\n if (isGeneratedMarkupHelperStatement(statement, content)) {\n continue;\n }\n\n const transformed = transformVariableStatement(\n statement,\n content,\n options.filename,\n effectBoundBindings,\n );\n\n if (transformed.hoistedText.length === 0) {\n magicString.remove(statement.getFullStart(), statement.end);\n } else {\n magicString.overwrite(\n statement.getStart(sourceFile),\n statement.end,\n transformed.hoistedText,\n );\n }\n\n runtimeStatements.push(...transformed.effectTexts);\n pendingRelocations.push(...transformed.pendingRelocations);\n for (const bindingName of transformed.loweredBindings) {\n effectBoundBindings.add(bindingName);\n }\n continue;\n }\n\n if (isHoistedExpressionStatement(statement)) {\n continue;\n }\n\n if (isHoistedStatement(statement)) {\n continue;\n }\n\n if (containsTopLevelAwait(statement)) {\n throw new Error(\n `${options.filename}: top-level await is not supported in <script effect>. Use yield* Effect.promise(...) or yield* Effect.tryPromise(...) instead.`,\n );\n }\n\n effectStatements.push({\n node: statement,\n text: normalizeStatementText(sliceNode(content, statement)),\n });\n pendingRelocations.push({\n originalStart: statement.getStart(sourceFile),\n originalEnd: statement.end,\n generatedSnippet: normalizeStatementText(sliceNode(content, statement)),\n generatedInnerStart: 0,\n generatedInnerEnd: normalizeStatementText(sliceNode(content, statement))\n .length,\n });\n }\n\n for (const statement of [...effectStatements].reverse()) {\n magicString.remove(statement.node.getFullStart(), statement.node.end);\n }\n\n const allRuntimeStatements = [\n ...runtimeStatements,\n ...effectStatements.map((statement) => statement.text),\n ];\n\n if (allRuntimeStatements.length > 0) {\n magicString.prepend(makeInjectedImports(options));\n magicString.append(makeRuntimeBlock(allRuntimeStatements));\n }\n\n const code = magicString.toString();\n\n return {\n code,\n map: magicString.generateMap({\n hires: true,\n includeContent: true,\n source: options.filename,\n }),\n relocations: resolvePendingRelocations(pendingRelocations, code),\n };\n}\n\nfunction isHoistedStatement(statement: ts.Statement): boolean {\n return HOISTED_KINDS.has(statement.kind);\n}\n\nfunction isHoistedExpressionStatement(statement: ts.Statement): boolean {\n if (!ts.isExpressionStatement(statement)) {\n return false;\n }\n\n if (!ts.isCallExpression(statement.expression)) {\n return false;\n }\n\n return getCalledIdentifierText(statement.expression.expression) !==\n undefined &&\n HOISTED_CALL_IDENTIFIERS.has(\n getCalledIdentifierText(statement.expression.expression)!,\n );\n}\n\nfunction getCalledIdentifierText(\n expression: ts.Expression,\n): string | undefined {\n if (ts.isIdentifier(expression)) {\n return expression.text;\n }\n\n if (ts.isPropertyAccessExpression(expression)) {\n const base = getCalledIdentifierText(expression.expression);\n return base ? `${base}.${expression.name.text}` : expression.name.text;\n }\n\n return undefined;\n}\n\nfunction transformVariableStatement(\n statement: ts.VariableStatement,\n content: string,\n filename: string,\n effectBoundBindings: ReadonlySet<string>,\n): VariableStatementTransform {\n if ((statement.modifiers?.length ?? 0) > 0) {\n validateModifiedVariableStatement(statement, content, filename);\n return {\n effectTexts: [],\n hoistedText: normalizeStatementText(sliceNode(content, statement)),\n loweredBindings: [],\n pendingRelocations: [],\n usesPendingYieldHelper: false,\n };\n }\n\n const effectTexts: string[] = [];\n const hoistedDeclarations: string[] = [];\n const loweredBindings: string[] = [];\n const pendingRelocations: Array<PendingRelocation> = [];\n\n for (const declaration of statement.declarationList.declarations) {\n if (\n declaration.initializer && containsTopLevelAwait(declaration.initializer)\n ) {\n const statementText = normalizeStatementText(\n sliceNode(content, statement),\n );\n\n throw new Error(\n `${filename}: declarations in <script effect> cannot depend on await.\\nUse yield* Effect.promise(...) or yield* Effect.tryPromise(...) instead.\\n\\nProblematic statement:\\n${statementText}`,\n );\n }\n\n if (declaration.initializer && isRuneInitializer(declaration.initializer)) {\n const renderedDeclaration = `${\n getDeclarationKind(statement.declarationList.flags)\n } ${normalizeStatementText(sliceNode(content, declaration))};`;\n hoistedDeclarations.push(renderedDeclaration);\n pendingRelocations.push(\n ...make_declaration_relocations(\n declaration,\n renderedDeclaration,\n content,\n ),\n );\n continue;\n }\n\n if (\n shouldHoistDeclaration(\n statement.declarationList.flags,\n declaration,\n effectBoundBindings,\n )\n ) {\n const renderedDeclaration = `${\n getDeclarationKind(statement.declarationList.flags)\n } ${normalizeStatementText(sliceNode(content, declaration))};`;\n hoistedDeclarations.push(renderedDeclaration);\n pendingRelocations.push(\n ...make_declaration_relocations(\n declaration,\n renderedDeclaration,\n content,\n ),\n );\n continue;\n }\n\n const bindingNames = extractBindingNames(declaration.name);\n const helper = create_lowered_declaration_helper(declaration, content);\n\n if (helper) {\n hoistedDeclarations.push(helper.declarationText);\n pendingRelocations.push(helper.expressionRelocation);\n }\n\n if (helper?.tempName) {\n hoistedDeclarations.push(\n makeTypedStateBinding(helper.tempName, helper.stateTypeText),\n );\n }\n\n for (const bindingName of bindingNames) {\n const stateDeclaration = makeStateDeclaration(\n bindingName,\n declaration,\n content,\n helper?.tempName ? null : helper?.stateTypeText,\n );\n hoistedDeclarations.push(stateDeclaration.code);\n pendingRelocations.push(...stateDeclaration.pendingRelocations);\n }\n loweredBindings.push(...bindingNames);\n\n if (declaration.initializer) {\n if (helper?.tempName) {\n effectTexts.push(\n `${helper.tempName} = ${helper.assignmentExpression};`,\n );\n effectTexts.push(\n makeEffectAssignment(\n declaration.name,\n helper.tempName,\n content,\n ),\n );\n } else {\n const effectAssignment = helper\n ? `${bindingNames[0]} = ${helper.assignmentExpression};`\n : makeEffectAssignment(\n declaration.name,\n declaration.initializer,\n content,\n );\n effectTexts.push(effectAssignment);\n if (!helper) {\n pendingRelocations.push(\n makeEffectAssignmentRelocation(\n declaration.initializer,\n effectAssignment,\n content,\n ),\n );\n }\n }\n }\n }\n\n return {\n effectTexts,\n hoistedText: hoistedDeclarations.join(\"\\n\"),\n loweredBindings,\n pendingRelocations,\n usesPendingYieldHelper: false,\n };\n}\n\nfunction shouldHoistDeclaration(\n flags: ts.NodeFlags,\n declaration: ts.VariableDeclaration,\n effectBoundBindings: ReadonlySet<string>,\n): boolean {\n if ((flags & ts.NodeFlags.Const) === 0) {\n return false;\n }\n\n if (!declaration.initializer) {\n return false;\n }\n\n if (\n containsYieldStar(declaration.initializer) ||\n containsTopLevelAwait(declaration.initializer)\n ) {\n return false;\n }\n\n return !referencesEffectBoundBindings(\n declaration.initializer,\n effectBoundBindings,\n );\n}\n\nfunction referencesEffectBoundBindings(\n node: ts.Node,\n effectBoundBindings: ReadonlySet<string>,\n): boolean {\n const localScopes: Array<Set<string>> = [new Set()];\n let found = false;\n\n const visit = (current: ts.Node): void => {\n if (found) {\n return;\n }\n\n if (\n ts.isArrowFunction(current) || ts.isFunctionDeclaration(current) ||\n ts.isFunctionExpression(current)\n ) {\n const scope = new Set<string>();\n\n if (current.name) {\n scope.add(current.name.text);\n }\n\n for (const parameter of current.parameters) {\n declareBindingInto(scope, parameter.name);\n }\n\n localScopes.unshift(scope);\n current.forEachChild(visit);\n localScopes.shift();\n return;\n }\n\n if (ts.isIdentifier(current)) {\n if (\n !isSkippedReference(current) &&\n effectBoundBindings.has(current.text) &&\n !localScopes.some((scope) => scope.has(current.text))\n ) {\n found = true;\n }\n\n return;\n }\n\n current.forEachChild(visit);\n };\n\n const declareBindingInto = (\n scope: Set<string>,\n name: ts.BindingName,\n ): void => {\n if (ts.isIdentifier(name)) {\n scope.add(name.text);\n return;\n }\n\n for (const element of name.elements) {\n if (ts.isOmittedExpression(element)) {\n continue;\n }\n\n declareBindingInto(scope, element.name);\n }\n };\n\n visit(node);\n return found;\n}\n\nfunction isSkippedReference(identifier: ts.Identifier): boolean {\n const parent = identifier.parent;\n\n return ts.isPropertyAccessExpression(parent) && parent.name === identifier ||\n ts.isPropertyAssignment(parent) && parent.name === identifier ||\n ts.isShorthandPropertyAssignment(parent) &&\n parent.objectAssignmentInitializer === identifier ||\n ts.isBindingElement(parent) && parent.propertyName === identifier ||\n ts.isImportSpecifier(parent) ||\n ts.isExportSpecifier(parent) ||\n ts.isLabeledStatement(parent) && parent.label === identifier;\n}\n\nfunction isGeneratedMarkupHelperStatement(\n statement: ts.VariableStatement,\n content: string,\n): boolean {\n return statement.declarationList.declarations.every((declaration) =>\n extractBindingNames(declaration.name).every((name) =>\n name.startsWith(\"__svelteEffectRuntimeMarkup\")\n ) ||\n normalizeStatementText(sliceNode(content, declaration)).startsWith(\n \"__svelteEffectRuntimeMarkup\",\n )\n );\n}\n\nfunction validateModifiedVariableStatement(\n statement: ts.VariableStatement,\n content: string,\n filename: string,\n): void {\n for (const declaration of statement.declarationList.declarations) {\n if (\n declaration.initializer &&\n (containsYieldStar(declaration.initializer) ||\n containsTopLevelAwait(declaration.initializer))\n ) {\n const statementText = normalizeStatementText(\n sliceNode(content, statement),\n );\n\n throw new Error(\n `${filename}: declarations with modifiers cannot depend on yield* or await in <script effect> right now.\\nSplit the declaration into a plain top-level binding and assign inside the effect body instead.\\n\\nProblematic statement:\\n${statementText}`,\n );\n }\n }\n}\n\nfunction getDeclarationKind(flags: ts.NodeFlags): \"const\" | \"let\" | \"var\" {\n if ((flags & ts.NodeFlags.Const) !== 0) {\n return \"const\";\n }\n\n if ((flags & ts.NodeFlags.Let) !== 0) {\n return \"let\";\n }\n\n return \"var\";\n}\n\nfunction makeStateDeclaration(\n name: string,\n declaration: ts.VariableDeclaration,\n content: string,\n inferredTypeText?: string | null,\n): StateDeclarationTransform {\n let stateTypeText: string | null = null;\n\n if (ts.isIdentifier(declaration.name) && declaration.type) {\n stateTypeText = normalizeStatementText(\n sliceNode(content, declaration.type),\n );\n } else if (inferredTypeText) {\n stateTypeText = inferredTypeText;\n }\n\n const code = stateTypeText\n ? makeTypedStateBinding(name, stateTypeText)\n : `let ${name} = $state<any>(undefined);`;\n\n const nameStart = code.indexOf(name);\n const pendingRelocations: Array<PendingRelocation> = [{\n originalStart: find_binding_name_start(declaration.name, name),\n originalEnd: find_binding_name_end(declaration.name, name),\n generatedSnippet: \"\",\n generatedInnerStart: nameStart,\n generatedInnerEnd: nameStart + name.length,\n }];\n\n pendingRelocations[0] = {\n ...pendingRelocations[0],\n generatedSnippet: code,\n };\n\n return {\n code,\n pendingRelocations,\n };\n}\n\nfunction makeEffectAssignment(\n name: ts.BindingName,\n initializer: ts.Expression | string,\n content: string,\n): string {\n const target = normalizeStatementText(sliceNode(content, name));\n const expression = typeof initializer === \"string\"\n ? initializer\n : normalizeStatementText(sliceNode(content, initializer));\n\n if (ts.isIdentifier(name)) {\n return `${target} = ${expression};`;\n }\n\n return `(${target} = ${expression});`;\n}\n\nfunction makeEffectAssignmentRelocation(\n initializer: ts.Expression,\n effectAssignment: string,\n content: string,\n): PendingRelocation {\n const expression = normalizeStatementText(sliceNode(content, initializer));\n const generatedInnerStart = effectAssignment.lastIndexOf(expression);\n\n return {\n originalStart: initializer.getStart(),\n originalEnd: initializer.end,\n generatedSnippet: effectAssignment,\n generatedInnerStart,\n generatedInnerEnd: generatedInnerStart + expression.length,\n };\n}\n\nfunction extractBindingNames(name: ts.BindingName): string[] {\n if (ts.isIdentifier(name)) {\n return [name.text];\n }\n\n const names: string[] = [];\n\n for (const element of name.elements) {\n if (ts.isOmittedExpression(element)) {\n continue;\n }\n\n names.push(...extractBindingNames(element.name));\n }\n\n return names;\n}\n\nfunction isRuneInitializer(expression: ts.Expression): boolean {\n if (!ts.isCallExpression(expression)) {\n return false;\n }\n\n return isRuneCallee(expression.expression);\n}\n\nfunction isRuneCallee(expression: ts.Expression): boolean {\n if (ts.isIdentifier(expression)) {\n return RUNE_IDENTIFIERS.has(expression.text);\n }\n\n if (ts.isPropertyAccessExpression(expression)) {\n return isRuneCallee(expression.expression);\n }\n\n return false;\n}\n\nfunction containsYieldStar(node: ts.Node): boolean {\n if (\n ts.isBinaryExpression(node) &&\n node.operatorToken.kind === ts.SyntaxKind.AsteriskToken &&\n ts.isIdentifier(node.left) &&\n node.left.text === \"yield\"\n ) {\n return true;\n }\n\n return node.getChildren().some((child) =>\n isFunctionBoundary(child) ? false : containsYieldStar(child)\n );\n}\n\nfunction getYieldOperand(node: ts.Node | undefined): ts.Expression | null {\n if (\n node &&\n ts.isBinaryExpression(node) &&\n node.operatorToken.kind === ts.SyntaxKind.AsteriskToken &&\n ts.isIdentifier(node.left) &&\n node.left.text === \"yield\"\n ) {\n return node.right;\n }\n\n return null;\n}\n\nfunction containsTopLevelAwait(node: ts.Node): boolean {\n if (ts.isAwaitExpression(node)) {\n return true;\n }\n\n return node.getChildren().some((child) =>\n isFunctionBoundary(child) ? false : containsTopLevelAwait(child)\n );\n}\n\nfunction isFunctionBoundary(node: ts.Node): boolean {\n return ts.isArrowFunction(node) ||\n ts.isFunctionDeclaration(node) ||\n ts.isFunctionExpression(node) ||\n ts.isMethodDeclaration(node) ||\n ts.isGetAccessorDeclaration(node) ||\n ts.isSetAccessorDeclaration(node);\n}\n\nfunction sliceNode(content: string, node: ts.Node): string {\n return content.slice(node.getFullStart(), node.end);\n}\n\nfunction normalizeStatementText(text: string): string {\n return text.trim();\n}\n\nfunction indentBlock(text: string, indent: string): string {\n return text.split(\"\\n\").map((line) =>\n line.length > 0 ? `${indent}${line}` : line\n ).join(\"\\n\");\n}\n\nfunction makeInjectedImports(\n options: TransformEffectScriptOptions,\n): string {\n const runtimeModuleId = options.runtimeModuleId ?? DEFAULT_RUNTIME_MODULE_ID;\n const effectModuleId = options.effectModuleId ?? DEFAULT_EFFECT_MODULE_ID;\n const svelteModuleId = options.svelteModuleId ?? DEFAULT_SVELTE_MODULE_ID;\n\n const lines = [\n `import { onMount as __svelteEffectRuntimeOnMount } from \"${svelteModuleId}\";`,\n `import { Effect as __svelteEffectRuntimeEffect } from \"${effectModuleId}\";`,\n `import { get_effect_runtime_or_throw as __svelteEffectRuntimeGetRuntime, run_component_effect as __svelteEffectRuntimeRunComponentEffect } from \"${runtimeModuleId}\";`,\n `type __svelteEffectRuntimeYielded<T> = T extends __svelteEffectRuntimeEffect.Effect<infer A, any, any> ? A : T;`,\n ];\n\n lines.push(\"\");\n return lines.join(\"\\n\");\n}\n\nfunction makeTypedStateBinding(name: string, stateTypeText: string): string {\n return `let ${name}: ${stateTypeText} = $state(undefined as unknown as ${stateTypeText});`;\n}\n\nfunction create_lowered_declaration_helper(\n declaration: ts.VariableDeclaration,\n content: string,\n): LoweredDeclarationHelper | null {\n if (declaration.type || !declaration.initializer) {\n return null;\n }\n\n const bindingNames = extractBindingNames(declaration.name);\n const suffix = declaration.getStart();\n const baseName = bindingNames[0] ?? \"binding\";\n const helperName = `__svelteEffectRuntime_${baseName}_${suffix}`;\n const expressionNode = getYieldOperand(declaration.initializer) ??\n declaration.initializer;\n const expressionText = normalizeStatementText(\n sliceNode(content, expressionNode),\n );\n const declarationText = `const ${helperName} = () => ${expressionText};`;\n const yieldedExpression = getYieldOperand(declaration.initializer);\n const stateTypeText = yieldedExpression\n ? `__svelteEffectRuntimeYielded<ReturnType<typeof ${helperName}>>`\n : `ReturnType<typeof ${helperName}>`;\n const assignmentExpression = yieldedExpression\n ? `yield* ${helperName}()`\n : `${helperName}()`;\n\n return {\n declarationText,\n stateTypeText,\n assignmentExpression,\n tempName: ts.isIdentifier(declaration.name)\n ? undefined\n : `__svelteEffectRuntimeTemp_${suffix}`,\n expressionRelocation: {\n originalStart: expressionNode.getStart(),\n originalEnd: expressionNode.end,\n generatedSnippet: declarationText,\n generatedInnerStart: declarationText.lastIndexOf(expressionText),\n generatedInnerEnd: declarationText.lastIndexOf(expressionText) +\n expressionText.length,\n },\n };\n}\n\nfunction make_declaration_relocations(\n declaration: ts.VariableDeclaration,\n renderedDeclaration: string,\n content: string,\n): Array<PendingRelocation> {\n const relocations: Array<PendingRelocation> = [];\n\n if (ts.isIdentifier(declaration.name)) {\n const nameStart = renderedDeclaration.indexOf(declaration.name.text);\n relocations.push({\n originalStart: declaration.name.getStart(),\n originalEnd: declaration.name.end,\n generatedSnippet: renderedDeclaration,\n generatedInnerStart: nameStart,\n generatedInnerEnd: nameStart + declaration.name.text.length,\n });\n }\n\n if (declaration.initializer) {\n const initializerText = normalizeStatementText(\n sliceNode(content, declaration.initializer),\n );\n const initializerStart = renderedDeclaration.lastIndexOf(initializerText);\n if (initializerStart >= 0) {\n relocations.push({\n originalStart: declaration.initializer.getStart(),\n originalEnd: declaration.initializer.end,\n generatedSnippet: renderedDeclaration,\n generatedInnerStart: initializerStart,\n generatedInnerEnd: initializerStart + initializerText.length,\n });\n }\n }\n\n return relocations;\n}\n\nfunction find_binding_name_start(\n name: ts.BindingName,\n bindingName: string,\n): number {\n if (ts.isIdentifier(name)) {\n return name.text === bindingName ? name.getStart() : -1;\n }\n\n for (const element of name.elements) {\n if (ts.isOmittedExpression(element)) {\n continue;\n }\n\n const start = find_binding_name_start(element.name, bindingName);\n if (start !== -1) {\n return start;\n }\n }\n\n return -1;\n}\n\nfunction find_binding_name_end(\n name: ts.BindingName,\n bindingName: string,\n): number {\n if (ts.isIdentifier(name)) {\n return name.text === bindingName ? name.end : -1;\n }\n\n for (const element of name.elements) {\n if (ts.isOmittedExpression(element)) {\n continue;\n }\n\n const end = find_binding_name_end(element.name, bindingName);\n if (end !== -1) {\n return end;\n }\n }\n\n return -1;\n}\n\nfunction makeRuntimeBlock(statements: string[]): string {\n const body = statements.map((statement) => indentBlock(statement, \" \"))\n .join(\"\\n\\n\");\n\n return [\n \"\",\n \"const __svelteEffectRuntimeProgram = __svelteEffectRuntimeEffect.gen(function* () {\",\n body,\n \"});\",\n \"\",\n \"__svelteEffectRuntimeOnMount(() => {\",\n \" const __svelteEffectRuntimeCleanup = __svelteEffectRuntimeRunComponentEffect(\",\n \" __svelteEffectRuntimeGetRuntime(),\",\n \" __svelteEffectRuntimeProgram,\",\n \" );\",\n \"\",\n \" import.meta.hot?.dispose(__svelteEffectRuntimeCleanup);\",\n \" return __svelteEffectRuntimeCleanup;\",\n \"});\",\n \"\",\n ].join(\"\\n\");\n}\n\nfunction resolvePendingRelocations(\n pendingRelocations: Array<PendingRelocation>,\n code: string,\n): Array<TransformRelocation> {\n const relocations: Array<TransformRelocation> = [];\n let searchStart = 0;\n\n for (const relocation of pendingRelocations) {\n const generatedStart = code.indexOf(\n relocation.generatedSnippet,\n searchStart,\n );\n\n if (generatedStart === -1) {\n continue;\n }\n\n searchStart = generatedStart + relocation.generatedSnippet.length;\n relocations.push({\n originalStart: relocation.originalStart,\n originalEnd: relocation.originalEnd,\n generatedStart: generatedStart + relocation.generatedInnerStart,\n generatedEnd: generatedStart + relocation.generatedInnerEnd,\n });\n }\n\n return relocations;\n}\n"],"mappings":"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"}
|
package/dist/language-server.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as transformEffectMarkup } from "./chunks/markup-
|
|
1
|
+
import { t as transformEffectMarkup } from "./chunks/markup-BMn2sQOB.js";
|
|
2
2
|
import { transformEffectScript } from "./internal/transform.js";
|
|
3
3
|
import { effect_preprocess } from "./preprocess.js";
|
|
4
4
|
export { effect_preprocess, transformEffectMarkup as transform_effect_markup, transformEffectScript as transform_effect_script };
|
package/dist/preprocess.js
CHANGED
package/dist/root-node.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as run_component_effect, c as to_native, o as run_inline_effect, r as get_effect_runtime_or_throw, s as to_effect, t as ClientRuntime } from "./chunks/client-vV6UAwoP.js";
|
|
2
2
|
import "./chunks/v3-D0c0MKPf.js";
|
|
3
3
|
import { a as RequestEvent$1, c as get_server_runtime_or_throw$1, i as Query$1, n as Form$1, o as ServerRuntime$1, r as Prerender$1, s as create_effect_transport$1, t as Command$1 } from "./chunks/server-7YVuxUNk.js";
|
|
4
|
-
import { t as effect } from "./chunks/effect-
|
|
4
|
+
import { t as effect } from "./chunks/effect-Cx8OzrcW.js";
|
|
5
5
|
//#region v3/root-node.ts
|
|
6
6
|
/**
|
|
7
7
|
* Define a read-only remote function that returns an `Effect` on the client.
|
package/dist/root-node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root-node.js","names":["Server_module.Query","Server_module.Command","Server_module.Form","Server_module.Prerender","Server_module.RequestEvent","Server_module.ServerRuntime","Server_module.create_effect_transport","Server_module.get_server_runtime_or_throw"],"sources":["../../modules/svelte-effect-runtime/v3/root-node.ts"],"sourcesContent":["import * as Server_module from \"$/v3/server.ts\";\n\nexport * from \"$/v3/mod.ts\";\nexport type * from \"$/v3/server.ts\";\nexport type { EffectPluginOptions } from \"$/v3/effect.ts\";\nexport { effect } from \"$/v3/effect.ts\";\n\n/**\n * Define a read-only remote function that returns an `Effect` on the client.\n *\n * @see https://ser.barekey.dev/content/remote-functions/query\n */\nexport const Query: typeof Server_module.Query = Server_module.Query;\n/**\n * Define a write-oriented remote function that returns an `Effect` on the\n * client.\n *\n * @see https://ser.barekey.dev/content/remote-functions/command\n */\nexport const Command: typeof Server_module.Command = Server_module.Command;\n/**\n * Define a remote form handler that maps submitted data into an Effect\n * program.\n *\n * @see https://ser.barekey.dev/content/remote-functions/form\n */\nexport const Form: typeof Server_module.Form = Server_module.Form;\n/**\n * Define a prerenderable remote function backed by an Effect program.\n *\n * @see https://ser.barekey.dev/content/remote-functions/prerender\n */\nexport const Prerender: typeof Server_module.Prerender
|
|
1
|
+
{"version":3,"file":"root-node.js","names":["Server_module.Query","Server_module.Command","Server_module.Form","Server_module.Prerender","Server_module.RequestEvent","Server_module.ServerRuntime","Server_module.create_effect_transport","Server_module.get_server_runtime_or_throw"],"sources":["../../modules/svelte-effect-runtime/v3/root-node.ts"],"sourcesContent":["import * as Server_module from \"$/v3/server.ts\";\n\nexport * from \"$/v3/mod.ts\";\nexport type * from \"$/v3/server.ts\";\nexport type { EffectPluginOptions } from \"$/v3/effect.ts\";\nexport { effect } from \"$/v3/effect.ts\";\n\n/**\n * Define a read-only remote function that returns an `Effect` on the client.\n *\n * @see https://ser.barekey.dev/content/remote-functions/query\n */\nexport const Query: typeof Server_module.Query = Server_module.Query;\n/**\n * Define a write-oriented remote function that returns an `Effect` on the\n * client.\n *\n * @see https://ser.barekey.dev/content/remote-functions/command\n */\nexport const Command: typeof Server_module.Command = Server_module.Command;\n/**\n * Define a remote form handler that maps submitted data into an Effect\n * program.\n *\n * @see https://ser.barekey.dev/content/remote-functions/form\n */\nexport const Form: typeof Server_module.Form = Server_module.Form;\n/**\n * Define a prerenderable remote function backed by an Effect program.\n *\n * @see https://ser.barekey.dev/content/remote-functions/prerender\n */\nexport const Prerender: typeof Server_module.Prerender =\n Server_module.Prerender;\n/**\n * Effect `Context.Tag` for the current SvelteKit `RequestEvent`.\n *\n * @see https://ser.barekey.dev/content/runtimes/server\n */\nexport const RequestEvent: typeof Server_module.RequestEvent =\n Server_module.RequestEvent;\n/**\n * Server-side runtime builder used to provide long-lived Effect services to\n * remote functions.\n *\n * @see https://ser.barekey.dev/content/reference/server-runtime\n */\nexport const ServerRuntime: typeof Server_module.ServerRuntime =\n Server_module.ServerRuntime;\n/**\n * Build a devalue transport table from Effect schemas so remote payloads can\n * round-trip custom data across the client/server boundary.\n *\n * @see https://ser.barekey.dev/content/reference/transport\n */\nexport const create_effect_transport:\n typeof Server_module.create_effect_transport =\n Server_module.create_effect_transport;\n/**\n * Resolve the active server runtime, lazily creating a default empty runtime\n * when no explicit one has been registered.\n *\n * @internal Internal - do not use.\n * @see https://ser.barekey.dev/content/reference/server-runtime\n */\nexport const get_server_runtime_or_throw:\n typeof Server_module.get_server_runtime_or_throw =\n Server_module.get_server_runtime_or_throw;\n"],"mappings":";;;;;;;;;;AAYA,MAAa,QAAoCA;;;;;;;AAOjD,MAAa,UAAwCC;;;;;;;AAOrD,MAAa,OAAkCC;;;;;;AAM/C,MAAa,YACXC;;;;;;AAMF,MAAa,eACXC;;;;;;;AAOF,MAAa,gBACXC;;;;;;;AAOF,MAAa,0BAETC;;;;;;;;AAQJ,MAAa,8BAETC"}
|
package/dist/v4/effect.js
CHANGED
package/dist/v4/preprocess.js
CHANGED
package/dist/v4/vite.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as sveltekit_effect_runtime$1, t as svelte_effect_runtime$1 } from "../chunks/vite-
|
|
1
|
+
import { n as sveltekit_effect_runtime$1, t as svelte_effect_runtime$1 } from "../chunks/vite-C8ujN78r.js";
|
|
2
2
|
import { with_v4_effect_preprocess_options } from "./preprocess.js";
|
|
3
3
|
//#region v4/vite.ts
|
|
4
4
|
/**
|
package/dist/vite.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as sveltekit_effect_runtime$1, t as svelte_effect_runtime$1 } from "./chunks/vite-
|
|
1
|
+
import { n as sveltekit_effect_runtime$1, t as svelte_effect_runtime$1 } from "./chunks/vite-C8ujN78r.js";
|
|
2
2
|
//#region vite.ts
|
|
3
3
|
/**
|
|
4
4
|
* Compose the low-level Svelte preprocessor directly into a plain Vite +
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preprocess-CtLrnJcK.js","names":[],"sources":["../../../modules/svelte-effect-runtime/v3/preprocess.ts"],"sourcesContent":["/**\n * Low-level Svelte preprocessing primitives for `svelte-effect-runtime`.\n *\n * @example\n * ```ts\n * import { effect_preprocess } from \"svelte-effect-runtime/preprocess\";\n *\n * const preprocess = effect_preprocess();\n * ```\n *\n * @module\n */\nimport type { PreprocessorGroup } from \"svelte/compiler\";\nimport { transformEffectMarkup } from \"$internal/markup.ts\";\nimport { transformEffectScript } from \"$internal/transform.ts\";\n\n/** Options that control how generated helper imports are emitted. */\nexport interface EffectPreprocessOptions {\n runtimeModuleId?: string;\n effectModuleId?: string;\n svelteModuleId?: string;\n}\n\n/**\n * Low-level Svelte preprocessor for `<script effect>` and supported markup\n * `yield*` transforms.\n *\n * Advanced entry point used by tooling and custom build setups.\n *\n * @see https://ser.barekey.dev/content/reference/preprocess\n */\nexport function effect_preprocess(\n options: EffectPreprocessOptions = {},\n): PreprocessorGroup {\n return {\n name: \"svelte-effect-runtime\",\n markup({ content, filename }) {\n const transformed = transformEffectMarkup(content, {\n ...options,\n filename: filename ?? \"Component.svelte\",\n });\n\n if (transformed.code === content) {\n return;\n }\n\n return {\n code: transformed.code,\n map: transformed.map,\n };\n },\n script({ content, attributes, filename }) {\n if (\n attributes.context === \"module\" || !Object.hasOwn(attributes, \"effect\")\n ) {\n return;\n }\n\n const { effect: _effect, ...nextAttributes } = attributes;\n const transformed = transformEffectScript(content, {\n ...options,\n filename: filename ?? \"Component.svelte\",\n });\n\n return {\n code: transformed.code,\n map: transformed.map,\n attributes: nextAttributes,\n };\n },\n };\n}\n"],"mappings":";;;;;;;;;;;AA+BA,SAAgB,kBACd,UAAmC,EAAE,EAClB;AACnB,QAAO;EACL,MAAM;EACN,OAAO,EAAE,SAAS,YAAY;GAC5B,MAAM,cAAc,sBAAsB,SAAS;IACjD,GAAG;IACH,UAAU,YAAY;IACvB,CAAC;AAEF,OAAI,YAAY,SAAS,QACvB;AAGF,UAAO;IACL,MAAM,YAAY;IAClB,KAAK,YAAY;IAClB;;EAEH,OAAO,EAAE,SAAS,YAAY,YAAY;AACxC,OACE,WAAW,YAAY,YAAY,CAAC,OAAO,OAAO,YAAY,SAAS,CAEvE;GAGF,MAAM,EAAE,QAAQ,SAAS,GAAG,mBAAmB;GAC/C,MAAM,cAAc,sBAAsB,SAAS;IACjD,GAAG;IACH,UAAU,YAAY;IACvB,CAAC;AAEF,UAAO;IACL,MAAM,YAAY;IAClB,KAAK,YAAY;IACjB,YAAY;IACb;;EAEJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vite-DqjXRZd4.js","names":[],"sources":["../../../modules/svelte-effect-runtime/v3/vite.ts"],"sourcesContent":["/**\n * Low-level Vite integration entrypoints for `svelte-effect-runtime`.\n *\n * @example\n * ```ts\n * import { svelte_effect_runtime } from \"svelte-effect-runtime/vite\";\n *\n * export default {\n * plugins: [svelte_effect_runtime()],\n * };\n * ```\n *\n * @module\n */\nimport {\n type Options as SveltePluginOptions,\n svelte,\n} from \"@sveltejs/vite-plugin-svelte\";\nimport { createRequire } from \"node:module\";\nimport { dirname, resolve } from \"node:path\";\nimport process from \"node:process\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\nimport type { Plugin } from \"vite\";\nimport {\n effect_preprocess,\n type EffectPreprocessOptions,\n} from \"$/v3/preprocess.ts\";\n\n/** Options for the plain Vite + Svelte preprocess wrapper. */\nexport interface SvelteEffectRuntimeOptions {\n effect?: EffectPreprocessOptions;\n svelte?: SveltePluginOptions;\n}\n\n/** Options for the SvelteKit remote-function adapter plugin. */\nexport interface SveltekitEffectRuntimeOptions {\n /**\n * Override the client-side module SvelteKit uses for generated `.remote.ts`\n * imports so remote calls default to Effect-returning adapters.\n */\n remoteModuleId?: string;\n}\n\nconst SERVER_RUNTIME_PACKAGE_IDS = new Map([\n [\"svelte-effect-runtime\", \"svelte-effect-runtime/_server\"],\n [\"svelte-effect-runtime/v3\", \"svelte-effect-runtime/v3/_server\"],\n [\"svelte-effect-runtime/v4\", \"svelte-effect-runtime/v4/_server\"],\n]);\nconst SERVER_SOURCE_PATTERN =\n /(?:^|\\/)(?:hooks\\.server\\.[cm]?[jt]s|.+\\.server\\.[cm]?[jt]s|.+\\.remote\\.[cm]?[jt]s)$/;\n\nfunction arrayify<T>(value: T | T[] | undefined): T[] {\n if (value === undefined) {\n return [];\n }\n\n return Array.isArray(value) ? value : [value];\n}\n\n/**\n * Low-level Vite plugin wrapper for non-SvelteKit builds that only need the\n * Svelte preprocessor integration.\n *\n * @see https://ser.barekey.dev/content/reference/tooling\n */\nexport function svelte_effect_runtime(\n options: SvelteEffectRuntimeOptions = {},\n): Plugin[] {\n const existingPreprocessors = arrayify(options.svelte?.preprocess);\n\n return svelte({\n ...options.svelte,\n preprocess: [\n effect_preprocess(options.effect),\n ...existingPreprocessors,\n ],\n });\n}\n\nfunction resolve_runtime_internal_path(\n source_relative_path: string,\n dist_relative_path: string,\n): string {\n const relative_path = import.meta.url.endsWith(\".ts\")\n ? source_relative_path\n : dist_relative_path;\n\n return fileURLToPath(new URL(relative_path, import.meta.url));\n}\n\nfunction resolve_kit_internal_runtime_path(relative_path: string): string {\n const runtime_require = createRequire(resolve(process.cwd(), \"package.json\"));\n const kit_package_path = runtime_require.resolve(\n \"@sveltejs/kit/package.json\",\n );\n const kit_root = dirname(kit_package_path);\n\n return pathToFileURL(resolve(kit_root, relative_path)).href;\n}\n\nfunction create_remote_runtime_module_code(): string {\n const adapter_module_path = resolve_runtime_internal_path(\n \"../internal/remote-client.ts\",\n \"../internal/remote-client.js\",\n );\n const kit_query_module_path = resolve_kit_internal_runtime_path(\n \"src/runtime/client/remote-functions/query.svelte.js\",\n );\n const kit_command_module_path = resolve_kit_internal_runtime_path(\n \"src/runtime/client/remote-functions/command.svelte.js\",\n );\n const kit_form_module_path = resolve_kit_internal_runtime_path(\n \"src/runtime/client/remote-functions/form.svelte.js\",\n );\n const kit_prerender_module_path = resolve_kit_internal_runtime_path(\n \"src/runtime/client/remote-functions/prerender.svelte.js\",\n );\n const kit_shared_module_path = resolve_kit_internal_runtime_path(\n \"src/runtime/client/remote-functions/shared.svelte.js\",\n );\n const kit_client_module_path = resolve_kit_internal_runtime_path(\n \"src/runtime/client/client.js\",\n );\n const kit_form_utils_module_path = resolve_kit_internal_runtime_path(\n \"src/runtime/form-utils.js\",\n );\n const kit_shared_runtime_module_path = resolve_kit_internal_runtime_path(\n \"src/runtime/shared.js\",\n );\n\n return `\nimport * as devalue from \"devalue\";\nimport { base, app_dir } from \"$app/paths/internal/client\";\nimport { query as native_query, query_batch as native_query_batch } from ${\n JSON.stringify(kit_query_module_path)\n };\nimport { command as native_command } from ${\n JSON.stringify(kit_command_module_path)\n };\nimport { form as native_form } from ${JSON.stringify(kit_form_module_path)};\nimport { prerender as native_prerender } from ${\n JSON.stringify(kit_prerender_module_path)\n };\nimport {\n apply_refreshes,\n get_remote_request_headers,\n remote_request\n} from ${JSON.stringify(kit_shared_module_path)};\nimport { app, invalidateAll, _goto } from ${\n JSON.stringify(kit_client_module_path)\n };\nimport { BINARY_FORM_CONTENT_TYPE, serialize_binary_form } from ${\n JSON.stringify(kit_form_utils_module_path)\n };\nimport { stringify_remote_arg } from ${\n JSON.stringify(kit_shared_runtime_module_path)\n };\nimport {\n create_remote_command_adapter,\n create_remote_form_adapter,\n create_remote_query_adapter\n} from ${JSON.stringify(adapter_module_path)};\n\nconst decode_payload = (encoded) => devalue.parse(encoded, app?.decoders ?? {});\nconst request_dependencies = {\n app,\n app_dir,\n apply_refreshes,\n base,\n get_remote_request_headers,\n remote_request,\n stringify_remote_arg\n};\n\nexport const query = create_remote_query_adapter(native_query, decode_payload, request_dependencies, \"query\");\nexport const query_batch = create_remote_query_adapter(native_query_batch, decode_payload, request_dependencies, \"query_batch\");\nexport const command = create_remote_command_adapter(native_command, decode_payload, request_dependencies);\nexport const prerender = create_remote_query_adapter(native_prerender, decode_payload, request_dependencies, \"prerender\");\nexport const form = create_remote_form_adapter(native_form, decode_payload, {\n binary_form_content_type: BINARY_FORM_CONTENT_TYPE,\n goto: _goto,\n invalidate_all: invalidateAll,\n serialize_binary_form,\n ...request_dependencies\n});\n`;\n}\n\n/**\n * Low-level Vite plugin that swaps SvelteKit's generated remote client module\n * for the Effect-aware adapters used by `effect()`.\n *\n * Prefer `effect()` unless you are assembling a custom Vite plugin stack.\n *\n * @see https://ser.barekey.dev/content/reference/tooling\n */\nexport function sveltekit_effect_runtime(\n options: SveltekitEffectRuntimeOptions = {},\n): Plugin {\n const remote_module_id = options.remoteModuleId ??\n \"\\0svelte-effect-runtime:remote\";\n\n return {\n name: \"svelte-effect-runtime-remote\",\n enforce: \"pre\",\n resolveId(id) {\n if (id === \"__sveltekit/remote\") {\n return remote_module_id;\n }\n },\n load(id) {\n if (id !== remote_module_id) {\n return;\n }\n\n return create_remote_runtime_module_code();\n },\n transform(code, id) {\n const filename = id.split(\"?\", 1)[0];\n if (!SERVER_SOURCE_PATTERN.test(filename)) {\n return null;\n }\n\n let transformed = code;\n\n for (\n const [client_package_id, server_package_id]\n of SERVER_RUNTIME_PACKAGE_IDS\n ) {\n transformed = transformed.replaceAll(\n `\"${client_package_id}\"`,\n `\"${server_package_id}\"`,\n );\n transformed = transformed.replaceAll(\n `'${client_package_id}'`,\n `'${server_package_id}'`,\n );\n }\n\n if (transformed === code) {\n return null;\n }\n\n return transformed;\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA2CA,MAAM,6BAA6B,IAAI,IAAI;CACzC,CAAC,yBAAyB,gCAAgC;CAC1D,CAAC,4BAA4B,mCAAmC;CAChE,CAAC,4BAA4B,mCAAmC;CACjE,CAAC;AACF,MAAM,wBACJ;AAEF,SAAS,SAAY,OAAiC;AACpD,KAAI,UAAU,KAAA,EACZ,QAAO,EAAE;AAGX,QAAO,MAAM,QAAQ,MAAM,GAAG,QAAQ,CAAC,MAAM;;;;;;;;AAS/C,SAAgB,sBACd,UAAsC,EAAE,EAC9B;CACV,MAAM,wBAAwB,SAAS,QAAQ,QAAQ,WAAW;AAElE,QAAO,OAAO;EACZ,GAAG,QAAQ;EACX,YAAY,CACV,kBAAkB,QAAQ,OAAO,EACjC,GAAG,sBACJ;EACF,CAAC;;AAGJ,SAAS,8BACP,sBACA,oBACQ;CACR,MAAM,gBAAgB,OAAO,KAAK,IAAI,SAAS,MAAM,GACjD,uBACA;AAEJ,QAAO,cAAc,IAAI,IAAI,eAAe,OAAO,KAAK,IAAI,CAAC;;AAG/D,SAAS,kCAAkC,eAA+B;AAOxE,QAAO,cAAc,QAFJ,QAJO,cAAc,QAAQ,QAAQ,KAAK,EAAE,eAAe,CAAC,CACpC,QACvC,6BACD,CACyC,EAEH,cAAc,CAAC,CAAC;;AAGzD,SAAS,oCAA4C;CACnD,MAAM,sBAAsB,8BAC1B,gCACA,+BACD;CACD,MAAM,wBAAwB,kCAC5B,sDACD;CACD,MAAM,0BAA0B,kCAC9B,wDACD;CACD,MAAM,uBAAuB,kCAC3B,qDACD;CACD,MAAM,4BAA4B,kCAChC,0DACD;CACD,MAAM,yBAAyB,kCAC7B,uDACD;CACD,MAAM,yBAAyB,kCAC7B,+BACD;CACD,MAAM,6BAA6B,kCACjC,4BACD;CACD,MAAM,iCAAiC,kCACrC,wBACD;AAED,QAAO;;;2EAIL,KAAK,UAAU,sBAAsB,CACtC;4CAEC,KAAK,UAAU,wBAAwB,CACxC;sCACmC,KAAK,UAAU,qBAAqB,CAAC;gDAEvE,KAAK,UAAU,0BAA0B,CAC1C;;;;;SAKM,KAAK,UAAU,uBAAuB,CAAC;4CAE5C,KAAK,UAAU,uBAAuB,CACvC;kEAEC,KAAK,UAAU,2BAA2B,CAC3C;uCAEC,KAAK,UAAU,+BAA+B,CAC/C;;;;;SAKM,KAAK,UAAU,oBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmC7C,SAAgB,yBACd,UAAyC,EAAE,EACnC;CACR,MAAM,mBAAmB,QAAQ,kBAC/B;AAEF,QAAO;EACL,MAAM;EACN,SAAS;EACT,UAAU,IAAI;AACZ,OAAI,OAAO,qBACT,QAAO;;EAGX,KAAK,IAAI;AACP,OAAI,OAAO,iBACT;AAGF,UAAO,mCAAmC;;EAE5C,UAAU,MAAM,IAAI;GAClB,MAAM,WAAW,GAAG,MAAM,KAAK,EAAE,CAAC;AAClC,OAAI,CAAC,sBAAsB,KAAK,SAAS,CACvC,QAAO;GAGT,IAAI,cAAc;AAElB,QACE,MAAM,CAAC,mBAAmB,sBACrB,4BACL;AACA,kBAAc,YAAY,WAC1B,IAAI,kBAAkB,IACtB,IAAI,kBAAkB,GACrB;AACD,kBAAc,YAAY,WAC1B,IAAI,kBAAkB,IACtB,IAAI,kBAAkB,GACrB;;AAGH,OAAI,gBAAgB,KAClB,QAAO;AAGT,UAAO;;EAEV"}
|