This commit is contained in:
cswimr 2025-02-09 10:00:02 -06:00
parent eab42ee1b8
commit f0b3e81c0a
Signed by: cswimr
GPG key ID: 0EC431A8DA8F8087
27 changed files with 1377 additions and 1 deletions

7
docs/README.md Normal file
View file

@ -0,0 +1,7 @@
**packwizjs**
***
# PackwizJS
A simple JavaScript module to parse the contents of Packwiz index files.

View file

@ -0,0 +1,15 @@
[**packwizjs**](../../README.md)
***
[packwizjs](../../modules.md) / enums/hash-format
# enums/hash-format
## Enumerations
- [HashFormat](enumerations/HashFormat.md)
## Functions
- [isValidHashFormat](functions/isValidHashFormat.md)

View file

@ -0,0 +1,49 @@
[**packwizjs**](../../../README.md)
***
[packwizjs](../../../modules.md) / [enums/hash-format](../README.md) / HashFormat
# Enumeration: HashFormat
Defined in: enums/hash-format.ts:1
## Enumeration Members
### md5
> **md5**: `"md5"`
Defined in: enums/hash-format.ts:5
***
### murmur2
> **murmur2**: `"murmur2"`
Defined in: enums/hash-format.ts:6
***
### sha1
> **sha1**: `"sha1"`
Defined in: enums/hash-format.ts:4
***
### sha256
> **sha256**: `"sha256"`
Defined in: enums/hash-format.ts:2
***
### sha512
> **sha512**: `"sha512"`
Defined in: enums/hash-format.ts:3

View file

@ -0,0 +1,21 @@
[**packwizjs**](../../../README.md)
***
[packwizjs](../../../modules.md) / [enums/hash-format](../README.md) / isValidHashFormat
# Function: isValidHashFormat()
> **isValidHashFormat**(`hashFormat`): [`HashFormat`](../enumerations/HashFormat.md)
Defined in: enums/hash-format.ts:9
## Parameters
### hashFormat
`string`
## Returns
[`HashFormat`](../enumerations/HashFormat.md)

15
docs/enums/side/README.md Normal file
View file

@ -0,0 +1,15 @@
[**packwizjs**](../../README.md)
***
[packwizjs](../../modules.md) / enums/side
# enums/side
## Enumerations
- [Side](enumerations/Side.md)
## Functions
- [isValidSide](functions/isValidSide.md)

View file

@ -0,0 +1,33 @@
[**packwizjs**](../../../README.md)
***
[packwizjs](../../../modules.md) / [enums/side](../README.md) / Side
# Enumeration: Side
Defined in: enums/side.ts:1
## Enumeration Members
### Both
> **Both**: `"both"`
Defined in: enums/side.ts:2
***
### Client
> **Client**: `"client"`
Defined in: enums/side.ts:3
***
### Server
> **Server**: `"server"`
Defined in: enums/side.ts:4

View file

@ -0,0 +1,21 @@
[**packwizjs**](../../../README.md)
***
[packwizjs](../../../modules.md) / [enums/side](../README.md) / isValidSide
# Function: isValidSide()
> **isValidSide**(`side`): [`Side`](../enumerations/Side.md)
Defined in: enums/side.ts:7
## Parameters
### side
`undefined` | `string`
## Returns
[`Side`](../enumerations/Side.md)

7
docs/index/README.md Normal file
View file

@ -0,0 +1,7 @@
[**packwizjs**](../README.md)
***
[packwizjs](../modules.md) / index
# index

14
docs/modules.md Normal file
View file

@ -0,0 +1,14 @@
[**packwizjs**](README.md)
***
# packwizjs
## Modules
- [enums/hash-format](enums/hash-format/README.md)
- [enums/side](enums/side/README.md)
- [index](index/README.md)
- [parser](parser/README.md)
- [provider](provider/README.md)
- [resource](resource/README.md)

23
docs/parser/README.md Normal file
View file

@ -0,0 +1,23 @@
[**packwizjs**](../README.md)
***
[packwizjs](../modules.md) / parser
# parser
## Classes
- [IndexFileEntry](classes/IndexFileEntry.md)
- [Packwiz](classes/Packwiz.md)
## Interfaces
- [Metafile](interfaces/Metafile.md)
- [Option](interfaces/Option.md)
- [PackwizIndex](interfaces/PackwizIndex.md)
- [PackwizVersions](interfaces/PackwizVersions.md)
## Functions
- [parsePackwiz](functions/parsePackwiz.md)

View file

