diff --git a/dochack.js b/dochack.js new file mode 100644 index 0000000..f369d51 --- /dev/null +++ b/dochack.js @@ -0,0 +1,2036 @@ +/* Generated by the Nim Compiler v1.6.19 */ +var framePtr = null; +var excHandler = 0; +var lastJSError = null; +var NTI654311438 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NTI503317021 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI637534300 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534299 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534298 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534297 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534296 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534295 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534294 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534293 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534292 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534291 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534290 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534289 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534288 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534287 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534286 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534285 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534284 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534283 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534282 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534281 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534280 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534279 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534278 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534277 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534276 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI637534349 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI637534238 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI637534396 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534393 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI637534392 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NTI637534273 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI637534395 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NTI637534274 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI637534342 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI637534232 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI637534331 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI637534343 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI637534233 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI637534330 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI637534329 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI637534348 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI637534237 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI637534328 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI637534327 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI637534344 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI637534234 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI637534326 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI637534334 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI637534345 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI637534235 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI637534333 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI33554456 = {size: 0,kind: 31,base: null,node: null,finalizer: null}; +var NTI637534347 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI637534346 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI637534236 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI33554466 = {size: 0,kind: 1,base: null,node: null,finalizer: null}; +var NTI637534318 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI637534222 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI637534332 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI637534226 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI637534325 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI637534225 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI637534223 = {size: 0, kind: 14, base: null, node: null, finalizer: null}; +var NTI637534324 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI637534323 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI637534322 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI637534321 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI637534224 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI637534652 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI33555127 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI33555131 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI33555133 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI33555086 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI33555168 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI33554439 = {size: 0,kind: 28,base: null,node: null,finalizer: null}; +var NTI33554440 = {size: 0,kind: 29,base: null,node: null,finalizer: null}; +var NTI33555167 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI33555115 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI33555116 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI33555123 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI33555125 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NNI33555125 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; +NTI33555125.node = NNI33555125; +var NNI33555123 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; +NTI33555123.node = NNI33555123; +var NNI33555116 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; +NTI33555116.node = NNI33555116; +NTI33555167.base = NTI33555115; +NTI33555168.base = NTI33555115; +var NNI33555115 = {kind: 2, len: 5, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "parent", len: 0, typ: NTI33555167, name: "parent", sons: null}, +{kind: 1, offset: "name", len: 0, typ: NTI33554440, name: "name", sons: null}, +{kind: 1, offset: "message", len: 0, typ: NTI33554439, name: "msg", sons: null}, +{kind: 1, offset: "trace", len: 0, typ: NTI33554439, name: "trace", sons: null}, +{kind: 1, offset: "up", len: 0, typ: NTI33555168, name: "up", sons: null}]}; +NTI33555115.node = NNI33555115; +var NNI33555086 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; +NTI33555086.node = NNI33555086; +NTI33555115.base = NTI33555086; +NTI33555116.base = NTI33555115; +NTI33555123.base = NTI33555116; +NTI33555125.base = NTI33555123; +var NNI33555133 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; +NTI33555133.node = NNI33555133; +NTI33555133.base = NTI33555116; +var NNI33555131 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; +NTI33555131.node = NNI33555131; +NTI33555131.base = NTI33555116; +var NNI33555127 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; +NTI33555127.node = NNI33555127; +NTI33555127.base = NTI33555116; +NTI637534322.base = NTI637534224; +NTI637534323.base = NTI637534224; +NTI637534324.base = NTI637534224; +var NNI637534223 = {kind: 2, offset: 0, typ: null, name: null, len: 12, sons: {"1": {kind: 1, offset: 1, typ: NTI637534223, name: "ElementNode", len: 0, sons: null}, +"2": {kind: 1, offset: 2, typ: NTI637534223, name: "AttributeNode", len: 0, sons: null}, +"3": {kind: 1, offset: 3, typ: NTI637534223, name: "TextNode", len: 0, sons: null}, +"4": {kind: 1, offset: 4, typ: NTI637534223, name: "CDATANode", len: 0, sons: null}, +"5": {kind: 1, offset: 5, typ: NTI637534223, name: "EntityRefNode", len: 0, sons: null}, +"6": {kind: 1, offset: 6, typ: NTI637534223, name: "EntityNode", len: 0, sons: null}, +"7": {kind: 1, offset: 7, typ: NTI637534223, name: "ProcessingInstructionNode", len: 0, sons: null}, +"8": {kind: 1, offset: 8, typ: NTI637534223, name: "CommentNode", len: 0, sons: null}, +"9": {kind: 1, offset: 9, typ: NTI637534223, name: "DocumentNode", len: 0, sons: null}, +"10": {kind: 1, offset: 10, typ: NTI637534223, name: "DocumentTypeNode", len: 0, sons: null}, +"11": {kind: 1, offset: 11, typ: NTI637534223, name: "DocumentFragmentNode", len: 0, sons: null}, +"12": {kind: 1, offset: 12, typ: NTI637534223, name: "NotationNode", len: 0, sons: null}}}; +NTI637534223.node = NNI637534223; +var NNI637534318 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; +NTI637534318.node = NNI637534318; +NTI637534318.base = NTI33555086; +NTI637534222.base = NTI637534318; +NTI637534347.base = NTI637534226; +var NNI637534346 = {kind: 2, len: 10, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "acceptCharset", len: 0, typ: NTI33554440, name: "acceptCharset", sons: null}, +{kind: 1, offset: "action", len: 0, typ: NTI33554440, name: "action", sons: null}, +{kind: 1, offset: "autocomplete", len: 0, typ: NTI33554440, name: "autocomplete", sons: null}, +{kind: 1, offset: "elements", len: 0, typ: NTI637534347, name: "elements", sons: null}, +{kind: 1, offset: "encoding", len: 0, typ: NTI33554440, name: "encoding", sons: null}, +{kind: 1, offset: "enctype", len: 0, typ: NTI33554440, name: "enctype", sons: null}, +{kind: 1, offset: "length", len: 0, typ: NTI33554456, name: "length", sons: null}, +{kind: 1, offset: "method", len: 0, typ: NTI33554440, name: "method", sons: null}, +{kind: 1, offset: "noValidate", len: 0, typ: NTI33554466, name: "noValidate", sons: null}, +{kind: 1, offset: "target", len: 0, typ: NTI33554440, name: "target", sons: null}]}; +NTI637534346.node = NNI637534346; +NTI637534346.base = NTI637534332; +NTI637534236.base = NTI637534346; +var NNI637534345 = {kind: 2, len: 5, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "defaultSelected", len: 0, typ: NTI33554466, name: "defaultSelected", sons: null}, +{kind: 1, offset: "selected", len: 0, typ: NTI33554466, name: "selected", sons: null}, +{kind: 1, offset: "selectedIndex", len: 0, typ: NTI33554456, name: "selectedIndex", sons: null}, +{kind: 1, offset: "text", len: 0, typ: NTI33554440, name: "text", sons: null}, +{kind: 1, offset: "value", len: 0, typ: NTI33554440, name: "value", sons: null}]}; +NTI637534345.node = NNI637534345; +NTI637534345.base = NTI637534332; +NTI637534235.base = NTI637534345; +NTI637534333.base = NTI637534235; +NTI637534334.base = NTI637534235; +var NNI637534332 = {kind: 2, len: 20, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "className", len: 0, typ: NTI33554440, name: "className", sons: null}, +{kind: 1, offset: "classList", len: 0, typ: NTI637534222, name: "classList", sons: null}, +{kind: 1, offset: "checked", len: 0, typ: NTI33554466, name: "checked", sons: null}, +{kind: 1, offset: "defaultChecked", len: 0, typ: NTI33554466, name: "defaultChecked", sons: null}, +{kind: 1, offset: "defaultValue", len: 0, typ: NTI33554440, name: "defaultValue", sons: null}, +{kind: 1, offset: "disabled", len: 0, typ: NTI33554466, name: "disabled", sons: null}, +{kind: 1, offset: "form", len: 0, typ: NTI637534236, name: "form", sons: null}, +{kind: 1, offset: "name", len: 0, typ: NTI33554440, name: "name", sons: null}, +{kind: 1, offset: "readOnly", len: 0, typ: NTI33554466, name: "readOnly", sons: null}, +{kind: 1, offset: "options", len: 0, typ: NTI637534333, name: "options", sons: null}, +{kind: 1, offset: "selectedOptions", len: 0, typ: NTI637534334, name: "selectedOptions", sons: null}, +{kind: 1, offset: "clientWidth", len: 0, typ: NTI33554456, name: "clientWidth", sons: null}, +{kind: 1, offset: "clientHeight", len: 0, typ: NTI33554456, name: "clientHeight", sons: null}, +{kind: 1, offset: "contentEditable", len: 0, typ: NTI33554440, name: "contentEditable", sons: null}, +{kind: 1, offset: "isContentEditable", len: 0, typ: NTI33554466, name: "isContentEditable", sons: null}, +{kind: 1, offset: "dir", len: 0, typ: NTI33554440, name: "dir", sons: null}, +{kind: 1, offset: "offsetHeight", len: 0, typ: NTI33554456, name: "offsetHeight", sons: null}, +{kind: 1, offset: "offsetWidth", len: 0, typ: NTI33554456, name: "offsetWidth", sons: null}, +{kind: 1, offset: "offsetLeft", len: 0, typ: NTI33554456, name: "offsetLeft", sons: null}, +{kind: 1, offset: "offsetTop", len: 0, typ: NTI33554456, name: "offsetTop", sons: null}]}; +NTI637534332.node = NNI637534332; +NTI637534332.base = NTI637534321; +NTI637534226.base = NTI637534332; +var NNI637534344 = {kind: 2, len: 3, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "text", len: 0, typ: NTI33554440, name: "text", sons: null}, +{kind: 1, offset: "x", len: 0, typ: NTI33554456, name: "x", sons: null}, +{kind: 1, offset: "y", len: 0, typ: NTI33554456, name: "y", sons: null}]}; +NTI637534344.node = NNI637534344; +NTI637534344.base = NTI637534332; +NTI637534234.base = NTI637534344; +NTI637534326.base = NTI637534234; +NTI637534327.base = NTI637534236; +var NNI637534348 = {kind: 2, len: 8, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "border", len: 0, typ: NTI33554456, name: "border", sons: null}, +{kind: 1, offset: "complete", len: 0, typ: NTI33554466, name: "complete", sons: null}, +{kind: 1, offset: "height", len: 0, typ: NTI33554456, name: "height", sons: null}, +{kind: 1, offset: "hspace", len: 0, typ: NTI33554456, name: "hspace", sons: null}, +{kind: 1, offset: "lowsrc", len: 0, typ: NTI33554440, name: "lowsrc", sons: null}, +{kind: 1, offset: "src", len: 0, typ: NTI33554440, name: "src", sons: null}, +{kind: 1, offset: "vspace", len: 0, typ: NTI33554456, name: "vspace", sons: null}, +{kind: 1, offset: "width", len: 0, typ: NTI33554456, name: "width", sons: null}]}; +NTI637534348.node = NNI637534348; +NTI637534348.base = NTI637534332; +NTI637534237.base = NTI637534348; +NTI637534328.base = NTI637534237; +NTI637534329.base = NTI637534226; +var NNI637534343 = {kind: 2, len: 6, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "height", len: 0, typ: NTI33554456, name: "height", sons: null}, +{kind: 1, offset: "hspace", len: 0, typ: NTI33554456, name: "hspace", sons: null}, +{kind: 1, offset: "src", len: 0, typ: NTI33554440, name: "src", sons: null}, +{kind: 1, offset: "width", len: 0, typ: NTI33554456, name: "width", sons: null}, +{kind: 1, offset: "type", len: 0, typ: NTI33554440, name: "type", sons: null}, +{kind: 1, offset: "vspace", len: 0, typ: NTI33554456, name: "vspace", sons: null}]}; +NTI637534343.node = NNI637534343; +NTI637534343.base = NTI637534332; +NTI637534233.base = NTI637534343; +NTI637534330.base = NTI637534233; +var NNI637534342 = {kind: 2, len: 4, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "target", len: 0, typ: NTI33554440, name: "target", sons: null}, +{kind: 1, offset: "text", len: 0, typ: NTI33554440, name: "text", sons: null}, +{kind: 1, offset: "x", len: 0, typ: NTI33554456, name: "x", sons: null}, +{kind: 1, offset: "y", len: 0, typ: NTI33554456, name: "y", sons: null}]}; +NTI637534342.node = NNI637534342; +NTI637534342.base = NTI637534332; +NTI637534232.base = NTI637534342; +NTI637534331.base = NTI637534232; +var NNI637534392 = {kind: 1, offset: "then", len: 0, typ: NTI637534393, name: "then", sons: null}; +NTI637534392.node = NNI637534392; +NTI637534273.base = NTI637534392; +var NNI637534395 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "ready", len: 0, typ: NTI637534273, name: "ready", sons: null}, +{kind: 1, offset: "onloadingdone", len: 0, typ: NTI637534396, name: "onloadingdone", sons: null}]}; +NTI637534395.node = NNI637534395; +NTI637534274.base = NTI637534395; +var NNI637534325 = {kind: 2, len: 23, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "activeElement", len: 0, typ: NTI637534226, name: "activeElement", sons: null}, +{kind: 1, offset: "documentElement", len: 0, typ: NTI637534226, name: "documentElement", sons: null}, +{kind: 1, offset: "alinkColor", len: 0, typ: NTI33554440, name: "alinkColor", sons: null}, +{kind: 1, offset: "bgColor", len: 0, typ: NTI33554440, name: "bgColor", sons: null}, +{kind: 1, offset: "body", len: 0, typ: NTI637534226, name: "body", sons: null}, +{kind: 1, offset: "charset", len: 0, typ: NTI33554440, name: "charset", sons: null}, +{kind: 1, offset: "cookie", len: 0, typ: NTI33554440, name: "cookie", sons: null}, +{kind: 1, offset: "defaultCharset", len: 0, typ: NTI33554440, name: "defaultCharset", sons: null}, +{kind: 1, offset: "fgColor", len: 0, typ: NTI33554440, name: "fgColor", sons: null}, +{kind: 1, offset: "head", len: 0, typ: NTI637534226, name: "head", sons: null}, +{kind: 1, offset: "lastModified", len: 0, typ: NTI33554440, name: "lastModified", sons: null}, +{kind: 1, offset: "linkColor", len: 0, typ: NTI33554440, name: "linkColor", sons: null}, +{kind: 1, offset: "referrer", len: 0, typ: NTI33554440, name: "referrer", sons: null}, +{kind: 1, offset: "title", len: 0, typ: NTI33554440, name: "title", sons: null}, +{kind: 1, offset: "URL", len: 0, typ: NTI33554440, name: "URL", sons: null}, +{kind: 1, offset: "vlinkColor", len: 0, typ: NTI33554440, name: "vlinkColor", sons: null}, +{kind: 1, offset: "anchors", len: 0, typ: NTI637534326, name: "anchors", sons: null}, +{kind: 1, offset: "forms", len: 0, typ: NTI637534327, name: "forms", sons: null}, +{kind: 1, offset: "images", len: 0, typ: NTI637534328, name: "images", sons: null}, +{kind: 1, offset: "applets", len: 0, typ: NTI637534329, name: "applets", sons: null}, +{kind: 1, offset: "embeds", len: 0, typ: NTI637534330, name: "embeds", sons: null}, +{kind: 1, offset: "links", len: 0, typ: NTI637534331, name: "links", sons: null}, +{kind: 1, offset: "fonts", len: 0, typ: NTI637534274, name: "fonts", sons: null}]}; +NTI637534325.node = NNI637534325; +NTI637534325.base = NTI637534321; +NTI637534225.base = NTI637534325; +var NNI637534349 = {kind: 2, len: 368, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "alignContent", len: 0, typ: NTI33554440, name: "alignContent", sons: null}, +{kind: 1, offset: "alignItems", len: 0, typ: NTI33554440, name: "alignItems", sons: null}, +{kind: 1, offset: "alignSelf", len: 0, typ: NTI33554440, name: "alignSelf", sons: null}, +{kind: 1, offset: "all", len: 0, typ: NTI33554440, name: "all", sons: null}, +{kind: 1, offset: "animation", len: 0, typ: NTI33554440, name: "animation", sons: null}, +{kind: 1, offset: "animationDelay", len: 0, typ: NTI33554440, name: "animationDelay", sons: null}, +{kind: 1, offset: "animationDirection", len: 0, typ: NTI33554440, name: "animationDirection", sons: null}, +{kind: 1, offset: "animationDuration", len: 0, typ: NTI33554440, name: "animationDuration", sons: null}, +{kind: 1, offset: "animationFillMode", len: 0, typ: NTI33554440, name: "animationFillMode", sons: null}, +{kind: 1, offset: "animationIterationCount", len: 0, typ: NTI33554440, name: "animationIterationCount", sons: null}, +{kind: 1, offset: "animationName", len: 0, typ: NTI33554440, name: "animationName", sons: null}, +{kind: 1, offset: "animationPlayState", len: 0, typ: NTI33554440, name: "animationPlayState", sons: null}, +{kind: 1, offset: "animationTimingFunction", len: 0, typ: NTI33554440, name: "animationTimingFunction", sons: null}, +{kind: 1, offset: "backdropFilter", len: 0, typ: NTI33554440, name: "backdropFilter", sons: null}, +{kind: 1, offset: "backfaceVisibility", len: 0, typ: NTI33554440, name: "backfaceVisibility", sons: null}, +{kind: 1, offset: "background", len: 0, typ: NTI33554440, name: "background", sons: null}, +{kind: 1, offset: "backgroundAttachment", len: 0, typ: NTI33554440, name: "backgroundAttachment", sons: null}, +{kind: 1, offset: "backgroundBlendMode", len: 0, typ: NTI33554440, name: "backgroundBlendMode", sons: null}, +{kind: 1, offset: "backgroundClip", len: 0, typ: NTI33554440, name: "backgroundClip", sons: null}, +{kind: 1, offset: "backgroundColor", len: 0, typ: NTI33554440, name: "backgroundColor", sons: null}, +{kind: 1, offset: "backgroundImage", len: 0, typ: NTI33554440, name: "backgroundImage", sons: null}, +{kind: 1, offset: "backgroundOrigin", len: 0, typ: NTI33554440, name: "backgroundOrigin", sons: null}, +{kind: 1, offset: "backgroundPosition", len: 0, typ: NTI33554440, name: "backgroundPosition", sons: null}, +{kind: 1, offset: "backgroundRepeat", len: 0, typ: NTI33554440, name: "backgroundRepeat", sons: null}, +{kind: 1, offset: "backgroundSize", len: 0, typ: NTI33554440, name: "backgroundSize", sons: null}, +{kind: 1, offset: "blockSize", len: 0, typ: NTI33554440, name: "blockSize", sons: null}, +{kind: 1, offset: "border", len: 0, typ: NTI33554440, name: "border", sons: null}, +{kind: 1, offset: "borderBlock", len: 0, typ: NTI33554440, name: "borderBlock", sons: null}, +{kind: 1, offset: "borderBlockColor", len: 0, typ: NTI33554440, name: "borderBlockColor", sons: null}, +{kind: 1, offset: "borderBlockEnd", len: 0, typ: NTI33554440, name: "borderBlockEnd", sons: null}, +{kind: 1, offset: "borderBlockEndColor", len: 0, typ: NTI33554440, name: "borderBlockEndColor", sons: null}, +{kind: 1, offset: "borderBlockEndStyle", len: 0, typ: NTI33554440, name: "borderBlockEndStyle", sons: null}, +{kind: 1, offset: "borderBlockEndWidth", len: 0, typ: NTI33554440, name: "borderBlockEndWidth", sons: null}, +{kind: 1, offset: "borderBlockStart", len: 0, typ: NTI33554440, name: "borderBlockStart", sons: null}, +{kind: 1, offset: "borderBlockStartColor", len: 0, typ: NTI33554440, name: "borderBlockStartColor", sons: null}, +{kind: 1, offset: "borderBlockStartStyle", len: 0, typ: NTI33554440, name: "borderBlockStartStyle", sons: null}, +{kind: 1, offset: "borderBlockStartWidth", len: 0, typ: NTI33554440, name: "borderBlockStartWidth", sons: null}, +{kind: 1, offset: "borderBlockStyle", len: 0, typ: NTI33554440, name: "borderBlockStyle", sons: null}, +{kind: 1, offset: "borderBlockWidth", len: 0, typ: NTI33554440, name: "borderBlockWidth", sons: null}, +{kind: 1, offset: "borderBottom", len: 0, typ: NTI33554440, name: "borderBottom", sons: null}, +{kind: 1, offset: "borderBottomColor", len: 0, typ: NTI33554440, name: "borderBottomColor", sons: null}, +{kind: 1, offset: "borderBottomLeftRadius", len: 0, typ: NTI33554440, name: "borderBottomLeftRadius", sons: null}, +{kind: 1, offset: "borderBottomRightRadius", len: 0, typ: NTI33554440, name: "borderBottomRightRadius", sons: null}, +{kind: 1, offset: "borderBottomStyle", len: 0, typ: NTI33554440, name: "borderBottomStyle", sons: null}, +{kind: 1, offset: "borderBottomWidth", len: 0, typ: NTI33554440, name: "borderBottomWidth", sons: null}, +{kind: 1, offset: "borderCollapse", len: 0, typ: NTI33554440, name: "borderCollapse", sons: null}, +{kind: 1, offset: "borderColor", len: 0, typ: NTI33554440, name: "borderColor", sons: null}, +{kind: 1, offset: "borderEndEndRadius", len: 0, typ: NTI33554440, name: "borderEndEndRadius", sons: null}, +{kind: 1, offset: "borderEndStartRadius", len: 0, typ: NTI33554440, name: "borderEndStartRadius", sons: null}, +{kind: 1, offset: "borderImage", len: 0, typ: NTI33554440, name: "borderImage", sons: null}, +{kind: 1, offset: "borderImageOutset", len: 0, typ: NTI33554440, name: "borderImageOutset", sons: null}, +{kind: 1, offset: "borderImageRepeat", len: 0, typ: NTI33554440, name: "borderImageRepeat", sons: null}, +{kind: 1, offset: "borderImageSlice", len: 0, typ: NTI33554440, name: "borderImageSlice", sons: null}, +{kind: 1, offset: "borderImageSource", len: 0, typ: NTI33554440, name: "borderImageSource", sons: null}, +{kind: 1, offset: "borderImageWidth", len: 0, typ: NTI33554440, name: "borderImageWidth", sons: null}, +{kind: 1, offset: "borderInline", len: 0, typ: NTI33554440, name: "borderInline", sons: null}, +{kind: 1, offset: "borderInlineColor", len: 0, typ: NTI33554440, name: "borderInlineColor", sons: null}, +{kind: 1, offset: "borderInlineEnd", len: 0, typ: NTI33554440, name: "borderInlineEnd", sons: null}, +{kind: 1, offset: "borderInlineEndColor", len: 0, typ: NTI33554440, name: "borderInlineEndColor", sons: null}, +{kind: 1, offset: "borderInlineEndStyle", len: 0, typ: NTI33554440, name: "borderInlineEndStyle", sons: null}, +{kind: 1, offset: "borderInlineEndWidth", len: 0, typ: NTI33554440, name: "borderInlineEndWidth", sons: null}, +{kind: 1, offset: "borderInlineStart", len: 0, typ: NTI33554440, name: "borderInlineStart", sons: null}, +{kind: 1, offset: "borderInlineStartColor", len: 0, typ: NTI33554440, name: "borderInlineStartColor", sons: null}, +{kind: 1, offset: "borderInlineStartStyle", len: 0, typ: NTI33554440, name: "borderInlineStartStyle", sons: null}, +{kind: 1, offset: "borderInlineStartWidth", len: 0, typ: NTI33554440, name: "borderInlineStartWidth", sons: null}, +{kind: 1, offset: "borderInlineStyle", len: 0, typ: NTI33554440, name: "borderInlineStyle", sons: null}, +{kind: 1, offset: "borderInlineWidth", len: 0, typ: NTI33554440, name: "borderInlineWidth", sons: null}, +{kind: 1, offset: "borderLeft", len: 0, typ: NTI33554440, name: "borderLeft", sons: null}, +{kind: 1, offset: "borderLeftColor", len: 0, typ: NTI33554440, name: "borderLeftColor", sons: null}, +{kind: 1, offset: "borderLeftStyle", len: 0, typ: NTI33554440, name: "borderLeftStyle", sons: null}, +{kind: 1, offset: "borderLeftWidth", len: 0, typ: NTI33554440, name: "borderLeftWidth", sons: null}, +{kind: 1, offset: "borderRadius", len: 0, typ: NTI33554440, name: "borderRadius", sons: null}, +{kind: 1, offset: "borderRight", len: 0, typ: NTI33554440, name: "borderRight", sons: null}, +{kind: 1, offset: "borderRightColor", len: 0, typ: NTI33554440, name: "borderRightColor", sons: null}, +{kind: 1, offset: "borderRightStyle", len: 0, typ: NTI33554440, name: "borderRightStyle", sons: null}, +{kind: 1, offset: "borderRightWidth", len: 0, typ: NTI33554440, name: "borderRightWidth", sons: null}, +{kind: 1, offset: "borderSpacing", len: 0, typ: NTI33554440, name: "borderSpacing", sons: null}, +{kind: 1, offset: "borderStartEndRadius", len: 0, typ: NTI33554440, name: "borderStartEndRadius", sons: null}, +{kind: 1, offset: "borderStartStartRadius", len: 0, typ: NTI33554440, name: "borderStartStartRadius", sons: null}, +{kind: 1, offset: "borderStyle", len: 0, typ: NTI33554440, name: "borderStyle", sons: null}, +{kind: 1, offset: "borderTop", len: 0, typ: NTI33554440, name: "borderTop", sons: null}, +{kind: 1, offset: "borderTopColor", len: 0, typ: NTI33554440, name: "borderTopColor", sons: null}, +{kind: 1, offset: "borderTopLeftRadius", len: 0, typ: NTI33554440, name: "borderTopLeftRadius", sons: null}, +{kind: 1, offset: "borderTopRightRadius", len: 0, typ: NTI33554440, name: "borderTopRightRadius", sons: null}, +{kind: 1, offset: "borderTopStyle", len: 0, typ: NTI33554440, name: "borderTopStyle", sons: null}, +{kind: 1, offset: "borderTopWidth", len: 0, typ: NTI33554440, name: "borderTopWidth", sons: null}, +{kind: 1, offset: "borderWidth", len: 0, typ: NTI33554440, name: "borderWidth", sons: null}, +{kind: 1, offset: "bottom", len: 0, typ: NTI33554440, name: "bottom", sons: null}, +{kind: 1, offset: "boxDecorationBreak", len: 0, typ: NTI33554440, name: "boxDecorationBreak", sons: null}, +{kind: 1, offset: "boxShadow", len: 0, typ: NTI33554440, name: "boxShadow", sons: null}, +{kind: 1, offset: "boxSizing", len: 0, typ: NTI33554440, name: "boxSizing", sons: null}, +{kind: 1, offset: "breakAfter", len: 0, typ: NTI33554440, name: "breakAfter", sons: null}, +{kind: 1, offset: "breakBefore", len: 0, typ: NTI33554440, name: "breakBefore", sons: null}, +{kind: 1, offset: "breakInside", len: 0, typ: NTI33554440, name: "breakInside", sons: null}, +{kind: 1, offset: "captionSide", len: 0, typ: NTI33554440, name: "captionSide", sons: null}, +{kind: 1, offset: "caretColor", len: 0, typ: NTI33554440, name: "caretColor", sons: null}, +{kind: 1, offset: "clear", len: 0, typ: NTI33554440, name: "clear", sons: null}, +{kind: 1, offset: "clip", len: 0, typ: NTI33554440, name: "clip", sons: null}, +{kind: 1, offset: "clipPath", len: 0, typ: NTI33554440, name: "clipPath", sons: null}, +{kind: 1, offset: "color", len: 0, typ: NTI33554440, name: "color", sons: null}, +{kind: 1, offset: "colorAdjust", len: 0, typ: NTI33554440, name: "colorAdjust", sons: null}, +{kind: 1, offset: "columnCount", len: 0, typ: NTI33554440, name: "columnCount", sons: null}, +{kind: 1, offset: "columnFill", len: 0, typ: NTI33554440, name: "columnFill", sons: null}, +{kind: 1, offset: "columnGap", len: 0, typ: NTI33554440, name: "columnGap", sons: null}, +{kind: 1, offset: "columnRule", len: 0, typ: NTI33554440, name: "columnRule", sons: null}, +{kind: 1, offset: "columnRuleColor", len: 0, typ: NTI33554440, name: "columnRuleColor", sons: null}, +{kind: 1, offset: "columnRuleStyle", len: 0, typ: NTI33554440, name: "columnRuleStyle", sons: null}, +{kind: 1, offset: "columnRuleWidth", len: 0, typ: NTI33554440, name: "columnRuleWidth", sons: null}, +{kind: 1, offset: "columnSpan", len: 0, typ: NTI33554440, name: "columnSpan", sons: null}, +{kind: 1, offset: "columnWidth", len: 0, typ: NTI33554440, name: "columnWidth", sons: null}, +{kind: 1, offset: "columns", len: 0, typ: NTI33554440, name: "columns", sons: null}, +{kind: 1, offset: "contain", len: 0, typ: NTI33554440, name: "contain", sons: null}, +{kind: 1, offset: "content", len: 0, typ: NTI33554440, name: "content", sons: null}, +{kind: 1, offset: "counterIncrement", len: 0, typ: NTI33554440, name: "counterIncrement", sons: null}, +{kind: 1, offset: "counterReset", len: 0, typ: NTI33554440, name: "counterReset", sons: null}, +{kind: 1, offset: "counterSet", len: 0, typ: NTI33554440, name: "counterSet", sons: null}, +{kind: 1, offset: "cursor", len: 0, typ: NTI33554440, name: "cursor", sons: null}, +{kind: 1, offset: "direction", len: 0, typ: NTI33554440, name: "direction", sons: null}, +{kind: 1, offset: "display", len: 0, typ: NTI33554440, name: "display", sons: null}, +{kind: 1, offset: "emptyCells", len: 0, typ: NTI33554440, name: "emptyCells", sons: null}, +{kind: 1, offset: "filter", len: 0, typ: NTI33554440, name: "filter", sons: null}, +{kind: 1, offset: "flex", len: 0, typ: NTI33554440, name: "flex", sons: null}, +{kind: 1, offset: "flexBasis", len: 0, typ: NTI33554440, name: "flexBasis", sons: null}, +{kind: 1, offset: "flexDirection", len: 0, typ: NTI33554440, name: "flexDirection", sons: null}, +{kind: 1, offset: "flexFlow", len: 0, typ: NTI33554440, name: "flexFlow", sons: null}, +{kind: 1, offset: "flexGrow", len: 0, typ: NTI33554440, name: "flexGrow", sons: null}, +{kind: 1, offset: "flexShrink", len: 0, typ: NTI33554440, name: "flexShrink", sons: null}, +{kind: 1, offset: "flexWrap", len: 0, typ: NTI33554440, name: "flexWrap", sons: null}, +{kind: 1, offset: "cssFloat", len: 0, typ: NTI33554440, name: "cssFloat", sons: null}, +{kind: 1, offset: "font", len: 0, typ: NTI33554440, name: "font", sons: null}, +{kind: 1, offset: "fontFamily", len: 0, typ: NTI33554440, name: "fontFamily", sons: null}, +{kind: 1, offset: "fontFeatureSettings", len: 0, typ: NTI33554440, name: "fontFeatureSettings", sons: null}, +{kind: 1, offset: "fontKerning", len: 0, typ: NTI33554440, name: "fontKerning", sons: null}, +{kind: 1, offset: "fontLanguageOverride", len: 0, typ: NTI33554440, name: "fontLanguageOverride", sons: null}, +{kind: 1, offset: "fontOpticalSizing", len: 0, typ: NTI33554440, name: "fontOpticalSizing", sons: null}, +{kind: 1, offset: "fontSize", len: 0, typ: NTI33554440, name: "fontSize", sons: null}, +{kind: 1, offset: "fontSizeAdjust", len: 0, typ: NTI33554440, name: "fontSizeAdjust", sons: null}, +{kind: 1, offset: "fontStretch", len: 0, typ: NTI33554440, name: "fontStretch", sons: null}, +{kind: 1, offset: "fontStyle", len: 0, typ: NTI33554440, name: "fontStyle", sons: null}, +{kind: 1, offset: "fontSynthesis", len: 0, typ: NTI33554440, name: "fontSynthesis", sons: null}, +{kind: 1, offset: "fontVariant", len: 0, typ: NTI33554440, name: "fontVariant", sons: null}, +{kind: 1, offset: "fontVariantAlternates", len: 0, typ: NTI33554440, name: "fontVariantAlternates", sons: null}, +{kind: 1, offset: "fontVariantCaps", len: 0, typ: NTI33554440, name: "fontVariantCaps", sons: null}, +{kind: 1, offset: "fontVariantEastAsian", len: 0, typ: NTI33554440, name: "fontVariantEastAsian", sons: null}, +{kind: 1, offset: "fontVariantLigatures", len: 0, typ: NTI33554440, name: "fontVariantLigatures", sons: null}, +{kind: 1, offset: "fontVariantNumeric", len: 0, typ: NTI33554440, name: "fontVariantNumeric", sons: null}, +{kind: 1, offset: "fontVariantPosition", len: 0, typ: NTI33554440, name: "fontVariantPosition", sons: null}, +{kind: 1, offset: "fontVariationSettings", len: 0, typ: NTI33554440, name: "fontVariationSettings", sons: null}, +{kind: 1, offset: "fontWeight", len: 0, typ: NTI33554440, name: "fontWeight", sons: null}, +{kind: 1, offset: "gap", len: 0, typ: NTI33554440, name: "gap", sons: null}, +{kind: 1, offset: "grid", len: 0, typ: NTI33554440, name: "grid", sons: null}, +{kind: 1, offset: "gridArea", len: 0, typ: NTI33554440, name: "gridArea", sons: null}, +{kind: 1, offset: "gridAutoColumns", len: 0, typ: NTI33554440, name: "gridAutoColumns", sons: null}, +{kind: 1, offset: "gridAutoFlow", len: 0, typ: NTI33554440, name: "gridAutoFlow", sons: null}, +{kind: 1, offset: "gridAutoRows", len: 0, typ: NTI33554440, name: "gridAutoRows", sons: null}, +{kind: 1, offset: "gridColumn", len: 0, typ: NTI33554440, name: "gridColumn", sons: null}, +{kind: 1, offset: "gridColumnEnd", len: 0, typ: NTI33554440, name: "gridColumnEnd", sons: null}, +{kind: 1, offset: "gridColumnStart", len: 0, typ: NTI33554440, name: "gridColumnStart", sons: null}, +{kind: 1, offset: "gridRow", len: 0, typ: NTI33554440, name: "gridRow", sons: null}, +{kind: 1, offset: "gridRowEnd", len: 0, typ: NTI33554440, name: "gridRowEnd", sons: null}, +{kind: 1, offset: "gridRowStart", len: 0, typ: NTI33554440, name: "gridRowStart", sons: null}, +{kind: 1, offset: "gridTemplate", len: 0, typ: NTI33554440, name: "gridTemplate", sons: null}, +{kind: 1, offset: "gridTemplateAreas", len: 0, typ: NTI33554440, name: "gridTemplateAreas", sons: null}, +{kind: 1, offset: "gridTemplateColumns", len: 0, typ: NTI33554440, name: "gridTemplateColumns", sons: null}, +{kind: 1, offset: "gridTemplateRows", len: 0, typ: NTI33554440, name: "gridTemplateRows", sons: null}, +{kind: 1, offset: "hangingPunctuation", len: 0, typ: NTI33554440, name: "hangingPunctuation", sons: null}, +{kind: 1, offset: "height", len: 0, typ: NTI33554440, name: "height", sons: null}, +{kind: 1, offset: "hyphens", len: 0, typ: NTI33554440, name: "hyphens", sons: null}, +{kind: 1, offset: "imageOrientation", len: 0, typ: NTI33554440, name: "imageOrientation", sons: null}, +{kind: 1, offset: "imageRendering", len: 0, typ: NTI33554440, name: "imageRendering", sons: null}, +{kind: 1, offset: "inlineSize", len: 0, typ: NTI33554440, name: "inlineSize", sons: null}, +{kind: 1, offset: "inset", len: 0, typ: NTI33554440, name: "inset", sons: null}, +{kind: 1, offset: "insetBlock", len: 0, typ: NTI33554440, name: "insetBlock", sons: null}, +{kind: 1, offset: "insetBlockEnd", len: 0, typ: NTI33554440, name: "insetBlockEnd", sons: null}, +{kind: 1, offset: "insetBlockStart", len: 0, typ: NTI33554440, name: "insetBlockStart", sons: null}, +{kind: 1, offset: "insetInline", len: 0, typ: NTI33554440, name: "insetInline", sons: null}, +{kind: 1, offset: "insetInlineEnd", len: 0, typ: NTI33554440, name: "insetInlineEnd", sons: null}, +{kind: 1, offset: "insetInlineStart", len: 0, typ: NTI33554440, name: "insetInlineStart", sons: null}, +{kind: 1, offset: "isolation", len: 0, typ: NTI33554440, name: "isolation", sons: null}, +{kind: 1, offset: "justifyContent", len: 0, typ: NTI33554440, name: "justifyContent", sons: null}, +{kind: 1, offset: "justifyItems", len: 0, typ: NTI33554440, name: "justifyItems", sons: null}, +{kind: 1, offset: "justifySelf", len: 0, typ: NTI33554440, name: "justifySelf", sons: null}, +{kind: 1, offset: "left", len: 0, typ: NTI33554440, name: "left", sons: null}, +{kind: 1, offset: "letterSpacing", len: 0, typ: NTI33554440, name: "letterSpacing", sons: null}, +{kind: 1, offset: "lineBreak", len: 0, typ: NTI33554440, name: "lineBreak", sons: null}, +{kind: 1, offset: "lineHeight", len: 0, typ: NTI33554440, name: "lineHeight", sons: null}, +{kind: 1, offset: "listStyle", len: 0, typ: NTI33554440, name: "listStyle", sons: null}, +{kind: 1, offset: "listStyleImage", len: 0, typ: NTI33554440, name: "listStyleImage", sons: null}, +{kind: 1, offset: "listStylePosition", len: 0, typ: NTI33554440, name: "listStylePosition", sons: null}, +{kind: 1, offset: "listStyleType", len: 0, typ: NTI33554440, name: "listStyleType", sons: null}, +{kind: 1, offset: "margin", len: 0, typ: NTI33554440, name: "margin", sons: null}, +{kind: 1, offset: "marginBlock", len: 0, typ: NTI33554440, name: "marginBlock", sons: null}, +{kind: 1, offset: "marginBlockEnd", len: 0, typ: NTI33554440, name: "marginBlockEnd", sons: null}, +{kind: 1, offset: "marginBlockStart", len: 0, typ: NTI33554440, name: "marginBlockStart", sons: null}, +{kind: 1, offset: "marginBottom", len: 0, typ: NTI33554440, name: "marginBottom", sons: null}, +{kind: 1, offset: "marginInline", len: 0, typ: NTI33554440, name: "marginInline", sons: null}, +{kind: 1, offset: "marginInlineEnd", len: 0, typ: NTI33554440, name: "marginInlineEnd", sons: null}, +{kind: 1, offset: "marginInlineStart", len: 0, typ: NTI33554440, name: "marginInlineStart", sons: null}, +{kind: 1, offset: "marginLeft", len: 0, typ: NTI33554440, name: "marginLeft", sons: null}, +{kind: 1, offset: "marginRight", len: 0, typ: NTI33554440, name: "marginRight", sons: null}, +{kind: 1, offset: "marginTop", len: 0, typ: NTI33554440, name: "marginTop", sons: null}, +{kind: 1, offset: "mask", len: 0, typ: NTI33554440, name: "mask", sons: null}, +{kind: 1, offset: "maskBorder", len: 0, typ: NTI33554440, name: "maskBorder", sons: null}, +{kind: 1, offset: "maskBorderMode", len: 0, typ: NTI33554440, name: "maskBorderMode", sons: null}, +{kind: 1, offset: "maskBorderOutset", len: 0, typ: NTI33554440, name: "maskBorderOutset", sons: null}, +{kind: 1, offset: "maskBorderRepeat", len: 0, typ: NTI33554440, name: "maskBorderRepeat", sons: null}, +{kind: 1, offset: "maskBorderSlice", len: 0, typ: NTI33554440, name: "maskBorderSlice", sons: null}, +{kind: 1, offset: "maskBorderSource", len: 0, typ: NTI33554440, name: "maskBorderSource", sons: null}, +{kind: 1, offset: "maskBorderWidth", len: 0, typ: NTI33554440, name: "maskBorderWidth", sons: null}, +{kind: 1, offset: "maskClip", len: 0, typ: NTI33554440, name: "maskClip", sons: null}, +{kind: 1, offset: "maskComposite", len: 0, typ: NTI33554440, name: "maskComposite", sons: null}, +{kind: 1, offset: "maskImage", len: 0, typ: NTI33554440, name: "maskImage", sons: null}, +{kind: 1, offset: "maskMode", len: 0, typ: NTI33554440, name: "maskMode", sons: null}, +{kind: 1, offset: "maskOrigin", len: 0, typ: NTI33554440, name: "maskOrigin", sons: null}, +{kind: 1, offset: "maskPosition", len: 0, typ: NTI33554440, name: "maskPosition", sons: null}, +{kind: 1, offset: "maskRepeat", len: 0, typ: NTI33554440, name: "maskRepeat", sons: null}, +{kind: 1, offset: "maskSize", len: 0, typ: NTI33554440, name: "maskSize", sons: null}, +{kind: 1, offset: "maskType", len: 0, typ: NTI33554440, name: "maskType", sons: null}, +{kind: 1, offset: "maxBlockSize", len: 0, typ: NTI33554440, name: "maxBlockSize", sons: null}, +{kind: 1, offset: "maxHeight", len: 0, typ: NTI33554440, name: "maxHeight", sons: null}, +{kind: 1, offset: "maxInlineSize", len: 0, typ: NTI33554440, name: "maxInlineSize", sons: null}, +{kind: 1, offset: "maxWidth", len: 0, typ: NTI33554440, name: "maxWidth", sons: null}, +{kind: 1, offset: "minBlockSize", len: 0, typ: NTI33554440, name: "minBlockSize", sons: null}, +{kind: 1, offset: "minHeight", len: 0, typ: NTI33554440, name: "minHeight", sons: null}, +{kind: 1, offset: "minInlineSize", len: 0, typ: NTI33554440, name: "minInlineSize", sons: null}, +{kind: 1, offset: "minWidth", len: 0, typ: NTI33554440, name: "minWidth", sons: null}, +{kind: 1, offset: "mixBlendMode", len: 0, typ: NTI33554440, name: "mixBlendMode", sons: null}, +{kind: 1, offset: "objectFit", len: 0, typ: NTI33554440, name: "objectFit", sons: null}, +{kind: 1, offset: "objectPosition", len: 0, typ: NTI33554440, name: "objectPosition", sons: null}, +{kind: 1, offset: "offset", len: 0, typ: NTI33554440, name: "offset", sons: null}, +{kind: 1, offset: "offsetAnchor", len: 0, typ: NTI33554440, name: "offsetAnchor", sons: null}, +{kind: 1, offset: "offsetDistance", len: 0, typ: NTI33554440, name: "offsetDistance", sons: null}, +{kind: 1, offset: "offsetPath", len: 0, typ: NTI33554440, name: "offsetPath", sons: null}, +{kind: 1, offset: "offsetRotate", len: 0, typ: NTI33554440, name: "offsetRotate", sons: null}, +{kind: 1, offset: "opacity", len: 0, typ: NTI33554440, name: "opacity", sons: null}, +{kind: 1, offset: "order", len: 0, typ: NTI33554440, name: "order", sons: null}, +{kind: 1, offset: "orphans", len: 0, typ: NTI33554440, name: "orphans", sons: null}, +{kind: 1, offset: "outline", len: 0, typ: NTI33554440, name: "outline", sons: null}, +{kind: 1, offset: "outlineColor", len: 0, typ: NTI33554440, name: "outlineColor", sons: null}, +{kind: 1, offset: "outlineOffset", len: 0, typ: NTI33554440, name: "outlineOffset", sons: null}, +{kind: 1, offset: "outlineStyle", len: 0, typ: NTI33554440, name: "outlineStyle", sons: null}, +{kind: 1, offset: "outlineWidth", len: 0, typ: NTI33554440, name: "outlineWidth", sons: null}, +{kind: 1, offset: "overflow", len: 0, typ: NTI33554440, name: "overflow", sons: null}, +{kind: 1, offset: "overflowAnchor", len: 0, typ: NTI33554440, name: "overflowAnchor", sons: null}, +{kind: 1, offset: "overflowBlock", len: 0, typ: NTI33554440, name: "overflowBlock", sons: null}, +{kind: 1, offset: "overflowInline", len: 0, typ: NTI33554440, name: "overflowInline", sons: null}, +{kind: 1, offset: "overflowWrap", len: 0, typ: NTI33554440, name: "overflowWrap", sons: null}, +{kind: 1, offset: "overflowX", len: 0, typ: NTI33554440, name: "overflowX", sons: null}, +{kind: 1, offset: "overflowY", len: 0, typ: NTI33554440, name: "overflowY", sons: null}, +{kind: 1, offset: "overscrollBehavior", len: 0, typ: NTI33554440, name: "overscrollBehavior", sons: null}, +{kind: 1, offset: "overscrollBehaviorBlock", len: 0, typ: NTI33554440, name: "overscrollBehaviorBlock", sons: null}, +{kind: 1, offset: "overscrollBehaviorInline", len: 0, typ: NTI33554440, name: "overscrollBehaviorInline", sons: null}, +{kind: 1, offset: "overscrollBehaviorX", len: 0, typ: NTI33554440, name: "overscrollBehaviorX", sons: null}, +{kind: 1, offset: "overscrollBehaviorY", len: 0, typ: NTI33554440, name: "overscrollBehaviorY", sons: null}, +{kind: 1, offset: "padding", len: 0, typ: NTI33554440, name: "padding", sons: null}, +{kind: 1, offset: "paddingBlock", len: 0, typ: NTI33554440, name: "paddingBlock", sons: null}, +{kind: 1, offset: "paddingBlockEnd", len: 0, typ: NTI33554440, name: "paddingBlockEnd", sons: null}, +{kind: 1, offset: "paddingBlockStart", len: 0, typ: NTI33554440, name: "paddingBlockStart", sons: null}, +{kind: 1, offset: "paddingBottom", len: 0, typ: NTI33554440, name: "paddingBottom", sons: null}, +{kind: 1, offset: "paddingInline", len: 0, typ: NTI33554440, name: "paddingInline", sons: null}, +{kind: 1, offset: "paddingInlineEnd", len: 0, typ: NTI33554440, name: "paddingInlineEnd", sons: null}, +{kind: 1, offset: "paddingInlineStart", len: 0, typ: NTI33554440, name: "paddingInlineStart", sons: null}, +{kind: 1, offset: "paddingLeft", len: 0, typ: NTI33554440, name: "paddingLeft", sons: null}, +{kind: 1, offset: "paddingRight", len: 0, typ: NTI33554440, name: "paddingRight", sons: null}, +{kind: 1, offset: "paddingTop", len: 0, typ: NTI33554440, name: "paddingTop", sons: null}, +{kind: 1, offset: "pageBreakAfter", len: 0, typ: NTI33554440, name: "pageBreakAfter", sons: null}, +{kind: 1, offset: "pageBreakBefore", len: 0, typ: NTI33554440, name: "pageBreakBefore", sons: null}, +{kind: 1, offset: "pageBreakInside", len: 0, typ: NTI33554440, name: "pageBreakInside", sons: null}, +{kind: 1, offset: "paintOrder", len: 0, typ: NTI33554440, name: "paintOrder", sons: null}, +{kind: 1, offset: "perspective", len: 0, typ: NTI33554440, name: "perspective", sons: null}, +{kind: 1, offset: "perspectiveOrigin", len: 0, typ: NTI33554440, name: "perspectiveOrigin", sons: null}, +{kind: 1, offset: "placeContent", len: 0, typ: NTI33554440, name: "placeContent", sons: null}, +{kind: 1, offset: "placeItems", len: 0, typ: NTI33554440, name: "placeItems", sons: null}, +{kind: 1, offset: "placeSelf", len: 0, typ: NTI33554440, name: "placeSelf", sons: null}, +{kind: 1, offset: "pointerEvents", len: 0, typ: NTI33554440, name: "pointerEvents", sons: null}, +{kind: 1, offset: "position", len: 0, typ: NTI33554440, name: "position", sons: null}, +{kind: 1, offset: "quotes", len: 0, typ: NTI33554440, name: "quotes", sons: null}, +{kind: 1, offset: "resize", len: 0, typ: NTI33554440, name: "resize", sons: null}, +{kind: 1, offset: "right", len: 0, typ: NTI33554440, name: "right", sons: null}, +{kind: 1, offset: "rotate", len: 0, typ: NTI33554440, name: "rotate", sons: null}, +{kind: 1, offset: "rowGap", len: 0, typ: NTI33554440, name: "rowGap", sons: null}, +{kind: 1, offset: "scale", len: 0, typ: NTI33554440, name: "scale", sons: null}, +{kind: 1, offset: "scrollBehavior", len: 0, typ: NTI33554440, name: "scrollBehavior", sons: null}, +{kind: 1, offset: "scrollMargin", len: 0, typ: NTI33554440, name: "scrollMargin", sons: null}, +{kind: 1, offset: "scrollMarginBlock", len: 0, typ: NTI33554440, name: "scrollMarginBlock", sons: null}, +{kind: 1, offset: "scrollMarginBlockEnd", len: 0, typ: NTI33554440, name: "scrollMarginBlockEnd", sons: null}, +{kind: 1, offset: "scrollMarginBlockStart", len: 0, typ: NTI33554440, name: "scrollMarginBlockStart", sons: null}, +{kind: 1, offset: "scrollMarginBottom", len: 0, typ: NTI33554440, name: "scrollMarginBottom", sons: null}, +{kind: 1, offset: "scrollMarginInline", len: 0, typ: NTI33554440, name: "scrollMarginInline", sons: null}, +{kind: 1, offset: "scrollMarginInlineEnd", len: 0, typ: NTI33554440, name: "scrollMarginInlineEnd", sons: null}, +{kind: 1, offset: "scrollMarginInlineStart", len: 0, typ: NTI33554440, name: "scrollMarginInlineStart", sons: null}, +{kind: 1, offset: "scrollMarginLeft", len: 0, typ: NTI33554440, name: "scrollMarginLeft", sons: null}, +{kind: 1, offset: "scrollMarginRight", len: 0, typ: NTI33554440, name: "scrollMarginRight", sons: null}, +{kind: 1, offset: "scrollMarginTop", len: 0, typ: NTI33554440, name: "scrollMarginTop", sons: null}, +{kind: 1, offset: "scrollPadding", len: 0, typ: NTI33554440, name: "scrollPadding", sons: null}, +{kind: 1, offset: "scrollPaddingBlock", len: 0, typ: NTI33554440, name: "scrollPaddingBlock", sons: null}, +{kind: 1, offset: "scrollPaddingBlockEnd", len: 0, typ: NTI33554440, name: "scrollPaddingBlockEnd", sons: null}, +{kind: 1, offset: "scrollPaddingBlockStart", len: 0, typ: NTI33554440, name: "scrollPaddingBlockStart", sons: null}, +{kind: 1, offset: "scrollPaddingBottom", len: 0, typ: NTI33554440, name: "scrollPaddingBottom", sons: null}, +{kind: 1, offset: "scrollPaddingInline", len: 0, typ: NTI33554440, name: "scrollPaddingInline", sons: null}, +{kind: 1, offset: "scrollPaddingInlineEnd", len: 0, typ: NTI33554440, name: "scrollPaddingInlineEnd", sons: null}, +{kind: 1, offset: "scrollPaddingInlineStart", len: 0, typ: NTI33554440, name: "scrollPaddingInlineStart", sons: null}, +{kind: 1, offset: "scrollPaddingLeft", len: 0, typ: NTI33554440, name: "scrollPaddingLeft", sons: null}, +{kind: 1, offset: "scrollPaddingRight", len: 0, typ: NTI33554440, name: "scrollPaddingRight", sons: null}, +{kind: 1, offset: "scrollPaddingTop", len: 0, typ: NTI33554440, name: "scrollPaddingTop", sons: null}, +{kind: 1, offset: "scrollSnapAlign", len: 0, typ: NTI33554440, name: "scrollSnapAlign", sons: null}, +{kind: 1, offset: "scrollSnapStop", len: 0, typ: NTI33554440, name: "scrollSnapStop", sons: null}, +{kind: 1, offset: "scrollSnapType", len: 0, typ: NTI33554440, name: "scrollSnapType", sons: null}, +{kind: 1, offset: "scrollbar3dLightColor", len: 0, typ: NTI33554440, name: "scrollbar3dLightColor", sons: null}, +{kind: 1, offset: "scrollbarArrowColor", len: 0, typ: NTI33554440, name: "scrollbarArrowColor", sons: null}, +{kind: 1, offset: "scrollbarBaseColor", len: 0, typ: NTI33554440, name: "scrollbarBaseColor", sons: null}, +{kind: 1, offset: "scrollbarColor", len: 0, typ: NTI33554440, name: "scrollbarColor", sons: null}, +{kind: 1, offset: "scrollbarDarkshadowColor", len: 0, typ: NTI33554440, name: "scrollbarDarkshadowColor", sons: null}, +{kind: 1, offset: "scrollbarFaceColor", len: 0, typ: NTI33554440, name: "scrollbarFaceColor", sons: null}, +{kind: 1, offset: "scrollbarHighlightColor", len: 0, typ: NTI33554440, name: "scrollbarHighlightColor", sons: null}, +{kind: 1, offset: "scrollbarShadowColor", len: 0, typ: NTI33554440, name: "scrollbarShadowColor", sons: null}, +{kind: 1, offset: "scrollbarTrackColor", len: 0, typ: NTI33554440, name: "scrollbarTrackColor", sons: null}, +{kind: 1, offset: "scrollbarWidth", len: 0, typ: NTI33554440, name: "scrollbarWidth", sons: null}, +{kind: 1, offset: "shapeImageThreshold", len: 0, typ: NTI33554440, name: "shapeImageThreshold", sons: null}, +{kind: 1, offset: "shapeMargin", len: 0, typ: NTI33554440, name: "shapeMargin", sons: null}, +{kind: 1, offset: "shapeOutside", len: 0, typ: NTI33554440, name: "shapeOutside", sons: null}, +{kind: 1, offset: "tabSize", len: 0, typ: NTI33554440, name: "tabSize", sons: null}, +{kind: 1, offset: "tableLayout", len: 0, typ: NTI33554440, name: "tableLayout", sons: null}, +{kind: 1, offset: "textAlign", len: 0, typ: NTI33554440, name: "textAlign", sons: null}, +{kind: 1, offset: "textAlignLast", len: 0, typ: NTI33554440, name: "textAlignLast", sons: null}, +{kind: 1, offset: "textCombineUpright", len: 0, typ: NTI33554440, name: "textCombineUpright", sons: null}, +{kind: 1, offset: "textDecoration", len: 0, typ: NTI33554440, name: "textDecoration", sons: null}, +{kind: 1, offset: "textDecorationColor", len: 0, typ: NTI33554440, name: "textDecorationColor", sons: null}, +{kind: 1, offset: "textDecorationLine", len: 0, typ: NTI33554440, name: "textDecorationLine", sons: null}, +{kind: 1, offset: "textDecorationSkipInk", len: 0, typ: NTI33554440, name: "textDecorationSkipInk", sons: null}, +{kind: 1, offset: "textDecorationStyle", len: 0, typ: NTI33554440, name: "textDecorationStyle", sons: null}, +{kind: 1, offset: "textDecorationThickness", len: 0, typ: NTI33554440, name: "textDecorationThickness", sons: null}, +{kind: 1, offset: "textEmphasis", len: 0, typ: NTI33554440, name: "textEmphasis", sons: null}, +{kind: 1, offset: "textEmphasisColor", len: 0, typ: NTI33554440, name: "textEmphasisColor", sons: null}, +{kind: 1, offset: "textEmphasisPosition", len: 0, typ: NTI33554440, name: "textEmphasisPosition", sons: null}, +{kind: 1, offset: "textEmphasisStyle", len: 0, typ: NTI33554440, name: "textEmphasisStyle", sons: null}, +{kind: 1, offset: "textIndent", len: 0, typ: NTI33554440, name: "textIndent", sons: null}, +{kind: 1, offset: "textJustify", len: 0, typ: NTI33554440, name: "textJustify", sons: null}, +{kind: 1, offset: "textOrientation", len: 0, typ: NTI33554440, name: "textOrientation", sons: null}, +{kind: 1, offset: "textOverflow", len: 0, typ: NTI33554440, name: "textOverflow", sons: null}, +{kind: 1, offset: "textRendering", len: 0, typ: NTI33554440, name: "textRendering", sons: null}, +{kind: 1, offset: "textShadow", len: 0, typ: NTI33554440, name: "textShadow", sons: null}, +{kind: 1, offset: "textTransform", len: 0, typ: NTI33554440, name: "textTransform", sons: null}, +{kind: 1, offset: "textUnderlineOffset", len: 0, typ: NTI33554440, name: "textUnderlineOffset", sons: null}, +{kind: 1, offset: "textUnderlinePosition", len: 0, typ: NTI33554440, name: "textUnderlinePosition", sons: null}, +{kind: 1, offset: "top", len: 0, typ: NTI33554440, name: "top", sons: null}, +{kind: 1, offset: "touchAction", len: 0, typ: NTI33554440, name: "touchAction", sons: null}, +{kind: 1, offset: "transform", len: 0, typ: NTI33554440, name: "transform", sons: null}, +{kind: 1, offset: "transformBox", len: 0, typ: NTI33554440, name: "transformBox", sons: null}, +{kind: 1, offset: "transformOrigin", len: 0, typ: NTI33554440, name: "transformOrigin", sons: null}, +{kind: 1, offset: "transformStyle", len: 0, typ: NTI33554440, name: "transformStyle", sons: null}, +{kind: 1, offset: "transition", len: 0, typ: NTI33554440, name: "transition", sons: null}, +{kind: 1, offset: "transitionDelay", len: 0, typ: NTI33554440, name: "transitionDelay", sons: null}, +{kind: 1, offset: "transitionDuration", len: 0, typ: NTI33554440, name: "transitionDuration", sons: null}, +{kind: 1, offset: "transitionProperty", len: 0, typ: NTI33554440, name: "transitionProperty", sons: null}, +{kind: 1, offset: "transitionTimingFunction", len: 0, typ: NTI33554440, name: "transitionTimingFunction", sons: null}, +{kind: 1, offset: "translate", len: 0, typ: NTI33554440, name: "translate", sons: null}, +{kind: 1, offset: "unicodeBidi", len: 0, typ: NTI33554440, name: "unicodeBidi", sons: null}, +{kind: 1, offset: "verticalAlign", len: 0, typ: NTI33554440, name: "verticalAlign", sons: null}, +{kind: 1, offset: "visibility", len: 0, typ: NTI33554440, name: "visibility", sons: null}, +{kind: 1, offset: "whiteSpace", len: 0, typ: NTI33554440, name: "whiteSpace", sons: null}, +{kind: 1, offset: "widows", len: 0, typ: NTI33554440, name: "widows", sons: null}, +{kind: 1, offset: "width", len: 0, typ: NTI33554440, name: "width", sons: null}, +{kind: 1, offset: "willChange", len: 0, typ: NTI33554440, name: "willChange", sons: null}, +{kind: 1, offset: "wordBreak", len: 0, typ: NTI33554440, name: "wordBreak", sons: null}, +{kind: 1, offset: "wordSpacing", len: 0, typ: NTI33554440, name: "wordSpacing", sons: null}, +{kind: 1, offset: "writingMode", len: 0, typ: NTI33554440, name: "writingMode", sons: null}, +{kind: 1, offset: "zIndex", len: 0, typ: NTI33554440, name: "zIndex", sons: null}]}; +NTI637534349.node = NNI637534349; +NTI637534349.base = NTI33555086; +NTI637534238.base = NTI637534349; +var NNI637534321 = {kind: 2, len: 22, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "attributes", len: 0, typ: NTI637534322, name: "attributes", sons: null}, +{kind: 1, offset: "childNodes", len: 0, typ: NTI637534323, name: "childNodes", sons: null}, +{kind: 1, offset: "children", len: 0, typ: NTI637534324, name: "children", sons: null}, +{kind: 1, offset: "data", len: 0, typ: NTI33554440, name: "data", sons: null}, +{kind: 1, offset: "firstChild", len: 0, typ: NTI637534224, name: "firstChild", sons: null}, +{kind: 1, offset: "lastChild", len: 0, typ: NTI637534224, name: "lastChild", sons: null}, +{kind: 1, offset: "nextSibling", len: 0, typ: NTI637534224, name: "nextSibling", sons: null}, +{kind: 1, offset: "nodeName", len: 0, typ: NTI33554440, name: "nodeName", sons: null}, +{kind: 1, offset: "nodeType", len: 0, typ: NTI637534223, name: "nodeType", sons: null}, +{kind: 1, offset: "nodeValue", len: 0, typ: NTI33554440, name: "nodeValue", sons: null}, +{kind: 1, offset: "parentNode", len: 0, typ: NTI637534224, name: "parentNode", sons: null}, +{kind: 1, offset: "content", len: 0, typ: NTI637534224, name: "content", sons: null}, +{kind: 1, offset: "previousSibling", len: 0, typ: NTI637534224, name: "previousSibling", sons: null}, +{kind: 1, offset: "ownerDocument", len: 0, typ: NTI637534225, name: "ownerDocument", sons: null}, +{kind: 1, offset: "innerHTML", len: 0, typ: NTI33554440, name: "innerHTML", sons: null}, +{kind: 1, offset: "outerHTML", len: 0, typ: NTI33554440, name: "outerHTML", sons: null}, +{kind: 1, offset: "innerText", len: 0, typ: NTI33554440, name: "innerText", sons: null}, +{kind: 1, offset: "textContent", len: 0, typ: NTI33554440, name: "textContent", sons: null}, +{kind: 1, offset: "style", len: 0, typ: NTI637534238, name: "style", sons: null}, +{kind: 1, offset: "baseURI", len: 0, typ: NTI33554440, name: "baseURI", sons: null}, +{kind: 1, offset: "parentElement", len: 0, typ: NTI637534226, name: "parentElement", sons: null}, +{kind: 1, offset: "isConnected", len: 0, typ: NTI33554466, name: "isConnected", sons: null}]}; +NTI637534321.node = NNI637534321; +var NNI637534276 = {kind: 2, len: 24, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "onabort", len: 0, typ: NTI637534277, name: "onabort", sons: null}, +{kind: 1, offset: "onblur", len: 0, typ: NTI637534278, name: "onblur", sons: null}, +{kind: 1, offset: "onchange", len: 0, typ: NTI637534279, name: "onchange", sons: null}, +{kind: 1, offset: "onclick", len: 0, typ: NTI637534280, name: "onclick", sons: null}, +{kind: 1, offset: "ondblclick", len: 0, typ: NTI637534281, name: "ondblclick", sons: null}, +{kind: 1, offset: "onerror", len: 0, typ: NTI637534282, name: "onerror", sons: null}, +{kind: 1, offset: "onfocus", len: 0, typ: NTI637534283, name: "onfocus", sons: null}, +{kind: 1, offset: "onkeydown", len: 0, typ: NTI637534284, name: "onkeydown", sons: null}, +{kind: 1, offset: "onkeypress", len: 0, typ: NTI637534285, name: "onkeypress", sons: null}, +{kind: 1, offset: "onkeyup", len: 0, typ: NTI637534286, name: "onkeyup", sons: null}, +{kind: 1, offset: "onload", len: 0, typ: NTI637534287, name: "onload", sons: null}, +{kind: 1, offset: "onmousedown", len: 0, typ: NTI637534288, name: "onmousedown", sons: null}, +{kind: 1, offset: "onmousemove", len: 0, typ: NTI637534289, name: "onmousemove", sons: null}, +{kind: 1, offset: "onmouseout", len: 0, typ: NTI637534290, name: "onmouseout", sons: null}, +{kind: 1, offset: "onmouseover", len: 0, typ: NTI637534291, name: "onmouseover", sons: null}, +{kind: 1, offset: "onmouseup", len: 0, typ: NTI637534292, name: "onmouseup", sons: null}, +{kind: 1, offset: "onreset", len: 0, typ: NTI637534293, name: "onreset", sons: null}, +{kind: 1, offset: "onselect", len: 0, typ: NTI637534294, name: "onselect", sons: null}, +{kind: 1, offset: "onstorage", len: 0, typ: NTI637534295, name: "onstorage", sons: null}, +{kind: 1, offset: "onsubmit", len: 0, typ: NTI637534296, name: "onsubmit", sons: null}, +{kind: 1, offset: "onunload", len: 0, typ: NTI637534297, name: "onunload", sons: null}, +{kind: 1, offset: "onloadstart", len: 0, typ: NTI637534298, name: "onloadstart", sons: null}, +{kind: 1, offset: "onprogress", len: 0, typ: NTI637534299, name: "onprogress", sons: null}, +{kind: 1, offset: "onloadend", len: 0, typ: NTI637534300, name: "onloadend", sons: null}]}; +NTI637534276.node = NNI637534276; +NTI637534276.base = NTI33555086; +NTI637534321.base = NTI637534276; +NTI637534224.base = NTI637534321; +NTI637534652.base = NTI637534224; +NTI503317021.base = NTI33554440; +var NNI654311438 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI33554456, name: "Field0", sons: null}, +{kind: 1, offset: "Field1", len: 0, typ: NTI33554466, name: "Field1", sons: null}]}; +NTI654311438.node = NNI654311438; + +function makeNimstrLit(c_33556801) { + var result = []; + for (var i = 0; i < c_33556801.length; ++i) { + result[i] = c_33556801.charCodeAt(i); + } + return result; + + + +} + +function toJSStr(s_33556807) { + var Temporary5; + + var result_33556808 = null; + + var res_33556842 = newSeq_33556825((s_33556807).length); + var i_33556843 = 0; + var j_33556844 = 0; + Label1: do { + Label2: while (true) { + if (!(i_33556843 < (s_33556807).length)) break Label2; + var c_33556845 = s_33556807[i_33556843]; + if ((c_33556845 < 128)) { + res_33556842[j_33556844] = String.fromCharCode(c_33556845); + i_33556843 += 1; + } + else { + var helper_33556857 = newSeq_33556825(0); + Label3: do { + Label4: while (true) { + if (!true) break Label4; + var code_33556858 = c_33556845.toString(16); + if ((((code_33556858) == null ? 0 : (code_33556858).length) == 1)) { + helper_33556857.push("%0");; + } + else { + helper_33556857.push("%");; + } + + helper_33556857.push(code_33556858);; + i_33556843 += 1; + if (((s_33556807).length <= i_33556843)) Temporary5 = true; else { Temporary5 = (s_33556807[i_33556843] < 128); } if (Temporary5) { + break Label3; + } + + c_33556845 = s_33556807[i_33556843]; + } + } while (false); +++excHandler; + try { + res_33556842[j_33556844] = decodeURIComponent(helper_33556857.join("")); +--excHandler; +} catch (EXCEPTION) { + var prevJSError = lastJSError; + lastJSError = EXCEPTION; + --excHandler; + res_33556842[j_33556844] = helper_33556857.join(""); + lastJSError = prevJSError; + } finally { + } + } + + j_33556844 += 1; + } + } while (false); + if (res_33556842.length < j_33556844) { for (var i = res_33556842.length ; i < j_33556844 ; ++i) res_33556842.push(null); } + else { res_33556842.length = j_33556844; }; + result_33556808 = res_33556842.join(""); + + return result_33556808; + +} + +function raiseException(e_33556667, ename_33556668) { + e_33556667.name = ename_33556668; + if ((excHandler == 0)) { + unhandledException(e_33556667); + } + + throw e_33556667; + + +} + +function addInt(a_33556940, b_33556941) { + var result = a_33556940 + b_33556941; + checkOverflowInt(result); + return result; + + + +} + +function mnewString(len_33556893) { + return new Array(len_33556893); + + + +} + +function chckRange(i_33557189, a_33557190, b_33557191) { + var Temporary1; + + var result_33557192 = 0; + + BeforeRet: do { + if (!(a_33557190 <= i_33557189)) Temporary1 = false; else { Temporary1 = (i_33557189 <= b_33557191); } if (Temporary1) { + result_33557192 = i_33557189; + break BeforeRet; + } + else { + raiseRangeError(); + } + + } while (false); + + return result_33557192; + +} + +function setConstr() { + var result = {}; + for (var i = 0; i < arguments.length; ++i) { + var x = arguments[i]; + if (typeof(x) == "object") { + for (var j = x[0]; j <= x[1]; ++j) { + result[j] = true; + } + } else { + result[x] = true; + } + } + return result; + + + +} +var ConstSet1 = setConstr(17, 16, 4, 18, 27, 19, 23, 22, 21); + +function nimCopy(dest_33557140, src_33557141, ti_33557142) { + var result_33557151 = null; + + switch (ti_33557142.kind) { + case 21: + case 22: + case 23: + case 5: + if (!(isFatPointer_33557131(ti_33557142))) { + result_33557151 = src_33557141; + } + else { + result_33557151 = [src_33557141[0], src_33557141[1]]; + } + + break; + case 19: + if (dest_33557140 === null || dest_33557140 === undefined) { + dest_33557140 = {}; + } + else { + for (var key in dest_33557140) { delete dest_33557140[key]; } + } + for (var key in src_33557141) { dest_33557140[key] = src_33557141[key]; } + result_33557151 = dest_33557140; + + break; + case 18: + case 17: + if (!((ti_33557142.base == null))) { + result_33557151 = nimCopy(dest_33557140, src_33557141, ti_33557142.base); + } + else { + if ((ti_33557142.kind == 17)) { + result_33557151 = (dest_33557140 === null || dest_33557140 === undefined) ? {m_type: ti_33557142} : dest_33557140; + } + else { + result_33557151 = (dest_33557140 === null || dest_33557140 === undefined) ? {} : dest_33557140; + } + } + nimCopyAux(result_33557151, src_33557141, ti_33557142.node); + break; + case 24: + case 4: + case 27: + case 16: + if (src_33557141 === null) { + result_33557151 = null; + } + else { + if (dest_33557140 === null || dest_33557140 === undefined || dest_33557140.length != src_33557141.length) { + dest_33557140 = new Array(src_33557141.length); + } + result_33557151 = dest_33557140; + for (var i = 0; i < src_33557141.length; ++i) { + result_33557151[i] = nimCopy(result_33557151[i], src_33557141[i], ti_33557142.base); + } + } + + break; + case 28: + if (src_33557141 !== null) { + result_33557151 = src_33557141.slice(0); + } + + break; + default: + result_33557151 = src_33557141; + break; + } + + return result_33557151; + +} + +function chckIndx(i_33557184, a_33557185, b_33557186) { + var Temporary1; + + var result_33557187 = 0; + + BeforeRet: do { + if (!(a_33557185 <= i_33557184)) Temporary1 = false; else { Temporary1 = (i_33557184 <= b_33557186); } if (Temporary1) { + result_33557187 = i_33557184; + break BeforeRet; + } + else { + raiseIndexError(i_33557184, a_33557185, b_33557186); + } + + } while (false); + + return result_33557187; + +} + +function subInt(a_33556944, b_33556945) { + var result = a_33556944 - b_33556945; + checkOverflowInt(result); + return result; + + + +} +var ConstSet2 = setConstr([65, 90]); +var ConstSet3 = setConstr(95, 32, 46); +var ConstSet4 = setConstr(95, 32, 46); + +function mulInt(a_33556948, b_33556949) { + var result = a_33556948 * b_33556949; + checkOverflowInt(result); + return result; + + + +} +var ConstSet5 = setConstr([97, 122]); +var ConstSet6 = setConstr([65, 90], [97, 122]); +var ConstSet7 = setConstr([97, 122]); +var ConstSet8 = setConstr([65, 90]); +var ConstSet9 = setConstr([65, 90], [97, 122]); + +function nimMax(a_33556998, b_33556999) { + var Temporary1; + + var result_33557000 = 0; + + BeforeRet: do { + if ((b_33556999 <= a_33556998)) { + Temporary1 = a_33556998; + } + else { + Temporary1 = b_33556999; + } + + result_33557000 = Temporary1; + break BeforeRet; + } while (false); + + return result_33557000; + +} + +function nimMin(a_33556994, b_33556995) { + var Temporary1; + + var result_33556996 = 0; + + BeforeRet: do { + if ((a_33556994 <= b_33556995)) { + Temporary1 = a_33556994; + } + else { + Temporary1 = b_33556995; + } + + result_33556996 = Temporary1; + break BeforeRet; + } while (false); + + return result_33556996; + +} + +function addChar(x_33557255, c_33557256) { + x_33557255.push(c_33557256); + + +} +if (!Math.trunc) { + Math.trunc = function(v) { + v = +v; + if (!isFinite(v)) return v; + return (v - v % 1) || (v < 0 ? -0 : v === 0 ? v : 0); + }; +} + +var alternative_503317074 = [null]; + +function add_33556419(x_33556420, x_33556420_Idx, y_33556421) { + if (x_33556420[x_33556420_Idx] === null) { x_33556420[x_33556420_Idx] = []; } + var off = x_33556420[x_33556420_Idx].length; + x_33556420[x_33556420_Idx].length += y_33556421.length; + for (var i = 0; i < y_33556421.length; ++i) { + x_33556420[x_33556420_Idx][off+i] = y_33556421.charCodeAt(i); + } + + + +} + +function newSeq_33556825(len_33556827) { + var result_33556828 = []; + + result_33556828 = new Array(len_33556827); for (var i = 0 ; i < len_33556827 ; ++i) { result_33556828[i] = null; } + return result_33556828; + +} + +function unhandledException(e_33556663) { + var buf_33556664 = [[]]; + if (!(((e_33556663.message).length == 0))) { + buf_33556664[0].push.apply(buf_33556664[0], makeNimstrLit("Error: unhandled exception: "));; + buf_33556664[0].push.apply(buf_33556664[0], e_33556663.message);; + } + else { + buf_33556664[0].push.apply(buf_33556664[0], makeNimstrLit("Error: unhandled exception"));; + } + + buf_33556664[0].push.apply(buf_33556664[0], makeNimstrLit(" ["));; + add_33556419(buf_33556664, 0, e_33556663.name); + buf_33556664[0].push.apply(buf_33556664[0], makeNimstrLit("]\x0A"));; + var cbuf_33556665 = toJSStr(buf_33556664[0]); + if (typeof(Error) !== "undefined") { + throw new Error(cbuf_33556665); + } + else { + throw cbuf_33556665; + } + + + +} + +function raiseOverflow() { + raiseException({message: makeNimstrLit("over- or underflow"), parent: null, m_type: NTI33555125, name: null, trace: [], up: null}, "OverflowDefect"); + + +} + +function checkOverflowInt(a_33556938) { + if (a_33556938 > 2147483647 || a_33556938 < -2147483648) raiseOverflow(); + + + +} + +function isWhitespace_503316788(text_503316789) { + return !/[^\s]/.test(text_503316789); + + + +} + +function isWhitespace_503316791(x_503316792) { + var Temporary1; + var Temporary2; + + var result_503316793 = false; + + if (!(x_503316792.nodeName == "#text")) Temporary2 = false; else { Temporary2 = isWhitespace_503316788(x_503316792.textContent); } if (Temporary2) Temporary1 = true; else { Temporary1 = (x_503316792.nodeName == "#comment"); } result_503316793 = Temporary1; + + return result_503316793; + +} + +function raiseRangeError() { + raiseException({message: makeNimstrLit("value out of range"), parent: null, m_type: NTI33555133, name: null, trace: [], up: null}, "RangeDefect"); + + +} + +function addChars_251658415(result_251658417, result_251658417_Idx, x_251658418, start_251658419, n_251658420) { + var old_251658421 = (result_251658417[result_251658417_Idx]).length; + (result_251658417[result_251658417_Idx].length = chckRange(addInt(old_251658421, n_251658420), 0, 2147483647)); + Label1: do { + var iHEX60gensym4_251658435 = 0; + var i_503317133 = 0; + Label2: do { + Label3: while (true) { + if (!(i_503317133 < n_251658420)) break Label3; + iHEX60gensym4_251658435 = i_503317133; + result_251658417[result_251658417_Idx][chckIndx(addInt(old_251658421, iHEX60gensym4_251658435), 0, (result_251658417[result_251658417_Idx]).length - 1)] = x_251658418.charCodeAt(chckIndx(addInt(start_251658419, iHEX60gensym4_251658435), 0, (x_251658418).length - 1)); + i_503317133 = addInt(i_503317133, 1); + } + } while (false); + } while (false); + + +} + +function addChars_251658411(result_251658413, result_251658413_Idx, x_251658414) { + addChars_251658415(result_251658413, result_251658413_Idx, x_251658414, 0, ((x_251658414) == null ? 0 : (x_251658414).length)); + + +} + +function addInt_251658436(result_251658437, result_251658437_Idx, x_251658438) { + addChars_251658411(result_251658437, result_251658437_Idx, ((x_251658438) + "")); + + +} + +function addInt_251658457(result_251658458, result_251658458_Idx, x_251658459) { + addInt_251658436(result_251658458, result_251658458_Idx, x_251658459); + + +} + +function HEX24_352321539(x_352321540) { + var result_352321541 = [[]]; + + addInt_251658457(result_352321541, 0, x_352321540); + + return result_352321541[0]; + +} + +function isFatPointer_33557131(ti_33557132) { + var result_33557133 = false; + + BeforeRet: do { + result_33557133 = !((ConstSet1[ti_33557132.base.kind] != undefined)); + break BeforeRet; + } while (false); + + return result_33557133; + +} + +function nimCopyAux(dest_33557144, src_33557145, n_33557146) { + switch (n_33557146.kind) { + case 0: + break; + case 1: + dest_33557144[n_33557146.offset] = nimCopy(dest_33557144[n_33557146.offset], src_33557145[n_33557146.offset], n_33557146.typ); + + break; + case 2: + for (var i = 0; i < n_33557146.sons.length; i++) { + nimCopyAux(dest_33557144, src_33557145, n_33557146.sons[i]); + } + + break; + case 3: + dest_33557144[n_33557146.offset] = nimCopy(dest_33557144[n_33557146.offset], src_33557145[n_33557146.offset], n_33557146.typ); + for (var i = 0; i < n_33557146.sons.length; ++i) { + nimCopyAux(dest_33557144, src_33557145, n_33557146.sons[i][1]); + } + + break; + } + + +} + +function raiseIndexError(i_33556754, a_33556755, b_33556756) { + var Temporary1; + + if ((b_33556756 < a_33556755)) { + Temporary1 = makeNimstrLit("index out of bounds, the container is empty"); + } + else { + Temporary1 = (makeNimstrLit("index ") || []).concat(HEX24_352321539(i_33556754) || [],makeNimstrLit(" not in ") || [],HEX24_352321539(a_33556755) || [],makeNimstrLit(" .. ") || [],HEX24_352321539(b_33556756) || []); + } + + raiseException({message: nimCopy(null, Temporary1, NTI33554439), parent: null, m_type: NTI33555131, name: null, trace: [], up: null}, "IndexDefect"); + + +} + +function toToc_503316794(x_503316795, father_503316796) { + var Temporary5; + var Temporary6; + var Temporary7; + var Temporary8; + var Temporary15; + + if ((x_503316795.nodeName == "UL")) { + var f_503316804 = {heading: null, kids: [], sortId: (father_503316796.kids).length, doSort: false}; + var i_503316805 = 0; + Label1: do { + Label2: while (true) { + if (!(i_503316805 < x_503316795.childNodes.length)) break Label2; + var nxt_503316806 = addInt(i_503316805, 1); + Label3: do { + Label4: while (true) { + if (!(nxt_503316806 < x_503316795.childNodes.length)) Temporary5 = false; else { Temporary5 = isWhitespace_503316791(x_503316795.childNodes[nxt_503316806]); } if (!Temporary5) break Label4; + nxt_503316806 = addInt(nxt_503316806, 1); + } + } while (false); + if (!(nxt_503316806 < x_503316795.childNodes.length)) Temporary8 = false; else { Temporary8 = (x_503316795.childNodes[i_503316805].nodeName == "LI"); } if (!Temporary8) Temporary7 = false; else { Temporary7 = (x_503316795.childNodes[i_503316805].childNodes.length == 1); } if (!Temporary7) Temporary6 = false; else { Temporary6 = (x_503316795.childNodes[nxt_503316806].nodeName == "UL"); } if (Temporary6) { + var e_503316818 = {heading: x_503316795.childNodes[i_503316805].childNodes[0], kids: [], sortId: (f_503316804.kids).length, doSort: false}; + var it_503316819 = x_503316795.childNodes[nxt_503316806]; + Label9: do { + var j_503316824 = 0; + var colontmp__503317112 = 0; + colontmp__503317112 = it_503316819.childNodes.length; + var i_503317113 = 0; + Label10: do { + Label11: while (true) { + if (!(i_503317113 < colontmp__503317112)) break Label11; + j_503316824 = i_503317113; + toToc_503316794(it_503316819.childNodes[j_503316824], e_503316818); + i_503317113 = addInt(i_503317113, 1); + } + } while (false); + } while (false); + f_503316804.kids.push(e_503316818);; + i_503316805 = addInt(nxt_503316806, 1); + } + else { + toToc_503316794(x_503316795.childNodes[i_503316805], f_503316804); + i_503316805 = addInt(i_503316805, 1); + } + + } + } while (false); + father_503316796.kids.push(f_503316804);; + } + else { + if (isWhitespace_503316791(x_503316795)) { + } + else { + if ((x_503316795.nodeName == "LI")) { + var idx_503316841 = []; + Label12: do { + var i_503316846 = 0; + var colontmp__503317116 = 0; + colontmp__503317116 = x_503316795.childNodes.length; + var i_503317117 = 0; + Label13: do { + Label14: while (true) { + if (!(i_503317117 < colontmp__503317116)) break Label14; + i_503316846 = i_503317117; + if (!(isWhitespace_503316791(x_503316795.childNodes[i_503316846]))) { + idx_503316841.push(i_503316846);; + } + + i_503317117 = addInt(i_503317117, 1); + } + } while (false); + } while (false); + if (!((idx_503316841).length == 2)) Temporary15 = false; else { Temporary15 = (x_503316795.childNodes[idx_503316841[chckIndx(1, 0, (idx_503316841).length - 1)]].nodeName == "UL"); } if (Temporary15) { + var e_503316862 = {heading: x_503316795.childNodes[idx_503316841[chckIndx(0, 0, (idx_503316841).length - 1)]], kids: [], sortId: (father_503316796.kids).length, doSort: false}; + var it_503316863 = x_503316795.childNodes[idx_503316841[chckIndx(1, 0, (idx_503316841).length - 1)]]; + Label16: do { + var j_503316868 = 0; + var colontmp__503317120 = 0; + colontmp__503317120 = it_503316863.childNodes.length; + var i_503317121 = 0; + Label17: do { + Label18: while (true) { + if (!(i_503317121 < colontmp__503317120)) break Label18; + j_503316868 = i_503317121; + toToc_503316794(it_503316863.childNodes[j_503316868], e_503316862); + i_503317121 = addInt(i_503317121, 1); + } + } while (false); + } while (false); + father_503316796.kids.push(e_503316862);; + } + else { + Label19: do { + var i_503316877 = 0; + var colontmp__503317124 = 0; + colontmp__503317124 = x_503316795.childNodes.length; + var i_503317125 = 0; + Label20: do { + Label21: while (true) { + if (!(i_503317125 < colontmp__503317124)) break Label21; + i_503316877 = i_503317125; + toToc_503316794(x_503316795.childNodes[i_503316877], father_503316796); + i_503317125 = addInt(i_503317125, 1); + } + } while (false); + } while (false); + } + + } + else { + father_503316796.kids.push({heading: x_503316795, kids: [], sortId: (father_503316796.kids).length, doSort: false});; + } + }} + + +} + +function extractItems_503316614(x_503316615, heading_503316616, items_503316617, items_503316617_Idx) { + var Temporary1; + + BeforeRet: do { + if ((x_503316615 == null)) { + break BeforeRet; + } + + if (!!((x_503316615.heading == null))) Temporary1 = false; else { Temporary1 = (x_503316615.heading.textContent == heading_503316616); } if (Temporary1) { + Label2: do { + var i_503316634 = 0; + var colontmp__503317136 = 0; + colontmp__503317136 = (x_503316615.kids).length; + var i_503317137 = 0; + Label3: do { + Label4: while (true) { + if (!(i_503317137 < colontmp__503317136)) break Label4; + i_503316634 = i_503317137; + items_503316617[items_503316617_Idx].push(x_503316615.kids[chckIndx(i_503316634, 0, (x_503316615.kids).length - 1)].heading);; + i_503317137 = addInt(i_503317137, 1); + } + } while (false); + } while (false); + } + else { + Label5: do { + var i_503316646 = 0; + var colontmp__503317140 = 0; + colontmp__503317140 = (x_503316615.kids).length; + var i_503317141 = 0; + Label6: do { + Label7: while (true) { + if (!(i_503317141 < colontmp__503317140)) break Label7; + i_503316646 = i_503317141; + var it_503316647 = x_503316615.kids[chckIndx(i_503316646, 0, (x_503316615.kids).length - 1)]; + extractItems_503316614(it_503316647, heading_503316616, items_503316617, items_503316617_Idx); + i_503317141 = addInt(i_503317141, 1); + } + } while (false); + } while (false); + } + + } while (false); + + +} + +function tree_503316487(tag_503316488, kids_503316489) { + var result_503316490 = null; + + result_503316490 = document.createElement(toJSStr(tag_503316488)); + Label1: do { + var k_503316503 = null; + var i_503317154 = 0; + Label2: do { + Label3: while (true) { + if (!(i_503317154 < (kids_503316489).length)) break Label3; + k_503316503 = kids_503316489[chckIndx(i_503317154, 0, (kids_503316489).length - 1)]; + result_503316490.appendChild(k_503316503); + i_503317154 = addInt(i_503317154, 1); + } + } while (false); + } while (false); + + return result_503316490; + +} + +function text_503316541(s_503316542) { + var result_503316543 = null; + + result_503316543 = document.createTextNode(s_503316542); + + return result_503316543; + +} + +function sysFatal_218103842(message_218103845) { + raiseException({message: nimCopy(null, message_218103845, NTI33554439), m_type: NTI33555127, parent: null, name: null, trace: [], up: null}, "AssertionDefect"); + + +} + +function raiseAssert_218103840(msg_218103841) { + sysFatal_218103842(msg_218103841); + + +} + +function failedAssertImpl_218103864(msg_218103865) { + raiseAssert_218103840(msg_218103865); + + +} + +function uncovered_503316943(x_503316944) { + var Temporary1; + var Temporary2; + + var result_503316945 = null; + + BeforeRet: do { + if (!((x_503316944.kids).length == 0)) Temporary1 = false; else { Temporary1 = !((x_503316944.heading == null)); } if (Temporary1) { + if (!(x_503316944.heading.hasOwnProperty('__karaxMarker__'))) { + Temporary2 = x_503316944; + } + else { + Temporary2 = null; + } + + result_503316945 = Temporary2; + break BeforeRet; + } + + result_503316945 = {heading: x_503316944.heading, kids: [], sortId: x_503316944.sortId, doSort: x_503316944.doSort}; + Label3: do { + var i_503316964 = 0; + var colontmp__503317161 = 0; + colontmp__503317161 = (x_503316944.kids).length; + var i_503317162 = 0; + Label4: do { + Label5: while (true) { + if (!(i_503317162 < colontmp__503317161)) break Label5; + i_503316964 = i_503317162; + var y_503316965 = uncovered_503316943(x_503316944.kids[chckIndx(i_503316964, 0, (x_503316944.kids).length - 1)]); + if (!((y_503316965 == null))) { + result_503316945.kids.push(y_503316965);; + } + + i_503317162 = addInt(i_503317162, 1); + } + } while (false); + } while (false); + if (((result_503316945.kids).length == 0)) { + result_503316945 = null; + } + + } while (false); + + return result_503316945; + +} + +function mergeTocs_503316977(orig_503316978, news_503316979) { + var result_503316980 = null; + + result_503316980 = uncovered_503316943(orig_503316978); + if ((result_503316980 == null)) { + result_503316980 = news_503316979; + } + else { + Label1: do { + var i_503316992 = 0; + var colontmp__503317157 = 0; + colontmp__503317157 = (news_503316979.kids).length; + var i_503317158 = 0; + Label2: do { + Label3: while (true) { + if (!(i_503317158 < colontmp__503317157)) break Label3; + i_503316992 = i_503317158; + result_503316980.kids.push(news_503316979.kids[chckIndx(i_503316992, 0, (news_503316979.kids).length - 1)]);; + i_503317158 = addInt(i_503317158, 1); + } + } while (false); + } while (false); + } + + + return result_503316980; + +} + +function buildToc_503316997(orig_503316998, types_503316999, procs_503317000) { + var Temporary7; + + var result_503317001 = null; + + var newStuff_503317006 = {heading: null, kids: [], doSort: true, sortId: 0}; + Label1: do { + var t_503317028 = null; + var i_503317149 = 0; + var L_503317150 = (types_503316999).length; + Label2: do { + Label3: while (true) { + if (!(i_503317149 < L_503317150)) break Label3; + t_503317028 = types_503316999[chckIndx(i_503317149, 0, (types_503316999).length - 1)]; + var c_503317033 = {heading: t_503317028.cloneNode(true), kids: [], doSort: true, sortId: 0}; + t_503317028.__karaxMarker__ = true; + Label4: do { + var p_503317037 = null; + var i_503317146 = 0; + var L_503317147 = (procs_503317000).length; + Label5: do { + Label6: while (true) { + if (!(i_503317146 < L_503317147)) break Label6; + p_503317037 = procs_503317000[chckIndx(i_503317146, 0, (procs_503317000).length - 1)]; + if (!(p_503317037.hasOwnProperty('__karaxMarker__'))) { + var xx_503317038 = p_503317037.parentNode.getElementsByClassName("attachedType"); + if (!((xx_503317038).length == 1)) Temporary7 = false; else { Temporary7 = (xx_503317038[chckIndx(0, 0, (xx_503317038).length - 1)].textContent == t_503317028.textContent); } if (Temporary7) { + var q_503317043 = tree_503316487(makeNimstrLit("A"), [text_503316541(p_503317037.title)]); + q_503317043.setAttribute("href", p_503317037.getAttribute("href")); + c_503317033.kids.push({heading: q_503317043, kids: [], sortId: 0, doSort: false});; + p_503317037.__karaxMarker__ = true; + } + + } + + i_503317146 = addInt(i_503317146, 1); + if (!(((procs_503317000).length == L_503317147))) { + failedAssertImpl_218103864(makeNimstrLit("iterators.nim(240, 11) `len(a) == L` the length of the seq changed while iterating over it")); + } + + } + } while (false); + } while (false); + newStuff_503317006.kids.push(c_503317033);; + i_503317149 = addInt(i_503317149, 1); + if (!(((types_503316999).length == L_503317150))) { + failedAssertImpl_218103864(makeNimstrLit("iterators.nim(240, 11) `len(a) == L` the length of the seq changed while iterating over it")); + } + + } + } while (false); + } while (false); + result_503317001 = mergeTocs_503316977(orig_503316998, newStuff_503317006); + + return result_503317001; + +} + +function add_503316531(parent_503316532, kid_503316533) { + var Temporary1; + var Temporary2; + + if (!(parent_503316532.nodeName == "TR")) Temporary1 = false; else { if ((kid_503316533.nodeName == "TD")) Temporary2 = true; else { Temporary2 = (kid_503316533.nodeName == "TH"); } Temporary1 = Temporary2; } if (Temporary1) { + var k_503316534 = document.createElement("TD"); + k_503316534.appendChild(kid_503316533); + parent_503316532.appendChild(k_503316534); + } + else { + parent_503316532.appendChild(kid_503316533); + } + + + +} + +function setClass_503316535(e_503316536, value_503316537) { + e_503316536.setAttribute("class", toJSStr(value_503316537)); + + +} + +function toHtml_503316657(x_503316658, isRoot_503316659) { + var Temporary1; + +function HEX3Aanonymous_503316677(a_503316678, b_503316679) { + var Temporary1; + + var result_503316680 = 0; + + BeforeRet: do { + if (!!((a_503316678.heading == null))) Temporary1 = false; else { Temporary1 = !((b_503316679.heading == null)); } if (Temporary1) { + var x_503316689 = a_503316678.heading.textContent; + var y_503316690 = b_503316679.heading.textContent; + if ((x_503316689 < y_503316690)) { + result_503316680 = -1; + break BeforeRet; + } + + if ((y_503316690 < x_503316689)) { + result_503316680 = 1; + break BeforeRet; + } + + result_503316680 = 0; + break BeforeRet; + } + else { + result_503316680 = subInt(a_503316678.sortId, b_503316679.sortId); + break BeforeRet; + } + + } while (false); + + return result_503316680; + + } + + var result_503316660 = null; + + BeforeRet: do { + if ((x_503316658 == null)) { + result_503316660 = null; + break BeforeRet; + } + + if (((x_503316658.kids).length == 0)) { + if ((x_503316658.heading == null)) { + result_503316660 = null; + break BeforeRet; + } + + result_503316660 = x_503316658.heading.cloneNode(true); + break BeforeRet; + } + + result_503316660 = tree_503316487(makeNimstrLit("DIV"), []); + if (!!((x_503316658.heading == null))) Temporary1 = false; else { Temporary1 = !(x_503316658.heading.hasOwnProperty('__karaxMarker__')); } if (Temporary1) { + add_503316531(result_503316660, x_503316658.heading.cloneNode(true)); + } + + var ul_503316676 = tree_503316487(makeNimstrLit("UL"), []); + if (isRoot_503316659) { + setClass_503316535(ul_503316676, makeNimstrLit("simple simple-toc")); + } + else { + setClass_503316535(ul_503316676, makeNimstrLit("simple")); + } + + if (x_503316658.doSort) { + x_503316658.kids.sort(HEX3Aanonymous_503316677); + } + + Label2: do { + var k_503316719 = null; + var i_503317166 = 0; + var L_503317167 = (x_503316658.kids).length; + Label3: do { + Label4: while (true) { + if (!(i_503317166 < L_503317167)) break Label4; + k_503316719 = x_503316658.kids[chckIndx(i_503317166, 0, (x_503316658.kids).length - 1)]; + var y_503316720 = toHtml_503316657(k_503316719, false); + if (!((y_503316720 == null))) { + add_503316531(ul_503316676, tree_503316487(makeNimstrLit("LI"), [y_503316720])); + } + + i_503317166 = addInt(i_503317166, 1); + if (!(((x_503316658.kids).length == L_503317167))) { + failedAssertImpl_218103864(makeNimstrLit("iterators.nim(240, 11) `len(a) == L` the length of the seq changed while iterating over it")); + } + + } + } while (false); + } while (false); + if (!((ul_503316676.childNodes.length == 0))) { + add_503316531(result_503316660, ul_503316676); + } + + if ((result_503316660.childNodes.length == 0)) { + result_503316660 = null; + } + + } while (false); + + return result_503316660; + +} + +function replaceById_503316546(id_503316547, newTree_503316548) { + var x_503316549 = document.getElementById(id_503316547); + x_503316549.parentNode.replaceChild(newTree_503316548, x_503316549); + newTree_503316548.id = id_503316547; + + +} + +function togglevis_503317075(d_503317076) { + if (d_503317076.style.display == 'none') + d_503317076.style.display = 'inline'; + else + d_503317076.style.display = 'none'; + + + +} + +function groupBy(value_503317078) { + var toc_503317079 = document.getElementById("toc-list"); + if ((alternative_503317074[0] == null)) { + var tt_503317087 = {heading: null, kids: [], sortId: 0, doSort: false}; + toToc_503316794(toc_503317079, tt_503317087); + tt_503317087 = tt_503317087.kids[chckIndx(0, 0, (tt_503317087.kids).length - 1)]; + var types_503317092 = [[]]; + var procs_503317097 = [[]]; + extractItems_503316614(tt_503317087, "Types", types_503317092, 0); + extractItems_503316614(tt_503317087, "Procs", procs_503317097, 0); + extractItems_503316614(tt_503317087, "Converters", procs_503317097, 0); + extractItems_503316614(tt_503317087, "Methods", procs_503317097, 0); + extractItems_503316614(tt_503317087, "Templates", procs_503317097, 0); + extractItems_503316614(tt_503317087, "Macros", procs_503317097, 0); + extractItems_503316614(tt_503317087, "Iterators", procs_503317097, 0); + var ntoc_503317098 = buildToc_503316997(tt_503317087, types_503317092[0], procs_503317097[0]); + var x_503317099 = toHtml_503316657(ntoc_503317098, true); + alternative_503317074[0] = tree_503316487(makeNimstrLit("DIV"), [x_503317099]); + } + + if ((value_503317078 == "type")) { + replaceById_503316546("tocRoot", alternative_503317074[0]); + } + else { + replaceById_503316546("tocRoot", tree_503316487(makeNimstrLit("DIV"), [])); + } + + togglevis_503317075(document.getElementById("toc-list")); + + +} +var db_503317169 = [[]]; +var contents_503317170 = [[]]; +var oldtoc_503317335 = [null]; +var timer_503317336 = [null]; + +function nsuToLowerAsciiChar(c_671088708) { + var result_671088709 = 0; + + if ((ConstSet2[c_671088708] != undefined)) { + result_671088709 = (c_671088708 ^ 32); + } + else { + result_671088709 = c_671088708; + } + + + return result_671088709; + +} + +function fuzzyMatch_654311440(pattern_654311441, str_654311442) { + var Temporary4; + var Temporary5; + var Temporary6; + var Temporary7; + var Temporary8; + + var result_654311445 = {Field0: 0, Field1: false}; + + var scoreState_654311446 = -100; + var headerMatched_654311447 = false; + var unmatchedLeadingCharCount_654311448 = 0; + var consecutiveMatchCount_654311449 = 0; + var strIndex_654311450 = 0; + var patIndex_654311451 = 0; + var score_654311452 = 0; + Label1: do { + Label2: while (true) { + if (!((strIndex_654311450 < ((str_654311442) == null ? 0 : (str_654311442).length)) && (patIndex_654311451 < ((pattern_654311441) == null ? 0 : (pattern_654311441).length)))) break Label2; + Label3: do { + var patternChar_654311455 = nsuToLowerAsciiChar(pattern_654311441.charCodeAt(chckIndx(patIndex_654311451, 0, (pattern_654311441).length - 1))); + var strChar_654311456 = nsuToLowerAsciiChar(str_654311442.charCodeAt(chckIndx(strIndex_654311450, 0, (str_654311442).length - 1))); + if ((ConstSet3[patternChar_654311455] != undefined)) { + patIndex_654311451 = addInt(patIndex_654311451, 1); + break Label3; + } + + if ((ConstSet4[strChar_654311456] != undefined)) { + strIndex_654311450 = addInt(strIndex_654311450, 1); + break Label3; + } + + if ((!(headerMatched_654311447) && (strChar_654311456 == 58))) { + headerMatched_654311447 = true; + scoreState_654311446 = -100; + score_654311452 = ((Math.floor((0.5 * score_654311452))) | 0); + patIndex_654311451 = 0; + strIndex_654311450 = addInt(strIndex_654311450, 1); + break Label3; + } + + if ((strChar_654311456 == patternChar_654311455)) { + switch (scoreState_654311446) { + case -100: + case 20: + scoreState_654311446 = 10; + break; + case 0: + scoreState_654311446 = 5; + score_654311452 = addInt(score_654311452, scoreState_654311446); + break; + case 10: + case 5: + consecutiveMatchCount_654311449 = addInt(consecutiveMatchCount_654311449, 1); + scoreState_654311446 = 5; + score_654311452 = addInt(score_654311452, mulInt(5, consecutiveMatchCount_654311449)); + if ((scoreState_654311446 == 10)) { + score_654311452 = addInt(score_654311452, 10); + } + + var onBoundary_654311508 = (patIndex_654311451 == ((pattern_654311441) == null ? -1 : (pattern_654311441).length - 1)); + if ((!(onBoundary_654311508) && (strIndex_654311450 < ((str_654311442) == null ? -1 : (str_654311442).length - 1)))) { + var nextPatternChar_654311509 = nsuToLowerAsciiChar(pattern_654311441.charCodeAt(chckIndx(addInt(patIndex_654311451, 1), 0, (pattern_654311441).length - 1))); + var nextStrChar_654311510 = nsuToLowerAsciiChar(str_654311442.charCodeAt(chckIndx(addInt(strIndex_654311450, 1), 0, (str_654311442).length - 1))); + if (!!((ConstSet5[nextStrChar_654311510] != undefined))) Temporary4 = false; else { Temporary4 = !((nextStrChar_654311510 == nextPatternChar_654311509)); } onBoundary_654311508 = Temporary4; + } + + if (onBoundary_654311508) { + scoreState_654311446 = 20; + score_654311452 = addInt(score_654311452, scoreState_654311446); + } + + break; + case -1: + case -3: + if (!((ConstSet6[str_654311442.charCodeAt(chckIndx(subInt(strIndex_654311450, 1), 0, (str_654311442).length - 1))] != undefined))) Temporary5 = true; else { if (!(ConstSet7[str_654311442.charCodeAt(chckIndx(subInt(strIndex_654311450, 1), 0, (str_654311442).length - 1))] != undefined)) Temporary6 = false; else { Temporary6 = (ConstSet8[str_654311442.charCodeAt(chckIndx(strIndex_654311450, 0, (str_654311442).length - 1))] != undefined); } Temporary5 = Temporary6; } var isLeadingChar_654311534 = Temporary5; + if (isLeadingChar_654311534) { + scoreState_654311446 = 10; + } + else { + scoreState_654311446 = 0; + score_654311452 = addInt(score_654311452, scoreState_654311446); + } + + break; + } + patIndex_654311451 = addInt(patIndex_654311451, 1); + } + else { + switch (scoreState_654311446) { + case -100: + scoreState_654311446 = -3; + score_654311452 = addInt(score_654311452, scoreState_654311446); + break; + case 5: + scoreState_654311446 = -1; + score_654311452 = addInt(score_654311452, scoreState_654311446); + consecutiveMatchCount_654311449 = 0; + break; + case -3: + if ((unmatchedLeadingCharCount_654311448 < 3)) { + scoreState_654311446 = -3; + score_654311452 = addInt(score_654311452, scoreState_654311446); + } + + unmatchedLeadingCharCount_654311448 = addInt(unmatchedLeadingCharCount_654311448, 1); + break; + default: + scoreState_654311446 = -1; + score_654311452 = addInt(score_654311452, scoreState_654311446); + break; + } + } + + strIndex_654311450 = addInt(strIndex_654311450, 1); + } while (false); + } + } while (false); + if (!(patIndex_654311451 == ((pattern_654311441) == null ? 0 : (pattern_654311441).length))) Temporary7 = false; else { if ((strIndex_654311450 == ((str_654311442) == null ? 0 : (str_654311442).length))) Temporary8 = true; else { Temporary8 = !((ConstSet9[str_654311442.charCodeAt(chckIndx(strIndex_654311450, 0, (str_654311442).length - 1))] != undefined)); } Temporary7 = Temporary8; } if (Temporary7) { + score_654311452 = addInt(score_654311452, 10); + } + + var colontmp__503317396 = nimMax(0, score_654311452); + var colontmp__503317397 = (0 < score_654311452); + result_654311445 = nimCopy(result_654311445, {Field0: colontmp__503317396, Field1: colontmp__503317397}, NTI654311438); + + return result_654311445; + +} + +function escapeCString_503317173(x_503317174, x_503317174_Idx) { + var s_503317175 = []; + Label1: do { + var c_503317176 = 0; + var iHEX60gensym6_503317400 = 0; + var nHEX60gensym6_503317401 = ((x_503317174[x_503317174_Idx]) == null ? 0 : (x_503317174[x_503317174_Idx]).length); + Label2: do { + Label3: while (true) { + if (!(iHEX60gensym6_503317400 < nHEX60gensym6_503317401)) break Label3; + c_503317176 = x_503317174[x_503317174_Idx].charCodeAt(chckIndx(iHEX60gensym6_503317400, 0, (x_503317174[x_503317174_Idx]).length - 1)); + switch (c_503317176) { + case 60: + s_503317175.push.apply(s_503317175, makeNimstrLit("<"));; + break; + case 62: + s_503317175.push.apply(s_503317175, makeNimstrLit(">"));; + break; + default: + addChar(s_503317175, c_503317176);; + break; + } + iHEX60gensym6_503317400 = addInt(iHEX60gensym6_503317400, 1); + } + } while (false); + } while (false); + x_503317174[x_503317174_Idx] = toJSStr(s_503317175); + + +} + +function text_503316538(s_503316539) { + var result_503316540 = null; + + result_503316540 = document.createTextNode(toJSStr(s_503316539)); + + return result_503316540; + +} + +function dosearch_503317177(value_503317178) { + +function HEX3Aanonymous_503317234(a_503317239, b_503317240) { + var result_503317245 = 0; + + result_503317245 = subInt(b_503317240["Field1"], a_503317239["Field1"]); + + return result_503317245; + + } + + var result_503317179 = null; + + if (((db_503317169[0]).length == 0)) { + var stuff_503317183 = null; + var request = new XMLHttpRequest(); + request.open("GET", "theindex.html", false); + request.send(null); + + var doc = document.implementation.createHTMLDocument("theindex"); + doc.documentElement.innerHTML = request.responseText; + + //parser=new DOMParser(); + //doc=parser.parseFromString("", "text/html"); + + stuff_503317183 = doc.documentElement; + + db_503317169[0] = nimCopy(null, stuff_503317183.getElementsByClassName("reference"), NTI637534652); + contents_503317170[0] = nimCopy(null, [], NTI503317021); + Label1: do { + var ahref_503317208 = null; + var i_503317381 = 0; + var L_503317382 = (db_503317169[0]).length; + Label2: do { + Label3: while (true) { + if (!(i_503317381 < L_503317382)) break Label3; + ahref_503317208 = db_503317169[0][chckIndx(i_503317381, 0, (db_503317169[0]).length - 1)]; + contents_503317170[0].push(ahref_503317208.getAttribute("data-doc-search-tag"));; + i_503317381 = addInt(i_503317381, 1); + if (!(((db_503317169[0]).length == L_503317382))) { + failedAssertImpl_218103864(makeNimstrLit("iterators.nim(240, 11) `len(a) == L` the length of the seq changed while iterating over it")); + } + + } + } while (false); + } while (false); + } + + var ul_503317213 = tree_503316487(makeNimstrLit("UL"), []); + result_503317179 = tree_503316487(makeNimstrLit("DIV"), []); + setClass_503316535(result_503317179, makeNimstrLit("search_results")); + var matches_503317218 = []; + Label4: do { + var i_503317226 = 0; + var colontmp__503317386 = 0; + colontmp__503317386 = (db_503317169[0]).length; + var i_503317387 = 0; + Label5: do { + Label6: while (true) { + if (!(i_503317387 < colontmp__503317386)) break Label6; + i_503317226 = i_503317387; + Label7: do { + var c_503317227 = contents_503317170[0][chckIndx(i_503317226, 0, (contents_503317170[0]).length - 1)]; + if (((c_503317227 == "Examples") || (c_503317227 == "PEG construction"))) { + break Label7; + } + + var colontmp__503317393 = fuzzyMatch_654311440(value_503317178, c_503317227); + var score_503317228 = colontmp__503317393["Field0"]; + var matched_503317229 = colontmp__503317393["Field1"]; + if (matched_503317229) { + matches_503317218.push({Field0: db_503317169[0][chckIndx(i_503317226, 0, (db_503317169[0]).length - 1)], Field1: score_503317228});; + } + + } while (false); + i_503317387 = addInt(i_503317387, 1); + } + } while (false); + } while (false); + matches_503317218.sort(HEX3Aanonymous_503317234); + Label8: do { + var i_503317262 = 0; + var colontmp__503317390 = 0; + colontmp__503317390 = nimMin((matches_503317218).length, 29); + var i_503317391 = 0; + Label9: do { + Label10: while (true) { + if (!(i_503317391 < colontmp__503317390)) break Label10; + i_503317262 = i_503317391; + matches_503317218[chckIndx(i_503317262, 0, (matches_503317218).length - 1)]["Field0"].innerHTML = matches_503317218[chckIndx(i_503317262, 0, (matches_503317218).length - 1)]["Field0"].getAttribute("data-doc-search-tag"); + escapeCString_503317173(matches_503317218[chckIndx(i_503317262, 0, (matches_503317218).length - 1)]["Field0"], "innerHTML"); + add_503316531(ul_503317213, tree_503316487(makeNimstrLit("LI"), [matches_503317218[chckIndx(i_503317262, 0, (matches_503317218).length - 1)]["Field0"]])); + i_503317391 = addInt(i_503317391, 1); + } + } while (false); + } while (false); + if ((ul_503317213.childNodes.length == 0)) { + add_503316531(result_503317179, tree_503316487(makeNimstrLit("B"), [text_503316538(makeNimstrLit("no search results"))])); + } + else { + add_503316531(result_503317179, tree_503316487(makeNimstrLit("B"), [text_503316538(makeNimstrLit("search results"))])); + add_503316531(result_503317179, ul_503317213); + } + + + return result_503317179; + +} + +function search() { + +function wrapper_503317347() { + var elem_503317348 = document.getElementById("searchInput"); + var value_503317349 = elem_503317348.value; + if (!((((value_503317349) == null ? 0 : (value_503317349).length) == 0))) { + if ((oldtoc_503317335[0] == null)) { + oldtoc_503317335[0] = document.getElementById("tocRoot"); + } + + var results_503317353 = dosearch_503317177(value_503317349); + replaceById_503316546("tocRoot", results_503317353); + } + else { + if (!((oldtoc_503317335[0] == null))) { + replaceById_503316546("tocRoot", oldtoc_503317335[0]); + } + } + + + } + + if (!((timer_503317336[0] == null))) { + clearTimeout(timer_503317336[0]); + } + + timer_503317336[0] = setTimeout(wrapper_503317347, 400); + + +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..d8cb6c8 --- /dev/null +++ b/index.html @@ -0,0 +1,1662 @@ + + + + + + + + + + + + + + + + + + +Index + + + + + + + + +
+
+

Index

+ Modules: nimph, nimph/asjson, nimph/config, nimph/dependency, nimph/doctor, nimph/group, nimph/locker, nimph/nimble, nimph/package, nimph/project, nimph/requirement, nimph/runner, nimph/spec, nimph/thehub, nimph/version, nimph/versiontags, rest.

API symbols

+
`$`:
+
`<=`:
+
`<`:
+
`//////`:
+
`///`:
+
`==`:
+
`[]=`:
+
`[]`:
+
acceptable:
+
add:
+
addedRequirements:
+
addLockerRoom:
+
addMissingSearchPathsTo:
+
addMissingUpstreams:
+
addName:
+
addSearchPath:
+
adopt:
+
ageInDays:
+
aimAt:
+
allImportTargets:
+
allLockerRooms:
+
appendConfig:
+
asFoundVia:
+
asPackage:
+
asUrlAnchor:
+
at:
+
AtLeast:
+
authorize:
+
availableProjects:
+
bare:
+
bareUrlsAreEqual:
+
bestRelease:
+
betterReleaseExists:
+
CallRequestError:
+
Caret:
+
childProjects:
+
children:
+
clear:
+
clone:
+
cloner:
+
configFile:
+
contains:
+
convertToGit:
+
convertToSsh:
+
countNimblePaths:
+
createUrl:
+
cuteRelease:
+
defaultFlags:
+
defaultRemote:
+
del:
+
delName:
+
demandHead:
+
DepDir:
+
Dependency:
+
DependencyGroup:
+
describe:
+
destylize:
+
determineDeps:
+
DistMethod:
+
doctor:
+
dotGit:
+
dotHg:
+
dotNimble:
+
dotNimbleLink:
+
Downgrade:
+
DrError:
+
DrOkay:
+
DrRetry:
+
DrState:
+
DumpResult:
+
effectively:
+
emptyRelease:
+
Equal:
+
excludeMissingLazyPaths:
+
excludeMissingSearchPaths:
+
excludeSearchPath:
+
extantSearchPaths:
+
fetchConfig:
+
fetchDump:
+
fetchNimbleDump:
+
fetchNimbleMeta:
+
fetchTagTable:
+
findCurrentTag:
+
findGithubToken:
+
findProject:
+
findRepositoryUrl:
+
fixDependencies:
+
fixer:
+
fixTags:
+
Flag:
+
forker:
+
forkHub:
+
forkTarget:
+
ForkTargetResult:
+
get:
+
getAllLockerRooms:
+
getGitHubUser:
+
getHeadOid:
+
getLockerRoom:
+
getOfficialPackages:
+
getProjectIn:
+
ghTokenEnv:
+
ghTokenFn:
+
Git:
+
gitDir:
+
grapher:
+
Group:
+
guessVersion:
+
hasGit:
+
hash:
+
hasHg:
+
hasKey:
+
hasLocalDeps:
+
hasNimph:
+
hasProjectIn:
+
hasReleaseTag:
+
hasUrl:
+
hgDir:
+
HubCode:
+
HubCommit:
+
HubCommitMeta:
+
HubContact:
+
HubGroup:
+
HubIssue:
+
HubKind:
+
HubPull:
+
HubRelease:
+
HubRepo:
+
HubResult:
+
HubSort:
+
HubSortBy:
+
HubTag:
+
hubTime:
+
hubTokenFn:
+
HubTree:
+
HubUser:
+
HubVerification:
+
importName:
+
init:
+
initRestClient:
+
inventRelease:
+
isEmpty:
+
isHappy:
+
isHappyWithVersion:
+
isLink:
+
isSatisfiedBy:
+
isSpecific:
+
isStdlib:
+
isStdLib:
+
issueRequest:
+
isUrl:
+
isUsing:
+
isValid:
+
isVirtual:
+
items:
+
keys:
+
knowVersion:
+
len:
+
likelyLazy:
+
likelySearch:
+
likelyTags:
+
LinkedSearchResult:
+
loadAllCfgs:
+
Local:
+
localDeps:
+
lock:
+
Locker:
+
LockerRoom:
+
lockfiler:
+
massageHeaders:
+
matches:
+
matching:
+
matchingBranches:
+
Merc:
+
mget:
+
mgetProjectIn:
+
missingSearchPaths:
+
mpairs:
+
mvalues:
+
name:
+
Nest:
+
newDependency:
+
newDependencyGroup:
+
newHubCommitMeta:
+
newHubContact:
+
newHubGroup:
+
newHubResult:
+
newHubTree:
+
newLockerRoom:
+
newNimphConfig:
+
newPackage:
+
newPackageGroup:
+
newProject:
+
newProjectGroup:
+
newRecallable:
+
newRelease:
+
newRequirement:
+
newRestClient:
+
newVersionTags:
+
nextTagFor:
+
nimbleDir:
+
NimbleMeta:
+
nimbleMeta:
+
nimbler:
+
nimCfg:
+
NimCfg:
+
NimphConfig:
+
nimphConfig:
+
normalizeUrl:
+
NotMore:
+
numberOfNimblePaths:
+
officialPackages:
+
omitStars:
+
Operator:
+
orphans:
+
Over:
+
Package:
+
packageDirectory:
+
PackageGroup:
+
packageName:
+
packagePaths:
+
PackagesResult:
+
pairs:
+
parseConfigFile:
+
parseDottedVersion:
+
parseNimbleDump:
+
parseProjectCfg:
+
parseRequires:
+
parseVersionLoosely:
+
pather:
+
pathForName:
+
pathToImport:
+
peelRelease:
+
PkgDir:
+
prepareForClone:
+
Project:
+
ProjectCfgParsed:
+
projectForName:
+
projectForPath:
+
ProjectGroup:
+
promote:
+
promoteRemoteLike:
+
Recallable:
+
refresh:
+
Release:
+
releaseHashes:
+
Releases:
+
releaseSummary:
+
relocateDependency:
+
removeSearchPath:
+
renderShortly:
+
repo:
+
repoLockReady:
+
reqForProject:
+
Requirement:
+
requirementChangingCommits:
+
Requirements:
+
RequirementsTags:
+
Requires:
+
reset:
+
resolve:
+
resolveUsing:
+
RestCall:
+
RestClient:
+
RestError:
+
RetriesExhausted:
+
returnToHeadAfter:
+
reversed:
+
richen:
+
roll:
+
roller:
+
RollGoal:
+
rollTowards:
+
runner:
+
RunOutput:
+
runSomething:
+
searcher:
+
searchHub:
+
semanticVersionStrings:
+
setHeadToRelease:
+
shortDate:
+
sortByVersion:
+
Specific:
+
specifically:
+
stalePackages:
+
StateKind:
+
stripPkgs:
+
suggestNimbleDir:
+
symbolicMatch:
+
symbolicMatches:
+
Tag:
+
tagger:
+
Tilde:
+
toDistMethod:
+
toJson:
+
toLocker:
+
toLockerRoom:
+
toMask:
+
toOperator:
+
toRelease:
+
toRequirement:
+
toUri:
+
toUrl:
+
toVersion:
+
toVersionMask:
+
Under:
+
unlock:
+
unlockfiler:
+
updowner:
+
Upgrade:
+
upstreamRemote:
+
url:
+
urls:
+
values:
+
versionChangingCommits:
+
VersionField:
+
VersionIndex:
+
VersionMask:
+
VersionMaskField:
+
VersionTags:
+
WhatHappensInVegas:
+
Wild:
+
Wildlings:
+
withinDirectory:
+
writeNimbleDirPaths:
+
writeNimbleMeta:
+
+
+ +
+
+
+ + + diff --git a/nimdoc.out.css b/nimdoc.out.css new file mode 100644 index 0000000..4abea9c --- /dev/null +++ b/nimdoc.out.css @@ -0,0 +1,1016 @@ +/* +Stylesheet for use with Docutils/rst2html. + +See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to +customize this style sheet. + +Modified from Chad Skeeters' rst2html-style +https://bitbucket.org/cskeeters/rst2html-style/ + +Modified by Boyd Greenfield and narimiran +*/ + +:root { + --primary-background: #fff; + --secondary-background: ghostwhite; + --third-background: #e8e8e8; + --info-background: #50c050; + --warning-background: #c0a000; + --error-background: #e04040; + --border: #dde; + --text: #222; + --anchor: #07b; + --anchor-focus: #607c9f; + --input-focus: #1fa0eb; + --strong: #3c3c3c; + --hint: #9A9A9A; + --nim-sprite-base64: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAN4AAAA9CAYAAADCt9ebAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFFmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTEyLTAzVDAxOjAzOjQ4KzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0xMi0wM1QwMjoyODo0MSswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0xMi0wM1QwMjoyODo0MSswMTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozMzM0ZjAxYS0yMDExLWE1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"); + + --keyword: #5e8f60; + --identifier: #222; + --comment: #484a86; + --operator: #155da4; + --punctuation: black; + --other: black; + --escapeSequence: #c4891b; + --number: #252dbe; + --literal: #a4255b; + --program: #6060c0; + --option: #508000; + --raw-data: #a4255b; +} + +[data-theme="dark"] { + --primary-background: #171921; + --secondary-background: #1e202a; + --third-background: #2b2e3b; + --info-background: #008000; + --warning-background: #807000; + --error-background: #c03000; + --border: #0e1014; + --text: #fff; + --anchor: #8be9fd; + --anchor-focus: #8be9fd; + --input-focus: #8be9fd; + --strong: #bd93f9; + --hint: #7A7C85; + --nim-sprite-base64: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARMAAABMCAYAAABOBlMuAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFFmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTEyLTAzVDAxOjE4OjIyKzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0xMi0wM1QwMToyMDoxMCswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0xMi0wM1QwMToyMDoxMCswMTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDplZGViMzU3MC1iNmZjLWQy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"); + + --keyword: #ff79c6; + --identifier: #f8f8f2; + --comment: #6272a4; + --operator: #ff79c6; + --punctuation: #f8f8f2; + --other: #f8f8f2; + --escapeSequence: #bd93f9; + --number: #bd93f9; + --literal: #f1fa8c; + --program: #9090c0; + --option: #90b010; + --raw-data: #8be9fd; +} + +.theme-switch-wrapper { + display: flex; + align-items: center; +} + +.theme-switch-wrapper em { + margin-left: 10px; + font-size: 1rem; +} + +.theme-switch { + display: inline-block; + height: 22px; + position: relative; + width: 50px; +} + +.theme-switch input { + display: none; +} + +.slider { + background-color: #ccc; + bottom: 0; + cursor: pointer; + left: 0; + position: absolute; + right: 0; + top: 0; + transition: .4s; +} + +.slider:before { + background-color: #fff; + bottom: 4px; + content: ""; + height: 13px; + left: 4px; + position: absolute; + transition: .4s; + width: 13px; +} + +input:checked + .slider { + background-color: #66bb6a; +} + +input:checked + .slider:before { + transform: translateX(26px); +} + +.slider.round { + border-radius: 17px; +} + +.slider.round:before { + border-radius: 50%; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; } + +body { + font-family: "Lato", "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, sans-serif; + font-weight: 400; + font-size: 1.125em; + line-height: 1.5; + color: var(--text); + background-color: var(--primary-background); } + +/* Skeleton grid */ +.container { + position: relative; + width: 100%; + max-width: 1050px; + margin: 0 auto; + padding: 0; + box-sizing: border-box; } + +.column, +.columns { + width: 100%; + float: left; + box-sizing: border-box; + margin-left: 1%; +} + +.column:first-child, +.columns:first-child { + margin-left: 0; } + +.three.columns { + width: 22%; +} + +.nine.columns { + width: 77.0%; } + +.twelve.columns { + width: 100%; + margin-left: 0; } + +@media screen and (max-width: 860px) { + .three.columns { + display: none; + } + .nine.columns { + width: 98.0%; + } + body { + font-size: 1em; + line-height: 1.35; + } +} + +cite { + font-style: italic !important; } + + +/* Nim search input */ +div#searchInputDiv { + margin-bottom: 1em; +} +input#searchInput { + width: 80%; +} + +/* + * Some custom formatting for input forms. + * This also fixes input form colors on Firefox with a dark system theme on Linux. + */ +input { + -moz-appearance: none; + background-color: var(--secondary-background); + color: var(--text); + border: 1px solid var(--border); + font-family: "Lato", "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, sans-serif; + font-size: 0.9em; + padding: 6px; +} + +input:focus { + border: 1px solid var(--input-focus); + box-shadow: 0 0 3px var(--input-focus); +} + +select { + -moz-appearance: none; + background-color: var(--secondary-background); + color: var(--text); + border: 1px solid var(--border); + font-family: "Lato", "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, sans-serif; + font-size: 0.9em; + padding: 6px; +} + +select:focus { + border: 1px solid var(--input-focus); + box-shadow: 0 0 3px var(--input-focus); +} + +/* Docgen styles */ + +:target { + border: 2px solid #B5651D; + border-style: dotted; +} + +/* Links */ +a { + color: var(--anchor); + text-decoration: none; +} + +a span.Identifier { + text-decoration: underline; + text-decoration-color: #aab; +} + +a.reference-toplevel { + font-weight: bold; +} + +a.toc-backref { + text-decoration: none; + color: var(--text); } + +a.link-seesrc { + color: #607c9f; + font-size: 0.9em; + font-style: italic; } + +a:hover, +a:focus { + color: var(--anchor-focus); + text-decoration: underline; } + +a:hover span.Identifier { + color: var(--anchor); +} + + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; } + +sup { + top: -0.5em; } + +sub { + bottom: -0.25em; } + +img { + width: auto; + height: auto; + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; } + +@media print { + * { + color: black !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; } + + a, + a:visited { + text-decoration: underline; } + + a[href]:after { + content: " (" attr(href) ")"; } + + abbr[title]:after { + content: " (" attr(title) ")"; } + + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; } + + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; } + + thead { + display: table-header-group; } + + tr, + img { + page-break-inside: avoid; } + + img { + max-width: 100% !important; } + + @page { + margin: 0.5cm; } + + h1 { + page-break-before: always; } + + h1.title { + page-break-before: avoid; } + + p, + h2, + h3 { + orphans: 3; + widows: 3; } + + h2, + h3 { + page-break-after: avoid; } +} + + +p { + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +small { + font-size: 85%; } + +strong { + font-weight: 600; + font-size: 0.95em; + color: var(--strong); +} + +em { + font-style: italic; } + +h1 { + font-size: 1.8em; + font-weight: 400; + padding-bottom: .25em; + border-bottom: 6px solid var(--third-background); + margin-top: 2.5em; + margin-bottom: 1em; + line-height: 1.2em; } + +h1.title { + padding-bottom: 1em; + border-bottom: 0px; + font-size: 2.5em; + text-align: center; + font-weight: 900; + margin-top: 0.75em; + margin-bottom: 0em; +} + +h2 { + font-size: 1.3em; + margin-top: 2em; } + +h2.subtitle { + margin-top: 0em; + text-align: center; } + +h3 { + font-size: 1.125em; + font-style: italic; + margin-top: 1.5em; } + +h4 { + font-size: 1.125em; + margin-top: 1em; } + +h5 { + font-size: 1.125em; + margin-top: 0.75em; } + +h6 { + font-size: 1.1em; } + + +ul, +ol { + padding: 0; + margin-top: 0.5em; + margin-left: 0.75em; } + +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; + margin-left: 1.25em; } + +ul.simple > li { + list-style-type: circle; +} + +ul.simple-boot li { + list-style-type: none; + margin-left: 0em; + margin-bottom: 0.5em; +} + +ol.simple > li, ul.simple > li { + margin-bottom: 0.2em; + margin-left: 0.4em } + +ul.simple.simple-toc > li { + margin-top: 1em; +} + +ul.simple-toc { + list-style: none; + font-size: 0.9em; + margin-left: -0.3em; + margin-top: 1em; } + +ul.simple-toc > li { + list-style-type: none; +} + +ul.simple-toc-section { + list-style-type: circle; + margin-left: 0.8em; + color: #6c9aae; } + +ul.nested-toc-section { + list-style-type: circle; + margin-left: -0.75em; + color: var(--text); +} + +ul.nested-toc-section > li { + margin-left: 1.25em; +} + + +ol.arabic { + list-style: decimal; } + +ol.loweralpha { + list-style: lower-alpha; } + +ol.upperalpha { + list-style: upper-alpha; } + +ol.lowerroman { + list-style: lower-roman; } + +ol.upperroman { + list-style: upper-roman; } + +ul.auto-toc { + list-style-type: none; } + + +dl { + margin-bottom: 1.5em; } + +dt { + margin-bottom: -0.5em; + margin-left: 0.0em; } + +dd { + margin-left: 2.0em; + margin-bottom: 3.0em; + margin-top: 0.5em; } + + +hr { + margin: 2em 0; + border: 0; + border-top: 1px solid #aaa; } + +hr.footnote { + width: 25%; + border-top: 0.15em solid #999; + margin-bottom: 0.15em; + margin-top: 0.15em; +} +div.footnote-group { + margin-left: 1em; } +div.footnote-label { + display: inline-block; + min-width: 1.7em; +} + +div.option-list { + border: 0.1em solid var(--border); +} +div.option-list-item { + padding-left: 12em; + padding-right: 0; + padding-bottom: 0.3em; + padding-top: 0.3em; +} +div.odd { + background-color: var(--secondary-background); +} +div.option-list-label { + margin-left: -11.5em; + margin-right: 0em; + min-width: 11.5em; + display: inline-block; + vertical-align: top; +} +div.option-list-description { + width: calc(100% - 1em); + padding-left: 1em; + padding-right: 0; + display: inline-block; +} + +blockquote { + font-size: 0.9em; + font-style: italic; + padding-left: 0.5em; + margin-left: 0; + border-left: 5px solid #bbc; +} + +.pre, span.tok { + font-family: "Source Code Pro", Monaco, Menlo, Consolas, "Courier New", monospace; + font-weight: 500; + font-size: 0.85em; + color: var(--text); + background-color: var(--third-background); + padding-left: 3px; + padding-right: 3px; + border-radius: 4px; +} + +span.tok { + border: 1px solid #808080; + padding-bottom: 0.1em; + margin-right: 0.2em; +} + +pre { + font-family: "Source Code Pro", Monaco, Menlo, Consolas, "Courier New", monospace; + color: var(--text); + font-weight: 500; + display: inline-block; + box-sizing: border-box; + min-width: 100%; + padding: 0.5em; + margin-top: 0.5em; + margin-bottom: 0.5em; + font-size: 0.85em; + white-space: pre !important; + overflow-y: hidden; + overflow-x: visible; + background-color: var(--secondary-background); + border: 1px solid var(--border); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; } + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; } + + +/* Nim line-numbered tables */ +.line-nums-table { + width: 100%; + table-layout: fixed; } + +table.line-nums-table { + border-radius: 4px; + border: 1px solid #cccccc; + background-color: ghostwhite; + border-collapse: separate; + margin-top: 15px; + margin-bottom: 25px; } + +.line-nums-table tbody { + border: none; } + +.line-nums-table td pre { + border: none; + background-color: transparent; } + +.line-nums-table td.blob-line-nums { + width: 28px; } + +.line-nums-table td.blob-line-nums pre { + color: #b0b0b0; + -webkit-filter: opacity(75%); + filter: opacity(75%); + text-align: right; + border-color: transparent; + background-color: transparent; + padding-left: 0px; + margin-left: 0px; + padding-right: 0px; + margin-right: 0px; } + + +table { + max-width: 100%; + background-color: transparent; + margin-top: 0.5em; + margin-bottom: 1.5em; + border-collapse: collapse; + border-color: var(--third-background); + border-spacing: 0; + font-size: 0.9em; +} + +table th, table td { + padding: 0px 0.5em 0px; + border-color: var(--third-background); +} + +table th { + background-color: var(--third-background); + border-color: var(--third-background); + font-weight: bold; } + +table th.docinfo-name { + background-color: transparent; + text-align: right; +} + +table tr:hover { + background-color: var(--third-background); } + + +/* rst2html default used to remove borders from tables and images */ +.borderless, table.borderless td, table.borderless th { + border: 0; } + +table.borderless td, table.borderless th { + /* Override padding for "table.docutils td" with "! important". + The right padding separates the table cells. */ + padding: 0 0.5em 0 0 !important; } + +.admonition { + padding: 0.3em; + background-color: var(--secondary-background); + border-left: 0.4em solid #7f7f84; + margin-bottom: 0.5em; + -webkit-box-shadow: 0 5px 8px -6px rgba(0,0,0,.2); + -moz-box-shadow: 0 5px 8px -6px rgba(0,0,0,.2); + box-shadow: 0 5px 8px -6px rgba(0,0,0,.2); +} +.admonition-info { + border-color: var(--info-background); +} +.admonition-info-text { + color: var(--info-background); +} +.admonition-warning { + border-color: var(--warning-background); +} +.admonition-warning-text { + color: var(--warning-background); +} +.admonition-error { + border-color: var(--error-background); +} +.admonition-error-text { + color: var(--error-background); +} + +.first { + /* Override more specific margin styles with "! important". */ + margin-top: 0 !important; } + +.last, .with-subtitle { + margin-bottom: 0 !important; } + +.hidden { + display: none; } + +blockquote.epigraph { + margin: 2em 5em; } + +dl.docutils dd { + margin-bottom: 0.5em; } + +object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] { + overflow: hidden; } + + +div.figure { + margin-left: 2em; + margin-right: 2em; } + +div.footer, div.header { + clear: both; + text-align: center; + color: #666; + font-size: smaller; } + +div.footer { + padding-top: 5em; +} + +div.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; } + +div.line-block div.line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; } + +div.topic { + margin: 2em; } + +div.search_results { + background-color: var(--third-background); + margin: 3em; + padding: 1em; + border: 1px solid #4d4d4d; +} + +div#global-links ul { + margin-left: 0; + list-style-type: none; +} + +div#global-links > simple-boot { + margin-left: 3em; +} + +hr.docutils { + width: 75%; } + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; } + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; } + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; } + +.align-left { + text-align: left; } + +.align-center { + clear: both; + text-align: center; } + +.align-right { + text-align: right; } + +/* reset inner alignment in figures */ +div.align-right { + text-align: inherit; } + +p.attribution { + text-align: right; + margin-left: 50%; } + +p.caption { + font-style: italic; } + +p.credits { + font-style: italic; + font-size: smaller; } + +p.label { + white-space: nowrap; } + +p.rubric { + font-weight: bold; + font-size: larger; + color: maroon; + text-align: center; } + +p.topic-title { + font-weight: bold; } + +pre.address { + margin-bottom: 0; + margin-top: 0; + font: inherit; } + +pre.literal-block, pre.doctest-block, pre.math, pre.code { + margin-left: 2em; + margin-right: 2em; } + +pre.code .ln { + color: grey; } + +/* line numbers */ +pre.code, code { + background-color: #eeeeee; } + +pre.code .comment, code .comment { + color: #5c6576; } + +pre.code .keyword, code .keyword { + color: #3B0D06; + font-weight: bold; } + +pre.code .literal.string, code .literal.string { + color: #0c5404; } + +pre.code .name.builtin, code .name.builtin { + color: #352b84; } + +pre.code .deleted, code .deleted { + background-color: #DEB0A1; } + +pre.code .inserted, code .inserted { + background-color: #A3D289; } + +span.classifier { + font-style: oblique; } + +span.classifier-delimiter { + font-weight: bold; } + +span.problematic { + color: #b30000; } + +span.section-subtitle { + /* font-size relative to parent (h1..h6 element) */ + font-size: 80%; } + +span.DecNumber { + color: var(--number); } + +span.BinNumber { + color: var(--number); } + +span.HexNumber { + color: var(--number); } + +span.OctNumber { + color: var(--number); } + +span.FloatNumber { + color: var(--number); } + +span.Identifier { + color: var(--identifier); } + +span.Keyword { + font-weight: 600; + color: var(--keyword); } + +span.StringLit { + color: var(--literal); } + +span.LongStringLit { + color: var(--literal); } + +span.CharLit { + color: var(--literal); } + +span.EscapeSequence { + color: var(--escapeSequence); } + +span.Operator { + color: var(--operator); } + +span.Punctuation { + color: var(--punctuation); } + +span.Comment, span.LongComment { + font-style: italic; + font-weight: 400; + color: var(--comment); } + +span.RegularExpression { + color: darkviolet; } + +span.TagStart { + color: darkviolet; } + +span.TagEnd { + color: darkviolet; } + +span.Key { + color: #252dbe; } + +span.Value { + color: #252dbe; } + +span.RawData { + color: var(--raw-data); } + +span.Assembler { + color: #252dbe; } + +span.Preprocessor { + color: #252dbe; } + +span.Directive { + color: #252dbe; } + +span.option { + font-weight: bold; + font-family: "Source Code Pro", Monaco, Menlo, Consolas, "Courier New", monospace; + color: var(--option); +} + +span.Prompt { + font-weight: bold; + color: red; } + +span.ProgramOutput { + font-weight: bold; + color: #808080; } + +span.program { + font-weight: bold; + color: var(--program); + text-decoration: underline; + text-decoration-color: var(--hint); + text-decoration-thickness: 0.05em; + text-underline-offset: 0.15em; +} + +span.Command, span.Rule, span.Hyperlink, span.Label, span.Reference, +span.Other { + color: var(--other); } + +/* Pop type, const, proc, and iterator defs in nim def blocks */ +dt pre > span.Identifier, dt pre > span.Operator { + color: var(--identifier); + font-weight: 700; } + +dt pre > span.Keyword ~ span.Identifier, dt pre > span.Identifier ~ span.Identifier, +dt pre > span.Operator ~ span.Identifier, dt pre > span.Other ~ span.Identifier { + color: var(--identifier); + font-weight: inherit; } + +/* Nim sprite for the footer (taken from main page favicon) */ +.nim-sprite { + display: inline-block; + width: 51px; + height: 14px; + background-position: 0 0; + background-size: 51px 14px; + -webkit-filter: opacity(50%); + filter: opacity(50%); + background-repeat: no-repeat; + background-image: var(--nim-sprite-base64); + margin-bottom: 5px; } + +span.pragmadots { + /* Position: relative frees us up to make the dots + look really nice without fucking up the layout and + causing bulging in the parent container */ + position: relative; + /* 1px down looks slightly nicer */ + top: 1px; + padding: 2px; + background-color: var(--third-background); + border-radius: 4px; + margin: 0 2px; + cursor: pointer; + font-size: 0.8em; +} + +span.pragmadots:hover { + background-color: var(--hint); +} +span.pragmawrap { + display: none; +} + +span.attachedType { + display: none; + visibility: hidden; +} diff --git a/nimph.html b/nimph.html new file mode 100644 index 0000000..69bdcf5 --- /dev/null +++ b/nimph.html @@ -0,0 +1,502 @@ + + + + + + + + + + + + + + + + + + +nimph + + + + + + + + +
+
+

nimph

+
+
+
+ +     Dark Mode +
+ +
+ Search: +
+
+ Group by: + +
+ + +
+   Source +  Edit + +
+
+ +

+ +
+

Procs

+
+
+
proc cloner(args: seq[string]; strict = false; log_level = logLevel;
+            safe_mode = false; quiet = true; network = true; force = false;
+            dry_run = false): int {....raises: [Exception, OSError, ValueError,
+    IOError, KeyError, ERecoverableError, EOFError, ResultError[system.void],
+    ResultError[errors.git_error_code], Exception, RestError, JsonParsingError,
+    SyntaxError, StudyError, RegexInternalError, InvalidUnicodeError], tags: [
+    RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect,
+    WriteEnvEffect, WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +cli entry to clone a package into the environment +  Source +  Edit + +
+
+
+
proc fixer(strict = false; log_level = logLevel; safe_mode = false;
+           quiet = false; network = true; force = false; dry_run = false): int {....raises: [
+    OSError, ValueError, IOError, Exception, KeyError, ERecoverableError,
+    EOFError, ResultError[system.void], ResultError[errors.git_error_code],
+    Exception, SyntaxError, StudyError, RegexInternalError, InvalidUnicodeError], tags: [
+    ReadDirEffect, ReadEnvEffect, ReadIOEffect, RootEffect, WriteIOEffect,
+    WriteEnvEffect, WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +cli entry to evaluate and/or repair the environment +  Source +  Edit + +
+
+
+
proc forker(names: seq[string]; strict = false; log_level = logLevel;
+            safe_mode = false; quiet = false; network = true; force = false;
+            dry_run = false): int {....raises: [OSError, ValueError, IOError,
+    Exception, KeyError, ERecoverableError, EOFError, ResultError[system.void],
+    ResultError[errors.git_error_code], Exception, ResultError[system.string],
+    RestError, JsonParsingError, TimeParseError], tags: [ReadDirEffect,
+    ReadEnvEffect, ReadIOEffect, RootEffect, WriteIOEffect, WriteEnvEffect,
+    WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +cli entry to remotely fork installed packages +  Source +  Edit + +
+
+
+
proc grapher(names: seq[string]; strict = false; log_level = logLevel;
+             safe_mode = false; quiet = true; network = true; force = false;
+             dry_run = false): int {....raises: [OSError, ValueError, IOError,
+    Exception, KeyError, ERecoverableError, EOFError, ResultError[system.void],
+    ResultError[errors.git_error_code], Exception, ResultError[system.string]], tags: [
+    ReadDirEffect, ReadEnvEffect, ReadIOEffect, RootEffect, WriteIOEffect,
+    WriteEnvEffect, WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +graph requirements for the project or any of its dependencies +  Source +  Edit + +
+
+
+
proc lockfiler(names: seq[string]; strict = false; log_level = logLevel;
+               safe_mode = false; quiet = false; network = true; force = false;
+               dry_run = false): int {....raises: [OSError, ValueError, IOError,
+    Exception, KeyError, ERecoverableError, EOFError, ResultError[system.void],
+    ResultError[errors.git_error_code], Exception], tags: [ReadDirEffect,
+    ReadEnvEffect, ReadIOEffect, RootEffect, WriteIOEffect, WriteEnvEffect,
+    WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +cli entry to write a lockfile +  Source +  Edit + +
+
+
+
proc nimbler(args: seq[string]; strict = false; log_level = logLevel;
+             safe_mode = false; quiet = true; network = true; force = false;
+             dry_run = false): int {....raises: [OSError, ValueError, IOError,
+    Exception, KeyError, ERecoverableError, EOFError, ResultError[system.void],
+    ResultError[errors.git_error_code], Exception], tags: [ReadDirEffect,
+    ReadEnvEffect, ReadIOEffect, RootEffect, WriteIOEffect, WriteEnvEffect,
+    WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +cli entry to pass-through nimble commands with a sane nimbleDir +  Source +  Edit + +
+
+
+
proc pather(names: seq[string]; strict = false; log_level = logLevel;
+            safe_mode = false; quiet = true; network = true; force = false;
+            dry_run = false): int {....raises: [OSError, ValueError, IOError,
+    Exception, KeyError, ERecoverableError, EOFError, ResultError[system.void],
+    ResultError[errors.git_error_code], Exception, ResultError[system.string]], tags: [
+    ReadDirEffect, ReadEnvEffect, ReadIOEffect, RootEffect, WriteIOEffect,
+    WriteEnvEffect, WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +cli entry to echo the path(s) of any dependencies +  Source +  Edit + +
+
+
+
proc roller(names: seq[string]; strict = false; log_level = logLevel;
+            safe_mode = false; quiet = false; network = true; force = false;
+            dry_run = false): int {....raises: [OSError, ValueError, IOError,
+    Exception, KeyError, ERecoverableError, EOFError, ResultError[system.void],
+    ResultError[errors.git_error_code], Exception, SyntaxError, StudyError,
+    RegexInternalError, InvalidUnicodeError], tags: [ReadDirEffect,
+    ReadEnvEffect, ReadIOEffect, RootEffect, WriteIOEffect, WriteEnvEffect,
+    WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +roll a project's dependencies to specific requirements +  Source +  Edit + +
+
+
+
proc runner(args: seq[string]; git = false; strict = false;
+            log_level = logLevel; safe_mode = false; quiet = true;
+            network = true; force = false; dry_run = false): int {....raises: [
+    OSError, ValueError, IOError, Exception, KeyError, ERecoverableError,
+    EOFError, ResultError[system.void], ResultError[errors.git_error_code],
+    Exception], tags: [ReadDirEffect, ReadEnvEffect, ReadIOEffect, RootEffect,
+                       WriteIOEffect, WriteEnvEffect, WriteDirEffect,
+                       ExecIOEffect, TimeEffect].}
+
+ +this is another pather, basically, that invokes the arguments in the path +  Source +  Edit + +
+
+
+
proc searcher(args: seq[string]; strict = false; log_level = logLevel;
+              safe_mode = false; quiet = true; network = true; force = false;
+              dry_run = false): int {....raises: [Exception, IOError, ValueError,
+    KeyError, RestError, OSError, JsonParsingError], tags: [RootEffect,
+    ReadEnvEffect, ReadIOEffect, ReadDirEffect, TimeEffect, WriteIOEffect].}
+
+ +cli entry to search github for nim packages +  Source +  Edit + +
+
+
+
proc tagger(strict = false; log_level = logLevel; safe_mode = false;
+            quiet = false; network = true; force = false; dry_run = false): int {....raises: [
+    OSError, ValueError, IOError, Exception, KeyError, ERecoverableError,
+    EOFError, ResultError[system.void], ResultError[errors.git_error_code],
+    Exception], tags: [ReadDirEffect, ReadEnvEffect, ReadIOEffect, RootEffect,
+                       WriteIOEffect, WriteEnvEffect, WriteDirEffect,
+                       ExecIOEffect, TimeEffect].}
+
+ +cli entry to add missing tags +  Source +  Edit + +
+
+
+
proc unlockfiler(names: seq[string]; strict = false; log_level = logLevel;
+                 safe_mode = false; quiet = false; network = true;
+                 force = false; dry_run = false): int {....raises: [OSError,
+    ValueError, IOError, Exception, KeyError, ERecoverableError, EOFError,
+    ResultError[system.void], ResultError[errors.git_error_code], Exception,
+    SyntaxError, StudyError, RegexInternalError, InvalidUnicodeError], tags: [
+    ReadDirEffect, ReadEnvEffect, ReadIOEffect, RootEffect, WriteIOEffect,
+    WriteEnvEffect, WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +cli entry to read a lockfile +  Source +  Edit + +
+
+
+
proc updowner(names: seq[string]; goal: RollGoal; strict = false;
+              log_level = logLevel; safe_mode = false; quiet = true;
+              network = true; force = false; dry_run = false): int {....raises: [
+    OSError, ValueError, IOError, Exception, KeyError, ERecoverableError,
+    EOFError, ResultError[system.void], ResultError[errors.git_error_code],
+    Exception, SyntaxError, StudyError, RegexInternalError, InvalidUnicodeError], tags: [
+    ReadDirEffect, ReadEnvEffect, ReadIOEffect, RootEffect, WriteIOEffect,
+    WriteEnvEffect, WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +perform upgrades or downgrades of dependencies within project requirement specifications +  Source +  Edit + +
+
+ +
+ +
+
+ +
+ +
+
+
+ + + diff --git a/nimph.idx b/nimph.idx new file mode 100644 index 0000000..abd4d4e --- /dev/null +++ b/nimph.idx @@ -0,0 +1,13 @@ +searcher nimph.html#searcher,seq[string] nimph: searcher(args: seq[string]; strict = false; log_level = logLevel;\n safe_mode = false; quiet = true; network = true; force = false;\n dry_run = false): int +fixer nimph.html#fixer nimph: fixer(strict = false; log_level = logLevel; safe_mode = false; quiet = false;\n network = true; force = false; dry_run = false): int +nimbler nimph.html#nimbler,seq[string] nimph: nimbler(args: seq[string]; strict = false; log_level = logLevel;\n safe_mode = false; quiet = true; network = true; force = false;\n dry_run = false): int +pather nimph.html#pather,seq[string] nimph: pather(names: seq[string]; strict = false; log_level = logLevel;\n safe_mode = false; quiet = true; network = true; force = false;\n dry_run = false): int +runner nimph.html#runner,seq[string] nimph: runner(args: seq[string]; git = false; strict = false; log_level = logLevel;\n safe_mode = false; quiet = true; network = true; force = false;\n dry_run = false): int +updowner nimph.html#updowner,seq[string],RollGoal nimph: updowner(names: seq[string]; goal: RollGoal; strict = false;\n log_level = logLevel; safe_mode = false; quiet = true; network = true;\n force = false; dry_run = false): int +roller nimph.html#roller,seq[string] nimph: roller(names: seq[string]; strict = false; log_level = logLevel;\n safe_mode = false; quiet = false; network = true; force = false;\n dry_run = false): int +grapher nimph.html#grapher,seq[string] nimph: grapher(names: seq[string]; strict = false; log_level = logLevel;\n safe_mode = false; quiet = true; network = true; force = false;\n dry_run = false): int +lockfiler nimph.html#lockfiler,seq[string] nimph: lockfiler(names: seq[string]; strict = false; log_level = logLevel;\n safe_mode = false; quiet = false; network = true; force = false;\n dry_run = false): int +unlockfiler nimph.html#unlockfiler,seq[string] nimph: unlockfiler(names: seq[string]; strict = false; log_level = logLevel;\n safe_mode = false; quiet = false; network = true; force = false;\n dry_run = false): int +tagger nimph.html#tagger nimph: tagger(strict = false; log_level = logLevel; safe_mode = false; quiet = false;\n network = true; force = false; dry_run = false): int +forker nimph.html#forker,seq[string] nimph: forker(names: seq[string]; strict = false; log_level = logLevel;\n safe_mode = false; quiet = false; network = true; force = false;\n dry_run = false): int +cloner nimph.html#cloner,seq[string] nimph: cloner(args: seq[string]; strict = false; log_level = logLevel;\n safe_mode = false; quiet = true; network = true; force = false;\n dry_run = false): int diff --git a/nimph/asjson.html b/nimph/asjson.html new file mode 100644 index 0000000..dd760d5 --- /dev/null +++ b/nimph/asjson.html @@ -0,0 +1,372 @@ + + + + + + + + + + + + + + + + + + +nimph/asjson + + + + + + + + +
+
+

nimph/asjson

+
+ +   Source +  Edit + +
+
+ +

+ +
+

Procs

+
+
+
proc toDistMethod(js: JsonNode): DistMethod {....raises: [ValueError], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc toJson(dist: DistMethod): JsonNode {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc toJson(mask: VersionMask): JsonNode {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc toJson(operator: Operator): JsonNode {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc toJson(release: Release): JsonNode {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc toJson(requirement: Requirement): JsonNode {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc toJson(uri: Uri): JsonNode {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc toJson(version: Version): JsonNode {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc toOperator(js: JsonNode): Operator {....raises: [ValueError], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc toRelease(js: JsonNode): Release {....raises: [ValueError, KeyError], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc toRequirement(js: JsonNode): Requirement {....raises: [ValueError, KeyError],
+    tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc toUri(js: JsonNode): Uri {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc toVersion(js: JsonNode): Version {....raises: [ValueError], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc toVersionMask(js: JsonNode): VersionMask {....raises: [ValueError], tags: [].}
+
+ + +  Source +  Edit + +
+
+ +
+ +
+
+ +
+ +
+
+
+ + + diff --git a/nimph/asjson.idx b/nimph/asjson.idx new file mode 100644 index 0000000..5ad4bb5 --- /dev/null +++ b/nimph/asjson.idx @@ -0,0 +1,14 @@ +toJson nimph/asjson.html#toJson,Operator asjson: toJson(operator: Operator): JsonNode +toOperator nimph/asjson.html#toOperator,JsonNode asjson: toOperator(js: JsonNode): Operator +toJson nimph/asjson.html#toJson,Version asjson: toJson(version: Version): JsonNode +toVersion nimph/asjson.html#toVersion,JsonNode asjson: toVersion(js: JsonNode): Version +toJson nimph/asjson.html#toJson,VersionMask asjson: toJson(mask: VersionMask): JsonNode +toVersionMask nimph/asjson.html#toVersionMask,JsonNode asjson: toVersionMask(js: JsonNode): VersionMask +toJson nimph/asjson.html#toJson,Release asjson: toJson(release: Release): JsonNode +toRelease nimph/asjson.html#toRelease,JsonNode asjson: toRelease(js: JsonNode): Release +toJson nimph/asjson.html#toJson,Requirement asjson: toJson(requirement: Requirement): JsonNode +toRequirement nimph/asjson.html#toRequirement,JsonNode asjson: toRequirement(js: JsonNode): Requirement +toJson nimph/asjson.html#toJson,DistMethod asjson: toJson(dist: DistMethod): JsonNode +toDistMethod nimph/asjson.html#toDistMethod,JsonNode asjson: toDistMethod(js: JsonNode): DistMethod +toJson nimph/asjson.html#toJson,Uri asjson: toJson(uri: Uri): JsonNode +toUri nimph/asjson.html#toUri,JsonNode asjson: toUri(js: JsonNode): Uri diff --git a/nimph/config.html b/nimph/config.html new file mode 100644 index 0000000..021e0aa --- /dev/null +++ b/nimph/config.html @@ -0,0 +1,608 @@ + + + + + + + + + + + + + + + + + + +nimph/config + + + + + + + + +
+
+

nimph/config

+
+
+
+ +     Dark Mode +
+ +
+ Search: +
+
+ Group by: + +
+ + +
+   Source +  Edit + +
+
+ +

+ +
+

Types

+
+
+
NimphConfig = ref object
+  path: string
+  js: JsonNode
+
+
+ + +  Source +  Edit + +
+
+
+
ProjectCfgParsed = object
+  table*: TableRef[string, seq[string]]
+  why*: string
+  ok*: bool
+
+
+ + +  Source +  Edit + +
+
+ +
+
+

Procs

+
+
+
proc addLockerRoom(config: var NimphConfig; name: string; room: JsonNode) {.
+    ...raises: [KeyError, IOError], tags: [WriteIOEffect].}
+
+ +add the named lockfile (in json form) to the configuration file +  Source +  Edit + +
+
+
+
proc addSearchPath(config: ConfigRef; nimcfg: Target; path: string): bool {....raises: [
+    ValueError, OSError, Exception, IOError, KeyError, ERecoverableError,
+    EOFError], tags: [ReadDirEffect, ReadEnvEffect, ReadIOEffect, RootEffect,
+                      WriteDirEffect, WriteIOEffect, WriteEnvEffect].}
+
+ +add the given path to the given config file, using the compiler's configuration as input to determine the best path substitution +  Source +  Edit + +
+
+
+
proc appendConfig(path: Target; config: string): bool {....raises: [Exception,
+    ValueError, Exception, ValueError, IOError, IOError, OSError, KeyError,
+    ERecoverableError, EOFError, Exception, ValueError], tags: [ReadEnvEffect,
+    ReadIOEffect, RootEffect, WriteDirEffect, ReadDirEffect, WriteIOEffect,
+    WriteEnvEffect].}
+
+ + +  Source +  Edit + +
+
+
+
proc excludeSearchPath(config: ConfigRef; nimcfg: Target; path: string): bool {....raises: [
+    ValueError, OSError, Exception, IOError, KeyError, ERecoverableError,
+    EOFError], tags: [ReadDirEffect, ReadEnvEffect, ReadIOEffect, RootEffect,
+                      WriteDirEffect, WriteIOEffect, WriteEnvEffect].}
+
+ +add an exclusion for the given path to the given config file, using the compiler's configuration as input to determine the best path substitution +  Source +  Edit + +
+
+
+
proc getAllLockerRooms(config: NimphConfig): JsonNode {....raises: [KeyError],
+    tags: [].}
+
+ +retrieve a JObject holding all lockfiles in the configuration file +  Source +  Edit + +
+
+
+
proc getLockerRoom(config: NimphConfig; name: string): JsonNode {.
+    ...raises: [KeyError], tags: [].}
+
+ +retrieve the named lockfile (or JNull) from the configuration +  Source +  Edit + +
+
+
+
proc isEmpty(config: NimphConfig): bool {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc loadAllCfgs(directory: string): ConfigRef {....raises: [Exception, OSError,
+    ValueError, IOError, KeyError, ERecoverableError, EOFError], tags: [
+    RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteEnvEffect,
+    ExecIOEffect, WriteIOEffect, WriteDirEffect, TimeEffect].}
+
+ +use the compiler to parse all the usual nim.cfgs; optionally change to the given (project?) directory first +  Source +  Edit + +
+
+
+
proc newNimphConfig(path: string): NimphConfig {.
+    ...raises: [ValueError, OSError, Exception, ValueError],
+    tags: [ReadDirEffect, ReadIOEffect, WriteIOEffect, RootEffect].}
+
+ +instantiate a new nimph config using the given path +  Source +  Edit + +
+
+
+
proc parseConfigFile(path: string): Option[ConfigRef] {....raises: [ValueError,
+    OSError, IOError, Exception, KeyError, ERecoverableError, EOFError], tags: [
+    ReadIOEffect, RootEffect, ReadDirEffect, WriteIOEffect, ReadEnvEffect,
+    WriteEnvEffect, WriteDirEffect].}
+
+ +use the compiler to parse a nim.cfg without changing to its directory +  Source +  Edit + +
+
+
+
proc parseProjectCfg(input: Target): ProjectCfgParsed {.
+    ...raises: [ValueError, IOError, Exception, ValueError],
+    tags: [ReadDirEffect, ReadIOEffect, RootEffect].}
+
+ +parse a .cfg for any lines we are entitled to mess with +  Source +  Edit + +
+
+
+
proc removeSearchPath(config: ConfigRef; nimcfg: Target; path: string): bool {....raises: [
+    ValueError, OSError, IOError, Exception, KeyError, ERecoverableError,
+    EOFError, SyntaxError, StudyError, RegexInternalError, InvalidUnicodeError], tags: [
+    ReadDirEffect, ReadIOEffect, RootEffect, WriteIOEffect, ReadEnvEffect,
+    WriteEnvEffect, WriteDirEffect].}
+
+ +try to remove a path from a nim.cfg; true if it was successful and false if any error prevented success +  Source +  Edit + +
+
+
+
proc suggestNimbleDir(config: ConfigRef; local = ""; global = ""): string {.
+    ...raises: [IOError], tags: [ReadDirEffect].}
+
+ +come up with a useful nimbleDir based upon what we find in the current configuration, the location of the project, and the provided suggestions for local or global package directories +  Source +  Edit + +
+
+ +
+
+

Iterators

+
+
+
iterator extantSearchPaths(config: ConfigRef; least = 0): string {....raises: [],
+    tags: [ReadDirEffect].}
+
+ +yield existing search paths from the configuration as /-terminated strings; this will yield library paths and nimblePaths with at least least uses +  Source +  Edit + +
+
+
+
iterator likelyLazy(config: ConfigRef; least = 0): string {....raises: [], tags: [].}
+
+ +yield /-terminated directory paths likely added via --nimblePath +  Source +  Edit + +
+
+
+
iterator likelyLazy(config: ConfigRef; repo: string; least = 0): string {.
+    ...raises: [], tags: [].}
+
+ +yield /-terminated directory paths likely added via --nimblePath +  Source +  Edit + +
+
+
+
iterator likelySearch(config: ConfigRef; libsToo: bool): string {....raises: [],
+    tags: [].}
+
+ +yield /-terminated directory paths likely added via --path +  Source +  Edit + +
+
+
+
iterator likelySearch(config: ConfigRef; repo: string; libsToo: bool): string {.
+    ...raises: [], tags: [].}
+
+ +yield /-terminated directory paths likely added via --path +  Source +  Edit + +
+
+
+
iterator packagePaths(config: ConfigRef; exists = true): string {....raises: [],
+    tags: [ReadDirEffect].}
+
+ +yield package paths from the configuration as /-terminated strings; if the exists flag is passed, then the path must also exist. this should closely mimic the compiler's search +  Source +  Edit + +
+
+ +
+
+

Templates

+
+
+
template isStdlib(config: ConfigRef; path: AbsoluteDir): bool
+
+ + +  Source +  Edit + +
+
+
+
template isStdLib(config: ConfigRef; path: string): bool
+
+ + +  Source +  Edit + +
+
+ +
+ +
+
+ +
+ +
+
+
+ + + diff --git a/nimph/config.idx b/nimph/config.idx new file mode 100644 index 0000000..ed7de66 --- /dev/null +++ b/nimph/config.idx @@ -0,0 +1,23 @@ +ProjectCfgParsed nimph/config.html#ProjectCfgParsed config: ProjectCfgParsed +NimphConfig nimph/config.html#NimphConfig config: NimphConfig +parseConfigFile nimph/config.html#parseConfigFile,string config: parseConfigFile(path: string): Option[ConfigRef] +loadAllCfgs nimph/config.html#loadAllCfgs,string config: loadAllCfgs(directory: string): ConfigRef +appendConfig nimph/config.html#appendConfig,Target,string config: appendConfig(path: Target; config: string): bool +parseProjectCfg nimph/config.html#parseProjectCfg,Target config: parseProjectCfg(input: Target): ProjectCfgParsed +isEmpty nimph/config.html#isEmpty,NimphConfig config: isEmpty(config: NimphConfig): bool +newNimphConfig nimph/config.html#newNimphConfig,string config: newNimphConfig(path: string): NimphConfig +isStdLib nimph/config.html#isStdLib.t,ConfigRef,string config: isStdLib(config: ConfigRef; path: string): bool +isStdlib nimph/config.html#isStdlib.t,ConfigRef,AbsoluteDir config: isStdlib(config: ConfigRef; path: AbsoluteDir): bool +likelySearch nimph/config.html#likelySearch.i,ConfigRef,bool config: likelySearch(config: ConfigRef; libsToo: bool): string +likelySearch nimph/config.html#likelySearch.i,ConfigRef,string,bool config: likelySearch(config: ConfigRef; repo: string; libsToo: bool): string +likelyLazy nimph/config.html#likelyLazy.i,ConfigRef,int config: likelyLazy(config: ConfigRef; least = 0): string +likelyLazy nimph/config.html#likelyLazy.i,ConfigRef,string,int config: likelyLazy(config: ConfigRef; repo: string; least = 0): string +packagePaths nimph/config.html#packagePaths.i,ConfigRef config: packagePaths(config: ConfigRef; exists = true): string +suggestNimbleDir nimph/config.html#suggestNimbleDir,ConfigRef,string,string config: suggestNimbleDir(config: ConfigRef; local = ""; global = ""): string +removeSearchPath nimph/config.html#removeSearchPath,ConfigRef,Target,string config: removeSearchPath(config: ConfigRef; nimcfg: Target; path: string): bool +addSearchPath nimph/config.html#addSearchPath,ConfigRef,Target,string config: addSearchPath(config: ConfigRef; nimcfg: Target; path: string): bool +excludeSearchPath nimph/config.html#excludeSearchPath,ConfigRef,Target,string config: excludeSearchPath(config: ConfigRef; nimcfg: Target; path: string): bool +extantSearchPaths nimph/config.html#extantSearchPaths.i,ConfigRef,int config: extantSearchPaths(config: ConfigRef; least = 0): string +addLockerRoom nimph/config.html#addLockerRoom,NimphConfig,string,JsonNode config: addLockerRoom(config: var NimphConfig; name: string; room: JsonNode) +getAllLockerRooms nimph/config.html#getAllLockerRooms,NimphConfig config: getAllLockerRooms(config: NimphConfig): JsonNode +getLockerRoom nimph/config.html#getLockerRoom,NimphConfig,string config: getLockerRoom(config: NimphConfig; name: string): JsonNode diff --git a/nimph/dependency.html b/nimph/dependency.html new file mode 100644 index 0000000..506db2e --- /dev/null +++ b/nimph/dependency.html @@ -0,0 +1,955 @@ + + + + + + + + + + + + + + + + + + +nimph/dependency + + + + + + + + +
+
+

nimph/dependency

+
+
+
+ +     Dark Mode +
+ +
+ Search: +
+
+ Group by: + +
+ + +
+   Source +  Edit + +
+
+ +

+ +
+

Types

+
+
+
Dependency = ref object
+  names*: seq[string]
+  requirement*: Requirement
+  packages*: PackageGroup
+  projects*: ProjectGroup
+
+
+ + +  Source +  Edit + +
+
+
+
DependencyGroup = ref object of Group[Requirement, Dependency]
+  packages*: PackageGroup
+  projects*: ProjectGroup
+
+
+ + +  Source +  Edit + +
+
+ +
+
+

Procs

+
+
+
proc `$`(dependency: Dependency): string {....raises: [ValueError], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc add(group: var DependencyGroup; req: Requirement; dep: Dependency) {.
+    ...raises: [KeyError, Exception, ValueError], tags: [RootEffect].}
+
+ + +  Source +  Edit + +
+
+
+
proc addedRequirements(dependencies: var DependencyGroup;
+                       dependency: var Dependency): bool {....raises: [Exception,
+    ValueError, OSError, ResultError[system.void],
+    ResultError[errors.git_error_code], KeyError],
+    tags: [RootEffect, ReadEnvEffect, ReadDirEffect].}
+
+ +add a dependency to the group and return true if the addition added new requirements to the group +  Source +  Edit + +
+
+
+
proc adopt(parent: Project; child: var Project) {....raises: [OSError, ValueError],
+    tags: [ReadDirEffect].}
+
+ +associate a child project with the parent project of which the child is a requirement, member of local dependencies, or otherwise available to the compiler's search paths +  Source +  Edit + +
+
+
+
proc asPackage(project: Project): Package {....raises: [KeyError, ValueError,
+    Exception, OSError, ResultError[system.void],
+    ResultError[errors.git_error_code]],
+    tags: [ReadDirEffect, ReadEnvEffect, RootEffect].}
+
+ +cast a project to a package; this is used to seed the packages list for projects that are already installed so that we can match them against other package metadata sources by url, etc. +  Source +  Edit + +
+
+
+
proc childProjects(project: Project): ProjectGroup {....raises: [OSError,
+    ValueError, IOError, Exception, KeyError, ERecoverableError, EOFError,
+    ResultError[system.void], ResultError[errors.git_error_code]], tags: [
+    ReadDirEffect, ReadEnvEffect, ReadIOEffect, RootEffect, WriteIOEffect,
+    WriteEnvEffect, WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +compose a group of possible dependencies of the project; in fact, this will include literally any project in the search paths +  Source +  Edit + +
+
+
+
proc contains(dependencies: DependencyGroup; package: Package): bool {.
+    ...raises: [], tags: [].}
+
+ +true if the package's url matches that of a package in the group +  Source +  Edit + +
+
+
+
proc determineDeps(project: Project): Option[Requires] {.
+    ...raises: [Exception, KeyError], tags: [RootEffect].}
+
+ +try to parse requirements of a project using the nimble dump output +  Source +  Edit + +
+
+
+
proc determineDeps(project: var Project): Option[Requires] {....raises: [Exception,
+    ValueError, OSError, IOError, KeyError, ERecoverableError, EOFError], tags: [
+    ReadDirEffect, RootEffect, ReadEnvEffect, ReadIOEffect, WriteEnvEffect,
+    ExecIOEffect, WriteIOEffect, WriteDirEffect, TimeEffect].}
+
+ +try to parse requirements of a project using the nimble dump output +  Source +  Edit + +
+
+
+
proc get[K: Requirement; V](group: Group[K, V]; key: Requirement): V
+
+ +fetch a dependency from the group using the requirement +  Source +  Edit + +
+
+
+
proc hasKey(dependencies: DependencyGroup; name: string): bool {....raises: [],
+    tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc isHappy(dependency: Dependency): bool {....raises: [], tags: [].}
+
+ +true if the dependency is being met successfully +  Source +  Edit + +
+
+
+
proc isHappyWithVersion(dependency: Dependency): bool {....raises: [ValueError,
+    Exception, OSError, ResultError[system.void],
+    ResultError[errors.git_error_code]],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +true if the dependency is happy with the version of the project +  Source +  Edit + +
+
+
+
proc isSatisfiedBy(req: Requirement; project: Project): bool {....raises: [
+    Exception, ValueError, OSError, ResultError[system.void],
+    ResultError[errors.git_error_code]],
+    tags: [RootEffect, ReadEnvEffect, ReadDirEffect].}
+
+ +true if a requirement is satisfied by the given project, at any known/available version for the project +  Source +  Edit + +
+
+
+
proc isSatisfiedBy(req: Requirement; project: Project; release: Release): bool {....raises: [
+    ValueError, Exception, OSError, ResultError[system.void],
+    ResultError[errors.git_error_code]],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +true if the requirement is satisfied by the project at the given release +  Source +  Edit + +
+
+
+
proc isUsing(dependencies: DependencyGroup; target: Target;
+             outside: Dependency = nil): bool {....raises: [], tags: [].}
+
+ +true if the target points to a repo we're importing +  Source +  Edit + +
+
+
+
proc mget[K: Requirement; V](group: var Group[K, V]; key: K): var V
+
+ +fetch a dependency from the group using the requirement +  Source +  Edit + +
+
+
+
proc name(dependency: Dependency): string {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc newDependency(project: Project): Dependency {....raises: [ValueError,
+    KeyError, Exception, OSError, ResultError[system.void],
+    ResultError[errors.git_error_code]],
+    tags: [ReadDirEffect, ReadEnvEffect, RootEffect].}
+
+ +convenience to form a new dependency on a specific project +  Source +  Edit + +
+
+
+
proc newDependency(requirement: Requirement): Dependency {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc newDependencyGroup(flags: set[Flag]): DependencyGroup {....raises: [],
+    tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc newDependencyGroup(project: Project; flags = defaultFlags): DependencyGroup {....raises: [
+    IOError, ValueError, OSError, Exception, KeyError, ERecoverableError,
+    EOFError, ResultError[system.void], ResultError[errors.git_error_code]], tags: [
+    ReadDirEffect, ReadIOEffect, WriteIOEffect, RootEffect, ReadEnvEffect,
+    WriteEnvEffect, WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +a convenience to load packages and projects for resolution +  Source +  Edit + +
+
+
+
proc pathForName(dependencies: DependencyGroup; name: string): Option[string] {.
+    ...raises: [KeyError], tags: [].}
+
+ +try to retrieve the directory for a given import +  Source +  Edit + +
+
+
+
proc peelRelease(project: Project): Release {.
+    ...raises: [Exception, OSError, ResultError[system.void], ValueError],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +convenience to peel the project's release +  Source +  Edit + +
+
+
+
proc peelRelease(project: Project; release: Release): Release {.
+    ...raises: [Exception, OSError, ResultError[system.void], ValueError],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +peel a release, if possible, to resolve any tags as commits +  Source +  Edit + +
+
+
+
proc projectForName(group: DependencyGroup; name: string): Option[Project] {.
+    ...raises: [KeyError, ValueError], tags: [].}
+
+ +try to retrieve a project given an import name +  Source +  Edit + +
+
+
+
proc projectForPath(deps: DependencyGroup; path: string): Option[Project] {.
+    ...raises: [KeyError, ValueError], tags: [].}
+
+ +retrieve a project from the dependencies using its path +  Source +  Edit + +
+
+
+
proc reqForProject(group: DependencyGroup; project: Project): Option[Requirement] {.
+    ...raises: [OSError], tags: [ReadDirEffect].}
+
+ +try to retrieve a requirement given a project +  Source +  Edit + +
+
+
+
proc reset(dependencies: var DependencyGroup; project: var Project) {....raises: [
+    Exception, OSError, ValueError, IOError, KeyError, ERecoverableError,
+    EOFError, ResultError[system.void], ResultError[errors.git_error_code]], tags: [
+    RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteEnvEffect,
+    ExecIOEffect, WriteIOEffect, WriteDirEffect, TimeEffect].}
+
+ +reset a dependency group and prepare to resolve dependencies again +  Source +  Edit + +
+
+
+
proc resolve(project: Project; deps: var DependencyGroup; req: Requirement): bool {....raises: [
+    Exception, ValueError, OSError, ResultError[system.void],
+    ResultError[errors.git_error_code], KeyError, IOError, ERecoverableError,
+    EOFError], tags: [RootEffect, ReadEnvEffect, ReadDirEffect, ReadIOEffect,
+                      WriteEnvEffect, ExecIOEffect, WriteIOEffect,
+                      WriteDirEffect, TimeEffect].}
+
+ +resolve a single project's requirement, storing the result +  Source +  Edit + +
+
+
+
proc resolve(project: var Project; dependencies: var DependencyGroup): bool {....raises: [
+    Exception, ValueError, OSError, ResultError[system.void],
+    ResultError[errors.git_error_code], IOError, KeyError, ERecoverableError,
+    EOFError], tags: [RootEffect, ReadEnvEffect, ReadDirEffect, ReadIOEffect,
+                      WriteEnvEffect, ExecIOEffect, WriteIOEffect,
+                      WriteDirEffect, TimeEffect].}
+
+ +resolve a project's dependencies recursively; store result in dependencies +  Source +  Edit + +
+
+
+
proc resolveUsing(projects: ProjectGroup; packages: PackageGroup;
+                  requirement: Requirement): Dependency {....raises: [Exception,
+    ValueError, OSError, ResultError[system.void],
+    ResultError[errors.git_error_code], KeyError],
+    tags: [RootEffect, ReadEnvEffect, ReadDirEffect].}
+
+ +filter all we know about the environment, a requirement, and the means by which we may satisfy it, into a single object +  Source +  Edit + +
+
+
+
proc roll(project: var Project; requirement: Requirement; goal: RollGoal;
+          dry_run = false): bool {....raises: [Exception, OSError,
+    ResultError[system.void], ValueError, ResultError[errors.git_error_code],
+    IOError, KeyError, ERecoverableError, EOFError, SyntaxError, StudyError,
+    RegexInternalError, InvalidUnicodeError], tags: [ReadEnvEffect,
+    ReadDirEffect, RootEffect, ReadIOEffect, WriteIOEffect, WriteEnvEffect,
+    WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +true if the project meets the requirement and goal +  Source +  Edit + +
+
+
+
proc rollTowards(project: var Project; requirement: Requirement): bool {....raises: [
+    Exception, OSError, ResultError[system.void], ValueError,
+    ResultError[errors.git_error_code], IOError, KeyError, ERecoverableError,
+    EOFError, SyntaxError, StudyError, RegexInternalError, InvalidUnicodeError], tags: [
+    ReadEnvEffect, ReadDirEffect, RootEffect, ReadIOEffect, WriteIOEffect,
+    WriteEnvEffect, WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +advance the head of a project to meet a given requirement +  Source +  Edit + +
+
+
+
proc symbolicMatch(project: Project; req: Requirement): bool {....raises: [
+    Exception, ValueError, OSError, ResultError[system.void],
+    ResultError[errors.git_error_code]],
+    tags: [RootEffect, ReadEnvEffect, ReadDirEffect].}
+
+ +convenience +  Source +  Edit + +
+
+
+
proc symbolicMatch(project: Project; req: Requirement; release: Release): bool {....raises: [
+    Exception, OSError, ResultError[system.void], ValueError,
+    ResultError[errors.git_error_code]],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +convenience +  Source +  Edit + +
+
+
+
proc symbolicMatch(project: var Project; req: Requirement): bool {....raises: [
+    Exception, OSError, ResultError[system.void], ValueError,
+    ResultError[errors.git_error_code]],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +convenience that fetches the tag table if necessary +  Source +  Edit + +
+
+
+
proc symbolicMatch(project: var Project; req: Requirement; release: Release): bool {....raises: [
+    Exception, OSError, ResultError[system.void], ValueError,
+    ResultError[errors.git_error_code]],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +convenience that fetches the tag table if necessary +  Source +  Edit + +
+
+ +
+
+

Iterators

+
+
+
iterator symbolicMatches(project: Project; req: Requirement): Release {....raises: [
+    Exception, ValueError, OSError, ResultError[system.void],
+    ResultError[errors.git_error_code]],
+    tags: [RootEffect, ReadEnvEffect, ReadDirEffect].}
+
+ +see if a project can match a given requirement symbolically +  Source +  Edit + +
+
+ +
+ + +
+
+ +
+ +
+
+
+ + + diff --git a/nimph/dependency.idx b/nimph/dependency.idx new file mode 100644 index 0000000..264a831 --- /dev/null +++ b/nimph/dependency.idx @@ -0,0 +1,41 @@ +Dependency nimph/dependency.html#Dependency dependency: Dependency +DependencyGroup nimph/dependency.html#DependencyGroup dependency: DependencyGroup +name nimph/dependency.html#name,Dependency dependency: name(dependency: Dependency): string +`$` nimph/dependency.html#$,Dependency dependency: `$`(dependency: Dependency): string +newDependency nimph/dependency.html#newDependency,Requirement dependency: newDependency(requirement: Requirement): Dependency +newDependencyGroup nimph/dependency.html#newDependencyGroup,set[Flag] dependency: newDependencyGroup(flags: set[Flag]): DependencyGroup +contains nimph/dependency.html#contains,DependencyGroup,Package dependency: contains(dependencies: DependencyGroup; package: Package): bool +hasKey nimph/dependency.html#hasKey,DependencyGroup,string dependency: hasKey(dependencies: DependencyGroup; name: string): bool +asPackage nimph/dependency.html#asPackage,Project dependency: asPackage(project: Project): Package +adopt nimph/dependency.html#adopt,Project,Project dependency: adopt(parent: Project; child: var Project) +childProjects nimph/dependency.html#childProjects,Project dependency: childProjects(project: Project): ProjectGroup +determineDeps nimph/dependency.html#determineDeps,Project dependency: determineDeps(project: Project): Option[Requires] +determineDeps nimph/dependency.html#determineDeps,Project_2 dependency: determineDeps(project: var Project): Option[Requires] +peelRelease nimph/dependency.html#peelRelease,Project,Release dependency: peelRelease(project: Project; release: Release): Release +peelRelease nimph/dependency.html#peelRelease,Project dependency: peelRelease(project: Project): Release +symbolicMatches nimph/dependency.html#symbolicMatches.i,Project,Requirement dependency: symbolicMatches(project: Project; req: Requirement): Release +symbolicMatch nimph/dependency.html#symbolicMatch,Project,Requirement,Release dependency: symbolicMatch(project: Project; req: Requirement; release: Release): bool +symbolicMatch nimph/dependency.html#symbolicMatch,Project,Requirement,Release_2 dependency: symbolicMatch(project: var Project; req: Requirement; release: Release): bool +symbolicMatch nimph/dependency.html#symbolicMatch,Project,Requirement dependency: symbolicMatch(project: Project; req: Requirement): bool +symbolicMatch nimph/dependency.html#symbolicMatch,Project,Requirement_2 dependency: symbolicMatch(project: var Project; req: Requirement): bool +isSatisfiedBy nimph/dependency.html#isSatisfiedBy,Requirement,Project,Release dependency: isSatisfiedBy(req: Requirement; project: Project; release: Release): bool +isSatisfiedBy nimph/dependency.html#isSatisfiedBy,Requirement,Project dependency: isSatisfiedBy(req: Requirement; project: Project): bool +get nimph/dependency.html#get,Group[K: Requirement,V],Requirement dependency: get[K: Requirement; V](group: Group[K, V]; key: Requirement): V +mget nimph/dependency.html#mget,Group[K: Requirement,V],K dependency: mget[K: Requirement; V](group: var Group[K, V]; key: K): var V +newDependency nimph/dependency.html#newDependency,Project dependency: newDependency(project: Project): Dependency +add nimph/dependency.html#add,DependencyGroup,Requirement,Dependency dependency: add(group: var DependencyGroup; req: Requirement; dep: Dependency) +addedRequirements nimph/dependency.html#addedRequirements,DependencyGroup,Dependency dependency: addedRequirements(dependencies: var DependencyGroup; dependency: var Dependency): bool +pathForName nimph/dependency.html#pathForName,DependencyGroup,string dependency: pathForName(dependencies: DependencyGroup; name: string): Option[string] +projectForPath nimph/dependency.html#projectForPath,DependencyGroup,string dependency: projectForPath(deps: DependencyGroup; path: string): Option[Project] +reqForProject nimph/dependency.html#reqForProject,DependencyGroup,Project dependency: reqForProject(group: DependencyGroup; project: Project): Option[Requirement] +projectForName nimph/dependency.html#projectForName,DependencyGroup,string dependency: projectForName(group: DependencyGroup; name: string): Option[Project] +isHappy nimph/dependency.html#isHappy,Dependency dependency: isHappy(dependency: Dependency): bool +isHappyWithVersion nimph/dependency.html#isHappyWithVersion,Dependency dependency: isHappyWithVersion(dependency: Dependency): bool +resolveUsing nimph/dependency.html#resolveUsing,ProjectGroup,PackageGroup,Requirement dependency: resolveUsing(projects: ProjectGroup; packages: PackageGroup;\n requirement: Requirement): Dependency +isUsing nimph/dependency.html#isUsing,DependencyGroup,Target,Dependency dependency: isUsing(dependencies: DependencyGroup; target: Target; outside: Dependency = nil): bool +resolve nimph/dependency.html#resolve,Project,DependencyGroup dependency: resolve(project: var Project; dependencies: var DependencyGroup): bool +resolve nimph/dependency.html#resolve,Project,DependencyGroup,Requirement dependency: resolve(project: Project; deps: var DependencyGroup; req: Requirement): bool +newDependencyGroup nimph/dependency.html#newDependencyGroup,Project dependency: newDependencyGroup(project: Project; flags = defaultFlags): DependencyGroup +reset nimph/dependency.html#reset,DependencyGroup,Project dependency: reset(dependencies: var DependencyGroup; project: var Project) +roll nimph/dependency.html#roll,Project,Requirement,RollGoal dependency: roll(project: var Project; requirement: Requirement; goal: RollGoal;\n dry_run = false): bool +rollTowards nimph/dependency.html#rollTowards,Project,Requirement dependency: rollTowards(project: var Project; requirement: Requirement): bool diff --git a/nimph/doctor.html b/nimph/doctor.html new file mode 100644 index 0000000..b39fc2d --- /dev/null +++ b/nimph/doctor.html @@ -0,0 +1,266 @@ + + + + + + + + + + + + + + + + + + +nimph/doctor + + + + + + + + +
+
+

nimph/doctor

+
+
+
+ +     Dark Mode +
+ +
+ Search: +
+
+ Group by: + +
+ + +
+   Source +  Edit + +
+
+ +

+ +
+

Types

+
+
+
DrState = object
+  kind*: StateKind
+  why*: string
+
+
+ + +  Source +  Edit + +
+
+
+
StateKind = enum
+  DrOkay = "okay", DrRetry = "retry", DrError = "error"
+
+ + +  Source +  Edit + +
+
+ +
+
+

Procs

+
+
+
proc doctor(project: var Project; dry = true; strict = true): bool {....raises: [
+    Exception, ValueError, IOError, OSError, KeyError, ERecoverableError,
+    EOFError, ResultError[system.void], ResultError[errors.git_error_code],
+    SyntaxError, StudyError, RegexInternalError, InvalidUnicodeError], tags: [
+    RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteDirEffect,
+    WriteIOEffect, WriteEnvEffect, ExecIOEffect, TimeEffect].}
+
+ +perform some sanity tests against the project and try to fix any issues we find unless dry is true +  Source +  Edit + +
+
+
+
proc fixDependencies(project: var Project; group: var DependencyGroup;
+                     state: var DrState): bool {....raises: [ValueError, Exception,
+    OSError, ResultError[system.void], ResultError[errors.git_error_code],
+    IOError, KeyError, ERecoverableError, EOFError, SyntaxError, StudyError,
+    RegexInternalError, InvalidUnicodeError], tags: [ReadEnvEffect,
+    ReadDirEffect, RootEffect, ReadIOEffect, WriteIOEffect, WriteEnvEffect,
+    WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +try to fix any outstanding issues with a set of dependencies +  Source +  Edit + +
+
+
+
proc fixTags(project: var Project; dry_run = true; force = false): bool {....raises: [
+    Exception, OSError, ResultError[system.void], ValueError,
+    ResultError[errors.git_error_code], IOError, KeyError, ERecoverableError,
+    EOFError], tags: [ReadEnvEffect, ReadDirEffect, RootEffect, ReadIOEffect,
+                      WriteEnvEffect, ExecIOEffect, WriteIOEffect,
+                      WriteDirEffect, TimeEffect].}
+
+ + +  Source +  Edit + +
+
+ +
+ +
+
+ +
+ +
+
+
+ + + diff --git a/nimph/doctor.idx b/nimph/doctor.idx new file mode 100644 index 0000000..ffbf5b9 --- /dev/null +++ b/nimph/doctor.idx @@ -0,0 +1,8 @@ +DrOkay nimph/doctor.html#DrOkay StateKind.DrOkay +DrRetry nimph/doctor.html#DrRetry StateKind.DrRetry +DrError nimph/doctor.html#DrError StateKind.DrError +StateKind nimph/doctor.html#StateKind doctor: StateKind +DrState nimph/doctor.html#DrState doctor: DrState +fixTags nimph/doctor.html#fixTags,Project doctor: fixTags(project: var Project; dry_run = true; force = false): bool +fixDependencies nimph/doctor.html#fixDependencies,Project,DependencyGroup,DrState doctor: fixDependencies(project: var Project; group: var DependencyGroup;\n state: var DrState): bool +doctor nimph/doctor.html#doctor,Project doctor: doctor(project: var Project; dry = true; strict = true): bool diff --git a/nimph/group.html b/nimph/group.html new file mode 100644 index 0000000..7ceed96 --- /dev/null +++ b/nimph/group.html @@ -0,0 +1,601 @@ + + + + + + + + + + + + + + + + + + +nimph/group + + + + + + + + +
+
+

nimph/group

+
+
+
+ +     Dark Mode +
+ +
+ Search: +
+
+ Group by: + +
+ + +
+   Source +  Edit + +
+
+ +

+
+

Imports

+
+spec +
+
+

Types

+
+
+
Group[K; V] = ref object of RootObj
+  table*: OrderedTableRef[K, V]
+  imports*: StringTableRef
+  flags*: set[Flag]
+  mode: StringTableMode
+
+
+ + +  Source +  Edit + +
+
+ +
+
+

Procs

+
+
+
proc `[]=`[K, V](group: Group[K, V]; key: K; value: V)
+
+ +set a key to a single value +  Source +  Edit + +
+
+
+
proc `[]`[K, V](group: Group[K, V]; key: K): V
+
+ +fetch a value from the group using style-insensitive lookup +  Source +  Edit + +
+
+
+
proc `[]`[K, V](group: var Group[K, V]; key: K): var V
+
+ +fetch a value from the group using style-insensitive lookup +  Source +  Edit + +
+
+
+
proc add[K: string; V](group: Group[K, V]; key: K; value: V)
+
+ +add a key and value to the group +  Source +  Edit + +
+
+
+
proc add[K: string; V](group: Group[K, V]; url: Uri; value: V)
+
+ +add a (bare) url as a key +  Source +  Edit + +
+
+
+
proc add[K: Uri; V](group: Group[K, V]; url: Uri; value: V)
+
+ +add a (full) url as a key +  Source +  Edit + +
+
+
+
proc clear[K, V](group: Group[K, V])
+
+ +clear the group without any other disruption +  Source +  Edit + +
+
+
+
proc contains[K, V](group: Group[K, V]; key: K): bool
+
+ +true if the group contains the given key or its importName +  Source +  Edit + +
+
+
+
proc contains[K, V](group: Group[K, V]; url: Uri): bool
+
+ +true if a member of the group has the same (bare) url +  Source +  Edit + +
+
+
+
proc contains[K, V](group: Group[K, V]; value: V): bool
+
+ +true if the group contains the given value +  Source +  Edit + +
+
+
+
proc del[K: string; V](group: Group[K, V]; name: K)
+
+ +remove from the group the named key and its associated value +  Source +  Edit + +
+
+
+
proc del[K: Uri; V](group: Group[K, V]; url: K)
+
+ +remove from the group the url key and its associated value +  Source +  Edit + +
+
+
+
proc delName(group: Group; key: string)
+
+ +remove a name from the group +  Source +  Edit + +
+
+
+
proc get[K: string; V](group: Group[K, V]; key: K): V
+
+ +fetch a value from the group using style-insensitive lookup +  Source +  Edit + +
+
+
+
proc hasKey[K, V](group: Group[K, V]; key: K): bool
+
+ +true if the group contains the given key +  Source +  Edit + +
+
+
+
proc init[K, V](group: Group[K, V]; flags: set[Flag];
+                mode = modeStyleInsensitive)
+
+ +initialize the table and name cache +  Source +  Edit + +
+
+
+
proc len(group: Group): int
+
+ +number of elements in the group +  Source +  Edit + +
+
+
+
proc len[K, V](group: Group[K, V]): int
+
+ +number of elements in the group +  Source +  Edit + +
+
+
+
proc mget[K: string; V](group: var Group[K, V]; key: K): var V
+
+ +fetch a value from the group using style-insensitive lookup +  Source +  Edit + +
+
+ +
+
+

Iterators

+
+
+
iterator keys[K, V](group: Group[K, V]): K
+
+ +standard key iterator +  Source +  Edit + +
+
+
+
iterator mpairs[K, V](group: Group[K, V]): tuple[key: K, val: var V]
+
+ + +  Source +  Edit + +
+
+
+
iterator mvalues[K, V](group: var Group[K, V]): var V
+
+ +standard mutable value iterator +  Source +  Edit + +
+
+
+
iterator pairs[K, V](group: Group[K, V]): tuple[key: K, val: V]
+
+ +standard key/value pairs iterator +  Source +  Edit + +
+
+
+
iterator reversed[K, V](group: Group[K, V]): V
+
+ +yield values in reverse order of entry +  Source +  Edit + +
+
+
+
iterator values[K, V](group: Group[K, V]): V
+
+ +standard value iterator +  Source +  Edit + +
+
+ +
+ +
+
+ +
+ +
+
+
+ + + diff --git a/nimph/group.idx b/nimph/group.idx new file mode 100644 index 0000000..3b4b6ab --- /dev/null +++ b/nimph/group.idx @@ -0,0 +1,26 @@ +Group nimph/group.html#Group group: Group +init nimph/group.html#init,Group[K,V],set[Flag] group: init[K, V](group: Group[K, V]; flags: set[Flag]; mode = modeStyleInsensitive) +delName nimph/group.html#delName,Group,string group: delName(group: Group; key: string) +del nimph/group.html#del,Group[K: string,V],K group: del[K: string; V](group: Group[K, V]; name: K) +del nimph/group.html#del,Group[K: Uri,V],K group: del[K: Uri; V](group: Group[K, V]; url: K) +len nimph/group.html#len,Group[K,V] group: len[K, V](group: Group[K, V]): int +len nimph/group.html#len,Group group: len(group: Group): int +get nimph/group.html#get,Group[K: string,V],K group: get[K: string; V](group: Group[K, V]; key: K): V +mget nimph/group.html#mget,Group[K: string,V],K group: mget[K: string; V](group: var Group[K, V]; key: K): var V +`[]` nimph/group.html#[],Group[K,V],K group: `[]`[K, V](group: var Group[K, V]; key: K): var V +`[]` nimph/group.html#[],Group[K,V],K_2 group: `[]`[K, V](group: Group[K, V]; key: K): V +add nimph/group.html#add,Group[K: string,V],K,V group: add[K: string; V](group: Group[K, V]; key: K; value: V) +add nimph/group.html#add,Group[K: string,V],Uri,V group: add[K: string; V](group: Group[K, V]; url: Uri; value: V) +`[]=` nimph/group.html#[]=,Group[K,V],K,V group: `[]=`[K, V](group: Group[K, V]; key: K; value: V) +add nimph/group.html#add,Group[K: Uri,V],Uri,V group: add[K: Uri; V](group: Group[K, V]; url: Uri; value: V) +pairs nimph/group.html#pairs.i,Group[K,V] group: pairs[K, V](group: Group[K, V]): tuple[key: K, val: V] +mpairs nimph/group.html#mpairs.i,Group[K,V] group: mpairs[K, V](group: Group[K, V]): tuple[key: K, val: var V] +values nimph/group.html#values.i,Group[K,V] group: values[K, V](group: Group[K, V]): V +keys nimph/group.html#keys.i,Group[K,V] group: keys[K, V](group: Group[K, V]): K +mvalues nimph/group.html#mvalues.i,Group[K,V] group: mvalues[K, V](group: var Group[K, V]): var V +hasKey nimph/group.html#hasKey,Group[K,V],K group: hasKey[K, V](group: Group[K, V]; key: K): bool +contains nimph/group.html#contains,Group[K,V],K group: contains[K, V](group: Group[K, V]; key: K): bool +contains nimph/group.html#contains,Group[K,V],Uri group: contains[K, V](group: Group[K, V]; url: Uri): bool +contains nimph/group.html#contains,Group[K,V],V group: contains[K, V](group: Group[K, V]; value: V): bool +reversed nimph/group.html#reversed.i,Group[K,V] group: reversed[K, V](group: Group[K, V]): V +clear nimph/group.html#clear,Group[K,V] group: clear[K, V](group: Group[K, V]) diff --git a/nimph/locker.html b/nimph/locker.html new file mode 100644 index 0000000..265a2a6 --- /dev/null +++ b/nimph/locker.html @@ -0,0 +1,444 @@ + + + + + + + + + + + + + + + + + + +nimph/locker + + + + + + + + +
+
+

nimph/locker

+
+ +   Source +  Edit + +
+
+ +

+ +
+

Types

+
+
+
Locker = ref object
+  name*: string
+  url*: Uri
+  requirement*: Requirement
+  dist*: DistMethod
+  release*: Release
+
+
+ + +  Source +  Edit + +
+
+
+
LockerRoom = ref object of Group[string, Locker]
+  name*: string
+  root*: Locker
+
+
+ + +  Source +  Edit + +
+
+ +
+
+

Procs

+
+
+
proc add(room: var LockerRoom; req: Requirement; name: string; project: Project) {.
+    ...raises: [ValueError, Exception], tags: [RootEffect].}
+
+ +create a new locker for the requirement from the project and safely add it to the lockerroom +  Source +  Edit + +
+
+
+
proc getLockerRoom(project: Project; name: string; room: var LockerRoom): bool {.
+    ...raises: [KeyError, ValueError, Exception], tags: [RootEffect].}
+
+ +true if we pulled the named lockerroom out of the project's configuration +  Source +  Edit + +
+
+
+
proc hash(locker: Locker): Hash {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc hash(room: LockerRoom): Hash {....raises: [], tags: [].}
+
+ +the hash of a lockerroom is the hash of its root and all lockers +  Source +  Edit + +
+
+
+
proc lock(project: var Project; name: string; flags = defaultFlags): bool {....raises: [
+    IOError, ValueError, OSError, Exception, KeyError, ERecoverableError,
+    EOFError, ResultError[system.void], ResultError[errors.git_error_code]], tags: [
+    ReadDirEffect, ReadIOEffect, WriteIOEffect, RootEffect, ReadEnvEffect,
+    WriteEnvEffect, WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +store a project's dependencies into the named lockfile +  Source +  Edit + +
+
+
+
proc newLockerRoom(name = ""; flags = defaultFlags): LockerRoom {....raises: [],
+    tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc newLockerRoom(project: Project; flags = defaultFlags): LockerRoom {.
+    ...raises: [ValueError], tags: [].}
+
+ +a new lockerroom using the project release as the root +  Source +  Edit + +
+
+
+
proc toJson(locker: Locker): JsonNode {....raises: [], tags: [].}
+
+ +convert a Locker to a JObject +  Source +  Edit + +
+
+
+
proc toJson(room: LockerRoom): JsonNode {....raises: [], tags: [].}
+
+ +convert a LockerRoom to a JObject +  Source +  Edit + +
+
+
+
proc toLocker(js: JsonNode): Locker {....raises: [ValueError, KeyError], tags: [].}
+
+ +convert a JObject to a Locker +  Source +  Edit + +
+
+
+
proc toLockerRoom(js: JsonNode; name = ""): LockerRoom {.
+    ...raises: [ValueError, KeyError, Exception], tags: [RootEffect].}
+
+ +convert a JObject to a LockerRoom +  Source +  Edit + +
+
+
+
proc unlock(project: var Project; name: string; flags = defaultFlags): bool {....raises: [
+    IOError, ValueError, OSError, Exception, KeyError, ERecoverableError,
+    EOFError, ResultError[system.void], ResultError[errors.git_error_code],
+    SyntaxError, StudyError, RegexInternalError, InvalidUnicodeError], tags: [
+    ReadDirEffect, ReadIOEffect, WriteIOEffect, RootEffect, ReadEnvEffect,
+    WriteEnvEffect, WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +unlock a project using the named lockfile +  Source +  Edit + +
+
+ +
+
+

Iterators

+
+
+
iterator allLockerRooms(project: Project): LockerRoom {.
+    ...raises: [KeyError, ValueError, Exception], tags: [RootEffect].}
+
+ +emit each lockerroom in the project's configuration +  Source +  Edit + +
+
+ +
+ +
+
+ +
+ +
+
+
+ + + diff --git a/nimph/locker.idx b/nimph/locker.idx new file mode 100644 index 0000000..17d16fc --- /dev/null +++ b/nimph/locker.idx @@ -0,0 +1,15 @@ +Locker nimph/locker.html#Locker locker: Locker +LockerRoom nimph/locker.html#LockerRoom locker: LockerRoom +hash nimph/locker.html#hash,Locker locker: hash(locker: Locker): Hash +hash nimph/locker.html#hash,LockerRoom locker: hash(room: LockerRoom): Hash +newLockerRoom nimph/locker.html#newLockerRoom,string locker: newLockerRoom(name = ""; flags = defaultFlags): LockerRoom +newLockerRoom nimph/locker.html#newLockerRoom,Project locker: newLockerRoom(project: Project; flags = defaultFlags): LockerRoom +add nimph/locker.html#add,LockerRoom,Requirement,string,Project locker: add(room: var LockerRoom; req: Requirement; name: string; project: Project) +toJson nimph/locker.html#toJson,Locker locker: toJson(locker: Locker): JsonNode +toLocker nimph/locker.html#toLocker,JsonNode locker: toLocker(js: JsonNode): Locker +toJson nimph/locker.html#toJson,LockerRoom locker: toJson(room: LockerRoom): JsonNode +toLockerRoom nimph/locker.html#toLockerRoom,JsonNode,string locker: toLockerRoom(js: JsonNode; name = ""): LockerRoom +getLockerRoom nimph/locker.html#getLockerRoom,Project,string,LockerRoom locker: getLockerRoom(project: Project; name: string; room: var LockerRoom): bool +allLockerRooms nimph/locker.html#allLockerRooms.i,Project locker: allLockerRooms(project: Project): LockerRoom +unlock nimph/locker.html#unlock,Project,string locker: unlock(project: var Project; name: string; flags = defaultFlags): bool +lock nimph/locker.html#lock,Project,string locker: lock(project: var Project; name: string; flags = defaultFlags): bool diff --git a/nimph/nimble.html b/nimph/nimble.html new file mode 100644 index 0000000..f56dc4d --- /dev/null +++ b/nimph/nimble.html @@ -0,0 +1,345 @@ + + + + + + + + + + + + + + + + + + +nimph/nimble + + + + + + + + +
+
+

nimph/nimble

+
+
+
+ +     Dark Mode +
+ +
+ Search: +
+
+ Group by: + +
+ + +
+   Source +  Edit + +
+
+ +

+ +
+

Types

+
+
+
DumpResult = object
+  table*: StringTableRef
+  why*: string
+  ok*: bool
+
+
+ + +  Source +  Edit + +
+
+
+
NimbleMeta = ref object
+  js: JsonNode
+  link: seq[string]
+
+
+ + +  Source +  Edit + +
+
+ +
+
+

Procs

+
+
+
proc fetchNimbleDump(path: string; nimbleDir = ""): DumpResult {.
+    ...raises: [ValueError, OSError, Exception, IOError], tags: [ReadDirEffect,
+    ReadEnvEffect, ReadIOEffect, RootEffect, WriteEnvEffect, ExecIOEffect].}
+
+ +parse nimble dump output into a string table +  Source +  Edit + +
+
+
+
proc fetchNimbleMeta(path: string): NimbleMeta {.
+    ...raises: [Exception, ValueError],
+    tags: [ReadDirEffect, ReadIOEffect, WriteIOEffect, RootEffect].}
+
+ +parse the nimblemeta.json file if it exists +  Source +  Edit + +
+
+
+
proc hasUrl(meta: NimbleMeta): bool {....raises: [KeyError], tags: [].}
+
+ +true if the metadata includes a url +  Source +  Edit + +
+
+
+
proc isLink(meta: NimbleMeta): bool {....raises: [], tags: [].}
+
+ +true if the metadata says it's a link +  Source +  Edit + +
+
+
+
proc isValid(meta: NimbleMeta): bool {....raises: [KeyError], tags: [].}
+
+ +true if the metadata appears to hold some data +  Source +  Edit + +
+
+
+
proc parseNimbleDump(input: string): Option[StringTableRef] {.
+    ...raises: [Exception], tags: [RootEffect].}
+
+ +parse output from nimble dump +  Source +  Edit + +
+
+
+
proc url(meta: NimbleMeta): Uri {....raises: [KeyError, ValueError], tags: [].}
+
+ +return the url associated with the package +  Source +  Edit + +
+
+
+
proc writeNimbleMeta(path: string; url: Uri; revision: string): bool {.
+    ...raises: [Exception, ValueError, IOError],
+    tags: [ReadDirEffect, RootEffect, WriteIOEffect].}
+
+ +try to write a new nimblemeta.json +  Source +  Edit + +
+
+ +
+ +
+
+ +
+ +
+
+
+ + + diff --git a/nimph/nimble.idx b/nimph/nimble.idx new file mode 100644 index 0000000..97c9228 --- /dev/null +++ b/nimph/nimble.idx @@ -0,0 +1,10 @@ +DumpResult nimph/nimble.html#DumpResult nimble: DumpResult +NimbleMeta nimph/nimble.html#NimbleMeta nimble: NimbleMeta +parseNimbleDump nimph/nimble.html#parseNimbleDump,string nimble: parseNimbleDump(input: string): Option[StringTableRef] +fetchNimbleDump nimph/nimble.html#fetchNimbleDump,string,string nimble: fetchNimbleDump(path: string; nimbleDir = ""): DumpResult +hasUrl nimph/nimble.html#hasUrl,NimbleMeta nimble: hasUrl(meta: NimbleMeta): bool +url nimph/nimble.html#url,NimbleMeta nimble: url(meta: NimbleMeta): Uri +writeNimbleMeta nimph/nimble.html#writeNimbleMeta,string,Uri,string nimble: writeNimbleMeta(path: string; url: Uri; revision: string): bool +isLink nimph/nimble.html#isLink,NimbleMeta nimble: isLink(meta: NimbleMeta): bool +isValid nimph/nimble.html#isValid,NimbleMeta nimble: isValid(meta: NimbleMeta): bool +fetchNimbleMeta nimph/nimble.html#fetchNimbleMeta,string nimble: fetchNimbleMeta(path: string): NimbleMeta diff --git a/nimph/package.html b/nimph/package.html new file mode 100644 index 0000000..29d7510 --- /dev/null +++ b/nimph/package.html @@ -0,0 +1,497 @@ + + + + + + + + + + + + + + + + + + +nimph/package + + + + + + + + +
+
+

nimph/package

+
+ +   Source +  Edit + +
+
+ +

+ +
+

Types

+
+
+
DistMethod = enum
+  Local = "local", Git = "git", Nest = "nest", Merc = "hg"
+
+ + +  Source +  Edit + +
+
+
+
Package = ref object
+  name*: string
+  url*: Uri
+  dist*: DistMethod
+  tags*: seq[string]
+  description*: string
+  license*: string
+  web*: Uri
+  naive*: bool
+  local*: bool
+  path*: string
+  author*: string
+
+
+ + +  Source +  Edit + +
+
+
+
PackageGroup = Group[string, Package]
+
+ + +  Source +  Edit + +
+
+
+
PackagesResult = object
+  ok*: bool
+  why*: string
+  packages*: PackageGroup
+  info: FileInfo
+
+
+ + +  Source +  Edit + +
+
+ +
+
+

Procs

+
+
+
proc `$`(package: Package): string {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc ageInDays(found: PackagesResult): int64 {....raises: [], tags: [TimeEffect].}
+
+ +days since the packages file was last refreshed +  Source +  Edit + +
+
+
+
proc aimAt(package: Package; req: Requirement): Package {.
+    ...raises: [ValueError, Exception], tags: [RootEffect].}
+
+ +produce a refined package which might meet the requirement +  Source +  Edit + +
+
+
+
proc getOfficialPackages(nimbleDir: string): PackagesResult {....raises: [],
+    tags: [ReadDirEffect, ReadIOEffect, WriteIOEffect, RootEffect].}
+
+ +parse the official packages list from nimbledir +  Source +  Edit + +
+
+
+
proc hasUrl(group: PackageGroup; url: Uri): bool {....raises: [], tags: [].}
+
+ +true if the url seems to match a package in the group +  Source +  Edit + +
+
+
+
proc importName(package: Package): string {....raises: [Exception, ValueError],
+    tags: [RootEffect].}
+
+ + +  Source +  Edit + +
+
+
+
proc matching(group: PackageGroup; req: Requirement): PackageGroup {.
+    ...raises: [Exception, ValueError, KeyError], tags: [RootEffect].}
+
+ +select a subgroup of packages that appear to match the requirement +  Source +  Edit + +
+
+
+
proc newPackage(name: string; dist: DistMethod; url: Uri): Package {....raises: [],
+    tags: [].}
+
+ +create a new package +  Source +  Edit + +
+
+
+
proc newPackage(name: string; path: string; dist: DistMethod; url: Uri): Package {.
+    ...raises: [], tags: [ReadDirEffect].}
+
+ +create a new package that probably points to a local repo +  Source +  Edit + +
+
+
+
proc newPackage(url: Uri): Package {....raises: [], tags: [].}
+
+ +create a new package with only a url +  Source +  Edit + +
+
+
+
proc newPackageGroup(flags: set[Flag] = defaultFlags): PackageGroup {.
+    ...raises: [], tags: [].}
+
+ +instantiate a new package group for collecting a list of packages +  Source +  Edit + +
+
+
+
proc toUrl(requirement: Requirement; group: PackageGroup): Option[Uri] {.
+    ...raises: [Exception, ValueError, KeyError], tags: [RootEffect].}
+
+ +try to determine the distribution url for a requirement +  Source +  Edit + +
+
+ +
+
+

Iterators

+
+
+
iterator urls(group: PackageGroup): Uri {....raises: [], tags: [].}
+
+ +yield (an ideally git) url for each package in the group +  Source +  Edit + +
+
+ +
+ + +
+
+ +
+ +
+
+
+ + + diff --git a/nimph/package.idx b/nimph/package.idx new file mode 100644 index 0000000..d522a6e --- /dev/null +++ b/nimph/package.idx @@ -0,0 +1,21 @@ +Local nimph/package.html#Local DistMethod.Local +Git nimph/package.html#Git DistMethod.Git +Nest nimph/package.html#Nest DistMethod.Nest +Merc nimph/package.html#Merc DistMethod.Merc +DistMethod nimph/package.html#DistMethod package: DistMethod +Package nimph/package.html#Package package: Package +PackageGroup nimph/package.html#PackageGroup package: PackageGroup +PackagesResult nimph/package.html#PackagesResult package: PackagesResult +importName nimph/package.html#importName,Package package: importName(package: Package): string +newPackage nimph/package.html#newPackage,string,string,DistMethod,Uri package: newPackage(name: string; path: string; dist: DistMethod; url: Uri): Package +newPackage nimph/package.html#newPackage,string,DistMethod,Uri package: newPackage(name: string; dist: DistMethod; url: Uri): Package +newPackage nimph/package.html#newPackage,Uri package: newPackage(url: Uri): Package +`$` nimph/package.html#$,Package package: `$`(package: Package): string +newPackageGroup nimph/package.html#newPackageGroup,set[Flag] package: newPackageGroup(flags: set[Flag] = defaultFlags): PackageGroup +aimAt nimph/package.html#aimAt,Package,Requirement package: aimAt(package: Package; req: Requirement): Package +getOfficialPackages nimph/package.html#getOfficialPackages,string package: getOfficialPackages(nimbleDir: string): PackagesResult +ageInDays nimph/package.html#ageInDays,PackagesResult package: ageInDays(found: PackagesResult): int64 +toUrl nimph/package.html#toUrl,Requirement,PackageGroup package: toUrl(requirement: Requirement; group: PackageGroup): Option[Uri] +hasUrl nimph/package.html#hasUrl,PackageGroup,Uri package: hasUrl(group: PackageGroup; url: Uri): bool +matching nimph/package.html#matching,PackageGroup,Requirement package: matching(group: PackageGroup; req: Requirement): PackageGroup +urls nimph/package.html#urls.i,PackageGroup package: urls(group: PackageGroup): Uri diff --git a/nimph/project.html b/nimph/project.html new file mode 100644 index 0000000..39572a5 --- /dev/null +++ b/nimph/project.html @@ -0,0 +1,1726 @@ + + + + + + + + + + + + + + + + + + +nimph/project + + + + + + + + +
+
+

nimph/project

+
+
+
+ +     Dark Mode +
+ +
+ Search: +
+
+ Group by: + +
+ + +
+   Source +  Edit + +
+
+ +

+ +
+

Types

+
+
+
LinkedSearchResult = ref object
+  via: LinkedSearchResult
+  source: string
+  search: SearchResult
+
+
+ + +  Source +  Edit + +
+
+
+
Project = ref object
+  name*: string
+  nimble*: Target
+  version*: Version
+  dist*: DistMethod
+  release*: Release
+  dump*: StringTableRef
+  config*: NimphConfig
+  cfg*: ConfigRef
+  mycfg*: ConfigRef
+  tags*: GitTagTable
+  meta*: NimbleMeta
+  url*: Uri
+  parent*: Project
+  develop*: LinkedSearchResult
+
+
+ + +  Source +  Edit + +
+
+
+
ProjectGroup = Group[string, Project]
+
+ + +  Source +  Edit + +
+
+
+
Releases = TableRef[string, Release]
+
+ + +  Source +  Edit + +
+
+
+
Requirements = OrderedTableRef[Requirement, Requirement]
+
+ + +  Source +  Edit + +
+
+
+
RequirementsTags = Group[Requirements, GitThing]
+
+ + +  Source +  Edit + +
+
+ +
+
+

Procs

+
+
+
proc `$`(project: Project): string {....raises: [ValueError], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc `==`(a, b: Project): bool {....raises: [OSError], tags: [ReadDirEffect].}
+
+ +a dirty (if safe) way to compare equality of projects +  Source +  Edit + +
+
+
+
proc addMissingSearchPathsTo(project: var Project; cloned: var Project) {....raises: [
+    Exception, OSError, ValueError, IOError, KeyError, ERecoverableError,
+    EOFError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect,
+                      WriteEnvEffect, ExecIOEffect, WriteIOEffect,
+                      WriteDirEffect, TimeEffect].}
+
+ +point the project at a fresh clone if necessary +  Source +  Edit + +
+
+
+
proc addMissingUpstreams(project: Project) {....raises: [Exception, OSError,
+    ResultError[system.void], ValueError, ResultError[errors.git_error_code]],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +review the local branches and add any missing tracking branches +  Source +  Edit + +
+
+
+
proc addSearchPath(project: Project; path: string): bool {....raises: [ValueError,
+    OSError, Exception, IOError, KeyError, ERecoverableError, EOFError], tags: [
+    ReadDirEffect, ReadEnvEffect, ReadIOEffect, RootEffect, WriteDirEffect,
+    WriteIOEffect, WriteEnvEffect].}
+
+ +add a search path to the given project's configuration; true if we added the search path +  Source +  Edit + +
+
+
+
proc addSearchPath(project: var Project; path: string): bool {....raises: [
+    ValueError, OSError, Exception, IOError, KeyError, ERecoverableError,
+    EOFError], tags: [ReadDirEffect, ReadEnvEffect, ReadIOEffect, RootEffect,
+                      WriteDirEffect, WriteIOEffect, WriteEnvEffect,
+                      ExecIOEffect, TimeEffect].}
+
+ +add a search path to the project's nim.cfg; reload config +  Source +  Edit + +
+
+
+
proc allImportTargets(config: ConfigRef; repo: string): OrderedTableRef[Target,
+    LinkedSearchResult] {....raises: [OSError, ValueError, IOError],
+                          tags: [ReadDirEffect, ReadEnvEffect, ReadIOEffect].}
+
+ +yield projects from the group in the same order that they may be resolved by the compiler, if at all, given a particular configuration +  Source +  Edit + +
+
+
+
proc availableProjects(project: Project): ProjectGroup {....raises: [OSError,
+    ValueError, IOError, Exception, KeyError, ERecoverableError, EOFError,
+    ResultError[system.void], ResultError[errors.git_error_code]], tags: [
+    ReadDirEffect, ReadEnvEffect, ReadIOEffect, RootEffect, WriteIOEffect,
+    WriteEnvEffect, WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +find packages locally available to a project; note that this will include the project itself +  Source +  Edit + +
+
+
+
proc bestRelease(tags: GitTagTable; goal: RollGoal): Version {....deprecated,
+    raises: [ValueError, Exception], tags: [RootEffect].}
+
+
+ Deprecated +
+ +the most ideal tagged release parsable as a version; we should probably use versiontags for this now +  Source +  Edit + +
+
+
+
proc betterReleaseExists(project: var Project; goal: RollGoal): bool {.
+    ...deprecated, raises: [Exception, OSError, ResultError[system.void],
+                         ValueError, ResultError[errors.git_error_code]],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+
+ Deprecated +
+ +true if there is a (more) ideal version available +  Source +  Edit + +
+
+
+
proc clone(project: var Project; url: Uri; name: string; cloned: var Project): bool {....raises: [
+    IOError, ValueError, OSError, Exception, ResultError[system.void], KeyError,
+    ERecoverableError, EOFError, ResultError[errors.git_error_code]], tags: [
+    ReadEnvEffect, ReadIOEffect, ReadDirEffect, RootEffect, WriteIOEffect,
+    WriteEnvEffect, WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +clone a package into the project's nimbleDir +  Source +  Edit + +
+
+
+
proc countNimblePaths(project: Project): tuple[local: int, global: int,
+    paths: seq[string]] {....raises: [], tags: [].}
+
+ +try to count the effective number of --nimblePaths +  Source +  Edit + +
+
+
+
proc createUrl(project: Project; refresh = false): Uri {....raises: [KeyError,
+    ValueError, Exception, OSError, ResultError[system.void],
+    ResultError[errors.git_error_code]],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +determine the source url for a project which may be local +  Source +  Edit + +
+
+
+
proc createUrl(project: var Project; refresh = false): Uri {....raises: [KeyError,
+    ValueError, Exception, OSError, ResultError[system.void],
+    ResultError[errors.git_error_code], IOError],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect, WriteIOEffect].}
+
+ +if we come up with a new url for the project, write it to a nimblemeta.json +  Source +  Edit + +
+
+
+
proc cuteRelease(project: Project): string {....raises: [ValueError, Exception,
+    OSError, ResultError[system.void], ResultError[errors.git_error_code]],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +a very short summary of a release; ie. a git commit or version +  Source +  Edit + +
+
+
+
proc demandHead(project: Project): string {.
+    ...raises: [ValueError, Exception, OSError, ResultError[system.void]],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +retrieve the project's #head oid as a string, or "" +  Source +  Edit + +
+
+
+
proc demandHead(repository: GitRepository): string {.
+    ...raises: [Exception, OSError, ResultError[system.void]],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +retrieve the repository's #head oid as a string, or "" +  Source +  Edit + +
+
+
+
proc excludeSearchPath(project: Project; path: string): bool {....raises: [
+    ValueError, OSError, Exception, IOError, KeyError, ERecoverableError,
+    EOFError], tags: [ReadDirEffect, ReadEnvEffect, ReadIOEffect, RootEffect,
+                      WriteDirEffect, WriteIOEffect, WriteEnvEffect].}
+
+ +exclude a search path from the project's nim.cfg +  Source +  Edit + +
+
+
+
proc excludeSearchPath(project: var Project; path: string): bool {....raises: [
+    ValueError, OSError, Exception, IOError, KeyError, ERecoverableError,
+    EOFError], tags: [ReadDirEffect, ReadEnvEffect, ReadIOEffect, RootEffect,
+                      WriteDirEffect, WriteIOEffect, WriteEnvEffect,
+                      ExecIOEffect, TimeEffect].}
+
+ +exclude a search path from the project's nim.cfg; reload config +  Source +  Edit + +
+
+
+
proc fetchConfig(project: var Project; force = false): bool {....raises: [
+    Exception, ValueError, OSError, IOError, KeyError, ERecoverableError,
+    EOFError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect,
+                      WriteEnvEffect, ExecIOEffect, WriteIOEffect,
+                      WriteDirEffect, TimeEffect].}
+
+ +ensure we've got a valid configuration to work with +  Source +  Edit + +
+
+
+
proc fetchDump(project: var Project; package: string; refresh = false): bool {....raises: [
+    Exception, ValueError, OSError, IOError, KeyError, ERecoverableError,
+    EOFError], tags: [ReadDirEffect, RootEffect, ReadEnvEffect, ReadIOEffect,
+                      WriteEnvEffect, ExecIOEffect, WriteIOEffect,
+                      WriteDirEffect, TimeEffect].}
+
+ +make sure the nimble dump is available +  Source +  Edit + +
+
+
+
proc fetchDump(project: var Project; refresh = false): bool {.discardable, ...raises: [
+    Exception, ValueError, OSError, IOError, KeyError, ERecoverableError,
+    EOFError], tags: [ReadDirEffect, RootEffect, ReadEnvEffect, ReadIOEffect,
+                      WriteEnvEffect, ExecIOEffect, WriteIOEffect,
+                      WriteDirEffect, TimeEffect].}
+
+ +make sure the nimble dump is available +  Source +  Edit + +
+
+
+
proc fetchTagTable(project: var Project) {....raises: [Exception, OSError,
+    ResultError[system.void], ValueError, ResultError[errors.git_error_code]],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +retrieve the tags for a project from its git repository +  Source +  Edit + +
+
+
+
proc findCurrentTag(project: Project): Release {....raises: [ValueError, Exception,
+    OSError, ResultError[system.void], ResultError[errors.git_error_code]],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +find the current release tag of a project +  Source +  Edit + +
+
+
+
proc findCurrentTag(project: var Project): Release {....raises: [Exception,
+    OSError, ResultError[system.void], ValueError,
+    ResultError[errors.git_error_code]],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +convenience to fetch tags and then find the current release tag +  Source +  Edit + +
+
+
+
proc findProject(project: var Project; dir: string; parent: Project = nil): bool {....raises: [
+    OSError, ValueError, IOError, Exception, KeyError, ERecoverableError,
+    EOFError, ResultError[system.void], ResultError[errors.git_error_code]], tags: [
+    ReadDirEffect, ReadEnvEffect, ReadIOEffect, RootEffect, WriteIOEffect,
+    WriteEnvEffect, WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +locate a project starting from dir and set its parent if applicable +  Source +  Edit + +
+
+
+
proc findRepositoryUrl(project: Project; name = defaultRemote): Option[Uri] {....raises: [
+    Exception, OSError, ResultError[system.void], ValueError,
+    ResultError[errors.git_error_code], Exception, ValueError],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +find the (remote?) url to a given local repository +  Source +  Edit + +
+
+
+
proc forkTarget(project: Project): ForkTargetResult {....raises: [ValueError],
+    tags: [].}
+
+ +try to determine a github source of a project so that we can fork it +  Source +  Edit + +
+
+
+
proc getHeadOid(project: Project): GitResult[GitOid] {.
+    ...raises: [ValueError, Exception, OSError, ResultError[system.void]],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +retrieve the #head oid from the project's repository +  Source +  Edit + +
+
+
+
proc getProjectIn(group: ProjectGroup; directory: string): Project {.
+    ...raises: [KeyError, ValueError], tags: [].}
+
+ +retrieve a project via its path +  Source +  Edit + +
+
+
+
proc guessVersion(project: Project): Version {.
+    ...raises: [IOError, Exception, ValueError],
+    tags: [ReadDirEffect, ReadIOEffect, RootEffect].}
+
+ +a poor man's measure of project version; pukes on comments +  Source +  Edit + +
+
+
+
proc hasProjectIn(group: ProjectGroup; directory: string): bool {....raises: [],
+    tags: [].}
+
+ +true if a project is stored at the given directory +  Source +  Edit + +
+
+
+
proc importName(linked: LinkedSearchResult): string {....raises: [], tags: [].}
+
+ +a uniform name usable in code for imports +  Source +  Edit + +
+
+
+
proc importName(project: Project): string {....raises: [], tags: [].}
+
+ +a uniform name usable in code for imports +  Source +  Edit + +
+
+
+
proc inventRelease(project: var Project) {....raises: [Exception, OSError,
+    ResultError[system.void], ValueError, ResultError[errors.git_error_code]],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +compute the most accurate release specification for the project +  Source +  Edit + +
+
+
+
proc knowVersion(project: var Project): Version {....raises: [KeyError, ValueError,
+    Exception, IOError, OSError, ERecoverableError, EOFError], tags: [
+    RootEffect, ReadDirEffect, ReadIOEffect, ReadEnvEffect, WriteEnvEffect,
+    ExecIOEffect, WriteIOEffect, WriteDirEffect, TimeEffect].}
+
+ +pull out all the stops to determine the version of a project +  Source +  Edit + +
+
+
+
proc mgetProjectIn(group: var ProjectGroup; directory: string): var Project {.
+    ...raises: [KeyError, ValueError], tags: [].}
+
+ +retrieve a mutable project via its path +  Source +  Edit + +
+
+
+
proc newProject(nimble: Target): Project {.
+    ...raises: [ValueError, OSError, Exception],
+    tags: [ReadDirEffect, ReadIOEffect, WriteIOEffect, RootEffect].}
+
+ +instantiate a new project from the given .nimble +  Source +  Edit + +
+
+
+
proc newProjectGroup(flags: set[Flag] = defaultFlags): ProjectGroup {.
+    ...raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc nextTagFor(tags: GitTagTable; version: Version): string {.
+    ...raises: [ValueError], tags: [].}
+
+ +produce a new tag given previous tags +  Source +  Edit + +
+
+
+
proc nimbleDir(project: Project): string {.
+    ...raises: [IOError, ValueError, OSError],
+    tags: [ReadEnvEffect, ReadIOEffect, ReadDirEffect].}
+
+ +the path to the project's dependencies +  Source +  Edit + +
+
+
+
proc numberOfNimblePaths(project: Project): int {....raises: [], tags: [].}
+
+ +simpler count of effective --nimblePaths +  Source +  Edit + +
+
+
+
proc pathForName(group: ProjectGroup; name: string): Option[string] {.
+    ...raises: [], tags: [].}
+
+ +try to retrieve the directory for a given import name in the group +  Source +  Edit + +
+
+
+
proc promote(project: Project; name = defaultRemote; user: HubResult = nil): bool {....raises: [
+    Exception, ValueError, OSError, ResultError[system.void],
+    ResultError[errors.git_error_code]], tags: [RootEffect, ReadEnvEffect,
+    ReadIOEffect, ReadDirEffect, TimeEffect, WriteIOEffect].}
+
+ +promote a project's remote to a user's repo, if it's theirs +  Source +  Edit + +
+
+
+
proc promoteRemoteLike(project: Project; url: Uri; name = defaultRemote): bool {....raises: [
+    ValueError, Exception, OSError, ResultError[system.void], Exception,
+    ValueError, ResultError[errors.git_error_code], Exception, ValueError],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +true if we were able to promote a url to be our new ssh origin +  Source +  Edit + +
+
+
+
proc refresh(project: var Project) {....raises: [ValueError, OSError, IOError,
+    Exception, KeyError, ERecoverableError, EOFError, ResultError[system.void],
+    ResultError[errors.git_error_code]], tags: [ReadIOEffect, RootEffect,
+    ReadDirEffect, WriteIOEffect, ReadEnvEffect, WriteEnvEffect, WriteDirEffect,
+    ExecIOEffect, TimeEffect].}
+
+ +appropriate to run to scan for and set some basic project data +  Source +  Edit + +
+
+
+
proc releaseSummary(project: Project): string {.
+    ...raises: [ValueError, Exception, OSError, ResultError[system.void]],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +summarize a project's tree using whatever we can +  Source +  Edit + +
+
+
+
proc relocateDependency(parent: var Project; project: var Project) {....raises: [
+    OSError, Exception, ResultError[system.void], ValueError,
+    ResultError[errors.git_error_code], IOError, KeyError, ERecoverableError,
+    EOFError, SyntaxError, StudyError, RegexInternalError, InvalidUnicodeError], tags: [
+    ReadDirEffect, ReadEnvEffect, RootEffect, ReadIOEffect, WriteEnvEffect,
+    ExecIOEffect, WriteIOEffect, WriteDirEffect, TimeEffect].}
+
+ +try to rename a project to more accurately reflect tag or version +  Source +  Edit + +
+
+
+
proc removeSearchPath(project: Project; path: string): bool {....raises: [
+    ValueError, OSError, IOError, Exception, KeyError, ERecoverableError,
+    EOFError, SyntaxError, StudyError, RegexInternalError, InvalidUnicodeError], tags: [
+    ReadDirEffect, ReadIOEffect, RootEffect, WriteIOEffect, ReadEnvEffect,
+    WriteEnvEffect, WriteDirEffect].}
+
+ +remove a search path from the project's nim.cfg +  Source +  Edit + +
+
+
+
proc removeSearchPath(project: var Project; path: string): bool {....raises: [
+    ValueError, OSError, IOError, Exception, KeyError, ERecoverableError,
+    EOFError, SyntaxError, StudyError, RegexInternalError, InvalidUnicodeError], tags: [
+    ReadDirEffect, ReadIOEffect, RootEffect, WriteIOEffect, ReadEnvEffect,
+    WriteEnvEffect, WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ +remove a search path from the project's nim.cfg; reload config +  Source +  Edit + +
+
+
+
proc repoLockReady(project: Project): bool {.
+    ...raises: [Exception, OSError, ResultError[system.void], ValueError],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +true if a project's git repo is ready to be locked +  Source +  Edit + +
+
+
+
proc requirementChangingCommits(project: Project): RequirementsTags {.
+    ...raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc runSomething(project: Project; exe: string; args: seq[string];
+                  opts = {poParentStreams}): RunOutput {.
+    ...raises: [IOError, ValueError, OSError, Exception], tags: [ReadEnvEffect,
+    ReadIOEffect, ReadDirEffect, RootEffect, WriteEnvEffect, ExecIOEffect].}
+
+ +run something against a particular project +  Source +  Edit + +
+
+
+
proc runSomething(project: var Project; exe: string; args: seq[string];
+                  opts = {poParentStreams}): RunOutput {....raises: [Exception,
+    ValueError, OSError, IOError, KeyError, ERecoverableError, EOFError], tags: [
+    RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteEnvEffect,
+    ExecIOEffect, WriteIOEffect, WriteDirEffect, TimeEffect].}
+
+ +run something against a particular project, fetching its config first +  Source +  Edit + +
+
+
+
proc setHeadToRelease(project: var Project; release: Release;
+                      paths: seq[string] = @[]): bool {.
+    ...raises: [Exception, OSError, ResultError[system.void], ValueError],
+    tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ +advance the head of a project to a particular release; supply paths to limit the checkout to the files/globs +  Source +  Edit + +
+
+
+
proc sortByVersion(tags: GitTagTable): GitTagTable {.
+    ...raises: [ValueError, Exception], tags: [RootEffect].}
+
+ +re-order an ordered table to match version sorting +  Source +  Edit + +
+
+
+
proc versionChangingCommits(project: var Project): VersionTags {....raises: [
+    Exception, OSError, ResultError[system.void], ValueError, IOError, KeyError,
+    ERecoverableError, EOFError, ResultError[errors.git_error_code]], tags: [
+    ReadEnvEffect, ReadDirEffect, RootEffect, ReadIOEffect, WriteIOEffect,
+    WriteEnvEffect, WriteDirEffect, ExecIOEffect, TimeEffect].}
+
+ + +  Source +  Edit + +
+
+ +
+
+

Iterators

+
+
+
iterator asFoundVia(group: var ProjectGroup; config: ConfigRef; repo: string): var Project {.
+    ...raises: [OSError, ValueError, IOError, Exception],
+    tags: [ReadDirEffect, ReadEnvEffect, ReadIOEffect, RootEffect].}
+
+ +yield projects from the group in the same order that they may be resolved by the compiler, if at all, given a particular configuration +  Source +  Edit + +
+
+
+
iterator matchingBranches(project: Project; name: string): GitReference {....raises: [
+    Exception, OSError, ResultError[system.void], ValueError,
+    ResultError[errors.git_error_code], ResultError[system.void], Exception,
+    OSError], tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ + +  Source +  Edit + +
+
+
+
iterator matchingBranches(project: Project; oid: GitOid): GitReference {....raises: [
+    Exception, OSError, ResultError[system.void], ValueError,
+    ResultError[errors.git_error_code], ResultError[system.void], Exception,
+    OSError], tags: [ReadEnvEffect, ReadDirEffect, RootEffect].}
+
+ + +  Source +  Edit + +
+
+
+
iterator missingSearchPaths(project: Project; target: Project): string {.
+    ...raises: [KeyError, ValueError, OSError, Exception],
+    tags: [ReadDirEffect, RootEffect].}
+
+ +one (or more?) paths to the target package which are apparently missing from the project's search paths +  Source +  Edit + +
+
+
+
iterator missingSearchPaths(project: Project; target: var Project): string {....raises: [
+    Exception, ValueError, OSError, IOError, KeyError, ERecoverableError,
+    EOFError], tags: [ReadDirEffect, RootEffect, ReadEnvEffect, ReadIOEffect,
+                      WriteEnvEffect, ExecIOEffect, WriteIOEffect,
+                      WriteDirEffect, TimeEffect].}
+
+ +one (or more?) path to the target package which are apparently missing from the project's search paths; this will resolve up the parent tree to find the highest project in which to modify a configuration +  Source +  Edit + +
+
+ +
+
+

Templates

+
+
+
template gitDir(project: Project): string
+
+ + +  Source +  Edit + +
+
+
+
template hasGit(project: Project): bool
+
+ + +  Source +  Edit + +
+
+
+
template hasHg(project: Project): bool
+
+ + +  Source +  Edit + +
+
+
+
template hasLocalDeps(project: Project): bool
+
+ + +  Source +  Edit + +
+
+
+
template hasNimph(project: Project): bool
+
+ + +  Source +  Edit + +
+
+
+
template hasReleaseTag(project: Project): bool
+
+ + +  Source +  Edit + +
+
+
+
template hgDir(project: Project): string
+
+ + +  Source +  Edit + +
+
+
+
template localDeps(project: Project): string
+
+ + +  Source +  Edit + +
+
+
+
template nimCfg(project: Project): Target
+
+ + +  Source +  Edit + +
+
+
+
template nimphConfig(project: Project): string
+
+ + +  Source +  Edit + +
+
+
+
template packageDirectory(project: Project): string {....deprecated.}
+
+
+ Deprecated +
+ + +  Source +  Edit + +
+
+
+
template repo(project: Project): string
+
+ + +  Source +  Edit + +
+
+
+
template returnToHeadAfter(project: var Project; body: untyped)
+
+ +run some code in the body if you can, and then return the project to where it was in git before you left +  Source +  Edit + +
+
+ +
+ + +
+
+ +
+ +
+
+
+ + + diff --git a/nimph/project.idx b/nimph/project.idx new file mode 100644 index 0000000..ef28972 --- /dev/null +++ b/nimph/project.idx @@ -0,0 +1,81 @@ +Project nimph/project.html#Project project: Project +ProjectGroup nimph/project.html#ProjectGroup project: ProjectGroup +Releases nimph/project.html#Releases project: Releases +LinkedSearchResult nimph/project.html#LinkedSearchResult project: LinkedSearchResult +Requirements nimph/project.html#Requirements project: Requirements +RequirementsTags nimph/project.html#RequirementsTags project: RequirementsTags +repo nimph/project.html#repo.t,Project project: repo(project: Project): string +gitDir nimph/project.html#gitDir.t,Project project: gitDir(project: Project): string +hasGit nimph/project.html#hasGit.t,Project project: hasGit(project: Project): bool +hgDir nimph/project.html#hgDir.t,Project project: hgDir(project: Project): string +hasHg nimph/project.html#hasHg.t,Project project: hasHg(project: Project): bool +nimphConfig nimph/project.html#nimphConfig.t,Project project: nimphConfig(project: Project): string +hasNimph nimph/project.html#hasNimph.t,Project project: hasNimph(project: Project): bool +localDeps nimph/project.html#localDeps.t,Project project: localDeps(project: Project): string +packageDirectory nimph/project.html#packageDirectory.t,Project project: packageDirectory(project: Project): string +hasReleaseTag nimph/project.html#hasReleaseTag.t,Project project: hasReleaseTag(project: Project): bool +nimCfg nimph/project.html#nimCfg.t,Project project: nimCfg(project: Project): Target +hasLocalDeps nimph/project.html#hasLocalDeps.t,Project project: hasLocalDeps(project: Project): bool +nimbleDir nimph/project.html#nimbleDir,Project project: nimbleDir(project: Project): string +`$` nimph/project.html#$,Project project: `$`(project: Project): string +fetchConfig nimph/project.html#fetchConfig,Project project: fetchConfig(project: var Project; force = false): bool +runSomething nimph/project.html#runSomething,Project,string,seq[string] project: runSomething(project: Project; exe: string; args: seq[string];\n opts = {poParentStreams}): RunOutput +runSomething nimph/project.html#runSomething,Project,string,seq[string]_2 project: runSomething(project: var Project; exe: string; args: seq[string];\n opts = {poParentStreams}): RunOutput +guessVersion nimph/project.html#guessVersion,Project project: guessVersion(project: Project): Version +fetchDump nimph/project.html#fetchDump,Project,string project: fetchDump(project: var Project; package: string; refresh = false): bool +fetchDump nimph/project.html#fetchDump,Project project: fetchDump(project: var Project; refresh = false): bool +knowVersion nimph/project.html#knowVersion,Project project: knowVersion(project: var Project): Version +newProject nimph/project.html#newProject,Target project: newProject(nimble: Target): Project +getHeadOid nimph/project.html#getHeadOid,Project project: getHeadOid(project: Project): GitResult[GitOid] +demandHead nimph/project.html#demandHead,GitRepository project: demandHead(repository: GitRepository): string +demandHead nimph/project.html#demandHead,Project project: demandHead(project: Project): string +matchingBranches nimph/project.html#matchingBranches.i,Project,GitOid project: matchingBranches(project: Project; oid: GitOid): GitReference +matchingBranches nimph/project.html#matchingBranches.i,Project,string project: matchingBranches(project: Project; name: string): GitReference +sortByVersion nimph/project.html#sortByVersion,GitTagTable project: sortByVersion(tags: GitTagTable): GitTagTable +fetchTagTable nimph/project.html#fetchTagTable,Project project: fetchTagTable(project: var Project) +releaseSummary nimph/project.html#releaseSummary,Project project: releaseSummary(project: Project): string +cuteRelease nimph/project.html#cuteRelease,Project project: cuteRelease(project: Project): string +findCurrentTag nimph/project.html#findCurrentTag,Project project: findCurrentTag(project: Project): Release +findCurrentTag nimph/project.html#findCurrentTag,Project_2 project: findCurrentTag(project: var Project): Release +inventRelease nimph/project.html#inventRelease,Project project: inventRelease(project: var Project) +findRepositoryUrl nimph/project.html#findRepositoryUrl,Project project: findRepositoryUrl(project: Project; name = defaultRemote): Option[Uri] +createUrl nimph/project.html#createUrl,Project project: createUrl(project: Project; refresh = false): Uri +createUrl nimph/project.html#createUrl,Project_2 project: createUrl(project: var Project; refresh = false): Uri +refresh nimph/project.html#refresh,Project project: refresh(project: var Project) +findProject nimph/project.html#findProject,Project,string,Project project: findProject(project: var Project; dir: string; parent: Project = nil): bool +newProjectGroup nimph/project.html#newProjectGroup,set[Flag] project: newProjectGroup(flags: set[Flag] = defaultFlags): ProjectGroup +importName nimph/project.html#importName,LinkedSearchResult project: importName(linked: LinkedSearchResult): string +importName nimph/project.html#importName,Project project: importName(project: Project): string +hasProjectIn nimph/project.html#hasProjectIn,ProjectGroup,string project: hasProjectIn(group: ProjectGroup; directory: string): bool +getProjectIn nimph/project.html#getProjectIn,ProjectGroup,string project: getProjectIn(group: ProjectGroup; directory: string): Project +mgetProjectIn nimph/project.html#mgetProjectIn,ProjectGroup,string project: mgetProjectIn(group: var ProjectGroup; directory: string): var Project +availableProjects nimph/project.html#availableProjects,Project project: availableProjects(project: Project): ProjectGroup +`==` nimph/project.html#==,Project,Project project: `==`(a, b: Project): bool +removeSearchPath nimph/project.html#removeSearchPath,Project,string project: removeSearchPath(project: Project; path: string): bool +removeSearchPath nimph/project.html#removeSearchPath,Project,string_2 project: removeSearchPath(project: var Project; path: string): bool +excludeSearchPath nimph/project.html#excludeSearchPath,Project,string project: excludeSearchPath(project: Project; path: string): bool +excludeSearchPath nimph/project.html#excludeSearchPath,Project,string_2 project: excludeSearchPath(project: var Project; path: string): bool +addSearchPath nimph/project.html#addSearchPath,Project,string project: addSearchPath(project: Project; path: string): bool +addSearchPath nimph/project.html#addSearchPath,Project,string_2 project: addSearchPath(project: var Project; path: string): bool +missingSearchPaths nimph/project.html#missingSearchPaths.i,Project,Project project: missingSearchPaths(project: Project; target: Project): string +missingSearchPaths nimph/project.html#missingSearchPaths.i,Project,Project_2 project: missingSearchPaths(project: Project; target: var Project): string +addMissingSearchPathsTo nimph/project.html#addMissingSearchPathsTo,Project,Project project: addMissingSearchPathsTo(project: var Project; cloned: var Project) +relocateDependency nimph/project.html#relocateDependency,Project,Project project: relocateDependency(parent: var Project; project: var Project) +addMissingUpstreams nimph/project.html#addMissingUpstreams,Project project: addMissingUpstreams(project: Project) +clone nimph/project.html#clone,Project,Uri,string,Project project: clone(project: var Project; url: Uri; name: string; cloned: var Project): bool +allImportTargets nimph/project.html#allImportTargets,ConfigRef,string project: allImportTargets(config: ConfigRef; repo: string): OrderedTableRef[Target,\n LinkedSearchResult] +asFoundVia nimph/project.html#asFoundVia.i,ProjectGroup,ConfigRef,string project: asFoundVia(group: var ProjectGroup; config: ConfigRef; repo: string): var Project +countNimblePaths nimph/project.html#countNimblePaths,Project project: countNimblePaths(project: Project): tuple[local: int, global: int,\n paths: seq[string]] +numberOfNimblePaths nimph/project.html#numberOfNimblePaths,Project project: numberOfNimblePaths(project: Project): int +forkTarget nimph/project.html#forkTarget,Project project: forkTarget(project: Project): ForkTargetResult +promoteRemoteLike nimph/project.html#promoteRemoteLike,Project,Uri project: promoteRemoteLike(project: Project; url: Uri; name = defaultRemote): bool +promote nimph/project.html#promote,Project,HubResult project: promote(project: Project; name = defaultRemote; user: HubResult = nil): bool +requirementChangingCommits nimph/project.html#requirementChangingCommits,Project project: requirementChangingCommits(project: Project): RequirementsTags +repoLockReady nimph/project.html#repoLockReady,Project project: repoLockReady(project: Project): bool +bestRelease nimph/project.html#bestRelease,GitTagTable,RollGoal project: bestRelease(tags: GitTagTable; goal: RollGoal): Version +betterReleaseExists nimph/project.html#betterReleaseExists,Project,RollGoal project: betterReleaseExists(project: var Project; goal: RollGoal): bool +nextTagFor nimph/project.html#nextTagFor,GitTagTable,Version project: nextTagFor(tags: GitTagTable; version: Version): string +setHeadToRelease nimph/project.html#setHeadToRelease,Project,Release,seq[string] project: setHeadToRelease(project: var Project; release: Release;\n paths: seq[string] = @[]): bool +returnToHeadAfter nimph/project.html#returnToHeadAfter.t,Project,untyped project: returnToHeadAfter(project: var Project; body: untyped) +versionChangingCommits nimph/project.html#versionChangingCommits,Project project: versionChangingCommits(project: var Project): VersionTags +pathForName nimph/project.html#pathForName,ProjectGroup,string project: pathForName(group: ProjectGroup; name: string): Option[string] diff --git a/nimph/requirement.html b/nimph/requirement.html new file mode 100644 index 0000000..37429bc --- /dev/null +++ b/nimph/requirement.html @@ -0,0 +1,490 @@ + + + + + + + + + + + + + + + + + + +nimph/requirement + + + + + + + + +
+
+

nimph/requirement

+
+ +   Source +  Edit + +
+
+ +

+ +
+

Types

+
+
+
Requirement = ref object
+  identity*: string
+  operator*: Operator
+  release*: Release
+  child*: Requirement
+  notes*: string
+
+
+ + +  Source +  Edit + +
+
+
+
Requires = OrderedTableRef[Requirement, Requirement]
+
+ + +  Source +  Edit + +
+
+ +
+
+

Procs

+
+
+
proc `$`(req: Requirement): string {....raises: [ValueError], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc adopt(parent: var Requirement; child: Requirement) {....raises: [], tags: [].}
+
+ +combine two requirements +  Source +  Edit + +
+
+
+
proc asUrlAnchor(release: Release): string {....raises: [ValueError, Exception],
+    tags: [RootEffect].}
+
+ +produce a suitable url anchor referencing a release +  Source +  Edit + +
+
+
+
proc describe(requirement: Requirement): string {....raises: [ValueError], tags: [].}
+
+ +describe a requirement and where it may have come from, if possible +  Source +  Edit + +
+
+
+
proc hash(req: Requirement): Hash {....raises: [], tags: [].}
+
+ +uniquely identify a requirement +  Source +  Edit + +
+
+
+
proc importName(requirement: Requirement): string {.
+    ...raises: [Exception, ValueError], tags: [RootEffect].}
+
+ +guess the import name given only a requirement +  Source +  Edit + +
+
+
+
proc isSatisfiedBy(req: Requirement; spec: Release): bool {.
+    ...raises: [ValueError, Exception], tags: [RootEffect].}
+
+ +true if the requirement is satisfied by the specification +  Source +  Edit + +
+
+
+
proc isUrl(requirement: Requirement): bool {....raises: [], tags: [].}
+
+ +a terrible way to determine if the requirement is a url +  Source +  Edit + +
+
+
+
proc isValid(req: Requirement): bool {....raises: [], tags: [].}
+
+ +true if the requirement seems sensible +  Source +  Edit + +
+
+
+
proc isVirtual(requirement: Requirement): bool {....raises: [], tags: [].}
+
+ +is the requirement something we should overlook? +  Source +  Edit + +
+
+
+
proc newRequirement(id: string; operator: Operator; release: Release; notes = ""): Requirement {.
+    ...raises: [ValueError], tags: [].}
+
+ +create a requirement from a release, eg. that of a project +  Source +  Edit + +
+
+
+
proc newRequirement(id: string; operator: Operator; spec: string): Requirement {.
+    ...raises: [ValueError], tags: [].}
+
+ +parse a requirement from a string +  Source +  Edit + +
+
+
+
proc parseRequires(input: string): Option[Requires] {....raises: [Exception],
+    tags: [RootEffect].}
+
+ +parse a requires string output from nimble dump also supports ~ and ^ and * operators a la cargo +  Source +  Edit + +
+
+
+
proc toUrl(requirement: Requirement): Option[Uri] {.
+    ...raises: [Exception, ValueError], tags: [RootEffect].}
+
+ +try to determine the distribution url for a requirement +  Source +  Edit + +
+
+ +
+
+

Iterators

+
+
+
iterator children(parent: Requirement; andParent = false): Requirement {.
+    ...raises: [], tags: [].}
+
+ +yield the children of a parent requirement +  Source +  Edit + +
+
+
+
iterator orphans(parent: Requirement): Requirement {....raises: [ValueError],
+    tags: [].}
+
+ +yield each requirement without their kids +  Source +  Edit + +
+
+ +
+ +
+
+ +
+ +
+
+
+ + + diff --git a/nimph/requirement.idx b/nimph/requirement.idx new file mode 100644 index 0000000..a932dd2 --- /dev/null +++ b/nimph/requirement.idx @@ -0,0 +1,18 @@ +Requirement nimph/requirement.html#Requirement requirement: Requirement +Requires nimph/requirement.html#Requires requirement: Requires +`$` nimph/requirement.html#$,Requirement requirement: `$`(req: Requirement): string +isValid nimph/requirement.html#isValid,Requirement requirement: isValid(req: Requirement): bool +isSatisfiedBy nimph/requirement.html#isSatisfiedBy,Requirement,Release requirement: isSatisfiedBy(req: Requirement; spec: Release): bool +hash nimph/requirement.html#hash,Requirement requirement: hash(req: Requirement): Hash +adopt nimph/requirement.html#adopt,Requirement,Requirement requirement: adopt(parent: var Requirement; child: Requirement) +children nimph/requirement.html#children.i,Requirement requirement: children(parent: Requirement; andParent = false): Requirement +newRequirement nimph/requirement.html#newRequirement,string,Operator,Release,string requirement: newRequirement(id: string; operator: Operator; release: Release; notes = ""): Requirement +newRequirement nimph/requirement.html#newRequirement,string,Operator,string requirement: newRequirement(id: string; operator: Operator; spec: string): Requirement +orphans nimph/requirement.html#orphans.i,Requirement requirement: orphans(parent: Requirement): Requirement +parseRequires nimph/requirement.html#parseRequires,string requirement: parseRequires(input: string): Option[Requires] +isVirtual nimph/requirement.html#isVirtual,Requirement requirement: isVirtual(requirement: Requirement): bool +isUrl nimph/requirement.html#isUrl,Requirement requirement: isUrl(requirement: Requirement): bool +asUrlAnchor nimph/requirement.html#asUrlAnchor,Release requirement: asUrlAnchor(release: Release): string +toUrl nimph/requirement.html#toUrl,Requirement requirement: toUrl(requirement: Requirement): Option[Uri] +importName nimph/requirement.html#importName,Requirement requirement: importName(requirement: Requirement): string +describe nimph/requirement.html#describe,Requirement requirement: describe(requirement: Requirement): string diff --git a/nimph/runner.html b/nimph/runner.html new file mode 100644 index 0000000..d0bb5c4 --- /dev/null +++ b/nimph/runner.html @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + +nimph/runner + + + + + + + + +
+
+

nimph/runner

+
+
+
+ +     Dark Mode +
+ +
+ Search: +
+
+ Group by: + +
+ + +
+   Source +  Edit + +
+
+ +

+
+

Imports

+
+spec +
+
+

Types

+
+
+
RunOutput = object
+  arguments*: seq[string]
+  output*: string
+  ok*: bool
+
+
+ + +  Source +  Edit + +
+
+ +
+
+

Procs

+
+
+
proc runSomething(exe: string; args: seq[string]; options: set[ProcessOption];
+                  nimbleDir = ""): RunOutput {.
+    ...raises: [OSError, ValueError, Exception, IOError], tags: [ReadDirEffect,
+    ReadEnvEffect, ReadIOEffect, RootEffect, WriteEnvEffect, ExecIOEffect].}
+
+ +run a program with arguments, perhaps with a particular nimbleDir +  Source +  Edit + +
+
+
+
proc stripPkgs(nimbleDir: string): string {....raises: [], tags: [].}
+
+ +omit and trailing /PkgDir from a path +  Source +  Edit + +
+
+ +
+ +
+
+ +
+ +
+
+
+ + + diff --git a/nimph/runner.idx b/nimph/runner.idx new file mode 100644 index 0000000..63dcdfc --- /dev/null +++ b/nimph/runner.idx @@ -0,0 +1,3 @@ +RunOutput nimph/runner.html#RunOutput runner: RunOutput +stripPkgs nimph/runner.html#stripPkgs,string runner: stripPkgs(nimbleDir: string): string +runSomething nimph/runner.html#runSomething,string,seq[string],set[ProcessOption],string runner: runSomething(exe: string; args: seq[string]; options: set[ProcessOption];\n nimbleDir = ""): RunOutput diff --git a/nimph/spec.html b/nimph/spec.html new file mode 100644 index 0000000..3954055 --- /dev/null +++ b/nimph/spec.html @@ -0,0 +1,868 @@ + + + + + + + + + + + + + + + + + + +nimph/spec + + + + + + + + +
+
+

nimph/spec

+
+
+
+ +     Dark Mode +
+ +
+ Search: +
+
+ Group by: + +
+ + +
+   Source +  Edit + +
+
+ +

+
+

Types

+
+
+
Flag {.pure.} = enum
+  Quiet, Strict, Force, Dry, Safe, Network
+
+ + +  Source +  Edit + +
+
+
+
ForkTargetResult = object
+  ok*: bool
+  why*: string
+  owner*: string
+  repo*: string
+  url*: Uri
+
+
+ + +  Source +  Edit + +
+
+
+
RollGoal = enum
+  Upgrade = "upgrade", Downgrade = "downgrade", Specific = "roll"
+
+ + +  Source +  Edit + +
+
+ +
+
+

Consts

+
+
+
configFile = "nimph.json"
+
+ + +  Source +  Edit + +
+
+
+
defaultFlags: set[Flag] = {Flag.Quiet, Flag.Strict}
+
+ + +  Source +  Edit + +
+
+
+
defaultRemote = "origin"
+
+ + +  Source +  Edit + +
+
+
+
DepDir = "/deps/"
+
+ + +  Source +  Edit + +
+
+
+
dotGit = ".git"
+
+ + +  Source +  Edit + +
+
+
+
dotHg = ".hg"
+
+ + +  Source +  Edit + +
+
+
+
dotNimble = ".nimble"
+
+ + +  Source +  Edit + +
+
+ +
+
emptyRelease = "#head"
+
+ + +  Source +  Edit + +
+
+
+
excludeMissingLazyPaths = true
+
+ + +  Source +  Edit + +
+
+
+
excludeMissingSearchPaths = false
+
+ + +  Source +  Edit + +
+
+
+
ghTokenEnv = "NIMPH_TOKEN"
+
+ + +  Source +  Edit + +
+
+
+
ghTokenFn = "github_api_token"
+
+ + +  Source +  Edit + +
+
+
+
hubTokenFn = ".config/hub"
+
+ + +  Source +  Edit + +
+
+
+
nimbleMeta = "nimblemeta.json"
+
+ + +  Source +  Edit + +
+
+
+
NimCfg = "nim.cfg"
+
+ + +  Source +  Edit + +
+
+
+
officialPackages = "packages_official.json"
+
+ + +  Source +  Edit + +
+
+
+
PkgDir = "/pkgs/"
+
+ + +  Source +  Edit + +
+
+
+
shortDate = (patterns: [22, 33, 1, 45, 11, 33, 1, 45, 1],
+             formatStr: "yyyy-MM-dd")
+
+ + +  Source +  Edit + +
+
+
+
stalePackages = 14
+
+ + +  Source +  Edit + +
+
+
+
upstreamRemote = "upstream"
+
+ + +  Source +  Edit + +
+
+
+
WhatHappensInVegas = false
+
+ + +  Source +  Edit + +
+
+
+
writeNimbleDirPaths = false
+
+ + +  Source +  Edit + +
+
+ +
+
+

Procs

+
+
+
proc bare(url: Uri): Uri {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc bareUrlsAreEqual(a, b: Uri): bool {....raises: [], tags: [].}
+
+ +compare two urls without regard to their anchors +  Source +  Edit + +
+
+
+
proc convertToGit(uri: Uri): Uri {....raises: [], tags: [].}
+
+ +convert a url from any format (we will normalize it) into something like git://github.com/disruptek/nimph.git +  Source +  Edit + +
+
+
+
proc convertToSsh(uri: Uri): Uri {....raises: [], tags: [].}
+
+ +convert a url from any format (we will normalize it) into something like git@github.com:disruptek/nimph.git +  Source +  Edit + +
+
+
+
proc destylize(s: string): string {....raises: [], tags: [].}
+
+ +this is how we create a uniformly comparable token +  Source +  Edit + +
+
+
+
proc forkTarget(url: Uri): ForkTargetResult {....raises: [ValueError], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc hash(url: Uri): Hash {....raises: [], tags: [].}
+
+ +help hash URLs +  Source +  Edit + +
+
+
+
proc importName(path: string): string {....raises: [], tags: [].}
+
+ +a uniform name usable in code for imports +  Source +  Edit + +
+
+
+
proc importName(url: Uri): string {....raises: [ValueError], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc normalizeUrl(uri: Uri): Uri {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc packageName(name: string): string {....raises: [], tags: [].}
+
+ +return a string that is plausible as a package name +  Source +  Edit + +
+
+
+
proc packageName(url: Uri): string {....raises: [], tags: [].}
+
+ +guess the name of a package from a url +  Source +  Edit + +
+
+
+
proc pathToImport(path: string): string {....raises: [], tags: [].}
+
+ +calculate how a path will be imported by the compiler +  Source +  Edit + +
+
+
+
proc prepareForClone(uri: Uri): Uri {....raises: [], tags: [].}
+
+ +rewrite a url for the purposes of conducting a clone; this currently only has bearing on github urls, which must be rewritten to https if possible, since we cannot rely on the user's keys being correct +  Source +  Edit + +
+
+ +
+
+

Templates

+
+
+
template `//////`(a: string | AbsoluteFile | AbsoluteDir): string
+
+ + +  Source +  Edit + +
+
+
+
template `///`(a: AbsoluteFile | AbsoluteDir): string
+
+ + +  Source +  Edit + +
+
+
+
template `///`(a: string): string
+
+ + +  Source +  Edit + +
+
+
+
template isValid(url: Uri): bool
+
+ + +  Source +  Edit + +
+
+
+
template withinDirectory(path: string; body: untyped): untyped
+
+ + +  Source +  Edit + +
+
+ +
+ +
+
+ +
+ +
+
+
+ + + diff --git a/nimph/spec.idx b/nimph/spec.idx new file mode 100644 index 0000000..5af5691 --- /dev/null +++ b/nimph/spec.idx @@ -0,0 +1,48 @@ +`///` nimph/spec.html#///.t,string spec: `///`(a: string): string +`///` nimph/spec.html#///.t spec: `///`(a: AbsoluteFile | AbsoluteDir): string +`//////` nimph/spec.html#//////.t spec: `//////`(a: string | AbsoluteFile | AbsoluteDir): string +Flag nimph/spec.html#Flag spec: Flag +Upgrade nimph/spec.html#Upgrade RollGoal.Upgrade +Downgrade nimph/spec.html#Downgrade RollGoal.Downgrade +Specific nimph/spec.html#Specific RollGoal.Specific +RollGoal nimph/spec.html#RollGoal spec: RollGoal +ForkTargetResult nimph/spec.html#ForkTargetResult spec: ForkTargetResult +dotNimble nimph/spec.html#dotNimble spec: dotNimble +dotNimbleLink nimph/spec.html#dotNimbleLink spec: dotNimbleLink +dotGit nimph/spec.html#dotGit spec: dotGit +dotHg nimph/spec.html#dotHg spec: dotHg +DepDir nimph/spec.html#DepDir spec: DepDir +PkgDir nimph/spec.html#PkgDir spec: PkgDir +NimCfg nimph/spec.html#NimCfg spec: NimCfg +ghTokenFn nimph/spec.html#ghTokenFn spec: ghTokenFn +ghTokenEnv nimph/spec.html#ghTokenEnv spec: ghTokenEnv +hubTokenFn nimph/spec.html#hubTokenFn spec: hubTokenFn +stalePackages nimph/spec.html#stalePackages spec: stalePackages +configFile nimph/spec.html#configFile spec: configFile +nimbleMeta nimph/spec.html#nimbleMeta spec: nimbleMeta +officialPackages nimph/spec.html#officialPackages spec: officialPackages +emptyRelease nimph/spec.html#emptyRelease spec: emptyRelease +defaultRemote nimph/spec.html#defaultRemote spec: defaultRemote +upstreamRemote nimph/spec.html#upstreamRemote spec: upstreamRemote +excludeMissingSearchPaths nimph/spec.html#excludeMissingSearchPaths spec: excludeMissingSearchPaths +excludeMissingLazyPaths nimph/spec.html#excludeMissingLazyPaths spec: excludeMissingLazyPaths +writeNimbleDirPaths nimph/spec.html#writeNimbleDirPaths spec: writeNimbleDirPaths +shortDate nimph/spec.html#shortDate spec: shortDate +defaultFlags nimph/spec.html#defaultFlags spec: defaultFlags +WhatHappensInVegas nimph/spec.html#WhatHappensInVegas spec: WhatHappensInVegas +withinDirectory nimph/spec.html#withinDirectory.t,string,untyped spec: withinDirectory(path: string; body: untyped): untyped +isValid nimph/spec.html#isValid.t,Uri spec: isValid(url: Uri): bool +hash nimph/spec.html#hash,Uri spec: hash(url: Uri): Hash +bare nimph/spec.html#bare,Uri spec: bare(url: Uri): Uri +bareUrlsAreEqual nimph/spec.html#bareUrlsAreEqual,Uri,Uri spec: bareUrlsAreEqual(a, b: Uri): bool +pathToImport nimph/spec.html#pathToImport,string spec: pathToImport(path: string): string +normalizeUrl nimph/spec.html#normalizeUrl,Uri spec: normalizeUrl(uri: Uri): Uri +convertToGit nimph/spec.html#convertToGit,Uri spec: convertToGit(uri: Uri): Uri +convertToSsh nimph/spec.html#convertToSsh,Uri spec: convertToSsh(uri: Uri): Uri +prepareForClone nimph/spec.html#prepareForClone,Uri spec: prepareForClone(uri: Uri): Uri +packageName nimph/spec.html#packageName,string spec: packageName(name: string): string +packageName nimph/spec.html#packageName,Uri spec: packageName(url: Uri): string +importName nimph/spec.html#importName,string spec: importName(path: string): string +importName nimph/spec.html#importName,Uri spec: importName(url: Uri): string +forkTarget nimph/spec.html#forkTarget,Uri spec: forkTarget(url: Uri): ForkTargetResult +destylize nimph/spec.html#destylize,string spec: destylize(s: string): string diff --git a/nimph/thehub.html b/nimph/thehub.html new file mode 100644 index 0000000..caa72ed --- /dev/null +++ b/nimph/thehub.html @@ -0,0 +1,724 @@ + + + + + + + + + + + + + + + + + + +nimph/thehub + + + + + + + + +
+
+

nimph/thehub

+
+ +   Source +  Edit + +
+
+ +

+ +
+

Types

+
+
+
HubCommitMeta = object
+  url*: Uri
+  author*: HubContact
+  committer*: HubContact
+  message*: string
+  commentCount*: int
+  tree*: HubTree
+
+
+ + +  Source +  Edit + +
+
+
+
HubContact = object
+  name*: string
+  email*: string
+  date*: DateTime
+
+
+ + +  Source +  Edit + +
+
+
+
HubGroup = ref object of Group[Uri, HubResult]
+
+ + +  Source +  Edit + +
+
+
+
HubKind = enum
+  HubRelease, HubTag, HubCommit, HubRepo, HubIssue, HubPull, HubUser, HubCode
+
+ + +  Source +  Edit + +
+
+
+
HubResult = ref object
+  htmlUrl*: Uri
+  id*: int
+  number*: int
+  title*: string
+  body*: string
+  state*: string
+  name*: string
+  user*: HubResult
+  tagName*: string
+  targetCommitish*: string
+  sha*: string
+  created*: DateTime
+  updated*: DateTime
+  case kind*: HubKind
+  of HubCommit:
+      tree*: HubTree
+      author*: HubResult
+      committer*: HubResult
+      parents*: seq[HubTree]
+      commit*: HubCommitMeta
+
+  of HubTag:
+      tagger*: HubContact
+      `object`*: HubTree
+
+  of HubRelease:
+      draft*: bool
+      prerelease*: bool
+
+  of HubUser:
+      login*: string
+
+  of HubIssue:
+      closedBy*: HubResult
+
+  of HubPull:
+      mergedBy*: HubResult
+      merged*: bool
+
+  of HubCode:
+      path*: string
+      repository*: HubResult
+
+  of HubRepo:
+      fullname*: string
+      description*: string
+      watchers*: int
+      stars*: int
+      forks*: int
+      owner*: string
+      size*: int
+      pushed*: DateTime
+      issues*: int
+      clone*: Uri
+      git*: Uri
+      ssh*: Uri
+      web*: Uri
+      license*: string
+      branch*: string
+      original*: bool
+      score*: float
+
+  
+
+ + +  Source +  Edit + +
+
+
+
HubSort {.pure.} = enum
+  Ascending = "asc", Descending = "desc"
+
+ + +  Source +  Edit + +
+
+
+
HubSortBy {.pure.} = enum
+  Best = "", Stars = "stars", Forks = "forks", Updated = "updated"
+
+ + +  Source +  Edit + +
+
+
+
HubTree = object
+  sha*: string
+  url*: Uri
+  `type`*: string
+
+
+ + +  Source +  Edit + +
+
+
+
HubVerification = object
+  verified*: bool
+  reason*: string
+  signature*: string
+  payload*: string
+
+
+ + +  Source +  Edit + +
+
+ +
+
+

Consts

+
+
+
hubTime = (patterns: [22, 33, 1, 45, 11, 33, 1, 45, 1, 33, 1, 84, 7, 33, 1, 58,
+                      9, 33, 1, 58, 15, 33, 1, 90],
+           formatStr: "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'")
+
+ + +  Source +  Edit + +
+
+ +
+
+

Procs

+
+
+
proc add(group: var HubGroup; hub: HubResult) {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc authorize(request: Recallable): bool {.
+    ...raises: [Exception, IOError, KeyError],
+    tags: [ReadEnvEffect, ReadIOEffect, RootEffect, ReadDirEffect].}
+
+ +find and inject credentials into a github request +  Source +  Edit + +
+
+
+
proc findGithubToken(): Option[string] {....raises: [Exception, IOError],
+    tags: [ReadEnvEffect, ReadIOEffect, RootEffect, ReadDirEffect].}
+
+ +find a github token in one of several places +  Source +  Edit + +
+
+
+
proc forkHub(owner: string; repo: string): Option[HubResult] {....raises: [
+    KeyError, Exception, IOError, ValueError, RestError, OSError,
+    JsonParsingError, TimeParseError], tags: [RootEffect, ReadEnvEffect,
+    ReadIOEffect, ReadDirEffect, TimeEffect, WriteIOEffect].}
+
+ +attempt to fork an existing repository +  Source +  Edit + +
+
+
+
proc getGitHubUser(): Option[HubResult] {....raises: [Exception, IOError, KeyError,
+    RestError, ValueError, OSError, JsonParsingError, TimeParseError], tags: [
+    RootEffect, ReadEnvEffect, ReadIOEffect, ReadDirEffect, TimeEffect,
+    WriteIOEffect].}
+
+ +attempt to retrieve the authorized user +  Source +  Edit + +
+
+
+
proc init(result: var HubResult; js: JsonNode) {....raises: [KeyError, Exception],
+    tags: [RootEffect].}
+
+ +instantiate a new hub object using a jsonnode +  Source +  Edit + +
+
+
+
proc newHubCommitMeta(js: JsonNode): HubCommitMeta {.
+    ...raises: [KeyError, TimeParseError], tags: [TimeEffect].}
+
+ +collect some ingredients found in a typical commit +  Source +  Edit + +
+
+
+
proc newHubContact(js: JsonNode): HubContact {.
+    ...raises: [KeyError, TimeParseError], tags: [TimeEffect].}
+
+ +parse some json into a simple contact record +  Source +  Edit + +
+
+
+
proc newHubGroup(flags: set[Flag] = defaultFlags): HubGroup {....raises: [],
+    tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc newHubResult(kind: HubKind; js: JsonNode): HubResult {.
+    ...raises: [KeyError, TimeParseError, Exception],
+    tags: [TimeEffect, RootEffect].}
+
+ + +  Source +  Edit + +
+
+
+
proc newHubTree(js: JsonNode): HubTree {....raises: [KeyError], tags: [].}
+
+ +parse something like a commit tree +  Source +  Edit + +
+
+
+
proc renderShortly(r: HubResult): string {....raises: [ValueError], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc searchHub(keywords: seq[string]; sort = Best; order = Descending): Option[
+    HubGroup] {....raises: [Exception, IOError, ValueError, KeyError, RestError,
+                         OSError, JsonParsingError], tags: [RootEffect,
+    ReadEnvEffect, ReadIOEffect, ReadDirEffect, TimeEffect, WriteIOEffect].}
+
+ +search github for packages +  Source +  Edit + +
+
+ +
+ +
+
+ +
+ +
+
+
+ + + diff --git a/nimph/thehub.idx b/nimph/thehub.idx new file mode 100644 index 0000000..00e824f --- /dev/null +++ b/nimph/thehub.idx @@ -0,0 +1,31 @@ +hubTime nimph/thehub.html#hubTime thehub: hubTime +HubRelease nimph/thehub.html#HubRelease HubKind.HubRelease +HubTag nimph/thehub.html#HubTag HubKind.HubTag +HubCommit nimph/thehub.html#HubCommit HubKind.HubCommit +HubRepo nimph/thehub.html#HubRepo HubKind.HubRepo +HubIssue nimph/thehub.html#HubIssue HubKind.HubIssue +HubPull nimph/thehub.html#HubPull HubKind.HubPull +HubUser nimph/thehub.html#HubUser HubKind.HubUser +HubCode nimph/thehub.html#HubCode HubKind.HubCode +HubKind nimph/thehub.html#HubKind thehub: HubKind +HubTree nimph/thehub.html#HubTree thehub: HubTree +HubContact nimph/thehub.html#HubContact thehub: HubContact +HubVerification nimph/thehub.html#HubVerification thehub: HubVerification +HubCommitMeta nimph/thehub.html#HubCommitMeta thehub: HubCommitMeta +HubResult nimph/thehub.html#HubResult thehub: HubResult +HubGroup nimph/thehub.html#HubGroup thehub: HubGroup +HubSort nimph/thehub.html#HubSort thehub: HubSort +HubSortBy nimph/thehub.html#HubSortBy thehub: HubSortBy +renderShortly nimph/thehub.html#renderShortly,HubResult thehub: renderShortly(r: HubResult): string +findGithubToken nimph/thehub.html#findGithubToken thehub: findGithubToken(): Option[string] +newHubContact nimph/thehub.html#newHubContact,JsonNode thehub: newHubContact(js: JsonNode): HubContact +newHubTree nimph/thehub.html#newHubTree,JsonNode thehub: newHubTree(js: JsonNode): HubTree +newHubCommitMeta nimph/thehub.html#newHubCommitMeta,JsonNode thehub: newHubCommitMeta(js: JsonNode): HubCommitMeta +init nimph/thehub.html#init,HubResult,JsonNode thehub: init(result: var HubResult; js: JsonNode) +newHubResult nimph/thehub.html#newHubResult,HubKind,JsonNode thehub: newHubResult(kind: HubKind; js: JsonNode): HubResult +newHubGroup nimph/thehub.html#newHubGroup,set[Flag] thehub: newHubGroup(flags: set[Flag] = defaultFlags): HubGroup +add nimph/thehub.html#add,HubGroup,HubResult thehub: add(group: var HubGroup; hub: HubResult) +authorize nimph/thehub.html#authorize,Recallable thehub: authorize(request: Recallable): bool +getGitHubUser nimph/thehub.html#getGitHubUser thehub: getGitHubUser(): Option[HubResult] +forkHub nimph/thehub.html#forkHub,string,string thehub: forkHub(owner: string; repo: string): Option[HubResult] +searchHub nimph/thehub.html#searchHub,seq[string] thehub: searchHub(keywords: seq[string]; sort = Best; order = Descending): Option[\n HubGroup] diff --git a/nimph/version.html b/nimph/version.html new file mode 100644 index 0000000..a9801b6 --- /dev/null +++ b/nimph/version.html @@ -0,0 +1,847 @@ + + + + + + + + + + + + + + + + + + +nimph/version + + + + + + + + +
+
+

nimph/version

+
+
+
+ +     Dark Mode +
+ +
+ Search: +
+
+ Group by: + +
+ + +
+   Source +  Edit + +
+
+ +

+
+

Imports

+
+spec +
+
+

Types

+
+
+
Operator = enum
+  Tag = "#", Wild = "*", Tilde = "~", Caret = "^", Equal = "==", AtLeast = ">=",
+  Over = ">", Under = "<", NotMore = "<="
+
+ + +  Source +  Edit + +
+
+
+
Release = object
+  case kind*: Operator
+  of Tag:
+      reference*: string
+
+  of Wild, Caret, Tilde:
+      accepts*: VersionMask
+
+  of Equal, AtLeast, Over, Under, NotMore:
+      version*: Version
+
+  
+
+ + +  Source +  Edit + +
+
+
+
VersionField = typeof(Version.major)
+
+ + +  Source +  Edit + +
+
+
+
VersionIndex = range[0 .. 2]
+
+ + +  Source +  Edit + +
+
+
+
VersionMask = object
+  major*: VersionMaskField
+  minor*: VersionMaskField
+  patch*: VersionMaskField
+
+
+ + +  Source +  Edit + +
+
+
+
VersionMaskField = Option[VersionField]
+
+ + +  Source +  Edit + +
+
+ +
+
+

Consts

+
+
+
Wildlings = {Wild, Caret, Tilde}
+
+ + +  Source +  Edit + +
+
+ +
+
+

Procs

+
+
+
proc `$`(field: VersionMaskField): string {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc `$`(mask: VersionMask): string {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc `$`(spec: Release): string {....raises: [ValueError], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc `<=`(a, b: Release): bool {....raises: [ValueError], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc `<`(a, b: Release): bool {....raises: [ValueError], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc `<`(a, b: VersionMaskField): bool {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc `==`(a, b: Release): bool {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc `==`(a, b: VersionMask): bool {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc `==`(a, b: VersionMaskField): bool {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc `==`(a: VersionMask; b: Version): bool {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc `[]=`(mask: var VersionMask; index: VersionIndex; value: VersionMaskField) {.
+    ...raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc acceptable(mask: VersionMaskField; op: Operator; value: VersionField): bool {.
+    ...raises: [], tags: [].}
+
+ +true if the versionfield value passes the mask +  Source +  Edit + +
+
+
+
proc at[T: Version | VersionMask](version: T; index: VersionIndex): auto
+
+ +like [int] but clashless +  Source +  Edit + +
+
+
+
proc effectively(mask: VersionMask): Version {....raises: [], tags: [].}
+
+ +replace * with 0 in wildcard masks +  Source +  Edit + +
+
+
+
proc effectively(release: Release): Version {....raises: [ValueError, Exception],
+    tags: [RootEffect].}
+
+ +convert a release to a version for rough comparisons +  Source +  Edit + +
+
+
+
proc hash(field: VersionMaskField): Hash {....raises: [], tags: [].}
+
+ +help hash version masks +  Source +  Edit + +
+
+
+
proc hash(mask: VersionMask): Hash {....raises: [], tags: [].}
+
+ +uniquely identify a version mask +  Source +  Edit + +
+
+
+
proc hash(release: Release): Hash {....raises: [], tags: [].}
+
+ +uniquely identify a release +  Source +  Edit + +
+
+
+
proc importName(target: Target): string {....raises: [], tags: [].}
+
+ +a uniform name usable in code for imports +  Source +  Edit + +
+
+
+
proc isSpecific(release: Release): bool {....raises: [], tags: [].}
+
+ +if the version/match specifies a full X.Y.Z version +  Source +  Edit + +
+
+
+
proc isValid(release: Release): bool {....raises: [], tags: [].}
+
+ +true if the release seems plausible +  Source +  Edit + +
+
+
+
proc newRelease(reference: string; operator = Equal): Release {.
+    ...raises: [ValueError], tags: [].}
+
+ +parse a version, mask, or tag with an operator hint from the requirement +  Source +  Edit + +
+
+
+
proc newRelease(version: Version): Release {....raises: [ValueError], tags: [].}
+
+ +create a new release using a version +  Source +  Edit + +
+
+
+
proc omitStars(mask: VersionMask): string {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc parseDottedVersion(input: string): Version {....raises: [], tags: [].}
+
+ +try to parse 1.2.3 into a Version +  Source +  Edit + +
+
+
+
proc parseVersionLoosely(content: string): Option[Release] {.
+    ...raises: [ValueError, Exception], tags: [RootEffect].}
+
+ +a very relaxed parser for versions found in tags, etc. only valid releases are emitted, however +  Source +  Edit + +
+
+
+
proc specifically(release: Release): Version {....raises: [ValueError], tags: [].}
+
+ +a full X.Y.Z version the release will match +  Source +  Edit + +
+
+
+
proc toMask(version: Version): VersionMask {....raises: [], tags: [].}
+
+ +populate a versionmask with values from a version +  Source +  Edit + +
+
+ +
+
+

Iterators

+
+
+
iterator items[T: Version | VersionMask](version: T): auto
+
+ + +  Source +  Edit + +
+
+
+
iterator likelyTags(version: Version): string {....raises: [ValueError], tags: [].}
+
+ +produce tags with/without silly v prefixes +  Source +  Edit + +
+
+
+
iterator pairs[T: Version | VersionMask](version: T): auto
+
+ + +  Source +  Edit + +
+
+
+
iterator semanticVersionStrings(mask: VersionMask): string {....raises: [],
+    tags: [].}
+
+ +emit 3, 3.1, 3.1.4 (if possible) +  Source +  Edit + +
+
+
+
iterator semanticVersionStrings(version: Version): string {....raises: [], tags: [].}
+
+ +emit 3, 3.1, 3.1.4 +  Source +  Edit + +
+
+ +
+ +
+
+ +
+ +
+
+
+ + + diff --git a/nimph/version.idx b/nimph/version.idx new file mode 100644 index 0000000..74c7781 --- /dev/null +++ b/nimph/version.idx @@ -0,0 +1,49 @@ +VersionField nimph/version.html#VersionField version: VersionField +VersionIndex nimph/version.html#VersionIndex version: VersionIndex +VersionMaskField nimph/version.html#VersionMaskField version: VersionMaskField +VersionMask nimph/version.html#VersionMask version: VersionMask +Tag nimph/version.html#Tag Operator.Tag +Wild nimph/version.html#Wild Operator.Wild +Tilde nimph/version.html#Tilde Operator.Tilde +Caret nimph/version.html#Caret Operator.Caret +Equal nimph/version.html#Equal Operator.Equal +AtLeast nimph/version.html#AtLeast Operator.AtLeast +Over nimph/version.html#Over Operator.Over +Under nimph/version.html#Under Operator.Under +NotMore nimph/version.html#NotMore Operator.NotMore +Operator nimph/version.html#Operator version: Operator +Release nimph/version.html#Release version: Release +Wildlings nimph/version.html#Wildlings version: Wildlings +parseDottedVersion nimph/version.html#parseDottedVersion,string version: parseDottedVersion(input: string): Version +isValid nimph/version.html#isValid,Release version: isValid(release: Release): bool +newRelease nimph/version.html#newRelease,Version version: newRelease(version: Version): Release +parseVersionLoosely nimph/version.html#parseVersionLoosely,string version: parseVersionLoosely(content: string): Option[Release] +newRelease nimph/version.html#newRelease,string version: newRelease(reference: string; operator = Equal): Release +`$` nimph/version.html#$,VersionMaskField version: `$`(field: VersionMaskField): string +`$` nimph/version.html#$,VersionMask version: `$`(mask: VersionMask): string +omitStars nimph/version.html#omitStars,VersionMask version: omitStars(mask: VersionMask): string +`$` nimph/version.html#$,Release version: `$`(spec: Release): string +`==` nimph/version.html#==,VersionMaskField,VersionMaskField version: `==`(a, b: VersionMaskField): bool +`<` nimph/version.html#<,VersionMaskField,VersionMaskField version: `<`(a, b: VersionMaskField): bool +`==` nimph/version.html#==,VersionMask,VersionMask version: `==`(a, b: VersionMask): bool +`==` nimph/version.html#==,Release,Release version: `==`(a, b: Release): bool +`<` nimph/version.html#<,Release,Release version: `<`(a, b: Release): bool +`<=` nimph/version.html#<=,Release,Release version: `<=`(a, b: Release): bool +`==` nimph/version.html#==,VersionMask,Version version: `==`(a: VersionMask; b: Version): bool +acceptable nimph/version.html#acceptable,VersionMaskField,Operator,VersionField version: acceptable(mask: VersionMaskField; op: Operator; value: VersionField): bool +at nimph/version.html#at,T,VersionIndex version: at[T: Version | VersionMask](version: T; index: VersionIndex): auto +`[]=` nimph/version.html#[]=,VersionMask,VersionIndex,VersionMaskField version: `[]=`(mask: var VersionMask; index: VersionIndex; value: VersionMaskField) +items nimph/version.html#items.i,T version: items[T: Version | VersionMask](version: T): auto +pairs nimph/version.html#pairs.i,T version: pairs[T: Version | VersionMask](version: T): auto +isSpecific nimph/version.html#isSpecific,Release version: isSpecific(release: Release): bool +specifically nimph/version.html#specifically,Release version: specifically(release: Release): Version +effectively nimph/version.html#effectively,VersionMask version: effectively(mask: VersionMask): Version +effectively nimph/version.html#effectively,Release version: effectively(release: Release): Version +hash nimph/version.html#hash,VersionMaskField version: hash(field: VersionMaskField): Hash +hash nimph/version.html#hash,VersionMask version: hash(mask: VersionMask): Hash +hash nimph/version.html#hash,Release version: hash(release: Release): Hash +toMask nimph/version.html#toMask,Version version: toMask(version: Version): VersionMask +importName nimph/version.html#importName,Target version: importName(target: Target): string +likelyTags nimph/version.html#likelyTags.i,Version version: likelyTags(version: Version): string +semanticVersionStrings nimph/version.html#semanticVersionStrings.i,VersionMask version: semanticVersionStrings(mask: VersionMask): string +semanticVersionStrings nimph/version.html#semanticVersionStrings.i,Version version: semanticVersionStrings(version: Version): string diff --git a/nimph/versiontags.html b/nimph/versiontags.html new file mode 100644 index 0000000..afbcebd --- /dev/null +++ b/nimph/versiontags.html @@ -0,0 +1,407 @@ + + + + + + + + + + + + + + + + + + +nimph/versiontags + + + + + + + + +
+
+

nimph/versiontags

+
+ +   Source +  Edit + +
+
+ +

+ +
+

Types

+
+
+
VersionTags = Group[Version, GitThing]
+
+ + +  Source +  Edit + +
+
+ +
+
+

Procs

+
+
+
proc `[]=`(group: var VersionTags; ver: Version; thing: GitThing) {.
+    ...raises: [KeyError, ValueError], tags: [].}
+
+ +set a key to a single value +  Source +  Edit + +
+
+
+
proc `[]`(group: VersionTags; ver: Version): var GitThing {.
+    ...raises: [KeyError, ValueError], tags: [].}
+
+ +get a git thing by version +  Source +  Edit + +
+
+
+
proc `[]`(group: VersionTags; ver: VersionMask): var GitThing {.
+    ...raises: [KeyError, ValueError], tags: [].}
+
+ +get a git thing by versionmask +  Source +  Edit + +
+
+
+
proc add(group: var VersionTags; ver: Version; thing: GitThing) {....raises: [],
+    tags: [].}
+
+ +add a version to the group; note that this overwrites semvers +  Source +  Edit + +
+
+
+
proc addName(group: var VersionTags; mask: VersionMask; thing: GitThing) {.
+    ...raises: [], tags: [].}
+
+ +add a versionmask to the group; note that this overwrites semvers +  Source +  Edit + +
+
+
+
proc addName(group: var VersionTags; version: Version; thing: GitThing) {.
+    ...raises: [], tags: [].}
+
+ +add a version to the group; note that this overwrites semvers +  Source +  Edit + +
+
+
+
proc del(group: var VersionTags; ver: Version) {....raises: [KeyError, ValueError],
+    tags: [].}
+
+ +remove a version from the group; note that this doesn't rebind semvers +  Source +  Edit + +
+
+
+
proc newVersionTags(flags = defaultFlags): VersionTags {....raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc releaseHashes(release: Release; head = ""): HashSet[Hash] {.
+    ...raises: [ValueError], tags: [].}
+
+ +a set of hashes that should match valid values for the release +  Source +  Edit + +
+
+
+
proc releaseHashes(release: Release; thing: GitThing; head = ""): HashSet[Hash] {.
+    ...raises: [ValueError], tags: [].}
+
+ +a set of hashes that should match valid values for the release; the thing is presumed to be an associated tag/commit/etc and we should include useful hashes for it +  Source +  Edit + +
+
+ +
+
+

Iterators

+
+
+
iterator matches(tags: GitTagTable; against: HashSet[Hash]; head: string = ""): tuple[
+    release: Release, thing: GitThing] {....raises: [ValueError, Exception],
+    tags: [RootEffect].}
+
+ +see if any of the releases in the tag table will match against if so, yield the release and thing +  Source +  Edit + +
+
+
+
iterator richen(tags: GitTagTable): tuple[release: Release, thing: GitThing] {.
+    ...raises: [ValueError, Exception], tags: [RootEffect].}
+
+ +yield releases that match the tags and the things they represent +  Source +  Edit + +
+
+ +
+ + +
+
+ +
+ +
+
+
+ + + diff --git a/nimph/versiontags.idx b/nimph/versiontags.idx new file mode 100644 index 0000000..d912525 --- /dev/null +++ b/nimph/versiontags.idx @@ -0,0 +1,13 @@ +VersionTags nimph/versiontags.html#VersionTags versiontags: VersionTags +addName nimph/versiontags.html#addName,VersionTags,VersionMask,GitThing versiontags: addName(group: var VersionTags; mask: VersionMask; thing: GitThing) +addName nimph/versiontags.html#addName,VersionTags,Version,GitThing versiontags: addName(group: var VersionTags; version: Version; thing: GitThing) +add nimph/versiontags.html#add,VersionTags,Version,GitThing versiontags: add(group: var VersionTags; ver: Version; thing: GitThing) +del nimph/versiontags.html#del,VersionTags,Version versiontags: del(group: var VersionTags; ver: Version) +`[]=` nimph/versiontags.html#[]=,VersionTags,Version,GitThing versiontags: `[]=`(group: var VersionTags; ver: Version; thing: GitThing) +`[]` nimph/versiontags.html#[],VersionTags,Version versiontags: `[]`(group: VersionTags; ver: Version): var GitThing +`[]` nimph/versiontags.html#[],VersionTags,VersionMask versiontags: `[]`(group: VersionTags; ver: VersionMask): var GitThing +newVersionTags nimph/versiontags.html#newVersionTags versiontags: newVersionTags(flags = defaultFlags): VersionTags +richen nimph/versiontags.html#richen.i,GitTagTable versiontags: richen(tags: GitTagTable): tuple[release: Release, thing: GitThing] +releaseHashes nimph/versiontags.html#releaseHashes,Release,string versiontags: releaseHashes(release: Release; head = ""): HashSet[Hash] +releaseHashes nimph/versiontags.html#releaseHashes,Release,GitThing,string versiontags: releaseHashes(release: Release; thing: GitThing; head = ""): HashSet[Hash] +matches nimph/versiontags.html#matches.i,GitTagTable,HashSet[Hash],string versiontags: matches(tags: GitTagTable; against: HashSet[Hash]; head: string = ""): tuple[\n release: Release, thing: GitThing] diff --git a/rest.html b/rest.html new file mode 100644 index 0000000..6a9c0ee --- /dev/null +++ b/rest.html @@ -0,0 +1,396 @@ + + + + + + + + + + + + + + + + + + +rest + + + + + + + + +
+
+

rest

+
+
+
+ +     Dark Mode +
+ +
+ Search: +
+
+ Group by: + +
+ + +
+   Source +  Edit + +
+
+ +

+
+

Types

+
+
+
CallRequestError = object of RestError
+
+ +HTTP [45]00 status code +  Source +  Edit + +
+
+
+
Recallable = ref object of RootObj
+  headers*: HttpHeaders
+  client*: RestClient
+  url*: string
+  json*: JsonNode
+  body*: string
+  retries*: int
+  began*: Time
+  took*: Duration
+  meth*: HttpMethod
+
+
+ +a handle on input/output of a re-issuable API call +  Source +  Edit + +
+
+
+
RestCall = ref object of RootObj
+  client*: RestClient
+  name*: string
+  meth*: HttpMethod
+  url*: Uri
+
+
+ + +  Source +  Edit + +
+
+
+
RestClient = ref RestClientObj
+
+ + +  Source +  Edit + +
+
+
+
RestError = object of CatchableError
+
+ +base for REST errors +  Source +  Edit + +
+
+
+
RetriesExhausted = object of RestError
+
+ +ran outta retries +  Source +  Edit + +
+
+ +
+
+

Procs

+
+
+
proc issueRequest(rec: Recallable): Response {....raises: [RestError],
+    tags: [TimeEffect, RootEffect, ReadIOEffect, WriteIOEffect].}
+
+ +submit a request and store some metrics +  Source +  Edit + +
+
+
+
proc massageHeaders(node: JsonNode): seq[KeyVal] {....raises: [KeyError], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
proc newRestClient(): RestClient {....raises: [LibraryError, SslError, Exception,
+    IOError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect].}
+
+ + +  Source +  Edit + +
+
+ +
+
+

Methods

+
+
+
method `$`(c: RestCall): string {.base, ...raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
method `$`(e: ref RestError): string {.base, ...raises: [], tags: [].}
+
+ + +  Source +  Edit + +
+
+
+
method initRestClient(self: RestClient) {.base,
+    ...raises: [LibraryError, SslError, Exception, IOError],
+    tags: [RootEffect, ReadDirEffect, ReadEnvEffect].}
+
+ + +  Source +  Edit + +
+
+
+
method newRecallable(call: RestCall; url: Uri; headers: HttpHeaders;
+                     body: string): Recallable {.base, ...raises: [Exception],
+    tags: [RootEffect, ReadDirEffect, ReadEnvEffect].}
+
+ +make a new HTTP request that we can reissue if desired +  Source +  Edit + +
+
+ +
+ +
+
+ +
+ +
+
+
+ + + diff --git a/rest.idx b/rest.idx new file mode 100644 index 0000000..15f7457 --- /dev/null +++ b/rest.idx @@ -0,0 +1,13 @@ +RestClient rest.html#RestClient rest: RestClient +RestCall rest.html#RestCall rest: RestCall +Recallable rest.html#Recallable rest: Recallable +RestError rest.html#RestError rest: RestError +RetriesExhausted rest.html#RetriesExhausted rest: RetriesExhausted +CallRequestError rest.html#CallRequestError rest: CallRequestError +massageHeaders rest.html#massageHeaders,JsonNode rest: massageHeaders(node: JsonNode): seq[KeyVal] +`$` rest.html#$.e,ref.RestError rest: `$`(e: ref RestError): string +`$` rest.html#$.e,RestCall rest: `$`(c: RestCall): string +initRestClient rest.html#initRestClient.e,RestClient rest: initRestClient(self: RestClient) +newRestClient rest.html#newRestClient rest: newRestClient(): RestClient +newRecallable rest.html#newRecallable.e,RestCall,Uri,HttpHeaders,string rest: newRecallable(call: RestCall; url: Uri; headers: HttpHeaders; body: string): Recallable +issueRequest rest.html#issueRequest,Recallable rest: issueRequest(rec: Recallable): Response diff --git a/theindex.html b/theindex.html new file mode 100644 index 0000000..d8cb6c8 --- /dev/null +++ b/theindex.html @@ -0,0 +1,1662 @@ + + + + + + + + + + + + + + + + + + +Index + + + + + + + + +
+
+

Index

+ Modules: nimph, nimph/asjson, nimph/config, nimph/dependency, nimph/doctor, nimph/group, nimph/locker, nimph/nimble, nimph/package, nimph/project, nimph/requirement, nimph/runner, nimph/spec, nimph/thehub, nimph/version, nimph/versiontags, rest.

API symbols

+
`$`:
+
`<=`:
+
`<`:
+
`//////`:
+
`///`:
+
`==`:
+
`[]=`:
+
`[]`:
+
acceptable:
+
add:
+
addedRequirements:
+
addLockerRoom:
+
addMissingSearchPathsTo:
+
addMissingUpstreams:
+
addName:
+
addSearchPath:
+
adopt:
+
ageInDays:
+
aimAt:
+
allImportTargets:
+
allLockerRooms:
+
appendConfig:
+
asFoundVia:
+
asPackage:
+
asUrlAnchor:
+
at:
+
AtLeast:
+
authorize:
+
availableProjects:
+
bare:
+
bareUrlsAreEqual:
+
bestRelease:
+
betterReleaseExists:
+
CallRequestError:
+
Caret:
+
childProjects:
+
children:
+
clear:
+
clone:
+
cloner:
+
configFile:
+
contains:
+
convertToGit:
+
convertToSsh:
+
countNimblePaths:
+
createUrl:
+
cuteRelease:
+
defaultFlags:
+
defaultRemote:
+
del:
+
delName:
+
demandHead:
+
DepDir:
+
Dependency:
+
DependencyGroup:
+
describe:
+
destylize:
+
determineDeps:
+
DistMethod:
+
doctor:
+
dotGit:
+
dotHg:
+
dotNimble:
+
dotNimbleLink:
+
Downgrade:
+
DrError:
+
DrOkay:
+
DrRetry:
+
DrState:
+
DumpResult:
+
effectively:
+
emptyRelease:
+
Equal:
+
excludeMissingLazyPaths:
+
excludeMissingSearchPaths:
+
excludeSearchPath:
+
extantSearchPaths:
+
fetchConfig:
+
fetchDump:
+
fetchNimbleDump:
+
fetchNimbleMeta:
+
fetchTagTable:
+
findCurrentTag:
+
findGithubToken:
+
findProject:
+
findRepositoryUrl:
+
fixDependencies:
+
fixer:
+
fixTags:
+
Flag:
+
forker:
+
forkHub:
+
forkTarget:
+
ForkTargetResult:
+
get:
+
getAllLockerRooms:
+
getGitHubUser:
+
getHeadOid:
+
getLockerRoom:
+
getOfficialPackages:
+
getProjectIn:
+
ghTokenEnv:
+
ghTokenFn:
+
Git:
+
gitDir:
+
grapher:
+
Group:
+
guessVersion:
+
hasGit:
+
hash:
+
hasHg:
+
hasKey:
+
hasLocalDeps:
+
hasNimph:
+
hasProjectIn:
+
hasReleaseTag:
+
hasUrl:
+
hgDir:
+
HubCode:
+
HubCommit:
+
HubCommitMeta:
+
HubContact:
+
HubGroup:
+
HubIssue:
+
HubKind:
+
HubPull:
+
HubRelease:
+
HubRepo:
+
HubResult:
+
HubSort:
+
HubSortBy:
+
HubTag:
+
hubTime:
+
hubTokenFn:
+
HubTree:
+
HubUser:
+
HubVerification:
+
importName:
+
init:
+
initRestClient:
+
inventRelease:
+
isEmpty:
+
isHappy:
+
isHappyWithVersion:
+
isLink:
+
isSatisfiedBy:
+
isSpecific:
+
isStdlib:
+
isStdLib:
+
issueRequest:
+
isUrl:
+
isUsing:
+
isValid:
+
isVirtual:
+
items:
+
keys:
+
knowVersion:
+
len:
+
likelyLazy:
+
likelySearch:
+
likelyTags:
+
LinkedSearchResult:
+
loadAllCfgs:
+
Local:
+
localDeps:
+
lock:
+
Locker:
+
LockerRoom:
+
lockfiler:
+
massageHeaders:
+
matches:
+
matching:
+
matchingBranches:
+
Merc:
+
mget:
+
mgetProjectIn:
+
missingSearchPaths:
+
mpairs:
+
mvalues:
+
name:
+
Nest:
+
newDependency:
+
newDependencyGroup:
+
newHubCommitMeta:
+
newHubContact:
+
newHubGroup:
+
newHubResult:
+
newHubTree:
+
newLockerRoom:
+
newNimphConfig:
+
newPackage:
+
newPackageGroup:
+
newProject:
+
newProjectGroup:
+
newRecallable:
+
newRelease:
+
newRequirement:
+
newRestClient:
+
newVersionTags:
+
nextTagFor:
+
nimbleDir:
+
NimbleMeta:
+
nimbleMeta:
+
nimbler:
+
nimCfg:
+
NimCfg:
+
NimphConfig:
+
nimphConfig:
+
normalizeUrl:
+
NotMore:
+
numberOfNimblePaths:
+
officialPackages:
+
omitStars:
+
Operator:
+
orphans:
+
Over:
+
Package:
+
packageDirectory:
+
PackageGroup:
+
packageName:
+
packagePaths:
+
PackagesResult:
+
pairs:
+
parseConfigFile:
+
parseDottedVersion:
+
parseNimbleDump:
+
parseProjectCfg:
+
parseRequires:
+
parseVersionLoosely:
+
pather:
+
pathForName:
+
pathToImport:
+
peelRelease:
+
PkgDir:
+
prepareForClone:
+
Project:
+
ProjectCfgParsed:
+
projectForName:
+
projectForPath:
+
ProjectGroup:
+
promote:
+
promoteRemoteLike:
+
Recallable:
+
refresh:
+
Release:
+
releaseHashes:
+
Releases:
+
releaseSummary:
+
relocateDependency:
+
removeSearchPath:
+
renderShortly:
+
repo:
+
repoLockReady:
+
reqForProject:
+
Requirement:
+
requirementChangingCommits:
+
Requirements:
+
RequirementsTags:
+
Requires:
+
reset:
+
resolve:
+
resolveUsing:
+
RestCall:
+
RestClient:
+
RestError:
+
RetriesExhausted:
+
returnToHeadAfter:
+
reversed:
+
richen:
+
roll:
+
roller:
+
RollGoal:
+
rollTowards:
+
runner:
+
RunOutput:
+
runSomething:
+
searcher:
+
searchHub:
+
semanticVersionStrings:
+
setHeadToRelease:
+
shortDate:
+
sortByVersion:
+
Specific:
+
specifically:
+
stalePackages:
+
StateKind:
+
stripPkgs:
+
suggestNimbleDir:
+
symbolicMatch:
+
symbolicMatches:
+
Tag:
+
tagger:
+
Tilde:
+
toDistMethod:
+
toJson:
+
toLocker:
+
toLockerRoom:
+
toMask:
+
toOperator:
+
toRelease:
+
toRequirement:
+
toUri:
+
toUrl:
+
toVersion:
+
toVersionMask:
+
Under:
+
unlock:
+
unlockfiler:
+
updowner:
+
Upgrade:
+
upstreamRemote:
+
url:
+
urls:
+
values:
+
versionChangingCommits:
+
VersionField:
+
VersionIndex:
+
VersionMask:
+
VersionMaskField:
+
VersionTags:
+
WhatHappensInVegas:
+
Wild:
+
Wildlings:
+
withinDirectory:
+
writeNimbleDirPaths:
+
writeNimbleMeta:
+
+
+ +
+
+
+ + +