seven365-zyprinter 0.4.0 → 1.0.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.
package/README.md CHANGED
@@ -9,6 +9,17 @@ npm install seven365-zyprinter
9
9
  npx cap sync
10
10
  ```
11
11
 
12
+ ## Features
13
+
14
+ - ✅ **Bluetooth Printer Discovery & Connection**
15
+ - ✅ **WiFi Network Printer Discovery & Connection**
16
+ - ✅ **USB Printer Support** (iOS: requires MFi-certified accessories)
17
+ - ✅ **Text & Receipt Printing** with formatting options
18
+ - ✅ **Printer Status Monitoring**
19
+ - ✅ **ESC/POS Command Support**
20
+
21
+ > **Note:** iOS USB printer support requires MFi-certified (Made for iPhone/iPad) accessories and proper Info.plist configuration. See [USAGE.md](./USAGE.md#usb-printer-discovery) for details.
22
+
12
23
  ## API
13
24
 
14
25
  <docgen-index>
@@ -17,12 +28,14 @@ npx cap sync
17
28
  * [`discoverPrinters()`](#discoverprinters)
18
29
  * [`discoverBluetoothPrinters()`](#discoverbluetoothprinters)
19
30
  * [`discoverWiFiPrinters(...)`](#discoverwifiprinters)
31
+ * [`discoverUSBPrinters()`](#discoverusbprinters)
20
32
  * [`connectToPrinter(...)`](#connecttoprinter)
21
33
  * [`disconnectFromPrinter(...)`](#disconnectfromprinter)
22
34
  * [`printText(...)`](#printtext)
23
35
  * [`printReceipt(...)`](#printreceipt)
24
36
  * [`getPrinterStatus(...)`](#getprinterstatus)
25
37
  * [Interfaces](#interfaces)
38
+ * [Type Aliases](#type-aliases)
26
39
 
27
40
  </docgen-index>
28
41
 
@@ -81,6 +94,17 @@ discoverWiFiPrinters(options?: { networkRange?: string | undefined; } | undefine
81
94
  --------------------
82
95
 
83
96
 
97
+ ### discoverUSBPrinters()
98
+
99
+ ```typescript
100
+ discoverUSBPrinters() => Promise<{ printers: ZyPrinter[]; }>
101
+ ```
102
+
103
+ **Returns:** <code>Promise&lt;{ printers: ZyPrinter[]; }&gt;</code>
104
+
105
+ --------------------
106
+
107
+
84
108
  ### connectToPrinter(...)
85
109
 
86
110
  ```typescript
