@highstate/timeweb 0.11.7 → 0.12.1

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,6 +1,6 @@
1
1
  {
2
2
  "sourceHashes": {
3
- "./dist/connection/index.js": 443562898,
4
- "./dist/virtual-machine/index.js": 4181189759
3
+ "./dist/connection/index.js": 4035453977,
4
+ "./dist/virtual-machine/index.js": 3892273503
5
5
  }
6
6
  }
@@ -1,23 +1,33 @@
1
1
  import { generateSshPrivateKey, sshPrivateKeyToKeyPair, parseL3Endpoint, createServerBundle, l3EndpointToString } from '@highstate/common';
2
2
  import { timeweb } from '@highstate/library';
3
- import { forUnit, getResourceComment, toPromise } from '@highstate/pulumi';
4
- import { Provider, SshKey, FloatingIp, Server } from '@highstate/timeweb-sdk';
3
+ import { forUnit, getResourceComment, toPromise, output } from '@highstate/pulumi';
4
+ import { SshKey, FloatingIp, Server, Provider } from '@highstate/timeweb-sdk';
5
+
6
+ // src/virtual-machine/index.ts
7
+ async function createProvider(connection) {
8
+ return await toPromise(
9
+ output(connection).apply((connection2) => {
10
+ return new Provider(connection2.name, { token: connection2.apiToken });
11
+ })
12
+ );
13
+ }
5
14
 
6
15
  // src/virtual-machine/index.ts
7
16
  var { name, args, secrets, getSecret, inputs, outputs } = forUnit(timeweb.virtualMachine);
8
- var provider = new Provider(name, { token: inputs.connection.apiToken });
17
+ var provider = await createProvider(inputs.connection);
18
+ var vmName = args.vmName ?? name;
9
19
  var sshPrivateKey = getSecret("sshPrivateKey", generateSshPrivateKey);
10
20
  var keyPair = sshPrivateKeyToKeyPair(sshPrivateKey);
11
21
  var sshKey = new SshKey(
12
- name,
22
+ "ssh-key",
13
23
  {
14
- name,
24
+ name: vmName,
15
25
  body: keyPair.publicKey
16
26
  },
17
27
  { provider }
18
28
  );
