Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
136 commits
Select commit Hold shift + click to select a range
87f6070
Update version number to v0.1.0-alpha.3
blwatkins Jun 19, 2026
5ab3ee9
Remove deprecated number-utility.ts method.
blwatkins Jun 19, 2026
a5e5f19
Update releases.md
blwatkins Jun 19, 2026
a202c74
Add generated docs for v0.1.0-alpha.3
blwatkins Jun 19, 2026
48affba
Update GitHub Pages title.
blwatkins Jun 21, 2026
5e538c2
Update .gitignore, copilot-instructions.md, portfolio-skills.md, inde…
blwatkins Jun 21, 2026
f8c636e
Update modified date of portfolio-skills.md
blwatkins Jun 21, 2026
3fc617b
Update string-utility.ts return types.
blwatkins Jun 23, 2026
cb93f68
Update number-utility.ts isPositiveInteger method.
blwatkins Jun 23, 2026
c033de9
Add color-string-utility.ts
blwatkins Jun 23, 2026
8e416c9
Update string-inputs.ts and add color-string-inputs.ts
blwatkins Jun 23, 2026
c3ac809
Update discriminator-registry.ts validation check logic.
blwatkins Jun 23, 2026
ccde796
Fix linting errors in color-string-utility.ts
blwatkins Jun 23, 2026
bc5e9e6
Fix linting errors utils/input
blwatkins Jun 23, 2026
b02f59d
Add unit tests for color-string-utility.test.ts
blwatkins Jun 23, 2026
3febee2
Update generated docs for v0.1.0-alpha.3
blwatkins Jun 23, 2026
8cefbd1
Update .gitignore
blwatkins Jun 23, 2026
4931331
Update markdown
blwatkins Jun 23, 2026
a39cf85
Update discriminator-registry.ts type validation.
blwatkins Jun 23, 2026
a5488ff
Refactor and update discriminator-registry.ts and discriminator-regis…
blwatkins Jun 23, 2026
a75ba20
Update generated docs for v0.1.0-alpha.3
blwatkins Jun 23, 2026
5ce1b9a
Merge pull request #46 from blwatkins/string-utility/color-string-uti…
blwatkins Jun 23, 2026
252ccb8
Update case in unit test labels and descriptions.
blwatkins Jun 23, 2026
df5c812
Implement full coverage unit tests for string-utility.test.ts
blwatkins Jun 23, 2026
9248339
Update package.json keywords
blwatkins Jun 23, 2026
0ef82d4
Update review instructions in CLAUDE.md and copilot-instructions.md
blwatkins Jun 23, 2026
400ec1f
Update CLAUDE.md and copilot-instructions.md
blwatkins Jun 23, 2026
2f9b78c
Merge pull request #47 from blwatkins/string-utility-updates
blwatkins Jun 23, 2026
b8f6a6c
Merge remote-tracking branch 'origin/random-utility-updates' into ran…
blwatkins Jun 23, 2026
637af1b
Add initial random.ts.
blwatkins Jun 24, 2026
6ce26be
Update random-number-generator-factory.ts TSDocs
blwatkins Jun 24, 2026
7193fab
Update copilot-instructions.md and CLAUDE.md
blwatkins Jun 24, 2026
7869c4e
Add initial weighted-element.ts functionality.
blwatkins Jun 24, 2026
a494398
Refactor WeitghedElementUtility into weighted-element-utility.ts
blwatkins Jun 24, 2026
360c1b1
Add random.test.ts
blwatkins Jun 24, 2026
f4ad0f5
Add weighed-element.test.ts
blwatkins Jun 24, 2026
bacdc39
Fix linting errors.
blwatkins Jun 24, 2026
ccfc9b2
Add initial todos for weighted-element-utility.test.ts tests.
blwatkins Jun 24, 2026
9946234
Add constructor and initial build unit test for weighted-element-util…
blwatkins Jun 25, 2026
dd7832d
Add unit tests to weighted-element-utility.test.ts for buildWeightedE…
blwatkins Jun 25, 2026
21b032a
Add unit tests to weighted-element-utility.test.ts for buildWeightedL…
blwatkins Jun 25, 2026
455fdfb
Add unit tests for ensuring generic interface and generic schema are …
blwatkins Jun 26, 2026
8e980fd
Add unit tests to weighted-element-utility.test.ts
blwatkins Jun 27, 2026
6c17e9f
Fix linting errors.
blwatkins Jun 27, 2026
72d13fb
Update weighted-element-utility.test.ts unit tests
blwatkins Jun 28, 2026
b55d94c
Update weighted-element-utility.test.ts unit tests.
blwatkins Jun 28, 2026
4d3e965
Complete weighted-element-utility.test.ts unit tests.
blwatkins Jun 29, 2026
8b214f5
Update weighted-element-utility.test.ts type check unit tests.
blwatkins Jun 29, 2026
2d7654c
Add TSDocs to weighted-element.ts
blwatkins Jun 29, 2026
ac1f881
Add partial TSDocs to weighted-element-utility.ts
blwatkins Jun 29, 2026
dfa5741
Add TSDocs to weighted-element-utility.ts
blwatkins Jun 29, 2026
291fe0d
Update resources-and-references.md
blwatkins Jun 29, 2026
a0f68ee
Add TSDocs to discriminators.ts
blwatkins Jun 29, 2026
5beac10
Update TSDocs in weighted-element-utility.ts and random.ts.
blwatkins Jun 29, 2026
91940f1
Fix linting errors.
blwatkins Jun 29, 2026
f40fab9
Add discriminators.test.ts
blwatkins Jun 29, 2026
161383c
Update TSDocs in random module
blwatkins Jun 29, 2026
7bb0c9c
Update generated docs for v0.1.0-alpha.3
blwatkins Jun 29, 2026
d8a4958
Merge remote-tracking branch 'origin/release/v0.1.0' into release/v0.…
blwatkins Jun 29, 2026
f2a07d3
Merge remote-tracking branch 'origin/random-utility-updates' into ran…
blwatkins Jun 29, 2026
b2930c5
Accepted updates from Claude Code pull request review.
blwatkins Jun 29, 2026
072c155
Update random.ts TSDocs
blwatkins Jun 29, 2026
c4e7b48
Update generated docs for v0.1.0-alpha.3
blwatkins Jun 29, 2026
d845037
Merge pull request #50 from blwatkins/random/random-and-weighted-element
blwatkins Jun 29, 2026
b8dad22
Begin implementing unit tests for random.ts
blwatkins Jun 30, 2026
88415a5
Update unit tests for random.test.ts
blwatkins Jun 30, 2026
ab3c8d0
Add randomFloat unit tests to random.test.ts
blwatkins Jun 30, 2026
0599825
Update test cases for randomFloat unit tests in random.test.ts
blwatkins Jun 30, 2026
1747cf6
Add placeholders for randomInt and randomInteger to random.test.ts
blwatkins Jul 1, 2026
dec52d4
Begin implementing randomInt unit tests for random.test.ts
blwatkins Jul 2, 2026
4006da8
Complete base case randomInt unit tests for random.test.ts
blwatkins Jul 3, 2026
c35a053
Merge remote-tracking branch 'origin/release/v0.1.0' into release/v0.…
blwatkins Jul 3, 2026
00a374e
Update package version to v0.1.0-alpha.1 and add generated docs for v…
blwatkins Jul 3, 2026
f1e27f1
Merge remote-tracking branch 'origin/release/v0.1.0-alpha.1' into ran…
blwatkins Jul 3, 2026
93cf730
Merge remote-tracking branch 'origin/random-utility-updates' into ran…
blwatkins Jul 3, 2026
1ff3d9f
Repository cleanup after scope and version update merges
blwatkins Jul 3, 2026
10676f6
Add unit tests for randomInteger to random.test.ts
blwatkins Jul 4, 2026
f5fc79d
Add base unit tests for randomBoolean to random.test.ts
blwatkins Jul 4, 2026
951395d
Add base unit tests for randomElement to random.test.ts
blwatkins Jul 4, 2026
444bd2e
Add unit tests for randomWeightedElement to random.test.ts
blwatkins Jul 5, 2026
28ca5b5
regenerate v0.1.0-alpha.0 docs to make sure they're in line with rele…
blwatkins Jul 5, 2026
5b24c66
Deleted generated docs to make sure everything is up to date with cur…
blwatkins Jul 5, 2026
5c95d65
Merge remote-tracking branch 'origin/docs-update-branch' into random/…
blwatkins Jul 5, 2026
fae1d75
Deleted generated docs
blwatkins Jul 5, 2026
2b82207
Copy generated v0.1.0-alpha.0 docs from docs-update-branch
blwatkins Jul 5, 2026
b17f7a8
Update generated docs for v0.1.0-alpha.1
blwatkins Jul 5, 2026
4a6748a
Update portfolio-skills.md
blwatkins Jul 5, 2026
5de0288
Add new unit tests to random.test.ts
blwatkins Jul 7, 2026
02a3b0b
Update test names in weighted-element-utility.test.ts
blwatkins Jul 7, 2026
930befc
Update weighted element selection tests for random.test.ts
blwatkins Jul 7, 2026
59ab56b
Add history and origins section to README.md and index.md
blwatkins Jul 7, 2026
de83f92
Update unit tests for `randomNumberGenerator` setter with input valid…
blwatkins Jul 7, 2026
8f7543f
Complete unit tests for `randomNumberGenerator` in random.test.ts
blwatkins Jul 7, 2026
bd1dd17
Add test for randomInt and randomInteger to random.test.ts
blwatkins Jul 7, 2026
657b097
Add min range input validation to random.test.ts.
blwatkins Jul 7, 2026
a9c882a
Fix linting errors and add tests for max parameter.
blwatkins Jul 7, 2026
341ca96
Compelete input validation for range random methods in random.test.ts
blwatkins Jul 8, 2026
b772736
Fix linting errors in random.test.ts
blwatkins Jul 8, 2026
f556764
Add input validation to random.test.ts for randomBoolean method.
blwatkins Jul 8, 2026
9f4de62
Complete unit tests for random.test.ts
blwatkins Jul 8, 2026
8618244
Update generated v0.1.0-alpha.1 docs.
blwatkins Jul 9, 2026
d1034d8
Update WeightedElement Discriminators value.
blwatkins Jul 9, 2026
340958b
Update generated v0.1.0-alpha.1 docs.
blwatkins Jul 9, 2026
0a22353
Update TSDocs for random.ts
blwatkins Jul 9, 2026
16729c9
Update generated docs for v0.1.0-alpha.1
blwatkins Jul 9, 2026
7727590
Merge pull request #56 from blwatkins/random/random-unit-tests
blwatkins Jul 9, 2026
c7b2c0a
Update portfolio-skills.md after Claude Code review.
blwatkins Jul 9, 2026
df199d6
Update random-number-generator-factory.ts after Claude Code review.
blwatkins Jul 9, 2026
1dc8465
Update copyright year range based on original date for random.ts
blwatkins Jul 9, 2026
197ab2d
Refactor `isWeightedList` method in weighted-element-utility.ts
blwatkins Jul 9, 2026
83cff9e
Update generated docs for v0.1.0-alpha.1
blwatkins Jul 9, 2026
ca16388
Update releases.md and resources-and-references.md
blwatkins Jul 9, 2026
572ddc2
Update weighted-element-utility.ts
blwatkins Jul 9, 2026
9ff4ea9
Update portfolio-skills.md
blwatkins Jul 9, 2026
b9039e6
Update copilot-instructions.md and CLAUDE.md after Claude Code review.
blwatkins Jul 9, 2026
dada57e
Potential fix for pull request finding
blwatkins Jul 9, 2026
541bbd6
Potential fix for pull request finding
blwatkins Jul 9, 2026
6efa12e
Potential fix for pull request finding
blwatkins Jul 9, 2026
1c7c9f9
Potential fix for pull request finding
blwatkins Jul 9, 2026
41dba55
Potential fix for pull request finding
blwatkins Jul 9, 2026
2a18e6b
Implement fixes from GitHub Copilot review.
blwatkins Jul 9, 2026
0c5db62
Update generated docs for v0.1.0-alpha.1
blwatkins Jul 9, 2026
20c2885
Merge branch 'random-utility-updates' of github.com:blwatkins/typescr…
blwatkins Jul 9, 2026
8a8b6fc
Update generated docs for v0.1.0-alpha.1
blwatkins Jul 9, 2026
7066528
Merge pull request #57 from blwatkins/random-utility-updates
blwatkins Jul 9, 2026
23845ce
Merge remote-tracking branch 'origin/main' into release/v0.1.0-alpha.1
blwatkins Jul 9, 2026
6265aa7
Update dependencies and clean install.
blwatkins Jul 9, 2026
7840a5c
Update index.md and README.md
blwatkins Jul 9, 2026
9103757
Update releases.md
blwatkins Jul 9, 2026
0c51062
Update generated docs for v0.1.0-alpha.1
blwatkins Jul 9, 2026
49f1b43
Updates from Claude Code review.
blwatkins Jul 9, 2026
4977239
Updates from Claude Code review.
blwatkins Jul 9, 2026
bb384eb
Update generated v0.1.0-alpha.1 documentation
blwatkins Jul 9, 2026
fe70f6b
Update copilot-instructions.md
blwatkins Jul 9, 2026
e74fa1a
Suggested changes from GitHub Copilot review.
blwatkins Jul 9, 2026
ce3a7cc
Update generated docs for v0.1.0-alpha.1
blwatkins Jul 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
143 changes: 136 additions & 7 deletions .github/copilot-instructions.md

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
# Visual Studio Code
.vscode/