@@ -174,14 +198,46 @@ getPrinterStatus(options: { identifier: string; }) => Promise<{ status: string;
174
198
 
175
199
  #### ReceiptTemplate
176
200
 
177
- | Prop | Type |
178
- | ---------------- | ------------------------------------------------------------------------------ |
179
- | **`header`** | <code>string</code> |
180
- | **`items`** | <code><a href="#array">Array</a>&lt;{ name: string; price: string }&gt;</code> |
181
- | **`kitchen`** | <code><a href="#array">Array</a>&lt;any&gt;</code> |
182
- | **`total`** | <code>string</code> |
183
- | **`footer`** | <code>string</code> |
184
- | **`formatting`** | <code><a href="#receiptformatting">ReceiptFormatting</a></code> |
201
+ | Prop | Type |
202
+ | ------------------ | ------------------------------------------------------------------------------ |
203
+ | **`header`** | <code><a href="#headerconfig">HeaderConfig</a></code> |
204
+ | **`kitchen`** | <code>KitchenItem[]</code> |
205
+ | **`items`** | <code><a href="#array">Array</a>&lt;{ name: string; price: string }&gt;</code> |
206
+ | **`total`** | <code>string</code> |
207
+ | **`order_type`** | <code>string</code> |
208
+ | **`table_name`** | <code>string</code> |
209
+ | **`order_number`** | <code>string</code> |
210
+ | **`footer`** | <code><a href="#footerconfig">FooterConfig</a></code> |
211
+ | **`item`** | <code><a href="#itemconfig">ItemConfig</a></code> |
212
+ | **`total_config`** | <code><a href="#totalconfig">TotalConfig</a></code> |
213
+ | **`modifier`** | <code><a href="#modifierconfig">ModifierConfig</a></code> |
214
+
215
+
216
+ #### HeaderConfig
217
+
218
+ | Prop | Type |
219
+ | --------------------- | --------------------------------------- |
220
+ | **`restaurant_name`** | <code>string</code> |
221
+ | **`sub_header`** | <code>string</code> |
222
+ | **`prefix`** | <code>string</code> |
223
+ | **`gst_number`** | <code>string</code> |
224
+ | **`address`** | <code>string</code> |
225
+ | **`phone_number`** | <code>string</code> |
226
+ | **`size`** | <code><a href="#tsize">TSize</a></code> |
227
+ | **`bold`** | <code>boolean</code> |
228
+
229
+
230
+ #### KitchenItem
231
+
232
+ | Prop | Type |
233
+ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
234
+ | **`qty`** | <code>number</code> |
235
+ | **`name`** | <code>string</code> |
236
+ | **`menu`** | <code>{ _id?: string; name: string; price?: string; categoryName?: string; printer?: string; }</code> |
237
+ | **`quantity`** | <code>number</code> |
238
+ | **`price`** | <code>number</code> |
239
+ | **`total_price`** | <code>number</code> |
240
+ | **`modifiers`** | <code><a href="#array">Array</a>&lt;{ modifier?: string; name: string; qty?: number; quantity?: number; price?: number; }&gt;</code> |
185
241
 
186
242
 
187
243
  #### Array
@@ -235,16 +291,58 @@ getPrinterStatus(options: { identifier: string; }) => Promise<{ status: string;
235
291
  | **slice** | (start?: number \| undefined, end?: number \| undefined) =&gt; T[] |
236
292
 
237
293
 
238
- #### ReceiptFormatting
294
+ #### FooterConfig
295
+
296
+ | Prop | Type |
297
+ | ----------------- | --------------------------------------- |
298
+ | **`message`** | <code>string</code> |
299
+ | **`date_format`** | <code>string</code> |
300
+ | **`time_format`** | <code>string</code> |
301
+ | **`size`** | <code><a href="#tsize">TSize</a></code> |
302
+ | **`bold`** | <code>boolean</code> |
303
+
304
+
305
+ #### ItemConfig
306
+
307
+ | Prop | Type |
308
+ | ---------- | --------------------------------------- |
309
+ | **`size`** | <code><a href="#tsize">TSize</a></code> |
310
+ | **`bold`** | <code>boolean</code> |
311
+
312
+
313
+ #### TotalConfig
314
+
315
+ | Prop | Type |
316
+ | ---------- | --------------------------------------- |
317
+ | **`size`** | <code><a href="#tsize">TSize</a></code> |
318
+ | **`bold`** | <code>boolean</code> |
319
+
320
+
321
+ #### ModifierConfig
322
+
323
+ | Prop | Type |
324
+ | ------------ | ----------------------------------------------------------- |
325
+ | **`style`** | <code><a href="#tmodifierstyle">TModifierStyle</a></code> |
326
+ | **`indent`** | <code><a href="#tmodifierindent">TModifierIndent</a></code> |
327
+ | **`size`** | <code><a href="#tsize">TSize</a></code> |
328
+
329
+
330
+ ### Type Aliases
331
+
332
+
333
+ #### TSize
334
+
335
+ <code>'1' | '2' | '3' | '4' | 'normal' | 'large' | 'xlarge'</code>
336
+
337
+
338
+ #### TModifierStyle
339
+
340
+ <code>'standard' | 'minimal' | 'bullet' | 'arrow' | 'detailed'</code>
341
+
342
+
343
+ #### TModifierIndent
239
344
 
240
- | Prop | Type |
241
- | ---------------- | ---------------------------------------------------------------- |
242
- | **`headerSize`** | <code>1 \| 2 \| 4 \| 3 \| 'normal' \| 'large' \| 'xlarge'</code> |
243
- | **`itemSize`** | <code>1 \| 2 \| 4 \| 3 \| 'normal' \| 'large' \| 'xlarge'</code> |
244
- | **`itemBold`** | <code>boolean</code> |
245
- | **`totalSize`** | <code>1 \| 2 \| 4 \| 3 \| 'normal' \| 'large' \| 'xlarge'</code> |
246
- | **`totalBold`** | <code>boolean</code> |
247
- | **`footerSize`** | <code>1 \| 2 \| 4 \| 3 \| 'normal' \| 'large' \| 'xlarge'</code> |
345
+ <code>'small' | 'medium' | 'large'</code>
248
346
 
249
347
  </docgen-api>
250
348
  # seven365-zyprinter-sdk
package/dist/docs.json CHANGED
@@ -63,6 +63,18 @@
63
63
  ],
64
64
  "slug": "discoverwifiprinters"
65
65
  },
