Skip to content

Commit ed783c3

Browse files
author
blik
committed
modularize json for direct loading
declare d3-axis
1 parent e580620 commit ed783c3

File tree

5 files changed

+37
-17
lines changed

5 files changed

+37
-17
lines changed

Blik_2023_fragment.js

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@
250250
let target=/^#/.test(source)?"":undefined;
251251
return document(
252252
{[tag]:
253-
{id:title
253+
{id:title.replace(" ","_")
254254
,class:"reference",title,alt:title||source,href:source,src:source,controls:"on",target
255255
,"#text":(title||source).replace(/_/g," ")
256256
}
@@ -377,6 +377,12 @@
377377
:[node];
378378
};
379379

380+
export function tracenode(node,trail=[])
381+
{if(!node||node.documentElement)return trail;
382+
let ordinal=node.parentNode&&Array.from(node.parentNode.childNodes).filter(({nodeName})=>nodeName==node.nodeName).indexOf(node);
383+
return [...tracenode(node.parentNode,[]),node.nodeName+(ordinal?":nth-of-type("+(ordinal+1)+")":"")]
384+
};
385+
380386
export function print(file)
381387
{return resolve(
382388
["/mozilla_2010_pdf_viewer_brightspace.js"
@@ -618,15 +624,6 @@
618624
let peer=document({div:{}});
619625
yield peer;
620626
await compose(Object.entries,provide,each(compose(consume,author,peer.append.bind(peer))),collect)(sub);
621-
peer.append(document(
622-
{hr:{style:"margin-top:3em"}
623-
,h3:{"#text":"Data-driven routing:"}
624-
,span:{"#text":"(until the Form island becomes obvious)"}
625-
}));
626-
await compose(resolve,peer.append.bind(peer))
627-
("./Blik_2024_network.js","default",arguments[0]
628-
,{spread:"force",linear:true,gradual:true,source}
629-
);
630627
};
631628

632629
async function author({source,common,...feed},index)

Blik_2023_host.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,11 +154,12 @@
154154
certificate.setSubject(authority);
155155
certificate.setIssuer(authority);
156156
certificate.setExtensions(
157-
[{name:"basicConstraints",cA:true},{name:"keyUsage",keyCertSign:true,digitalSignature:true,nonRepudiation:true,keyEncipherment:true,dataEncipherment:true}
157+
[{name:"subjectAltName",altNames:[{type:6,value:"https://"+distinguishedname.commonName},{type:7,ip:"127.0.0.1"}]}
158+
,{name:"keyUsage",keyCertSign:true,digitalSignature:true,nonRepudiation:true,keyEncipherment:true,dataEncipherment:true}
158159
,{name:"extKeyUsage",serverAuth:true,clientAuth:true,codeSigning:true,emailProtection:true,timeStamping:true}
159160
,{name:"nsCertType",client:true,server:true,email:true,objsign:true,sslCA:true,emailCA:true,objCA:true}
160-
,{name:"subjectAltName",altNames:[{type:6,value:"http://blikpatrik.net"},{type:7,ip:"127.0.0.1"}]}
161-
,{name: 'subjectKeyIdentifier'}
161+
,{name:"basicConstraints",cA:true}
162+
,{name:"subjectKeyIdentifier"}
162163
]);
163164
certificate.sign(rsa.privateKey);
164165
[key,cert]=await certification.reduce(record((certification,index)=>compose.call

Blik_2023_interface.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@
103103
if(!lead&&!module.includes("_"))
104104
module=await [2020,new Date().getFullYear()].reduce((min,max)=>
105105
Array(max-min).fill(max).map((year,index)=>year-index)).flatMap(year=>
106-
["Blik"].map(author=>[author,year,module].join("_")+".js")).reduce((file,module)=>
107-
file.catch(fail=>this[module]=this[module]||import("./"+module).then(swap("./"+module)))
106+
["Blik"].map(author=>"./"+[author,year,module].join("_")+".js")).reduce((file,module)=>
107+
file.catch(fail=>this[module]=this[module]||import(module).then(swap(module)))
108108
,Promise.reject());
109109
return [lead+module,feature,...path];
110110
}.bind({});
@@ -407,10 +407,12 @@
407407
merge(entry,{replace:undefined})))
408408
].flat().reduce(merge);
409409
syntax=definition.syntax;
410-
let foreign=!["javascript","json"].includes(syntax)||Object.keys(definition).length>1;
410+
let foreign=!["javascript"].includes(syntax)||Object.keys(definition).length>1;
411411
// parse foreign to serialize standard syntax. without native interpretter to call (next), all syntax are foreign.
412412
// using acorn's Parser methods (parse) until interpretation reducer is complete.
413413
let edits=relevant(definition.edit||{},sparse);
414+
if(syntax==="json")
415+
syntax="module",edits["^((?:.*[\n$])*)"]="export default $1";
414416
let patriate=foreign?[infer(parse,syntax,{source}),definition,sanitize,serialize,"javascript",{source},parse,serialize]:[];
415417
let module=await buffer
416418
(compose(access,edits,edit,...patriate)

Blik_2023_search.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
domain.charAt(Math.floor(Math.random()*domain.length))).join("");
1010
};
1111

12+
export var rgb=fill=>/^#/.test(fill)?/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(fill).slice(1,4).map(hue=>parseInt(hue,16)):fill;
13+
14+
export var normal=fraction=>Math.pow(Math.E,-(fraction**2)/2)/Math.sqrt(Math.PI*2);
15+
1216
export function encrypt(hash,algorithm="sha256",value)
1317
{if(!this)
1418
return value=import("crypto").then(crypto=>value=crypto),function()
@@ -272,6 +276,14 @@ export function calendar(timestamps)
272276
}),this);
273277
};
274278

