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:
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:13 UTC
+
+
+
+
+
+
+
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
+
+
+
+
+
+ Search:
+
+
+ Group by:
+
+ Section
+ Type
+
+
+
+
+ Imports
+
+
+
+ Procs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Source
+
Edit
+
+
+
+
+
+
+
+
+nimph/spec , nimph/runner , nimph/project , nimph/doctor , nimph/thehub , nimph/config , nimph/package , nimph/dependency , nimph/locker , nimph/group , nimph/requirement
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:13 UTC
+
+
+
+
+
+
+
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
+
+
+
+
+
+ Search:
+
+
+ Group by:
+
+ Section
+ Type
+
+
+
+
+
+
Source
+
Edit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
proc toJson ( uri : Uri ) : JsonNode {.... raises : [ ] , tags : [ ] .}
+
+
+
+ Source
+ Edit
+
+
+
+
+
proc toJson ( version : Version ) : JsonNode {.... raises : [ ] , tags : [ ] .}
+
+
+
+ Source
+ Edit
+
+
+
+
+
+
+
+
proc toUri ( js : JsonNode ) : Uri {.... raises : [ ] , tags : [ ] .}
+
+
+
+ Source
+ Edit
+
+
+
+
+
proc toVersion ( js : JsonNode ) : Version {.... raises : [ ValueError ] , tags : [ ] .}
+
+
+
+ Source
+ Edit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:12 UTC
+
+
+
+
+
+
+
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
+
+
+
+
+
+ Search:
+
+
+ Group by:
+
+ Section
+ Type
+
+
+
+
+
+
Source
+
Edit
+
+
+
+
+
+
+
+
+
+
+
+
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 getLockerRoom ( config : NimphConfig ; name : string ) : JsonNode {.
+ ... raises : [ KeyError ] , tags : [ ] .}
+
+
+retrieve the named lockfile (or JNull) from the configuration
+ 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
+
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
+
template isStdlib ( config : ConfigRef ; path : AbsoluteDir ) : bool
+
+
+
+ Source
+ Edit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:10 UTC
+
+
+
+
+
+
+
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
+
+
+
+
+
+ Search:
+
+
+ Group by:
+
+ Section
+ Type
+
+
+
+
+
+
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 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 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 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 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 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 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
+
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+clear , []= , init , contains , delName , contains , hasKey , add , mget , contains , len , Group , add , mpairs , mvalues , len , reversed , keys , add , get , values , del , del , [] , pairs , []
+
+
+
+
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:12 UTC
+
+
+
+
+
+
+
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
+
+
+
+
+
+ Search:
+
+
+ Group by:
+
+ Section
+ Type
+
+
+
+
+
+
Source
+
Edit
+
+
+
+
+
+
+
+
+
+
+
+
StateKind = enum
+ DrOkay = "okay" , DrRetry = "retry" , DrError = "error"
+
+
+
+ Source
+ Edit
+
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:12 UTC
+
+
+
+
+
+
+
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
+
+
+
+
+
+ Search:
+
+
+ Group by:
+
+ Section
+ Type
+
+
+
+
+
+
Source
+
Edit
+
+
+
+
+
+
+
+
+
+
+
Group [ K ; V ] = ref object of RootObj
+ table * : OrderedTableRef [ K , V ]
+ imports * : StringTableRef
+ flags * : set [ Flag ]
+ mode : StringTableMode
+
+
+
+
+ Source
+ Edit
+
+
+
+
+
+
+
+
+
+
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 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 [ 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
+
+
+
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:11 UTC
+
+
+
+
+
+
+
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
+
+
+
+
+
+ Search:
+
+
+ Group by:
+
+ Section
+ Type
+
+
+
+
+
+
Source
+
Edit
+
+
+
+
+
+
+
+
+
+
+
+
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 ( 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 toJson ( locker : Locker ) : JsonNode {.... raises : [ ] , tags : [ ] .}
+
+
+convert a Locker 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
+
+
+
+
+
+
+
+
+
+
iterator allLockerRooms ( project : Project ) : LockerRoom {.
+ ... raises : [ KeyError , ValueError , Exception ] , tags : [ RootEffect ] .}
+
+
+emit each lockerroom in the project's configuration
+ Source
+ Edit
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:12 UTC
+
+
+
+
+
+
+
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
+
+
+
+
+
+ Search:
+
+
+ Group by:
+
+ Section
+ Type
+
+
+
+
+
+
Source
+
Edit
+
+
+
+
+
+
+
+
+
+
+
DumpResult = object
+ table * : StringTableRef
+ why * : string
+ ok * : bool
+
+
+
+
+ Source
+ Edit
+
+
+
+
+
+
+
+
+
+
+
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 parseNimbleDump ( input : string ) : Option [ StringTableRef ] {.
+ ... raises : [ Exception ] , tags : [ RootEffect ] .}
+
+
+parse output from nimble dump
+ Source
+ Edit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:10 UTC
+
+
+
+
+
+
+
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
+
+
+
+
+
+ Search:
+
+
+ Group by:
+
+ Section
+ Type
+
+
+
+
+
+
Source
+
Edit
+
+
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 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 toUrl ( requirement : Requirement ; group : PackageGroup ) : Option [ Uri ] {.
+ ... raises : [ Exception , ValueError , KeyError ] , tags : [ RootEffect ] .}
+
+
+try to determine the distribution url for a requirement
+ Source
+ Edit
+
+
+
+
+
+
+
+
+
+
iterator urls ( group : PackageGroup ) : Uri {.... raises : [ ] , tags : [ ] .}
+
+
+yield (an ideally git) url for each package in the group
+ Source
+ Edit
+
+
+
+
+
+
+
+
+clear , []= , init , contains , delName , contains , hasKey , add , mget , contains , len , Group , add , mpairs , mvalues , len , reversed , keys , add , get , values , del , del , [] , pairs , []
+
+
+
+
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:11 UTC
+
+
+
+
+
+
+
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
+
+
+
+
+
+ Search:
+
+
+ Group by:
+
+ Section
+ Type
+
+
+
+
+ Imports
+
+
+
+ Types
+
+
+
+ Procs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Iterators
+
+
+
+ Templates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Exports
+
+
+
+
+
+
+
Source
+
Edit
+
+
+
+
+
+
+
+
+
+
+
+
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 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 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 ( 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 newProject ( nimble : Target ) : Project {.
+ ... raises : [ ValueError , OSError , Exception ] ,
+ tags : [ ReadDirEffect , ReadIOEffect , WriteIOEffect , RootEffect ] .}
+
+
+instantiate a new project from the given .nimble
+ 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 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 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 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
+
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+clear , []= , init , contains , delName , contains , hasKey , add , mget , contains , len , Group , add , mpairs , mvalues , len , reversed , keys , add , get , values , del , del , [] , pairs , []
+
+
+
+
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:12 UTC
+
+
+
+
+
+
+
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
+
+
+
+
+
+ Search:
+
+
+ Group by:
+
+ Section
+ Type
+
+
+
+
+
+
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 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 isVirtual ( requirement : Requirement ) : bool {.... raises : [ ] , tags : [ ] .}
+
+
+is the requirement something we should overlook?
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:11 UTC
+
+
+
+
+
+
+
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
+
+
+
+
+
+ Search:
+
+
+ Group by:
+
+ Section
+ Type
+
+
+
+
+
+
Source
+
Edit
+
+
+
+
+
+
+
+
+
+
+
RunOutput = object
+ arguments * : seq [ string ]
+ output * : string
+ ok * : bool
+
+
+
+
+ Source
+ Edit
+
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:10 UTC
+
+
+
+
+
+
+
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
+
+
+
+
+
+ Search:
+
+
+ Group by:
+
+ Section
+ Type
+
+
+
+
+
+
Source
+
Edit
+
+
+
+
+
+
+
+
+
+
Flag {.pure .} = enum
+ Quiet , Strict , Force , Dry , Safe , Network
+
+
+
+ Source
+ Edit
+
+
+
+
+
+
RollGoal = enum
+ Upgrade = "upgrade" , Downgrade = "downgrade" , Specific = "roll"
+
+
+
+ Source
+ Edit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
shortDate = ( patterns : [ 22 , 33 , 1 , 45 , 11 , 33 , 1 , 45 , 1 ] ,
+ formatStr : "yyyy-MM-dd" )
+
+
+
+ Source
+ Edit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 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 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
+
+
+
+
+
+
+
+
+
+
template `//////` ( a : string | AbsoluteFile | AbsoluteDir ) : string
+
+
+
+ Source
+ Edit
+
+
+
+
+
template `///` ( a : AbsoluteFile | AbsoluteDir ) : string
+
+
+
+ Source
+ Edit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:10 UTC
+
+
+
+
+
+
+
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
+
+
+
+
+
+ Search:
+
+
+ Group by:
+
+ Section
+ Type
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
+
+
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 newHubTree ( js : JsonNode ) : HubTree {.... raises : [ KeyError ] , tags : [ ] .}
+
+
+parse something like a commit tree
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:12 UTC
+
+
+
+
+
+
+
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
+
+
+
+
+
+ Search:
+
+
+ Group by:
+
+ Section
+ Type
+
+
+
+
+
+
Source
+
Edit
+
+
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
proc effectively ( release : Release ) : Version {.... raises : [ ValueError , Exception ] ,
+ tags : [ RootEffect ] .}
+
+
+convert a release to a version for rough comparisons
+ 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 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:11 UTC
+
+
+
+
+
+
+
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
+
+
+
+
+
+ Search:
+
+
+ Group by:
+
+ Section
+ Type
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+clear , []= , init , contains , delName , contains , hasKey , add , mget , contains , len , Group , add , mpairs , mvalues , len , reversed , keys , add , get , values , del , del , [] , pairs , []
+
+
+
+
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:12 UTC
+
+
+
+
+
+
+
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
+
+
+
+
+
+ Search:
+
+
+ Group by:
+
+ Section
+ Type
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
proc newRestClient ( ) : RestClient {.... raises : [ LibraryError , SslError , Exception ,
+ IOError ] , tags : [ RootEffect , ReadDirEffect , ReadEnvEffect ] .}
+
+
+
+ Source
+ Edit
+
+
+
+
+
+
+
+
+
+
+
+
method initRestClient ( self : RestClient ) {.base ,
+ ... raises : [ LibraryError , SslError , Exception , IOError ] ,
+ tags : [ RootEffect , ReadDirEffect , ReadEnvEffect ] .}
+
+
+
+ Source
+ Edit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:11 UTC
+
+
+
+
+
+
+
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:
+
+
+
+
+
+ Made with Nim. Generated: 2024-02-07 04:04:13 UTC
+
+
+
+
+
+
+