@tyevco/pulumi-homelab 0.5.2 → 0.5.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.
Files changed (128) hide show
  1. package/dist/composeDiff.d.ts +16 -0
  2. package/dist/composeDiff.js +171 -0
  3. package/dist/composeDiff.js.map +1 -0
  4. package/dist/dockgeClient.d.ts +67 -0
  5. package/dist/dockgeClient.js +152 -0
  6. package/dist/dockgeClient.js.map +1 -0
  7. package/dist/envDiff.d.ts +5 -0
  8. package/dist/envDiff.js +45 -0
  9. package/dist/envDiff.js.map +1 -0
  10. package/dist/helpers.d.ts +28 -0
  11. package/dist/helpers.js +113 -0
  12. package/dist/helpers.js.map +1 -0
  13. package/dist/homelabClient.d.ts +103 -0
  14. package/dist/homelabClient.js +202 -0
  15. package/dist/homelabClient.js.map +1 -0
  16. package/dist/index.d.ts +1 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/opnsenseClient.d.ts +142 -0
  19. package/dist/opnsenseClient.js +592 -0
  20. package/dist/opnsenseClient.js.map +1 -0
  21. package/dist/provider.d.ts +7 -0
  22. package/dist/provider.js +118 -0
  23. package/dist/provider.js.map +1 -0
  24. package/dist/resources/dockgeStack.d.ts +1 -0
  25. package/dist/resources/dockgeStack.js +7 -0
  26. package/dist/resources/dockgeStack.js.map +1 -0
  27. package/dist/resources/lxcContainer.d.ts +9 -0
  28. package/dist/resources/lxcContainer.js +286 -0
  29. package/dist/resources/lxcContainer.js.map +1 -0
  30. package/dist/resources/notificationSettings.d.ts +9 -0
  31. package/dist/resources/notificationSettings.js +171 -0
  32. package/dist/resources/notificationSettings.js.map +1 -0
  33. package/dist/resources/opnsenseAlias.d.ts +9 -0
  34. package/dist/resources/opnsenseAlias.js +188 -0
  35. package/dist/resources/opnsenseAlias.js.map +1 -0
  36. package/dist/resources/opnsenseFirewallRule.d.ts +9 -0
  37. package/dist/resources/opnsenseFirewallRule.js +208 -0
  38. package/dist/resources/opnsenseFirewallRule.js.map +1 -0
  39. package/dist/resources/opnsenseUnboundAcl.d.ts +9 -0
  40. package/dist/resources/opnsenseUnboundAcl.js +193 -0
  41. package/dist/resources/opnsenseUnboundAcl.js.map +1 -0
  42. package/dist/resources/opnsenseUnboundDnsbl.d.ts +9 -0
  43. package/dist/resources/opnsenseUnboundDnsbl.js +186 -0
  44. package/dist/resources/opnsenseUnboundDnsbl.js.map +1 -0
  45. package/dist/resources/opnsenseUnboundForward.d.ts +9 -0
  46. package/dist/resources/opnsenseUnboundForward.js +195 -0
  47. package/dist/resources/opnsenseUnboundForward.js.map +1 -0
  48. package/dist/resources/opnsenseUnboundHostOverride.d.ts +9 -0
  49. package/dist/resources/opnsenseUnboundHostOverride.js +193 -0
  50. package/dist/resources/opnsenseUnboundHostOverride.js.map +1 -0
  51. package/dist/resources/stack.d.ts +9 -0
  52. package/dist/resources/stack.js +314 -0
  53. package/dist/resources/stack.js.map +1 -0
  54. package/dist/resources/traefikRoute.d.ts +9 -0
  55. package/dist/resources/traefikRoute.js +217 -0
  56. package/dist/resources/traefikRoute.js.map +1 -0
  57. package/dist/resources/traefikStaticConfig.d.ts +9 -0
  58. package/dist/resources/traefikStaticConfig.js +180 -0
  59. package/dist/resources/traefikStaticConfig.js.map +1 -0
  60. package/dist/resources/unraidVm.d.ts +9 -0
  61. package/dist/resources/unraidVm.js +225 -0
  62. package/dist/resources/unraidVm.js.map +1 -0
  63. package/package.json +6 -1
  64. package/.github/workflows/ci.yml +0 -42
  65. package/.github/workflows/release-please.yml +0 -88
  66. package/.github/workflows/release.yml +0 -87
  67. package/.release-please-manifest.json +0 -3
  68. package/CHANGELOG.md +0 -102
  69. package/CLAUDE.md +0 -35
  70. package/jest.config.js +0 -23
  71. package/pulumi-resource-homelab +0 -3
  72. package/pulumi-resource-homelab.cmd +0 -2
  73. package/release-please-config.json +0 -22
  74. package/sdk/nodejs/index.d.ts +0 -13
  75. package/sdk/nodejs/lxcContainer.d.ts +0 -34
  76. package/sdk/nodejs/notificationSettings.d.ts +0 -46
  77. package/sdk/nodejs/opnsenseAlias.d.ts +0 -22
  78. package/sdk/nodejs/opnsenseFirewallRule.d.ts +0 -49
  79. package/sdk/nodejs/opnsenseUnboundAcl.d.ts +0 -22
  80. package/sdk/nodejs/opnsenseUnboundDnsbl.d.ts +0 -40
  81. package/sdk/nodejs/opnsenseUnboundForward.d.ts +0 -34
  82. package/sdk/nodejs/opnsenseUnboundHostOverride.d.ts +0 -40
  83. package/sdk/nodejs/package-lock.json +0 -2967
  84. package/sdk/nodejs/package.json +0 -35
  85. package/sdk/nodejs/provider.d.ts +0 -29
  86. package/sdk/nodejs/stack.d.ts +0 -67
  87. package/sdk/nodejs/traefikRoute.d.ts +0 -16
  88. package/sdk/nodejs/traefikStaticConfig.d.ts +0 -13
  89. package/sdk/nodejs/unraidVm.d.ts +0 -32
  90. package/src/composeDiff.ts +0 -197
  91. package/src/envDiff.ts +0 -41
  92. package/src/helpers.ts +0 -114
  93. package/src/homelabClient.ts +0 -316
  94. package/src/index.ts +0 -218
  95. package/src/opnsenseClient.ts +0 -553
  96. package/src/provider.ts +0 -100
  97. package/src/resources/lxcContainer.ts +0 -285
  98. package/src/resources/notificationSettings.ts +0 -157
  99. package/src/resources/opnsenseAlias.ts +0 -176
  100. package/src/resources/opnsenseFirewallRule.ts +0 -194
  101. package/src/resources/opnsenseUnboundAcl.ts +0 -182
  102. package/src/resources/opnsenseUnboundDnsbl.ts +0 -174
  103. package/src/resources/opnsenseUnboundForward.ts +0 -182
  104. package/src/resources/opnsenseUnboundHostOverride.ts +0 -180
  105. package/src/resources/stack.ts +0 -326
  106. package/src/resources/traefikRoute.ts +0 -199
  107. package/src/resources/traefikStaticConfig.ts +0 -157
  108. package/src/resources/unraidVm.ts +0 -217
  109. package/tests/composeDiff.test.ts +0 -256
  110. package/tests/envDiff.test.ts +0 -84
  111. package/tests/helpers.test.ts +0 -313
  112. package/tests/homelabClient.test.ts +0 -530
  113. package/tests/lxcClient.test.ts +0 -240
  114. package/tests/lxcContainer.test.ts +0 -504
  115. package/tests/notificationSettings.test.ts +0 -197
  116. package/tests/opnsenseAlias.test.ts +0 -383
  117. package/tests/opnsenseClient.test.ts +0 -1669
  118. package/tests/opnsenseFirewallRule.test.ts +0 -397
  119. package/tests/opnsenseUnboundAcl.test.ts +0 -316
  120. package/tests/opnsenseUnboundDnsbl.test.ts +0 -314
  121. package/tests/opnsenseUnboundForward.test.ts +0 -305
  122. package/tests/opnsenseUnboundHostOverride.test.ts +0 -320
  123. package/tests/provider.test.ts +0 -243
  124. package/tests/stack.test.ts +0 -675
  125. package/tests/testUtils.ts +0 -123
  126. package/tests/traefikRoute.test.ts +0 -565
  127. package/tests/unraidVm.test.ts +0 -272
  128. package/tsconfig.json +0 -18
