@effect/platform 0.28.1 → 0.28.3

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.
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Terminal = exports.QuitException = void 0;
7
+ var _Data = /*#__PURE__*/require("effect/Data");
8
+ var InternalTerminal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./internal/terminal.js"));
9
+ function _getRequireWildcardCache(e) {
10
+ if ("function" != typeof WeakMap) return null;
11
+ var r = new WeakMap(),
12
+ t = new WeakMap();
13
+ return (_getRequireWildcardCache = function (e) {
14
+ return e ? t : r;
15
+ })(e);
16
+ }
17
+ function _interopRequireWildcard(e, r) {
18
+ if (!r && e && e.__esModule) return e;
19
+ if (null === e || "object" != typeof e && "function" != typeof e) return {
20
+ default: e
21
+ };
22
+ var t = _getRequireWildcardCache(r);
23
+ if (t && t.has(e)) return t.get(e);
24
+ var n = {
25
+ __proto__: null
26
+ },
27
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
28
+ for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) {
29
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
30
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
31
+ }
32
+ return n.default = e, t && t.set(e, n), n;
33
+ }
34
+ /**
35
+ * A `QuitException` represents an exception that occurs when a user attempts to
36
+ * quit out of a `Terminal` prompt for input (usually by entering `ctrl`+`c`).
37
+ *
38
+ * @since 1.0.0
39
+ * @category model
40
+ */
41
+ class QuitException extends (0, _Data.TaggedError)("QuitException") {}
42
+ /**
43
+ * @since 1.0.0
44
+ * @category tag
45
+ */
46
+ exports.QuitException = QuitException;
47
+ const Terminal = exports.Terminal = InternalTerminal.tag;
48
+ //# sourceMappingURL=Terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Terminal.js","names":["_Data","require","InternalTerminal","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","QuitException","TaggedError","exports","Terminal","tag"],"sources":["../../src/Terminal.ts"],"sourcesContent":[null],"mappings":";;;;;;AAIA,IAAAA,KAAA,gBAAAC,OAAA;AAIA,IAAAC,gBAAA,gBAAAC,uBAAA,eAAAF,OAAA;AAA0D,SAAAG,yBAAAC,CAAA;EAAA,yBAAAC,OAAA;EAAA,IAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAF,wBAAA,YAAAA,CAAAC,CAAA;IAAA,OAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA;EAAA,GAAAF,CAAA;AAAA;AAAA,SAAAF,wBAAAE,CAAA,EAAAE,CAAA;EAAA,KAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA;EAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA;IAAAK,OAAA,EAAAL;EAAA;EAAA,IAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA;EAAA,IAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA;EAAA,IAAAQ,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA;EAAA,SAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA;IAAA,IAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA;IAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA;EAAA;EAAA,OAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA;AA0D1D;;;;;;;AAOM,MAAOY,aAAc,SAAQ,IAAAzB,KAAA,CAAA0B,WAAW,EAAC,eAAe,CAAK;AAEnE;;;;AAAAC,OAAA,CAAAF,aAAA,GAAAA,aAAA;AAIO,MAAMG,QAAQ,GAAAD,OAAA,CAAAC,QAAA,GAA4B1B,gBAAgB,CAAC2B,GAAG"}
package/dist/cjs/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.WorkerRunner = exports.WorkerError = exports.Worker = exports.Runtime = exports.Path = exports.KeyValueStore = exports.HttpServer = exports.HttpClient = exports.FileSystem = exports.Error = exports.Effectify = exports.CommandExecutor = exports.Command = void 0;
6
+ exports.WorkerRunner = exports.WorkerError = exports.Worker = exports.Terminal = exports.Runtime = exports.Path = exports.KeyValueStore = exports.HttpServer = exports.HttpClient = exports.FileSystem = exports.Error = exports.Effectify = exports.CommandExecutor = exports.Command = void 0;
7
7
  var _Command = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Command.js"));
8
8
  exports.Command = _Command;
9
9
  var _CommandExecutor = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./CommandExecutor.js"));
@@ -24,6 +24,8 @@ var _Path = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Path.j
24
24
  exports.Path = _Path;
25
25
  var _Runtime = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Runtime.js"));
26
26
  exports.Runtime = _Runtime;
27
+ var _Terminal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Terminal.js"));
28
+ exports.Terminal = _Terminal;
27
29
  var _Worker = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Worker.js"));
28
30
  exports.Worker = _Worker;
