@distilled.cloud/axiom 0.17.0 → 0.18.1

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.
@@ -1,6 +1,6 @@
1
+ import * as Context from "effect/Context";
1
2
  import * as Layer from "effect/Layer";
2
3
  import * as Redacted from "effect/Redacted";
3
- import * as Context from "effect/Context";
4
4
  import { ConfigError } from "@distilled.cloud/core/errors";
5
5
  /** Default base URL for Axiom Cloud. Self-hosted users can override via AXIOM_URL. */
6
6
  export declare const DEFAULT_API_BASE_URL = "https://api.axiom.co";
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAE3D,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;;AAED,qBAAa,WAAY,SAAQ,gBAEhC;CAAG;AAEJ;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,8CAkB9B,CAAC"}
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAE3D,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;;AAED,qBAAa,WAAY,SAAQ,gBAEhC;CAAG;AAWJ;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,8CA6B9B,CAAC"}
@@ -1,12 +1,20 @@
1
+ import * as EffectConfig from "effect/Config";
2
+ import * as Context from "effect/Context";
1
3
  import * as Effect from "effect/Effect";
2
4
  import * as Layer from "effect/Layer";
5
+ import * as Option from "effect/Option";
3
6
  import * as Redacted from "effect/Redacted";
4
- import * as Context from "effect/Context";
5
7
  import { ConfigError } from "@distilled.cloud/core/errors";
6
8
  /** Default base URL for Axiom Cloud. Self-hosted users can override via AXIOM_URL. */
7
9
  export const DEFAULT_API_BASE_URL = "https://api.axiom.co";
8
10
  export class Credentials extends Context.Service()("AxiomCredentials") {
9
11
  }
12
+ const envConfig = EffectConfig.all({
13
+ apiToken: EffectConfig.option(EffectConfig.string("AXIOM_TOKEN")),
14
+ apiKey: EffectConfig.option(EffectConfig.string("AXIOM_API_KEY")),
15
+ apiBaseUrl: EffectConfig.string("AXIOM_URL").pipe(EffectConfig.withDefault(DEFAULT_API_BASE_URL)),
16
+ orgId: EffectConfig.option(EffectConfig.string("AXIOM_ORG_ID")),
17
+ });
10
18
  /**
11
19
  * Build {@link Credentials} from environment variables.
12
20
  *
@@ -16,7 +24,11 @@ export class Credentials extends Context.Service()("AxiomCredentials") {
16
24
  * - `AXIOM_ORG_ID` (optional) — organization ID, required for PATs.
17
25
  */