66
+ {
67
+ "name": "discoverUSBPrinters",
68
+ "signature": "() => Promise<{ printers: ZyPrinter[]; }>",
69
+ "parameters": [],
70
+ "returns": "Promise<{ printers: ZyPrinter[]; }>",
71
+ "tags": [],
72
+ "docs": "",
73
+ "complexTypes": [
74
+ "ZyPrinter"
75
+ ],
76
+ "slug": "discoverusbprinters"
77
+ },
66
78
  {
67
79
  "name": "connectToPrinter",
68
80
  "signature": "(options: { identifier: string; }) => Promise<{ connected: boolean; }>",
@@ -218,26 +230,28 @@
218
230
  "name": "header",
219
231
  "tags": [],
220
232
  "docs": "",
221
- "complexTypes": [],
222
- "type": "string | undefined"
233
+ "complexTypes": [
234
+ "HeaderConfig"
235
+ ],
236
+ "type": "HeaderConfig"
223
237
  },
224
238
  {
225
- "name": "items",
239
+ "name": "kitchen",
226
240
  "tags": [],
227
241
  "docs": "",
228
242
  "complexTypes": [
229
- "Array"
243
+ "KitchenItem"
230
244
  ],
231
- "type": "Array<{ name: string; price: string }>"
245
+ "type": "KitchenItem[] | undefined"
232
246
  },
233
247
  {
234
- "name": "kitchen",
248
+ "name": "items",
235
249
  "tags": [],
236
250
  "docs": "",
237
251
  "complexTypes": [
238
252
  "Array"
239
253
  ],
240
- "type": "Array<any>"
254
+ "type": "Array<{ name: string; price: string }>"
241
255
  },
242
256
  {
243
257
  "name": "total",
@@ -246,21 +260,189 @@
246
260
  "complexTypes": [],
247
261
  "type": "string | undefined"
248
262
  },