@ -0,0 +1,109 @@
[**packwizjs**](../../README.md)
***
[packwizjs](../../modules.md) / [parser](../README.md) / IndexFileEntry
# Class: IndexFileEntry
Defined in: parser.ts:30
Represents a file entry in the Packwiz index.
## Constructors
### new IndexFileEntry()
> **new IndexFileEntry**(`file`, `hash`, `hashFormat`, `alias`?, `metafile`?, `preserve`?): [`IndexFileEntry`](IndexFileEntry.md)
Defined in: parser.ts:31
#### Parameters
##### file
[`Resource`](../../resource/classes/Resource.md)
##### hash
`string`
##### hashFormat
[`HashFormat`](../../enums/hash-format/enumerations/HashFormat.md)
##### alias?
`string`
##### metafile?
`boolean` = `false`
##### preserve?
`boolean` = `false`
#### Returns
[`IndexFileEntry`](IndexFileEntry.md)
## Properties
### alias?
> `readonly` `optional` **alias**: `string`
Defined in: parser.ts:35
***
### file
> `readonly` **file**: [`Resource`](../../resource/classes/Resource.md)
Defined in: parser.ts:32
***
### hash
> `readonly` **hash**: `string`
Defined in: parser.ts:33
***
### hashFormat
> `readonly` **hashFormat**: [`HashFormat`](../../enums/hash-format/enumerations/HashFormat.md)
Defined in: parser.ts:34
***
### metafile
> `readonly` **metafile**: `boolean` = `false`
Defined in: parser.ts:36
***
### preserve
> `readonly` **preserve**: `boolean` = `false`
Defined in: parser.ts:37
## Methods
### parse()
> **parse**(): `Promise`\<[`Metafile`](../interfaces/Metafile.md)\>
Defined in: parser.ts:47
#### Returns
`Promise`\<[`Metafile`](../interfaces/Metafile.md)\>

View file

@ -0,0 +1,119 @@
[**packwizjs**](../../README.md)
***
[packwizjs](../../modules.md) / [parser](../README.md) / Packwiz
# Class: Packwiz
Defined in: parser.ts:130
## Constructors
### new Packwiz()
> **new Packwiz**(`location`, `index`, `name`, `packFormat`, `authors`, `description`, `version`, `versions`): [`Packwiz`](Packwiz.md)
Defined in: parser.ts:131
#### Parameters
##### location
[`Resource`](../../resource/classes/Resource.md)
##### index
[`PackwizIndex`](../interfaces/PackwizIndex.md)
##### name
`string`
##### packFormat
`string` = `"packwiz:1.0.0"`
##### authors
`string`[]
##### description
`string`
##### version
`string`
##### versions
[`PackwizVersions`](../interfaces/PackwizVersions.md)
#### Returns
[`Packwiz`](Packwiz.md)
## Properties
### authors
> `readonly` **authors**: `string`[]
Defined in: parser.ts:136
***
### description
> `readonly` **description**: `string`
Defined in: parser.ts:137
***
### index
> `readonly` **index**: [`PackwizIndex`](../interfaces/PackwizIndex.md)
Defined in: parser.ts:133
***
### location
> `readonly` **location**: [`Resource`](../../resource/classes/Resource.md)
Defined in: parser.ts:132
***
### name
> `readonly` **name**: `string`
Defined in: parser.ts:134
***
### packFormat
> `readonly` **packFormat**: `string` = `"packwiz:1.0.0"`
Defined in: parser.ts:135
***
### version
> `readonly` **version**: `string`
Defined in: parser.ts:138
***
### versions
> `readonly` **versions**: [`PackwizVersions`](../interfaces/PackwizVersions.md)
Defined in: parser.ts:139

View file

@ -0,0 +1,27 @@
[**packwizjs**](../../README.md)
***
[packwizjs](../../modules.md) / [parser](../README.md) / parsePackwiz
# Function: parsePackwiz()
> **parsePackwiz**(`filePath`): `Promise`\<[`Packwiz`](../classes/Packwiz.md)\>
Defined in: parser.ts:161
Parses a packwiz.toml file and returns its contents.
## Parameters
### filePath
`string`
The path of the TOML file.
## Returns
`Promise`\<[`Packwiz`](../classes/Packwiz.md)\>
The parsed file as a structured class.

View file

@ -0,0 +1,49 @@
[**packwizjs**](../../README.md)
***
[packwizjs](../../modules.md) / [parser](../README.md) / Metafile
# Interface: Metafile
Defined in: parser.ts:13
## Properties
### filename
> **filename**: `string`
Defined in: parser.ts:15
***
### name
> **name**: `string`
Defined in: parser.ts:14
***
### option
> **option**: [`Option`](Option.md)
Defined in: parser.ts:18
***
### provider
> **provider**: [`UrlProvider`](../../provider/classes/UrlProvider.md)
Defined in: parser.ts:17
***
### side
> **side**: [`Side`](../../enums/side/enumerations/Side.md)
Defined in: parser.ts:16

