@ikalogic/at1000 0.5.2 → 0.7.0

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 (109) hide show
  1. package/build/at1000-Bav5xUM1.mjs +3 -0
  2. package/build/at1000-Bav5xUM1.mjs.map +1 -0
  3. package/build/at1000-DjoKZEha.cjs +3 -0
  4. package/build/at1000-DjoKZEha.cjs.map +1 -0
  5. package/build/browser.cjs +1 -1
  6. package/build/browser.cjs.map +1 -1
  7. package/build/browser.d.cts +3 -3
  8. package/build/browser.d.cts.map +1 -1
  9. package/build/browser.d.mts +3 -3
  10. package/build/browser.d.mts.map +1 -1
  11. package/build/browser.mjs +1 -1
  12. package/build/browser.mjs.map +1 -1
  13. package/build/{com-DN1l6xqC.d.cts → com-Bkkgrsep.d.cts} +177 -177
  14. package/build/{com-DN1l6xqC.d.cts.map → com-Bkkgrsep.d.cts.map} +1 -1
  15. package/build/{com-DN1l6xqC.d.mts → com-Bkkgrsep.d.mts} +177 -177
  16. package/build/{com-DN1l6xqC.d.mts.map → com-Bkkgrsep.d.mts.map} +1 -1
  17. package/build/com.cjs +1 -1
  18. package/build/com.d.cts +1 -1
  19. package/build/com.d.mts +1 -1
  20. package/build/{common-BSrNhbq_.cjs → common-BUohXSqz.cjs} +2 -2
  21. package/build/{common-BSrNhbq_.cjs.map → common-BUohXSqz.cjs.map} +1 -1
  22. package/build/{events-Cf7iAMZP.d.cts → events-8aTmwMUi.d.cts} +6 -6
  23. package/build/events-8aTmwMUi.d.cts.map +1 -0
  24. package/build/{events-Cf7iAMZP.d.mts → events-8aTmwMUi.d.mts} +6 -6
  25. package/build/events-8aTmwMUi.d.mts.map +1 -0
  26. package/build/events.cjs +1 -1
  27. package/build/events.d.cts +1 -1
  28. package/build/events.d.mts +1 -1
  29. package/build/events.mjs +1 -1
  30. package/build/gpio-5-tRkdTW.d.mts +712 -0
  31. package/build/gpio-5-tRkdTW.d.mts.map +1 -0
  32. package/build/gpio-D3QEeLKh.d.cts +712 -0
  33. package/build/gpio-D3QEeLKh.d.cts.map +1 -0
  34. package/build/gpio.cjs +1 -1
  35. package/build/gpio.cjs.map +1 -1
  36. package/build/gpio.d.cts +2 -2
  37. package/build/gpio.d.mts +2 -2
  38. package/build/gpio.mjs +1 -1
  39. package/build/gpio.mjs.map +1 -1
  40. package/build/{hmi-B-potLdl.d.cts → hmi-BEMiVKDF.d.cts} +2 -2
  41. package/build/hmi-BEMiVKDF.d.cts.map +1 -0
  42. package/build/{hmi-B-potLdl.d.mts → hmi-BEMiVKDF.d.mts} +2 -2
  43. package/build/hmi-BEMiVKDF.d.mts.map +1 -0
  44. package/build/hmi.cjs +1 -1
  45. package/build/hmi.d.cts +1 -1
  46. package/build/hmi.d.mts +1 -1
  47. package/build/{at1000-gm586Tc9.d.mts → host-BBjSKRqs.d.mts} +18 -16
  48. package/build/host-BBjSKRqs.d.mts.map +1 -0
  49. package/build/{at1000-tUTVczQa.d.cts → host-DlP73amZ.d.cts} +18 -16
  50. package/build/host-DlP73amZ.d.cts.map +1 -0
  51. package/build/management-DqBsC1HB.cjs +7 -0
  52. package/build/management-DqBsC1HB.cjs.map +1 -0
  53. package/build/management-StKcAkgo.mjs +7 -0
  54. package/build/management-StKcAkgo.mjs.map +1 -0
  55. package/build/management.cjs +1 -1
  56. package/build/management.d.cts +75 -70
  57. package/build/management.d.cts.map +1 -1
  58. package/build/management.d.mts +75 -70
  59. package/build/management.d.mts.map +1 -1
  60. package/build/management.mjs +1 -1
  61. package/build/node.cjs +1 -1
  62. package/build/node.cjs.map +1 -1
  63. package/build/node.d.cts +3 -3
  64. package/build/node.d.cts.map +1 -1
  65. package/build/node.d.mts +3 -3
  66. package/build/node.d.mts.map +1 -1
  67. package/build/node.mjs +1 -1
  68. package/build/node.mjs.map +1 -1
  69. package/build/package-DNfLRnEC.mjs +2 -0
  70. package/build/package-DNfLRnEC.mjs.map +1 -0
  71. package/build/{package-0hAwYBa1.cjs → package-iERj9NJ6.cjs} +2 -2
  72. package/build/package-iERj9NJ6.cjs.map +1 -0
  73. package/build/{power-B8QFbKdP.d.cts → power-B3oUS0wU.d.cts} +18 -18
  74. package/build/power-B3oUS0wU.d.cts.map +1 -0
  75. package/build/{power-BZmXOJyK.d.mts → power-D08VFff6.d.mts} +18 -18
  76. package/build/power-D08VFff6.d.mts.map +1 -0
  77. package/build/power.cjs +1 -1
  78. package/build/power.cjs.map +1 -1
  79. package/build/power.d.cts +1 -1
  80. package/build/power.d.mts +1 -1
  81. package/build/power.mjs.map +1 -1
  82. package/build/relays-TADiLsPk.d.cts.map +1 -1
  83. package/build/relays-TADiLsPk.d.mts.map +1 -1
  84. package/build/relays.cjs +1 -1
  85. package/build/{rolldown-runtime-CMqjfN_6.cjs → rolldown-runtime-BocRIvOZ.cjs} +1 -1
  86. package/build/session-qWW9mqWH.d.cts.map +1 -1
  87. package/build/session-qWW9mqWH.d.mts.map +1 -1
  88. package/build/session.cjs +1 -1
  89. package/build/session.mjs +1 -1
  90. package/package.json +12 -22
  91. package/build/at1000-DbIvMQUc.cjs +0 -8
  92. package/build/at1000-DbIvMQUc.cjs.map +0 -1
  93. package/build/at1000-Zs18VzlP.mjs +0 -8
  94. package/build/at1000-Zs18VzlP.mjs.map +0 -1
  95. package/build/at1000-gm586Tc9.d.mts.map +0 -1
  96. package/build/at1000-tUTVczQa.d.cts.map +0 -1
  97. package/build/events-Cf7iAMZP.d.cts.map +0 -1
  98. package/build/events-Cf7iAMZP.d.mts.map +0 -1
  99. package/build/gpio-CsxbjhA_.d.cts +0 -406
  100. package/build/gpio-CsxbjhA_.d.cts.map +0 -1
  101. package/build/gpio-Dk-s_yMc.d.mts +0 -406
  102. package/build/gpio-Dk-s_yMc.d.mts.map +0 -1
  103. package/build/hmi-B-potLdl.d.cts.map +0 -1
  104. package/build/hmi-B-potLdl.d.mts.map +0 -1
  105. package/build/package-0hAwYBa1.cjs.map +0 -1
  106. package/build/package-CU5MagIg.mjs +0 -2
  107. package/build/package-CU5MagIg.mjs.map +0 -1
  108. package/build/power-B8QFbKdP.d.cts.map +0 -1
  109. package/build/power-BZmXOJyK.d.mts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { UpFetch } from "up-fetch";
2
2
  import * as v from "valibot";
3
3
  //#region src/api/management.d.ts
4
- declare enum CommunicationInterfaceType {
4
+ export declare enum CommunicationInterfaceType {
5
5
  Can = "can",
6
6
  Rs232 = "rs232",
7
7
  Rs485 = "rs485",
@@ -26,8 +26,8 @@ declare const info: v.ObjectSchema<{
26
26
  readonly io: v.ObjectSchema<{
27
27
  readonly count: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 1, undefined>]>;
28
28
  readonly input_voltage: v.ObjectSchema<{
29
- readonly min: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -24, undefined>, v.MaxValueAction<number, 24, undefined>]>;
30
- readonly max: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -24, undefined>, v.MaxValueAction<number, 24, undefined>]>;
29
+ readonly min: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
30
+ readonly max: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
31
31
  }, undefined>;
32
32
  readonly output_voltage: v.ObjectSchema<{
33
33
  readonly min: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -24, undefined>, v.MaxValueAction<number, 24, undefined>]>;
@@ -86,21 +86,21 @@ declare const info: v.ObjectSchema<{
86
86
  }, undefined>;
87
87
  }, undefined>;
