@highstate/mullvad 0.7.2 → 0.7.4

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,5 @@
1
+ {
2
+ "sourceHashes": {
3
+ "./dist/peer/index.js": "01d5f0f0502cd08002ce9e981854b4890ce98df9e547cbac027a9154a5a2651f"
4
+ }
5
+ }
@@ -1,7 +1,10 @@
1
- import { mullvad } from '@highstate/library';
2
- import { dynamic, forUnit, interpolate } from '@highstate/pulumi';
1
+ // src/peer/index.ts
2
+ import { mullvad } from "@highstate/library";
3
+ import { forUnit, interpolate, toPromise } from "@highstate/pulumi";
3
4
 
4
- class ServerListProvider {
5
+ // src/peer/server-list.ts
6
+ import { dynamic } from "@highstate/pulumi";
7
+ var ServerListProvider = class {
5
8
  async create() {
6
9
  const servers = await fetchServers();
7
10
  return { id: "all", outs: { servers } };
@@ -12,21 +15,23 @@ class ServerListProvider {
12
15
  async read() {
13
16
  return { props: { servers: await fetchServers() } };
14
17
  }
15
- }
16
- class ServerList extends dynamic.Resource {
17
- constructor(name, args, opts) {
18
- super(new ServerListProvider(), name, { servers: void 0, ...args }, opts);
18
+ };
19
+ var ServerList = class extends dynamic.Resource {
20
+ constructor(name2, args2, opts) {
21
+ super(new ServerListProvider(), name2, { servers: void 0, ...args2 }, opts);
19
22
  }
20
- }
23
+ };
21
24
  async function fetchServers() {
22
25
  const response = await fetch("https://api.mullvad.net/www/relays/all/");
23
26
  return await response.json();
24
27
  }
25
28
 
26
- const { name, args, outputs } = forUnit(mullvad.peer);
27
- const hostname = args.hostname ?? name;
28
- const serverList = new ServerList("servers", { now: Date.now() });
29
- const server = serverList.servers.apply((servers) => {
29
+ // src/peer/index.ts
30
+ var { name, args, inputs, outputs } = forUnit(mullvad.peer);
31
+ var network = await toPromise(inputs.network);
32
+ var hostname = args.hostname ?? name;
33
+ var serverList = new ServerList("servers", { now: Date.now() });
34
+ var server = serverList.servers.apply((servers) => {
30
35
  const server2 = servers.find((server3) => server3.hostname === hostname);
31
36
  if (!server2) {
32
37
  throw new Error(`Server not found: ${args.hostname}`);
@@ -36,7 +41,7 @@ const server = serverList.servers.apply((servers) => {
36
41
  }
37
42
  return server2;
38
43
  });
39
- const endpoint = server.apply((server2) => {
44
+ var endpoint = server.apply((server2) => {
40
45
  switch (args.endpointType) {
41
46
  case "ipv4":
42
47
  return server2.ipv4_addr_in;
@@ -46,12 +51,18 @@ const endpoint = server.apply((server2) => {
46
51
  return server2.fqdn;
47
52
  }
48
53
  });
49
- var index = outputs({
54
+ var dns = ["10.64.0.1"];
55
+ var allowedIps = ["0.0.0.0/0", ...dns];
56
+ if (network?.ipv6) {
57
+ allowedIps.push("::0/0");
58
+ }
59
+ var peer_default = outputs({
50
60
  peer: {
51
61
  name,
52
62
  publicKey: server.pubkey,
53
63
  endpoint: interpolate`${endpoint}:51820`,
54
- allowedIps: ["0.0.0.0/0", "::0/0"]
64
+ allowedIps,
65
+ dns
55
66
  },
56
67
  $status: {
57
68
  fqdn: server.fqdn,
@@ -60,5 +71,7 @@ var index = outputs({
60
71
  publicKey: server.pubkey
61
72
  }
62
73
  });
63
-
64
- export { index as default };
74
+ export {
75
+ peer_default as default
76
+ };
77
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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;AACxB,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,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.7.2",
3
+ "version": "0.7.4",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -12,11 +12,11 @@
12
12
  "access": "public"
13
13
  },
14
14
  "scripts": {
15
- "build": "pkgroll --tsconfig=tsconfig.build.json"
15
+ "build": "highstate build"
16
16
  },
17
17
  "dependencies": {
18
- "@highstate/k8s": "^0.7.2",
19
- "@highstate/pulumi": "^0.7.2",
18
+ "@highstate/k8s": "^0.7.4",
19
+ "@highstate/pulumi": "^0.7.4",
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
- "pkgroll": "^2.5.1"
27
+ "@highstate/cli": "^0.7.4"
28
28
  },
29
- "gitHead": "e177535015e0fa3c74ae8ddc0bc6d31b191d2c54"
29
+ "gitHead": "c482cdf650746f6814122602d65bf5b842a2bc2c"
30
30
  }