Attach (recommended) or Link to PDF file here:

Configuration:
- Web browser and its version:
Firefox/Chrome, latest version
- Operating system and its version:
Linux,Windows,mac
- PDF.js version:
v2.12.313
- Is a browser extension:
no

Steps to reproduce the problem:
1. create a custom viewer with 
```
async function getViewer() {
const viewer = await import(/* webpackChunkName: 'pdfviewer' */ 'pdfjs-dist/web/pdf_viewer');
const eventBus = new viewer.EventBus();
return viewer.PDFSinglePageViewer({
        container,
        eventBus,
        useOnlyCssZoom: USE_ONLY_CSS_ZOOM,
        // We can enable text/annotations layers, if needed
        textLayerFactory: new viewer.DefaultTextLayerFactory(),
        annotationLayerFactory: new viewer.DefaultAnnotationLayerFactory(),
        // textLayerMode: TextLayerMode.ENABLE,
        // currently the SVG renderer is not supported
        // and it has problems with telekom documents
        // so it will be disabled until it is feature complete
        // renderer: 'svg'
    });
}
```
2. console prints an error:
```
Unable to get page for page view TypeError: this.linkService._cachedPageNumber is not a function
    ensurePdfPageLoaded_fn base_viewer.js:1502
```
    
Looks like the problem is `IPDFLinkService` which is actually using the default one `this.linkService = options.linkService || new SimpleLinkService();` which does not have this function. of course we can use `PDFLinkService` which will probably work.

this.imageResourcesPath = options.imageResourcesPath || "";
    this.enablePrintAutoRotate = options.enablePrintAutoRotate || false;
    this.renderer = options.renderer || RendererType.CANVAS;
    this.useOnlyCssZoom = options.useOnlyCssZoom || false;
    this.maxCanvasPixels = options.maxCanvasPixels;
    this.l10n = options.l10n || NullL10n;
    this.#enablePermissions = options.enablePermissions || false;
    this.defaultRenderingQueue = !options.renderingQueue;
    if (this.defaultRenderingQueue) {
      
      this.renderingQueue = new PDFRenderingQueue();
      this.renderingQueue.setViewer(this);
    } else {
      this.renderingQueue = options.renderingQueue;
    }
    this._doc = document.documentElement;
    this.scroll = watchScroll(this.container, this._scrollUpdate.bind(this));
    this.presentationModeState = PresentationModeState.UNKNOWN;
    this._onBeforeDraw = this._onAfterDraw = null;
    this._resetView();
    if (this.removePageBorders) {
      this.viewer.classList.add("removePageBorders");
    }
    
    
    Promise.resolve().then(() => {
      this.eventBus.dispatch("baseviewerinit", { source: this });
    });
  }
  get pagesCount() {