com.wallstop-studios.unity-helpers
Version:
Treasure chest of Unity developer tools
198 lines (197 loc) • 12.6 kB
JSON
{
"name": "com.wallstop-studios.unity-helpers",
"version": "3.3.0",
"displayName": "Unity Helpers",
"description": "Treasure chest of Unity developer tools",
"unity": "2021.3",
"keywords": [
"inspector-attributes",
"custom-drawers",
"editor-tools",
"spatial-tree",
"prng",
"random",
"serialization",
"data-structures",
"effects-system",
"relational-components",
"quadtree",
"kdtree",
"rtree",
"octree",
"serializable-dictionary",
"serializable-hashset",
"dependency-injection",
"di-integration",
"sprite-tools",
"animation-tools",
"extensions",
"utility",
"performance",
"protobuf",
"json"
],
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/wallstop/unity-helpers.git"
},
"bugs": {
"url": "https://github.com/wallstop/unity-helpers/issues"
},
"signature": "unsigned",
"author": "wallstop studios <wallstop@wallstopstudios.com> (https://wallstopstudios.com)",
"homepage": "https://wallstop.github.io/unity-helpers",
"documentationUrl": "https://wallstop.github.io/unity-helpers",
"licensesUrl": "https://wallstop.github.io/unity-helpers/project/license/",
"samples": [
{
"displayName": "DI – VContainer",
"description": "LifetimeScope registration, scene-wide assignment, and runtime BuildUpWithRelations.",
"path": "Samples~/DI - VContainer"
},
{
"displayName": "DI – Zenject",
"description": "SceneContext installer, scene-wide assignment, and prefab instantiation with relations.",
"path": "Samples~/DI - Zenject"
},
{
"displayName": "DI – Reflex",
"description": "SceneScope installer, scene scan, and runtime Container helpers.",
"path": "Samples~/DI - Reflex"
},
{
"displayName": "Relational Components – Basic",
"description": "Attribute-based auto-wiring without DI; parent/sibling/child examples.",
"path": "Samples~/Relational Components - Basic"
},
{
"displayName": "Serialization – JSON",
"description": "System.Text.Json with Unity converters; pretty and fast options.",
"path": "Samples~/Serialization - JSON"
},
{
"displayName": "Random – PRNG",
"description": "PCG seeds, floats, Gaussian, and list sampling.",
"path": "Samples~/Random - PRNG"
},
{
"displayName": "Logging – Tag Formatter",
"description": "UnityLogTagFormatter decorators, runtime toggles, and logging extension demos.",
"path": "Samples~/Logging - Tag Formatter"
},
{
"displayName": "Spatial Structures – 2D and 3D",
"description": "QuadTree2D, KdTree2D nearest neighbors, SpatialHash2D queries.",
"path": "Samples~/Spatial Structures - 2D and 3D"
},
{
"displayName": "UI Toolkit – MultiFile Selector (Editor)",
"description": "EditorWindow using MultiFileSelectorElement for multi-file picking.",
"path": "Samples~/UI Toolkit - MultiFile Selector (Editor)"
},
{
"displayName": "UGUI – EnhancedImage",
"description": "Programmatic Canvas setup and HDR-tinted EnhancedImage.",
"path": "Samples~/UGUI - EnhancedImage"
}
],
"scripts": {
"docs:serve": "bundle exec jekyll serve --baseurl \"\" --livereload",
"docs:build": "bundle exec jekyll build --baseurl \"\"",
"lint:docs": "node ./scripts/run-doc-link-lint.js",
"lint:doc-links": "node ./scripts/run-doc-link-lint.js --verbose",
"lint:code-samples": "node ./scripts/extract-code-samples.js --extract-only",
"lint:code-samples:verbose": "node ./scripts/extract-code-samples.js --verbose --extract-only",
"lint:spelling": "node ./scripts/run-node-bin.js cspell --no-progress --show-suggestions",
"lint:spelling:verbose": "node ./scripts/run-node-bin.js cspell --show-suggestions",
"lint:spelling:config": "node scripts/lint-cspell-config.js",
"lint:spelling:config:fix": "node scripts/lint-cspell-config.js --fix",
"lint:spelling:add": "node scripts/add-cspell-word.js",
"lint:llm": "pwsh -NoProfile -File scripts/lint-llm-instructions.ps1",
"lint:llm:fix": "pwsh -NoProfile -File scripts/lint-llm-instructions.ps1 -Fix",
"lint:llm:verbose": "pwsh -NoProfile -File scripts/lint-llm-instructions.ps1 -VerboseOutput",
"agent:preflight": "pwsh -NoProfile -File scripts/agent-preflight.ps1",
"agent:preflight:fix": "pwsh -NoProfile -File scripts/agent-preflight.ps1 -Fix",
"agent:preflight:verbose": "pwsh -NoProfile -File scripts/agent-preflight.ps1 -VerboseOutput",
"hooks:install": "git config core.hooksPath .githooks && chmod +x .githooks/pre-commit .githooks/pre-merge-commit .githooks/pre-push",
"postinstall": "node scripts/postinstall-hooks.js",
"eol:check": "pwsh -NoProfile -File scripts/check-eol.ps1",
"eol:fix": "pwsh -NoProfile -File scripts/normalize-eol.ps1",
"format:md": "node ./scripts/run-prettier.js --write -- \"**/*.{md,markdown}\"",
"format:md:check": "node ./scripts/run-prettier.js --check -- \"**/*.{md,markdown}\"",
"format:json": "node ./scripts/run-prettier.js --write -- \"**/*.{json,jsonc,asmdef,asmref}\"",
"format:json:check": "node ./scripts/run-prettier.js --check -- \"**/*.{json,jsonc,asmdef,asmref}\"",
"format:js": "node ./scripts/run-prettier.js --write -- \"**/*.js\"",
"format:js:check": "node ./scripts/run-prettier.js --check -- \"**/*.js\"",
"format:yaml": "node ./scripts/run-prettier.js --write -- \"**/*.{yml,yaml}\"",
"format:yaml:check": "node ./scripts/run-prettier.js --check -- \"**/*.{yml,yaml}\"",
"format:check": "npm run format:md:check && npm run format:json:check && npm run format:yaml:check && npm run format:js:check",
"format:fix": "npm run format:md && npm run format:json && npm run format:yaml && npm run format:js",
"lint:changelog": "pwsh -NoProfile -File scripts/lint-changelog.ps1 -VerboseOutput",
"lint:duplicate-usings": "pwsh -NoProfile -File scripts/lint-duplicate-usings.ps1 -VerboseOutput",
"lint:yaml": "pwsh -NoProfile -File scripts/lint-yaml.ps1 -VerboseOutput",
"lint:dependabot": "pwsh -NoProfile -File scripts/lint-dependabot.ps1 -VerboseOutput",
"lint:pwsh-invocations": "pwsh -NoProfile -File scripts/lint-pwsh-invocations.ps1 -VerboseOutput",
"validate:lint-error-codes": "pwsh -NoProfile -File scripts/validate-lint-error-codes.ps1 -VerboseOutput",
"validate:git-push-config": "pwsh -NoProfile -File scripts/validate-git-push-config.ps1",
"test:add-cspell-word": "node scripts/tests/test-add-cspell-word.js",
"test:configure-git-defaults": "bash scripts/tests/test-configure-git-defaults.sh",
"test:lint-dependabot": "pwsh -NoProfile -File scripts/tests/test-lint-dependabot.ps1 -VerboseOutput",
"test:lint-duplicate-usings": "pwsh -NoProfile -File scripts/tests/test-lint-duplicate-usings.ps1 -VerboseOutput",
"test:lint-pwsh-invocations": "pwsh -NoProfile -File scripts/tests/test-lint-pwsh-invocations.ps1 -VerboseOutput",
"test:git-path-helpers": "pwsh -NoProfile -File scripts/tests/test-git-path-helpers.ps1 -VerboseOutput",
"test:postinstall-hooks": "node scripts/tests/test-postinstall-hooks.js",
"test:github-pages-sortable": "node scripts/tests/test-github-pages-sortable.js",
"test:validate-git-push-config": "pwsh -NoProfile -File scripts/tests/test-validate-git-push-config.ps1 -VerboseOutput",
"test:validate-lint-error-codes": "pwsh -NoProfile -File scripts/tests/test-validate-lint-error-codes.ps1 -VerboseOutput",
"test:precommit-integration": "bash scripts/tests/test-precommit-integration.sh",
"lint:markdown": "node ./scripts/run-node-bin.js markdownlint --config .markdownlint.json --ignore-path .markdownlintignore -- \"**/*.md\" \"**/*.markdown\"",
"validate:content": "npm run lint:docs && npm run test:deprecated-external-links && npm run lint:markdown && npm run lint:changelog && npm run lint:yaml && npm run format:check && npm run lint:llm && npm run lint:doc-counts && npm run lint:dependabot && npm run lint:pwsh-invocations && npm run validate:lint-error-codes",
"validate:tests": "npm run lint:tests && npm run test:gitignore-docs && npm run test:sync-script-contracts && npm run test:agent-preflight && npm run test:git-path-helpers && npm run test:postinstall-hooks && npm run test:github-pages-sortable && npm run test:add-cspell-word && npm run test:configure-git-defaults && npm run test:validate-git-push-config && npm run test:git-staging-helpers && npm run test:lint-dependabot && npm run test:lint-duplicate-usings && npm run test:lint-pwsh-invocations && npm run test:validate-lint-error-codes && npm run test:precommit-integration && npm run test:npm-package-signature && npm run test:npm-package-changelog",
"validate:prepush": "npm run validate:content && npm run lint:spelling && npm run eol:check && npm run validate:tests && npm run lint:csharp-naming && npm run lint:duplicate-usings && npm run lint:spelling:config && npm run validate:devcontainer && npm run validate:hook-sync && npm run validate:hook-perms && npm run validate:hook-spell-parity && npm run validate:cspell-files-parity && npm run validate:git-push-config && npm run test:shell-portability",
"validate:devcontainer": "pwsh -NoProfile -File scripts/validate-devcontainer-config.ps1 -VerboseOutput && npm run test:validate-devcontainer-urls && npm run test:post-create",
"validate:hook-sync": "pwsh -NoProfile -File scripts/validate-hook-sync-calls.ps1 -VerboseOutput",
"validate:hook-perms": "bash scripts/validate-hook-permissions.sh",
"validate:hook-spell-parity": "bash scripts/tests/test-hook-spell-parity.sh",
"validate:cspell-files-parity": "bash scripts/tests/test-cspell-hook-files-parity.sh",
"lint:tests": "pwsh -NoProfile -File scripts/lint-tests.ps1 -VerboseOutput",
"lint:doc-counts": "pwsh -NoProfile -File scripts/lint-doc-counts.ps1",
"sync:doc-counts": "pwsh -NoProfile -File scripts/sync-doc-counts.ps1",
"lint:csharp-naming": "pwsh -NoProfile -File scripts/lint-csharp-naming.ps1 -VerboseOutput",
"lint:unity-file-naming": "pwsh -NoProfile -File scripts/lint-unity-file-naming.ps1 -VerboseOutput",
"validate:npm-package": "pwsh -NoProfile -File scripts/validate-npm-package.ps1 -VerboseOutput",
"test:lint-unity-file-naming": "pwsh -NoProfile -File scripts/tests/test-lint-unity-file-naming.ps1 -VerboseOutput",
"test:gitignore-docs": "pwsh -NoProfile -File scripts/tests/test-gitignore-docs.ps1",
"test:sync-script-contracts": "pwsh -NoProfile -File scripts/tests/test-sync-script-contracts.ps1",
"test:agent-preflight": "pwsh -NoProfile -File scripts/tests/test-agent-preflight.ps1",
"test:git-staging-helpers": "bash scripts/tests/test-git-staging-helpers.sh",
"test:deprecated-external-links": "pwsh -NoProfile -File scripts/tests/test-deprecated-external-links.ps1 -VerboseOutput",
"test:validate-devcontainer-urls": "bash scripts/tests/test-validate-devcontainer-urls.sh",
"test:final-newline": "bash scripts/tests/test-final-newline.sh",
"test:post-create": "bash scripts/tests/test-post-create.sh",
"test:wiki-generation": "bash scripts/tests/test-wiki-generation.sh",
"test:shell-portability": "bash scripts/tests/test-shell-portability.sh",
"test:npm-package-signature": "pwsh -NoProfile -File scripts/tests/test-npm-package-signature.ps1 -VerboseOutput",
"test:npm-package-changelog": "pwsh -NoProfile -File scripts/tests/test-npm-package-changelog.ps1 -VerboseOutput",
"verify:tools": "bash scripts/verify-devcontainer-tools.sh",
"codex:login": "bash scripts/codex-login.sh",
"codex:login:browser": "bash scripts/codex-login.sh --browser",
"codex:yolo": "bash scripts/codex-yolo.sh",
"unity:setup-license": "pwsh -NoProfile -File scripts/unity/setup-license.ps1",
"unity:validate": "bash scripts/unity/validate-license-setup.sh",
"unity:setup": "bash scripts/unity/setup.sh",
"unity:compile": "bash scripts/unity/compile.sh",
"unity:test": "bash scripts/unity/run-tests.sh",
"unity:test:editmode": "bash scripts/unity/run-tests.sh --mode editmode",
"unity:test:playmode": "bash scripts/unity/run-tests.sh --mode playmode",
"unity:test:all": "bash scripts/unity/run-tests.sh --mode all",
"unity:generate-activation": "bash scripts/unity/generate-activation.sh",
"unity:retry-license": "bash scripts/unity/retry-license.sh"
},
"devDependencies": {
"cspell": "^10.0.0",
"markdownlint-cli": "^0.48.0",
"prettier": "^3.8.3"
}
}