View file

@ -0,0 +1,33 @@
[**packwizjs**](../../README.md)
***
[packwizjs](../../modules.md) / [parser](../README.md) / Option
# Interface: Option
Defined in: parser.ts:21
## Properties
### default?
> `optional` **default**: `boolean`
Defined in: parser.ts:23
***
### description?
> `optional` **description**: `string`
Defined in: parser.ts:24
***
### optional
> **optional**: `boolean`
Defined in: parser.ts:22

View file

@ -0,0 +1,43 @@
[**packwizjs**](../../README.md)
***
[packwizjs](../../modules.md) / [parser](../README.md) / PackwizIndex
# Interface: PackwizIndex
Defined in: parser.ts:114
Represents the structure of a Packwiz index file, as well as providing its location.
## Properties
### files
> **files**: [`IndexFileEntry`](../classes/IndexFileEntry.md)[]
Defined in: parser.ts:118
***
### hash
> **hash**: `string`
Defined in: parser.ts:116
***
### hashFormat
> **hashFormat**: [`HashFormat`](../../enums/hash-format/enumerations/HashFormat.md)
Defined in: parser.ts:117
***
### location
> **location**: [`Resource`](../../resource/classes/Resource.md)
Defined in: parser.ts:115

View file

@ -0,0 +1,57 @@
[**packwizjs**](../../README.md)
***
[packwizjs](../../modules.md) / [parser](../README.md) / PackwizVersions
# Interface: PackwizVersions
Defined in: parser.ts:121
## Properties
### fabric?
> `optional` **fabric**: `string`
Defined in: parser.ts:123
***
### forge?
> `optional` **forge**: `string`
Defined in: parser.ts:124
***
### liteloader?
> `optional` **liteloader**: `string`
Defined in: parser.ts:127
***
### minecraft
> **minecraft**: `string`
Defined in: parser.ts:122
***
### neoforge?
> `optional` **neoforge**: `string`
Defined in: parser.ts:125
***
### quilt?
> `optional` **quilt**: `string`
Defined in: parser.ts:126

14
docs/provider/README.md Normal file
View file

@ -0,0 +1,14 @@
[**packwizjs**](../README.md)
***
[packwizjs](../modules.md) / provider
# provider
## Classes
- [CurseForgeProvider](classes/CurseForgeProvider.md)
- [GitHubProvider](classes/GitHubProvider.md)
- [ModrinthProvider](classes/ModrinthProvider.md)
- [UrlProvider](classes/UrlProvider.md)

View file

