@tsonic/backend 0.0.1 → 0.0.3

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.
Files changed (47) hide show
  1. package/dist/.tsbuildinfo +1 -0
  2. package/dist/build-orchestrator.d.ts +9 -0
  3. package/dist/build-orchestrator.d.ts.map +1 -0
  4. package/dist/build-orchestrator.js +170 -0
  5. package/dist/build-orchestrator.js.map +1 -0
  6. package/dist/dotnet.d.ts +17 -0
  7. package/dist/dotnet.d.ts.map +1 -0
  8. package/dist/dotnet.js +85 -0
  9. package/dist/dotnet.js.map +1 -0
  10. package/dist/dotnet.test.d.ts +5 -0
  11. package/dist/dotnet.test.d.ts.map +1 -0
  12. package/dist/dotnet.test.js +46 -0
  13. package/dist/dotnet.test.js.map +1 -0
  14. package/dist/index.d.ts +9 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/{src/index.ts → dist/index.js} +1 -19
  17. package/dist/index.js.map +1 -0
  18. package/dist/program-generator.d.ts +9 -0
  19. package/dist/program-generator.d.ts.map +1 -0
  20. package/dist/program-generator.js +27 -0
  21. package/dist/program-generator.js.map +1 -0
  22. package/dist/program-generator.test.d.ts +5 -0
  23. package/dist/program-generator.test.d.ts.map +1 -0
  24. package/dist/program-generator.test.js +53 -0
  25. package/dist/program-generator.test.js.map +1 -0
  26. package/dist/project-generator.d.ts +18 -0
  27. package/dist/project-generator.d.ts.map +1 -0
  28. package/dist/project-generator.js +182 -0
  29. package/dist/project-generator.js.map +1 -0
  30. package/dist/project-generator.test.d.ts +5 -0
  31. package/dist/project-generator.test.d.ts.map +1 -0
  32. package/dist/project-generator.test.js +103 -0
  33. package/dist/project-generator.test.js.map +1 -0
  34. package/dist/types.d.ts +133 -0
  35. package/dist/types.d.ts.map +1 -0
  36. package/dist/types.js +5 -0
  37. package/dist/types.js.map +1 -0
  38. package/package.json +6 -3
  39. package/src/build-orchestrator.ts +0 -215
  40. package/src/dotnet.test.ts +0 -50
  41. package/src/dotnet.ts +0 -101
  42. package/src/program-generator.test.ts +0 -63
  43. package/src/program-generator.ts +0 -33
  44. package/src/project-generator.test.ts +0 -130
  45. package/src/project-generator.ts +0 -245
  46. package/src/types.ts +0 -150
  47. package/tsconfig.json +0 -14
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/types.ts","../src/project-generator.ts","../src/program-generator.ts","../src/dotnet.ts","../src/build-orchestrator.ts","../../../node_modules/@types/mocha/index.d.ts","../../../node_modules/@types/deep-eql/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../src/dotnet.test.ts","../src/index.ts","../src/program-generator.test.ts","../src/project-generator.test.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts"],"fileIdsList":[[53],[61],[96],[97,102,131],[98,103,109,110,117,128,139],[98,99,109,117],[100,140],[101,102,110,118],[102,128,136],[103,105,109,117],[96,104],[105,106],[109],[107,109],[96,109],[109,110,111,128,139],[109,110,111,124,128,131],[94,97,144],[105,109,112,117,128,139],[109,110,112,113,117,128,136,139],[112,114,128,136,139],[61,62,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146],[109,115],[116,139,144],[105,109,117,128],[118],[119],[96,120],[117,118,121,138,144],[122],[123],[109,124,125],[124,126,140,142],[97,109,128,129,130,131],[97,128,130],[128,129],[131],[132],[96,128],[109,134,135],[134,135],[102,117,128,136],[137],[117,138],[97,112,123,139],[102,140],[128,141],[116,142],[143],[97,102,109,111,120,128,139,142,144],[128,145],[71,75,139],[71,128,139],[66],[68,71,136,139],[117,136],[147],[66,147],[68,71,117,139],[63,64,67,70,97,109,128,139],[63,69],[67,71,97,131,139,147],[97,147],[87,97,147],[65,66,147],[71],[65,66,67,68,69,70,71,72,73,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93],[71,78,79],[69,71,79,80],[70],[63,66,71],[71,75,79,80],[75],[69,71,74,139],[63,68,69,71,75,78],[97,128],[66,71,87,97,144,147],[47,48,49,50,102,110,119],[50,52,54],[47,98],[47,48,49,50,51],[47,49,52,54],[47],[47,48,52,54]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"b952596295bd9168e8411e344bb28c73e214512ebf475f791130e69350e5a01a","signature":"8fa6828102395983db3156226f38d8477d180464fb140ad40aecc9428dd478f5","impliedFormat":99},{"version":"67bf874aaf871ff6a7b220b3251ea8b2908b76e576934bb76fc4f475b65c57e6","signature":"3f90708486b09c7f4f283179a0d39aab7d797137abcaee1530f6c677ce5a02d3","impliedFormat":99},{"version":"1a7b7390e8b94a68278c0a2f1d94d050261ee65e4ed978053ed1e33d285c808e","signature":"ca0dd2923c55922a33bbccf29aa8936f67eb8b84a12dede351f94f902a69af4c","impliedFormat":99},{"version":"3677c22dc7d1b4ce3dc21f22fe4dce779e6eb94deede19f678ef0c6bc6830aea","signature":"e93451ed516979b8d9f63a3624559747069046058e64e2440f222bb5ab8e405c","impliedFormat":99},{"version":"acd6f0e0bdffe7dd4e669bab7aa0ef5511b53963d9d678907cea3225e092bfa5","signature":"f5bc78adbcd9c94bc967a41ef9758b766e077520a31751b17f9ec2b89694255a","impliedFormat":99},{"version":"29f72ec1289ae3aeda78bf14b38086d3d803262ac13904b400422941a26a3636","affectsGlobalScope":true,"impliedFormat":1},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"c8905dbea83f3220676a669366cd8c1acef56af4d9d72a8b2241b1d044bb4302","affectsGlobalScope":true,"impliedFormat":99},{"version":"ce07cf95540c53416ce723bb7079c42fa56b690fa026bd3651fd68fcea5aee4f","signature":"bd434506a0c5b607183f53b3cedc0a8b14858b5afc5deb3244034b102ba22731","impliedFormat":99},{"version":"37c8ce29cf902f9366d85d8f07e5932ab27673e4a2780e883277aad3f988510a","signature":"b1b4bfc7c6d48dbdc97d2b56ae6abe94f1b0ecced8ed7cefa9e692494ee674bd","impliedFormat":99},{"version":"7b5bbb940d296c933a6e14992c2b2fc01f673edc6c7c598a8c8b124b742bb7f5","signature":"b2ad8bcdaa90852141f972e16e198f40e5e671d2241a448ddc78631e1a1b109f","impliedFormat":99},{"version":"b6cff59fea9c58f83a4baeb4a8dfe84884f5aac3d85920bc1d238e1b81c09c86","signature":"f791da99711ebdf5a1f5eed69db50d2db3cecb48727440dfdfebdedc45bc39ce","impliedFormat":99},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"2db0dd3aaa2ed285950273ce96ae8a450b45423aa9da2d10e194570f1233fa6b","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","impliedFormat":1},{"version":"3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","impliedFormat":1},{"version":"e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","impliedFormat":1},{"version":"471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","impliedFormat":1},{"version":"c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","impliedFormat":1},{"version":"40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","impliedFormat":1},{"version":"8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","impliedFormat":1},{"version":"4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1","impliedFormat":1},{"version":"a14ed46fa3f5ffc7a8336b497cd07b45c2084213aaca933a22443fcb2eef0d07","affectsGlobalScope":true,"impliedFormat":1},{"version":"3d77c73be94570813f8cadd1f05ebc3dc5e2e4fdefe4d340ca20cd018724ee36","impliedFormat":1},{"version":"392eadc2af403dd10b4debfbc655c089a7fa6a9750caeb770cfb30051e55e848","affectsGlobalScope":true,"impliedFormat":1},{"version":"b67f9c5d42e7770ddf8b6d1747b531275c44617e8071d2602a2cffd2932ad95e","impliedFormat":1},{"version":"53f0960fdcc53d097918adfd8861ffbe0db989c56ffc16c052197bf115da5ed6","impliedFormat":1},{"version":"662163e5327f260b23ca0a1a1ad8a74078aabb587c904fcb5ef518986987eaff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"af465afccec3baa186c95c8060cd536b32298f3f1eff6d07d87e7200396ffd0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b0c0d1d13be149f790a75b381b413490f98558649428bb916fd2d71a3f47a134","impliedFormat":1},{"version":"3c884d9d9ec454bdf0d5a0b8465bf8297d2caa4d853851d92cc417ac6f30b969","impliedFormat":1},{"version":"3bb6e21a9f30417c0a059e240b3f8f70c8af9c4cb6f2fd1bc2db594c647e285f","impliedFormat":1},{"version":"7483ef24249f6a3e24eb3d8136ec7fe0633cd6f8ffe752e2a8d99412aff35bb7","impliedFormat":1},{"version":"d0ca5d7df114035258a9d01165be309371fcccf0cccd9d57b1453204686d1ed0","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"3e7dd0014ec3594783dc83ba8c06c13f191931a93e4d1b743371b2e7150cb9d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"9478c5627112634ffbfe9ed73c210e60d0fcd06f5cdb4e70dded92187a01b3e5","impliedFormat":1},{"version":"304f66274aa8119e8d65a49b1cff84cbf803def6afe1b2cc987386e9a9890e22","impliedFormat":1},{"version":"1b9adafe8a7fefaeaf9099a0e06f602903f6268438147b843a33a5233ac71745","impliedFormat":1},{"version":"98273274f2dbb79b0b2009b20f74eca4a7146a3447c912d580cd5d2d94a7ae30","impliedFormat":1},{"version":"c933f7ba4b201c98b14275fd11a14abb950178afd2074703250fe3654fc10cd2","impliedFormat":1},{"version":"2eaa31492906bc8525aff3c3ec2236e22d90b0dfeee77089f196cd0adf0b3e3b","impliedFormat":1},{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true,"impliedFormat":1},{"version":"692b68dd0e5089760a2c54435e10d35d720abf806f8b166d85cd0ff4cdf90afb","impliedFormat":1},{"version":"a63d03de72adfb91777784015bd3b4125abd2f5ef867fc5a13920b5649e8f52b","impliedFormat":1},{"version":"d20e003f3d518a7c1f749dbe27c6ab5e3be7b3c905a48361b04a9557de4a6900","impliedFormat":1},{"version":"1d4d78c8b23c9ddaaaa49485e6adc2ec01086dfe5d8d4d36ca4cdc98d2f7e74a","affectsGlobalScope":true,"impliedFormat":1},{"version":"44fc16356b81c0463cc7d7b2b35dcf324d8144136f5bc5ce73ced86f2b3475b5","affectsGlobalScope":true,"impliedFormat":1},{"version":"575fb200043b11b464db8e42cc64379c5fd322b6d787638e005b5ee98a64486d","impliedFormat":1},{"version":"6de2f225d942562733e231a695534b30039bdf1875b377bb7255881f0df8ede8","impliedFormat":1},{"version":"56249fd3ef1f6b90888e606f4ea648c43978ef43a7263aafad64f8d83cd3b8aa","impliedFormat":1},{"version":"139ad1dc93a503da85b7a0d5f615bddbae61ad796bc68fedd049150db67a1e26","impliedFormat":1},{"version":"7b166975fdbd3b37afb64707b98bca88e46577bbc6c59871f9383a7df2daacd1","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"81505c54d7cad0009352eaa21bd923ab7cdee7ec3405357a54d9a5da033a2084","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"3c1f19c7abcda6b3a4cf9438a15c7307a080bd3b51dfd56b198d9f86baf19447","impliedFormat":1},{"version":"2ee1645e0df9d84467cfe1d67b0ad3003c2f387de55874d565094464ee6f2927","impliedFormat":1},{"version":"abe61b580e030f1ca3ee548c8fd7b40fc686a97a056d5d1481f34c39c637345f","affectsGlobalScope":true,"impliedFormat":1},{"version":"9cf780e96b687e4bdfd1907ed26a688c18b89797490a00598fa8b8ab683335dd","affectsGlobalScope":true,"impliedFormat":1},{"version":"98e00f3613402504bc2a2c9a621800ab48e0a463d1eed062208a4ae98ad8f84c","impliedFormat":1},{"version":"9ae88ce9f73446c24b2d2452e993b676da1b31fca5ceb7276e7f36279f693ed1","impliedFormat":1},{"version":"e49d7625faff2a7842e4e7b9b197f972633fca685afcf6b4403400c97d087c36","impliedFormat":1},{"version":"b82c38abc53922b1b3670c3af6f333c21b735722a8f156e7d357a2da7c53a0a0","impliedFormat":1},{"version":"b423f53647708043299ded4daa68d95c967a2ac30aa1437adc4442129d7d0a6c","affectsGlobalScope":true,"impliedFormat":1},{"version":"7245af181218216bacb01fbdf51095617a51661f20d77178c69a377e16fb69ed","affectsGlobalScope":true,"impliedFormat":1},{"version":"4f0fc7b7f54422bd97cfaf558ddb4bca86893839367b746a8f86b60ac7619673","impliedFormat":1},{"version":"4cdd8b6b51599180a387cc7c1c50f49eca5ce06595d781638fd0216520d98246","impliedFormat":1},{"version":"d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c","impliedFormat":1},{"version":"ac14eb65c59722f0333e776a73e6a02cea23b5aa857a749ea176daf4e960e872","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c6929fd7cbf38499b6a600b91c3b603d1d78395046dc3499b2b92d01418b94b","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a42be67ed1ddaec743582f41fc219db96a1b69719fccac6d1464321178d610fc","impliedFormat":1}],"root":[[47,51],[55,58]],"options":{"allowJs":false,"alwaysStrict":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":199,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitReturns":true,"noImplicitThis":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"strictBindCallApply":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"target":7,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[54,1],[61,2],[62,2],[96,3],[97,4],[98,5],[99,6],[100,7],[101,8],[102,9],[103,10],[104,11],[105,12],[106,12],[108,13],[107,14],[109,15],[110,16],[111,17],[95,18],[112,19],[113,20],[114,21],[147,22],[115,23],[116,24],[117,25],[118,26],[119,27],[120,28],[121,29],[122,30],[123,31],[124,32],[125,32],[126,33],[128,34],[130,35],[129,36],[131,37],[132,38],[133,39],[134,40],[135,41],[136,42],[137,43],[138,44],[139,45],[140,46],[141,47],[142,48],[143,49],[144,50],[145,51],[78,52],[85,53],[77,52],[92,54],[69,55],[68,56],[91,57],[86,58],[89,59],[71,60],[70,61],[66,62],[65,63],[88,64],[67,65],[72,66],[76,66],[94,67],[93,66],[80,68],[81,69],[83,70],[79,71],[82,72],[87,57],[74,73],[75,74],[84,75],[64,76],[90,77],[51,78],[55,79],[50,80],[56,81],[57,82],[49,83],[58,84],[48,83]],"latestChangedDtsFile":"./project-generator.test.d.ts","version":"5.9.2"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Main build orchestration - coordinates the entire NativeAOT build process
3
+ */
4
+ import { BuildOptions, BuildResult, EntryInfo } from "./types.js";
5
+ /**
6
+ * Build NativeAOT executable from C# files
7
+ */
8
+ export declare const buildNativeAot: (emittedFiles: Map<string, string>, entryInfo: EntryInfo, options: BuildOptions) => BuildResult;
9
+ //# sourceMappingURL=build-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-orchestrator.d.ts","sourceRoot":"","sources":["../src/build-orchestrator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,EACL,YAAY,EACZ,WAAW,EAEX,SAAS,EAEV,MAAM,YAAY,CAAC;AA0FpB;;GAEG;AACH,eAAO,MAAM,cAAc,GACzB,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,WAAW,SAAS,EACpB,SAAS,YAAY,KACpB,WAsGF,CAAC"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Main build orchestration - coordinates the entire NativeAOT build process
3
+ */
4
+ import { createHash } from "crypto";
5
+ import { mkdirSync, writeFileSync, copyFileSync, rmSync, chmodSync, existsSync, readdirSync, } from "fs";
6
+ import { join, dirname } from "path";
7
+ import { generateCsproj } from "./project-generator.js";
8
+ import { generateProgramCs } from "./program-generator.js";
9
+ import { checkDotnetInstalled, detectRid, publishNativeAot } from "./dotnet.js";
10
+ /**
11
+ * Create unique build directory
12
+ */
13
+ const createBuildDir = (entryFile) => {
14
+ const hash = createHash("md5").update(entryFile).digest("hex").slice(0, 8);
15
+ const buildDir = join(process.cwd(), ".tsonic", "build", hash);
16
+ mkdirSync(buildDir, { recursive: true });
17
+ return buildDir;
18
+ };
19
+ /**
20
+ * Copy generated C# files to build directory
21
+ */
22
+ const copyGeneratedFiles = (emittedFiles, buildDir) => {
23
+ for (const [tsPath, csContent] of emittedFiles) {
24
+ // src/models/User.ts → <buildDir>/src/models/User.cs
25
+ const csPath = tsPath.replace(/\.ts$/, ".cs");
26
+ const fullPath = join(buildDir, csPath);
27
+ mkdirSync(dirname(fullPath), { recursive: true });
28
+ writeFileSync(fullPath, csContent, "utf-8");
29
+ }
30
+ };
31
+ /**
32
+ * Find project .csproj file in current directory
33
+ */
34
+ const findProjectCsproj = () => {
35
+ const cwd = process.cwd();
36
+ // Look for *.csproj in current directory
37
+ const files = readdirSync(cwd);
38
+ const csprojFile = files.find((f) => f.endsWith(".csproj"));
39
+ return csprojFile ? join(cwd, csprojFile) : null;
40
+ };
41
+ /**
42
+ * Get output binary name for platform
43
+ */
44
+ const getOutputBinaryName = (outputName) => {
45
+ return process.platform === "win32" ? `${outputName}.exe` : outputName;
46
+ };
47
+ /**
48
+ * Copy output binary to final location
49
+ */
50
+ const copyOutputBinary = (buildDir, rid, outputPath, outputName) => {
51
+ const publishDir = join(buildDir, "bin/Release/net8.0", rid, "publish");
52
+ const binaryName = getOutputBinaryName(outputName);
53
+ const binaryPath = join(publishDir, binaryName);
54
+ if (!existsSync(binaryPath)) {
55
+ throw new Error(`Output binary not found at ${binaryPath}`);
56
+ }
57
+ // Ensure output directory exists
58
+ const outputDir = dirname(outputPath);
59
+ if (outputDir && outputDir !== "." && !existsSync(outputDir)) {
60
+ mkdirSync(outputDir, { recursive: true });
61
+ }
62
+ copyFileSync(binaryPath, outputPath);
63
+ // Make executable on Unix
64
+ if (process.platform !== "win32") {
65
+ chmodSync(outputPath, 0o755);
66
+ }
67
+ };
68
+ /**
69
+ * Clean build directory
70
+ */
71
+ const cleanBuild = (buildDir, keepTemp) => {
72
+ if (!keepTemp) {
73
+ rmSync(buildDir, { recursive: true, force: true });
74
+ }
75
+ };
76
+ /**
77
+ * Build NativeAOT executable from C# files
78
+ */
79
+ export const buildNativeAot = (emittedFiles, entryInfo, options) => {
80
+ let buildDir;
81
+ try {
82
+ // Check dotnet is installed
83
+ const dotnetCheck = checkDotnetInstalled();
84
+ if (!dotnetCheck.ok) {
85
+ return {
86
+ ok: false,
87
+ error: dotnetCheck.error,
88
+ };
89
+ }
90
+ // Create build directory
91
+ buildDir = createBuildDir(Array.from(emittedFiles.keys())[0] || "main");
92
+ // Copy generated C# files
93
+ copyGeneratedFiles(emittedFiles, buildDir);
94
+ // Generate Program.cs if needed
95
+ if (entryInfo.needsProgram) {
96
+ const programCs = generateProgramCs(entryInfo);
97
+ writeFileSync(join(buildDir, "Program.cs"), programCs, "utf-8");
98
+ }
99
+ // Use existing project .csproj if available, otherwise generate one
100
+ const projectCsproj = findProjectCsproj();
101
+ if (projectCsproj) {
102
+ // Copy existing .csproj to build directory (preserves user edits)
103
+ const csprojFilename = projectCsproj.split("/").pop() || "project.csproj";
104
+ copyFileSync(projectCsproj, join(buildDir, csprojFilename));
105
+ }
106
+ else {
107
+ // Generate temporary .csproj for build
108
+ // Tsonic.Runtime is ALWAYS required (for unions, typeof, structural)
109
+ // Tsonic.JSRuntime only when mode: "js" (for JS semantics)
110
+ const packages = [
111
+ { name: "Tsonic.Runtime", version: "0.0.1" },
112
+ ];
113
+ if (entryInfo.runtime === "js") {
114
+ packages.push({ name: "Tsonic.JSRuntime", version: "0.0.1" });
115
+ }
116
+ const buildConfig = {
117
+ rootNamespace: options.namespace,
118
+ outputName: options.outputName || "tsonic",
119
+ dotnetVersion: options.dotnetVersion || "net10.0",
120
+ packages,
121
+ outputConfig: {
122
+ type: "executable",
123
+ nativeAot: true,
124
+ singleFile: true,
125
+ trimmed: true,
126
+ stripSymbols: options.stripSymbols ?? true,
127
+ optimization: options.optimizationPreference || "Speed",
128
+ invariantGlobalization: true,
129
+ selfContained: true,
130
+ },
131
+ };
132
+ const csprojContent = generateCsproj(buildConfig);
133
+ writeFileSync(join(buildDir, "tsonic.csproj"), csprojContent, "utf-8");
134
+ }
135
+ // Detect RID
136
+ const rid = options.rid || detectRid();
137
+ // Execute dotnet publish
138
+ const publishResult = publishNativeAot(buildDir, rid);
139
+ if (!publishResult.ok) {
140
+ return {
141
+ ok: false,
142
+ error: publishResult.error,
143
+ buildDir,
144
+ };
145
+ }
146
+ // Copy output binary to out/ directory
147
+ const outputPath = options.outputName
148
+ ? `out/${getOutputBinaryName(options.outputName)}`
149
+ : "out/tsonic-app";
150
+ copyOutputBinary(buildDir, rid, outputPath, options.outputName || "tsonic");
151
+ // Cleanup if requested
152
+ cleanBuild(buildDir, options.keepTemp ?? false);
153
+ return {
154
+ ok: true,
155
+ outputPath,
156
+ buildDir,
157
+ };
158
+ }
159
+ catch (error) {
160
+ if (buildDir) {
161
+ cleanBuild(buildDir, false);
162
+ }
163
+ return {
164
+ ok: false,
165
+ error: error instanceof Error ? error.message : "Unknown build error occurred",
166
+ buildDir,
167
+ };
168
+ }
169
+ };
170
+ //# sourceMappingURL=build-orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-orchestrator.js","sourceRoot":"","sources":["../src/build-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Dotnet CLI wrapper for executing build commands
3
+ */
4
+ import { DotnetResult } from "./types.js";
5
+ /**
6
+ * Check if dotnet CLI is available
7
+ */
8
+ export declare const checkDotnetInstalled: () => DotnetResult;
9
+ /**
10
+ * Detect runtime identifier for current platform
11
+ */
12
+ export declare const detectRid: () => string;
13
+ /**
14
+ * Execute dotnet publish with NativeAOT
15
+ */
16
+ export declare const publishNativeAot: (buildDir: string, rid: string) => DotnetResult;
17
+ //# sourceMappingURL=dotnet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotnet.d.ts","sourceRoot":"","sources":["../src/dotnet.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,oBAAoB,QAAO,YAwBvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,QAAO,MAe5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,UAAU,MAAM,EAChB,KAAK,MAAM,KACV,YAsCF,CAAC"}
package/dist/dotnet.js ADDED
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Dotnet CLI wrapper for executing build commands
3
+ */
4
+ import { spawnSync } from "child_process";
5
+ /**
6
+ * Check if dotnet CLI is available
7
+ */
8
+ export const checkDotnetInstalled = () => {
9
+ const result = spawnSync("dotnet", ["--version"], {
10
+ encoding: "utf-8",
11
+ });
12
+ if (result.error) {
13
+ return {
14
+ ok: false,
15
+ error: ".NET SDK not found. Install from https://dot.net",
16
+ };
17
+ }
18
+ if (result.status !== 0) {
19
+ return {
20
+ ok: false,
21
+ error: "dotnet command failed",
22
+ stderr: result.stderr,
23
+ };
24
+ }
25
+ return {
26
+ ok: true,
27
+ stdout: result.stdout.trim(),
28
+ };
29
+ };
30
+ /**
31
+ * Detect runtime identifier for current platform
32
+ */
33
+ export const detectRid = () => {
34
+ const platform = process.platform;
35
+ const arch = process.arch;
36
+ const ridMap = {
37
+ "darwin-x64": "osx-x64",
38
+ "darwin-arm64": "osx-arm64",
39
+ "linux-x64": "linux-x64",
40
+ "linux-arm64": "linux-arm64",
41
+ "win32-x64": "win-x64",
42
+ "win32-arm64": "win-arm64",
43
+ };
44
+ const key = `${platform}-${arch}`;
45
+ return ridMap[key] || "linux-x64";
46
+ };
47
+ /**
48
+ * Execute dotnet publish with NativeAOT
49
+ */
50
+ export const publishNativeAot = (buildDir, rid) => {
51
+ const args = [
52
+ "publish",
53
+ "tsonic.csproj",
54
+ "-c",
55
+ "Release",
56
+ "-r",
57
+ rid,
58
+ "-p:PublishAot=true",
59
+ "-p:PublishSingleFile=true",
60
+ "--self-contained",
61
+ ];
62
+ const result = spawnSync("dotnet", args, {
63
+ cwd: buildDir,
64
+ encoding: "utf-8",
65
+ });
66
+ if (result.error) {
67
+ return {
68
+ ok: false,
69
+ error: `Failed to execute dotnet: ${result.error.message}`,
70
+ };
71
+ }
72
+ if (result.status !== 0) {
73
+ return {
74
+ ok: false,
75
+ error: `dotnet publish failed with code ${result.status}`,
76
+ stdout: result.stdout,
77
+ stderr: result.stderr,
78
+ };
79
+ }
80
+ return {
81
+ ok: true,
82
+ stdout: result.stdout,
83
+ };
84
+ };
85
+ //# sourceMappingURL=dotnet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotnet.js","sourceRoot":"","sources":["../src/dotnet.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAiB,EAAE;IACrD,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE;QAChD,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,kDAAkD;SAC1D,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,uBAAuB;YAC9B,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;KAC7B,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAAW,EAAE;IACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,MAAM,MAAM,GAA2B;QACrC,YAAY,EAAE,SAAS;QACvB,cAAc,EAAE,WAAW;QAC3B,WAAW,EAAE,WAAW;QACxB,aAAa,EAAE,aAAa;QAC5B,WAAW,EAAE,SAAS;QACtB,aAAa,EAAE,WAAW;KAC3B,CAAC;IAEF,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC;IAClC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC;AACpC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,QAAgB,EAChB,GAAW,EACG,EAAE;IAChB,MAAM,IAAI,GAAG;QACX,SAAS;QACT,eAAe;QACf,IAAI;QACJ,SAAS;QACT,IAAI;QACJ,GAAG;QACH,oBAAoB;QACpB,2BAA2B;QAC3B,kBAAkB;KACnB,CAAC;IAEF,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE;QACvC,GAAG,EAAE,QAAQ;QACb,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,6BAA6B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;SAC3D,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,mCAAmC,MAAM,CAAC,MAAM,EAAE;YACzD,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for dotnet CLI wrapper
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=dotnet.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotnet.test.d.ts","sourceRoot":"","sources":["../src/dotnet.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Tests for dotnet CLI wrapper
3
+ */
4
+ import { describe, it } from "mocha";
5
+ import { expect } from "chai";
6
+ import { detectRid } from "./dotnet.js";
7
+ describe("Dotnet CLI Wrapper", () => {
8
+ describe("detectRid", () => {
9
+ it("should return a valid runtime identifier", () => {
10
+ const rid = detectRid();
11
+ // Should match one of the known RID patterns
12
+ const validRids = [
13
+ "osx-x64",
14
+ "osx-arm64",
15
+ "linux-x64",
16
+ "linux-arm64",
17
+ "win-x64",
18
+ "win-arm64",
19
+ ];
20
+ expect(validRids).to.include(rid);
21
+ });
22
+ it("should detect current platform RID", () => {
23
+ const rid = detectRid();
24
+ const platform = process.platform;
25
+ const arch = process.arch;
26
+ if (platform === "darwin") {
27
+ expect(rid).to.match(/^osx-/);
28
+ }
29
+ else if (platform === "linux") {
30
+ expect(rid).to.match(/^linux-/);
31
+ }
32
+ else if (platform === "win32") {
33
+ expect(rid).to.match(/^win-/);
34
+ }
35
+ if (arch === "x64") {
36
+ expect(rid).to.include("x64");
37
+ }
38
+ else if (arch === "arm64") {
39
+ expect(rid).to.include("arm64");
40
+ }
41
+ });
42
+ });
43
+ // Note: checkDotnetInstalled and publishNativeAot are integration tests
44
+ // that require dotnet to be installed, so we skip them in unit tests
45
+ });
46
+ //# sourceMappingURL=dotnet.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotnet.test.js","sourceRoot":"","sources":["../src/dotnet.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;YAExB,6CAA6C;YAC7C,MAAM,SAAS,GAAG;gBAChB,SAAS;gBACT,WAAW;gBACX,WAAW;gBACX,aAAa;gBACb,SAAS;gBACT,WAAW;aACZ,CAAC;YAEF,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAE1B,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAChC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;iBAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAChC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;YAED,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACnB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,wEAAwE;IACxE,qEAAqE;AACvE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Tsonic Backend - .NET build orchestration
3
+ */
4
+ export { buildNativeAot } from "./build-orchestrator.js";
5
+ export type { BuildOptions, BuildResult, BuildConfig, EntryInfo, NuGetPackage, DotnetResult, OutputType, OutputConfig, ExecutableConfig, LibraryConfig, ConsoleAppConfig, PackageMetadata, AssemblyReference, } from "./types.js";
6
+ export { checkDotnetInstalled, detectRid } from "./dotnet.js";
7
+ export { generateCsproj } from "./project-generator.js";
8
+ export { generateProgramCs } from "./program-generator.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,YAAY,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1,28 +1,10 @@
1
1
  /**
2
2
  * Tsonic Backend - .NET build orchestration
3
3
  */
