open-index/open-npm huggingface dataset:
npm package: @rbxts/priority-map
Description: A map that allows multiple values per key while only exposing one.
Author: Fireboltofdeath
Latest version: 1.1.0

# @rbxts/priority-map
`@rbxts/priority-map` is a map that allows multiple values for a key, while only exposing a single value.

The value that is exposed via get(), values(), etc is determined using these rules:
1. Highest priority
2. Most recently assigned

`PriorityValue` is also exposed (as well as the helper `PriorityBool`), which is what `PriorityMap` uses under the hood. It's useful whenever you only need to store a single value while following the priority rules noted above.

## Installation:

```npm i @rbxts/priority-map```

## Example Usage
You can find the official documentation [here](https://fireboltofdeath.dev/docs/priority-map)

An example usage of PriorityMap:
```typescript
import { PriorityMap } from "@rbxts/priority-map";

const map = new PriorityMap();

// Default context is "Default"
// Default priority is 1
map.set("A", "Value");
print(map.get("A")); // Value

map.set("B", "Value1", "Context");
map.set("B", "Value2", "AnotherContext");
print(map.get("B")); // Value2

map.delete("B", "AnotherContext");
print(map.get("B")); // Value1

map.set("B", "Value3", "MoreContexts", 0);
print(map.get("B")); // Value1

```

An example usage of PriorityValue and PriorityBool:
```typescript
const value = new PriorityValue<string>();

value.set("Value1");
print(value.get()); // Value1

value.set("Value2", "Context", -1);
print(value.get()); // Value1

// PriorityBool is equivalent to PriorityValue<boolean>()
const bool = new PriorityBool();

bool.enable();
print(bool.get()); // true

bool.disable("Context", -1);
print(bool.get()); // true
```

## Changelog

### 1.1.0
- Added PriorityValue and PriorityBool
- PriorityMap now uses PriorityValue under the hood

### 1.0.2
- Fix typo in README

### 1.0.1
- Add README
- Update description

### 1.0.0
- Inital release
npm package: @rbxts/profile-store
Description: roblox-ts bindings for loleris's ProfileStore
Author: quamatic
Latest version: 1.0.3

# @rbxts/profile-store

## Installation:

`npm i @rbxts/profile-store`

## Documentation

See [MadStudioRoblox/ProfileStore](https://github.com/MadStudioRoblox/ProfileStore)
npm package: @rbxts/profileservice
Description: Roblox-ts typings for loleris's ProfileService
Author: OverHash
Latest version: 1.4.2

# @rbxts/profileservice

[![NPM](https://nodei.co/npm/@rbxts/profileservice.png)](https://npmjs.org/package/@rbxts/profileservice)

## Installation:

`npm i @rbxts/profileservice`

## Example Usage

See [MadStudioRoblox/ProfileService](https://github.com/MadStudioRoblox/ProfileService)

## Changelog

See [CHANGELOG.md](https://github.com/OverHash/Roblox-TS-Libraries/blob/master/profileservice/CHANGELOG.md) for the full changelog.
npm package: @rbxts/profilestore-with-accesses
Description: roblox-ts bindings for profilestore with an added signal for accesses to the data table
Author: xirulent
Latest version: 1.0.4
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# profilestore-with-accesses
roblox-ts bindings for profilestore with an added signal for accesses to the data table

```typescript
// Get a store
import ProfileStore from "@rbxts/profilestore-with-accesses";
import { Players } from "@rbxts/services";
let PlayerStore = ProfileStore.New("PlayerStore", {});

const PROFILE_TEMPLATE = {
  coins: 1000
}

// Start a session and connect to the signal
let profile = this.PlayerStore.StartSessionAsync(...)
profile.accessed.Connect((data: typeof PROFILE_TEMPLATE) => {
    // Callback runs each time profile.Data is indexed or an index is added
    print(data.coins); // Access session data using the table passed to your callback
})
```

Find ProfileStore documentation [here](https://madstudioroblox.github.io/ProfileStore/).

### Important
The package uses `profile.Data` as a proxy table. Underlying data is redirected to `profile._t`. If you want to index `profile.Data` in your callback, you can use the table provided to your callback. 

You cannot modify the data table in your callback. Callbacks are intended to be strictly consumers of data and should not extend data transactions! Ensure any modifications to the table are done before the callback should act on those changes.