@passlock/cli 2.0.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -42,7 +42,7 @@ Install the CLI globally:
42
42
 
43
43
  or
44
44
 
45
- `pnpm add -g @passlock/api`
45
+ `pnpm add -g @passlock/cli`
46
46
 
47
47
  ### Create a cloud instance
48
48
 
@@ -52,7 +52,4 @@ Follow the prompts
52
52
 
53
53
  ### Help
54
54
 
55
- `passlock --help`
56
-
57
- [contact]: https://passlock.dev/contact
58
- [client]: https://www.npmjs.com/package/@passlock/client
55
+ `passlock --help`
@@ -42,7 +42,7 @@ Install the CLI globally:
42
42
 
43
43
  or
44
44
 
45
- `pnpm add -g @passlock/api`
45
+ `pnpm add -g @passlock/cli`
46
46
 
47
47
  ### Create a cloud instance
48
48
 
@@ -52,7 +52,4 @@ Follow the prompts
52
52
 
53
53
  ### Help
54
54
 
55
- `passlock --help`
56
-
57
- [contact]: https://passlock.dev/contact
58
- [client]: https://www.npmjs.com/package/@passlock/client
55
+ `passlock --help`
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ import { HttpClient, HttpClientRequest } from "@effect/platform";
4
4
  import { NodeContext, NodeHttpClient, NodeRuntime } from "@effect/platform-node";
5
5
  import { Console, Effect, Layer, pipe } from "effect";
6
6
  import { init } from "./init.js";
7
+ const VERSION = "2.0.2";
7
8
  // prepend the correct endpoint
8
9
  const mapClient = (endpoint) => pipe(HttpClient.HttpClient, Effect.map(HttpClient.mapRequest(HttpClientRequest.prependUrl(endpoint))), Layer.effect(HttpClient.HttpClient));
9
10
  const endpoint = Options.text("endpoint")
@@ -16,7 +17,7 @@ const command = pipe(mainCmd, Command.withSubcommands([initCmd]));
16
17
  // Set up the CLI application
17
18
  const cli = Command.run(command, {
18
19
  name: "Passlock CLI tools",
19
- version: "v2.0.0.alpha.1",
20
+ version: VERSION,
20
21
  });
21
22
  // Prepare and run the CLI application
