@ecobridge.xyz/devicemanager 3.0.2 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitea/workflows/default_tags.yaml +0 -21
- package/.smartconfig.json +69 -0
- package/changelog.md +23 -1
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/devicemanager.classes.devicemanager.js +33 -7
- package/dist_ts/discovery/discovery.classes.mdns.js +46 -11
- package/dist_ts/discovery/discovery.classes.networkscanner.d.ts +1 -1
- package/dist_ts/discovery/discovery.classes.networkscanner.js +1 -1
- package/dist_ts/discovery/discovery.classes.ssdp.d.ts +52 -21
- package/dist_ts/discovery/discovery.classes.ssdp.js +407 -117
- package/dist_ts/features/feature.print.d.ts +4 -2
- package/dist_ts/features/feature.print.js +48 -38
- package/dist_ts/index.d.ts +1 -1
- package/dist_ts/interfaces/feature.interfaces.d.ts +1 -1
- package/dist_ts/interfaces/index.d.ts +1 -1
- package/dist_ts/plugins.d.ts +5 -15
- package/dist_ts/plugins.js +6 -19
- package/dist_ts/protocols/index.d.ts +1 -1
- package/dist_ts/protocols/index.js +2 -2
- package/dist_ts/protocols/protocol.escl.js +2 -2
- package/dist_ts/protocols/protocol.ipp.d.ts +144 -33
- package/dist_ts/protocols/protocol.ipp.js +942 -239
- package/license.md +21 -0
- package/package.json +16 -25
- package/pnpm-workspace.yaml +4 -0
- package/readme.md +61 -76
- package/test/{test.ts → test.node.ts} +20 -45
- package/test/test.ssdp.node.ts +978 -0
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/devicemanager.classes.devicemanager.ts +44 -6
- package/ts/discovery/discovery.classes.mdns.ts +40 -11
- package/ts/discovery/discovery.classes.networkscanner.ts +1 -1
- package/ts/discovery/discovery.classes.ssdp.ts +493 -130
- package/ts/features/feature.print.ts +53 -45
- package/ts/index.ts +1 -0
- package/ts/interfaces/feature.interfaces.ts +1 -1
- package/ts/interfaces/index.ts +1 -1
- package/ts/plugins.ts +5 -25
- package/ts/protocols/index.ts +6 -1
- package/ts/protocols/protocol.escl.ts +1 -1
- package/ts/protocols/protocol.ipp.ts +1183 -260
- package/npmextra.json +0 -24
|
@@ -68,8 +68,10 @@ export declare class PrintFeature extends Feature {
|
|
|
68
68
|
cancelJob(jobId: number): Promise<void>;
|
|
69
69
|
private printWithIpp;
|
|
70
70
|
private updateCapabilitiesFromIpp;
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Map IIppJob to IPrintJob, normalizing extended states
|
|
73
|
+
*/
|
|
74
|
+
private mapIppJobToInternal;
|
|
73
75
|
getFeatureInfo(): IPrintFeatureInfo;
|
|
74
76
|
/**
|
|
75
77
|
* Create from discovery metadata
|
|
@@ -66,7 +66,7 @@ export class PrintFeature extends Feature {
|
|
|
66
66
|
const path = url.pathname || '/ipp/print';
|
|
67
67
|
this.ippClient = new IppProtocol(address, port, path);
|
|
68
68
|
// Verify connection by getting printer attributes
|
|
69
|
-
const attrs = await this.ippClient.
|
|
69
|
+
const attrs = await this.ippClient.getPrinterAttributes();
|
|
70
70
|
this.updateCapabilitiesFromIpp(attrs);
|
|
71
71
|
}
|
|
72
72
|
// JetDirect and LPD don't need connection verification
|
|
@@ -111,7 +111,8 @@ export class PrintFeature extends Feature {
|
|
|
111
111
|
if (!this.isConnected || !this.ippClient) {
|
|
112
112
|
throw new Error('Print feature not connected');
|
|
113
113
|
}
|
|
114
|
-
|
|
114
|
+
const jobs = await this.ippClient.getJobs();
|
|
115
|
+
return jobs.map(job => this.mapIppJobToInternal(job));
|
|
115
116
|
}
|
|
116
117
|
/**
|
|
117
118
|
* Get info about a specific job
|
|
@@ -120,7 +121,8 @@ export class PrintFeature extends Feature {
|
|
|
120
121
|
if (!this.isConnected || !this.ippClient) {
|
|
121
122
|
throw new Error('Print feature not connected');
|
|
122
123
|
}
|
|
123
|
-
|
|
124
|
+
const job = await this.ippClient.getJobAttributes(jobId);
|
|
125
|
+
return this.mapIppJobToInternal(job);
|
|
124
126
|
}
|
|
125
127
|
/**
|
|
126
128
|
* Cancel a print job
|
|
@@ -140,8 +142,16 @@ export class PrintFeature extends Feature {
|
|
|
140
142
|
throw new Error('IPP client not initialized');
|
|
141
143
|
}
|
|
142
144
|
this.emit('print:started', options);
|
|
143
|
-
//
|
|
144
|
-
const
|
|
145
|
+
// Use smartPrint for auto format detection and conversion
|
|
146
|
+
const ippJob = await this.ippClient.smartPrint(data, {
|
|
147
|
+
jobName: options?.jobName,
|
|
148
|
+
copies: options?.copies,
|
|
149
|
+
media: options?.mediaSize,
|
|
150
|
+
sides: options?.sides,
|
|
151
|
+
printQuality: options?.quality,
|
|
152
|
+
colorMode: options?.colorMode,
|
|
153
|
+
});
|
|
154
|
+
const job = this.mapIppJobToInternal(ippJob);
|
|
145
155
|
this.emit('print:submitted', job);
|
|
146
156
|
return job;
|
|
147
157
|
}
|
|
@@ -150,48 +160,48 @@ export class PrintFeature extends Feature {
|
|
|
150
160
|
// ============================================================================
|
|
151
161
|
updateCapabilitiesFromIpp(caps) {
|
|
152
162
|
this.supportsColor = caps.colorSupported;
|
|
153
|
-
|
|
154
|
-
this.
|
|
155
|
-
|
|
156
|
-
|
|
163
|
+
// Derive duplexSupported from sidesSupported
|
|
164
|
+
this.supportsDuplex = caps.sidesSupported?.some(s => s.includes('two-sided')) ?? false;
|
|
165
|
+
// Get max copies from range
|
|
166
|
+
this.maxCopies = caps.copiesSupported?.upper ?? 99;
|
|
167
|
+
if (caps.mediaSizeSupported && caps.mediaSizeSupported.length > 0) {
|
|
168
|
+
this.supportedMediaSizes = caps.mediaSizeSupported;
|
|
157
169
|
}
|
|
158
|
-
if (caps.
|
|
159
|
-
this.supportedMediaTypes = caps.
|
|
170
|
+
if (caps.mediaTypeSupported && caps.mediaTypeSupported.length > 0) {
|
|
171
|
+
this.supportedMediaTypes = caps.mediaTypeSupported;
|
|
160
172
|
}
|
|
161
173
|
if (caps.sidesSupported && caps.sidesSupported.length > 0) {
|
|
162
174
|
this.supportedSides = caps.sidesSupported.filter((s) => ['one-sided', 'two-sided-long-edge', 'two-sided-short-edge'].includes(s));
|
|
163
175
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
case 'draft': return 3;
|
|
171
|
-
case 'normal': return 4;
|
|
172
|
-
case 'high': return 5;
|
|
173
|
-
default: return 4;
|
|
176
|
+
// Map IPP quality values (3=draft, 4=normal, 5=high) to strings
|
|
177
|
+
if (caps.printQualitySupported && caps.printQualitySupported.length > 0) {
|
|
178
|
+
const qualityMap = { 3: 'draft', 4: 'normal', 5: 'high' };
|
|
179
|
+
this.supportedQualities = caps.printQualitySupported
|
|
180
|
+
.map(q => qualityMap[q])
|
|
181
|
+
.filter((q) => q !== undefined);
|
|
174
182
|
}
|
|
175
183
|
}
|
|
176
|
-
|
|
184
|
+
/**
|
|
185
|
+
* Map IIppJob to IPrintJob, normalizing extended states
|
|
186
|
+
*/
|
|
187
|
+
mapIppJobToInternal(job) {
|
|
188
|
+
// Map extended IPP states to simpler internal states
|
|
177
189
|
const stateMap = {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
190
|
+
'pending': 'pending',
|
|
191
|
+
'pending-held': 'pending',
|
|
192
|
+
'processing': 'processing',
|
|
193
|
+
'processing-stopped': 'processing',
|
|
194
|
+
'canceled': 'canceled',
|
|
195
|
+
'aborted': 'aborted',
|
|
196
|
+
'completed': 'completed',
|
|
185
197
|
};
|
|
186
198
|
return {
|
|
187
|
-
id: job
|
|
188
|
-
name: job
|
|
189
|
-
state: stateMap[job
|
|
190
|
-
stateReason: job
|
|
191
|
-
createdAt:
|
|
192
|
-
completedAt: job
|
|
193
|
-
? new Date(job['time-at-completed'] * 1000)
|
|
194
|
-
: undefined,
|
|
199
|
+
id: job.id,
|
|
200
|
+
name: job.name,
|
|
201
|
+
state: stateMap[job.state],
|
|
202
|
+
stateReason: job.stateReasons?.[0],
|
|
203
|
+
createdAt: job.createdAt,
|
|
204
|
+
completedAt: job.completedAt,
|
|
195
205
|
};
|
|
196
206
|
}
|
|
197
207
|
// ============================================================================
|
|
@@ -223,4 +233,4 @@ export class PrintFeature extends Feature {
|
|
|
223
233
|
});
|
|
224
234
|
}
|
|
225
235
|
}
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS5wcmludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2ZlYXR1cmVzL2ZlYXR1cmUucHJpbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBeUIsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUE4QyxNQUFNLHVCQUF1QixDQUFDO0FBMEJoRzs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sT0FBTyxZQUFhLFNBQVEsT0FBTztJQUN2QixJQUFJLEdBQUcsT0FBZ0IsQ0FBQztJQUN4QixRQUFRLENBQWlCO0lBRXpDLGtCQUFrQjtJQUNWLFNBQVMsR0FBdUIsSUFBSSxDQUFDO0lBRTdDLGdCQUFnQjtJQUNBLEdBQUcsQ0FBUztJQUU1QixlQUFlO0lBQ1IsYUFBYSxHQUFZLElBQUksQ0FBQztJQUM5QixjQUFjLEdBQVksS0FBSyxDQUFDO0lBQ2hDLG1CQUFtQixHQUFhLENBQUMsa0JBQWtCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztJQUMzRSxtQkFBbUIsR0FBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9DLFNBQVMsR0FBVyxFQUFFLENBQUM7SUFDdkIsY0FBYyxHQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLGtCQUFrQixHQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXhELFlBQ0UsTUFBd0IsRUFDeEIsSUFBWSxFQUNaLE9BQThCO1FBRTlCLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxFQUFFLFFBQVEsSUFBSSxLQUFLLENBQUM7UUFDM0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLEVBQUUsR0FBRyxJQUFJLFNBQVMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLFlBQVksQ0FBQztRQUV2RSw0Q0FBNEM7UUFDNUMsSUFB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
|
package/dist_ts/index.d.ts
CHANGED
|
@@ -12,4 +12,4 @@ export { HomeAssistantDiscovery, HA_SERVICE_TYPE } from './discovery/discovery.c
|
|
|
12
12
|
export { withRetry, createRetryable, defaultRetryOptions } from './helpers/helpers.retry.js';
|
|
13
13
|
export { isValidIp, ipToNumber, numberToIp, ipRangeToIps, cidrToIps, getLocalSubnet, countIpsInCidr, } from './helpers/helpers.iprange.js';
|
|
14
14
|
export * from './interfaces/index.js';
|
|
15
|
-
export type { ISsdpDevice, ISsdpDeviceDescription, ISsdpService, ISsdpIcon, } from './discovery/discovery.classes.ssdp.js';
|
|
15
|
+
export type { ISsdpDevice, ISsdpDeviceDescription, ISsdpDiscoveryDependencies, ISsdpService, ISsdpIcon, } from './discovery/discovery.classes.ssdp.js';
|
|
@@ -113,7 +113,7 @@ export interface IPrintJob {
|
|
|
113
113
|
name: string;
|
|
114
114
|
state: 'pending' | 'processing' | 'completed' | 'canceled' | 'aborted';
|
|
115
115
|
stateReason?: string;
|
|
116
|
-
createdAt
|
|
116
|
+
createdAt?: Date;
|
|
117
117
|
completedAt?: Date;
|
|
118
118
|
pagesPrinted?: number;
|
|
119
119
|
pagesTotal?: number;
|
|
@@ -122,7 +122,7 @@ export interface IPrintJob {
|
|
|
122
122
|
name: string;
|
|
123
123
|
state: 'pending' | 'processing' | 'completed' | 'canceled' | 'aborted';
|
|
124
124
|
stateReason?: string;
|
|
125
|
-
createdAt
|
|
125
|
+
createdAt?: Date;
|
|
126
126
|
completedAt?: Date;
|
|
127
127
|
pagesPrinted?: number;
|
|
128
128
|
pagesTotal?: number;
|
package/dist_ts/plugins.d.ts
CHANGED
|
@@ -1,23 +1,13 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
2
|
import * as net from 'net';
|
|
3
|
-
import * as dgram from 'dgram';
|
|
3
|
+
import * as dgram from 'node:dgram';
|
|
4
|
+
import * as os from 'node:os';
|
|
4
5
|
import * as events from 'events';
|
|
5
|
-
export { path, net, dgram, events };
|
|
6
|
+
export { path, net, dgram, os, events };
|
|
6
7
|
import * as smartpath from '@push.rocks/smartpath';
|
|
7
|
-
import * as smartpromise from '@push.rocks/smartpromise';
|
|
8
8
|
import * as smartdelay from '@push.rocks/smartdelay';
|
|
9
|
-
|
|
10
|
-
import { SmartRequest } from '@push.rocks/smartrequest';
|
|
11
|
-
export { SmartRequest };
|
|
12
|
-
export { smartpath, smartpromise, smartdelay, smartnetwork, };
|
|
9
|
+
export { smartpath, smartdelay };
|
|
13
10
|
import * as bonjourService from 'bonjour-service';
|
|
14
|
-
import ipp from 'ipp';
|
|
15
11
|
import * as netSnmp from 'net-snmp';
|
|
16
|
-
import * as sonos from 'sonos';
|
|
17
|
-
import * as castv2Client from 'castv2-client';
|
|
18
12
|
import WebSocket from 'ws';
|
|
19
|
-
|
|
20
|
-
Client: any;
|
|
21
|
-
Server: any;
|
|
22
|
-
};
|
|
23
|
-
export { bonjourService, ipp, nodeSsdp, netSnmp, sonos, castv2Client, WebSocket };
|
|
13
|
+
export { bonjourService, netSnmp, WebSocket };
|
package/dist_ts/plugins.js
CHANGED
|
@@ -1,30 +1,17 @@
|
|
|
1
1
|
// native scope
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import * as net from 'net';
|
|
4
|
-
import * as dgram from 'dgram';
|
|
4
|
+
import * as dgram from 'node:dgram';
|
|
5
|
+
import * as os from 'node:os';
|
|
5
6
|
import * as events from 'events';
|
|
6
|
-
export { path, net, dgram, events };
|
|
7
|
+
export { path, net, dgram, os, events };
|
|
7
8
|
// @push.rocks scope
|
|
8
9
|
import * as smartpath from '@push.rocks/smartpath';
|
|
9
|
-
import * as smartpromise from '@push.rocks/smartpromise';
|
|
10
10
|
import * as smartdelay from '@push.rocks/smartdelay';
|
|
11
|
-
|
|
12
|
-
// Re-export SmartRequest for HTTP
|
|
13
|
-
import { SmartRequest } from '@push.rocks/smartrequest';
|
|
14
|
-
export { SmartRequest };
|
|
15
|
-
export { smartpath, smartpromise, smartdelay, smartnetwork, };
|
|
11
|
+
export { smartpath, smartdelay };
|
|
16
12
|
// third party
|
|
17
13
|
import * as bonjourService from 'bonjour-service';
|
|
18
|
-
import ipp from 'ipp';
|
|
19
|
-
import nodeSsdpModule from 'node-ssdp';
|
|
20
14
|
import * as netSnmp from 'net-snmp';
|
|
21
|
-
import * as sonos from 'sonos';
|
|
22
|
-
import * as castv2Client from 'castv2-client';
|
|
23
15
|
import WebSocket from 'ws';
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
Client: nodeSsdpModule.Client,
|
|
27
|
-
Server: nodeSsdpModule.Server,
|
|
28
|
-
};
|
|
29
|
-
export { bonjourService, ipp, nodeSsdp, netSnmp, sonos, castv2Client, WebSocket };
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZTtBQUNmLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQzNCLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUVwQyxvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxrQ0FBa0M7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQztBQUV4QixPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxHQUNiLENBQUM7QUFFRixjQUFjO0FBQ2QsT0FBTyxLQUFLLGNBQWMsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFDdEIsT0FBTyxjQUFjLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sS0FBSyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sS0FBSyxZQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sU0FBUyxNQUFNLElBQUksQ0FBQztBQUUzQix1REFBdUQ7QUFDdkQsTUFBTSxRQUFRLEdBQUc7SUFDZixNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU07SUFDN0IsTUFBTSxFQUFFLGNBQWMsQ0FBQyxNQUFNO0NBQzlCLENBQUM7QUFFRixPQUFPLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLENBQUMifQ==
|
|
16
|
+
export { bonjourService, netSnmp, WebSocket };
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZTtBQUNmLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQzNCLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFFeEMsb0JBQW9CO0FBQ3BCLE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBRWpDLGNBQWM7QUFDZCxPQUFPLEtBQUssY0FBYyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sU0FBUyxNQUFNLElBQUksQ0FBQztBQUUzQixPQUFPLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQyJ9
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export { EsclProtocol } from './protocol.escl.js';
|
|
6
6
|
export { SaneProtocol } from './protocol.sane.js';
|
|
7
|
-
export { IppProtocol } from './protocol.ipp.js';
|
|
7
|
+
export { IppProtocol, type IIppPrinterCapabilities, type IIppJob, type IIppPrintOptions, } from './protocol.ipp.js';
|
|
8
8
|
export { SnmpProtocol, SNMP_OIDS, type TSnmpValueType, type ISnmpVarbind, type ISnmpOptions, } from './protocol.snmp.js';
|
|
9
9
|
export { NutProtocol, NUT_VARIABLES, NUT_COMMANDS, type TNutStatusFlag, type INutUpsInfo, type INutVariable, } from './protocol.nut.js';
|
|
10
10
|
export { UpnpSoapClient, UPNP_SERVICE_TYPES, UPNP_DEVICE_TYPES, type TDlnaTransportState, type TDlnaTransportStatus, type IDlnaPositionInfo, type IDlnaTransportInfo, type IDlnaMediaInfo, type IDlnaContentItem, type IDlnaBrowseResult, } from './protocol.upnp.js';
|
|
@@ -7,7 +7,7 @@ export { EsclProtocol } from './protocol.escl.js';
|
|
|
7
7
|
// SANE network scanner protocol
|
|
8
8
|
export { SaneProtocol } from './protocol.sane.js';
|
|
9
9
|
// IPP printer protocol
|
|
10
|
-
export { IppProtocol } from './protocol.ipp.js';
|
|
10
|
+
export { IppProtocol, } from './protocol.ipp.js';
|
|
11
11
|
// SNMP query protocol
|
|
12
12
|
export { SnmpProtocol, SNMP_OIDS, } from './protocol.snmp.js';
|
|
13
13
|
// Network UPS Tools protocol
|
|
@@ -18,4 +18,4 @@ export { UpnpSoapClient, UPNP_SERVICE_TYPES, UPNP_DEVICE_TYPES, } from './protoc
|
|
|
18
18
|
export { UpsSnmpHandler, UPS_SNMP_OIDS, } from './protocol.upssnmp.js';
|
|
19
19
|
// Home Assistant WebSocket protocol
|
|
20
20
|
export { HomeAssistantProtocol } from './protocol.homeassistant.js';
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9wcm90b2NvbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsZ0NBQWdDO0FBQ2hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxnQ0FBZ0M7QUFDaEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWxELHVCQUF1QjtBQUN2QixPQUFPLEVBQ0wsV0FBVyxHQUlaLE1BQU0sbUJBQW1CLENBQUM7QUFFM0Isc0JBQXNCO0FBQ3RCLE9BQU8sRUFDTCxZQUFZLEVBQ1osU0FBUyxHQUlWLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsNkJBQTZCO0FBQzdCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsYUFBYSxFQUNiLFlBQVksR0FJYixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLDBCQUEwQjtBQUMxQixPQUFPLEVBQ0wsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixpQkFBaUIsR0FRbEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1Qiw4QkFBOEI7QUFDOUIsT0FBTyxFQUNMLGNBQWMsRUFDZCxhQUFhLEdBS2QsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixvQ0FBb0M7QUFDcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUMifQ==
|
|
@@ -81,7 +81,7 @@ export class EsclProtocol {
|
|
|
81
81
|
*/
|
|
82
82
|
async submitScanJob(options) {
|
|
83
83
|
const scanSettings = this.buildScanSettings(options);
|
|
84
|
-
// Use fetch for
|
|
84
|
+
// Use fetch for the raw XML request body.
|
|
85
85
|
const response = await fetch(`${this.baseUrl}/ScanJobs`, {
|
|
86
86
|
method: 'POST',
|
|
87
87
|
headers: {
|
|
@@ -361,4 +361,4 @@ export class EsclProtocol {
|
|
|
361
361
|
}
|
|
362
362
|
}
|
|
363
363
|
}
|
|
364
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG9jb2wuZXNjbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL3Byb3RvY29scy9wcm90b2NvbC5lc2NsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDLENBQUMsc0JBQXNCO0FBV2hFOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEdBQUc7SUFDakIsSUFBSSxFQUFFLCtDQUErQztJQUNyRCxHQUFHLEVBQUUsdUNBQXVDO0NBQzdDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sY0FBYyxHQUErQjtJQUNqRCxLQUFLLEVBQUUsT0FBTztJQUNkLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLFVBQVUsRUFBRSxnQkFBZ0I7Q0FDN0IsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxlQUFlLEdBQWdDO0lBQ25ELElBQUksRUFBRSxZQUFZO0lBQ2xCLEdBQUcsRUFBRSxXQUFXO0lBQ2hCLEdBQUcsRUFBRSxpQkFBaUI7SUFDdEIsSUFBSSxFQUFFLFlBQVk7Q0FDbkIsQ0FBQztBQUVGOztHQUVHO0FBQ0gsS0FBSyxVQUFVLFdBQVcsQ0FDeEIsR0FBVyxFQUNYLE1BQWlDLEVBQ2pDLElBQWE7SUFFYixNQUFNLE9BQU8sR0FBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUV4QyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsT0FBTyxDQUFDLE9BQU8sR0FBRyxFQUFFLGNBQWMsRUFBRSx5QkFBeUIsRUFBRSxDQUFDO1FBQ2hFLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxZQUFZLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFM0MsTUFBTSxPQUFPLEdBQTJCLEVBQUUsQ0FBQztJQUMzQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTztRQUNMLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTTtRQUN2QixPQUFPO1FBQ1AsSUFBSSxFQUFFLFlBQVk7S0FDbkIsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBQ2YsT0FBTyxDQUFTO0lBQ2hCLFlBQVksR0FBNkIsSUFBSSxDQUFDO0lBRXRELFlBQVksT0FBZSxFQUFFLElBQVksRUFBRSxTQUFrQixLQUFLO1FBQ2hFLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLFFBQVEsTUFBTSxPQUFPLElBQUksSUFBSSxPQUFPLENBQUM7SUFDekQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGVBQWU7UUFDMUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxXQUFXLENBQ2hDLEdBQUcsSUFBSSxDQUFDLE9BQU8sc0JBQXNCLEVBQ3JDLEtBQUssQ0FDTixDQUFDO1FBRUYsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxTQUFTO1FBQ3BCLE1BQU0sUUFBUSxHQUFHLE1BQU0sV0FBVyxDQUNoQyxHQUFHLElBQUksQ0FBQyxPQUFPLGdCQUFnQixFQUMvQixLQUFLLENBQ04sQ0FBQztRQUVGLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFxQjtRQUM5QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFckQsK0VBQStFO1FBQy9FLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sV0FBVyxFQUFFO1lBQ3ZELE1BQU0sRUFBRSxNQUFNO1lBQ2QsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSx5QkFBeUI7YUFDMUM7WUFDRCxJQUFJLEVBQUUsWUFBWTtTQUNuQixDQUFDLENBQUM7UUFFSCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUVELG1DQUFtQztRQUNuQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxLQUFLLENBQUMsbUJBQW1CLENBQzlCLE1BQWMsRUFDZCxPQUFxQixFQUNyQixlQUF1QixHQUFHO1FBRTFCLHNFQUFzRTtRQUN0RSwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN4RCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMzQixPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYiwrQ0FBK0M7UUFDakQsQ0FBQztRQUVELGlEQUFpRDtRQUNqRCxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDakIsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLENBQUMsaUJBQWlCO1FBRTFDLE9BQU8sUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFDO1lBQzlCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBRXhGLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ1IsSUFBSSxHQUFHLENBQUMsUUFBUSxLQUFLLFdBQVcsRUFBRSxDQUFDO29CQUNqQyxNQUFNO2dCQUNSLENBQUM7cUJBQU0sSUFBSSxHQUFHLENBQUMsUUFBUSxLQUFLLFVBQVUsSUFBSSxHQUFHLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUNyRSxNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksR0FBRyxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsY0FBYyxJQUFJLGdCQUFnQixFQUFFLENBQUMsQ0FBQztnQkFDekYsQ0FBQztZQUNILENBQUM7WUFFRCxNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hELFFBQVEsRUFBRSxDQUFDO1FBQ2IsQ0FBQztRQUVELElBQUksUUFBUSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBRUQsZ0NBQWdDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFjLEVBQUUsT0FBcUI7UUFDN0QsTUFBTSxXQUFXLEdBQUcsR0FBRyxNQUFNLGVBQWUsQ0FBQztRQUU3QyxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUU3RCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDO1FBQ3hDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwRixpREFBaUQ7UUFDakQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRSxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUUsTUFBTSxXQUFXLEdBQUcsTUFBTSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV0QyxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxLQUFLO1lBQ1osTUFBTSxFQUFFLE1BQU07WUFDZCxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxHQUFHO1lBQ3JDLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxJQUFJLE9BQU87WUFDdkMsUUFBUSxFQUFFLFdBQVc7U0FDdEIsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBYztRQUNuQyxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUUzRCwrQ0FBK0M7UUFDL0MsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUIsQ0FBQyxPQUFxQjtRQUM3QyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQztRQUM3QyxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsQ0FBQztRQUMvRCxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsQ0FBQztRQUN6RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDLENBQUM7UUFDM0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxjQUFjLENBQUM7UUFFaEQsSUFBSSxHQUFHLEdBQUc7aUNBQ21CLFVBQVUsQ0FBQyxJQUFJLGdCQUFnQixVQUFVLENBQUMsR0FBRzs7aUJBRTdELE1BQU07O3FCQUVGLENBQUM7UUFFbEIsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakIsa0VBQWtFO1lBQ2xFLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQzlELEdBQUcsSUFBSTtxQkFDUSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7cUJBQ3ZCLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzttQkFDekIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUMxQixPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO1FBQzVELENBQUM7YUFBTSxDQUFDO1lBQ04sb0NBQW9DO1lBQ3BDLEdBQUcsSUFBSTs7OztvQ0FJdUIsQ0FBQztRQUNqQyxDQUFDO1FBRUQsR0FBRyxJQUFJOzs7OzRCQUlpQixNQUFNO3NCQUNaLFVBQVU7c0JBQ1YsVUFBVTtvQkFDWixTQUFTO3NCQUNQLE1BQU0scUJBQXFCLENBQUM7UUFFOUMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakQsR0FBRyxJQUFJOzRCQUNlLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTywyQkFBMkIsQ0FBQztRQUN6RSxDQUFDO1FBRUQsR0FBRyxJQUFJO3FCQUNVLENBQUM7UUFFbEIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7O09BRUc7SUFDSyxTQUFTLENBQUMsTUFBYztRQUM5QixRQUFRLE1BQU0sRUFBRSxDQUFDO1lBQ2YsS0FBSyxTQUFTO2dCQUNaLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLEtBQUssS0FBSztnQkFDUixPQUFPLFFBQVEsQ0FBQztZQUNsQixLQUFLLFlBQVk7Z0JBQ2YsT0FBTyxRQUFRLENBQUM7WUFDbEI7Z0JBQ0UsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLGlCQUFpQixDQUFDLElBQVk7UUFDcEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBRWpCLDZDQUE2QztRQUM3QyxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQVcsRUFBVSxFQUFFO1lBQzVDLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM5RCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2xDLENBQUMsQ0FBQztRQUVGLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxHQUFXLEVBQVksRUFBRTtZQUNsRCxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0QsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO1lBQzdCLElBQUksS0FBSyxDQUFDO1lBQ1YsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQzFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7b0JBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ2hDLENBQUM7WUFDSCxDQUFDO1lBQ0QsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxDQUFDO1FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxHQUFhLEVBQUU7WUFDdEMsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDckQsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRixDQUFDLENBQUM7UUFFRixPQUFPO1lBQ0wsT0FBTyxFQUFFLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLO1lBQzFDLFlBQVksRUFBRSxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFNBQVM7WUFDakYsWUFBWSxFQUFFLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxTQUFTO1lBQ3hELElBQUksRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksU0FBUztZQUN4QyxRQUFRLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFNBQVM7WUFDaEQsT0FBTyxFQUFFLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTO1lBQzlDLE1BQU0sRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztnQkFDNUIsQ0FBQyxDQUFDO29CQUNFLFFBQVEsRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDbEQsUUFBUSxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxJQUFJO29CQUNyRCxTQUFTLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUM7b0JBQ3BELFNBQVMsRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksSUFBSTtvQkFDdkQsY0FBYyxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUM7b0JBQzlELG9CQUFvQixFQUFFLGdCQUFnQixFQUFFO29CQUN4QyxVQUFVLEVBQUUsaUJBQWlCLENBQUMsV0FBVyxDQUFDO29CQUMxQyxlQUFlLEVBQUUsaUJBQWlCLENBQUMsbUJBQW1CLENBQUM7aUJBQ3hEO2dCQUNILENBQUMsQ0FBQyxTQUFTO1lBQ2IsR0FBRyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztnQkFDdkUsQ0FBQyxDQUFDO29CQUNFLFFBQVEsRUFBRSxDQUFDO29CQUNYLFFBQVEsRUFBRSxJQUFJO29CQUNkLFNBQVMsRUFBRSxDQUFDO29CQUNaLFNBQVMsRUFBRSxJQUFJO29CQUNmLGNBQWMsRUFBRSxDQUFDO29CQUNqQixvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRTtvQkFDeEMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLFdBQVcsQ0FBQztvQkFDMUMsZUFBZSxFQUFFLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDO2lCQUN4RDtnQkFDSCxDQUFDLENBQUMsU0FBUztTQUNkLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSyxXQUFXLENBQUMsSUFBWTtRQUM5QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFFakIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFXLEVBQVUsRUFBRTtZQUM1QyxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQixPQUFPLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUM7UUFFRixNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUNoRixNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksU0FBUyxDQUFDO1FBRXhELHdCQUF3QjtRQUN4QixNQUFNLElBQUksR0FBbUIsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztRQUNsRixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsS0FBSyxNQUFNLE1BQU0sSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFXLEVBQVUsRUFBRTtvQkFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsV0FBVyxHQUFHLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUM5RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNsQyxPQUFPLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDO2dCQUVGLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ1IsTUFBTSxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtvQkFDeEQsT0FBTyxFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTtvQkFDM0QsR0FBRyxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUNwQyxlQUFlLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDNUQsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDOUQsUUFBUSxFQUFHLFNBQVMsQ0FBQyxVQUFVLENBQThCLElBQUksU0FBUztvQkFDMUUsY0FBYyxFQUFFLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFNBQVM7aUJBQ3pELENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTztZQUNMLEtBQUssRUFBRSxLQUFpQztZQUN4QyxRQUFRLEVBQUUsUUFBdUM7WUFDakQsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDekMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBcUI7UUFDckMsaUJBQWlCO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqRCxJQUFJLENBQUM7WUFDSCxtQ0FBbUM7WUFDbkMsT0FBTyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixpQ0FBaUM7WUFDakMsSUFBSSxDQUFDO2dCQUNILE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMvQixDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLHVCQUF1QjtZQUN6QixDQUFDO1lBQ0QsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
|
|
364
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG9jb2wuZXNjbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL3Byb3RvY29scy9wcm90b2NvbC5lc2NsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDLENBQUMsc0JBQXNCO0FBV2hFOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEdBQUc7SUFDakIsSUFBSSxFQUFFLCtDQUErQztJQUNyRCxHQUFHLEVBQUUsdUNBQXVDO0NBQzdDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sY0FBYyxHQUErQjtJQUNqRCxLQUFLLEVBQUUsT0FBTztJQUNkLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLFVBQVUsRUFBRSxnQkFBZ0I7Q0FDN0IsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxlQUFlLEdBQWdDO0lBQ25ELElBQUksRUFBRSxZQUFZO0lBQ2xCLEdBQUcsRUFBRSxXQUFXO0lBQ2hCLEdBQUcsRUFBRSxpQkFBaUI7SUFDdEIsSUFBSSxFQUFFLFlBQVk7Q0FDbkIsQ0FBQztBQUVGOztHQUVHO0FBQ0gsS0FBSyxVQUFVLFdBQVcsQ0FDeEIsR0FBVyxFQUNYLE1BQWlDLEVBQ2pDLElBQWE7SUFFYixNQUFNLE9BQU8sR0FBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUV4QyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsT0FBTyxDQUFDLE9BQU8sR0FBRyxFQUFFLGNBQWMsRUFBRSx5QkFBeUIsRUFBRSxDQUFDO1FBQ2hFLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxZQUFZLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFM0MsTUFBTSxPQUFPLEdBQTJCLEVBQUUsQ0FBQztJQUMzQyxRQUFRLENBQUMsT0FBTyxD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
|
|
@@ -1,45 +1,156 @@
|
|
|
1
|
-
import type { IPrinterCapabilities, IPrintOptions, IPrintJob } from '../interfaces/index.js';
|
|
2
1
|
/**
|
|
3
|
-
* IPP
|
|
2
|
+
* Clean IPP Protocol Implementation
|
|
3
|
+
* RFC 8010 (Encoding) and RFC 8011 (Model)
|
|
4
|
+
*
|
|
5
|
+
* This is a from-scratch implementation with proper capability detection,
|
|
6
|
+
* document format negotiation, and clean attribute parsing.
|
|
4
7
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
8
|
+
/** IPP Version */
|
|
9
|
+
declare const IPP_VERSION: {
|
|
10
|
+
readonly V1_1: 257;
|
|
11
|
+
readonly V2_0: 512;
|
|
12
|
+
};
|
|
13
|
+
/** IPP Operations */
|
|
14
|
+
declare const IPP_OPERATION: {
|
|
15
|
+
readonly PRINT_JOB: 2;
|
|
16
|
+
readonly VALIDATE_JOB: 4;
|
|
17
|
+
readonly CANCEL_JOB: 8;
|
|
18
|
+
readonly GET_JOB_ATTRIBUTES: 9;
|
|
19
|
+
readonly GET_JOBS: 10;
|
|
20
|
+
readonly GET_PRINTER_ATTRIBUTES: 11;
|
|
21
|
+
};
|
|
22
|
+
/** IPP Status Codes */
|
|
23
|
+
declare const IPP_STATUS: {
|
|
24
|
+
readonly SUCCESSFUL_OK: 0;
|
|
25
|
+
readonly SUCCESSFUL_OK_IGNORED_ATTRIBUTES: 1;
|
|
26
|
+
readonly SUCCESSFUL_OK_CONFLICTING_ATTRIBUTES: 2;
|
|
27
|
+
readonly CLIENT_ERROR_BAD_REQUEST: 1024;
|
|
28
|
+
readonly CLIENT_ERROR_FORBIDDEN: 1025;
|
|
29
|
+
readonly CLIENT_ERROR_NOT_AUTHENTICATED: 1026;
|
|
30
|
+
readonly CLIENT_ERROR_NOT_AUTHORIZED: 1027;
|
|
31
|
+
readonly CLIENT_ERROR_NOT_POSSIBLE: 1028;
|
|
32
|
+
readonly CLIENT_ERROR_TIMEOUT: 1029;
|
|
33
|
+
readonly CLIENT_ERROR_NOT_FOUND: 1030;
|
|
34
|
+
readonly CLIENT_ERROR_DOCUMENT_FORMAT_NOT_SUPPORTED: 1034;
|
|
35
|
+
readonly SERVER_ERROR_INTERNAL: 1280;
|
|
36
|
+
readonly SERVER_ERROR_OPERATION_NOT_SUPPORTED: 1281;
|
|
37
|
+
readonly SERVER_ERROR_SERVICE_UNAVAILABLE: 1282;
|
|
38
|
+
readonly SERVER_ERROR_DEVICE_ERROR: 1284;
|
|
39
|
+
readonly SERVER_ERROR_NOT_ACCEPTING_JOBS: 1286;
|
|
40
|
+
readonly SERVER_ERROR_BUSY: 1287;
|
|
41
|
+
};
|
|
42
|
+
/** Job States */
|
|
43
|
+
declare const JOB_STATE: {
|
|
44
|
+
readonly PENDING: 3;
|
|
45
|
+
readonly PENDING_HELD: 4;
|
|
46
|
+
readonly PROCESSING: 5;
|
|
47
|
+
readonly PROCESSING_STOPPED: 6;
|
|
48
|
+
readonly CANCELED: 7;
|
|
49
|
+
readonly ABORTED: 8;
|
|
50
|
+
readonly COMPLETED: 9;
|
|
51
|
+
};
|
|
52
|
+
/** Printer States */
|
|
53
|
+
declare const PRINTER_STATE: {
|
|
54
|
+
readonly IDLE: 3;
|
|
55
|
+
readonly PROCESSING: 4;
|
|
56
|
+
readonly STOPPED: 5;
|
|
57
|
+
};
|
|
58
|
+
interface TIppResolution {
|
|
59
|
+
crossFeed: number;
|
|
60
|
+
feed: number;
|
|
61
|
+
units: 'dpi' | 'dpcm';
|
|
62
|
+
}
|
|
63
|
+
interface TIppRange {
|
|
64
|
+
lower: number;
|
|
65
|
+
upper: number;
|
|
66
|
+
}
|
|
67
|
+
export interface IIppPrinterCapabilities {
|
|
68
|
+
printerName: string;
|
|
69
|
+
printerInfo?: string;
|
|
70
|
+
printerMakeAndModel?: string;
|
|
71
|
+
printerLocation?: string;
|
|
72
|
+
printerUri: string;
|
|
73
|
+
printerState: 'idle' | 'processing' | 'stopped';
|
|
74
|
+
printerStateReasons: string[];
|
|
75
|
+
printerIsAcceptingJobs: boolean;
|
|
76
|
+
queuedJobCount: number;
|
|
77
|
+
documentFormatSupported: string[];
|
|
78
|
+
documentFormatDefault?: string;
|
|
79
|
+
mediaSizeSupported: string[];
|
|
80
|
+
mediaDefault?: string;
|
|
81
|
+
mediaTypeSupported: string[];
|
|
82
|
+
colorSupported: boolean;
|
|
83
|
+
sidesSupported: string[];
|
|
84
|
+
sidesDefault?: string;
|
|
85
|
+
copiesSupported: TIppRange;
|
|
86
|
+
printQualitySupported: number[];
|
|
87
|
+
resolutionsSupported: TIppResolution[];
|
|
88
|
+
operationsSupported: number[];
|
|
89
|
+
ippVersionsSupported: string[];
|
|
90
|
+
}
|
|
91
|
+
export interface IIppPrintOptions {
|
|
92
|
+
jobName?: string;
|
|
93
|
+
requestingUserName?: string;
|
|
94
|
+
documentFormat?: string;
|
|
95
|
+
copies?: number;
|
|
96
|
+
sides?: 'one-sided' | 'two-sided-long-edge' | 'two-sided-short-edge';
|
|
97
|
+
media?: string;
|
|
98
|
+
printQuality?: 'draft' | 'normal' | 'high';
|
|
99
|
+
colorMode?: 'monochrome' | 'color' | 'auto';
|
|
100
|
+
orientation?: 'portrait' | 'landscape' | 'reverse-landscape' | 'reverse-portrait';
|
|
101
|
+
}
|
|
102
|
+
export interface IIppJob {
|
|
103
|
+
id: number;
|
|
104
|
+
uri: string;
|
|
105
|
+
state: 'pending' | 'pending-held' | 'processing' | 'processing-stopped' | 'canceled' | 'aborted' | 'completed';
|
|
106
|
+
stateReasons: string[];
|
|
107
|
+
name: string;
|
|
108
|
+
originatingUserName?: string;
|
|
109
|
+
createdAt?: Date;
|
|
110
|
+
completedAt?: Date;
|
|
111
|
+
processingAt?: Date;
|
|
112
|
+
impressionsCompleted?: number;
|
|
113
|
+
}
|
|
114
|
+
declare function isSuccessful(statusCode: number): boolean;
|
|
115
|
+
declare function statusCodeToString(code: number): string;
|
|
116
|
+
export declare class IppClient {
|
|
117
|
+
private readonly printerUri;
|
|
118
|
+
private readonly httpUri;
|
|
119
|
+
private requestId;
|
|
120
|
+
private readonly encoder;
|
|
121
|
+
private readonly decoder;
|
|
122
|
+
constructor(address: string, port?: number, path?: string);
|
|
123
|
+
private request;
|
|
124
|
+
getPrinterAttributes(): Promise<IIppPrinterCapabilities>;
|
|
125
|
+
private parseCapabilities;
|
|
126
|
+
printJob(data: Buffer, options?: IIppPrintOptions): Promise<IIppJob>;
|
|
127
|
+
getJobs(whichJobs?: 'completed' | 'not-completed' | 'all'): Promise<IIppJob[]>;
|
|
128
|
+
getJobAttributes(jobId: number): Promise<IIppJob>;
|
|
28
129
|
cancelJob(jobId: number): Promise<void>;
|
|
130
|
+
validateJob(options?: IIppPrintOptions): Promise<boolean>;
|
|
131
|
+
private parseJob;
|
|
132
|
+
isFormatSupported(mimeType: string): Promise<boolean>;
|
|
133
|
+
getBestFormat(preferredFormats: string[]): Promise<string | null>;
|
|
29
134
|
/**
|
|
30
|
-
*
|
|
135
|
+
* Smart print that auto-detects document format and converts if necessary.
|
|
136
|
+
*
|
|
137
|
+
* If the document format is not supported by the printer, it will attempt
|
|
138
|
+
* to convert to a supported format (e.g., PDF → JPEG).
|
|
31
139
|
*/
|
|
32
|
-
|
|
140
|
+
smartPrint(data: Buffer, options?: IIppPrintOptions): Promise<IIppJob>;
|
|
33
141
|
/**
|
|
34
|
-
*
|
|
142
|
+
* Detect document format from magic bytes
|
|
35
143
|
*/
|
|
36
|
-
private
|
|
144
|
+
private detectFormat;
|
|
37
145
|
/**
|
|
38
|
-
*
|
|
146
|
+
* Convert document to target format
|
|
147
|
+
* Uses ImageMagick if available, otherwise throws
|
|
39
148
|
*/
|
|
40
|
-
private
|
|
149
|
+
private convertDocument;
|
|
41
150
|
/**
|
|
42
|
-
*
|
|
151
|
+
* Get file extension for MIME type
|
|
43
152
|
*/
|
|
44
|
-
private
|
|
153
|
+
private formatToExtension;
|
|
45
154
|
}
|
|
155
|
+
export { IppClient as IppProtocol };
|
|
156
|
+
export { IPP_VERSION, IPP_OPERATION, IPP_STATUS, JOB_STATE, PRINTER_STATE, isSuccessful, statusCodeToString, };
|