19
29
  var floatingIp = new FloatingIp(
20
- name,
30
+ "address",
21
31
  {
22
32
  comment: getResourceComment(),
23
33
  availabilityZone: args.availabilityZone,
@@ -26,9 +36,9 @@ var floatingIp = new FloatingIp(
26
36
  { provider }
27
37
  );
28
38
  new Server(
29
- name,
39
+ "virtual-machine",
30
40
  {
31
- name,
41
+ name: vmName,
32
42
  comment: getResourceComment(),
33
43
  availabilityZone: args.availabilityZone,
34
44
  floatingIpId: floatingIp.id,
@@ -42,7 +52,7 @@ new Server(
42
52
  var serverIp = await toPromise(floatingIp.ip);
43
53
  var endpoint = parseL3Endpoint(serverIp);
44
54
  var { server, terminal } = await createServerBundle({
45
- name,
55
+ name: vmName,
46
56
  endpoints: [endpoint],
47
57
  sshArgs: args.ssh,
48
58
  sshPrivateKey,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/virtual-machine/index.ts"],"names":["TimewebServer"],"mappings":";;;;;;AAWA,IAAM,EAAE,IAAA,EAAM,IAAA,EAAM,OAAA,EAAS,SAAA,EAAW,QAAQ,OAAA,EAAQ,GAAI,OAAA,CAAQ,OAAA,CAAQ,cAAc,CAAA;AAE1F,IAAM,QAAA,GAAW,IAAI,QAAA,CAAS,IAAA,EAAM,EAAE,KAAA,EAAO,MAAA,CAAO,UAAA,CAAW,QAAA,EAAU,CAAA;AAEzE,IAAM,aAAA,GAAgB,SAAA,CAAU,eAAA,EAAiB,qBAAqB,CAAA;AACtE,IAAM,OAAA,GAAU,uBAAuB,aAAa,CAAA;AAEpD,IAAM,SAAS,IAAI,MAAA;AAAA,EACjB,IAAA;AAAA,EACA;AAAA,IACE,IAAA;AAAA,IACA,MAAM,OAAA,CAAQ;AAAA,GAChB;AAAA,EACA,EAAE,QAAA;AACJ,CAAA;AAEA,IAAM,aAAa,IAAI,UAAA;AAAA,EACrB,IAAA;AAAA,EACA;AAAA,IACE,SAAS,kBAAA,EAAmB;AAAA,IAC5B,kBAAkB,IAAA,CAAK,gBAAA;AAAA,IACvB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,EAAE,QAAA;AACJ,CAAA;AAEA,IAAIA,MAAA;AAAA,EACF,IAAA;AAAA,EACA;AAAA,IACE,IAAA;AAAA,IACA,SAAS,kBAAA,EAAmB;AAAA,IAC5B,kBAAkB,IAAA,CAAK,gBAAA;AAAA,IACvB,cAAc,UAAA,CAAW,EAAA;AAAA,IACzB,UAAU,IAAA,CAAK,QAAA;AAAA,IACf,MAAM,IAAA,CAAK,IAAA;AAAA,IACX,sBAAA,EAAwB,KAAA;AAAA,IACxB,YAAY,CAAC,MAAA,CAAO,QAAA,CAAS,KAAA,CAAM,MAAM,CAAC;AAAA,GAC5C;AAAA,EACA,EAAE,QAAA;AACJ,CAAA;AAEA,IAAM,QAAA,GAAW,MAAM,SAAA,CAAU,UAAA,CAAW,EAAE,CAAA;AAC9C,IAAM,QAAA,GAAW,gBAAgB,QAAQ,CAAA;AAEzC,IAAM,EAAE,MAAA,EAAQ,QAAA,EAAS,GAAI,MAAM,kBAAA,CAAmB;AAAA,EACpD,IAAA;AAAA,EACA,SAAA,EAAW,CAAC,QAAQ,CAAA;AAAA,EACpB,SAAS,IAAA,CAAK,GAAA;AAAA,EACd,aAAA;AAAA,EACA,aAAa,OAAA,CAAQ;AACvB,CAAC,CAAA;AAED,IAAO,0BAAQ,OAAA,CAAQ;AAAA,EACrB,MAAA;AAAA,EACA,SAAA,EAAW,CAAC,QAAQ,CAAA;AAAA,EAEpB,aAAA,EAAe;AAAA,IACb,QAAA,EAAU;AAAA,MACR,OAAO,MAAA,CAAO;AAAA,KAChB;AAAA,IACA,SAAA,EAAW;AAAA,MACT,KAAA,EAAO,CAAC,kBAAA,CAAmB,QAAQ,CAAC;AAAA;AACtC,GACF;AAAA,EAEA,UAAA,EAAY,CAAC,QAAQ;AACvB,CAAC","file":"index.js","sourcesContent":["import {\n createServerBundle,\n generateSshPrivateKey,\n l3EndpointToString,\n parseL3Endpoint,\n sshPrivateKeyToKeyPair,\n} from \"@highstate/common\"\nimport { timeweb } from \"@highstate/library\"\nimport { forUnit, getResourceComment, toPromise } from \"@highstate/pulumi\"\nimport { FloatingIp, Provider, SshKey, Server as TimewebServer } from \"@highstate/timeweb-sdk\"\n\nconst { name, args, secrets, getSecret, inputs, outputs } = forUnit(timeweb.virtualMachine)\n\nconst provider = new Provider(name, { token: inputs.connection.apiToken })\n\nconst sshPrivateKey = getSecret(\"sshPrivateKey\", generateSshPrivateKey)\nconst keyPair = sshPrivateKeyToKeyPair(sshPrivateKey)\n\nconst sshKey = new SshKey(\n name,\n {\n name,\n body: keyPair.publicKey,\n },\n { provider },\n)\n\nconst floatingIp = new FloatingIp(\n name,\n {\n comment: getResourceComment(),\n availabilityZone: args.availabilityZone,\n ddosGuard: false,\n },\n { provider },\n)\n\nnew TimewebServer(\n name,\n {\n name,\n comment: getResourceComment(),\n availabilityZone: args.availabilityZone,\n floatingIpId: floatingIp.id,\n presetId: args.presetId,\n osId: args.osId,\n isRootPasswordRequired: false,\n sshKeysIds: [sshKey.sshKeyId.apply(Number)],\n },\n { provider },\n)\n\nconst serverIp = await toPromise(floatingIp.ip)\nconst endpoint = parseL3Endpoint(serverIp)\n\nconst { server, terminal } = await createServerBundle({\n name,\n endpoints: [endpoint],\n sshArgs: args.ssh,\n sshPrivateKey,\n sshPassword: secrets.rootPassword,\n})\n\nexport default outputs({\n server,\n endpoints: [endpoint],\n\n $statusFields: {\n hostname: {\n value: server.hostname,\n },\n endpoints: {\n value: [l3EndpointToString(endpoint)],\n },\n },\n\n $terminals: [terminal],\n})\n"]}
1
+ {"version":3,"sources":["../../src/provider.ts","../../src/virtual-machine/index.ts"],"names":["connection","TimewebServer","toPromise"],"mappings":";;;;;;AAIA,eAAsB,eAAe,UAAA,EAA0D;AAC7F,EAAA,OAAO,MAAM,SAAA;AAAA,IACX,MAAA,CAAO,UAAU,CAAA,CAAE,KAAA,CAAM,CAAAA,WAAAA,KAAc;AACrC,MAAA,OAAO,IAAI,SAASA,WAAAA,CAAW,IAAA,EAAM,EAAE,KAAA,EAAOA,WAAAA,CAAW,UAAU,CAAA;AAAA,IACrE,CAAC;AAAA,GACH;AACF;;;ACEA,IAAM,EAAE,IAAA,EAAM,IAAA,EAAM,OAAA,EAAS,SAAA,EAAW,QAAQ,OAAA,EAAQ,GAAI,OAAA,CAAQ,OAAA,CAAQ,cAAc,CAAA;AAE1F,IAAM,QAAA,GAAW,MAAM,cAAA,CAAe,MAAA,CAAO,UAAU,CAAA;AAEvD,IAAM,MAAA,GAAS,KAAK,MAAA,IAAU,IAAA;AAC9B,IAAM,aAAA,GAAgB,SAAA,CAAU,eAAA,EAAiB,qBAAqB,CAAA;AACtE,IAAM,OAAA,GAAU,uBAAuB,aAAa,CAAA;AAEpD,IAAM,SAAS,IAAI,MAAA;AAAA,EACjB,SAAA;AAAA,EACA;AAAA,IACE,IAAA,EAAM,MAAA;AAAA,IACN,MAAM,OAAA,CAAQ;AAAA,GAChB;AAAA,EACA,EAAE,QAAA;AACJ,CAAA;AAEA,IAAM,aAAa,IAAI,UAAA;AAAA,EACrB,SAAA;AAAA,EACA;AAAA,IACE,SAAS,kBAAA,EAAmB;AAAA,IAC5B,kBAAkB,IAAA,CAAK,gBAAA;AAAA,IACvB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,EAAE,QAAA;AACJ,CAAA;AAEA,IAAIC,MAAA;AAAA,EACF,iBAAA;AAAA,EACA;AAAA,IACE,IAAA,EAAM,MAAA;AAAA,IACN,SAAS,kBAAA,EAAmB;AAAA,IAC5B,kBAAkB,IAAA,CAAK,gBAAA;AAAA,IACvB,cAAc,UAAA,CAAW,EAAA;AAAA,IACzB,UAAU,IAAA,CAAK,QAAA;AAAA,IACf,MAAM,IAAA,CAAK,IAAA;AAAA,IACX,sBAAA,EAAwB,KAAA;AAAA,IACxB,YAAY,CAAC,MAAA,CAAO,QAAA,CAAS,KAAA,CAAM,MAAM,CAAC;AAAA,GAC5C;AAAA,EACA,EAAE,QAAA;AACJ,CAAA;AAEA,IAAM,QAAA,GAAW,MAAMC,SAAAA,CAAU,UAAA,CAAW,EAAE,CAAA;AAC9C,IAAM,QAAA,GAAW,gBAAgB,QAAQ,CAAA;AAEzC,IAAM,EAAE,MAAA,EAAQ,QAAA,EAAS,GAAI,MAAM,kBAAA,CAAmB;AAAA,EACpD,IAAA,EAAM,MAAA;AAAA,EACN,SAAA,EAAW,CAAC,QAAQ,CAAA;AAAA,EACpB,SAAS,IAAA,CAAK,GAAA;AAAA,EACd,aAAA;AAAA,EACA,aAAa,OAAA,CAAQ;AACvB,CAAC,CAAA;AAED,IAAO,0BAAQ,OAAA,CAAQ;AAAA,EACrB,MAAA;AAAA,EACA,SAAA,EAAW,CAAC,QAAQ,CAAA;AAAA,EAEpB,aAAA,EAAe;AAAA,IACb,QAAA,EAAU;AAAA,MACR,OAAO,MAAA,CAAO;AAAA,KAChB;AAAA,IACA,SAAA,EAAW;AAAA,MACT,KAAA,EAAO,CAAC,kBAAA,CAAmB,QAAQ,CAAC;AAAA;AACtC,GACF;AAAA,EAEA,UAAA,EAAY,CAAC,QAAQ;AACvB,CAAC","file":"index.js","sourcesContent":["import type { timeweb } from \"@highstate/library\"\nimport { type Input, output, toPromise } from \"@highstate/pulumi\"\nimport { Provider } from \"@highstate/timeweb-sdk\"\n\nexport async function createProvider(connection: Input<timeweb.Connection>): Promise<Provider> {\n return await toPromise(\n output(connection).apply(connection => {\n return new Provider(connection.name, { token: connection.apiToken })\n }),\n )\n}\n","import {\n createServerBundle,\n generateSshPrivateKey,\n l3EndpointToString,\n parseL3Endpoint,\n sshPrivateKeyToKeyPair,\n} from \"@highstate/common\"\nimport { timeweb } from \"@highstate/library\"\nimport { forUnit, getResourceComment, toPromise } from \"@highstate/pulumi\"\nimport { FloatingIp, SshKey, Server as TimewebServer } from \"@highstate/timeweb-sdk\"\nimport { createProvider } from \"../provider\"\n\nconst { name, args, secrets, getSecret, inputs, outputs } = forUnit(timeweb.virtualMachine)\n\nconst provider = await createProvider(inputs.connection)\n\nconst vmName = args.vmName ?? name\nconst sshPrivateKey = getSecret(\"sshPrivateKey\", generateSshPrivateKey)\nconst keyPair = sshPrivateKeyToKeyPair(sshPrivateKey)\n\nconst sshKey = new SshKey(\n \"ssh-key\",\n {\n name: vmName,\n body: keyPair.publicKey,\n },\n { provider },\n)\n\nconst floatingIp = new FloatingIp(\n \"address\",\n {\n comment: getResourceComment(),\n availabilityZone: args.availabilityZone,\n ddosGuard: false,\n },\n { provider },\n)\n\nnew TimewebServer(\n \"virtual-machine\",\n {\n name: vmName,\n comment: getResourceComment(),\n availabilityZone: args.availabilityZone,\n floatingIpId: floatingIp.id,\n presetId: args.presetId,\n osId: args.osId,\n isRootPasswordRequired: false,\n sshKeysIds: [sshKey.sshKeyId.apply(Number)],\n },\n { provider },\n)\n\nconst serverIp = await toPromise(floatingIp.ip)\nconst endpoint = parseL3Endpoint(serverIp)\n\nconst { server, terminal } = await createServerBundle({\n name: vmName,\n endpoints: [endpoint],\n sshArgs: args.ssh,\n sshPrivateKey,\n sshPassword: secrets.rootPassword,\n})\n\nexport default outputs({\n server,\n endpoints: [endpoint],\n\n $statusFields: {\n hostname: {\n value: server.hostname,\n },\n endpoints: {\n value: [l3EndpointToString(endpoint)],\n },\n },\n\n $terminals: [terminal],\n})\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@highstate/timeweb",
3
- "version": "0.11.7",
3
+ "version": "0.12.1",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"