This commit unifies executable ID structure across categories and scripts, paving the way for more complex ID solutions for #262. It also refactors related code to adapt to the changes. Key changes: - Change numeric IDs to string IDs for categories - Use named types for string IDs to improve code clarity - Add unit tests to verify ID uniqueness Other supporting changes: - Separate concerns in entities for data access and executables by using separate abstractions (`Identifiable` and `RepositoryEntity`) - Simplify usage and construction of entities. - Remove `BaseEntity` for simplicity. - Move creation of categories/scripts to domain layer - Refactor CategoryCollection for better validation logic isolation - Rename some categories to keep the names (used as pseudo-IDs) unique on Windows.
Collections
This directory contains the collection files, which are the central source of truth for scripts and categories within privacy.sexy.
In addition to the collection files, this folder contains two special files:
.schema.yaml: Provides the schema definition for collection files.collection.yaml.d.ts: Defines TypeScript typings for the collection files.
Additional documentation
- Refer to
collection-files.mdfor details on the structure of these files. - To validate these files, use the
validate-collections-yamlscript. For instructions, see itsREADME.md.