@naanlang/naan 1.4.4 → 1.6.0
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 +2 -2
- package/README.md +4 -4
- package/bin/index.js +25 -3
- package/dist/env_web.js +164 -22
- package/dist/naan.min.js +5 -5
- package/frameworks/browser/browser.nlg +2 -2
- package/frameworks/browser/https_request.nlg +2 -2
- package/frameworks/browser/sworker.js +28 -26
- package/frameworks/browser/terminals.nlg +342 -700
- package/frameworks/browser/worker.nlg +255 -0
- package/frameworks/browser/workers.nlg +5 -5
- package/frameworks/browser/ws_client.nlg +15 -10
- package/frameworks/client/apiclient.nlg +204 -19
- package/frameworks/client/client.nlg +22 -2
- package/frameworks/client/psm_client.nlg +12 -3
- package/frameworks/client/relaycon.nlg +87 -161
- package/frameworks/common/events.nlg +101 -0
- package/frameworks/common/repltools.nlg +80 -1
- package/frameworks/node/apiserver.nlg +39 -246
- package/frameworks/node/filesystem.nlg +39 -12
- package/frameworks/node/gitter.nlg +9 -7
- package/frameworks/node/http_request.nlg +34 -13
- package/frameworks/node/https_request.nlg +8 -3
- package/frameworks/node/node.nlg +2 -0
- package/frameworks/node/pty.nlg +346 -0
- package/frameworks/node/shell.nlg +4 -4
- package/frameworks/node/worker.nlg +409 -539
- package/frameworks/node/ws_client.nlg +2 -2
- package/frameworks/project/build.nlg +1 -1
- package/frameworks/project/projects.nlg +2 -1
- package/frameworks/running/debugnub.nlg +17 -4
- package/frameworks/running/executors.nlg +27 -274
- package/frameworks/running/instances.nlg +393 -0
- package/frameworks/running/remote_req.nlg +143 -0
- package/frameworks/running/remote_res.nlg +89 -0
- package/frameworks/running/taskexec.nlg +2 -2
- package/frameworks/service/imp.nlg +736 -0
- package/frameworks/service/model.nlg +71 -0
- package/frameworks/service/nubnode.nlg +105 -0
- package/frameworks/service/nubweb.nlg +106 -0
- package/frameworks/service/service.nlg +28 -0
- package/frameworks/storage/dbt_pouch.nlg +26 -13
- package/frameworks/storage/psm.nlg +39 -5
- package/frameworks/storage/psm_dbtables.nlg +10 -2
- package/lib/browser/env_web.js +171 -29
- package/lib/browser/env_webworker.js +91 -5
- package/lib/core/naanlib.js +5 -5
- package/lib/env_node.js +184 -8
- package/lib/env_nodeworker.js +74 -1
- package/package.json +1 -1
- package/plugins/serviceAws/aws_cloudwatchlogs.nlg +2 -1
- package/plugins/serviceAws/aws_dynamo.nlg +1 -0
- package/plugins/serviceAws/aws_s3.nlg +3 -3
- package/plugins/serviceAws/aws_sqs.nlg +3 -1
- package/plugins/serviceAws/aws_utils.nlg +3 -1
- package/plugins/serviceAws/dbt_aws.nlg +22 -20
- package/plugins/serviceAws/psm_aws.nlg +2 -1
- package/plugins/serviceNexara/speechrec.nlg +10 -6
- package/test/test_02_context.nlg +24 -1
- package/test/test_03_jsinterop.nlg +32 -3
- package/plugins/serviceGC/russian_trusted_root_ca_pem.crt +0 -33
package/LICENSE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
**NaaN for NPM** version **1.
|
|
1
|
+
**NaaN for NPM** version **1.6.0+1** is released under the MIT License:
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2017-
|
|
3
|
+
Copyright (c) 2017-2026 Zulch Laboratories, Inc.
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/README.md
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
NaaN is an async-first software platform for rapid development.
|
|
5
5
|
|
|
6
6
|
#### Release:
|
|
7
|
-
**NaaN for NPM** version **1.
|
|
8
|
-
Copyright (c) 2017-
|
|
7
|
+
**NaaN for NPM** version **1.6.0+1**
|
|
8
|
+
Copyright (c) 2017-2026 Zulch Laboratories, Inc.
|
|
9
9
|
|
|
10
10
|
#### Features
|
|
11
11
|
- **NaaN** runs in NodeJS and web browsers using JavaScript
|
|
@@ -23,7 +23,7 @@ NaaN is an async-first software platform for rapid development.
|
|
|
23
23
|
|
|
24
24
|
#### Installation
|
|
25
25
|
|
|
26
|
-
Please ensure you have a recent version of [node.js](http://nodejs.org/). The minimum is `
|
|
26
|
+
Please ensure you have a recent version of [node.js](http://nodejs.org/). The minimum is `v20.10.0`
|
|
27
27
|
|
|
28
28
|
For use everywhere as a command line app:
|
|
29
29
|
|
|
@@ -62,7 +62,7 @@ Define a function, call it, and return the length of the base-10 result. First r
|
|
|
62
62
|
% naan -e "function factr(x,a){if x>0 factr(x-1,x*a) else a}(10000,1).length"
|
|
63
63
|
35660
|
|
64
64
|
```
|
|
65
|
-
Fetch your public IP from a website
|
|
65
|
+
Fetch your public IP from a website:
|
|
66
66
|
|
|
67
67
|
```
|
|
68
68
|
% naan -e "new(await(await((js.g||js.w).fetch('https://api.ipify.org/?format=json')).1.json()).1)"
|
package/bin/index.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* column positioning: // // !
|
|
9
9
|
*
|
|
10
|
-
* Copyright (c) 2021-
|
|
10
|
+
* Copyright (c) 2021-2026 by Richard C. Zulch
|
|
11
11
|
*
|
|
12
12
|
*/
|
|
13
13
|
|
|
@@ -26,6 +26,7 @@ var naanpath = path.join(__dirname, ".."); // p
|
|
|
26
26
|
var rootpath = naanpath; // path to us, which is naan
|
|
27
27
|
var envpath = jspath.resolve(naanpath, 'lib/env_node.js'); // path to Naan loader
|
|
28
28
|
|
|
29
|
+
|
|
29
30
|
/*
|
|
30
31
|
* Process command-line arguments
|
|
31
32
|
*
|
|
@@ -39,6 +40,10 @@ var cmd_text = ""
|
|
|
39
40
|
+ `App.naanpath = '${ naanpath.replace(/\\/g, "\\\\") }';;\n` // path/to/our naan library
|
|
40
41
|
+ `App.rootpath = '${ rootpath.replace(/\\/g, "\\\\") }';;\n` // path/to/our package.json
|
|
41
42
|
+ "Naan.module.defineLoc('naanlib', App.naanpath);;\n" // defines "naanlib:" prefix for require
|
|
43
|
+
+ "App.imp = require('naanlib:frameworks/service/imp.nlg').Imp({\n" // create an initial IMP, even if not useful
|
|
44
|
+
+ " name: 'NaaN'\n"
|
|
45
|
+
+ " type: 'cli-tool'\n"
|
|
46
|
+
+ "});;\n"
|
|
42
47
|
+ "nodeparse('lib/node_repl_init.nlg');;\n" // REPL utility functions
|
|
43
48
|
+ "App.shell = require('naanlib:frameworks/node/shell.nlg').ShellConnect({ cwd: js.d });;\n";
|
|
44
49
|
|
|
@@ -68,11 +73,11 @@ process.argv.every((val, index) => {
|
|
|
68
73
|
return (true);
|
|
69
74
|
}
|
|
70
75
|
if (val == "--version") {
|
|
71
|
-
console.log("1.
|
|
76
|
+
console.log("1.6.0");
|
|
72
77
|
process.exit(0);
|
|
73
78
|
}
|
|
74
79
|
if (val == "--buildno") {
|
|
75
|
-
console.log("1.
|
|
80
|
+
console.log("1.6.0+1");
|
|
76
81
|
process.exit(0);
|
|
77
82
|
}
|
|
78
83
|
if (val.substring(0,1) == "-") {
|
|
@@ -156,11 +161,28 @@ if (eval_text) {
|
|
|
156
161
|
}
|
|
157
162
|
|
|
158
163
|
|
|
164
|
+
/*
|
|
165
|
+
* versionCheck
|
|
166
|
+
*
|
|
167
|
+
*/
|
|
168
|
+
|
|
169
|
+
function versionCheck(minver) {
|
|
170
|
+
var rxver = /([0-9]+)[.]([0-9]+)[.]([0-9]+)/;
|
|
171
|
+
minver = minver.match(rxver).map(function(x){ return(Number.parseInt(x)) });
|
|
172
|
+
var curver = process.version.match(rxver).map(function(x){ return(Number.parseInt(x)) });
|
|
173
|
+
return (minver[1] < curver[1] || minver[1] == curver[1] && (minver[2] < curver[2] || minver[2] == curver[2] && minver[3] <= curver[3]));
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
|
|
159
177
|
/*
|
|
160
178
|
* Execute Naan
|
|
161
179
|
*
|
|
162
180
|
*/
|
|
163
181
|
|
|
182
|
+
if (!versionCheck("v20.10.0")) {
|
|
183
|
+
console.log(`naan: nodejs ${ process.version } too old, requires v20.10.0 or newer`);
|
|
184
|
+
process.exit(1);
|
|
185
|
+
}
|
|
164
186
|
var NaanNodeREPL = require(envpath);
|
|
165
187
|
var naanrepl = new NaanNodeREPL(naanOptions);
|
|
166
188
|
naanrepl.setDirectory(rootpath);
|
package/dist/env_web.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* column positioning: // // !
|
|
8
8
|
*
|
|
9
|
-
* Copyright (c) 2017-
|
|
9
|
+
* Copyright (c) 2017-2026 by Richard C. Zulch
|
|
10
10
|
*
|
|
11
11
|
*/
|
|
12
12
|
|
|
@@ -69,6 +69,7 @@ exports.NaanControllerWeb = function() {
|
|
|
69
69
|
|
|
70
70
|
var naanlib = new exports.Naanlib();
|
|
71
71
|
var dontSaveUntilWorking; // true when state loaded, must be reset to save state again
|
|
72
|
+
var dontSave; // true to avoid saving, i.e. in debugger
|
|
72
73
|
var contSelf = this; // this is us, for access within nested functions
|
|
73
74
|
exports.naancon = this; // access to this instance
|
|
74
75
|
contSelf.anaan = naanlib.js.n;
|
|
@@ -93,8 +94,8 @@ exports.NaanControllerWeb = function() {
|
|
|
93
94
|
function termTextOut(text, level) {
|
|
94
95
|
if (!text)
|
|
95
96
|
return;
|
|
96
|
-
if (termlist.length === 0) {
|
|
97
|
-
console.log(text);
|
|
97
|
+
if (termlist.length === 0) { // make sure we can see early errors
|
|
98
|
+
console.log(text.replace(/(?:\x1B[@-Z\\-_]|\x1B\[[0-?]*[ -/]*[@-~])/g, ''));
|
|
98
99
|
if (!replqueue)
|
|
99
100
|
replqueue = [];
|
|
100
101
|
replqueue.push({text:text, level:level});
|
|
@@ -137,7 +138,7 @@ exports.NaanControllerWeb = function() {
|
|
|
137
138
|
|
|
138
139
|
|
|
139
140
|
//==========================================================================
|
|
140
|
-
//
|
|
141
|
+
// Direct Terminal Interface
|
|
141
142
|
//--------------------------------------------------------------------------
|
|
142
143
|
|
|
143
144
|
//
|
|
@@ -170,6 +171,7 @@ exports.NaanControllerWeb = function() {
|
|
|
170
171
|
if (repdex < 0)
|
|
171
172
|
termlist.push(terminal);
|
|
172
173
|
takePending(); // output all pending terminal messages
|
|
174
|
+
this.ioctl_event("term-attach", "");
|
|
173
175
|
};
|
|
174
176
|
|
|
175
177
|
//
|
|
@@ -184,6 +186,7 @@ exports.NaanControllerWeb = function() {
|
|
|
184
186
|
termlist.splice(repdex, 1);
|
|
185
187
|
if (termlist.length === 0)
|
|
186
188
|
replstate = terminal.StateSave(); // save ultimate repl state
|
|
189
|
+
this.ioctl_event("term-detach", "");
|
|
187
190
|
};
|
|
188
191
|
|
|
189
192
|
//
|
|
@@ -339,13 +342,14 @@ exports.NaanControllerWeb = function() {
|
|
|
339
342
|
function ConsoleDebugTerminal() {
|
|
340
343
|
var termSelf = this;
|
|
341
344
|
//
|
|
342
|
-
//
|
|
345
|
+
// OnMessage
|
|
343
346
|
//
|
|
344
347
|
this.OnMessage = function OnMessage(msg) {
|
|
348
|
+
var text = msg.text.replace(/(?:\x1B[@-Z\\-_]|\x1B\[[0-?]*[ -/]*[@-~])/g, '');
|
|
345
349
|
if (msg.id == "debugtext")
|
|
346
|
-
console.log("dbug-" + msg.level + " " +
|
|
350
|
+
console.log("dbug-" + msg.level + " " + text);
|
|
347
351
|
else if (msg.id == "textout")
|
|
348
|
-
console.log(
|
|
352
|
+
console.log(text);
|
|
349
353
|
};
|
|
350
354
|
//
|
|
351
355
|
// cmd
|
|
@@ -391,25 +395,31 @@ exports.NaanControllerWeb = function() {
|
|
|
391
395
|
exports.debug = debug;
|
|
392
396
|
|
|
393
397
|
//==========================================================================
|
|
394
|
-
//
|
|
398
|
+
// MessageTerminal
|
|
395
399
|
//--------------------------------------------------------------------------
|
|
396
400
|
|
|
397
|
-
function
|
|
401
|
+
function MessageTerminal(windest, origin)
|
|
398
402
|
{
|
|
399
403
|
var termSelf = this;
|
|
400
404
|
//
|
|
401
405
|
// listen for messages
|
|
402
406
|
//
|
|
403
407
|
window.addEventListener("message", function (event) {
|
|
404
|
-
if (event.origin !==
|
|
408
|
+
if (origin && event.origin !== origin)
|
|
405
409
|
return; // only talk with our peers
|
|
406
410
|
var msg = event.data;
|
|
411
|
+
if (msg.scope != "naan-env-web")
|
|
412
|
+
return;
|
|
407
413
|
if (msg.id == "interrupt")
|
|
408
414
|
contSelf.Interrupt();
|
|
409
415
|
else if (msg.id == "keyline")
|
|
410
416
|
contSelf.Return(msg.text, termSelf); // keyboard text from terminal
|
|
411
|
-
else if (msg.id == "
|
|
412
|
-
|
|
417
|
+
else if (msg.id == "typed")
|
|
418
|
+
echoTyped(msg.text);
|
|
419
|
+
else if (msg.id == "attached")
|
|
420
|
+
contSelf.Attach(messageTerm); // start using the terminal
|
|
421
|
+
else if (msg.id == "detached")
|
|
422
|
+
contSelf.Detach(messageTerm); // done using the terminal
|
|
413
423
|
else if (msg.id == "import")
|
|
414
424
|
{ // for workers
|
|
415
425
|
}
|
|
@@ -423,13 +433,16 @@ exports.NaanControllerWeb = function() {
|
|
|
423
433
|
if (debugListener)
|
|
424
434
|
debugListener(msg.data); // target received a message
|
|
425
435
|
}
|
|
436
|
+
else if (msg.id == "ioctl-event")
|
|
437
|
+
contSelf.ioctl_event(msg.msg, msg.arg);
|
|
426
438
|
});
|
|
427
439
|
|
|
428
440
|
//
|
|
429
441
|
// report messages back to opener
|
|
430
442
|
//
|
|
431
443
|
termSelf.OnMessage = function OnMessage(msg) {
|
|
432
|
-
|
|
444
|
+
msg.scope = "naan-env-web";
|
|
445
|
+
windest.postMessage(msg, origin);
|
|
433
446
|
return (msg);
|
|
434
447
|
};
|
|
435
448
|
|
|
@@ -437,7 +450,7 @@ exports.NaanControllerWeb = function() {
|
|
|
437
450
|
// report messages back to opener
|
|
438
451
|
//
|
|
439
452
|
termSelf.OnMessageOut = function OnMessageOut(data) {
|
|
440
|
-
var msg = {
|
|
453
|
+
var msg = { // target is sending debug data
|
|
441
454
|
id: "targetout",
|
|
442
455
|
data: data
|
|
443
456
|
};
|
|
@@ -448,7 +461,7 @@ exports.NaanControllerWeb = function() {
|
|
|
448
461
|
// report debug messages back to opener
|
|
449
462
|
//
|
|
450
463
|
termSelf.OnDebugOut = function OnDebugOut(data) {
|
|
451
|
-
var msg = {
|
|
464
|
+
var msg = { // target is sending debug data
|
|
452
465
|
id: "debugout",
|
|
453
466
|
data: data
|
|
454
467
|
};
|
|
@@ -459,14 +472,129 @@ exports.NaanControllerWeb = function() {
|
|
|
459
472
|
// report status back to opener
|
|
460
473
|
//
|
|
461
474
|
termSelf.OnStatus = function OnStatus(status) {
|
|
462
|
-
var msg = {
|
|
475
|
+
var msg = { // target is sending debug data
|
|
463
476
|
id: "status",
|
|
464
477
|
status: status
|
|
465
478
|
};
|
|
466
479
|
return (termSelf.OnMessage(msg));
|
|
467
480
|
};
|
|
481
|
+
|
|
482
|
+
//
|
|
483
|
+
// stub to ignore call
|
|
484
|
+
//
|
|
485
|
+
termSelf.StateSave = function StateSave() {
|
|
486
|
+
return (false);
|
|
487
|
+
};
|
|
488
|
+
|
|
489
|
+
//
|
|
490
|
+
// send ioctl back to terminal
|
|
491
|
+
//
|
|
492
|
+
termSelf.ioctl = function ioctl(op, arg) {
|
|
493
|
+
var msg = {
|
|
494
|
+
id: "ioctl",
|
|
495
|
+
op: op,
|
|
496
|
+
arg: arg
|
|
497
|
+
};
|
|
498
|
+
return (termSelf.OnMessage(msg));
|
|
499
|
+
};
|
|
500
|
+
|
|
501
|
+
listen_all.push(function(imsg, arg) {
|
|
502
|
+
var msg = { // target is sending ioctl event
|
|
503
|
+
id: "ioctl_event",
|
|
504
|
+
msg: imsg,
|
|
505
|
+
arg: arg
|
|
506
|
+
};
|
|
507
|
+
return (termSelf.OnMessage(msg));
|
|
508
|
+
});
|
|
468
509
|
}
|
|
469
510
|
|
|
511
|
+
//==========================================================================
|
|
512
|
+
// ioctl terminal control
|
|
513
|
+
//--------------------------------------------------------------------------
|
|
514
|
+
|
|
515
|
+
var listen_all = [];
|
|
516
|
+
var listeners = { };
|
|
517
|
+
var ioctl_callback;
|
|
518
|
+
|
|
519
|
+
//
|
|
520
|
+
// ioctl_open
|
|
521
|
+
//
|
|
522
|
+
// A terminal controller is now open on our instance.
|
|
523
|
+
//
|
|
524
|
+
|
|
525
|
+
this.ioctl_open = function ioctl_open(callback) {
|
|
526
|
+
ioctl_callback = callback;
|
|
527
|
+
return (true);
|
|
528
|
+
};
|
|
529
|
+
|
|
530
|
+
//
|
|
531
|
+
// ioctl_close
|
|
532
|
+
//
|
|
533
|
+
// The terminal controller is no longer open on our instance.
|
|
534
|
+
//
|
|
535
|
+
|
|
536
|
+
this.ioctl_close = function ioctl_close() {
|
|
537
|
+
ioctl_callback = false;
|
|
538
|
+
return (true);
|
|
539
|
+
};
|
|
540
|
+
|
|
541
|
+
//
|
|
542
|
+
// ioctl_event
|
|
543
|
+
//
|
|
544
|
+
// Events incoming from terminal.
|
|
545
|
+
//
|
|
546
|
+
|
|
547
|
+
this.ioctl_event = function ioctl_event(msg, arg) {
|
|
548
|
+
listen_all.forEach(function(proc) {
|
|
549
|
+
proc(msg, arg);
|
|
550
|
+
});
|
|
551
|
+
if (listeners[msg])
|
|
552
|
+
listeners[msg].forEach(function(proc) {
|
|
553
|
+
proc(msg, arg);
|
|
554
|
+
});
|
|
555
|
+
};
|
|
556
|
+
|
|
557
|
+
//
|
|
558
|
+
// ioctl_add_listener
|
|
559
|
+
// ioctl_remove_listener
|
|
560
|
+
//
|
|
561
|
+
// Add a listener for a terminal event.
|
|
562
|
+
//
|
|
563
|
+
|
|
564
|
+
this.ioctl_add_listener = function ioctl_add_listener(msg, proc) {
|
|
565
|
+
if (typeof(msg) != "string" || typeof(proc) != "function")
|
|
566
|
+
return (false);
|
|
567
|
+
this.ioctl_remove_listener(msg, proc);
|
|
568
|
+
if (!listeners[msg])
|
|
569
|
+
listeners[msg] = [];
|
|
570
|
+
listeners[msg].push(proc);
|
|
571
|
+
return (true);
|
|
572
|
+
};
|
|
573
|
+
|
|
574
|
+
this.ioctl_remove_listener = function ioctl_remove_listener(msg, proc) {
|
|
575
|
+
if (typeof(msg) != "string" || typeof(proc) != "function")
|
|
576
|
+
return (false);
|
|
577
|
+
if (listeners[msg]) {
|
|
578
|
+
var index = listeners[msg].indexOf(proc);
|
|
579
|
+
if (index >= 0)
|
|
580
|
+
listeners[msg].splice(index, 1);
|
|
581
|
+
}
|
|
582
|
+
return (true);
|
|
583
|
+
};
|
|
584
|
+
|
|
585
|
+
//
|
|
586
|
+
// ioctl
|
|
587
|
+
//
|
|
588
|
+
// Control of terminals (and their controller.)
|
|
589
|
+
//
|
|
590
|
+
|
|
591
|
+
this.ioctl = function ioctl(op, arg) {
|
|
592
|
+
if (ioctl_callback)
|
|
593
|
+
ioctl_callback(op, arg);
|
|
594
|
+
messageTerm.ioctl(op, arg);
|
|
595
|
+
return (true);
|
|
596
|
+
};
|
|
597
|
+
|
|
470
598
|
//==========================================================================
|
|
471
599
|
// Host Environment
|
|
472
600
|
//--------------------------------------------------------------------------
|
|
@@ -501,6 +629,16 @@ exports.NaanControllerWeb = function() {
|
|
|
501
629
|
dontSaveUntilWorking = false;
|
|
502
630
|
};
|
|
503
631
|
|
|
632
|
+
//
|
|
633
|
+
// Saving
|
|
634
|
+
//
|
|
635
|
+
// Turn state saving on or off; on by default.
|
|
636
|
+
//
|
|
637
|
+
|
|
638
|
+
this.Saving = function Saving(onOff) {
|
|
639
|
+
dontSave = !onOff;
|
|
640
|
+
};
|
|
641
|
+
|
|
504
642
|
window.document.addEventListener("visibilitychange", function (e) {
|
|
505
643
|
virtualVisibilityChange();
|
|
506
644
|
if (window.document.visibilityState == "hidden") {
|
|
@@ -550,8 +688,12 @@ exports.NaanControllerWeb = function() {
|
|
|
550
688
|
localStorage.removeItem("NaanState_Hosted");
|
|
551
689
|
return (false);
|
|
552
690
|
}
|
|
553
|
-
if (
|
|
691
|
+
if (dontSave)
|
|
692
|
+
return (false); // not saving right now
|
|
693
|
+
if ("nosave" in querystrings)
|
|
554
694
|
return (false);
|
|
695
|
+
if (window.opener)
|
|
696
|
+
return (false); // don't save running under NaanIDE
|
|
555
697
|
var statedoc = makeState();
|
|
556
698
|
var statestr = JSON.stringify(statedoc);
|
|
557
699
|
try {
|
|
@@ -631,7 +773,7 @@ exports.NaanControllerWeb = function() {
|
|
|
631
773
|
}
|
|
632
774
|
|
|
633
775
|
/*jshint sub:true */
|
|
634
|
-
if (
|
|
776
|
+
if ("restart" in querystrings || !loadLocal())
|
|
635
777
|
{ // don't load state or can't load state
|
|
636
778
|
naanlib.banner();
|
|
637
779
|
var hostpath = window.location.origin.concat(naanlib.js.r("path").dirname(window.location.pathname));
|
|
@@ -655,11 +797,11 @@ exports.NaanControllerWeb = function() {
|
|
|
655
797
|
|
|
656
798
|
if (window.opener) {
|
|
657
799
|
virtualOpen();
|
|
658
|
-
var term = new CloneDebugTerminal();
|
|
659
|
-
term.OnMessage({
|
|
660
|
-
id: "loaded"
|
|
661
|
-
});
|
|
662
800
|
}
|
|
801
|
+
var messageTerm = new MessageTerminal(window, window.origin);
|
|
802
|
+
messageTerm.OnMessage({
|
|
803
|
+
id: "loaded"
|
|
804
|
+
});
|
|
663
805
|
};
|
|
664
806
|
|
|
665
807
|
/*jshint sub:true */
|