@highstate/mullvad 0.18.0 → 0.20.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.
- package/dist/highstate.manifest.json +1 -1
- package/dist/peer/index.js +17 -10
- package/dist/peer/index.js.map +1 -1
- package/package.json +6 -6
package/dist/peer/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { parseEndpoint, l3EndpointToL4, parseAddress, l4EndpointToString, parseSubnet } from '@highstate/common';
|
|
2
|
-
import { mullvad } from '@highstate/library';
|
|
3
|
-
import { dynamic, forUnit, toPromise, output } from '@highstate/pulumi';
|
|
2
|
+
import { mullvad, wireguard } from '@highstate/library';
|
|
3
|
+
import { dynamic, forUnit, toPromise, output, makeEntityOutput } from '@highstate/pulumi';
|
|
4
4
|
import { map } from 'remeda';
|
|
5
5
|
|
|
6
6
|
// src/peer/index.ts
|
|
@@ -48,14 +48,21 @@ if (network?.ipv6) {
|
|
|
48
48
|
allowedIps.push("::0/0");
|
|
49
49
|
}
|
|
50
50
|
var peer_default = outputs({
|
|
51
|
-
peer: {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
51
|
+
peer: makeEntityOutput({
|
|
52
|
+
entity: wireguard.peerEntity,
|
|
53
|
+
identity: server.pubkey,
|
|
54
|
+
meta: {
|
|
55
|
+
title: hostname
|
|
56
|
+
},
|
|
57
|
+
value: {
|
|
58
|
+
name,
|
|
59
|
+
publicKey: server.pubkey,
|
|
60
|
+
addresses: [],
|
|
61
|
+
endpoints,
|
|
62
|
+
allowedSubnets: allowedIps.map(parseSubnet),
|
|
63
|
+
dns
|
|
64
|
+
}
|
|
65
|
+
}),
|
|
59
66
|
endpoints,
|
|
60
67
|
$statusFields: {
|
|
61
68
|
publicKey: server.pubkey,
|
package/dist/peer/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/peer/server-list.ts","../../src/peer/index.ts"],"names":["name","args","server"],"mappings":";;;;;;AAyBA,IAAM,qBAAN,MAA6D;AAAA,EAC3D,MAAM,MAAA,GAAwC;AAC5C,IAAA,MAAM,OAAA,GAAU,MAAM,YAAA,EAAa;AAEnC,IAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,IAAA,EAAM,EAAE,SAAQ,EAAE;AAAA,EACxC;AAAA,EAEA,MAAM,MAAA,GAAwC;AAC5C,IAAA,OAAO,EAAE,IAAA,EAAM,EAAE,SAAS,MAAM,YAAA,IAAe,EAAE;AAAA,EACnD;AAAA,EAEA,MAAM,IAAA,GAAoC;AACxC,IAAA,OAAO,EAAE,KAAA,EAAO,EAAE,SAAS,MAAM,YAAA,IAAe,EAAE;AAAA,EACpD;AACF,CAAA;AASO,IAAM,UAAA,GAAN,cAAyB,OAAA,CAAQ,QAAA,CAAS;AAAA,EAG/C,WAAA,CAAYA,KAAAA,EAAcC,KAAAA,EAAsB,IAAA,EAA8B;AAC5E,IAAA,KAAA,CAAM,IAAI,kBAAA,EAAmB,EAAGD,KAAAA,EAAM,EAAE,SAAS,MAAA,EAAW,GAAGC,KAAAA,EAAK,EAAG,IAAI,CAAA;AAAA,EAC7E;AACF,CAAA;AAEA,eAAe,YAAA,GAAkC;AAC/C,EAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,yCAAyC,CAAA;AAEtE,EAAA,OAAQ,MAAM,SAAS,IAAA,EAAK;AAC9B;;;AChDA,IAAM,EAAE,MAAM,IAAA,EAAM,MAAA,EAAQ,SAAQ,GAAI,OAAA,CAAQ,QAAQ,IAAI,CAAA;AAE5D,IAAM,OAAA,GAAU,MAAM,SAAA,CAAU,MAAA,CAAO,OAAO,CAAA;AAE9C,IAAM,QAAA,GAAW,KAAK,QAAA,IAAY,IAAA;AAClC,IAAM,UAAA,GAAa,IAAI,UAAA,CAAW,SAAA,EAAW,EAAE,GAAA,EAAK,IAAA,CAAK,GAAA,EAAI,EAAG,CAAA;AAEhE,IAAM,MAAA,GAAS,UAAA,CAAW,OAAA,CAAQ,KAAA,CAAM,CAAA,OAAA,KAAW;AACjD,EAAA,MAAMC,UAAS,OAAA,CAAQ,IAAA,CAAK,CAAAA,OAAAA,KAAUA,OAAAA,CAAO,aAAa,QAAQ,CAAA;AAClE,EAAA,IAAI,CAACA,OAAAA,EAAQ;AACX,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,kBAAA,EAAqB,IAAA,CAAK,QAAQ,CAAA,CAAE,CAAA;AAAA,EACtD;AAEA,EAAA,IAAIA,OAAAA,CAAO,SAAS,WAAA,EAAa;AAC/B,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,kCAAA,EAAqC,IAAA,CAAK,QAAQ,CAAA,CAAE,CAAA;AAAA,EACtE;AAEA,EAAA,OAAOA,OAAAA;AACT,CAAC,CAAA;AAED,IAAM,SAAA,GAAY,MAAA,CAAO,CAAC,MAAA,CAAO,IAAA,EAAM,MAAA,CAAO,YAAA,EAAc,MAAA,CAAO,YAAY,CAAC,CAAA,CAC7E,KAAA,CAAM,GAAA,CAAI,CAAA,QAAA,KAAY,aAAA,CAAc,QAAQ,CAAC,CAAC,CAAA,CAC9C,KAAA,CAAM,GAAA,CAAI,CAAA,QAAA,KAAY,cAAA,CAAe,QAAA,EAAU,KAAA,EAAO,KAAK,CAAC,CAAC,CAAA;AAEhE,IAAM,GAAA,GAAM,KAAK,UAAA,GAAa,CAAC,aAAa,WAAW,CAAC,IAAI,EAAC;AAC7D,IAAM,UAAA,GAAa,CAAC,WAAA,EAAa,GAAG,GAAG,CAAA;AAEvC,IAAI,SAAS,IAAA,EAAM;AACjB,EAAA,UAAA,CAAW,KAAK,OAAO,CAAA;AACzB;AAEA,IAAO,eAAQ,OAAA,CAAQ;AAAA,EACrB,IAAA,EAAM;AAAA,
|
|
1
|
+
{"version":3,"sources":["../../src/peer/server-list.ts","../../src/peer/index.ts"],"names":["name","args","server"],"mappings":"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","file":"index.js","sourcesContent":["import { type CustomResourceOptions, dynamic, type Output } from \"@highstate/pulumi\"\n\ntype Server = {\n hostname: string\n country_code: string\n country_name: string\n city_code: string\n city_name: string\n fqdn: string\n active: boolean\n owned: boolean\n provider: string\n ipv4_addr_in: string\n ipv6_addr_in: string\n network_port_speed: number\n stboot: boolean\n pubkey: string\n multihop_port: number\n socks_name: string\n socks_port: number\n daita: boolean\n type: string\n status_messages: string[]\n}\n\nclass ServerListProvider implements dynamic.ResourceProvider {\n async create(): Promise<dynamic.CreateResult> {\n const servers = await fetchServers()\n\n return { id: \"all\", outs: { servers } }\n }\n\n async update(): Promise<dynamic.UpdateResult> {\n return { outs: { servers: await fetchServers() } }\n }\n\n async read(): Promise<dynamic.ReadResult> {\n return { props: { servers: await fetchServers() } }\n }\n}\n\nexport type ServerListArgs = {\n /**\n * The current time from `Date.now()` to trigger a refresh.\n */\n now: number\n}\n\nexport class ServerList extends dynamic.Resource {\n declare readonly servers: Output<Server[]>\n\n constructor(name: string, args: ServerListArgs, opts?: CustomResourceOptions) {\n super(new ServerListProvider(), name, { servers: undefined, ...args }, opts)\n }\n}\n\nasync function fetchServers(): Promise<Server[]> {\n const response = await fetch(\"https://api.mullvad.net/www/relays/all/\")\n\n return (await response.json()) as Server[]\n}\n","import {\n l3EndpointToL4,\n l4EndpointToString,\n parseAddress,\n parseEndpoint,\n parseSubnet,\n} from \"@highstate/common\"\nimport { mullvad, wireguard } from \"@highstate/library\"\nimport { forUnit, makeEntityOutput, output, toPromise } from \"@highstate/pulumi\"\nimport { map } from \"remeda\"\nimport { ServerList } from \"./server-list\"\n\nconst { name, args, inputs, outputs } = forUnit(mullvad.peer)\n\nconst network = await toPromise(inputs.network)\n\nconst hostname = args.hostname ?? name\nconst serverList = new ServerList(\"servers\", { now: Date.now() })\n\nconst server = serverList.servers.apply(servers => {\n const server = servers.find(server => server.hostname === hostname)\n if (!server) {\n throw new Error(`Server not found: ${args.hostname}`)\n }\n\n if (server.type !== \"wireguard\") {\n throw new Error(`Server is not a WireGuard server: ${args.hostname}`)\n }\n\n return server\n})\n\nconst endpoints = output([server.fqdn, server.ipv4_addr_in, server.ipv6_addr_in])\n .apply(map(endpoint => parseEndpoint(endpoint)))\n .apply(map(endpoint => l3EndpointToL4(endpoint, 51820, \"udp\")))\n\nconst dns = args.includeDns ? [parseAddress(\"10.64.0.1\")] : []\nconst allowedIps = [\"0.0.0.0/0\", ...dns]\n\nif (network?.ipv6) {\n allowedIps.push(\"::0/0\")\n}\n\nexport default outputs({\n peer: makeEntityOutput({\n entity: wireguard.peerEntity,\n identity: server.pubkey,\n meta: {\n title: hostname,\n },\n value: {\n name,\n publicKey: server.pubkey,\n addresses: [],\n endpoints,\n allowedSubnets: allowedIps.map(parseSubnet),\n dns,\n },\n }),\n\n endpoints,\n\n $statusFields: {\n publicKey: server.pubkey,\n endpoints: endpoints.apply(map(l4EndpointToString)),\n },\n})\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@highstate/mullvad",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -20,15 +20,15 @@
|
|
|
20
20
|
"@noble/curves": "^1.8.0",
|
|
21
21
|
"@pulumi/kubernetes": "^4.18.0",
|
|
22
22
|
"remeda": "^2.21.0",
|
|
23
|
-
"@highstate/common": "0.
|
|
24
|
-
"@highstate/
|
|
25
|
-
"@highstate/
|
|
26
|
-
"@highstate/
|
|
23
|
+
"@highstate/common": "0.20.0",
|
|
24
|
+
"@highstate/library": "0.20.0",
|
|
25
|
+
"@highstate/pulumi": "0.20.0",
|
|
26
|
+
"@highstate/k8s": "0.20.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@biomejs/biome": "2.2.0",
|
|
30
30
|
"@typescript/native-preview": "^7.0.0-dev.20250920.1",
|
|
31
|
-
"@highstate/cli": "0.
|
|
31
|
+
"@highstate/cli": "0.20.0"
|
|
32
32
|
},
|
|
33
33
|
"repository": {
|
|
34
34
|
"url": "https://github.com/highstate-io/highstate"
|