@@ -0,0 +1,103 @@
1
+ export interface HomelabClientConfig {
2
+ url: string;
3
+ apiKey: string;
4
+ endpoint?: string;
5
+ }
6
+ export interface ContainerInfo {
7
+ name: string;
8
+ service: string;
9
+ image: string;
10
+ state: string;
11
+ status: string;
12
+ health: string;
13
+ ports: string[];
14
+ }
15
+ export interface ExtraFile {
16
+ name: string;
17
+ content: string;
18
+ }
19
+ export interface StackInfo {
20
+ name: string;
21
+ status: string;
22
+ composeYaml: string;
23
+ envFile: string;
24
+ composeOverride: string;
25
+ autostart: boolean;
26
+ displayName: string;
27
+ containers: ContainerInfo[];
28
+ extraFiles: ExtraFile[];
29
+ }
30
+ export declare function configureClient(config: HomelabClientConfig): void;
31
+ export declare function ensureConfigured(): HomelabClientConfig;
32
+ export interface TraefikStaticInfo {
33
+ content: string;
34
+ lastModified: string;
35
+ }
36
+ export interface TraefikRouteInfo {
37
+ name: string;
38
+ content: string;
39
+ lastModified: string;
40
+ }
41
+ export interface AgentCapabilities {
42
+ lxcAvailable?: boolean;
43
+ version?: string;
44
+ }
45
+ export interface AgentInfo {
46
+ url: string;
47
+ username: string;
48
+ endpoint: string;
49
+ capabilities: AgentCapabilities;
50
+ }
51
+ export declare function listAgents(): Promise<AgentInfo[]>;
52
+ export declare function listStacks(): Promise<StackInfo[]>;
53
+ export declare function getStack(name: string): Promise<StackInfo>;
54
+ export declare function createStack(name: string, composeYaml: string, envFile?: string, start?: boolean, composeOverride?: string, autostart?: boolean, displayName?: string, extraFiles?: ExtraFile[]): Promise<StackInfo>;
55
+ export declare function updateStack(name: string, composeYaml: string, envFile?: string, composeOverride?: string, autostart?: boolean, displayName?: string, extraFiles?: ExtraFile[]): Promise<StackInfo>;
56
+ export declare function deleteStack(name: string): Promise<void>;
57
+ export declare function startStack(name: string): Promise<StackInfo>;
58
+ export declare function stopStack(name: string): Promise<StackInfo>;
59
+ export declare function getTraefikStatic(): Promise<TraefikStaticInfo>;
60
+ export declare function putTraefikStatic(content: string): Promise<TraefikStaticInfo>;
61
+ export declare function listTraefikRoutes(): Promise<TraefikRouteInfo[]>;
62
+ export declare function getTraefikRoute(name: string): Promise<TraefikRouteInfo>;
63
+ export declare function putTraefikRoute(name: string, content: string): Promise<TraefikRouteInfo>;
64
+ export declare function deleteTraefikRoute(name: string): Promise<void>;
65
+ export interface LxcContainerInfo {
66
+ name: string;
67
+ status: number;
68
+ type: string;
69
+ ip: string;
70
+ autostart: boolean;
71
+ pid: number;
72
+ memory: string;
73
+ config: string;
74
+ }
75
+ export declare function listLxcContainers(): Promise<LxcContainerInfo[]>;
76
+ export declare function getLxcContainer(name: string): Promise<LxcContainerInfo>;
77
+ export declare function getLxcDistributions(): Promise<string[]>;
78
+ export declare function createLxcContainer(name: string, dist: string, release: string, arch: string): Promise<void>;
79
+ export declare function deleteLxcContainer(name: string): Promise<void>;
80
+ export declare function saveLxcConfig(name: string, config: string): Promise<void>;
81
+ export declare function startLxcContainer(name: string): Promise<void>;
82
+ export declare function stopLxcContainer(name: string): Promise<void>;
83
+ export declare function cloneLxcContainer(sourceName: string, destName: string, initialConfig?: string): Promise<void>;
84
+ export interface NotificationSettings {
85
+ ntfyEnabled?: boolean;
86
+ ntfyUrl?: string;
87
+ discordEnabled?: boolean;
88
+ discordWebhookUrl?: string;
89
+ gotifyEnabled?: boolean;
90
+ gotifyUrl?: string;
91
+ gotifyToken?: string;
92
+ webhookEnabled?: boolean;
93
+ webhookUrl?: string;
94
+ }
95
+ export declare function getNotificationSettings(): Promise<NotificationSettings>;
96
+ export declare function saveNotificationSettings(settings: NotificationSettings): Promise<NotificationSettings>;
97
+ export interface UnraidVmInfo {
98
+ name: string;
99
+ state: string;
100
+ }
101
+ export declare function listUnraidVms(endpoint?: string): Promise<UnraidVmInfo[]>;
102
+ export declare function startUnraidVm(name: string, endpoint?: string): Promise<void>;
103
+ export declare function stopUnraidVm(name: string, endpoint?: string): Promise<void>;
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.configureClient = configureClient;
7
+ exports.ensureConfigured = ensureConfigured;
8
+ exports.listAgents = listAgents;
9
+ exports.listStacks = listStacks;
10
+ exports.getStack = getStack;
11
+ exports.createStack = createStack;
12
+ exports.updateStack = updateStack;
13
+ exports.deleteStack = deleteStack;
14
+ exports.startStack = startStack;
15
+ exports.stopStack = stopStack;
16
+ exports.getTraefikStatic = getTraefikStatic;
17
+ exports.putTraefikStatic = putTraefikStatic;
18
+ exports.listTraefikRoutes = listTraefikRoutes;
19
+ exports.getTraefikRoute = getTraefikRoute;
20
+ exports.putTraefikRoute = putTraefikRoute;
21
+ exports.deleteTraefikRoute = deleteTraefikRoute;
22
+ exports.listLxcContainers = listLxcContainers;
23
+ exports.getLxcContainer = getLxcContainer;
24
+ exports.getLxcDistributions = getLxcDistributions;
25
+ exports.createLxcContainer = createLxcContainer;
26
+ exports.deleteLxcContainer = deleteLxcContainer;
27
+ exports.saveLxcConfig = saveLxcConfig;
28
+ exports.startLxcContainer = startLxcContainer;
29
+ exports.stopLxcContainer = stopLxcContainer;
30
+ exports.cloneLxcContainer = cloneLxcContainer;
31
+ exports.getNotificationSettings = getNotificationSettings;
32
+ exports.saveNotificationSettings = saveNotificationSettings;
33
+ exports.listUnraidVms = listUnraidVms;
34
+ exports.startUnraidVm = startUnraidVm;
35
+ exports.stopUnraidVm = stopUnraidVm;
36
+ const cross_fetch_1 = __importDefault(require("cross-fetch"));
37
+ let currentConfig = null;
38
+ function configureClient(config) {
39
+ currentConfig = config;
40
+ }
41
+ function ensureConfigured() {
42
+ if (!currentConfig) {
43
+ throw new Error("Homelab provider not configured. Set homelab:url and homelab:apiKey via pulumi config.");
44
+ }
45
+ return currentConfig;
46
+ }
47
+ function baseUrl() {
48
+ const config = ensureConfigured();
49
+ return config.url.replace(/\/+$/, "");
50
+ }
51
+ function headers() {
52
+ const config = ensureConfigured();
53
+ return {
54
+ "Authorization": `Bearer ${config.apiKey}`,
55
+ "Content-Type": "application/json",
56
+ };
57
+ }
58
+ function endpointQuery() {
59
+ const config = ensureConfigured();
60
+ return config.endpoint ? `?endpoint=${encodeURIComponent(config.endpoint)}` : "";
61
+ }
62
+ async function request(method, path, body) {
63
+ const url = `${baseUrl()}${path}`;
64
+ const res = await (0, cross_fetch_1.default)(url, {
65
+ method,
66
+ headers: headers(),
67
+ body: body ? JSON.stringify(body) : undefined,
68
+ });
69
+ if (res.status === 204) {
70
+ return undefined;
71
+ }
72
+ if (!res.ok) {
73
+ const text = await res.text();
74
+ let message;
75
+ try {
76
+ const json = JSON.parse(text);
77
+ message = json.message || json.error || text;
78
+ }
79
+ catch {
80
+ message = text;
81
+ }
82
+ throw new Error(`Homelab API ${method} ${path} failed (${res.status}): ${message}`);
83
+ }
84
+ return res.json();
85
+ }
86
+ async function listAgents() {
87
+ const res = await request("GET", "/api/agents");
88
+ return res.agents;
89
+ }
90
+ async function listStacks() {
91
+ return request("GET", "/api/stacks");
92
+ }
93
+ async function getStack(name) {
94
+ return request("GET", `/api/stacks/${encodeURIComponent(name)}`);
95
+ }
96
+ async function createStack(name, composeYaml, envFile, start, composeOverride, autostart, displayName, extraFiles) {
97
+ return request("POST", "/api/stacks", {
98
+ name,
99
+ composeYaml,
100
+ envFile: envFile || "",
101
+ start: start !== false,
102
+ composeOverride: composeOverride || "",
103
+ autostart: autostart || false,
104
+ displayName: displayName || "",
105
+ extraFiles: extraFiles || [],
106
+ });
107
+ }
108
+ async function updateStack(name, composeYaml, envFile, composeOverride, autostart, displayName, extraFiles) {
109
+ return request("PUT", `/api/stacks/${encodeURIComponent(name)}`, {
110
+ composeYaml,
111
+ envFile: envFile || "",
112
+ composeOverride: composeOverride !== undefined ? composeOverride : undefined,
113
+ autostart: autostart !== undefined ? autostart : undefined,
114
+ displayName: displayName !== undefined ? displayName : undefined,
115
+ extraFiles: extraFiles !== undefined ? extraFiles : undefined,
116
+ });
117
+ }
118
+ async function deleteStack(name) {
119
+ await request("DELETE", `/api/stacks/${encodeURIComponent(name)}`);
120
+ }
121
+ async function startStack(name) {
122
+ return request("POST", `/api/stacks/${encodeURIComponent(name)}/start`);
123
+ }
124
+ async function stopStack(name) {
125
+ return request("POST", `/api/stacks/${encodeURIComponent(name)}/stop`);
126
+ }
127
+ // Traefik API functions
128
+ async function getTraefikStatic() {
129
+ return request("GET", "/api/traefik/static");
130
+ }
131
+ async function putTraefikStatic(content) {
132
+ return request("PUT", "/api/traefik/static", { content });
133
+ }
134
+ async function listTraefikRoutes() {
135
+ return request("GET", "/api/traefik/routes");
136
+ }
137
+ async function getTraefikRoute(name) {
138
+ return request("GET", `/api/traefik/routes/${encodeURIComponent(name)}`);
139
+ }
140
+ async function putTraefikRoute(name, content) {
141
+ return request("PUT", `/api/traefik/routes/${encodeURIComponent(name)}`, { content });
142
+ }
143
+ async function deleteTraefikRoute(name) {
144
+ await request("DELETE", `/api/traefik/routes/${encodeURIComponent(name)}`);
145
+ }
146
+ // LXC API functions
147
+ async function listLxcContainers() {
148
+ const res = await request("GET", `/api/lxc${endpointQuery()}`);
149
+ return res.containers;
150
+ }
151
+ async function getLxcContainer(name) {
152
+ const res = await request("GET", `/api/lxc/${encodeURIComponent(name)}${endpointQuery()}`);
153
+ return res.container;
154
+ }
155
+ async function getLxcDistributions() {
156
+ const res = await request("GET", `/api/lxc/distributions${endpointQuery()}`);
157
+ return res.distributions;
158
+ }
159
+ async function createLxcContainer(name, dist, release, arch) {
160
+ await request("POST", `/api/lxc${endpointQuery()}`, { name, dist, release, arch });
161
+ }
162
+ async function deleteLxcContainer(name) {
163
+ await request("DELETE", `/api/lxc/${encodeURIComponent(name)}${endpointQuery()}`);
164
+ }
165
+ async function saveLxcConfig(name, config) {
166
+ await request("PUT", `/api/lxc/${encodeURIComponent(name)}/config${endpointQuery()}`, { config });
167
+ }
168
+ async function startLxcContainer(name) {
169
+ await request("POST", `/api/lxc/${encodeURIComponent(name)}/start${endpointQuery()}`);
170
+ }
171
+ async function stopLxcContainer(name) {
172
+ await request("POST", `/api/lxc/${encodeURIComponent(name)}/stop${endpointQuery()}`);
173
+ }
174
+ async function cloneLxcContainer(sourceName, destName, initialConfig) {
175
+ await request("POST", `/api/lxc/clone${endpointQuery()}`, {
176
+ sourceName,
177
+ destName,
178
+ initialConfig: initialConfig || "",
179
+ });
180
+ }
181
+ async function getNotificationSettings() {
182
+ const res = await request("GET", "/api/notifications");
183
+ return res.data;
184
+ }
185
+ async function saveNotificationSettings(settings) {
186
+ const res = await request("PUT", "/api/notifications", settings);
187
+ return res.data;
188
+ }
189
+ async function listUnraidVms(endpoint) {
190
+ const query = endpoint ? `?endpoint=${encodeURIComponent(endpoint)}` : "";
191
+ const res = await request("GET", `/api/unraid/vms${query}`);
192
+ return res.vms;
193
+ }
194
+ async function startUnraidVm(name, endpoint) {
195
+ const query = endpoint ? `?endpoint=${encodeURIComponent(endpoint)}` : "";
196
+ await request("POST", `/api/unraid/vms/${encodeURIComponent(name)}/start${query}`);
197
+ }
198
+ async function stopUnraidVm(name, endpoint) {
199
+ const query = endpoint ? `?endpoint=${encodeURIComponent(endpoint)}` : "";
200
+ await request("POST", `/api/unraid/vms/${encodeURIComponent(name)}/stop${query}`);
201
+ }
202
+ //# sourceMappingURL=homelabClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"homelabClient.js","sourceRoot":"","sources":["../src/homelabClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,oDAAsC;AACtC,uCAAyE;AACzE,mDAAkD;AAClD,qDAA2D;AAC3D,yCAAuH;AAEvH,MAAM,aAAa,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAC;AAClE,MAAM,YAAY,GAAG,OAAO,CAAC,uCAAuC,CAAC,CAAC;AACtE,MAAM,WAAW,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC;AAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,0CAA0C,CAAC,CAAC;AAEvE,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,EACzC,OAAO,CACR,CAAC;AAEF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CACrE,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,aAAa,CACX,IAAoC,EACpC,QAAiC;QAEjC,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;QAC9C,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACzC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,CACP,IAAoC,EACpC,QAAiC;QAEjC,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,iBAAiB,EAAE,CAAC;QACvD,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,CACP,IAAoC,EACpC,QAAiC;QAEjC,MAAM,IAAI,GAAG,IAAA,wBAAc,EAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAEpD,iDAAiD;QACjD,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1E,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,CAAC,IAAI,EAAE,CAAC;QACnF,MAAM,QAAQ,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,yBAAyB,CAAC,CAAC,IAAI,SAAS,CAAC;QAEhG,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;YAClB,IAAA,+BAAe,EAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,iCAAiC;QACjC,MAAM,WAAW,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,4BAA4B,CAAC,CAAC,IAAI,EAAE,CAAC;QAClG,MAAM,cAAc,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,+BAA+B,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3G,MAAM,iBAAiB,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,kCAAkC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpH,MAAM,gBAAgB,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,iCAAiC,CAAC,CAAC,IAAI,KAAK,CAAC;QAEpH,IAAI,WAAW,IAAI,cAAc,IAAI,iBAAiB,EAAE,CAAC;YACvD,IAAA,wCAAuB,EAAC;gBACtB,GAAG,EAAE,WAAW;gBAChB,MAAM,EAAE,cAAc;gBACtB,SAAS,EAAE,iBAAiB;gBAC5B,QAAQ,EAAE,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,KAAK,MAAM;aACnE,CAAC,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,iBAAiB,EAAE,CAAC;QACvD,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAChC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,WAAW,CACT,IAAoC,EACpC,QAAiC;QAEjC,MAAM,IAAI,GAAG,IAAA,wBAAc,EAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAU,EAAE,CAAC;QAE3B,sEAAsE;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;YACjD,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC9B,OAAO,CAAC,SAAS,CAAC,kGAAkG,CAAC,CAAC;YACtH,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,GAAG,IAAI,MAAM,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;YACjD,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,CAAC,SAAS,CAAC,sFAAsF,CAAC,CAAC;YAC1G,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAED,iGAAiG;QACjG,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,WAAW,GAAG,WAAW,IAAI,cAAc,IAAI,iBAAiB,CAAC;QACvE,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;gBACjD,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBACnC,OAAO,CAAC,SAAS,CAAC,sHAAsH,CAAC,CAAC;gBAC1I,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;YACD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;gBACjD,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBACtC,OAAO,CAAC,SAAS,CAAC,qIAAqI,CAAC,CAAC;gBACzJ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;YACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;gBACjD,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBACzC,OAAO,CAAC,SAAS,CAAC,8IAA8I,CAAC,CAAC;gBAClK,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;QACnD,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3C,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,UAAU,CACR,IAAoC,EACpC,QAAiC;QAEjC,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;QAClD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CACH,IAAoC,EACpC,QAAiC;QAEjC,IAAA,wBAAa,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,CACF,IAAoC,EACpC,QAAiC;QAEjC,IAAA,uBAAY,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CACJ,IAAoC,EACpC,QAAiC;QAEjC,IAAA,yBAAc,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CACF,IAAoC,EACpC,QAAiC;QAEjC,IAAA,uBAAY,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CACJ,IAAoC,EACpC,QAAiC;QAEjC,IAAA,yBAAc,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CACJ,IAAoC,EACpC,QAAiC;QAEjC,IAAA,yBAAc,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CACJ,IAAoC,EACpC,QAAiC;QAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAClC,QAAQ,CAAC;YACP,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;YAC/B,OAAO,EAAE,qBAAqB,GAAG,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CACJ,IAAoC,EACpC,QAAiC;QAEjC,QAAQ,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;IACzC,CAAC;CACF,CAAC;AAEF,oBAAoB;AACpB,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AACjC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC;AAEtE,MAAM,CAAC,SAAS,CACd,aAAa,EACb,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,EACvC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;IACZ,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,CAAC,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,oCAAoC;IACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC,CACF,CAAC"}
@@ -0,0 +1,142 @@
1
+ export interface OpnsenseClientConfig {
2
+ url: string;
3
+ apiKey: string;
4
+ apiSecret: string;
5
+ insecure?: boolean;
6
+ }
7
+ export declare function configureOpnsenseClient(config: OpnsenseClientConfig): void;
8
+ export declare function ensureOpnsenseConfigured(): OpnsenseClientConfig;
9
+ export declare function normalizeGetItemResponse<T extends Record<string, any>>(data: T): T;
10
+ export declare function withFirewallApply<T>(fn: () => Promise<T>): Promise<T>;
11
+ export interface FirewallRuleData {
12
+ description?: string;
13
+ interface?: string;
14
+ ipprotocol?: string;
15
+ protocol?: string;
16
+ source_net?: string;
17
+ source_port?: string;
18
+ destination_net?: string;
19
+ destination_port?: string;
20
+ action?: string;
21
+ direction?: string;
22
+ log?: string;
23
+ quick?: string;
24
+ disabled?: string;
25
+ sequence?: string;
26
+ }
27
+ export interface FirewallRuleResponse {
28
+ uuid?: string;
29
+ rule?: FirewallRuleData;
30
+ }
31
+ export declare function addFirewallRule(rule: FirewallRuleData): Promise<{
32
+ uuid: string;
33
+ }>;
34
+ export declare function getFirewallRule(uuid: string): Promise<{
35
+ rule: FirewallRuleData;
36
+ }>;
37
+ export declare function setFirewallRule(uuid: string, rule: FirewallRuleData): Promise<void>;
38
+ export declare function delFirewallRule(uuid: string): Promise<void>;
39
+ export interface AliasData {
40
+ name?: string;
41
+ type?: string;
42
+ content?: string;
43
+ description?: string;
44
+ enabled?: string;
45
+ }
46
+ export declare function addAlias(alias: AliasData): Promise<{
47
+ uuid: string;
48
+ }>;
49
+ export declare function getAlias(uuid: string): Promise<{
50
+ alias: AliasData;
51
+ }>;
52
+ export declare function setAlias(uuid: string, alias: AliasData): Promise<void>;
53
+ export declare function delAlias(uuid: string): Promise<void>;
54
+ export declare function withUnboundReconfigure<T>(fn: () => Promise<T>): Promise<T>;
55
+ export interface HostOverrideData {
56
+ enabled?: string;
57
+ hostname?: string;
58
+ domain?: string;
59
+ rr?: string;
60
+ server?: string;
61
+ mxprio?: string;
62
+ mx?: string;
63
+ txtdata?: string;
64
+ ttl?: string;
65
+ addptr?: string;
66
+ description?: string;
67
+ }
68
+ export declare function addHostOverride(hostoverride: HostOverrideData): Promise<{
69
+ uuid: string;
70
+ }>;
71
+ export declare function getHostOverride(uuid: string): Promise<{
72
+ hostoverride: HostOverrideData;
73
+ }>;
74
+ export declare function setHostOverride(uuid: string, hostoverride: HostOverrideData): Promise<void>;
75
+ export declare function delHostOverride(uuid: string): Promise<void>;
76
+ export interface ForwardData {
77
+ enabled?: string;
78
+ type?: string;
79
+ domain?: string;
80
+ server?: string;
81
+ port?: string;
82
+ verify?: string;
83
+ forward_tcp_upstream?: string;
84
+ forward_first?: string;
85
+ description?: string;
86
+ }
87
+ export declare function addForward(forward: ForwardData): Promise<{
88
+ uuid: string;
89
+ }>;
90
+ export declare function getForward(uuid: string): Promise<{
91
+ forward: ForwardData;
92
+ }>;
93
+ export declare function setForward(uuid: string, forward: ForwardData): Promise<void>;
94
+ export declare function delForward(uuid: string): Promise<void>;
95
+ export interface AclData {
96
+ enabled?: string;
97
+ name?: string;
98
+ action?: string;
99
+ networks?: string;
100
+ description?: string;
101
+ }
102
+ export declare function addAcl(acl: AclData): Promise<{
103
+ uuid: string;
104
+ }>;
105
+ export declare function getAcl(uuid: string): Promise<{
106
+ acl: AclData;
107
+ }>;
108
+ export declare function setAcl(uuid: string, acl: AclData): Promise<void>;
109
+ export declare function delAcl(uuid: string): Promise<void>;
110
+ export interface DnsblData {
111
+ enabled?: string;
112
+ type?: string;
113
+ lists?: string;
114
+ allowlists?: string;
115
+ blocklists?: string;
116
+ wildcards?: string;
117
+ source_nets?: string;
118
+ address?: string;
119
+ nxdomain?: string;
120
+ cache_ttl?: string;
121
+ description?: string;
122
+ }
123
+ export declare function addDnsbl(dnsbl: DnsblData): Promise<{
124
+ uuid: string;
125
+ }>;
126
+ export declare function getDnsbl(uuid: string): Promise<{
127
+ dnsbl: DnsblData;
128
+ }>;
129
+ export declare function setDnsbl(uuid: string, dnsbl: DnsblData): Promise<void>;
130
+ export declare function delDnsbl(uuid: string): Promise<void>;
131
+ export declare function ruleToApi(inputs: Record<string, any>): FirewallRuleData;
132
+ export declare function ruleFromApi(rule: FirewallRuleData): Record<string, any>;
133
+ export declare function aliasToApi(inputs: Record<string, any>): AliasData;
134
+ export declare function aliasFromApi(alias: AliasData): Record<string, any>;
135
+ export declare function hostOverrideToApi(inputs: Record<string, any>): HostOverrideData;
136
+ export declare function hostOverrideFromApi(data: HostOverrideData): Record<string, any>;
137
+ export declare function forwardToApi(inputs: Record<string, any>): ForwardData;
138
+ export declare function forwardFromApi(data: ForwardData): Record<string, any>;
139
+ export declare function aclToApi(inputs: Record<string, any>): AclData;
140
+ export declare function aclFromApi(data: AclData): Record<string, any>;
141
+ export declare function dnsblToApi(inputs: Record<string, any>): DnsblData;
142
+ export declare function dnsblFromApi(data: DnsblData): Record<string, any>;