88
88
  }, undefined>;
89
- type Information = v.InferOutput<typeof info>;
90
- declare const portMapping: v.ObjectSchema<{
89
+ export type Information = v.InferOutput<typeof info>;
90
+ export declare const portMapping: v.ObjectSchema<{
91
91
  readonly host: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 65535, undefined>]>;
92
92
  readonly container: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 65535, undefined>]>;
93
93
  readonly proto: v.PicklistSchema<["tcp", "udp"], undefined>;
94
94
  }, undefined>;
95
- type PortMapping = v.InferOutput<typeof portMapping>;
96
- declare const runMode: v.PicklistSchema<["normal", "development"], undefined>;
97
- type RunMode = v.InferOutput<typeof runMode>;
95
+ export type PortMapping = v.InferOutput<typeof portMapping>;
96
+ export declare const runMode: v.PicklistSchema<["normal", "development"], undefined>;
97
+ export type RunMode = v.InferOutput<typeof runMode>;
98
98
  declare const logLine: v.ObjectSchema<{
99
99
  readonly stream: v.PicklistSchema<["stdout", "stderr"], undefined>;
100
100
  readonly line: v.StringSchema<undefined>;
101
101
  }, undefined>;
102
- type LogLine = v.InferOutput<typeof logLine>;
103
- declare const project: v.ObjectSchema<{
102
+ export type LogLine = v.InferOutput<typeof logLine>;
103
+ export declare const project: v.ObjectSchema<{
104
104
  readonly name: v.StringSchema<undefined>;
105
105
  readonly path: v.StringSchema<undefined>;
106
106
  readonly id: v.StringSchema<undefined>;
@@ -116,8 +116,8 @@ declare const project: v.ObjectSchema<{
116
116
  readonly mode: v.OptionalSchema<v.PicklistSchema<["normal", "development"], undefined>, undefined>;
117
117
  readonly password_set: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
118
118
  }, undefined>;
119
- type Project = v.InferOutput<typeof project>;
120
- declare const projectEvent: v.VariantSchema<"change", [v.ObjectSchema<{
119
+ export type Project = v.InferOutput<typeof project>;
120
+ export declare const projectEvent: v.VariantSchema<"change", [v.ObjectSchema<{
121
121
  readonly change: v.LiteralSchema<"state_changed", undefined>;
122
122
  readonly id: v.StringSchema<undefined>;
123
123
  readonly state: v.PicklistSchema<["created", "started", "stopped", "removed", "error"], undefined>;
@@ -130,7 +130,7 @@ declare const projectEvent: v.VariantSchema<"change", [v.ObjectSchema<{
130
130
  readonly id: v.StringSchema<undefined>;
131
131
  readonly is_default: v.BooleanSchema<undefined>;
132
132
  }, undefined>], undefined>;
133
- type ProjectEvent = v.InferOutput<typeof projectEvent>;
133
+ export type ProjectEvent = v.InferOutput<typeof projectEvent>;
134
134
  declare const projectPatch: Omit<Omit<v.ObjectSchema<{
135
135
  readonly name: v.StringSchema<undefined>;
136
136
  readonly path: v.StringSchema<undefined>;
@@ -146,7 +146,7 @@ declare const projectPatch: Omit<Omit<v.ObjectSchema<{
146
146
  readonly state: v.PicklistSchema<["idle", "running", "error"], undefined>;
147
147
  readonly mode: v.OptionalSchema<v.PicklistSchema<["normal", "development"], undefined>, undefined>;
148
148
  readonly password_set: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
149
- }, undefined>, "~types" | "~run" | "~standard" | "entries"> & {
149
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
150
150
  readonly entries: Pick<{
151
151
  readonly name: v.StringSchema<undefined>;
152
152
  readonly path: v.StringSchema<undefined>;
@@ -162,7 +162,7 @@ declare const projectPatch: Omit<Omit<v.ObjectSchema<{
162
162
  readonly state: v.PicklistSchema<["idle", "running", "error"], undefined>;
163
163
  readonly mode: v.OptionalSchema<v.PicklistSchema<["normal", "development"], undefined>, undefined>;
164
164
  readonly password_set: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
165
- }, "name" | "is_default" | "command">;
165
+ }, "command" | "is_default" | "name">;
166
166
  readonly "~standard": v.StandardProps<{
167
167
  name: string;
168
168
  is_default: boolean;
@@ -176,7 +176,7 @@ declare const projectPatch: Omit<Omit<v.ObjectSchema<{
176
176
  name: string;
177
177
  is_default: boolean;
178
178
  command: string;
179
- }, v.BooleanIssue | v.StringIssue | v.ObjectIssue>;
179
+ }, v.BooleanIssue | v.ObjectIssue | v.StringIssue>;
180
180
  readonly "~types"?: {
181
181
  readonly input: {
182
182
  name: string;
@@ -188,9 +188,9 @@ declare const projectPatch: Omit<Omit<v.ObjectSchema<{
188
188
  is_default: boolean;
189
189
  command: string;
190
190
  };
191
- readonly issue: v.BooleanIssue | v.StringIssue | v.ObjectIssue;
191
+ readonly issue: v.BooleanIssue | v.ObjectIssue | v.StringIssue;
192
192
  } | undefined;
193
- }, "~types" | "~run" | "~standard" | "entries"> & {
193
+ }, "entries" | "~run" | "~standard" | "~types"> & {
194
194
  readonly entries: {
195
195
  readonly name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
196
196
  readonly is_default: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
@@ -209,7 +209,7 @@ declare const projectPatch: Omit<Omit<v.ObjectSchema<{
209
209
  name?: string | undefined;
210
210
  is_default?: boolean | undefined;
211
211
  command?: string | undefined;
212
- }, v.BooleanIssue | v.StringIssue | v.ObjectIssue>;
212
+ }, v.BooleanIssue | v.ObjectIssue | v.StringIssue>;
213
213
  readonly "~types"?: {
214
214
  readonly input: {
215
215
  name?: string | undefined;
@@ -221,48 +221,48 @@ declare const projectPatch: Omit<Omit<v.ObjectSchema<{
221
221
  is_default?: boolean | undefined;
222
222
  command?: string | undefined;
223
223
  };
224
- readonly issue: v.BooleanIssue | v.StringIssue | v.ObjectIssue;
224
+ readonly issue: v.BooleanIssue | v.ObjectIssue | v.StringIssue;
225
225
  } | undefined;
226
226
  };
227
- type ProjectPatch = v.InferOutput<typeof projectPatch>;
227
+ export type ProjectPatch = v.InferOutput<typeof projectPatch>;
228
228
  declare const projectTemplate: v.PicklistSchema<["nodejs", "python"], undefined>;
229
- type ProjectTemplate = v.InferOutput<typeof projectTemplate>;
229
+ export type ProjectTemplate = v.InferOutput<typeof projectTemplate>;
230
230
  declare const createProject: v.ObjectSchema<{
231
231
  readonly name: v.StringSchema<undefined>;
232
232
  readonly template: v.PicklistSchema<["nodejs", "python"], undefined>;
233
233
  readonly command: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
234
234
  }, undefined>;
235
- type CreateProject = v.InferOutput<typeof createProject>;
235
+ export type CreateProject = v.InferOutput<typeof createProject>;
236
236
  declare const bundleInfo: v.ObjectSchema<{
237
237
  readonly bundle: v.StringSchema<undefined>;
238
238
  readonly version: v.StringSchema<undefined>;
239
239
  readonly compatible: v.StringSchema<undefined>;
240
240
  readonly description: v.StringSchema<undefined>;
241
241
  }, undefined>;
242
- type BundleInfo = v.InferOutput<typeof bundleInfo>;
242
+ export type BundleInfo = v.InferOutput<typeof bundleInfo>;
243
243
  declare const installResponse: v.ObjectSchema<{
244
244
  readonly message: v.StringSchema<undefined>;
245
245
  readonly bundle: v.StringSchema<undefined>;
246
246
  }, undefined>;
247
- type InstallResponse = v.InferOutput<typeof installResponse>;
248
- declare const updateStatus: v.ObjectSchema<{
247
+ export type InstallResponse = v.InferOutput<typeof installResponse>;
248
+ export declare const updateStatus: v.ObjectSchema<{
249
249
  readonly state: v.PicklistSchema<["idle", "installing", "failed"], undefined>;
250
250
  readonly progress: v.NumberSchema<undefined>;
251
251
  readonly message: v.StringSchema<undefined>;
252
252
  readonly error: v.StringSchema<undefined>;
253
253
  readonly boot: v.OptionalSchema<v.PicklistSchema<["confirmed", "pending", "unknown"], undefined>, undefined>;
254
254
  }, undefined>;
255
- type UpdateStatus = v.InferOutput<typeof updateStatus>;
255
+ export type UpdateStatus = v.InferOutput<typeof updateStatus>;
256
256
  declare const rebootResponse: v.ObjectSchema<{
257
257
  readonly message: v.StringSchema<undefined>;
258
258
  }, undefined>;
259
- type RebootResponse = v.InferOutput<typeof rebootResponse>;
259
+ export type RebootResponse = v.InferOutput<typeof rebootResponse>;
260
260
  declare const calibrationPoint: v.ObjectSchema<{
261
261
  readonly set: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.FiniteAction<number, undefined>]>;
262
262
  readonly measured: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.FiniteAction<number, undefined>]>;
263
263
  readonly reading: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.FiniteAction<number, undefined>]>, undefined>;
264
264
  }, undefined>;
265
- type CalibrationPoint = v.InferOutput<typeof calibrationPoint>;
265
+ export type CalibrationPoint = v.InferOutput<typeof calibrationPoint>;
266
266
  declare const channelCalibration: v.ObjectSchema<{
267
267
  readonly channel: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 31, undefined>]>;
268
268
  readonly points: v.ArraySchema<v.ObjectSchema<{
@@ -273,7 +273,7 @@ declare const channelCalibration: v.ObjectSchema<{
273
273
  readonly max_error: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.FiniteAction<number, undefined>]>;
274
274
  readonly avg_error: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.FiniteAction<number, undefined>]>;
275
275
  }, undefined>;
276
- type ChannelCalibration = v.InferOutput<typeof channelCalibration>;
276
+ export type ChannelCalibration = v.InferOutput<typeof channelCalibration>;
277
277
  declare const dutPsuCalibration: v.ObjectSchema<{
278
278
  readonly voltage: v.ObjectSchema<{
279
279
  readonly points: v.ArraySchema<v.ObjectSchema<{
@@ -295,7 +295,7 @@ declare const dutPsuCalibration: v.ObjectSchema<{
295
295
  readonly avg_error: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.FiniteAction<number, undefined>]>;
296
296
  }, undefined>;
297
297
  }, undefined>;
298
- type DutPsuCalibration = v.InferOutput<typeof dutPsuCalibration>;
298
+ export type DutPsuCalibration = v.InferOutput<typeof dutPsuCalibration>;
299
299
  declare const currentTestResult: v.ObjectSchema<{
300
300
  readonly load_ohms: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.FiniteAction<number, undefined>, v.MinValueAction<number, number, undefined>]>;
301
301
  readonly voltage_applied: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.FiniteAction<number, undefined>]>;
@@ -304,7 +304,7 @@ declare const currentTestResult: v.ObjectSchema<{
304
304
  readonly error_percent: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.FiniteAction<number, undefined>]>;
305
305
  }, undefined>;
306
306
  /** @deprecated See {@link currentTestResult}. */
307
- type CurrentTestResult = v.InferOutput<typeof currentTestResult>;
307
+ export type CurrentTestResult = v.InferOutput<typeof currentTestResult>;
308
308
  declare const relayTestResult: v.ObjectSchema<{
309
309
  readonly relay: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 7, undefined>]>;
310
310
  readonly status: v.PicklistSchema<["pass", "fail"], undefined>;
@@ -322,7 +322,7 @@ declare const relayTestResult: v.ObjectSchema<{
322
322
  readonly avg_error: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.FiniteAction<number, undefined>]>;
323
323
  }, undefined>, undefined>;
324
324
  }, undefined>;
325
- type RelayTestResult = v.InferOutput<typeof relayTestResult>;
325
+ export type RelayTestResult = v.InferOutput<typeof relayTestResult>;
326
326
  declare const usbTestResult: v.ObjectSchema<{
327
327
  readonly port: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>;
328
328
  readonly status: v.PicklistSchema<["pass", "fail"], undefined>;
@@ -336,8 +336,8 @@ declare const usbTestResult: v.ObjectSchema<{
336
336
  readonly error_percent: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.FiniteAction<number, undefined>]>;
337
337
  }, undefined>, undefined>, undefined>;
338
338
  }, undefined>;
339
- type UsbTestResult = v.InferOutput<typeof usbTestResult>;
340
- declare const calibrationData: v.ObjectSchema<{
339
+ export type UsbTestResult = v.InferOutput<typeof usbTestResult>;
340
+ export declare const calibrationData: v.ObjectSchema<{
341
341
  readonly schema_version: v.LiteralSchema<1, undefined>;
342
342
  readonly tool_version: v.StringSchema<undefined>;
343
343
  readonly device_id: v.StringSchema<undefined>;
@@ -425,16 +425,16 @@ declare const calibrationData: v.ObjectSchema<{
425
425
  }, undefined>, undefined>, undefined>;
426
426
  }, undefined>, undefined>;
427
427
  }, undefined>;
428
- type CalibrationData = v.InferOutput<typeof calibrationData>;
429
- declare const calibrationState: v.ObjectSchema<{
428
+ export type CalibrationData = v.InferOutput<typeof calibrationData>;
429
+ export declare const calibrationState: v.ObjectSchema<{
430
430
  readonly enabled: v.BooleanSchema<undefined>;
431
431
  readonly loaded: v.BooleanSchema<undefined>;
432
432
  readonly last_error: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
433
433
  readonly calibrated_at: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
434
434
  }, undefined>;
435
- type CalibrationState = v.InferOutput<typeof calibrationState>;
435
+ export type CalibrationState = v.InferOutput<typeof calibrationState>;
436
436
  /** @hideconstructor */
437
- declare class ManagementApi {
437
+ export declare class ManagementApi {
438
438
  private readonly fetch;
439
439
  private readonly host;
440
440
  constructor(fetch: UpFetch, host: string);
@@ -474,7 +474,7 @@ declare class ManagementApi {
474
474
  on_resistance: number;
475
475
  };
476
476
  usb_ports: {
477
- type: "3.0" | "2.0";
477
+ type: "2.0" | "3.0";
478
478
  count: number;
479
479
  }[];
480
480
  ethernet: {
@@ -496,7 +496,7 @@ declare class ManagementApi {
496
496
  };
497
497
  };
498
498
  current_measurement: {
499
- type: "low_precision" | "high_precision";
499
+ type: "high_precision" | "low_precision";
500
500
  source: string;
501
501
  resolution: number;
502
502
  }[];
@@ -554,12 +554,12 @@ declare class ManagementApi {
554
554
  *
555
555
  * @param datetime The date and time to set.
556
556
  */
557
- setDatetime(datetime: Date): Promise<void>;
557
+ set_datetime(datetime: Date): Promise<void>;
558
558
  /**
559
559
  * Gets a list of all projects.
560
560
  * @returns An array of projects.
561
561
  */
562
- getProjects(): Promise<{
562
+ get_projects(): Promise<{
563
563
  name: string;
564
564
  path: string;
565
565
  id: string;
@@ -572,20 +572,20 @@ declare class ManagementApi {
572
572
  }[];
573
573
  command: string;
574
574
  state: "error" | "idle" | "running";
575
- mode?: "normal" | "development" | undefined;
575
+ mode?: "development" | "normal" | undefined;
576
576
  password_set?: boolean | undefined;
577
577
  }[]>;
578
578
  /**
579
579
  * Lists the AT1000 base images present on the device.
580
580
  * @returns Repo tags of on-device base images (e.g. "localhost/at1000-base:latest").
581
581
  */
582
- listImages(): Promise<string[]>;
582
+ list_images(): Promise<string[]>;
583
583
  /**
584
584
  * Gets a single project by id.
585
585
  * @param projectId The project slug id.
586
586
  * @returns The project info.
587
587
  */
588
- getProject(projectId: string): Promise<{
588
+ get_project(projectId: string): Promise<{
589
589
  name: string;
590
590
  path: string;
591
591
  id: string;
@@ -598,14 +598,14 @@ declare class ManagementApi {
598
598
  }[];
599
599
  command: string;
600
600
  state: "error" | "idle" | "running";
601
- mode?: "normal" | "development" | undefined;
601
+ mode?: "development" | "normal" | undefined;
602
602
  password_set?: boolean | undefined;
603
603
  }>;
604
604
  /**
605
605
  * Creates a new project from a preinstalled template.
606
606
  * @param newProject The project creation data.
607
607
  */
608
- createProject(newProject: CreateProject): Promise<{
608
+ create_project(newProject: CreateProject): Promise<{
609
609
  name: string;
610
610
  path: string;
611
611
  id: string;
@@ -618,16 +618,19 @@ declare class ManagementApi {
618
618
  }[];
619
619
  command: string;
620
620
  state: "error" | "idle" | "running";
621
- mode?: "normal" | "development" | undefined;
621
+ mode?: "development" | "normal" | undefined;
622
622
  password_set?: boolean | undefined;
623
623
  }>;
624
624
  /**
625
- * Imports a project from a container image archive (.tar / .tar.gz).
625
+ * Imports a project from a container image archive (.tar / .tar.gz). The archive streams
626
+ * straight to the device, so pass a lazily file-backed Blob (`await fs.openAsBlob(path)` on
627
+ * Node, a `File` from an input element in the browser): `new Blob([await readFile(path)])`
628
+ * buffers the whole archive in the caller's heap.
626
629
  * @param file The image archive to import.
627
630
  * @param name The project name (sent percent-encoded; the server decodes it).
628
631
  * @returns The created project.
629
632
  */
630
- importProject(file: Blob, name: string): Promise<{
633
+ import_project(file: Blob, name: string): Promise<{
631
634
  name: string;
632
635
  path: string;
633
636
  id: string;
@@ -640,7 +643,7 @@ declare class ManagementApi {
640
643
  }[];
641
644
  command: string;
642
645
  state: "error" | "idle" | "running";
643
- mode?: "normal" | "development" | undefined;
646
+ mode?: "development" | "normal" | undefined;
644
647
  password_set?: boolean | undefined;
645
648
  }>;
646
649
  /**
@@ -648,7 +651,7 @@ declare class ManagementApi {
648
651
  * @param projectId The project slug id.
649
652
  * @param data The data to patch the project with.
650
653
  */
651
- updateProject(projectId: string, data: ProjectPatch): Promise<{
654
+ update_project(projectId: string, data: ProjectPatch): Promise<{
652
655
  name: string;
653
656
  path: string;
654
657
  id: string;
@@ -661,7 +664,7 @@ declare class ManagementApi {
661
664
  }[];
662
665
  command: string;
663
666
  state: "error" | "idle" | "running";
664
- mode?: "normal" | "development" | undefined;
667
+ mode?: "development" | "normal" | undefined;
665
668
  password_set?: boolean | undefined;
666
669
  }>;
667
670
  /**
@@ -669,18 +672,18 @@ declare class ManagementApi {
669
672
  * @param projectId The project slug id.
670
673
  * @param mode The run mode: 'normal' (default) or 'development' (starts sshd).
671
674
  */
672
- runProject(projectId: string, mode?: RunMode): Promise<any>;
675
+ run_project(projectId: string, mode?: RunMode): Promise<any>;
673
676
  /**
674
677
  * Stops a running project.
675
678
  * @param projectId The project slug id.
676
679
  */
677
- stopProject(projectId: string): Promise<any>;
680
+ stop_project(projectId: string): Promise<any>;
678
681
  /**
679
682
  * Gets the port mappings for a project.
680
683
  * @param projectId The project slug id.
681
684
  * @returns The project's port mappings.
682
685
  */
683
- getProjectPorts(projectId: string): Promise<{
686
+ get_project_ports(projectId: string): Promise<{
684
687
  host: number;
685
688
  container: number;
686
689
  proto: "tcp" | "udp";
@@ -691,7 +694,7 @@ declare class ManagementApi {
691
694
  * @param ports The complete list of port mappings.
692
695
  * @returns The updated port mappings.
693
696
  */
694
- setProjectPorts(projectId: string, ports: PortMapping[]): Promise<{
697
+ set_project_ports(projectId: string, ports: PortMapping[]): Promise<{
695
698
  host: number;
696
699
  container: number;
697
700
  proto: "tcp" | "udp";
@@ -702,7 +705,7 @@ declare class ManagementApi {
702
705
  * @param mapping The port mapping to add.
703
706
  * @returns The updated port mappings.
704
707
  */
705
- addProjectPort(projectId: string, mapping: PortMapping): Promise<{
708
+ add_project_port(projectId: string, mapping: PortMapping): Promise<{
706
709
  host: number;
707
710
  container: number;
708
711
  proto: "tcp" | "udp";
@@ -712,35 +715,38 @@ declare class ManagementApi {
712
715
  * @param projectId The project slug id.
713
716
  * @param hostPort The host port to unmap.
714
717
  */
715
- deleteProjectPort(projectId: string, hostPort: number): Promise<void>;
718
+ delete_project_port(projectId: string, hostPort: number): Promise<void>;
716
719
  /**
717
720
  * Sets the password of the project's dev user (used for SSH password login in
718
721
  * development mode).
719
722
  * @param projectId The project slug id.
720
723
  * @param password The new password.
721
724
  */
722
- setProjectPassword(projectId: string, password: string): Promise<void>;
725
+ set_project_password(projectId: string, password: string): Promise<void>;
723
726
  /**
724
727
  * Gets the SSH authorized_keys for the project's dev user.
725
728
  * @param projectId The project slug id.
726
729
  * @returns The list of authorized public keys.
727
730
  */
728
- getProjectAuthorizedKeys(projectId: string): Promise<string[]>;
731
+ get_project_authorized_keys(projectId: string): Promise<string[]>;
729
732
  /**
730
733
  * Replaces the SSH authorized_keys for the project's dev user.
731
734
  * @param projectId The project slug id.
732
735
  * @param keys The complete list of authorized public keys.
733
736
  * @returns The updated list of authorized public keys.
734
737
  */
735
- setProjectAuthorizedKeys(projectId: string, keys: string[]): Promise<string[]>;
738
+ set_project_authorized_keys(projectId: string, keys: string[]): Promise<string[]>;
736
739
  /**
737
740
  * Deletes a project.
738
741
  * @param projectId The project slug id.
739
742
  */
740
- deleteProject(projectId: string): Promise<any>;
743
+ delete_project(projectId: string): Promise<any>;
741
744
  /**
742
745
  * Uploads a firmware bundle to the device and inspects it.
743
- * The bundle is staged for installation but not installed yet.
746
+ * The bundle is staged for installation but not installed yet. The body streams straight to
747
+ * the device, so pass a lazily file-backed Blob (`await fs.openAsBlob(path)` on Node, a `File`
748
+ * from an input element in the browser): `new Blob([await readFile(path)])` buffers the whole
749
+ * bundle in the caller's heap.
744
750
  * @param file The firmware bundle file (.raucb).
745
751
  * @param filename Optional filename for the bundle. Defaults to 'bundle.raucb'.
746
752
  * @returns Bundle metadata including version information.
@@ -774,7 +780,7 @@ declare class ManagementApi {
774
780
  * @returns The update status including state, progress, message and error.
775
781
  */
776
782
  update_status(): Promise<{
777
- state: "idle" | "installing" | "failed";
783
+ state: "failed" | "idle" | "installing";
778
784
  progress: number;
779
785
  message: string;
780
786
  error: string;
@@ -799,10 +805,10 @@ declare class ManagementApi {
799
805
  * @param options.tail Max number of trailing lines (default 1000, clamped 1..10000).
800
806
  * @returns The current run's log lines, in order.
801
807
  */
802
- getProjectLogs(projectId: string, options?: {
808
+ get_project_logs(projectId: string, options?: {
803
809
  tail?: number;
804
810
  }): Promise<{
805
- stream: "stdout" | "stderr";
811
+ stream: "stderr" | "stdout";
806
812
  line: string;
807
813
  }[]>;
808
814
  /**
@@ -818,7 +824,7 @@ declare class ManagementApi {
818
824
  * @param options.tail Max number of trailing lines (default 1000, clamped 1..10000).
819
825
  * @returns A handle whose `close()` aborts the stream.
820
826
  */
821
- streamProjectLogs(projectId: string, handlers: {
827
+ stream_project_logs(projectId: string, handlers: {
822
828
  onLine: (line: LogLine) => void;
823
829
  onEnd?: () => void;
824
830
  onError?: (err: unknown) => void;
@@ -829,5 +835,4 @@ declare class ManagementApi {
829
835
  };
830
836
  }
831
837
  //#endregion
832
- export { BundleInfo, CalibrationData, CalibrationPoint, CalibrationState, ChannelCalibration, CommunicationInterfaceType, CreateProject, CurrentTestResult, DutPsuCalibration, Information, InstallResponse, LogLine, ManagementApi, PortMapping, Project, ProjectEvent, ProjectPatch, ProjectTemplate, RebootResponse, RelayTestResult, RunMode, UpdateStatus, UsbTestResult, calibrationData, calibrationState, portMapping, project, projectEvent, runMode, updateStatus };
833
838
  //# sourceMappingURL=management.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"management.d.mts","names":[],"sources":["../src/api/management.ts"],"mappings":"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"}
1
+ {"version":3,"file":"management.d.mts","names":[],"sources":["../src/api/management.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- import{_ as e,d as t,f as n,g as r,h as i,m as a,p as o,u as s,v as c}from"./at1000-Zs18VzlP.mjs";export{s as CommunicationInterfaceType,t as ManagementApi,n as calibrationData,o as calibrationState,a as portMapping,i as project,r as projectEvent,e as runMode,c as updateStatus};
1
+ import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"./management-StKcAkgo.mjs";export{c as CommunicationInterfaceType,i as ManagementApi,o as calibrationData,n as calibrationState,e as portMapping,a as project,s as projectEvent,t as runMode,r as updateStatus};
package/build/node.cjs CHANGED
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-CMqjfN_6.cjs"),t=require("./package-0hAwYBa1.cjs"),n=require("./at1000-DbIvMQUc.cjs");let r=require("up-fetch"),i=require("node:os");i=e.t(i,1);let a=require("node:fs"),o=require("dns-packet");o=e.t(o,1);let s=require("node:events"),c=require("node:util");c=e.t(c,1);let l=require("ip-address");l=e.t(l,1);let u=require("node:dgram");u=e.t(u,1);const d=`224.0.0.251`,f=5353,p=`IPv4`,m=`IPv6`,h=[p,4,m,6];var g=class e{static getInterfaces(t){return t?e.getInterfacesFromStrings(t):e.getAllInterfaces()}static getAllInterfaces(){let e=[],t=[],n=i.default.networkInterfaces();for(let[r,i]of Object.entries(n))t.includes(r)||(t.push(r),i?.forEach(t=>{t.internal||!h.includes(t.family)||/^(2002|2001):/gi.exec(t.address)||e.push({name:r,address:t.address,family:t.family,scopeid:t.scopeid})}));if(!e.length)throw Error(`No usable network interfaces returned by OS.`);return e}static getInterfacesFromStrings(t){let n=Array.isArray(t)?t:[t],r=this.getAllInterfaces().filter(t=>n.reduce((n,r)=>n||!!(e.stringMatchesAddress(r,t.address)||t.name===r),!1));if(!r||!r.length)throw Error(`No usable network interfaces returned by OS.`);return r}static stringMatchesAddress(e,t){let n,r;try{n=new l.default.Address4(e),r=new l.default.Address4(t)}catch{try{n=new l.default.Address6(e),r=new l.default.Address6(t)}catch{return!1}}return n.bigInt()===r.bigInt()}};const _={interfaces:[],reuseAddr:!0,ttl:255,loopback:!0,onMessage:(e,t)=>{console.log(`Message `+e.toString())},socketError:e=>{console.log(`Socket error `+e.message)}};var v=class e{static validateSettings(e){if(!e.multicastAddress)throw Error(`Socket settings require multicastAddress`);if(!e.multicastPort)throw Error(`Socket settings require multicastPort`)}static createMulticastSocket(t){return new Promise((n,r)=>{let i=Object.assign({},_,t);e.validateSettings(i);let a=u.default.createSocket({type:l.default.Address4.isValid(i.multicastAddress)?`udp4`:`udp6`,reuseAddr:i.reuseAddr}),o=!1;a.on(`error`,e=>{o?i.socketError(e):(a.close(),n({success:!1,error:e}))}).on(`listening`,()=>{o=!0,a.setMulticastTTL(i.ttl??255),a.setMulticastLoopback(i.loopback??!0);let t=e.addMulticastMemberships(a,i);if(!t.memberships.length){o=!1,a.close(),n({success:!1,error:Error(`No interface memberships for multicast address `+i.multicastAddress)});return}n(Object.assign({success:!0},t,{socket:a}))}).on(`message`,(e,t)=>{i.onMessage(e,t)}),a.bind({port:i.multicastPort,exclusive:!1})})}static addMulticastMemberships(t,n){let r=[],i=[],a=l.default.Address4.isValid(n.multicastAddress)?[p,4]:[m,6];return n.interfaces.forEach(o=>{if(a.includes(o.family))try{t.addMembership(n.multicastAddress,e.interfaceAddress(o)),r.push(o)}catch{i.push(o)}}),{memberships:r,failedMemberships:i}}static async createSendSocket(t,n,r,i,a){return new Promise(o=>{let s=[`IPv4`,4].includes(t.family)?`udp4`:`udp6`,c=e.interfaceAddress(t),l=n.srcPort??0,d=!1,f=e=>{let l=u.default.createSocket({type:s,reuseAddr:!!n.reuseAddr,reusePort:!0}),p=!1;l.on(`error`,t=>{p?i(t):(l.close(),e!==0&&!d?(d=!0,a?.(`mDNS send socket bind to ${c}:${e} failed (${t.message}); falling back to ephemeral source port — discovery may be unreliable on strict firewalls.`),f(0)):o({success:!1,error:Error(t.message)}))}).on(`listening`,()=>{p=!0,o({success:!0,iface:t,socket:l,send:l.send.bind(l)})}).on(`message`,(e,n)=>{n.interface=t.name,r(e,n)}).bind(e,c)};f(l)})}static interfaceAddress(e){return[`IPv4`,4].includes(e.family)?e.address:e.scopeid?`${e.address}%${e.name}`:e.address}};const y={reuseAddr:!0,srcPort:5353,interfaces:null,ttl:255,loopback:!0,debug:!1};var b=class extends s.EventEmitter{Config;ready;receiveSockets;sendSockets;interfaces;destroyed;constructor(e){super(),this.Config=Object.assign({},y,e),this.ready=!1,this.receiveSockets=[],this.sendSockets=[]}async init(){try{this.interfaces=g.getInterfaces(this.Config.interfaces||void 0)}catch(e){throw this.emitError(e),e}return this.emitDebug(`Scanner interfaces: ${c.default.inspect(this.interfaces)}`),await this.createReceiveSockets(),await this.createSendSockets(),this.receiveSockets.length&&this.sendSockets.length&&(this.ready=!0),this.ready}async createReceiveSockets(){if(!this.interfaces)return[];let e=this.interfaces.filter(e=>[p,4].includes(e.family)),t=this.interfaces.filter(e=>[m,6].includes(e.family));if(this.emitDebug(`Create receive sockets for${e.length?` IPv4`:``}${e.length&&t.length?` and`:``}${t.length?` IPv6`:``}`),e.length){let t=await v.createMulticastSocket({multicastAddress:d,multicastPort:f,interfaces:e,onMessage:this.onMessage.bind(this),socketError:this.socketError.bind(this)});t.success?this.receiveSockets.push(t):t.error&&this.emitWarn(t.error.message)}if(t.length){let e=await v.createMulticastSocket({multicastAddress:`FF02::FB`,multicastPort:f,interfaces:t,onMessage:this.onMessage.bind(this),socketError:this.socketError.bind(this)});e.success?this.receiveSockets.push(e):e.error&&this.emitWarn(e.error.message)}return this.receiveSockets}async createSendSockets(){if(this.interfaces){this.emitDebug(`Create send sockets on ${this.interfaces.length} interfaces/addresses.`);for(let e=0;e<this.interfaces.length;e++){let t=await v.createSendSocket(this.interfaces[e],this.Config,this.onMessage.bind(this),this.socketError.bind(this),this.emitWarn.bind(this));t.success?this.sendSockets.push(t):t.error&&this.emitWarn(t.error.message)}}}onMessage(e,t){let n;try{n=o.default.decode(e)}catch(e){return this.emitWarn(e)}this.emit(`packet`,n,t)}socketError(e){e.code===`EACCES`||e.code===`EADDRINUSE`||e.code===`EADDRNOTAVAIL`?this.emitError(e):this.emitWarn(e)}query(e,t){let n;if(typeof e==`string`)n=[{name:e,type:t||`ANY`}];else if(Array.isArray(e))n=e;else throw Error(`Query questions must be an array of mDNS query questions.`);let r={type:`query`,questions:n};this.emitDebug(`Send mDNS query: ${c.default.inspect(r)}`),this.send(r)}send(e){if(this.destroyed)return;let t=o.default.encode(e);e.type===`query`&&this.setUnicastResponseBit(t);for(let e=0;e<this.sendSockets.length;e++){let n=this.sendSockets[e];if(n.send&&n.iface)try{n.send(t,0,t.length,f,[`IPv4`,4].includes(n.iface.family)?d:`FF02::FB%`+n.iface.name),this.emitDebug(`Send packet on ${n.iface.address}`)}catch{}}}setUnicastResponseBit(e){let t=e.readUInt16BE(4),n=12;for(let r=0;r<t&&n<e.length;r++){for(;n<e.length&&e[n]!==0;)n+=e[n]+1;n+=1,n+=2,n<e.length&&(e[n]|=128),n+=2}}destroy(){this.destroyed=!0,this.ready=!1,this.removeAllListeners(),this.sendSockets.forEach(e=>{try{e.socket?.close()}catch{}}),this.sendSockets=[],this.receiveSockets.forEach(e=>{try{e.socket?.close()}catch{}}),this.receiveSockets=[]}emitError(e){this.emit(`error`,e)}emitWarn(e){this.emit(`warn`,e)}emitDebug(e){this.Config.debug&&this.emit(`debug`,e)}};const x={debug:!1};var S=class extends s.EventEmitter{Config;scanner;types;namedServices;packetListener;constructor(e,t){super(),this.packetListener=this.onPacket.bind(this),this.scanner=e,this.Config=Object.assign({},x,t),this.types=[],this.namedServices={},this.forwardEvents(this.scanner),this.reset()}reset(){this.removeMDNSListener(this.scanner),this.types=[],this.namedServices={},this.listenMDNSEvents(this.scanner)}forwardEvents(e){e.on(`error`,e=>{this.emitError(e)}).on(`warn`,e=>{this.emitWarn(e)}).on(`debug`,e=>{this.emitDebug(e)})}listenMDNSEvents(e){e.on(`packet`,this.packetListener)}removeMDNSListener(e){e.removeListener(`packet`,this.packetListener)}onPacket(e,t){switch(this.emitDebug(`Received packet type ${e.type} from ${t.address}.`),e.type){case`query`:this.emit(`query`,e,t);break;case`response`:this.emitDebug(`Received response packet from ${t.address} with ${e.answers?e.answers.length:0} answers and ${e.additionals?e.additionals.length:0} additionals.`),e.answers&&this.processAnswers(e.answers,t),e.additionals&&this.processAnswers(e.additionals,t);break}}processAnswers(e,t){this.emitDebug(`Processing answers or additionals...`);let n=this.processSRVAnswers(e);this.processTXTAnswers(e),this.processAAnswers(e),this.processAAAAAnswers(e),this.processPTRAnswers(e,t),n.forEach(e=>{this.emit(`discovered`,{type:`service`,data:this.namedServices[e]})})}processSRVAnswers(e){let t=[];return e.forEach(e=>{if(e.type!==`SRV`)return;this.emitDebug(`Processing SRV answer.`);let n=e.name.toString();t.includes(n)||t.push(n),this.namedServices[n]=this.namedServices[n]||{},this.namedServices[n].service=e,this.namedServices[n].host=e.data.target.toString(),this.namedServices[n].port=e.data.port}),t}processTXTAnswers(e){e.forEach(e=>{if(e.type!==`TXT`)return;this.emitDebug(`Processing TXT answer.`);let t=e.data;if(Array.isArray(t)&&t.length>1){let n=e.name.toString();this.namedServices[n]=this.namedServices[n]||{},this.namedServices[n].txt=this.answerDataToKeyValues(Buffer.concat(t))}else if(Buffer.isBuffer(t)){let n=e.name.toString();this.namedServices[n]=this.namedServices[n]||{},this.namedServices[n].txt=this.answerDataToKeyValues(t)}})}processAAnswers(e){e.forEach(e=>{if(e.type!==`A`)return;this.emitDebug(`Processing A answer.`);let t=e.name.toString(),n=e.data.toString();for(let e in this.namedServices)this.namedServices[e].host===t&&(this.namedServices[e].addresses=this.namedServices[e].addresses||[],this.namedServices[e].addresses.reduce((e,t)=>e||t.address===n,!1)||this.namedServices[e].addresses.push({family:p,address:n}))})}processAAAAAnswers(e){e.forEach(e=>{if(e.type!==`AAAA`)return;this.emitDebug(`Processing AAAA answer.`);let t=e.name.toString(),n=e.data.toString();for(let e in this.namedServices)this.namedServices[e].host===t&&(this.namedServices[e].addresses=this.namedServices[e].addresses||[],this.namedServices[e].addresses.reduce((e,t)=>e||t.address===n,!1)||this.namedServices[e].addresses.push({family:m,address:n}))})}processPTRAnswers(e,t){e.forEach(e=>{if(e.type!==`PTR`)return;this.emitDebug(`Processing PTR answer.`);let n=this.serviceTypeFromPTR(e),r=e.data.toString();n!==r&&(this.namedServices[r]=this.namedServices[r]||{},this.namedServices[r].name=r.replace(`.`+n,``),this.namedServices[r].rinfo=t)})}serviceTypeFromPTR(e){let t=e.data,n=/(?:^|^.+?(?:\.))(_.*)$/gm.exec(t.toString()),r=n?n[1]:t.toString();return this.types.includes(r)||(this.types.push(r),this.emit(`discovered`,{type:`type`,data:r}),this.emitDebug(`Scanning service type ${r}.`),this.scanner.query(r,`ANY`)),r}answerDataToKeyValues(e){let t=[],n={},r=0,i=e[r];for(;i;){let a=e.slice(r+1,r+1+i);t.push(a.toString());let o=/^([^=]+)=([^=]*)$/.exec(a.toString());o&&(n[o[1]]=o[2]),r=r+1+i,i=e[r]}return{strings:t,keyValuePairs:n}}emitError(e){this.emit(`error`,e)}emitWarn(e){this.emit(`warn`,e)}emitDebug(e){this.Config.debug&&this.emit(`debug`,e)}};function C(e){return e.startsWith(`192.168.`)?0:e.startsWith(`169.254.`)?1:2}function w(){try{return(0,a.readFileSync)(`/etc/at1000/hostname`,`utf8`).trim()||void 0}catch{return}}function T(){try{return(0,a.readFileSync)(`/etc/at1000/project`,`utf8`).trim()||void 0}catch{return}}async function E(e){return{host:e,info:await new n.d((0,r.up)(fetch,()=>({baseUrl:`http://${n.r(e)}/v0`,timeout:1e3,parseRejected:(e,t)=>n.a(e,t.method)})),e).info()}}const D=async()=>{let e=w();if(e)for(let t of[`${e}.local`,`host.containers.internal`])try{if((await E(t)).info.hostname===e)return t}catch{}},O=async(e=500)=>{e<10&&(e=10);let t=new b({debug:!0}),r=new S(t);if(r.on(`error`,e=>{if(!e.includes(`bind ENOENT`))throw Error(e)}),!await t.init())throw Error(`Failed to initialize mDNS scanner`);t.query(`_at1000_server._tcp.local`),await new Promise(t=>setTimeout(t,e));let i=[...new Set(Object.values(r.namedServices).filter(e=>e.service!==void 0).filter(e=>(e.service?.name)?.endsWith(`_at1000_server._tcp.local`)).flatMap(e=>{let t=e.addresses??[],r=e.port,i=t.filter(e=>e.family===`IPv4`).map(e=>n.r(e.address,r)),a=t.filter(e=>e.family===`IPv6`).map(e=>n.r(e.address,r));return[...i,...a]}))];t.destroy();let a=(await Promise.allSettled(i.map(E))).filter(e=>e.status===`fulfilled`).map(e=>e.value),o=new Map;for(let e of a){let t=o.get(e.info.hostname);t?C(e.host)<C(t.host)&&o.set(e.info.hostname,e):o.set(e.info.hostname,e)}let s=[...o.values()],c=w();if(!c)return s.map(e=>e.host);let l=s.findIndex(e=>e.info.hostname===c);if(l>=0)return s.unshift(...s.splice(l,1)),s.map(e=>e.host);let u=await D();return u?[u,...s.map(e=>e.host)]:s.map(e=>e.host)};var k=class extends n.t{static apiVersion=t.t;static findDevices(e=500){return O(e)}static isStandalone(){return T()!==void 0}static findLocalDevice(){return D()}static async open(e,t){let r=T(),a=r?{kind:`project`,project:r,defaultLabel:r}:{kind:`remote`,defaultLabel:(0,i.hostname)()};return await n.t.openBase(e,t,a)}};exports.AT1000=k,exports.ApiError=n.n,exports.format_host_for_url=n.r,exports.host_without_port=n.i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./package-iERj9NJ6.cjs"),n=require("./management-DqBsC1HB.cjs"),r=require("./at1000-DjoKZEha.cjs");let i=require("up-fetch"),a=require("node:os");a=e.t(a,1);let o=require("node:fs"),s=require("dns-packet");s=e.t(s,1);let c=require("node:events"),l=require("node:util");l=e.t(l,1);let u=require("ip-address");u=e.t(u,1);let d=require("node:dgram");d=e.t(d,1);const f=`224.0.0.251`,p=5353,m=`IPv4`,h=`IPv6`,g=[m,4,h,6];var _=class e{static getInterfaces(t){return t?e.getInterfacesFromStrings(t):e.getAllInterfaces()}static getAllInterfaces(){let e=[],t=[],n=a.default.networkInterfaces();for(let[r,i]of Object.entries(n))t.includes(r)||(t.push(r),i?.forEach(t=>{t.internal||!g.includes(t.family)||/^(2002|2001):/gi.exec(t.address)||e.push({name:r,address:t.address,family:t.family,scopeid:t.scopeid})}));if(!e.length)throw Error(`No usable network interfaces returned by OS.`);return e}static getInterfacesFromStrings(t){let n=Array.isArray(t)?t:[t],r=this.getAllInterfaces().filter(t=>n.reduce((n,r)=>n||!!(e.stringMatchesAddress(r,t.address)||t.name===r),!1));if(!r||!r.length)throw Error(`No usable network interfaces returned by OS.`);return r}static stringMatchesAddress(e,t){let n,r;try{n=new u.default.Address4(e),r=new u.default.Address4(t)}catch{try{n=new u.default.Address6(e),r=new u.default.Address6(t)}catch{return!1}}return n.bigInt()===r.bigInt()}};const v={interfaces:[],reuseAddr:!0,ttl:255,loopback:!0,onMessage:(e,t)=>{console.log(`Message `+e.toString())},socketError:e=>{console.log(`Socket error `+e.message)}};var y=class e{static validateSettings(e){if(!e.multicastAddress)throw Error(`Socket settings require multicastAddress`);if(!e.multicastPort)throw Error(`Socket settings require multicastPort`)}static createMulticastSocket(t){return new Promise((n,r)=>{let i=Object.assign({},v,t);e.validateSettings(i);let a=d.default.createSocket({type:u.default.Address4.isValid(i.multicastAddress)?`udp4`:`udp6`,reuseAddr:i.reuseAddr}),o=!1;a.on(`error`,e=>{o?i.socketError(e):(a.close(),n({success:!1,error:e}))}).on(`listening`,()=>{o=!0,a.setMulticastTTL(i.ttl??255),a.setMulticastLoopback(i.loopback??!0);let t=e.addMulticastMemberships(a,i);if(!t.memberships.length){o=!1,a.close(),n({success:!1,error:Error(`No interface memberships for multicast address `+i.multicastAddress)});return}n(Object.assign({success:!0},t,{socket:a}))}).on(`message`,(e,t)=>{i.onMessage(e,t)}),a.bind({port:i.multicastPort,exclusive:!1})})}static addMulticastMemberships(t,n){let r=[],i=[],a=u.default.Address4.isValid(n.multicastAddress)?[m,4]:[h,6];return n.interfaces.forEach(o=>{if(a.includes(o.family))try{t.addMembership(n.multicastAddress,e.interfaceAddress(o)),r.push(o)}catch{i.push(o)}}),{memberships:r,failedMemberships:i}}static async createSendSocket(t,n,r,i,a){return new Promise(o=>{let s=[`IPv4`,4].includes(t.family)?`udp4`:`udp6`,c=e.interfaceAddress(t),l=n.srcPort??0,u=!1,f=e=>{let l=d.default.createSocket({type:s,reuseAddr:!!n.reuseAddr,reusePort:!0}),p=!1;l.on(`error`,t=>{p?i(t):(l.close(),e!==0&&!u?(u=!0,a?.(`mDNS send socket bind to ${c}:${e} failed (${t.message}); falling back to ephemeral source port — discovery may be unreliable on strict firewalls.`),f(0)):o({success:!1,error:Error(t.message)}))}).on(`listening`,()=>{p=!0,o({success:!0,iface:t,socket:l,send:l.send.bind(l)})}).on(`message`,(e,n)=>{n.interface=t.name,r(e,n)}).bind(e,c)};f(l)})}static interfaceAddress(e){return[`IPv4`,4].includes(e.family)?e.address:e.scopeid?`${e.address}%${e.name}`:e.address}};const b={reuseAddr:!0,srcPort:5353,interfaces:null,ttl:255,loopback:!0,debug:!1};var x=class extends c.EventEmitter{Config;ready;receiveSockets;sendSockets;interfaces;destroyed;constructor(e){super(),this.Config=Object.assign({},b,e),this.ready=!1,this.receiveSockets=[],this.sendSockets=[]}async init(){try{this.interfaces=_.getInterfaces(this.Config.interfaces||void 0)}catch(e){throw this.emitError(e),e}return this.emitDebug(`Scanner interfaces: ${l.default.inspect(this.interfaces)}`),await this.createReceiveSockets(),await this.createSendSockets(),this.receiveSockets.length&&this.sendSockets.length&&(this.ready=!0),this.ready}async createReceiveSockets(){if(!this.interfaces)return[];let e=this.interfaces.filter(e=>[m,4].includes(e.family)),t=this.interfaces.filter(e=>[h,6].includes(e.family));if(this.emitDebug(`Create receive sockets for${e.length?` IPv4`:``}${e.length&&t.length?` and`:``}${t.length?` IPv6`:``}`),e.length){let t=await y.createMulticastSocket({multicastAddress:f,multicastPort:p,interfaces:e,onMessage:this.onMessage.bind(this),socketError:this.socketError.bind(this)});t.success?this.receiveSockets.push(t):t.error&&this.emitWarn(t.error.message)}if(t.length){let e=await y.createMulticastSocket({multicastAddress:`FF02::FB`,multicastPort:p,interfaces:t,onMessage:this.onMessage.bind(this),socketError:this.socketError.bind(this)});e.success?this.receiveSockets.push(e):e.error&&this.emitWarn(e.error.message)}return this.receiveSockets}async createSendSockets(){if(this.interfaces){this.emitDebug(`Create send sockets on ${this.interfaces.length} interfaces/addresses.`);for(let e=0;e<this.interfaces.length;e++){let t=await y.createSendSocket(this.interfaces[e],this.Config,this.onMessage.bind(this),this.socketError.bind(this),this.emitWarn.bind(this));t.success?this.sendSockets.push(t):t.error&&this.emitWarn(t.error.message)}}}onMessage(e,t){let n;try{n=s.default.decode(e)}catch(e){return this.emitWarn(e)}this.emit(`packet`,n,t)}socketError(e){e.code===`EACCES`||e.code===`EADDRINUSE`||e.code===`EADDRNOTAVAIL`?this.emitError(e):this.emitWarn(e)}query(e,t){let n;if(typeof e==`string`)n=[{name:e,type:t||`ANY`}];else if(Array.isArray(e))n=e;else throw Error(`Query questions must be an array of mDNS query questions.`);let r={type:`query`,questions:n};this.emitDebug(`Send mDNS query: ${l.default.inspect(r)}`),this.send(r)}send(e){if(this.destroyed)return;let t=s.default.encode(e);e.type===`query`&&this.setUnicastResponseBit(t);for(let e=0;e<this.sendSockets.length;e++){let n=this.sendSockets[e];if(n.send&&n.iface)try{n.send(t,0,t.length,p,[`IPv4`,4].includes(n.iface.family)?f:`FF02::FB%`+n.iface.name),this.emitDebug(`Send packet on ${n.iface.address}`)}catch{}}}setUnicastResponseBit(e){let t=e.readUInt16BE(4),n=12;for(let r=0;r<t&&n<e.length;r++){for(;n<e.length&&e[n]!==0;)n+=e[n]+1;n+=1,n+=2,n<e.length&&(e[n]|=128),n+=2}}destroy(){this.destroyed=!0,this.ready=!1,this.removeAllListeners(),this.sendSockets.forEach(e=>{try{e.socket?.close()}catch{}}),this.sendSockets=[],this.receiveSockets.forEach(e=>{try{e.socket?.close()}catch{}}),this.receiveSockets=[]}emitError(e){this.emit(`error`,e)}emitWarn(e){this.emit(`warn`,e)}emitDebug(e){this.Config.debug&&this.emit(`debug`,e)}};const S={debug:!1};var C=class extends c.EventEmitter{Config;scanner;types;namedServices;packetListener;constructor(e,t){super(),this.packetListener=this.onPacket.bind(this),this.scanner=e,this.Config=Object.assign({},S,t),this.types=[],this.namedServices={},this.forwardEvents(this.scanner),this.reset()}reset(){this.removeMDNSListener(this.scanner),this.types=[],this.namedServices={},this.listenMDNSEvents(this.scanner)}forwardEvents(e){e.on(`error`,e=>{this.emitError(e)}).on(`warn`,e=>{this.emitWarn(e)}).on(`debug`,e=>{this.emitDebug(e)})}listenMDNSEvents(e){e.on(`packet`,this.packetListener)}removeMDNSListener(e){e.removeListener(`packet`,this.packetListener)}onPacket(e,t){switch(this.emitDebug(`Received packet type ${e.type} from ${t.address}.`),e.type){case`query`:this.emit(`query`,e,t);break;case`response`:this.emitDebug(`Received response packet from ${t.address} with ${e.answers?e.answers.length:0} answers and ${e.additionals?e.additionals.length:0} additionals.`),e.answers&&this.processAnswers(e.answers,t),e.additionals&&this.processAnswers(e.additionals,t)}}processAnswers(e,t){this.emitDebug(`Processing answers or additionals...`);let n=this.processSRVAnswers(e);this.processTXTAnswers(e),this.processAAnswers(e),this.processAAAAAnswers(e),this.processPTRAnswers(e,t),n.forEach(e=>{this.emit(`discovered`,{type:`service`,data:this.namedServices[e]})})}processSRVAnswers(e){let t=[];return e.forEach(e=>{if(e.type!==`SRV`)return;this.emitDebug(`Processing SRV answer.`);let n=e.name.toString();t.includes(n)||t.push(n),this.namedServices[n]=this.namedServices[n]||{},this.namedServices[n].service=e,this.namedServices[n].host=e.data.target.toString(),this.namedServices[n].port=e.data.port}),t}processTXTAnswers(e){e.forEach(e=>{if(e.type!==`TXT`)return;this.emitDebug(`Processing TXT answer.`);let t=e.data;if(Array.isArray(t)&&t.length>1){let n=e.name.toString();this.namedServices[n]=this.namedServices[n]||{},this.namedServices[n].txt=this.answerDataToKeyValues(Buffer.concat(t))}else if(Buffer.isBuffer(t)){let n=e.name.toString();this.namedServices[n]=this.namedServices[n]||{},this.namedServices[n].txt=this.answerDataToKeyValues(t)}})}processAAnswers(e){e.forEach(e=>{if(e.type!==`A`)return;this.emitDebug(`Processing A answer.`);let t=e.name.toString(),n=e.data.toString();for(let e in this.namedServices)this.namedServices[e].host===t&&(this.namedServices[e].addresses=this.namedServices[e].addresses||[],this.namedServices[e].addresses.reduce((e,t)=>e||t.address===n,!1)||this.namedServices[e].addresses.push({family:m,address:n}))})}processAAAAAnswers(e){e.forEach(e=>{if(e.type!==`AAAA`)return;this.emitDebug(`Processing AAAA answer.`);let t=e.name.toString(),n=e.data.toString();for(let e in this.namedServices)this.namedServices[e].host===t&&(this.namedServices[e].addresses=this.namedServices[e].addresses||[],this.namedServices[e].addresses.reduce((e,t)=>e||t.address===n,!1)||this.namedServices[e].addresses.push({family:h,address:n}))})}processPTRAnswers(e,t){e.forEach(e=>{if(e.type!==`PTR`)return;this.emitDebug(`Processing PTR answer.`);let n=this.serviceTypeFromPTR(e),r=e.data.toString();n!==r&&(this.namedServices[r]=this.namedServices[r]||{},this.namedServices[r].name=r.replace(`.`+n,``),this.namedServices[r].rinfo=t)})}serviceTypeFromPTR(e){let t=e.data,n=/(?:^|^.+?(?:\.))(_.*)$/gm.exec(t.toString()),r=n?n[1]:t.toString();return this.types.includes(r)||(this.types.push(r),this.emit(`discovered`,{type:`type`,data:r}),this.emitDebug(`Scanning service type ${r}.`),this.scanner.query(r,`ANY`)),r}answerDataToKeyValues(e){let t=[],n={},r=0,i=e[r];for(;i;){let a=e.slice(r+1,r+1+i);t.push(a.toString());let o=/^([^=]+)=([^=]*)$/.exec(a.toString());o&&(n[o[1]]=o[2]),r=r+1+i,i=e[r]}return{strings:t,keyValuePairs:n}}emitError(e){this.emit(`error`,e)}emitWarn(e){this.emit(`warn`,e)}emitDebug(e){this.Config.debug&&this.emit(`debug`,e)}};function w(e){return e.startsWith(`192.168.`)?0:e.startsWith(`169.254.`)?1:2}function T(){try{return(0,o.readFileSync)(`/etc/at1000/hostname`,`utf8`).trim()||void 0}catch{return}}function E(){try{return(0,o.readFileSync)(`/etc/at1000/project`,`utf8`).trim()||void 0}catch{return}}async function D(e){let t=(0,i.up)(fetch,()=>({baseUrl:`http://${n.u(e)}/v0`,timeout:1e3,parseRejected:(e,t)=>r.r(e,t.method)}));return{host:e,info:await new n.n(t,e).info()}}const O=async()=>{let e=T();if(e)for(let t of[`${e}.local`,`host.containers.internal`])try{if((await D(t)).info.hostname===e)return t}catch{}},k=async(e=500)=>{e<10&&(e=10);let t=new x({debug:!0}),r=new C(t);if(r.on(`error`,e=>{if(!e.includes(`bind ENOENT`))throw Error(e)}),!await t.init())throw Error(`Failed to initialize mDNS scanner`);t.query(`_at1000_server._tcp.local`),await new Promise(t=>setTimeout(t,e));let i=[...new Set(Object.values(r.namedServices).filter(e=>e.service!==void 0).filter(e=>(e.service?.name)?.endsWith(`_at1000_server._tcp.local`)).flatMap(e=>{let t=e.addresses??[],r=e.port,i=t.filter(e=>e.family===`IPv4`).map(e=>n.u(e.address,r)),a=t.filter(e=>e.family===`IPv6`).map(e=>n.u(e.address,r));return[...i,...a]}))];t.destroy();let a=(await Promise.allSettled(i.map(D))).filter(e=>e.status===`fulfilled`).map(e=>e.value),o=new Map;for(let e of a){let t=o.get(e.info.hostname);t?w(e.host)<w(t.host)&&o.set(e.info.hostname,e):o.set(e.info.hostname,e)}let s=[...o.values()],c=T();if(!c)return s.map(e=>e.host);let l=s.findIndex(e=>e.info.hostname===c);if(l>=0)return s.unshift(...s.splice(l,1)),s.map(e=>e.host);let u=await O();return u?[u,...s.map(e=>e.host)]:s.map(e=>e.host)};var A=class extends r.t{static apiVersion=t.t;static findDevices(e=500){return k(e)}static isStandalone(){return E()!==void 0}static findLocalDevice(){return O()}static async open(e,t){let n=E(),i=n?{kind:`project`,project:n,defaultLabel:n}:{kind:`remote`,defaultLabel:(0,a.hostname)()};return await r.t.openBase(e,t,i)}};exports.AT1000=A,exports.ApiError=r.n,exports.format_host_for_url=n.u,exports.host_without_port=n.d;
2
2
  //# sourceMappingURL=node.cjs.map