@naanlang/naan 1.0.8 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -53,7 +53,7 @@ closure FileReader(file, progress, local pending, freader, result) {
53
53
  *
54
54
  */
55
55
 
56
- closure FileDownload(file, progress, local error, blob, sizez, url, link) {
56
+ closure FileDownload(file, progress, local error, blob, size, url, link) {
57
57
  `(error, blob, size) = FileReader(file, progress)
58
58
  if error
59
59
  list(error)
@@ -36,7 +36,7 @@
36
36
  *
37
37
  */
38
38
 
39
- var CurrentCacheName = "Naanlang-1.0.8+1";
39
+ var CurrentCacheName = "Naanlang-1.0.9+1";
40
40
 
41
41
 
42
42
  //
@@ -89,11 +89,11 @@ var waitingForInit = []; // initialization functions, or
89
89
  var pubVersion = event.data.hereIsMyVersion;
90
90
  var sourceId = event.source.id; // client id of sender of message
91
91
  msgPorts[sourceId] = msgport;
92
- console.log("[1.0.8+1] received new msgport for", sourceId, pubID, "-", pubVersion);
93
- if (pubVersion != "1.0.8+1")
92
+ console.log("[1.0.9+1] received new msgport for", sourceId, pubID, "-", pubVersion);
93
+ if (pubVersion != "1.0.9+1")
94
94
  msgport.postMessage({ // notify new version available
95
95
  id: "upgrade",
96
- version: "1.0.8+1"
96
+ version: "1.0.9+1"
97
97
  });
98
98
  Reaper(); // clean up obsolete info
99
99
 
@@ -107,7 +107,7 @@ var waitingForInit = []; // initialization functions, or
107
107
  if (msg.id == "response")
108
108
  processResponse(msg);
109
109
  else if (msg.id == "text")
110
- console.log("[1.0.8+1] msg received:", msg.text);
110
+ console.log("[1.0.9+1] msg received:", msg.text);
111
111
  };
112
112
 
113
113
  // send text to IDE log
@@ -118,7 +118,7 @@ var waitingForInit = []; // initialization functions, or
118
118
  // don't clutter the log
119
119
  msgport.postMessage({
120
120
  id: "text",
121
- text: "port received by 1.0.8+1",
121
+ text: "port received by 1.0.9+1",
122
122
  });
123
123
  */
124
124
  if (--pending === 0)
@@ -135,7 +135,7 @@ var waitingForInit = []; // initialization functions, or
135
135
  includeUncontrolled: true
136
136
  }).then(function(clientList) {
137
137
  clientList.every(function(client) {
138
- console.log("[1.0.8+1] requesting new msgport for", client.id);
138
+ console.log("[1.0.9+1] requesting new msgport for", client.id);
139
139
  ++pending;
140
140
  client.postMessage({ // tell client(s) we need this fetch source
141
141
  msg: "Naan_need_fetch_port",
@@ -181,12 +181,12 @@ function Reaper() {
181
181
  clients[clientList[clidex].id] = clientList[clidex];
182
182
  for (var sourceId in msgPorts)
183
183
  if (!clients[sourceId]) {
184
- console.log("[1.0.8+1] source gone:", sourceId);
184
+ console.log("[1.0.9+1] source gone:", sourceId);
185
185
  delete msgPorts[sourceId]; // no longer a source
186
186
  }
187
187
  for (var clientId in fetchPorts)
188
188
  if (!clients[clientId]) {
189
- console.log("[1.0.8+1] client gone:", clientId);
189
+ console.log("[1.0.9+1] client gone:", clientId);
190
190
  delete fetchPorts[clientId]; // no longer a client
191
191
  }
192
192
  for (var fqdex = 0; fqdex < fetchQueue.length; ++fqdex) {
@@ -220,13 +220,13 @@ function ClearCaches() {
220
220
  return (Promise.all(
221
221
  cacheNames.map(function(cacheName) {
222
222
  if (cacheName != CurrentCacheName) {
223
- console.log('[1.0.8+1] deleting old cache:', cacheName);
223
+ console.log('[1.0.9+1] deleting old cache:', cacheName);
224
224
  return (caches.delete(cacheName));
225
225
  }
226
226
  })
227
227
  ));
228
228
  }).then(function() { // claim all clients
229
- console.log('[1.0.8+1] claiming clients');
229
+ console.log('[1.0.9+1] claiming clients');
230
230
  return (self.clients.claim());
231
231
  });
232
232
  return (promise);
@@ -269,7 +269,7 @@ function GetClientResponse(event, urlpath) {
269
269
  msgport.postMessage({
270
270
  id: "fetch",
271
271
  seq: seqno,
272
- version: "1.0.8+1",
272
+ version: "1.0.9+1",
273
273
  request: {
274
274
  method: event.request.method,
275
275
  url: event.request.url
@@ -317,7 +317,7 @@ function GetClientResponse(event, urlpath) {
317
317
  */
318
318
 
319
319
  self.addEventListener('install', function(event) {
320
- console.log("[1.0.8+1] install");
320
+ console.log("[1.0.9+1] install");
321
321
  self.skipWaiting();
322
322
  });
323
323
 
@@ -339,7 +339,7 @@ self.addEventListener('fetch', function(event) {
339
339
  var promise;
340
340
  var url = new URL(event.request.url);
341
341
  var nocache = event.request.method != "GET"
342
- || url.search.length !== 0 && url.searchParams.get("naanver") !== "09e820a5a47c4b099bacaa5d8a7d3f7a"
342
+ || url.search.length !== 0 && url.searchParams.get("naanver") !== "47cb512242b15eae60df6f89500e5ca4"
343
343
  || event.request.headers.get('range');
344
344
  if (url.pathname.startsWith("/run/")) {
345
345
  nocache = true;
@@ -356,7 +356,7 @@ self.addEventListener('fetch', function(event) {
356
356
  }
357
357
  else
358
358
  promise = fetch(event.request).catch(function (e) {
359
- console.log("[1.0.8+1] fetch failed", e);
359
+ console.log("[1.0.9+1] fetch failed", e);
360
360
  return (new Response(undefined, {
361
361
  status: 404,
362
362
  statusText: "Fetch Failed"
@@ -385,14 +385,14 @@ self.addEventListener('fetch', function(event) {
385
385
  */
386
386
 
387
387
  self.addEventListener('activate', function(event) {
388
- console.log("[1.0.8+1] activate");
388
+ console.log("[1.0.9+1] activate");
389
389
  self.clients.matchAll({ // for debugging, list controlled clients
390
390
  includeUncontrolled: true
391
391
  }).then(function(clientList) {
392
392
  var urls = clientList.map(function(client) {
393
393
  return (client.url);
394
394
  });
395
- console.log('[1.0.8+1] matching clients:', urls.join(', '));
395
+ console.log('[1.0.9+1] matching clients:', urls.join(', '));
396
396
  });
397
397
  var promise = ClearCaches();
398
398
  if (event.waitUntil)
@@ -650,7 +650,7 @@ closure termIDE(track, name, workerID, naancont, title, local target, connected)
650
650
  naancont.Interrupt(inbound)
651
651
  }
652
652
 
653
- function onreturn(local text) {
653
+ function onreturn() {
654
654
  naancont.Return(term.TakeText(), inbound)
655
655
  }
656
656
 
@@ -311,7 +311,7 @@ closure findTrackedScope(track, scope, local exec) {
311
311
  *
312
312
  */
313
313
 
314
- closure TrackedScope(track, scope, fs, rootpath, local trope, result) {
314
+ closure TrackedScope(track, scope, fs, rootpath, local trope) {
315
315
  trope = findTrackedScope(track, scope)
316
316
  if trope
317
317
  return (list(false, trope))
@@ -307,7 +307,7 @@ closure psmcFsView(api, rootpath, local view, pathmod) {
307
307
  // optionally deleting the files in the existing location. If options.move is true then we
308
308
  // delete the source after the copy.
309
309
 
310
- view.copy = closure copy(srcpath, dest, options, callback, local parameters) {
310
+ view.copy = closure copy(srcpath, dest, options, callback) {
311
311
  if options
312
312
  options = new(options)
313
313
  else
@@ -80,7 +80,7 @@ function ContentTypeFromFileExt(filepath, local mimeType, encoding) {
80
80
  *
81
81
  */
82
82
 
83
- function UUID(local rando, cc) {
83
+ function UUID(local rando) {
84
84
  if !RandomBytes
85
85
  return (false)
86
86
  rando = RandomBytes(36) // length of UUID
@@ -566,7 +566,7 @@ closure Filesystem(rootpath, local files, badCreatePathRegEx) {
566
566
  // Return array of files in a directory if it exists. If options.stat is true then this reads
567
567
  // info for each file as well.
568
568
 
569
- files.dirList = closure dirList(path, options, callback, local error, localpath, output, nodelist, file) {
569
+ files.dirList = closure dirList(path, options, callback, local error, localpath, output, file) {
570
570
  if js.g.process.platform == "win32" && rootpath == "\\" && (path == "" || path == "\\")
571
571
  return (files.winDrives(callback)) // top level is drive letters in Windows
572
572
  if !callback
@@ -608,7 +608,7 @@ closure Filesystem(rootpath, local files, badCreatePathRegEx) {
608
608
  `(error, localpath) = localPath(path)
609
609
  if error
610
610
  return (asyncResult(callback, error))
611
- fs.mkdir(localpath, { recursive: true }, function(errmkdir, local result) {
611
+ fs.mkdir(localpath, { recursive: true }, function(errmkdir) {
612
612
  if errmkdir.code == "EEXIST"
613
613
  fs.stat(localpath, function(errstat, stat) {
614
614
  if errstat || !stat.isDirectory()
@@ -807,7 +807,7 @@ closure Filesystem(rootpath, local files, badCreatePathRegEx) {
807
807
  // overwrite: <boolean> -- overwrite existing file, if any
808
808
  // }
809
809
 
810
- files.copy = closure copy(srcpath, dest, options, callback, local error, localsrc, localdest, pending) {
810
+ files.copy = closure copy(srcpath, dest, options, callback, local error, localsrc, localdest) {
811
811
  if !callback
812
812
  return (syncAdapter(copy, srcpath, dest, options))
813
813
  `(error, localsrc) = localPath(srcpath)
@@ -906,7 +906,7 @@ closure Filesystem(rootpath, local files, badCreatePathRegEx) {
906
906
  // Execute the uglifyjs utility on the specified source, returning the result as a standard
907
907
  // tuple: `(error, minified)
908
908
  //
909
- files.minimize = closure minimize(input, callback, local child, stdinStream) {
909
+ files.minimize = closure minimize(input, callback, local child) {
910
910
  if !callback
911
911
  return (syncAdapter(minimize, input))
912
912
  debuglog("==> Warning: files.minimize is deprecated")
@@ -1012,7 +1012,7 @@ closure Filesystem(rootpath, local files, badCreatePathRegEx) {
1012
1012
  // ignoreBinary: -- ignore binary files
1013
1013
  //
1014
1014
  files.grepLines = closure grepLines(path, options, callback,
1015
- local error, localpath, cmdargs, item, execOptions, grep, result, lineRE, maxcount) {
1015
+ local error, localpath, cmdargs, item, execOptions, result, lineRE, maxcount) {
1016
1016
  if !callback
1017
1017
  return (syncAdapter(grepLines, path, options))
1018
1018
  `(error, localpath) = localPath(path)
@@ -1099,7 +1099,8 @@ closure Filesystem(rootpath, local files, badCreatePathRegEx) {
1099
1099
  //
1100
1100
  //
1101
1101
 
1102
- files.execLines = closure execLines(cmdname, options, callback, local output, arg, execops, spawn, linerErr, linerOut) {
1102
+ files.execLines = closure execLines(cmdname, options, callback,
1103
+ local output, execops, spawn, linerErr, linerOut) {
1103
1104
  if !callback
1104
1105
  return (syncAdapter(execLines, cmdname, options))
1105
1106
  if !string(cmdname) || cmdname == ""
@@ -1124,7 +1125,7 @@ closure Filesystem(rootpath, local files, badCreatePathRegEx) {
1124
1125
  // kill
1125
1126
  // terminate the command
1126
1127
  function kill() {
1127
- grep.kill()
1128
+ spawn.kill()
1128
1129
  completed(false, output) } // the official end will never come
1129
1130
 
1130
1131
  //
@@ -59,7 +59,7 @@ closure psmsFsView(rootpath, local view, gitter) {
59
59
  //
60
60
  // Entry point for API requests.
61
61
 
62
- view.api = closure api(req, res, local path, proc, result) {
62
+ view.api = closure api(req, res, local path, proc) {
63
63
  if not string(req.query.path) {
64
64
  res.status(400).send("invalid path")
65
65
  return }
@@ -78,7 +78,7 @@ closure psmsFsView(rootpath, local view, gitter) {
78
78
  }
79
79
 
80
80
  // op: pathOp
81
- function pathOpApi(local selector, local result) {
81
+ function pathOpApi(local selector, result) {
82
82
  try {
83
83
  result = list(false, xapply(JSpath, req.query.selector, totuple(js.g.JSON.parse(req.query.arglist))))
84
84
  } catch {
@@ -489,7 +489,7 @@ closure psmsFsConnector(psm, api, local connClassID, connector, watch) {
489
489
  //
490
490
  // Connect to the specified service. The first argument is the rootpath, which is required.
491
491
  //
492
- connector.connect = function connect(resID, service, args, local error, creds, api) {
492
+ connector.connect = function connect(resID, service, args, local error, creds) {
493
493
  `(error, creds) = connector.access(resID)
494
494
  if !error {
495
495
  if creds == "HostFS"
@@ -391,7 +391,7 @@ closure Builder(rules, operation, fs, srcpath, destpath, local build, group, new
391
391
  // Run the zip operation on a worker.
392
392
  //
393
393
 
394
- closure zip(files, options, local result, annote) {
394
+ closure zip(files, options, local result) {
395
395
  if !build.zipper
396
396
  build.zipper = ExecutorParallel({ // create worker for zipping
397
397
  maxcount: 1 // stupid Zip lib can't do more than one
@@ -527,7 +527,7 @@ closure Builder(rules, operation, fs, srcpath, destpath, local build, group, new
527
527
  // Run the parseAndPack operation on a worker.
528
528
  //
529
529
 
530
- closure parseAndPack(text, fpath, options, local result, annote) {
530
+ closure parseAndPack(text, fpath, options, local result) {
531
531
  if !build.parallel
532
532
  build.parallel = ExecutorParallel({ // create worker pool
533
533
  basename: "build"
@@ -652,7 +652,7 @@ closure Builder(rules, operation, fs, srcpath, destpath, local build, group, new
652
652
  // added as a separate new group. A counter is kept of all outstanding async functions, and
653
653
  // analyze does not return until all pending async operations have completed.
654
654
  //
655
- closure processOneGroup(group, local error, indirpath, outdirpath, destcheck,
655
+ closure processOneGroup(group, local indirpath, outdirpath, destcheck,
656
656
  groupVerStat, source, sdex) {
657
657
  ++pending.active
658
658
  future(function test1() {
@@ -719,7 +719,7 @@ closure Builder(rules, operation, fs, srcpath, destpath, local build, group, new
719
719
 
720
720
  // Add an entry to execution list if it's needed.
721
721
  //
722
- closure addEntry(infile, outfile, instat, sdex, local error, outstat, entry) {
722
+ closure addEntry(infile, outfile, instat, sdex, local entry) {
723
723
  if sdex >= sourcemax {
724
724
  build.errorlist.push(Error("Too many sources in one group:", groupno.group))
725
725
  return
@@ -1271,7 +1271,7 @@ closure Builder(rules, operation, fs, srcpath, destpath, local build, group, new
1271
1271
  //
1272
1272
  // Refresh after updating the v-site, returning true iff an existing vsite was found.
1273
1273
  //
1274
- build.refresh = function refresh(track local main, url_origin, found) {
1274
+ build.refresh = function refresh(track local url_origin, found) {
1275
1275
  if build.runway."v-site" {
1276
1276
  url_origin = js.w.location.origin.concat("/run", build.runway."v-site")
1277
1277
  for target in track.enumlist() {
@@ -46,7 +46,7 @@ closure proj_consoleInstance(projman, where, projID, local project) {
46
46
  // load
47
47
  //
48
48
  // Load the project, which fails if it does not already exist.
49
- project.load = closure load(local error, info) {
49
+ project.load = closure load(local result) {
50
50
  if project.loaded
51
51
  return (list(false, { ok: true }))
52
52
  result = project.config.load()
@@ -46,7 +46,7 @@ closure proj_lambdaInstance(projman, where, projID, local project) {
46
46
  // load
47
47
  //
48
48
  // Load the project, which fails if it does not already exist.
49
- project.load = closure load(local error, info) {
49
+ project.load = closure load(local result) {
50
50
  if project.loaded
51
51
  return (list(false, { ok: true }))
52
52
  result = project.config.load()
@@ -296,7 +296,7 @@ closure projConnector(projman, projtype, local connector, watch) {
296
296
  *
297
297
  * Nide.proj/
298
298
  * nide_cliser.cfg - JSON definition of the project (see below)
299
- * NaanIDE_version.txt - [default] substitution file defining 1.0.8+1 etc.
299
+ * NaanIDE_version.txt - [default] substitution file defining 1.0.9+1 etc.
300
300
  * NaanIDE_version_builds.txt - [default] contains current build number as decimal string
301
301
  * build/ - [optional] default build output location
302
302
  * NaanIDE.lic - [optional] defines Zulch Laboratories, Inc. and other license info
@@ -432,7 +432,7 @@ closure projConfig(projman, where, projID, local procon, fs, configpath) {
432
432
  //
433
433
  // ### we need to update this for optional multiple-configuraiton builds
434
434
  //
435
- procon.create = closure create(name, local error, data, configpath) {
435
+ procon.create = closure create(name, local error, data) {
436
436
  if procon.loaded
437
437
  return (list(Error("Project.create: project already loaded")))
438
438
  if validate(name)
@@ -476,7 +476,7 @@ closure projConfig(projman, where, projID, local procon, fs, configpath) {
476
476
  // Load the project, i.e. read the project configuration if valid. This is non-destructive.
477
477
  // The result is a standard error tuple with a dictionary result on success.
478
478
  //
479
- procon.load = closure load(local error, data, info, configpath) {
479
+ procon.load = closure load(local error, data, info) {
480
480
  if procon.loaded
481
481
  return (list(false, procon.configDict))
482
482
  if validate()
@@ -599,7 +599,7 @@ closure projConfig(projman, where, projID, local procon, fs, configpath) {
599
599
  // Run the project by building and then launching.
600
600
  //
601
601
  procon.run = closure run(stage, buildonly,
602
- local error, rules, builder, buildpath, error, buildnum) {
602
+ local error, rules, builder, buildpath, buildnum) {
603
603
  `(error, rules) = buildrules(stage)
604
604
  if error
605
605
  return (list(error))
@@ -647,7 +647,7 @@ closure projConfig(projman, where, projID, local procon, fs, configpath) {
647
647
  // }
648
648
  //
649
649
  procon.publish = closure publish(stage,
650
- local error, rules, where, publish, error, outOptions, outfs, inpath) {
650
+ local error, rules, where, publish, outOptions, outfs, inpath) {
651
651
  `(error, rules) = buildrules(stage)
652
652
  if error
653
653
  return (list(error))
@@ -390,7 +390,7 @@ closure DebugNub(local nub, debug, paused) {
390
390
  //
391
391
  // Report all our breakpoints as an array of dictionary items.
392
392
 
393
- nub.breakList = function breakList(local output, id, bp) {
393
+ nub.breakList = function breakList(local output, bpid) {
394
394
  output = []
395
395
  for bpid in debug.breakpoints
396
396
  output.push(breakInfo(bpid))
@@ -538,7 +538,7 @@ closure execLambda(track, url, name, workerID, local target, nlregex, clientID,
538
538
  // onmessage
539
539
  // A message was received from the worker via WebSockets.
540
540
 
541
- target.ws.onmessage = function onmessage(e, local message, msg) {
541
+ target.ws.onmessage = function onmessage(e) {
542
542
  if target.msgQueue
543
543
  target.msgQueue.push(e.data)
544
544
  else
@@ -79,7 +79,7 @@ closure CodeManager(options, local coman, cache)
79
79
  // standard `(error, expr) format. The optional locals are symbols to provide context.
80
80
  //
81
81
  coman.parseExprs = function parseExprs(texts, locals,
82
- local output, text, source, registry, dialect, error, expr)
82
+ local output, text, source, registry, dialect)
83
83
  {
84
84
  output = []
85
85
  for text in texts {
@@ -124,7 +124,7 @@ closure CodeManager(options, local coman, cache)
124
124
  //
125
125
  // Get a CodeComposite from our cache, or false.
126
126
 
127
- coman.cachGet = function cachGet(cocode, manifest, local entry, item, mandefs) {
127
+ coman.cachGet = function cachGet(cocode, manifest, local item, mandefs) {
128
128
  if cache.modname != cocode.modname || cache.compname != cocode.compname || cache.manifest != manifest
129
129
  return (false)
130
130
  for item in manifest
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * column positioning: // // !
8
8
  *
9
- * Copyright (c) 2022 by Richard C. Zulch
9
+ * Copyright (c) 2022-2023 by Richard C. Zulch
10
10
  *
11
11
  */
12
12
 
@@ -84,7 +84,7 @@ function csvPrint(rows, local output, quoter, row, line, delim, col) {
84
84
  *
85
85
  */
86
86
 
87
- closure csvQuoteGenerator(delimiter, local rxComma, rxQuote) {
87
+ closure csvQuoteGenerator(delimiter, local rxDelimiter, rxQuote) {
88
88
  if !delimiter
89
89
  delimiter = ','
90
90
  rxDelimiter = RegExp('['.concat('"\\', delimiter, ']'))
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * column positioning: // // !
9
9
  *
10
- * Copyright (c) 2017-2021 by Richard C. Zulch
10
+ * Copyright (c) 2017-2023 by Richard C. Zulch
11
11
  *
12
12
  */
13
13
 
@@ -396,7 +396,7 @@ closure MakePSMutil(fs, local util) {
396
396
  *
397
397
  */
398
398
 
399
- closure MakePSM(dbname, local psm) {
399
+ closure MakePSM(dbname) {
400
400
  ResourceManager(dbname, "PSM_locations/")
401
401
  };
402
402
 
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * column positioning: // // !
8
8
  *
9
- * Copyright (c) 2020-2021 by Richard C. Zulch
9
+ * Copyright (c) 2020-2023 by Richard C. Zulch
10
10
  *
11
11
  */
12
12
 
@@ -36,7 +36,7 @@
36
36
  *
37
37
  */
38
38
 
39
- closure FSview(table, rootpath, local view, error) {
39
+ closure FSview(table, rootpath, local view) {
40
40
  if !table
41
41
  return (list(Error("invalid arguments")))
42
42
  view = new(object, this)
@@ -676,7 +676,7 @@ closure FSview(table, rootpath, local view, error) {
676
676
  }
677
677
  children: []
678
678
  }
679
- dbDirRecords(path, false, function(error, data, local item, result, slashdex, offset, finfo) {
679
+ dbDirRecords(path, false, function(error, data, local item, slashdex, offset, finfo) {
680
680
  if error
681
681
  return (callback(error))
682
682
  if data.rows.length == 0 && path != ""
@@ -716,7 +716,7 @@ closure FSview(table, rootpath, local view, error) {
716
716
  //
717
717
  // Read a directory at the specified path
718
718
 
719
- view.readir = closure readir(path, callback, local name, dirdict) {
719
+ view.readir = closure readir(path, callback) {
720
720
  dirList(path, { stat: true }, callback)
721
721
  }
722
722
 
@@ -181,9 +181,10 @@ closure ResourceManager(dbname, prefix, local reman, watch, result) {
181
181
  //
182
182
  // Return an array of labels for the registered connectors.
183
183
  reman.labels = function labels(local classID, labels) {
184
+ debuglog("ResourceManager.labels is broken")
184
185
  labels = []
185
186
  for remanID in reman.conns.*
186
- labels.push(reman.conns[classID].label)
187
+ labels.push(reman.conns[classID].label) // ### classID?
187
188
  labels
188
189
  }
189
190
 
@@ -329,7 +330,7 @@ closure ResourceTracker(reman, local retor, watch) {
329
330
  //
330
331
  // Update credentials for accessing a resource, returning the added credential record.
331
332
 
332
- retor.updateResource = function updateResource(resID, resource, local error, classI) {
333
+ retor.updateResource = function updateResource(resID, resource, local error, classID) {
333
334
  `(error, classID) = resourceClassID(resID)
334
335
  if error
335
336
  list(error)
@@ -520,7 +520,7 @@ exports.NaanControllerWeb = function() {
520
520
  statedoc.curversion = kStateCurrentVersion;
521
521
  statedoc.firstver = kStateFirstVersion;
522
522
  statedoc.licensee = "MIT-License";
523
- statedoc.verstring = "1.0.8+1";
523
+ statedoc.verstring = "1.0.9+1";
524
524
  statedoc.date = new Date().toISOString();
525
525
  statedoc.prefs = prefs;
526
526
  statedoc.naan = naanlib.saveState(false); // true to optimize, which is a bit slower
@@ -538,7 +538,7 @@ exports.NaanControllerWeb = function() {
538
538
  || statedoc.firstver > kStateCurrentVersion
539
539
  || statedoc.curversion < kStateFirstVersion
540
540
  || statedoc.licensee != "MIT-License"
541
- || statedoc.verstring != "1.0.8+1")
541
+ || statedoc.verstring != "1.0.9+1")
542
542
  {
543
543
  localStorage.removeItem("NaanState_Hosted");
544
544
  return (false);
@@ -597,7 +597,7 @@ exports.NaanControllerWeb = function() {
597
597
  op: "VsiteOpen",
598
598
  name: vsiteName,
599
599
  naancont: contSelf,
600
- title: vsiteName + " 1.0.8+1"
600
+ title: vsiteName + " 1.0.9+1"
601
601
  });
602
602
  }
603
603
  } catch (e) {
@@ -611,7 +611,7 @@ exports.NaanControllerWeb = function() {
611
611
  op: "VsiteClose",
612
612
  name: vsiteName,
613
613
  naancont: contSelf,
614
- title: vsiteName + " 1.0.8+1"
614
+ title: vsiteName + " 1.0.9+1"
615
615
  });
616
616
  termTextOut("\x1b[90m\x1b[3m".concat("\nwindow closed", "\x1b[0m\n"));
617
617
  }
@@ -626,8 +626,8 @@ exports.NaanControllerWeb = function() {
626
626
  naanlib.banner();
627
627
  var hostpath = naanlib.js.r("path").dirname(window.location.href);
628
628
  naanlib.start({
629
- cmd: 'App.version = "1.0.8+1";;\r\n'
630
- + 'App.cache = "a7694c55ac4ee13a1946011bac913099";;\r\n'
629
+ cmd: 'App.version = "1.0.9+1";;\r\n'
630
+ + 'App.cache = "56a3661c1caa5c6ed3781ffcad84acf4";;\r\n'
631
631
  + 'Naan.module.requireQuery({ naanver: App.cache });;\r\n'
632
632
  + 'Naan.module.webparse("naan_init.nlg", "' + hostpath + '", { naanver: App.cache });;\r\n'
633
633
  });