{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":441835361,"defaultBranch":"main","name":"NBTify","ownerLogin":"Offroaders123","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-12-26T07:37:02.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/65947371?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1724575173.0","currentOid":""},"activityList":{"items":[{"before":"ebe570b81c992f98057e204c68dc3f0fea280455","after":"965dd23f19cb41e23bf61b104f1250228569117e","ref":"refs/heads/main","pushedAt":"2024-08-25T08:39:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Big Updates ๐Ÿš€\n\nOk, I think I'm going to move up to v2.0.0!\n\nThis is mostly because I plan to make API changes fairly soon, and a lot of progress has been made for this project over the last few months (relatively haha, I don't think the progress has been as speedy as when it first started though)\n\nI'd say the biggest set of changes (going through the diffs, there's so many to count, aaah!) are:\n\n- little-varint support! (added today)\n- SNBT reading and writing are now functional rather than class-based (might go back on one of these, we'll see). The main thing for wanting to do this is to allow projects like Dovetail to have access to parsing tags of any kind, rather than only root tags, say for input elements for the NBT tree view.\n- MUTF-8 support\n- Tag type generics (helpful for Region-Types)\n- ArrayTag aliases (say like passing a `Uint8Array` into NBTify, it will accept it as a `IntArrayTag` now! Not exclusively `Int8Array`)\n- Removed `NBTError` in favor of figuring out a better solution for it later\n- Improved CLI file type resolutions\n\nI went back on a few of the changes from the last npm version (or two), having to do with the NBTData prop validations, and things around `StorageVersion` and `bedrockLevel`.\n\nI this this publish took so long because I had started experimenting with all of the implementation backing refactorings, and I ended up reverting a bunch of them, because they seemed better in concept than in execution. Then I kind of lost steam for working on the project, because that left me stranded not knowing where I was at, and whether I was moving forward with it. With a little work later on though, I ended up diffing the remnants out again, and now we are where we have things now. That let me start brainstorming new and existing issue fixes again.\n\nBeen going back and listening to my old music from over the last few years, listening to \"Receptacle / Incinerator / Demolisher / Coffee Cake\" right now. Lots cooler stuff than I remembered ever writing! Lost of lore lol.","shortMessageHtmlLink":"Big Updates ๐Ÿš€"}},{"before":null,"after":"46d2271182c17092d9a26db0043f3f0a6e5825aa","ref":"refs/heads/exp-smooth-api","pushedAt":"2024-08-25T06:29:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Smooth API Demo\n\nLooking into restructuring the layout of the public API, both in how you import from it, and how the exported functionalities are named. When I check out how people are using the library, it seems like they don't read the documentation too closely (understandable), so they use extra API calls that don't have to be there. It seems like people want to use `NBT.parse()` more than `NBT.read()`, while one is for binary files, and one is for SNBT files. I can see how they might think `read()` is for reading from the file system, and maybe instead they think `parse()` is to just read arbitrary data. NBTify is meant to be used specifically outside of the file system though, so neither API feature would worry about that. Not all libraries are like that though, so I can see why people think that.\n\n#47\n\nThis is a demo I made the other day of how it might make sense to see the public API look. This commit experiments with that as a demo in mind.\n\n```js\n// @ts-check\n\nimport { Buffer } from \"node:buffer\";\nimport * as NBT from \"nbtify\";\n\nconst buffer = Buffer.alloc(25);\nconst data = await NBT.readBinary(buffer);\n\nNBT.writeBinary; NBT.readString; NBT.writeString;\n```","shortMessageHtmlLink":"Smooth API Demo"}},{"before":"9bc4348da21e5f69c49125eb01087b23f0d162c9","after":"ebe570b81c992f98057e204c68dc3f0fea280455","ref":"refs/heads/main","pushedAt":"2024-08-25T06:12:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"NBTError Removal\n\nRemoving this in favor of looking into a better solution later down the road.\n\nThis is breaking for Bedrock-LevelDB, but I also don't want to rely on how this is currently setup, I intend to start making the code for this much better, and in doing that I have to make breaking changes where it can lead to success later.\n\n#31","shortMessageHtmlLink":"NBTError Removal"}},{"before":"629f2b2776be60b146545fa735f7d266da3bb54d","after":"9bc4348da21e5f69c49125eb01087b23f0d162c9","ref":"refs/heads/main","pushedAt":"2024-08-25T05:51:31.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"CLI Varint + Unit Tests\n\nAdded two unit tests for the new Varint implementation, as well as a fix for realizing the CLI implementation wasn't quite setup to handle Varint in the previous commit.\n\nThese two files were from the PocketMine BedrockData repo. It was my casual investigations of looking into parsing those files which lead me to looking into implementing this again.\nhttps://github.com/pmmp/BedrockData\n\n#34","shortMessageHtmlLink":"CLI Varint + Unit Tests"}},{"before":"6852f94d72117899947a21b5e75d0d71874674a0","after":"629f2b2776be60b146545fa735f7d266da3bb54d","ref":"refs/heads/main","pushedAt":"2024-08-25T05:44:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"CLI Varint + Unit Tests\n\nAdded two unit tests for the new Varint implementation, as well as a fix for realizing the CLI implementation wasn't quite setup to handle Varint in the previous commit.","shortMessageHtmlLink":"CLI Varint + Unit Tests"}},{"before":"74bf4acc5badb61e57fdc0031dc46161d01f1dfc","after":"6852f94d72117899947a21b5e75d0d71874674a0","ref":"refs/heads/main","pushedAt":"2024-08-25T05:10:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Little Endian Varint ๐Ÿ‘พ\n\nIt works!!!\n\nStemmed from this commit, which I worked on over the last few days. More context for how this ended up being implemented, over in that commit.\n\nhttps://github.com/Offroaders123/NBTify/commit/6bcc7c01696930df3532311f4935b3a0a5c3f5b2\n\nGonna do some more tests, make sure everything is working properly, and maybe add some more unit tests themselves too.\n\nFunny how I thought I was working on this only a few months ago, it was last September ๐Ÿ—ฟ\n\n#34\n\nhttps://github.com/PrismarineJS/prismarine-nbt/issues/77","shortMessageHtmlLink":"Little Endian Varint ๐Ÿ‘พ"}},{"before":"47d78a22e77819770d14c3b9eb0ce82f48833754","after":"74bf4acc5badb61e57fdc0031dc46161d01f1dfc","ref":"refs/heads/main","pushedAt":"2024-08-21T01:18:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Complete Full Typings\n\nI'm not sure what I can do specifically for this yet, this project feels like a complete disaster to me now at this point, kind of like how STE felt for a bit, before the rehash. Even that feels a bit of a mess even with the SolidJS migration though.\n\nI want to make the code quality for this much better, but I'm not completely sure yet what specific areas should be changed, I know things just feel very off though. I think the scopes of my functions are too big, and the typings are too complex at the low level implementation. I want to make it easier to understand the underlying implementation of things, but still allow the overarching API to be modular for users.\n\nMy first thought was to set up the project with complete typings for existing implicit types, so I can help myself understand what needs the most work here. I think I either try to build onto things from the bottom up, or the top down, and it doesn't seem to work either way. Starting fresh leads to forgetful code, and building on top of existing things makes it a mess. Maybe I just need to refactor the scope of things? That's my current feeling. It's hard to adjust the code when you notice your making the same changes that let the project to this point in the first place. It's like everything now is exactly how I wanted it to be back then, but now that we're here, that's not cutting it for me. A very interesting situation, and I think it means/is pointing me towards that I have plenty more to learn in terms of structuring implementations and scoping of things.","shortMessageHtmlLink":"Complete Full Typings"}},{"before":"bb338a0e01db74435fd61b2a4d6f1483d805358c","after":"47d78a22e77819770d14c3b9eb0ce82f48833754","ref":"refs/heads/main","pushedAt":"2024-06-11T08:45:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Format Typing Strictness","shortMessageHtmlLink":"Format Typing Strictness"}},{"before":"8126a889d59dc176e42a82a2162c3ce239d47383","after":"bb338a0e01db74435fd61b2a4d6f1483d805358c","ref":"refs/heads/main","pushedAt":"2024-06-11T08:23:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Compression Typing Strictness\n\nI'm not completely sure I still need the `.catch()` calls, but I'm not going to remove them, because that seems to cause errors. Same with needing to `await` each of their parent function calls, that doesn't work in the browser still for some reason, from the looks of it.","shortMessageHtmlLink":"Compression Typing Strictness"}},{"before":"aa14ae8c86f0707b35b81c6a3ee53d58307b9f3d","after":"8126a889d59dc176e42a82a2162c3ce239d47383","ref":"refs/heads/main","pushedAt":"2024-06-11T08:04:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Primitive Typing Strictness\n\nGoing to go back through the library and make it stronger in missing places, as well as fixing places that I changed along the way, unknowingly.\n\nI didn't have the return types here because I thought the assertions could just be enough to declare what they were, but now I think I'm full on board with using type annotations for things, it definitely helps you keep track of your intent a lot better, which is what I like it for, to keep track of what is temporary, and what needs work. If something has a type annotation, it's more likely to be marked as something complete, in my head.","shortMessageHtmlLink":"Primitive Typing Strictness"}},{"before":"85c256f84d8a3ddb39a3f24cc9058d7fc6f09206","after":"aa14ae8c86f0707b35b81c6a3ee53d58307b9f3d","ref":"refs/heads/main","pushedAt":"2024-06-11T07:13:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"TAG Byte Reading Validation\n\nRealized I shouldn't be making assertions at this part. This can make things more secure!\n\nI want to look through the code again after this, and refactor it, but not to move things around, but to see if there's any weird things still lying around the codebase.\n\nSolar Winds, it kind of sounds like Pineapple Thief at the beginning :D\n\nListened to Insurgentes and Grace for Drowning disc 1 today :D","shortMessageHtmlLink":"TAG Byte Reading Validation"}},{"before":"b950da648eb1999c63cd62c4cd8bf1e99229821e","after":"85c256f84d8a3ddb39a3f24cc9058d7fc6f09206","ref":"refs/heads/main","pushedAt":"2024-06-06T23:11:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Args Validations\n\nNow that the constructor doesn't specifically handle these, the CLI does instead.","shortMessageHtmlLink":"Args Validations"}},{"before":"64407ec3ea5c8a78b91bf44d95643a1ed8b75f74","after":null,"ref":"refs/heads/exp-pnbt-converter","pushedAt":"2024-06-06T22:46:55.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"}},{"before":"8080325a5b3e62c734b59b91f35074d48ab82fea","after":"b950da648eb1999c63cd62c4cd8bf1e99229821e","ref":"refs/heads/main","pushedAt":"2024-06-04T09:30:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Optional Spacing\n\nI think this is kind of annoying, but more consistent at the same time. Both `JSON.stringify()` and `NBT.stringify()` don't format by default, so I question whether the CLI doing that would make any sense. From a UX perspective I think it makes it easier for the user, but should it be different than how the programming side of it works?","shortMessageHtmlLink":"Optional Spacing"}},{"before":"155b070fd208034fa37e338d74b99feb8fcb5ea7","after":"8080325a5b3e62c734b59b91f35074d48ab82fea","ref":"refs/heads/main","pushedAt":"2024-06-04T09:17:36.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Any Extension Detection + Parser Args\n\nFurther flattening, shouldn't access variables outside the scope of the function!","shortMessageHtmlLink":"Any Extension Detection + Parser Args"}},{"before":"8b9d1a51cecc221f551e8c17788c3f9a850a6857","after":"155b070fd208034fa37e338d74b99feb8fcb5ea7","ref":"refs/heads/main","pushedAt":"2024-06-04T08:34:48.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Optional Format\n\nThis usage is okay actually.","shortMessageHtmlLink":"Optional Format"}},{"before":null,"after":"64407ec3ea5c8a78b91bf44d95643a1ed8b75f74","ref":"refs/heads/exp-pnbt-converter","pushedAt":"2024-06-04T06:44:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Prismarine-NBT Converter Demo\n\nI used this concept in part of what I think was Region-Types, a few months ago. I was curious what this might look like as a concept if it were built into NBTify itself. The idea is that you'd be able to have a pre-existing Prismarine-NBT parsed NBT file object, and NBTify would know how to convert those shapes into the object structure that it uses, like it's primitives and things like that. Ideally I would just map the values themselves, rather than reencoding the buffers like this, I was curious just how close this would get though, since it has worked for me already, it just might be more extra computations that don't have to be there.\n\nWhat do you think? Is writing it back to a file, and re-reading it better than just mapping over to the other object shapes? Maybe this really is just faster. I have no data to back up which one is better, but I do like the simplicity of this, it works well with the possibility of combining with the other libraries as well. This is a niche thing though, so I'm not sure I'm going to add this anyways.","shortMessageHtmlLink":"Prismarine-NBT Converter Demo"}},{"before":"f132db1e987fc437f27f5409fb67e6f046ea02a8","after":"8b9d1a51cecc221f551e8c17788c3f9a850a6857","ref":"refs/heads/main","pushedAt":"2024-05-16T21:27:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Stringify Primitive Flattening\n\nWanted to fix this a while back, glad it can be possible now! I don't have to construct the primitive wrappers to directly write a given value as a specific SNBT type. I'm not sure this did much in terms of performance (making unnecessary objects for each array item, to just be discarded over again), but it was definitely unnecessary. This is the kind of thing I think ThePrimeagen mentions to look out for, making things in unnecessary or repetitive times.\n\nhttps://minecraft.wiki/w/NBT_format#SNBT_format","shortMessageHtmlLink":"Stringify Primitive Flattening"}},{"before":"8bed4c78b8d5c961d0d0955cb0e3876d9e25d52c","after":"f132db1e987fc437f27f5409fb67e6f046ea02a8","ref":"refs/heads/main","pushedAt":"2024-05-14T10:43:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"MUTF-8 Test, Fix!\n\nThis was an interesting one! Thankfully I found an issue page about MUTF-8 handling on the repo for Twoolie/NBT, the Python project. It gave me some insight and a file to test against. I wrote my own script to slim it down a bunch, and dedupe the tags that are used multiple times. It's crazy how big just book text can get!\n\nI used this actual version of NBTify in this commit, to write the new content to the file. That's also why I diffed it out, I wanted to make sure when I slimmed it down that the content coming out of it was actually what it was supposed to be as well. When using older NBTify, it didn't work correctly, because MUTF-8 handles things different than standard UTF-8.\n\n```js\n// @ts-check\n\nimport { readFile, writeFile } from \"node:fs/promises\";\nimport * as NBT from \"./NBTify/src/index.ts\";\n\nconst data = await readFile(\"./hotbar.nbt\");\n\nconst trimmed = data.subarray(0x000BAE96, 0x000CA7C2);\nconsole.log(trimmed);\n\n/** @type {NBT.NBTData} */\nconst hotbar = await NBT.read(data);\n\nconst book = hotbar.data[0][1].tag.BlockEntityTag.Items[12];\nconsole.log(book);\n\nconst mutf8Demo = await NBT.write(book);\nconsole.log(mutf8Demo);\n\nconst demoDiff = mutf8Demo.subarray(1, -2);\nconsole.log(Buffer.compare(trimmed, demoDiff));\n\nawait writeFile(\"./alien-book.nbt\", mutf8Demo);\n```\n\nhttps://github.com/Offroaders123/NBTify/issues/42\nhttps://github.com/Offroaders123/NBTify/issues/44\nhttps://github.com/twoolie/NBT/issues/144#issuecomment-943840281\nhttps://github.com/twoolie/NBT/issues/144\n\nI'm still not sure I'm going to use the dependency itself or if I should just emded that into NBTify on it's own. I think I may just use it as a dependency, as I've been trying to get more used to not reinventing the wheel for everything, unless that has benefits. The MUTF-8 library already does everything I need it to, and it's ESM TypeScript, so I'm not sure what other reason I have to not just use it, it's great! Eventually I want to move my compression handling into a separate module too, so I will have to use module resolution for that down the road either way. I say heck to it! Let's do it :) Gonna look into if there's anything I'm forgetting, before doing that though. I really like having the ability to use projects like these (NBTify) without needing a transpilation or build step. Modern CDNs seem to handle this nicely, so we'll see.","shortMessageHtmlLink":"MUTF-8 Test, Fix!"}},{"before":"764938d99837e5a62957e049437555196a3f43f1","after":"8bed4c78b8d5c961d0d0955cb0e3876d9e25d52c","ref":"refs/heads/main","pushedAt":"2024-05-14T07:45:42.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Future Formatting!\n\nBeen slowly taking this route over in other projects of mine. Now I think I'm fully on board with using spaces in more places for formatting things! I used to not use them in some spots, and I think it was a habit I had from back when I very first started learning JavaScript. Like the Code.org days, that kind of vibe.","shortMessageHtmlLink":"Future Formatting!"}},{"before":"8befae82dc00b2d5c1887c5883fe6fe68cf52625","after":"764938d99837e5a62957e049437555196a3f43f1","ref":"refs/heads/main","pushedAt":"2024-05-14T07:09:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Read v1.90.1 Collapsing\n\nStorm Corrosion - Ljudet Innan, Happy, Lock Howl","shortMessageHtmlLink":"Read v1.90.1 Collapsing"}},{"before":"e14e0d134be185baa10175d154b5e736f3edc90b","after":"8befae82dc00b2d5c1887c5883fe6fe68cf52625","ref":"refs/heads/main","pushedAt":"2024-04-25T08:18:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Tag-specific Method Flattening (for diffs)\n\nThis may be temporary, I'm exploring this to help with understanding what else I changed in the codebase from over the last few months. I'm going to make a few other changes like that again here soon too.","shortMessageHtmlLink":"Tag-specific Method Flattening (for diffs)"}},{"before":"b031e6ba9d546813243975ee31b216e1b3c4ae48","after":"e14e0d134be185baa10175d154b5e736f3edc90b","ref":"refs/heads/main","pushedAt":"2024-04-25T07:58:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Class Revertnaming","shortMessageHtmlLink":"Class Revertnaming"}},{"before":"ae90da4a3beb5f50407c53715754f8ae4048c8ae","after":"b031e6ba9d546813243975ee31b216e1b3c4ae48","ref":"refs/heads/main","pushedAt":"2024-04-25T07:50:29.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Formatting, Reordering, Indentation\n\nZiltoid & Ki Podcasts\n\nBrought things back to more similar organization to the original classes.","shortMessageHtmlLink":"Formatting, Reordering, Indentation"}},{"before":"e5f61fc1400e1f8d7ec4ab3969e57e70e7cd8421","after":null,"ref":"refs/heads/exp-fp-reader-writer","pushedAt":"2024-04-22T19:32:31.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"}},{"before":"e203756fec7df37f2ff91c9db0de62231dadd9ed","after":"ae90da4a3beb5f50407c53715754f8ae4048c8ae","ref":"refs/heads/main","pushedAt":"2024-04-22T18:58:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Unused Class Method Elision","shortMessageHtmlLink":"Unused Class Method Elision"}},{"before":"6e14d868893658560a0672a9f78fde561d0cc06e","after":"e203756fec7df37f2ff91c9db0de62231dadd9ed","ref":"refs/heads/main","pushedAt":"2024-04-22T18:56:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Class Field/Method Privacy\n\nThis actually noticeably helps with seeing what is used in the code as well! I guess I could just remove the `export` modifiers too, that has the same effect.\n\nWow, yeah I'm hearing a huge crossover in tone for Thank You Scientist and Snarky Puppy. \"Alma\" really reminds me of something that could be off of Terraformer. It's neat for things to click like that, because I already knew Puppy and this album long before TYS.\n\nSame with the crossover with Animals's influence from Matt, and Kris' style which I mentioned previously. Really neat. It's probably just a genre thing, I think I'm picking up how those guys have brought fusion aspects over to other genres though, that's more the part that's the new realization. It's like they upstreamed jazz fusion into the \"more main\" prog scene. I want to do that with the Keneally sound and metal. Maybe that's already Devin haha, especially since \"Empath\" (Mike plays and help produce on that!).","shortMessageHtmlLink":"Class Field/Method Privacy"}},{"before":"1b65eacdf3e4e2b70e697db6f9e6878dfe1237e0","after":"6e14d868893658560a0672a9f78fde561d0cc06e","ref":"refs/heads/main","pushedAt":"2024-04-22T18:40:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Re-Classing for Readers and Writers\n\nPhoebus + Metal!!! I want that combo. Gorod Puppy. Thank You Devin.\n\nThe functional setup for read/write is a bit confusing and or convoluted I feel like, so I am looking to go back to classes for those. I'm not sure I want to enable top-level support for reading indivudual tags either, maybe a top-level `readTag()` can work instead. You can choose from `readTag()` or `readRoot()`. I think doing that also elevates the need for needing to handle various config options, say like endianness and all things under that umbrella. I think having to explicitly name out all of your config when reading a tag on it's own seems necessary. If you just want to read a plain `TAG_Byte`, it should need to have an absolute format to read by. I'm not sure, I think I just don't fully get the need to parse individual NBT tags on their own, outside of a file. At least for what I use NBTify for, that's the deal I think.\n\nWoah, a passage in \"Fair Play\" reminds me of \"Sunday\" from Cab! That's a cool sonic connection.\n\n\"Native Sons\" kind of reminds me of Matt Garstka's playing! At least I hear where he gets his sound from I think. It reminds me of Kris Myers too. I really like The Bird Brain and \"In the Trees\" from Scambot 2. Kidzapunk!","shortMessageHtmlLink":"Re-Classing for Readers and Writers"}},{"before":"e5f61fc1400e1f8d7ec4ab3969e57e70e7cd8421","after":"1b65eacdf3e4e2b70e697db6f9e6878dfe1237e0","ref":"refs/heads/main","pushedAt":"2024-04-22T18:01:09.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Async Iterator Fallback\n\nLooked more into the browser support for this, and Caniuse seems to be a little behind on it. It says only very new versions of Chrome support it, and Firefox. I thought it's been around longer than that though? Either way, Node supports it too (probably because of the Chrome part, I don't think it supported it before either, so maybe it did just get added to Chrome? I'm confused lol), but Safari still doesn't.\n\nI demoed out the `for await` loop here in all three browsers, and Node, and everything as of now supports it, except for Safari. The metrics for that only means the latest versions of the environments though, so I'm not going to call it a complete dive in. I'm still going to use the polyfill I have. TS doesn't have types for it yet either, so that's another one to look out for. Once TS has types for things, that usually means it's supported in a larger variety of places.\n\nhttps://www.reddit.com/r/webdev/comments/11n4h7y/stream_is_not_async_iterable/\nhttps://jakearchibald.com/2017/async-iterators-and-generators/\nhttps://caniuse.com/mdn-api_readablestream_--asynciterator\n\n```html\n\n\n```","shortMessageHtmlLink":"Async Iterator Fallback"}},{"before":"db831b4403564e4bb448bb98c47072a34afc51fe","after":"e5f61fc1400e1f8d7ec4ab3969e57e70e7cd8421","ref":"refs/heads/main","pushedAt":"2024-03-29T21:39:14.000Z","pushType":"push","commitsCount":44,"pusher":{"login":"Offroaders123","name":"Brandon Bennett","path":"/Offroaders123","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65947371?s=80&v=4"},"commit":{"message":"Writer Builder Usage\n\nNot completely sure this is how things completely are meant to work, but it's to help with building things simpler. Inspired by help in discussion from @peacefulotter.\n\nhttps://github.com/peacefulotter/minecraft-server\nhttps://wiki.vg/Protocol#Data_types\n\nI may be trying to broaden the use of NBTify too far by exposing these methods as part of the API, I'm not sure how I feel about that yet.\n\nI do think I need something similar for my MCRegionJS project though, since LCE uses a custom non-NBT binary format for most chunk versions.\nhttps://github.com/Offroaders123/MCRegionJS\n\nThis seems to be the same concept that UtterEvergreen's and Jerrin's projects use as well, with the `DataInputManager` and `DataOutputManager` classes (maybe it's just `DataManager`).\nhttps://github.com/zugebot/LegacyEditor\n\nThis is the general concept for it:\n\n```ts\n// the API is weird, I still need to adjust it to look right, since it's still internally-shaped atm.\nNBT.writeDouble(undefined, 5).trimmedEnd();\n```\n\nI also still have to test if building plain buffers works like this. I still have to do that with the SNBT ones too, as those I definitely want to make exposable. Dovetail will use that for the UI, when editing tags from the tree view GUI. I want to add a dialog popup that shows you the editable SNBT just for that plain tag. That will make it really simple to derive the UI from that too, because it's just a simple parse step, rather than a class kind of thing. NBTify's use of primitives makes it kind of interesting to build the UI from it. I think using string indexing for keys and such is probably the way I'll go for it.","shortMessageHtmlLink":"Writer Builder Usage"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEo2j4_gA","startCursor":null,"endCursor":null}},"title":"Activity ยท Offroaders123/NBTify"}