--!strict local fs = require("@lune/fs") local serde = require("@lune/serde") type environment = "luau" | "lune" | "roblox" | "roblox_server" type pesde_dependency = { name: string, version: string, index: string?, target: environment?, } | { wally: string, version: string, index: string?, } | { repo: string, rev: string, path: string?, } type pesde_manifest = { name: string, version: string, description: string?, license: string?, authors: { string }?, repository: string?, private: boolean?, includes: { string }?, pesde_version: string?, workspace_members: { string }?, target: { environment: environment, lib: string, bin: string?, build_files: { string }?, }, scripts: { roblox_sync_config_generator: string?, sourcemap_generator: string?, [string]: string, }?, indices: { default: string, [string]: string, }, wally_indices: { default: string, [string]: string, }?, overrides: { [string]: pesde_dependency, }?, patches: { [string]: { [string]: string }, }?, dependencies: { [string]: pesde_dependency, }?, peer_dependencies: { [string]: pesde_dependency, }?, dev_dependencies: { [string]: pesde_dependency, }?, } local manifest_contents = fs.readFile("pesde.toml") local manifest: pesde_manifest = serde.decode("toml", manifest_contents) or error("Couldn't decode manifest.") local jecs_version = manifest.version print(jecs_version)