18
26
  export const CredentialsFromEnv = Layer.effect(Credentials, Effect.gen(function* () {
19
- const apiKey = process.env.AXIOM_TOKEN ?? process.env.AXIOM_API_KEY;
27
+ const config = yield* envConfig.asEffect().pipe(Effect.mapError(() => new ConfigError({
28
+ message: "AXIOM_TOKEN (or AXIOM_API_KEY) environment variable is required",
29
+ })));
30
+ const apiKey = Option.getOrUndefined(config.apiToken) ??
31
+ Option.getOrUndefined(config.apiKey);
20
32
  if (!apiKey) {
21
33
  return yield* new ConfigError({
22
34
  message: "AXIOM_TOKEN (or AXIOM_API_KEY) environment variable is required",
@@ -24,8 +36,8 @@ export const CredentialsFromEnv = Layer.effect(Credentials, Effect.gen(function*
24
36
  }
25
37
  return {
26
38
  apiKey: Redacted.make(apiKey),
27
- apiBaseUrl: process.env.AXIOM_URL ?? DEFAULT_API_BASE_URL,
28
- orgId: process.env.AXIOM_ORG_ID,
39
+ apiBaseUrl: config.apiBaseUrl,
40
+ orgId: Option.getOrUndefined(config.orgId),
29
41
  };
30
42
  }));
31
43
  //# sourceMappingURL=credentials.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,sFAAsF;AACtF,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAa3D,MAAM,OAAO,WAAY,SAAQ,OAAO,CAAC,OAAO,EAAuB,CACrE,kBAAkB,CACnB;CAAG;AAEJ;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAC5C,WAAW,EACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAEpE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC;YAC5B,OAAO,EACL,iEAAiE;SACpE,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7B,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,oBAAoB;QACzD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;KAChC,CAAC;AACJ,CAAC,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,sFAAsF;AACtF,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAa3D,MAAM,OAAO,WAAY,SAAQ,OAAO,CAAC,OAAO,EAAuB,CACrE,kBAAkB,CACnB;CAAG;AAEJ,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC;IACjC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACjE,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAC/C,YAAY,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAC/C;IACD,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;CAChE,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAC5C,WAAW,EACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAC7C,MAAM,CAAC,QAAQ,CACb,GAAG,EAAE,CACH,IAAI,WAAW,CAAC;QACd,OAAO,EACL,iEAAiE;KACpE,CAAC,CACL,CACF,CAAC;IACF,MAAM,MAAM,GACV,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC;YAC5B,OAAO,EACL,iEAAiE;SACpE,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;KAC3C,CAAC;AACJ,CAAC,CAAC,CACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@distilled.cloud/axiom",
3
- "version": "0.17.0",
3
+ "version": "0.18.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/alchemy-run/distilled",
@@ -78,7 +78,7 @@
78
78
  "specs:update": "git -C specs/docs fetch && git -C specs/docs checkout main && git -C specs/docs pull"
79
79
  },
80
80
  "dependencies": {
81
- "@distilled.cloud/core": "0.17.0"
81
+ "@distilled.cloud/core": "0.18.1"
82
82
  },
83
83
  "devDependencies": {
84
84
  "@types/bun": "^1.3.0",
@@ -1,7 +1,9 @@
1
+ import * as EffectConfig from "effect/Config";
2
+ import * as Context from "effect/Context";
1
3
  import * as Effect from "effect/Effect";
2
4
  import * as Layer from "effect/Layer";
5
+ import * as Option from "effect/Option";
3
6
  import * as Redacted from "effect/Redacted";
4
- import * as Context from "effect/Context";
5
7
  import { ConfigError } from "@distilled.cloud/core/errors";
6
8
 
7
9
  /** Default base URL for Axiom Cloud. Self-hosted users can override via AXIOM_URL. */
@@ -22,6 +24,15 @@ export class Credentials extends Context.Service<Credentials, Config>()(
22
24
  "AxiomCredentials",
23
25
  ) {}
24
26
 
27
+ const envConfig = EffectConfig.all({
28
+ apiToken: EffectConfig.option(EffectConfig.string("AXIOM_TOKEN")),
29
+ apiKey: EffectConfig.option(EffectConfig.string("AXIOM_API_KEY")),
30
+ apiBaseUrl: EffectConfig.string("AXIOM_URL").pipe(
31
+ EffectConfig.withDefault(DEFAULT_API_BASE_URL),
32
+ ),
33
+ orgId: EffectConfig.option(EffectConfig.string("AXIOM_ORG_ID")),
34
+ });
35
+
25
36
  /**
26
37
  * Build {@link Credentials} from environment variables.
27
38
  *
@@ -33,7 +44,18 @@ export class Credentials extends Context.Service<Credentials, Config>()(
33
44
  export const CredentialsFromEnv = Layer.effect(
34
45
  Credentials,
35
46
  Effect.gen(function* () {
36
- const apiKey = process.env.AXIOM_TOKEN ?? process.env.AXIOM_API_KEY;
47
+ const config = yield* envConfig.asEffect().pipe(
48
+ Effect.mapError(
49
+ () =>
50
+ new ConfigError({
51
+ message:
52
+ "AXIOM_TOKEN (or AXIOM_API_KEY) environment variable is required",
53
+ }),
54
+ ),
55
+ );
56
+ const apiKey =
57
+ Option.getOrUndefined(config.apiToken) ??
58
+ Option.getOrUndefined(config.apiKey);
37
59
 
38
60
  if (!apiKey) {
39
61
  return yield* new ConfigError({
@@ -44,8 +66,8 @@ export const CredentialsFromEnv = Layer.effect(
44
66
 
45
67
  return {
46
68
  apiKey: Redacted.make(apiKey),
47
- apiBaseUrl: process.env.AXIOM_URL ?? DEFAULT_API_BASE_URL,
48
- orgId: process.env.AXIOM_ORG_ID,
69
+ apiBaseUrl: config.apiBaseUrl,
70
+ orgId: Option.getOrUndefined(config.orgId),
49
71
  };
50
72
  }),
51
73
  );