jc-printer-sdk-ts 0.1.0 → 0.1.2
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/README.md +65 -0
- package/dist/browserImages.d.ts +43 -0
- package/dist/browserImages.d.ts.map +1 -0
- package/dist/browserImages.js +224 -0
- package/dist/browserImages.js.map +1 -0
- package/dist/client.d.ts +6 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +89 -0
- package/dist/client.js.map +1 -1
- package/dist/imagePrint.d.ts +69 -0
- package/dist/imagePrint.d.ts.map +1 -0
- package/dist/imagePrint.js +180 -0
- package/dist/imagePrint.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/niimbotProtocol.d.ts +38 -0
- package/dist/niimbotProtocol.d.ts.map +1 -0
- package/dist/niimbotProtocol.js +265 -0
- package/dist/niimbotProtocol.js.map +1 -0
- package/dist/transport.d.ts +5 -1
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +58 -0
- package/dist/transport.js.map +1 -1
- package/dist/types.d.ts +28 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/webBluetoothTransport.d.ts +137 -0
- package/dist/webBluetoothTransport.d.ts.map +1 -0
- package/dist/webBluetoothTransport.js +870 -0
- package/dist/webBluetoothTransport.js.map +1 -0
- package/package.json +1 -1
- package/src/browserImages.ts +323 -0
- package/src/client.ts +121 -0
- package/src/imagePrint.ts +306 -0
- package/src/index.ts +4 -0
- package/src/niimbotProtocol.ts +355 -0
- package/src/transport.ts +66 -0
- package/src/types.ts +44 -0
- package/src/web-bluetooth.d.ts +44 -0
- package/src/webBluetoothTransport.ts +1171 -0
package/src/transport.ts
CHANGED
|
@@ -8,8 +8,10 @@ import type {
|
|
|
8
8
|
PrintDocument,
|
|
9
9
|
PrinterDevice,
|
|
10
10
|
PrinterInfo,
|
|
11
|
+
PrinterReadiness,
|
|
11
12
|
PrinterSdkCallback,
|
|
12
13
|
PrinterState,
|
|
14
|
+
PrinterStatusSnapshot,
|
|
13
15
|
ScanCallback,
|
|
14
16
|
} from "./types.js";
|
|
15
17
|
|
|
@@ -70,6 +72,8 @@ export interface PrinterTransport {
|
|
|
70
72
|
getPrintScaleMultiplier?(): MaybePromise<number>;
|
|
71
73
|
getPrinterName?(): MaybePromise<string>;
|
|
72
74
|
getPrinterInfo?(): MaybePromise<PrinterInfo | null>;
|
|
75
|
+
queryPrinterStatus?(timeoutMs?: number): MaybePromise<PrinterStatusSnapshot>;
|
|
76
|
+
canStartPrintJob?(timeoutMs?: number): MaybePromise<PrinterReadiness>;
|
|
73
77
|
getPrinterState?(): MaybePromise<PrinterState>;
|
|
74
78
|
waitPrinterState?(
|
|
75
79
|
state: PrinterState,
|
|
@@ -149,6 +153,60 @@ function defaultPaperInfo(): PaperInfo {
|
|
|
149
153
|
};
|
|
150
154
|
}
|
|
151
155
|
|
|
156
|
+
function createMemoryPrinterStatus(state: PrinterState): PrinterStatusSnapshot {
|
|
157
|
+
return {
|
|
158
|
+
connected: state !== "Disconnected",
|
|
159
|
+
state,
|
|
160
|
+
statusAvailable: false,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
function createMemoryReadiness(state: PrinterState): PrinterReadiness {
|
|
165
|
+
const status = createMemoryPrinterStatus(state);
|
|
166
|
+
if (!status.connected) {
|
|
167
|
+
return {
|
|
168
|
+
canPrint: false,
|
|
169
|
+
code: "not_connected",
|
|
170
|
+
reason: "Printer is not connected.",
|
|
171
|
+
warnings: [],
|
|
172
|
+
state,
|
|
173
|
+
connected: false,
|
|
174
|
+
status,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
if (state === "Printing") {
|
|
178
|
+
return {
|
|
179
|
+
canPrint: false,
|
|
180
|
+
code: "sdk_printing",
|
|
181
|
+
reason: "A print job is already in progress.",
|
|
182
|
+
warnings: [],
|
|
183
|
+
state,
|
|
184
|
+
connected: true,
|
|
185
|
+
status,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
if (state === "Working") {
|
|
189
|
+
return {
|
|
190
|
+
canPrint: false,
|
|
191
|
+
code: "printer_working",
|
|
192
|
+
reason: "Printer is currently working.",
|
|
193
|
+
warnings: [],
|
|
194
|
+
state,
|
|
195
|
+
connected: true,
|
|
196
|
+
status,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
return {
|
|
200
|
+
canPrint: true,
|
|
201
|
+
code: "status_unavailable",
|
|
202
|
+
reason: "Printer is connected; live hardware status is not available in this transport.",
|
|
203
|
+
warnings: [],
|
|
204
|
+
state,
|
|
205
|
+
connected: true,
|
|
206
|
+
status,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
|
|
152
210
|
function dimensionsFromInfo(info: string): Pick<BitmapLike, "width" | "height"> {
|
|
153
211
|
try {
|
|
154
212
|
const parsed = JSON.parse(info) as {
|
|
@@ -425,6 +483,14 @@ export class MemoryPrinterTransport implements PrinterTransport {
|
|
|
425
483
|
return clone(this.printerInfo);
|
|
426
484
|
}
|
|
427
485
|
|
|
486
|
+
queryPrinterStatus(): PrinterStatusSnapshot {
|
|
487
|
+
return createMemoryPrinterStatus(this.printerState);
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
canStartPrintJob(): PrinterReadiness {
|
|
491
|
+
return createMemoryReadiness(this.printerState);
|
|
492
|
+
}
|
|
493
|
+
|
|
428
494
|
getPrinterState(): PrinterState {
|
|
429
495
|
return this.printerState;
|
|
430
496
|
}
|
package/src/types.ts
CHANGED
|
@@ -137,6 +137,50 @@ export interface PaperInfo {
|
|
|
137
137
|
tailLength: number;
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
+
export interface PrinterStatusSnapshot {
|
|
141
|
+
connected: boolean;
|
|
142
|
+
state: PrinterState;
|
|
143
|
+
statusAvailable: boolean;
|
|
144
|
+
responseCommand?: number;
|
|
145
|
+
rawData?: number[];
|
|
146
|
+
chargeLevel?: number;
|
|
147
|
+
temperature?: number;
|
|
148
|
+
lidClosed?: boolean;
|
|
149
|
+
paperInserted?: boolean;
|
|
150
|
+
paperRfidSuccess?: boolean;
|
|
151
|
+
ribbonInserted?: boolean;
|
|
152
|
+
ribbonRfidSuccess?: boolean;
|
|
153
|
+
wifiRssi?: number;
|
|
154
|
+
lightingErrorCode?: number;
|
|
155
|
+
voltageState?: number;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export type PrinterReadinessCode =
|
|
159
|
+
| "ready"
|
|
160
|
+
| "status_unavailable"
|
|
161
|
+
| "not_connected"
|
|
162
|
+
| "sdk_printing"
|
|
163
|
+
| "printer_working"
|
|
164
|
+
| "cover_open"
|
|
165
|
+
| "paper_missing"
|
|
166
|
+
| "voltage_error";
|
|
167
|
+
|
|
168
|
+
export type PrinterReadinessWarningCode =
|
|
169
|
+
| "paper_rfid_failed"
|
|
170
|
+
| "ribbon_missing"
|
|
171
|
+
| "ribbon_rfid_failed"
|
|
172
|
+
| "lighting_error";
|
|
173
|
+
|
|
174
|
+
export interface PrinterReadiness {
|
|
175
|
+
canPrint: boolean;
|
|
176
|
+
code: PrinterReadinessCode;
|
|
177
|
+
reason: string;
|
|
178
|
+
warnings: PrinterReadinessWarningCode[];
|
|
179
|
+
state: PrinterState;
|
|
180
|
+
connected: boolean;
|
|
181
|
+
status?: PrinterStatusSnapshot;
|
|
182
|
+
}
|
|
183
|
+
|
|
140
184
|
export interface ColorSupport {
|
|
141
185
|
normalMode: number;
|
|
142
186
|
rbMode: number;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
interface BluetoothRequestDeviceFilter {
|
|
2
|
+
namePrefix?: string;
|
|
3
|
+
name?: string;
|
|
4
|
+
services?: string[];
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
interface BluetoothRequestDeviceOptions {
|
|
8
|
+
filters?: BluetoothRequestDeviceFilter[];
|
|
9
|
+
acceptAllDevices?: boolean;
|
|
10
|
+
optionalServices?: string[];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
interface BluetoothRemoteGATTCharacteristic extends EventTarget {
|
|
14
|
+
readonly value?: DataView;
|
|
15
|
+
startNotifications(): Promise<BluetoothRemoteGATTCharacteristic>;
|
|
16
|
+
stopNotifications(): Promise<BluetoothRemoteGATTCharacteristic>;
|
|
17
|
+
writeValue(value: BufferSource): Promise<void>;
|
|
18
|
+
writeValueWithoutResponse(value: BufferSource): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
interface BluetoothRemoteGATTService {
|
|
22
|
+
getCharacteristic(characteristicUuid: string): Promise<BluetoothRemoteGATTCharacteristic>;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
interface BluetoothRemoteGATTServer {
|
|
26
|
+
readonly connected: boolean;
|
|
27
|
+
connect(): Promise<BluetoothRemoteGATTServer>;
|
|
28
|
+
disconnect(): void;
|
|
29
|
+
getPrimaryService(serviceUuid: string): Promise<BluetoothRemoteGATTService>;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
interface BluetoothDevice extends EventTarget {
|
|
33
|
+
readonly id: string;
|
|
34
|
+
readonly name?: string;
|
|
35
|
+
readonly gatt?: BluetoothRemoteGATTServer | null;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
interface Bluetooth extends EventTarget {
|
|
39
|
+
requestDevice(options: BluetoothRequestDeviceOptions): Promise<BluetoothDevice>;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
interface Navigator {
|
|
43
|
+
bluetooth?: Bluetooth;
|
|
44
|
+
}
|