semola 0.5.3 → 0.5.4
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/index-BhGNDjPq.d.mts +13 -0
- package/dist/index-DxSbeGP-.d.cts +13 -0
- package/dist/lib/api/index.cjs +522 -4
- package/dist/lib/api/index.d.cts +270 -4
- package/dist/lib/api/index.d.mts +270 -4
- package/dist/lib/api/index.mjs +520 -2
- package/dist/lib/cache/index.d.cts +16 -4
- package/dist/lib/cache/index.d.mts +16 -4
- package/dist/lib/cache/index.mjs +0 -2
- package/dist/lib/cron/index.cjs +734 -12
- package/dist/lib/cron/index.d.cts +145 -3
- package/dist/lib/cron/index.d.mts +145 -3
- package/dist/lib/cron/index.mjs +725 -3
- package/dist/lib/errors/index.d.cts +2 -13
- package/dist/lib/errors/index.d.mts +2 -13
- package/dist/lib/errors/index.mjs +0 -2
- package/dist/lib/i18n/index.d.cts +12 -4
- package/dist/lib/i18n/index.d.mts +12 -4
- package/dist/lib/i18n/index.mjs +0 -2
- package/dist/lib/logging/index.cjs +386 -17
- package/dist/lib/logging/index.d.cts +107 -6
- package/dist/lib/logging/index.d.mts +107 -6
- package/dist/lib/logging/index.mjs +373 -4
- package/dist/lib/policy/index.cjs +206 -20
- package/dist/lib/policy/index.d.cts +61 -5
- package/dist/lib/policy/index.d.mts +61 -5
- package/dist/lib/policy/index.mjs +187 -3
- package/dist/lib/prompts/index.cjs +374 -14
- package/dist/lib/prompts/index.d.cts +69 -4
- package/dist/lib/prompts/index.d.mts +69 -4
- package/dist/lib/prompts/index.mjs +362 -4
- package/dist/lib/pubsub/index.d.cts +9 -4
- package/dist/lib/pubsub/index.d.mts +9 -4
- package/dist/lib/pubsub/index.mjs +0 -2
- package/dist/lib/queue/index.d.cts +48 -6
- package/dist/lib/queue/index.d.mts +48 -6
- package/dist/lib/queue/index.mjs +0 -2
- package/dist/lib/workflow/index.d.cts +82 -4
- package/dist/lib/workflow/index.d.mts +82 -4
- package/dist/lib/workflow/index.mjs +0 -2
- package/package.json +1 -1
- package/dist/api/core/index.cjs +0 -206
- package/dist/api/core/index.d.cts +0 -21
- package/dist/api/core/index.d.cts.map +0 -1
- package/dist/api/core/index.d.mts +0 -21
- package/dist/api/core/index.d.mts.map +0 -1
- package/dist/api/core/index.mjs +0 -208
- package/dist/api/core/index.mjs.map +0 -1
- package/dist/api/core/types.d.cts +0 -107
- package/dist/api/core/types.d.cts.map +0 -1
- package/dist/api/core/types.d.mts +0 -107
- package/dist/api/core/types.d.mts.map +0 -1
- package/dist/api/middleware/index.cjs +0 -8
- package/dist/api/middleware/index.d.cts +0 -11
- package/dist/api/middleware/index.d.cts.map +0 -1
- package/dist/api/middleware/index.d.mts +0 -11
- package/dist/api/middleware/index.d.mts.map +0 -1
- package/dist/api/middleware/index.mjs +0 -10
- package/dist/api/middleware/index.mjs.map +0 -1
- package/dist/api/middleware/types.d.cts +0 -16
- package/dist/api/middleware/types.d.cts.map +0 -1
- package/dist/api/middleware/types.d.mts +0 -16
- package/dist/api/middleware/types.d.mts.map +0 -1
- package/dist/api/openapi/index.cjs +0 -254
- package/dist/api/openapi/index.mjs +0 -256
- package/dist/api/openapi/index.mjs.map +0 -1
- package/dist/api/openapi/types.d.cts +0 -60
- package/dist/api/openapi/types.d.cts.map +0 -1
- package/dist/api/openapi/types.d.mts +0 -60
- package/dist/api/openapi/types.d.mts.map +0 -1
- package/dist/api/validation/index.cjs +0 -64
- package/dist/api/validation/index.mjs +0 -61
- package/dist/api/validation/index.mjs.map +0 -1
- package/dist/cache/types.d.cts +0 -17
- package/dist/cache/types.d.cts.map +0 -1
- package/dist/cache/types.d.mts +0 -17
- package/dist/cache/types.d.mts.map +0 -1
- package/dist/cron/builder/index.cjs +0 -166
- package/dist/cron/builder/index.d.cts +0 -28
- package/dist/cron/builder/index.d.cts.map +0 -1
- package/dist/cron/builder/index.d.mts +0 -28
- package/dist/cron/builder/index.d.mts.map +0 -1
- package/dist/cron/builder/index.mjs +0 -163
- package/dist/cron/builder/index.mjs.map +0 -1
- package/dist/cron/builder/types.cjs +0 -27
- package/dist/cron/builder/types.d.cts +0 -79
- package/dist/cron/builder/types.d.cts.map +0 -1
- package/dist/cron/builder/types.d.mts +0 -79
- package/dist/cron/builder/types.d.mts.map +0 -1
- package/dist/cron/builder/types.mjs +0 -28
- package/dist/cron/builder/types.mjs.map +0 -1
- package/dist/cron/core/index.cjs +0 -308
- package/dist/cron/core/index.d.cts +0 -39
- package/dist/cron/core/index.d.cts.map +0 -1
- package/dist/cron/core/index.d.mts +0 -39
- package/dist/cron/core/index.d.mts.map +0 -1
- package/dist/cron/core/index.mjs +0 -310
- package/dist/cron/core/index.mjs.map +0 -1
- package/dist/cron/core/scanner.cjs +0 -237
- package/dist/cron/core/scanner.mjs +0 -238
- package/dist/cron/core/scanner.mjs.map +0 -1
- package/dist/cron/core/types.d.cts +0 -11
- package/dist/cron/core/types.d.cts.map +0 -1
- package/dist/cron/core/types.d.mts +0 -11
- package/dist/cron/core/types.d.mts.map +0 -1
- package/dist/errors/types.d.cts +0 -5
- package/dist/errors/types.d.cts.map +0 -1
- package/dist/errors/types.d.mts +0 -5
- package/dist/errors/types.d.mts.map +0 -1
- package/dist/i18n/types.d.cts +0 -13
- package/dist/i18n/types.d.cts.map +0 -1
- package/dist/i18n/types.d.mts +0 -13
- package/dist/i18n/types.d.mts.map +0 -1
- package/dist/lib/cache/index.d.cts.map +0 -1
- package/dist/lib/cache/index.d.mts.map +0 -1
- package/dist/lib/cache/index.mjs.map +0 -1
- package/dist/lib/errors/index.d.cts.map +0 -1
- package/dist/lib/errors/index.d.mts.map +0 -1
- package/dist/lib/errors/index.mjs.map +0 -1
- package/dist/lib/i18n/index.d.cts.map +0 -1
- package/dist/lib/i18n/index.d.mts.map +0 -1
- package/dist/lib/i18n/index.mjs.map +0 -1
- package/dist/lib/orm/index.cjs +0 -20
- package/dist/lib/orm/index.d.cts +0 -7
- package/dist/lib/orm/index.d.mts +0 -7
- package/dist/lib/orm/index.mjs +0 -6
- package/dist/lib/policy/index.d.cts.map +0 -1
- package/dist/lib/policy/index.d.mts.map +0 -1
- package/dist/lib/policy/index.mjs.map +0 -1
- package/dist/lib/prompts/index.d.cts.map +0 -1
- package/dist/lib/prompts/index.d.mts.map +0 -1
- package/dist/lib/prompts/index.mjs.map +0 -1
- package/dist/lib/pubsub/index.d.cts.map +0 -1
- package/dist/lib/pubsub/index.d.mts.map +0 -1
- package/dist/lib/pubsub/index.mjs.map +0 -1
- package/dist/lib/queue/index.d.cts.map +0 -1
- package/dist/lib/queue/index.d.mts.map +0 -1
- package/dist/lib/queue/index.mjs.map +0 -1
- package/dist/lib/workflow/index.d.cts.map +0 -1
- package/dist/lib/workflow/index.d.mts.map +0 -1
- package/dist/lib/workflow/index.mjs.map +0 -1
- package/dist/logging/core/index.cjs +0 -99
- package/dist/logging/core/index.d.cts +0 -26
- package/dist/logging/core/index.d.cts.map +0 -1
- package/dist/logging/core/index.d.mts +0 -26
- package/dist/logging/core/index.d.mts.map +0 -1
- package/dist/logging/core/index.mjs +0 -99
- package/dist/logging/core/index.mjs.map +0 -1
- package/dist/logging/core/types.cjs +0 -10
- package/dist/logging/core/types.d.cts +0 -22
- package/dist/logging/core/types.d.cts.map +0 -1
- package/dist/logging/core/types.d.mts +0 -22
- package/dist/logging/core/types.d.mts.map +0 -1
- package/dist/logging/core/types.mjs +0 -12
- package/dist/logging/core/types.mjs.map +0 -1
- package/dist/logging/formatter/index.cjs +0 -119
- package/dist/logging/formatter/index.d.cts +0 -27
- package/dist/logging/formatter/index.d.cts.map +0 -1
- package/dist/logging/formatter/index.d.mts +0 -27
- package/dist/logging/formatter/index.d.mts.map +0 -1
- package/dist/logging/formatter/index.mjs +0 -115
- package/dist/logging/formatter/index.mjs.map +0 -1
- package/dist/logging/formatter/types.d.cts +0 -5
- package/dist/logging/formatter/types.d.cts.map +0 -1
- package/dist/logging/formatter/types.d.mts +0 -5
- package/dist/logging/formatter/types.d.mts.map +0 -1
- package/dist/logging/provider/index.cjs +0 -165
- package/dist/logging/provider/index.d.cts +0 -28
- package/dist/logging/provider/index.d.cts.map +0 -1
- package/dist/logging/provider/index.d.mts +0 -28
- package/dist/logging/provider/index.d.mts.map +0 -1
- package/dist/logging/provider/index.mjs +0 -165
- package/dist/logging/provider/index.mjs.map +0 -1
- package/dist/logging/provider/types.d.cts +0 -23
- package/dist/logging/provider/types.d.cts.map +0 -1
- package/dist/logging/provider/types.d.mts +0 -23
- package/dist/logging/provider/types.d.mts.map +0 -1
- package/dist/node_modules/@standard-schema/spec/dist/index.d.cts +0 -80
- package/dist/node_modules/@standard-schema/spec/dist/index.d.cts.map +0 -1
- package/dist/node_modules/@standard-schema/spec/dist/index.d.mts +0 -80
- package/dist/node_modules/@standard-schema/spec/dist/index.d.mts.map +0 -1
- package/dist/orm/column.cjs +0 -137
- package/dist/orm/column.d.cts +0 -121
- package/dist/orm/column.d.cts.map +0 -1
- package/dist/orm/column.d.mts +0 -121
- package/dist/orm/column.d.mts.map +0 -1
- package/dist/orm/column.mjs +0 -132
- package/dist/orm/column.mjs.map +0 -1
- package/dist/orm/dialect/index.cjs +0 -14
- package/dist/orm/dialect/index.mjs +0 -16
- package/dist/orm/dialect/index.mjs.map +0 -1
- package/dist/orm/dialect/mysql.cjs +0 -31
- package/dist/orm/dialect/mysql.mjs +0 -33
- package/dist/orm/dialect/mysql.mjs.map +0 -1
- package/dist/orm/dialect/postgres.cjs +0 -23
- package/dist/orm/dialect/postgres.mjs +0 -25
- package/dist/orm/dialect/postgres.mjs.map +0 -1
- package/dist/orm/dialect/sqlite.cjs +0 -31
- package/dist/orm/dialect/sqlite.mjs +0 -33
- package/dist/orm/dialect/sqlite.mjs.map +0 -1
- package/dist/orm/dialect/utils.cjs +0 -8
- package/dist/orm/dialect/utils.mjs +0 -10
- package/dist/orm/dialect/utils.mjs.map +0 -1
- package/dist/orm/internal/table-columns.cjs +0 -31
- package/dist/orm/internal/table-columns.mjs +0 -32
- package/dist/orm/internal/table-columns.mjs.map +0 -1
- package/dist/orm/internal/table-lookup.cjs +0 -35
- package/dist/orm/internal/table-lookup.mjs +0 -35
- package/dist/orm/internal/table-lookup.mjs.map +0 -1
- package/dist/orm/internal/table-relations.cjs +0 -28
- package/dist/orm/internal/table-relations.mjs +0 -29
- package/dist/orm/internal/table-relations.mjs.map +0 -1
- package/dist/orm/migration/config.cjs +0 -7
- package/dist/orm/migration/config.d.cts +0 -7
- package/dist/orm/migration/config.d.cts.map +0 -1
- package/dist/orm/migration/config.d.mts +0 -7
- package/dist/orm/migration/config.d.mts.map +0 -1
- package/dist/orm/migration/config.mjs +0 -8
- package/dist/orm/migration/config.mjs.map +0 -1
- package/dist/orm/migration/types.d.cts +0 -20
- package/dist/orm/migration/types.d.cts.map +0 -1
- package/dist/orm/migration/types.d.mts +0 -20
- package/dist/orm/migration/types.d.mts.map +0 -1
- package/dist/orm/orm.cjs +0 -41
- package/dist/orm/orm.d.cts +0 -18
- package/dist/orm/orm.d.cts.map +0 -1
- package/dist/orm/orm.d.mts +0 -18
- package/dist/orm/orm.d.mts.map +0 -1
- package/dist/orm/orm.mjs +0 -43
- package/dist/orm/orm.mjs.map +0 -1
- package/dist/orm/relation.cjs +0 -18
- package/dist/orm/relation.d.cts +0 -8
- package/dist/orm/relation.d.cts.map +0 -1
- package/dist/orm/relation.d.mts +0 -8
- package/dist/orm/relation.d.mts.map +0 -1
- package/dist/orm/relation.mjs +0 -19
- package/dist/orm/relation.mjs.map +0 -1
- package/dist/orm/runtime/builders/mutations.cjs +0 -29
- package/dist/orm/runtime/builders/mutations.mjs +0 -28
- package/dist/orm/runtime/builders/mutations.mjs.map +0 -1
- package/dist/orm/runtime/builders/select.cjs +0 -18
- package/dist/orm/runtime/builders/select.mjs +0 -19
- package/dist/orm/runtime/builders/select.mjs.map +0 -1
- package/dist/orm/runtime/client.cjs +0 -90
- package/dist/orm/runtime/client.mjs +0 -92
- package/dist/orm/runtime/client.mjs.map +0 -1
- package/dist/orm/runtime/context.cjs +0 -49
- package/dist/orm/runtime/context.mjs +0 -51
- package/dist/orm/runtime/context.mjs.map +0 -1
- package/dist/orm/runtime/dialect/index.cjs +0 -11
- package/dist/orm/runtime/dialect/index.mjs +0 -13
- package/dist/orm/runtime/dialect/index.mjs.map +0 -1
- package/dist/orm/runtime/dialect/mysql.cjs +0 -95
- package/dist/orm/runtime/dialect/mysql.mjs +0 -97
- package/dist/orm/runtime/dialect/mysql.mjs.map +0 -1
- package/dist/orm/runtime/dialect/postgres.cjs +0 -51
- package/dist/orm/runtime/dialect/postgres.mjs +0 -53
- package/dist/orm/runtime/dialect/postgres.mjs.map +0 -1
- package/dist/orm/runtime/dialect/sqlite.cjs +0 -4
- package/dist/orm/runtime/dialect/sqlite.mjs +0 -7
- package/dist/orm/runtime/dialect/sqlite.mjs.map +0 -1
- package/dist/orm/runtime/errors.cjs +0 -19
- package/dist/orm/runtime/errors.mjs +0 -21
- package/dist/orm/runtime/errors.mjs.map +0 -1
- package/dist/orm/runtime/hydrate/many.cjs +0 -46
- package/dist/orm/runtime/hydrate/many.mjs +0 -48
- package/dist/orm/runtime/hydrate/many.mjs.map +0 -1
- package/dist/orm/runtime/hydrate/one.cjs +0 -38
- package/dist/orm/runtime/hydrate/one.mjs +0 -40
- package/dist/orm/runtime/hydrate/one.mjs.map +0 -1
- package/dist/orm/runtime/hydrate.cjs +0 -49
- package/dist/orm/runtime/hydrate.mjs +0 -51
- package/dist/orm/runtime/hydrate.mjs.map +0 -1
- package/dist/orm/runtime/rows.cjs +0 -30
- package/dist/orm/runtime/rows.mjs +0 -31
- package/dist/orm/runtime/rows.mjs.map +0 -1
- package/dist/orm/runtime/utils.cjs +0 -27
- package/dist/orm/runtime/utils.mjs +0 -27
- package/dist/orm/runtime/utils.mjs.map +0 -1
- package/dist/orm/sql/parse-array.cjs +0 -64
- package/dist/orm/sql/parse-array.mjs +0 -66
- package/dist/orm/sql/parse-array.mjs.map +0 -1
- package/dist/orm/sql/plan/select.cjs +0 -36
- package/dist/orm/sql/plan/select.mjs +0 -38
- package/dist/orm/sql/plan/select.mjs.map +0 -1
- package/dist/orm/sql/plan/where/operators.cjs +0 -95
- package/dist/orm/sql/plan/where/operators.mjs +0 -97
- package/dist/orm/sql/plan/where/operators.mjs.map +0 -1
- package/dist/orm/sql/plan/where.cjs +0 -59
- package/dist/orm/sql/plan/where.mjs +0 -61
- package/dist/orm/sql/plan/where.mjs.map +0 -1
- package/dist/orm/sql/serialize/clauses.cjs +0 -36
- package/dist/orm/sql/serialize/clauses.mjs +0 -37
- package/dist/orm/sql/serialize/clauses.mjs.map +0 -1
- package/dist/orm/sql/serialize/joins.cjs +0 -31
- package/dist/orm/sql/serialize/joins.mjs +0 -33
- package/dist/orm/sql/serialize/joins.mjs.map +0 -1
- package/dist/orm/sql/serialize/values.cjs +0 -30
- package/dist/orm/sql/serialize/values.mjs +0 -32
- package/dist/orm/sql/serialize/values.mjs.map +0 -1
- package/dist/orm/sql/serialize/where/predicate.cjs +0 -73
- package/dist/orm/sql/serialize/where/predicate.mjs +0 -75
- package/dist/orm/sql/serialize/where/predicate.mjs.map +0 -1
- package/dist/orm/sql/serialize/where/tree.cjs +0 -26
- package/dist/orm/sql/serialize/where/tree.mjs +0 -28
- package/dist/orm/sql/serialize/where/tree.mjs.map +0 -1
- package/dist/orm/sql/serialize/where.cjs +0 -10
- package/dist/orm/sql/serialize/where.mjs +0 -12
- package/dist/orm/sql/serialize/where.mjs.map +0 -1
- package/dist/orm/sql/serialize.cjs +0 -24
- package/dist/orm/sql/serialize.mjs +0 -25
- package/dist/orm/sql/serialize.mjs.map +0 -1
- package/dist/orm/table.cjs +0 -12
- package/dist/orm/table.d.cts +0 -12
- package/dist/orm/table.d.cts.map +0 -1
- package/dist/orm/table.d.mts +0 -12
- package/dist/orm/table.d.mts.map +0 -1
- package/dist/orm/table.mjs +0 -14
- package/dist/orm/table.mjs.map +0 -1
- package/dist/orm/types.d.cts +0 -183
- package/dist/orm/types.d.cts.map +0 -1
- package/dist/orm/types.d.mts +0 -183
- package/dist/orm/types.d.mts.map +0 -1
- package/dist/policy/helpers.cjs +0 -206
- package/dist/policy/helpers.d.cts +0 -50
- package/dist/policy/helpers.d.cts.map +0 -1
- package/dist/policy/helpers.d.mts +0 -50
- package/dist/policy/helpers.d.mts.map +0 -1
- package/dist/policy/helpers.mjs +0 -190
- package/dist/policy/helpers.mjs.map +0 -1
- package/dist/policy/types.d.cts +0 -16
- package/dist/policy/types.d.cts.map +0 -1
- package/dist/policy/types.d.mts +0 -16
- package/dist/policy/types.d.mts.map +0 -1
- package/dist/prompts/core/keys.cjs +0 -165
- package/dist/prompts/core/keys.mjs +0 -167
- package/dist/prompts/core/keys.mjs.map +0 -1
- package/dist/prompts/core/runtime.cjs +0 -104
- package/dist/prompts/core/runtime.mjs +0 -106
- package/dist/prompts/core/runtime.mjs.map +0 -1
- package/dist/prompts/core/session.cjs +0 -98
- package/dist/prompts/core/session.mjs +0 -100
- package/dist/prompts/core/session.mjs.map +0 -1
- package/dist/prompts/core/types.d.cts +0 -21
- package/dist/prompts/core/types.d.cts.map +0 -1
- package/dist/prompts/core/types.d.mts +0 -21
- package/dist/prompts/core/types.d.mts.map +0 -1
- package/dist/prompts/types.d.cts +0 -52
- package/dist/prompts/types.d.cts.map +0 -1
- package/dist/prompts/types.d.mts +0 -52
- package/dist/prompts/types.d.mts.map +0 -1
- package/dist/pubsub/types.d.cts +0 -10
- package/dist/pubsub/types.d.cts.map +0 -1
- package/dist/pubsub/types.d.mts +0 -10
- package/dist/pubsub/types.d.mts.map +0 -1
- package/dist/queue/types.d.cts +0 -47
- package/dist/queue/types.d.cts.map +0 -1
- package/dist/queue/types.d.mts +0 -47
- package/dist/queue/types.d.mts.map +0 -1
- package/dist/workflow/types.d.cts +0 -83
- package/dist/workflow/types.d.cts.map +0 -1
- package/dist/workflow/types.d.mts +0 -83
- package/dist/workflow/types.d.mts.map +0 -1
|
@@ -1,7 +1,367 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const
|
|
3
|
-
const require_session = require("../../prompts/core/session.cjs");
|
|
2
|
+
const require_lib_errors_index = require("../errors/index.cjs");
|
|
4
3
|
let node_util = require("node:util");
|
|
4
|
+
//#region src/lib/prompts/core/keys.ts
|
|
5
|
+
const ESC = "\x1B";
|
|
6
|
+
const CSI = "\x1B[";
|
|
7
|
+
const ESC_BACKSPACE = `${ESC}\u007F`;
|
|
8
|
+
const CHAR_KEY_MAP = new Map(Object.values({
|
|
9
|
+
enterCr: {
|
|
10
|
+
value: "\r",
|
|
11
|
+
name: "enter"
|
|
12
|
+
},
|
|
13
|
+
enterLf: {
|
|
14
|
+
value: "\n",
|
|
15
|
+
name: "enter"
|
|
16
|
+
},
|
|
17
|
+
ctrlA: {
|
|
18
|
+
value: "",
|
|
19
|
+
name: "ctrl_a"
|
|
20
|
+
},
|
|
21
|
+
ctrlC: {
|
|
22
|
+
value: "",
|
|
23
|
+
name: "ctrl_c"
|
|
24
|
+
},
|
|
25
|
+
ctrlBackspace: {
|
|
26
|
+
value: "",
|
|
27
|
+
name: "ctrl_backspace"
|
|
28
|
+
},
|
|
29
|
+
backspace: {
|
|
30
|
+
value: "",
|
|
31
|
+
name: "backspace"
|
|
32
|
+
},
|
|
33
|
+
tab: {
|
|
34
|
+
value: " ",
|
|
35
|
+
name: "tab"
|
|
36
|
+
},
|
|
37
|
+
space: {
|
|
38
|
+
value: " ",
|
|
39
|
+
name: "space"
|
|
40
|
+
}
|
|
41
|
+
}).map((entry) => [entry.value, { name: entry.name }]));
|
|
42
|
+
const KNOWN_SEQUENCES = [
|
|
43
|
+
{
|
|
44
|
+
sequence: "\x1B[1;2D",
|
|
45
|
+
key: { name: "shift_left" }
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
sequence: "\x1B[1;2C",
|
|
49
|
+
key: { name: "shift_right" }
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
sequence: "\x1B[1;5D",
|
|
53
|
+
key: { name: "ctrl_left" }
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
sequence: "\x1B[1;5C",
|
|
57
|
+
key: { name: "ctrl_right" }
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
sequence: "\x1B[1;6D",
|
|
61
|
+
key: { name: "shift_ctrl_left" }
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
sequence: "\x1B[1;6C",
|
|
65
|
+
key: { name: "shift_ctrl_right" }
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
sequence: "\x1B[3~",
|
|
69
|
+
key: { name: "delete" }
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
sequence: "\x1B[H",
|
|
73
|
+
key: { name: "home" }
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
sequence: "\x1B[F",
|
|
77
|
+
key: { name: "end" }
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
sequence: "\x1B[A",
|
|
81
|
+
key: { name: "up" }
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
sequence: "\x1B[B",
|
|
85
|
+
key: { name: "down" }
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
sequence: "\x1B[C",
|
|
89
|
+
key: { name: "right" }
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
sequence: "\x1B[D",
|
|
93
|
+
key: { name: "left" }
|
|
94
|
+
}
|
|
95
|
+
];
|
|
96
|
+
const isControlChar = (char) => {
|
|
97
|
+
return char <= "" || char === "";
|
|
98
|
+
};
|
|
99
|
+
const isCsiFinalByte = (char) => {
|
|
100
|
+
if (!char) return false;
|
|
101
|
+
if (char >= "A" && char <= "Z") return true;
|
|
102
|
+
if (char >= "a" && char <= "z") return true;
|
|
103
|
+
if (char === "~") return true;
|
|
104
|
+
return false;
|
|
105
|
+
};
|
|
106
|
+
const readCsiLength = (remaining) => {
|
|
107
|
+
if (!remaining.startsWith(CSI)) return null;
|
|
108
|
+
let index = 2;
|
|
109
|
+
while (index < remaining.length) {
|
|
110
|
+
if (isCsiFinalByte(remaining[index] ?? "")) return {
|
|
111
|
+
length: index + 1,
|
|
112
|
+
incomplete: false
|
|
113
|
+
};
|
|
114
|
+
index += 1;
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
length: 0,
|
|
118
|
+
incomplete: true
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
const parseKeys = (chunk) => {
|
|
122
|
+
const keys = [];
|
|
123
|
+
let cursor = 0;
|
|
124
|
+
while (cursor < chunk.length) {
|
|
125
|
+
const remaining = chunk.slice(cursor);
|
|
126
|
+
if (remaining.startsWith(ESC_BACKSPACE)) {
|
|
127
|
+
keys.push({ name: "ctrl_backspace" });
|
|
128
|
+
cursor += 2;
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
const knownSequence = KNOWN_SEQUENCES.find((entry) => remaining.startsWith(entry.sequence));
|
|
132
|
+
if (knownSequence) {
|
|
133
|
+
keys.push(knownSequence.key);
|
|
134
|
+
cursor += knownSequence.sequence.length;
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
const csiLength = readCsiLength(remaining);
|
|
138
|
+
if (csiLength) {
|
|
139
|
+
if (csiLength.incomplete) return {
|
|
140
|
+
keys,
|
|
141
|
+
remaining: chunk.slice(cursor)
|
|
142
|
+
};
|
|
143
|
+
cursor += csiLength.length;
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
const char = chunk[cursor] ?? "";
|
|
147
|
+
switch (char) {
|
|
148
|
+
case ESC:
|
|
149
|
+
if (cursor === chunk.length - 1) keys.push({ name: "escape" });
|
|
150
|
+
break;
|
|
151
|
+
default: {
|
|
152
|
+
const key = CHAR_KEY_MAP.get(char);
|
|
153
|
+
if (key) keys.push(key);
|
|
154
|
+
else if (!isControlChar(char)) keys.push({
|
|
155
|
+
name: "character",
|
|
156
|
+
value: char
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
cursor += 1;
|
|
161
|
+
}
|
|
162
|
+
return {
|
|
163
|
+
keys,
|
|
164
|
+
remaining: ""
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
//#endregion
|
|
168
|
+
//#region src/lib/prompts/core/runtime.ts
|
|
169
|
+
const HIDE_CURSOR = "\x1B[?25l";
|
|
170
|
+
const SHOW_CURSOR = "\x1B[?25h";
|
|
171
|
+
const countLines = (text) => {
|
|
172
|
+
let count = 1;
|
|
173
|
+
for (let i = 0; i < text.length; i++) if (text[i] === "\n") count += 1;
|
|
174
|
+
return count;
|
|
175
|
+
};
|
|
176
|
+
var NodePromptRuntime = class {
|
|
177
|
+
stdin;
|
|
178
|
+
stdout;
|
|
179
|
+
queue = [];
|
|
180
|
+
waiters = [];
|
|
181
|
+
initialized = false;
|
|
182
|
+
previousLines = 0;
|
|
183
|
+
buffer = "";
|
|
184
|
+
constructor(stdin = process.stdin, stdout = process.stdout) {
|
|
185
|
+
this.stdin = stdin;
|
|
186
|
+
this.stdout = stdout;
|
|
187
|
+
}
|
|
188
|
+
isInteractive() {
|
|
189
|
+
return Boolean(this.stdin.isTTY && this.stdout.isTTY && typeof this.stdin.setRawMode === "function");
|
|
190
|
+
}
|
|
191
|
+
init() {
|
|
192
|
+
if (!this.isInteractive()) return require_lib_errors_index.err("PromptEnvironmentError", "Interactive prompts require a TTY with raw mode support");
|
|
193
|
+
if (this.initialized) return require_lib_errors_index.ok(void 0);
|
|
194
|
+
const [initError] = require_lib_errors_index.mightThrowSync(() => {
|
|
195
|
+
this.stdin.setRawMode(true);
|
|
196
|
+
this.stdin.setEncoding("utf8");
|
|
197
|
+
this.stdin.resume();
|
|
198
|
+
this.stdin.on("data", this.onData);
|
|
199
|
+
this.stdout.write(HIDE_CURSOR);
|
|
200
|
+
});
|
|
201
|
+
if (initError) return require_lib_errors_index.err("PromptIOError", "Unable to initialize prompt runtime");
|
|
202
|
+
this.initialized = true;
|
|
203
|
+
return require_lib_errors_index.ok(void 0);
|
|
204
|
+
}
|
|
205
|
+
readKey() {
|
|
206
|
+
const queued = this.queue.shift();
|
|
207
|
+
if (queued) return Promise.resolve(require_lib_errors_index.ok(queued));
|
|
208
|
+
return new Promise((resolve) => {
|
|
209
|
+
this.waiters.push(resolve);
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
render(frame) {
|
|
213
|
+
const [renderError] = require_lib_errors_index.mightThrowSync(() => {
|
|
214
|
+
if (this.previousLines > 1) this.stdout.write(`\u001B[${this.previousLines - 1}A`);
|
|
215
|
+
this.stdout.write("\r\x1B[J");
|
|
216
|
+
this.stdout.write(frame);
|
|
217
|
+
this.previousLines = countLines(frame);
|
|
218
|
+
});
|
|
219
|
+
if (renderError) return require_lib_errors_index.err("PromptIOError", "Unable to render prompt frame");
|
|
220
|
+
return require_lib_errors_index.ok(void 0);
|
|
221
|
+
}
|
|
222
|
+
done(frame) {
|
|
223
|
+
const [doneError] = require_lib_errors_index.mightThrowSync(() => {
|
|
224
|
+
if (this.previousLines > 1) this.stdout.write(`\u001B[${this.previousLines - 1}A`);
|
|
225
|
+
this.stdout.write("\r\x1B[J");
|
|
226
|
+
this.stdout.write(`${frame}\n`);
|
|
227
|
+
this.previousLines = 0;
|
|
228
|
+
});
|
|
229
|
+
if (doneError) return require_lib_errors_index.err("PromptIOError", "Unable to finalize prompt frame");
|
|
230
|
+
return require_lib_errors_index.ok(void 0);
|
|
231
|
+
}
|
|
232
|
+
close() {
|
|
233
|
+
if (!this.initialized) return require_lib_errors_index.ok(void 0);
|
|
234
|
+
this.initialized = false;
|
|
235
|
+
const [closeError] = require_lib_errors_index.mightThrowSync(() => {
|
|
236
|
+
this.stdin.off("data", this.onData);
|
|
237
|
+
this.stdin.setRawMode(false);
|
|
238
|
+
this.stdin.pause?.();
|
|
239
|
+
this.stdout.write(SHOW_CURSOR);
|
|
240
|
+
});
|
|
241
|
+
if (closeError) return require_lib_errors_index.err("PromptIOError", "Unable to close prompt runtime");
|
|
242
|
+
return require_lib_errors_index.ok(void 0);
|
|
243
|
+
}
|
|
244
|
+
interrupt() {
|
|
245
|
+
this.close();
|
|
246
|
+
process.exit(0);
|
|
247
|
+
}
|
|
248
|
+
onData = (chunk) => {
|
|
249
|
+
const value = typeof chunk === "string" ? chunk : chunk.toString("utf8");
|
|
250
|
+
const combined = `${this.buffer}${value}`;
|
|
251
|
+
this.buffer = "";
|
|
252
|
+
const [parseError, result] = require_lib_errors_index.mightThrowSync(() => parseKeys(combined));
|
|
253
|
+
if (parseError || !result) {
|
|
254
|
+
for (const waiter of this.waiters.splice(0)) waiter(require_lib_errors_index.err("PromptIOError", "Failed to parse input"));
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
this.buffer = result.remaining;
|
|
258
|
+
for (const key of result.keys) {
|
|
259
|
+
const waiter = this.waiters.shift();
|
|
260
|
+
if (waiter) waiter(require_lib_errors_index.ok(key));
|
|
261
|
+
else this.queue.push(key);
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
};
|
|
265
|
+
const createNodePromptRuntime = () => {
|
|
266
|
+
return new NodePromptRuntime();
|
|
267
|
+
};
|
|
268
|
+
//#endregion
|
|
269
|
+
//#region src/lib/prompts/core/session.ts
|
|
270
|
+
const CANCEL_MESSAGE = "Interrupted, bye!";
|
|
271
|
+
const resolveOutput = async (options, value) => {
|
|
272
|
+
if (!options.transform) return require_lib_errors_index.ok(value);
|
|
273
|
+
const [transformError, transformed] = await require_lib_errors_index.mightThrow(Promise.resolve().then(() => options.transform?.(value)));
|
|
274
|
+
if (transformError || transformed === null || transformed === void 0) return require_lib_errors_index.err("PromptIOError", "Prompt transform callback failed unexpectedly");
|
|
275
|
+
return require_lib_errors_index.ok(transformed);
|
|
276
|
+
};
|
|
277
|
+
const runValidation = async (options, value) => {
|
|
278
|
+
if (!options.validate) return require_lib_errors_index.ok(null);
|
|
279
|
+
const [validationError, validationMessage] = await require_lib_errors_index.mightThrow(Promise.resolve().then(() => options.validate?.(value)));
|
|
280
|
+
if (validationError) return require_lib_errors_index.err("PromptIOError", "Prompt validate callback failed unexpectedly");
|
|
281
|
+
if (typeof validationMessage === "string" && validationMessage.length > 0) return require_lib_errors_index.ok(validationMessage);
|
|
282
|
+
return require_lib_errors_index.ok(null);
|
|
283
|
+
};
|
|
284
|
+
const isCancelKey = (key) => {
|
|
285
|
+
if (key.name === "ctrl_c") return true;
|
|
286
|
+
if (key.name === "escape") return true;
|
|
287
|
+
return false;
|
|
288
|
+
};
|
|
289
|
+
const runPromptSession = async (params) => {
|
|
290
|
+
const [initError] = params.runtime.init();
|
|
291
|
+
if (initError) return require_lib_errors_index.err(initError.type, initError.message);
|
|
292
|
+
let state = params.initialState;
|
|
293
|
+
let errorMessage = null;
|
|
294
|
+
const closeAndDone = (message) => {
|
|
295
|
+
const [closeErr] = params.runtime.close();
|
|
296
|
+
if (closeErr) return require_lib_errors_index.err(closeErr.type, closeErr.message);
|
|
297
|
+
const [doneErr] = params.runtime.done(message);
|
|
298
|
+
if (doneErr) return require_lib_errors_index.err(doneErr.type, doneErr.message);
|
|
299
|
+
return null;
|
|
300
|
+
};
|
|
301
|
+
while (true) {
|
|
302
|
+
const [renderError] = params.runtime.render(params.render({
|
|
303
|
+
options: params.options,
|
|
304
|
+
state,
|
|
305
|
+
errorMessage
|
|
306
|
+
}));
|
|
307
|
+
if (renderError) {
|
|
308
|
+
params.runtime.close();
|
|
309
|
+
return require_lib_errors_index.err(renderError.type, renderError.message);
|
|
310
|
+
}
|
|
311
|
+
const [readError, key] = await params.runtime.readKey();
|
|
312
|
+
if (readError || !key) {
|
|
313
|
+
params.runtime.close();
|
|
314
|
+
return require_lib_errors_index.err(readError?.type ?? "PromptIOError", readError?.message ?? "Unable to read prompt input");
|
|
315
|
+
}
|
|
316
|
+
if (isCancelKey(key)) {
|
|
317
|
+
const [closeError] = params.runtime.close();
|
|
318
|
+
if (closeError) return require_lib_errors_index.err(closeError.type, closeError.message);
|
|
319
|
+
const [doneError] = params.runtime.done(`✖ ${CANCEL_MESSAGE}`);
|
|
320
|
+
if (doneError) return require_lib_errors_index.err(doneError.type, doneError.message);
|
|
321
|
+
if (params.runtime.interrupt) {
|
|
322
|
+
const [interruptError] = params.runtime.interrupt(CANCEL_MESSAGE);
|
|
323
|
+
if (interruptError) return require_lib_errors_index.err(interruptError.type, interruptError.message);
|
|
324
|
+
}
|
|
325
|
+
return require_lib_errors_index.err("PromptCancelledError", CANCEL_MESSAGE);
|
|
326
|
+
}
|
|
327
|
+
if (key.name !== "enter") {
|
|
328
|
+
state = params.onKey(state, key);
|
|
329
|
+
errorMessage = null;
|
|
330
|
+
continue;
|
|
331
|
+
}
|
|
332
|
+
const submitResult = params.onSubmit(state);
|
|
333
|
+
if ("errorMessage" in submitResult) {
|
|
334
|
+
errorMessage = submitResult.errorMessage;
|
|
335
|
+
continue;
|
|
336
|
+
}
|
|
337
|
+
const rawValue = submitResult.value;
|
|
338
|
+
const [validationRunError, validationErrorMessage] = await runValidation(params.options, rawValue);
|
|
339
|
+
if (validationRunError) {
|
|
340
|
+
const closeDoneErr = closeAndDone(`✖ ${params.options.message}`);
|
|
341
|
+
if (closeDoneErr) return closeDoneErr;
|
|
342
|
+
return require_lib_errors_index.err(validationRunError.type, validationRunError.message);
|
|
343
|
+
}
|
|
344
|
+
if (validationErrorMessage) {
|
|
345
|
+
errorMessage = validationErrorMessage;
|
|
346
|
+
continue;
|
|
347
|
+
}
|
|
348
|
+
const [transformError, finalValue] = await resolveOutput(params.options, rawValue);
|
|
349
|
+
if (transformError) {
|
|
350
|
+
const closeDoneErr = closeAndDone(`✖ ${params.options.message}`);
|
|
351
|
+
if (closeDoneErr) return closeDoneErr;
|
|
352
|
+
return require_lib_errors_index.err(transformError.type, transformError.message);
|
|
353
|
+
}
|
|
354
|
+
if (finalValue === null) return require_lib_errors_index.err("PromptIOError", "Unable to transform prompt value");
|
|
355
|
+
const closeDoneErr = closeAndDone(params.complete({
|
|
356
|
+
options: params.options,
|
|
357
|
+
state,
|
|
358
|
+
value: finalValue
|
|
359
|
+
}));
|
|
360
|
+
if (closeDoneErr) return closeDoneErr;
|
|
361
|
+
return require_lib_errors_index.ok(finalValue);
|
|
362
|
+
}
|
|
363
|
+
};
|
|
364
|
+
//#endregion
|
|
5
365
|
//#region src/lib/prompts/index.ts
|
|
6
366
|
const pointer = (active) => {
|
|
7
367
|
return active ? paint("cyan", "❯") : " ";
|
|
@@ -154,8 +514,8 @@ const textOnKey = (state, key) => {
|
|
|
154
514
|
}
|
|
155
515
|
};
|
|
156
516
|
const input = async (options, runtime) => {
|
|
157
|
-
return
|
|
158
|
-
runtime: runtime ??
|
|
517
|
+
return runPromptSession({
|
|
518
|
+
runtime: runtime ?? createNodePromptRuntime(),
|
|
159
519
|
options,
|
|
160
520
|
initialState: createTextState(options.defaultValue ?? ""),
|
|
161
521
|
render: ({ options: currentOptions, state, errorMessage }) => {
|
|
@@ -173,10 +533,10 @@ const input = async (options, runtime) => {
|
|
|
173
533
|
});
|
|
174
534
|
};
|
|
175
535
|
const password = async (options, runtime) => {
|
|
176
|
-
const promptRuntime = runtime ??
|
|
536
|
+
const promptRuntime = runtime ?? createNodePromptRuntime();
|
|
177
537
|
const initialValue = options.defaultValue ?? "";
|
|
178
538
|
const mask = options.mask;
|
|
179
|
-
return
|
|
539
|
+
return runPromptSession({
|
|
180
540
|
runtime: promptRuntime,
|
|
181
541
|
options,
|
|
182
542
|
initialState: createTextState(initialValue),
|
|
@@ -197,8 +557,8 @@ const password = async (options, runtime) => {
|
|
|
197
557
|
});
|
|
198
558
|
};
|
|
199
559
|
const confirm = async (options, runtime) => {
|
|
200
|
-
return
|
|
201
|
-
runtime: runtime ??
|
|
560
|
+
return runPromptSession({
|
|
561
|
+
runtime: runtime ?? createNodePromptRuntime(),
|
|
202
562
|
options,
|
|
203
563
|
initialState: { value: options.defaultValue ?? false },
|
|
204
564
|
render: ({ options: currentOptions, state, errorMessage }) => {
|
|
@@ -231,8 +591,8 @@ const confirm = async (options, runtime) => {
|
|
|
231
591
|
});
|
|
232
592
|
};
|
|
233
593
|
const number = async (options, runtime) => {
|
|
234
|
-
return
|
|
235
|
-
runtime: runtime ??
|
|
594
|
+
return runPromptSession({
|
|
595
|
+
runtime: runtime ?? createNodePromptRuntime(),
|
|
236
596
|
options,
|
|
237
597
|
initialState: createTextState(options.defaultValue === void 0 ? "" : String(options.defaultValue)),
|
|
238
598
|
render: ({ options: currentOptions, state, errorMessage }) => {
|
|
@@ -290,8 +650,8 @@ const findDefaultIndex = (choices, defaultValue) => {
|
|
|
290
650
|
return findFirstEnabledIndex(choices);
|
|
291
651
|
};
|
|
292
652
|
const select = async (options, runtime) => {
|
|
293
|
-
return
|
|
294
|
-
runtime: runtime ??
|
|
653
|
+
return runPromptSession({
|
|
654
|
+
runtime: runtime ?? createNodePromptRuntime(),
|
|
295
655
|
options,
|
|
296
656
|
initialState: { cursor: findDefaultIndex(options.choices, options.defaultValue) },
|
|
297
657
|
render: ({ options: currentOptions, state, errorMessage }) => {
|
|
@@ -327,8 +687,8 @@ const select = async (options, runtime) => {
|
|
|
327
687
|
});
|
|
328
688
|
};
|
|
329
689
|
const multiselect = async (options, runtime) => {
|
|
330
|
-
return
|
|
331
|
-
runtime: runtime ??
|
|
690
|
+
return runPromptSession({
|
|
691
|
+
runtime: runtime ?? createNodePromptRuntime(),
|
|
332
692
|
options,
|
|
333
693
|
initialState: {
|
|
334
694
|
cursor: findFirstEnabledIndex(options.choices),
|
|
@@ -1,6 +1,72 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ConfirmOptions, InputOptions, MultiselectOptions, NumberOptions, PasswordOptions, PromptErrorType, SelectChoice, SelectOptions } from "../../prompts/types.cjs";
|
|
1
|
+
import { i as ok, t as err } from "../../index-DxSbeGP-.cjs";
|
|
3
2
|
|
|
3
|
+
//#region src/lib/prompts/core/types.d.ts
|
|
4
|
+
type PromptResultLike<T> = ReturnType<typeof err<string>> | ReturnType<typeof ok<T>>;
|
|
5
|
+
type KeyName = "character" | "enter" | "backspace" | "delete" | "up" | "down" | "left" | "right" | "ctrl_left" | "ctrl_right" | "shift_left" | "shift_right" | "space" | "escape" | "ctrl_c" | "ctrl_backspace" | "ctrl_a" | "home" | "end" | "shift_ctrl_left" | "shift_ctrl_right" | "tab";
|
|
6
|
+
type Key = {
|
|
7
|
+
name: KeyName;
|
|
8
|
+
value?: string;
|
|
9
|
+
};
|
|
10
|
+
type PromptRuntime = {
|
|
11
|
+
isInteractive: () => boolean;
|
|
12
|
+
init: () => PromptResultLike<void>;
|
|
13
|
+
readKey: () => Promise<PromptResultLike<Key>>;
|
|
14
|
+
render: (frame: string) => PromptResultLike<void>;
|
|
15
|
+
done: (frame: string) => PromptResultLike<void>;
|
|
16
|
+
close: () => PromptResultLike<void>;
|
|
17
|
+
interrupt?: (message: string) => PromptResultLike<undefined>;
|
|
18
|
+
};
|
|
19
|
+
//#endregion
|
|
20
|
+
//#region src/lib/prompts/types.d.ts
|
|
21
|
+
type PromptErrorType = "PromptEnvironmentError" | "PromptValidationError" | "PromptCancelledError" | "PromptIOError" | (string & {});
|
|
22
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
23
|
+
type Validate<TValue> = ((value: TValue) => MaybePromise<string | null | undefined>) | undefined;
|
|
24
|
+
type Transform<TValue> = ((value: TValue) => MaybePromise<TValue>) | undefined;
|
|
25
|
+
type BasePromptOptions<TValue> = {
|
|
26
|
+
message: string;
|
|
27
|
+
validate?: Validate<TValue>;
|
|
28
|
+
transform?: Transform<TValue>;
|
|
29
|
+
};
|
|
30
|
+
type InputOptions = BasePromptOptions<string> & {
|
|
31
|
+
defaultValue?: string;
|
|
32
|
+
placeholder?: string;
|
|
33
|
+
required?: boolean;
|
|
34
|
+
requiredMessage?: string;
|
|
35
|
+
};
|
|
36
|
+
type PasswordOptions = InputOptions & {
|
|
37
|
+
mask?: string;
|
|
38
|
+
};
|
|
39
|
+
type ConfirmOptions = BasePromptOptions<boolean> & {
|
|
40
|
+
defaultValue?: boolean;
|
|
41
|
+
activeLabel?: string;
|
|
42
|
+
inactiveLabel?: string;
|
|
43
|
+
};
|
|
44
|
+
type NumberOptions = BasePromptOptions<number> & {
|
|
45
|
+
defaultValue?: number;
|
|
46
|
+
min?: number;
|
|
47
|
+
max?: number;
|
|
48
|
+
requiredMessage?: string;
|
|
49
|
+
invalidMessage?: string;
|
|
50
|
+
minMessage?: string;
|
|
51
|
+
maxMessage?: string;
|
|
52
|
+
};
|
|
53
|
+
type SelectChoice<TValue extends string> = {
|
|
54
|
+
value: TValue;
|
|
55
|
+
label?: string;
|
|
56
|
+
hint?: string;
|
|
57
|
+
disabled?: boolean;
|
|
58
|
+
};
|
|
59
|
+
type SelectOptions<TValue extends string> = BasePromptOptions<TValue> & {
|
|
60
|
+
choices: readonly [SelectChoice<TValue>, ...SelectChoice<TValue>[]];
|
|
61
|
+
defaultValue?: TValue;
|
|
62
|
+
};
|
|
63
|
+
type MultiselectOptions<TValue extends string> = BasePromptOptions<TValue[]> & {
|
|
64
|
+
choices: readonly [SelectChoice<TValue>, ...SelectChoice<TValue>[]];
|
|
65
|
+
defaultValue?: readonly TValue[];
|
|
66
|
+
min?: number;
|
|
67
|
+
max?: number;
|
|
68
|
+
};
|
|
69
|
+
//#endregion
|
|
4
70
|
//#region src/lib/prompts/index.d.ts
|
|
5
71
|
declare const input: (options: InputOptions, runtime?: PromptRuntime) => Promise<readonly [null, string] | readonly [{
|
|
6
72
|
readonly type: string;
|
|
@@ -27,5 +93,4 @@ declare const multiselect: <TValue extends string>(options: MultiselectOptions<T
|
|
|
27
93
|
readonly message: string;
|
|
28
94
|
}, null] | readonly [null, TValue[]]>;
|
|
29
95
|
//#endregion
|
|
30
|
-
export { type ConfirmOptions, type InputOptions, type MultiselectOptions, type NumberOptions, type PasswordOptions, type PromptErrorType, type PromptRuntime, type SelectChoice, type SelectOptions, confirm, input, multiselect, number, password, select };
|
|
31
|
-
//# sourceMappingURL=index.d.cts.map
|
|
96
|
+
export { type ConfirmOptions, type InputOptions, type MultiselectOptions, type NumberOptions, type PasswordOptions, type PromptErrorType, type PromptRuntime, type SelectChoice, type SelectOptions, confirm, input, multiselect, number, password, select };
|
|
@@ -1,6 +1,72 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ConfirmOptions, InputOptions, MultiselectOptions, NumberOptions, PasswordOptions, PromptErrorType, SelectChoice, SelectOptions } from "../../prompts/types.mjs";
|
|
1
|
+
import { i as ok, t as err } from "../../index-BhGNDjPq.mjs";
|
|
3
2
|
|
|
3
|
+
//#region src/lib/prompts/core/types.d.ts
|
|
4
|
+
type PromptResultLike<T> = ReturnType<typeof err<string>> | ReturnType<typeof ok<T>>;
|
|
5
|
+
type KeyName = "character" | "enter" | "backspace" | "delete" | "up" | "down" | "left" | "right" | "ctrl_left" | "ctrl_right" | "shift_left" | "shift_right" | "space" | "escape" | "ctrl_c" | "ctrl_backspace" | "ctrl_a" | "home" | "end" | "shift_ctrl_left" | "shift_ctrl_right" | "tab";
|
|
6
|
+
type Key = {
|
|
7
|
+
name: KeyName;
|
|
8
|
+
value?: string;
|
|
9
|
+
};
|
|
10
|
+
type PromptRuntime = {
|
|
11
|
+
isInteractive: () => boolean;
|
|
12
|
+
init: () => PromptResultLike<void>;
|
|
13
|
+
readKey: () => Promise<PromptResultLike<Key>>;
|
|
14
|
+
render: (frame: string) => PromptResultLike<void>;
|
|
15
|
+
done: (frame: string) => PromptResultLike<void>;
|
|
16
|
+
close: () => PromptResultLike<void>;
|
|
17
|
+
interrupt?: (message: string) => PromptResultLike<undefined>;
|
|
18
|
+
};
|
|
19
|
+
//#endregion
|
|
20
|
+
//#region src/lib/prompts/types.d.ts
|
|
21
|
+
type PromptErrorType = "PromptEnvironmentError" | "PromptValidationError" | "PromptCancelledError" | "PromptIOError" | (string & {});
|
|
22
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
23
|
+
type Validate<TValue> = ((value: TValue) => MaybePromise<string | null | undefined>) | undefined;
|
|
24
|
+
type Transform<TValue> = ((value: TValue) => MaybePromise<TValue>) | undefined;
|
|
25
|
+
type BasePromptOptions<TValue> = {
|
|
26
|
+
message: string;
|
|
27
|
+
validate?: Validate<TValue>;
|
|
28
|
+
transform?: Transform<TValue>;
|
|
29
|
+
};
|
|
30
|
+
type InputOptions = BasePromptOptions<string> & {
|
|
31
|
+
defaultValue?: string;
|
|
32
|
+
placeholder?: string;
|
|
33
|
+
required?: boolean;
|
|
34
|
+
requiredMessage?: string;
|
|
35
|
+
};
|
|
36
|
+
type PasswordOptions = InputOptions & {
|
|
37
|
+
mask?: string;
|
|
38
|
+
};
|
|
39
|
+
type ConfirmOptions = BasePromptOptions<boolean> & {
|
|
40
|
+
defaultValue?: boolean;
|
|
41
|
+
activeLabel?: string;
|
|
42
|
+
inactiveLabel?: string;
|
|
43
|
+
};
|
|
44
|
+
type NumberOptions = BasePromptOptions<number> & {
|
|
45
|
+
defaultValue?: number;
|
|
46
|
+
min?: number;
|
|
47
|
+
max?: number;
|
|
48
|
+
requiredMessage?: string;
|
|
49
|
+
invalidMessage?: string;
|
|
50
|
+
minMessage?: string;
|
|
51
|
+
maxMessage?: string;
|
|
52
|
+
};
|
|
53
|
+
type SelectChoice<TValue extends string> = {
|
|
54
|
+
value: TValue;
|
|
55
|
+
label?: string;
|
|
56
|
+
hint?: string;
|
|
57
|
+
disabled?: boolean;
|
|
58
|
+
};
|
|
59
|
+
type SelectOptions<TValue extends string> = BasePromptOptions<TValue> & {
|
|
60
|
+
choices: readonly [SelectChoice<TValue>, ...SelectChoice<TValue>[]];
|
|
61
|
+
defaultValue?: TValue;
|
|
62
|
+
};
|
|
63
|
+
type MultiselectOptions<TValue extends string> = BasePromptOptions<TValue[]> & {
|
|
64
|
+
choices: readonly [SelectChoice<TValue>, ...SelectChoice<TValue>[]];
|
|
65
|
+
defaultValue?: readonly TValue[];
|
|
66
|
+
min?: number;
|
|
67
|
+
max?: number;
|
|
68
|
+
};
|
|
69
|
+
//#endregion
|
|
4
70
|
//#region src/lib/prompts/index.d.ts
|
|
5
71
|
declare const input: (options: InputOptions, runtime?: PromptRuntime) => Promise<readonly [null, string] | readonly [{
|
|
6
72
|
readonly type: string;
|
|
@@ -27,5 +93,4 @@ declare const multiselect: <TValue extends string>(options: MultiselectOptions<T
|
|
|
27
93
|
readonly message: string;
|
|
28
94
|
}, null] | readonly [null, TValue[]]>;
|
|
29
95
|
//#endregion
|
|
30
|
-
export { type ConfirmOptions, type InputOptions, type MultiselectOptions, type NumberOptions, type PasswordOptions, type PromptErrorType, type PromptRuntime, type SelectChoice, type SelectOptions, confirm, input, multiselect, number, password, select };
|
|
31
|
-
//# sourceMappingURL=index.d.mts.map
|
|
96
|
+
export { type ConfirmOptions, type InputOptions, type MultiselectOptions, type NumberOptions, type PasswordOptions, type PromptErrorType, type PromptRuntime, type SelectChoice, type SelectOptions, confirm, input, multiselect, number, password, select };
|