# Claude Code
.claude/

# Node.js and npm
node_modules/

Expand Down
22 changes: 20 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,21 @@
Guidance for Claude Code (and other AI assistants) when working in this repository.

## Canonical Instructions

The detailed, authoritative conventions for this project live in [`.github/copilot-instructions.md`](./.github/copilot-instructions.md); read that file first.
This document is a concise map; `.github/copilot-instructions.md` is the source of truth.

## Keep These Two Files in Sync

This repository maintains both `CLAUDE.md` and `.github/copilot-instructions.md`. When you update guidance in one file that also applies to the other, mirror the change so the two stay consistent.
Updates to `CLAUDE.md` should be reflected, when appropriate, in `.github/copilot-instructions.md`, and vice versa.

## Project Summary
A growing ESM-first TypeScript utility package for reusable number, random, and string helpers.

A growing ESM-first TypeScript utility package for reusable number, random, string, and discriminator type-guard helpers.

## Common Commands

- `npm ci` — install dependencies from the lockfile.
- `npm run lint:all` — run both the JavaScript and TypeScript ESLint configurations.
- `npm run build` — bundle the package to `_dist/` with tsdown.
Expand All @@ -22,13 +26,27 @@ A growing ESM-first TypeScript utility package for reusable number, random, and
- `npm run docs` — generate TypeDoc API documentation to `_doc/`.

