@rdlabo/capacitor-brotherprint 8.2.1 → 8.2.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/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +6 -8
- package/dist/esm/index.js.map +1 -1
- package/dist/plugin.cjs.js +6 -8
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +6 -8
- package/dist/plugin.js.map +1 -1
- package/docs/connection-management.md +80 -44
- package/docs/helper-design.md +20 -4
- package/ios/Sources/BrotherPrintPlugin/BrotherPrintPlugin.swift +4 -4
- package/ios/Sources/BrotherPrintPlugin/Model/PrinterModel.swift +38 -68
- package/ios/Sources/BrotherPrintPlugin/Model/PrinterSettingsModel.swift +61 -65
- package/package.json +1 -1
package/dist/esm/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export * from './brother-printer.enum';
|
|
|
10
10
|
export { BrotherPrint };
|
|
11
11
|
export * from './printer';
|
|
12
12
|
/** Collect discovery results, waiting for earlier helper calls to finish. */
|
|
13
|
-
export declare function searchBrotherPrinters(options: BRLMSearchOption,
|
|
13
|
+
export declare function searchBrotherPrinters(options: BRLMSearchOption, _model?: BRLMPrinterModelName): Promise<BRLMChannelResult[]>;
|
|
14
14
|
/**
|
|
15
15
|
* Reuse a matching, available previous channel; otherwise discover printers.
|
|
16
16
|
* The caller owns storage. USB always discovers again through the native permission flow.
|
|
@@ -44,7 +44,7 @@ export declare class BrotherPrinterSession {
|
|
|
44
44
|
constructor(options?: BrotherPrinterSessionOptions);
|
|
45
45
|
get closed(): boolean;
|
|
46
46
|
get printers(): readonly BRLMChannelResult[];
|
|
47
|
-
search(options: BRLMSearchOption,
|
|
47
|
+
search(options: BRLMSearchOption, _model?: BRLMPrinterModelName): Promise<readonly BRLMChannelResult[]>;
|
|
48
48
|
prepare(options: BRLMSearchOption, model: BRLMPrinterModelName, previous?: BRLMChannelResult | null): Promise<readonly BRLMChannelResult[]>;
|
|
49
49
|
/** Forget the remembered connection. Storage removal errors propagate to the caller. */
|
|
50
50
|
clearSavedPrinter(): Promise<void>;
|
package/dist/esm/index.js
CHANGED
|
@@ -32,8 +32,8 @@ function queueConnection(run) {
|
|
|
32
32
|
return result;
|
|
33
33
|
}
|
|
34
34
|
/** Collect discovery results, waiting for earlier helper calls to finish. */
|
|
35
|
-
export function searchBrotherPrinters(options,
|
|
36
|
-
return queueConnection(() => discoverPrinters(options
|
|
35
|
+
export function searchBrotherPrinters(options, _model) {
|
|
36
|
+
return queueConnection(() => discoverPrinters(options));
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
39
|
* Reuse a matching, available previous channel; otherwise discover printers.
|
|
@@ -53,13 +53,11 @@ export function checkBrotherPrinterChannel(channel) {
|
|
|
53
53
|
return result;
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
|
-
async function discoverPrinters(options,
|
|
56
|
+
async function discoverPrinters(options, active = () => true) {
|
|
57
57
|
const printers = [];
|
|
58
58
|
const listener = await BrotherPrint.addListener(BrotherPrintEventsEnum.onPrinterAvailable, (printer) => {
|
|
59
59
|
if (printer.port !== options.port)
|
|
60
60
|
return;
|
|
61
|
-
if (printer.port !== BRLMPrinterPort.usb && model !== undefined && brotherPrinterModel(printer.modelName) !== model)
|
|
62
|
-
return;
|
|
63
61
|
const index = printers.findIndex((current) => current.port === printer.port && current.channelInfo === printer.channelInfo);
|
|
64
62
|
if (index < 0)
|
|
65
63
|
printers.push(printer);
|
|
@@ -78,7 +76,7 @@ async function preparePrinters(options, model, previous, active = () => true) {
|
|
|
78
76
|
if (available.result)
|
|
79
77
|
return [previous];
|
|
80
78
|
}
|
|
81
|
-
return active() ? discoverPrinters(options,
|
|
79
|
+
return active() ? discoverPrinters(options, active) : [];
|
|
82
80
|
}
|
|
83
81
|
/** One print screen's discovery results and event subscriptions. Create a new session after disposal. */
|
|
84
82
|
export class BrotherPrinterSession {
|
|
@@ -101,8 +99,8 @@ export class BrotherPrinterSession {
|
|
|
101
99
|
get printers() {
|
|
102
100
|
return __classPrivateFieldGet(this, _BrotherPrinterSession_printers, "f");
|
|
103
101
|
}
|
|
104
|
-
search(options,
|
|
105
|
-
return __classPrivateFieldGet(this, _BrotherPrinterSession_instances, "m", _BrotherPrinterSession_discover).call(this, () => discoverPrinters(options,
|
|
102
|
+
search(options, _model) {
|
|
103
|
+
return __classPrivateFieldGet(this, _BrotherPrinterSession_instances, "m", _BrotherPrinterSession_discover).call(this, () => discoverPrinters(options, () => !__classPrivateFieldGet(this, _BrotherPrinterSession_closed, "f")));
|
|
106
104
|
}
|
|
107
105
|
prepare(options, model, previous) {
|
|
108
106
|
return __classPrivateFieldGet(this, _BrotherPrinterSession_instances, "m", _BrotherPrinterSession_discover).call(this, async () => {
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PluginListenerHandle } from '@capacitor/core';\nimport { registerPlugin } from '@capacitor/core';\n\nimport type { BRLMPrinterModelName } from './brother-printer.enum';\nimport { BRLMPrinterPort } from './brother-printer.enum';\nimport type { BrotherPrintPlugin } from './definitions';\nimport { BrotherPrintEventsEnum } from './events.enum';\nimport type { BRLMChannelResult, BRLMPrintOptions, BRLMSearchOption, ErrorInfo } from './interfaces';\nimport { brotherPrinterModel } from './printer';\n\nconst BrotherPrint = registerPlugin<BrotherPrintPlugin>('BrotherPrint', {\n web: () => import('./web').then((m) => new m.BrotherPrintWeb()),\n});\n\nexport * from './definitions';\nexport * from './web';\nexport * from './events.enum';\nexport * from './interfaces';\nexport * from './brother-printer.enum';\nexport { BrotherPrint };\n\nexport * from './printer';\n\n// Native discovery events are shared. Keep each helper call's listener scoped to its turn.\nlet connectionQueue: Promise<unknown> = Promise.resolve();\n\nfunction queueConnection<T>(run: () => Promise<T>): Promise<T> {\n const result = connectionQueue.then(run);\n connectionQueue = result.catch(() => undefined);\n return result;\n}\n\n/** Collect discovery results, waiting for earlier helper calls to finish. */\nexport function searchBrotherPrinters(\n options: BRLMSearchOption,\n model?: BRLMPrinterModelName,\n): Promise<BRLMChannelResult[]> {\n return queueConnection(() => discoverPrinters(options, model));\n}\n\n/**\n * Reuse a matching, available previous channel; otherwise discover printers.\n * The caller owns storage. USB always discovers again through the native permission flow.\n * Availability errors propagate; only an unavailable channel triggers discovery.\n */\nexport function prepareBrotherPrinters(\n options: BRLMSearchOption,\n model: BRLMPrinterModelName,\n previous?: BRLMChannelResult | null,\n): Promise<BRLMChannelResult[]> {\n return queueConnection(() => preparePrinters(options, model, previous));\n}\n\n/**\n * Check an explicitly selected address without discovery or fallback to another printer.\n * Port must be supplied; an address does not identify its transport or printer model.\n */\nexport function checkBrotherPrinterChannel(channel: Pick<BRLMChannelResult, 'port' | 'channelInfo'>): Promise<boolean> {\n return queueConnection(async () => {\n const { result } = await BrotherPrint.isChannelAvailable({\n modelName: '',\n serialNumber: '',\n macAddress: '',\n nodeName: '',\n location: '',\n ...channel,\n });\n return result;\n });\n}\n\nasync function discoverPrinters(\n options: BRLMSearchOption,\n model?: BRLMPrinterModelName,\n active: () => boolean = () => true,\n): Promise<BRLMChannelResult[]> {\n const printers: BRLMChannelResult[] = [];\n const listener = await BrotherPrint.addListener(BrotherPrintEventsEnum.onPrinterAvailable, (printer) => {\n if (printer.port !== options.port) return;\n if (printer.port !== BRLMPrinterPort.usb && model !== undefined && brotherPrinterModel(printer.modelName) !== model)\n return;\n const index = printers.findIndex(\n (current) => current.port === printer.port && current.channelInfo === printer.channelInfo,\n );\n if (index < 0) printers.push(printer);\n else printers[index] = printer;\n });\n await (active() ? BrotherPrint.search(options) : Promise.resolve()).finally(() => listener.remove());\n return printers;\n}\n\nasync function preparePrinters(\n options: BRLMSearchOption,\n model: BRLMPrinterModelName,\n previous?: BRLMChannelResult | null,\n active: () => boolean = () => true,\n): Promise<BRLMChannelResult[]> {\n if (\n options.port !== BRLMPrinterPort.usb &&\n previous?.port === options.port &&\n previous.channelInfo.trim() &&\n brotherPrinterModel(previous.modelName) === model\n ) {\n const available = await BrotherPrint.isChannelAvailable(previous);\n if (available.result) return [previous];\n }\n return active() ? discoverPrinters(options, model, active) : [];\n}\n\nexport interface BrotherPrinterEvents {\n onPrint?: () => void;\n onPrintError?: (info: ErrorInfo) => void;\n onPrintFailedCommunication?: (info: ErrorInfo) => void;\n}\n\n/** String storage callbacks; both synchronous and asynchronous stores are supported. */\nexport interface BrotherPrinterStorage {\n get(key: string): string | null | undefined | Promise<string | null | undefined>;\n set(key: string, value: string): unknown;\n remove(key: string): unknown;\n}\n\nexport interface BrotherPrinterSessionOptions {\n storage?: BrotherPrinterStorage;\n /** Defaults to `brotherprint:`. The session appends `last-printer`. */\n storagePrefix?: string;\n}\n\n/** One print screen's discovery results and event subscriptions. Create a new session after disposal. */\nexport class BrotherPrinterSession {\n #closed = false;\n #printers: BRLMChannelResult[] = [];\n #listeners: Promise<PluginListenerHandle>[] = [];\n #listening?: Promise<void>;\n #disposal?: Promise<void>;\n readonly #storage?: BrotherPrinterStorage;\n readonly #storageKey: string;\n\n constructor(options: BrotherPrinterSessionOptions = {}) {\n this.#storage = options.storage;\n this.#storageKey = `${options.storagePrefix ?? 'brotherprint:'}last-printer`;\n }\n\n get closed(): boolean {\n return this.#closed;\n }\n\n get printers(): readonly BRLMChannelResult[] {\n return this.#printers;\n }\n\n search(options: BRLMSearchOption, model?: BRLMPrinterModelName): Promise<readonly BRLMChannelResult[]> {\n return this.#discover(() => discoverPrinters(options, model, () => !this.#closed));\n }\n\n prepare(\n options: BRLMSearchOption,\n model: BRLMPrinterModelName,\n previous?: BRLMChannelResult | null,\n ): Promise<readonly BRLMChannelResult[]> {\n return this.#discover(async () => {\n const saved = previous === undefined ? await this.#readSavedPrinter().catch(() => undefined) : previous;\n if (this.#closed) return [];\n return preparePrinters(options, model, saved, () => !this.#closed);\n });\n }\n\n async #readSavedPrinter(): Promise<BRLMChannelResult | undefined> {\n const value = await this.#storage?.get(this.#storageKey);\n if (!value) return undefined;\n const channel = JSON.parse(value);\n if (\n channel &&\n Object.values(BRLMPrinterPort).includes(channel.port) &&\n ['modelName', 'channelInfo', 'serialNumber', 'macAddress', 'nodeName', 'location'].every(\n (key) => typeof channel[key] === 'string',\n )\n )\n return channel;\n return undefined;\n }\n\n /** Forget the remembered connection. Storage removal errors propagate to the caller. */\n async clearSavedPrinter(): Promise<void> {\n await this.#storage?.remove(this.#storageKey);\n }\n\n async #savePrinter(options: BRLMPrintOptions): Promise<void> {\n if (!this.#storage || !options.port || !options.channelInfo?.trim()) return;\n const found = this.#printers.find(\n (printer) => printer.port === options.port && printer.channelInfo === options.channelInfo,\n );\n const channel: BRLMChannelResult = {\n serialNumber: '',\n macAddress: '',\n nodeName: '',\n location: '',\n ...found,\n port: options.port,\n channelInfo: options.channelInfo,\n modelName: options.modelName,\n };\n await this.#storage.set(this.#storageKey, JSON.stringify(channel));\n }\n\n #discover(run: () => Promise<BRLMChannelResult[]>): Promise<readonly BRLMChannelResult[]> {\n return queueConnection(async () => {\n if (this.#closed) return [];\n this.#printers = [];\n return run().then((printers) => {\n if (this.#closed) return [];\n this.#printers = printers;\n return printers;\n });\n });\n }\n\n /** Register print notifications once. Callbacks stop immediately when disposed. */\n listen(events: BrotherPrinterEvents): Promise<void> {\n if (this.#closed) return Promise.resolve();\n if (!this.#listening) {\n this.#listeners = [\n BrotherPrint.addListener(BrotherPrintEventsEnum.onPrint, () => {\n if (!this.#closed) events.onPrint?.();\n }),\n BrotherPrint.addListener(BrotherPrintEventsEnum.onPrintError, (info) => {\n if (!this.#closed) events.onPrintError?.(info);\n }),\n BrotherPrint.addListener(BrotherPrintEventsEnum.onPrintFailedCommunication, (info) => {\n if (!this.#closed) events.onPrintFailedCommunication?.(info);\n }),\n ];\n this.#listening = Promise.all(this.#listeners).then(() => undefined);\n }\n return this.#listening;\n }\n\n /** A closed session cannot start another print. Already started native printing is awaited. */\n async printImage(options: BRLMPrintOptions): Promise<void> {\n if (this.#closed) return;\n if (this.#storage) await this.#savePrinter(options).catch(() => undefined);\n if (!this.#closed) await BrotherPrint.printImage(options);\n }\n\n /** Invalidate pending work immediately, then remove this session's print listeners. */\n dispose(): Promise<void> {\n this.#closed = true;\n this.#printers = [];\n this.#disposal ??= Promise.all(this.#listeners.map((listener) => listener.then((handle) => handle.remove()))).then(\n () => undefined,\n );\n return this.#disposal;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,YAAY,GAAG,cAAc,CAAqB,cAAc,EAAE;IACtE,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;CAChE,CAAC,CAAC;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AACtB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,cAAc,WAAW,CAAC;AAE1B,2FAA2F;AAC3F,IAAI,eAAe,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;AAE1D,SAAS,eAAe,CAAI,GAAqB;IAC/C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,qBAAqB,CACnC,OAAyB,EACzB,MAA6B;IAE7B,OAAO,eAAe,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAyB,EACzB,KAA2B,EAC3B,QAAmC;IAEnC,OAAO,eAAe,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAwD;IACjG,OAAO,eAAe,CAAC,KAAK,IAAI,EAAE;QAChC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,kBAAkB,iBACtD,SAAS,EAAE,EAAE,EACb,YAAY,EAAE,EAAE,EAChB,UAAU,EAAE,EAAE,EACd,QAAQ,EAAE,EAAE,EACZ,QAAQ,EAAE,EAAE,IACT,OAAO,EACV,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,OAAyB,EACzB,SAAwB,GAAG,EAAE,CAAC,IAAI;IAElC,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE;QACrG,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;YAAE,OAAO;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAC9B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CAC1F,CAAC;QACF,IAAI,KAAK,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;YACjC,QAAQ,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrG,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,OAAyB,EACzB,KAA2B,EAC3B,QAAmC,EACnC,SAAwB,GAAG,EAAE,CAAC,IAAI;IAElC,IACE,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,GAAG;QACpC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,MAAK,OAAO,CAAC,IAAI;QAC/B,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE;QAC3B,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,KAAK,EACjD,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,SAAS,CAAC,MAAM;YAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3D,CAAC;AAqBD,yGAAyG;AACzG,MAAM,OAAO,qBAAqB;IAShC,YAAY,UAAwC,EAAE;;;QARtD,wCAAU,KAAK,EAAC;QAChB,0CAAiC,EAAE,EAAC;QACpC,2CAA8C,EAAE,EAAC;QACjD,mDAA2B;QAC3B,kDAA0B;QACjB,iDAAiC;QACjC,oDAAoB;QAG3B,uBAAA,IAAI,kCAAY,OAAO,CAAC,OAAO,MAAA,CAAC;QAChC,uBAAA,IAAI,qCAAe,GAAG,MAAA,OAAO,CAAC,aAAa,mCAAI,eAAe,cAAc,MAAA,CAAC;IAC/E,CAAC;IAED,IAAI,MAAM;QACR,OAAO,uBAAA,IAAI,qCAAQ,CAAC;IACtB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,uBAAA,IAAI,uCAAU,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,OAAyB,EAAE,MAA6B;QAC7D,OAAO,uBAAA,IAAI,yEAAU,MAAd,IAAI,EAAW,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,uBAAA,IAAI,qCAAQ,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,CACL,OAAyB,EACzB,KAA2B,EAC3B,QAAmC;QAEnC,OAAO,uBAAA,IAAI,yEAAU,MAAd,IAAI,EAAW,KAAK,IAAI,EAAE;YAC/B,MAAM,KAAK,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,uBAAA,IAAI,iFAAkB,MAAtB,IAAI,CAAoB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACxG,IAAI,uBAAA,IAAI,qCAAQ;gBAAE,OAAO,EAAE,CAAC;YAC5B,OAAO,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,uBAAA,IAAI,qCAAQ,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACL,CAAC;IAiBD,wFAAwF;IACxF,KAAK,CAAC,iBAAiB;;QACrB,MAAM,CAAA,MAAA,uBAAA,IAAI,sCAAS,0CAAE,MAAM,CAAC,uBAAA,IAAI,yCAAY,CAAC,CAAA,CAAC;IAChD,CAAC;IAgCD,mFAAmF;IACnF,MAAM,CAAC,MAA4B;QACjC,IAAI,uBAAA,IAAI,qCAAQ;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,uBAAA,IAAI,wCAAW,EAAE,CAAC;YACrB,uBAAA,IAAI,oCAAc;gBAChB,YAAY,CAAC,WAAW,CAAC,sBAAsB,CAAC,OAAO,EAAE,GAAG,EAAE;;oBAC5D,IAAI,CAAC,uBAAA,IAAI,qCAAQ;wBAAE,MAAA,MAAM,CAAC,OAAO,sDAAI,CAAC;gBACxC,CAAC,CAAC;gBACF,YAAY,CAAC,WAAW,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;;oBACrE,IAAI,CAAC,uBAAA,IAAI,qCAAQ;wBAAE,MAAA,MAAM,CAAC,YAAY,uDAAG,IAAI,CAAC,CAAC;gBACjD,CAAC,CAAC;gBACF,YAAY,CAAC,WAAW,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,CAAC,IAAI,EAAE,EAAE;;oBACnF,IAAI,CAAC,uBAAA,IAAI,qCAAQ;wBAAE,MAAA,MAAM,CAAC,0BAA0B,uDAAG,IAAI,CAAC,CAAC;gBAC/D,CAAC,CAAC;aACH,MAAA,CAAC;YACF,uBAAA,IAAI,oCAAc,OAAO,CAAC,GAAG,CAAC,uBAAA,IAAI,wCAAW,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAA,CAAC;QACvE,CAAC;QACD,OAAO,uBAAA,IAAI,wCAAW,CAAC;IACzB,CAAC;IAED,+FAA+F;IAC/F,KAAK,CAAC,UAAU,CAAC,OAAyB;QACxC,IAAI,uBAAA,IAAI,qCAAQ;YAAE,OAAO;QACzB,IAAI,uBAAA,IAAI,sCAAS;YAAE,MAAM,uBAAA,IAAI,4EAAa,MAAjB,IAAI,EAAc,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3E,IAAI,CAAC,uBAAA,IAAI,qCAAQ;YAAE,MAAM,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,uFAAuF;IACvF,OAAO;;QACL,uBAAA,IAAI,iCAAW,IAAI,MAAA,CAAC;QACpB,uBAAA,IAAI,mCAAa,EAAE,MAAA,CAAC;QACpB,yKAAmB,OAAO,CAAC,GAAG,CAAC,uBAAA,IAAI,wCAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAChH,GAAG,EAAE,CAAC,SAAS,CAChB,MAAA,CAAC;QACF,OAAO,uBAAA,IAAI,uCAAU,CAAC;IACxB,CAAC;CACF;obAtFC,KAAK;;IACH,MAAM,KAAK,GAAG,MAAM,CAAA,MAAA,uBAAA,IAAI,sCAAS,0CAAE,GAAG,CAAC,uBAAA,IAAI,yCAAY,CAAC,CAAA,CAAC;IACzD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,IACE,OAAO;QACP,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;QACrD,CAAC,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,KAAK,CACtF,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAC1C;QAED,OAAO,OAAO,CAAC;IACjB,OAAO,SAAS,CAAC;AACnB,CAAC,uCAOD,KAAK,6CAAc,OAAyB;;IAC1C,IAAI,CAAC,uBAAA,IAAI,sCAAS,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAA,MAAA,OAAO,CAAC,WAAW,0CAAE,IAAI,EAAE,CAAA;QAAE,OAAO;IAC5E,MAAM,KAAK,GAAG,uBAAA,IAAI,uCAAU,CAAC,IAAI,CAC/B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CAC1F,CAAC;IACF,MAAM,OAAO,iCACX,YAAY,EAAE,EAAE,EAChB,UAAU,EAAE,EAAE,EACd,QAAQ,EAAE,EAAE,EACZ,QAAQ,EAAE,EAAE,IACT,KAAK,KACR,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,WAAW,EAAE,OAAO,CAAC,WAAW,EAChC,SAAS,EAAE,OAAO,CAAC,SAAS,GAC7B,CAAC;IACF,MAAM,uBAAA,IAAI,sCAAS,CAAC,GAAG,CAAC,uBAAA,IAAI,yCAAY,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACrE,CAAC,6EAES,GAAuC;IAC/C,OAAO,eAAe,CAAC,KAAK,IAAI,EAAE;QAChC,IAAI,uBAAA,IAAI,qCAAQ;YAAE,OAAO,EAAE,CAAC;QAC5B,uBAAA,IAAI,mCAAa,EAAE,MAAA,CAAC;QACpB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC7B,IAAI,uBAAA,IAAI,qCAAQ;gBAAE,OAAO,EAAE,CAAC;YAC5B,uBAAA,IAAI,mCAAa,QAAQ,MAAA,CAAC;YAC1B,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type { PluginListenerHandle } from '@capacitor/core';\nimport { registerPlugin } from '@capacitor/core';\n\nimport type { BRLMPrinterModelName } from './brother-printer.enum';\nimport { BRLMPrinterPort } from './brother-printer.enum';\nimport type { BrotherPrintPlugin } from './definitions';\nimport { BrotherPrintEventsEnum } from './events.enum';\nimport type { BRLMChannelResult, BRLMPrintOptions, BRLMSearchOption, ErrorInfo } from './interfaces';\nimport { brotherPrinterModel } from './printer';\n\nconst BrotherPrint = registerPlugin<BrotherPrintPlugin>('BrotherPrint', {\n web: () => import('./web').then((m) => new m.BrotherPrintWeb()),\n});\n\nexport * from './definitions';\nexport * from './web';\nexport * from './events.enum';\nexport * from './interfaces';\nexport * from './brother-printer.enum';\nexport { BrotherPrint };\n\nexport * from './printer';\n\n// Native discovery events are shared. Keep each helper call's listener scoped to its turn.\nlet connectionQueue: Promise<unknown> = Promise.resolve();\n\nfunction queueConnection<T>(run: () => Promise<T>): Promise<T> {\n const result = connectionQueue.then(run);\n connectionQueue = result.catch(() => undefined);\n return result;\n}\n\n/** Collect discovery results, waiting for earlier helper calls to finish. */\nexport function searchBrotherPrinters(\n options: BRLMSearchOption,\n _model?: BRLMPrinterModelName,\n): Promise<BRLMChannelResult[]> {\n return queueConnection(() => discoverPrinters(options));\n}\n\n/**\n * Reuse a matching, available previous channel; otherwise discover printers.\n * The caller owns storage. USB always discovers again through the native permission flow.\n * Availability errors propagate; only an unavailable channel triggers discovery.\n */\nexport function prepareBrotherPrinters(\n options: BRLMSearchOption,\n model: BRLMPrinterModelName,\n previous?: BRLMChannelResult | null,\n): Promise<BRLMChannelResult[]> {\n return queueConnection(() => preparePrinters(options, model, previous));\n}\n\n/**\n * Check an explicitly selected address without discovery or fallback to another printer.\n * Port must be supplied; an address does not identify its transport or printer model.\n */\nexport function checkBrotherPrinterChannel(channel: Pick<BRLMChannelResult, 'port' | 'channelInfo'>): Promise<boolean> {\n return queueConnection(async () => {\n const { result } = await BrotherPrint.isChannelAvailable({\n modelName: '',\n serialNumber: '',\n macAddress: '',\n nodeName: '',\n location: '',\n ...channel,\n });\n return result;\n });\n}\n\nasync function discoverPrinters(\n options: BRLMSearchOption,\n active: () => boolean = () => true,\n): Promise<BRLMChannelResult[]> {\n const printers: BRLMChannelResult[] = [];\n const listener = await BrotherPrint.addListener(BrotherPrintEventsEnum.onPrinterAvailable, (printer) => {\n if (printer.port !== options.port) return;\n const index = printers.findIndex(\n (current) => current.port === printer.port && current.channelInfo === printer.channelInfo,\n );\n if (index < 0) printers.push(printer);\n else printers[index] = printer;\n });\n await (active() ? BrotherPrint.search(options) : Promise.resolve()).finally(() => listener.remove());\n return printers;\n}\n\nasync function preparePrinters(\n options: BRLMSearchOption,\n model: BRLMPrinterModelName,\n previous?: BRLMChannelResult | null,\n active: () => boolean = () => true,\n): Promise<BRLMChannelResult[]> {\n if (\n options.port !== BRLMPrinterPort.usb &&\n previous?.port === options.port &&\n previous.channelInfo.trim() &&\n brotherPrinterModel(previous.modelName) === model\n ) {\n const available = await BrotherPrint.isChannelAvailable(previous);\n if (available.result) return [previous];\n }\n return active() ? discoverPrinters(options, active) : [];\n}\n\nexport interface BrotherPrinterEvents {\n onPrint?: () => void;\n onPrintError?: (info: ErrorInfo) => void;\n onPrintFailedCommunication?: (info: ErrorInfo) => void;\n}\n\n/** String storage callbacks; both synchronous and asynchronous stores are supported. */\nexport interface BrotherPrinterStorage {\n get(key: string): string | null | undefined | Promise<string | null | undefined>;\n set(key: string, value: string): unknown;\n remove(key: string): unknown;\n}\n\nexport interface BrotherPrinterSessionOptions {\n storage?: BrotherPrinterStorage;\n /** Defaults to `brotherprint:`. The session appends `last-printer`. */\n storagePrefix?: string;\n}\n\n/** One print screen's discovery results and event subscriptions. Create a new session after disposal. */\nexport class BrotherPrinterSession {\n #closed = false;\n #printers: BRLMChannelResult[] = [];\n #listeners: Promise<PluginListenerHandle>[] = [];\n #listening?: Promise<void>;\n #disposal?: Promise<void>;\n readonly #storage?: BrotherPrinterStorage;\n readonly #storageKey: string;\n\n constructor(options: BrotherPrinterSessionOptions = {}) {\n this.#storage = options.storage;\n this.#storageKey = `${options.storagePrefix ?? 'brotherprint:'}last-printer`;\n }\n\n get closed(): boolean {\n return this.#closed;\n }\n\n get printers(): readonly BRLMChannelResult[] {\n return this.#printers;\n }\n\n search(options: BRLMSearchOption, _model?: BRLMPrinterModelName): Promise<readonly BRLMChannelResult[]> {\n return this.#discover(() => discoverPrinters(options, () => !this.#closed));\n }\n\n prepare(\n options: BRLMSearchOption,\n model: BRLMPrinterModelName,\n previous?: BRLMChannelResult | null,\n ): Promise<readonly BRLMChannelResult[]> {\n return this.#discover(async () => {\n const saved = previous === undefined ? await this.#readSavedPrinter().catch(() => undefined) : previous;\n if (this.#closed) return [];\n return preparePrinters(options, model, saved, () => !this.#closed);\n });\n }\n\n async #readSavedPrinter(): Promise<BRLMChannelResult | undefined> {\n const value = await this.#storage?.get(this.#storageKey);\n if (!value) return undefined;\n const channel = JSON.parse(value);\n if (\n channel &&\n Object.values(BRLMPrinterPort).includes(channel.port) &&\n ['modelName', 'channelInfo', 'serialNumber', 'macAddress', 'nodeName', 'location'].every(\n (key) => typeof channel[key] === 'string',\n )\n )\n return channel;\n return undefined;\n }\n\n /** Forget the remembered connection. Storage removal errors propagate to the caller. */\n async clearSavedPrinter(): Promise<void> {\n await this.#storage?.remove(this.#storageKey);\n }\n\n async #savePrinter(options: BRLMPrintOptions): Promise<void> {\n if (!this.#storage || !options.port || !options.channelInfo?.trim()) return;\n const found = this.#printers.find(\n (printer) => printer.port === options.port && printer.channelInfo === options.channelInfo,\n );\n const channel: BRLMChannelResult = {\n serialNumber: '',\n macAddress: '',\n nodeName: '',\n location: '',\n ...found,\n port: options.port,\n channelInfo: options.channelInfo,\n modelName: options.modelName,\n };\n await this.#storage.set(this.#storageKey, JSON.stringify(channel));\n }\n\n #discover(run: () => Promise<BRLMChannelResult[]>): Promise<readonly BRLMChannelResult[]> {\n return queueConnection(async () => {\n if (this.#closed) return [];\n this.#printers = [];\n return run().then((printers) => {\n if (this.#closed) return [];\n this.#printers = printers;\n return printers;\n });\n });\n }\n\n /** Register print notifications once. Callbacks stop immediately when disposed. */\n listen(events: BrotherPrinterEvents): Promise<void> {\n if (this.#closed) return Promise.resolve();\n if (!this.#listening) {\n this.#listeners = [\n BrotherPrint.addListener(BrotherPrintEventsEnum.onPrint, () => {\n if (!this.#closed) events.onPrint?.();\n }),\n BrotherPrint.addListener(BrotherPrintEventsEnum.onPrintError, (info) => {\n if (!this.#closed) events.onPrintError?.(info);\n }),\n BrotherPrint.addListener(BrotherPrintEventsEnum.onPrintFailedCommunication, (info) => {\n if (!this.#closed) events.onPrintFailedCommunication?.(info);\n }),\n ];\n this.#listening = Promise.all(this.#listeners).then(() => undefined);\n }\n return this.#listening;\n }\n\n /** A closed session cannot start another print. Already started native printing is awaited. */\n async printImage(options: BRLMPrintOptions): Promise<void> {\n if (this.#closed) return;\n if (this.#storage) await this.#savePrinter(options).catch(() => undefined);\n if (!this.#closed) await BrotherPrint.printImage(options);\n }\n\n /** Invalidate pending work immediately, then remove this session's print listeners. */\n dispose(): Promise<void> {\n this.#closed = true;\n this.#printers = [];\n this.#disposal ??= Promise.all(this.#listeners.map((listener) => listener.then((handle) => handle.remove()))).then(\n () => undefined,\n );\n return this.#disposal;\n }\n}\n"]}
|
package/dist/plugin.cjs.js
CHANGED
|
@@ -270,8 +270,8 @@ function queueConnection(run) {
|
|
|
270
270
|
return result;
|
|
271
271
|
}
|
|
272
272
|
/** Collect discovery results, waiting for earlier helper calls to finish. */
|
|
273
|
-
function searchBrotherPrinters(options,
|
|
274
|
-
return queueConnection(() => discoverPrinters(options
|
|
273
|
+
function searchBrotherPrinters(options, _model) {
|
|
274
|
+
return queueConnection(() => discoverPrinters(options));
|
|
275
275
|
}
|
|
276
276
|
/**
|
|
277
277
|
* Reuse a matching, available previous channel; otherwise discover printers.
|
|
@@ -291,13 +291,11 @@ function checkBrotherPrinterChannel(channel) {
|
|
|
291
291
|
return result;
|
|
292
292
|
});
|
|
293
293
|
}
|
|
294
|
-
async function discoverPrinters(options,
|
|
294
|
+
async function discoverPrinters(options, active = () => true) {
|
|
295
295
|
const printers = [];
|
|
296
296
|
const listener = await BrotherPrint.addListener(exports.BrotherPrintEventsEnum.onPrinterAvailable, (printer) => {
|
|
297
297
|
if (printer.port !== options.port)
|
|
298
298
|
return;
|
|
299
|
-
if (printer.port !== exports.BRLMPrinterPort.usb && model !== undefined && brotherPrinterModel(printer.modelName) !== model)
|
|
300
|
-
return;
|
|
301
299
|
const index = printers.findIndex((current) => current.port === printer.port && current.channelInfo === printer.channelInfo);
|
|
302
300
|
if (index < 0)
|
|
303
301
|
printers.push(printer);
|
|
@@ -316,7 +314,7 @@ async function preparePrinters(options, model, previous, active = () => true) {
|
|
|
316
314
|
if (available.result)
|
|
317
315
|
return [previous];
|
|
318
316
|
}
|
|
319
|
-
return active() ? discoverPrinters(options,
|
|
317
|
+
return active() ? discoverPrinters(options, active) : [];
|
|
320
318
|
}
|
|
321
319
|
/** One print screen's discovery results and event subscriptions. Create a new session after disposal. */
|
|
322
320
|
class BrotherPrinterSession {
|
|
@@ -339,8 +337,8 @@ class BrotherPrinterSession {
|
|
|
339
337
|
get printers() {
|
|
340
338
|
return __classPrivateFieldGet(this, _BrotherPrinterSession_printers, "f");
|
|
341
339
|
}
|
|
342
|
-
search(options,
|
|
343
|
-
return __classPrivateFieldGet(this, _BrotherPrinterSession_instances, "m", _BrotherPrinterSession_discover).call(this, () => discoverPrinters(options,
|
|
340
|
+
search(options, _model) {
|
|
341
|
+
return __classPrivateFieldGet(this, _BrotherPrinterSession_instances, "m", _BrotherPrinterSession_discover).call(this, () => discoverPrinters(options, () => !__classPrivateFieldGet(this, _BrotherPrinterSession_closed, "f")));
|
|
344
342
|
}
|
|
345
343
|
prepare(options, model, previous) {
|
|
346
344
|
return __classPrivateFieldGet(this, _BrotherPrinterSession_instances, "m", _BrotherPrinterSession_discover).call(this, async () => {
|
package/dist/plugin.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.cjs.js","sources":["esm/brother-printer.enum.js","esm/events.enum.js","esm/models.js","esm/printer.js","esm/web.js","esm/index.js"],"sourcesContent":["export var BRLMPrinterPort;\n(function (BRLMPrinterPort) {\n BRLMPrinterPort[\"usb\"] = \"usb\";\n BRLMPrinterPort[\"wifi\"] = \"wifi\";\n BRLMPrinterPort[\"bluetooth\"] = \"bluetooth\";\n BRLMPrinterPort[\"bluetoothLowEnergy\"] = \"bluetoothLowEnergy\";\n})(BRLMPrinterPort || (BRLMPrinterPort = {}));\nexport var BRLMPrinterCustomPaperUnit;\n(function (BRLMPrinterCustomPaperUnit) {\n BRLMPrinterCustomPaperUnit[\"mm\"] = \"mm\";\n BRLMPrinterCustomPaperUnit[\"inch\"] = \"inch\";\n})(BRLMPrinterCustomPaperUnit || (BRLMPrinterCustomPaperUnit = {}));\nexport var BRLMPrinterCustomPaperType;\n(function (BRLMPrinterCustomPaperType) {\n BRLMPrinterCustomPaperType[\"rollPaper\"] = \"rollPaper\";\n BRLMPrinterCustomPaperType[\"dieCutPaper\"] = \"dieCutPaper\";\n BRLMPrinterCustomPaperType[\"markRollPaper\"] = \"markRollPaper\";\n})(BRLMPrinterCustomPaperType || (BRLMPrinterCustomPaperType = {}));\n/**\n * Note: If you update this file, you should update the following files:\n * - ios/Plugin/Model/PrinterModel.swift\n *\n * And name is follow android naming convention.\n * Android naming: https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printermodel.html\n */\nexport var BRLMPrinterModelName;\n(function (BRLMPrinterModelName) {\n BRLMPrinterModelName[\"QL_800\"] = \"QL_800\";\n BRLMPrinterModelName[\"QL_810W\"] = \"QL_810W\";\n BRLMPrinterModelName[\"QL_820NWB\"] = \"QL_820NWB\";\n BRLMPrinterModelName[\"TD_2320D_203\"] = \"TD_2320D_203\";\n BRLMPrinterModelName[\"TD_2030AD\"] = \"TD_2030AD\";\n BRLMPrinterModelName[\"TD_2350D_300\"] = \"TD_2350D_300\";\n})(BRLMPrinterModelName || (BRLMPrinterModelName = {}));\n/**\n * Android naming: https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android/labelinfo.html\n */\nexport var BRLMPrinterLabelName;\n(function (BRLMPrinterLabelName) {\n BRLMPrinterLabelName[\"DieCutW17H54\"] = \"DieCutW17H54\";\n BRLMPrinterLabelName[\"DieCutW17H87\"] = \"DieCutW17H87\";\n BRLMPrinterLabelName[\"DieCutW23H23\"] = \"DieCutW23H23\";\n BRLMPrinterLabelName[\"DieCutW29H42\"] = \"DieCutW29H42\";\n BRLMPrinterLabelName[\"DieCutW29H90\"] = \"DieCutW29H90\";\n BRLMPrinterLabelName[\"DieCutW38H90\"] = \"DieCutW38H90\";\n BRLMPrinterLabelName[\"DieCutW39H48\"] = \"DieCutW39H48\";\n BRLMPrinterLabelName[\"DieCutW52H29\"] = \"DieCutW52H29\";\n BRLMPrinterLabelName[\"DieCutW62H29\"] = \"DieCutW62H29\";\n BRLMPrinterLabelName[\"DieCutW62H60\"] = \"DieCutW62H60\";\n BRLMPrinterLabelName[\"DieCutW62H75\"] = \"DieCutW62H75\";\n BRLMPrinterLabelName[\"DieCutW62H100\"] = \"DieCutW62H100\";\n BRLMPrinterLabelName[\"DieCutW60H86\"] = \"DieCutW60H86\";\n BRLMPrinterLabelName[\"DieCutW54H29\"] = \"DieCutW54H29\";\n BRLMPrinterLabelName[\"DieCutW102H51\"] = \"DieCutW102H51\";\n BRLMPrinterLabelName[\"DieCutW102H152\"] = \"DieCutW102H152\";\n BRLMPrinterLabelName[\"DieCutW103H164\"] = \"DieCutW103H164\";\n BRLMPrinterLabelName[\"RollW12\"] = \"RollW12\";\n BRLMPrinterLabelName[\"RollW29\"] = \"RollW29\";\n BRLMPrinterLabelName[\"RollW38\"] = \"RollW38\";\n BRLMPrinterLabelName[\"RollW50\"] = \"RollW50\";\n BRLMPrinterLabelName[\"RollW54\"] = \"RollW54\";\n BRLMPrinterLabelName[\"RollW62\"] = \"RollW62\";\n BRLMPrinterLabelName[\"RollW62RB\"] = \"RollW62RB\";\n BRLMPrinterLabelName[\"RollW102\"] = \"RollW102\";\n BRLMPrinterLabelName[\"RollW103\"] = \"RollW103\";\n BRLMPrinterLabelName[\"DTRollW90\"] = \"DTRollW90\";\n BRLMPrinterLabelName[\"DTRollW102\"] = \"DTRollW102\";\n BRLMPrinterLabelName[\"DTRollW102H51\"] = \"DTRollW102H51\";\n BRLMPrinterLabelName[\"DTRollW102H152\"] = \"DTRollW102H152\";\n BRLMPrinterLabelName[\"RoundW12DIA\"] = \"RoundW12DIA\";\n BRLMPrinterLabelName[\"RoundW24DIA\"] = \"RoundW24DIA\";\n BRLMPrinterLabelName[\"RoundW58DIA\"] = \"RoundW58DIA\";\n /**\n * For TD series\n * @url https://www.brother.co.jp/product/labelprinter/td2350d/accessory/index.aspx\n */\n BRLMPrinterLabelName[\"RDDieCutW60H60\"] = \"RDDieCutW60H60\";\n BRLMPrinterLabelName[\"RDDieCutW50H30\"] = \"RDDieCutW50H30\";\n BRLMPrinterLabelName[\"RDDieCutW40H60\"] = \"RDDieCutW40H60\";\n BRLMPrinterLabelName[\"RDDieCutW40H50\"] = \"RDDieCutW40H50\";\n BRLMPrinterLabelName[\"RDDieCutW40H40\"] = \"RDDieCutW40H40\";\n BRLMPrinterLabelName[\"RDDieCutW30H30\"] = \"RDDieCutW30H30\";\n BRLMPrinterLabelName[\"RDDieCutW50H35\"] = \"RDDieCutW50H35\";\n BRLMPrinterLabelName[\"RDDieCutW60H80\"] = \"RDDieCutW60H80\";\n BRLMPrinterLabelName[\"RDDieCutW60H100\"] = \"RDDieCutW60H100\";\n})(BRLMPrinterLabelName || (BRLMPrinterLabelName = {}));\n/**\n * @url https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printimagesettings.html#imagerotation\n */\nexport var BRLMPrinterImageRotation;\n(function (BRLMPrinterImageRotation) {\n BRLMPrinterImageRotation[\"Rotate0\"] = \"Rotate0\";\n BRLMPrinterImageRotation[\"Rotate90\"] = \"Rotate90\";\n BRLMPrinterImageRotation[\"Rotate180\"] = \"Rotate180\";\n BRLMPrinterImageRotation[\"Rotate270\"] = \"Rotate270\";\n})(BRLMPrinterImageRotation || (BRLMPrinterImageRotation = {}));\n/**\n * url https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printimagesettings.html#scalemode\n */\nexport var BRLMPrinterScaleMode;\n(function (BRLMPrinterScaleMode) {\n BRLMPrinterScaleMode[\"ActualSize\"] = \"ActualSize\";\n BRLMPrinterScaleMode[\"FitPageAspect\"] = \"FitPageAspect\";\n BRLMPrinterScaleMode[\"FitPaperAspect\"] = \"FitPaperAspect\";\n BRLMPrinterScaleMode[\"ScaleValue\"] = \"ScaleValue\";\n})(BRLMPrinterScaleMode || (BRLMPrinterScaleMode = {}));\n/**\n * url: https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printimagesettings.html#halftone\n */\nexport var BRLMPrinterHalftone;\n(function (BRLMPrinterHalftone) {\n BRLMPrinterHalftone[\"Threshold\"] = \"Threshold\";\n BRLMPrinterHalftone[\"ErrorDiffusion\"] = \"ErrorDiffusion\";\n BRLMPrinterHalftone[\"PatternDither\"] = \"PatternDither\";\n})(BRLMPrinterHalftone || (BRLMPrinterHalftone = {}));\n/**\n * url: https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printimagesettings.html#verticalalignment\n */\nexport var BRLMPrinterVerticalAlignment;\n(function (BRLMPrinterVerticalAlignment) {\n BRLMPrinterVerticalAlignment[\"Top\"] = \"Top\";\n BRLMPrinterVerticalAlignment[\"Center\"] = \"Center\";\n BRLMPrinterVerticalAlignment[\"Bottom\"] = \"Bottom\";\n})(BRLMPrinterVerticalAlignment || (BRLMPrinterVerticalAlignment = {}));\n/**\n * url: https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printimagesettings.html#horizontalalignment\n */\nexport var BRLMPrinterHorizontalAlignment;\n(function (BRLMPrinterHorizontalAlignment) {\n BRLMPrinterHorizontalAlignment[\"Left\"] = \"Left\";\n BRLMPrinterHorizontalAlignment[\"Center\"] = \"Center\";\n BRLMPrinterHorizontalAlignment[\"Right\"] = \"Right\";\n})(BRLMPrinterHorizontalAlignment || (BRLMPrinterHorizontalAlignment = {}));\n/**\n * url: https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printimagesettings.html#compressmode\n */\nexport var BRLMPrinterCompressMode;\n(function (BRLMPrinterCompressMode) {\n BRLMPrinterCompressMode[\"None\"] = \"None\";\n BRLMPrinterCompressMode[\"Tiff\"] = \"Tiff\";\n BRLMPrinterCompressMode[\"Mode9\"] = \"Mode9\";\n})(BRLMPrinterCompressMode || (BRLMPrinterCompressMode = {}));\n/**\n * url: https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printimagesettings.html#printquality\n */\nexport var BRLMPrinterPrintQuality;\n(function (BRLMPrinterPrintQuality) {\n BRLMPrinterPrintQuality[\"Best\"] = \"Best\";\n BRLMPrinterPrintQuality[\"Fast\"] = \"Fast\";\n})(BRLMPrinterPrintQuality || (BRLMPrinterPrintQuality = {}));\n/**\n * url: https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printimagesettings.html#resolution\n */\n// export enum BRLMPrinterPrintResolution {\n// Low = 'Low',\n// Normal = 'Normal',\n// High = 'High',\n// }\n//# sourceMappingURL=brother-printer.enum.js.map","export var BrotherPrintEventsEnum;\n(function (BrotherPrintEventsEnum) {\n BrotherPrintEventsEnum[\"onPrinterAvailable\"] = \"onPrinterAvailable\";\n BrotherPrintEventsEnum[\"onPrint\"] = \"onPrint\";\n BrotherPrintEventsEnum[\"onPrintFailedCommunication\"] = \"onPrintFailedCommunication\";\n BrotherPrintEventsEnum[\"onPrintError\"] = \"onPrintError\";\n})(BrotherPrintEventsEnum || (BrotherPrintEventsEnum = {}));\n//# sourceMappingURL=events.enum.js.map","import { BRLMPrinterModelName as Model, BRLMPrinterPort as Port } from './brother-printer.enum';\nexport const printerPorts = {\n [Model.QL_800]: [Port.usb],\n [Model.QL_810W]: [Port.wifi, Port.usb],\n [Model.QL_820NWB]: [Port.wifi, Port.bluetooth, Port.usb],\n [Model.TD_2320D_203]: [Port.wifi, Port.usb],\n [Model.TD_2030AD]: [Port.usb],\n [Model.TD_2350D_300]: [Port.wifi, Port.bluetooth, Port.usb, Port.bluetoothLowEnergy],\n};\n//# sourceMappingURL=models.js.map","import { Capacitor } from '@capacitor/core';\nimport { BRLMPrinterModelName, BRLMPrinterPort } from './brother-printer.enum';\nimport { printerPorts } from './models';\n/** Common display names for connection transports. */\nexport function brotherPrinterPortLabel(port) {\n switch (port) {\n case BRLMPrinterPort.wifi:\n return 'Wi-Fi';\n case BRLMPrinterPort.bluetooth:\n return 'Bluetooth';\n case BRLMPrinterPort.bluetoothLowEnergy:\n return 'Bluetooth LE';\n case BRLMPrinterPort.usb:\n return 'USB';\n default:\n return '';\n }\n}\n/** Connection choices for the existing models. USB is Android-only; wifi also covers Ethernet. */\nexport function brotherPrinterPorts(model, isAndroid = Capacitor.getPlatform() === 'android') {\n if (!Object.values(BRLMPrinterModelName).includes(model))\n return [];\n return printerPorts[model].filter((port) => isAndroid || port !== BRLMPrinterPort.usb);\n}\n/** Keep a supported saved port; otherwise prefer USB for QL-800/810W on Android. */\nexport function resolveBrotherPrinterPort(model, saved) {\n const ports = brotherPrinterPorts(model);\n if (saved && ports.includes(saved))\n return saved;\n if (ports.includes(BRLMPrinterPort.usb) &&\n (model === BRLMPrinterModelName.QL_800 || model === BRLMPrinterModelName.QL_810W))\n return BRLMPrinterPort.usb;\n return ports[0];\n}\n/** Match discovery names to an existing model enum, including documented product aliases. */\nexport function brotherPrinterModel(name) {\n const key = name\n .trim()\n .toUpperCase()\n .replace(/^BROTHER\\s+/, '')\n .replace(/[-_ ]/g, '');\n // Product names omit TD resolution; QL-820NWBc and TD-2030A use the existing enum spellings.\n const product = key === 'QL820NWBC' ? 'QL820NWB' : key === 'TD2030A' ? 'TD2030AD' : key;\n return Object.values(BRLMPrinterModelName).find((model) => model.replace(/_/g, '') === product || model.replace(/_(203|300)$/, '').replace(/_/g, '') === product);\n}\n//# sourceMappingURL=printer.js.map","import { WebPlugin } from '@capacitor/core';\nexport class BrotherPrintWeb extends WebPlugin {\n async printImage(options) {\n console.log('printImage', options);\n }\n async isChannelAvailable(options) {\n console.log('isChannelAvailable', options);\n return {\n result: false,\n };\n }\n async search(options) {\n console.log('search', options);\n }\n async cancelSearchWiFiPrinter() {\n console.log('cancelSearchWiFiPrinter');\n }\n async cancelSearchBluetoothPrinter() {\n console.log('cancelSearchBluetoothPrinter');\n }\n}\n//# sourceMappingURL=web.js.map","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _BrotherPrinterSession_instances, _BrotherPrinterSession_closed, _BrotherPrinterSession_printers, _BrotherPrinterSession_listeners, _BrotherPrinterSession_listening, _BrotherPrinterSession_disposal, _BrotherPrinterSession_storage, _BrotherPrinterSession_storageKey, _BrotherPrinterSession_readSavedPrinter, _BrotherPrinterSession_savePrinter, _BrotherPrinterSession_discover;\nimport { registerPlugin } from '@capacitor/core';\nimport { BRLMPrinterPort } from './brother-printer.enum';\nimport { BrotherPrintEventsEnum } from './events.enum';\nimport { brotherPrinterModel } from './printer';\nconst BrotherPrint = registerPlugin('BrotherPrint', {\n web: () => import('./web').then((m) => new m.BrotherPrintWeb()),\n});\nexport * from './definitions';\nexport * from './web';\nexport * from './events.enum';\nexport * from './interfaces';\nexport * from './brother-printer.enum';\nexport { BrotherPrint };\nexport * from './printer';\n// Native discovery events are shared. Keep each helper call's listener scoped to its turn.\nlet connectionQueue = Promise.resolve();\nfunction queueConnection(run) {\n const result = connectionQueue.then(run);\n connectionQueue = result.catch(() => undefined);\n return result;\n}\n/** Collect discovery results, waiting for earlier helper calls to finish. */\nexport function searchBrotherPrinters(options, model) {\n return queueConnection(() => discoverPrinters(options, model));\n}\n/**\n * Reuse a matching, available previous channel; otherwise discover printers.\n * The caller owns storage. USB always discovers again through the native permission flow.\n * Availability errors propagate; only an unavailable channel triggers discovery.\n */\nexport function prepareBrotherPrinters(options, model, previous) {\n return queueConnection(() => preparePrinters(options, model, previous));\n}\n/**\n * Check an explicitly selected address without discovery or fallback to another printer.\n * Port must be supplied; an address does not identify its transport or printer model.\n */\nexport function checkBrotherPrinterChannel(channel) {\n return queueConnection(async () => {\n const { result } = await BrotherPrint.isChannelAvailable(Object.assign({ modelName: '', serialNumber: '', macAddress: '', nodeName: '', location: '' }, channel));\n return result;\n });\n}\nasync function discoverPrinters(options, model, active = () => true) {\n const printers = [];\n const listener = await BrotherPrint.addListener(BrotherPrintEventsEnum.onPrinterAvailable, (printer) => {\n if (printer.port !== options.port)\n return;\n if (printer.port !== BRLMPrinterPort.usb && model !== undefined && brotherPrinterModel(printer.modelName) !== model)\n return;\n const index = printers.findIndex((current) => current.port === printer.port && current.channelInfo === printer.channelInfo);\n if (index < 0)\n printers.push(printer);\n else\n printers[index] = printer;\n });\n await (active() ? BrotherPrint.search(options) : Promise.resolve()).finally(() => listener.remove());\n return printers;\n}\nasync function preparePrinters(options, model, previous, active = () => true) {\n if (options.port !== BRLMPrinterPort.usb &&\n (previous === null || previous === void 0 ? void 0 : previous.port) === options.port &&\n previous.channelInfo.trim() &&\n brotherPrinterModel(previous.modelName) === model) {\n const available = await BrotherPrint.isChannelAvailable(previous);\n if (available.result)\n return [previous];\n }\n return active() ? discoverPrinters(options, model, active) : [];\n}\n/** One print screen's discovery results and event subscriptions. Create a new session after disposal. */\nexport class BrotherPrinterSession {\n constructor(options = {}) {\n var _a;\n _BrotherPrinterSession_instances.add(this);\n _BrotherPrinterSession_closed.set(this, false);\n _BrotherPrinterSession_printers.set(this, []);\n _BrotherPrinterSession_listeners.set(this, []);\n _BrotherPrinterSession_listening.set(this, void 0);\n _BrotherPrinterSession_disposal.set(this, void 0);\n _BrotherPrinterSession_storage.set(this, void 0);\n _BrotherPrinterSession_storageKey.set(this, void 0);\n __classPrivateFieldSet(this, _BrotherPrinterSession_storage, options.storage, \"f\");\n __classPrivateFieldSet(this, _BrotherPrinterSession_storageKey, `${(_a = options.storagePrefix) !== null && _a !== void 0 ? _a : 'brotherprint:'}last-printer`, \"f\");\n }\n get closed() {\n return __classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\");\n }\n get printers() {\n return __classPrivateFieldGet(this, _BrotherPrinterSession_printers, \"f\");\n }\n search(options, model) {\n return __classPrivateFieldGet(this, _BrotherPrinterSession_instances, \"m\", _BrotherPrinterSession_discover).call(this, () => discoverPrinters(options, model, () => !__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\")));\n }\n prepare(options, model, previous) {\n return __classPrivateFieldGet(this, _BrotherPrinterSession_instances, \"m\", _BrotherPrinterSession_discover).call(this, async () => {\n const saved = previous === undefined ? await __classPrivateFieldGet(this, _BrotherPrinterSession_instances, \"m\", _BrotherPrinterSession_readSavedPrinter).call(this).catch(() => undefined) : previous;\n if (__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n return [];\n return preparePrinters(options, model, saved, () => !__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"));\n });\n }\n /** Forget the remembered connection. Storage removal errors propagate to the caller. */\n async clearSavedPrinter() {\n var _a;\n await ((_a = __classPrivateFieldGet(this, _BrotherPrinterSession_storage, \"f\")) === null || _a === void 0 ? void 0 : _a.remove(__classPrivateFieldGet(this, _BrotherPrinterSession_storageKey, \"f\")));\n }\n /** Register print notifications once. Callbacks stop immediately when disposed. */\n listen(events) {\n if (__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n return Promise.resolve();\n if (!__classPrivateFieldGet(this, _BrotherPrinterSession_listening, \"f\")) {\n __classPrivateFieldSet(this, _BrotherPrinterSession_listeners, [\n BrotherPrint.addListener(BrotherPrintEventsEnum.onPrint, () => {\n var _a;\n if (!__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n (_a = events.onPrint) === null || _a === void 0 ? void 0 : _a.call(events);\n }),\n BrotherPrint.addListener(BrotherPrintEventsEnum.onPrintError, (info) => {\n var _a;\n if (!__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n (_a = events.onPrintError) === null || _a === void 0 ? void 0 : _a.call(events, info);\n }),\n BrotherPrint.addListener(BrotherPrintEventsEnum.onPrintFailedCommunication, (info) => {\n var _a;\n if (!__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n (_a = events.onPrintFailedCommunication) === null || _a === void 0 ? void 0 : _a.call(events, info);\n }),\n ], \"f\");\n __classPrivateFieldSet(this, _BrotherPrinterSession_listening, Promise.all(__classPrivateFieldGet(this, _BrotherPrinterSession_listeners, \"f\")).then(() => undefined), \"f\");\n }\n return __classPrivateFieldGet(this, _BrotherPrinterSession_listening, \"f\");\n }\n /** A closed session cannot start another print. Already started native printing is awaited. */\n async printImage(options) {\n if (__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n return;\n if (__classPrivateFieldGet(this, _BrotherPrinterSession_storage, \"f\"))\n await __classPrivateFieldGet(this, _BrotherPrinterSession_instances, \"m\", _BrotherPrinterSession_savePrinter).call(this, options).catch(() => undefined);\n if (!__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n await BrotherPrint.printImage(options);\n }\n /** Invalidate pending work immediately, then remove this session's print listeners. */\n dispose() {\n var _a;\n __classPrivateFieldSet(this, _BrotherPrinterSession_closed, true, \"f\");\n __classPrivateFieldSet(this, _BrotherPrinterSession_printers, [], \"f\");\n __classPrivateFieldSet(this, _BrotherPrinterSession_disposal, (_a = __classPrivateFieldGet(this, _BrotherPrinterSession_disposal, \"f\")) !== null && _a !== void 0 ? _a : Promise.all(__classPrivateFieldGet(this, _BrotherPrinterSession_listeners, \"f\").map((listener) => listener.then((handle) => handle.remove()))).then(() => undefined), \"f\");\n return __classPrivateFieldGet(this, _BrotherPrinterSession_disposal, \"f\");\n }\n}\n_BrotherPrinterSession_closed = new WeakMap(), _BrotherPrinterSession_printers = new WeakMap(), _BrotherPrinterSession_listeners = new WeakMap(), _BrotherPrinterSession_listening = new WeakMap(), _BrotherPrinterSession_disposal = new WeakMap(), _BrotherPrinterSession_storage = new WeakMap(), _BrotherPrinterSession_storageKey = new WeakMap(), _BrotherPrinterSession_instances = new WeakSet(), _BrotherPrinterSession_readSavedPrinter = async function _BrotherPrinterSession_readSavedPrinter() {\n var _a;\n const value = await ((_a = __classPrivateFieldGet(this, _BrotherPrinterSession_storage, \"f\")) === null || _a === void 0 ? void 0 : _a.get(__classPrivateFieldGet(this, _BrotherPrinterSession_storageKey, \"f\")));\n if (!value)\n return undefined;\n const channel = JSON.parse(value);\n if (channel &&\n Object.values(BRLMPrinterPort).includes(channel.port) &&\n ['modelName', 'channelInfo', 'serialNumber', 'macAddress', 'nodeName', 'location'].every((key) => typeof channel[key] === 'string'))\n return channel;\n return undefined;\n}, _BrotherPrinterSession_savePrinter = async function _BrotherPrinterSession_savePrinter(options) {\n var _a;\n if (!__classPrivateFieldGet(this, _BrotherPrinterSession_storage, \"f\") || !options.port || !((_a = options.channelInfo) === null || _a === void 0 ? void 0 : _a.trim()))\n return;\n const found = __classPrivateFieldGet(this, _BrotherPrinterSession_printers, \"f\").find((printer) => printer.port === options.port && printer.channelInfo === options.channelInfo);\n const channel = Object.assign(Object.assign({ serialNumber: '', macAddress: '', nodeName: '', location: '' }, found), { port: options.port, channelInfo: options.channelInfo, modelName: options.modelName });\n await __classPrivateFieldGet(this, _BrotherPrinterSession_storage, \"f\").set(__classPrivateFieldGet(this, _BrotherPrinterSession_storageKey, \"f\"), JSON.stringify(channel));\n}, _BrotherPrinterSession_discover = function _BrotherPrinterSession_discover(run) {\n return queueConnection(async () => {\n if (__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n return [];\n __classPrivateFieldSet(this, _BrotherPrinterSession_printers, [], \"f\");\n return run().then((printers) => {\n if (__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n return [];\n __classPrivateFieldSet(this, _BrotherPrinterSession_printers, printers, \"f\");\n return printers;\n });\n });\n};\n//# sourceMappingURL=index.js.map"],"names":["BRLMPrinterPort","BRLMPrinterCustomPaperUnit","BRLMPrinterCustomPaperType","BRLMPrinterModelName","BRLMPrinterLabelName","BRLMPrinterImageRotation","BRLMPrinterScaleMode","BRLMPrinterHalftone","BRLMPrinterVerticalAlignment","BRLMPrinterHorizontalAlignment","BRLMPrinterCompressMode","BRLMPrinterPrintQuality","BrotherPrintEventsEnum","Model","Port","Capacitor","WebPlugin","this","registerPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.cjs.js","sources":["esm/brother-printer.enum.js","esm/events.enum.js","esm/models.js","esm/printer.js","esm/web.js","esm/index.js"],"sourcesContent":["export var BRLMPrinterPort;\n(function (BRLMPrinterPort) {\n BRLMPrinterPort[\"usb\"] = \"usb\";\n BRLMPrinterPort[\"wifi\"] = \"wifi\";\n BRLMPrinterPort[\"bluetooth\"] = \"bluetooth\";\n BRLMPrinterPort[\"bluetoothLowEnergy\"] = \"bluetoothLowEnergy\";\n})(BRLMPrinterPort || (BRLMPrinterPort = {}));\nexport var BRLMPrinterCustomPaperUnit;\n(function (BRLMPrinterCustomPaperUnit) {\n BRLMPrinterCustomPaperUnit[\"mm\"] = \"mm\";\n BRLMPrinterCustomPaperUnit[\"inch\"] = \"inch\";\n})(BRLMPrinterCustomPaperUnit || (BRLMPrinterCustomPaperUnit = {}));\nexport var BRLMPrinterCustomPaperType;\n(function (BRLMPrinterCustomPaperType) {\n BRLMPrinterCustomPaperType[\"rollPaper\"] = \"rollPaper\";\n BRLMPrinterCustomPaperType[\"dieCutPaper\"] = \"dieCutPaper\";\n BRLMPrinterCustomPaperType[\"markRollPaper\"] = \"markRollPaper\";\n})(BRLMPrinterCustomPaperType || (BRLMPrinterCustomPaperType = {}));\n/**\n * Note: If you update this file, you should update the following files:\n * - ios/Plugin/Model/PrinterModel.swift\n *\n * And name is follow android naming convention.\n * Android naming: https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printermodel.html\n */\nexport var BRLMPrinterModelName;\n(function (BRLMPrinterModelName) {\n BRLMPrinterModelName[\"QL_800\"] = \"QL_800\";\n BRLMPrinterModelName[\"QL_810W\"] = \"QL_810W\";\n BRLMPrinterModelName[\"QL_820NWB\"] = \"QL_820NWB\";\n BRLMPrinterModelName[\"TD_2320D_203\"] = \"TD_2320D_203\";\n BRLMPrinterModelName[\"TD_2030AD\"] = \"TD_2030AD\";\n BRLMPrinterModelName[\"TD_2350D_300\"] = \"TD_2350D_300\";\n})(BRLMPrinterModelName || (BRLMPrinterModelName = {}));\n/**\n * Android naming: https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android/labelinfo.html\n */\nexport var BRLMPrinterLabelName;\n(function (BRLMPrinterLabelName) {\n BRLMPrinterLabelName[\"DieCutW17H54\"] = \"DieCutW17H54\";\n BRLMPrinterLabelName[\"DieCutW17H87\"] = \"DieCutW17H87\";\n BRLMPrinterLabelName[\"DieCutW23H23\"] = \"DieCutW23H23\";\n BRLMPrinterLabelName[\"DieCutW29H42\"] = \"DieCutW29H42\";\n BRLMPrinterLabelName[\"DieCutW29H90\"] = \"DieCutW29H90\";\n BRLMPrinterLabelName[\"DieCutW38H90\"] = \"DieCutW38H90\";\n BRLMPrinterLabelName[\"DieCutW39H48\"] = \"DieCutW39H48\";\n BRLMPrinterLabelName[\"DieCutW52H29\"] = \"DieCutW52H29\";\n BRLMPrinterLabelName[\"DieCutW62H29\"] = \"DieCutW62H29\";\n BRLMPrinterLabelName[\"DieCutW62H60\"] = \"DieCutW62H60\";\n BRLMPrinterLabelName[\"DieCutW62H75\"] = \"DieCutW62H75\";\n BRLMPrinterLabelName[\"DieCutW62H100\"] = \"DieCutW62H100\";\n BRLMPrinterLabelName[\"DieCutW60H86\"] = \"DieCutW60H86\";\n BRLMPrinterLabelName[\"DieCutW54H29\"] = \"DieCutW54H29\";\n BRLMPrinterLabelName[\"DieCutW102H51\"] = \"DieCutW102H51\";\n BRLMPrinterLabelName[\"DieCutW102H152\"] = \"DieCutW102H152\";\n BRLMPrinterLabelName[\"DieCutW103H164\"] = \"DieCutW103H164\";\n BRLMPrinterLabelName[\"RollW12\"] = \"RollW12\";\n BRLMPrinterLabelName[\"RollW29\"] = \"RollW29\";\n BRLMPrinterLabelName[\"RollW38\"] = \"RollW38\";\n BRLMPrinterLabelName[\"RollW50\"] = \"RollW50\";\n BRLMPrinterLabelName[\"RollW54\"] = \"RollW54\";\n BRLMPrinterLabelName[\"RollW62\"] = \"RollW62\";\n BRLMPrinterLabelName[\"RollW62RB\"] = \"RollW62RB\";\n BRLMPrinterLabelName[\"RollW102\"] = \"RollW102\";\n BRLMPrinterLabelName[\"RollW103\"] = \"RollW103\";\n BRLMPrinterLabelName[\"DTRollW90\"] = \"DTRollW90\";\n BRLMPrinterLabelName[\"DTRollW102\"] = \"DTRollW102\";\n BRLMPrinterLabelName[\"DTRollW102H51\"] = \"DTRollW102H51\";\n BRLMPrinterLabelName[\"DTRollW102H152\"] = \"DTRollW102H152\";\n BRLMPrinterLabelName[\"RoundW12DIA\"] = \"RoundW12DIA\";\n BRLMPrinterLabelName[\"RoundW24DIA\"] = \"RoundW24DIA\";\n BRLMPrinterLabelName[\"RoundW58DIA\"] = \"RoundW58DIA\";\n /**\n * For TD series\n * @url https://www.brother.co.jp/product/labelprinter/td2350d/accessory/index.aspx\n */\n BRLMPrinterLabelName[\"RDDieCutW60H60\"] = \"RDDieCutW60H60\";\n BRLMPrinterLabelName[\"RDDieCutW50H30\"] = \"RDDieCutW50H30\";\n BRLMPrinterLabelName[\"RDDieCutW40H60\"] = \"RDDieCutW40H60\";\n BRLMPrinterLabelName[\"RDDieCutW40H50\"] = \"RDDieCutW40H50\";\n BRLMPrinterLabelName[\"RDDieCutW40H40\"] = \"RDDieCutW40H40\";\n BRLMPrinterLabelName[\"RDDieCutW30H30\"] = \"RDDieCutW30H30\";\n BRLMPrinterLabelName[\"RDDieCutW50H35\"] = \"RDDieCutW50H35\";\n BRLMPrinterLabelName[\"RDDieCutW60H80\"] = \"RDDieCutW60H80\";\n BRLMPrinterLabelName[\"RDDieCutW60H100\"] = \"RDDieCutW60H100\";\n})(BRLMPrinterLabelName || (BRLMPrinterLabelName = {}));\n/**\n * @url https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printimagesettings.html#imagerotation\n */\nexport var BRLMPrinterImageRotation;\n(function (BRLMPrinterImageRotation) {\n BRLMPrinterImageRotation[\"Rotate0\"] = \"Rotate0\";\n BRLMPrinterImageRotation[\"Rotate90\"] = \"Rotate90\";\n BRLMPrinterImageRotation[\"Rotate180\"] = \"Rotate180\";\n BRLMPrinterImageRotation[\"Rotate270\"] = \"Rotate270\";\n})(BRLMPrinterImageRotation || (BRLMPrinterImageRotation = {}));\n/**\n * url https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printimagesettings.html#scalemode\n */\nexport var BRLMPrinterScaleMode;\n(function (BRLMPrinterScaleMode) {\n BRLMPrinterScaleMode[\"ActualSize\"] = \"ActualSize\";\n BRLMPrinterScaleMode[\"FitPageAspect\"] = \"FitPageAspect\";\n BRLMPrinterScaleMode[\"FitPaperAspect\"] = \"FitPaperAspect\";\n BRLMPrinterScaleMode[\"ScaleValue\"] = \"ScaleValue\";\n})(BRLMPrinterScaleMode || (BRLMPrinterScaleMode = {}));\n/**\n * url: https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printimagesettings.html#halftone\n */\nexport var BRLMPrinterHalftone;\n(function (BRLMPrinterHalftone) {\n BRLMPrinterHalftone[\"Threshold\"] = \"Threshold\";\n BRLMPrinterHalftone[\"ErrorDiffusion\"] = \"ErrorDiffusion\";\n BRLMPrinterHalftone[\"PatternDither\"] = \"PatternDither\";\n})(BRLMPrinterHalftone || (BRLMPrinterHalftone = {}));\n/**\n * url: https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printimagesettings.html#verticalalignment\n */\nexport var BRLMPrinterVerticalAlignment;\n(function (BRLMPrinterVerticalAlignment) {\n BRLMPrinterVerticalAlignment[\"Top\"] = \"Top\";\n BRLMPrinterVerticalAlignment[\"Center\"] = \"Center\";\n BRLMPrinterVerticalAlignment[\"Bottom\"] = \"Bottom\";\n})(BRLMPrinterVerticalAlignment || (BRLMPrinterVerticalAlignment = {}));\n/**\n * url: https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printimagesettings.html#horizontalalignment\n */\nexport var BRLMPrinterHorizontalAlignment;\n(function (BRLMPrinterHorizontalAlignment) {\n BRLMPrinterHorizontalAlignment[\"Left\"] = \"Left\";\n BRLMPrinterHorizontalAlignment[\"Center\"] = \"Center\";\n BRLMPrinterHorizontalAlignment[\"Right\"] = \"Right\";\n})(BRLMPrinterHorizontalAlignment || (BRLMPrinterHorizontalAlignment = {}));\n/**\n * url: https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printimagesettings.html#compressmode\n */\nexport var BRLMPrinterCompressMode;\n(function (BRLMPrinterCompressMode) {\n BRLMPrinterCompressMode[\"None\"] = \"None\";\n BRLMPrinterCompressMode[\"Tiff\"] = \"Tiff\";\n BRLMPrinterCompressMode[\"Mode9\"] = \"Mode9\";\n})(BRLMPrinterCompressMode || (BRLMPrinterCompressMode = {}));\n/**\n * url: https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printimagesettings.html#printquality\n */\nexport var BRLMPrinterPrintQuality;\n(function (BRLMPrinterPrintQuality) {\n BRLMPrinterPrintQuality[\"Best\"] = \"Best\";\n BRLMPrinterPrintQuality[\"Fast\"] = \"Fast\";\n})(BRLMPrinterPrintQuality || (BRLMPrinterPrintQuality = {}));\n/**\n * url: https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/android_v4/printimagesettings.html#resolution\n */\n// export enum BRLMPrinterPrintResolution {\n// Low = 'Low',\n// Normal = 'Normal',\n// High = 'High',\n// }\n//# sourceMappingURL=brother-printer.enum.js.map","export var BrotherPrintEventsEnum;\n(function (BrotherPrintEventsEnum) {\n BrotherPrintEventsEnum[\"onPrinterAvailable\"] = \"onPrinterAvailable\";\n BrotherPrintEventsEnum[\"onPrint\"] = \"onPrint\";\n BrotherPrintEventsEnum[\"onPrintFailedCommunication\"] = \"onPrintFailedCommunication\";\n BrotherPrintEventsEnum[\"onPrintError\"] = \"onPrintError\";\n})(BrotherPrintEventsEnum || (BrotherPrintEventsEnum = {}));\n//# sourceMappingURL=events.enum.js.map","import { BRLMPrinterModelName as Model, BRLMPrinterPort as Port } from './brother-printer.enum';\nexport const printerPorts = {\n [Model.QL_800]: [Port.usb],\n [Model.QL_810W]: [Port.wifi, Port.usb],\n [Model.QL_820NWB]: [Port.wifi, Port.bluetooth, Port.usb],\n [Model.TD_2320D_203]: [Port.wifi, Port.usb],\n [Model.TD_2030AD]: [Port.usb],\n [Model.TD_2350D_300]: [Port.wifi, Port.bluetooth, Port.usb, Port.bluetoothLowEnergy],\n};\n//# sourceMappingURL=models.js.map","import { Capacitor } from '@capacitor/core';\nimport { BRLMPrinterModelName, BRLMPrinterPort } from './brother-printer.enum';\nimport { printerPorts } from './models';\n/** Common display names for connection transports. */\nexport function brotherPrinterPortLabel(port) {\n switch (port) {\n case BRLMPrinterPort.wifi:\n return 'Wi-Fi';\n case BRLMPrinterPort.bluetooth:\n return 'Bluetooth';\n case BRLMPrinterPort.bluetoothLowEnergy:\n return 'Bluetooth LE';\n case BRLMPrinterPort.usb:\n return 'USB';\n default:\n return '';\n }\n}\n/** Connection choices for the existing models. USB is Android-only; wifi also covers Ethernet. */\nexport function brotherPrinterPorts(model, isAndroid = Capacitor.getPlatform() === 'android') {\n if (!Object.values(BRLMPrinterModelName).includes(model))\n return [];\n return printerPorts[model].filter((port) => isAndroid || port !== BRLMPrinterPort.usb);\n}\n/** Keep a supported saved port; otherwise prefer USB for QL-800/810W on Android. */\nexport function resolveBrotherPrinterPort(model, saved) {\n const ports = brotherPrinterPorts(model);\n if (saved && ports.includes(saved))\n return saved;\n if (ports.includes(BRLMPrinterPort.usb) &&\n (model === BRLMPrinterModelName.QL_800 || model === BRLMPrinterModelName.QL_810W))\n return BRLMPrinterPort.usb;\n return ports[0];\n}\n/** Match discovery names to an existing model enum, including documented product aliases. */\nexport function brotherPrinterModel(name) {\n const key = name\n .trim()\n .toUpperCase()\n .replace(/^BROTHER\\s+/, '')\n .replace(/[-_ ]/g, '');\n // Product names omit TD resolution; QL-820NWBc and TD-2030A use the existing enum spellings.\n const product = key === 'QL820NWBC' ? 'QL820NWB' : key === 'TD2030A' ? 'TD2030AD' : key;\n return Object.values(BRLMPrinterModelName).find((model) => model.replace(/_/g, '') === product || model.replace(/_(203|300)$/, '').replace(/_/g, '') === product);\n}\n//# sourceMappingURL=printer.js.map","import { WebPlugin } from '@capacitor/core';\nexport class BrotherPrintWeb extends WebPlugin {\n async printImage(options) {\n console.log('printImage', options);\n }\n async isChannelAvailable(options) {\n console.log('isChannelAvailable', options);\n return {\n result: false,\n };\n }\n async search(options) {\n console.log('search', options);\n }\n async cancelSearchWiFiPrinter() {\n console.log('cancelSearchWiFiPrinter');\n }\n async cancelSearchBluetoothPrinter() {\n console.log('cancelSearchBluetoothPrinter');\n }\n}\n//# sourceMappingURL=web.js.map","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _BrotherPrinterSession_instances, _BrotherPrinterSession_closed, _BrotherPrinterSession_printers, _BrotherPrinterSession_listeners, _BrotherPrinterSession_listening, _BrotherPrinterSession_disposal, _BrotherPrinterSession_storage, _BrotherPrinterSession_storageKey, _BrotherPrinterSession_readSavedPrinter, _BrotherPrinterSession_savePrinter, _BrotherPrinterSession_discover;\nimport { registerPlugin } from '@capacitor/core';\nimport { BRLMPrinterPort } from './brother-printer.enum';\nimport { BrotherPrintEventsEnum } from './events.enum';\nimport { brotherPrinterModel } from './printer';\nconst BrotherPrint = registerPlugin('BrotherPrint', {\n web: () => import('./web').then((m) => new m.BrotherPrintWeb()),\n});\nexport * from './definitions';\nexport * from './web';\nexport * from './events.enum';\nexport * from './interfaces';\nexport * from './brother-printer.enum';\nexport { BrotherPrint };\nexport * from './printer';\n// Native discovery events are shared. Keep each helper call's listener scoped to its turn.\nlet connectionQueue = Promise.resolve();\nfunction queueConnection(run) {\n const result = connectionQueue.then(run);\n connectionQueue = result.catch(() => undefined);\n return result;\n}\n/** Collect discovery results, waiting for earlier helper calls to finish. */\nexport function searchBrotherPrinters(options, _model) {\n return queueConnection(() => discoverPrinters(options));\n}\n/**\n * Reuse a matching, available previous channel; otherwise discover printers.\n * The caller owns storage. USB always discovers again through the native permission flow.\n * Availability errors propagate; only an unavailable channel triggers discovery.\n */\nexport function prepareBrotherPrinters(options, model, previous) {\n return queueConnection(() => preparePrinters(options, model, previous));\n}\n/**\n * Check an explicitly selected address without discovery or fallback to another printer.\n * Port must be supplied; an address does not identify its transport or printer model.\n */\nexport function checkBrotherPrinterChannel(channel) {\n return queueConnection(async () => {\n const { result } = await BrotherPrint.isChannelAvailable(Object.assign({ modelName: '', serialNumber: '', macAddress: '', nodeName: '', location: '' }, channel));\n return result;\n });\n}\nasync function discoverPrinters(options, active = () => true) {\n const printers = [];\n const listener = await BrotherPrint.addListener(BrotherPrintEventsEnum.onPrinterAvailable, (printer) => {\n if (printer.port !== options.port)\n return;\n const index = printers.findIndex((current) => current.port === printer.port && current.channelInfo === printer.channelInfo);\n if (index < 0)\n printers.push(printer);\n else\n printers[index] = printer;\n });\n await (active() ? BrotherPrint.search(options) : Promise.resolve()).finally(() => listener.remove());\n return printers;\n}\nasync function preparePrinters(options, model, previous, active = () => true) {\n if (options.port !== BRLMPrinterPort.usb &&\n (previous === null || previous === void 0 ? void 0 : previous.port) === options.port &&\n previous.channelInfo.trim() &&\n brotherPrinterModel(previous.modelName) === model) {\n const available = await BrotherPrint.isChannelAvailable(previous);\n if (available.result)\n return [previous];\n }\n return active() ? discoverPrinters(options, active) : [];\n}\n/** One print screen's discovery results and event subscriptions. Create a new session after disposal. */\nexport class BrotherPrinterSession {\n constructor(options = {}) {\n var _a;\n _BrotherPrinterSession_instances.add(this);\n _BrotherPrinterSession_closed.set(this, false);\n _BrotherPrinterSession_printers.set(this, []);\n _BrotherPrinterSession_listeners.set(this, []);\n _BrotherPrinterSession_listening.set(this, void 0);\n _BrotherPrinterSession_disposal.set(this, void 0);\n _BrotherPrinterSession_storage.set(this, void 0);\n _BrotherPrinterSession_storageKey.set(this, void 0);\n __classPrivateFieldSet(this, _BrotherPrinterSession_storage, options.storage, \"f\");\n __classPrivateFieldSet(this, _BrotherPrinterSession_storageKey, `${(_a = options.storagePrefix) !== null && _a !== void 0 ? _a : 'brotherprint:'}last-printer`, \"f\");\n }\n get closed() {\n return __classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\");\n }\n get printers() {\n return __classPrivateFieldGet(this, _BrotherPrinterSession_printers, \"f\");\n }\n search(options, _model) {\n return __classPrivateFieldGet(this, _BrotherPrinterSession_instances, \"m\", _BrotherPrinterSession_discover).call(this, () => discoverPrinters(options, () => !__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\")));\n }\n prepare(options, model, previous) {\n return __classPrivateFieldGet(this, _BrotherPrinterSession_instances, \"m\", _BrotherPrinterSession_discover).call(this, async () => {\n const saved = previous === undefined ? await __classPrivateFieldGet(this, _BrotherPrinterSession_instances, \"m\", _BrotherPrinterSession_readSavedPrinter).call(this).catch(() => undefined) : previous;\n if (__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n return [];\n return preparePrinters(options, model, saved, () => !__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"));\n });\n }\n /** Forget the remembered connection. Storage removal errors propagate to the caller. */\n async clearSavedPrinter() {\n var _a;\n await ((_a = __classPrivateFieldGet(this, _BrotherPrinterSession_storage, \"f\")) === null || _a === void 0 ? void 0 : _a.remove(__classPrivateFieldGet(this, _BrotherPrinterSession_storageKey, \"f\")));\n }\n /** Register print notifications once. Callbacks stop immediately when disposed. */\n listen(events) {\n if (__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n return Promise.resolve();\n if (!__classPrivateFieldGet(this, _BrotherPrinterSession_listening, \"f\")) {\n __classPrivateFieldSet(this, _BrotherPrinterSession_listeners, [\n BrotherPrint.addListener(BrotherPrintEventsEnum.onPrint, () => {\n var _a;\n if (!__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n (_a = events.onPrint) === null || _a === void 0 ? void 0 : _a.call(events);\n }),\n BrotherPrint.addListener(BrotherPrintEventsEnum.onPrintError, (info) => {\n var _a;\n if (!__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n (_a = events.onPrintError) === null || _a === void 0 ? void 0 : _a.call(events, info);\n }),\n BrotherPrint.addListener(BrotherPrintEventsEnum.onPrintFailedCommunication, (info) => {\n var _a;\n if (!__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n (_a = events.onPrintFailedCommunication) === null || _a === void 0 ? void 0 : _a.call(events, info);\n }),\n ], \"f\");\n __classPrivateFieldSet(this, _BrotherPrinterSession_listening, Promise.all(__classPrivateFieldGet(this, _BrotherPrinterSession_listeners, \"f\")).then(() => undefined), \"f\");\n }\n return __classPrivateFieldGet(this, _BrotherPrinterSession_listening, \"f\");\n }\n /** A closed session cannot start another print. Already started native printing is awaited. */\n async printImage(options) {\n if (__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n return;\n if (__classPrivateFieldGet(this, _BrotherPrinterSession_storage, \"f\"))\n await __classPrivateFieldGet(this, _BrotherPrinterSession_instances, \"m\", _BrotherPrinterSession_savePrinter).call(this, options).catch(() => undefined);\n if (!__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n await BrotherPrint.printImage(options);\n }\n /** Invalidate pending work immediately, then remove this session's print listeners. */\n dispose() {\n var _a;\n __classPrivateFieldSet(this, _BrotherPrinterSession_closed, true, \"f\");\n __classPrivateFieldSet(this, _BrotherPrinterSession_printers, [], \"f\");\n __classPrivateFieldSet(this, _BrotherPrinterSession_disposal, (_a = __classPrivateFieldGet(this, _BrotherPrinterSession_disposal, \"f\")) !== null && _a !== void 0 ? _a : Promise.all(__classPrivateFieldGet(this, _BrotherPrinterSession_listeners, \"f\").map((listener) => listener.then((handle) => handle.remove()))).then(() => undefined), \"f\");\n return __classPrivateFieldGet(this, _BrotherPrinterSession_disposal, \"f\");\n }\n}\n_BrotherPrinterSession_closed = new WeakMap(), _BrotherPrinterSession_printers = new WeakMap(), _BrotherPrinterSession_listeners = new WeakMap(), _BrotherPrinterSession_listening = new WeakMap(), _BrotherPrinterSession_disposal = new WeakMap(), _BrotherPrinterSession_storage = new WeakMap(), _BrotherPrinterSession_storageKey = new WeakMap(), _BrotherPrinterSession_instances = new WeakSet(), _BrotherPrinterSession_readSavedPrinter = async function _BrotherPrinterSession_readSavedPrinter() {\n var _a;\n const value = await ((_a = __classPrivateFieldGet(this, _BrotherPrinterSession_storage, \"f\")) === null || _a === void 0 ? void 0 : _a.get(__classPrivateFieldGet(this, _BrotherPrinterSession_storageKey, \"f\")));\n if (!value)\n return undefined;\n const channel = JSON.parse(value);\n if (channel &&\n Object.values(BRLMPrinterPort).includes(channel.port) &&\n ['modelName', 'channelInfo', 'serialNumber', 'macAddress', 'nodeName', 'location'].every((key) => typeof channel[key] === 'string'))\n return channel;\n return undefined;\n}, _BrotherPrinterSession_savePrinter = async function _BrotherPrinterSession_savePrinter(options) {\n var _a;\n if (!__classPrivateFieldGet(this, _BrotherPrinterSession_storage, \"f\") || !options.port || !((_a = options.channelInfo) === null || _a === void 0 ? void 0 : _a.trim()))\n return;\n const found = __classPrivateFieldGet(this, _BrotherPrinterSession_printers, \"f\").find((printer) => printer.port === options.port && printer.channelInfo === options.channelInfo);\n const channel = Object.assign(Object.assign({ serialNumber: '', macAddress: '', nodeName: '', location: '' }, found), { port: options.port, channelInfo: options.channelInfo, modelName: options.modelName });\n await __classPrivateFieldGet(this, _BrotherPrinterSession_storage, \"f\").set(__classPrivateFieldGet(this, _BrotherPrinterSession_storageKey, \"f\"), JSON.stringify(channel));\n}, _BrotherPrinterSession_discover = function _BrotherPrinterSession_discover(run) {\n return queueConnection(async () => {\n if (__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n return [];\n __classPrivateFieldSet(this, _BrotherPrinterSession_printers, [], \"f\");\n return run().then((printers) => {\n if (__classPrivateFieldGet(this, _BrotherPrinterSession_closed, \"f\"))\n return [];\n __classPrivateFieldSet(this, _BrotherPrinterSession_printers, printers, \"f\");\n return printers;\n });\n });\n};\n//# sourceMappingURL=index.js.map"],"names":["BRLMPrinterPort","BRLMPrinterCustomPaperUnit","BRLMPrinterCustomPaperType","BRLMPrinterModelName","BRLMPrinterLabelName","BRLMPrinterImageRotation","BRLMPrinterScaleMode","BRLMPrinterHalftone","BRLMPrinterVerticalAlignment","BRLMPrinterHorizontalAlignment","BRLMPrinterCompressMode","BRLMPrinterPrintQuality","BrotherPrintEventsEnum","Model","Port","Capacitor","WebPlugin","this","registerPlugin"],"mappings":"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"}
|
package/dist/plugin.js
CHANGED
|
@@ -269,8 +269,8 @@ var capacitorExample = (function (exports, core) {
|
|
|
269
269
|
return result;
|
|
270
270
|
}
|
|
271
271
|
/** Collect discovery results, waiting for earlier helper calls to finish. */
|
|
272
|
-
function searchBrotherPrinters(options,
|
|
273
|
-
return queueConnection(() => discoverPrinters(options
|
|
272
|
+
function searchBrotherPrinters(options, _model) {
|
|
273
|
+
return queueConnection(() => discoverPrinters(options));
|
|
274
274
|
}
|
|
275
275
|
/**
|
|
276
276
|
* Reuse a matching, available previous channel; otherwise discover printers.
|
|
@@ -290,13 +290,11 @@ var capacitorExample = (function (exports, core) {
|
|
|
290
290
|
return result;
|
|
291
291
|
});
|
|
292
292
|
}
|
|
293
|
-
async function discoverPrinters(options,
|
|
293
|
+
async function discoverPrinters(options, active = () => true) {
|
|
294
294
|
const printers = [];
|
|
295
295
|
const listener = await BrotherPrint.addListener(exports.BrotherPrintEventsEnum.onPrinterAvailable, (printer) => {
|
|
296
296
|
if (printer.port !== options.port)
|
|
297
297
|
return;
|
|
298
|
-
if (printer.port !== exports.BRLMPrinterPort.usb && model !== undefined && brotherPrinterModel(printer.modelName) !== model)
|
|
299
|
-
return;
|
|
300
298
|
const index = printers.findIndex((current) => current.port === printer.port && current.channelInfo === printer.channelInfo);
|
|
301
299
|
if (index < 0)
|
|
302
300
|
printers.push(printer);
|
|
@@ -315,7 +313,7 @@ var capacitorExample = (function (exports, core) {
|
|
|
315
313
|
if (available.result)
|
|
316
314
|
return [previous];
|
|
317
315
|
}
|
|
318
|
-
return active() ? discoverPrinters(options,
|
|
316
|
+
return active() ? discoverPrinters(options, active) : [];
|
|
319
317
|
}
|
|
320
318
|
/** One print screen's discovery results and event subscriptions. Create a new session after disposal. */
|
|
321
319
|
class BrotherPrinterSession {
|
|
@@ -338,8 +336,8 @@ var capacitorExample = (function (exports, core) {
|
|
|
338
336
|
get printers() {
|
|
339
337
|
return __classPrivateFieldGet(this, _BrotherPrinterSession_printers, "f");
|
|
340
338
|
}
|
|
341
|
-
search(options,
|
|
342
|
-
return __classPrivateFieldGet(this, _BrotherPrinterSession_instances, "m", _BrotherPrinterSession_discover).call(this, () => discoverPrinters(options,
|
|
339
|
+
search(options, _model) {
|
|
340
|
+
return __classPrivateFieldGet(this, _BrotherPrinterSession_instances, "m", _BrotherPrinterSession_discover).call(this, () => discoverPrinters(options, () => !__classPrivateFieldGet(this, _BrotherPrinterSession_closed, "f")));
|
|
343
341
|
}
|
|
344
342
|
prepare(options, model, previous) {
|
|
345
343
|
return __classPrivateFieldGet(this, _BrotherPrinterSession_instances, "m", _BrotherPrinterSession_discover).call(this, async () => {
|