{"_id":"com.xmobitea.changx.mini-autogenerate","_rev":"30-e124b5c534b05fae2eca8bb024d24ce4","name":"com.xmobitea.changx.mini-autogenerate","dist-tags":{"latest":"1.5.2"},"versions":{"1.3.6":{"name":"com.xmobitea.changx.mini-autogenerate","version":"1.3.6","keywords":["chang x","changx","xmobitea"],"author":{"url":"https://xmobitea.com","name":"Chang X","email":"changx.develop@gmail.com"},"license":"ISC","_id":"com.xmobitea.changx.mini-autogenerate@1.3.6","maintainers":[{"name":"changx","email":"changx.develop@gmail.com"}],"dist":{"shasum":"5bb016b75bc60cb4536ab0d0619040ec4837c658","tarball":"https://registry.npmjs.org/com.xmobitea.changx.mini-autogenerate/-/com.xmobitea.changx.mini-autogenerate-1.3.6.tgz","fileCount":13,"integrity":"sha512-u+jUhu+Dgg2nrG+HLEENmDVE1tZiU/7gABld8+T4MemlPf8EEm9+8i8KsSQtMCyIS6bNqC1uGF+WhEvxrERR/g==","signatures":[{"sig":"MEUCIBDPyc9zVKaKodjhc9XSaRrGgM8wzgkZFCfz80zxxEgmAiEAkhFk08GPX8EDlo7BlgJ9B8dxCga+LbN/tKofFxAxPRc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4748,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJim348ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqJ0A//R0+ALf5iMncnmthMPJBfjMmdCujP+vyxNx3t0e/N//UCfzQI\r\nuVv5DHU783OVSxkPA5FTjRfnFIA4KbthZMdmX3qRvgkCU31rPl54vAOlY52V\r\nGfrEE5sAbfzODU4zO9ZKQ/bQa6bMMow+CkVkriSQYX0xVSvk5LIHAqajvqlK\r\nTbCx41YaubppwCkNivLeSdIsb3VPKj+sVvnmHAGj3MSQkTe+NviXkYXkeiAW\r\nVDajxnYkXsOkWiYByKfGDVCOV9//ycF7uEs9/dPVE/NKPzjiTRLxiq9kiAgF\r\nIVrIZV/E4PzXZ04tBn6rKi21/Gqf3rIUV6nxnfu0EJQWXswXDZx2X+NNZYfj\r\nhH2emd51Wg5IhvO7L91nBc0rkK4QtPyoTyDLOqL01KgbLNMlw/89KS/tKgUa\r\nOHVS0yPRUz9RFsTbLjUDznRcazfpj0MM3ZJHipsD9Q4JFNw9Wj1MwyOY0GzD\r\nM5qs3LoiyR0aCGz3F/kQuWdfmeukcdEj5jRhWnnJWXwquyogtf6j2o7mvI41\r\ndYYMMNFYPMUJKVX/1fcgkRYX08USEY1ajXyKVuS+JtTJwmBnvdMOZN2uLOZ7\r\n9WebwKdJZ8FlpcSarwo+GpgyxLyb0vy6EvvS7xaoJrk/uJJ+FMpFGD+l51FV\r\nkT8zPS/mJjMGg0BGCRlBbW7Kdtvu3F2Pugw=\r\n=+tyz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","unity":"2020.3","gitHead":"dde3c2bbc82850bc5e5519fcb5de9a8414619166","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"changx","email":"changx.develop@gmail.com"},"_npmVersion":"8.5.5","description":"XmobiTea plugins","directories":{},"displayName":"XmobiTea AutoGenerate","_nodeVersion":"16.15.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/com.xmobitea.changx.mini-autogenerate_1.3.6_1654357564182_0.4624862843341093","host":"s3://npm-registry-packages"}},"1.3.8":{"name":"com.xmobitea.changx.mini-autogenerate","version":"1.3.8","keywords":["chang x","changx","xmobitea"],"author":{"url":"https://xmobitea.com","name":"Chang X","email":"changx.develop@gmail.com"},"license":"ISC","_id":"com.xmobitea.changx.mini-autogenerate@1.3.8","maintainers":[{"name":"changx","email":"changx.develop@gmail.com"}],"dist":{"shasum":"fed24589982e9e377d22e734408d07318202e86d","tarball":"https://registry.npmjs.org/com.xmobitea.changx.mini-autogenerate/-/com.xmobitea.changx.mini-autogenerate-1.3.8.tgz","fileCount":13,"integrity":"sha512-9apX4hqD5xwd1TdyX4e6pTl0DCPY2PG8pP7jG+L5Bi4G994CG5/ncSyc6NDbV8a3Y/QIZidF13YZZ81mC6Akpg==","signatures":[{"sig":"MEQCIGzHgMv1Ss0jhPCt2NGkUZ9/oE0njxsHhewFA/UghnlnAiAAyanCfGliSaH67avyNRbDnFPeZFcUlh/0PaK/kts3Qw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4849,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJincn0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr2SxAAhv7HkBPJgjzoz/TpcU5xzR4yVfiuHH5s6eKynct80yyHrVtp\r\nA+GLlFTFhMvob0wbesW8i9nQ8gd3Bb8yPsDnLkJVi/MsEU6mS1qWxvHiNROP\r\nOVO3x5zpEun4SkgXw6913epuqN+Q2YUH9sYcTSQmMpi9AMJIVtz7DlpIoIQV\r\nQ58o6PmOJKkncWE3156Q5YzuHClfObIdfgTTU3Kf20BXQXleMfdMYZwu7fvX\r\n3tP6A5NSOC26a2m2pUeB7eXAKH37IgK7lL06XPXL4d9JHHXBOcB6S4PNyfwU\r\n7YCj9SuS8hC7Hhe1sEfvlwrkeFEWUr+0RV3Vor7p8xQ8RAM7lSQJr6NuI/vv\r\n6B+J+jwJPMDugB/ZV8EmpGgWJLKLCceU6CAvMcdGGVY2yMp4DwOr3tr+e9rY\r\nuNuIsJaEa6Y/Dd6dgZJ4OGYvl2E2pumiKdGW1YM+2KVQuvceyUhGC80BooVa\r\nmlCjbFnWNGzcmLgYCE4jv/vz+VLesvOw3jZKNmjtykgasjfVHW86qsuINzsz\r\nvsGx7SwVzOKxX4pwlZeRfjTtVb43JkFmBO1lktzAbGGknFzKZwN327lsrWA5\r\neA1b56Y6QBh1eg3BFmAwWKDCCrrUlHgVgGIUKZo/mO07SV40pmYkMw4gFvto\r\n/z8+7SQIgfFwJ0rugVn4VpwM6Ybdc4UHO/w=\r\n=7Txp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","unity":"2020.3","gitHead":"ecde3b303102d5cb1bd036353f7ed1fc8c8c6f3d","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"changx","email":"changx.develop@gmail.com"},"_npmVersion":"8.1.0","description":"XmobiTea Unity package","directories":{},"displayName":"XmobiTea AutoGenerate","_nodeVersion":"16.13.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/com.xmobitea.changx.mini-autogenerate_1.3.8_1654508020812_0.9322021645778278","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"com.xmobitea.changx.mini-autogenerate","version":"1.4.0","keywords":["chang x","changx","xmobitea"],"author":{"url":"https://xmobitea.com","name":"Chang X","email":"changx.develop@gmail.com"},"license":"Apache-2.0","_id":"com.xmobitea.changx.mini-autogenerate@1.4.0","maintainers":[{"name":"changx","email":"changx.develop@gmail.com"}],"dist":{"shasum":"8fa46ff4cf0c214febb180e2e5754033dee8bef8","tarball":"https://registry.npmjs.org/com.xmobitea.changx.mini-autogenerate/-/com.xmobitea.changx.mini-autogenerate-1.4.0.tgz","fileCount":13,"integrity":"sha512-cjvpsa/B7YPwWJ7MF5k4zatuUeDzdadIJVRsElTH54ltZ56yfFAxuFHTY2eX7flZ00u0PxoEfcCWwrfOdcf9bg==","signatures":[{"sig":"MEQCICjZ17SeFd6kTtfObDj/zwDkJ3hyux3c3EsPCqvTFesNAiAEfAIozCiheEdXqCHymgE5mFdi1v4K+Fhw596V9SWqXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16357},"unity":"2020.3","gitHead":"a1df5f68b52782919c752e83a9ec3f96d3102810","_npmUser":{"name":"changx","email":"changx.develop@gmail.com"},"_npmVersion":"10.8.2","description":"XmobiTea Unity Toolkit packages","directories":{},"displayName":"XmobiTea AutoGenerate","_nodeVersion":"20.17.0","dependencies":{"com.xmobitea.changx.app":"1.4.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/com.xmobitea.changx.mini-autogenerate_1.4.0_1772119349007_0.6145249410197204","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"com.xmobitea.changx.mini-autogenerate","version":"1.5.0","keywords":["chang x","changx","xmobitea"],"author":{"url":"https://xmobitea.com","name":"Chang X","email":"changx.develop@gmail.com"},"license":"Apache-2.0","_id":"com.xmobitea.changx.mini-autogenerate@1.5.0","maintainers":[{"name":"changx","email":"changx.develop@gmail.com"}],"dist":{"shasum":"7b15e82ae58c547ed59d1dcc2550cb9926784929","tarball":"https://registry.npmjs.org/com.xmobitea.changx.mini-autogenerate/-/com.xmobitea.changx.mini-autogenerate-1.5.0.tgz","fileCount":17,"integrity":"sha512-4IJzHKaCpbmvvJXJBDG7RX2ZJ5vjhaNYqjhuNU/PlBX+T9Ws7/bmzgeE9Ho/gPsRqSOGhL9kB4q5ru8/oZQ4iw==","signatures":[{"sig":"MEQCIGU9NocO52gusZpT5Zk6Ys0tmoyh0bZmJLgZ6q+7ukzkAiBRFOvtZAavfLk+7Bt9r3IoUonf9yHVk5eo80UvDyM9Mw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29374},"unity":"2022.3","gitHead":"8a69be78344a9d715d5aae334a681f1bf75ce2ea","_npmUser":{"name":"changx","email":"changx.develop@gmail.com"},"_npmVersion":"10.8.2","description":"XmobiTea Unity Toolkit packages","directories":{},"displayName":"XmobiTea AutoGenerate","_nodeVersion":"20.17.0","dependencies":{"com.xmobitea.changx.app":"1.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/com.xmobitea.changx.mini-autogenerate_1.5.0_1778689532581_0.5399513019488347","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"com.xmobitea.changx.mini-autogenerate","version":"1.5.1","keywords":["chang x","changx","xmobitea"],"author":{"url":"https://xmobitea.com","name":"Chang X","email":"changx.develop@gmail.com"},"license":"Apache-2.0","_id":"com.xmobitea.changx.mini-autogenerate@1.5.1","maintainers":[{"name":"changx","email":"changx.develop@gmail.com"}],"dist":{"shasum":"290440ec6e03cc0c326dabc207ab0f636686221b","tarball":"https://registry.npmjs.org/com.xmobitea.changx.mini-autogenerate/-/com.xmobitea.changx.mini-autogenerate-1.5.1.tgz","fileCount":21,"integrity":"sha512-zoOE2W2pqhQvvtGVLD9JfdRGlELRKDDsLprWvlSYjn6tLmhTzoIbCQ2+5wjRF+g7ol0E/3szG0u742CJZJ0O0w==","signatures":[{"sig":"MEUCICXuJb4L95m9dMOrgcY15AfZnQmLZ7p5DynoFkJyKhIEAiEAo9v84voTUPU86SKg6wHymB4T3M7hJQu6DrYEqstKdhU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35825},"unity":"2022.3","gitHead":"1b2c94d1025b98af0e93011d9ab7da6239fe627a","_npmUser":{"name":"changx","email":"changx.develop@gmail.com"},"_npmVersion":"10.8.2","description":"XmobiTea Unity Toolkit packages","directories":{},"displayName":"XmobiTea AutoGenerate","_nodeVersion":"20.17.0","dependencies":{"com.xmobitea.changx.app":"1.5.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/com.xmobitea.changx.mini-autogenerate_1.5.1_1780225292798_0.5926516384872738","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"com.xmobitea.changx.mini-autogenerate","version":"1.5.2","displayName":"XmobiTea AutoGenerate","description":"XmobiTea Unity Toolkit packages","unity":"2022.3","dependencies":{"com.xmobitea.changx.app":"1.5.2"},"keywords":["chang x","changx","xmobitea"],"author":{"name":"Chang X","email":"changx.develop@gmail.com","url":"https://xmobitea.com"},"license":"Apache-2.0","_id":"com.xmobitea.changx.mini-autogenerate@1.5.2","gitHead":"9d8761389a09fd51814c64a911448e7715c1dc76","_nodeVersion":"20.17.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-EPcsBLkzmXPv/qIFibuaHK52sqK8Nt+A4Wtzx2v6IotbDPKSPnrOQZhlbSUqt5bI+A5KcLr4PM+recFGuX9wRw==","shasum":"fc307145c2e347bbc48c340606512a93469827c2","tarball":"https://registry.npmjs.org/com.xmobitea.changx.mini-autogenerate/-/com.xmobitea.changx.mini-autogenerate-1.5.2.tgz","fileCount":21,"unpackedSize":36668,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC8LTJxtr20dE+fXTBjv8UqEg2djbs4V5T8yJPHVigT5gIhAJKTC1QV9kjB0+yjVuspJWeRhZofIVCzQeMtKa/TGX9W"}]},"_npmUser":{"name":"changx","email":"changx.develop@gmail.com"},"directories":{},"maintainers":[{"name":"changx","email":"changx.develop@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/com.xmobitea.changx.mini-autogenerate_1.5.2_1780326548523_0.9233753776186528"},"_hasShrinkwrap":false}},"time":{"created":"2021-04-08T11:06:13.708Z","modified":"2026-06-01T15:09:08.777Z","1.0.0":"2021-04-08T11:06:13.885Z","1.0.1":"2021-04-08T11:36:52.281Z","1.0.2":"2021-04-08T11:51:08.095Z","1.1.0":"2021-04-23T11:22:20.074Z","1.2.0":"2021-08-07T12:25:24.245Z","1.2.1":"2021-08-07T12:33:09.500Z","1.3.0":"2022-06-04T12:45:50.472Z","1.3.1":"2022-06-04T14:13:13.293Z","1.3.5":"2022-06-04T15:13:11.086Z","1.3.6":"2022-06-04T15:46:04.401Z","1.3.8":"2022-06-06T09:33:40.952Z","1.4.0":"2026-02-26T15:22:29.141Z","1.5.0":"2026-05-13T16:25:32.729Z","1.5.1":"2026-05-31T11:01:32.943Z","1.5.2":"2026-06-01T15:09:08.664Z"},"author":{"name":"Chang X","email":"changx.develop@gmail.com","url":"https://xmobitea.com"},"license":"Apache-2.0","keywords":["chang x","changx","xmobitea"],"description":"XmobiTea Unity Toolkit packages","maintainers":[{"name":"changx","email":"changx.develop@gmail.com"}],"readme":"# XmobiTea AutoGenerate\r\n\r\nEditor-only Unity helper package for writing generated text files and normalizing names into restricted ASCII tokens that callers can reuse in generated code.\r\n\r\n## AI Entry Points\r\n\r\nUse the smallest file for the task.\r\n\r\n| Need | Use |\r\n| --- | --- |\r\n| Generate editor code or sanitize a constant name | `AI_USAGE.md` |\r\n| Exact signatures, namespace, assembly, menu/MCP availability | `AI_API_REFERENCE.md` |\r\n| Path, overwrite, refresh, and sanitization edge cases | `AI_BEHAVIOR.md` |\r\n| Package-level rules and maintenance checklist | `AGENTS.md` |\r\n| Missing or conflicting detail | `Editor/AutoGenerate.cs` |\r\n\r\n## Core Contract\r\n\r\n- Editor-only; do not reference from Runtime/player code.\r\n- Namespace: `XmobiTea.MiniAutoGenerate.Editor`.\r\n- Main class: `AutoGenerate`.\r\n- Public methods:\r\n  - `GenerateFile(string fileName, StringBuilder contentBuilder, string fullPath)`\r\n  - `GetConstantName(string name)`\r\n- `GenerateFile(...)` creates `fullPath` when needed, then writes caller-provided content to `fullPath + fileName`.\r\n- `GenerateFile(...)` deletes any existing target before writing the new file, so a failed write can leave the target missing or partially recreated.\r\n- `GenerateFile(...)` refreshes the AssetDatabase only after a successful write.\r\n- `GetConstantName(...)` keeps only ASCII letters/digits and may prepend `_`.\r\n- `GetConstantName(...)` does not preserve `_`, does not handle C# keywords, and does not prevent collisions after normalization.\r\n- No scene setup, settings asset, menu item, editor window, runtime pipeline, or MCP Unity server entrypoint.\r\n\r\n## Common Calls\r\n\r\n```csharp\nusing System.Text;\nusing UnityEditor;\nusing UnityEngine;\nusing XmobiTea.MiniAutoGenerate.Editor;\n\npublic static class ExampleGenerator\n{\n    [MenuItem(\"Tools/Generate ExampleIds.cs\")]\n    public static void Generate()\n    {\n        var contentBuilder = new StringBuilder();\n        contentBuilder.AppendLine(\"public static class ExampleIds\");\n        contentBuilder.AppendLine(\"{\");\n        contentBuilder.AppendLine(\"\\tpublic const string Demo = \\\"Demo\\\";\");\n        contentBuilder.AppendLine(\"}\");\n\n        AutoGenerate.GenerateFile(\n            \"ExampleIds.cs\",\n            contentBuilder,\n            Application.dataPath + \"/XmobiTea-constant/Scripts/\");\n    }\n}\n```\n\r\n```csharp\r\nusing XmobiTea.MiniAutoGenerate.Editor;\r\n\r\nstring id = AutoGenerate.GetConstantName(\"123 Player-Name\");\r\n// \"_123PlayerName\"\r\n```\r\n\r\n```csharp\r\nstring keyword = AutoGenerate.GetConstantName(\"class\");\r\n// \"class\" -- still a C# keyword, so callers generating members must handle this case\r\n```\r\n\r\n## Source Files\r\n\r\n| File | Purpose |\r\n| --- | --- |\r\n| `Editor/AutoGenerate.cs` | editor-only helper implementation |\r\n| `Editor/com.xmobitea.changx.mini-autogenerator.editor.asmdef` | editor-only assembly definition |\r\n\r\n## Package Metadata\r\n\r\n- Package name: `com.xmobitea.changx.mini-autogenerate`\r\n- Editor assembly: `com.xmobitea.changx.mini-autogenerator.editor`\r\n- Unity version: `2022.3+`\r\n- License: `Apache-2.0`\r\n\r\n## Hard No\r\n\r\n- Do not call from runtime assemblies.\r\n- Do not omit the trailing separator in `fullPath`.\r\n- Do not expect delete-then-write behavior to preserve the old file when generation fails.\r\n- Do not expect underscores, symbols, or non-ASCII letters to survive `GetConstantName(...)`.\r\n- Do not expect `GetConstantName(...)` to produce a unique or keyword-safe C# member name by itself.\r\n- Do not treat this as a full code-generation framework.\r\n","readmeFilename":"README.md"}