29
31
  var _WorkerError = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./WorkerError.js"));
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.tag = void 0;
7
+ var _Context = /*#__PURE__*/require("effect/Context");
8
+ /** @internal */
9
+ const tag = exports.tag = /*#__PURE__*/(0, _Context.Tag)("@effect/platform/Terminal");
10
+ //# sourceMappingURL=terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.js","names":["_Context","require","tag","exports","Tag"],"sources":["../../../src/internal/terminal.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,QAAA,gBAAAC,OAAA;AAGA;AACO,MAAMC,GAAG,GAAAC,OAAA,CAAAD,GAAA,gBAAG,IAAAF,QAAA,CAAAI,GAAG,EAAoB,2BAA2B,CAAC"}
@@ -28,7 +28,7 @@ export declare namespace PlatformError {
28
28
  interface Base extends Data.Case {
29
29
  readonly [PlatformErrorTypeId]: typeof PlatformErrorTypeId;
30
30
  readonly _tag: string;
31
- readonly module: "Command" | "FileSystem" | "Path" | "KeyValueStore" | "Clipboard" | "Stream";
31
+ readonly module: "Clipboard" | "Command" | "FileSystem" | "KeyValueStore" | "Path" | "Stream" | "Terminal";
32
32
  readonly method: string;
33
33
  readonly message: string;
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["../../src/Error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAA;AAGxC;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,MAAqC,CAAA;AAE9E;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA;AAE5D;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,WAAW,CAAA;AAErD;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,aAAa,CAAC;IACrC;;;OAGG;IACH,UAAiB,IAAK,SAAQ,IAAI,CAAC,IAAI;QACrC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,OAAO,mBAAmB,CAAA;QAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,MAAM,GAAG,eAAe,GAAG,WAAW,GAAG,QAAQ,CAAA;QAC7F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KACzB;IAED;;OAEG;IACH,KAAY,cAAc,GAAG,mBAAmB,GAAG,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAA;CAC5E;AAED;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,IAAI;IACrD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,WAAkC,CAAA;AAExH;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,aAAa,GACb,MAAM,GACN,aAAa,GACb,UAAU,GACV,kBAAkB,GAClB,UAAU,GACV,eAAe,GACf,SAAS,GACT,YAAY,GACZ,WAAW,CAAA;AAEf;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,IAAI;IACrD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAA;CAC3C;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,WAAkC,CAAA"}
1
+ {"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["../../src/Error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAA;AAGxC;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,MAAqC,CAAA;AAE9E;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA;AAE5D;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,WAAW,CAAA;AAErD;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,aAAa,CAAC;IACrC;;;OAGG;IACH,UAAiB,IAAK,SAAQ,IAAI,CAAC,IAAI;QACrC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,OAAO,mBAAmB,CAAA;QAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAA;QAC1G,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KACzB;IAED;;OAEG;IACH,KAAY,cAAc,GAAG,mBAAmB,GAAG,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAA;CAC5E;AAED;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,IAAI;IACrD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,WAAkC,CAAA;AAExH;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,aAAa,GACb,MAAM,GACN,aAAa,GACb,UAAU,GACV,kBAAkB,GAClB,UAAU,GACV,eAAe,GACf,SAAS,GACT,YAAY,GACZ,WAAW,CAAA;AAEf;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,IAAI;IACrD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAA;CAC3C;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,WAAkC,CAAA"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type { Tag } from "effect/Context";
5
+ import type { Effect } from "effect/Effect";
6
+ import type { Option } from "effect/Option";
7
+ import type { PlatformError } from "./Error.js";
8
+ /**
9
+ * A `Terminal` represents a command-line interface which can read input from a
10
+ * user and display messages to a user.
11
+ *
12
+ * @since 1.0.0
13
+ * @category models
14
+ */
15
+ export interface Terminal {
16
+ /**
17
+ * Reads a single input event from the default standard input.
18
+ */
19
+ readonly readInput: Effect<never, QuitException, UserInput>;
20
+ /**
21
+ * Displays text to the the default standard output.
22
+ */
23
+ readonly display: (text: string) => Effect<never, PlatformError, void>;
24
+ }
25
+ /**
26
+ * @since 1.0.0
27
+ * @category model
28
+ */
29
+ export interface Key {
30
+ /**
31
+ * The name of the key being pressed.
32
+ */
33
+ readonly name: string;
34
+ /**
35
+ * If set to `true`, then the user is also holding down the `Ctrl` key.
36
+ */
37
+ readonly ctrl: boolean;
38
+ /**
39
+ * If set to `true`, then the user is also holding down the `Meta` key.
40
+ */
41
+ readonly meta: boolean;
42
+ /**
43
+ * If set to `true`, then the user is also holding down the `Shift` key.
44
+ */
45
+ readonly shift: boolean;
46
+ }
47
+ /**
48
+ * @since 1.0.0
49
+ * @category model
50
+ */
51
+ export interface UserInput {
52
+ /**
53
+ * The character read from the user (if any).
54
+ */
55
+ readonly input: Option<string>;
56
+ /**
57
+ * The key that the user pressed.
58
+ */
59
+ readonly key: Key;
60
+ }
61
+ declare const QuitException_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/Equal").Equal>, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" | keyof import("effect/Equal").Equal ? never : P]: A[P]; }) => import("effect/Data").YieldableError & {
62
+ readonly _tag: "QuitException";
63
+ } & Readonly<A>;
64
+ /**
65
+ * A `QuitException` represents an exception that occurs when a user attempts to
66
+ * quit out of a `Terminal` prompt for input (usually by entering `ctrl`+`c`).
67
+ *
68
+ * @since 1.0.0
69
+ * @category model
70
+ */
71
+ export declare class QuitException extends QuitException_base<{}> {
72
+ }
73
+ /**
74
+ * @since 1.0.0
75
+ * @category tag
76
+ */
77
+ export declare const Terminal: Tag<Terminal, Terminal>;
78
+ export {};
79
+ //# sourceMappingURL=Terminal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Terminal.d.ts","sourceRoot":"","sources":["../../src/Terminal.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAG/C;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;IAC3D;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;CACvE;AAED;;;GAGG;AACH,MAAM,WAAW,GAAG;IAClB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAC9B;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;CAClB;;;;AAED;;;;;;GAMG;AACH,qBAAa,aAAc,SAAQ,mBAA6B,EAAE,CAAC;CAAG;AAEtE;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAwB,CAAA"}
@@ -38,6 +38,10 @@ export * as Path from "./Path.js";
38
38
  * @since 1.0.0
