h3-print 2.0.2 → 3.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.
@@ -2,7 +2,7 @@ apply plugin: 'com.android.library'
2
2
  apply plugin: 'kotlin-android'
3
3
 
4
4
  group = 'expo.modules.h3print'
5
- version = '2.0.0'
5
+ version = '3.0.0'
6
6
 
7
7
  buildscript {
8
8
  ext.safeExtGet = { prop, fallback ->
@@ -27,7 +27,7 @@ android {
27
27
  minSdkVersion safeExtGet("minSdkVersion", 24)
28
28
  targetSdkVersion safeExtGet("targetSdkVersion", 34)
29
29
  versionCode 1
30
- versionName "2.0.0"
30
+ versionName "3.0.0"
31
31
  }
32
32
 
33
33
  buildTypes {
@@ -70,5 +70,5 @@ dependencies {
70
70
  implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.22"
71
71
  implementation "androidx.core:core-ktx:1.12.0"
72
72
  implementation "androidx.appcompat:appcompat:1.6.1"
73
- implementation "expo.modules:expo-modules-core:1.12.0"
73
+ implementation "expo.modules:expo-modules-core:3.0.29"
74
74
  }
@@ -1,4 +1,5 @@
1
1
  import type { H3PrintModuleEvents } from './H3Print.types';
2
+ import { type EventSubscription } from 'expo-modules-core';
2
3
  interface H3PrintModuleInterface {
3
4
  printHtmlAsPdf(html: string, options?: Record<string, unknown> | null): Promise<import('./H3Print.types').PrintResult>;
4
5
  generatePdfFromHtml(html: string, options?: Record<string, unknown> | null): Promise<import('./H3Print.types').PrintResult>;
@@ -12,7 +13,7 @@ interface H3PrintModuleInterface {
12
13
  getAllPrintCapablePackages(): Promise<import('./H3Print.types').PrintPackageInfo[]>;
13
14
  cleanupTempFiles(): Promise<import('./H3Print.types').CleanupResult>;
14
15
  getModuleInfo(): import('./H3Print.types').ModuleInfo;
15
- addListener(eventName: keyof H3PrintModuleEvents, listener: (...args: unknown[]) => void): void;
16
+ addListener(eventName: keyof H3PrintModuleEvents, listener: (...args: unknown[]) => void): EventSubscription;
16
17
  removeListeners(count: number): void;
17
18
  }
18
19
  declare const _default: H3PrintModuleInterface;
@@ -1 +1 @@
1
- {"version":3,"file":"H3PrintModule.d.ts","sourceRoot":"","sources":["../src/H3PrintModule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,UAAU,sBAAsB;IAE9B,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAGvH,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAG5H,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAGxG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAGrG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAGtG,eAAe,CACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAGlD,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAGlD,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;IAG5G,iBAAiB,IAAI,OAAO,CAAC,OAAO,iBAAiB,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAG3E,0BAA0B,IAAI,OAAO,CAAC,OAAO,iBAAiB,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAGpF,gBAAgB,IAAI,OAAO,CAAC,OAAO,iBAAiB,EAAE,aAAa,CAAC,CAAC;IAGrE,aAAa,IAAI,OAAO,iBAAiB,EAAE,UAAU,CAAC;IAGtD,WAAW,CAAC,SAAS,EAAE,MAAM,mBAAmB,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAChG,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;;AAGD,wBAAsE"}
1
+ {"version":3,"file":"H3PrintModule.d.ts","sourceRoot":"","sources":["../src/H3PrintModule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,UAAU,sBAAsB;IAE9B,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAGvH,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAG5H,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAGxG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAGrG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAGtG,eAAe,CACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAGlD,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAGlD,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;IAG5G,iBAAiB,IAAI,OAAO,CAAC,OAAO,iBAAiB,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAG3E,0BAA0B,IAAI,OAAO,CAAC,OAAO,iBAAiB,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAGpF,gBAAgB,IAAI,OAAO,CAAC,OAAO,iBAAiB,EAAE,aAAa,CAAC,CAAC;IAGrE,aAAa,IAAI,OAAO,iBAAiB,EAAE,UAAU,CAAC;IAGtD,WAAW,CAAC,SAAS,EAAE,MAAM,mBAAmB,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,iBAAiB,CAAC;IAC7G,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;;AAGD,wBAAsE"}
@@ -1 +1 @@
1
- {"version":3,"file":"H3PrintModule.js","sourceRoot":"","sources":["../src/H3PrintModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAsD3C,2BAA2B;AAC3B,eAAe,mBAAmB,CAAyB,SAAS,CAAC,CAAC","sourcesContent":["import { requireNativeModule } from 'expo';\nimport type { H3PrintModuleEvents } from './H3Print.types';\n\n// Define the module interface without extending NativeModule\ninterface H3PrintModuleInterface {\n // Main HTML to PDF printing\n printHtmlAsPdf(html: string, options?: Record<string, unknown> | null): Promise<import('./H3Print.types').PrintResult>;\n\n // Generate PDF without printing\n generatePdfFromHtml(html: string, options?: Record<string, unknown> | null): Promise<import('./H3Print.types').PrintResult>;\n\n // Print existing PDF file\n printPdf(filePath: string, packageName?: string | null): Promise<import('./H3Print.types').PrintResult>;\n\n // Print plain text\n printText(text: string, packageName?: string | null): Promise<import('./H3Print.types').PrintResult>;\n\n // Print raw bytes (ESC/POS)\n printRaw(data: number[], packageName?: string | null): Promise<import('./H3Print.types').PrintResult>;\n\n // Print file using path\n printFileByPath(\n filePath: string,\n mimeType?: string | null,\n packageName?: string | null\n ): Promise<import('./H3Print.types').PrintResult>;\n\n // Print file using URI\n printFileByUri(\n filePath: string,\n mimeType?: string | null,\n packageName?: string | null\n ): Promise<import('./H3Print.types').PrintResult>;\n\n // Check print service availability\n isPrintServiceAvailable(packageName?: string | null): Promise<import('./H3Print.types').PrintServiceStatus>;\n\n // List print packages\n listPrintPackages(): Promise<import('./H3Print.types').PrintPackageInfo[]>;\n\n // Get all print-capable packages\n getAllPrintCapablePackages(): Promise<import('./H3Print.types').PrintPackageInfo[]>;\n\n // Cleanup temporary files\n cleanupTempFiles(): Promise<import('./H3Print.types').CleanupResult>;\n\n // Get module info (synchronous)\n getModuleInfo(): import('./H3Print.types').ModuleInfo;\n\n // Event emitter methods (provided by native module)\n addListener(eventName: keyof H3PrintModuleEvents, listener: (...args: unknown[]) => void): void;\n removeListeners(count: number): void;\n}\n\n// Export the native module\nexport default requireNativeModule<H3PrintModuleInterface>('H3Print');"]}
1
+ {"version":3,"file":"H3PrintModule.js","sourceRoot":"","sources":["../src/H3PrintModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAuD3C,2BAA2B;AAC3B,eAAe,mBAAmB,CAAyB,SAAS,CAAC,CAAC","sourcesContent":["import { requireNativeModule } from 'expo';\nimport type { H3PrintModuleEvents } from './H3Print.types';\nimport { type EventSubscription } from 'expo-modules-core';\n\n// Define the module interface without extending NativeModule\ninterface H3PrintModuleInterface {\n // Main HTML to PDF printing\n printHtmlAsPdf(html: string, options?: Record<string, unknown> | null): Promise<import('./H3Print.types').PrintResult>;\n\n // Generate PDF without printing\n generatePdfFromHtml(html: string, options?: Record<string, unknown> | null): Promise<import('./H3Print.types').PrintResult>;\n\n // Print existing PDF file\n printPdf(filePath: string, packageName?: string | null): Promise<import('./H3Print.types').PrintResult>;\n\n // Print plain text\n printText(text: string, packageName?: string | null): Promise<import('./H3Print.types').PrintResult>;\n\n // Print raw bytes (ESC/POS)\n printRaw(data: number[], packageName?: string | null): Promise<import('./H3Print.types').PrintResult>;\n\n // Print file using path\n printFileByPath(\n filePath: string,\n mimeType?: string | null,\n packageName?: string | null\n ): Promise<import('./H3Print.types').PrintResult>;\n\n // Print file using URI\n printFileByUri(\n filePath: string,\n mimeType?: string | null,\n packageName?: string | null\n ): Promise<import('./H3Print.types').PrintResult>;\n\n // Check print service availability\n isPrintServiceAvailable(packageName?: string | null): Promise<import('./H3Print.types').PrintServiceStatus>;\n\n // List print packages\n listPrintPackages(): Promise<import('./H3Print.types').PrintPackageInfo[]>;\n\n // Get all print-capable packages\n getAllPrintCapablePackages(): Promise<import('./H3Print.types').PrintPackageInfo[]>;\n\n // Cleanup temporary files\n cleanupTempFiles(): Promise<import('./H3Print.types').CleanupResult>;\n\n // Get module info (synchronous)\n getModuleInfo(): import('./H3Print.types').ModuleInfo;\n\n // Event emitter methods (provided by native module)\n addListener(eventName: keyof H3PrintModuleEvents, listener: (...args: unknown[]) => void): EventSubscription;\n removeListeners(count: number): void;\n}\n\n// Export the native module\nexport default requireNativeModule<H3PrintModuleInterface>('H3Print');"]}
package/build/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type Subscription } from 'expo-modules-core';
1
+ import { type EventSubscription } from 'expo-modules-core';
2
2
  import type { PrintResult, PrintServiceStatus, PrintPackageInfo, PdfOptions, PrintHtmlOptions, CleanupResult, ModuleInfo, EscPosCommand, ReceiptTemplateData } from './H3Print.types';
3
3
  export type { PrintResult, PrintServiceStatus, PrintPackageInfo, PdfOptions, PrintHtmlOptions, CleanupResult, ModuleInfo, EscPosCommand, ReceiptTemplateData, };
4
4
  /**
@@ -6,19 +6,19 @@ export type { PrintResult, PrintServiceStatus, PrintPackageInfo, PdfOptions, Pri
6
6
  */
7
7
  export declare function addPrintSuccessListener(listener: (event: {
8
8
  pdfPath: string;
9
- }) => void): Subscription;
9
+ }) => void): EventSubscription;
10
10
  /**
11
11
  * Subscribe to print error events
12
12
  */
13
13
  export declare function addPrintErrorListener(listener: (event: {
14
14
  error: string;
15
- }) => void): Subscription;
15
+ }) => void): EventSubscription;
16
16
  /**
17
17
  * Subscribe to PDF generation events
18
18
  */
19
19
  export declare function addPdfGeneratedListener(listener: (event: {
20
20
  pdfPath: string;
21
- }) => void): Subscription;
21
+ }) => void): EventSubscription;
22
22
  /**
23
23
  * Print HTML content as PDF (RECOMMENDED)
24
24
  * Converts HTML to PDF and sends to the silent print service
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/build/index.js CHANGED
@@ -1,26 +1,24 @@
1
- import { EventEmitter } from 'expo-modules-core';
2
1
  import H3PrintModule from './H3PrintModule';
3
2
  // ============================================================
4
- // Event Emitter Setup
3
+ // Event Listeners (direct on native module – no wrapper needed)
5
4
  // ============================================================
6
- const emitter = new EventEmitter(H3PrintModule);
7
5
  /**
8
6
  * Subscribe to print success events
9
7
  */
