84 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
/**
 | 
						|
 * @licstart The following is the entire license notice for the
 | 
						|
 * JavaScript code in this page
 | 
						|
 *
 | 
						|
 * Copyright 2022 Mozilla Foundation
 | 
						|
 *
 | 
						|
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
 * you may not use this file except in compliance with the License.
 | 
						|
 * You may obtain a copy of the License at
 | 
						|
 *
 | 
						|
 *     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 *
 | 
						|
 * Unless required by applicable law or agreed to in writing, software
 | 
						|
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
 * See the License for the specific language governing permissions and
 | 
						|
 * limitations under the License.
 | 
						|
 *
 | 
						|
 * @licend The above is the entire license notice for the
 | 
						|
 * JavaScript code in this page
 | 
						|
 */
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", {
 | 
						|
  value: true
 | 
						|
});
 | 
						|
exports.GenericScripting = void 0;
 | 
						|
exports.docPropertiesLookup = docPropertiesLookup;
 | 
						|
 | 
						|
var _pdf = require("../pdf");
 | 
						|
 | 
						|
async function docPropertiesLookup(pdfDocument) {
 | 
						|
  const url = "",
 | 
						|
        baseUrl = url.split("#")[0];
 | 
						|
  let {
 | 
						|
    info,
 | 
						|
    metadata,
 | 
						|
    contentDispositionFilename,
 | 
						|
    contentLength
 | 
						|
  } = await pdfDocument.getMetadata();
 | 
						|
 | 
						|
  if (!contentLength) {
 | 
						|
    const {
 | 
						|
      length
 | 
						|
    } = await pdfDocument.getDownloadInfo();
 | 
						|
    contentLength = length;
 | 
						|
  }
 | 
						|
 | 
						|
  return { ...info,
 | 
						|
    baseURL: baseUrl,
 | 
						|
    filesize: contentLength,
 | 
						|
    filename: contentDispositionFilename || (0, _pdf.getPdfFilenameFromUrl)(url),
 | 
						|
    metadata: metadata?.getRaw(),
 | 
						|
    authors: metadata?.get("dc:creator"),
 | 
						|
    numPages: pdfDocument.numPages,
 | 
						|
    URL: url
 | 
						|
  };
 | 
						|
}
 | 
						|
 | 
						|
class GenericScripting {
 | 
						|
  constructor(sandboxBundleSrc) {
 | 
						|
    this._ready = (0, _pdf.loadScript)(sandboxBundleSrc, true).then(() => {
 | 
						|
      return window.pdfjsSandbox.QuickJSSandbox();
 | 
						|
    });
 | 
						|
  }
 | 
						|
 | 
						|
  async createSandbox(data) {
 | 
						|
    const sandbox = await this._ready;
 | 
						|
    sandbox.create(data);
 | 
						|
  }
 | 
						|
 | 
						|
  async dispatchEventInSandbox(event) {
 | 
						|
    const sandbox = await this._ready;
 | 
						|
    setTimeout(() => sandbox.dispatchEvent(event), 0);
 | 
						|
  }
 | 
						|
 | 
						|
  async destroySandbox() {
 | 
						|
    const sandbox = await this._ready;
 | 
						|
    sandbox.nukeSandbox();
 | 
						|
  }
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
exports.GenericScripting = GenericScripting; |