spawn-term 1.0.0 → 1.0.2
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/dist/cjs/components/App.js +8 -16
- package/dist/cjs/components/App.js.map +1 -1
- package/dist/cjs/createApp.d.cts +3 -1
- package/dist/cjs/createApp.d.ts +3 -1
- package/dist/cjs/createApp.js +23 -78
- package/dist/cjs/createApp.js.map +1 -1
- package/dist/cjs/index-cjs.d.cts +3 -1
- package/dist/cjs/index-cjs.d.ts +3 -1
- package/dist/cjs/index-cjs.js.map +1 -1
- package/dist/cjs/index-esm.d.cts +1 -2
- package/dist/cjs/index-esm.d.ts +1 -2
- package/dist/cjs/index-esm.js +2 -62
- package/dist/cjs/index-esm.js.map +1 -1
- package/dist/cjs/spawnTerminal.d.cts +2 -0
- package/dist/cjs/spawnTerminal.d.ts +2 -0
- package/dist/cjs/spawnTerminal.js +72 -0
- package/dist/cjs/spawnTerminal.js.map +1 -0
- package/dist/cjs/{contexts/Store.d.cts → store/Context.d.cts} +1 -1
- package/dist/cjs/{contexts/Store.d.ts → store/Context.d.ts} +1 -1
- package/dist/cjs/store/Context.js.map +1 -0
- package/dist/cjs/store/Store.d.cts +9 -0
- package/dist/cjs/store/Store.d.ts +9 -0
- package/dist/cjs/store/Store.js +37 -0
- package/dist/cjs/store/Store.js.map +1 -0
- package/dist/cjs/store/index.d.cts +2 -0
- package/dist/cjs/store/index.d.ts +2 -0
- package/dist/cjs/store/index.js +26 -0
- package/dist/cjs/store/index.js.map +1 -0
- package/dist/cjs/types.d.cts +0 -11
- package/dist/cjs/types.d.ts +0 -11
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/worker.js +7 -7
- package/dist/cjs/worker.js.map +1 -1
- package/dist/esm/components/App.js +8 -16
- package/dist/esm/components/App.js.map +1 -1
- package/dist/esm/createApp.d.ts +3 -1
- package/dist/esm/createApp.js +20 -45
- package/dist/esm/createApp.js.map +1 -1
- package/dist/esm/index-cjs.d.ts +3 -1
- package/dist/esm/index-cjs.js.map +1 -1
- package/dist/esm/index-esm.d.ts +1 -2
- package/dist/esm/index-esm.js +2 -17
- package/dist/esm/index-esm.js.map +1 -1
- package/dist/esm/spawnTerminal.d.ts +2 -0
- package/dist/esm/spawnTerminal.js +16 -0
- package/dist/esm/spawnTerminal.js.map +1 -0
- package/dist/esm/{contexts/Store.d.ts → store/Context.d.ts} +1 -1
- package/dist/esm/store/Context.js.map +1 -0
- package/dist/esm/store/Store.d.ts +9 -0
- package/dist/esm/store/Store.js +16 -0
- package/dist/esm/store/Store.js.map +1 -0
- package/dist/esm/store/index.d.ts +2 -0
- package/dist/esm/store/index.js +2 -0
- package/dist/esm/store/index.js.map +1 -0
- package/dist/esm/types.d.ts +0 -11
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/worker.js +7 -7
- package/dist/esm/worker.js.map +1 -1
- package/package.json +3 -3
- package/dist/cjs/contexts/Store.js.map +0 -1
- package/dist/esm/contexts/Store.js.map +0 -1
- /package/dist/cjs/{contexts/Store.js → store/Context.js} +0 -0
- /package/dist/esm/{contexts/Store.js → store/Context.js} +0 -0
|
@@ -11,8 +11,7 @@ Object.defineProperty(exports, "default", {
|
|
|
11
11
|
var _jsxruntime = require("react/jsx-runtime");
|
|
12
12
|
var _ink = require("ink");
|
|
13
13
|
var _react = require("react");
|
|
14
|
-
var
|
|
15
|
-
var _Store = /*#__PURE__*/ _interop_require_default(require("../contexts/Store.js"));
|
|
14
|
+
var _index = require("../store/index.js");
|
|
16
15
|
var _ChildProcess = /*#__PURE__*/ _interop_require_default(require("./ChildProcess.js"));
|
|
17
16
|
function _interop_require_default(obj) {
|
|
18
17
|
return obj && obj.__esModule ? obj : {
|
|
@@ -20,20 +19,13 @@ function _interop_require_default(obj) {
|
|
|
20
19
|
};
|
|
21
20
|
}
|
|
22
21
|
function App() {
|
|
23
|
-
var store = (0, _react.useContext)(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_ink.Box, {
|
|
31
|
-
flexDirection: "column",
|
|
32
|
-
children: appState.processes.map(function(item) {
|
|
33
|
-
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_ChildProcess.default, {
|
|
34
|
-
item: item
|
|
35
|
-
}, item.id);
|
|
36
|
-
})
|
|
22
|
+
var store = (0, _react.useContext)(_index.Context);
|
|
23
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_ink.Box, {
|
|
24
|
+
flexDirection: "column",
|
|
25
|
+
children: store.processes.map(function(item) {
|
|
26
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_ChildProcess.default, {
|
|
27
|
+
item: item
|
|
28
|
+
}, item.id);
|
|
37
29
|
})
|
|
38
30
|
});
|
|
39
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/App.tsx"],"sourcesContent":["import { Box } from 'ink';\nimport {
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/App.tsx"],"sourcesContent":["import { Box } from 'ink';\nimport { useContext } from 'react';\nimport { Context, type Store } from '../store/index.js';\nimport type { ChildProcess as ChildProcessT } from '../types.js';\nimport ChildProcess from './ChildProcess.js';\n\nexport default function App() {\n const store = useContext<Store>(Context);\n\n return (\n <Box flexDirection=\"column\">\n {store.processes.map((item: ChildProcessT) => (\n <ChildProcess key={item.id} item={item} />\n ))}\n </Box>\n );\n}\n"],"names":["App","store","useContext","Context","Box","flexDirection","processes","map","item","ChildProcess","id"],"mappings":";;;;+BAMA;;;eAAwBA;;;;mBANJ;qBACO;qBACS;mEAEX;;;;;;AAEV,SAASA;IACtB,IAAMC,QAAQC,IAAAA,iBAAU,EAAQC,cAAO;IAEvC,qBACE,qBAACC,QAAG;QAACC,eAAc;kBAChBJ,MAAMK,SAAS,CAACC,GAAG,CAAC,SAACC;iCACpB,qBAACC,qBAAY;gBAAeD,MAAMA;eAAfA,KAAKE,EAAE;;;AAIlC"}
|
package/dist/cjs/createApp.d.cts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Store } from './store/index.js';
|
|
2
|
+
export type RetainCallback = (app: Store) => undefined;
|
|
3
|
+
export type ReleaseCallback = () => undefined;
|
|
2
4
|
export default function createApp(): {
|
|
3
5
|
retain(fn: RetainCallback): undefined;
|
|
4
6
|
release(cb: ReleaseCallback): undefined;
|
package/dist/cjs/createApp.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Store } from './store/index.js';
|
|
2
|
+
export type RetainCallback = (app: Store) => undefined;
|
|
3
|
+
export type ReleaseCallback = () => undefined;
|
|
2
4
|
export default function createApp(): {
|
|
3
5
|
retain(fn: RetainCallback): undefined;
|
|
4
6
|
release(cb: ReleaseCallback): undefined;
|
package/dist/cjs/createApp.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @ts-ignore
|
|
2
1
|
"use strict";
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
3
|
value: true
|
|
@@ -11,105 +10,51 @@ Object.defineProperty(exports, "default", {
|
|
|
11
10
|
});
|
|
12
11
|
var _jsxruntime = require("react/jsx-runtime");
|
|
13
12
|
var _ink = require("ink");
|
|
14
|
-
var
|
|
13
|
+
var _lodashthrottle = /*#__PURE__*/ _interop_require_default(require("lodash.throttle"));
|
|
15
14
|
var _App = /*#__PURE__*/ _interop_require_default(require("./components/App.js"));
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
19
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
20
|
-
return arr2;
|
|
21
|
-
}
|
|
22
|
-
function _array_without_holes(arr) {
|
|
23
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
24
|
-
}
|
|
15
|
+
var _Context = /*#__PURE__*/ _interop_require_default(require("./store/Context.js"));
|
|
16
|
+
var _index = require("./store/index.js");
|
|
25
17
|
function _interop_require_default(obj) {
|
|
26
18
|
return obj && obj.__esModule ? obj : {
|
|
27
19
|
default: obj
|
|
28
20
|
};
|
|
29
21
|
}
|
|
30
|
-
|
|
31
|
-
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
32
|
-
}
|
|
33
|
-
function _non_iterable_spread() {
|
|
34
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
35
|
-
}
|
|
36
|
-
function _to_consumable_array(arr) {
|
|
37
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
38
|
-
}
|
|
39
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
40
|
-
if (!o) return;
|
|
41
|
-
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
42
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
43
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
44
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
45
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
46
|
-
}
|
|
22
|
+
var THROTTLE = 50;
|
|
47
23
|
function createApp() {
|
|
48
24
|
var refCount = 0;
|
|
49
25
|
var store = null;
|
|
50
26
|
var inkApp = null;
|
|
27
|
+
var rerender = function() {
|
|
28
|
+
inkApp === null || inkApp === void 0 ? void 0 : inkApp.rerender(/*#__PURE__*/ (0, _jsxruntime.jsx)(_Context.default.Provider, {
|
|
29
|
+
value: store,
|
|
30
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_App.default, {})
|
|
31
|
+
}));
|
|
32
|
+
};
|
|
33
|
+
var rerenderThrottled = (0, _lodashthrottle.default)(rerender, THROTTLE);
|
|
51
34
|
return {
|
|
52
35
|
retain: function retain(fn) {
|
|
53
36
|
if (++refCount > 1) return fn(store);
|
|
54
37
|
if (store) throw new Error('Not expecting store');
|
|
55
|
-
store =
|
|
56
|
-
|
|
57
|
-
processes: [],
|
|
58
|
-
addProcess: function(process1) {
|
|
59
|
-
store.nextRenders = store.renders + 1;
|
|
60
|
-
set(function(state) {
|
|
61
|
-
return {
|
|
62
|
-
processes: _to_consumable_array(state.processes).concat([
|
|
63
|
-
process1
|
|
64
|
-
])
|
|
65
|
-
};
|
|
66
|
-
});
|
|
67
|
-
},
|
|
68
|
-
updateProcess: function(process1) {
|
|
69
|
-
store.nextRenders = store.renders + 1;
|
|
70
|
-
set(function(state) {
|
|
71
|
-
return {
|
|
72
|
-
processes: state.processes.map(function(x) {
|
|
73
|
-
return x.id === process1.id ? process1 : x;
|
|
74
|
-
})
|
|
75
|
-
};
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
});
|
|
80
|
-
store.nextRenders = 0;
|
|
81
|
-
store.renders = 0;
|
|
82
|
-
store.waiting = [];
|
|
83
|
-
store.onRender = function() {
|
|
84
|
-
store.renders++;
|
|
85
|
-
if (store.renders === store.nextRenders) {
|
|
86
|
-
while(store === null || store === void 0 ? void 0 : store.waiting.length)store.waiting.pop()();
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
inkApp = (0, _ink.render)(/*#__PURE__*/ (0, _jsxruntime.jsx)(_Store.default.Provider, {
|
|
38
|
+
store = new _index.Store(rerenderThrottled);
|
|
39
|
+
inkApp = (0, _ink.render)(/*#__PURE__*/ (0, _jsxruntime.jsx)(_Context.default.Provider, {
|
|
90
40
|
value: store,
|
|
91
41
|
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_App.default, {})
|
|
92
42
|
}), {
|
|
93
43
|
patchConsole: false
|
|
94
44
|
});
|
|
95
|
-
|
|
45
|
+
fn(store);
|
|
96
46
|
},
|
|
97
47
|
release: function release(cb) {
|
|
98
|
-
if (--refCount > 0)
|
|
99
|
-
if (store.renders === store.nextRenders) cb();
|
|
100
|
-
else store.waiting.push(cb);
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
48
|
+
if (--refCount > 0) return cb();
|
|
103
49
|
if (!store) throw new Error('Expecting store');
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
else store.waiting.push(done);
|
|
50
|
+
rerender();
|
|
51
|
+
inkApp.waitUntilExit().then(function() {
|
|
52
|
+
return cb();
|
|
53
|
+
}).catch(cb);
|
|
54
|
+
inkApp.unmount();
|
|
55
|
+
inkApp = null;
|
|
56
|
+
store = null;
|
|
57
|
+
process.stdout.write('\x1b[?25h'); // show cursor
|
|
113
58
|
}
|
|
114
59
|
};
|
|
115
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/createApp.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/createApp.tsx"],"sourcesContent":["import { type Instance, render } from 'ink';\nimport throttle from 'lodash.throttle';\nimport App from './components/App.js';\nimport StoreContext from './store/Context.js';\nimport { Store } from './store/index.js';\n\nexport type RetainCallback = (app: Store) => undefined;\nexport type ReleaseCallback = () => undefined;\n\nconst THROTTLE = 50;\n\nexport default function createApp() {\n let refCount = 0;\n let store = null;\n let inkApp: Instance | null = null;\n\n const rerender = () => {\n inkApp?.rerender(\n <StoreContext.Provider value={store}>\n <App />\n </StoreContext.Provider>\n );\n };\n const rerenderThrottled = throttle(rerender, THROTTLE);\n\n return {\n retain(fn: RetainCallback): undefined {\n if (++refCount > 1) return fn(store);\n if (store) throw new Error('Not expecting store');\n\n store = new Store(rerenderThrottled);\n inkApp = render(\n <StoreContext.Provider value={store}>\n <App />\n </StoreContext.Provider>,\n { patchConsole: false }\n );\n fn(store);\n },\n release(cb: ReleaseCallback): undefined {\n if (--refCount > 0) return cb();\n if (!store) throw new Error('Expecting store');\n\n rerender();\n inkApp\n .waitUntilExit()\n .then(() => cb())\n .catch(cb);\n inkApp.unmount();\n inkApp = null;\n store = null;\n process.stdout.write('\\x1b[?25h'); // show cursor\n },\n };\n}\n"],"names":["createApp","THROTTLE","refCount","store","inkApp","rerender","StoreContext","Provider","value","App","rerenderThrottled","throttle","retain","fn","Error","Store","render","patchConsole","release","cb","waitUntilExit","then","catch","unmount","process","stdout","write"],"mappings":";;;;+BAWA;;;eAAwBA;;;;mBAXc;qEACjB;0DACL;8DACS;qBACH;;;;;;AAKtB,IAAMC,WAAW;AAEF,SAASD;IACtB,IAAIE,WAAW;IACf,IAAIC,QAAQ;IACZ,IAAIC,SAA0B;IAE9B,IAAMC,WAAW;QACfD,mBAAAA,6BAAAA,OAAQC,QAAQ,eACd,qBAACC,gBAAY,CAACC,QAAQ;YAACC,OAAOL;sBAC5B,cAAA,qBAACM,YAAG;;IAGV;IACA,IAAMC,oBAAoBC,IAAAA,uBAAQ,EAACN,UAAUJ;IAE7C,OAAO;QACLW,QAAAA,SAAAA,OAAOC,EAAkB;YACvB,IAAI,EAAEX,WAAW,GAAG,OAAOW,GAAGV;YAC9B,IAAIA,OAAO,MAAM,IAAIW,MAAM;YAE3BX,QAAQ,IAAIY,YAAK,CAACL;YAClBN,SAASY,IAAAA,WAAM,gBACb,qBAACV,gBAAY,CAACC,QAAQ;gBAACC,OAAOL;0BAC5B,cAAA,qBAACM,YAAG;gBAEN;gBAAEQ,cAAc;YAAM;YAExBJ,GAAGV;QACL;QACAe,SAAAA,SAAAA,QAAQC,EAAmB;YACzB,IAAI,EAAEjB,WAAW,GAAG,OAAOiB;YAC3B,IAAI,CAAChB,OAAO,MAAM,IAAIW,MAAM;YAE5BT;YACAD,OACGgB,aAAa,GACbC,IAAI,CAAC;uBAAMF;eACXG,KAAK,CAACH;YACTf,OAAOmB,OAAO;YACdnB,SAAS;YACTD,QAAQ;YACRqB,QAAQC,MAAM,CAACC,KAAK,CAAC,cAAc,cAAc;QACnD;IACF;AACF"}
|
package/dist/cjs/index-cjs.d.cts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { default as figures } from './lib/figures.js';
|
|
2
2
|
export { default as formatArguments } from './lib/formatArguments.js';
|
|
3
3
|
export * from './types.js';
|
|
4
|
-
|
|
4
|
+
import type { default as spawnTerminal } from './spawnTerminal.js';
|
|
5
|
+
declare const _default: typeof spawnTerminal;
|
|
6
|
+
export default _default;
|
package/dist/cjs/index-cjs.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { default as figures } from './lib/figures.js';
|
|
2
2
|
export { default as formatArguments } from './lib/formatArguments.js';
|
|
3
3
|
export * from './types.js';
|
|
4
|
-
|
|
4
|
+
import type { default as spawnTerminal } from './spawnTerminal.js';
|
|
5
|
+
declare const _default: typeof spawnTerminal;
|
|
6
|
+
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/index-cjs.ts"],"sourcesContent":["export { default as figures } from './lib/figures.js';\nexport { default as formatArguments } from './lib/formatArguments.js';\nexport * from './types.js';\nexport default undefined;\n"],"names":["figures","formatArguments","undefined"],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/index-cjs.ts"],"sourcesContent":["export { default as figures } from './lib/figures.js';\nexport { default as formatArguments } from './lib/formatArguments.js';\nexport * from './types.js';\n\nimport type { default as spawnTerminal } from './spawnTerminal.js';\nexport default undefined as typeof spawnTerminal;\n"],"names":["figures","formatArguments","undefined"],"mappings":";;;;;;;;;;;QAKA;eAAA;;QALoBA;eAAAA,gBAAO;;QACPC;eAAAA,wBAAe;;;8DADA;sEACQ;qBAC7B;;;;;;;;;;;;;;;;;;;IAGd,WAAeC"}
|
package/dist/cjs/index-esm.d.cts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { SpawnOptions, SpawnResult, TerminalCallback, TerminalOptions } from './types.js';
|
|
2
|
-
declare function spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options?: TerminalOptions | TerminalCallback, callback?: TerminalCallback): undefined | Promise<SpawnResult>;
|
|
3
1
|
export { default as figures } from './lib/figures.js';
|
|
4
2
|
export { default as formatArguments } from './lib/formatArguments.js';
|
|
5
3
|
export * from './types.js';
|
|
4
|
+
import { default as spawnTerminal } from './spawnTerminal.js';
|
|
6
5
|
declare const _default: typeof spawnTerminal;
|
|
7
6
|
export default _default;
|
package/dist/cjs/index-esm.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { SpawnOptions, SpawnResult, TerminalCallback, TerminalOptions } from './types.js';
|
|
2
|
-
declare function spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options?: TerminalOptions | TerminalCallback, callback?: TerminalCallback): undefined | Promise<SpawnResult>;
|
|
3
1
|
export { default as figures } from './lib/figures.js';
|
|
4
2
|
export { default as formatArguments } from './lib/formatArguments.js';
|
|
5
3
|
export * from './types.js';
|
|
4
|
+
import { default as spawnTerminal } from './spawnTerminal.js';
|
|
6
5
|
declare const _default: typeof spawnTerminal;
|
|
7
6
|
export default _default;
|
package/dist/cjs/index-esm.js
CHANGED
|
@@ -22,6 +22,7 @@ _export(exports, {
|
|
|
22
22
|
var _figures = /*#__PURE__*/ _interop_require_default(require("./lib/figures.js"));
|
|
23
23
|
var _formatArguments = /*#__PURE__*/ _interop_require_default(require("./lib/formatArguments.js"));
|
|
24
24
|
_export_star(require("./types.js"), exports);
|
|
25
|
+
var _spawnTerminal = /*#__PURE__*/ _interop_require_default(require("./spawnTerminal.js"));
|
|
25
26
|
function _export_star(from, to) {
|
|
26
27
|
Object.keys(from).forEach(function(k) {
|
|
27
28
|
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
@@ -40,67 +41,6 @@ function _interop_require_default(obj) {
|
|
|
40
41
|
default: obj
|
|
41
42
|
};
|
|
42
43
|
}
|
|
43
|
-
function _getRequireWildcardCache(nodeInterop) {
|
|
44
|
-
if (typeof WeakMap !== "function") return null;
|
|
45
|
-
var cacheBabelInterop = new WeakMap();
|
|
46
|
-
var cacheNodeInterop = new WeakMap();
|
|
47
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
48
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
49
|
-
})(nodeInterop);
|
|
50
|
-
}
|
|
51
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
|
52
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
53
|
-
return obj;
|
|
54
|
-
}
|
|
55
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
56
|
-
return {
|
|
57
|
-
default: obj
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
61
|
-
if (cache && cache.has(obj)) {
|
|
62
|
-
return cache.get(obj);
|
|
63
|
-
}
|
|
64
|
-
var newObj = {
|
|
65
|
-
__proto__: null
|
|
66
|
-
};
|
|
67
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
68
|
-
for(var key in obj){
|
|
69
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
70
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
71
|
-
if (desc && (desc.get || desc.set)) {
|
|
72
|
-
Object.defineProperty(newObj, key, desc);
|
|
73
|
-
} else {
|
|
74
|
-
newObj[key] = obj[key];
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
newObj.default = obj;
|
|
79
|
-
if (cache) {
|
|
80
|
-
cache.set(obj, newObj);
|
|
81
|
-
}
|
|
82
|
-
return newObj;
|
|
83
|
-
}
|
|
84
|
-
function worker(command, args, spawnOptions, options, callback) {
|
|
85
|
-
Promise.resolve().then(function() {
|
|
86
|
-
return /*#__PURE__*/ _interop_require_wildcard(require("./worker.js"));
|
|
87
|
-
}).then(function(fn) {
|
|
88
|
-
fn.default(command, args, spawnOptions, options, callback);
|
|
89
|
-
}).catch(callback);
|
|
90
|
-
}
|
|
91
|
-
function spawnTerminal(command, args, spawnOptions, options, callback) {
|
|
92
|
-
if (typeof options === 'function') {
|
|
93
|
-
callback = options;
|
|
94
|
-
options = {};
|
|
95
|
-
}
|
|
96
|
-
options = options || {};
|
|
97
|
-
if (typeof callback === 'function') return worker(command, args, spawnOptions, options, callback);
|
|
98
|
-
return new Promise(function(resolve, reject) {
|
|
99
|
-
return worker(command, args, spawnOptions, options, function(err, result) {
|
|
100
|
-
err ? reject(err) : resolve(result);
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
44
|
var major = +process.versions.node.split('.')[0];
|
|
105
|
-
var _default = major > 14 ?
|
|
45
|
+
var _default = major > 14 ? _spawnTerminal.default : undefined;
|
|
106
46
|
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/index-esm.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/index-esm.ts"],"sourcesContent":["export { default as figures } from './lib/figures.js';\nexport { default as formatArguments } from './lib/formatArguments.js';\nexport * from './types.js';\n\nconst major = +process.versions.node.split('.')[0];\n\nimport { default as spawnTerminal } from './spawnTerminal.js';\nexport default major > 14 ? spawnTerminal : (undefined as typeof spawnTerminal);\n"],"names":["figures","formatArguments","major","process","versions","node","split","spawnTerminal","undefined"],"mappings":";;;;;;;;;;;QAOA;eAAA;;QAPoBA;eAAAA,gBAAO;;QACPC;eAAAA,wBAAe;;;8DADA;sEACQ;qBAC7B;oEAI2B;;;;;;;;;;;;;;;;;;;AAFzC,IAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;IAGlD,WAAeJ,QAAQ,KAAKK,sBAAa,GAAIC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import type { SpawnOptions, SpawnResult, TerminalCallback, TerminalOptions } from './types.js';
|
|
2
|
+
export default function spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options?: TerminalOptions | TerminalCallback, callback?: TerminalCallback): undefined | Promise<SpawnResult>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import type { SpawnOptions, SpawnResult, TerminalCallback, TerminalOptions } from './types.js';
|
|
2
|
+
export default function spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options?: TerminalOptions | TerminalCallback, callback?: TerminalCallback): undefined | Promise<SpawnResult>;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return spawnTerminal;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
12
|
+
if (typeof WeakMap !== "function") return null;
|
|
13
|
+
var cacheBabelInterop = new WeakMap();
|
|
14
|
+
var cacheNodeInterop = new WeakMap();
|
|
15
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
16
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
17
|
+
})(nodeInterop);
|
|
18
|
+
}
|
|
19
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
20
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
21
|
+
return obj;
|
|
22
|
+
}
|
|
23
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
24
|
+
return {
|
|
25
|
+
default: obj
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
29
|
+
if (cache && cache.has(obj)) {
|
|
30
|
+
return cache.get(obj);
|
|
31
|
+
}
|
|
32
|
+
var newObj = {
|
|
33
|
+
__proto__: null
|
|
34
|
+
};
|
|
35
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
36
|
+
for(var key in obj){
|
|
37
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
38
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
39
|
+
if (desc && (desc.get || desc.set)) {
|
|
40
|
+
Object.defineProperty(newObj, key, desc);
|
|
41
|
+
} else {
|
|
42
|
+
newObj[key] = obj[key];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
newObj.default = obj;
|
|
47
|
+
if (cache) {
|
|
48
|
+
cache.set(obj, newObj);
|
|
49
|
+
}
|
|
50
|
+
return newObj;
|
|
51
|
+
}
|
|
52
|
+
function worker(command, args, spawnOptions, options, callback) {
|
|
53
|
+
Promise.resolve().then(function() {
|
|
54
|
+
return /*#__PURE__*/ _interop_require_wildcard(require("./worker.js"));
|
|
55
|
+
}).then(function(fn) {
|
|
56
|
+
fn.default(command, args, spawnOptions, options, callback);
|
|
57
|
+
}).catch(callback);
|
|
58
|
+
}
|
|
59
|
+
function spawnTerminal(command, args, spawnOptions, options, callback) {
|
|
60
|
+
if (typeof options === 'function') {
|
|
61
|
+
callback = options;
|
|
62
|
+
options = {};
|
|
63
|
+
}
|
|
64
|
+
options = options || {};
|
|
65
|
+
if (typeof callback === 'function') return worker(command, args, spawnOptions, options, callback);
|
|
66
|
+
return new Promise(function(resolve, reject) {
|
|
67
|
+
return worker(command, args, spawnOptions, options, function(err, result) {
|
|
68
|
+
err ? reject(err) : resolve(result);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/spawnTerminal.ts"],"sourcesContent":["import type { SpawnOptions, SpawnResult, TerminalCallback, TerminalOptions } from './types.js';\n\nfunction worker(command: string, args: string[], spawnOptions: SpawnOptions, options: TerminalOptions, callback: TerminalCallback): undefined {\n import('./worker.js')\n .then((fn) => {\n fn.default(command, args, spawnOptions, options, callback);\n })\n .catch(callback);\n}\n\nexport default function spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options?: TerminalOptions | TerminalCallback, callback?: TerminalCallback): undefined | Promise<SpawnResult> {\n if (typeof options === 'function') {\n callback = options as TerminalCallback;\n options = {};\n }\n options = options || {};\n\n if (typeof callback === 'function') return worker(command, args, spawnOptions, options, callback as TerminalCallback);\n return new Promise((resolve, reject) =>\n worker(command, args, spawnOptions, options, (err, result) => {\n err ? reject(err) : resolve(result);\n })\n );\n}\n"],"names":["spawnTerminal","worker","command","args","spawnOptions","options","callback","then","fn","default","catch","Promise","resolve","reject","err","result"],"mappings":";;;;+BAUA;;;eAAwBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AARxB,SAASC,OAAOC,OAAe,EAAEC,IAAc,EAAEC,YAA0B,EAAEC,OAAwB,EAAEC,QAA0B;IAC/H;uDAAA,QAAO;OACJC,IAAI,CAAC,SAACC;QACLA,GAAGC,OAAO,CAACP,SAASC,MAAMC,cAAcC,SAASC;IACnD,GACCI,KAAK,CAACJ;AACX;AAEe,SAASN,cAAcE,OAAe,EAAEC,IAAc,EAAEC,YAA0B,EAAEC,OAA4C,EAAEC,QAA2B;IAC1K,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU,CAAC;IACb;IACAA,UAAUA,WAAW,CAAC;IAEtB,IAAI,OAAOC,aAAa,YAAY,OAAOL,OAAOC,SAASC,MAAMC,cAAcC,SAASC;IACxF,OAAO,IAAIK,QAAQ,SAACC,SAASC;eAC3BZ,OAAOC,SAASC,MAAMC,cAAcC,SAAS,SAACS,KAAKC;YACjDD,MAAMD,OAAOC,OAAOF,QAAQG;QAC9B;;AAEJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/store/Context.tsx"],"sourcesContent":["import { createContext } from 'react';\nimport type Store from './Store.js';\n\nexport default createContext<Store>(undefined);\n"],"names":["createContext","undefined"],"mappings":";;;;+BAGA;;;eAAA;;;qBAH8B;IAG9B,yBAAeA,IAAAA,oBAAa,EAAQC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ChildProcess } from '../types.js';
|
|
2
|
+
export type RenderFunction = () => void;
|
|
3
|
+
export default class Store {
|
|
4
|
+
processes: ChildProcess[];
|
|
5
|
+
onRender: RenderFunction;
|
|
6
|
+
constructor(onRender: RenderFunction);
|
|
7
|
+
addProcess(process: ChildProcess): void;
|
|
8
|
+
updateProcess(process: ChildProcess): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ChildProcess } from '../types.js';
|
|
2
|
+
export type RenderFunction = () => void;
|
|
3
|
+
export default class Store {
|
|
4
|
+
processes: ChildProcess[];
|
|
5
|
+
onRender: RenderFunction;
|
|
6
|
+
constructor(onRender: RenderFunction);
|
|
7
|
+
addProcess(process: ChildProcess): void;
|
|
8
|
+
updateProcess(process: ChildProcess): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return Store;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function _class_call_check(instance, Constructor) {
|
|
12
|
+
if (!(instance instanceof Constructor)) {
|
|
13
|
+
throw new TypeError("Cannot call a class as a function");
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
var Store = /*#__PURE__*/ function() {
|
|
17
|
+
"use strict";
|
|
18
|
+
function Store(onRender) {
|
|
19
|
+
_class_call_check(this, Store);
|
|
20
|
+
if (!onRender) throw new Error('missing on render');
|
|
21
|
+
this.processes = [];
|
|
22
|
+
this.onRender = onRender;
|
|
23
|
+
}
|
|
24
|
+
var _proto = Store.prototype;
|
|
25
|
+
_proto.addProcess = function addProcess(process) {
|
|
26
|
+
this.processes.push(process);
|
|
27
|
+
this.onRender();
|
|
28
|
+
};
|
|
29
|
+
_proto.updateProcess = function updateProcess(process) {
|
|
30
|
+
this.processes = this.processes.map(function(x) {
|
|
31
|
+
return x.id === process.id ? process : x;
|
|
32
|
+
});
|
|
33
|
+
this.onRender();
|
|
34
|
+
};
|
|
35
|
+
return Store;
|
|
36
|
+
}();
|
|
37
|
+
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/store/Store.ts"],"sourcesContent":["import type { ChildProcess } from '../types.js';\n\nexport type RenderFunction = () => void;\n\nexport default class Store {\n processes: ChildProcess[];\n onRender: RenderFunction;\n\n constructor(onRender: RenderFunction) {\n if (!onRender) throw new Error('missing on render');\n this.processes = [];\n this.onRender = onRender;\n }\n\n addProcess(process: ChildProcess): void {\n this.processes.push(process);\n this.onRender();\n }\n\n updateProcess(process: ChildProcess): void {\n this.processes = this.processes.map((x) => (x.id === process.id ? process : x));\n this.onRender();\n }\n}\n"],"names":["Store","onRender","Error","processes","addProcess","process","push","updateProcess","map","x","id"],"mappings":";;;;;;;eAIqBA;;;;;;;;AAAN,IAAA,AAAMA,sBAAN;;aAAMA,MAIPC,QAAwB;gCAJjBD;QAKjB,IAAI,CAACC,UAAU,MAAM,IAAIC,MAAM;QAC/B,IAAI,CAACC,SAAS,GAAG,EAAE;QACnB,IAAI,CAACF,QAAQ,GAAGA;;iBAPCD;IAUnBI,OAAAA,UAGC,GAHDA,SAAAA,WAAWC,OAAqB;QAC9B,IAAI,CAACF,SAAS,CAACG,IAAI,CAACD;QACpB,IAAI,CAACJ,QAAQ;IACf;IAEAM,OAAAA,aAGC,GAHDA,SAAAA,cAAcF,OAAqB;QACjC,IAAI,CAACF,SAAS,GAAG,IAAI,CAACA,SAAS,CAACK,GAAG,CAAC,SAACC;mBAAOA,EAAEC,EAAE,KAAKL,QAAQK,EAAE,GAAGL,UAAUI;;QAC5E,IAAI,CAACR,QAAQ;IACf;WAlBmBD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get Context () {
|
|
13
|
+
return _Context.default;
|
|
14
|
+
},
|
|
15
|
+
get Store () {
|
|
16
|
+
return _Store.default;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
var _Context = /*#__PURE__*/ _interop_require_default(require("./Context.js"));
|
|
20
|
+
var _Store = /*#__PURE__*/ _interop_require_default(require("./Store.js"));
|
|
21
|
+
function _interop_require_default(obj) {
|
|
22
|
+
return obj && obj.__esModule ? obj : {
|
|
23
|
+
default: obj
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/store/index.ts"],"sourcesContent":["export { default as Context } from './Context.js';\nexport { default as Store } from './Store.js';\n"],"names":["Context","Store"],"mappings":";;;;;;;;;;;QAAoBA;eAAAA,gBAAO;;QACPC;eAAAA,cAAK;;;8DADU;4DACF"}
|
package/dist/cjs/types.d.cts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { StoreApi } from 'zustand';
|
|
2
1
|
export type { SpawnCallback, SpawnError, SpawnOptions, SpawnResult } from 'cross-spawn-cb';
|
|
3
2
|
import type { SpawnError, SpawnResult } from 'cross-spawn-cb';
|
|
4
3
|
export type TerminalOptions = {
|
|
@@ -23,13 +22,3 @@ export type ChildProcess = {
|
|
|
23
22
|
lines: Line[];
|
|
24
23
|
expanded?: boolean;
|
|
25
24
|
};
|
|
26
|
-
export interface AppState {
|
|
27
|
-
processes: ChildProcess[];
|
|
28
|
-
addProcess: (process: ChildProcess) => void;
|
|
29
|
-
updateProcess: (process: ChildProcess) => void;
|
|
30
|
-
}
|
|
31
|
-
export interface Store extends StoreApi<AppState> {
|
|
32
|
-
onRender: () => undefined;
|
|
33
|
-
}
|
|
34
|
-
export type RetainCallback = (app: Store) => undefined;
|
|
35
|
-
export type ReleaseCallback = () => undefined;
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { StoreApi } from 'zustand';
|
|
2
1
|
export type { SpawnCallback, SpawnError, SpawnOptions, SpawnResult } from 'cross-spawn-cb';
|
|
3
2
|
import type { SpawnError, SpawnResult } from 'cross-spawn-cb';
|
|
4
3
|
export type TerminalOptions = {
|
|
@@ -23,13 +22,3 @@ export type ChildProcess = {
|
|
|
23
22
|
lines: Line[];
|
|
24
23
|
expanded?: boolean;
|
|
25
24
|
};
|
|
26
|
-
export interface AppState {
|
|
27
|
-
processes: ChildProcess[];
|
|
28
|
-
addProcess: (process: ChildProcess) => void;
|
|
29
|
-
updateProcess: (process: ChildProcess) => void;
|
|
30
|
-
}
|
|
31
|
-
export interface Store extends StoreApi<AppState> {
|
|
32
|
-
onRender: () => undefined;
|
|
33
|
-
}
|
|
34
|
-
export type RetainCallback = (app: Store) => undefined;
|
|
35
|
-
export type ReleaseCallback = () => undefined;
|
package/dist/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/types.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/types.ts"],"sourcesContent":["export type { SpawnCallback, SpawnError, SpawnOptions, SpawnResult } from 'cross-spawn-cb';\n\nimport type { SpawnError, SpawnResult } from 'cross-spawn-cb';\n\nexport type TerminalOptions = {\n group?: string;\n expanded?: boolean;\n};\n\nexport type TerminalCallback = (error?: SpawnError, result?: SpawnResult) => undefined;\n\nexport const LineType = {\n stdout: 1,\n stderr: 2,\n} as const;\n\nexport type Line = {\n type: (typeof LineType)[keyof typeof LineType];\n text: string;\n};\n\nexport type State = 'running' | 'error' | 'success';\nexport type ChildProcess = {\n id: string;\n group?: string;\n title: string;\n state: State;\n lines: Line[];\n expanded?: boolean;\n};\n"],"names":["LineType","stdout","stderr"],"mappings":";;;;+BAWaA;;;eAAAA;;;AAAN,IAAMA,WAAW;IACtBC,QAAQ;IACRC,QAAQ;AACV"}
|