## Generated Output Directories (not committed)
`_dist/` (build), `_coverage/` (coverage), and `_doc/` (TypeDoc) are generated and gitignored.

`_dist/` (build), `_compiled/` (TypeScript `outDir`), `_coverage/` (coverage), and `_doc/` (TypeDoc) are generated and gitignored.
Note that the `docs/` Jekyll site separately includes committed sample documentation.

## Documentation Notes

- Keep shared content between `README.md` and `docs/index.md` consistent; expected differences
(front matter, headings, footer/links) are documented in `.github/copilot-instructions.md`.
- The portfolio skills page (`docs/portfolio-skills.md`) and its generation/review workflow are
described in the "Portfolio Page Generation and Maintenance" section of
`.github/copilot-instructions.md`.
- Release documentation under `docs/releases/` is maintained manually.

## Pre-Merge and Release Review

Before merging a branch, complete these review steps (full details in the "Pre-Merge and Release Review" section of [`.github/copilot-instructions.md`](./.github/copilot-instructions.md)):

1. **Validation** — `npm ci`, `npm run lint:all`, `npm run build`, `npm test` all pass
2. **Portfolio skills page** — review `docs/portfolio-skills.md` for accuracy; update `modified_date` if content changes
3. **Instruction file sync** — `CLAUDE.md` and `copilot-instructions.md` are consistent and current
4. **`package.json` keywords** — reflect current utility domains and features
5. **GitHub repository topics** — align with `package.json` keywords
6. **Branch code review** — convention compliance (static class pattern, JSDoc completeness, copyright headers, README/docs sync, test coverage), code quality (correctness, API consistency, efficiency, backward compatibility, reuse/DRY, runtime safety), and consistency (cross-source consistency across code/comments/docs, implicit pattern detection with maintainer notification)
7. **Release readiness** (for merges to `main`) — version bump, release docs, TypeDoc entry points, publish workflow
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2024-2026 Brittni Watkins
Copyright (c) 2022-2026 Brittni Watkins

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
9 changes: 7 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ A growing toolkit of reusable, domain-agnostic TypeScript and JavaScript utiliti
- [Latest Release](https://blwatkins.github.io/typescript-utils/doc/index.html)
- [Documentation by Version Number](https://blwatkins.github.io/typescript-utils/releases.html)

## History and Origins

Development for this project originally began in March 2022 when I started creating utility classes in JavaScript to use across my personal algorithmic generative art projects.
Over the years, the utilities have been refined, expanded, updated, and organized into a series of cohesive libraries that can be used in a variety of projects.

## License

The source code of this project is licensed under the [MIT License](https://opensource.org/license/mit).
Expand Down Expand Up @@ -71,9 +76,9 @@ The full text of the license is included with the project source code.

A huge thank you to all the open source contributors who have made this project possible by creating and maintaining the libraries and tools used in this project, and to the open source community for fostering collaboration and innovation.

A special thank you to all the educators, mentors, and content creators who have shared their knowledge and expertise in the fields of web development and computer science.
A special thank you to all the educators, mentors, and content creators who have shared their knowledge and expertise in the fields of algorithmic art, web development, and computer science.
Thank you for giving me the tools, resources, opportunities, support, and inspiration to learn and grow as a developer.

----

Copyright © 2024-2026 Brittni Watkins.
Copyright © 2022-2026 Brittni Watkins.
2 changes: 1 addition & 1 deletion docs/_includes/footer.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<div class="wrapper">
<div class="footer-col-wrapper">
<div class="footer-col">
<p>Copyright &copy; 2024-2026 Brittni Watkins.</p>
<p>Copyright &copy; 2022-2026 Brittni Watkins.</p>
</div>
<div class="footer-col">
<p style="text-align: right">{{ site.description | escape }}</p>
Expand Down
7 changes: 6 additions & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ A growing toolkit of reusable, domain-agnostic TypeScript and JavaScript utiliti
- [Latest Release](./doc/index.html)
- [Documentation by Version Number](./releases.md)

## History and Origins

Development for this project originally began in March 2022 when I started creating utility classes in JavaScript to use across my personal algorithmic generative art projects.
Over the years, the utilities have been refined, expanded, updated, and organized into a series of cohesive libraries that can be used in a variety of projects.

## License

The source code of this project is licensed under the [MIT License](https://opensource.org/license/mit).
Expand Down Expand Up @@ -76,5 +81,5 @@ The full text of the license is included with the project source code.

A huge thank you to all the open source contributors who have made this project possible by creating and maintaining the libraries and tools used in this project, and to the open source community for fostering collaboration and innovation.

A special thank you to all the educators, mentors, and content creators who have shared their knowledge and expertise in the fields of web development and computer science.
A special thank you to all the educators, mentors, and content creators who have shared their knowledge and expertise in the fields of algorithmic art, web development, and computer science.
Thank you for giving me the tools, resources, opportunities, support, and inspiration to learn and grow as a developer.
49 changes: 29 additions & 20 deletions docs/portfolio-skills.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
---
title: "Demonstrated Portfolio Skills"
layout: post
author:
- Brittni Watkins
- Claude Code
- GitHub Copilot
layout: post
date: 2026-05-27
modified_date: 2026-07-02
modified_date: 2026-07-08
toc: true
---

Expand All @@ -15,24 +16,25 @@ This page is a technical record of the skills, tools, and engineering practices

## Project Overview

TypeScript Utilities (`@blwatkins/utils`) is a growing, domain-agnostic utility package that provides reusable helpers for number checks, string checks, deterministic seeded pseudorandom number generation, and a discriminator-based type guard registry. The repository is maintained at [blwatkins/typescript-utils](https://github.com/blwatkins/typescript-utils), and it is built with TypeScript and tsdown.
TypeScript Utilities (`@blwatkins/utils`) is a growing, domain-agnostic utility package that provides reusable helpers for number checks, string checks, random number and element selection (including weighted selection), deterministic seeded pseudorandom number generation, and a discriminator-based type guard registry. The repository is maintained at [blwatkins/typescript-utils](https://github.com/blwatkins/typescript-utils), and it is built with TypeScript and tsdown.

## At a Glance

- **Project Type:** TypeScript utility library package
- **Primary Language:** [TypeScript](https://www.typescriptlang.org/)
- **Primary Runtime:** [Node.js](https://nodejs.org/en)
- **Primary Framework/Library:** Minimal framework-free utility architecture
- **Build Pipeline:** [tsdown](https://tsdown.dev/)
- **Quality Controls:** [ESLint](https://eslint.org/) and [GitHub Actions](https://github.com/features/actions)
- **Dependency Automation:** [Dependabot](https://docs.github.com/en/code-security/concepts/supply-chain-security/about-dependabot-version-updates)
- **Security Analysis:** [CodeQL](https://codeql.github.com/) via GitHub Actions
- **Documentation Pattern:** [TypeDoc](https://typedoc.org/) output plus manually maintained release docs in `docs/releases/...`
- **Primary Language:** TypeScript
- **Primary Runtime:** Node.js
- **Build Pipeline:** tsdown
- **Quality Controls:** ESLint
- **Automation:** GitHub Actions
- **Dependency Automation:** Dependabot
- **Security Analysis:** CodeQL via GitHub Actions
- **Documentation Pattern:** TypeDoc and Jekyll (GitHub Pages)

## Skills and Tooling Inventory

- **Languages:** [TypeScript](https://www.typescriptlang.org/), [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript), [Markdown](https://www.markdownguide.org/), [YAML](https://yaml.org/)
- **Runtime & Libraries:** [Node.js](https://nodejs.org/en), [TypeBox](https://sinclairzx81.github.io/typebox/)
- **Runtime & Libraries:** [Node.js](https://nodejs.org/en)
- **Libraries:** [TypeBox](https://sinclairzx81.github.io/typebox/)
- **Testing:** [Vitest](https://vitest.dev/)
- **Build / Bundling:** [tsdown](https://tsdown.dev/)
- **Code Quality:** [ESLint](https://eslint.org/)
Expand All @@ -43,7 +45,7 @@ TypeScript Utilities (`@blwatkins/utils`) is a growing, domain-agnostic utility
- **Automation:** [GitHub Actions](https://github.com/features/actions)
- **Hosting & Deployment:** [GitHub Pages](https://docs.github.com/en/pages), [npm Package Registry](https://www.npmjs.com/)
- **Code Analysis / Security:** [CodeQL](https://codeql.github.com/)
- **Dependency Automation:** [Dependabot](https://docs.github.com/en/code-security/concepts/supply-chain-security/about-dependabot-version-updates)
- **Dependency Automation:** [Dependabot](https://docs.github.com/en/code-security/concepts/supply-chain-security/dependabot-version-updates)
- **Development Utilities:** [npm CLI](https://docs.npmjs.com/cli)
- **Environment Configuration:** Node.js version pinning via `.node-version`, plus Ruby version pinning for the Jekyll/Bundler docs site via `docs/.ruby-version`
- **Development Environments:** [WebStorm](https://www.jetbrains.com/webstorm/), [Visual Studio Code](https://code.visualstudio.com/)
Expand All @@ -53,6 +55,8 @@ TypeScript Utilities (`@blwatkins/utils`) is a growing, domain-agnostic utility

- Implements reusable static utility classes for string and number type checks to improve consistency across consuming code.
- Provides a static discriminator registry with TypeBox schema validation to enable runtime type narrowing and reusable type guard generation for discriminated union patterns.
- Provides a static `Random` class for generating random numbers, booleans, and selecting random elements from arrays, with a configurable underlying random function to enable use with seeded generators or custom sources.
- Provides typed weighted random selection via `WeightedElementUtility` and `WeightedList`, using discriminator-validated element objects and a cumulative-weight selection strategy, enabling non-uniform random sampling from explicit probability distributions.
- Provides a deterministic seeded pseudorandom number generator (xoshiro128**) with synchronous (FNV-1a) and asynchronous (SHA-256 via Web Crypto API) seed-hashing strategies, enabling reproducible random sequences from string seeds.
- Uses explicit package export and type declaration mappings to improve compatibility for ESM consumers and TypeScript tooling.
- Applies strict TypeScript compiler settings and type-aware lint rules to improve early detection of implementation defects.
Expand Down Expand Up @@ -81,10 +85,17 @@ The public entry point re-exports domain modules, and each domain module re-expo
**Evidence:**

- [src/index.ts](https://github.com/blwatkins/typescript-utils/blob/main/src/index.ts)
- [src/discriminator/index.ts](https://github.com/blwatkins/typescript-utils/blob/main/src/discriminator/index.ts)
- [src/number/index.ts](https://github.com/blwatkins/typescript-utils/blob/main/src/number/index.ts)
- [src/random/index.ts](https://github.com/blwatkins/typescript-utils/blob/main/src/random/index.ts)
- [src/random/seeded-random/index.ts](https://github.com/blwatkins/typescript-utils/blob/main/src/random/seeded-random/index.ts)

### Random number generation and weighted element selection

The `Random` class centralizes random number, boolean, and array-element selection behind a swappable random number source (defaulting to `Math.random`), enabling deterministic testing and drop-in use of the package's own seeded pseudorandom number generator. `WeightedElementUtility` builds on the discriminator registry to validate `WeightedElement` and `WeightedList` objects at runtime and performs non-uniform random selection using a cumulative-weight strategy.

**Evidence:**

- [src/random/random.ts](https://github.com/blwatkins/typescript-utils/blob/main/src/random/random.ts)
- [src/random/weighted-element/weighted-element.ts](https://github.com/blwatkins/typescript-utils/blob/main/src/random/weighted-element/weighted-element.ts)
- [src/random/weighted-element/weighted-element-utility.ts](https://github.com/blwatkins/typescript-utils/blob/main/src/random/weighted-element/weighted-element-utility.ts)

### Strict typing and lint enforcement model

Expand All @@ -98,12 +109,12 @@ TypeScript is configured with strict checks, including implicit-type and unused-

### Test strategy and CI verification gates

The project uses Vitest for repeatable unit testing, with scripts wired into local and CI workflows. The primary CI workflow runs `npm ci`, lint, build, and tests across supported Node.js release lines before changes are accepted. Shared test input fixtures and scenario builders in `test/utils` support scenario-driven test suites and validation across modules.
The project uses Vitest for repeatable unit testing, including compile-time type checking of test files, with scripts wired into local and CI workflows. The primary CI workflow runs `npm ci`, lint, build, and tests across supported Node.js release lines before changes are accepted. Shared test input fixtures and scenario builders in `test/utils` support scenario-driven test suites and validation across modules.

**Evidence:**

- [package.json scripts](https://github.com/blwatkins/typescript-utils/blob/main/package.json)
- [test/string/string-utility.test.ts](https://github.com/blwatkins/typescript-utils/blob/main/test/string/string-utility.test.ts)
- [vitest.config.ts](https://github.com/blwatkins/typescript-utils/blob/main/vitest.config.ts)
- [test/utils/input/string-inputs.ts](https://github.com/blwatkins/typescript-utils/blob/main/test/utils/input/string-inputs.ts)
- [test/utils/test-case/scenarios/random-number-generator-factory-scenarios.ts](https://github.com/blwatkins/typescript-utils/blob/main/test/utils/test-case/scenarios/random-number-generator-factory-scenarios.ts)
- [npm-test.yml](https://github.com/blwatkins/typescript-utils/blob/main/.github/workflows/npm-test.yml)
Expand All @@ -118,8 +129,6 @@ API docs are generated with TypeDoc, while the documentation site is built from
- [gh-pages-jekyll.yml](https://github.com/blwatkins/typescript-utils/blob/main/.github/workflows/gh-pages-jekyll.yml)
- [docs/index.md](https://github.com/blwatkins/typescript-utils/blob/main/docs/index.md)
- [docs/releases directory](https://github.com/blwatkins/typescript-utils/tree/main/docs/releases)
- [copilot-instructions.md](https://github.com/blwatkins/typescript-utils/blob/main/.github/copilot-instructions.md)
- [CLAUDE.md](https://github.com/blwatkins/typescript-utils/blob/main/CLAUDE.md)

### Security scanning and dependency update automation

Expand Down
15 changes: 12 additions & 3 deletions docs/releases.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,24 @@
---
title: "Releases"
layout: post
author:
- Brittni Watkins
date: 2026-05-18
modified_date: 2026-07-02
title: "Releases"
modified_date: 2026-07-08
tags:
- releases
toc: true
---

## v0.x

- [v0.1.0-alpha.0](releases/v0.x/v0.1.x/v0.1.0-alpha.x/v0.1.0-alpha.0/doc/index.html) *(July 2, 2026)* - **@latest** **@alpha**
### v0.1.x

#### v0.1.0

- v0.1.0 - *Coming soon*

##### v0.1.0-alpha.x

- [v0.1.0-alpha.0](releases/v0.x/v0.1.x/v0.1.0-alpha.x/v0.1.0-alpha.0/doc/index.html) *(July 2, 2026)* - **@latest**
- [v0.1.0-alpha.1](releases/v0.x/v0.1.x/v0.1.0-alpha.x/v0.1.0-alpha.1/doc/index.html) *(July 8, 2026)* - **@alpha**
Loading