@highstate/mullvad 0.9.18 → 0.9.20

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.
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "sourceHashes": {
3
- "./dist/peer/index.js": 3861928570
3
+ "./dist/peer/index.js": 797169316
4
4
  }
5
5
  }
@@ -1,6 +1,6 @@
1
1
  import { mullvad } from '@highstate/library';
2
2
  import { dynamic, forUnit, toPromise, output } from '@highstate/pulumi';
3
- import { parseL3Endpoint, l3ToL4Endpoint, l4EndpointToString } from '@highstate/common';
3
+ import { parseL3Endpoint, l3EndpointToL4, l4EndpointToString } from '@highstate/common';
4
4
  import { map } from 'remeda';
5
5
 
6
6
  // src/peer/index.ts
@@ -22,7 +22,7 @@ var ServerList = class extends dynamic.Resource {
22
22
  }
23
23
  };
24
24
  async function fetchServers() {
25
- const response = await load("https://api.mullvad.net/www/relays/all/");
25
+ const response = await fetch("https://api.mullvad.net/www/relays/all/");
26
26
  return await response.json();
27
27
  }
28
28
 
@@ -41,7 +41,7 @@ var server = serverList.servers.apply((servers) => {
41
41
  }
42
42
  return server2;
43
43
  });
44
- var endpoints = output([server.fqdn, server.ipv4_addr_in, server.ipv6_addr_in]).apply(map(parseL3Endpoint)).apply(map((endpoint) => l3ToL4Endpoint(endpoint, 51820, "udp")));
44
+ var endpoints = output([server.fqdn, server.ipv4_addr_in, server.ipv6_addr_in]).apply(map(parseL3Endpoint)).apply(map((endpoint) => l3EndpointToL4(endpoint, 51820, "udp")));
45
45
  var dns = args.includeDns ? ["10.64.0.1"] : [];
46
46
  var allowedIps = ["0.0.0.0/0", ...dns];
47
47
  if (network?.ipv6) {
@@ -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,IAAA,CAAK,yCAAyC,CAAA;AAErE,EAAA,OAAQ,MAAM,SAAS,IAAA,EAAK;AAC9B;;;ACtDA,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,OAAO,YAAA,EAAc,MAAA,CAAO,YAAY,CAAC,CAAA,CAC7E,KAAA,CAAM,IAAI,eAAe,CAAC,CAAA,CAC1B,KAAA,CAAM,GAAA,CAAI,CAAA,QAAA,KAAY,eAAe,QAAA,EAAU,KAAA,EAAO,KAAK,CAAC,CAAC,CAAA;AAEhE,IAAM,MAAM,IAAA,CAAK,UAAA,GAAa,CAAC,WAAW,IAAI,EAAC;AAC/C,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,IACJ,IAAA;AAAA,IACA,WAAW,MAAA,CAAO,MAAA;AAAA,IAClB,SAAA;AAAA,IACA,kBAAkB,EAAC;AAAA,IACnB,aAAa,EAAC;AAAA,IACd,UAAA;AAAA,IACA;AAAA,GACF;AAAA,EAEA,SAAA;AAAA,EAEA,aAAA,EAAe;AAAA,IACb,WAAW,MAAA,CAAO,MAAA;AAAA,IAClB,SAAA,EAAW,SAAA,CAAU,KAAA,CAAM,GAAA,CAAI,kBAAkB,CAAC;AAAA;AAEtD,CAAC","file":"index.js","sourcesContent":["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 load(\"https://api.mullvad.net/www/relays/all/\")\n\n return (await response.json()) as Server[]\n}\n","import { mullvad } from \"@highstate/library\"\nimport { forUnit, output, toPromise } from \"@highstate/pulumi\"\nimport { l3ToL4Endpoint, l4EndpointToString, parseL3Endpoint } from \"@highstate/common\"\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(parseL3Endpoint))\n .apply(map(endpoint => l3ToL4Endpoint(endpoint, 51820, \"udp\")))\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 endpoints,\n allowedEndpoints: [],\n excludedIps: [],\n allowedIps,\n dns,\n },\n\n endpoints,\n\n $statusFields: {\n publicKey: server.pubkey,\n endpoints: endpoints.apply(map(l4EndpointToString)),\n },\n})\n"]}
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 { dynamic, type 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","import { mullvad } from \"@highstate/library\"\nimport { forUnit, output, toPromise } from \"@highstate/pulumi\"\nimport { l3EndpointToL4, l4EndpointToString, parseL3Endpoint } from \"@highstate/common\"\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(parseL3Endpoint))\n .apply(map(endpoint => l3EndpointToL4(endpoint, 51820, \"udp\")))\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 endpoints,\n allowedEndpoints: [],\n excludedIps: [],\n allowedIps,\n dns,\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.9.18",
3
+ "version": "0.9.20",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -15,16 +15,16 @@
15
15
  "build": "highstate build"
16
16
  },
17
17
  "dependencies": {
18
- "@highstate/common": "^0.9.18",
19
- "@highstate/k8s": "^0.9.18",
20
- "@highstate/library": "^0.9.18",
21
- "@highstate/pulumi": "^0.9.18",
18
+ "@highstate/common": "^0.9.20",
19
+ "@highstate/k8s": "^0.9.20",
20
+ "@highstate/library": "^0.9.20",
21
+ "@highstate/pulumi": "^0.9.20",
22
22
  "@noble/curves": "^1.8.0",
23
23
  "@pulumi/kubernetes": "^4.18.0",
24
24
  "remeda": "^2.21.0"
25
25
  },
26
26
  "devDependencies": {
27
- "@highstate/cli": "^0.9.18"
27
+ "@highstate/cli": "^0.9.20"
28
28
  },
29
- "gitHead": "9ebcd7da56b00b8ca08bf52cc8438f527338cd64"
29
+ "gitHead": "4bf9183450c2c6f51d6a99d77efc379ff5c7b7ef"
30
30
  }