263
+ {
264
+ "name": "order_type",
265
+ "tags": [],
266
+ "docs": "",
267
+ "complexTypes": [],
268
+ "type": "string | undefined"
269
+ },
270
+ {
271
+ "name": "table_name",
272
+ "tags": [],
273
+ "docs": "",
274
+ "complexTypes": [],
275
+ "type": "string | undefined"
276
+ },
277
+ {
278
+ "name": "order_number",
279
+ "tags": [],
280
+ "docs": "",
281
+ "complexTypes": [],
282
+ "type": "string | undefined"
283
+ },
249
284
  {
250
285
  "name": "footer",
251
286
  "tags": [],
252
287
  "docs": "",
288
+ "complexTypes": [
289
+ "FooterConfig"
290
+ ],
291
+ "type": "FooterConfig"
292
+ },
293
+ {
294
+ "name": "item",
295
+ "tags": [],
296
+ "docs": "",
297
+ "complexTypes": [
298
+ "ItemConfig"
299
+ ],
300
+ "type": "ItemConfig"
301
+ },
302
+ {
303
+ "name": "total_config",
304
+ "tags": [],
305
+ "docs": "",
306
+ "complexTypes": [
307
+ "TotalConfig"
308
+ ],
309
+ "type": "TotalConfig"
310
+ },
311
+ {
312
+ "name": "modifier",
313
+ "tags": [],
314
+ "docs": "",
315
+ "complexTypes": [
316
+ "ModifierConfig"
317
+ ],
318
+ "type": "ModifierConfig"
319
+ }
320
+ ]
321
+ },
322
+ {
323
+ "name": "HeaderConfig",
324
+ "slug": "headerconfig",
325
+ "docs": "",
326
+ "tags": [],
327
+ "methods": [],
328
+ "properties": [
329
+ {
330
+ "name": "restaurant_name",
331
+ "tags": [],
332
+ "docs": "",
253
333
  "complexTypes": [],
254
334
  "type": "string | undefined"
255
335
  },
256
336
  {
257
- "name": "formatting",
337
+ "name": "sub_header",
338
+ "tags": [],
339
+ "docs": "",
340
+ "complexTypes": [],
341
+ "type": "string | undefined"
342
+ },
343
+ {
344
+ "name": "prefix",
345
+ "tags": [],
346
+ "docs": "",
347
+ "complexTypes": [],
348
+ "type": "string | undefined"
349
+ },
350
+ {
351
+ "name": "gst_number",
352
+ "tags": [],
353
+ "docs": "",
354
+ "complexTypes": [],
355
+ "type": "string | undefined"
356
+ },
357
+ {
358
+ "name": "address",
359
+ "tags": [],
360
+ "docs": "",
361
+ "complexTypes": [],
362
+ "type": "string | undefined"
363
+ },
364
+ {
365
+ "name": "phone_number",
366
+ "tags": [],
367
+ "docs": "",
368
+ "complexTypes": [],
369
+ "type": "string | undefined"
370
+ },
371
+ {
372
+ "name": "size",
258
373
  "tags": [],
259
374
  "docs": "",
260
375
  "complexTypes": [
261
- "ReceiptFormatting"
376
+ "TSize"
262
377
  ],
263
- "type": "ReceiptFormatting"
378
+ "type": "TSize"
379
+ },
380
+ {
381
+ "name": "bold",
382
+ "tags": [],
383
+ "docs": "",
384
+ "complexTypes": [],
385
+ "type": "boolean | undefined"
386
+ }
387
+ ]
388
+ },
389
+ {
390
+ "name": "KitchenItem",
391
+ "slug": "kitchenitem",
392
+ "docs": "",
393
+ "tags": [],
394
+ "methods": [],
395
+ "properties": [
396
+ {
397
+ "name": "qty",
398
+ "tags": [],
399
+ "docs": "",
400
+ "complexTypes": [],
401
+ "type": "number | undefined"
402
+ },
403
+ {
404
+ "name": "name",
405
+ "tags": [],
406
+ "docs": "",
407
+ "complexTypes": [],
408
+ "type": "string | undefined"
409
+ },
410
+ {
411
+ "name": "menu",
412
+ "tags": [],
413
+ "docs": "",
414
+ "complexTypes": [],
415
+ "type": "{ _id?: string | undefined; name: string; price?: string | undefined; categoryName?: string | undefined; printer?: string | undefined; } | undefined"
416
+ },
417
+ {
418
+ "name": "quantity",
419
+ "tags": [],
420
+ "docs": "",
421
+ "complexTypes": [],
422
+ "type": "number | undefined"
423
+ },
424
+ {
425
+ "name": "price",
426
+ "tags": [],
427
+ "docs": "",
428
+ "complexTypes": [],
429
+ "type": "number | undefined"
430
+ },
431
+ {
432
+ "name": "total_price",
433
+ "tags": [],
434
+ "docs": "",
435
+ "complexTypes": [],
436
+ "type": "number | undefined"
437
+ },
438
+ {
439
+ "name": "modifiers",
440
+ "tags": [],
441
+ "docs": "",
442
+ "complexTypes": [
443
+ "Array"
444
+ ],
445
+ "type": "Array<{ \n modifier?: string;\n name: string; \n qty?: number;\n quantity?: number;\n price?: number;\n }>"
264
446
  }
265
447
  ]
266
448
  },