22
23
  pipe(cli(process.argv), Effect.provide(NodeHttpClient.layer), Effect.provide(NodeContext.layer), NodeRuntime.runMain);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,+BAA+B;AAC/B,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,EAAE,CACrC,IAAI,CACF,UAAU,CAAC,UAAU,EACrB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EACzE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CACpC,CAAA;AAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;KACtC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;KAC5B,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC;KACtD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC,CAAA;AAExD,MAAM,OAAO,GAAG,IAAI,CAClB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAClD,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAChD,EACD,OAAO,CAAC,eAAe,CAAC,qCAAqC,CAAC,CAC/D,CAAA;AAED,MAAM,OAAO,GAAG,IAAI,CAClB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,CAChC,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAC5E,EACD,OAAO,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAC9C,CAAA;AAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAEjE,6BAA6B;AAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;IAC/B,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,gBAAgB;CAC1B,CAAC,CAAA;AAEF,sCAAsC;AACtC,IAAI,CACF,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EACjB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EACpC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EACjC,WAAW,CAAC,OAAO,CACpB,CAAA","sourcesContent":["#!/usr/bin/env node\n\nimport { Command, Options } from \"@effect/cli\"\nimport { HttpClient, HttpClientRequest } from \"@effect/platform\"\nimport { NodeContext, NodeHttpClient, NodeRuntime } from \"@effect/platform-node\"\nimport { Console, Effect, Layer, pipe } from \"effect\"\nimport { init } from \"./init.js\"\n\n// prepend the correct endpoint\nconst mapClient = (endpoint: string) =>\n pipe(\n HttpClient.HttpClient,\n Effect.map(HttpClient.mapRequest(HttpClientRequest.prependUrl(endpoint))),\n Layer.effect(HttpClient.HttpClient)\n )\n\nconst endpoint = Options.text(\"endpoint\")\n .pipe(Options.withAlias(\"e\"))\n .pipe(Options.withDescription(\"Passlock API endpoint\"))\n .pipe(Options.withDefault(\"https://api.passlock.dev\"))\n\nconst initCmd = pipe(\n Command.make(\"init\", { endpoint }, ({ endpoint }) =>\n pipe(init, Effect.provide(mapClient(endpoint)))\n ),\n Command.withDescription(\"Setup a new Passlock cloud instance\")\n)\n\nconst mainCmd = pipe(\n Command.make(\"passlock\", {}, () =>\n Console.log(\"Passlock CLI tools\\nRun with --help for commands and options\")\n ),\n Command.withDescription(\"Passlock CLI tools\")\n)\n\nconst command = pipe(mainCmd, Command.withSubcommands([initCmd]))\n\n// Set up the CLI application\nconst cli = Command.run(command, {\n name: \"Passlock CLI tools\",\n version: \"v2.0.0.alpha.1\",\n})\n\n// Prepare and run the CLI application\npipe(\n cli(process.argv),\n Effect.provide(NodeHttpClient.layer),\n Effect.provide(NodeContext.layer),\n NodeRuntime.runMain\n)\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,OAAO,GAAG,aAAa,CAAA;AAE7B,+BAA+B;AAC/B,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,EAAE,CACrC,IAAI,CACF,UAAU,CAAC,UAAU,EACrB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EACzE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CACpC,CAAA;AAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;KACtC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;KAC5B,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC;KACtD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC,CAAA;AAExD,MAAM,OAAO,GAAG,IAAI,CAClB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAClD,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAChD,EACD,OAAO,CAAC,eAAe,CAAC,qCAAqC,CAAC,CAC/D,CAAA;AAED,MAAM,OAAO,GAAG,IAAI,CAClB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,CAChC,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAC5E,EACD,OAAO,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAC9C,CAAA;AAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAEjE,6BAA6B;AAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;IAC/B,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,OAAO;CACjB,CAAC,CAAA;AAEF,sCAAsC;AACtC,IAAI,CACF,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EACjB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EACpC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EACjC,WAAW,CAAC,OAAO,CACpB,CAAA","sourcesContent":["#!/usr/bin/env node\n\nimport { Command, Options } from \"@effect/cli\"\nimport { HttpClient, HttpClientRequest } from \"@effect/platform\"\nimport { NodeContext, NodeHttpClient, NodeRuntime } from \"@effect/platform-node\"\nimport { Console, Effect, Layer, pipe } from \"effect\"\nimport { init } from \"./init.js\"\n\nconst VERSION = \"#{VERSION}#\"\n\n// prepend the correct endpoint\nconst mapClient = (endpoint: string) =>\n pipe(\n HttpClient.HttpClient,\n Effect.map(HttpClient.mapRequest(HttpClientRequest.prependUrl(endpoint))),\n Layer.effect(HttpClient.HttpClient)\n )\n\nconst endpoint = Options.text(\"endpoint\")\n .pipe(Options.withAlias(\"e\"))\n .pipe(Options.withDescription(\"Passlock API endpoint\"))\n .pipe(Options.withDefault(\"https://api.passlock.dev\"))\n\nconst initCmd = pipe(\n Command.make(\"init\", { endpoint }, ({ endpoint }) =>\n pipe(init, Effect.provide(mapClient(endpoint)))\n ),\n Command.withDescription(\"Setup a new Passlock cloud instance\")\n)\n\nconst mainCmd = pipe(\n Command.make(\"passlock\", {}, () =>\n Console.log(\"Passlock CLI tools\\nRun with --help for commands and options\")\n ),\n Command.withDescription(\"Passlock CLI tools\")\n)\n\nconst command = pipe(mainCmd, Command.withSubcommands([initCmd]))\n\n// Set up the CLI application\nconst cli = Command.run(command, {\n name: \"Passlock CLI tools\",\n version: VERSION,\n})\n\n// Prepare and run the CLI application\npipe(\n cli(process.argv),\n Effect.provide(NodeHttpClient.layer),\n Effect.provide(NodeContext.layer),\n NodeRuntime.runMain\n)\n"]}
