@sdkgen/fsharp-generator 0.0.0-dev.20231002135133 → 0.0.0-dev.20231002144112
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/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/fsharp-server.ts +104 -0
- package/src/helpers.ts +578 -0
- package/src/index.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"program":{"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.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/typescript/lib/lib.scripthost.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.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.es2017.full.d.ts","../node_modules/@sdkgen/parser/src/token.ts","../node_modules/@sdkgen/parser/src/ast.ts","../node_modules/@sdkgen/parser/src/compatibility/index.ts","../node_modules/@sdkgen/parser/src/semantic/visitor.ts","../node_modules/@sdkgen/parser/src/semantic/01_check_multiple_declaration.ts","../node_modules/@sdkgen/parser/src/semantic/transformer.ts","../node_modules/@sdkgen/parser/src/semantic/02_give_struct_and_enum_names.ts","../node_modules/@sdkgen/parser/src/semantic/03_match_type_definitions.ts","../node_modules/@sdkgen/parser/src/semantic/04_check_dont_return_secret.ts","../node_modules/@sdkgen/parser/src/semantic/05_expand_spreads.ts","../node_modules/@sdkgen/parser/src/semantic/06_check_empty_struct_or_enum.ts","../node_modules/@sdkgen/parser/src/semantic/07_validate_recursive_types.ts","../node_modules/@sdkgen/parser/src/semantic/08_collect_struct_and_enum_types.ts","../node_modules/@sdkgen/parser/src/semantic/09_validate_annotations.ts","../node_modules/@sdkgen/parser/src/semantic/10_check_duplicate_members_on_enum.ts","../node_modules/@sdkgen/parser/src/semantic/analyser.ts","../node_modules/@sdkgen/parser/src/utils.ts","../node_modules/@sdkgen/parser/src/json.ts","../node_modules/@sdkgen/parser/src/lexer.ts","../node_modules/@sdkgen/parser/src/restparser.ts","../node_modules/@sdkgen/parser/src/parser.ts","../node_modules/@sdkgen/parser/src/helpers.ts","../node_modules/@sdkgen/parser/src/index.ts","../src/helpers.ts","../src/fsharp-server.ts","../src/index.ts","../node_modules/@babel/types/lib/index.d.ts","../node_modules/@types/babel__generator/index.d.ts","../node_modules/@babel/parser/typings/babel-parser.d.ts","../node_modules/@types/babel__template/index.d.ts","../node_modules/@types/babel__traverse/index.d.ts","../node_modules/@types/babel__core/index.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.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/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/repl.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","../node_modules/@types/graceful-fs/index.d.ts","../node_modules/@types/istanbul-lib-coverage/index.d.ts","../node_modules/@types/istanbul-lib-report/index.d.ts","../node_modules/@types/istanbul-reports/index.d.ts","../node_modules/@jest/expect-utils/build/index.d.ts","../node_modules/chalk/index.d.ts","../node_modules/@sinclair/typebox/typebox.d.ts","../node_modules/@jest/schemas/build/index.d.ts","../node_modules/pretty-format/build/index.d.ts","../node_modules/jest-diff/build/index.d.ts","../node_modules/jest-matcher-utils/build/index.d.ts","../node_modules/expect/build/index.d.ts","../node_modules/@types/jest/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/json5/index.d.ts","../node_modules/@types/semver/classes/semver.d.ts","../node_modules/@types/semver/functions/parse.d.ts","../node_modules/@types/semver/functions/valid.d.ts","../node_modules/@types/semver/functions/clean.d.ts","../node_modules/@types/semver/functions/inc.d.ts","../node_modules/@types/semver/functions/diff.d.ts","../node_modules/@types/semver/functions/major.d.ts","../node_modules/@types/semver/functions/minor.d.ts","../node_modules/@types/semver/functions/patch.d.ts","../node_modules/@types/semver/functions/prerelease.d.ts","../node_modules/@types/semver/functions/compare.d.ts","../node_modules/@types/semver/functions/rcompare.d.ts","../node_modules/@types/semver/functions/compare-loose.d.ts","../node_modules/@types/semver/functions/compare-build.d.ts","../node_modules/@types/semver/functions/sort.d.ts","../node_modules/@types/semver/functions/rsort.d.ts","../node_modules/@types/semver/functions/gt.d.ts","../node_modules/@types/semver/functions/lt.d.ts","../node_modules/@types/semver/functions/eq.d.ts","../node_modules/@types/semver/functions/neq.d.ts","../node_modules/@types/semver/functions/gte.d.ts","../node_modules/@types/semver/functions/lte.d.ts","../node_modules/@types/semver/functions/cmp.d.ts","../node_modules/@types/semver/functions/coerce.d.ts","../node_modules/@types/semver/classes/comparator.d.ts","../node_modules/@types/semver/classes/range.d.ts","../node_modules/@types/semver/functions/satisfies.d.ts","../node_modules/@types/semver/ranges/max-satisfying.d.ts","../node_modules/@types/semver/ranges/min-satisfying.d.ts","../node_modules/@types/semver/ranges/to-comparators.d.ts","../node_modules/@types/semver/ranges/min-version.d.ts","../node_modules/@types/semver/ranges/valid.d.ts","../node_modules/@types/semver/ranges/outside.d.ts","../node_modules/@types/semver/ranges/gtr.d.ts","../node_modules/@types/semver/ranges/ltr.d.ts","../node_modules/@types/semver/ranges/intersects.d.ts","../node_modules/@types/semver/ranges/simplify.d.ts","../node_modules/@types/semver/ranges/subset.d.ts","../node_modules/@types/semver/internals/identifiers.d.ts","../node_modules/@types/semver/index.d.ts","../node_modules/@types/stack-utils/index.d.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"d2f31f19e1ba6ed59be9259d660a239d9a3fcbbc8e038c6b2009bde34b175fed","0d1b618fb1d31b44a3e77e0940199cc12099b7e448ff596481039c5439160c5d","851153ecb19fe760635a2b8e54dad62a99c245a22abb116c781680cb3505a02e","e18aa16baef58d63b8a342de5e72edf39f2369970b42171a25d743d0ce4afc06","50ba5c02af36d9f80c7da35962cb61d1088a7af05ef5930d417981baccfbc9c3","fb06e8dde3cf19ccc0e47762be6242ec990d659557dbbe14c63113478adc2444","397d74c2f4c02a687edae40df94680f66d7a2ce96dce5dd15e8278006d07e946","7fa0685b27b50b8ef1604f5d71772ad6846b1996b4d9e4c396baef7aa6539b2a","df2bd579b982728787d31c4d8e40a8f442a9eb67e8973196d77e86968cf657a3","fbb4995857b44355618c8a61cb5e086462821cc282fc638cc3a94a2b814bc633","82fa765db527609317ea5ad4dc0fb366f1b57b4d7b226e18b3948e255c42274e","0f2e58dd677c3842b6ba89bbc80c30ff6ee38f49d93a12d765585963aebf3852","1e3ad408c7a5cbf4a401b53e5e0760bbb75d237a206a474e874d600345372a82","f1ebcaadc20f1aec3895b8e4a0b88d5de640d7892d57fbd0b5c9b14c78f6192e","dc203171e94764adb6341cc3336073e1d447932460dfeb81214d1946f2b6d5b2","dbd05088d511c6ce1811b5f24dfbd13bc483a01778d8cac7592a79c0316802b9","52100f9bfc215f16eb0a58af18050b27f4c2c307679f137d000882fe942a324a","314dc2eb5d1d6e583cf6eb3759fb5329a18b2c4db94a50e00d6225968c6e9c25","96f8d22597cd9bcb11728c4ff1724c0f664cd69f883487dc28bcfa21f0f01e71","f6725bcf9cc6c70f311aabd5ef3b7839535e416eea8e3c548e2dd99136f47489","31b7510503d7ed5a8a7c45c1f0e7ab1c9eedd0c674131fd797b371d4285ed518","674f4367342c630e9e181902750fd7765cf714dc917ff01ecf5418cd4bfbfac7","7cfa60d9e9948d1d9fbc67bbe7b742f8b913cbc043581dbca1a4b97475d69f07","b3fb528e7589083ed8f80ad73bd30695b9cd00d1cdce5859977b60feefabb347",{"version":"40a6177080f7b189704265a0c1135717b9cf2f47a2ed2e3e2a3d51a8c753beec","signature":"1ca6be3c72510871031c3ed171727b6be564eebe88253e215b0307a1aef276d8"},{"version":"5ed5f1f3f89729cb82df607335eee92cfecd032e847f03761954674cd9065168","signature":"7192c13fd3e76a74cf9fd2a7fc5a1610c1c3d9cfb072d56666c16d159e3be326"},"0db57498e965fe5c064e0aef24a9c6efeaae440f062e2f23649141d9340fa4a1","f713064ca751dc588bc13832137c418cb70cf0446de92ade60ad631071558fca","dfefd34e8ab60f41d0c130527d5092d6ce662dc9fa85bc8c97682baf65830b51","96c23535f4f9dd15beb767e070559ea672f6a35f103152836a67100605136a96","b0f4dd1a825912da8f12fd3388d839ef4aa51165ea0e60e4869b50b7ccb4f6fc","9cb7c5f710dc84d2e9500831a3e9a27afd3c3710f5a1b8744a50473e565b41fc","cf6b2edde490f303918809bfab1da8b6d059b50c160bec72005ff4c248bdd079","34693fb4a5e771e11668219221344dd1bd7d8b77ed005a1c1d965fb559be8406","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419",{"version":"e44ea2d6b7b853f6c81482416db43dafc11944561b810e469ae423085511ce7e","affectsGlobalScope":true},"f51b4042a3ac86f1f707500a9768f88d0b0c1fc3f3e45a73333283dea720cdc6",{"version":"a7289d79eb84a59d2475b4d0136b4404be3cfdd17c3ea46b9194add1d645df01","affectsGlobalScope":true},"0bb26fa2a90ee890eed57ee812c71fa84d3d07850163ec4a204de86412cc57c1","132ca47da601c60141dd6f10bd08c70d0620177e5638439df2464ec3945b6d98",{"version":"55d2bbae076fed7269c3e16faeb32f988f558427b7a1c3bf04aa7551ab86ae90","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","cf83847c9264dcd592b6c89c1542925b899b277228687f3638614e3fa784cf76","3a41ebe7f089d50f447466b35b6cabb8b584c0994fc9809d0cd0a4ebc41e1239","7693b90b3075deaccafd5efb467bf9f2b747a3075be888652ef73e64396d8628","0c42d6cba77d9ad1cf45256ccb8489aa502fe2dbee1ec9048a29d49f5d532e73","2cf89c17245db65d175d4ef699cd68187516f9b3ae5c572fc0b9ad60f35dc223","5f20d20b7607174caf1a6da9141aeb9f2142159ae2410ca30c7a0fccd1d19c99",{"version":"a34d65f61ec5aac5b53502c8b0bd4e00d217bccb95bf94d449e2571baa11fb8c","affectsGlobalScope":true},"8d42e5af5fb0a96a77e135ce84cc60636c9bad39d9dba043a4efe9d1bdeb3cc3","56fcc451e9065eb121c9cc4c1b9994a816306f3b0b3b1fce7ad59f0ac97a9999","8a6f12b74d3e6c4f5e1b918cb8e64ae16bc6756cf0d48bcc28a28e1bf26ca0cd","c3759b5bc5cc40f5988d86a497741a80fa91258629ae50a2b3735e774cd377cc","bf268a0aea37ad4ae3b7a9b58559190b6fc01ea16a31e35cd05817a0a60f895a","45dd82fb5aea9b12b2a90b427b28f3a014e8b2ee9b74087a5ab882841cb5fbc5",{"version":"d7dad6db394a3d9f7b49755e4b610fbf8ed6eb0c9810ae5f1a119f6b5d76de45","affectsGlobalScope":true},"48b2f9302651eb31acd5be69bb4e6b35797a7fcd6b77391d10a4ccadf7dc3609","0c8c917ef15498c827bd494a0ef365e9f76deb211f8acbb86932e20489310788","dd67d2b5e4e8a182a38de8e69fb736945eaa4588e0909c14e01a14bd3cc1fd1e",{"version":"9cdc2c6144b03822c9842505d09945bcf813b86827fdb260dd7586b63abc19bf","affectsGlobalScope":true},{"version":"2923dee3c897f03e91b54a210cdbefea7290562f0ac4b948667d4c9ee844b79e","affectsGlobalScope":true},"79169698d09a2be54b14f3bcad2575b414bf3525063fde0a1e4fcd5d6efd380e","051d939bcf77caa3cef3282708ab3a6fdfb741a7366e1d74a9e7603b67417ec3","0be79b3ff0f16b6c2f9bc8c4cc7097ea417d8d67f8267f7e1eec8e32b548c2ff","1c61ffa3a71b77363b30d19832c269ef62fba787f5610cac7254728d3b69ab2e","a234d62ae81d012ebf23898a45672edf3e5c93ecf5a438a42b96c08dd68cde43","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","09ed02a725db002693236b6dfc49b2c6eb5557be1421d7fbe4f07cfe38211d92","09d801ff4a303d4976d4b9cb94af3a9097c4a70345e662d176975872d2998e51","c8558b01389b5f7610ac293aa612ccea2ae64d83af43b49f8142f190be1f414c","c40fdf7b2e18df49ce0568e37f0292c12807a0748be79e272745e7216bed2606",{"version":"b10b426c56e220b5093bf8a2446ee47af47263b7b1a03f4b18e42326b231b111","affectsGlobalScope":true},"4e228e78c1e9b0a75c70588d59288f63a6258e8b1fe4a67b0c53fe03461421d9","b4635ef36bee17e1304337d591c3b6b461ecdbc1876d0effbe6a581e62201fe5","205d50c24359ead003dc537b9b65d2a64208dfdffe368f403cf9e0357831db9e","1265fddcd0c68be9d2a3b29805d0280484c961264dd95e0b675f7bd91f777e78",{"version":"e4507242542bd499238f693d88b2d32e22177cc508854625f87bcc9bc3fa1256","affectsGlobalScope":true},{"version":"d942354e4966a98d3a92d1b1af0b4ac06f33af3f88116743e2c304c027ca26ef","affectsGlobalScope":true},"39f0808e5be3cb38674726c21fe2eb453c55e48a901679b4ce30fef85549b892","6afd66a7432ef100027ea110449e874196381e019e30eda7e7d8ca390366b7a8","befb8a9a78ac99d8fbc3ed392810489a7b90760c7a58934e8f1c8538f581cff3","e670bdf01540d35c170fae68edfd2f288eff909936780c379d6a9103b787b22c","867f95abf1df444aab146b19847391fc2f922a55f6a970a27ed8226766cee29f",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"88003d9ab15507806f41b120be6d407c1afe566c2f6689ebe3a034dd5ec0c8dc","6adaa01cba6e7bae17d8291089e9e38bfc3fffcd522e2161214cbaccab4c1b2b","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","c79bd2f3e5c05e7ad80dc82ce8d339cac23ac1f5e6cfab96c860bb70d5162873","e3328cedfe4d7fac23ba75d00bf5169269800ab949d0837cd88c4211a52c3762","cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec",{"version":"c8950367d1812758e9e354c695c60c3e6311bf2cd98b9f9eb469a19df8a9a486","affectsGlobalScope":true},"dd89872dd0647dfd63665f3d525c06d114310a2f7a5a9277e5982a152b31be2b","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","cc0700b1b97e18a3d5d9184470502d8762ec85158819d662730c3a8c5d702584","9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","f77ff4cd234d3fd18ddd5aeadb6f94374511931976d41f4b9f594cb71f7ce6f3","4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","4f18b4e6081e5e980ef53ddf57b9c959d36cffe1eb153865f512a01aeffb5e1e","7f17d4846a88eca5fe71c4474ef687ee89c4acf9b5372ab9b2ee68644b7e0fe0","b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","58e0cee50add50d4b6d47a935e26aeb0080d98c9cf729f8af389511cdfa10526","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","75fa6a9be075402ea969c1fcec4bb1421f72efbc3e2f340032684cdd3115197c","2eae2c50864a720fad05e116a0121a6ee6b6231266763c75d1f3503ddc22714a"],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"module":1,"outDir":"./","strict":true,"target":4},"fileIdsList":[[73,123],[123],[123,137],[47,123],[48,123],[48,50,123],[47,48,49,50,64,65,67,68,123],[48,62,63,123],[47,48,62,63,65,66,123],[48,50,52,123],[48,50,69,123],[48,51,53,54,55,56,57,58,59,60,61,123],[73,74,75,76,77,123],[73,75,123],[95,123,130],[123,132],[123,133],[123,139,142],[79,123],[82,123],[83,88,114,123],[84,94,95,102,111,122,123],[84,85,94,102,123],[86,123],[87,88,95,103,123],[88,111,119,123],[89,91,94,102,123],[90,123],[91,92,123],[93,94,123],[94,123],[94,95,96,111,122,123],[94,95,96,111,123],[94,97,102,111,122,123],[94,95,97,98,102,111,119,122,123],[97,99,111,119,122,123],[79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,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],[94,100,123],[101,122,123,127],[91,94,102,111,123],[103,123],[104,123],[82,105,123],[106,121,123,127],[107,123],[108,123],[94,109,123],[109,110,123,125],[83,94,111,112,113,123],[83,111,113,123],[111,112,123],[114,123],[115,123],[94,117,118,123],[117,118,123],[88,102,119,123],[120,123],[102,121,123],[83,97,108,122,123],[88,123],[111,123,124],[123,125],[123,126],[83,88,94,96,105,111,122,123,125,127],[111,123,128],[123,146,185],[123,146,170,185],[123,185],[123,146],[123,146,171,185],[123,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184],[123,171,185],[123,187],[123,135,141],[123,139],[123,136,140],[123,138],[69,70,123],[69,123],[71,123],[69]],"referencedMap":[[75,1],[73,2],[135,2],[138,3],[48,4],[49,5],[68,6],[69,7],[64,8],[65,4],[67,9],[66,5],[51,6],[53,10],[54,6],[55,6],[56,11],[57,6],[58,6],[59,6],[60,6],[61,6],[62,12],[52,5],[50,5],[47,2],[63,5],[137,2],[78,13],[74,1],[76,14],[77,1],[131,15],[132,2],[133,16],[134,17],[143,18],[144,2],[145,2],[79,19],[80,19],[82,20],[83,21],[84,22],[85,23],[86,24],[87,25],[88,26],[89,27],[90,28],[91,29],[92,29],[93,30],[94,31],[95,32],[96,33],[81,2],[129,2],[97,34],[98,35],[99,36],[130,37],[100,38],[101,39],[102,40],[103,41],[104,42],[105,43],[106,44],[107,45],[108,46],[109,47],[110,48],[111,49],[113,50],[112,51],[114,52],[115,53],[116,2],[117,54],[118,55],[119,56],[120,57],[121,58],[122,59],[123,60],[124,61],[125,62],[126,63],[127,64],[128,65],[170,66],[171,67],[146,68],[149,68],[168,66],[169,66],[159,66],[158,69],[156,66],[151,66],[164,66],[162,66],[166,66],[150,66],[163,66],[167,66],[152,66],[153,66],[165,66],[147,66],[154,66],[155,66],[157,66],[161,66],[172,70],[160,66],[148,66],[185,71],[184,2],[179,70],[181,72],[180,70],[173,70],[174,70],[176,70],[178,70],[182,72],[183,72],[175,72],[177,72],[186,2],[187,2],[188,73],[136,2],[142,74],[140,75],[141,76],[139,77],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[46,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[1,2],[45,2],[11,2],[10,2],[71,78],[70,79],[72,80]],"exportedModulesMap":[[75,1],[73,2],[135,2],[138,3],[48,4],[49,5],[68,6],[69,7],[64,8],[65,4],[67,9],[66,5],[51,6],[53,10],[54,6],[55,6],[56,11],[57,6],[58,6],[59,6],[60,6],[61,6],[62,12],[52,5],[50,5],[47,2],[63,5],[137,2],[78,13],[74,1],[76,14],[77,1],[131,15],[132,2],[133,16],[134,17],[143,18],[144,2],[145,2],[79,19],[80,19],[82,20],[83,21],[84,22],[85,23],[86,24],[87,25],[88,26],[89,27],[90,28],[91,29],[92,29],[93,30],[94,31],[95,32],[96,33],[81,2],[129,2],[97,34],[98,35],[99,36],[130,37],[100,38],[101,39],[102,40],[103,41],[104,42],[105,43],[106,44],[107,45],[108,46],[109,47],[110,48],[111,49],[113,50],[112,51],[114,52],[115,53],[116,2],[117,54],[118,55],[119,56],[120,57],[121,58],[122,59],[123,60],[124,61],[125,62],[126,63],[127,64],[128,65],[170,66],[171,67],[146,68],[149,68],[168,66],[169,66],[159,66],[158,69],[156,66],[151,66],[164,66],[162,66],[166,66],[150,66],[163,66],[167,66],[152,66],[153,66],[165,66],[147,66],[154,66],[155,66],[157,66],[161,66],[172,70],[160,66],[148,66],[185,71],[184,2],[179,70],[181,72],[180,70],[173,70],[174,70],[176,70],[178,70],[182,72],[183,72],[175,72],[177,72],[186,2],[187,2],[188,73],[136,2],[142,74],[140,75],[141,76],[139,77],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[46,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[1,2],[45,2],[11,2],[10,2],[71,81],[70,81],[72,80]],"semanticDiagnosticsPerFile":[75,73,135,138,48,49,68,69,64,65,67,66,51,53,54,55,56,57,58,59,60,61,62,52,50,47,63,137,78,74,76,77,131,132,133,134,143,144,145,79,80,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,81,129,97,98,99,130,100,101,102,103,104,105,106,107,108,109,110,111,113,112,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,170,171,146,149,168,169,159,158,156,151,164,162,166,150,163,167,152,153,165,147,154,155,157,161,172,160,148,185,184,179,181,180,173,174,176,178,182,183,175,177,186,187,188,136,142,140,141,139,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,46,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,1,45,11,10,71,70,72],"latestChangedDtsFile":"./src/index.d.ts"},"version":"4.9.5"}
|
|
1
|
+
{"program":{"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.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/typescript/lib/lib.scripthost.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.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.es2017.full.d.ts","../../../node_modules/@sdkgen/parser/src/token.ts","../../../node_modules/@sdkgen/parser/src/ast.ts","../../../node_modules/@sdkgen/parser/src/compatibility/index.ts","../../../node_modules/@sdkgen/parser/src/semantic/visitor.ts","../../../node_modules/@sdkgen/parser/src/semantic/01_check_multiple_declaration.ts","../../../node_modules/@sdkgen/parser/src/semantic/transformer.ts","../../../node_modules/@sdkgen/parser/src/semantic/02_give_struct_and_enum_names.ts","../../../node_modules/@sdkgen/parser/src/semantic/03_match_type_definitions.ts","../../../node_modules/@sdkgen/parser/src/semantic/04_check_dont_return_secret.ts","../../../node_modules/@sdkgen/parser/src/semantic/05_expand_spreads.ts","../../../node_modules/@sdkgen/parser/src/semantic/06_check_empty_struct_or_enum.ts","../../../node_modules/@sdkgen/parser/src/semantic/07_validate_recursive_types.ts","../../../node_modules/@sdkgen/parser/src/semantic/08_collect_struct_and_enum_types.ts","../../../node_modules/@sdkgen/parser/src/semantic/09_validate_annotations.ts","../../../node_modules/@sdkgen/parser/src/semantic/10_check_duplicate_members_on_enum.ts","../../../node_modules/@sdkgen/parser/src/semantic/analyser.ts","../../../node_modules/@sdkgen/parser/src/utils.ts","../../../node_modules/@sdkgen/parser/src/json.ts","../../../node_modules/@sdkgen/parser/src/lexer.ts","../../../node_modules/@sdkgen/parser/src/restparser.ts","../../../node_modules/@sdkgen/parser/src/parser.ts","../../../node_modules/@sdkgen/parser/src/helpers.ts","../../../node_modules/@sdkgen/parser/src/index.ts","../src/helpers.ts","../src/fsharp-server.ts","../src/index.ts","../../../node_modules/@babel/types/lib/index.d.ts","../../../node_modules/@types/babel__generator/index.d.ts","../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../node_modules/@types/babel__template/index.d.ts","../../../node_modules/@types/babel__traverse/index.d.ts","../../../node_modules/@types/babel__core/index.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.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/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/repl.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","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/bonjour/index.d.ts","../../../node_modules/@types/busboy/index.d.ts","../../../node_modules/@types/command-line-args/index.d.ts","../../../node_modules/@types/command-line-usage/index.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/send/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/connect-history-api-fallback/index.d.ts","../../../node_modules/@types/eslint/helpers.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/eslint/index.d.ts","../../../node_modules/@types/eslint-scope/index.d.ts","../../../node_modules/@types/http-errors/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../../node_modules/@types/file-saver/index.d.ts","../../../node_modules/@types/graceful-fs/index.d.ts","../../../node_modules/@types/http-proxy/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/@jest/expect-utils/build/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/expect/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/request-ip/index.d.ts","../../../node_modules/@types/retry/index.d.ts","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/@types/serve-handler/index.d.ts","../../../node_modules/@types/serve-index/index.d.ts","../../../node_modules/@types/sockjs/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/swagger-ui-dist/absolute-path.d.ts","../../../node_modules/@types/swagger-ui-dist/index.d.ts","../../../node_modules/@types/ws/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"d2f31f19e1ba6ed59be9259d660a239d9a3fcbbc8e038c6b2009bde34b175fed","0d1b618fb1d31b44a3e77e0940199cc12099b7e448ff596481039c5439160c5d","851153ecb19fe760635a2b8e54dad62a99c245a22abb116c781680cb3505a02e","e18aa16baef58d63b8a342de5e72edf39f2369970b42171a25d743d0ce4afc06","50ba5c02af36d9f80c7da35962cb61d1088a7af05ef5930d417981baccfbc9c3","fb06e8dde3cf19ccc0e47762be6242ec990d659557dbbe14c63113478adc2444","397d74c2f4c02a687edae40df94680f66d7a2ce96dce5dd15e8278006d07e946","7fa0685b27b50b8ef1604f5d71772ad6846b1996b4d9e4c396baef7aa6539b2a","df2bd579b982728787d31c4d8e40a8f442a9eb67e8973196d77e86968cf657a3","fbb4995857b44355618c8a61cb5e086462821cc282fc638cc3a94a2b814bc633","82fa765db527609317ea5ad4dc0fb366f1b57b4d7b226e18b3948e255c42274e","0f2e58dd677c3842b6ba89bbc80c30ff6ee38f49d93a12d765585963aebf3852","1e3ad408c7a5cbf4a401b53e5e0760bbb75d237a206a474e874d600345372a82","f1ebcaadc20f1aec3895b8e4a0b88d5de640d7892d57fbd0b5c9b14c78f6192e","dc203171e94764adb6341cc3336073e1d447932460dfeb81214d1946f2b6d5b2","dbd05088d511c6ce1811b5f24dfbd13bc483a01778d8cac7592a79c0316802b9","52100f9bfc215f16eb0a58af18050b27f4c2c307679f137d000882fe942a324a","314dc2eb5d1d6e583cf6eb3759fb5329a18b2c4db94a50e00d6225968c6e9c25","96f8d22597cd9bcb11728c4ff1724c0f664cd69f883487dc28bcfa21f0f01e71","f6725bcf9cc6c70f311aabd5ef3b7839535e416eea8e3c548e2dd99136f47489","31b7510503d7ed5a8a7c45c1f0e7ab1c9eedd0c674131fd797b371d4285ed518","674f4367342c630e9e181902750fd7765cf714dc917ff01ecf5418cd4bfbfac7","7cfa60d9e9948d1d9fbc67bbe7b742f8b913cbc043581dbca1a4b97475d69f07","b3fb528e7589083ed8f80ad73bd30695b9cd00d1cdce5859977b60feefabb347",{"version":"40a6177080f7b189704265a0c1135717b9cf2f47a2ed2e3e2a3d51a8c753beec","signature":"1ca6be3c72510871031c3ed171727b6be564eebe88253e215b0307a1aef276d8"},{"version":"5ed5f1f3f89729cb82df607335eee92cfecd032e847f03761954674cd9065168","signature":"7192c13fd3e76a74cf9fd2a7fc5a1610c1c3d9cfb072d56666c16d159e3be326"},"0db57498e965fe5c064e0aef24a9c6efeaae440f062e2f23649141d9340fa4a1","f713064ca751dc588bc13832137c418cb70cf0446de92ade60ad631071558fca","dfefd34e8ab60f41d0c130527d5092d6ce662dc9fa85bc8c97682baf65830b51","96c23535f4f9dd15beb767e070559ea672f6a35f103152836a67100605136a96","b0f4dd1a825912da8f12fd3388d839ef4aa51165ea0e60e4869b50b7ccb4f6fc","9cb7c5f710dc84d2e9500831a3e9a27afd3c3710f5a1b8744a50473e565b41fc","cf6b2edde490f303918809bfab1da8b6d059b50c160bec72005ff4c248bdd079","34693fb4a5e771e11668219221344dd1bd7d8b77ed005a1c1d965fb559be8406","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419",{"version":"e44ea2d6b7b853f6c81482416db43dafc11944561b810e469ae423085511ce7e","affectsGlobalScope":true},"f51b4042a3ac86f1f707500a9768f88d0b0c1fc3f3e45a73333283dea720cdc6",{"version":"a7289d79eb84a59d2475b4d0136b4404be3cfdd17c3ea46b9194add1d645df01","affectsGlobalScope":true},"0bb26fa2a90ee890eed57ee812c71fa84d3d07850163ec4a204de86412cc57c1","132ca47da601c60141dd6f10bd08c70d0620177e5638439df2464ec3945b6d98",{"version":"55d2bbae076fed7269c3e16faeb32f988f558427b7a1c3bf04aa7551ab86ae90","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","cf83847c9264dcd592b6c89c1542925b899b277228687f3638614e3fa784cf76","3a41ebe7f089d50f447466b35b6cabb8b584c0994fc9809d0cd0a4ebc41e1239","7693b90b3075deaccafd5efb467bf9f2b747a3075be888652ef73e64396d8628","0c42d6cba77d9ad1cf45256ccb8489aa502fe2dbee1ec9048a29d49f5d532e73","2cf89c17245db65d175d4ef699cd68187516f9b3ae5c572fc0b9ad60f35dc223","5f20d20b7607174caf1a6da9141aeb9f2142159ae2410ca30c7a0fccd1d19c99",{"version":"a34d65f61ec5aac5b53502c8b0bd4e00d217bccb95bf94d449e2571baa11fb8c","affectsGlobalScope":true},"8d42e5af5fb0a96a77e135ce84cc60636c9bad39d9dba043a4efe9d1bdeb3cc3","56fcc451e9065eb121c9cc4c1b9994a816306f3b0b3b1fce7ad59f0ac97a9999","8a6f12b74d3e6c4f5e1b918cb8e64ae16bc6756cf0d48bcc28a28e1bf26ca0cd","c3759b5bc5cc40f5988d86a497741a80fa91258629ae50a2b3735e774cd377cc","bf268a0aea37ad4ae3b7a9b58559190b6fc01ea16a31e35cd05817a0a60f895a","45dd82fb5aea9b12b2a90b427b28f3a014e8b2ee9b74087a5ab882841cb5fbc5",{"version":"d7dad6db394a3d9f7b49755e4b610fbf8ed6eb0c9810ae5f1a119f6b5d76de45","affectsGlobalScope":true},"48b2f9302651eb31acd5be69bb4e6b35797a7fcd6b77391d10a4ccadf7dc3609","0c8c917ef15498c827bd494a0ef365e9f76deb211f8acbb86932e20489310788","dd67d2b5e4e8a182a38de8e69fb736945eaa4588e0909c14e01a14bd3cc1fd1e",{"version":"9cdc2c6144b03822c9842505d09945bcf813b86827fdb260dd7586b63abc19bf","affectsGlobalScope":true},{"version":"2923dee3c897f03e91b54a210cdbefea7290562f0ac4b948667d4c9ee844b79e","affectsGlobalScope":true},"79169698d09a2be54b14f3bcad2575b414bf3525063fde0a1e4fcd5d6efd380e","051d939bcf77caa3cef3282708ab3a6fdfb741a7366e1d74a9e7603b67417ec3","0be79b3ff0f16b6c2f9bc8c4cc7097ea417d8d67f8267f7e1eec8e32b548c2ff","1c61ffa3a71b77363b30d19832c269ef62fba787f5610cac7254728d3b69ab2e","a234d62ae81d012ebf23898a45672edf3e5c93ecf5a438a42b96c08dd68cde43","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","09ed02a725db002693236b6dfc49b2c6eb5557be1421d7fbe4f07cfe38211d92","09d801ff4a303d4976d4b9cb94af3a9097c4a70345e662d176975872d2998e51","c8558b01389b5f7610ac293aa612ccea2ae64d83af43b49f8142f190be1f414c","c40fdf7b2e18df49ce0568e37f0292c12807a0748be79e272745e7216bed2606",{"version":"b10b426c56e220b5093bf8a2446ee47af47263b7b1a03f4b18e42326b231b111","affectsGlobalScope":true},"4e228e78c1e9b0a75c70588d59288f63a6258e8b1fe4a67b0c53fe03461421d9","b4635ef36bee17e1304337d591c3b6b461ecdbc1876d0effbe6a581e62201fe5","205d50c24359ead003dc537b9b65d2a64208dfdffe368f403cf9e0357831db9e","1265fddcd0c68be9d2a3b29805d0280484c961264dd95e0b675f7bd91f777e78",{"version":"e4507242542bd499238f693d88b2d32e22177cc508854625f87bcc9bc3fa1256","affectsGlobalScope":true},{"version":"d942354e4966a98d3a92d1b1af0b4ac06f33af3f88116743e2c304c027ca26ef","affectsGlobalScope":true},"39f0808e5be3cb38674726c21fe2eb453c55e48a901679b4ce30fef85549b892","6afd66a7432ef100027ea110449e874196381e019e30eda7e7d8ca390366b7a8","befb8a9a78ac99d8fbc3ed392810489a7b90760c7a58934e8f1c8538f581cff3","e670bdf01540d35c170fae68edfd2f288eff909936780c379d6a9103b787b22c","867f95abf1df444aab146b19847391fc2f922a55f6a970a27ed8226766cee29f",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"88003d9ab15507806f41b120be6d407c1afe566c2f6689ebe3a034dd5ec0c8dc","82819f9ecc249a6a3e284003540d02ea1b1f56f410c23231797b9e1e4b9622df","81a109b6bb6adf5ed70f2c7e6d907b8c3adcf7b47b5ee09701c5f97370fd29b7","492f985316614ee57642a7b019eb17154c36c988d858325c3c2ecbe8e9a4ee1c","f6abe5cbd6417d9909f86f3f5b498f05238d0d9fb5e4666e88cf2f2e5864efe4","5ae76b5a59f2f787e9eb2d4f1a066ceb4505a52bf8fe77ac321d791ef2e72000","29193c018378ca9c8033eaa974c02c1f503e8fcd8a2bf406057c53f7d3fa17a8","f6218314af6f492ce5461bdadac5b829f5b4b31a3d1da3d04e77ed0afe0829fb","7167d932a7e2e991084421bb22af20024ada5a046d948c742de0f89996de5d0b","c7da551241b7be719b7bd654ab12a5098c3206fbb189076dd2d8871011a6ab5a","e2d3bfa79f0fad3ad67dfb0685c50dbe19b364a440160a2d40d0e3f44c75938c",{"version":"1c598f8d911f0bc39f04910c8c93f2f76fbb65f892ee5ecc38a2b58bb95af752","affectsGlobalScope":true},"87e4358eddd469426393408b4976bee1970c91634faa57a71f1db2c2f8dee9ba",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"42fe73978ddb3a82329bf41a116e921deb266551e4f0ad9e9c7bdc581c24f085","dd89872dd0647dfd63665f3d525c06d114310a2f7a5a9277e5982a152b31be2b","fdd574c45ab01286d64b1e2e78e9ea647c4527e954e27ae281d372f5fba41567","f9ae3d889d1330f015ee918b4c59f21211d90211b42efb0fe87c333d4a8d43d8","4eadf1158f1ae8f7b0deea0f96b391359042cf74d1eb3ce1dacdb69de96e590d","f0120fc76274f614e7b8f5420a74abce69eee25b81e2084479fa426f33ccd46a","003f07cf566395059625b39785398f18652c8952e19790e7d6eeb22a9cbe0440","c91397074e95b112320dded35cbfed25c5c783b05a265e4c3f7c8f5abaec1fb2","6adaa01cba6e7bae17d8291089e9e38bfc3fffcd522e2161214cbaccab4c1b2b","e0a45e86c5b8b3ecb551a13d0e6bbe98ea69f15a9cd91a8a9e7cc3458dc69bf3","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","c79bd2f3e5c05e7ad80dc82ce8d339cac23ac1f5e6cfab96c860bb70d5162873","e3328cedfe4d7fac23ba75d00bf5169269800ab949d0837cd88c4211a52c3762","cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec",{"version":"c8950367d1812758e9e354c695c60c3e6311bf2cd98b9f9eb469a19df8a9a486","affectsGlobalScope":true},"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","0eacae49e20c8004e5022b3abc41cee708925a7bb0a52bafa2e416eca424d39d","58b3082802116f10782ecaa577a473499def44650204beb38a8541d4d98b757b",{"version":"29313b7a1d1342a1ee37224f895e2b77a9023d7c67241c873aaa9b51130db2e7","affectsGlobalScope":true},"199f9ead0daf25ae4c5632e3d1f42570af59685294a38123eef457407e13f365","cc0700b1b97e18a3d5d9184470502d8762ec85158819d662730c3a8c5d702584","9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","f77ff4cd234d3fd18ddd5aeadb6f94374511931976d41f4b9f594cb71f7ce6f3","4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","4f18b4e6081e5e980ef53ddf57b9c959d36cffe1eb153865f512a01aeffb5e1e","7f17d4846a88eca5fe71c4474ef687ee89c4acf9b5372ab9b2ee68644b7e0fe0","b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","58e0cee50add50d4b6d47a935e26aeb0080d98c9cf729f8af389511cdfa10526","b23d7d2e77430ad89e76242d953259afcbed6f23a74c8fbd247abb31fd4ad1fa","13ac133423d83cd4dc7d819a425cf78fbf2f8262fa818916d264e2abfb2ced6e","72c8ac810cce2f70a9de1b4b1ba65db76e29369693da1a53c70b879d2ad513bb","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","e59c13a739b9fbb0e9200e3140bf3f40358fffe0ab7eb661e5bc48d0d0f82c9c","dbd92ef431488d837877f02a9e54b35672810806eed41047f55cb723e823e2fe","c4f439b1def30f14d145a0927619748f933adacd38390f6dae3fe5591df2f14c","75fa6a9be075402ea969c1fcec4bb1421f72efbc3e2f340032684cdd3115197c","2eae2c50864a720fad05e116a0121a6ee6b6231266763c75d1f3503ddc22714a"],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"module":1,"outDir":"./","strict":true,"target":4},"fileIdsList":[[73,123],[123],[123,159],[47,123],[48,123],[48,50,123],[47,48,49,50,64,65,67,68,123],[48,62,63,123],[47,48,62,63,65,66,123],[48,50,52,123],[48,50,69,123],[48,51,53,54,55,56,57,58,59,60,61,123],[73,74,75,76,77,123],[73,75,123],[97,123,130,131],[89,123,130],[97,111,123,130],[122,123,130,141],[97,123,130],[123,144,146],[123,143,144,145],[94,97,123,130,138,139,140],[123,132,139,141,149],[95,123,130],[94,97,99,102,111,122,123,130],[123,154],[123,155],[123,161,164],[79,123],[82,123],[83,88,114,123],[84,94,95,102,111,122,123],[84,85,94,102,123],[86,123],[87,88,95,103,123],[88,111,119,123],[89,91,94,102,123],[90,123],[91,92,123],[93,94,123],[94,123],[94,95,96,111,122,123],[94,95,96,111,123],[94,97,102,111,122,123],[94,95,97,98,102,111,119,122,123],[97,99,111,119,122,123],[79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,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],[94,100,123],[101,122,123,127],[91,94,102,111,123],[103,123],[104,123],[82,105,123],[106,121,123,127],[107,123],[108,123],[94,109,123],[109,110,123,125],[83,94,111,112,113,123],[83,111,113,123],[111,112,123],[114,123],[115,123],[94,117,118,123],[117,118,123],[88,102,119,123],[120,123],[102,121,123],[83,97,108,122,123],[88,123],[111,123,124],[123,125],[123,126],[83,88,94,96,105,111,122,123,125,127],[111,123,128],[123,172,211],[123,172,196,211],[123,211],[123,172],[123,172,197,211],[123,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210],[123,197,211],[95,111,123,130,137],[95,97,123,130],[95,123,150],[97,123,130,137,148],[123,216],[94,97,99,111,119,122,123,128,130],[123,219],[123,157,163],[123,161],[123,158,162],[123,160],[69,70,123],[69,123],[71,123],[69]],"referencedMap":[[75,1],[73,2],[157,2],[160,3],[48,4],[49,5],[68,6],[69,7],[64,8],[65,4],[67,9],[66,5],[51,6],[53,10],[54,6],[55,6],[56,11],[57,6],[58,6],[59,6],[60,6],[61,6],[62,12],[52,5],[50,5],[47,2],[63,5],[159,2],[78,13],[74,1],[76,14],[77,1],[132,15],[133,16],[134,17],[135,2],[136,2],[142,18],[131,19],[147,20],[143,2],[146,21],[144,2],[141,22],[150,23],[151,2],[152,24],[148,2],[153,25],[154,2],[155,26],[156,27],[165,28],[145,2],[166,2],[137,2],[167,2],[168,2],[79,29],[80,29],[82,30],[83,31],[84,32],[85,33],[86,34],[87,35],[88,36],[89,37],[90,38],[91,39],[92,39],[93,40],[94,41],[95,42],[96,43],[81,2],[129,2],[97,44],[98,45],[99,46],[130,47],[100,48],[101,49],[102,50],[103,51],[104,52],[105,53],[106,54],[107,55],[108,56],[109,57],[110,58],[111,59],[113,60],[112,61],[114,62],[115,63],[116,2],[117,64],[118,65],[119,66],[120,67],[121,68],[122,69],[123,70],[124,71],[125,72],[126,73],[127,74],[128,75],[169,2],[139,2],[140,2],[170,19],[171,2],[196,76],[197,77],[172,78],[175,78],[194,76],[195,76],[185,76],[184,79],[182,76],[177,76],[190,76],[188,76],[192,76],[176,76],[189,76],[193,76],[178,76],[179,76],[191,76],[173,76],[180,76],[181,76],[183,76],[187,76],[198,80],[186,76],[174,76],[211,81],[210,2],[205,80],[207,82],[206,80],[199,80],[200,80],[202,80],[204,80],[208,82],[209,82],[201,82],[203,82],[138,83],[212,84],[213,85],[149,86],[214,19],[215,2],[216,2],[217,87],[218,88],[219,2],[220,89],[158,2],[164,90],[162,91],[163,92],[161,93],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[46,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[1,2],[45,2],[11,2],[10,2],[71,94],[70,95],[72,96]],"exportedModulesMap":[[75,1],[73,2],[157,2],[160,3],[48,4],[49,5],[68,6],[69,7],[64,8],[65,4],[67,9],[66,5],[51,6],[53,10],[54,6],[55,6],[56,11],[57,6],[58,6],[59,6],[60,6],[61,6],[62,12],[52,5],[50,5],[47,2],[63,5],[159,2],[78,13],[74,1],[76,14],[77,1],[132,15],[133,16],[134,17],[135,2],[136,2],[142,18],[131,19],[147,20],[143,2],[146,21],[144,2],[141,22],[150,23],[151,2],[152,24],[148,2],[153,25],[154,2],[155,26],[156,27],[165,28],[145,2],[166,2],[137,2],[167,2],[168,2],[79,29],[80,29],[82,30],[83,31],[84,32],[85,33],[86,34],[87,35],[88,36],[89,37],[90,38],[91,39],[92,39],[93,40],[94,41],[95,42],[96,43],[81,2],[129,2],[97,44],[98,45],[99,46],[130,47],[100,48],[101,49],[102,50],[103,51],[104,52],[105,53],[106,54],[107,55],[108,56],[109,57],[110,58],[111,59],[113,60],[112,61],[114,62],[115,63],[116,2],[117,64],[118,65],[119,66],[120,67],[121,68],[122,69],[123,70],[124,71],[125,72],[126,73],[127,74],[128,75],[169,2],[139,2],[140,2],[170,19],[171,2],[196,76],[197,77],[172,78],[175,78],[194,76],[195,76],[185,76],[184,79],[182,76],[177,76],[190,76],[188,76],[192,76],[176,76],[189,76],[193,76],[178,76],[179,76],[191,76],[173,76],[180,76],[181,76],[183,76],[187,76],[198,80],[186,76],[174,76],[211,81],[210,2],[205,80],[207,82],[206,80],[199,80],[200,80],[202,80],[204,80],[208,82],[209,82],[201,82],[203,82],[138,83],[212,84],[213,85],[149,86],[214,19],[215,2],[216,2],[217,87],[218,88],[219,2],[220,89],[158,2],[164,90],[162,91],[163,92],[161,93],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[46,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[1,2],[45,2],[11,2],[10,2],[71,97],[70,97],[72,96]],"semanticDiagnosticsPerFile":[75,73,157,160,48,49,68,69,64,65,67,66,51,53,54,55,56,57,58,59,60,61,62,52,50,47,63,159,78,74,76,77,132,133,134,135,136,142,131,147,143,146,144,141,150,151,152,148,153,154,155,156,165,145,166,137,167,168,79,80,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,81,129,97,98,99,130,100,101,102,103,104,105,106,107,108,109,110,111,113,112,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,169,139,140,170,171,196,197,172,175,194,195,185,184,182,177,190,188,192,176,189,193,178,179,191,173,180,181,183,187,198,186,174,211,210,205,207,206,199,200,202,204,208,209,201,203,138,212,213,149,214,215,216,217,218,219,220,158,164,162,163,161,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,46,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,1,45,11,10,71,70,72],"latestChangedDtsFile":"./src/index.d.ts"},"version":"4.9.5"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sdkgen/fsharp-generator",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.20231002144112",
|
|
4
4
|
"description": "",
|
|
5
|
-
"main": "
|
|
5
|
+
"main": "src/index.ts",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"test": "jest --passWithNoTests",
|
|
8
8
|
"eslint:fix": "eslint --fix '{src,spec}/**/*.ts'",
|
|
@@ -22,6 +22,9 @@
|
|
|
22
22
|
"access": "public"
|
|
23
23
|
},
|
|
24
24
|
"homepage": "https://github.com/sdkgen/sdkgen#readme",
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@sdkgen/parser": "^0.0.0-dev.20231002144112"
|
|
27
|
+
},
|
|
25
28
|
"devDependencies": {
|
|
26
29
|
"@cubos/eslint-config": "^2.2.0",
|
|
27
30
|
"@types/jest": "^29.0.0",
|
|
@@ -48,8 +51,5 @@
|
|
|
48
51
|
"/node_modules/"
|
|
49
52
|
]
|
|
50
53
|
},
|
|
51
|
-
"
|
|
52
|
-
"@sdkgen/parser": "0.0.0-dev.20231002135133"
|
|
53
|
-
},
|
|
54
|
-
"types": "dist/src/index.d.ts"
|
|
54
|
+
"gitHead": "85c11927f0704a14da62d908005ec99c2e3b199f"
|
|
55
55
|
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import type { AstRoot } from "@sdkgen/parser";
|
|
2
|
+
import { astToJson, VoidPrimitiveType } from "@sdkgen/parser";
|
|
3
|
+
|
|
4
|
+
import { capitalize, decodeType, encodeType, generateEnum, generateStruct, generateTypeName, ident } from "./helpers";
|
|
5
|
+
|
|
6
|
+
export function generateFSharpServerSource(ast: AstRoot): string {
|
|
7
|
+
let code = `module rec SdkgenGenerated
|
|
8
|
+
open Sdkgen.Runtime
|
|
9
|
+
open Sdkgen.Helpers
|
|
10
|
+
open Sdkgen.Context
|
|
11
|
+
open System.Threading.Tasks
|
|
12
|
+
open System.Text.Json
|
|
13
|
+
open System
|
|
14
|
+
open System.Globalization
|
|
15
|
+
#if NET5_0
|
|
16
|
+
// To use tasks as computation expression in .NET 5 install https://www.nuget.org/packages/TaskBuilder.fs/
|
|
17
|
+
open FSharp.Control.Tasks.V2.ContextInsensitive
|
|
18
|
+
#endif
|
|
19
|
+
`;
|
|
20
|
+
|
|
21
|
+
for (const error of ast.errors) {
|
|
22
|
+
code += `
|
|
23
|
+
type ${error.name}Exception =
|
|
24
|
+
inherit SdkgenException
|
|
25
|
+
|
|
26
|
+
new(message: string) = {
|
|
27
|
+
inherit SdkgenException("${error.name}", message, null)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
new(message: string, inner: Exception) = {
|
|
31
|
+
inherit SdkgenException("${error.name}", message, inner)
|
|
32
|
+
}\n`;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
for (const type of ast.enumTypes) {
|
|
36
|
+
code += `\n${generateEnum(type)}\n`;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
for (const type of ast.structTypes) {
|
|
40
|
+
code += `\n${generateStruct(type)}\n`;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
code += `
|
|
44
|
+
type Api() =`;
|
|
45
|
+
|
|
46
|
+
for (const op of ast.operations) {
|
|
47
|
+
const returnTypeAngle = op.returnType instanceof VoidPrimitiveType ? "" : `<${generateTypeName(op.returnType)}>`;
|
|
48
|
+
|
|
49
|
+
const argsInRecord = op.args.length > 0 ? `{| ${op.args.map(arg => `${arg.name}: ${generateTypeName(arg.type)};`).join("")} |} ->` : "";
|
|
50
|
+
|
|
51
|
+
code += `
|
|
52
|
+
member val ${capitalize(op.name)}: Context -> ${argsInRecord} Task${returnTypeAngle} =
|
|
53
|
+
fun _ -> (raise (FatalException("Function '${op.name}' not implemented.")))
|
|
54
|
+
with get, set
|
|
55
|
+
`;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
code += `
|
|
59
|
+
interface BaseApi with
|
|
60
|
+
member __.ExecuteFunction(context_: Context, resultWriter_: Utf8JsonWriter) : Task =
|
|
61
|
+
task {
|
|
62
|
+
match context_.Name with`;
|
|
63
|
+
|
|
64
|
+
for (const op of ast.operations) {
|
|
65
|
+
code += `
|
|
66
|
+
| ${JSON.stringify(op.name)} ->`;
|
|
67
|
+
for (const arg of op.args) {
|
|
68
|
+
code += `
|
|
69
|
+
let ${arg.name}Json_ =
|
|
70
|
+
match context_.Args.TryGetValue(${JSON.stringify(arg.name)}) with
|
|
71
|
+
| true, v -> v
|
|
72
|
+
| _ -> raise (FatalException("'${op.name}().args.${arg.name}' must be set to a value of type ${arg.type.name}."))
|
|
73
|
+
|
|
74
|
+
let ${ident(arg.name)} =
|
|
75
|
+
${decodeType(arg.type, `${arg.name}Json_`, `"${op.name}().args.${arg.name}"`, ident(arg.name)).replace(/\n/gu, "\n ")}`;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
if (op.returnType instanceof VoidPrimitiveType) {
|
|
79
|
+
code += `
|
|
80
|
+
|
|
81
|
+
do! (__.${capitalize(op.name)} context_ ${op.args.length > 0 ? "{|" : ""} ${op.args
|
|
82
|
+
.map(arg => `${arg.name} = ${ident(arg.name)}`)
|
|
83
|
+
.join("; ")} ${op.args.length > 0 ? "|}" : ""})
|
|
84
|
+
`;
|
|
85
|
+
} else {
|
|
86
|
+
code += `
|
|
87
|
+
|
|
88
|
+
let! result_ = (__.${capitalize(op.name)} context_ ${op.args.length > 0 ? "{|" : ""} ${op.args
|
|
89
|
+
.map(arg => `${arg.name} = ${ident(arg.name)}`)
|
|
90
|
+
.join("; ")} ${op.args.length > 0 ? "|}" : ""})
|
|
91
|
+
${encodeType(op.returnType, `result_`, `"${op.name}().ret"`, 1, false).replace(/\n/gu, "\n ")}`;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
code += `
|
|
96
|
+
|
|
97
|
+
| _ -> raise (FatalException($"Unknown function '{context_.Name}'."))
|
|
98
|
+
} :> Task`;
|
|
99
|
+
|
|
100
|
+
code += `
|
|
101
|
+
member __.GetAstJson() = """${JSON.stringify(astToJson(ast), null, 4).replace(/\n/gu, "\n ")}""";`;
|
|
102
|
+
|
|
103
|
+
return code;
|
|
104
|
+
}
|
package/src/helpers.ts
ADDED
|
@@ -0,0 +1,578 @@
|
|
|
1
|
+
import type { Type } from "@sdkgen/parser";
|
|
2
|
+
import {
|
|
3
|
+
ArrayType,
|
|
4
|
+
Base64PrimitiveType,
|
|
5
|
+
BigIntPrimitiveType,
|
|
6
|
+
BoolPrimitiveType,
|
|
7
|
+
BytesPrimitiveType,
|
|
8
|
+
CnpjPrimitiveType,
|
|
9
|
+
CpfPrimitiveType,
|
|
10
|
+
DatePrimitiveType,
|
|
11
|
+
DateTimePrimitiveType,
|
|
12
|
+
EmailPrimitiveType,
|
|
13
|
+
EnumType,
|
|
14
|
+
FloatPrimitiveType,
|
|
15
|
+
HexPrimitiveType,
|
|
16
|
+
HtmlPrimitiveType,
|
|
17
|
+
IntPrimitiveType,
|
|
18
|
+
JsonPrimitiveType,
|
|
19
|
+
MoneyPrimitiveType,
|
|
20
|
+
OptionalType,
|
|
21
|
+
StringPrimitiveType,
|
|
22
|
+
StructType,
|
|
23
|
+
TypeReference,
|
|
24
|
+
UIntPrimitiveType,
|
|
25
|
+
UrlPrimitiveType,
|
|
26
|
+
UuidPrimitiveType,
|
|
27
|
+
VoidPrimitiveType,
|
|
28
|
+
XmlPrimitiveType,
|
|
29
|
+
} from "@sdkgen/parser";
|
|
30
|
+
|
|
31
|
+
const reservedWords = [
|
|
32
|
+
"abstract",
|
|
33
|
+
"as",
|
|
34
|
+
"base",
|
|
35
|
+
"bool",
|
|
36
|
+
"break",
|
|
37
|
+
"byte",
|
|
38
|
+
"case",
|
|
39
|
+
"catch",
|
|
40
|
+
"char",
|
|
41
|
+
"checked",
|
|
42
|
+
"class",
|
|
43
|
+
"const",
|
|
44
|
+
"continue",
|
|
45
|
+
"decimal",
|
|
46
|
+
"default",
|
|
47
|
+
"delegate",
|
|
48
|
+
"do",
|
|
49
|
+
"double",
|
|
50
|
+
"else",
|
|
51
|
+
"enum",
|
|
52
|
+
"event",
|
|
53
|
+
"explicit",
|
|
54
|
+
"extern",
|
|
55
|
+
"false",
|
|
56
|
+
"finally",
|
|
57
|
+
"fixed",
|
|
58
|
+
"float",
|
|
59
|
+
"for",
|
|
60
|
+
"foreach",
|
|
61
|
+
"goto",
|
|
62
|
+
"if",
|
|
63
|
+
"implicit",
|
|
64
|
+
"in",
|
|
65
|
+
"int",
|
|
66
|
+
"interface",
|
|
67
|
+
"internal",
|
|
68
|
+
"is",
|
|
69
|
+
"lock",
|
|
70
|
+
"long",
|
|
71
|
+
"namespace",
|
|
72
|
+
"new",
|
|
73
|
+
"null",
|
|
74
|
+
"object",
|
|
75
|
+
"operator",
|
|
76
|
+
"out",
|
|
77
|
+
"override",
|
|
78
|
+
"params",
|
|
79
|
+
"private",
|
|
80
|
+
"protected",
|
|
81
|
+
"public",
|
|
82
|
+
"readonly",
|
|
83
|
+
"ref",
|
|
84
|
+
"return",
|
|
85
|
+
"sbyte",
|
|
86
|
+
"sealed",
|
|
87
|
+
"short",
|
|
88
|
+
"sizeof",
|
|
89
|
+
"stackalloc",
|
|
90
|
+
"static",
|
|
91
|
+
"string",
|
|
92
|
+
"struct",
|
|
93
|
+
"switch",
|
|
94
|
+
"this",
|
|
95
|
+
"throw",
|
|
96
|
+
"true",
|
|
97
|
+
"try",
|
|
98
|
+
"typeof",
|
|
99
|
+
"uint",
|
|
100
|
+
"ulong",
|
|
101
|
+
"unchecked",
|
|
102
|
+
"unsafe",
|
|
103
|
+
"ushort",
|
|
104
|
+
"using",
|
|
105
|
+
"using",
|
|
106
|
+
"static",
|
|
107
|
+
"virtual",
|
|
108
|
+
"void",
|
|
109
|
+
"volatile",
|
|
110
|
+
"while",
|
|
111
|
+
"type",
|
|
112
|
+
"end",
|
|
113
|
+
"id",
|
|
114
|
+
];
|
|
115
|
+
|
|
116
|
+
const typesWithNativeNullable: Function[] = [
|
|
117
|
+
StringPrimitiveType,
|
|
118
|
+
HtmlPrimitiveType,
|
|
119
|
+
CpfPrimitiveType,
|
|
120
|
+
CnpjPrimitiveType,
|
|
121
|
+
BytesPrimitiveType,
|
|
122
|
+
EmailPrimitiveType,
|
|
123
|
+
UrlPrimitiveType,
|
|
124
|
+
UuidPrimitiveType,
|
|
125
|
+
HexPrimitiveType,
|
|
126
|
+
Base64PrimitiveType,
|
|
127
|
+
XmlPrimitiveType,
|
|
128
|
+
StructType,
|
|
129
|
+
ArrayType,
|
|
130
|
+
];
|
|
131
|
+
|
|
132
|
+
const needsTempVarForNullable: Function[] = [
|
|
133
|
+
BigIntPrimitiveType,
|
|
134
|
+
DatePrimitiveType,
|
|
135
|
+
DateTimePrimitiveType,
|
|
136
|
+
FloatPrimitiveType,
|
|
137
|
+
IntPrimitiveType,
|
|
138
|
+
MoneyPrimitiveType,
|
|
139
|
+
UIntPrimitiveType,
|
|
140
|
+
ArrayType,
|
|
141
|
+
];
|
|
142
|
+
|
|
143
|
+
export function ident(name: string): string {
|
|
144
|
+
return reservedWords.includes(name) ? `${name}'` : name;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export function capitalize(name: string): string {
|
|
148
|
+
return name[0].toUpperCase() + name.slice(1);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export function generateTypeName(type: Type): string {
|
|
152
|
+
switch (type.constructor) {
|
|
153
|
+
case StringPrimitiveType:
|
|
154
|
+
return "string";
|
|
155
|
+
case IntPrimitiveType:
|
|
156
|
+
return "int";
|
|
157
|
+
case UIntPrimitiveType:
|
|
158
|
+
return "uint";
|
|
159
|
+
case FloatPrimitiveType:
|
|
160
|
+
return "double";
|
|
161
|
+
case BigIntPrimitiveType:
|
|
162
|
+
return "bigint";
|
|
163
|
+
case DatePrimitiveType:
|
|
164
|
+
case DateTimePrimitiveType:
|
|
165
|
+
return "DateTime";
|
|
166
|
+
case BoolPrimitiveType:
|
|
167
|
+
return "bool";
|
|
168
|
+
case BytesPrimitiveType:
|
|
169
|
+
return "byte[]";
|
|
170
|
+
case MoneyPrimitiveType:
|
|
171
|
+
return "decimal";
|
|
172
|
+
case UuidPrimitiveType:
|
|
173
|
+
return "Guid";
|
|
174
|
+
case CpfPrimitiveType:
|
|
175
|
+
case CnpjPrimitiveType:
|
|
176
|
+
case EmailPrimitiveType:
|
|
177
|
+
case HtmlPrimitiveType:
|
|
178
|
+
case UrlPrimitiveType:
|
|
179
|
+
case HexPrimitiveType:
|
|
180
|
+
case Base64PrimitiveType:
|
|
181
|
+
case XmlPrimitiveType:
|
|
182
|
+
return "string";
|
|
183
|
+
case VoidPrimitiveType:
|
|
184
|
+
return "void";
|
|
185
|
+
case JsonPrimitiveType:
|
|
186
|
+
return "JsonElement";
|
|
187
|
+
case OptionalType:
|
|
188
|
+
return `${generateTypeName((type as OptionalType).base)} option`;
|
|
189
|
+
case ArrayType:
|
|
190
|
+
return `${generateTypeName((type as ArrayType).base)} list`;
|
|
191
|
+
case StructType:
|
|
192
|
+
return type.name;
|
|
193
|
+
case EnumType:
|
|
194
|
+
return type.name;
|
|
195
|
+
case TypeReference:
|
|
196
|
+
return generateTypeName((type as TypeReference).type);
|
|
197
|
+
default:
|
|
198
|
+
throw new Error(`BUG: generateTypeName with ${type.constructor.name}`);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
export function decodeType(type: Type, jsonElementVar: string, path: string, targetVar: string, suffix = 1, maybeNull = true): string {
|
|
203
|
+
switch (type.constructor) {
|
|
204
|
+
case IntPrimitiveType: {
|
|
205
|
+
return `
|
|
206
|
+
decodeInt32 ${jsonElementVar} ${path}
|
|
207
|
+
`
|
|
208
|
+
.replace(/\n {16}/gu, "\n")
|
|
209
|
+
.trim();
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
case UIntPrimitiveType: {
|
|
213
|
+
return `
|
|
214
|
+
decodeUInt32 ${jsonElementVar} ${path}
|
|
215
|
+
`
|
|
216
|
+
.replace(/\n {16}/gu, "\n")
|
|
217
|
+
.trim();
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
case MoneyPrimitiveType: {
|
|
221
|
+
return `
|
|
222
|
+
(decodeMoney ${jsonElementVar} ${path}) / 100m
|
|
223
|
+
`
|
|
224
|
+
.replace(/\n {16}/gu, "\n")
|
|
225
|
+
.trim();
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
case FloatPrimitiveType: {
|
|
229
|
+
return `
|
|
230
|
+
decodeFloat ${jsonElementVar} ${path}
|
|
231
|
+
`
|
|
232
|
+
.replace(/\n {16}/gu, "\n")
|
|
233
|
+
.trim();
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
case BigIntPrimitiveType: {
|
|
237
|
+
return `
|
|
238
|
+
decodeBigInt ${jsonElementVar} ${path}
|
|
239
|
+
`
|
|
240
|
+
.replace(/\n {16}/gu, "\n")
|
|
241
|
+
.trim();
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
case StringPrimitiveType: {
|
|
245
|
+
return `
|
|
246
|
+
decodeString ${jsonElementVar} ${path}
|
|
247
|
+
`
|
|
248
|
+
.replace(/\n {16}/gu, "\n")
|
|
249
|
+
.trim();
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
case HtmlPrimitiveType: {
|
|
253
|
+
// TODO: validate HTML
|
|
254
|
+
return `
|
|
255
|
+
decodeHtml ${jsonElementVar} ${path}
|
|
256
|
+
`
|
|
257
|
+
.replace(/\n {16}/gu, "\n")
|
|
258
|
+
.trim();
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
case CpfPrimitiveType: {
|
|
262
|
+
// TODO: validate CPF
|
|
263
|
+
return `
|
|
264
|
+
decodeCpf ${jsonElementVar} ${path}
|
|
265
|
+
`
|
|
266
|
+
.replace(/\n {16}/gu, "\n")
|
|
267
|
+
.trim();
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
case CnpjPrimitiveType: {
|
|
271
|
+
// TODO: validate CNPJ
|
|
272
|
+
return `
|
|
273
|
+
decodeCnpj ${jsonElementVar} ${path}
|
|
274
|
+
`
|
|
275
|
+
.replace(/\n {16}/gu, "\n")
|
|
276
|
+
.trim();
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
case EmailPrimitiveType: {
|
|
280
|
+
// TODO: validate Email
|
|
281
|
+
return `
|
|
282
|
+
decodeEmail ${jsonElementVar} ${path}
|
|
283
|
+
`
|
|
284
|
+
.replace(/\n {16}/gu, "\n")
|
|
285
|
+
.trim();
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
case UrlPrimitiveType: {
|
|
289
|
+
// TODO: validate URL
|
|
290
|
+
return `
|
|
291
|
+
decodeUrl ${jsonElementVar} ${path}
|
|
292
|
+
`
|
|
293
|
+
.replace(/\n {16}/gu, "\n")
|
|
294
|
+
.trim();
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
case UuidPrimitiveType: {
|
|
298
|
+
// TODO: validate UUID
|
|
299
|
+
return `
|
|
300
|
+
decodeUuid ${jsonElementVar} ${path}
|
|
301
|
+
`
|
|
302
|
+
.replace(/\n {16}/gu, "\n")
|
|
303
|
+
.trim();
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
case HexPrimitiveType: {
|
|
307
|
+
// TODO: validate Hex
|
|
308
|
+
return `
|
|
309
|
+
decodeHex ${jsonElementVar} ${path}
|
|
310
|
+
`
|
|
311
|
+
.replace(/\n {16}/gu, "\n")
|
|
312
|
+
.trim();
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
case Base64PrimitiveType: {
|
|
316
|
+
// TODO: validate Base64
|
|
317
|
+
return `
|
|
318
|
+
decodeBase64 ${jsonElementVar} ${path}
|
|
319
|
+
`
|
|
320
|
+
.replace(/\n {16}/gu, "\n")
|
|
321
|
+
.trim();
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
case XmlPrimitiveType: {
|
|
325
|
+
// TODO: validate XML
|
|
326
|
+
return `
|
|
327
|
+
decodeXml ${jsonElementVar} ${path}
|
|
328
|
+
`
|
|
329
|
+
.replace(/\n {16}/gu, "\n")
|
|
330
|
+
.trim();
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
case BoolPrimitiveType: {
|
|
334
|
+
return `
|
|
335
|
+
decodeBool ${jsonElementVar} ${path}
|
|
336
|
+
`
|
|
337
|
+
.replace(/\n {16}/gu, "\n")
|
|
338
|
+
.trim();
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
case BytesPrimitiveType: {
|
|
342
|
+
return `
|
|
343
|
+
decodeBytes ${jsonElementVar} ${path}
|
|
344
|
+
`
|
|
345
|
+
.replace(/\n {16}/gu, "\n")
|
|
346
|
+
.trim();
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
case TypeReference:
|
|
350
|
+
return decodeType((type as TypeReference).type, jsonElementVar, path, targetVar, suffix);
|
|
351
|
+
case OptionalType:
|
|
352
|
+
if (needsTempVarForNullable.includes((type as OptionalType).base.constructor)) {
|
|
353
|
+
return `match ${jsonElementVar}.ValueKind with
|
|
354
|
+
| JsonValueKind.Null | JsonValueKind.Undefined -> None
|
|
355
|
+
| _ ->
|
|
356
|
+
(${decodeType((type as OptionalType).base, jsonElementVar, path, targetVar, suffix, false).replace(
|
|
357
|
+
/\n/gu,
|
|
358
|
+
"\n ",
|
|
359
|
+
)}) |> Some
|
|
360
|
+
`
|
|
361
|
+
.replace(/\n {16}/gu, "\n")
|
|
362
|
+
.trim();
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
if ((type as ArrayType).base instanceof OptionalType || (type as ArrayType).base instanceof ArrayType) {
|
|
366
|
+
return `
|
|
367
|
+
(>.>) decodeOptional ${decodeType((type as OptionalType).base, jsonElementVar, path, targetVar, suffix, false)}
|
|
368
|
+
`
|
|
369
|
+
.replace(/\n {16}/gu, "\n")
|
|
370
|
+
.trim();
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
return `
|
|
374
|
+
decodeOptional ${decodeType((type as OptionalType).base, jsonElementVar, path, targetVar, suffix, false)}
|
|
375
|
+
`
|
|
376
|
+
.replace(/\n {16}/gu, "\n")
|
|
377
|
+
.trim();
|
|
378
|
+
case EnumType:
|
|
379
|
+
case StructType:
|
|
380
|
+
return `Decode${type.name} ${jsonElementVar} ${path}`;
|
|
381
|
+
case JsonPrimitiveType:
|
|
382
|
+
if (maybeNull) {
|
|
383
|
+
return `
|
|
384
|
+
${jsonElementVar}
|
|
385
|
+
`
|
|
386
|
+
.replace(/\n {16}/gu, "\n")
|
|
387
|
+
.trim();
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
return `${targetVar} <- ${jsonElementVar}`;
|
|
391
|
+
|
|
392
|
+
case DateTimePrimitiveType: {
|
|
393
|
+
return `
|
|
394
|
+
decodeDateTime ${jsonElementVar} ${path}
|
|
395
|
+
`
|
|
396
|
+
.replace(/\n {16}/gu, "\n")
|
|
397
|
+
.trim();
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
case DatePrimitiveType: {
|
|
401
|
+
return `
|
|
402
|
+
decodeDate ${jsonElementVar} ${path}
|
|
403
|
+
`
|
|
404
|
+
.replace(/\n {16}/gu, "\n")
|
|
405
|
+
.trim();
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
case ArrayType: {
|
|
409
|
+
return `
|
|
410
|
+
match ${jsonElementVar}.ValueKind with
|
|
411
|
+
| JsonValueKind.Array ->
|
|
412
|
+
let mutable list_ = List.empty
|
|
413
|
+
for i1 in 0 .. (${jsonElementVar}.GetArrayLength() - 1) do
|
|
414
|
+
let item = ${jsonElementVar}.[i1]
|
|
415
|
+
let partialResult =
|
|
416
|
+
${decodeType(
|
|
417
|
+
(type as ArrayType).base,
|
|
418
|
+
`${jsonElementVar}.[i1]`,
|
|
419
|
+
`${path.slice(0, -1)}.{i1}"`,
|
|
420
|
+
targetVar,
|
|
421
|
+
suffix,
|
|
422
|
+
false,
|
|
423
|
+
).replace(/\n/gu, "\n ")}
|
|
424
|
+
list_ <- list_ |> List.append [ partialResult ]
|
|
425
|
+
list_
|
|
426
|
+
| _ -> raise (FatalException(${path.slice(0, -1)} must be an array."))
|
|
427
|
+
`
|
|
428
|
+
.replace(/\n {16}/gu, "\n")
|
|
429
|
+
.trim();
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
default:
|
|
433
|
+
throw new Error(`BUG: decodeType with ${type.constructor.name}`);
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
export function encodeType(type: Type, valueVar: string, path: string, suffix = 1, isRef = true): string {
|
|
438
|
+
switch (type.constructor) {
|
|
439
|
+
case StringPrimitiveType: {
|
|
440
|
+
return `resultWriter_.WriteStringValue(${valueVar})`;
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
case FloatPrimitiveType:
|
|
444
|
+
case UIntPrimitiveType:
|
|
445
|
+
case IntPrimitiveType: {
|
|
446
|
+
return `resultWriter_.WriteNumberValue(${valueVar})`;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
case MoneyPrimitiveType: {
|
|
450
|
+
return `resultWriter_.WriteNumberValue(int (Math.Round(${valueVar} * 100m)))`;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
case BigIntPrimitiveType: {
|
|
454
|
+
return `resultWriter_.WriteStringValue(${valueVar}.ToString())`;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
case BoolPrimitiveType: {
|
|
458
|
+
return `resultWriter_.WriteBooleanValue(${valueVar})`;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
case BytesPrimitiveType: {
|
|
462
|
+
return `resultWriter_.WriteStringValue(Convert.ToBase64String(${valueVar}))`;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
case DateTimePrimitiveType: {
|
|
466
|
+
return `resultWriter_.WriteStringValue(${valueVar}.ToString("yyyy-MM-ddTHH:mm:ss.FFFFFF'Z'"))`;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
case DatePrimitiveType: {
|
|
470
|
+
return `resultWriter_.WriteStringValue(${valueVar}.ToString("yyyy-MM-dd"))`;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
// TODO: format those
|
|
474
|
+
case CpfPrimitiveType:
|
|
475
|
+
case CnpjPrimitiveType:
|
|
476
|
+
case EmailPrimitiveType:
|
|
477
|
+
case HtmlPrimitiveType:
|
|
478
|
+
case UrlPrimitiveType:
|
|
479
|
+
case UuidPrimitiveType:
|
|
480
|
+
case Base64PrimitiveType:
|
|
481
|
+
case HexPrimitiveType:
|
|
482
|
+
case XmlPrimitiveType: {
|
|
483
|
+
return `resultWriter_.WriteStringValue(${valueVar})`;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
case OptionalType: {
|
|
487
|
+
let realBaseType = (type as OptionalType).base;
|
|
488
|
+
|
|
489
|
+
while (realBaseType instanceof TypeReference) {
|
|
490
|
+
realBaseType = realBaseType.type;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
return `
|
|
494
|
+
if (${valueVar}.IsNone) then
|
|
495
|
+
resultWriter_.WriteNullValue()
|
|
496
|
+
else
|
|
497
|
+
${encodeType(realBaseType, `${valueVar}.Value`, path, suffix, isRef)}
|
|
498
|
+
`
|
|
499
|
+
.replace(/\n {14}/gu, "\n")
|
|
500
|
+
.trim();
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
case TypeReference:
|
|
504
|
+
return encodeType((type as TypeReference).type, valueVar, path, suffix, isRef);
|
|
505
|
+
case EnumType:
|
|
506
|
+
return `Encode${type.name} ${valueVar} resultWriter_ ${path}`;
|
|
507
|
+
case StructType:
|
|
508
|
+
return `Encode${type.name} ${valueVar} resultWriter_ ${path}`;
|
|
509
|
+
case JsonPrimitiveType:
|
|
510
|
+
return `${valueVar}.WriteTo(resultWriter_)`;
|
|
511
|
+
case ArrayType: {
|
|
512
|
+
return `
|
|
513
|
+
resultWriter_.WriteStartArray()
|
|
514
|
+
for i${suffix} in 0..${valueVar}.Length - 1 do
|
|
515
|
+
${encodeType((type as ArrayType).base, `${valueVar}.[i${suffix}]`, `${path}`, suffix + 1).replace(/\n/gu, "\n ")}
|
|
516
|
+
resultWriter_.WriteEndArray()
|
|
517
|
+
`
|
|
518
|
+
.replace(/\n {14}/gu, "\n")
|
|
519
|
+
.trim();
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
default:
|
|
523
|
+
throw new Error(`BUG: encodeType with ${type.constructor.name}`);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
export function generateStruct(struct: StructType): string {
|
|
528
|
+
return `
|
|
529
|
+
type ${struct.name} = {
|
|
530
|
+
${struct.fields.map(field => `${capitalize(field.name)}: ${generateTypeName(field.type)}`).join(";\n ")}
|
|
531
|
+
} with
|
|
532
|
+
static member Create (${struct.fields.map(field => `${ident(field.name)}: ${generateTypeName(field.type)}`).join(", ")}): ${struct.name} =
|
|
533
|
+
{ ${struct.fields.map(field => `${capitalize(field.name)} = ${ident(field.name)}`).join("; ")} }
|
|
534
|
+
|
|
535
|
+
let Decode${struct.name} (json_: JsonElement) (path_: string): ${struct.name} =
|
|
536
|
+
if (json_.ValueKind <> JsonValueKind.Object) then raise (FatalException($"'{path_}' must be an object."))
|
|
537
|
+
${struct.fields
|
|
538
|
+
.map(
|
|
539
|
+
field =>
|
|
540
|
+
`
|
|
541
|
+
let ${field.name}Json_ = decodeJsonElementStrict ${JSON.stringify(field.name)} json_ $"{path_}.${field.name}"
|
|
542
|
+
let ${ident(field.name)} =
|
|
543
|
+
${decodeType(field.type, `${field.name}Json_`, `$"{path_}.${field.name}"`, ident(field.name)).replace(/\n/gu, "\n ")}
|
|
544
|
+
`,
|
|
545
|
+
)
|
|
546
|
+
.join("")}
|
|
547
|
+
{ ${struct.fields.map(field => `${capitalize(field.name)} = ${ident(field.name)}`).join("; ")} }
|
|
548
|
+
|
|
549
|
+
let Encode${struct.name} (obj_: ${struct.name}) (resultWriter_: Utf8JsonWriter) (path_: string) =
|
|
550
|
+
resultWriter_.WriteStartObject()
|
|
551
|
+
${struct.fields
|
|
552
|
+
.map(
|
|
553
|
+
field =>
|
|
554
|
+
`
|
|
555
|
+
resultWriter_.WritePropertyName(${JSON.stringify(field.name)})
|
|
556
|
+
${encodeType(field.type, `obj_.${capitalize(field.name)}`, `$"{path_}.${field.name}"`).replace(/\n/gu, "\n ")}`,
|
|
557
|
+
)
|
|
558
|
+
.join("\n")}
|
|
559
|
+
resultWriter_.WriteEndObject()`;
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
export function generateEnum(type: EnumType): string {
|
|
563
|
+
return `
|
|
564
|
+
type ${type.name} =
|
|
565
|
+
${type.values.map(({ value }) => `| ${capitalize(value)}`).join("\n ")}
|
|
566
|
+
|
|
567
|
+
let Decode${type.name} (json_: JsonElement) (path_: string): ${type.name} =
|
|
568
|
+
if (json_.ValueKind <> JsonValueKind.String) then raise (FatalException($"'{path_}' must be a string."))
|
|
569
|
+
match json_.GetString() with
|
|
570
|
+
${type.values.map(({ value }) => `| "${value}" -> ${type.name}.${capitalize(value)}`).join("\n ")}
|
|
571
|
+
| _ -> raise (FatalException($"'{path_}' must be one of: (${type.values.map(({ value }) => `'${value}'`).join(", ")})."))
|
|
572
|
+
|
|
573
|
+
let Encode${type.name} (obj_: ${type.name}) (resultWriter_: Utf8JsonWriter) (path_: string) =
|
|
574
|
+
match obj_ with
|
|
575
|
+
${type.values.map(({ value }) => `| ${type.name}.${capitalize(value)} -> resultWriter_.WriteStringValue("${value}")`).join("\n ")}
|
|
576
|
+
|
|
577
|
+
`;
|
|
578
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./fsharp-server";
|