1- /* global TextEncoder */
21import * as xmljs from 'xml-js' ;
32import { v4 as uuidv4 } from 'uuid' ;
3+ import crc32 from 'buffer-crc32' ;
44import { DocxExporter , exportSchemaToJson } from './exporter' ;
55import { createDocumentJson , addDefaultStylesIfMissing } from './v2/importer/docxImporter.js' ;
6- import { deobfuscateFont , getArrayBufferFromUrl , computeCrc32Hex } from './helpers.js' ;
6+ import { deobfuscateFont , getArrayBufferFromUrl } from './helpers.js' ;
77import { baseNumbering } from './v2/exporter/helpers/base-list.definitions.js' ;
88import { DEFAULT_CUSTOM_XML , DEFAULT_DOCX_DEFS } from './exporter-docx-defs.js' ;
99import {
@@ -758,8 +758,9 @@ class SuperConverter {
758758 */
759759 #generateIdentifierHash( ) {
760760 const combined = `${ this . documentGuid } |${ this . getDocumentCreatedTimestamp ( ) } ` ;
761- const data = new TextEncoder ( ) . encode ( combined ) ;
762- return `HASH-${ computeCrc32Hex ( data ) . toUpperCase ( ) } ` ;
761+ const buffer = Buffer . from ( combined , 'utf8' ) ;
762+ const hash = crc32 ( buffer ) ;
763+ return `HASH-${ hash . toString ( 'hex' ) . toUpperCase ( ) } ` ;
763764 }
764765
765766 /**
@@ -774,21 +775,21 @@ class SuperConverter {
774775 }
775776
776777 try {
777- let data ;
778+ let buffer ;
778779
779- if ( ArrayBuffer . isView ( this . fileSource ) ) {
780- const view = this . fileSource ;
781- data = new Uint8Array ( view . buffer , view . byteOffset , view . byteLength ) ;
780+ if ( Buffer . isBuffer ( this . fileSource ) ) {
781+ buffer = this . fileSource ;
782782 } else if ( this . fileSource instanceof ArrayBuffer ) {
783- data = new Uint8Array ( this . fileSource ) ;
783+ buffer = Buffer . from ( this . fileSource ) ;
784784 } else if ( this . fileSource instanceof Blob || this . fileSource instanceof File ) {
785785 const arrayBuffer = await this . fileSource . arrayBuffer ( ) ;
786- data = new Uint8Array ( arrayBuffer ) ;
786+ buffer = Buffer . from ( arrayBuffer ) ;
787787 } else {
788788 return `HASH-${ uuidv4 ( ) . replace ( / - / g, '' ) . substring ( 0 , 8 ) . toUpperCase ( ) } ` ;
789789 }
790790
791- return `HASH-${ computeCrc32Hex ( data ) . toUpperCase ( ) } ` ;
791+ const hash = crc32 ( buffer ) ;
792+ return `HASH-${ hash . toString ( 'hex' ) . toUpperCase ( ) } ` ;
792793 } catch ( e ) {
793794 console . warn ( '[super-converter] Could not generate content hash:' , e ) ;
794795 return `HASH-${ uuidv4 ( ) . replace ( / - / g, '' ) . substring ( 0 , 8 ) . toUpperCase ( ) } ` ;
0 commit comments