@highstate/mullvad 0.8.0 → 0.9.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/peer/index.js
CHANGED
@@ -51,7 +51,7 @@ var endpoint = server.apply((server2) => {
|
|
51
51
|
return server2.fqdn;
|
52
52
|
}
|
53
53
|
});
|
54
|
-
var dns = ["10.64.0.1"];
|
54
|
+
var dns = args.includeDns ? ["10.64.0.1"] : [];
|
55
55
|
var allowedIps = ["0.0.0.0/0", ...dns];
|
56
56
|
if (network?.ipv6) {
|
57
57
|
allowedIps.push("::0/0");
|
@@ -64,6 +64,10 @@ var peer_default = outputs({
|
|
64
64
|
allowedIps,
|
65
65
|
dns
|
66
66
|
},
|
67
|
+
l4Endpoint: {
|
68
|
+
endpoint,
|
69
|
+
port: 51820
|
70
|
+
},
|
67
71
|
$status: {
|
68
72
|
fqdn: server.fqdn,
|
69
73
|
ipv4: server.ipv4_addr_in,
|
package/dist/peer/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/peer/index.ts","../../src/peer/server-list.ts"],"sourcesContent":["import { mullvad } from \"@highstate/library\"\nimport { forUnit, interpolate, toPromise } from \"@highstate/pulumi\"\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 endpoint = server.apply(server => {\n switch (args.endpointType) {\n case \"ipv4\":\n return server.ipv4_addr_in\n case \"ipv6\":\n return server.ipv6_addr_in\n default:\n return server.fqdn\n }\n})\n\nconst dns = [\"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: {\n name,\n publicKey: server.pubkey,\n endpoint: interpolate`${endpoint}:51820`,\n allowedIps,\n dns,\n },\n $status: {\n fqdn: server.fqdn,\n ipv4: server.ipv4_addr_in,\n ipv6: server.ipv6_addr_in,\n publicKey: server.pubkey,\n },\n})\n","import { dynamic, Output, type CustomResourceOptions } 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"],"mappings":";AAAA,SAAS,eAAe;AACxB,SAAS,SAAS,aAAa,iBAAiB;;;ACDhD,SAAS,eAAmD;AAyB5D,IAAM,qBAAN,MAA6D;AAAA,EAC3D,MAAM,SAAwC;AAC5C,UAAM,UAAU,MAAM,aAAa;AAEnC,WAAO,EAAE,IAAI,OAAO,MAAM,EAAE,QAAQ,EAAE;AAAA,EACxC;AAAA,EAEA,MAAM,SAAwC;AAC5C,WAAO,EAAE,MAAM,EAAE,SAAS,MAAM,aAAa,EAAE,EAAE;AAAA,EACnD;AAAA,EAEA,MAAM,OAAoC;AACxC,WAAO,EAAE,OAAO,EAAE,SAAS,MAAM,aAAa,EAAE,EAAE;AAAA,EACpD;AACF;AASO,IAAM,aAAN,cAAyB,QAAQ,SAAS;AAAA,EAG/C,YAAYA,OAAcC,OAAsB,MAA8B;AAC5E,UAAM,IAAI,mBAAmB,GAAGD,OAAM,EAAE,SAAS,QAAW,GAAGC,MAAK,GAAG,IAAI;AAAA,EAC7E;AACF;AAEA,eAAe,eAAkC;AAC/C,QAAM,WAAW,MAAM,MAAM,yCAAyC;AAEtE,SAAQ,MAAM,SAAS,KAAK;AAC9B;;;ADxDA,IAAM,EAAE,MAAM,MAAM,QAAQ,QAAQ,IAAI,QAAQ,QAAQ,IAAI;AAE5D,IAAM,UAAU,MAAM,UAAU,OAAO,OAAO;AAE9C,IAAM,WAAW,KAAK,YAAY;AAClC,IAAM,aAAa,IAAI,WAAW,WAAW,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC;AAEhE,IAAM,SAAS,WAAW,QAAQ,MAAM,aAAW;AACjD,QAAMC,UAAS,QAAQ,KAAK,CAAAA,YAAUA,QAAO,aAAa,QAAQ;AAClE,MAAI,CAACA,SAAQ;AACX,UAAM,IAAI,MAAM,qBAAqB,KAAK,QAAQ,EAAE;AAAA,EACtD;AAEA,MAAIA,QAAO,SAAS,aAAa;AAC/B,UAAM,IAAI,MAAM,qCAAqC,KAAK,QAAQ,EAAE;AAAA,EACtE;AAEA,SAAOA;AACT,CAAC;AAED,IAAM,WAAW,OAAO,MAAM,CAAAA,YAAU;AACtC,UAAQ,KAAK,cAAc;AAAA,IACzB,KAAK;AACH,aAAOA,QAAO;AAAA,IAChB,KAAK;AACH,aAAOA,QAAO;AAAA,IAChB;AACE,aAAOA,QAAO;AAAA,EAClB;AACF,CAAC;AAED,IAAM,MAAM,CAAC,WAAW;
|
1
|
+
{"version":3,"sources":["../../src/peer/index.ts","../../src/peer/server-list.ts"],"sourcesContent":["import { mullvad } from \"@highstate/library\"\nimport { forUnit, interpolate, toPromise } from \"@highstate/pulumi\"\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 endpoint = server.apply(server => {\n switch (args.endpointType) {\n case \"ipv4\":\n return server.ipv4_addr_in\n case \"ipv6\":\n return server.ipv6_addr_in\n default:\n return server.fqdn\n }\n})\n\nconst dns = args.includeDns ? [\"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: {\n name,\n publicKey: server.pubkey,\n endpoint: interpolate`${endpoint}:51820`,\n allowedIps,\n dns,\n },\n l4Endpoint: {\n endpoint,\n port: 51820,\n },\n $status: {\n fqdn: server.fqdn,\n ipv4: server.ipv4_addr_in,\n ipv6: server.ipv6_addr_in,\n publicKey: server.pubkey,\n },\n})\n","import { dynamic, Output, type CustomResourceOptions } 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"],"mappings":";AAAA,SAAS,eAAe;AACxB,SAAS,SAAS,aAAa,iBAAiB;;;ACDhD,SAAS,eAAmD;AAyB5D,IAAM,qBAAN,MAA6D;AAAA,EAC3D,MAAM,SAAwC;AAC5C,UAAM,UAAU,MAAM,aAAa;AAEnC,WAAO,EAAE,IAAI,OAAO,MAAM,EAAE,QAAQ,EAAE;AAAA,EACxC;AAAA,EAEA,MAAM,SAAwC;AAC5C,WAAO,EAAE,MAAM,EAAE,SAAS,MAAM,aAAa,EAAE,EAAE;AAAA,EACnD;AAAA,EAEA,MAAM,OAAoC;AACxC,WAAO,EAAE,OAAO,EAAE,SAAS,MAAM,aAAa,EAAE,EAAE;AAAA,EACpD;AACF;AASO,IAAM,aAAN,cAAyB,QAAQ,SAAS;AAAA,EAG/C,YAAYA,OAAcC,OAAsB,MAA8B;AAC5E,UAAM,IAAI,mBAAmB,GAAGD,OAAM,EAAE,SAAS,QAAW,GAAGC,MAAK,GAAG,IAAI;AAAA,EAC7E;AACF;AAEA,eAAe,eAAkC;AAC/C,QAAM,WAAW,MAAM,MAAM,yCAAyC;AAEtE,SAAQ,MAAM,SAAS,KAAK;AAC9B;;;ADxDA,IAAM,EAAE,MAAM,MAAM,QAAQ,QAAQ,IAAI,QAAQ,QAAQ,IAAI;AAE5D,IAAM,UAAU,MAAM,UAAU,OAAO,OAAO;AAE9C,IAAM,WAAW,KAAK,YAAY;AAClC,IAAM,aAAa,IAAI,WAAW,WAAW,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC;AAEhE,IAAM,SAAS,WAAW,QAAQ,MAAM,aAAW;AACjD,QAAMC,UAAS,QAAQ,KAAK,CAAAA,YAAUA,QAAO,aAAa,QAAQ;AAClE,MAAI,CAACA,SAAQ;AACX,UAAM,IAAI,MAAM,qBAAqB,KAAK,QAAQ,EAAE;AAAA,EACtD;AAEA,MAAIA,QAAO,SAAS,aAAa;AAC/B,UAAM,IAAI,MAAM,qCAAqC,KAAK,QAAQ,EAAE;AAAA,EACtE;AAEA,SAAOA;AACT,CAAC;AAED,IAAM,WAAW,OAAO,MAAM,CAAAA,YAAU;AACtC,UAAQ,KAAK,cAAc;AAAA,IACzB,KAAK;AACH,aAAOA,QAAO;AAAA,IAChB,KAAK;AACH,aAAOA,QAAO;AAAA,IAChB;AACE,aAAOA,QAAO;AAAA,EAClB;AACF,CAAC;AAED,IAAM,MAAM,KAAK,aAAa,CAAC,WAAW,IAAI,CAAC;AAC/C,IAAM,aAAa,CAAC,aAAa,GAAG,GAAG;AAEvC,IAAI,SAAS,MAAM;AACjB,aAAW,KAAK,OAAO;AACzB;AAEA,IAAO,eAAQ,QAAQ;AAAA,EACrB,MAAM;AAAA,IACJ;AAAA,IACA,WAAW,OAAO;AAAA,IAClB,UAAU,cAAc,QAAQ;AAAA,IAChC;AAAA,IACA;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV;AAAA,IACA,MAAM;AAAA,EACR;AAAA,EACA,SAAS;AAAA,IACP,MAAM,OAAO;AAAA,IACb,MAAM,OAAO;AAAA,IACb,MAAM,OAAO;AAAA,IACb,WAAW,OAAO;AAAA,EACpB;AACF,CAAC;","names":["name","args","server"]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@highstate/mullvad",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.9.0",
|
4
4
|
"type": "module",
|
5
5
|
"files": [
|
6
6
|
"dist"
|
@@ -15,8 +15,8 @@
|
|
15
15
|
"build": "highstate build"
|
16
16
|
},
|
17
17
|
"dependencies": {
|
18
|
-
"@highstate/k8s": "^0.
|
19
|
-
"@highstate/pulumi": "^0.
|
18
|
+
"@highstate/k8s": "^0.9.0",
|
19
|
+
"@highstate/pulumi": "^0.9.0",
|
20
20
|
"@noble/curves": "^1.8.0",
|
21
21
|
"@pulumi/kubernetes": "^4.18.0"
|
22
22
|
},
|
@@ -24,7 +24,7 @@
|
|
24
24
|
"@highstate/library": "workspace:^0.4.4"
|
25
25
|
},
|
26
26
|
"devDependencies": {
|
27
|
-
"@highstate/cli": "^0.
|
27
|
+
"@highstate/cli": "^0.9.0"
|
28
28
|
},
|
29
|
-
"gitHead": "
|
29
|
+
"gitHead": "b64df0df33afcadf019936eaa2a2ca7ffc82940b"
|
30
30
|
}
|