package/dist/init.js CHANGED
@@ -23,7 +23,7 @@ const captureData = Effect.gen(function* () {
23
23
  message: "Root account email? (we'll send a single use code to this address)",
24
24
  placeholder: "jdoe@gmail.com",
25
25
  validate(value) {
26
- if (value.length === 0)
26
+ if (!value || value.length === 0)
27
27
  return `Value is required!`;
28
28
  if (!emailRegex.test(value))
29
29
  return `Please provide a valid email address!`;
@@ -35,7 +35,7 @@ const captureData = Effect.gen(function* () {
35
35
  message: "Your first/given name",
36
36
  placeholder: "John",
37
37
  validate(value) {
38
- if (value.length === 0)
38
+ if (!value || value.length === 0)
39
39
  return `Value is required!`;
40
40
  },
41
41
  }));
@@ -45,7 +45,7 @@ const captureData = Effect.gen(function* () {
45
45
  message: "Your last/family name",
46
46
  placeholder: "Doe",
47
47
  validate(value) {
48
- if (value.length === 0)
48
+ if (!value || value.length === 0)
49
49
  return `Value is required!`;
50
50
  },
51
51
  }));
@@ -78,7 +78,7 @@ export const init = pipe(Effect.gen(function* () {
78
78
  const s = spinner();
79
79
  s.start("Setting up instance");
80
80
  const { tenancyId, apiKey } = yield* pipe(signup(signupData), Effect.tapError(() => Effect.sync(() => {
81
- s.stop("Something went wrong", 1);
81
+ s.stop("Something went wrong");
82
82
  })));
83
83
  s.stop("Instance ready 🎉");
84
84
  log.success("Here are your development instance credentials.\nPlease keep them secure:");
package/dist/init.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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","sourcesContent":["import { confirm, intro, isCancel, log, outro, spinner, text } from \"@clack/prompts\"\nimport { HttpBody, HttpClient, HttpClientResponse } from \"@effect/platform\"\nimport { Data, Effect, Match, pipe, Schema } from \"effect\"\nimport kleur from \"kleur\"\n\nclass CancelError extends Data.TaggedError(\"@error/Abort\")<object> {}\n\nconst emailRegex = /^[^@]+@[^@]+.[^@]+$/\n\nconst SignupPayload = Schema.Struct({\n email: Schema.String,\n firstName: Schema.String,\n lastName: Schema.String,\n})\n\ntype SignupPayload = typeof SignupPayload.Type\n\nexport class InvalidEmail extends Schema.TaggedError<InvalidEmail>(\"@error/InvalidEmail\")(\n \"@error/InvalidEmail\",\n { message: Schema.String }\n) {}\n\nexport class DuplicateEmail extends Schema.TaggedError<DuplicateEmail>(\"@error/DuplicateEmail\")(\n \"@error/DuplicateEmail\",\n { message: Schema.String }\n) {}\n\nexport const TenancyData = Schema.TaggedStruct(\"TenancyData\", {\n apiKey: Schema.String,\n tenancyId: Schema.String,\n})\n\nexport type TenancyData = typeof TenancyData.Type\n\nconst captureData: Effect.Effect<SignupPayload, CancelError> = Effect.gen(function* () {\n const email = yield* Effect.promise(() =>\n text({\n message: \"Root account email? (we'll send a single use code to this address)\",\n\n placeholder: \"jdoe@gmail.com\",\n\n validate(value) {\n if (value.length === 0) return `Value is required!`\n if (!emailRegex.test(value)) return `Please provide a valid email address!`\n },\n })\n )\n\n if (isCancel(email)) return yield* new CancelError({})\n\n const firstName = yield* Effect.promise(() =>\n text({\n message: \"Your first/given name\",\n\n placeholder: \"John\",\n\n validate(value) {\n if (value.length === 0) return `Value is required!`\n },\n })\n )\n\n if (isCancel(firstName)) return yield* new CancelError({})\n\n const lastName = yield* Effect.promise(() =>\n text({\n message: \"Your last/family name\",\n\n placeholder: \"Doe\",\n\n validate(value) {\n if (value.length === 0) return `Value is required!`\n },\n })\n )\n\n if (isCancel(lastName)) return yield* new CancelError({})\n\n const isConfirmed = yield* Effect.promise(() =>\n confirm({\n message: `Using ${firstName} ${lastName} <${email}>, continue?`,\n })\n )\n\n if (isCancel(isConfirmed)) return yield* new CancelError({})\n\n return isConfirmed ? { email, firstName, lastName } : yield* captureData\n})\n\nexport const signup = (\n payload: SignupPayload\n): Effect.Effect<TenancyData, InvalidEmail | DuplicateEmail, HttpClient.HttpClient> =>\n pipe(\n Effect.gen(function* () {\n const client = yield* HttpClient.HttpClient\n const encodedPayload = yield* HttpBody.json(payload)\n\n const response = yield* pipe(\n // endpoint will be prepended by the HttpClient\n client.post(\"/signup\", {\n body: encodedPayload,\n })\n )\n\n const encoded = yield* HttpClientResponse.matchStatus(response, {\n \"2xx\": () => HttpClientResponse.schemaBodyJson(TenancyData)(response),\n orElse: () =>\n HttpClientResponse.schemaBodyJson(Schema.Union(InvalidEmail, DuplicateEmail))(response),\n })\n\n return yield* pipe(\n Match.value(encoded),\n Match.tag(\"TenancyData\", (principal) => Effect.succeed(principal)),\n Match.tag(\"@error/InvalidEmail\", (err) => Effect.fail(err)),\n Match.tag(\"@error/DuplicateEmail\", (err) => Effect.fail(err)),\n Match.exhaustive\n )\n }),\n Effect.catchTag(\"HttpBodyError\", Effect.die),\n Effect.catchTag(\"ParseError\", Effect.die),\n Effect.catchTag(\"RequestError\", Effect.die),\n Effect.catchTag(\"ResponseError\", Effect.die)\n )\n\nexport const init: Effect.Effect<void, never, HttpClient.HttpClient> = pipe(\n Effect.gen(function* () {\n intro(`Setting up new Passlock cloud instance...`)\n\n const signupData = yield* captureData\n const s = spinner()\n s.start(\"Setting up instance\")\n\n const { tenancyId, apiKey } = yield* pipe(\n signup(signupData),\n Effect.tapError(() =>\n Effect.sync(() => {\n s.stop(\"Something went wrong\", 1)\n })\n )\n )\n s.stop(\"Instance ready 🎉\")\n\n log.success(\"Here are your development instance credentials.\\nPlease keep them secure:\")\n\n log.message(`Tenancy ID: ${kleur.green(tenancyId)}\\n` + `API Key: ${kleur.green(apiKey)}`)\n\n log.message(\n `Login to your Passlock console at\\n${kleur.blue().underline(\"https://console.passlock.dev\")}`\n )\n\n log.message(\n \"Check out the quick start guide at\\n\" +\n kleur.blue().underline(\"https://passlock.dev/getting-started/\")\n )\n\n outro(\"You're all set!\")\n }),\n Effect.catchTags({\n \"@error/Abort\": () =>\n Effect.sync(() => {\n log.error(\"Operation cancelled\")\n }),\n \"@error/DuplicateEmail\": () =>\n Effect.sync(() => {\n log.error(\"Email already registered\\n\" + \"Sign in at https://console.passlock.dev\")\n }),\n \"@error/InvalidEmail\": () =>\n Effect.sync(() => {\n log.error(\"Invalid email address\")\n }),\n })\n)\n"]}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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","sourcesContent":["import { confirm, intro, isCancel, log, outro, spinner, text } from \"@clack/prompts\"\nimport { HttpBody, HttpClient, HttpClientResponse } from \"@effect/platform\"\nimport { Data, Effect, Match, pipe, Schema } from \"effect\"\nimport kleur from \"kleur\"\n\nclass CancelError extends Data.TaggedError(\"@error/Abort\")<object> {}\n\nconst emailRegex = /^[^@]+@[^@]+.[^@]+$/\n\nconst SignupPayload = Schema.Struct({\n email: Schema.String,\n firstName: Schema.String,\n lastName: Schema.String,\n})\n\ntype SignupPayload = typeof SignupPayload.Type\n\nexport class InvalidEmail extends Schema.TaggedError<InvalidEmail>(\"@error/InvalidEmail\")(\n \"@error/InvalidEmail\",\n { message: Schema.String }\n) {}\n\nexport class DuplicateEmail extends Schema.TaggedError<DuplicateEmail>(\"@error/DuplicateEmail\")(\n \"@error/DuplicateEmail\",\n { message: Schema.String }\n) {}\n\nexport const TenancyData = Schema.TaggedStruct(\"TenancyData\", {\n apiKey: Schema.String,\n tenancyId: Schema.String,\n})\n\nexport type TenancyData = typeof TenancyData.Type\n\nconst captureData: Effect.Effect<SignupPayload, CancelError> = Effect.gen(function* () {\n const email = yield* Effect.promise(() =>\n text({\n message: \"Root account email? (we'll send a single use code to this address)\",\n\n placeholder: \"jdoe@gmail.com\",\n\n validate(value) {\n if (!value || value.length === 0) return `Value is required!`\n if (!emailRegex.test(value)) return `Please provide a valid email address!`\n },\n })\n )\n\n if (isCancel(email)) return yield* new CancelError({})\n\n const firstName = yield* Effect.promise(() =>\n text({\n message: \"Your first/given name\",\n\n placeholder: \"John\",\n\n validate(value) {\n if (!value || value.length === 0) return `Value is required!`\n },\n })\n )\n\n if (isCancel(firstName)) return yield* new CancelError({})\n\n const lastName = yield* Effect.promise(() =>\n text({\n message: \"Your last/family name\",\n\n placeholder: \"Doe\",\n\n validate(value) {\n if (!value || value.length === 0) return `Value is required!`\n },\n })\n )\n\n if (isCancel(lastName)) return yield* new CancelError({})\n\n const isConfirmed = yield* Effect.promise(() =>\n confirm({\n message: `Using ${firstName} ${lastName} <${email}>, continue?`,\n })\n )\n\n if (isCancel(isConfirmed)) return yield* new CancelError({})\n\n return isConfirmed ? { email, firstName, lastName } : yield* captureData\n})\n\nexport const signup = (\n payload: SignupPayload\n): Effect.Effect<TenancyData, InvalidEmail | DuplicateEmail, HttpClient.HttpClient> =>\n pipe(\n Effect.gen(function* () {\n const client = yield* HttpClient.HttpClient\n const encodedPayload = yield* HttpBody.json(payload)\n\n const response = yield* pipe(\n // endpoint will be prepended by the HttpClient\n client.post(\"/signup\", {\n body: encodedPayload,\n })\n )\n\n const encoded = yield* HttpClientResponse.matchStatus(response, {\n \"2xx\": () => HttpClientResponse.schemaBodyJson(TenancyData)(response),\n orElse: () =>\n HttpClientResponse.schemaBodyJson(Schema.Union(InvalidEmail, DuplicateEmail))(response),\n })\n\n return yield* pipe(\n Match.value(encoded),\n Match.tag(\"TenancyData\", (principal) => Effect.succeed(principal)),\n Match.tag(\"@error/InvalidEmail\", (err) => Effect.fail(err)),\n Match.tag(\"@error/DuplicateEmail\", (err) => Effect.fail(err)),\n Match.exhaustive\n )\n }),\n Effect.catchTag(\"HttpBodyError\", Effect.die),\n Effect.catchTag(\"ParseError\", Effect.die),\n Effect.catchTag(\"RequestError\", Effect.die),\n Effect.catchTag(\"ResponseError\", Effect.die)\n )\n\nexport const init: Effect.Effect<void, never, HttpClient.HttpClient> = pipe(\n Effect.gen(function* () {\n intro(`Setting up new Passlock cloud instance...`)\n\n const signupData = yield* captureData\n const s = spinner()\n s.start(\"Setting up instance\")\n\n const { tenancyId, apiKey } = yield* pipe(\n signup(signupData),\n Effect.tapError(() =>\n Effect.sync(() => {\n s.stop(\"Something went wrong\")\n })\n )\n )\n s.stop(\"Instance ready 🎉\")\n\n log.success(\"Here are your development instance credentials.\\nPlease keep them secure:\")\n\n log.message(`Tenancy ID: ${kleur.green(tenancyId)}\\n` + `API Key: ${kleur.green(apiKey)}`)\n\n log.message(\n `Login to your Passlock console at\\n${kleur.blue().underline(\"https://console.passlock.dev\")}`\n )\n\n log.message(\n \"Check out the quick start guide at\\n\" +\n kleur.blue().underline(\"https://passlock.dev/getting-started/\")\n )\n\n outro(\"You're all set!\")\n }),\n Effect.catchTags({\n \"@error/Abort\": () =>\n Effect.sync(() => {\n log.error(\"Operation cancelled\")\n }),\n \"@error/DuplicateEmail\": () =>\n Effect.sync(() => {\n log.error(\"Email already registered\\n\" + \"Sign in at https://console.passlock.dev\")\n }),\n \"@error/InvalidEmail\": () =>\n Effect.sync(() => {\n log.error(\"Invalid email address\")\n }),\n })\n)\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@passlock/cli",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "description": "CLI tooling support for the Passlock authentication framework",
5
5
  "keywords": [
6
6
  "passkey",
@@ -42,20 +42,21 @@
42
42
  "!dist/**/*.spec.*"
43
43
  ],
44
44
  "dependencies": {
45
- "@clack/prompts": "^0.11.0",
46
- "@effect/cli": "^0.73.0",
47
- "@effect/platform": "^0.94.1",
48
- "@effect/platform-node": "^0.104.0",
49
- "effect": "3.19.14",
45
+ "@clack/prompts": "^1.0.1",
46
+ "@effect/cli": "^0.73.2",
47
+ "@effect/cluster": "^0.56.4",
48
+ "@effect/platform": "^0.94.5",
49
+ "@effect/platform-node": "^0.104.1",
50
+ "effect": "3.19.19",
50
51
  "kleur": "^4.1.5"
51
52
  },
52
53
  "devDependencies": {
53
- "@types/node": "25.0.9",
54
- "@biomejs/biome": "^2.3.11",
55
- "globals": "^17.0.0",
56
- "npm-check-updates": "^19.3.1",
54
+ "@biomejs/biome": "^2.4.4",
55
+ "@types/node": "25.3.0",
56
+ "globals": "^17.3.0",
57
+ "npm-check-updates": "^19.4.1",
57
58
  "publint": "0.3.17",
58
- "rimraf": "^6.1.2",
59
+ "rimraf": "^6.1.3",
59
60
  "tsx": "4.21.0",
60
61
  "typescript": "^5.9.3"
61
62
  },
@@ -66,14 +67,11 @@
66
67
  "build": "tsc --build",
67
68
  "build:clean": "$npm_execpath run clean:full && $npm_execpath run build",
68
69
  "build:production": "$npm_execpath run build:clean && $npm_execpath run build:readme && $npm_execpath run replaceTokens && echo '' && publint",
69
- "build:readme": "LATEST=${npm_package_version} tsx ../../scripts/replace-readme-tokens.ts ./packages/cli",
70
+ "build:readme": "VERSION=${npm_package_version} tsx ../../scripts/replace-readme-tokens.ts ./packages/cli",
70
71
  "clean": "tsc --build --clean",
71
72
  "clean:full": "rimraf dist tsconfig.tsbuildinfo",
72
- "replaceTokens": "LATEST=${npm_package_version} tsx ../../scripts/replace-tokens.ts ./packages/cli",
73
- "test": "vitest run",
74
- "test:coverage": "vitest run --coverage",
75
- "test:ui": "vitest --coverage.enabled=true --ui",
76
- "test:watch": "vitest dev",
73
+ "replaceTokens": "VERSION=${npm_package_version} tsx ../../scripts/replace-tokens.ts ./packages/cli",
74
+ "test:unit": "vitest",
77
75
  "typecheck": "tsc --noEmit",
78
76
  "lint": "biome check .",
79
77
  "lint:fix": "biome check --fix .",