open-index/open-npm huggingface dataset:
npm package: @sampoder/dls.js
Description: 🏏 JS library for the Duckworth–Lewis–Stern method.
Author: @sampoder
Latest version: 1.0.1

# 🏏 `dls.js`

A JS library for the Duckworth–Lewis–Stern method: https://en.wikipedia.org/wiki/Duckworth%E2%80%93Lewis%E2%80%93Stern_method. This library is based on the DLS table in [the ICC's guide to DLS](http://icc-live.s3.amazonaws.com/cms/media/about_docs/518a6ddb1aaf6-Duckworth_Lewis%20Method.pdf).

## Installation

The package is available as `@sampoder/dls.js` on [NPM](https://www.npmjs.com/package/@sampoder/dls.js) which after installation can be used like:

```js
const { DLS } = require('@sampoder/dls.js')
```

or 

```js
import { DLS } from '@sampoder/dls.js'
```

You can also import it directly from Skypack through URL imports:

```js
import { DLS } from 'https://cdn.skypack.dev/@sampoder/dls.js';
```

Make sure your script has the property `type="module"` set.

## The DLS Class

The `DLS()` class has the following properties:

| Property      |
| ----------- |
| `overs`: the amount of overs in the game if no interuptions occur, eg. 20 for a T20. Defaults to 50. |
| `G50`: the G50 value used if the first batting team's innings is interuptted. Defaults to 200. |
| `firstTeamScore` |
| `secondTeamScore` |
| `firstTeamWicketsLost` |
| `secondTeamWicketsLost` |
| `firstTeamOversRemaining` |
| `secondTeamOversRemaining` |
| `firstTeamOversPassed` |
| `secondTeamOversPassed` |

The `DLS()` class has the following methods:

| Method      | Description | Required Properties |
| ----------- | ----------- | ----------- |
| `getParScore()`  | `getParScore()` calculates the par score for a team chasing in the second. When the second innings is cut short, this score can be used to determine whether they've won or not. | `overs`, `firstTeamScore`, `secondTeamOversPassed` & `secondTeamWicketsLost` |
| `getRevisedTarget(oversLost)`   | `getRevisedTarget()` calculates a revised target for the chasing team when overs are lost in the second innings. | `overs`, `firstTeamScore`, `secondTeamOversPassed` & `secondTeamWicketsLost`  |
| `getRevisedTargetWhenFirstInningsCutShort()` | `getRevisedTargetWhenFirstInningsCutShort()` calculates a revised target for the chasing team when overs are lost in both the first innings and second innings - it should be ran at the end of the first innings and returns a target for the chasing team. | `G50`, `overs`,`firstTeamScore`, `firstTeamWicketsLost`, `firstTeamOversPassed` (this should be the amount of overs they got to bat in total) |
npm package: @sampoder/holocron
Description: A React component for displaying content on a Jedi Challenges headset
Author: sampoder
Latest version: 1.0.4

# 🥽 holocron
Use your Jedi Challenges headset for anything!


[![NPM](https://img.shields.io/npm/v/@sampoder/holocron.svg)](https://www.npmjs.com/package/@sampoder/holocron) 

## Install

```bash
npm install --save @sampoder/holocron 
yarn add @sampoder/holocron 
```

## Usage

```jsx
import Holocron from '@sampoder/holocron'

function Title(){
  return <h1 style={{ color: 'white' }}>The Hello World!</h1>
}

function LaunchButton(){
  return <button style={{ color: 'white' }}>Play</button>
}

function FullscreenButton(){
  return <button style={{ color: 'white' }}>Fullscreen</button>
}

function App() {
  return (
    <div className='App'>
      <Holocron
        title={<Title />}
        backgroundColor='#8492a6'
        launch={<LaunchButton />}
        fullscreen={<FullscreenButton />}
      >
        <p style={{ color: 'white', paddingTop: '30px' }}>Hello World</p>
      </Holocron>
    </div>
  )
}

export default App
```

## License

MIT © [sampoder](https://github.com/sampoder)
npm package: @sampoder/ib.js
Description: IB CS Data Structures in JS for experimenting!
Author: @sampoder
Latest version: 1.0.1

# `ib.js`

This JS library implements the data structures outlined in the [IB Computer Science Pseudocode Guide](https://computersciencewiki.org/images/c/c6/IB-Pseudocode-rules.pdf) exactly as they are. Use it to experiment with the data structures or what ever you would like to do when studying CS!

## Installation

The package is available as `@sampoder/ib.js` on NPM which after installation can be used like:

```js
const { Stack, Collection, Queue } = require('@sampoder/ib.js')
```

You can also import it directly from Skypack through URL imports:

```js
import { Stack, Collection, Queue } from 'https://cdn.skypack.dev/@sampoder/ib.js';
```

Make sure your script has the property `type="module"` set.

## Collections

The `Collection()` class has the following methods:

| Method      | Description |
| ----------- | ----------- |
| addItem(x)  | Add item to collection    |
| getNext()   | Get the next item in the collection |
| resetNext() | Go back to the start of the collection |
| hasNext()   | Test if the next item exists |
| isEmpty()   | Test if a collection is empty |

## Stacks

The `Stack()` class has the following methods:

| Method      | Description |
| ----------- | ----------- |
| push()      | Push an item onto the top of the stack   |
| pop()       | Removes and returns the item on the top of the stack |
| isEmpty()   | Test if a stack is empty |

## Queues

The `Queue()` class has the following methods:

| Method      | Description |
| ----------- | ----------- |
| enqueue()   | Adds an item to the back of the queue |
| dequeue()   | Returns and removes the first item in the queue |
| isEmpty()   | Test if a queue is empty |

> Note: these are all minor adaptations of preexisting JS functionality but I found it helpful to have it presented in this way to understand what the course meant. 

## Sample Code

Here is some messy sample code to help you get an idea of how the library works.

```js
const { Stack, Collection, Queue } = require('@sampoder/ib.js')

let s = new Stack()

console.log(s.push("hi"))

console.log(s.push("sam"))

console.log(s.pop())

console.log(s.isEmpty())

let q = new Queue()

q.enqueue(2)

q.enqueue(1)

console.log(q.dequeue())

let c = new Collection()

c.addItem("sam")

c.addItem("p")

c.addItem("2")

c.addItem("3")

c.addItem("4")

while(c.hasNext()){
  console.log(c.getNext())
}

c.resetNext()

console.log(c.getNext())
```