@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.
- package/LICENSE.md +1 -1
- package/README.md +1 -1
- package/bin/index.js +2 -2
- package/dist/naan.min.js +4 -4
- package/frameworks/browser/browser.nlg +1 -1
- package/frameworks/browser/sworker.js +17 -17
- package/frameworks/browser/terminals.nlg +1 -1
- package/frameworks/browser/workers.nlg +1 -1
- package/frameworks/client/psm_client.nlg +1 -1
- package/frameworks/common/common.nlg +1 -1
- package/frameworks/node/filesystem.nlg +8 -7
- package/frameworks/node/psm_server.nlg +3 -3
- package/frameworks/project/build.nlg +5 -5
- package/frameworks/project/proj_console.nlg +1 -1
- package/frameworks/project/proj_lambda.nlg +1 -1
- package/frameworks/project/projects.nlg +5 -5
- package/frameworks/running/debugnub.nlg +1 -1
- package/frameworks/running/executors.nlg +1 -1
- package/frameworks/running/sourcecode.nlg +2 -2
- package/frameworks/storage/csv.nlg +2 -2
- package/frameworks/storage/dbt_pouch.nlg +1 -1
- package/frameworks/storage/psm.nlg +1 -1
- package/frameworks/storage/psm_dbtables.nlg +4 -4
- package/frameworks/storage/resources.nlg +3 -2
- package/lib/browser/env_web.js +6 -6
- package/lib/core/naanlib.js +4 -4
- package/package.json +1 -1
- package/plugins/serviceAws/aws_dynamo.nlg +12 -12
- package/plugins/serviceAws/dbt_aws.nlg +2 -2
- package/test/harness.nlg +2 -1
- package/test/test_05_strings.nlg +2 -0
- package/test/test_06_lingoparse.nlg +6 -0
- package/test/test_07_lingo.nlg +9 -9
|
@@ -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,
|
|
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.
|
|
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.
|
|
93
|
-
if (pubVersion != "1.0.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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") !== "
|
|
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.
|
|
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.
|
|
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.
|
|
395
|
+
console.log('[1.0.9+1] matching clients:', urls.join(', '));
|
|
396
396
|
});
|
|
397
397
|
var promise = ClearCaches();
|
|
398
398
|
if (event.waitUntil)
|
|
@@ -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
|
|
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
|
|
310
|
+
view.copy = closure copy(srcpath, dest, options, callback) {
|
|
311
311
|
if options
|
|
312
312
|
options = new(options)
|
|
313
313
|
else
|
|
@@ -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,
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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
|
-
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
87
|
+
closure csvQuoteGenerator(delimiter, local rxDelimiter, rxQuote) {
|
|
88
88
|
if !delimiter
|
|
89
89
|
delimiter = ','
|
|
90
90
|
rxDelimiter = RegExp('['.concat('"\\', delimiter, ']'))
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* column positioning: // // !
|
|
8
8
|
*
|
|
9
|
-
* Copyright (c) 2020-
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
333
|
+
retor.updateResource = function updateResource(resID, resource, local error, classID) {
|
|
333
334
|
`(error, classID) = resourceClassID(resID)
|
|
334
335
|
if error
|
|
335
336
|
list(error)
|
package/lib/browser/env_web.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
630
|
-
+ 'App.cache = "
|
|
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
|
});
|