39
39
  */
40
40
  export * as Runtime from "./Runtime.js";
41
+ /**
42
+ * @since 1.0.0
43
+ */
44
+ export * as Terminal from "./Terminal.js";
41
45
  /**
42
46
  * @since 1.0.0
43
47
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=terminal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../../src/internal/terminal.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { TaggedError } from "effect/Data";
2
+ import * as InternalTerminal from "./internal/terminal.js";
3
+ /**
4
+ * A `QuitException` represents an exception that occurs when a user attempts to
5
+ * quit out of a `Terminal` prompt for input (usually by entering `ctrl`+`c`).
6
+ *
7
+ * @since 1.0.0
8
+ * @category model
9
+ */
10
+ export class QuitException extends TaggedError("QuitException") {}
11
+ /**
12
+ * @since 1.0.0
13
+ * @category tag
14
+ */
15
+ export const Terminal = InternalTerminal.tag;
16
+ //# sourceMappingURL=Terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Terminal.js","names":["TaggedError","InternalTerminal","QuitException","Terminal","tag"],"sources":["../../src/Terminal.ts"],"sourcesContent":[null],"mappings":"AAIA,SAASA,WAAW,QAAQ,aAAa;AAIzC,OAAO,KAAKC,gBAAgB,MAAM,wBAAwB;AA0D1D;;;;;;;AAOA,OAAM,MAAOC,aAAc,SAAQF,WAAW,CAAC,eAAe,CAAK;AAEnE;;;;AAIA,OAAO,MAAMG,QAAQ,GAA4BF,gBAAgB,CAACG,GAAG"}
package/dist/esm/index.js CHANGED
@@ -38,6 +38,10 @@ export * as Path from "./Path.js";
38
38
  * @since 1.0.0
39
39
  */
40
40
  export * as Runtime from "./Runtime.js";
41
+ /**
42
+ * @since 1.0.0
43
+ */
44
+ export * as Terminal from "./Terminal.js";
41
45
  /**
42
46
  * @since 1.0.0
43
47
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Command","CommandExecutor","Effectify","Error","FileSystem","HttpClient","HttpServer","KeyValueStore","Path","Runtime","Worker","WorkerError","WorkerRunner"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AAEvD;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,KAAK,MAAM,YAAY;AAEnC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,IAAI,MAAM,WAAW;AAEjC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB"}
1
+ {"version":3,"file":"index.js","names":["Command","CommandExecutor","Effectify","Error","FileSystem","HttpClient","HttpServer","KeyValueStore","Path","Runtime","Terminal","Worker","WorkerError","WorkerRunner"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AAEvD;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,KAAK,MAAM,YAAY;AAEnC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,IAAI,MAAM,WAAW;AAEjC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB"}
@@ -0,0 +1,4 @@
1
+ import { Tag } from "effect/Context";
2
+ /** @internal */
3
+ export const tag = /*#__PURE__*/Tag("@effect/platform/Terminal");
4
+ //# sourceMappingURL=terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.js","names":["Tag","tag"],"sources":["../../../src/internal/terminal.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAGpC;AACA,OAAO,MAAMC,GAAG,gBAAGD,GAAG,CAAoB,2BAA2B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.28.1",
3
+ "version": "0.28.3",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -172,6 +172,11 @@
172
172
  "import": "./dist/esm/Runtime.js",
