semola 0.5.1 → 0.5.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.
- package/README.md +144 -29
- package/dist/api/core/index.cjs +206 -0
- package/dist/api/core/index.d.cts +21 -0
- package/dist/api/core/index.d.cts.map +1 -0
- package/dist/api/core/index.d.mts +21 -0
- package/dist/api/core/index.d.mts.map +1 -0
- package/dist/api/core/index.mjs +208 -0
- package/dist/api/core/index.mjs.map +1 -0
- package/dist/api/core/types.d.cts +107 -0
- package/dist/api/core/types.d.cts.map +1 -0
- package/dist/api/core/types.d.mts +107 -0
- package/dist/api/core/types.d.mts.map +1 -0
- package/dist/api/middleware/index.cjs +8 -0
- package/dist/api/middleware/index.d.cts +11 -0
- package/dist/api/middleware/index.d.cts.map +1 -0
- package/dist/api/middleware/index.d.mts +11 -0
- package/dist/api/middleware/index.d.mts.map +1 -0
- package/dist/api/middleware/index.mjs +10 -0
- package/dist/api/middleware/index.mjs.map +1 -0
- package/dist/api/middleware/types.d.cts +16 -0
- package/dist/api/middleware/types.d.cts.map +1 -0
- package/dist/api/middleware/types.d.mts +16 -0
- package/dist/api/middleware/types.d.mts.map +1 -0
- package/dist/api/openapi/index.cjs +254 -0
- package/dist/api/openapi/index.mjs +256 -0
- package/dist/api/openapi/index.mjs.map +1 -0
- package/dist/api/openapi/types.d.cts +60 -0
- package/dist/api/openapi/types.d.cts.map +1 -0
- package/dist/api/openapi/types.d.mts +60 -0
- package/dist/api/openapi/types.d.mts.map +1 -0
- package/dist/api/validation/index.cjs +64 -0
- package/dist/api/validation/index.mjs +61 -0
- package/dist/api/validation/index.mjs.map +1 -0
- package/dist/cache/types.d.cts +17 -0
- package/dist/cache/types.d.cts.map +1 -0
- package/dist/cache/types.d.mts +17 -0
- package/dist/cache/types.d.mts.map +1 -0
- package/dist/cron/builder/index.cjs +166 -0
- package/dist/cron/builder/index.d.cts +28 -0
- package/dist/cron/builder/index.d.cts.map +1 -0
- package/dist/cron/builder/index.d.mts +28 -0
- package/dist/cron/builder/index.d.mts.map +1 -0
- package/dist/cron/builder/index.mjs +163 -0
- package/dist/cron/builder/index.mjs.map +1 -0
- package/dist/cron/builder/types.cjs +27 -0
- package/dist/cron/builder/types.d.cts +79 -0
- package/dist/cron/builder/types.d.cts.map +1 -0
- package/dist/cron/builder/types.d.mts +79 -0
- package/dist/cron/builder/types.d.mts.map +1 -0
- package/dist/cron/builder/types.mjs +28 -0
- package/dist/cron/builder/types.mjs.map +1 -0
- package/dist/cron/core/index.cjs +308 -0
- package/dist/cron/core/index.d.cts +39 -0
- package/dist/cron/core/index.d.cts.map +1 -0
- package/dist/cron/core/index.d.mts +39 -0
- package/dist/cron/core/index.d.mts.map +1 -0
- package/dist/cron/core/index.mjs +310 -0
- package/dist/cron/core/index.mjs.map +1 -0
- package/dist/cron/core/scanner.cjs +237 -0
- package/dist/cron/core/scanner.mjs +238 -0
- package/dist/cron/core/scanner.mjs.map +1 -0
- package/dist/cron/core/types.d.cts +11 -0
- package/dist/cron/core/types.d.cts.map +1 -0
- package/dist/cron/core/types.d.mts +11 -0
- package/dist/cron/core/types.d.mts.map +1 -0
- package/dist/errors/types.d.cts +5 -0
- package/dist/errors/types.d.cts.map +1 -0
- package/dist/errors/types.d.mts +5 -0
- package/dist/errors/types.d.mts.map +1 -0
- package/dist/i18n/types.d.cts +13 -0
- package/dist/i18n/types.d.cts.map +1 -0
- package/dist/i18n/types.d.mts +13 -0
- package/dist/i18n/types.d.mts.map +1 -0
- package/dist/lib/api/index.cjs +5 -0
- package/dist/lib/api/index.d.cts +5 -0
- package/dist/lib/api/index.d.mts +5 -0
- package/dist/lib/api/index.mjs +3 -0
- package/dist/lib/cache/index.cjs +74 -0
- package/dist/lib/cache/index.d.cts +36 -0
- package/dist/lib/cache/index.d.cts.map +1 -0
- package/dist/lib/cache/index.d.mts +36 -0
- package/dist/lib/cache/index.d.mts.map +1 -0
- package/dist/lib/cache/index.mjs +75 -0
- package/dist/lib/cache/index.mjs.map +1 -0
- package/dist/lib/cron/index.cjs +13 -0
- package/dist/lib/cron/index.d.cts +4 -0
- package/dist/lib/cron/index.d.mts +4 -0
- package/dist/lib/cron/index.mjs +4 -0
- package/dist/lib/errors/index.cjs +30 -0
- package/dist/lib/errors/index.d.cts +13 -0
- package/dist/lib/errors/index.d.cts.map +1 -0
- package/dist/lib/errors/index.d.mts +13 -0
- package/dist/lib/errors/index.d.mts.map +1 -0
- package/dist/lib/errors/index.mjs +28 -0
- package/dist/lib/errors/index.mjs.map +1 -0
- package/dist/lib/i18n/index.cjs +42 -0
- package/dist/lib/i18n/index.d.cts +20 -0
- package/dist/lib/i18n/index.d.cts.map +1 -0
- package/dist/lib/i18n/index.d.mts +20 -0
- package/dist/lib/i18n/index.d.mts.map +1 -0
- package/dist/lib/i18n/index.mjs +43 -0
- package/dist/lib/i18n/index.mjs.map +1 -0
- package/dist/lib/logging/index.cjs +18 -0
- package/dist/lib/logging/index.d.cts +7 -0
- package/dist/lib/logging/index.d.mts +7 -0
- package/dist/lib/logging/index.mjs +5 -0
- package/dist/lib/orm/index.cjs +20 -0
- package/dist/lib/orm/index.d.cts +7 -0
- package/dist/lib/orm/index.d.mts +7 -0
- package/dist/lib/orm/index.mjs +6 -0
- package/dist/lib/policy/index.cjs +99 -0
- package/dist/lib/policy/index.d.cts +21 -0
- package/dist/lib/policy/index.d.cts.map +1 -0
- package/dist/lib/policy/index.d.mts +21 -0
- package/dist/lib/policy/index.d.mts.map +1 -0
- package/dist/lib/policy/index.mjs +81 -0
- package/dist/lib/policy/index.mjs.map +1 -0
- package/dist/lib/prompts/index.cjs +409 -0
- package/dist/lib/prompts/index.d.cts +31 -0
- package/dist/lib/prompts/index.d.cts.map +1 -0
- package/dist/lib/prompts/index.d.mts +31 -0
- package/dist/lib/prompts/index.d.mts.map +1 -0
- package/dist/lib/prompts/index.mjs +405 -0
- package/dist/lib/prompts/index.mjs.map +1 -0
- package/dist/lib/pubsub/index.cjs +117 -0
- package/dist/lib/pubsub/index.d.cts +36 -0
- package/dist/lib/pubsub/index.d.cts.map +1 -0
- package/dist/lib/pubsub/index.d.mts +36 -0
- package/dist/lib/pubsub/index.d.mts.map +1 -0
- package/dist/lib/pubsub/index.mjs +118 -0
- package/dist/lib/pubsub/index.mjs.map +1 -0
- package/dist/lib/queue/index.cjs +182 -0
- package/dist/lib/queue/index.d.cts +32 -0
- package/dist/lib/queue/index.d.cts.map +1 -0
- package/dist/lib/queue/index.d.mts +32 -0
- package/dist/lib/queue/index.d.mts.map +1 -0
- package/dist/lib/queue/index.mjs +183 -0
- package/dist/lib/queue/index.mjs.map +1 -0
- package/dist/lib/workflow/index.cjs +534 -0
- package/dist/lib/workflow/index.d.cts +7 -0
- package/dist/lib/workflow/index.d.cts.map +1 -0
- package/dist/lib/workflow/index.d.mts +7 -0
- package/dist/lib/workflow/index.d.mts.map +1 -0
- package/dist/lib/workflow/index.mjs +535 -0
- package/dist/lib/workflow/index.mjs.map +1 -0
- package/dist/logging/core/index.cjs +99 -0
- package/dist/logging/core/index.d.cts +26 -0
- package/dist/logging/core/index.d.cts.map +1 -0
- package/dist/logging/core/index.d.mts +26 -0
- package/dist/logging/core/index.d.mts.map +1 -0
- package/dist/logging/core/index.mjs +99 -0
- package/dist/logging/core/index.mjs.map +1 -0
- package/dist/logging/core/types.cjs +10 -0
- package/dist/logging/core/types.d.cts +22 -0
- package/dist/logging/core/types.d.cts.map +1 -0
- package/dist/logging/core/types.d.mts +22 -0
- package/dist/logging/core/types.d.mts.map +1 -0
- package/dist/logging/core/types.mjs +12 -0
- package/dist/logging/core/types.mjs.map +1 -0
- package/dist/logging/formatter/index.cjs +119 -0
- package/dist/logging/formatter/index.d.cts +27 -0
- package/dist/logging/formatter/index.d.cts.map +1 -0
- package/dist/logging/formatter/index.d.mts +27 -0
- package/dist/logging/formatter/index.d.mts.map +1 -0
- package/dist/logging/formatter/index.mjs +115 -0
- package/dist/logging/formatter/index.mjs.map +1 -0
- package/dist/logging/formatter/types.d.cts +5 -0
- package/dist/logging/formatter/types.d.cts.map +1 -0
- package/dist/logging/formatter/types.d.mts +5 -0
- package/dist/logging/formatter/types.d.mts.map +1 -0
- package/dist/logging/provider/index.cjs +165 -0
- package/dist/logging/provider/index.d.cts +28 -0
- package/dist/logging/provider/index.d.cts.map +1 -0
- package/dist/logging/provider/index.d.mts +28 -0
- package/dist/logging/provider/index.d.mts.map +1 -0
- package/dist/logging/provider/index.mjs +165 -0
- package/dist/logging/provider/index.mjs.map +1 -0
- package/dist/logging/provider/types.d.cts +23 -0
- package/dist/logging/provider/types.d.cts.map +1 -0
- package/dist/logging/provider/types.d.mts +23 -0
- package/dist/logging/provider/types.d.mts.map +1 -0
- package/dist/node_modules/@standard-schema/spec/dist/index.d.cts +80 -0
- package/dist/node_modules/@standard-schema/spec/dist/index.d.cts.map +1 -0
- package/dist/node_modules/@standard-schema/spec/dist/index.d.mts +80 -0
- package/dist/node_modules/@standard-schema/spec/dist/index.d.mts.map +1 -0
- package/dist/orm/column.cjs +137 -0
- package/dist/orm/column.d.cts +121 -0
- package/dist/orm/column.d.cts.map +1 -0
- package/dist/orm/column.d.mts +121 -0
- package/dist/orm/column.d.mts.map +1 -0
- package/dist/orm/column.mjs +132 -0
- package/dist/orm/column.mjs.map +1 -0
- package/dist/orm/dialect/index.cjs +14 -0
- package/dist/orm/dialect/index.mjs +16 -0
- package/dist/orm/dialect/index.mjs.map +1 -0
- package/dist/orm/dialect/mysql.cjs +31 -0
- package/dist/orm/dialect/mysql.mjs +33 -0
- package/dist/orm/dialect/mysql.mjs.map +1 -0
- package/dist/orm/dialect/postgres.cjs +23 -0
- package/dist/orm/dialect/postgres.mjs +25 -0
- package/dist/orm/dialect/postgres.mjs.map +1 -0
- package/dist/orm/dialect/sqlite.cjs +31 -0
- package/dist/orm/dialect/sqlite.mjs +33 -0
- package/dist/orm/dialect/sqlite.mjs.map +1 -0
- package/dist/orm/dialect/utils.cjs +8 -0
- package/dist/orm/dialect/utils.mjs +10 -0
- package/dist/orm/dialect/utils.mjs.map +1 -0
- package/dist/orm/internal/table-columns.cjs +31 -0
- package/dist/orm/internal/table-columns.mjs +32 -0
- package/dist/orm/internal/table-columns.mjs.map +1 -0
- package/dist/orm/internal/table-lookup.cjs +35 -0
- package/dist/orm/internal/table-lookup.mjs +35 -0
- package/dist/orm/internal/table-lookup.mjs.map +1 -0
- package/dist/orm/internal/table-relations.cjs +28 -0
- package/dist/orm/internal/table-relations.mjs +29 -0
- package/dist/orm/internal/table-relations.mjs.map +1 -0
- package/dist/orm/migration/config.cjs +7 -0
- package/dist/orm/migration/config.d.cts +7 -0
- package/dist/orm/migration/config.d.cts.map +1 -0
- package/dist/orm/migration/config.d.mts +7 -0
- package/dist/orm/migration/config.d.mts.map +1 -0
- package/dist/orm/migration/config.mjs +8 -0
- package/dist/orm/migration/config.mjs.map +1 -0
- package/dist/orm/migration/types.d.cts +20 -0
- package/dist/orm/migration/types.d.cts.map +1 -0
- package/dist/orm/migration/types.d.mts +20 -0
- package/dist/orm/migration/types.d.mts.map +1 -0
- package/dist/orm/orm.cjs +41 -0
- package/dist/orm/orm.d.cts +18 -0
- package/dist/orm/orm.d.cts.map +1 -0
- package/dist/orm/orm.d.mts +18 -0
- package/dist/orm/orm.d.mts.map +1 -0
- package/dist/orm/orm.mjs +43 -0
- package/dist/orm/orm.mjs.map +1 -0
- package/dist/orm/relation.cjs +18 -0
- package/dist/orm/relation.d.cts +8 -0
- package/dist/orm/relation.d.cts.map +1 -0
- package/dist/orm/relation.d.mts +8 -0
- package/dist/orm/relation.d.mts.map +1 -0
- package/dist/orm/relation.mjs +19 -0
- package/dist/orm/relation.mjs.map +1 -0
- package/dist/orm/runtime/builders/mutations.cjs +29 -0
- package/dist/orm/runtime/builders/mutations.mjs +28 -0
- package/dist/orm/runtime/builders/mutations.mjs.map +1 -0
- package/dist/orm/runtime/builders/select.cjs +18 -0
- package/dist/orm/runtime/builders/select.mjs +19 -0
- package/dist/orm/runtime/builders/select.mjs.map +1 -0
- package/dist/orm/runtime/client.cjs +90 -0
- package/dist/orm/runtime/client.mjs +92 -0
- package/dist/orm/runtime/client.mjs.map +1 -0
- package/dist/orm/runtime/context.cjs +49 -0
- package/dist/orm/runtime/context.mjs +51 -0
- package/dist/orm/runtime/context.mjs.map +1 -0
- package/dist/orm/runtime/dialect/index.cjs +11 -0
- package/dist/orm/runtime/dialect/index.mjs +13 -0
- package/dist/orm/runtime/dialect/index.mjs.map +1 -0
- package/dist/orm/runtime/dialect/mysql.cjs +95 -0
- package/dist/orm/runtime/dialect/mysql.mjs +97 -0
- package/dist/orm/runtime/dialect/mysql.mjs.map +1 -0
- package/dist/orm/runtime/dialect/postgres.cjs +51 -0
- package/dist/orm/runtime/dialect/postgres.mjs +53 -0
- package/dist/orm/runtime/dialect/postgres.mjs.map +1 -0
- package/dist/orm/runtime/dialect/sqlite.cjs +4 -0
- package/dist/orm/runtime/dialect/sqlite.mjs +7 -0
- package/dist/orm/runtime/dialect/sqlite.mjs.map +1 -0
- package/dist/orm/runtime/errors.cjs +19 -0
- package/dist/orm/runtime/errors.mjs +21 -0
- package/dist/orm/runtime/errors.mjs.map +1 -0
- package/dist/orm/runtime/hydrate/many.cjs +46 -0
- package/dist/orm/runtime/hydrate/many.mjs +48 -0
- package/dist/orm/runtime/hydrate/many.mjs.map +1 -0
- package/dist/orm/runtime/hydrate/one.cjs +38 -0
- package/dist/orm/runtime/hydrate/one.mjs +40 -0
- package/dist/orm/runtime/hydrate/one.mjs.map +1 -0
- package/dist/orm/runtime/hydrate.cjs +49 -0
- package/dist/orm/runtime/hydrate.mjs +51 -0
- package/dist/orm/runtime/hydrate.mjs.map +1 -0
- package/dist/orm/runtime/rows.cjs +30 -0
- package/dist/orm/runtime/rows.mjs +31 -0
- package/dist/orm/runtime/rows.mjs.map +1 -0
- package/dist/orm/runtime/utils.cjs +27 -0
- package/dist/orm/runtime/utils.mjs +27 -0
- package/dist/orm/runtime/utils.mjs.map +1 -0
- package/dist/orm/sql/parse-array.cjs +64 -0
- package/dist/orm/sql/parse-array.mjs +66 -0
- package/dist/orm/sql/parse-array.mjs.map +1 -0
- package/dist/orm/sql/plan/select.cjs +36 -0
- package/dist/orm/sql/plan/select.mjs +38 -0
- package/dist/orm/sql/plan/select.mjs.map +1 -0
- package/dist/orm/sql/plan/where/operators.cjs +95 -0
- package/dist/orm/sql/plan/where/operators.mjs +97 -0
- package/dist/orm/sql/plan/where/operators.mjs.map +1 -0
- package/dist/orm/sql/plan/where.cjs +59 -0
- package/dist/orm/sql/plan/where.mjs +61 -0
- package/dist/orm/sql/plan/where.mjs.map +1 -0
- package/dist/orm/sql/serialize/clauses.cjs +36 -0
- package/dist/orm/sql/serialize/clauses.mjs +37 -0
- package/dist/orm/sql/serialize/clauses.mjs.map +1 -0
- package/dist/orm/sql/serialize/joins.cjs +31 -0
- package/dist/orm/sql/serialize/joins.mjs +33 -0
- package/dist/orm/sql/serialize/joins.mjs.map +1 -0
- package/dist/orm/sql/serialize/values.cjs +30 -0
- package/dist/orm/sql/serialize/values.mjs +32 -0
- package/dist/orm/sql/serialize/values.mjs.map +1 -0
- package/dist/orm/sql/serialize/where/predicate.cjs +73 -0
- package/dist/orm/sql/serialize/where/predicate.mjs +75 -0
- package/dist/orm/sql/serialize/where/predicate.mjs.map +1 -0
- package/dist/orm/sql/serialize/where/tree.cjs +26 -0
- package/dist/orm/sql/serialize/where/tree.mjs +28 -0
- package/dist/orm/sql/serialize/where/tree.mjs.map +1 -0
- package/dist/orm/sql/serialize/where.cjs +10 -0
- package/dist/orm/sql/serialize/where.mjs +12 -0
- package/dist/orm/sql/serialize/where.mjs.map +1 -0
- package/dist/orm/sql/serialize.cjs +24 -0
- package/dist/orm/sql/serialize.mjs +25 -0
- package/dist/orm/sql/serialize.mjs.map +1 -0
- package/dist/orm/table.cjs +12 -0
- package/dist/orm/table.d.cts +12 -0
- package/dist/orm/table.d.cts.map +1 -0
- package/dist/orm/table.d.mts +12 -0
- package/dist/orm/table.d.mts.map +1 -0
- package/dist/orm/table.mjs +14 -0
- package/dist/orm/table.mjs.map +1 -0
- package/dist/orm/types.d.cts +183 -0
- package/dist/orm/types.d.cts.map +1 -0
- package/dist/orm/types.d.mts +183 -0
- package/dist/orm/types.d.mts.map +1 -0
- package/dist/policy/helpers.cjs +206 -0
- package/dist/policy/helpers.d.cts +50 -0
- package/dist/policy/helpers.d.cts.map +1 -0
- package/dist/policy/helpers.d.mts +50 -0
- package/dist/policy/helpers.d.mts.map +1 -0
- package/dist/policy/helpers.mjs +190 -0
- package/dist/policy/helpers.mjs.map +1 -0
- package/dist/policy/types.d.cts +16 -0
- package/dist/policy/types.d.cts.map +1 -0
- package/dist/policy/types.d.mts +16 -0
- package/dist/policy/types.d.mts.map +1 -0
- package/dist/prompts/core/keys.cjs +165 -0
- package/dist/prompts/core/keys.mjs +167 -0
- package/dist/prompts/core/keys.mjs.map +1 -0
- package/dist/prompts/core/runtime.cjs +104 -0
- package/dist/prompts/core/runtime.mjs +106 -0
- package/dist/prompts/core/runtime.mjs.map +1 -0
- package/dist/prompts/core/session.cjs +98 -0
- package/dist/prompts/core/session.mjs +100 -0
- package/dist/prompts/core/session.mjs.map +1 -0
- package/dist/prompts/core/types.d.cts +21 -0
- package/dist/prompts/core/types.d.cts.map +1 -0
- package/dist/prompts/core/types.d.mts +21 -0
- package/dist/prompts/core/types.d.mts.map +1 -0
- package/dist/prompts/types.d.cts +52 -0
- package/dist/prompts/types.d.cts.map +1 -0
- package/dist/prompts/types.d.mts +52 -0
- package/dist/prompts/types.d.mts.map +1 -0
- package/dist/pubsub/types.d.cts +10 -0
- package/dist/pubsub/types.d.cts.map +1 -0
- package/dist/pubsub/types.d.mts +10 -0
- package/dist/pubsub/types.d.mts.map +1 -0
- package/dist/queue/types.d.cts +47 -0
- package/dist/queue/types.d.cts.map +1 -0
- package/dist/queue/types.d.mts +47 -0
- package/dist/queue/types.d.mts.map +1 -0
- package/dist/workflow/types.d.cts +83 -0
- package/dist/workflow/types.d.cts.map +1 -0
- package/dist/workflow/types.d.mts +83 -0
- package/dist/workflow/types.d.mts.map +1 -0
- package/package.json +112 -16
- package/dist/lib/api/core/index.d.ts +0 -15
- package/dist/lib/api/core/index.d.ts.map +0 -1
- package/dist/lib/api/core/index.js +0 -218
- package/dist/lib/api/core/index.js.map +0 -1
- package/dist/lib/api/core/index.test.d.ts +0 -2
- package/dist/lib/api/core/index.test.d.ts.map +0 -1
- package/dist/lib/api/core/index.test.js +0 -219
- package/dist/lib/api/core/index.test.js.map +0 -1
- package/dist/lib/api/core/types.d.ts +0 -109
- package/dist/lib/api/core/types.d.ts.map +0 -1
- package/dist/lib/api/core/types.js +0 -2
- package/dist/lib/api/core/types.js.map +0 -1
- package/dist/lib/api/index.d.ts +0 -5
- package/dist/lib/api/index.d.ts.map +0 -1
- package/dist/lib/api/index.js +0 -3
- package/dist/lib/api/index.js.map +0 -1
- package/dist/lib/api/middleware/index.d.ts +0 -7
- package/dist/lib/api/middleware/index.d.ts.map +0 -1
- package/dist/lib/api/middleware/index.js +0 -7
- package/dist/lib/api/middleware/index.js.map +0 -1
- package/dist/lib/api/middleware/index.test.d.ts +0 -2
- package/dist/lib/api/middleware/index.test.d.ts.map +0 -1
- package/dist/lib/api/middleware/index.test.js +0 -67
- package/dist/lib/api/middleware/index.test.js.map +0 -1
- package/dist/lib/api/middleware/types.d.ts +0 -12
- package/dist/lib/api/middleware/types.d.ts.map +0 -1
- package/dist/lib/api/middleware/types.js +0 -2
- package/dist/lib/api/middleware/types.js.map +0 -1
- package/dist/lib/api/openapi/index.d.ts +0 -31
- package/dist/lib/api/openapi/index.d.ts.map +0 -1
- package/dist/lib/api/openapi/index.js +0 -284
- package/dist/lib/api/openapi/index.js.map +0 -1
- package/dist/lib/api/openapi/index.test.d.ts +0 -2
- package/dist/lib/api/openapi/index.test.d.ts.map +0 -1
- package/dist/lib/api/openapi/index.test.js +0 -359
- package/dist/lib/api/openapi/index.test.js.map +0 -1
- package/dist/lib/api/openapi/types.d.ts +0 -57
- package/dist/lib/api/openapi/types.d.ts.map +0 -1
- package/dist/lib/api/openapi/types.js +0 -5
- package/dist/lib/api/openapi/types.js.map +0 -1
- package/dist/lib/api/validation/index.d.ts +0 -33
- package/dist/lib/api/validation/index.d.ts.map +0 -1
- package/dist/lib/api/validation/index.js +0 -92
- package/dist/lib/api/validation/index.js.map +0 -1
- package/dist/lib/api/validation/index.test.d.ts +0 -2
- package/dist/lib/api/validation/index.test.d.ts.map +0 -1
- package/dist/lib/api/validation/index.test.js +0 -135
- package/dist/lib/api/validation/index.test.js.map +0 -1
- package/dist/lib/cache/index.d.ts +0 -25
- package/dist/lib/cache/index.d.ts.map +0 -1
- package/dist/lib/cache/index.js +0 -62
- package/dist/lib/cache/index.js.map +0 -1
- package/dist/lib/cache/index.test.d.ts +0 -2
- package/dist/lib/cache/index.test.d.ts.map +0 -1
- package/dist/lib/cache/index.test.js +0 -314
- package/dist/lib/cache/index.test.js.map +0 -1
- package/dist/lib/cache/types.d.ts +0 -5
- package/dist/lib/cache/types.d.ts.map +0 -1
- package/dist/lib/cache/types.js +0 -2
- package/dist/lib/cache/types.js.map +0 -1
- package/dist/lib/errors/index.d.ts +0 -9
- package/dist/lib/errors/index.d.ts.map +0 -1
- package/dist/lib/errors/index.js +0 -25
- package/dist/lib/errors/index.js.map +0 -1
- package/dist/lib/errors/index.test.d.ts +0 -2
- package/dist/lib/errors/index.test.d.ts.map +0 -1
- package/dist/lib/errors/index.test.js +0 -197
- package/dist/lib/errors/index.test.js.map +0 -1
- package/dist/lib/errors/types.d.ts +0 -2
- package/dist/lib/errors/types.d.ts.map +0 -1
- package/dist/lib/errors/types.js +0 -2
- package/dist/lib/errors/types.js.map +0 -1
- package/dist/lib/i18n/index.d.ts +0 -18
- package/dist/lib/i18n/index.d.ts.map +0 -1
- package/dist/lib/i18n/index.js +0 -38
- package/dist/lib/i18n/index.js.map +0 -1
- package/dist/lib/i18n/index.test.d.ts +0 -2
- package/dist/lib/i18n/index.test.d.ts.map +0 -1
- package/dist/lib/i18n/index.test.js +0 -402
- package/dist/lib/i18n/index.test.js.map +0 -1
- package/dist/lib/i18n/types.d.ts +0 -15
- package/dist/lib/i18n/types.d.ts.map +0 -1
- package/dist/lib/i18n/types.js +0 -2
- package/dist/lib/i18n/types.js.map +0 -1
- package/dist/lib/policy/index.d.ts +0 -9
- package/dist/lib/policy/index.d.ts.map +0 -1
- package/dist/lib/policy/index.js +0 -51
- package/dist/lib/policy/index.js.map +0 -1
- package/dist/lib/policy/index.test.d.ts +0 -2
- package/dist/lib/policy/index.test.d.ts.map +0 -1
- package/dist/lib/policy/index.test.js +0 -328
- package/dist/lib/policy/index.test.js.map +0 -1
- package/dist/lib/policy/types.d.ts +0 -27
- package/dist/lib/policy/types.d.ts.map +0 -1
- package/dist/lib/policy/types.js +0 -2
- package/dist/lib/policy/types.js.map +0 -1
- package/dist/lib/pubsub/index.d.ts +0 -23
- package/dist/lib/pubsub/index.d.ts.map +0 -1
- package/dist/lib/pubsub/index.js +0 -55
- package/dist/lib/pubsub/index.js.map +0 -1
- package/dist/lib/pubsub/index.test.d.ts +0 -2
- package/dist/lib/pubsub/index.test.d.ts.map +0 -1
- package/dist/lib/pubsub/index.test.js +0 -550
- package/dist/lib/pubsub/index.test.js.map +0 -1
- package/dist/lib/pubsub/types.d.ts +0 -7
- package/dist/lib/pubsub/types.d.ts.map +0 -1
- package/dist/lib/pubsub/types.js +0 -2
- package/dist/lib/pubsub/types.js.map +0 -1
- package/dist/lib/queue/index.d.ts +0 -28
- package/dist/lib/queue/index.d.ts.map +0 -1
- package/dist/lib/queue/index.js +0 -211
- package/dist/lib/queue/index.js.map +0 -1
- package/dist/lib/queue/index.test.d.ts +0 -2
- package/dist/lib/queue/index.test.d.ts.map +0 -1
- package/dist/lib/queue/index.test.js +0 -740
- package/dist/lib/queue/index.test.js.map +0 -1
- package/dist/lib/queue/types.d.ts +0 -52
- package/dist/lib/queue/types.d.ts.map +0 -1
- package/dist/lib/queue/types.js +0 -2
- package/dist/lib/queue/types.js.map +0 -1
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
const require_lib_errors_index = require("../../lib/errors/index.cjs");
|
|
2
|
+
const require_keys = require("./keys.cjs");
|
|
3
|
+
//#region src/lib/prompts/core/runtime.ts
|
|
4
|
+
const HIDE_CURSOR = "\x1B[?25l";
|
|
5
|
+
const SHOW_CURSOR = "\x1B[?25h";
|
|
6
|
+
const countLines = (text) => {
|
|
7
|
+
let count = 1;
|
|
8
|
+
for (let i = 0; i < text.length; i++) if (text[i] === "\n") count += 1;
|
|
9
|
+
return count;
|
|
10
|
+
};
|
|
11
|
+
var NodePromptRuntime = class {
|
|
12
|
+
stdin;
|
|
13
|
+
stdout;
|
|
14
|
+
queue = [];
|
|
15
|
+
waiters = [];
|
|
16
|
+
initialized = false;
|
|
17
|
+
previousLines = 0;
|
|
18
|
+
buffer = "";
|
|
19
|
+
constructor(stdin = process.stdin, stdout = process.stdout) {
|
|
20
|
+
this.stdin = stdin;
|
|
21
|
+
this.stdout = stdout;
|
|
22
|
+
}
|
|
23
|
+
isInteractive() {
|
|
24
|
+
return Boolean(this.stdin.isTTY && this.stdout.isTTY && typeof this.stdin.setRawMode === "function");
|
|
25
|
+
}
|
|
26
|
+
init() {
|
|
27
|
+
if (!this.isInteractive()) return require_lib_errors_index.err("PromptEnvironmentError", "Interactive prompts require a TTY with raw mode support");
|
|
28
|
+
if (this.initialized) return require_lib_errors_index.ok(void 0);
|
|
29
|
+
const [initError] = require_lib_errors_index.mightThrowSync(() => {
|
|
30
|
+
this.stdin.setRawMode(true);
|
|
31
|
+
this.stdin.setEncoding("utf8");
|
|
32
|
+
this.stdin.resume();
|
|
33
|
+
this.stdin.on("data", this.onData);
|
|
34
|
+
this.stdout.write(HIDE_CURSOR);
|
|
35
|
+
});
|
|
36
|
+
if (initError) return require_lib_errors_index.err("PromptIOError", "Unable to initialize prompt runtime");
|
|
37
|
+
this.initialized = true;
|
|
38
|
+
return require_lib_errors_index.ok(void 0);
|
|
39
|
+
}
|
|
40
|
+
readKey() {
|
|
41
|
+
const queued = this.queue.shift();
|
|
42
|
+
if (queued) return Promise.resolve(require_lib_errors_index.ok(queued));
|
|
43
|
+
return new Promise((resolve) => {
|
|
44
|
+
this.waiters.push(resolve);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
render(frame) {
|
|
48
|
+
const [renderError] = require_lib_errors_index.mightThrowSync(() => {
|
|
49
|
+
if (this.previousLines > 1) this.stdout.write(`\u001B[${this.previousLines - 1}A`);
|
|
50
|
+
this.stdout.write("\r\x1B[J");
|
|
51
|
+
this.stdout.write(frame);
|
|
52
|
+
this.previousLines = countLines(frame);
|
|
53
|
+
});
|
|
54
|
+
if (renderError) return require_lib_errors_index.err("PromptIOError", "Unable to render prompt frame");
|
|
55
|
+
return require_lib_errors_index.ok(void 0);
|
|
56
|
+
}
|
|
57
|
+
done(frame) {
|
|
58
|
+
const [doneError] = require_lib_errors_index.mightThrowSync(() => {
|
|
59
|
+
if (this.previousLines > 1) this.stdout.write(`\u001B[${this.previousLines - 1}A`);
|
|
60
|
+
this.stdout.write("\r\x1B[J");
|
|
61
|
+
this.stdout.write(`${frame}\n`);
|
|
62
|
+
this.previousLines = 0;
|
|
63
|
+
});
|
|
64
|
+
if (doneError) return require_lib_errors_index.err("PromptIOError", "Unable to finalize prompt frame");
|
|
65
|
+
return require_lib_errors_index.ok(void 0);
|
|
66
|
+
}
|
|
67
|
+
close() {
|
|
68
|
+
if (!this.initialized) return require_lib_errors_index.ok(void 0);
|
|
69
|
+
this.initialized = false;
|
|
70
|
+
const [closeError] = require_lib_errors_index.mightThrowSync(() => {
|
|
71
|
+
this.stdin.off("data", this.onData);
|
|
72
|
+
this.stdin.setRawMode(false);
|
|
73
|
+
this.stdin.pause?.();
|
|
74
|
+
this.stdout.write(SHOW_CURSOR);
|
|
75
|
+
});
|
|
76
|
+
if (closeError) return require_lib_errors_index.err("PromptIOError", "Unable to close prompt runtime");
|
|
77
|
+
return require_lib_errors_index.ok(void 0);
|
|
78
|
+
}
|
|
79
|
+
interrupt() {
|
|
80
|
+
this.close();
|
|
81
|
+
process.exit(0);
|
|
82
|
+
}
|
|
83
|
+
onData = (chunk) => {
|
|
84
|
+
const value = typeof chunk === "string" ? chunk : chunk.toString("utf8");
|
|
85
|
+
const combined = `${this.buffer}${value}`;
|
|
86
|
+
this.buffer = "";
|
|
87
|
+
const [parseError, result] = require_lib_errors_index.mightThrowSync(() => require_keys.parseKeys(combined));
|
|
88
|
+
if (parseError || !result) {
|
|
89
|
+
for (const waiter of this.waiters.splice(0)) waiter(require_lib_errors_index.err("PromptIOError", "Failed to parse input"));
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
this.buffer = result.remaining;
|
|
93
|
+
for (const key of result.keys) {
|
|
94
|
+
const waiter = this.waiters.shift();
|
|
95
|
+
if (waiter) waiter(require_lib_errors_index.ok(key));
|
|
96
|
+
else this.queue.push(key);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
const createNodePromptRuntime = () => {
|
|
101
|
+
return new NodePromptRuntime();
|
|
102
|
+
};
|
|
103
|
+
//#endregion
|
|
104
|
+
exports.createNodePromptRuntime = createNodePromptRuntime;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { err, mightThrowSync, ok } from "../../lib/errors/index.mjs";
|
|
2
|
+
import { parseKeys } from "./keys.mjs";
|
|
3
|
+
//#region src/lib/prompts/core/runtime.ts
|
|
4
|
+
const HIDE_CURSOR = "\x1B[?25l";
|
|
5
|
+
const SHOW_CURSOR = "\x1B[?25h";
|
|
6
|
+
const countLines = (text) => {
|
|
7
|
+
let count = 1;
|
|
8
|
+
for (let i = 0; i < text.length; i++) if (text[i] === "\n") count += 1;
|
|
9
|
+
return count;
|
|
10
|
+
};
|
|
11
|
+
var NodePromptRuntime = class {
|
|
12
|
+
stdin;
|
|
13
|
+
stdout;
|
|
14
|
+
queue = [];
|
|
15
|
+
waiters = [];
|
|
16
|
+
initialized = false;
|
|
17
|
+
previousLines = 0;
|
|
18
|
+
buffer = "";
|
|
19
|
+
constructor(stdin = process.stdin, stdout = process.stdout) {
|
|
20
|
+
this.stdin = stdin;
|
|
21
|
+
this.stdout = stdout;
|
|
22
|
+
}
|
|
23
|
+
isInteractive() {
|
|
24
|
+
return Boolean(this.stdin.isTTY && this.stdout.isTTY && typeof this.stdin.setRawMode === "function");
|
|
25
|
+
}
|
|
26
|
+
init() {
|
|
27
|
+
if (!this.isInteractive()) return err("PromptEnvironmentError", "Interactive prompts require a TTY with raw mode support");
|
|
28
|
+
if (this.initialized) return ok(void 0);
|
|
29
|
+
const [initError] = mightThrowSync(() => {
|
|
30
|
+
this.stdin.setRawMode(true);
|
|
31
|
+
this.stdin.setEncoding("utf8");
|
|
32
|
+
this.stdin.resume();
|
|
33
|
+
this.stdin.on("data", this.onData);
|
|
34
|
+
this.stdout.write(HIDE_CURSOR);
|
|
35
|
+
});
|
|
36
|
+
if (initError) return err("PromptIOError", "Unable to initialize prompt runtime");
|
|
37
|
+
this.initialized = true;
|
|
38
|
+
return ok(void 0);
|
|
39
|
+
}
|
|
40
|
+
readKey() {
|
|
41
|
+
const queued = this.queue.shift();
|
|
42
|
+
if (queued) return Promise.resolve(ok(queued));
|
|
43
|
+
return new Promise((resolve) => {
|
|
44
|
+
this.waiters.push(resolve);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
render(frame) {
|
|
48
|
+
const [renderError] = mightThrowSync(() => {
|
|
49
|
+
if (this.previousLines > 1) this.stdout.write(`\u001B[${this.previousLines - 1}A`);
|
|
50
|
+
this.stdout.write("\r\x1B[J");
|
|
51
|
+
this.stdout.write(frame);
|
|
52
|
+
this.previousLines = countLines(frame);
|
|
53
|
+
});
|
|
54
|
+
if (renderError) return err("PromptIOError", "Unable to render prompt frame");
|
|
55
|
+
return ok(void 0);
|
|
56
|
+
}
|
|
57
|
+
done(frame) {
|
|
58
|
+
const [doneError] = mightThrowSync(() => {
|
|
59
|
+
if (this.previousLines > 1) this.stdout.write(`\u001B[${this.previousLines - 1}A`);
|
|
60
|
+
this.stdout.write("\r\x1B[J");
|
|
61
|
+
this.stdout.write(`${frame}\n`);
|
|
62
|
+
this.previousLines = 0;
|
|
63
|
+
});
|
|
64
|
+
if (doneError) return err("PromptIOError", "Unable to finalize prompt frame");
|
|
65
|
+
return ok(void 0);
|
|
66
|
+
}
|
|
67
|
+
close() {
|
|
68
|
+
if (!this.initialized) return ok(void 0);
|
|
69
|
+
this.initialized = false;
|
|
70
|
+
const [closeError] = mightThrowSync(() => {
|
|
71
|
+
this.stdin.off("data", this.onData);
|
|
72
|
+
this.stdin.setRawMode(false);
|
|
73
|
+
this.stdin.pause?.();
|
|
74
|
+
this.stdout.write(SHOW_CURSOR);
|
|
75
|
+
});
|
|
76
|
+
if (closeError) return err("PromptIOError", "Unable to close prompt runtime");
|
|
77
|
+
return ok(void 0);
|
|
78
|
+
}
|
|
79
|
+
interrupt() {
|
|
80
|
+
this.close();
|
|
81
|
+
process.exit(0);
|
|
82
|
+
}
|
|
83
|
+
onData = (chunk) => {
|
|
84
|
+
const value = typeof chunk === "string" ? chunk : chunk.toString("utf8");
|
|
85
|
+
const combined = `${this.buffer}${value}`;
|
|
86
|
+
this.buffer = "";
|
|
87
|
+
const [parseError, result] = mightThrowSync(() => parseKeys(combined));
|
|
88
|
+
if (parseError || !result) {
|
|
89
|
+
for (const waiter of this.waiters.splice(0)) waiter(err("PromptIOError", "Failed to parse input"));
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
this.buffer = result.remaining;
|
|
93
|
+
for (const key of result.keys) {
|
|
94
|
+
const waiter = this.waiters.shift();
|
|
95
|
+
if (waiter) waiter(ok(key));
|
|
96
|
+
else this.queue.push(key);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
const createNodePromptRuntime = () => {
|
|
101
|
+
return new NodePromptRuntime();
|
|
102
|
+
};
|
|
103
|
+
//#endregion
|
|
104
|
+
export { createNodePromptRuntime };
|
|
105
|
+
|
|
106
|
+
//# sourceMappingURL=runtime.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.mjs","names":[],"sources":["../../../src/lib/prompts/core/runtime.ts"],"sourcesContent":["import { err, mightThrowSync, ok } from \"../../errors/index.js\";\nimport { parseKeys } from \"./keys.js\";\nimport type { Key, PromptResultLike, PromptRuntime } from \"./types.js\";\n\nconst HIDE_CURSOR = \"\\u001B[?25l\";\nconst SHOW_CURSOR = \"\\u001B[?25h\";\n\nconst countLines = (text: string) => {\n let count = 1;\n\n for (let i = 0; i < text.length; i++) {\n if (text[i] === \"\\n\") {\n count += 1;\n }\n }\n\n return count;\n};\n\ntype StdinLike = {\n isTTY?: boolean;\n setRawMode: (mode: boolean) => void;\n setEncoding: (encoding: BufferEncoding) => void;\n resume: () => void;\n pause?: () => void;\n on: (event: string, listener: (chunk: Buffer | string) => void) => unknown;\n off: (event: string, listener: (chunk: Buffer | string) => void) => unknown;\n};\n\ntype StdoutLike = {\n isTTY?: boolean;\n write: (chunk: string) => boolean;\n};\n\nexport class NodePromptRuntime implements PromptRuntime {\n private readonly stdin: StdinLike;\n private readonly stdout: StdoutLike;\n private readonly queue: Key[] = [];\n private readonly waiters: Array<(result: PromptResultLike<Key>) => void> = [];\n private initialized = false;\n private previousLines = 0;\n private buffer = \"\";\n\n public constructor(\n stdin: StdinLike = process.stdin,\n stdout: StdoutLike = process.stdout,\n ) {\n this.stdin = stdin;\n this.stdout = stdout;\n }\n\n public isInteractive() {\n return Boolean(\n this.stdin.isTTY &&\n this.stdout.isTTY &&\n typeof this.stdin.setRawMode === \"function\",\n );\n }\n\n public init() {\n if (!this.isInteractive()) {\n return err(\n \"PromptEnvironmentError\",\n \"Interactive prompts require a TTY with raw mode support\",\n );\n }\n\n if (this.initialized) {\n return ok(undefined);\n }\n\n const [initError] = mightThrowSync(() => {\n this.stdin.setRawMode(true);\n this.stdin.setEncoding(\"utf8\");\n this.stdin.resume();\n this.stdin.on(\"data\", this.onData);\n this.stdout.write(HIDE_CURSOR);\n });\n\n if (initError) {\n return err(\"PromptIOError\", \"Unable to initialize prompt runtime\");\n }\n\n this.initialized = true;\n return ok(undefined);\n }\n\n public readKey(): Promise<PromptResultLike<Key>> {\n const queued = this.queue.shift();\n\n if (queued) {\n return Promise.resolve(ok(queued));\n }\n\n return new Promise<PromptResultLike<Key>>((resolve) => {\n this.waiters.push(resolve);\n });\n }\n\n public render(frame: string) {\n const [renderError] = mightThrowSync(() => {\n if (this.previousLines > 1) {\n this.stdout.write(`\\u001B[${this.previousLines - 1}A`);\n }\n\n this.stdout.write(\"\\r\\u001B[J\");\n this.stdout.write(frame);\n\n this.previousLines = countLines(frame);\n });\n\n if (renderError) {\n return err(\"PromptIOError\", \"Unable to render prompt frame\");\n }\n\n return ok(undefined);\n }\n\n public done(frame: string) {\n const [doneError] = mightThrowSync(() => {\n if (this.previousLines > 1) {\n this.stdout.write(`\\u001B[${this.previousLines - 1}A`);\n }\n\n this.stdout.write(\"\\r\\u001B[J\");\n this.stdout.write(`${frame}\\n`);\n this.previousLines = 0;\n });\n\n if (doneError) {\n return err(\"PromptIOError\", \"Unable to finalize prompt frame\");\n }\n\n return ok(undefined);\n }\n\n public close() {\n if (!this.initialized) {\n return ok(undefined);\n }\n\n this.initialized = false;\n\n const [closeError] = mightThrowSync(() => {\n this.stdin.off(\"data\", this.onData);\n this.stdin.setRawMode(false);\n this.stdin.pause?.();\n this.stdout.write(SHOW_CURSOR);\n });\n\n if (closeError) {\n return err(\"PromptIOError\", \"Unable to close prompt runtime\");\n }\n\n return ok(undefined);\n }\n\n public interrupt(): never {\n this.close();\n process.exit(0);\n }\n\n private onData = (chunk: Buffer | string) => {\n const value = typeof chunk === \"string\" ? chunk : chunk.toString(\"utf8\");\n const combined = `${this.buffer}${value}`;\n this.buffer = \"\";\n\n const [parseError, result] = mightThrowSync(() => parseKeys(combined));\n\n if (parseError || !result) {\n for (const waiter of this.waiters.splice(0)) {\n waiter(err(\"PromptIOError\", \"Failed to parse input\"));\n }\n\n return;\n }\n\n this.buffer = result.remaining;\n\n for (const key of result.keys) {\n const waiter = this.waiters.shift();\n\n if (waiter) {\n waiter(ok(key));\n } else {\n this.queue.push(key);\n }\n }\n };\n}\n\nexport const createNodePromptRuntime = () => {\n return new NodePromptRuntime();\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
const require_lib_errors_index = require("../../lib/errors/index.cjs");
|
|
2
|
+
//#region src/lib/prompts/core/session.ts
|
|
3
|
+
const CANCEL_MESSAGE = "Interrupted, bye!";
|
|
4
|
+
const resolveOutput = async (options, value) => {
|
|
5
|
+
if (!options.transform) return require_lib_errors_index.ok(value);
|
|
6
|
+
const [transformError, transformed] = await require_lib_errors_index.mightThrow(Promise.resolve().then(() => options.transform?.(value)));
|
|
7
|
+
if (transformError || transformed === null || transformed === void 0) return require_lib_errors_index.err("PromptIOError", "Prompt transform callback failed unexpectedly");
|
|
8
|
+
return require_lib_errors_index.ok(transformed);
|
|
9
|
+
};
|
|
10
|
+
const runValidation = async (options, value) => {
|
|
11
|
+
if (!options.validate) return require_lib_errors_index.ok(null);
|
|
12
|
+
const [validationError, validationMessage] = await require_lib_errors_index.mightThrow(Promise.resolve().then(() => options.validate?.(value)));
|
|
13
|
+
if (validationError) return require_lib_errors_index.err("PromptIOError", "Prompt validate callback failed unexpectedly");
|
|
14
|
+
if (typeof validationMessage === "string" && validationMessage.length > 0) return require_lib_errors_index.ok(validationMessage);
|
|
15
|
+
return require_lib_errors_index.ok(null);
|
|
16
|
+
};
|
|
17
|
+
const isCancelKey = (key) => {
|
|
18
|
+
if (key.name === "ctrl_c") return true;
|
|
19
|
+
if (key.name === "escape") return true;
|
|
20
|
+
return false;
|
|
21
|
+
};
|
|
22
|
+
const runPromptSession = async (params) => {
|
|
23
|
+
const [initError] = params.runtime.init();
|
|
24
|
+
if (initError) return require_lib_errors_index.err(initError.type, initError.message);
|
|
25
|
+
let state = params.initialState;
|
|
26
|
+
let errorMessage = null;
|
|
27
|
+
const closeAndDone = (message) => {
|
|
28
|
+
const [closeErr] = params.runtime.close();
|
|
29
|
+
if (closeErr) return require_lib_errors_index.err(closeErr.type, closeErr.message);
|
|
30
|
+
const [doneErr] = params.runtime.done(message);
|
|
31
|
+
if (doneErr) return require_lib_errors_index.err(doneErr.type, doneErr.message);
|
|
32
|
+
return null;
|
|
33
|
+
};
|
|
34
|
+
while (true) {
|
|
35
|
+
const [renderError] = params.runtime.render(params.render({
|
|
36
|
+
options: params.options,
|
|
37
|
+
state,
|
|
38
|
+
errorMessage
|
|
39
|
+
}));
|
|
40
|
+
if (renderError) {
|
|
41
|
+
params.runtime.close();
|
|
42
|
+
return require_lib_errors_index.err(renderError.type, renderError.message);
|
|
43
|
+
}
|
|
44
|
+
const [readError, key] = await params.runtime.readKey();
|
|
45
|
+
if (readError || !key) {
|
|
46
|
+
params.runtime.close();
|
|
47
|
+
return require_lib_errors_index.err(readError?.type ?? "PromptIOError", readError?.message ?? "Unable to read prompt input");
|
|
48
|
+
}
|
|
49
|
+
if (isCancelKey(key)) {
|
|
50
|
+
const [closeError] = params.runtime.close();
|
|
51
|
+
if (closeError) return require_lib_errors_index.err(closeError.type, closeError.message);
|
|
52
|
+
const [doneError] = params.runtime.done(`✖ ${CANCEL_MESSAGE}`);
|
|
53
|
+
if (doneError) return require_lib_errors_index.err(doneError.type, doneError.message);
|
|
54
|
+
if (params.runtime.interrupt) {
|
|
55
|
+
const [interruptError] = params.runtime.interrupt(CANCEL_MESSAGE);
|
|
56
|
+
if (interruptError) return require_lib_errors_index.err(interruptError.type, interruptError.message);
|
|
57
|
+
}
|
|
58
|
+
return require_lib_errors_index.err("PromptCancelledError", CANCEL_MESSAGE);
|
|
59
|
+
}
|
|
60
|
+
if (key.name !== "enter") {
|
|
61
|
+
state = params.onKey(state, key);
|
|
62
|
+
errorMessage = null;
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
const submitResult = params.onSubmit(state);
|
|
66
|
+
if ("errorMessage" in submitResult) {
|
|
67
|
+
errorMessage = submitResult.errorMessage;
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
const rawValue = submitResult.value;
|
|
71
|
+
const [validationRunError, validationErrorMessage] = await runValidation(params.options, rawValue);
|
|
72
|
+
if (validationRunError) {
|
|
73
|
+
const closeDoneErr = closeAndDone(`✖ ${params.options.message}`);
|
|
74
|
+
if (closeDoneErr) return closeDoneErr;
|
|
75
|
+
return require_lib_errors_index.err(validationRunError.type, validationRunError.message);
|
|
76
|
+
}
|
|
77
|
+
if (validationErrorMessage) {
|
|
78
|
+
errorMessage = validationErrorMessage;
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
const [transformError, finalValue] = await resolveOutput(params.options, rawValue);
|
|
82
|
+
if (transformError) {
|
|
83
|
+
const closeDoneErr = closeAndDone(`✖ ${params.options.message}`);
|
|
84
|
+
if (closeDoneErr) return closeDoneErr;
|
|
85
|
+
return require_lib_errors_index.err(transformError.type, transformError.message);
|
|
86
|
+
}
|
|
87
|
+
if (finalValue === null) return require_lib_errors_index.err("PromptIOError", "Unable to transform prompt value");
|
|
88
|
+
const closeDoneErr = closeAndDone(params.complete({
|
|
89
|
+
options: params.options,
|
|
90
|
+
state,
|
|
91
|
+
value: finalValue
|
|
92
|
+
}));
|
|
93
|
+
if (closeDoneErr) return closeDoneErr;
|
|
94
|
+
return require_lib_errors_index.ok(finalValue);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
//#endregion
|
|
98
|
+
exports.runPromptSession = runPromptSession;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { err, mightThrow, ok } from "../../lib/errors/index.mjs";
|
|
2
|
+
//#region src/lib/prompts/core/session.ts
|
|
3
|
+
const CANCEL_MESSAGE = "Interrupted, bye!";
|
|
4
|
+
const resolveOutput = async (options, value) => {
|
|
5
|
+
if (!options.transform) return ok(value);
|
|
6
|
+
const [transformError, transformed] = await mightThrow(Promise.resolve().then(() => options.transform?.(value)));
|
|
7
|
+
if (transformError || transformed === null || transformed === void 0) return err("PromptIOError", "Prompt transform callback failed unexpectedly");
|
|
8
|
+
return ok(transformed);
|
|
9
|
+
};
|
|
10
|
+
const runValidation = async (options, value) => {
|
|
11
|
+
if (!options.validate) return ok(null);
|
|
12
|
+
const [validationError, validationMessage] = await mightThrow(Promise.resolve().then(() => options.validate?.(value)));
|
|
13
|
+
if (validationError) return err("PromptIOError", "Prompt validate callback failed unexpectedly");
|
|
14
|
+
if (typeof validationMessage === "string" && validationMessage.length > 0) return ok(validationMessage);
|
|
15
|
+
return ok(null);
|
|
16
|
+
};
|
|
17
|
+
const isCancelKey = (key) => {
|
|
18
|
+
if (key.name === "ctrl_c") return true;
|
|
19
|
+
if (key.name === "escape") return true;
|
|
20
|
+
return false;
|
|
21
|
+
};
|
|
22
|
+
const runPromptSession = async (params) => {
|
|
23
|
+
const [initError] = params.runtime.init();
|
|
24
|
+
if (initError) return err(initError.type, initError.message);
|
|
25
|
+
let state = params.initialState;
|
|
26
|
+
let errorMessage = null;
|
|
27
|
+
const closeAndDone = (message) => {
|
|
28
|
+
const [closeErr] = params.runtime.close();
|
|
29
|
+
if (closeErr) return err(closeErr.type, closeErr.message);
|
|
30
|
+
const [doneErr] = params.runtime.done(message);
|
|
31
|
+
if (doneErr) return err(doneErr.type, doneErr.message);
|
|
32
|
+
return null;
|
|
33
|
+
};
|
|
34
|
+
while (true) {
|
|
35
|
+
const [renderError] = params.runtime.render(params.render({
|
|
36
|
+
options: params.options,
|
|
37
|
+
state,
|
|
38
|
+
errorMessage
|
|
39
|
+
}));
|
|
40
|
+
if (renderError) {
|
|
41
|
+
params.runtime.close();
|
|
42
|
+
return err(renderError.type, renderError.message);
|
|
43
|
+
}
|
|
44
|
+
const [readError, key] = await params.runtime.readKey();
|
|
45
|
+
if (readError || !key) {
|
|
46
|
+
params.runtime.close();
|
|
47
|
+
return err(readError?.type ?? "PromptIOError", readError?.message ?? "Unable to read prompt input");
|
|
48
|
+
}
|
|
49
|
+
if (isCancelKey(key)) {
|
|
50
|
+
const [closeError] = params.runtime.close();
|
|
51
|
+
if (closeError) return err(closeError.type, closeError.message);
|
|
52
|
+
const [doneError] = params.runtime.done(`✖ ${CANCEL_MESSAGE}`);
|
|
53
|
+
if (doneError) return err(doneError.type, doneError.message);
|
|
54
|
+
if (params.runtime.interrupt) {
|
|
55
|
+
const [interruptError] = params.runtime.interrupt(CANCEL_MESSAGE);
|
|
56
|
+
if (interruptError) return err(interruptError.type, interruptError.message);
|
|
57
|
+
}
|
|
58
|
+
return err("PromptCancelledError", CANCEL_MESSAGE);
|
|
59
|
+
}
|
|
60
|
+
if (key.name !== "enter") {
|
|
61
|
+
state = params.onKey(state, key);
|
|
62
|
+
errorMessage = null;
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
const submitResult = params.onSubmit(state);
|
|
66
|
+
if ("errorMessage" in submitResult) {
|
|
67
|
+
errorMessage = submitResult.errorMessage;
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
const rawValue = submitResult.value;
|
|
71
|
+
const [validationRunError, validationErrorMessage] = await runValidation(params.options, rawValue);
|
|
72
|
+
if (validationRunError) {
|
|
73
|
+
const closeDoneErr = closeAndDone(`✖ ${params.options.message}`);
|
|
74
|
+
if (closeDoneErr) return closeDoneErr;
|
|
75
|
+
return err(validationRunError.type, validationRunError.message);
|
|
76
|
+
}
|
|
77
|
+
if (validationErrorMessage) {
|
|
78
|
+
errorMessage = validationErrorMessage;
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
const [transformError, finalValue] = await resolveOutput(params.options, rawValue);
|
|
82
|
+
if (transformError) {
|
|
83
|
+
const closeDoneErr = closeAndDone(`✖ ${params.options.message}`);
|
|
84
|
+
if (closeDoneErr) return closeDoneErr;
|
|
85
|
+
return err(transformError.type, transformError.message);
|
|
86
|
+
}
|
|
87
|
+
if (finalValue === null) return err("PromptIOError", "Unable to transform prompt value");
|
|
88
|
+
const closeDoneErr = closeAndDone(params.complete({
|
|
89
|
+
options: params.options,
|
|
90
|
+
state,
|
|
91
|
+
value: finalValue
|
|
92
|
+
}));
|
|
93
|
+
if (closeDoneErr) return closeDoneErr;
|
|
94
|
+
return ok(finalValue);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
//#endregion
|
|
98
|
+
export { runPromptSession };
|
|
99
|
+
|
|
100
|
+
//# sourceMappingURL=session.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.mjs","names":[],"sources":["../../../src/lib/prompts/core/session.ts"],"sourcesContent":["import { err, mightThrow, ok } from \"../../errors/index.js\";\nimport type { BasePromptOptions } from \"../types.js\";\nimport type { Key, PromptRuntime } from \"./types.js\";\n\ntype SubmitResult<TValue> =\n | {\n value: TValue;\n }\n | {\n errorMessage: string;\n };\n\ntype SessionOptions<\n TState,\n TValue,\n TOptions extends BasePromptOptions<TValue>,\n> = {\n runtime: PromptRuntime;\n options: TOptions;\n initialState: TState;\n render: (params: {\n options: TOptions;\n state: TState;\n errorMessage: string | null;\n }) => string;\n complete: (params: {\n options: TOptions;\n state: TState;\n value: TValue;\n }) => string;\n onKey: (state: TState, key: Key) => TState;\n onSubmit: (state: TState) => SubmitResult<TValue>;\n};\n\nconst CANCEL_MESSAGE = \"Interrupted, bye!\";\n\nconst resolveOutput = async <TValue>(\n options: BasePromptOptions<TValue>,\n value: TValue,\n) => {\n if (!options.transform) {\n return ok(value);\n }\n\n const [transformError, transformed] = await mightThrow(\n Promise.resolve().then(() => options.transform?.(value)),\n );\n\n if (transformError || transformed === null || transformed === undefined) {\n return err(\n \"PromptIOError\",\n \"Prompt transform callback failed unexpectedly\",\n );\n }\n\n return ok(transformed);\n};\n\nconst runValidation = async <TValue>(\n options: BasePromptOptions<TValue>,\n value: TValue,\n) => {\n if (!options.validate) {\n return ok(null);\n }\n\n const [validationError, validationMessage] = await mightThrow(\n Promise.resolve().then(() => options.validate?.(value)),\n );\n\n if (validationError) {\n return err(\"PromptIOError\", \"Prompt validate callback failed unexpectedly\");\n }\n\n if (typeof validationMessage === \"string\" && validationMessage.length > 0) {\n return ok(validationMessage);\n }\n\n return ok(null);\n};\n\nconst isCancelKey = (key: Key) => {\n if (key.name === \"ctrl_c\") return true;\n if (key.name === \"escape\") return true;\n\n return false;\n};\n\nexport const runPromptSession = async <\n TState,\n TValue,\n TOptions extends BasePromptOptions<TValue>,\n>(\n params: SessionOptions<TState, TValue, TOptions>,\n) => {\n const [initError] = params.runtime.init();\n\n if (initError) {\n return err(initError.type, initError.message);\n }\n\n let state = params.initialState;\n let errorMessage: string | null = null;\n\n const closeAndDone = (message: string) => {\n const [closeErr] = params.runtime.close();\n\n if (closeErr) {\n return err(closeErr.type, closeErr.message);\n }\n\n const [doneErr] = params.runtime.done(message);\n\n if (doneErr) {\n return err(doneErr.type, doneErr.message);\n }\n\n return null;\n };\n\n while (true) {\n const [renderError] = params.runtime.render(\n params.render({\n options: params.options,\n state,\n errorMessage,\n }),\n );\n\n if (renderError) {\n params.runtime.close();\n return err(renderError.type, renderError.message);\n }\n\n const [readError, key] = await params.runtime.readKey();\n\n if (readError || !key) {\n params.runtime.close();\n return err(\n readError?.type ?? \"PromptIOError\",\n readError?.message ?? \"Unable to read prompt input\",\n );\n }\n\n if (isCancelKey(key)) {\n const [closeError] = params.runtime.close();\n\n if (closeError) {\n return err(closeError.type, closeError.message);\n }\n\n const [doneError] = params.runtime.done(`✖ ${CANCEL_MESSAGE}`);\n\n if (doneError) {\n return err(doneError.type, doneError.message);\n }\n\n if (params.runtime.interrupt) {\n const [interruptError] = params.runtime.interrupt(CANCEL_MESSAGE);\n\n if (interruptError) {\n return err(interruptError.type, interruptError.message);\n }\n }\n\n return err(\"PromptCancelledError\", CANCEL_MESSAGE);\n }\n\n if (key.name !== \"enter\") {\n state = params.onKey(state, key);\n errorMessage = null;\n continue;\n }\n\n const submitResult = params.onSubmit(state);\n\n if (\"errorMessage\" in submitResult) {\n errorMessage = submitResult.errorMessage;\n continue;\n }\n\n const rawValue = submitResult.value;\n\n const [validationRunError, validationErrorMessage] = await runValidation(\n params.options,\n rawValue,\n );\n\n if (validationRunError) {\n const closeDoneErr = closeAndDone(`✖ ${params.options.message}`);\n\n if (closeDoneErr) {\n return closeDoneErr;\n }\n\n return err(validationRunError.type, validationRunError.message);\n }\n\n if (validationErrorMessage) {\n errorMessage = validationErrorMessage;\n continue;\n }\n\n const [transformError, finalValue] = await resolveOutput(\n params.options,\n rawValue,\n );\n\n if (transformError) {\n const closeDoneErr = closeAndDone(`✖ ${params.options.message}`);\n\n if (closeDoneErr) {\n return closeDoneErr;\n }\n\n return err(transformError.type, transformError.message);\n }\n\n if (finalValue === null) {\n return err(\"PromptIOError\", \"Unable to transform prompt value\");\n }\n\n const closeDoneErr = closeAndDone(\n params.complete({\n options: params.options,\n state,\n value: finalValue,\n }),\n );\n\n if (closeDoneErr) {\n return closeDoneErr;\n }\n\n return ok(finalValue);\n }\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { err, ok } from "../../lib/errors/index.cjs";
|
|
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
|
+
export { PromptRuntime };
|
|
21
|
+
//# sourceMappingURL=types.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.cts","names":[],"sources":["../../../src/lib/prompts/core/types.ts"],"mappings":";;;KAEY,gBAAA,MACR,UAAA,QAAkB,GAAA,YAClB,UAAA,QAAkB,EAAA,CAAG,CAAA;AAAA,KAEb,OAAA;AAAA,KAwBA,GAAA;EACV,IAAA,EAAM,OAAA;EACN,KAAA;AAAA;AAAA,KAGU,aAAA;EACV,aAAA;EACA,IAAA,QAAY,gBAAA;EACZ,OAAA,QAAe,OAAA,CAAQ,gBAAA,CAAiB,GAAA;EACxC,MAAA,GAAS,KAAA,aAAkB,gBAAA;EAC3B,IAAA,GAAO,KAAA,aAAkB,gBAAA;EACzB,KAAA,QAAa,gBAAA;EACb,SAAA,IAAa,OAAA,aAAoB,gBAAA;AAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { err, ok } from "../../lib/errors/index.mjs";
|
|
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
|
+
export { PromptRuntime };
|
|
21
|
+
//# sourceMappingURL=types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../../src/lib/prompts/core/types.ts"],"mappings":";;;KAEY,gBAAA,MACR,UAAA,QAAkB,GAAA,YAClB,UAAA,QAAkB,EAAA,CAAG,CAAA;AAAA,KAEb,OAAA;AAAA,KAwBA,GAAA;EACV,IAAA,EAAM,OAAA;EACN,KAAA;AAAA;AAAA,KAGU,aAAA;EACV,aAAA;EACA,IAAA,QAAY,gBAAA;EACZ,OAAA,QAAe,OAAA,CAAQ,gBAAA,CAAiB,GAAA;EACxC,MAAA,GAAS,KAAA,aAAkB,gBAAA;EAC3B,IAAA,GAAO,KAAA,aAAkB,gBAAA;EACzB,KAAA,QAAa,gBAAA;EACb,SAAA,IAAa,OAAA,aAAoB,gBAAA;AAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
//#region src/lib/prompts/types.d.ts
|
|
2
|
+
type PromptErrorType = "PromptEnvironmentError" | "PromptValidationError" | "PromptCancelledError" | "PromptIOError" | (string & {});
|
|
3
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
4
|
+
type Validate<TValue> = ((value: TValue) => MaybePromise<string | null | undefined>) | undefined;
|
|
5
|
+
type Transform<TValue> = ((value: TValue) => MaybePromise<TValue>) | undefined;
|
|
6
|
+
type BasePromptOptions<TValue> = {
|
|
7
|
+
message: string;
|
|
8
|
+
validate?: Validate<TValue>;
|
|
9
|
+
transform?: Transform<TValue>;
|
|
10
|
+
};
|
|
11
|
+
type InputOptions = BasePromptOptions<string> & {
|
|
12
|
+
defaultValue?: string;
|
|
13
|
+
placeholder?: string;
|
|
14
|
+
required?: boolean;
|
|
15
|
+
requiredMessage?: string;
|
|
16
|
+
};
|
|
17
|
+
type PasswordOptions = InputOptions & {
|
|
18
|
+
mask?: string;
|
|
19
|
+
};
|
|
20
|
+
type ConfirmOptions = BasePromptOptions<boolean> & {
|
|
21
|
+
defaultValue?: boolean;
|
|
22
|
+
activeLabel?: string;
|
|
23
|
+
inactiveLabel?: string;
|
|
24
|
+
};
|
|
25
|
+
type NumberOptions = BasePromptOptions<number> & {
|
|
26
|
+
defaultValue?: number;
|
|
27
|
+
min?: number;
|
|
28
|
+
max?: number;
|
|
29
|
+
requiredMessage?: string;
|
|
30
|
+
invalidMessage?: string;
|
|
31
|
+
minMessage?: string;
|
|
32
|
+
maxMessage?: string;
|
|
33
|
+
};
|
|
34
|
+
type SelectChoice<TValue extends string> = {
|
|
35
|
+
value: TValue;
|
|
36
|
+
label?: string;
|
|
37
|
+
hint?: string;
|
|
38
|
+
disabled?: boolean;
|
|
39
|
+
};
|
|
40
|
+
type SelectOptions<TValue extends string> = BasePromptOptions<TValue> & {
|
|
41
|
+
choices: readonly [SelectChoice<TValue>, ...SelectChoice<TValue>[]];
|
|
42
|
+
defaultValue?: TValue;
|
|
43
|
+
};
|
|
44
|
+
type MultiselectOptions<TValue extends string> = BasePromptOptions<TValue[]> & {
|
|
45
|
+
choices: readonly [SelectChoice<TValue>, ...SelectChoice<TValue>[]];
|
|
46
|
+
defaultValue?: readonly TValue[];
|
|
47
|
+
min?: number;
|
|
48
|
+
max?: number;
|
|
49
|
+
};
|
|
50
|
+
//#endregion
|
|
51
|
+
export { ConfirmOptions, InputOptions, MultiselectOptions, NumberOptions, PasswordOptions, PromptErrorType, SelectChoice, SelectOptions };
|
|
52
|
+
//# sourceMappingURL=types.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.cts","names":[],"sources":["../../src/lib/prompts/types.ts"],"mappings":";KAAY,eAAA;AAAA,KAOA,YAAA,MAAkB,CAAA,GAAI,OAAA,CAAQ,CAAA;AAAA,KAE9B,QAAA,aACN,KAAA,EAAO,MAAA,KAAW,YAAA;AAAA,KAGZ,SAAA,aACN,KAAA,EAAO,MAAA,KAAW,YAAA,CAAa,MAAA;AAAA,KAGzB,iBAAA;EACV,OAAA;EACA,QAAA,GAAW,QAAA,CAAS,MAAA;EACpB,SAAA,GAAY,SAAA,CAAU,MAAA;AAAA;AAAA,KAGZ,YAAA,GAAe,iBAAA;EACzB,YAAA;EACA,WAAA;EACA,QAAA;EACA,eAAA;AAAA;AAAA,KAGU,eAAA,GAAkB,YAAA;EAC5B,IAAA;AAAA;AAAA,KAGU,cAAA,GAAiB,iBAAA;EAC3B,YAAA;EACA,WAAA;EACA,aAAA;AAAA;AAAA,KAGU,aAAA,GAAgB,iBAAA;EAC1B,YAAA;EACA,GAAA;EACA,GAAA;EACA,eAAA;EACA,cAAA;EACA,UAAA;EACA,UAAA;AAAA;AAAA,KAGU,YAAA;EACV,KAAA,EAAO,MAAA;EACP,KAAA;EACA,IAAA;EACA,QAAA;AAAA;AAAA,KAGU,aAAA,0BAAuC,iBAAA,CAAkB,MAAA;EACnE,OAAA,YAAmB,YAAA,CAAa,MAAA,MAAY,YAAA,CAAa,MAAA;EACzD,YAAA,GAAe,MAAA;AAAA;AAAA,KAGL,kBAAA,0BAA4C,iBAAA,CACtD,MAAA;EAEA,OAAA,YAAmB,YAAA,CAAa,MAAA,MAAY,YAAA,CAAa,MAAA;EACzD,YAAA,YAAwB,MAAA;EACxB,GAAA;EACA,GAAA;AAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
//#region src/lib/prompts/types.d.ts
|
|
2
|
+
type PromptErrorType = "PromptEnvironmentError" | "PromptValidationError" | "PromptCancelledError" | "PromptIOError" | (string & {});
|
|
3
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
4
|
+
type Validate<TValue> = ((value: TValue) => MaybePromise<string | null | undefined>) | undefined;
|
|
5
|
+
type Transform<TValue> = ((value: TValue) => MaybePromise<TValue>) | undefined;
|
|
6
|
+
type BasePromptOptions<TValue> = {
|
|
7
|
+
message: string;
|
|
8
|
+
validate?: Validate<TValue>;
|
|
9
|
+
transform?: Transform<TValue>;
|
|
10
|
+
};
|
|
11
|
+
type InputOptions = BasePromptOptions<string> & {
|
|
12
|
+
defaultValue?: string;
|
|
13
|
+
placeholder?: string;
|
|
14
|
+
required?: boolean;
|
|
15
|
+
requiredMessage?: string;
|
|
16
|
+
};
|
|
17
|
+
type PasswordOptions = InputOptions & {
|
|
18
|
+
mask?: string;
|
|
19
|
+
};
|
|
20
|
+
type ConfirmOptions = BasePromptOptions<boolean> & {
|
|
21
|
+
defaultValue?: boolean;
|
|
22
|
+
activeLabel?: string;
|
|
23
|
+
inactiveLabel?: string;
|
|
24
|
+
};
|
|
25
|
+
type NumberOptions = BasePromptOptions<number> & {
|
|
26
|
+
defaultValue?: number;
|
|
27
|
+
min?: number;
|
|
28
|
+
max?: number;
|
|
29
|
+
requiredMessage?: string;
|
|
30
|
+
invalidMessage?: string;
|
|
31
|
+
minMessage?: string;
|
|
32
|
+
maxMessage?: string;
|
|
33
|
+
};
|
|
34
|
+
type SelectChoice<TValue extends string> = {
|
|
35
|
+
value: TValue;
|
|
36
|
+
label?: string;
|
|
37
|
+
hint?: string;
|
|
38
|
+
disabled?: boolean;
|
|
39
|
+
};
|
|
40
|
+
type SelectOptions<TValue extends string> = BasePromptOptions<TValue> & {
|
|
41
|
+
choices: readonly [SelectChoice<TValue>, ...SelectChoice<TValue>[]];
|
|
42
|
+
defaultValue?: TValue;
|
|
43
|
+
};
|
|
44
|
+
type MultiselectOptions<TValue extends string> = BasePromptOptions<TValue[]> & {
|
|
45
|
+
choices: readonly [SelectChoice<TValue>, ...SelectChoice<TValue>[]];
|
|
46
|
+
defaultValue?: readonly TValue[];
|
|
47
|
+
min?: number;
|
|
48
|
+
max?: number;
|
|
49
|
+
};
|
|
50
|
+
//#endregion
|
|
51
|
+
export { ConfirmOptions, InputOptions, MultiselectOptions, NumberOptions, PasswordOptions, PromptErrorType, SelectChoice, SelectOptions };
|
|
52
|
+
//# sourceMappingURL=types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../src/lib/prompts/types.ts"],"mappings":";KAAY,eAAA;AAAA,KAOA,YAAA,MAAkB,CAAA,GAAI,OAAA,CAAQ,CAAA;AAAA,KAE9B,QAAA,aACN,KAAA,EAAO,MAAA,KAAW,YAAA;AAAA,KAGZ,SAAA,aACN,KAAA,EAAO,MAAA,KAAW,YAAA,CAAa,MAAA;AAAA,KAGzB,iBAAA;EACV,OAAA;EACA,QAAA,GAAW,QAAA,CAAS,MAAA;EACpB,SAAA,GAAY,SAAA,CAAU,MAAA;AAAA;AAAA,KAGZ,YAAA,GAAe,iBAAA;EACzB,YAAA;EACA,WAAA;EACA,QAAA;EACA,eAAA;AAAA;AAAA,KAGU,eAAA,GAAkB,YAAA;EAC5B,IAAA;AAAA;AAAA,KAGU,cAAA,GAAiB,iBAAA;EAC3B,YAAA;EACA,WAAA;EACA,aAAA;AAAA;AAAA,KAGU,aAAA,GAAgB,iBAAA;EAC1B,YAAA;EACA,GAAA;EACA,GAAA;EACA,eAAA;EACA,cAAA;EACA,UAAA;EACA,UAAA;AAAA;AAAA,KAGU,YAAA;EACV,KAAA,EAAO,MAAA;EACP,KAAA;EACA,IAAA;EACA,QAAA;AAAA;AAAA,KAGU,aAAA,0BAAuC,iBAAA,CAAkB,MAAA;EACnE,OAAA,YAAmB,YAAA,CAAa,MAAA,MAAY,YAAA,CAAa,MAAA;EACzD,YAAA,GAAe,MAAA;AAAA;AAAA,KAGL,kBAAA,0BAA4C,iBAAA,CACtD,MAAA;EAEA,OAAA,YAAmB,YAAA,CAAa,MAAA,MAAY,YAAA,CAAa,MAAA;EACzD,YAAA,YAAwB,MAAA;EACxB,GAAA;EACA,GAAA;AAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/lib/pubsub/types.d.ts
|
|
2
|
+
type PubSubOptions = {
|
|
3
|
+
subscriber: Bun.RedisClient;
|
|
4
|
+
publisher: Bun.RedisClient;
|
|
5
|
+
channel: string;
|
|
6
|
+
};
|
|
7
|
+
type MessageHandler<T> = (message: T, channel: string) => void | Promise<void>;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { MessageHandler, PubSubOptions };
|
|
10
|
+
//# sourceMappingURL=types.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.cts","names":[],"sources":["../../src/lib/pubsub/types.ts"],"mappings":";KAAY,aAAA;EACV,UAAA,EAAY,GAAA,CAAI,WAAA;EAChB,SAAA,EAAW,GAAA,CAAI,WAAA;EACf,OAAA;AAAA;AAAA,KAGU,cAAA,OACV,OAAA,EAAS,CAAA,EACT,OAAA,oBACU,OAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/lib/pubsub/types.d.ts
|
|
2
|
+
type PubSubOptions = {
|
|
3
|
+
subscriber: Bun.RedisClient;
|
|
4
|
+
publisher: Bun.RedisClient;
|
|
5
|
+
channel: string;
|
|
6
|
+
};
|
|
7
|
+
type MessageHandler<T> = (message: T, channel: string) => void | Promise<void>;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { MessageHandler, PubSubOptions };
|
|
10
|
+
//# sourceMappingURL=types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../src/lib/pubsub/types.ts"],"mappings":";KAAY,aAAA;EACV,UAAA,EAAY,GAAA,CAAI,WAAA;EAChB,SAAA,EAAW,GAAA,CAAI,WAAA;EACf,OAAA;AAAA;AAAA,KAGU,cAAA,OACV,OAAA,EAAS,CAAA,EACT,OAAA,oBACU,OAAA"}
|