oddly had this error, and for some reason decided to re-clone the repo and try again first thing in the morning. it worked on the example so I tried to run it on some of my project's schema files which threw an error. I added some debugging lines and eventually tried the example from the previous issue which also had errors. I then tried to clone a new copy of the repo on /tmp which also failed. Baffled I tried to run your unmodified example and this happened...
../../js2e circle.json
08:35:47.279 [debug] Arguments: ["circle.json"]
08:35:47.289 [debug] Files: ["circle.json"]
08:35:47.314 [debug] Parsing type with name: #, path: , and value: %{"$schema" => "http://json-schema.org/draft-04/schema", "description" => "Schema for a circle shape", "id" => "http://example.com/circle.json", "properties" => %{"center" => %{"$ref" => "http://example.com/definitions.json#point"}, "color" => %{"$ref" => "http://example.com/definitions.json#color"}, "radius" => %{"type" => "number"}}, "required" => ["center", "radius"], "title" => "Circle", "type" => "object"}
08:35:47.320 [debug] node_parser: &JS2E.Parsers.ObjectParser.parse/5
08:35:47.321 [debug] Parsing '["#"]' as ObjectType
08:35:47.324 [debug] Parsing type with name: center, path: #, and value: %{"$ref" => "http://example.com/definitions.json#point"}
08:35:47.324 [debug] node_parser: &JS2E.Parsers.TypeReferenceParser.parse/5
08:35:47.325 [debug] parsing '["#", "center"]' as TypeReference
08:35:47.330 [debug] Parsed type reference: %JS2E.Types.TypeReference{name: "center", path: %URI{authority: "example.com", fragment: "point", host: "example.com", path: "/definitions.json", port: 80, query: nil, scheme: "http", userinfo: nil}}
08:35:47.331 [debug] Parsing type with name: color, path: #, and value: %{"$ref" => "http://example.com/definitions.json#color"}
08:35:47.331 [debug] node_parser: &JS2E.Parsers.TypeReferenceParser.parse/5
08:35:47.331 [debug] parsing '["#", "color"]' as TypeReference
08:35:47.331 [debug] Parsed type reference: %JS2E.Types.TypeReference{name: "color", path: %URI{authority: "example.com", fragment: "color", host: "example.com", path: "/definitions.json", port: 80, query: nil, scheme: "http", userinfo: nil}}
08:35:47.331 [debug] Parsing type with name: radius, path: #, and value: %{"type" => "number"}
08:35:47.331 [debug] node_parser: &JS2E.Parsers.PrimitiveParser.parse/5
08:35:47.333 [debug] Parsing '["#", "radius"]' as primitive type
08:35:47.334 [debug] Parsed primitive type: %JS2E.Types.PrimitiveType{name: "radius", path: ["#", "radius"], type: "number"}
08:35:47.334 [debug] Descendants types dict: %{"#/center" => %JS2E.Types.TypeReference{name: "center", path: %URI{authority: "example.com", fragment: "point", host: "example.com", path: "/definitions.json", port: 80, query: nil, scheme: "http", userinfo: nil}}, "#/color" => %JS2E.Types.TypeReference{name: "color", path: %URI{authority: "example.com", fragment: "color", host: "example.com", path: "/definitions.json", port: 80, query: nil, scheme: "http", userinfo: nil}}, "#/radius" => %JS2E.Types.PrimitiveType{name: "radius", path: ["#", "radius"], type: "number"}}
08:35:47.334 [debug] Property ref dict: %{"center" => ["#", "center"], "color" => ["#", "color"], "radius" => ["#", "radius"]}
08:35:47.338 [debug] Parsed object type: %JS2E.Types.ObjectType{name: "#", path: ["#"], properties: %{"center" => ["#", "center"], "color" => ["#", "color"], "radius" => ["#", "radius"]}, required: ["center", "radius"]}
08:35:47.343 [debug] type_ref_uri: %URI{authority: "example.com", fragment: "color", host: "example.com", path: "/definitions.json", port: 80, query: nil, scheme: "http", userinfo: nil}
08:35:47.344 [debug] has_different_absolute_path? was true for: {%URI{authority: "example.com", fragment: "color", host: "example.com", path: "/definitions.json", port: 80, query: nil, scheme: "http", userinfo: nil}, %URI{authority: "example.com", fragment: nil, host: "example.com", path: "/circle.json", port: 80, query: nil, scheme: "http", userinfo: nil}}
08:35:47.345 [debug] type_ref_schema_uri = "http://example.com/definitions.json"
08:35:47.347 [debug] full schema dict =
%{"http://example.com/circle.json" => %JS2E.Types.SchemaDefinition{description: "Schema for a circle shape",
id: %URI{authority: "example.com", fragment: nil, host: "example.com",
path: "/circle.json", port: 80, query: nil, scheme: "http", userinfo: nil},
title: "Circle",
types: %{"#" => %JS2E.Types.ObjectType{name: "#", path: ["#"],
properties: %{"center" => ["#", "center"], "color" => ["#", "color"],
"radius" => ["#", "radius"]}, required: ["center", "radius"]},
"#/center" => %JS2E.Types.TypeReference{name: "center",
path: %URI{authority: "example.com", fragment: "point",
host: "example.com", path: "/definitions.json", port: 80, query: nil,
scheme: "http", userinfo: nil}},
"#/color" => %JS2E.Types.TypeReference{name: "color",
path: %URI{authority: "example.com", fragment: "color",
host: "example.com", path: "/definitions.json", port: 80, query: nil,
scheme: "http", userinfo: nil}},
"#/radius" => %JS2E.Types.PrimitiveType{name: "radius",
path: ["#", "radius"], type: "number"},
"http://example.com/circle.json#" => %JS2E.Types.ObjectType{name: "#",
path: ["#"],
properties: %{"center" => ["#", "center"], "color" => ["#", "color"],
"radius" => ["#", "radius"]}, required: ["center", "radius"]}}}}
08:35:47.347 [debug] type_ref_schema_def was: nil
** (UndefinedFunctionError) function nil.id/0 is undefined or private
nil.id()
(js2e) lib/printers/preamble_printer.ex:117: JS2E.Printers.PreamblePrinter.resolve_dependency/4
(elixir) lib/enum.ex:1755: Enum."-reduce/3-lists^foldl/2-0-"/3
(js2e) lib/printers/preamble_printer.ex:57: JS2E.Printers.PreamblePrinter.create_imports/3
(js2e) lib/printers/preamble_printer.ex:35: JS2E.Printers.PreamblePrinter.print_preamble/3
(js2e) lib/printer.ex:51: JS2E.Printer.print_schema/3
(js2e) lib/printer.ex:33: anonymous fn/5 in JS2E.Printer.print_schemas/2
(stdlib) lists.erl:1263: :lists.foldl/3
baffled as to how it got in this broken state. I'm sure it worked this morning but I can't get it to work now...