10
8
  export function addPrintSuccessListener(listener) {
11
- return emitter.addListener('onPrintSuccess', listener);
9
+ return H3PrintModule.addListener('onPrintSuccess', listener);
12
10
  }
13
11
  /**
14
12
  * Subscribe to print error events
15
13
  */
16
14
  export function addPrintErrorListener(listener) {
17
- return emitter.addListener('onPrintError', listener);
15
+ return H3PrintModule.addListener('onPrintError', listener);
18
16
  }
19
17
  /**
20
18
  * Subscribe to PDF generation events
21
19
  */
22
20
  export function addPdfGeneratedListener(listener) {
23
- return emitter.addListener('onPdfGenerated', listener);
21
+ return H3PrintModule.addListener('onPdfGenerated', listener);
24
22
  }
25
23
  // ============================================================
26
24
  // Main Print Functions
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { EventEmitter, type Subscription } from 'expo-modules-core';\nimport H3PrintModule from './H3PrintModule';\nimport type {\n PrintResult,\n PrintServiceStatus,\n PrintPackageInfo,\n PdfOptions,\n PrintHtmlOptions,\n CleanupResult,\n ModuleInfo,\n EscPosCommand,\n ReceiptTemplateData,\n} from './H3Print.types';\n\n// Re-export types\nexport type {\n PrintResult,\n PrintServiceStatus,\n PrintPackageInfo,\n PdfOptions,\n PrintHtmlOptions,\n CleanupResult,\n ModuleInfo,\n EscPosCommand,\n ReceiptTemplateData,\n};\n\n// ============================================================\n// Event Emitter Setup\n// ============================================================\n\nconst emitter = new EventEmitter(H3PrintModule as any);\n\n/**\n * Subscribe to print success events\n */\nexport function addPrintSuccessListener(\n listener: (event: { pdfPath: string }) => void\n): Subscription {\n return emitter.addListener('onPrintSuccess', listener);\n}\n\n/**\n * Subscribe to print error events\n */\nexport function addPrintErrorListener(\n listener: (event: { error: string }) => void\n): Subscription {\n return emitter.addListener('onPrintError', listener);\n}\n\n/**\n * Subscribe to PDF generation events\n */\nexport function addPdfGeneratedListener(\n listener: (event: { pdfPath: string }) => void\n): Subscription {\n return emitter.addListener('onPdfGenerated', listener);\n}\n\n// ============================================================\n// Main Print Functions\n// ============================================================\n\n/**\n * Print HTML content as PDF (RECOMMENDED)\n * Converts HTML to PDF and sends to the silent print service\n *\n * @param html - HTML string to print\n * @param options - Print options\n * @returns Promise with print result\n *\n * @example\n * ```typescript\n * const result = await printHtmlAsPdf('<h1>Hello</h1>', {\n * pageWidth: 384,\n * packageName: 'com.bld.settings.print'\n * });\n * ```\n */\nexport async function printHtmlAsPdf(\n html: string,\n options?: PrintHtmlOptions\n): Promise<PrintResult> {\n return H3PrintModule.printHtmlAsPdf(html, options ?? null);\n}\n\n/**\n * Generate PDF from HTML without printing\n * Useful for preview or saving\n *\n * @param html - HTML string to convert\n * @param options - PDF generation options\n * @returns Promise with PDF file path\n */\nexport async function generatePdfFromHtml(\n html: string,\n options?: PdfOptions\n): Promise<PrintResult> {\n return H3PrintModule.generatePdfFromHtml(html, options ?? null);\n}\n\n/**\n * Print an existing PDF file\n *\n * @param filePath - Path to the PDF file\n * @param packageName - Optional print package name\n */\nexport async function printPdf(\n filePath: string,\n packageName?: string\n): Promise<PrintResult> {\n return H3PrintModule.printPdf(filePath, packageName ?? null);\n}\n\n/**\n * Print plain text\n *\n * @param text - Text to print\n * @param packageName - Optional print package name\n */\nexport async function printText(\n text: string,\n packageName?: string\n): Promise<PrintResult> {\n return H3PrintModule.printText(text, packageName ?? null);\n}\n\n/**\n * Print raw bytes (ESC/POS commands for thermal printers)\n *\n * @param data - Array of byte values\n * @param packageName - Optional print package name\n */\nexport async function printRaw(\n data: number[],\n packageName?: string\n): Promise<PrintResult> {\n return H3PrintModule.printRaw(data, packageName ?? null);\n}\n\n/**\n * Print file using file path in EXTRA_TEXT\n * Uses the intent pattern you discovered\n *\n * @param filePath - Absolute path to the file\n * @param mimeType - MIME type (default: application/pdf)\n * @param packageName - Optional print package name\n */\nexport async function printFileByPath(\n filePath: string,\n mimeType?: string,\n packageName?: string\n): Promise<PrintResult> {\n return H3PrintModule.printFileByPath(\n filePath,\n mimeType ?? null,\n packageName ?? null\n );\n}\n\n/**\n * Print file using FileProvider URI\n *\n * @param filePath - Path to the file\n * @param mimeType - MIME type\n * @param packageName - Optional print package name\n */\nexport async function printFileByUri(\n filePath: string,\n mimeType?: string,\n packageName?: string\n): Promise<PrintResult> {\n return H3PrintModule.printFileByUri(\n filePath,\n mimeType ?? null,\n packageName ?? null\n );\n}\n\n// ============================================================\n// Utility Functions\n// ============================================================\n\n/**\n * Check if the print service is available\n *\n * @param packageName - Package name to check (defaults to com.bld.settings.print)\n */\nexport async function isPrintServiceAvailable(\n packageName?: string\n): Promise<PrintServiceStatus> {\n return H3PrintModule.isPrintServiceAvailable(packageName ?? null);\n}\n\n/**\n * List available print-related packages\n */\nexport async function listPrintPackages(): Promise<PrintPackageInfo[]> {\n return H3PrintModule.listPrintPackages();\n}\n\n/**\n * Get all packages capable of handling print intents\n */\nexport async function getAllPrintCapablePackages(): Promise<PrintPackageInfo[]> {\n return H3PrintModule.getAllPrintCapablePackages();\n}\n\n/**\n * Clean up temporary print files\n */\nexport async function cleanupTempFiles(): Promise<CleanupResult> {\n return H3PrintModule.cleanupTempFiles();\n}\n\n/**\n * Get module information\n */\nexport function getModuleInfo(): ModuleInfo {\n return H3PrintModule.getModuleInfo();\n}\n\n// ============================================================\n// ESC/POS Commands for Thermal Printers\n// ============================================================\n\nexport const ESC_POS = {\n // Initialize printer\n INIT: [0x1b, 0x40] as EscPosCommand,\n\n // Line feed\n LF: [0x0a] as EscPosCommand,\n\n // Carriage return\n CR: [0x0d] as EscPosCommand,\n\n // Cut paper (full cut)\n CUT_FULL: [0x1d, 0x56, 0x00] as EscPosCommand,\n\n // Cut paper (partial cut)\n CUT_PARTIAL: [0x1d, 0x56, 0x01] as EscPosCommand,\n\n // Feed and cut\n FEED_AND_CUT: [0x1d, 0x56, 0x42, 0x00] as EscPosCommand,\n\n // Bold on\n BOLD_ON: [0x1b, 0x45, 0x01] as EscPosCommand,\n\n // Bold off\n BOLD_OFF: [0x1b, 0x45, 0x00] as EscPosCommand,\n\n // Underline on (1 dot)\n UNDERLINE_ON: [0x1b, 0x2d, 0x01] as EscPosCommand,\n\n // Underline on (2 dots)\n UNDERLINE_ON_2: [0x1b, 0x2d, 0x02] as EscPosCommand,\n\n // Underline off\n UNDERLINE_OFF: [0x1b, 0x2d, 0x00] as EscPosCommand,\n\n // Align left\n ALIGN_LEFT: [0x1b, 0x61, 0x00] as EscPosCommand,\n\n // Align center\n ALIGN_CENTER: [0x1b, 0x61, 0x01] as EscPosCommand,\n\n // Align right\n ALIGN_RIGHT: [0x1b, 0x61, 0x02] as EscPosCommand,\n\n // Double height on\n DOUBLE_HEIGHT_ON: [0x1b, 0x21, 0x10] as EscPosCommand,\n\n // Double width on\n DOUBLE_WIDTH_ON: [0x1b, 0x21, 0x20] as EscPosCommand,\n\n // Double height and width on\n DOUBLE_SIZE_ON: [0x1b, 0x21, 0x30] as EscPosCommand,\n\n // Normal size\n NORMAL_SIZE: [0x1b, 0x21, 0x00] as EscPosCommand,\n\n // Font A (12x24)\n FONT_A: [0x1b, 0x4d, 0x00] as EscPosCommand,\n\n // Font B (9x17)\n FONT_B: [0x1b, 0x4d, 0x01] as EscPosCommand,\n\n // Invert on (white on black)\n INVERT_ON: [0x1d, 0x42, 0x01] as EscPosCommand,\n\n // Invert off\n INVERT_OFF: [0x1d, 0x42, 0x00] as EscPosCommand,\n\n // Set line spacing (n/180 inch)\n lineSpacing: (n: number): EscPosCommand => [0x1b, 0x33, n],\n\n // Default line spacing\n LINE_SPACING_DEFAULT: [0x1b, 0x32] as EscPosCommand,\n\n // Feed n lines\n feedLines: (n: number): EscPosCommand => [0x1b, 0x64, n],\n\n // Set character size (0-7 for width, 0-7 for height)\n setCharSize: (width: number, height: number): EscPosCommand => [\n 0x1d,\n 0x21,\n ((width & 0x07) << 4) | (height & 0x07),\n ],\n\n // Convert text to bytes\n textToBytes: (text: string): number[] => {\n const bytes: number[] = [];\n for (let i = 0; i < text.length; i++) {\n const charCode = text.charCodeAt(i);\n if (charCode < 256) {\n bytes.push(charCode);\n } else {\n // Handle multi-byte characters (simplified - just use ?)\n bytes.push(0x3f);\n }\n }\n return bytes;\n },\n\n // Build command sequence from multiple commands\n buildCommand: (...commands: (EscPosCommand | number[])[]): number[] => {\n return commands.flat();\n },\n\n // Create horizontal line\n horizontalLine: (char: string = '-', width: number = 32): number[] => {\n return ESC_POS.textToBytes(char.repeat(width) + '\\n');\n },\n\n // Create formatted line (left text + right text)\n formattedLine: (\n left: string,\n right: string,\n totalWidth: number = 32,\n fillChar: string = ' '\n ): number[] => {\n const spaces = Math.max(1, totalWidth - left.length - right.length);\n return ESC_POS.textToBytes(left + fillChar.repeat(spaces) + right + '\\n');\n },\n\n // Center text\n centerText: (text: string, width: number = 32): number[] => {\n const padding = Math.max(0, Math.floor((width - text.length) / 2));\n return ESC_POS.textToBytes(' '.repeat(padding) + text + '\\n');\n },\n};\n\n// ============================================================\n// High-Level Helper Functions\n// ============================================================\n\n/**\n * Print a receipt from template data\n * This is a convenience function that handles the full flow\n *\n * @param templateData - Receipt data\n * @param generateHtml - Function to generate HTML from template data\n * @param options - Print options\n */\nexport async function printReceipt<T>(\n templateData: T,\n generateHtml: (data: T) => string,\n options?: PrintHtmlOptions\n): Promise<PrintResult> {\n const html = generateHtml(templateData);\n return printHtmlAsPdf(html, options);\n}\n\n/**\n * Print with automatic fallback\n * Tries different methods until one succeeds\n *\n * @param html - HTML to print\n * @param options - Print options\n */\nexport async function printWithFallback(\n html: string,\n options?: PrintHtmlOptions\n): Promise<PrintResult> {\n // Try 1: HTML to PDF\n try {\n const result = await printHtmlAsPdf(html, options);\n if (result.success) return result;\n } catch (e) {\n console.log('HTML to PDF failed, trying alternatives...');\n }\n\n // Try 2: Generate PDF first, then print by path\n try {\n const pdfResult = await generatePdfFromHtml(html, options);\n if (pdfResult.success && pdfResult.pdfPath) {\n const printResult = await printFileByPath(\n pdfResult.pdfPath,\n 'application/pdf',\n options?.packageName\n );\n if (printResult.success) return printResult;\n }\n } catch (e) {\n console.log('Generate + print by path failed...');\n }\n\n // Try 3: Generate PDF and print by URI\n try {\n const pdfResult = await generatePdfFromHtml(html, options);\n if (pdfResult.success && pdfResult.pdfPath) {\n return await printFileByUri(\n pdfResult.pdfPath,\n 'application/pdf',\n options?.packageName\n );\n }\n } catch (e) {\n console.log('Generate + print by URI failed...');\n }\n\n return {\n success: false,\n message: 'All print methods failed',\n };\n}\n\n/**\n * Discover available print services on the device\n */\nexport async function discoverPrintServices(): Promise<{\n defaultAvailable: boolean;\n defaultPackage: string;\n allPackages: PrintPackageInfo[];\n}> {\n const [status, packages] = await Promise.all([\n isPrintServiceAvailable(),\n getAllPrintCapablePackages(),\n ]);\n\n return {\n defaultAvailable: status.available,\n defaultPackage: status.packageName,\n allPackages: packages,\n };\n}\n\n// ============================================================\n// Default Export\n// ============================================================\n\nexport default {\n // Main functions\n printHtmlAsPdf,\n generatePdfFromHtml,\n printPdf,\n printText,\n printRaw,\n printFileByPath,\n printFileByUri,\n\n // Utility functions\n isPrintServiceAvailable,\n listPrintPackages,\n getAllPrintCapablePackages,\n cleanupTempFiles,\n getModuleInfo,\n\n // Helper functions\n printReceipt,\n printWithFallback,\n discoverPrintServices,\n\n // Event listeners\n addPrintSuccessListener,\n addPrintErrorListener,\n addPdfGeneratedListener,\n\n // ESC/POS commands\n ESC_POS,\n};"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { type EventSubscription } from 'expo-modules-core';\nimport H3PrintModule from './H3PrintModule';\nimport type {\n PrintResult,\n PrintServiceStatus,\n PrintPackageInfo,\n PdfOptions,\n PrintHtmlOptions,\n CleanupResult,\n ModuleInfo,\n EscPosCommand,\n ReceiptTemplateData,\n} from './H3Print.types';\n\n// Re-export types\nexport type {\n PrintResult,\n PrintServiceStatus,\n PrintPackageInfo,\n PdfOptions,\n PrintHtmlOptions,\n CleanupResult,\n ModuleInfo,\n EscPosCommand,\n ReceiptTemplateData,\n};\n\n// ============================================================\n// Event Listeners (direct on native module – no wrapper needed)\n// ============================================================\n\n/**\n * Subscribe to print success events\n */\nexport function addPrintSuccessListener(\n listener: (event: { pdfPath: string }) => void\n): EventSubscription {\n return H3PrintModule.addListener('onPrintSuccess', listener as any);\n}\n\n/**\n * Subscribe to print error events\n */\nexport function addPrintErrorListener(\n listener: (event: { error: string }) => void\n): EventSubscription {\n return H3PrintModule.addListener('onPrintError', listener as any);\n}\n\n/**\n * Subscribe to PDF generation events\n */\nexport function addPdfGeneratedListener(\n listener: (event: { pdfPath: string }) => void\n): EventSubscription {\n return H3PrintModule.addListener('onPdfGenerated', listener as any);\n}\n\n// ============================================================\n// Main Print Functions\n// ============================================================\n\n/**\n * Print HTML content as PDF (RECOMMENDED)\n * Converts HTML to PDF and sends to the silent print service\n *\n * @param html - HTML string to print\n * @param options - Print options\n * @returns Promise with print result\n *\n * @example\n * ```typescript\n * const result = await printHtmlAsPdf('<h1>Hello</h1>', {\n * pageWidth: 384,\n * packageName: 'com.bld.settings.print'\n * });\n * ```\n */\nexport async function printHtmlAsPdf(\n html: string,\n options?: PrintHtmlOptions\n): Promise<PrintResult> {\n return H3PrintModule.printHtmlAsPdf(html, options ?? null);\n}\n\n/**\n * Generate PDF from HTML without printing\n * Useful for preview or saving\n *\n * @param html - HTML string to convert\n * @param options - PDF generation options\n * @returns Promise with PDF file path\n */\nexport async function generatePdfFromHtml(\n html: string,\n options?: PdfOptions\n): Promise<PrintResult> {\n return H3PrintModule.generatePdfFromHtml(html, options ?? null);\n}\n\n/**\n * Print an existing PDF file\n *\n * @param filePath - Path to the PDF file\n * @param packageName - Optional print package name\n */\nexport async function printPdf(\n filePath: string,\n packageName?: string\n): Promise<PrintResult> {\n return H3PrintModule.printPdf(filePath, packageName ?? null);\n}\n\n/**\n * Print plain text\n *\n * @param text - Text to print\n * @param packageName - Optional print package name\n */\nexport async function printText(\n text: string,\n packageName?: string\n): Promise<PrintResult> {\n return H3PrintModule.printText(text, packageName ?? null);\n}\n\n/**\n * Print raw bytes (ESC/POS commands for thermal printers)\n *\n * @param data - Array of byte values\n * @param packageName - Optional print package name\n */\nexport async function printRaw(\n data: number[],\n packageName?: string\n): Promise<PrintResult> {\n return H3PrintModule.printRaw(data, packageName ?? null);\n}\n\n/**\n * Print file using file path in EXTRA_TEXT\n * Uses the intent pattern you discovered\n *\n * @param filePath - Absolute path to the file\n * @param mimeType - MIME type (default: application/pdf)\n * @param packageName - Optional print package name\n */\nexport async function printFileByPath(\n filePath: string,\n mimeType?: string,\n packageName?: string\n): Promise<PrintResult> {\n return H3PrintModule.printFileByPath(\n filePath,\n mimeType ?? null,\n packageName ?? null\n );\n}\n\n/**\n * Print file using FileProvider URI\n *\n * @param filePath - Path to the file\n * @param mimeType - MIME type\n * @param packageName - Optional print package name\n */\nexport async function printFileByUri(\n filePath: string,\n mimeType?: string,\n packageName?: string\n): Promise<PrintResult> {\n return H3PrintModule.printFileByUri(\n filePath,\n mimeType ?? null,\n packageName ?? null\n );\n}\n\n// ============================================================\n// Utility Functions\n// ============================================================\n\n/**\n * Check if the print service is available\n *\n * @param packageName - Package name to check (defaults to com.bld.settings.print)\n */\nexport async function isPrintServiceAvailable(\n packageName?: string\n): Promise<PrintServiceStatus> {\n return H3PrintModule.isPrintServiceAvailable(packageName ?? null);\n}\n\n/**\n * List available print-related packages\n */\nexport async function listPrintPackages(): Promise<PrintPackageInfo[]> {\n return H3PrintModule.listPrintPackages();\n}\n\n/**\n * Get all packages capable of handling print intents\n */\nexport async function getAllPrintCapablePackages(): Promise<PrintPackageInfo[]> {\n return H3PrintModule.getAllPrintCapablePackages();\n}\n\n/**\n * Clean up temporary print files\n */\nexport async function cleanupTempFiles(): Promise<CleanupResult> {\n return H3PrintModule.cleanupTempFiles();\n}\n\n/**\n * Get module information\n */\nexport function getModuleInfo(): ModuleInfo {\n return H3PrintModule.getModuleInfo();\n}\n\n// ============================================================\n// ESC/POS Commands for Thermal Printers\n// ============================================================\n\nexport const ESC_POS = {\n // Initialize printer\n INIT: [0x1b, 0x40] as EscPosCommand,\n\n // Line feed\n LF: [0x0a] as EscPosCommand,\n\n // Carriage return\n CR: [0x0d] as EscPosCommand,\n\n // Cut paper (full cut)\n CUT_FULL: [0x1d, 0x56, 0x00] as EscPosCommand,\n\n // Cut paper (partial cut)\n CUT_PARTIAL: [0x1d, 0x56, 0x01] as EscPosCommand,\n\n // Feed and cut\n FEED_AND_CUT: [0x1d, 0x56, 0x42, 0x00] as EscPosCommand,\n\n // Bold on\n BOLD_ON: [0x1b, 0x45, 0x01] as EscPosCommand,\n\n // Bold off\n BOLD_OFF: [0x1b, 0x45, 0x00] as EscPosCommand,\n\n // Underline on (1 dot)\n UNDERLINE_ON: [0x1b, 0x2d, 0x01] as EscPosCommand,\n\n // Underline on (2 dots)\n UNDERLINE_ON_2: [0x1b, 0x2d, 0x02] as EscPosCommand,\n\n // Underline off\n UNDERLINE_OFF: [0x1b, 0x2d, 0x00] as EscPosCommand,\n\n // Align left\n ALIGN_LEFT: [0x1b, 0x61, 0x00] as EscPosCommand,\n\n // Align center\n ALIGN_CENTER: [0x1b, 0x61, 0x01] as EscPosCommand,\n\n // Align right\n ALIGN_RIGHT: [0x1b, 0x61, 0x02] as EscPosCommand,\n\n // Double height on\n DOUBLE_HEIGHT_ON: [0x1b, 0x21, 0x10] as EscPosCommand,\n\n // Double width on\n DOUBLE_WIDTH_ON: [0x1b, 0x21, 0x20] as EscPosCommand,\n\n // Double height and width on\n DOUBLE_SIZE_ON: [0x1b, 0x21, 0x30] as EscPosCommand,\n\n // Normal size\n NORMAL_SIZE: [0x1b, 0x21, 0x00] as EscPosCommand,\n\n // Font A (12x24)\n FONT_A: [0x1b, 0x4d, 0x00] as EscPosCommand,\n\n // Font B (9x17)\n FONT_B: [0x1b, 0x4d, 0x01] as EscPosCommand,\n\n // Invert on (white on black)\n INVERT_ON: [0x1d, 0x42, 0x01] as EscPosCommand,\n\n // Invert off\n INVERT_OFF: [0x1d, 0x42, 0x00] as EscPosCommand,\n\n // Set line spacing (n/180 inch)\n lineSpacing: (n: number): EscPosCommand => [0x1b, 0x33, n],\n\n // Default line spacing\n LINE_SPACING_DEFAULT: [0x1b, 0x32] as EscPosCommand,\n\n // Feed n lines\n feedLines: (n: number): EscPosCommand => [0x1b, 0x64, n],\n\n // Set character size (0-7 for width, 0-7 for height)\n setCharSize: (width: number, height: number): EscPosCommand => [\n 0x1d,\n 0x21,\n ((width & 0x07) << 4) | (height & 0x07),\n ],\n\n // Convert text to bytes\n textToBytes: (text: string): number[] => {\n const bytes: number[] = [];\n for (let i = 0; i < text.length; i++) {\n const charCode = text.charCodeAt(i);\n if (charCode < 256) {\n bytes.push(charCode);\n } else {\n // Handle multi-byte characters (simplified - just use ?)\n bytes.push(0x3f);\n }\n }\n return bytes;\n },\n\n // Build command sequence from multiple commands\n buildCommand: (...commands: (EscPosCommand | number[])[]): number[] => {\n return commands.flat();\n },\n\n // Create horizontal line\n horizontalLine: (char: string = '-', width: number = 32): number[] => {\n return ESC_POS.textToBytes(char.repeat(width) + '\\n');\n },\n\n // Create formatted line (left text + right text)\n formattedLine: (\n left: string,\n right: string,\n totalWidth: number = 32,\n fillChar: string = ' '\n ): number[] => {\n const spaces = Math.max(1, totalWidth - left.length - right.length);\n return ESC_POS.textToBytes(left + fillChar.repeat(spaces) + right + '\\n');\n },\n\n // Center text\n centerText: (text: string, width: number = 32): number[] => {\n const padding = Math.max(0, Math.floor((width - text.length) / 2));\n return ESC_POS.textToBytes(' '.repeat(padding) + text + '\\n');\n },\n};\n\n// ============================================================\n// High-Level Helper Functions\n// ============================================================\n\n/**\n * Print a receipt from template data\n * This is a convenience function that handles the full flow\n *\n * @param templateData - Receipt data\n * @param generateHtml - Function to generate HTML from template data\n * @param options - Print options\n */\nexport async function printReceipt<T>(\n templateData: T,\n generateHtml: (data: T) => string,\n options?: PrintHtmlOptions\n): Promise<PrintResult> {\n const html = generateHtml(templateData);\n return printHtmlAsPdf(html, options);\n}\n\n/**\n * Print with automatic fallback\n * Tries different methods until one succeeds\n *\n * @param html - HTML to print\n * @param options - Print options\n */\nexport async function printWithFallback(\n html: string,\n options?: PrintHtmlOptions\n): Promise<PrintResult> {\n // Try 1: HTML to PDF\n try {\n const result = await printHtmlAsPdf(html, options);\n if (result.success) return result;\n } catch (e) {\n console.log('HTML to PDF failed, trying alternatives...');\n }\n\n // Try 2: Generate PDF first, then print by path\n try {\n const pdfResult = await generatePdfFromHtml(html, options);\n if (pdfResult.success && pdfResult.pdfPath) {\n const printResult = await printFileByPath(\n pdfResult.pdfPath,\n 'application/pdf',\n options?.packageName\n );\n if (printResult.success) return printResult;\n }\n } catch (e) {\n console.log('Generate + print by path failed...');\n }\n\n // Try 3: Generate PDF and print by URI\n try {\n const pdfResult = await generatePdfFromHtml(html, options);\n if (pdfResult.success && pdfResult.pdfPath) {\n return await printFileByUri(\n pdfResult.pdfPath,\n 'application/pdf',\n options?.packageName\n );\n }\n } catch (e) {\n console.log('Generate + print by URI failed...');\n }\n\n return {\n success: false,\n message: 'All print methods failed',\n };\n}\n\n/**\n * Discover available print services on the device\n */\nexport async function discoverPrintServices(): Promise<{\n defaultAvailable: boolean;\n defaultPackage: string;\n allPackages: PrintPackageInfo[];\n}> {\n const [status, packages] = await Promise.all([\n isPrintServiceAvailable(),\n getAllPrintCapablePackages(),\n ]);\n\n return {\n defaultAvailable: status.available,\n defaultPackage: status.packageName,\n allPackages: packages,\n };\n}\n\n// ============================================================\n// Default Export\n// ============================================================\n\nexport default {\n // Main functions\n printHtmlAsPdf,\n generatePdfFromHtml,\n printPdf,\n printText,\n printRaw,\n printFileByPath,\n printFileByUri,\n\n // Utility functions\n isPrintServiceAvailable,\n listPrintPackages,\n getAllPrintCapablePackages,\n cleanupTempFiles,\n getModuleInfo,\n\n // Helper functions\n printReceipt,\n printWithFallback,\n discoverPrintServices,\n\n // Event listeners\n addPrintSuccessListener,\n addPrintErrorListener,\n addPdfGeneratedListener,\n\n // ESC/POS commands\n ESC_POS,\n};"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "h3-print",
3
- "version": "2.0.2",
3
+ "version": "3.0.0",
4
4
  "description": "Silent printing module for Expo Android - supports HTML to PDF conversion and direct thermal printing",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -42,7 +42,7 @@
42
42
  "devDependencies": {
43
43
  "@types/react": "~19.1.0",
44
44
  "expo-module-scripts": "^5.0.8",
45
- "expo-modules-core": "^1.12.0",
45
+ "expo-modules-core": "^3.0.0",
46
46
  "expo": "^54.0.27",
47
47
  "react-native": "0.81.5",
48
48
  "typescript": "^5.3.0"