constructor(inDirPath, filePath, packageName = null, mainFilePath = null) {
    assert(inDirPath);
    assert(filePath);

    /** @type {string} */
    this._inDirPath = path.resolve(inDirPath);

    /** @type {string} */
    this._filePath = path.resolve(filePath);

    /** @type {NPMPackageObject} */
    this._packageName = packageName;

    if (mainFilePath) {
      /** @type {string} */
      this._mainFilePath = path.resolve(mainFilePath);
    }
  }
create instance.
@param {string} inDirPath - root directory path.
@param {string} filePath - relative file path from root directory path.
@param {string} [packageName] - npm package name.
@param {string} [mainFilePath] - npm main file path.