@ -0,0 +1,138 @@
[**packwizjs**](../../README.md)
***
[packwizjs](../../modules.md) / [provider](../README.md) / CurseForgeProvider
# Class: CurseForgeProvider
Defined in: provider.ts:77
URL provider for handling CurseForge-related URLs.
Extends the UrlProvider with CurseForge-specific properties.
## Extends
- [`UrlProvider`](UrlProvider.md)
## Constructors
### new CurseForgeProvider()
> **new CurseForgeProvider**(`hash`, `hashFormat`, `mode`, `fileId`, `projectId`): [`CurseForgeProvider`](CurseForgeProvider.md)
Defined in: provider.ts:86
Creates a new CurseForgeProvider instance.
#### Parameters
##### hash
`string`
A hash string used for identification or verification.
##### hashFormat
[`HashFormat`](../../enums/hash-format/enumerations/HashFormat.md)
The format of the provided hash.
##### mode
`string`
The mode indicating how the CurseForge file should be accessed.
##### fileId
`number`
The identifier for the file on CurseForge.
##### projectId
`number`
The identifier for the project on CurseForge.
#### Returns
[`CurseForgeProvider`](CurseForgeProvider.md)
#### Overrides
[`UrlProvider`](UrlProvider.md).[`constructor`](UrlProvider.md#constructors)
## Properties
### fileId
> **fileId**: `number`
Defined in: provider.ts:90
The identifier for the file on CurseForge.
***
### hash
> **hash**: `string`
Defined in: provider.ts:15
A hash string used for identifying or verifying the resource.
#### Inherited from
[`UrlProvider`](UrlProvider.md).[`hash`](UrlProvider.md#hash-1)
***
### hashFormat
> **hashFormat**: [`HashFormat`](../../enums/hash-format/enumerations/HashFormat.md)
Defined in: provider.ts:16
The format of the provided hash.
#### Inherited from
[`UrlProvider`](UrlProvider.md).[`hashFormat`](UrlProvider.md#hashformat-1)
***
### mode
> **mode**: `string`
Defined in: provider.ts:89
The mode indicating how the CurseForge file should be accessed.
***
### projectId
> **projectId**: `number`
Defined in: provider.ts:91
The identifier for the project on CurseForge.
***
### url
> **url**: [`Resource`](../../resource/classes/Resource.md)
Defined in: provider.ts:17
A Resource instance representing the URL.
#### Inherited from
[`UrlProvider`](UrlProvider.md).[`url`](UrlProvider.md#url-1)

View file

@ -0,0 +1,160 @@
[**packwizjs**](../../README.md)
***
[packwizjs](../../modules.md) / [provider](../README.md) / GitHubProvider
# Class: GitHubProvider
Defined in: provider.ts:49
URL provider for handling GitHub-related URLs.
Extends the UrlProvider with GitHub-specific properties.
## Extends
- [`UrlProvider`](UrlProvider.md)
## Constructors
### new GitHubProvider()
> **new GitHubProvider**(`hash`, `hashFormat`, `url`, `branch`, `regex`, `slug`, `tag`): [`GitHubProvider`](GitHubProvider.md)
Defined in: provider.ts:60
Creates a new GitHubProvider instance.
#### Parameters
##### hash
`string`
A hash string used for identification or verification.
##### hashFormat
[`HashFormat`](../../enums/hash-format/enumerations/HashFormat.md)
The format of the hash.
##### url
[`Resource`](../../resource/classes/Resource.md)
A Resource instance representing the URL.
##### branch
`string`
The branch name within the GitHub repository.
##### regex
`string`
A regular expression for matching specific patterns in the GitHub URL.
##### slug
`string`
A URL slug used for identifying the repository.
##### tag
`string`
The tag associated with the GitHub resource.
#### Returns
[`GitHubProvider`](GitHubProvider.md)
#### Overrides
[`UrlProvider`](UrlProvider.md).[`constructor`](UrlProvider.md#constructors)
## Properties
### branch
> **branch**: `string`
Defined in: provider.ts:64
The branch name within the GitHub repository.
***
### hash
> **hash**: `string`
Defined in: provider.ts:15
A hash string used for identifying or verifying the resource.
#### Inherited from
[`UrlProvider`](UrlProvider.md).[`hash`](UrlProvider.md#hash-1)
***
### hashFormat
> **hashFormat**: [`HashFormat`](../../enums/hash-format/enumerations/HashFormat.md)
Defined in: provider.ts:16
The format of the provided hash.
#### Inherited from
[`UrlProvider`](UrlProvider.md).[`hashFormat`](UrlProvider.md#hashformat-1)
***
### regex
> **regex**: `string`
Defined in: provider.ts:65
A regular expression for matching specific patterns in the GitHub URL.
***
### slug
> **slug**: `string`
Defined in: provider.ts:66
A URL slug used for identifying the repository.
***
### tag
> **tag**: `string`
Defined in: provider.ts:67
The tag associated with the GitHub resource.
***
### url
> **url**: [`Resource`](../../resource/classes/Resource.md)
Defined in: provider.ts:17
A Resource instance representing the URL.
#### Inherited from
[`UrlProvider`](UrlProvider.md).[`url`](UrlProvider.md#url-1)

View file

@ -0,0 +1,128 @@
[**packwizjs**](../../README.md)
***
[packwizjs](../../modules.md) / [provider](../README.md) / ModrinthProvider
# Class: ModrinthProvider
Defined in: provider.ts:25
URL provider for handling Modrinth-related URLs.
Extends the UrlProvider with Modrinth-specific properties.
## Extends
- [`UrlProvider`](UrlProvider.md)
## Constructors
### new ModrinthProvider()
> **new ModrinthProvider**(`hash`, `hashFormat`, `url`, `modId`, `versionId`): [`ModrinthProvider`](ModrinthProvider.md)
Defined in: provider.ts:34
Creates a new ModrinthProvider instance.
#### Parameters
##### hash
`string`
A hash string used for identification or verification.
##### hashFormat
[`HashFormat`](../../enums/hash-format/enumerations/HashFormat.md)
The format of the provided hash.
##### url
[`Resource`](../../resource/classes/Resource.md)
A Resource instance representing the URL.
##### modId
`string`
The identifier for the Modrinth mod.
##### versionId
`string`
The version identifier for the mod.
#### Returns
[`ModrinthProvider`](ModrinthProvider.md)
#### Overrides
[`UrlProvider`](UrlProvider.md).[`constructor`](UrlProvider.md#constructors)
## Properties
### hash
> **hash**: `string`
Defined in: provider.ts:15
A hash string used for identifying or verifying the resource.
#### Inherited from
[`UrlProvider`](UrlProvider.md).[`hash`](UrlProvider.md#hash-1)
***
### hashFormat
> **hashFormat**: [`HashFormat`](../../enums/hash-format/enumerations/HashFormat.md)
Defined in: provider.ts:16
The format of the provided hash.
#### Inherited from
[`UrlProvider`](UrlProvider.md).[`hashFormat`](UrlProvider.md#hashformat-1)
***
### modId
> **modId**: `string`
Defined in: provider.ts:38
The identifier for the Modrinth mod.
***
### url
> **url**: [`Resource`](../../resource/classes/Resource.md)
Defined in: provider.ts:17
A Resource instance representing the URL.
#### Inherited from
[`UrlProvider`](UrlProvider.md).[`url`](UrlProvider.md#url-1)
***
### versionId
> **versionId**: `string`
Defined in: provider.ts:39
The version identifier for the mod.

View file

@ -0,0 +1,81 @@
[**packwizjs**](../../README.md)
***
[packwizjs](../../modules.md) / [provider](../README.md) / UrlProvider
# Class: UrlProvider
Defined in: provider.ts:7
Provides a base class for URL-based providers.
## Extended by
- [`ModrinthProvider`](ModrinthProvider.md)
- [`GitHubProvider`](GitHubProvider.md)
- [`CurseForgeProvider`](CurseForgeProvider.md)
## Constructors
### new UrlProvider()
> **new UrlProvider**(`hash`, `hashFormat`, `url`): [`UrlProvider`](UrlProvider.md)
Defined in: provider.ts:14
Creates a new UrlProvider instance.
#### Parameters
##### hash
`string`
A hash string used for identifying or verifying the resource.
##### hashFormat
[`HashFormat`](../../enums/hash-format/enumerations/HashFormat.md)
The format of the provided hash.
##### url
[`Resource`](../../resource/classes/Resource.md)
A Resource instance representing the URL.
#### Returns
[`UrlProvider`](UrlProvider.md)
## Properties
### hash
> **hash**: `string`
Defined in: provider.ts:15
A hash string used for identifying or verifying the resource.
***
### hashFormat
> **hashFormat**: [`HashFormat`](../../enums/hash-format/enumerations/HashFormat.md)
Defined in: provider.ts:16
The format of the provided hash.
***
### url
> **url**: [`Resource`](../../resource/classes/Resource.md)
Defined in: provider.ts:17
A Resource instance representing the URL.

11
docs/resource/README.md Normal file
View file

@ -0,0 +1,11 @@
[**packwizjs**](../README.md)
***
[packwizjs](../modules.md) / resource
# resource
## Classes
- [Resource](classes/Resource.md)

View file

@ -0,0 +1,145 @@
[**packwizjs**](../../README.md)
***
[packwizjs](../../modules.md) / [resource](../README.md) / Resource
# Class: Resource
Defined in: resource.ts:5
## Constructors
### new Resource()
> **new Resource**(`path`): [`Resource`](Resource.md)
Defined in: resource.ts:6
#### Parameters
##### path
`string`
#### Returns
[`Resource`](Resource.md)
## Properties
### path
> `readonly` **path**: `string`
Defined in: resource.ts:6
## Accessors
### ext
#### Get Signature
> **get** **ext**(): `string`
Defined in: resource.ts:36
##### Returns
`string`
***
### isUrl
#### Get Signature
> **get** **isUrl**(): `boolean`
Defined in: resource.ts:12
##### Returns
`boolean`
***
### name
#### Get Signature
> **get** **name**(): `string`
Defined in: resource.ts:21
##### Returns
`string`
***
### parent
#### Get Signature
> **get** **parent**(): [`Resource`](Resource.md)
Defined in: resource.ts:27
##### Returns
[`Resource`](Resource.md)
## Methods
### exists()
> **exists**(): `Promise`\<`boolean`\>
Defined in: resource.ts:42
#### Returns
`Promise`\<`boolean`\>
***
### fetchContents()
> **fetchContents**(): `Promise`\<`string`\>
Defined in: resource.ts:52
#### Returns
`Promise`\<`string`\>
***
### join()
> **join**(...`segments`): [`Resource`](Resource.md)
Defined in: resource.ts:62
#### Parameters
##### segments
...`string`[]
#### Returns
[`Resource`](Resource.md)
***
### toString()
> **toString**(): `string`
Defined in: resource.ts:8
#### Returns
`string`