173
173
  "default": "./dist/cjs/Runtime.js"
174
174
  },
175
+ "./Terminal": {
176
+ "types": "./dist/dts/Terminal.d.ts",
177
+ "import": "./dist/esm/Terminal.js",
178
+ "default": "./dist/cjs/Terminal.js"
179
+ },
175
180
  "./Worker": {
176
181
  "types": "./dist/dts/Worker.d.ts",
177
182
  "import": "./dist/esm/Worker.js",
@@ -277,6 +282,9 @@
277
282
  "Runtime": [
278
283
  "./dist/dts/Runtime.d.ts"
279
284
  ],
285
+ "Terminal": [
286
+ "./dist/dts/Terminal.d.ts"
287
+ ],
280
288
  "Worker": [
281
289
  "./dist/dts/Worker.d.ts"
282
290
  ],
package/src/Error.ts CHANGED
@@ -33,7 +33,7 @@ export declare namespace PlatformError {
33
33
  export interface Base extends Data.Case {
34
34
  readonly [PlatformErrorTypeId]: typeof PlatformErrorTypeId
35
35
  readonly _tag: string
36
- readonly module: "Command" | "FileSystem" | "Path" | "KeyValueStore" | "Clipboard" | "Stream"
36
+ readonly module: "Clipboard" | "Command" | "FileSystem" | "KeyValueStore" | "Path" | "Stream" | "Terminal"
37
37
  readonly method: string
38
38
  readonly message: string
39
39
  }
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type { Tag } from "effect/Context"
5
+ import { TaggedError } from "effect/Data"
6
+ import type { Effect } from "effect/Effect"
7
+ import type { Option } from "effect/Option"
8
+ import type { PlatformError } from "./Error.js"
9
+ import * as InternalTerminal from "./internal/terminal.js"
10
+
11
+ /**
12
+ * A `Terminal` represents a command-line interface which can read input from a
13
+ * user and display messages to a user.
14
+ *
15
+ * @since 1.0.0
16
+ * @category models
17
+ */
18
+ export interface Terminal {
19
+ /**
20
+ * Reads a single input event from the default standard input.
21
+ */
22
+ readonly readInput: Effect<never, QuitException, UserInput>
23
+ /**
24
+ * Displays text to the the default standard output.
25
+ */
26
+ readonly display: (text: string) => Effect<never, PlatformError, void>
27
+ }
28
+
29
+ /**
30
+ * @since 1.0.0
31
+ * @category model
32
+ */
33
+ export interface Key {
34
+ /**
35
+ * The name of the key being pressed.
36
+ */
37
+ readonly name: string
38
+ /**
39
+ * If set to `true`, then the user is also holding down the `Ctrl` key.
40
+ */
41
+ readonly ctrl: boolean
42
+ /**
43
+ * If set to `true`, then the user is also holding down the `Meta` key.
44
+ */
45
+ readonly meta: boolean
46
+ /**
47
+ * If set to `true`, then the user is also holding down the `Shift` key.
48
+ */
49
+ readonly shift: boolean
50
+ }
51
+
52
+ /**
53
+ * @since 1.0.0
54
+ * @category model
55
+ */
56
+ export interface UserInput {
57
+ /**
58
+ * The character read from the user (if any).
59
+ */
60
+ readonly input: Option<string>
61
+ /**
62
+ * The key that the user pressed.
63
+ */
64
+ readonly key: Key
65
+ }
66
+
67
+ /**
68
+ * A `QuitException` represents an exception that occurs when a user attempts to
69
+ * quit out of a `Terminal` prompt for input (usually by entering `ctrl`+`c`).
70
+ *
71
+ * @since 1.0.0
72
+ * @category model
73
+ */
74
+ export class QuitException extends TaggedError("QuitException")<{}> {}
75
+
76
+ /**
77
+ * @since 1.0.0
78
+ * @category tag
79
+ */
80
+ export const Terminal: Tag<Terminal, Terminal> = InternalTerminal.tag
package/src/index.ts CHANGED
@@ -48,6 +48,11 @@ export * as Path from "./Path.js"
48
48
  */
49
49
  export * as Runtime from "./Runtime.js"
50
50
 
51
+ /**
52
+ * @since 1.0.0
53
+ */
54
+ export * as Terminal from "./Terminal.js"
55
+
51
56
  /**
52
57
  * @since 1.0.0
53
58
  */
@@ -0,0 +1,5 @@
1
+ import { Tag } from "effect/Context"
2
+ import type * as Terminal from "../Terminal.js"
3
+
4
+ /** @internal */
5
+ export const tag = Tag<Terminal.Terminal>("@effect/platform/Terminal")