4
-
5
4
  // Export main build function
6
5
  export { buildNativeAot } from "./build-orchestrator.js";
7
-
8
- // Export types
9
- export type {
10
- BuildOptions,
11
- BuildResult,
12
- BuildConfig,
13
- EntryInfo,
14
- NuGetPackage,
15
- DotnetResult,
16
- OutputType,
17
- OutputConfig,
18
- ExecutableConfig,
19
- LibraryConfig,
20
- ConsoleAppConfig,
21
- PackageMetadata,
22
- AssemblyReference,
23
- } from "./types.js";
24
-
25
6
  // Export utilities
26
7
  export { checkDotnetInstalled, detectRid } from "./dotnet.js";
27
8
  export { generateCsproj } from "./project-generator.js";
28
9
  export { generateProgramCs } from "./program-generator.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,6BAA6B;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAmBzD,mBAAmB;AACnB,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Program.cs generation for entry point wrapper
3
+ */
4
+ import { EntryInfo } from "./types.js";
5
+ /**
6
+ * Generate Program.cs content with Main method
7
+ */
8
+ export declare const generateProgramCs: (entryInfo: EntryInfo) => string;
9
+ //# sourceMappingURL=program-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program-generator.d.ts","sourceRoot":"","sources":["../src/program-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,SAAS,KAAG,MAuBxD,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Program.cs generation for entry point wrapper
3
+ */
4
+ /**
5
+ * Generate Program.cs content with Main method
6
+ */
7
+ export const generateProgramCs = (entryInfo) => {
8
+ const returnType = entryInfo.isAsync ? "async Task" : "void";
9
+ const awaitKeyword = entryInfo.isAsync ? "await " : "";
10
+ const usings = ["using System;", "using System.Threading.Tasks;"];
11
+ // Only include Tsonic.Runtime for js runtime mode
12
+ if (entryInfo.runtime !== "dotnet") {
13
+ usings.push("using Tsonic.Runtime;");
14
+ }
15
+ usings.push(`using ${entryInfo.namespace};`);
16
+ return `${usings.join("\n")}
17
+
18
+ public static class Program
19
+ {
20
+ public static ${returnType} Main(string[] args)
21
+ {
22
+ ${awaitKeyword}${entryInfo.className}.${entryInfo.methodName}();
23
+ }
24
+ }
25
+ `;
26
+ };
27
+ //# sourceMappingURL=program-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program-generator.js","sourceRoot":"","sources":["../src/program-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAoB,EAAU,EAAE;IAChE,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7D,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvD,MAAM,MAAM,GAAG,CAAC,eAAe,EAAE,+BAA+B,CAAC,CAAC;IAElE,kDAAkD;IAClD,IAAI,SAAS,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;IAE7C,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;;;;oBAIT,UAAU;;UAEpB,YAAY,GAAG,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,UAAU;;;CAGnE,CAAC;AACF,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for Program.cs generation
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=program-generator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program-generator.test.d.ts","sourceRoot":"","sources":["../src/program-generator.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Tests for Program.cs generation
3
+ */
4
+ import { describe, it } from "mocha";
5
+ import { expect } from "chai";
6
+ import { generateProgramCs } from "./program-generator.js";
7
+ describe("Program Generator", () => {
8
+ describe("generateProgramCs", () => {
9
+ it("should generate synchronous Main method", () => {
10
+ const entryInfo = {
11
+ namespace: "MyApp",
12
+ className: "main",
13
+ methodName: "start",
14
+ isAsync: false,
15
+ needsProgram: true,
16
+ };
17
+ const result = generateProgramCs(entryInfo);
18
+ expect(result).to.include("public static void Main(string[] args)");
19
+ expect(result).to.include("main.start();");
20
+ expect(result).to.not.include("await");
21
+ expect(result).to.not.include("async");
22
+ expect(result).to.include("using MyApp;");
23
+ });
24
+ it("should generate async Main method", () => {
25
+ const entryInfo = {
26
+ namespace: "MyApp.Services",
27
+ className: "main",
28
+ methodName: "run",
29
+ isAsync: true,
30
+ needsProgram: true,
31
+ };
32
+ const result = generateProgramCs(entryInfo);
33
+ expect(result).to.include("public static async Task Main(string[] args)");
34
+ expect(result).to.include("await main.run();");
35
+ expect(result).to.include("using MyApp.Services;");
36
+ expect(result).to.include("using System.Threading.Tasks;");
37
+ });
38
+ it("should include required using statements", () => {
39
+ const entryInfo = {
40
+ namespace: "Test",
41
+ className: "Program",
42
+ methodName: "Main",
43
+ isAsync: false,
44
+ needsProgram: true,
45
+ };
46
+ const result = generateProgramCs(entryInfo);
47
+ expect(result).to.include("using System;");
48
+ expect(result).to.include("using Tsonic.Runtime;");
49
+ expect(result).to.include("using Test;");
50
+ });
51
+ });
52
+ });
53
+ //# sourceMappingURL=program-generator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program-generator.test.js","sourceRoot":"","sources":["../src/program-generator.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,SAAS,GAAc;gBAC3B,SAAS,EAAE,OAAO;gBAClB,SAAS,EAAE,MAAM;gBACjB,UAAU,EAAE,OAAO;gBACnB,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,IAAI;aACnB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAE5C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,SAAS,GAAc;gBAC3B,SAAS,EAAE,gBAAgB;gBAC3B,SAAS,EAAE,MAAM;gBACjB,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,IAAI;aACnB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAE5C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;YAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,SAAS,GAAc;gBAC3B,SAAS,EAAE,MAAM;gBACjB,SAAS,EAAE,SAAS;gBACpB,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,IAAI;aACnB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAE5C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}