@ikalogic/at1000 0.6.0 → 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 (104) hide show
  1. package/build/{at1000-BGZGhgco.mjs → at1000-Bav5xUM1.mjs} +3 -3
  2. package/build/{at1000-BGZGhgco.mjs.map → at1000-Bav5xUM1.mjs.map} +1 -1
  3. package/build/{at1000-D9r6GCs0.cjs → at1000-DjoKZEha.cjs} +3 -3
  4. package/build/at1000-DjoKZEha.cjs.map +1 -0
  5. package/build/browser.cjs +1 -1
  6. package/build/browser.d.cts +3 -3
  7. package/build/browser.d.cts.map +1 -1
  8. package/build/browser.d.mts +3 -3
  9. package/build/browser.d.mts.map +1 -1
  10. package/build/browser.mjs +1 -1
  11. package/build/{com-XQjoTBdU.d.cts → com-Bkkgrsep.d.cts} +177 -177
  12. package/build/{com-XQjoTBdU.d.cts.map → com-Bkkgrsep.d.cts.map} +1 -1
  13. package/build/{com-XQjoTBdU.d.mts → com-Bkkgrsep.d.mts} +177 -177
  14. package/build/{com-XQjoTBdU.d.mts.map → com-Bkkgrsep.d.mts.map} +1 -1
  15. package/build/com.cjs +1 -1
  16. package/build/com.d.cts +1 -1
  17. package/build/com.d.mts +1 -1
  18. package/build/{common-BSrNhbq_.cjs → common-BUohXSqz.cjs} +2 -2
  19. package/build/{common-BSrNhbq_.cjs.map → common-BUohXSqz.cjs.map} +1 -1
  20. package/build/{events-Cf7iAMZP.d.cts → events-8aTmwMUi.d.cts} +6 -6
  21. package/build/events-8aTmwMUi.d.cts.map +1 -0
  22. package/build/{events-Cf7iAMZP.d.mts → events-8aTmwMUi.d.mts} +6 -6
  23. package/build/events-8aTmwMUi.d.mts.map +1 -0
  24. package/build/events.cjs +1 -1
  25. package/build/events.d.cts +1 -1
  26. package/build/events.d.mts +1 -1
  27. package/build/events.mjs +1 -1
  28. package/build/gpio-5-tRkdTW.d.mts +712 -0
  29. package/build/gpio-5-tRkdTW.d.mts.map +1 -0
  30. package/build/gpio-D3QEeLKh.d.cts +712 -0
  31. package/build/gpio-D3QEeLKh.d.cts.map +1 -0
  32. package/build/gpio.cjs +1 -1
  33. package/build/gpio.cjs.map +1 -1
  34. package/build/gpio.d.cts +2 -2
  35. package/build/gpio.d.mts +2 -2
  36. package/build/gpio.mjs +1 -1
  37. package/build/gpio.mjs.map +1 -1
  38. package/build/{hmi-B-potLdl.d.cts → hmi-BEMiVKDF.d.cts} +2 -2
  39. package/build/hmi-BEMiVKDF.d.cts.map +1 -0
  40. package/build/{hmi-B-potLdl.d.mts → hmi-BEMiVKDF.d.mts} +2 -2
  41. package/build/hmi-BEMiVKDF.d.mts.map +1 -0
  42. package/build/hmi.cjs +1 -1
  43. package/build/hmi.d.cts +1 -1
  44. package/build/hmi.d.mts +1 -1
  45. package/build/{host-DJ8SAGMC.d.mts → host-BBjSKRqs.d.mts} +6 -6
  46. package/build/host-BBjSKRqs.d.mts.map +1 -0
  47. package/build/{host-BCOEcUog.d.cts → host-DlP73amZ.d.cts} +6 -6
  48. package/build/host-DlP73amZ.d.cts.map +1 -0
  49. package/build/{management-BGrPAG5k.cjs → management-DqBsC1HB.cjs} +2 -2
  50. package/build/management-DqBsC1HB.cjs.map +1 -0
  51. package/build/{management-CuI4cenF.mjs → management-StKcAkgo.mjs} +2 -2
  52. package/build/management-StKcAkgo.mjs.map +1 -0
  53. package/build/management.cjs +1 -1
  54. package/build/management.d.cts +81 -82
  55. package/build/management.d.cts.map +1 -1
  56. package/build/management.d.mts +81 -82
  57. package/build/management.d.mts.map +1 -1
  58. package/build/management.mjs +1 -1
  59. package/build/node.cjs +1 -1
  60. package/build/node.cjs.map +1 -1
  61. package/build/node.d.cts +3 -3
  62. package/build/node.d.cts.map +1 -1
  63. package/build/node.d.mts +3 -3
  64. package/build/node.d.mts.map +1 -1
  65. package/build/node.mjs +1 -1
  66. package/build/node.mjs.map +1 -1
  67. package/build/package-DNfLRnEC.mjs +2 -0
  68. package/build/package-DNfLRnEC.mjs.map +1 -0
  69. package/build/{package-DDLRsahz.cjs → package-iERj9NJ6.cjs} +2 -2
  70. package/build/package-iERj9NJ6.cjs.map +1 -0
  71. package/build/{power-B8QFbKdP.d.cts → power-B3oUS0wU.d.cts} +18 -18
  72. package/build/power-B3oUS0wU.d.cts.map +1 -0
  73. package/build/{power-BZmXOJyK.d.mts → power-D08VFff6.d.mts} +18 -18
  74. package/build/power-D08VFff6.d.mts.map +1 -0
  75. package/build/power.cjs +1 -1
  76. package/build/power.d.cts +1 -1
  77. package/build/power.d.mts +1 -1
  78. package/build/relays-TADiLsPk.d.cts.map +1 -1
  79. package/build/relays-TADiLsPk.d.mts.map +1 -1
  80. package/build/relays.cjs +1 -1
  81. package/build/{rolldown-runtime-CMqjfN_6.cjs → rolldown-runtime-BocRIvOZ.cjs} +1 -1
  82. package/build/session-qWW9mqWH.d.cts.map +1 -1
  83. package/build/session-qWW9mqWH.d.mts.map +1 -1
  84. package/build/session.cjs +1 -1
  85. package/build/session.mjs +1 -1
  86. package/package.json +12 -22
  87. package/build/at1000-D9r6GCs0.cjs.map +0 -1
  88. package/build/events-Cf7iAMZP.d.cts.map +0 -1
  89. package/build/events-Cf7iAMZP.d.mts.map +0 -1
  90. package/build/gpio-Bk1VEKYF.d.cts +0 -416
  91. package/build/gpio-Bk1VEKYF.d.cts.map +0 -1
  92. package/build/gpio-bFe112uI.d.mts +0 -416
  93. package/build/gpio-bFe112uI.d.mts.map +0 -1
  94. package/build/hmi-B-potLdl.d.cts.map +0 -1
  95. package/build/hmi-B-potLdl.d.mts.map +0 -1
  96. package/build/host-BCOEcUog.d.cts.map +0 -1
  97. package/build/host-DJ8SAGMC.d.mts.map +0 -1
  98. package/build/management-BGrPAG5k.cjs.map +0 -1
  99. package/build/management-CuI4cenF.mjs.map +0 -1
  100. package/build/package-CXtuh0C5.mjs +0 -2
  101. package/build/package-CXtuh0C5.mjs.map +0 -1
  102. package/build/package-DDLRsahz.cjs.map +0 -1
  103. package/build/power-B8QFbKdP.d.cts.map +0 -1
  104. 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",
