<%# This template is used if the Option `package` is enabled %>
<%_ let entryPointName = importName _%>
<%_ if (packageName === 'Gjs') { _%>
  <%_ entryPointName = 'gjs' _%>
<%_ } _%>
<%_ if (packageName === 'node-gtk') { _%>
  <%_ entryPointName = 'node-gtk' _%>
<%_ } _%>
<%_ let depVersion = packageYarn ? 'workspace:^' : APP_VERSION _%>
{
    "name": "<%- npmScope %>/<%- importName %>",
    <%_ if(typeof girModule !== "undefined"){ _%>
    "version": "<%- girModule.libraryVersion %>-<%- APP_VERSION %>",
    <%_ } else { _%>
    "version": "<%- APP_VERSION %>",
    <%_ } _%>
    "description": "<%- PACKAGE_DESC %>",
    <%_ if (moduleType === 'esm') { _%>
    "type": "module",
    "module": "<%- entryPointName %>.js",
    <%_ } else { _%>
    "type": "commonjs",
    "module": "<%- entryPointName %>.mjs",
    <%_ } _%>
    "main": "<%- entryPointName %>.js",
    "typedoc": {
      "entryPoint": "./<%- entryPointName %>.d.ts",
      "readmeFile": "./README.md",
      "displayName": "<%- packageName %>",
      "tsconfig": "./tsconfig.doc.json"
    },
    "exports": {
      <%_ if (packageName === 'Gjs' && generateAlias) { _%>
      "./tsconfig.alias.json": "./tsconfig.alias.json",
      <%_ } _%>
      <%_ if (packageName === 'Gjs') { _%>
      "./ambient": "./ambient.d.ts",
      "./gettext": {
        <%_ if (moduleType === 'esm') { _%>
        "import": {
          "types": "./gettext.d.ts",
          "default": "./gettext.js"
        },
        "require": {
          "types": "./gettext.d.cts",
          "default": "./gettext.cjs"
        }
        <%_ } else { _%>
        "import": {
          "types": "./gettext.d.mts",
          "default": "./gettext.mjs"
        },
        "require": {
          "types": "./gettext.d.ts",
          "default": "./gettext.js"
        }
        <%_ } _%>
      },
      "./system": {
        <%_ if (moduleType === 'esm') { _%>
        "import": {
          "types": "./system.d.ts",
          "default": "./system.js"
        },
        "require": {
          "types": "./system.d.cts",
          "default": "./system.cjs"
        }
        <%_ } else { _%>
        "import": {
          "types": "./system.d.mts",
          "default": "./system.mjs"
        },
        "require": {
          "types": "./system.d.ts",
          "default": "./system.js"
        }
        <%_ } _%>
      },
      "./cairo": {
        <%_ if (moduleType === 'esm') { _%>
        "import": {
          "types": "./cairo.d.ts",
          "default": "./cairo.js"
        },
        "require": {
          "types": "./cairo.d.cts",
          "default": "./cairo.cjs"
        }
        <%_ } else { _%>
        "import": {
          "types": "./cairo.d.mts",
          "default": "./cairo.mjs"
        },
        "require": {
          "types": "./cairo.d.ts",
          "default": "./cairo.js"
        }
        <%_ } _%>
      },
      <%_ } _%>
      <%_ if (entryPointName === 'gjs') { _%>
      "./ambient": "./ambient.d.ts",
      <%_ } else if (entryPointName === 'node-gtk') { _%>
      "./ambient": "./node-ambient.d.ts",
      <%_ } else {_%>
      "./ambient": "./<%- entryPointName %>-ambient.d.ts",
      "./import": "./<%- entryPointName %>-import.d.ts",
      <%_ } _%>
      ".": {
        <%_ if (moduleType === 'esm') { _%>
        "import": {
          "types": "./<%- entryPointName %>.d.ts",
          "default": "./<%- entryPointName %>.js"
        },
        "require": {
          "types": "./<%- entryPointName %>.d.cts",
          "default": "./<%- entryPointName %>.cjs"
        }
        <%_ } else { _%>
        "import": {
          "types": "./<%- entryPointName %>.d.mts",
          "default": "./<%- entryPointName %>.mjs"
        },
        "require": {
          "types": "./<%- entryPointName %>.d.ts",
          "default": "./<%- entryPointName %>.js"
        }
        <%_ } _%>
      }
    },
    "scripts": {
      "test": "yarn test:esm && yarn test:cjs",
      <%_ if (moduleType === 'esm') { _%>
      "test:esm": "tsc --noEmit <%- entryPointName %>.d.ts",
      "test:cjs": "tsc --noEmit <%- entryPointName %>.d.cts"
      <%_ } else { _%>
      "test:esm": "tsc --noEmit <%- entryPointName %>.d.mts",
      "test:cjs": "tsc --noEmit <%- entryPointName %>.d.ts"
      <%_ } _%>
    },
    "dependencies": {
      <%_ if (packageName !== 'Gjs' && packageName !== 'node-gtk') { _%>
        <%_ if (environment === 'node') { _%>
      "<%- npmScope %>/node-gtk": "<%- depVersion %>"<%_ if(deps.length > 0 ) { _%>,<%_ } _%>
        <%_ } else { _%>
      "<%- npmScope %>/gjs": "<%- depVersion %>"<%_ if(deps.length > 0 ) { _%>,<%_ } _%>
        <%_ } _%>
      <%_ } _%>
      <%_ for (let i = 0; i < deps.length;  i++ ) { _%>
      <%_ if (!packageYarn) { _%>
        <%_ girModule = dep.getModule(girModules, deps[i]) _%>
        <%_ depVersion = `${girModule.libraryVersion}-${APP_VERSION}` _%>
      <%_ } _%>
      "<%- deps[i].importPath %>": "<%- depVersion %>"<%_ if(i < deps.length - 1) { _%>,<%_ } _%>
      <% } %>
    },
    <%_ if (environment === 'node') { _%>
    "peerDependencies": {
      "node-gtk": "*"
    },
    <%_ } _%>
    "devDependencies": {
      "typescript": "*"
    },
    "keywords": [<%- PACKAGE_KEYWORDS %>],
    "author": "<%- APP_NAME %>",
    "license": "MIT",
    "repository": {
      "type": "git",
      "url": "git+https://github.com/gjsify/types.git"
    },
    "bugs": {
      "url": "https://github.com/gjsify/ts-for-gir/issues"
    },
    "homepage": "https://github.com/gjsify/types/tree/main/<%- importName %>#readme"
}
