@srvkit/vite 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +12 -0
  3. package/dist/_virtual/_rolldown/runtime.js +35 -0
  4. package/dist/functions/ssr.js +18 -0
  5. package/dist/functions/ssr.js.map +1 -0
  6. package/dist/functions/ssr.mjs +17 -0
  7. package/dist/functions/ssr.mjs.map +1 -0
  8. package/dist/index.d.ts +5 -0
  9. package/dist/index.js +17 -0
  10. package/dist/index.mjs +11 -0
  11. package/dist/node.d.ts +5 -0
  12. package/dist/node.js +17 -0
  13. package/dist/node.mjs +11 -0
  14. package/dist/package.js +18 -0
  15. package/dist/package.js.map +1 -0
  16. package/dist/package.mjs +12 -0
  17. package/dist/package.mjs.map +1 -0
  18. package/dist/plugin.d.ts +7 -0
  19. package/dist/plugin.js +12 -0
  20. package/dist/plugin.mjs +11 -0
  21. package/dist/plugins/build/index.d.ts +7 -0
  22. package/dist/plugins/build/index.js +83 -0
  23. package/dist/plugins/build/index.js.map +1 -0
  24. package/dist/plugins/build/index.mjs +82 -0
  25. package/dist/plugins/build/index.mjs.map +1 -0
  26. package/dist/plugins/copy/index.d.ts +7 -0
  27. package/dist/plugins/copy/index.js +47 -0
  28. package/dist/plugins/copy/index.js.map +1 -0
  29. package/dist/plugins/copy/index.mjs +44 -0
  30. package/dist/plugins/copy/index.mjs.map +1 -0
  31. package/dist/plugins/dev/index.d.ts +7 -0
  32. package/dist/plugins/dev/index.js +110 -0
  33. package/dist/plugins/dev/index.js.map +1 -0
  34. package/dist/plugins/dev/index.mjs +109 -0
  35. package/dist/plugins/dev/index.mjs.map +1 -0
  36. package/dist/plugins/index.d.ts +7 -0
  37. package/dist/plugins/index.js +24 -0
  38. package/dist/plugins/index.js.map +1 -0
  39. package/dist/plugins/index.mjs +24 -0
  40. package/dist/plugins/index.mjs.map +1 -0
  41. package/dist/runtime.d.ts +4 -0
  42. package/dist/runtime.js +17 -0
  43. package/dist/runtime.mjs +11 -0
  44. package/package.json +108 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026-present, Alpheus
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,12 @@
1
+ # @srvkit/vite
2
+
3
+ A toolkit for building JavaScript server applications.
4
+
5
+ ## Documentation
6
+
7
+ For more information,
8
+ please refer to the [documentation](https://srvkit.github.io).
9
+
10
+ ## License
11
+
12
+ This project is licensed under the terms of the MIT license.
@@ -0,0 +1,35 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ var __create = Object.create;
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __getProtoOf = Object.getPrototypeOf;
14
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
18
+ key = keys[i];
19
+ if (!__hasOwnProp.call(to, key) && key !== except) {
20
+ __defProp(to, key, {
21
+ get: ((k) => from[k]).bind(null, key),
22
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
23
+ });
24
+ }
25
+ }
26
+ }
27
+ return to;
28
+ };
29
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
30
+ value: mod,
31
+ enumerable: true
32
+ }) : target, mod));
33
+
34
+
35
+ exports.__toESM = __toESM;
@@ -0,0 +1,18 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+
10
+ const getSsrTarget = (runtime) => {
11
+ switch (runtime) {
12
+ case "workerd": return "webworker";
13
+ default: return "node";
14
+ }
15
+ };
16
+
17
+ exports.getSsrTarget = getSsrTarget;
18
+ //# sourceMappingURL=ssr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssr.js","names":[],"sources":["../../src/functions/ssr.ts"],"sourcesContent":["import type { Runtime } from \"@srvkit/common/@types/options/complete\";\nimport type { SSRTarget } from \"vite\";\n\nconst getSsrTarget = (runtime: Runtime): SSRTarget => {\n switch (runtime) {\n case \"workerd\":\n return \"webworker\";\n default:\n return \"node\";\n }\n};\n\nexport { getSsrTarget };\n"],"mappings":";;;;;;;;;AAGA,MAAM,gBAAgB,YAAgC;CAClD,QAAQ,SAAR;EACI,KAAK,WACD,OAAO;EACX,SACI,OAAO;CACf;AACJ"}
@@ -0,0 +1,17 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ const getSsrTarget = (runtime) => {
10
+ switch (runtime) {
11
+ case "workerd": return "webworker";
12
+ default: return "node";
13
+ }
14
+ };
15
+
16
+ export { getSsrTarget };
17
+ //# sourceMappingURL=ssr.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssr.mjs","names":[],"sources":["../../src/functions/ssr.ts"],"sourcesContent":["import type { Runtime } from \"@srvkit/common/@types/options/complete\";\nimport type { SSRTarget } from \"vite\";\n\nconst getSsrTarget = (runtime: Runtime): SSRTarget => {\n switch (runtime) {\n case \"workerd\":\n return \"webworker\";\n default:\n return \"node\";\n }\n};\n\nexport { getSsrTarget };\n"],"mappings":";;;;;;;;AAGA,MAAM,gBAAgB,YAAgC;CAClD,QAAQ,SAAR;EACI,KAAK,WACD,OAAO;EACX,SACI,OAAO;CACf;AACJ"}
@@ -0,0 +1,5 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ import { ErrorHandler, Server, ServerHandler, ServerMiddleware, ServerOptions, ServerPlugin, ServerRequest } from "@srvkit/common/@types/server";
4
+ import { defineServer } from "@srvkit/common/functions/server/define";
5
+ export { type ErrorHandler, type Server, type ServerHandler, type ServerMiddleware, type ServerOptions, type ServerPlugin, type ServerRequest, defineServer };
package/dist/index.js ADDED
@@ -0,0 +1,17 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
10
+ let _srvkit_common_functions_server_define = require("@srvkit/common/functions/server/define");
11
+
12
+ Object.defineProperty(exports, 'defineServer', {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _srvkit_common_functions_server_define.defineServer;
16
+ }
17
+ });
package/dist/index.mjs ADDED
@@ -0,0 +1,11 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ import { defineServer } from "@srvkit/common/functions/server/define";
10
+
11
+ export { defineServer };
package/dist/node.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ import { AdapterMeta, FetchHandler, NodeHttpHandler } from "@srvkit/common/@types/node";
4
+ import { toFetchHandler } from "@srvkit/common/node";
5
+ export { type AdapterMeta, type FetchHandler, type NodeHttpHandler, toFetchHandler };
package/dist/node.js ADDED
@@ -0,0 +1,17 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
10
+ let _srvkit_common_node = require("@srvkit/common/node");
11
+
12
+ Object.defineProperty(exports, 'toFetchHandler', {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _srvkit_common_node.toFetchHandler;
16
+ }
17
+ });
package/dist/node.mjs ADDED
@@ -0,0 +1,11 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ import { toFetchHandler } from "@srvkit/common/node";
10
+
11
+ export { toFetchHandler };
@@ -0,0 +1,18 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+
10
+ var name = "@srvkit/vite";
11
+
12
+ Object.defineProperty(exports, 'name', {
13
+ enumerable: true,
14
+ get: function () {
15
+ return name;
16
+ }
17
+ });
18
+ //# sourceMappingURL=package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.js","names":[],"sources":["../package.json"],"sourcesContent":[""],"mappings":""}
@@ -0,0 +1,12 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ var name = "@srvkit/vite";
10
+
11
+ export { name };
12
+ //# sourceMappingURL=package.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.mjs","names":[],"sources":["../package.json"],"sourcesContent":[""],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ import { plugin } from "./plugins/index.js";
4
+ import { Runtime } from "@srvkit/common/@types/options/complete";
5
+ import { BuildTarget, BundleMode } from "@srvkit/common/@types/options/complete/build";
6
+ import { BuildOptions, DevOptions, HttpsOptions, Options } from "@srvkit/common/@types/options/default";
7
+ export { type BuildOptions, type BuildTarget, type BundleMode, type DevOptions, type HttpsOptions, type Options, type Runtime, plugin as srvkit };
package/dist/plugin.js ADDED
@@ -0,0 +1,12 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
10
+ const require_index = require('./plugins/index.js');
11
+
12
+ exports.srvkit = require_index.plugin;
@@ -0,0 +1,11 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ import { plugin } from "./plugins/index.mjs";
10
+
11
+ export { plugin as srvkit };
@@ -0,0 +1,7 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ import { Plugin } from "vite";
4
+ import { ResolvedOptions } from "@srvkit/common/@types/options/resolved";
5
+ declare const buildPlugin: (opts: ResolvedOptions) => Plugin;
6
+ export { buildPlugin };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,83 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
10
+ const require_ssr = require('../../functions/ssr.js');
11
+ const require_package = require('../../package.js');
12
+ let node_module = require("node:module");
13
+ let _srvkit_common_functions_build_virtual_entry = require("@srvkit/common/functions/build/virtual-entry");
14
+ let _srvkit_common_functions_package_package_json = require("@srvkit/common/functions/package/package-json");
15
+ let vite = require("vite");
16
+
17
+ const VIRTUAL_ENTRY = "virtual:srvkit";
18
+ const VIRTUAL_ENTRY_RESOLVED = `\0${VIRTUAL_ENTRY}`;
19
+ const buildPlugin = (opts) => {
20
+ const build = opts.build;
21
+ const packageJson = (0, _srvkit_common_functions_package_package_json.getPackageJson)(opts.cwd);
22
+ return {
23
+ name: `${require_package.name}/build`,
24
+ apply: "build",
25
+ config: (config) => {
26
+ let result = {};
27
+ let baseConfig = {
28
+ resolve: { conditions: [opts.runtime] },
29
+ ssr: {
30
+ target: require_ssr.getSsrTarget(opts.runtime),
31
+ resolve: { conditions: [opts.runtime] }
32
+ },
33
+ build: { copyPublicDir: false }
34
+ };
35
+ if (build.bundle === "external") baseConfig = {
36
+ ...baseConfig,
37
+ ssr: {
38
+ ...baseConfig.ssr,
39
+ external: true,
40
+ noExternal: void 0
41
+ }
42
+ };
43
+ if (build.bundle === "standalone") baseConfig = {
44
+ ...baseConfig,
45
+ ssr: {
46
+ ...baseConfig.ssr,
47
+ external: void 0,
48
+ noExternal: true
49
+ }
50
+ };
51
+ result = (0, vite.mergeConfig)(baseConfig, config);
52
+ const overrideConfig = { build: {
53
+ ssr: true,
54
+ outDir: build.outputDir,
55
+ rolldownOptions: {
56
+ input: VIRTUAL_ENTRY,
57
+ output: {
58
+ entryFileNames: build.outputFile,
59
+ format: packageJson.type === "module" ? "esm" : "cjs"
60
+ },
61
+ external: [...node_module.builtinModules, /^node:/],
62
+ experimental: { attachDebugInfo: "none" }
63
+ },
64
+ minify: build.minify
65
+ } };
66
+ return (0, vite.mergeConfig)(result, overrideConfig);
67
+ },
68
+ resolveId: (id) => {
69
+ if (id !== VIRTUAL_ENTRY) return void 0;
70
+ return VIRTUAL_ENTRY_RESOLVED;
71
+ },
72
+ load: async (id) => {
73
+ if (id !== VIRTUAL_ENTRY_RESOLVED) return void 0;
74
+ return (0, _srvkit_common_functions_build_virtual_entry.createVirtualEntryCode)({
75
+ ...opts,
76
+ packageName: require_package.name
77
+ });
78
+ }
79
+ };
80
+ };
81
+
82
+ exports.buildPlugin = buildPlugin;
83
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["name","getSsrTarget","builtinModules"],"sources":["../../../src/plugins/build/index.ts"],"sourcesContent":["import type {\n ResolvedBuildOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { PackageJson } from \"@srvkit/common/functions/package/package-json\";\nimport type { LoadResult, ResolveIdResult } from \"rolldown\";\nimport type { Plugin, UserConfig } from \"vite\";\n\nimport { builtinModules } from \"node:module\";\n\nimport { createVirtualEntryCode } from \"@srvkit/common/functions/build/virtual-entry\";\nimport { getPackageJson } from \"@srvkit/common/functions/package/package-json\";\nimport { mergeConfig } from \"vite\";\n\nimport { getSsrTarget } from \"#/functions/ssr\";\nimport { name } from \"#/root/package.json\";\n\nconst VIRTUAL_ENTRY = \"virtual:srvkit\" as const;\n\nconst VIRTUAL_ENTRY_RESOLVED = `\\0${VIRTUAL_ENTRY}` as const;\n\nconst buildPlugin = (opts: ResolvedOptions): Plugin => {\n const build: ResolvedBuildOptions = opts.build;\n\n const packageJson: PackageJson = getPackageJson(opts.cwd);\n\n return {\n name: `${name}/build`,\n apply: \"build\",\n config: (config: UserConfig): UserConfig => {\n let result: UserConfig = {};\n\n let baseConfig: UserConfig = {\n resolve: {\n conditions: [\n opts.runtime,\n ],\n },\n ssr: {\n target: getSsrTarget(opts.runtime),\n resolve: {\n conditions: [\n opts.runtime,\n ],\n },\n },\n build: {\n copyPublicDir: false,\n },\n };\n\n if (build.bundle === \"external\") {\n baseConfig = {\n ...baseConfig,\n ssr: {\n ...baseConfig.ssr,\n external: true,\n noExternal: void 0,\n },\n };\n }\n\n if (build.bundle === \"standalone\") {\n baseConfig = {\n ...baseConfig,\n ssr: {\n ...baseConfig.ssr,\n external: void 0,\n noExternal: true,\n },\n };\n }\n\n result = mergeConfig(baseConfig, config);\n\n const overrideConfig: UserConfig = {\n build: {\n ssr: true,\n outDir: build.outputDir,\n rolldownOptions: {\n input: VIRTUAL_ENTRY,\n output: {\n entryFileNames: build.outputFile,\n format:\n packageJson.type === \"module\" ? \"esm\" : \"cjs\",\n },\n external: [\n ...builtinModules,\n /^node:/,\n ],\n experimental: {\n attachDebugInfo: \"none\",\n },\n },\n minify: build.minify,\n },\n };\n\n return mergeConfig(result, overrideConfig);\n },\n resolveId: (id: string): ResolveIdResult => {\n if (id !== VIRTUAL_ENTRY) return void 0;\n return VIRTUAL_ENTRY_RESOLVED;\n },\n load: async (id: string): Promise<LoadResult> => {\n if (id !== VIRTUAL_ENTRY_RESOLVED) return void 0;\n return createVirtualEntryCode({\n ...opts,\n packageName: name,\n });\n },\n };\n};\n\nexport { buildPlugin };\n"],"mappings":";;;;;;;;;;;;;;;;AAiBA,MAAM,gBAAgB;AAEtB,MAAM,yBAAyB,KAAK;AAEpC,MAAM,eAAe,SAAkC;CACnD,MAAM,QAA8B,KAAK;CAEzC,MAAM,gFAA0C,KAAK,GAAG;CAExD,OAAO;EACH,MAAM,GAAGA,qBAAK;EACd,OAAO;EACP,SAAS,WAAmC;GACxC,IAAI,SAAqB,CAAC;GAE1B,IAAI,aAAyB;IACzB,SAAS,EACL,YAAY,CACR,KAAK,OACT,EACJ;IACA,KAAK;KACD,QAAQC,yBAAa,KAAK,OAAO;KACjC,SAAS,EACL,YAAY,CACR,KAAK,OACT,EACJ;IACJ;IACA,OAAO,EACH,eAAe,MACnB;GACJ;GAEA,IAAI,MAAM,WAAW,YACjB,aAAa;IACT,GAAG;IACH,KAAK;KACD,GAAG,WAAW;KACd,UAAU;KACV,YAAY,KAAK;IACrB;GACJ;GAGJ,IAAI,MAAM,WAAW,cACjB,aAAa;IACT,GAAG;IACH,KAAK;KACD,GAAG,WAAW;KACd,UAAU,KAAK;KACf,YAAY;IAChB;GACJ;GAGJ,+BAAqB,YAAY,MAAM;GAEvC,MAAM,iBAA6B,EAC/B,OAAO;IACH,KAAK;IACL,QAAQ,MAAM;IACd,iBAAiB;KACb,OAAO;KACP,QAAQ;MACJ,gBAAgB,MAAM;MACtB,QACI,YAAY,SAAS,WAAW,QAAQ;KAChD;KACA,UAAU,CACN,GAAGC,4BACH,QACJ;KACA,cAAc,EACV,iBAAiB,OACrB;IACJ;IACA,QAAQ,MAAM;GAClB,EACJ;GAEA,6BAAmB,QAAQ,cAAc;EAC7C;EACA,YAAY,OAAgC;GACxC,IAAI,OAAO,eAAe,OAAO,KAAK;GACtC,OAAO;EACX;EACA,MAAM,OAAO,OAAoC;GAC7C,IAAI,OAAO,wBAAwB,OAAO,KAAK;GAC/C,gFAA8B;IAC1B,GAAG;IACH,aAAaF;GACjB,CAAC;EACL;CACJ;AACJ"}
@@ -0,0 +1,82 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ import { getSsrTarget } from "../../functions/ssr.mjs";
10
+ import { name } from "../../package.mjs";
11
+ import { builtinModules } from "node:module";
12
+ import { createVirtualEntryCode } from "@srvkit/common/functions/build/virtual-entry";
13
+ import { getPackageJson } from "@srvkit/common/functions/package/package-json";
14
+ import { mergeConfig } from "vite";
15
+
16
+ const VIRTUAL_ENTRY = "virtual:srvkit";
17
+ const VIRTUAL_ENTRY_RESOLVED = `\0${VIRTUAL_ENTRY}`;
18
+ const buildPlugin = (opts) => {
19
+ const build = opts.build;
20
+ const packageJson = getPackageJson(opts.cwd);
21
+ return {
22
+ name: `${name}/build`,
23
+ apply: "build",
24
+ config: (config) => {
25
+ let result = {};
26
+ let baseConfig = {
27
+ resolve: { conditions: [opts.runtime] },
28
+ ssr: {
29
+ target: getSsrTarget(opts.runtime),
30
+ resolve: { conditions: [opts.runtime] }
31
+ },
32
+ build: { copyPublicDir: false }
33
+ };
34
+ if (build.bundle === "external") baseConfig = {
35
+ ...baseConfig,
36
+ ssr: {
37
+ ...baseConfig.ssr,
38
+ external: true,
39
+ noExternal: void 0
40
+ }
41
+ };
42
+ if (build.bundle === "standalone") baseConfig = {
43
+ ...baseConfig,
44
+ ssr: {
45
+ ...baseConfig.ssr,
46
+ external: void 0,
47
+ noExternal: true
48
+ }
49
+ };
50
+ result = mergeConfig(baseConfig, config);
51
+ const overrideConfig = { build: {
52
+ ssr: true,
53
+ outDir: build.outputDir,
54
+ rolldownOptions: {
55
+ input: VIRTUAL_ENTRY,
56
+ output: {
57
+ entryFileNames: build.outputFile,
58
+ format: packageJson.type === "module" ? "esm" : "cjs"
59
+ },
60
+ external: [...builtinModules, /^node:/],
61
+ experimental: { attachDebugInfo: "none" }
62
+ },
63
+ minify: build.minify
64
+ } };
65
+ return mergeConfig(result, overrideConfig);
66
+ },
67
+ resolveId: (id) => {
68
+ if (id !== VIRTUAL_ENTRY) return void 0;
69
+ return VIRTUAL_ENTRY_RESOLVED;
70
+ },
71
+ load: async (id) => {
72
+ if (id !== VIRTUAL_ENTRY_RESOLVED) return void 0;
73
+ return createVirtualEntryCode({
74
+ ...opts,
75
+ packageName: name
76
+ });
77
+ }
78
+ };
79
+ };
80
+
81
+ export { buildPlugin };
82
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/plugins/build/index.ts"],"sourcesContent":["import type {\n ResolvedBuildOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { PackageJson } from \"@srvkit/common/functions/package/package-json\";\nimport type { LoadResult, ResolveIdResult } from \"rolldown\";\nimport type { Plugin, UserConfig } from \"vite\";\n\nimport { builtinModules } from \"node:module\";\n\nimport { createVirtualEntryCode } from \"@srvkit/common/functions/build/virtual-entry\";\nimport { getPackageJson } from \"@srvkit/common/functions/package/package-json\";\nimport { mergeConfig } from \"vite\";\n\nimport { getSsrTarget } from \"#/functions/ssr\";\nimport { name } from \"#/root/package.json\";\n\nconst VIRTUAL_ENTRY = \"virtual:srvkit\" as const;\n\nconst VIRTUAL_ENTRY_RESOLVED = `\\0${VIRTUAL_ENTRY}` as const;\n\nconst buildPlugin = (opts: ResolvedOptions): Plugin => {\n const build: ResolvedBuildOptions = opts.build;\n\n const packageJson: PackageJson = getPackageJson(opts.cwd);\n\n return {\n name: `${name}/build`,\n apply: \"build\",\n config: (config: UserConfig): UserConfig => {\n let result: UserConfig = {};\n\n let baseConfig: UserConfig = {\n resolve: {\n conditions: [\n opts.runtime,\n ],\n },\n ssr: {\n target: getSsrTarget(opts.runtime),\n resolve: {\n conditions: [\n opts.runtime,\n ],\n },\n },\n build: {\n copyPublicDir: false,\n },\n };\n\n if (build.bundle === \"external\") {\n baseConfig = {\n ...baseConfig,\n ssr: {\n ...baseConfig.ssr,\n external: true,\n noExternal: void 0,\n },\n };\n }\n\n if (build.bundle === \"standalone\") {\n baseConfig = {\n ...baseConfig,\n ssr: {\n ...baseConfig.ssr,\n external: void 0,\n noExternal: true,\n },\n };\n }\n\n result = mergeConfig(baseConfig, config);\n\n const overrideConfig: UserConfig = {\n build: {\n ssr: true,\n outDir: build.outputDir,\n rolldownOptions: {\n input: VIRTUAL_ENTRY,\n output: {\n entryFileNames: build.outputFile,\n format:\n packageJson.type === \"module\" ? \"esm\" : \"cjs\",\n },\n external: [\n ...builtinModules,\n /^node:/,\n ],\n experimental: {\n attachDebugInfo: \"none\",\n },\n },\n minify: build.minify,\n },\n };\n\n return mergeConfig(result, overrideConfig);\n },\n resolveId: (id: string): ResolveIdResult => {\n if (id !== VIRTUAL_ENTRY) return void 0;\n return VIRTUAL_ENTRY_RESOLVED;\n },\n load: async (id: string): Promise<LoadResult> => {\n if (id !== VIRTUAL_ENTRY_RESOLVED) return void 0;\n return createVirtualEntryCode({\n ...opts,\n packageName: name,\n });\n },\n };\n};\n\nexport { buildPlugin };\n"],"mappings":";;;;;;;;;;;;;;;AAiBA,MAAM,gBAAgB;AAEtB,MAAM,yBAAyB,KAAK;AAEpC,MAAM,eAAe,SAAkC;CACnD,MAAM,QAA8B,KAAK;CAEzC,MAAM,cAA2B,eAAe,KAAK,GAAG;CAExD,OAAO;EACH,MAAM,GAAG,KAAK;EACd,OAAO;EACP,SAAS,WAAmC;GACxC,IAAI,SAAqB,CAAC;GAE1B,IAAI,aAAyB;IACzB,SAAS,EACL,YAAY,CACR,KAAK,OACT,EACJ;IACA,KAAK;KACD,QAAQ,aAAa,KAAK,OAAO;KACjC,SAAS,EACL,YAAY,CACR,KAAK,OACT,EACJ;IACJ;IACA,OAAO,EACH,eAAe,MACnB;GACJ;GAEA,IAAI,MAAM,WAAW,YACjB,aAAa;IACT,GAAG;IACH,KAAK;KACD,GAAG,WAAW;KACd,UAAU;KACV,YAAY,KAAK;IACrB;GACJ;GAGJ,IAAI,MAAM,WAAW,cACjB,aAAa;IACT,GAAG;IACH,KAAK;KACD,GAAG,WAAW;KACd,UAAU,KAAK;KACf,YAAY;IAChB;GACJ;GAGJ,SAAS,YAAY,YAAY,MAAM;GAEvC,MAAM,iBAA6B,EAC/B,OAAO;IACH,KAAK;IACL,QAAQ,MAAM;IACd,iBAAiB;KACb,OAAO;KACP,QAAQ;MACJ,gBAAgB,MAAM;MACtB,QACI,YAAY,SAAS,WAAW,QAAQ;KAChD;KACA,UAAU,CACN,GAAG,gBACH,QACJ;KACA,cAAc,EACV,iBAAiB,OACrB;IACJ;IACA,QAAQ,MAAM;GAClB,EACJ;GAEA,OAAO,YAAY,QAAQ,cAAc;EAC7C;EACA,YAAY,OAAgC;GACxC,IAAI,OAAO,eAAe,OAAO,KAAK;GACtC,OAAO;EACX;EACA,MAAM,OAAO,OAAoC;GAC7C,IAAI,OAAO,wBAAwB,OAAO,KAAK;GAC/C,OAAO,uBAAuB;IAC1B,GAAG;IACH,aAAa;GACjB,CAAC;EACL;CACJ;AACJ"}
@@ -0,0 +1,7 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ import { Plugin } from "vite";
4
+ import { ResolvedOptions } from "@srvkit/common/@types/options/resolved";
5
+ declare const copyPlugin: (opts: ResolvedOptions) => Plugin[];
6
+ export { copyPlugin };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,47 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
10
+ const require_runtime = require('../../_virtual/_rolldown/runtime.js');
11
+ let node_path = require("node:path");
12
+ node_path = require_runtime.__toESM(node_path);
13
+ let _srvkit_common_configs_log = require("@srvkit/common/configs/log");
14
+ let rolldown_plugin_copy = require("rolldown-plugin-copy");
15
+
16
+ const copyPlugin = (opts) => {
17
+ const build = opts.build;
18
+ if (build.target !== "server" || !build.copyPublicDir) return [];
19
+ const copyOptions = {
20
+ cwd: opts.cwd,
21
+ targets: [{
22
+ src: node_path.posix.join(build.publicDir, "**", "*"),
23
+ dest: node_path.posix.join(build.outputDir, build.publicDir)
24
+ }]
25
+ };
26
+ if (opts.verbose) {
27
+ copyOptions.onStart = () => {
28
+ console.log("");
29
+ console.log("");
30
+ };
31
+ copyOptions.onCopy = (event) => {
32
+ let message = `${node_path.relative(opts.cwd, event.target.src)} → ${node_path.relative(opts.cwd, event.target.dest)}`;
33
+ const flags = [];
34
+ if (event.target.renamed) flags.push("R");
35
+ if (event.target.transformed) flags.push("T");
36
+ if (flags.length > 0) message += ` [${flags.join(",")}]`;
37
+ _srvkit_common_configs_log.log.success(message);
38
+ };
39
+ copyOptions.onEnd = () => {
40
+ console.log("");
41
+ };
42
+ }
43
+ return [(0, rolldown_plugin_copy.copy)(copyOptions)];
44
+ };
45
+
46
+ exports.copyPlugin = copyPlugin;
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["Path"],"sources":["../../../src/plugins/copy/index.ts"],"sourcesContent":["import type {\n ResolvedBuildOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { CopyEvent, Options as Copyoptions } from \"rolldown-plugin-copy\";\nimport type { Plugin } from \"vite\";\n\nimport * as Path from \"node:path\";\n\nimport { log } from \"@srvkit/common/configs/log\";\nimport { copy } from \"rolldown-plugin-copy\";\n\nconst copyPlugin = (opts: ResolvedOptions): Plugin[] => {\n const build: ResolvedBuildOptions = opts.build;\n\n if (build.target !== \"server\" || !build.copyPublicDir) {\n return [];\n }\n\n const copyOptions: Copyoptions = {\n cwd: opts.cwd,\n targets: [\n {\n src: Path.posix.join(build.publicDir, \"**\", \"*\"),\n dest: Path.posix.join(build.outputDir, build.publicDir),\n },\n ],\n };\n\n if (opts.verbose) {\n copyOptions.onStart = (): void => {\n console.log(\"\");\n console.log(\"\");\n };\n\n copyOptions.onCopy = (event: CopyEvent): void => {\n const src: string = Path.relative(opts.cwd, event.target.src);\n\n const dest: string = Path.relative(opts.cwd, event.target.dest);\n\n let message: string = `${src} → ${dest}`;\n\n const flags: string[] = [];\n\n if (event.target.renamed) {\n flags.push(\"R\");\n }\n\n if (event.target.transformed) {\n flags.push(\"T\");\n }\n\n if (flags.length > 0) {\n message += ` [${flags.join(\",\")}]`;\n }\n\n log.success(message);\n };\n\n copyOptions.onEnd = (): void => {\n console.log(\"\");\n };\n }\n\n return [\n copy(copyOptions) as Plugin,\n ];\n};\n\nexport { copyPlugin };\n"],"mappings":";;;;;;;;;;;;;;;AAYA,MAAM,cAAc,SAAoC;CACpD,MAAM,QAA8B,KAAK;CAEzC,IAAI,MAAM,WAAW,YAAY,CAAC,MAAM,eACpC,OAAO,CAAC;CAGZ,MAAM,cAA2B;EAC7B,KAAK,KAAK;EACV,SAAS,CACL;GACI,KAAKA,UAAK,MAAM,KAAK,MAAM,WAAW,MAAM,GAAG;GAC/C,MAAMA,UAAK,MAAM,KAAK,MAAM,WAAW,MAAM,SAAS;EAC1D,CACJ;CACJ;CAEA,IAAI,KAAK,SAAS;EACd,YAAY,gBAAsB;GAC9B,QAAQ,IAAI,EAAE;GACd,QAAQ,IAAI,EAAE;EAClB;EAEA,YAAY,UAAU,UAA2B;GAK7C,IAAI,UAAkB,GAJFA,UAAK,SAAS,KAAK,KAAK,MAAM,OAAO,GAI9B,EAAE,KAFRA,UAAK,SAAS,KAAK,KAAK,MAAM,OAAO,IAErB;GAErC,MAAM,QAAkB,CAAC;GAEzB,IAAI,MAAM,OAAO,SACb,MAAM,KAAK,GAAG;GAGlB,IAAI,MAAM,OAAO,aACb,MAAM,KAAK,GAAG;GAGlB,IAAI,MAAM,SAAS,GACf,WAAW,KAAK,MAAM,KAAK,GAAG,EAAE;GAGpC,+BAAI,QAAQ,OAAO;EACvB;EAEA,YAAY,cAAoB;GAC5B,QAAQ,IAAI,EAAE;EAClB;CACJ;CAEA,OAAO,gCACE,WAAW,CACpB;AACJ"}
@@ -0,0 +1,44 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ import * as Path from "node:path";
10
+ import { log } from "@srvkit/common/configs/log";
11
+ import { copy } from "rolldown-plugin-copy";
12
+
13
+ const copyPlugin = (opts) => {
14
+ const build = opts.build;
15
+ if (build.target !== "server" || !build.copyPublicDir) return [];
16
+ const copyOptions = {
17
+ cwd: opts.cwd,
18
+ targets: [{
19
+ src: Path.posix.join(build.publicDir, "**", "*"),
20
+ dest: Path.posix.join(build.outputDir, build.publicDir)
21
+ }]
22
+ };
23
+ if (opts.verbose) {
24
+ copyOptions.onStart = () => {
25
+ console.log("");
26
+ console.log("");
27
+ };
28
+ copyOptions.onCopy = (event) => {
29
+ let message = `${Path.relative(opts.cwd, event.target.src)} → ${Path.relative(opts.cwd, event.target.dest)}`;
30
+ const flags = [];
31
+ if (event.target.renamed) flags.push("R");
32
+ if (event.target.transformed) flags.push("T");
33
+ if (flags.length > 0) message += ` [${flags.join(",")}]`;
34
+ log.success(message);
35
+ };
36
+ copyOptions.onEnd = () => {
37
+ console.log("");
38
+ };
39
+ }
40
+ return [copy(copyOptions)];
41
+ };
42
+
43
+ export { copyPlugin };
44
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/plugins/copy/index.ts"],"sourcesContent":["import type {\n ResolvedBuildOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { CopyEvent, Options as Copyoptions } from \"rolldown-plugin-copy\";\nimport type { Plugin } from \"vite\";\n\nimport * as Path from \"node:path\";\n\nimport { log } from \"@srvkit/common/configs/log\";\nimport { copy } from \"rolldown-plugin-copy\";\n\nconst copyPlugin = (opts: ResolvedOptions): Plugin[] => {\n const build: ResolvedBuildOptions = opts.build;\n\n if (build.target !== \"server\" || !build.copyPublicDir) {\n return [];\n }\n\n const copyOptions: Copyoptions = {\n cwd: opts.cwd,\n targets: [\n {\n src: Path.posix.join(build.publicDir, \"**\", \"*\"),\n dest: Path.posix.join(build.outputDir, build.publicDir),\n },\n ],\n };\n\n if (opts.verbose) {\n copyOptions.onStart = (): void => {\n console.log(\"\");\n console.log(\"\");\n };\n\n copyOptions.onCopy = (event: CopyEvent): void => {\n const src: string = Path.relative(opts.cwd, event.target.src);\n\n const dest: string = Path.relative(opts.cwd, event.target.dest);\n\n let message: string = `${src} → ${dest}`;\n\n const flags: string[] = [];\n\n if (event.target.renamed) {\n flags.push(\"R\");\n }\n\n if (event.target.transformed) {\n flags.push(\"T\");\n }\n\n if (flags.length > 0) {\n message += ` [${flags.join(\",\")}]`;\n }\n\n log.success(message);\n };\n\n copyOptions.onEnd = (): void => {\n console.log(\"\");\n };\n }\n\n return [\n copy(copyOptions) as Plugin,\n ];\n};\n\nexport { copyPlugin };\n"],"mappings":";;;;;;;;;;;;AAYA,MAAM,cAAc,SAAoC;CACpD,MAAM,QAA8B,KAAK;CAEzC,IAAI,MAAM,WAAW,YAAY,CAAC,MAAM,eACpC,OAAO,CAAC;CAGZ,MAAM,cAA2B;EAC7B,KAAK,KAAK;EACV,SAAS,CACL;GACI,KAAK,KAAK,MAAM,KAAK,MAAM,WAAW,MAAM,GAAG;GAC/C,MAAM,KAAK,MAAM,KAAK,MAAM,WAAW,MAAM,SAAS;EAC1D,CACJ;CACJ;CAEA,IAAI,KAAK,SAAS;EACd,YAAY,gBAAsB;GAC9B,QAAQ,IAAI,EAAE;GACd,QAAQ,IAAI,EAAE;EAClB;EAEA,YAAY,UAAU,UAA2B;GAK7C,IAAI,UAAkB,GAJF,KAAK,SAAS,KAAK,KAAK,MAAM,OAAO,GAI9B,EAAE,KAFR,KAAK,SAAS,KAAK,KAAK,MAAM,OAAO,IAErB;GAErC,MAAM,QAAkB,CAAC;GAEzB,IAAI,MAAM,OAAO,SACb,MAAM,KAAK,GAAG;GAGlB,IAAI,MAAM,OAAO,aACb,MAAM,KAAK,GAAG;GAGlB,IAAI,MAAM,SAAS,GACf,WAAW,KAAK,MAAM,KAAK,GAAG,EAAE;GAGpC,IAAI,QAAQ,OAAO;EACvB;EAEA,YAAY,cAAoB;GAC5B,QAAQ,IAAI,EAAE;EAClB;CACJ;CAEA,OAAO,CACH,KAAK,WAAW,CACpB;AACJ"}
@@ -0,0 +1,7 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ import { Plugin } from "vite";
4
+ import { ResolvedOptions } from "@srvkit/common/@types/options/resolved";
5
+ declare const devPlugin: (opts: ResolvedOptions) => Plugin;
6
+ export { devPlugin };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,110 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
10
+ const require_ssr = require('../../functions/ssr.js');
11
+ const require_package = require('../../package.js');
12
+ let vite = require("vite");
13
+ let _srvkit_common_functions_http_request_header = require("@srvkit/common/functions/http/request/header");
14
+ let _srvkit_common_functions_http_response_write = require("@srvkit/common/functions/http/response/write");
15
+ let _srvkit_common_functions_server_live = require("@srvkit/common/functions/server/live");
16
+
17
+ const createMiddleware = ({ vite: vite$1, server }) => {
18
+ return async (req, res) => {
19
+ const protocol = `http${vite$1.config.server.https?.cert !== void 0 && vite$1.config.server.https?.key !== void 0 ? "s" : ""}`;
20
+ const serverHost = vite$1.config.server.host;
21
+ const host = typeof serverHost === "boolean" ? "0.0.0.0" : typeof serverHost === "string" ? serverHost : "localhost";
22
+ const port = vite$1.config.server.port;
23
+ const path = req.url ?? "";
24
+ const url = new URL(`${protocol}://${host}:${port}${path}`);
25
+ const body = req.method !== "GET" && req.method !== "HEAD" ? req : void 0;
26
+ const request = new Request(url, {
27
+ method: req.method,
28
+ headers: (0, _srvkit_common_functions_http_request_header.toHeaders)(req.headers),
29
+ body,
30
+ duplex: "half"
31
+ });
32
+ await (0, _srvkit_common_functions_http_response_write.writeHttpResponse)({
33
+ response: await server.fetch(request),
34
+ httpResponse: res
35
+ });
36
+ };
37
+ };
38
+ const devPlugin = (opts) => {
39
+ const dev = opts.dev;
40
+ const https = opts.dev.https ?? {};
41
+ return {
42
+ name: `${require_package.name}/dev`,
43
+ apply: "serve",
44
+ config(config) {
45
+ return (0, vite.mergeConfig)(config, {
46
+ resolve: { conditions: [opts.runtime] },
47
+ ssr: {
48
+ target: require_ssr.getSsrTarget(opts.runtime),
49
+ resolve: { conditions: [opts.runtime] }
50
+ },
51
+ build: {
52
+ ssr: true,
53
+ rollupOptions: { input: opts.entry }
54
+ },
55
+ server: {
56
+ host: dev.host,
57
+ port: dev.port,
58
+ ...https.cert !== void 0 && https.key !== void 0 ? { https: {
59
+ cert: https.cert,
60
+ key: https.key,
61
+ passphrase: https.passphrase
62
+ } } : {}
63
+ }
64
+ });
65
+ },
66
+ configureServer: async (vite$2) => {
67
+ const serverOptions = (await vite$2.ssrLoadModule(opts.entry)).default;
68
+ const { server, update } = (0, _srvkit_common_functions_server_live.createLiveServer)({
69
+ gracefulShutdown: false,
70
+ ...serverOptions,
71
+ manual: true,
72
+ hostname: dev.host,
73
+ port: dev.port,
74
+ tls: {
75
+ cert: https.cert,
76
+ key: https.key,
77
+ passphrase: https.passphrase
78
+ }
79
+ });
80
+ const middleware = createMiddleware({
81
+ vite: vite$2,
82
+ server
83
+ });
84
+ vite$2.middlewares.use(middleware);
85
+ let reloadTimer = void 0;
86
+ const reload = async (attempt) => {
87
+ try {
88
+ const ssrEnv = vite$2.environments.ssr;
89
+ const mod = await ssrEnv.moduleGraph.ensureEntryFromUrl(opts.entry);
90
+ ssrEnv.moduleGraph.invalidateModule(mod);
91
+ const newServerOptions = (await vite$2.ssrLoadModule(opts.entry)).default;
92
+ update(newServerOptions);
93
+ } catch {
94
+ if (attempt < 3) setTimeout(() => {
95
+ reload(attempt + 1);
96
+ }, (attempt + 1) * 100);
97
+ }
98
+ };
99
+ vite$2.watcher.on("change", () => {
100
+ clearTimeout(reloadTimer);
101
+ reloadTimer = setTimeout(() => {
102
+ reload(0);
103
+ }, 100);
104
+ });
105
+ }
106
+ };
107
+ };
108
+
109
+ exports.devPlugin = devPlugin;
110
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["vite","name","getSsrTarget"],"sources":["../../../src/plugins/dev/index.ts"],"sourcesContent":["import type HTTP from \"node:http\";\n\nimport type {\n ResolvedDevOptions,\n ResolvedHttpsOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { Server, ServerOptions } from \"@srvkit/common/@types/server\";\nimport type {\n Connect,\n DevEnvironment,\n EnvironmentModuleNode,\n Plugin,\n UserConfig,\n ViteDevServer,\n} from \"vite\";\n\nimport { toHeaders } from \"@srvkit/common/functions/http/request/header\";\nimport { writeHttpResponse } from \"@srvkit/common/functions/http/response/write\";\nimport { createLiveServer } from \"@srvkit/common/functions/server/live\";\nimport { mergeConfig } from \"vite\";\n\nimport { getSsrTarget } from \"#/functions/ssr\";\nimport { name } from \"#/root/package.json\";\n\ntype CreateMiddlewareOptions = {\n vite: ViteDevServer;\n server: Server;\n};\n\nconst createMiddleware = ({ vite, server }: CreateMiddlewareOptions) => {\n return async (\n req: Connect.IncomingMessage,\n res: HTTP.ServerResponse,\n ): Promise<void> => {\n const isHttps: boolean =\n vite.config.server.https?.cert !== void 0 &&\n vite.config.server.https?.key !== void 0;\n\n const protocol: string = `http${isHttps ? \"s\" : \"\"}`;\n\n const serverHost: string | boolean | undefined =\n vite.config.server.host;\n\n const host: string =\n typeof serverHost === \"boolean\"\n ? \"0.0.0.0\"\n : typeof serverHost === \"string\"\n ? serverHost\n : \"localhost\";\n\n const port: number = vite.config.server.port;\n\n const path: string = req.url ?? \"\";\n\n const url: URL = new URL(`${protocol}://${host}:${port}${path}`);\n\n const body: Connect.IncomingMessage | undefined =\n req.method !== \"GET\" && req.method !== \"HEAD\" ? req : void 0;\n\n const request: Request = new Request(url, {\n method: req.method,\n headers: toHeaders(req.headers),\n // @ts-expect-error\n body,\n duplex: \"half\",\n });\n\n const response: Response = await server.fetch(request);\n\n await writeHttpResponse({\n response,\n httpResponse: res,\n });\n };\n};\n\ntype Middleware = ReturnType<typeof createMiddleware>;\n\nconst devPlugin = (opts: ResolvedOptions): Plugin => {\n const dev: ResolvedDevOptions = opts.dev;\n const https: ResolvedHttpsOptions = opts.dev.https ?? {};\n\n return {\n name: `${name}/dev`,\n apply: \"serve\",\n config(config: UserConfig): UserConfig {\n const devConfig: UserConfig = {\n resolve: {\n conditions: [\n opts.runtime,\n ],\n },\n ssr: {\n target: getSsrTarget(opts.runtime),\n resolve: {\n conditions: [\n opts.runtime,\n ],\n },\n },\n build: {\n ssr: true,\n rollupOptions: {\n input: opts.entry,\n },\n },\n server: {\n host: dev.host,\n port: dev.port,\n ...(https.cert !== void 0 && https.key !== void 0\n ? {\n https: {\n cert: https.cert,\n key: https.key,\n passphrase: https.passphrase,\n },\n }\n : {}),\n },\n };\n\n return mergeConfig(config, devConfig);\n },\n configureServer: async (vite: ViteDevServer): Promise<void> => {\n const serverOptions: ServerOptions = (\n await vite.ssrLoadModule(opts.entry)\n ).default;\n\n const { server, update } = createLiveServer({\n // base\n gracefulShutdown: false,\n // user\n ...serverOptions,\n // override\n manual: true,\n hostname: dev.host,\n port: dev.port,\n tls: {\n cert: https.cert,\n key: https.key,\n passphrase: https.passphrase,\n },\n });\n\n const middleware: Middleware = createMiddleware({\n vite,\n server,\n });\n\n vite.middlewares.use(middleware);\n\n // Live update\n\n let reloadTimer: ReturnType<typeof setTimeout> | undefined = void 0;\n\n const reload = async (attempt: number): Promise<void> => {\n try {\n const ssrEnv: DevEnvironment = vite.environments.ssr;\n\n const mod: EnvironmentModuleNode =\n await ssrEnv.moduleGraph.ensureEntryFromUrl(opts.entry);\n\n ssrEnv.moduleGraph.invalidateModule(mod);\n\n const newServerOptions: ServerOptions = (\n await vite.ssrLoadModule(opts.entry)\n ).default;\n\n update(newServerOptions);\n } catch {\n if (attempt < 3) {\n setTimeout(\n (): void => {\n reload(attempt + 1);\n },\n (attempt + 1) * 100,\n );\n }\n }\n };\n\n vite.watcher.on(\"change\", (): void => {\n clearTimeout(reloadTimer);\n\n reloadTimer = setTimeout((): void => {\n reload(0);\n }, 100);\n });\n },\n };\n};\n\nexport { devPlugin };\n"],"mappings":";;;;;;;;;;;;;;;;AA8BA,MAAM,oBAAoB,EAAE,cAAM,aAAsC;CACpE,OAAO,OACH,KACA,QACgB;EAKhB,MAAM,WAAmB,OAHrBA,OAAK,OAAO,OAAO,OAAO,SAAS,KAAK,KACxCA,OAAK,OAAO,OAAO,OAAO,QAAQ,KAAK,IAED,MAAM;EAEhD,MAAM,aACFA,OAAK,OAAO,OAAO;EAEvB,MAAM,OACF,OAAO,eAAe,YAChB,YACA,OAAO,eAAe,WACpB,aACA;EAEZ,MAAM,OAAeA,OAAK,OAAO,OAAO;EAExC,MAAM,OAAe,IAAI,OAAO;EAEhC,MAAM,MAAW,IAAI,IAAI,GAAG,SAAS,KAAK,KAAK,GAAG,OAAO,MAAM;EAE/D,MAAM,OACF,IAAI,WAAW,SAAS,IAAI,WAAW,SAAS,MAAM,KAAK;EAE/D,MAAM,UAAmB,IAAI,QAAQ,KAAK;GACtC,QAAQ,IAAI;GACZ,qEAAmB,IAAI,OAAO;GAE9B;GACA,QAAQ;EACZ,CAAC;EAID,0EAAwB;GACpB,gBAH6B,OAAO,MAAM,OAAO;GAIjD,cAAc;EAClB,CAAC;CACL;AACJ;AAIA,MAAM,aAAa,SAAkC;CACjD,MAAM,MAA0B,KAAK;CACrC,MAAM,QAA8B,KAAK,IAAI,SAAS,CAAC;CAEvD,OAAO;EACH,MAAM,GAAGC,qBAAK;EACd,OAAO;EACP,OAAO,QAAgC;GAoCnC,6BAAmB,QAAQ;IAlCvB,SAAS,EACL,YAAY,CACR,KAAK,OACT,EACJ;IACA,KAAK;KACD,QAAQC,yBAAa,KAAK,OAAO;KACjC,SAAS,EACL,YAAY,CACR,KAAK,OACT,EACJ;IACJ;IACA,OAAO;KACH,KAAK;KACL,eAAe,EACX,OAAO,KAAK,MAChB;IACJ;IACA,QAAQ;KACJ,MAAM,IAAI;KACV,MAAM,IAAI;KACV,GAAI,MAAM,SAAS,KAAK,KAAK,MAAM,QAAQ,KAAK,IAC1C,EACI,OAAO;MACH,MAAM,MAAM;MACZ,KAAK,MAAM;MACX,YAAY,MAAM;KACtB,EACJ,IACA,CAAC;IACX;GAG+B,CAAC;EACxC;EACA,iBAAiB,OAAO,WAAuC;GAC3D,MAAM,iBACF,MAAMF,OAAK,cAAc,KAAK,KAAK,EAAC,CACtC;GAEF,MAAM,EAAE,QAAQ,sEAA4B;IAExC,kBAAkB;IAElB,GAAG;IAEH,QAAQ;IACR,UAAU,IAAI;IACd,MAAM,IAAI;IACV,KAAK;KACD,MAAM,MAAM;KACZ,KAAK,MAAM;KACX,YAAY,MAAM;IACtB;GACJ,CAAC;GAED,MAAM,aAAyB,iBAAiB;IAC5C;IACA;GACJ,CAAC;GAED,OAAK,YAAY,IAAI,UAAU;GAI/B,IAAI,cAAyD,KAAK;GAElE,MAAM,SAAS,OAAO,YAAmC;IACrD,IAAI;KACA,MAAM,SAAyBA,OAAK,aAAa;KAEjD,MAAM,MACF,MAAM,OAAO,YAAY,mBAAmB,KAAK,KAAK;KAE1D,OAAO,YAAY,iBAAiB,GAAG;KAEvC,MAAM,oBACF,MAAMA,OAAK,cAAc,KAAK,KAAK,EAAC,CACtC;KAEF,OAAO,gBAAgB;IAC3B,QAAQ;KACJ,IAAI,UAAU,GACV,iBACgB;MACR,OAAO,UAAU,CAAC;KACtB,IACC,UAAU,KAAK,GACpB;IAER;GACJ;GAEA,OAAK,QAAQ,GAAG,gBAAsB;IAClC,aAAa,WAAW;IAExB,cAAc,iBAAuB;KACjC,OAAO,CAAC;IACZ,GAAG,GAAG;GACV,CAAC;EACL;CACJ;AACJ"}
@@ -0,0 +1,109 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ import { getSsrTarget } from "../../functions/ssr.mjs";
10
+ import { name } from "../../package.mjs";
11
+ import { mergeConfig } from "vite";
12
+ import { toHeaders } from "@srvkit/common/functions/http/request/header";
13
+ import { writeHttpResponse } from "@srvkit/common/functions/http/response/write";
14
+ import { createLiveServer } from "@srvkit/common/functions/server/live";
15
+
16
+ const createMiddleware = ({ vite, server }) => {
17
+ return async (req, res) => {
18
+ const protocol = `http${vite.config.server.https?.cert !== void 0 && vite.config.server.https?.key !== void 0 ? "s" : ""}`;
19
+ const serverHost = vite.config.server.host;
20
+ const host = typeof serverHost === "boolean" ? "0.0.0.0" : typeof serverHost === "string" ? serverHost : "localhost";
21
+ const port = vite.config.server.port;
22
+ const path = req.url ?? "";
23
+ const url = new URL(`${protocol}://${host}:${port}${path}`);
24
+ const body = req.method !== "GET" && req.method !== "HEAD" ? req : void 0;
25
+ const request = new Request(url, {
26
+ method: req.method,
27
+ headers: toHeaders(req.headers),
28
+ body,
29
+ duplex: "half"
30
+ });
31
+ await writeHttpResponse({
32
+ response: await server.fetch(request),
33
+ httpResponse: res
34
+ });
35
+ };
36
+ };
37
+ const devPlugin = (opts) => {
38
+ const dev = opts.dev;
39
+ const https = opts.dev.https ?? {};
40
+ return {
41
+ name: `${name}/dev`,
42
+ apply: "serve",
43
+ config(config) {
44
+ return mergeConfig(config, {
45
+ resolve: { conditions: [opts.runtime] },
46
+ ssr: {
47
+ target: getSsrTarget(opts.runtime),
48
+ resolve: { conditions: [opts.runtime] }
49
+ },
50
+ build: {
51
+ ssr: true,
52
+ rollupOptions: { input: opts.entry }
53
+ },
54
+ server: {
55
+ host: dev.host,
56
+ port: dev.port,
57
+ ...https.cert !== void 0 && https.key !== void 0 ? { https: {
58
+ cert: https.cert,
59
+ key: https.key,
60
+ passphrase: https.passphrase
61
+ } } : {}
62
+ }
63
+ });
64
+ },
65
+ configureServer: async (vite) => {
66
+ const serverOptions = (await vite.ssrLoadModule(opts.entry)).default;
67
+ const { server, update } = createLiveServer({
68
+ gracefulShutdown: false,
69
+ ...serverOptions,
70
+ manual: true,
71
+ hostname: dev.host,
72
+ port: dev.port,
73
+ tls: {
74
+ cert: https.cert,
75
+ key: https.key,
76
+ passphrase: https.passphrase
77
+ }
78
+ });
79
+ const middleware = createMiddleware({
80
+ vite,
81
+ server
82
+ });
83
+ vite.middlewares.use(middleware);
84
+ let reloadTimer = void 0;
85
+ const reload = async (attempt) => {
86
+ try {
87
+ const ssrEnv = vite.environments.ssr;
88
+ const mod = await ssrEnv.moduleGraph.ensureEntryFromUrl(opts.entry);
89
+ ssrEnv.moduleGraph.invalidateModule(mod);
90
+ const newServerOptions = (await vite.ssrLoadModule(opts.entry)).default;
91
+ update(newServerOptions);
92
+ } catch {
93
+ if (attempt < 3) setTimeout(() => {
94
+ reload(attempt + 1);
95
+ }, (attempt + 1) * 100);
96
+ }
97
+ };
98
+ vite.watcher.on("change", () => {
99
+ clearTimeout(reloadTimer);
100
+ reloadTimer = setTimeout(() => {
101
+ reload(0);
102
+ }, 100);
103
+ });
104
+ }
105
+ };
106
+ };
107
+
108
+ export { devPlugin };
109
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/plugins/dev/index.ts"],"sourcesContent":["import type HTTP from \"node:http\";\n\nimport type {\n ResolvedDevOptions,\n ResolvedHttpsOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { Server, ServerOptions } from \"@srvkit/common/@types/server\";\nimport type {\n Connect,\n DevEnvironment,\n EnvironmentModuleNode,\n Plugin,\n UserConfig,\n ViteDevServer,\n} from \"vite\";\n\nimport { toHeaders } from \"@srvkit/common/functions/http/request/header\";\nimport { writeHttpResponse } from \"@srvkit/common/functions/http/response/write\";\nimport { createLiveServer } from \"@srvkit/common/functions/server/live\";\nimport { mergeConfig } from \"vite\";\n\nimport { getSsrTarget } from \"#/functions/ssr\";\nimport { name } from \"#/root/package.json\";\n\ntype CreateMiddlewareOptions = {\n vite: ViteDevServer;\n server: Server;\n};\n\nconst createMiddleware = ({ vite, server }: CreateMiddlewareOptions) => {\n return async (\n req: Connect.IncomingMessage,\n res: HTTP.ServerResponse,\n ): Promise<void> => {\n const isHttps: boolean =\n vite.config.server.https?.cert !== void 0 &&\n vite.config.server.https?.key !== void 0;\n\n const protocol: string = `http${isHttps ? \"s\" : \"\"}`;\n\n const serverHost: string | boolean | undefined =\n vite.config.server.host;\n\n const host: string =\n typeof serverHost === \"boolean\"\n ? \"0.0.0.0\"\n : typeof serverHost === \"string\"\n ? serverHost\n : \"localhost\";\n\n const port: number = vite.config.server.port;\n\n const path: string = req.url ?? \"\";\n\n const url: URL = new URL(`${protocol}://${host}:${port}${path}`);\n\n const body: Connect.IncomingMessage | undefined =\n req.method !== \"GET\" && req.method !== \"HEAD\" ? req : void 0;\n\n const request: Request = new Request(url, {\n method: req.method,\n headers: toHeaders(req.headers),\n // @ts-expect-error\n body,\n duplex: \"half\",\n });\n\n const response: Response = await server.fetch(request);\n\n await writeHttpResponse({\n response,\n httpResponse: res,\n });\n };\n};\n\ntype Middleware = ReturnType<typeof createMiddleware>;\n\nconst devPlugin = (opts: ResolvedOptions): Plugin => {\n const dev: ResolvedDevOptions = opts.dev;\n const https: ResolvedHttpsOptions = opts.dev.https ?? {};\n\n return {\n name: `${name}/dev`,\n apply: \"serve\",\n config(config: UserConfig): UserConfig {\n const devConfig: UserConfig = {\n resolve: {\n conditions: [\n opts.runtime,\n ],\n },\n ssr: {\n target: getSsrTarget(opts.runtime),\n resolve: {\n conditions: [\n opts.runtime,\n ],\n },\n },\n build: {\n ssr: true,\n rollupOptions: {\n input: opts.entry,\n },\n },\n server: {\n host: dev.host,\n port: dev.port,\n ...(https.cert !== void 0 && https.key !== void 0\n ? {\n https: {\n cert: https.cert,\n key: https.key,\n passphrase: https.passphrase,\n },\n }\n : {}),\n },\n };\n\n return mergeConfig(config, devConfig);\n },\n configureServer: async (vite: ViteDevServer): Promise<void> => {\n const serverOptions: ServerOptions = (\n await vite.ssrLoadModule(opts.entry)\n ).default;\n\n const { server, update } = createLiveServer({\n // base\n gracefulShutdown: false,\n // user\n ...serverOptions,\n // override\n manual: true,\n hostname: dev.host,\n port: dev.port,\n tls: {\n cert: https.cert,\n key: https.key,\n passphrase: https.passphrase,\n },\n });\n\n const middleware: Middleware = createMiddleware({\n vite,\n server,\n });\n\n vite.middlewares.use(middleware);\n\n // Live update\n\n let reloadTimer: ReturnType<typeof setTimeout> | undefined = void 0;\n\n const reload = async (attempt: number): Promise<void> => {\n try {\n const ssrEnv: DevEnvironment = vite.environments.ssr;\n\n const mod: EnvironmentModuleNode =\n await ssrEnv.moduleGraph.ensureEntryFromUrl(opts.entry);\n\n ssrEnv.moduleGraph.invalidateModule(mod);\n\n const newServerOptions: ServerOptions = (\n await vite.ssrLoadModule(opts.entry)\n ).default;\n\n update(newServerOptions);\n } catch {\n if (attempt < 3) {\n setTimeout(\n (): void => {\n reload(attempt + 1);\n },\n (attempt + 1) * 100,\n );\n }\n }\n };\n\n vite.watcher.on(\"change\", (): void => {\n clearTimeout(reloadTimer);\n\n reloadTimer = setTimeout((): void => {\n reload(0);\n }, 100);\n });\n },\n };\n};\n\nexport { devPlugin };\n"],"mappings":";;;;;;;;;;;;;;;AA8BA,MAAM,oBAAoB,EAAE,MAAM,aAAsC;CACpE,OAAO,OACH,KACA,QACgB;EAKhB,MAAM,WAAmB,OAHrB,KAAK,OAAO,OAAO,OAAO,SAAS,KAAK,KACxC,KAAK,OAAO,OAAO,OAAO,QAAQ,KAAK,IAED,MAAM;EAEhD,MAAM,aACF,KAAK,OAAO,OAAO;EAEvB,MAAM,OACF,OAAO,eAAe,YAChB,YACA,OAAO,eAAe,WACpB,aACA;EAEZ,MAAM,OAAe,KAAK,OAAO,OAAO;EAExC,MAAM,OAAe,IAAI,OAAO;EAEhC,MAAM,MAAW,IAAI,IAAI,GAAG,SAAS,KAAK,KAAK,GAAG,OAAO,MAAM;EAE/D,MAAM,OACF,IAAI,WAAW,SAAS,IAAI,WAAW,SAAS,MAAM,KAAK;EAE/D,MAAM,UAAmB,IAAI,QAAQ,KAAK;GACtC,QAAQ,IAAI;GACZ,SAAS,UAAU,IAAI,OAAO;GAE9B;GACA,QAAQ;EACZ,CAAC;EAID,MAAM,kBAAkB;GACpB,gBAH6B,OAAO,MAAM,OAAO;GAIjD,cAAc;EAClB,CAAC;CACL;AACJ;AAIA,MAAM,aAAa,SAAkC;CACjD,MAAM,MAA0B,KAAK;CACrC,MAAM,QAA8B,KAAK,IAAI,SAAS,CAAC;CAEvD,OAAO;EACH,MAAM,GAAG,KAAK;EACd,OAAO;EACP,OAAO,QAAgC;GAoCnC,OAAO,YAAY,QAAQ;IAlCvB,SAAS,EACL,YAAY,CACR,KAAK,OACT,EACJ;IACA,KAAK;KACD,QAAQ,aAAa,KAAK,OAAO;KACjC,SAAS,EACL,YAAY,CACR,KAAK,OACT,EACJ;IACJ;IACA,OAAO;KACH,KAAK;KACL,eAAe,EACX,OAAO,KAAK,MAChB;IACJ;IACA,QAAQ;KACJ,MAAM,IAAI;KACV,MAAM,IAAI;KACV,GAAI,MAAM,SAAS,KAAK,KAAK,MAAM,QAAQ,KAAK,IAC1C,EACI,OAAO;MACH,MAAM,MAAM;MACZ,KAAK,MAAM;MACX,YAAY,MAAM;KACtB,EACJ,IACA,CAAC;IACX;GAG+B,CAAC;EACxC;EACA,iBAAiB,OAAO,SAAuC;GAC3D,MAAM,iBACF,MAAM,KAAK,cAAc,KAAK,KAAK,EAAC,CACtC;GAEF,MAAM,EAAE,QAAQ,WAAW,iBAAiB;IAExC,kBAAkB;IAElB,GAAG;IAEH,QAAQ;IACR,UAAU,IAAI;IACd,MAAM,IAAI;IACV,KAAK;KACD,MAAM,MAAM;KACZ,KAAK,MAAM;KACX,YAAY,MAAM;IACtB;GACJ,CAAC;GAED,MAAM,aAAyB,iBAAiB;IAC5C;IACA;GACJ,CAAC;GAED,KAAK,YAAY,IAAI,UAAU;GAI/B,IAAI,cAAyD,KAAK;GAElE,MAAM,SAAS,OAAO,YAAmC;IACrD,IAAI;KACA,MAAM,SAAyB,KAAK,aAAa;KAEjD,MAAM,MACF,MAAM,OAAO,YAAY,mBAAmB,KAAK,KAAK;KAE1D,OAAO,YAAY,iBAAiB,GAAG;KAEvC,MAAM,oBACF,MAAM,KAAK,cAAc,KAAK,KAAK,EAAC,CACtC;KAEF,OAAO,gBAAgB;IAC3B,QAAQ;KACJ,IAAI,UAAU,GACV,iBACgB;MACR,OAAO,UAAU,CAAC;KACtB,IACC,UAAU,KAAK,GACpB;IAER;GACJ;GAEA,KAAK,QAAQ,GAAG,gBAAsB;IAClC,aAAa,WAAW;IAExB,cAAc,iBAAuB;KACjC,OAAO,CAAC;IACZ,GAAG,GAAG;GACV,CAAC;EACL;CACJ;AACJ"}
@@ -0,0 +1,7 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ import { Options } from "@srvkit/common/@types/options/default";
4
+ import { Plugin } from "vite";
5
+ declare const plugin: (options?: Options) => Plugin[];
6
+ export { plugin };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,24 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ const require_plugins_build_index = require('./build/index.js');
10
+ const require_plugins_copy_index = require('./copy/index.js');
11
+ const require_plugins_dev_index = require('./dev/index.js');
12
+ let _srvkit_common_functions_options_resolve = require("@srvkit/common/functions/options/resolve");
13
+
14
+ const plugin = (options) => {
15
+ const opts = (0, _srvkit_common_functions_options_resolve.resolveOptions)(options);
16
+ return [
17
+ require_plugins_dev_index.devPlugin({ ...opts }),
18
+ require_plugins_build_index.buildPlugin({ ...opts }),
19
+ ...require_plugins_copy_index.copyPlugin({ ...opts })
20
+ ];
21
+ };
22
+
23
+ exports.plugin = plugin;
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["devPlugin","buildPlugin","copyPlugin"],"sources":["../../src/plugins/index.ts"],"sourcesContent":["import type { Options } from \"@srvkit/common/@types/options/default\";\nimport type { ResolvedOptions } from \"@srvkit/common/@types/options/resolved\";\nimport type { Plugin } from \"vite\";\n\nimport { resolveOptions } from \"@srvkit/common/functions/options/resolve\";\n\nimport { buildPlugin } from \"#/plugins/build\";\nimport { copyPlugin } from \"#/plugins/copy\";\nimport { devPlugin } from \"#/plugins/dev\";\n\nconst plugin = (options?: Options): Plugin[] => {\n const opts: ResolvedOptions = resolveOptions(options);\n\n return [\n devPlugin({\n ...opts,\n }),\n buildPlugin({\n ...opts,\n }),\n ...copyPlugin({\n ...opts,\n }),\n ];\n};\n\nexport { plugin };\n"],"mappings":";;;;;;;;;;;;;AAUA,MAAM,UAAU,YAAgC;CAC5C,MAAM,oEAAuC,OAAO;CAEpD,OAAO;EACHA,oCAAU,EACN,GAAG,KACP,CAAC;EACDC,wCAAY,EACR,GAAG,KACP,CAAC;EACD,GAAGC,sCAAW,EACV,GAAG,KACP,CAAC;CACL;AACJ"}
@@ -0,0 +1,24 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ import { buildPlugin } from "./build/index.mjs";
10
+ import { copyPlugin } from "./copy/index.mjs";
11
+ import { devPlugin } from "./dev/index.mjs";
12
+ import { resolveOptions } from "@srvkit/common/functions/options/resolve";
13
+
14
+ const plugin = (options) => {
15
+ const opts = resolveOptions(options);
16
+ return [
17
+ devPlugin({ ...opts }),
18
+ buildPlugin({ ...opts }),
19
+ ...copyPlugin({ ...opts })
20
+ ];
21
+ };
22
+
23
+ export { plugin };
24
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/plugins/index.ts"],"sourcesContent":["import type { Options } from \"@srvkit/common/@types/options/default\";\nimport type { ResolvedOptions } from \"@srvkit/common/@types/options/resolved\";\nimport type { Plugin } from \"vite\";\n\nimport { resolveOptions } from \"@srvkit/common/functions/options/resolve\";\n\nimport { buildPlugin } from \"#/plugins/build\";\nimport { copyPlugin } from \"#/plugins/copy\";\nimport { devPlugin } from \"#/plugins/dev\";\n\nconst plugin = (options?: Options): Plugin[] => {\n const opts: ResolvedOptions = resolveOptions(options);\n\n return [\n devPlugin({\n ...opts,\n }),\n buildPlugin({\n ...opts,\n }),\n ...copyPlugin({\n ...opts,\n }),\n ];\n};\n\nexport { plugin };\n"],"mappings":";;;;;;;;;;;;;AAUA,MAAM,UAAU,YAAgC;CAC5C,MAAM,OAAwB,eAAe,OAAO;CAEpD,OAAO;EACH,UAAU,EACN,GAAG,KACP,CAAC;EACD,YAAY,EACR,GAAG,KACP,CAAC;EACD,GAAG,WAAW,EACV,GAAG,KACP,CAAC;CACL;AACJ"}
@@ -0,0 +1,4 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ import { serve } from "@srvkit/common/runtime";
4
+ export { serve };
@@ -0,0 +1,17 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
10
+ let _srvkit_common_runtime = require("@srvkit/common/runtime");
11
+
12
+ Object.defineProperty(exports, 'serve', {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _srvkit_common_runtime.serve;
16
+ }
17
+ });
@@ -0,0 +1,11 @@
1
+
2
+
3
+ import __tsdown_shims_path from 'node:path'
4
+ import __tsdown_shims_url from 'node:url'
5
+
6
+ const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
+ const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
+
9
+ import { serve } from "@srvkit/common/runtime";
10
+
11
+ export { serve };
package/package.json ADDED
@@ -0,0 +1,108 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/vitejs/vite-plugin-registry/refs/heads/main/data/schema/extended-package-json.schema.json",
3
+ "name": "@srvkit/vite",
4
+ "version": "0.1.0",
5
+ "description": "A toolkit for building JavaScript server applications",
6
+ "keywords": [
7
+ "srvkit",
8
+ "vite-plugin",
9
+ "vite",
10
+ "plugin",
11
+ "srvx",
12
+ "ts",
13
+ "typescript",
14
+ "js",
15
+ "javascript"
16
+ ],
17
+ "homepage": "https://github.com/srvkit/srvkit",
18
+ "bugs": "https://github.com/srvkit/srvkit/issues",
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/srvkit/srvkit.git",
22
+ "directory": "packages/vite"
23
+ },
24
+ "license": "MIT",
25
+ "author": {
26
+ "name": "Alpheus",
27
+ "email": "contact@alphe.us"
28
+ },
29
+ "exports": {
30
+ ".": {
31
+ "types": "./dist/index.d.ts",
32
+ "import": "./dist/index.mjs",
33
+ "require": "./dist/index.js"
34
+ },
35
+ "./node": {
36
+ "types": "./dist/node.d.ts",
37
+ "import": "./dist/node.mjs",
38
+ "require": "./dist/node.js"
39
+ },
40
+ "./plugin": {
41
+ "types": "./dist/plugin.d.ts",
42
+ "import": "./dist/plugin.mjs",
43
+ "require": "./dist/plugin.js"
44
+ },
45
+ "./runtime": {
46
+ "types": "./dist/runtime.d.ts",
47
+ "import": "./dist/runtime.mjs",
48
+ "require": "./dist/runtime.js"
49
+ },
50
+ "./plugins/dev": {
51
+ "types": "./dist/plugins/dev/index.d.ts",
52
+ "import": "./dist/plugins/dev/index.mjs",
53
+ "require": "./dist/plugins/dev/index.js"
54
+ },
55
+ "./plugins/build": {
56
+ "types": "./dist/plugins/build/index.d.ts",
57
+ "import": "./dist/plugins/build/index.mjs",
58
+ "require": "./dist/plugins/build/index.js"
59
+ },
60
+ "./plugins/copy": {
61
+ "types": "./dist/plugins/copy/index.d.ts",
62
+ "import": "./dist/plugins/copy/index.mjs",
63
+ "require": "./dist/plugins/copy/index.js"
64
+ },
65
+ "./package.json": "./package.json"
66
+ },
67
+ "main": "./dist/index.js",
68
+ "module": "./dist/index.mjs",
69
+ "types": "./dist/index.d.ts",
70
+ "files": [
71
+ "dist"
72
+ ],
73
+ "dependencies": {
74
+ "rolldown-plugin-copy": "~0.2.0",
75
+ "@srvkit/common": "~0.1.0"
76
+ },
77
+ "devDependencies": {
78
+ "rolldown": "1.0.0",
79
+ "vite": "8.0.12"
80
+ },
81
+ "peerDependencies": {
82
+ "rolldown": "^1.0.0",
83
+ "vite": "^8.0.12"
84
+ },
85
+ "peerDependenciesMeta": {
86
+ "rolldown": {
87
+ "optional": true
88
+ },
89
+ "vite": {
90
+ "optional": true
91
+ }
92
+ },
93
+ "compatiblePackages": {
94
+ "schemaVersion": 1,
95
+ "rollup": {
96
+ "type": "incompatible",
97
+ "reason": "Uses Vite-specific APIs"
98
+ },
99
+ "rolldown": {
100
+ "type": "incompatible",
101
+ "reason": "Uses Vite-specific APIs"
102
+ },
103
+ "vite": {
104
+ "type": "compatible",
105
+ "versions": "^8.0.12"
106
+ }
107
+ }
108
+ }