279+
export function flatten(factor,path=[])
280+
{// expose factors in scope.
281+
let scope=this;
282+
return [scope].flat().flatMap(scope=>
283+
[scope,...flatten.call(scope[factor],factor)]);
284+
};
285+
286+
275287
export function trace(term, path = []) {
276288
// trace term in scope or stack.
277289
let scope = this;

Blik_2023_sources.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -664,6 +664,7 @@
664664
}}]},
665665
"https://github.com/d3/d3-ease":{"v3.0.1":"src/index.js"}
666666
},
667+
"Bostock_2016_axis.js":{"https://github.com/d3/d3-axis":{"v3.0.0":["src/index.js"]}},
667668
"Bostock_2016_geo.js":{"https://github.com/d3/d3-geo":{"v3.1.1":["src/index.js",{"alias":{"d3-array":"./Bostock_2015_array.js"}}]}},
668669
"Bostock_2016_tiles.js":{"https://github.com/d3/d3-tile":{"v1.0.0":"src/index.js"}},
669670
"Bostock_2016_topojson.js":{"https://github.com/topojson/topojson-client":{"v3.1.0":"src/feature.js"}},
@@ -795,5 +796,12 @@
795796
}}]}},
796797
"Fogel_2016_polygonclipping.js":{"https://github.com/mfogel/polygon-clipping":{"v0.15.7":["src/index.js",{"alias":{"splaytree":"./Milevski_2018_splaytree.js","robust-predicates":"./Agafonkin_2019_robustpredicates.js"}}]}},
797798
"Agafonkin_2019_robustpredicates.js":{"https://github.com/mourner/robust-predicates":{"v3.0.2":["src/orient2d.js","src/orient3d.js","src/incircle.js","src/insphere.js"]}},
798-
"Milevski_2018_splaytree.js":{"https://github.com/w8r/splay-tree":{"v3.1.2":["src/index.ts"]}}
799+
"Milevski_2018_splaytree.js":{"https://github.com/w8r/splay-tree":{"v3.1.2":["src/index.ts"]}},
800+
"Reinman_2015_smtp.js":{"https://github.com/nodemailer/smtp-server":{"v3.13.6":["lib/smtp-server.js",{
801+
"syntax":"commonjs",
802+
"alias":{"punycode.js":"./Bynens_2011_punycode.js","base32.js":"./Lee_2015_base32.js","nodemailer/lib/shared":"./Reinman_2011_nodemailer_shared.js"},
803+
"edit":{"const ipv6normalize = require\\('ipv6-normalize'\\)":"function ipv6normalize(address){var _address=address.toLowerCase(),segments=_address.split(':'),length=segments.length,total=8,pos,_segments;\nif(segments[0]===''&&segments[1]===''&&segments[2]==='')segments.shift(),segments.shift();\nelse if(segments[0]===''&&segments[1]==='')segments.shift();\nelse if(segments[length-1]===''&&segments[length-2]==='')segments.pop();\nlength=segments.length;\nif(segments[length-1].indexOf('.')!==-1)total=7;\nfor(pos=0;pos<length;pos++)\nif(segments[pos]==='')break;\nif(pos<total){segments.splice(pos,1,'0000');while(segments.length<total)segments.splice(pos,0,'0000');length=segments.length;}\nfor(var i=0;i<total;i++){_segments=segments[i].split('');for(var j=0;j<3;j++)if(_segments[0]==='0'&&_segments.length > 1)_segments.splice(0,1);else break;segments[i]=_segments.join('');}\nvar best=-1,_best=0,_current=0,current=-1,inzeroes=false;\nfor(i=0;i<total;i++)if(inzeroes)if(segments[i]==='0')_current+=1;else{inzeroes=false;if(_current>_best)best=current,_best=_current;}else if(segments[i]==='0')\ninzeroes=true,current=i,_current=1;\nif(_current>_best)best=current,_best=_current;\nif(_best>1)segments.splice(best, _best, '');\nlength=segments.length;\nvar result='';\nif(segments[0]==='')result=':';\nfor(i in segments)result+=segments[i]+(i===length-1?'':':');\nif(segments[length-1]==='')result+=':';\nreturn result;}"}
804+
}]}},
805+
"Reinman_2011_nodemailer_shared.js":{"https://github.com/nodemailer/nodemailer":{"v6.9.15":["lib/shared/index.js",{"syntax":"commonjs"}]}},
806+
"Lee_2015_base32.js":{"https://github.com/speakeasyjs/base32.js":{"v0.1.0":["index.js",{"syntax":"commonjs"}]}}
799807
}

0 commit comments

Comments
 (0)