@vezham/config 26.1.0 → 26.3.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.
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"companion-proxy.d.ts","sourceRoot":"","sources":["../../../../src/lib/presets/app/companion-proxy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAkClC,eAAO,MAAM,iBAAiB,QAAO,MAiEpC,CAAA"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
//#region src/lib/presets/app/companion-proxy.ts
|
|
2
|
+
var PREFIX = "/__tamizhi/companion";
|
|
3
|
+
var INFO = "/__tamizhi/companion-info";
|
|
4
|
+
var TARGET = "http://127.0.0.1:7331";
|
|
5
|
+
var loopback = (address = "") => address === "::1" || /^127\.\d+\.\d+\.\d+$/.test(address.replace(/^::ffff:/, ""));
|
|
6
|
+
var originFor = (request, secure) => {
|
|
7
|
+
try {
|
|
8
|
+
const origin = new URL(`${secure ? "https" : "http"}://${request.headers.host}`);
|
|
9
|
+
const host = origin.hostname;
|
|
10
|
+
if (origin.username || origin.password || !(host === "localhost" || host === "[::1]" || loopback(host) || host.endsWith(".vezham.local"))) return void 0;
|
|
11
|
+
if (request.headers.origin && request.headers.origin !== origin.origin) return void 0;
|
|
12
|
+
return origin.origin;
|
|
13
|
+
} catch {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
var companionDevProxy = () => {
|
|
18
|
+
let secure = false;
|
|
19
|
+
return {
|
|
20
|
+
name: "vx-tamizhi-companion-dev-proxy",
|
|
21
|
+
apply: (_config, env) => env.command === "serve" && !env.isPreview,
|
|
22
|
+
config() {
|
|
23
|
+
return { server: { proxy: { ["^/__tamizhi/companion(?:/|$)"]: {
|
|
24
|
+
target: TARGET,
|
|
25
|
+
changeOrigin: true,
|
|
26
|
+
ws: false,
|
|
27
|
+
rewrite: (path) => path.replace(/^\/__tamizhi\/companion/, "/api/tamizhi"),
|
|
28
|
+
configure: (proxy) => {
|
|
29
|
+
proxy.on("proxyReq", (outgoing, incoming) => {
|
|
30
|
+
const origin = originFor(incoming, secure);
|
|
31
|
+
if (origin) outgoing.setHeader("Origin", origin);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
} } } };
|
|
35
|
+
},
|
|
36
|
+
configureServer(server) {
|
|
37
|
+
secure = Boolean(server.config.server.https);
|
|
38
|
+
server.middlewares.use((request, response, next) => {
|
|
39
|
+
const path = request.url?.split("?")[0] ?? "";
|
|
40
|
+
if (path !== INFO && path !== PREFIX && !path.startsWith("/__tamizhi/companion/")) return next();
|
|
41
|
+
if (!loopback(request.socket.remoteAddress) || !originFor(request, secure)) {
|
|
42
|
+
response.statusCode = 403;
|
|
43
|
+
response.end("The companion development relay accepts same-origin loopback requests only.");
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (path === INFO) {
|
|
47
|
+
if (request.method !== "GET") {
|
|
48
|
+
response.statusCode = 405;
|
|
49
|
+
response.end();
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
response.setHeader("Content-Type", "application/json");
|
|
53
|
+
response.setHeader("Cache-Control", "no-store");
|
|
54
|
+
response.setHeader("Cross-Origin-Resource-Policy", "same-origin");
|
|
55
|
+
response.end(JSON.stringify({
|
|
56
|
+
protocol: "tamizhi-dev-proxy/v1",
|
|
57
|
+
path: PREFIX,
|
|
58
|
+
target: "http://127.0.0.1:7331/api/tamizhi"
|
|
59
|
+
}));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
next();
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
//#endregion
|
|
68
|
+
export { companionDevProxy };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/presets/app/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,mBAAmB,EAGzB,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/presets/app/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,mBAAmB,EAGzB,MAAM,yBAAyB,CAAA;AAqIhC,eAAO,MAAM,YAAY,GAAI,YAAW,mBAAwB,oCAQ7D,CAAA;AAEH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE;QACV,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EACN,OAAO,GACP;QACE,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACL,MAAM,CAAC,EAAE,QAAQ,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,MAAM,CAAA;AAM7C,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAA;CACtB,CAAA;AAuED,eAAO,MAAM,iBAAiB,GAC5B,oBAA2B,EAC3B,0BAA8B,qBAA0B,oBA0BzD,CAAA"}
|
|
@@ -2,6 +2,7 @@ import { createViteConfig, getViteConfig } from "../../integrations/vite/index.j
|
|
|
2
2
|
import { readYamlConfig } from "../../yaml-config.js";
|
|
3
3
|
import { unique, walkFiles } from "../files.js";
|
|
4
4
|
import { expandFilesystemRoute, normalizeRoute, routePathFromFile, routeRootFromGlob } from "../route-files.js";
|
|
5
|
+
import { companionDevProxy } from "./companion-proxy.js";
|
|
5
6
|
import fs from "node:fs";
|
|
6
7
|
import path from "node:path";
|
|
7
8
|
import { mergeConfig } from "vite";
|
|
@@ -48,6 +49,7 @@ var getViteDefaults = (projectRoot = process.cwd()) => ({
|
|
|
48
49
|
envPrefix: ["V_"],
|
|
49
50
|
ssr: { noExternal: ["@vezham/start", "@vezham/env"] },
|
|
50
51
|
server: getServerConfig(),
|
|
52
|
+
plugins: [companionDevProxy()],
|
|
51
53
|
resolve: {
|
|
52
54
|
alias: getTsConfigPathAliases(projectRoot),
|
|
53
55
|
tsconfigPaths: true
|