@highstate/library 0.2.0 → 0.2.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.
package/dist/index.mjs ADDED
@@ -0,0 +1,849 @@
1
+ import { defineEntity, defineUnit, text } from '@highstate/contract';
2
+ import { Type } from '@sinclair/typebox';
3
+
4
+ const keyTypeSchema = Type.Union([
5
+ //
6
+ Type.Literal("rsa"),
7
+ Type.Literal("ed25519")
8
+ ]);
9
+ const keyPairEntity = defineEntity({
10
+ type: "ssh.key-pair",
11
+ sensitive: true,
12
+ schema: Type.Object({
13
+ type: keyTypeSchema,
14
+ privateKey: Type.String(),
15
+ publicKey: Type.String()
16
+ })
17
+ });
18
+ const publicKeyEntity = defineEntity({
19
+ type: "ssh.public-key",
20
+ schema: Type.Object({
21
+ publicKey: Type.String()
22
+ })
23
+ });
24
+ const credentialsSchema = Type.Object({
25
+ endpoint: Type.Optional(Type.String()),
26
+ user: Type.Optional(Type.String()),
27
+ port: Type.Optional(Type.Number()),
28
+ password: Type.Optional(Type.String()),
29
+ privateKey: keyPairEntity.schema
30
+ });
31
+ const keyPair = defineUnit({
32
+ type: "ssh.key-pair",
33
+ outputs: {
34
+ keyPair: keyPairEntity
35
+ },
36
+ meta: {
37
+ displayName: "SSH Key Pair",
38
+ description: "Generates a new ED25519 SSH key pair.",
39
+ category: "ssh",
40
+ primaryIcon: "charm:key",
41
+ primaryIconColor: "#ffffff",
42
+ secondaryIcon: "mdi:lock",
43
+ secondaryIconColor: "#ffffff"
44
+ },
45
+ source: {
46
+ type: "npm",
47
+ package: "@highstate/ssh"
48
+ }
49
+ });
50
+ const existingKeyPair = defineUnit({
51
+ type: "ssh.existing-key-pair",
52
+ args: {
53
+ type: {
54
+ schema: keyTypeSchema,
55
+ description: "The type of the key pair."
56
+ }
57
+ },
58
+ secrets: {
59
+ privateKey: Type.String()
60
+ },
61
+ outputs: {
62
+ keyPair: keyPairEntity
63
+ },
64
+ meta: {
65
+ displayName: "SSH Existing Key Pair",
66
+ description: "Uses an existing SSH key pair.",
67
+ category: "ssh",
68
+ primaryIcon: "charm:key",
69
+ primaryIconColor: "#ffffff",
70
+ secondaryIcon: "mdi:lock",
71
+ secondaryIconColor: "#ffffff"
72
+ },
73
+ source: {
74
+ type: "npm",
75
+ package: "@highstate/ssh"
76
+ }
77
+ });
78
+ const existingPublicKey = defineUnit({
79
+ type: "ssh.existing-public-key",
80
+ args: {
81
+ type: {
82
+ schema: keyTypeSchema,
83
+ description: "The type of the key pair."
84
+ },
85
+ publicKey: {
86
+ schema: Type.String(),
87
+ description: "The public key in OpenSSH format."
88
+ }
89
+ },
90
+ outputs: {
91
+ publicKey: publicKeyEntity
92
+ },
93
+ meta: {
94
+ displayName: "SSH Existing Public Key",
95
+ description: "Uses an existing SSH public key.",
96
+ category: "ssh",
97
+ primaryIcon: "charm:key",
98
+ primaryIconColor: "#ffffff",
99
+ secondaryIcon: "mdi:public",
100
+ secondaryIconColor: "#ffffff"
101
+ },
102
+ source: {
103
+ type: "npm",
104
+ package: "@highstate/ssh"
105
+ }
106
+ });
107
+
108
+ var ssh = /*#__PURE__*/Object.freeze({
109
+ __proto__: null,
110
+ credentialsSchema: credentialsSchema,
111
+ existingKeyPair: existingKeyPair,
112
+ existingPublicKey: existingPublicKey,
113
+ keyPair: keyPair,
114
+ keyPairEntity: keyPairEntity,
115
+ keyTypeSchema: keyTypeSchema,
116
+ publicKeyEntity: publicKeyEntity
117
+ });
118
+
119
+ const serverEntity = defineEntity({
120
+ type: "common.server",
121
+ schema: Type.Object({
122
+ endpoint: Type.String(),
123
+ sshCredentials: credentialsSchema
124
+ }),
125
+ meta: {
126
+ color: "#009688"
127
+ }
128
+ });
129
+ const gatewayEntity = defineEntity({
130
+ type: "common.gateway",
131
+ schema: Type.Object({
132
+ endpoint: Type.String()
133
+ }),
134
+ meta: {
135
+ color: "#4CAF50"
136
+ }
137
+ });
138
+ const tlsIssuerEntity = defineEntity({
139
+ type: "common.tls-issuer",
140
+ schema: Type.Object({
141
+ endpoint: Type.String()
142
+ }),
143
+ meta: {
144
+ color: "#f06292"
145
+ }
146
+ });
147
+ const dnsProviderEntity = defineEntity({
148
+ type: "common.dns-provider",
149
+ schema: Type.Object({
150
+ endpoint: Type.String()
151
+ }),
152
+ meta: {
153
+ color: "#FF5722"
154
+ }
155
+ });
156
+ const accessPointEntity = defineEntity({
157
+ type: "common.access-point",
158
+ schema: Type.Object({
159
+ name: Type.String()
160
+ })
161
+ });
162
+ const accessPoint = defineUnit({
163
+ type: "common.access-point",
164
+ inputs: {
165
+ gateway: gatewayEntity,
166
+ tlsIssuer: tlsIssuerEntity,
167
+ dnsProvider: dnsProviderEntity
168
+ },
169
+ outputs: {
170
+ accessPoint: accessPointEntity
171
+ },
172
+ meta: {
173
+ displayName: "Access Point",
174
+ description: "An access point which can be used to connect to services.",
175
+ primaryIcon: "mdi:access-point"
176
+ },
177
+ source: {
178
+ type: "npm",
179
+ package: "@highstate/common"
180
+ }
181
+ });
182
+
183
+ var common = /*#__PURE__*/Object.freeze({
184
+ __proto__: null,
185
+ accessPoint: accessPoint,
186
+ accessPointEntity: accessPointEntity,
187
+ dnsProviderEntity: dnsProviderEntity,
188
+ gatewayEntity: gatewayEntity,
189
+ serverEntity: serverEntity,
190
+ tlsIssuerEntity: tlsIssuerEntity
191
+ });
192
+
193
+ const clusterEntity$1 = defineEntity({
194
+ type: "proxmox.cluster",
195
+ schema: Type.Object({
196
+ endpoint: Type.String(),
197
+ insecure: Type.Optional(Type.Boolean()),
198
+ username: Type.Optional(Type.String()),
199
+ defaultNodeName: Type.String(),
200
+ defaultDatastoreId: Type.Optional(Type.String()),
201
+ password: Type.Optional(Type.String()),
202
+ apiToken: Type.Optional(Type.String())
203
+ }),
204
+ meta: {
205
+ color: "#e56901"
206
+ }
207
+ });
208
+ const imageEntity = defineEntity({
209
+ type: "proxmox.image",
210
+ schema: Type.Object({
211
+ id: Type.String()
212
+ }),
213
+ meta: {
214
+ color: "#e56901"
215
+ }
216
+ });
217
+ const connection$1 = defineUnit({
218
+ type: "proxmox.connection",
219
+ args: {
220
+ endpoint: Type.String(),
221
+ insecure: Type.Optional(Type.Boolean()),
222
+ username: Type.Optional(Type.String()),
223
+ defaultNodeName: Type.String(),
224
+ defaultDatastoreId: Type.Optional(Type.String())
225
+ },
226
+ secrets: {
227
+ password: Type.Optional(Type.String()),
228
+ apiToken: Type.Optional(Type.String())
229
+ },
230
+ outputs: {
231
+ proxmoxCluster: clusterEntity$1
232
+ },
233
+ meta: {
234
+ displayName: "Proxmox Connection",
235
+ description: "The connection to an existing Proxmox cluster.",
236
+ category: "Proxmox",
237
+ primaryIcon: "simple-icons:proxmox",
238
+ primaryIconColor: "#e56901",
239
+ secondaryIcon: "codicon:vm"
240
+ },
241
+ source: {
242
+ type: "npm",
243
+ package: "@highstate/proxmox"
244
+ }
245
+ });
246
+ const image = defineUnit({
247
+ type: "proxmox.image",
248
+ args: {
249
+ url: Type.String(),
250
+ nodeName: Type.Optional(Type.String()),
251
+ sha256: Type.Optional(Type.String()),
252
+ datastoreId: Type.Optional(Type.String())
253
+ },
254
+ inputs: {
255
+ proxmoxCluster: clusterEntity$1
256
+ },
257
+ outputs: {
258
+ image: imageEntity
259
+ },
260
+ meta: {
261
+ displayName: "Proxmox Image",
262
+ description: "The image to upload to a Proxmox cluster.",
263
+ category: "Proxmox",
264
+ primaryIcon: "simple-icons:proxmox",
265
+ primaryIconColor: "#e56901",
266
+ secondaryIcon: "mage:compact-disk-fill"
267
+ },
268
+ source: {
269
+ type: "npm",
270
+ package: "@highstate/proxmox"
271
+ }
272
+ });
273
+ const existingImage = defineUnit({
274
+ type: "proxmox.existing-image",
275
+ args: {
276
+ id: Type.String()
277
+ },
278
+ outputs: {
279
+ image: imageEntity
280
+ },
281
+ meta: {
282
+ displayName: "Proxmox Existing Image",
283
+ description: "The existing image on a Proxmox cluster.",
284
+ category: "Proxmox",
285
+ primaryIcon: "simple-icons:proxmox",
286
+ primaryIconColor: "#e56901",
287
+ secondaryIcon: "mage:compact-disk-fill"
288
+ },
289
+ source: {
290
+ type: "npm",
291
+ package: "@highstate/proxmox"
292
+ }
293
+ });
294
+ const virtualMachine = defineUnit({
295
+ type: "proxmox.virtual-machine",
296
+ args: {
297
+ nodeName: Type.Optional(Type.String()),
298
+ cores: Type.Optional(Type.Number()),
299
+ sockets: Type.Optional(Type.Number()),
300
+ memory: Type.Optional(Type.Number()),
301
+ ipv4: Type.Optional(Type.String()),
302
+ ipv4Gateway: Type.Optional(Type.String()),
303
+ dns: Type.Optional(Type.Array(Type.String())),
304
+ datastoreId: Type.Optional(Type.String()),
305
+ diskSize: Type.Optional(Type.Number()),
306
+ bridge: Type.Optional(Type.String())
307
+ },
308
+ inputs: {
309
+ proxmoxCluster: clusterEntity$1,
310
+ image: imageEntity,
311
+ sshPublicKey: {
312
+ entity: publicKeyEntity,
313
+ required: false
314
+ },
315
+ sshKeyPair: {
316
+ entity: keyPairEntity,
317
+ required: false
318
+ }
319
+ },
320
+ outputs: {
321
+ server: serverEntity
322
+ },
323
+ meta: {
324
+ displayName: "Proxmox Virtual Machine",
325
+ description: "The virtual machine on a Proxmox cluster.",
326
+ category: "Proxmox",
327
+ primaryIcon: "simple-icons:proxmox",
328
+ primaryIconColor: "#e56901",
329
+ secondaryIcon: "codicon:vm"
330
+ },
331
+ source: {
332
+ type: "npm",
333
+ package: "@highstate/proxmox"
334
+ }
335
+ });
336
+
337
+ var proxmox = /*#__PURE__*/Object.freeze({
338
+ __proto__: null,
339
+ clusterEntity: clusterEntity$1,
340
+ connection: connection$1,
341
+ existingImage: existingImage,
342
+ image: image,
343
+ imageEntity: imageEntity,
344
+ virtualMachine: virtualMachine
345
+ });
346
+
347
+ const clusterEntity = defineEntity({
348
+ type: "k8s.cluster",
349
+ schema: Type.Object({
350
+ kubeconfig: Type.String()
351
+ }),
352
+ meta: {
353
+ color: "#2196F3"
354
+ }
355
+ });
356
+ const routeEntity = defineEntity({
357
+ type: "k8s.route",
358
+ schema: Type.Object({
359
+ someField: Type.String()
360
+ }),
361
+ meta: {
362
+ color: "#F44336"
363
+ }
364
+ });
365
+ const traefikGateway = defineUnit({
366
+ type: "k8s.traefik-gateway",
367
+ inputs: {
368
+ k8sCluster: clusterEntity,
369
+ ingress: routeEntity
370
+ },
371
+ outputs: {
372
+ gateway: gatewayEntity
373
+ },
374
+ meta: {
375
+ displayName: "Traefik Gateway",
376
+ description: "A Traefik gateway for routing traffic to services.",
377
+ primaryIcon: "simple-icons:traefikproxy"
378
+ },
379
+ source: {
380
+ type: "npm",
381
+ package: "@highstate/k8s"
382
+ }
383
+ });
384
+ const certManager = defineUnit({
385
+ type: "k8s.cert-manager",
386
+ inputs: {
387
+ k8sCluster: clusterEntity,
388
+ dnsProvider: dnsProviderEntity
389
+ },
390
+ outputs: {
391
+ tlsIssuer: tlsIssuerEntity
392
+ },
393
+ meta: {
394
+ displayName: "Cert Manager",
395
+ description: "A certificate manager for managing TLS certificates.",
396
+ primaryIcon: "simple-icons:letsencrypt"
397
+ },
398
+ source: {
399
+ type: "npm",
400
+ package: "@highstate/k8s"
401
+ }
402
+ });
403
+ const coredns = defineUnit({
404
+ type: "k8s.coredns",
405
+ inputs: {
406
+ k8sCluster: clusterEntity
407
+ },
408
+ outputs: {
409
+ dnsProvider: dnsProviderEntity
410
+ },
411
+ meta: {
412
+ displayName: "CoreDNS",
413
+ description: "A separate CoreDNS instance for custom DNS records.",
414
+ primaryIcon: "mdi:dns"
415
+ },
416
+ source: {
417
+ type: "npm",
418
+ package: "@highstate/k8s"
419
+ }
420
+ });
421
+
422
+ var k8s = /*#__PURE__*/Object.freeze({
423
+ __proto__: null,
424
+ certManager: certManager,
425
+ clusterEntity: clusterEntity,
426
+ coredns: coredns,
427
+ routeEntity: routeEntity,
428
+ traefikGateway: traefikGateway
429
+ });
430
+
431
+ const cluster = defineUnit({
432
+ type: "talos.cluster",
433
+ args: {
434
+ scheduleOnMasters: {
435
+ schema: Type.Optional(Type.Boolean()),
436
+ description: text`
437
+ Allow scheduling workloads on the master nodes.
438
+ By default, "true" if no worker nodes are provided.
439
+ `
440
+ }
441
+ },
442
+ inputs: {
443
+ masters: {
444
+ entity: serverEntity,
445
+ multiple: true
446
+ },
447
+ workers: {
448
+ entity: serverEntity,
449
+ multiple: true,
450
+ required: false
451
+ }
452
+ },
453
+ outputs: {
454
+ k8sCluster: clusterEntity,
455
+ egress: routeEntity
456
+ },
457
+ meta: {
458
+ displayName: "Talos Cluster",
459
+ description: "A Kubernetes cluster managed by Talos.",
460
+ category: "Talos",
461
+ color: "#2d2d2d",
462
+ primaryIcon: "simple-icons:talos",
463
+ secondaryIcon: "devicon:kubernetes"
464
+ },
465
+ source: {
466
+ type: "npm",
467
+ package: "@highstate/talos"
468
+ }
469
+ });
470
+
471
+ var talos = /*#__PURE__*/Object.freeze({
472
+ __proto__: null,
473
+ cluster: cluster
474
+ });
475
+
476
+ const backendSchema = Type.Union([Type.Literal("wireguard"), Type.Literal("amneziawg")], {
477
+ default: "wireguard"
478
+ });
479
+ const networkEntity = defineEntity({
480
+ type: "wireguard.network",
481
+ schema: Type.Object({
482
+ backend: Type.Optional(backendSchema),
483
+ preSharedKey: Type.Optional(Type.String())
484
+ })
485
+ });
486
+ const identityEntity = defineEntity({
487
+ type: "wireguard.identity",
488
+ schema: Type.Object({
489
+ network: Type.String(),
490
+ address: Type.String(),
491
+ privateKey: Type.String()
492
+ }),
493
+ meta: {
494
+ color: "#F44336"
495
+ }
496
+ });
497
+ const peerEntity = defineEntity({
498
+ type: "wireguard.peer",
499
+ schema: Type.Object({
500
+ network: Type.String(),
501
+ address: Type.String(),
502
+ publicKey: Type.String(),
503
+ endpoint: Type.Optional(Type.String())
504
+ }),
505
+ meta: {
506
+ color: "#673AB7"
507
+ }
508
+ });
509
+ const k8sNodeEntity = defineEntity({
510
+ type: "wireguard.node",
511
+ schema: Type.Object({
512
+ network: Type.String(),
513
+ address: Type.String(),
514
+ allowedIps: Type.Array(Type.String()),
515
+ endpoint: Type.Optional(Type.String()),
516
+ peers: Type.Array(Type.String())
517
+ })
518
+ });
519
+ const network = defineUnit({
520
+ type: "wireguard.network",
521
+ args: {
522
+ backend: Type.Optional(backendSchema),
523
+ preSharedKey: Type.Optional(Type.String())
524
+ },
525
+ outputs: {
526
+ network: networkEntity
527
+ },
528
+ meta: {
529
+ description: "The WireGuard network with some shared configuration.",
530
+ primaryIcon: "simple-icons:wireguard",
531
+ primaryIconColor: "#88171a",
532
+ secondaryIcon: "mdi:local-area-network-connect"
533
+ },
534
+ source: {
535
+ type: "npm",
536
+ package: "@highstate/wireguard"
537
+ }
538
+ });
539
+ const identity = defineUnit({
540
+ type: "wireguard.identity",
541
+ args: {
542
+ address: Type.String(),
543
+ endpoint: Type.Optional(Type.String())
544
+ },
545
+ inputs: {
546
+ network: networkEntity
547
+ },
548
+ outputs: {
549
+ identity: identityEntity,
550
+ peer: peerEntity
551
+ },
552
+ meta: {
553
+ description: "The WireGuard identity with the public key.",
554
+ primaryIcon: "simple-icons:wireguard",
555
+ primaryIconColor: "#88171a",
556
+ secondaryIcon: "mdi:account"
557
+ },
558
+ source: {
559
+ type: "npm",
560
+ package: "@highstate/wireguard"
561
+ }
562
+ });
563
+ const node = defineUnit({
564
+ type: "wireguard.node-k8s",
565
+ args: {
566
+ allowedIps: Type.Optional(Type.Array(Type.String())),
567
+ listenPort: Type.Optional(Type.Number()),
568
+ externalIp: Type.Optional(Type.String()),
569
+ serviceType: Type.Optional(
570
+ Type.Union([
571
+ Type.Literal("NodePort"),
572
+ Type.Literal("LoadBalancer"),
573
+ Type.Literal("ClusterIP")
574
+ ])
575
+ )
576
+ },
577
+ inputs: {
578
+ identity: identityEntity,
579
+ k8sCluster: {
580
+ entity: clusterEntity,
581
+ required: false
582
+ },
583
+ peers: {
584
+ entity: peerEntity,
585
+ multiple: true,
586
+ required: false
587
+ }
588
+ },
589
+ outputs: {
590
+ egress: routeEntity
591
+ },
592
+ meta: {
593
+ description: "The WireGuard node running on the Kubernetes.",
594
+ primaryIcon: "simple-icons:wireguard",
595
+ primaryIconColor: "#88171a",
596
+ secondaryIcon: "mdi:server"
597
+ },
598
+ source: {
599
+ type: "npm",
600
+ package: "@highstate/wireguard"
601
+ }
602
+ });
603
+ const config = defineUnit({
604
+ type: "wireguard.config",
605
+ inputs: {
606
+ identity: identityEntity,
607
+ peers: {
608
+ entity: peerEntity,
609
+ multiple: true,
610
+ required: false
611
+ }
612
+ },
613
+ meta: {
614
+ description: "Just the WireGuard configuration for the identity and peers.",
615
+ primaryIcon: "simple-icons:wireguard",
616
+ primaryIconColor: "#88171a",
617
+ secondaryIcon: "mdi:settings"
618
+ },
619
+ source: {
620
+ type: "npm",
621
+ package: "@highstate/wireguard"
622
+ }
623
+ });
624
+
625
+ var wireguard = /*#__PURE__*/Object.freeze({
626
+ __proto__: null,
627
+ backendSchema: backendSchema,
628
+ config: config,
629
+ identity: identity,
630
+ identityEntity: identityEntity,
631
+ k8sNodeEntity: k8sNodeEntity,
632
+ network: network,
633
+ networkEntity: networkEntity,
634
+ node: node,
635
+ peerEntity: peerEntity
636
+ });
637
+
638
+ const mariadbEntity = defineEntity({
639
+ type: "mariadb",
640
+ schema: Type.Object({
641
+ rootPassword: Type.String(),
642
+ databases: Type.Array(Type.String())
643
+ }),
644
+ meta: {
645
+ color: "#f06292"
646
+ }
647
+ });
648
+ const postgresqlEntity = defineEntity({
649
+ type: "postgresql",
650
+ schema: Type.Object({
651
+ rootPassword: Type.String(),
652
+ databases: Type.Array(Type.String())
653
+ }),
654
+ meta: {
655
+ color: "#336791"
656
+ }
657
+ });
658
+ const mariadb = defineUnit({
659
+ type: "apps.mariadb",
660
+ args: {
661
+ rootPassword: Type.String(),
662
+ databases: Type.Array(Type.String())
663
+ },
664
+ inputs: {
665
+ k8sCluster: clusterEntity
666
+ },
667
+ outputs: {
668
+ mariadb: {
669
+ entity: mariadbEntity,
670
+ displayName: "MariaDB"
671
+ }
672
+ },
673
+ meta: {
674
+ displayName: "MariaDB",
675
+ description: "The MariaDB database deployed on Kubernetes.",
676
+ primaryIcon: "simple-icons:mariadb",
677
+ secondaryIcon: "mdi:database"
678
+ },
679
+ source: {
680
+ type: "npm",
681
+ package: "@highstate/apps"
682
+ }
683
+ });
684
+ const postgresql = defineUnit({
685
+ type: "apps.postgresql",
686
+ args: {
687
+ rootPassword: Type.String(),
688
+ databases: Type.Array(Type.String())
689
+ },
690
+ inputs: {
691
+ k8sCluster: clusterEntity
692
+ },
693
+ outputs: {
694
+ postgresql: {
695
+ entity: postgresqlEntity,
696
+ displayName: "PostgreSQL"
697
+ }
698
+ },
699
+ meta: {
700
+ displayName: "PostgreSQL",
701
+ description: "The PostgreSQL database deployed on Kubernetes.",
702
+ primaryIcon: "simple-icons:postgresql",
703
+ secondaryIcon: "mdi:database"
704
+ },
705
+ source: {
706
+ type: "npm",
707
+ package: "@highstate/apps"
708
+ }
709
+ });
710
+ const vaultwarden = defineUnit({
711
+ type: "apps.vaultwarden",
712
+ args: {
713
+ domain: Type.String()
714
+ },
715
+ inputs: {
716
+ mariadb: {
717
+ entity: mariadbEntity,
718
+ displayName: "MariaDB"
719
+ },
720
+ accessPoint: accessPointEntity
721
+ },
722
+ meta: {
723
+ displayName: "Vaultwarden",
724
+ description: "The Vaultwarden password manager deployed on Kubernetes.",
725
+ primaryIcon: "simple-icons:vaultwarden"
726
+ },
727
+ source: {
728
+ type: "npm",
729
+ package: "@highstate/apps"
730
+ }
731
+ });
732
+ const gitea = defineUnit({
733
+ type: "apps.gitea",
734
+ args: {
735
+ domain: Type.String()
736
+ },
737
+ inputs: {
738
+ mariadb: {
739
+ entity: mariadbEntity,
740
+ displayName: "MariaDB"
741
+ },
742
+ accessPoint: accessPointEntity
743
+ },
744
+ meta: {
745
+ displayName: "Gitea",
746
+ description: "The Gitea Git server deployed on Kubernetes.",
747
+ primaryIcon: "simple-icons:gitea"
748
+ },
749
+ source: {
750
+ type: "npm",
751
+ package: "@highstate/apps"
752
+ }
753
+ });
754
+ const zitadel = defineUnit({
755
+ type: "apps.zitadel",
756
+ args: {
757
+ domain: Type.String()
758
+ },
759
+ inputs: {
760
+ postgresql: {
761
+ entity: postgresqlEntity,
762
+ displayName: "PostgreSQL"
763
+ },
764
+ accessPoint: accessPointEntity
765
+ },
766
+ meta: {
767
+ displayName: "Zitadel",
768
+ description: "The Zitadel IAM deployed on Kubernetes.",
769
+ primaryIcon: "hugeicons:access"
770
+ },
771
+ source: {
772
+ type: "npm",
773
+ package: "@highstate/apps"
774
+ }
775
+ });
776
+
777
+ var apps = /*#__PURE__*/Object.freeze({
778
+ __proto__: null,
779
+ gitea: gitea,
780
+ mariadb: mariadb,
781
+ mariadbEntity: mariadbEntity,
782
+ postgresql: postgresql,
783
+ postgresqlEntity: postgresqlEntity,
784
+ vaultwarden: vaultwarden,
785
+ zitadel: zitadel
786
+ });
787
+
788
+ const connectionEntity = defineEntity({
789
+ type: "cloudflare.connection",
790
+ schema: Type.Object({
791
+ apiKey: Type.String()
792
+ }),
793
+ meta: {
794
+ color: "#f38020"
795
+ }
796
+ });
797
+ const connection = defineUnit({
798
+ type: "cloudflare.connection",
799
+ args: {
800
+ apiKey: {
801
+ schema: Type.String(),
802
+ secret: true
803
+ }
804
+ },
805
+ outputs: {
806
+ connection: connectionEntity
807
+ },
808
+ meta: {
809
+ displayName: "Cloudflare Connection",
810
+ description: "Creates a new Cloudflare connection.",
811
+ primaryIcon: "simple-icons:cloudflare"
812
+ },
813
+ source: {
814
+ type: "npm",
815
+ package: "@highstate/cloudflare"
816
+ }
817
+ });
818
+ const zone = defineUnit({
819
+ type: "cloudflare.zone",
820
+ args: {
821
+ zoneId: Type.String(),
822
+ domain: Type.String()
823
+ },
824
+ inputs: {
825
+ connection: connectionEntity
826
+ },
827
+ outputs: {
828
+ dnsProvider: dnsProviderEntity
829
+ },
830
+ meta: {
831
+ displayName: "Cloudflare Zone",
832
+ description: "Creates a new Cloudflare zone.",
833
+ primaryIcon: "simple-icons:cloudflare",
834
+ secondaryIcon: "material-symbols:domain"
835
+ },
836
+ source: {
837
+ type: "npm",
838
+ package: "@highstate/cloudflare"
839
+ }
840
+ });
841
+
842
+ var cloudflare = /*#__PURE__*/Object.freeze({
843
+ __proto__: null,
844
+ connection: connection,
845
+ connectionEntity: connectionEntity,
846
+ zone: zone
847
+ });
848
+
849
+ export { apps, cloudflare, common, k8s, proxmox, ssh, talos, wireguard };