@@ -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,107 +162,107 @@ 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
- }, "command" | "name" | "is_default">;
165
+ }, "command" | "is_default" | "name">;
166
166
  readonly "~standard": v.StandardProps<{
167
- command?: string | undefined;
168
167
  name: string;
169
168
  is_default: boolean;
169
+ command?: string | undefined;
170
170
  }, {
171
- command: string;
172
171
  name: string;
173
172
  is_default: boolean;
173
+ command: string;
174
174
  }>;
175
175
  readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
176
- command: string;
177
176
  name: string;
178
177
  is_default: boolean;
179
- }, v.BooleanIssue | v.StringIssue | v.ObjectIssue>;
178
+ command: string;
179
+ }, v.BooleanIssue | v.ObjectIssue | v.StringIssue>;
180
180
  readonly "~types"?: {
181
181
  readonly input: {
182
- command?: string | undefined;
183
182
  name: string;
184
183
  is_default: boolean;
184
+ command?: string | undefined;
185
185
  };
186
186
  readonly output: {
187
- command: string;
188
187
  name: string;
189
188
  is_default: boolean;
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
- readonly command: v.OptionalSchema<v.OptionalSchema<v.StringSchema<undefined>, "">, undefined>;
196
195
  readonly name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
197
196
  readonly is_default: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
197
+ readonly command: v.OptionalSchema<v.OptionalSchema<v.StringSchema<undefined>, "">, undefined>;
198
198
  };
199
199
  readonly "~standard": v.StandardProps<{
200
- command?: string | undefined;
201
200
  name?: string | undefined;
202
201
  is_default?: boolean | undefined;
203
- }, {
204
202
  command?: string | undefined;
203
+ }, {
205
204
  name?: string | undefined;
206
205
  is_default?: boolean | undefined;
206
+ command?: string | undefined;
207
207
  }>;
208
208
  readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
209
- command?: string | undefined;
210
209
  name?: string | undefined;
211
210
  is_default?: boolean | undefined;
212
- }, v.BooleanIssue | v.StringIssue | v.ObjectIssue>;
211
+ command?: string | undefined;
212
+ }, v.BooleanIssue | v.ObjectIssue | v.StringIssue>;
213
213
  readonly "~types"?: {
214
214
  readonly input: {
215
- command?: string | undefined;
216
215
  name?: string | undefined;
217
216
  is_default?: boolean | undefined;
217
+ command?: string | undefined;
218
218
  };
219
219
  readonly output: {
220
- command?: string | undefined;
221
220
  name?: string | undefined;
222
221
  is_default?: boolean | undefined;
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;
@@ -571,21 +571,21 @@ declare class ManagementApi {
571
571
  proto: "tcp" | "udp";
572
572
  }[];
573
573
  command: string;
574
- state: "idle" | "running" | "error";
575
- mode?: "normal" | "development" | undefined;
574
+ state: "error" | "idle" | "running";
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;
@@ -597,15 +597,15 @@ declare class ManagementApi {
597
597
  proto: "tcp" | "udp";
598
598
  }[];
599
599
  command: string;
600
- state: "idle" | "running" | "error";
601
- mode?: "normal" | "development" | undefined;
600
+ state: "error" | "idle" | "running";
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;
@@ -617,8 +617,8 @@ declare class ManagementApi {
617
617
  proto: "tcp" | "udp";
618
618
  }[];
619
619
  command: string;
620
- state: "idle" | "running" | "error";
621
- mode?: "normal" | "development" | undefined;
620
+ state: "error" | "idle" | "running";
621
+ mode?: "development" | "normal" | undefined;
622
622
  password_set?: boolean | undefined;
623
623
  }>;
624
624
  /**
@@ -630,7 +630,7 @@ declare class ManagementApi {
630
630
  * @param name The project name (sent percent-encoded; the server decodes it).
631
631
  * @returns The created project.
632
632
  */
633
- importProject(file: Blob, name: string): Promise<{
633
+ import_project(file: Blob, name: string): Promise<{
634
634
  name: string;
635
635
  path: string;
636
636
  id: string;
@@ -642,8 +642,8 @@ declare class ManagementApi {
642
642
  proto: "tcp" | "udp";
643
643
  }[];
644
644
  command: string;
645
- state: "idle" | "running" | "error";
646
- mode?: "normal" | "development" | undefined;
645
+ state: "error" | "idle" | "running";
646
+ mode?: "development" | "normal" | undefined;
647
647
  password_set?: boolean | undefined;
648
648
  }>;
649
649
  /**
@@ -651,7 +651,7 @@ declare class ManagementApi {
651
651
  * @param projectId The project slug id.
652
652
  * @param data The data to patch the project with.
653
653
  */
654
- updateProject(projectId: string, data: ProjectPatch): Promise<{
654
+ update_project(projectId: string, data: ProjectPatch): Promise<{
655
655
  name: string;
656
656
  path: string;
657
657
  id: string;
@@ -663,8 +663,8 @@ declare class ManagementApi {
663
663
  proto: "tcp" | "udp";
664
664
  }[];
665
665
  command: string;
666
- state: "idle" | "running" | "error";
667
- mode?: "normal" | "development" | undefined;
666
+ state: "error" | "idle" | "running";
667
+ mode?: "development" | "normal" | undefined;
668
668
  password_set?: boolean | undefined;
669
669
  }>;
670
670
  /**
@@ -672,18 +672,18 @@ declare class ManagementApi {
672
672
  * @param projectId The project slug id.
673
673
  * @param mode The run mode: 'normal' (default) or 'development' (starts sshd).
674
674
  */
675
- runProject(projectId: string, mode?: RunMode): Promise<any>;
675
+ run_project(projectId: string, mode?: RunMode): Promise<any>;
676
676
  /**
677
677
  * Stops a running project.
678
678
  * @param projectId The project slug id.
679
679
  */
680
- stopProject(projectId: string): Promise<any>;
680
+ stop_project(projectId: string): Promise<any>;
681
681
  /**
682
682
  * Gets the port mappings for a project.
683
683
  * @param projectId The project slug id.
684
684
  * @returns The project's port mappings.
685
685
  */
686
- getProjectPorts(projectId: string): Promise<{
686
+ get_project_ports(projectId: string): Promise<{
687
687
  host: number;
688
688
  container: number;
689
689
  proto: "tcp" | "udp";
@@ -694,7 +694,7 @@ declare class ManagementApi {
694
694
  * @param ports The complete list of port mappings.
695
695
  * @returns The updated port mappings.
696
696
  */
697
- setProjectPorts(projectId: string, ports: PortMapping[]): Promise<{
697
+ set_project_ports(projectId: string, ports: PortMapping[]): Promise<{
698
698
  host: number;
699
699
  container: number;
700
700
  proto: "tcp" | "udp";
@@ -705,7 +705,7 @@ declare class ManagementApi {
705
705
  * @param mapping The port mapping to add.
706
706
  * @returns The updated port mappings.
707
707
  */
708
- addProjectPort(projectId: string, mapping: PortMapping): Promise<{
708
+ add_project_port(projectId: string, mapping: PortMapping): Promise<{
709
709
  host: number;
710
710
  container: number;
711
711
  proto: "tcp" | "udp";
@@ -715,32 +715,32 @@ declare class ManagementApi {
715
715
  * @param projectId The project slug id.
716
716
  * @param hostPort The host port to unmap.
717
717
  */
718
- deleteProjectPort(projectId: string, hostPort: number): Promise<void>;
718
+ delete_project_port(projectId: string, hostPort: number): Promise<void>;
719
719
  /**
720
720
  * Sets the password of the project's dev user (used for SSH password login in
721
721
  * development mode).
722
722
  * @param projectId The project slug id.
723
723
  * @param password The new password.
724
724
  */
725
- setProjectPassword(projectId: string, password: string): Promise<void>;
725
+ set_project_password(projectId: string, password: string): Promise<void>;
726
726
  /**
727
727
  * Gets the SSH authorized_keys for the project's dev user.
728
728
  * @param projectId The project slug id.
729
729
  * @returns The list of authorized public keys.
730
730
  */
731
- getProjectAuthorizedKeys(projectId: string): Promise<string[]>;
731
+ get_project_authorized_keys(projectId: string): Promise<string[]>;
732
732
  /**
733
733
  * Replaces the SSH authorized_keys for the project's dev user.
734
734
  * @param projectId The project slug id.
735
735
  * @param keys The complete list of authorized public keys.
736
736
  * @returns The updated list of authorized public keys.
737
737
  */
738
- setProjectAuthorizedKeys(projectId: string, keys: string[]): Promise<string[]>;
738
+ set_project_authorized_keys(projectId: string, keys: string[]): Promise<string[]>;
739
739
  /**
740
740
  * Deletes a project.
741
741
  * @param projectId The project slug id.
742
742
  */
743
- deleteProject(projectId: string): Promise<any>;
743
+ delete_project(projectId: string): Promise<any>;
744
744
  /**
745
745
  * Uploads a firmware bundle to the device and inspects it.
746
746
  * The bundle is staged for installation but not installed yet. The body streams straight to
@@ -780,7 +780,7 @@ declare class ManagementApi {
780
780
  * @returns The update status including state, progress, message and error.
781
781
  */
782
782
  update_status(): Promise<{
783
- state: "idle" | "installing" | "failed";
783
+ state: "failed" | "idle" | "installing";
784
784
  progress: number;
785
785
  message: string;
786
786
  error: string;
@@ -805,10 +805,10 @@ declare class ManagementApi {
805
805
  * @param options.tail Max number of trailing lines (default 1000, clamped 1..10000).
806
806
  * @returns The current run's log lines, in order.
807
807
  */
808
- getProjectLogs(projectId: string, options?: {
808
+ get_project_logs(projectId: string, options?: {
809
809
  tail?: number;
810
810
  }): Promise<{
811
- stream: "stdout" | "stderr";
811
+ stream: "stderr" | "stdout";
812
812
  line: string;
813
813
  }[]>;
814
814
  /**
@@ -824,7 +824,7 @@ declare class ManagementApi {
824
824
  * @param options.tail Max number of trailing lines (default 1000, clamped 1..10000).
825
825
  * @returns A handle whose `close()` aborts the stream.
826
826
  */
827
- streamProjectLogs(projectId: string, handlers: {
827
+ stream_project_logs(projectId: string, handlers: {
828
828
  onLine: (line: LogLine) => void;
829
829
  onEnd?: () => void;
830
830
  onError?: (err: unknown) => void;
@@ -835,5 +835,4 @@ declare class ManagementApi {
835
835
  };
836
836
  }
837
837
  //#endregion
838
- 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 };
839
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":";;;oBAMY;EACV;EACA;EACA;EACA;EACA;EACA;;cAiFI,MAAI,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAgBE,cAAc,EAAE,mBAAmB;qBAMlC,aAAW,EAAA;;;;;YACZ,cAAc,EAAE,mBAAmB;qBAMlC,SAAO,EAAA;YACR,UAAU,EAAE,mBAAmB;cAErC,SAAO,EAAA;;;;YACD,UAAU,EAAE,mBAAmB;qBAE9B,SAAO,EAAA;;;;;;;;;;;;;;;;YAYR,UAAU,EAAE,mBAAmB;qBAG9B,cAAY,EAAA,yBAAA,EAAA;;;;;;;;;;;;;YAKb,eAAe,EAAE,mBAAmB;cAE1C,cAAY,KAAA,KAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YACN,eAAe,EAAE,mBAAmB;cAE1C,iBAAe,EAAA;YACT,kBAAkB,EAAE,mBAAmB;cAE7C,eAAa,EAAA;;;;;YAKP,gBAAgB,EAAE,mBAAmB;cAE3C,YAAU,EAAA;;;;;;YAMJ,aAAa,EAAE,mBAAmB;cAExC,iBAAe,EAAA;;;;YACT,kBAAkB,EAAE,mBAAmB;qBAEtC,cAAY,EAAA;;;;;;;YAOb,eAAe,EAAE,mBAAmB;cAE1C,gBAAc,EAAA;;;YACR,iBAAiB,EAAE,mBAAmB;cAS5C,kBAAgB,EAAA;;;;;YAKV,mBAAmB,EAAE,mBAAmB;cAE9C,oBAAkB,EAAA;;;;;;;;;;YAMZ,qBAAqB,EAAE,mBAAmB;cAEhD,mBAAiB,EAAA;;;;;;;;;;;;;;;;;;;;;YAaX,oBAAoB,EAAE,mBAAmB;cAE/C,mBAAiB,EAAA;;;;;;;;YAQX,oBAAoB,EAAE,mBAAmB;cAE/C,iBAAe,EAAA;;;;;;;;;;;;;;;;;YAQT,kBAAkB,EAAE,mBAAmB;cAE7C,eAAa,EAAA;;;;;;;;;;;;;YAOP,gBAAgB,EAAE,mBAAmB;qBAEpC,iBAAe,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAahB,kBAAkB,EAAE,mBAAmB;qBAEtC,kBAAgB,EAAA;;;;;;YAMjB,mBAAmB,EAAE,mBAAmB;;qBAKvC;mBACkB;mBAAiC;EAA9D,YAA6B,OAAO,SAA0B;;;;;EAM9D,QAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQJ,mBAAmB,QAAQ;;;;;EAQ3B,gBAAgB,MAAM,kBAAkB,QAAQ;;;;EAWhD,yBAAyB,QAAQ;;;;;EAQjC,wBAAwB,mBAAmB,QAAQ;;EASnD,sBAAsB,QAAQ;;EAK9B,uBAAuB,QAAQ;;;;;EAQzB,YAAY,QAAQ;;;;;;;;EAc1B,aAAa,UAAU,OAAO;;;;;EAY9B,gBAAY;;;;;;;;;;;;;;;;;;;;EAQZ,eAAW;;;;;;EASX,YAAY,oBAAiB;;;;;;;;;;;;;;;;;;;;EAQ7B,eAAe,YAAY,gBAAa;;;;;;;;;;;;;;;;;;;;;;;;;EAkBxC,eAAe,MAAM,MAAM,eAAY;;;;;;;;;;;;;;;;;;;;;EAgBvC,eAAe,mBAAmB,MAAM,eAAY;;;;;;;;;;;;;;;;;;;;;EAapD,YAAY,mBAAmB,OAAM,UAAkB;;;;;EAYvD,aAAa,oBAAiB;;;;;;EAY9B,kBAAkB,oBAAiB;;;;;;;;;;;EAUnC,kBAAkB,mBAAmB,OAAO,gBAAa;;;;;;;;;;;EAezD,iBAAiB,mBAAmB,SAAS,cAAW;;;;;;;;;;EAcxD,oBAAoB,mBAAmB,mBAAgB;;;;;;;EAcvD,qBAAqB,mBAAmB,mBAAgB;;;;;;EAcxD,4BAA4B,oBAAiB;;;;;;;EAY7C,4BAA4B,mBAAmB,iBAAc;;;;;EAa7D,eAAe,oBAAiB;;;;;;;;;;;EAchC,cAAc,MAAM,MAAM,oBAAyB;;;;;;;;;;EAenD,eAAW;;;;;;;;;;EAQX,kBAAc;;;;;;;;EAQd,iBAAa;;;;;;;;;;;EAQb,UAAM;;;;;;;;;;;;;;;EAgBN,iBAAiB,mBAAmB;IAAY;MAAe;;;;;;;;;;;;;;;;;EAoB/D,oBACE,mBACA;IACE,SAAS,MAAM;IACf;IACA,WAAW;KAEb;IAAY;;IACT"}
@@ -1 +1 @@
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-CuI4cenF.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};
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-DDLRsahz.cjs"),n=require("./management-BGrPAG5k.cjs"),r=require("./at1000-D9r6GCs0.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);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: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){return{host:e,info:await new n.n((0,i.up)(fetch,()=>({baseUrl:`http://${n.u(e)}/v0`,timeout:1e3,parseRejected:(e,t)=>r.r(e,t.method)})),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;
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