@@ -1102,58 +1284,221 @@
1102
1284
  ]
1103
1285
  },
1104
1286
  {
1105
- "name": "ReceiptFormatting",
1106
- "slug": "receiptformatting",
1287
+ "name": "FooterConfig",
1288
+ "slug": "footerconfig",
1107
1289
  "docs": "",
1108
1290
  "tags": [],
1109
1291
  "methods": [],
1110
1292
  "properties": [
1111
1293
  {
1112
- "name": "headerSize",
1294
+ "name": "message",
1113
1295
  "tags": [],
1114
1296
  "docs": "",
1115
1297
  "complexTypes": [],
1116
- "type": "1 | 2 | 4 | 3 | 'normal' | 'large' | 'xlarge' | undefined"
1298
+ "type": "string | undefined"
1117
1299
  },
1118
1300
  {
1119
- "name": "itemSize",
1301
+ "name": "date_format",
1120
1302
  "tags": [],
1121
1303
  "docs": "",
1122
1304
  "complexTypes": [],
1123
- "type": "1 | 2 | 4 | 3 | 'normal' | 'large' | 'xlarge' | undefined"
1305
+ "type": "string | undefined"
1124
1306
  },
1125
1307
  {
1126
- "name": "itemBold",
1308
+ "name": "time_format",
1127
1309
  "tags": [],
1128
1310
  "docs": "",
1129
1311
  "complexTypes": [],
1130
- "type": "boolean | undefined"
1312
+ "type": "string | undefined"
1131
1313
  },
1132
1314
  {
1133
- "name": "totalSize",
1315
+ "name": "size",
1316
+ "tags": [],
1317
+ "docs": "",
1318
+ "complexTypes": [
1319
+ "TSize"
1320
+ ],
1321
+ "type": "TSize"
1322
+ },
1323
+ {
1324
+ "name": "bold",
1134
1325
  "tags": [],
1135
1326
  "docs": "",
1136
1327
  "complexTypes": [],
1137
- "type": "1 | 2 | 4 | 3 | 'normal' | 'large' | 'xlarge' | undefined"
1328
+ "type": "boolean | undefined"
1329
+ }
1330
+ ]
1331
+ },
1332
+ {
1333
+ "name": "ItemConfig",
1334
+ "slug": "itemconfig",
1335
+ "docs": "",
1336
+ "tags": [],
1337
+ "methods": [],
1338
+ "properties": [
1339
+ {
1340
+ "name": "size",
1341
+ "tags": [],
1342
+ "docs": "",
1343
+ "complexTypes": [
1344
+ "TSize"
1345
+ ],
1346
+ "type": "TSize"
1138
1347
  },
1139
1348
  {
1140
- "name": "totalBold",
1349
+ "name": "bold",
1141
1350
  "tags": [],
1142
1351
  "docs": "",
1143
1352
  "complexTypes": [],
1144
1353
  "type": "boolean | undefined"
1354
+ }
1355
+ ]
1356
+ },
1357
+ {
1358
+ "name": "TotalConfig",
1359
+ "slug": "totalconfig",
1360
+ "docs": "",
1361
+ "tags": [],
1362
+ "methods": [],
1363
+ "properties": [
1364
+ {
1365
+ "name": "size",
1366
+ "tags": [],
1367
+ "docs": "",
1368
+ "complexTypes": [
1369
+ "TSize"
1370
+ ],
1371
+ "type": "TSize"
1145
1372
  },
1146
1373
  {
1147
- "name": "footerSize",
1374
+ "name": "bold",
1148
1375
  "tags": [],
1149
1376
  "docs": "",
1150
1377
  "complexTypes": [],
1151
- "type": "1 | 2 | 4 | 3 | 'normal' | 'large' | 'xlarge' | undefined"
1378
+ "type": "boolean | undefined"
1379
+ }
1380
+ ]
1381
+ },
1382
+ {
1383
+ "name": "ModifierConfig",
1384
+ "slug": "modifierconfig",
1385
+ "docs": "",
1386
+ "tags": [],
1387
+ "methods": [],
1388
+ "properties": [
1389
+ {
1390
+ "name": "style",
1391
+ "tags": [],
1392
+ "docs": "",
1393
+ "complexTypes": [
1394
+ "TModifierStyle"
1395
+ ],
1396
+ "type": "TModifierStyle"
1397
+ },
1398
+ {
1399
+ "name": "indent",
1400
+ "tags": [],
1401
+ "docs": "",
1402
+ "complexTypes": [
1403
+ "TModifierIndent"
1404
+ ],
1405
+ "type": "TModifierIndent"
1406
+ },
1407
+ {
1408
+ "name": "size",
1409
+ "tags": [],
1410
+ "docs": "",
1411
+ "complexTypes": [
1412
+ "TSize"
1413
+ ],
1414
+ "type": "TSize"
1152
1415
  }
1153
1416
  ]
1154
1417
  }
