{"id":16981305,"url":"https://github.com/vktr/windows-installer","last_synced_at":"2025-08-16T23:06:00.995Z","repository":{"id":30926854,"uuid":"126409616","full_name":"vktr/windows-installer","owner":"vktr","description":"Node.js bindings for the Windows Installer API.","archived":false,"fork":false,"pushed_at":"2022-12-07T17:53:15.000Z","size":121,"stargazers_count":4,"open_issues_count":6,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-02T11:48:46.509Z","etag":null,"topics":["msi","win32","windows-installer"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vktr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-23T00:11:52.000Z","updated_at":"2023-05-09T04:57:50.000Z","dependencies_parsed_at":"2023-01-14T17:58:38.756Z","dependency_job_id":null,"html_url":"https://github.com/vktr/windows-installer","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/vktr/windows-installer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vktr%2Fwindows-installer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vktr%2Fwindows-installer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vktr%2Fwindows-installer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vktr%2Fwindows-installer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vktr","download_url":"https://codeload.github.com/vktr/windows-installer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vktr%2Fwindows-installer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270781393,"owners_count":24643820,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-16T02:00:11.002Z","response_time":91,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["msi","win32","windows-installer"],"created_at":"2024-10-14T02:05:04.954Z","updated_at":"2025-08-16T23:06:00.975Z","avatar_url":"https://github.com/vktr.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Node.js bindings for the Windows Installer API\r\n\r\nThis package lets you open, query and modify MSI files from Node.js. It\r\nprovides some abstraction on top of the native Windows Installer API but\r\notherwise just passes through any arguments.\r\n\r\nThe API is currently synchronous and will throw errors at the Windows Installer\r\nAPI's behalf.\r\n\r\n\r\n## Usage\r\n\r\n### Install the package\r\n\r\n```sh\r\n$ npm install --save windows-installer\r\n```\r\n\r\n### Query the database\r\n\r\n```js\r\nconst wi = require('windows-installer');\r\n\r\nconst db = new wi.Database('C:/Installer.msi', wi.MSIDBOPEN_READONLY);\r\nconst view = db.openView(\"SELECT * FROM _Tables\");\r\n\r\nview.execute();\r\n\r\nlet record = null;\r\n\r\nwhile ((record = view.fetch())) {\r\n    console.log(record.getString(1));\r\n}\r\n```\r\n\r\n\r\n## API coverage\r\n\r\n### Database functions\r\n\r\nDatabase functions requires a `Database` (named `db` in the examples\r\nbelow). This can be obtained by running `new Database(\u003cPath\u003e, \u003cPersistMode\u003e)`.\r\n\r\n| Win32 Function                 | Node.js function                     |\r\n| ------------------------------ | ------------------------------------ |\r\n| `MsiDatabaseCommit`            | `db.commit()`                        |\r\n| `MsiDatabaseGetPrimaryKeys `   | `db.getPrimaryKeys(\u003cTableName\u003e)`     |\r\n| `MsiDatabaseIsTablePersistent` | `db.isTablePersistent(\u003cTableName\u003e)`  |\r\n| `MsiDatabaseOpenView`          | `db.openView(\u003cQuery\u003e)`               |\r\n| `MsiOpenDatabase`              | `new Database(\u003cPath\u003e, \u003cPeristMode\u003e)` |\r\n\r\n\r\n### View functions\r\n\r\nView functions requires a `View` (named `view` in the examples below). This\r\ncan be obtained by running `openView` on a `Database` instance.\r\n\r\n| Win32 Function                 | Node.js function                     |\r\n| ------------------------------ | ------------------------------------ |\r\n| `MsiViewGetColumnInfo`         | `view.getColumnInfo(\u003cInfoType\u003e)`     |\r\n| `MsiViewClose`                 | `view.close()`                       |\r\n| `MsiViewExecute`               | `view.execute()`                     |\r\n| `MsiViewFetch`                 | `view.fetch()`                       |\r\n| `MsiViewGetError`              | `view.getError()`                    |\r\n| `MsiViewModify`                | `view.modify(\u003cMode\u003e, \u003cRecord\u003e)`      |\r\n\r\n\r\n### Record functions\r\n\r\nRecord functions requires a `Record` (named `rec` in the examples below). This\r\ncan be obtained by running `fetch` on a `View` instance or by running\r\n`new Record(\u003cNumFields\u003e)`.\r\n\r\n| Win32 Function                 | Node.js function                     |\r\n| ------------------------------ | ------------------------------------ |\r\n| `MsiCreateRecord`              | `new Record(\u003cNumFields\u003e)`            |\r\n\r\n\r\n## License\r\n\r\nCode licensed under the [MIT License](LICENSE.txt).\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvktr%2Fwindows-installer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvktr%2Fwindows-installer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvktr%2Fwindows-installer/lists"}