ticbuild 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.attachments/support_me_on_kofi_beige.png +0 -0
- package/.env.example +3 -0
- package/.prettierignore +10 -0
- package/LICENSE +15 -0
- package/README.md +429 -0
- package/debug/obj/resolvedManifest.ticbuild.jsonc +108 -0
- package/dist/backend/ImportedResource.d.ts +11 -0
- package/dist/backend/ImportedResource.d.ts.map +1 -0
- package/dist/backend/ImportedResource.js +53 -0
- package/dist/backend/ImportedResource.js.map +1 -0
- package/dist/backend/ImportedResourceTypes.d.ts +24 -0
- package/dist/backend/ImportedResourceTypes.d.ts.map +1 -0
- package/dist/backend/ImportedResourceTypes.js +35 -0
- package/dist/backend/ImportedResourceTypes.js.map +1 -0
- package/dist/backend/codeBanking.test.d.ts +2 -0
- package/dist/backend/codeBanking.test.d.ts.map +1 -0
- package/dist/backend/codeBanking.test.js.map +1 -0
- package/dist/backend/importResources.d.ts +4 -0
- package/dist/backend/importResources.d.ts.map +1 -0
- package/dist/backend/importResources.js +58 -0
- package/dist/backend/importResources.js.map +1 -0
- package/dist/backend/importUtils.d.ts +14 -0
- package/dist/backend/importUtils.d.ts.map +1 -0
- package/dist/backend/importUtils.js +77 -0
- package/dist/backend/importUtils.js.map +1 -0
- package/dist/backend/importers/LuaCodeImporter.d.ts +47 -0
- package/dist/backend/importers/LuaCodeImporter.d.ts.map +1 -0
- package/dist/backend/importers/LuaCodeImporter.js +196 -0
- package/dist/backend/importers/LuaCodeImporter.js.map +1 -0
- package/dist/backend/importers/LuaCodeImporter.test.d.ts +2 -0
- package/dist/backend/importers/LuaCodeImporter.test.d.ts.map +1 -0
- package/dist/backend/importers/LuaCodeImporter.test.js.map +1 -0
- package/dist/backend/importers/binaryResourceImporter.d.ts +22 -0
- package/dist/backend/importers/binaryResourceImporter.d.ts.map +1 -0
- package/dist/backend/importers/binaryResourceImporter.js +53 -0
- package/dist/backend/importers/binaryResourceImporter.js.map +1 -0
- package/dist/backend/importers/luaImporter.d.ts +1 -0
- package/dist/backend/importers/luaImporter.d.ts.map +1 -0
- package/dist/backend/importers/luaImporter.js +3 -0
- package/dist/backend/importers/luaImporter.js.map +1 -0
- package/dist/backend/importers/textResourceImporter.d.ts +23 -0
- package/dist/backend/importers/textResourceImporter.d.ts.map +1 -0
- package/dist/backend/importers/textResourceImporter.js +55 -0
- package/dist/backend/importers/textResourceImporter.js.map +1 -0
- package/dist/backend/importers/tic80CartImporter.d.ts +21 -0
- package/dist/backend/importers/tic80CartImporter.d.ts.map +1 -0
- package/dist/backend/importers/tic80CartImporter.js +96 -0
- package/dist/backend/importers/tic80CartImporter.js.map +1 -0
- package/dist/backend/loadAllImports.d.ts +1 -0
- package/dist/backend/loadAllImports.d.ts.map +1 -0
- package/dist/backend/loadAllImports.js +3 -0
- package/dist/backend/loadAllImports.js.map +1 -0
- package/dist/backend/luaBinaryEncoding.d.ts +6 -0
- package/dist/backend/luaBinaryEncoding.d.ts.map +1 -0
- package/dist/backend/luaBinaryEncoding.js +94 -0
- package/dist/backend/luaBinaryEncoding.js.map +1 -0
- package/dist/backend/luaPreprocessor.d.ts +8 -0
- package/dist/backend/luaPreprocessor.d.ts.map +1 -0
- package/dist/backend/luaPreprocessor.js +862 -0
- package/dist/backend/luaPreprocessor.js.map +1 -0
- package/dist/backend/luaPreprocessor.test.d.ts +2 -0
- package/dist/backend/luaPreprocessor.test.d.ts.map +1 -0
- package/dist/backend/luaPreprocessor.test.js.map +1 -0
- package/dist/backend/manifestLoader.d.ts +19 -0
- package/dist/backend/manifestLoader.d.ts.map +1 -0
- package/dist/backend/manifestLoader.js +142 -0
- package/dist/backend/manifestLoader.js.map +1 -0
- package/dist/backend/manifestLoader.test.d.ts +2 -0
- package/dist/backend/manifestLoader.test.d.ts.map +1 -0
- package/dist/backend/manifestLoader.test.js.map +1 -0
- package/dist/backend/manifestTypes.d.ts +454 -0
- package/dist/backend/manifestTypes.d.ts.map +1 -0
- package/dist/backend/manifestTypes.js +28 -0
- package/dist/backend/manifestTypes.js.map +1 -0
- package/dist/backend/project.d.ts +24 -0
- package/dist/backend/project.d.ts.map +1 -0
- package/dist/backend/project.js +159 -0
- package/dist/backend/project.js.map +1 -0
- package/dist/backend/projectCore.d.ts +34 -0
- package/dist/backend/projectCore.d.ts.map +1 -0
- package/dist/backend/projectCore.js +226 -0
- package/dist/backend/projectCore.js.map +1 -0
- package/dist/backend/tic80Resolver.d.ts +6 -0
- package/dist/backend/tic80Resolver.d.ts.map +1 -0
- package/dist/backend/tic80Resolver.js +66 -0
- package/dist/backend/tic80Resolver.js.map +1 -0
- package/dist/buildInfo.d.ts +9 -0
- package/dist/buildInfo.d.ts.map +1 -0
- package/dist/buildInfo.js +13 -0
- package/dist/buildInfo.js.map +1 -0
- package/dist/frontend/build.d.ts +3 -0
- package/dist/frontend/build.d.ts.map +1 -0
- package/dist/frontend/build.js +8 -0
- package/dist/frontend/build.js.map +1 -0
- package/dist/frontend/codeBankWarnings.test.d.ts +2 -0
- package/dist/frontend/codeBankWarnings.test.d.ts.map +1 -0
- package/dist/frontend/codeBankWarnings.test.js.map +1 -0
- package/dist/frontend/core.d.ts +3 -0
- package/dist/frontend/core.d.ts.map +1 -0
- package/dist/frontend/core.js +259 -0
- package/dist/frontend/core.js.map +1 -0
- package/dist/frontend/init.d.ts +7 -0
- package/dist/frontend/init.d.ts.map +1 -0
- package/dist/frontend/init.js +95 -0
- package/dist/frontend/init.js.map +1 -0
- package/dist/frontend/parseOptions.d.ts +7 -0
- package/dist/frontend/parseOptions.d.ts.map +1 -0
- package/dist/frontend/parseOptions.js +68 -0
- package/dist/frontend/parseOptions.js.map +1 -0
- package/dist/frontend/run.d.ts +3 -0
- package/dist/frontend/run.d.ts.map +1 -0
- package/dist/frontend/run.js +63 -0
- package/dist/frontend/run.js.map +1 -0
- package/dist/frontend/watch.d.ts +3 -0
- package/dist/frontend/watch.d.ts.map +1 -0
- package/dist/frontend/watch.js +208 -0
- package/dist/frontend/watch.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +191 -0
- package/dist/index.js.map +1 -0
- package/dist/obj/resolvedManifest.ticbuild.jsonc +110 -0
- package/dist/obj/variables.json +19 -0
- package/dist/utils/algorithms.d.ts +4 -0
- package/dist/utils/algorithms.d.ts.map +1 -0
- package/dist/utils/algorithms.js +15 -0
- package/dist/utils/algorithms.js.map +1 -0
- package/dist/utils/algorithms.test.d.ts +2 -0
- package/dist/utils/algorithms.test.d.ts.map +1 -0
- package/dist/utils/algorithms.test.js.map +1 -0
- package/dist/utils/bin.d.ts +4 -0
- package/dist/utils/bin.d.ts.map +1 -0
- package/dist/utils/bin.js +16 -0
- package/dist/utils/bin.js.map +1 -0
- package/dist/utils/charMap.d.ts +28 -0
- package/dist/utils/charMap.d.ts.map +1 -0
- package/dist/utils/charMap.js +31 -0
- package/dist/utils/charMap.js.map +1 -0
- package/dist/utils/console.d.ts +10 -0
- package/dist/utils/console.d.ts.map +1 -0
- package/dist/utils/console.js +66 -0
- package/dist/utils/console.js.map +1 -0
- package/dist/utils/encoding/b85.d.ts +5 -0
- package/dist/utils/encoding/b85.d.ts.map +1 -0
- package/dist/utils/encoding/b85.js +136 -0
- package/dist/utils/encoding/b85.js.map +1 -0
- package/dist/utils/encoding/codecRegistry.d.ts +333 -0
- package/dist/utils/encoding/codecRegistry.d.ts.map +1 -0
- package/dist/utils/encoding/codecRegistry.js +81 -0
- package/dist/utils/encoding/codecRegistry.js.map +1 -0
- package/dist/utils/encoding/hex.d.ts +3 -0
- package/dist/utils/encoding/hex.d.ts.map +1 -0
- package/dist/utils/encoding/hex.js +30 -0
- package/dist/utils/encoding/hex.js.map +1 -0
- package/dist/utils/encoding/lz.d.ts +12 -0
- package/dist/utils/encoding/lz.d.ts.map +1 -0
- package/dist/utils/encoding/lz.js +271 -0
- package/dist/utils/encoding/lz.js.map +1 -0
- package/dist/utils/enum.d.ts +45 -0
- package/dist/utils/enum.d.ts.map +1 -0
- package/dist/utils/enum.js +135 -0
- package/dist/utils/enum.js.map +1 -0
- package/dist/utils/errorHandling.d.ts +13 -0
- package/dist/utils/errorHandling.d.ts.map +1 -0
- package/dist/utils/errorHandling.js +18 -0
- package/dist/utils/errorHandling.js.map +1 -0
- package/dist/utils/fileSystem.d.ts +16 -0
- package/dist/utils/fileSystem.d.ts.map +1 -0
- package/dist/utils/fileSystem.js +161 -0
- package/dist/utils/fileSystem.js.map +1 -0
- package/dist/utils/help.d.ts +7 -0
- package/dist/utils/help.d.ts.map +1 -0
- package/dist/utils/help.js +87 -0
- package/dist/utils/help.js.map +1 -0
- package/dist/utils/lua/luaUtils.d.ts +1 -0
- package/dist/utils/lua/luaUtils.d.ts.map +1 -0
- package/dist/utils/lua/luaUtils.js +3 -0
- package/dist/utils/lua/luaUtils.js.map +1 -0
- package/dist/utils/lua/lua_alias_expressions.d.ts +20 -0
- package/dist/utils/lua/lua_alias_expressions.d.ts.map +1 -0
- package/dist/utils/lua/lua_alias_expressions.js +233 -0
- package/dist/utils/lua/lua_alias_expressions.js.map +1 -0
- package/dist/utils/lua/lua_alias_literals.d.ts +20 -0
- package/dist/utils/lua/lua_alias_literals.d.ts.map +1 -0
- package/dist/utils/lua/lua_alias_literals.js +165 -0
- package/dist/utils/lua/lua_alias_literals.js.map +1 -0
- package/dist/utils/lua/lua_alias_shared.d.ts +31 -0
- package/dist/utils/lua/lua_alias_shared.d.ts.map +1 -0
- package/dist/utils/lua/lua_alias_shared.js +415 -0
- package/dist/utils/lua/lua_alias_shared.js.map +1 -0
- package/dist/utils/lua/lua_ast.d.ts +9 -0
- package/dist/utils/lua/lua_ast.d.ts.map +1 -0
- package/dist/utils/lua/lua_ast.js +90 -0
- package/dist/utils/lua/lua_ast.js.map +1 -0
- package/dist/utils/lua/lua_fundamentals.d.ts +14 -0
- package/dist/utils/lua/lua_fundamentals.d.ts.map +1 -0
- package/dist/utils/lua/lua_fundamentals.js +93 -0
- package/dist/utils/lua/lua_fundamentals.js.map +1 -0
- package/dist/utils/lua/lua_pack_locals.d.ts +3 -0
- package/dist/utils/lua/lua_pack_locals.d.ts.map +1 -0
- package/dist/utils/lua/lua_pack_locals.js +206 -0
- package/dist/utils/lua/lua_pack_locals.js.map +1 -0
- package/dist/utils/lua/lua_processor.d.ts +65 -0
- package/dist/utils/lua/lua_processor.d.ts.map +1 -0
- package/dist/utils/lua/lua_processor.js +1153 -0
- package/dist/utils/lua/lua_processor.js.map +1 -0
- package/dist/utils/lua/lua_processor.test.d.ts +2 -0
- package/dist/utils/lua/lua_processor.test.d.ts.map +1 -0
- package/dist/utils/lua/lua_processor.test.js.map +1 -0
- package/dist/utils/lua/lua_remove_unused_functions.d.ts +6 -0
- package/dist/utils/lua/lua_remove_unused_functions.d.ts.map +1 -0
- package/dist/utils/lua/lua_remove_unused_functions.js +474 -0
- package/dist/utils/lua/lua_remove_unused_functions.js.map +1 -0
- package/dist/utils/lua/lua_remove_unused_locals.d.ts +3 -0
- package/dist/utils/lua/lua_remove_unused_locals.d.ts.map +1 -0
- package/dist/utils/lua/lua_remove_unused_locals.js +303 -0
- package/dist/utils/lua/lua_remove_unused_locals.js.map +1 -0
- package/dist/utils/lua/lua_rename_allowed_table_keys.d.ts +3 -0
- package/dist/utils/lua/lua_rename_allowed_table_keys.d.ts.map +1 -0
- package/dist/utils/lua/lua_rename_allowed_table_keys.js +157 -0
- package/dist/utils/lua/lua_rename_allowed_table_keys.js.map +1 -0
- package/dist/utils/lua/lua_rename_table_fields.d.ts +3 -0
- package/dist/utils/lua/lua_rename_table_fields.d.ts.map +1 -0
- package/dist/utils/lua/lua_rename_table_fields.js +427 -0
- package/dist/utils/lua/lua_rename_table_fields.js.map +1 -0
- package/dist/utils/lua/lua_renamer.d.ts +3 -0
- package/dist/utils/lua/lua_renamer.d.ts.map +1 -0
- package/dist/utils/lua/lua_renamer.js +229 -0
- package/dist/utils/lua/lua_renamer.js.map +1 -0
- package/dist/utils/lua/lua_simplify.d.ts +3 -0
- package/dist/utils/lua/lua_simplify.d.ts.map +1 -0
- package/dist/utils/lua/lua_simplify.js +541 -0
- package/dist/utils/lua/lua_simplify.js.map +1 -0
- package/dist/utils/lua/lua_utils.d.ts +13 -0
- package/dist/utils/lua/lua_utils.d.ts.map +1 -0
- package/dist/utils/lua/lua_utils.js +58 -0
- package/dist/utils/lua/lua_utils.js.map +1 -0
- package/dist/utils/math.d.ts +2 -0
- package/dist/utils/math.d.ts.map +1 -0
- package/dist/utils/math.js +7 -0
- package/dist/utils/math.js.map +1 -0
- package/dist/utils/math.test.d.ts +2 -0
- package/dist/utils/math.test.d.ts.map +1 -0
- package/dist/utils/math.test.js.map +1 -0
- package/dist/utils/templates.d.ts +3 -0
- package/dist/utils/templates.d.ts.map +1 -0
- package/dist/utils/templates.js +57 -0
- package/dist/utils/templates.js.map +1 -0
- package/dist/utils/tic80/bankSupport.test.d.ts +2 -0
- package/dist/utils/tic80/bankSupport.test.d.ts.map +1 -0
- package/dist/utils/tic80/bankSupport.test.js.map +1 -0
- package/dist/utils/tic80/cartLoader.d.ts +3 -0
- package/dist/utils/tic80/cartLoader.d.ts.map +1 -0
- package/dist/utils/tic80/cartLoader.js +54 -0
- package/dist/utils/tic80/cartLoader.js.map +1 -0
- package/dist/utils/tic80/cartWriter.d.ts +5 -0
- package/dist/utils/tic80/cartWriter.d.ts.map +1 -0
- package/dist/utils/tic80/cartWriter.js +95 -0
- package/dist/utils/tic80/cartWriter.js.map +1 -0
- package/dist/utils/tic80/launch.d.ts +4 -0
- package/dist/utils/tic80/launch.d.ts.map +1 -0
- package/dist/utils/tic80/launch.js +36 -0
- package/dist/utils/tic80/launch.js.map +1 -0
- package/dist/utils/tic80/tic80.d.ts +1149 -0
- package/dist/utils/tic80/tic80.d.ts.map +1 -0
- package/dist/utils/tic80/tic80.js +114 -0
- package/dist/utils/tic80/tic80.js.map +1 -0
- package/dist/utils/utils.d.ts +13 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +109 -0
- package/dist/utils/utils.js.map +1 -0
- package/dist/utils/versionString.d.ts +12 -0
- package/dist/utils/versionString.d.ts.map +1 -0
- package/dist/utils/versionString.js +33 -0
- package/dist/utils/versionString.js.map +1 -0
- package/dist/utils/windowPosition.d.ts +10 -0
- package/dist/utils/windowPosition.d.ts.map +1 -0
- package/dist/utils/windowPosition.js +222 -0
- package/dist/utils/windowPosition.js.map +1 -0
- package/example.ticbuild.jsonc +94 -0
- package/package.json +51 -0
- package/templates/help/build.txt +23 -0
- package/templates/help/init.txt +23 -0
- package/templates/help/main.txt +41 -0
- package/templates/help/run.txt +22 -0
- package/templates/help/tic80.txt +8 -0
- package/templates/help/watch.txt +24 -0
- package/templates/minimal/project.ticbuild.jsonc +43 -0
- package/ticbuild-1.0.0.tgz +0 -0
- package/ticbuild.schema.json +327 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":";;AACA,sBAEC;AAFD,SAAgB,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math.test.d.ts","sourceRoot":"","sources":["../../src/utils/math.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math.test.js","sourceRoot":"","sources":["../../src/utils/math.test.ts"],"names":[],"mappings":";;AACA,iCAA6B;AAE7B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,CAAC,IAAA,YAAK,EAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,IAAA,YAAK,EAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,IAAA,YAAK,EAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,CAAC,IAAA,YAAK,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,IAAA,YAAK,EAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,IAAA,YAAK,EAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,IAAA,YAAK,EAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,CAAC,IAAA,YAAK,EAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,CAAC,IAAA,YAAK,EAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,MAAM,CAAC,IAAA,YAAK,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnC,MAAM,CAAC,IAAA,YAAK,EAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,MAAM,CAAC,IAAA,YAAK,EAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,CAAC,IAAA,YAAK,EAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,IAAA,YAAK,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,IAAA,YAAK,EAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YACtC,MAAM,CAAC,IAAA,YAAK,EAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"AAOA,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAMlG;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMvD"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// so yea i introduce YET another meta language.
|
|
3
|
+
// another variable substitution system; quite simple just for expanding templates:
|
|
4
|
+
// {{VARIABLE_NAME}} gets replaced with the string value.
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.applyTemplateVariables = applyTemplateVariables;
|
|
40
|
+
exports.resolveTemplateDir = resolveTemplateDir;
|
|
41
|
+
const fs = __importStar(require("node:fs"));
|
|
42
|
+
const path = __importStar(require("node:path"));
|
|
43
|
+
function applyTemplateVariables(template, variables) {
|
|
44
|
+
let output = template;
|
|
45
|
+
for (const [key, value] of Object.entries(variables)) {
|
|
46
|
+
output = output.split(`{{${key}}}`).join(value);
|
|
47
|
+
}
|
|
48
|
+
return output;
|
|
49
|
+
}
|
|
50
|
+
function resolveTemplateDir(name) {
|
|
51
|
+
const templateDir = path.resolve(__dirname, "..", "..", "templates", name);
|
|
52
|
+
if (!fs.existsSync(templateDir)) {
|
|
53
|
+
throw new Error(`Template not found: ${templateDir}`);
|
|
54
|
+
}
|
|
55
|
+
return templateDir;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":";AAAA,gDAAgD;AAChD,mFAAmF;AACnF,yDAAyD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKzD,wDAMC;AAED,gDAMC;AAjBD,4CAA8B;AAC9B,gDAAkC;AAElC,SAAgB,sBAAsB,CAAC,QAAgB,EAAE,SAAiC;IACxF,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAC3E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,uBAAuB,WAAW,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bankSupport.test.d.ts","sourceRoot":"","sources":["../../../src/utils/tic80/bankSupport.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bankSupport.test.js","sourceRoot":"","sources":["../../../src/utils/tic80/bankSupport.test.ts"],"names":[],"mappings":";;AAAA,6CAAiD;AACjD,6CAA8C;AAG9C,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,MAAM,GAAqB;YAC/B,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YAC/D,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;SAC7D,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAiB,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAA,2BAAc,EAAC,MAAM,CAAC,CAAC;QAEtC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,GAAqB;YAC/B,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YACzD,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;SAC1D,CAAC;QAEF,MAAM,MAAM,CAAC,IAAA,8BAAiB,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;IAClH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,MAAM,GAAqB,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAExG,MAAM,MAAM,CAAC,IAAA,8BAAiB,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACzD,4DAA4D,CAC7D,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cartLoader.d.ts","sourceRoot":"","sources":["../../../src/utils/tic80/cartLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,SAAS,EAAkB,MAAM,SAAS,CAAC;AAqC1E,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAgB1D"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseTic80Cart = parseTic80Cart;
|
|
4
|
+
const bin_1 = require("../bin");
|
|
5
|
+
const tic80_1 = require("./tic80");
|
|
6
|
+
// each chunk consists of a 4-byte header, then chunk data.
|
|
7
|
+
// offset bits description
|
|
8
|
+
// -----------------------------------------
|
|
9
|
+
// 0 BBBC CCCC B = bank number (0..7), C = chunk type (0..31)
|
|
10
|
+
// 1..2 Sx16 S = size of chunk, 16-bit little-endian
|
|
11
|
+
// 3 Ux1 U = unused / reserved padding
|
|
12
|
+
// 4.. ... chunk data
|
|
13
|
+
function parseThisChunk(data, offset) {
|
|
14
|
+
if (offset + 4 > data.length) {
|
|
15
|
+
throw new Error("Unexpected end of data while reading chunk header");
|
|
16
|
+
}
|
|
17
|
+
const headerByte = data[offset];
|
|
18
|
+
const chunkTypeValue = headerByte & 0x1f;
|
|
19
|
+
const bank = headerByte >> 5;
|
|
20
|
+
const size = (0, bin_1.readUint16LE)(data, offset + 1);
|
|
21
|
+
const nextOffset = offset + 4 + size;
|
|
22
|
+
if (nextOffset > data.length) {
|
|
23
|
+
throw new Error("Unexpected end of data while reading chunk data");
|
|
24
|
+
}
|
|
25
|
+
const chunkData = data.subarray(offset + 4, nextOffset);
|
|
26
|
+
const chunkTypeKey = tic80_1.kTic80CartChunkTypes.coerceByValue(chunkTypeValue)?.key;
|
|
27
|
+
if (!chunkTypeKey) {
|
|
28
|
+
throw new Error(`Unknown chunk type: ${chunkTypeValue}`);
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
chunk: {
|
|
32
|
+
chunkType: chunkTypeKey,
|
|
33
|
+
bank,
|
|
34
|
+
data: chunkData,
|
|
35
|
+
},
|
|
36
|
+
nextOffset,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function parseTic80Cart(data) {
|
|
40
|
+
const chunks = [];
|
|
41
|
+
let offset = 0;
|
|
42
|
+
while (offset < data.length) {
|
|
43
|
+
const { chunk, nextOffset } = parseThisChunk(data, offset);
|
|
44
|
+
chunks.push(chunk);
|
|
45
|
+
offset = nextOffset;
|
|
46
|
+
}
|
|
47
|
+
// // dump
|
|
48
|
+
// console.log(`Parsed TIC-80 cart with ${chunks.length} chunks:`);
|
|
49
|
+
// for (const chunk of chunks) {
|
|
50
|
+
// console.log(`Chunk: ${chunk.chunkType}, size: ${chunk.data.length}`);
|
|
51
|
+
// }
|
|
52
|
+
return { chunks };
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=cartLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cartLoader.js","sourceRoot":"","sources":["../../../src/utils/tic80/cartLoader.ts"],"names":[],"mappings":";;AAsCA,wCAgBC;AAtDD,gCAAsC;AACtC,mCAA0E;AAE1E,2DAA2D;AAC3D,iCAAiC;AACjC,4CAA4C;AAC5C,oEAAoE;AACpE,6DAA6D;AAC7D,mDAAmD;AACnD,gCAAgC;AAEhC,SAAS,cAAc,CAAC,IAAgB,EAAE,MAAc;IACtD,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,cAAc,GAAG,UAAU,GAAG,IAAI,CAAC;IACzC,MAAM,IAAI,GAAG,UAAU,IAAI,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAA,kBAAY,EAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC;IACrC,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,4BAAoB,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC;IAC7E,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,uBAAuB,cAAc,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO;QACL,KAAK,EAAE;YACL,SAAS,EAAE,YAAY;YACvB,IAAI;YACJ,IAAI,EAAE,SAAS;SAChB;QACD,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAAC,IAAgB;IAC7C,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,GAAG,UAAU,CAAC;IACtB,CAAC;IAED,UAAU;IACV,mEAAmE;IACnE,gCAAgC;IAChC,0EAA0E;IAC1E,IAAI;IAEJ,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Tic80Cart, Tic80CartChunkTypeKey } from "./tic80";
|
|
2
|
+
export declare function trimTrailingZeros(data: Uint8Array): Uint8Array;
|
|
3
|
+
export declare function serializeChunk(chunkType: Tic80CartChunkTypeKey, data: Uint8Array, bank: number): Uint8Array;
|
|
4
|
+
export declare function AssembleTic80Cart(input: Tic80Cart): Promise<Uint8Array>;
|
|
5
|
+
//# sourceMappingURL=cartWriter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cartWriter.d.ts","sourceRoot":"","sources":["../../../src/utils/tic80/cartWriter.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,SAAS,EAAkB,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGjG,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAM9D;AASD,wBAAgB,cAAc,CAAC,SAAS,EAAE,qBAAqB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAwB3G;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAoD7E"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.trimTrailingZeros = trimTrailingZeros;
|
|
4
|
+
exports.serializeChunk = serializeChunk;
|
|
5
|
+
exports.AssembleTic80Cart = AssembleTic80Cart;
|
|
6
|
+
const errorHandling_1 = require("../errorHandling");
|
|
7
|
+
const tic80_1 = require("./tic80");
|
|
8
|
+
// remove trailing zeros from a Uint8Array; chunk data in TIC-80 need not include trailing zeros.
|
|
9
|
+
function trimTrailingZeros(data) {
|
|
10
|
+
let end = data.length;
|
|
11
|
+
while (end > 0 && data[end - 1] === 0) {
|
|
12
|
+
end--;
|
|
13
|
+
}
|
|
14
|
+
return data.subarray(0, end);
|
|
15
|
+
}
|
|
16
|
+
// each chunk consists of a 4-byte header, then chunk data.
|
|
17
|
+
// offset bits description
|
|
18
|
+
// -----------------------------------------
|
|
19
|
+
// 0 BBBC CCCC B = bank number (0..7), C = chunk type (0..31)
|
|
20
|
+
// 1..2 Sx16 S = size of chunk, 16-bit little-endian
|
|
21
|
+
// 3 Ux1 U = unused / reserved padding
|
|
22
|
+
// 4.. ... chunk data
|
|
23
|
+
function serializeChunk(chunkType, data, bank) {
|
|
24
|
+
const chunkInfo = tic80_1.kTic80CartChunkTypes.coerceByKey(chunkType);
|
|
25
|
+
if (!chunkInfo) {
|
|
26
|
+
throw new Error(`Unknown chunk type key: ${chunkType}`);
|
|
27
|
+
}
|
|
28
|
+
if (!Number.isInteger(bank)) {
|
|
29
|
+
throw new Error(`Bank index must be an integer for chunk ${chunkType}`);
|
|
30
|
+
}
|
|
31
|
+
if (bank < 0 || bank >= chunkInfo.bankCount) {
|
|
32
|
+
throw new Error(`Bank index ${bank} out of range for chunk ${chunkType} (0..${chunkInfo.bankCount - 1})`);
|
|
33
|
+
}
|
|
34
|
+
const header = new Uint8Array(4);
|
|
35
|
+
// first byte: BBBC CCCC
|
|
36
|
+
(0, errorHandling_1.assert)(chunkInfo.value >= 0 && chunkInfo.value <= 31, `Chunk type value out of range: ${chunkInfo.value}`);
|
|
37
|
+
header[0] = (bank << 5) | chunkInfo.value; // BBBC CCCC
|
|
38
|
+
// size: Sx16
|
|
39
|
+
const size = data.length;
|
|
40
|
+
if (size > chunkInfo.sizePerBank) {
|
|
41
|
+
throw new Error(`Chunk data too large: ${size} bytes (max 65535)`);
|
|
42
|
+
}
|
|
43
|
+
header[1] = size & 0xff;
|
|
44
|
+
header[2] = (size >> 8) & 0xff;
|
|
45
|
+
header[3] = 0; // unused / reserved
|
|
46
|
+
return new Uint8Array([...header, ...data]);
|
|
47
|
+
}
|
|
48
|
+
async function AssembleTic80Cart(input) {
|
|
49
|
+
// sanity check: no duplicate chunk types
|
|
50
|
+
const seenChunkTypes = new Set();
|
|
51
|
+
for (const chunk of input.chunks) {
|
|
52
|
+
const key = `${chunk.chunkType}@${chunk.bank}`;
|
|
53
|
+
if (seenChunkTypes.has(key)) {
|
|
54
|
+
throw new Error(`Duplicate chunk type in TIC-80 cart: ${chunk.chunkType} bank ${chunk.bank}`);
|
|
55
|
+
}
|
|
56
|
+
seenChunkTypes.add(key);
|
|
57
|
+
}
|
|
58
|
+
// put chunks in sort order. i don't know if that's necessary but let's play safe?
|
|
59
|
+
// so start by attaching chunk info to each chunk.
|
|
60
|
+
const chunksWithInfo = input.chunks.map((chunk) => {
|
|
61
|
+
const info = tic80_1.kTic80CartChunkTypes.coerceByKey(chunk.chunkType);
|
|
62
|
+
if (!info) {
|
|
63
|
+
throw new Error(`Unknown chunk type key: ${chunk.chunkType}`);
|
|
64
|
+
}
|
|
65
|
+
return { chunk, info };
|
|
66
|
+
});
|
|
67
|
+
// sort by chunk type value, then by bank
|
|
68
|
+
chunksWithInfo.sort((a, b) => {
|
|
69
|
+
const typeDelta = a.info.value - b.info.value;
|
|
70
|
+
if (typeDelta !== 0) {
|
|
71
|
+
return typeDelta;
|
|
72
|
+
}
|
|
73
|
+
return a.chunk.bank - b.chunk.bank;
|
|
74
|
+
});
|
|
75
|
+
// serialize each chunk
|
|
76
|
+
const serializedChunks = [];
|
|
77
|
+
for (const { chunk } of chunksWithInfo) {
|
|
78
|
+
const trimmedData = trimTrailingZeros(chunk.data);
|
|
79
|
+
const serialized = serializeChunk(chunk.chunkType, trimmedData, chunk.bank);
|
|
80
|
+
serializedChunks.push(serialized);
|
|
81
|
+
}
|
|
82
|
+
// concatenate all serialized chunks into a single Uint8Array
|
|
83
|
+
let totalLength = 0;
|
|
84
|
+
for (const chunk of serializedChunks) {
|
|
85
|
+
totalLength += chunk.length;
|
|
86
|
+
}
|
|
87
|
+
const result = new Uint8Array(totalLength);
|
|
88
|
+
let offset = 0;
|
|
89
|
+
for (const chunk of serializedChunks) {
|
|
90
|
+
result.set(chunk, offset);
|
|
91
|
+
offset += chunk.length;
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=cartWriter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cartWriter.js","sourceRoot":"","sources":["../../../src/utils/tic80/cartWriter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ChildProcess } from "node:child_process";
|
|
2
|
+
export declare function launchProcessReturnImmediately(exePath: string, args?: string[]): Promise<ChildProcess>;
|
|
3
|
+
export declare function launchProcessAndWait(exePath: string, args?: string[]): Promise<number>;
|
|
4
|
+
//# sourceMappingURL=launch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../../src/utils/tic80/launch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAS,MAAM,oBAAoB,CAAC;AAIzD,wBAAsB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAYhH;AAGD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAahG"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.launchProcessReturnImmediately = launchProcessReturnImmediately;
|
|
4
|
+
exports.launchProcessAndWait = launchProcessAndWait;
|
|
5
|
+
const node_child_process_1 = require("node:child_process");
|
|
6
|
+
// launches it and returns the process id / handle / something that can be used to
|
|
7
|
+
// monitor and kill the running instance. Returns immediately; does not wait for the process to finish.
|
|
8
|
+
async function launchProcessReturnImmediately(exePath, args = []) {
|
|
9
|
+
return new Promise((resolve, reject) => {
|
|
10
|
+
const child = (0, node_child_process_1.spawn)(exePath, args, {
|
|
11
|
+
stdio: "ignore",
|
|
12
|
+
detached: true,
|
|
13
|
+
});
|
|
14
|
+
child.on("error", (err) => {
|
|
15
|
+
reject(err);
|
|
16
|
+
});
|
|
17
|
+
child.unref(); // Allow parent process to exit independently
|
|
18
|
+
resolve(child); // resolve immediately with the child process
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//
|
|
22
|
+
async function launchProcessAndWait(exePath, args = []) {
|
|
23
|
+
return new Promise((resolve, reject) => {
|
|
24
|
+
const child = (0, node_child_process_1.spawn)(exePath, args, {
|
|
25
|
+
stdio: "inherit",
|
|
26
|
+
});
|
|
27
|
+
child.on("error", (err) => {
|
|
28
|
+
reject(err);
|
|
29
|
+
});
|
|
30
|
+
child.on("close", (code) => {
|
|
31
|
+
resolve(code || 0);
|
|
32
|
+
});
|
|
33
|
+
// do not resolve immediately; wait for process to exit
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=launch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../../src/utils/tic80/launch.ts"],"names":[],"mappings":";;AAIA,wEAYC;AAGD,oDAaC;AAhCD,2DAAyD;AAEzD,kFAAkF;AAClF,uGAAuG;AAChG,KAAK,UAAU,8BAA8B,CAAC,OAAe,EAAE,OAAiB,EAAE;IACvF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,IAAA,0BAAK,EAAC,OAAO,EAAE,IAAI,EAAE;YACjC,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,6CAA6C;QAC5D,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,6CAA6C;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,EAAE;AACK,KAAK,UAAU,oBAAoB,CAAC,OAAe,EAAE,OAAiB,EAAE;IAC7E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,IAAA,0BAAK,EAAC,OAAO,EAAE,IAAI,EAAE;YACjC,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,uDAAuD;IACzD,CAAC,CAAC,CAAC;AACL,CAAC"}
|