1155
1418
  ],
1156
1419
  "enums": [],
1157
- "typeAliases": [],
1420
+ "typeAliases": [
1421
+ {
1422
+ "name": "TSize",
1423
+ "slug": "tsize",
1424
+ "docs": "",
1425
+ "types": [
1426
+ {
1427
+ "text": "'1'",
1428
+ "complexTypes": []
1429
+ },
1430
+ {
1431
+ "text": "'2'",
1432
+ "complexTypes": []
1433
+ },
1434
+ {
1435
+ "text": "'3'",
1436
+ "complexTypes": []
1437
+ },
1438
+ {
1439
+ "text": "'4'",
1440
+ "complexTypes": []
1441
+ },
1442
+ {
1443
+ "text": "'normal'",
1444
+ "complexTypes": []
1445
+ },
1446
+ {
1447
+ "text": "'large'",
1448
+ "complexTypes": []
1449
+ },
1450
+ {
1451
+ "text": "'xlarge'",
1452
+ "complexTypes": []
1453
+ }
1454
+ ]
1455
+ },
1456
+ {
1457
+ "name": "TModifierStyle",
1458
+ "slug": "tmodifierstyle",
1459
+ "docs": "",
1460
+ "types": [
1461
+ {
1462
+ "text": "'standard'",
1463
+ "complexTypes": []
1464
+ },
1465
+ {
1466
+ "text": "'minimal'",
1467
+ "complexTypes": []
1468
+ },
1469
+ {
1470
+ "text": "'bullet'",
1471
+ "complexTypes": []
1472
+ },
1473
+ {
1474
+ "text": "'arrow'",
1475
+ "complexTypes": []
1476
+ },
1477
+ {
1478
+ "text": "'detailed'",
1479
+ "complexTypes": []
1480
+ }
1481
+ ]
1482
+ },
1483
+ {
1484
+ "name": "TModifierIndent",
1485
+ "slug": "tmodifierindent",
1486
+ "docs": "",
1487
+ "types": [
1488
+ {
1489
+ "text": "'small'",
1490
+ "complexTypes": []
1491
+ },
1492
+ {
1493
+ "text": "'medium'",
1494
+ "complexTypes": []
1495
+ },
1496
+ {
1497
+ "text": "'large'",
1498
+ "complexTypes": []
1499
+ }
1500
+ ]
1501
+ }
1502
+ ],
1158
1503
  "pluginConfigs": []
1159
1504
  }