{"id":13788712,"url":"https://github.com/pkg93/pkg93","last_synced_at":"2025-05-12T03:30:38.646Z","repository":{"id":215864990,"uuid":"127750115","full_name":"pkg93/pkg93","owner":"pkg93","description":"A package manager for Windows 93!","archived":false,"fork":false,"pushed_at":"2020-10-19T20:39:26.000Z","size":116,"stargazers_count":7,"open_issues_count":1,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-18T02:38:35.932Z","etag":null,"topics":["browser","installer","javascript","package-manager","windows-93"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/pkg93.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-04-02T11:58:10.000Z","updated_at":"2021-10-07T22:57:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"756e32d0-01c5-4572-89ed-f420b83bee48","html_url":"https://github.com/pkg93/pkg93","commit_stats":null,"previous_names":["pkg93/pkg93"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkg93%2Fpkg93","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkg93%2Fpkg93/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkg93%2Fpkg93/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkg93%2Fpkg93/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pkg93","download_url":"https://codeload.github.com/pkg93/pkg93/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253667933,"owners_count":21944941,"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","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":["browser","installer","javascript","package-manager","windows-93"],"created_at":"2024-08-03T21:00:52.290Z","updated_at":"2025-05-12T03:30:38.229Z","avatar_url":"https://github.com/pkg93.png","language":"JavaScript","funding_links":[],"categories":["Categories"],"sub_categories":["Package Managers"],"readme":"# pkg93 [![Build Status](https://travis-ci.org/pkg93/pkg93.svg?branch=master)](https://travis-ci.org/pkg93/pkg93)\n\nA package manager for Windows 93!\n\n**NOTE:** If you're going to make a pull-request, please, for the love of god, try to keep the same coding style as the rest of the code. I don't care if your beautifer does it for you, or you think it looks fancy, just try to make the style consistent.\n\n## Table of Contents\n- [Installation](#installation)\n- [Adding my package to the main repoistory](#adding-my-package-to-the-main-repoistory)\n- [Making a Repository](#making-a-repository)\n- [Making a Package](#making-a-package)\n- [API](#api)\n\n## Installation\nImport the install.js from the latest release into Windows 93, and then run it with \"js\".\n\n## Adding my package to the main repoistory\nGo [here](https://github.com/1024x2/pkg93-mainrepo) for more info.\n\n## Making a repository\nFirstly, make sure that [CORS is enabled on your webserver](https://enable-cors.org/server.html).\nIf it isn't on, your users will be unable to download packages!\nSecondly you need to create a repo.json in the folder where you want your repository to be in.\nIn it, there should be 4 keys.\n- `name` This is your repo's name.\n- `msg` This is your repo's message to all users. You can set it to anything you want!\n- `packages` This is an array containing all the names of packages.\nHere's an example:\n```json\n{\n  \"name\": \"Example of a repo.json\",\n  \"msg\": \"This is an example repo.json\",\n  \"packages\": [\n    \"examplepkg1\",\n    \"examplepkg2\",\n    \"examplepkg3\"\n  ]\n}\n```\nFinally put all the packages in seperate folders named after the package.\nThe end result should look like this:\n```\nexample-repo/\n├── repo.json\n├── examplepkg1/\n│   │ (package files go here)\n│   └── package.json\n├── examplepkg2/\n│   │ (package files go here)\n│   └── package.json\n└── examplepkg3/\n    │ (package files go here)\n    └── package.json\n```\n\n## Making a package\nFirstly, you want to make a new folder called the name of the package.\nThen, you want to make a file called package.json in the folder.\nIn it, there should be 4 keys.\n- `name`: **Must be the same as the folder name and command name!** (unless you've provided a uninstaller)\n- `description` A description of your package.\n- `versions` All versions of your package, newest version goes first, oldest version goes last.\n- `inject`: It should be the name of the injection script.\n- `uninstall`: Optional, It should be the name of the uninstaller script, if it doesn't exist pkg93 will simply delete the command for you.\nHere's a example:\n```json\n{\n  \"name\": \"examplepkg\",\n  \"description\": \"my kewl pakeg!!11\",\n  \"versions\": [\n    \"1.0.0\",\n    \"0.9.0\"\n  ],\n  \"inject\": \"installer.js\",\n  \"uninstall\": \"optionaluninstaller.js\"\n}\n```\nAnd the directory structure:\n```\nexamplepkg/\n├── package.json\n├── 1.0.0/\n│   ├── installer.js\n│   └── optionaluninstaller.js\n└── 0.9.9/\n    ├── installer.js\n    └── optionaluninstaller.js\n```\n\n## API\n### `pkg93.getConfig()`\nGets the configuration, or returns `false` if something went wrong.\nExample:\n```js\nvar config = pkg93.getConfig();\nif (config == false) {\n  alert(\"Something went wrong...\");\n} else {\n  alert(\"You have \" + config.pkglist.length + \" packages available!\");\n}\n```\n\n**NOTE:** `pkg93.shutUp` don't work with getConfig, as getConfig doesn't output anything. [Redirecting output](https://github.com/pkg93/pkg93#protip) doesn't work either.\n\n#### Configuration Format:\nThe configuration is a object with the following keys:\n- `repos` - All added repos.\n- `installed` - All installed packages.\n- `pkglist` - All available packages.\nAll of these keys are arrays.\n\n### `pkg93.pull()`\nRefreshes the list of packages available.\nExample:\n```js\nalert(\"You previously had \" + pkg93.getConfig().pkglist.length + \" packages available.\");\nawait pkg93.pull();\nalert(\"Now you have \" + pkg93.getConfig().pkglist.length + \" packages available!\");\n```\n\n### `pkg93.get(package)`\nTries to install `package`, then returns `true` if the package was installed or `false` if the package couldn't be installed.\n```js\nsucceded = await pkg93.get(\"wget93\");\nif (succeded) {\n  alert(\"Installed wget93!\");  \n} else {\n  alert(\"Something went wrong...\");\n}\n```\n\n### `pkg93.rm(package)`\nTries to remove `package`, then returns `true` if the package was removed or `false` if the package couldn't be removed.\n```js\nsucceded = await pkg93.rm(\"wget93\");\nif (succeded) {\n  alert(\"Removed wget93!\");\n} else {\n  alert(\"Something went wrong...\");\n}\n```\n\n### `pkg93.pkginfo(package)`\nReturns the package.json of `package` or an error if it failed.\n```js\npackage = await pkg93.pkgInfo(\"wget93\");\nif (package instanceof Error) {\n  alert(\"Something went wrong...\");\n} else {\n  alert(\"wget93's description is: \" + package.description);\n}\n```\n\n### `pkg93.shutUp`\nIf you pass `pkg93.shutUp` as an extra argument (so `pkg93.get(\"wget93\")` becomes `pkg93.get(\"wget93\", pkg93.shutUp)`), it will silence all output.\n\n### PROTIP!\nYou can specify where output goes by adding an extra argument with the format below:\n```js\n{\n  log: function(input) {\n    // output the input variable (which is html)\n    // if you are outputting to a html document, you must return the element you just added\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkg93%2Fpkg93","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpkg93%2Fpkg93","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkg93%2Fpkg93/lists"}