@alchemy.run/axiom 2.0.0-beta.84 → 2.0.0-beta.86
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/lib/Annotation.d.ts.map +1 -1
- package/lib/Annotation.js +2 -2
- package/lib/Annotation.js.map +1 -1
- package/lib/ApiToken.d.ts +10 -0
- package/lib/ApiToken.d.ts.map +1 -1
- package/lib/ApiToken.js +10 -3
- package/lib/ApiToken.js.map +1 -1
- package/lib/AuthProvider.d.ts +1 -1
- package/lib/AuthProvider.d.ts.map +1 -1
- package/lib/AuthProvider.js.map +1 -1
- package/lib/Chart.d.ts.map +1 -1
- package/lib/Chart.js.map +1 -1
- package/lib/Contributions.d.ts +1 -1
- package/lib/Contributions.d.ts.map +1 -1
- package/lib/Contributions.js.map +1 -1
- package/lib/Credentials.d.ts +1 -1
- package/lib/Credentials.d.ts.map +1 -1
- package/lib/Credentials.js +7 -20
- package/lib/Credentials.js.map +1 -1
- package/lib/Dashboard.d.ts +24 -5
- package/lib/Dashboard.d.ts.map +1 -1
- package/lib/Dashboard.js +23 -10
- package/lib/Dashboard.js.map +1 -1
- package/lib/Dataset.d.ts +28 -1
- package/lib/Dataset.d.ts.map +1 -1
- package/lib/Dataset.js +24 -4
- package/lib/Dataset.js.map +1 -1
- package/lib/Monitor.d.ts +19 -1
- package/lib/Monitor.d.ts.map +1 -1
- package/lib/Monitor.js +15 -2
- package/lib/Monitor.js.map +1 -1
- package/lib/Notifier.d.ts +19 -1
- package/lib/Notifier.d.ts.map +1 -1
- package/lib/Notifier.js +15 -2
- package/lib/Notifier.js.map +1 -1
- package/lib/OtelHeaders.d.ts.map +1 -1
- package/lib/OtelHeaders.js.map +1 -1
- package/lib/Providers.d.ts +1 -1
- package/lib/Providers.d.ts.map +1 -1
- package/lib/Providers.js.map +1 -1
- package/lib/Telemetry.d.ts.map +1 -1
- package/lib/Telemetry.js.map +1 -1
- package/lib/View.d.ts +19 -1
- package/lib/View.d.ts.map +1 -1
- package/lib/View.js +15 -2
- package/lib/View.js.map +1 -1
- package/lib/VirtualField.d.ts +19 -1
- package/lib/VirtualField.d.ts.map +1 -1
- package/lib/VirtualField.js +15 -2
- package/lib/VirtualField.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +8 -8
- package/src/Annotation.ts +2 -2
- package/src/ApiToken.ts +13 -3
- package/src/Credentials.ts +7 -49
- package/src/Dashboard.ts +43 -15
- package/src/Dataset.ts +41 -7
- package/src/Monitor.ts +27 -3
- package/src/Notifier.ts +30 -3
- package/src/View.ts +30 -3
- package/src/VirtualField.ts +27 -3
package/lib/Annotation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Annotation.d.ts","
|
|
1
|
+
{"version":3,"file":"Annotation.d.ts","sources":["../src/Annotation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,uBAAuB,CAAC;AAE5D,MAAM,MAAM,UAAU,GAAG,QAAQ,CAC/B,kBAAkB,EAClB,eAAe,EACf,KAAK,CAAC,UAAU,EAChB,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,UAAU,sDAA2C,CAAC;AAEnE,eAAO,MAAM,kBAAkB,gGA4D5B,CAAC"}
|
package/lib/Annotation.js
CHANGED
|
@@ -64,7 +64,7 @@ export const AnnotationProvider = () => Provider.effect(Annotation, Effect.gen(f
|
|
|
64
64
|
// `output.id`. Probe for live state with that id; treat NotFound
|
|
65
65
|
// (deleted out-of-band, or never created) as "no observed state".
|
|
66
66
|
const observed = output?.id
|
|
67
|
-
? yield* get({ id: output.id }).pipe(Effect.catchTag("NotFound", () => Effect.
|
|
67
|
+
? yield* get({ id: output.id }).pipe(Effect.catchTag("NotFound", () => Effect.undefined))
|
|
68
68
|
: undefined;
|
|
69
69
|
// Ensure — when no observed annotation exists, POST creates one
|
|
70
70
|
// and Axiom assigns the id.
|
|
@@ -90,7 +90,7 @@ export const AnnotationProvider = () => Provider.effect(Annotation, Effect.gen(f
|
|
|
90
90
|
...current,
|
|
91
91
|
id: current.id ?? output.id,
|
|
92
92
|
time: current.time ?? output.time,
|
|
93
|
-
})), Effect.catchTag("NotFound", () => Effect.
|
|
93
|
+
})), Effect.catchTag("NotFound", () => Effect.undefined));
|
|
94
94
|
}),
|
|
95
95
|
};
|
|
96
96
|
}));
|
package/lib/Annotation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Annotation.js","
|
|
1
|
+
{"version":3,"file":"Annotation.js","sources":["../src/Annotation.ts"],"names":[],"mappings":"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"}
|
package/lib/ApiToken.d.ts
CHANGED
|
@@ -60,5 +60,15 @@ export type ApiToken = Resource<"Axiom.ApiToken", ApiTokenProps, Omit<Axiom.Crea
|
|
|
60
60
|
* @product API Token
|
|
61
61
|
*/
|
|
62
62
|
export declare const ApiToken: import("alchemy/Resource").ResourceClass<ApiToken>;
|
|
63
|
+
declare const MissingApiTokenValue_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
64
|
+
readonly _tag: "MissingApiTokenValue";
|
|
65
|
+
} & Readonly<A>;
|
|
66
|
+
/** Axiom created a token but returned no bearer value. */
|
|
67
|
+
export declare class MissingApiTokenValue extends MissingApiTokenValue_base<{
|
|
68
|
+
readonly id: string;
|
|
69
|
+
}> {
|
|
70
|
+
get message(): string;
|
|
71
|
+
}
|
|
63
72
|
export declare const ApiTokenProvider: () => import("effect/Layer").Layer<Provider.Provider<ApiToken>, never, Axiom.AxiomOpContext>;
|
|
73
|
+
export {};
|
|
64
74
|
//# sourceMappingURL=ApiToken.d.ts.map
|
package/lib/ApiToken.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiToken.d.ts","
|
|
1
|
+
{"version":3,"file":"ApiToken.d.ts","sources":["../src/ApiToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAEhD,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;AAErE,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAC7B,gBAAgB,EAChB,aAAa,EACb,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,OAAO,CAAC,GAAG;IAC5C;;;;OAIG;IACH,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CAClC,EACD,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,eAAO,MAAM,QAAQ,oDAAuC,CAAC;;;;AAE7D,0DAA0D;AAC1D,qBAAa,oBAAqB,SAAQ,0BAAyC;IACjF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB,CAAC;IACA,IAAa,OAAO,WAEnB;CACF;AAED,eAAO,MAAM,gBAAgB,8FAyE1B,CAAC"}
|
package/lib/ApiToken.js
CHANGED
|
@@ -2,6 +2,7 @@ import * as Axiom from "@distilled.cloud/axiom";
|
|
|
2
2
|
import { deepEqual, isResolved } from "alchemy/Diff";
|
|
3
3
|
import * as Provider from "alchemy/Provider";
|
|
4
4
|
import { Resource } from "alchemy/Resource";
|
|
5
|
+
import * as Data from "effect/Data";
|
|
5
6
|
import * as Effect from "effect/Effect";
|
|
6
7
|
import * as Redacted from "effect/Redacted";
|
|
7
8
|
/**
|
|
@@ -52,6 +53,12 @@ import * as Redacted from "effect/Redacted";
|
|
|
52
53
|
* @product API Token
|
|
53
54
|
*/
|
|
54
55
|
export const ApiToken = Resource("Axiom.ApiToken");
|
|
56
|
+
/** Axiom created a token but returned no bearer value. */
|
|
57
|
+
export class MissingApiTokenValue extends Data.TaggedError("MissingApiTokenValue") {
|
|
58
|
+
get message() {
|
|
59
|
+
return `Axiom did not return a value for the new API token ${this.id}`;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
55
62
|
export const ApiTokenProvider = () => Provider.effect(ApiToken, Effect.gen(function* () {
|
|
56
63
|
const create = yield* Axiom.createAPIToken;
|
|
57
64
|
const get = yield* Axiom.getAPIToken;
|
|
@@ -103,11 +110,11 @@ export const ApiTokenProvider = () => Provider.effect(ApiToken, Effect.gen(funct
|
|
|
103
110
|
// once; capture it into Redacted state for downstream consumers.
|
|
104
111
|
const result = yield* create(news);
|
|
105
112
|
if (!result.token) {
|
|
106
|
-
return yield* Effect.die(new
|
|
113
|
+
return yield* Effect.die(new MissingApiTokenValue({ id: result.id }));
|
|
107
114
|
}
|
|
108
115
|
return {
|
|
109
116
|
...result,
|
|
110
|
-
token: Redacted.make(result.token),
|
|
117
|
+
token: Redacted.isRedacted(result.token) ? result.token : Redacted.make(result.token),
|
|
111
118
|
};
|
|
112
119
|
}),
|
|
113
120
|
delete: Effect.fn(function* ({ output }) {
|
|
@@ -116,7 +123,7 @@ export const ApiTokenProvider = () => Provider.effect(ApiToken, Effect.gen(funct
|
|
|
116
123
|
read: Effect.fn(function* ({ output }) {
|
|
117
124
|
if (!output?.id)
|
|
118
125
|
return undefined;
|
|
119
|
-
return yield* get({ id: output.id }).pipe(Effect.map((current) => ({ ...current, token: output.token })), Effect.catchTag("NotFound", () => Effect.
|
|
126
|
+
return yield* get({ id: output.id }).pipe(Effect.map((current) => ({ ...current, token: output.token })), Effect.catchTag("NotFound", () => Effect.undefined));
|
|
120
127
|
}),
|
|
121
128
|
};
|
|
122
129
|
}));
|
package/lib/ApiToken.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiToken.js","
|
|
1
|
+
{"version":3,"file":"ApiToken.js","sources":["../src/ApiToken.ts"],"names":[],"mappings":"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"}
|
package/lib/AuthProvider.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ export type AxiomResolvedCredentials = {
|
|
|
33
33
|
* {@link AuthProviders} registry when built. Include this in the Axiom
|
|
34
34
|
* `providers()` layer so the alchemy CLI can discover it.
|
|
35
35
|
*/
|
|
36
|
-
export declare const AxiomAuth: import("effect/Layer").Layer<never, never, import("alchemy/Auth/
|
|
36
|
+
export declare const AxiomAuth: import("effect/Layer").Layer<never, never, import("alchemy/Auth/Registry").AuthProviders | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("effect/crypto/SecureRandom").SecureRandom>;
|
|
37
37
|
/** Schema of Axiom's inline static-token values. */
|
|
38
38
|
export declare const AxiomStoredCredentials: import("effect/Schema").Codec<import("alchemy/Auth/StoredAuthProvider").StoredValues, import("alchemy/Auth/StoredAuthProvider").StoredValues, never, never>;
|
|
39
39
|
export type AxiomStoredCredentials = typeof AxiomStoredCredentials.Type;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthProvider.d.ts","
|
|
1
|
+
{"version":3,"file":"AuthProvider.d.ts","sources":["../src/AuthProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAChC;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QAAE,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACvE,GACD;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE;QAAE,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACvE,CAAC;AAwFN;;;;GAIG;AACH,eAAO,MAAM,SAAS,qNAAkB,CAAC;AAEzC,oDAAoD;AACpD,eAAO,MAAM,sBAAsB,6JAAyB,CAAC;AAC7D,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAC"}
|
package/lib/AuthProvider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthProvider.js","
|
|
1
|
+
{"version":3,"file":"AuthProvider.js","sources":["../src/AuthProvider.ts"],"names":[],"mappings":"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"}
|
package/lib/Chart.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chart.d.ts","
|
|
1
|
+
{"version":3,"file":"Chart.d.ts","sources":["../src/Chart.ts"],"names":[],"mappings":"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"}
|
package/lib/Chart.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chart.js","
|
|
1
|
+
{"version":3,"file":"Chart.js","sources":["../src/Chart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
|
package/lib/Contributions.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as Contributions from "alchemy/Contributions";
|
|
2
2
|
declare const _default: {
|
|
3
3
|
readonly name: "axiom";
|
|
4
|
-
readonly auth: Contributions.Lazy<import("effect/Layer").Layer<never, never, import("alchemy/Auth/
|
|
4
|
+
readonly auth: Contributions.Lazy<import("effect/Layer").Layer<never, never, import("alchemy/Auth/Registry").AuthProviders | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("effect/crypto/SecureRandom").SecureRandom>>;
|
|
5
5
|
};
|
|
6
6
|
export default _default;
|
|
7
7
|
//# sourceMappingURL=Contributions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Contributions.d.ts","
|
|
1
|
+
{"version":3,"file":"Contributions.d.ts","sources":["../src/Contributions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,uBAAuB,CAAC;;;;;AAEvD,wBAMG"}
|
package/lib/Contributions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Contributions.js","
|
|
1
|
+
{"version":3,"file":"Contributions.js","sources":["../src/Contributions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,uBAAuB,CAAC;AAEvD,eAAe,aAAa,CAAC,IAAI,CAAC;IAChC,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,aAAa,CAAC,IAAI,CACtB,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,EACjC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAC7B;CACF,CAAC,CAAC"}
|
package/lib/Credentials.d.ts
CHANGED
|
@@ -6,5 +6,5 @@ export { Credentials, CredentialsFromEnv, DEFAULT_API_BASE_URL, } from "@distill
|
|
|
6
6
|
* AuthProvider using the configured profile (defaults to "default", overridable
|
|
7
7
|
* with the current Alchemy profile).
|
|
8
8
|
*/
|
|
9
|
-
export declare const fromAuthProvider: () => Layer.Layer<Credentials, never, import("alchemy/Auth/
|
|
9
|
+
export declare const fromAuthProvider: () => Layer.Layer<Credentials, never, import("alchemy/Auth/Registry").AuthProviders | import("alchemy/Auth/Profile").ProfileStore>;
|
|
10
10
|
//# sourceMappingURL=Credentials.d.ts.map
|
package/lib/Credentials.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Credentials.d.ts","
|
|
1
|
+
{"version":3,"file":"Credentials.d.ts","sources":["../src/Credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAGjE,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,oCAAoC,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,oIAQ1B,CAAC"}
|
package/lib/Credentials.js
CHANGED
|
@@ -1,30 +1,17 @@
|
|
|
1
1
|
import { Credentials } from "@distilled.cloud/axiom/Credentials";
|
|
2
2
|
import { ConfigError } from "@distilled.cloud/core/errors";
|
|
3
|
-
import {
|
|
4
|
-
import * as Effect from "effect/Effect";
|
|
3
|
+
import { lazyCredentials } from "alchemy/Auth/Resolve";
|
|
5
4
|
import * as Layer from "effect/Layer";
|
|
6
|
-
import
|
|
7
|
-
import { AXIOM_AUTH_PROVIDER_NAME, } from "./AuthProvider.js";
|
|
5
|
+
import { AXIOM_AUTH_PROVIDER_NAME } from "./AuthProvider.js";
|
|
8
6
|
export { Credentials, CredentialsFromEnv, DEFAULT_API_BASE_URL, } from "@distilled.cloud/axiom/Credentials";
|
|
9
7
|
/**
|
|
10
8
|
* Build a `Credentials` layer that resolves Axiom credentials via the Alchemy
|
|
11
9
|
* AuthProvider using the configured profile (defaults to "default", overridable
|
|
12
10
|
* with the current Alchemy profile).
|
|
13
11
|
*/
|
|
14
|
-
export const fromAuthProvider = () => Layer.effect(Credentials,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
apiBaseUrl: c.apiBaseUrl,
|
|
20
|
-
orgId: c.orgId,
|
|
21
|
-
})), Match.when({ type: "pat" }, (c) => ({
|
|
22
|
-
apiKey: c.apiToken,
|
|
23
|
-
apiBaseUrl: c.apiBaseUrl,
|
|
24
|
-
orgId: c.orgId,
|
|
25
|
-
})), Match.exhaustive)), Effect.mapError((e) => ConfigError.make({
|
|
26
|
-
message: `Failed to resolve Axiom credentials from ${profileName === undefined ? "the CI environment" : `profile '${profileName}'`}: ${e.message ?? String(e)}`,
|
|
27
|
-
})))), deferUntilFirstUse);
|
|
28
|
-
return yield* resolve.pipe(orDieCredentialsUnavailable(AXIOM_AUTH_PROVIDER_NAME), Effect.cached);
|
|
29
|
-
}));
|
|
12
|
+
export const fromAuthProvider = () => Layer.effect(Credentials, lazyCredentials()(AXIOM_AUTH_PROVIDER_NAME, (creds) => ({
|
|
13
|
+
apiKey: creds.apiToken,
|
|
14
|
+
apiBaseUrl: creds.apiBaseUrl,
|
|
15
|
+
orgId: creds.orgId,
|
|
16
|
+
})));
|
|
30
17
|
//# sourceMappingURL=Credentials.js.map
|
package/lib/Credentials.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Credentials.js","
|
|
1
|
+
{"version":3,"file":"Credentials.js","sources":["../src/Credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAiC,MAAM,mBAAmB,CAAC;AAE5F,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,oCAAoC,CAAC;AAE5C;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CACnC,KAAK,CAAC,MAAM,CACV,WAAW,EACX,eAAe,EAAyC,CAAC,wBAAwB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7F,MAAM,EAAE,KAAK,CAAC,QAAQ;IACtB,UAAU,EAAE,KAAK,CAAC,UAAU;IAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;CACnB,CAAC,CAAC,CACJ,CAAC"}
|
package/lib/Dashboard.d.ts
CHANGED
|
@@ -8,13 +8,22 @@ export type Dashboard = Resource<"Axiom.Dashboard", DashboardProps, {
|
|
|
8
8
|
/** Stable Axiom dashboard `uid` (used as the path identifier). */
|
|
9
9
|
uid: string;
|
|
10
10
|
id: string;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
/** Axiom omits the audit fields on some dashboards. */
|
|
12
|
+
createdAt: string | undefined;
|
|
13
|
+
createdBy: string | undefined;
|
|
14
|
+
updatedAt: string | undefined;
|
|
15
|
+
updatedBy: string | undefined;
|
|
15
16
|
/** The full dashboard document as returned by Axiom. */
|
|
16
17
|
dashboard: Axiom.DashboardWriteResponse["dashboard"]["dashboard"];
|
|
17
|
-
}, never, Providers>;
|
|
18
|
+
}, never, Providers, DashboardLookup>;
|
|
19
|
+
/**
|
|
20
|
+
* Props for {@link Dashboard.lookup}: find a dashboard this stack
|
|
21
|
+
* doesn't manage by its id.
|
|
22
|
+
*/
|
|
23
|
+
export interface DashboardLookup {
|
|
24
|
+
/** Axiom dashboard id. */
|
|
25
|
+
uid: string;
|
|
26
|
+
}
|
|
18
27
|
/**
|
|
19
28
|
* An Axiom dashboard — a named, layout-driven collection of charts. Each
|
|
20
29
|
* dashboard takes a full document (`charts` + `layout` array of grid cells +
|
|
@@ -104,6 +113,16 @@ export type Dashboard = Resource<"Axiom.Dashboard", DashboardProps, {
|
|
|
104
113
|
* });
|
|
105
114
|
* ```
|
|
106
115
|
*
|
|
116
|
+
* ### Looking up an existing dashboard
|
|
117
|
+
* `Dashboard.lookup` references a dashboard Alchemy doesn't manage (created in
|
|
118
|
+
* the Axiom console or by another stack). It is read during plan/deploy,
|
|
119
|
+
* never created, updated or deleted.
|
|
120
|
+
*
|
|
121
|
+
* **Example:** Reference an existing dashboard
|
|
122
|
+
* ```typescript
|
|
123
|
+
* const ref = Axiom.Dashboard.lookup({ uid: "abc123" });
|
|
124
|
+
* ```
|
|
125
|
+
*
|
|
107
126
|
* @resource
|
|
108
127
|
* @product Dashboard
|
|
109
128
|
*/
|
package/lib/Dashboard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dashboard.d.ts","
|
|
1
|
+
{"version":3,"file":"Dashboard.d.ts","sources":["../src/Dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,uBAAuB;AACvB,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,sBAAsB,CAAC;AAE1D,MAAM,MAAM,SAAS,GAAG,QAAQ,CAC9B,iBAAiB,EACjB,cAAc,EACd;IACE,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,uDAAuD;IACvD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,wDAAwD;IACxD,SAAS,EAAE,KAAK,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC;CACnE,EACD,KAAK,EACL,SAAS,EACT,eAAe,CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqGG;AACH,eAAO,MAAM,SAAS,qDAAyC,CAAC;AAEhE,eAAO,MAAM,iBAAiB,+FA6E3B,CAAC"}
|
package/lib/Dashboard.js
CHANGED
|
@@ -91,6 +91,16 @@ import * as Effect from "effect/Effect";
|
|
|
91
91
|
* });
|
|
92
92
|
* ```
|
|
93
93
|
*
|
|
94
|
+
* ### Looking up an existing dashboard
|
|
95
|
+
* `Dashboard.lookup` references a dashboard Alchemy doesn't manage (created in
|
|
96
|
+
* the Axiom console or by another stack). It is read during plan/deploy,
|
|
97
|
+
* never created, updated or deleted.
|
|
98
|
+
*
|
|
99
|
+
* **Example:** Reference an existing dashboard
|
|
100
|
+
* ```typescript
|
|
101
|
+
* const ref = Axiom.Dashboard.lookup({ uid: "abc123" });
|
|
102
|
+
* ```
|
|
103
|
+
*
|
|
94
104
|
* @resource
|
|
95
105
|
* @product Dashboard
|
|
96
106
|
*/
|
|
@@ -104,19 +114,19 @@ export const DashboardProvider = () => Provider.effect(Dashboard, Effect.gen(fun
|
|
|
104
114
|
const toAttrsFromCreate = (envelope) => ({
|
|
105
115
|
uid: envelope.dashboard.uid,
|
|
106
116
|
id: envelope.dashboard.id,
|
|
107
|
-
createdAt: envelope.dashboard.createdAt,
|
|
108
|
-
createdBy: envelope.dashboard.createdBy,
|
|
109
|
-
updatedAt: envelope.dashboard.updatedAt,
|
|
110
|
-
updatedBy: envelope.dashboard.updatedBy,
|
|
117
|
+
createdAt: envelope.dashboard.createdAt ?? undefined,
|
|
118
|
+
createdBy: envelope.dashboard.createdBy ?? undefined,
|
|
119
|
+
updatedAt: envelope.dashboard.updatedAt ?? undefined,
|
|
120
|
+
updatedBy: envelope.dashboard.updatedBy ?? undefined,
|
|
111
121
|
dashboard: envelope.dashboard.dashboard,
|
|
112
122
|
});
|
|
113
123
|
const toAttrsFromGet = (current) => ({
|
|
114
124
|
uid: current.uid,
|
|
115
125
|
id: current.id,
|
|
116
|
-
createdAt: current.createdAt,
|
|
117
|
-
createdBy: current.createdBy,
|
|
118
|
-
updatedAt: current.updatedAt,
|
|
119
|
-
updatedBy: current.updatedBy,
|
|
126
|
+
createdAt: current.createdAt ?? undefined,
|
|
127
|
+
createdBy: current.createdBy ?? undefined,
|
|
128
|
+
updatedAt: current.updatedAt ?? undefined,
|
|
129
|
+
updatedBy: current.updatedBy ?? undefined,
|
|
120
130
|
dashboard: current.dashboard,
|
|
121
131
|
});
|
|
122
132
|
return {
|
|
@@ -127,7 +137,7 @@ export const DashboardProvider = () => Provider.effect(Dashboard, Effect.gen(fun
|
|
|
127
137
|
// (deleted out-of-band) as "no observed state" so we converge
|
|
128
138
|
// by re-creating.
|
|
129
139
|
const observed = output?.uid
|
|
130
|
-
? yield* get({ uid: output.uid }).pipe(Effect.catchTag("NotFound", () => Effect.
|
|
140
|
+
? yield* get({ uid: output.uid }).pipe(Effect.catchTag("NotFound", () => Effect.undefined))
|
|
131
141
|
: undefined;
|
|
132
142
|
// Ensure — POST mints a new dashboard with a fresh uid.
|
|
133
143
|
if (observed === undefined) {
|
|
@@ -141,10 +151,13 @@ export const DashboardProvider = () => Provider.effect(Dashboard, Effect.gen(fun
|
|
|
141
151
|
delete: Effect.fn(function* ({ output }) {
|
|
142
152
|
yield* del({ uid: output.uid }).pipe(Effect.catchTag("NotFound", () => Effect.void));
|
|
143
153
|
}),
|
|
154
|
+
lookup: Effect.fn(function* ({ uid }) {
|
|
155
|
+
return yield* get({ uid }).pipe(Effect.map(toAttrsFromGet), Effect.catchTag("NotFound", () => Effect.undefined));
|
|
156
|
+
}),
|
|
144
157
|
read: Effect.fn(function* ({ output }) {
|
|
145
158
|
if (!output?.uid)
|
|
146
159
|
return undefined;
|
|
147
|
-
return yield* get({ uid: output.uid }).pipe(Effect.map(toAttrsFromGet), Effect.catchTag("NotFound", () => Effect.
|
|
160
|
+
return yield* get({ uid: output.uid }).pipe(Effect.map(toAttrsFromGet), Effect.catchTag("NotFound", () => Effect.undefined));
|
|
148
161
|
}),
|
|
149
162
|
// Enumerate every dashboard visible to the caller. `GET /v2/dashboards`
|
|
150
163
|
// returns the full collection in one response (no pagination wrapper);
|
package/lib/Dashboard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dashboard.js","
|
|
1
|
+
{"version":3,"file":"Dashboard.js","sources":["../src/Dashboard.ts"],"names":[],"mappings":"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"}
|
package/lib/Dataset.d.ts
CHANGED
|
@@ -4,6 +4,14 @@ import { Resource } from "alchemy/Resource";
|
|
|
4
4
|
import { Stack } from "alchemy/Stack";
|
|
5
5
|
import { Stage } from "alchemy/Stage";
|
|
6
6
|
import type { Providers } from "./Providers.ts";
|
|
7
|
+
declare const DatasetUnexpectedResponse_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
8
|
+
readonly _tag: "DatasetUnexpectedResponse";
|
|
9
|
+
} & Readonly<A>;
|
|
10
|
+
export declare class DatasetUnexpectedResponse extends DatasetUnexpectedResponse_base<{
|
|
11
|
+
readonly message: string;
|
|
12
|
+
readonly cause?: unknown;
|
|
13
|
+
}> {
|
|
14
|
+
}
|
|
7
15
|
export type DatasetKind = "otel:metrics:v1" | "otel:traces:v1" | "otel:logs:v1" | "axiom:events:v1" | (string & {});
|
|
8
16
|
export type DatasetProps = {
|
|
9
17
|
/**
|
|
@@ -64,7 +72,15 @@ export type Dataset = Resource<"Axiom.Dataset", DatasetProps, {
|
|
|
64
72
|
* secret is never persisted in resource state.
|
|
65
73
|
*/
|
|
66
74
|
otelHeaders: Record<string, string>;
|
|
67
|
-
}, never, Providers>;
|
|
75
|
+
}, never, Providers, DatasetLookup>;
|
|
76
|
+
/**
|
|
77
|
+
* Props for {@link Dataset.lookup}: find a dataset this stack
|
|
78
|
+
* doesn't manage by its name.
|
|
79
|
+
*/
|
|
80
|
+
export interface DatasetLookup {
|
|
81
|
+
/** Dataset name. */
|
|
82
|
+
name: string;
|
|
83
|
+
}
|
|
68
84
|
/**
|
|
69
85
|
* An Axiom dataset — the top-level container that stores events, logs,
|
|
70
86
|
* traces, or metrics. Pick a `kind` up-front: it determines schema and how
|
|
@@ -112,9 +128,20 @@ export type Dataset = Resource<"Axiom.Dataset", DatasetProps, {
|
|
|
112
128
|
* });
|
|
113
129
|
* ```
|
|
114
130
|
*
|
|
131
|
+
* ### Looking up an existing dataset
|
|
132
|
+
* `Dataset.lookup` references a dataset Alchemy doesn't manage (created in
|
|
133
|
+
* the Axiom console or by another stack). It is read during plan/deploy,
|
|
134
|
+
* never created, updated or deleted.
|
|
135
|
+
*
|
|
136
|
+
* **Example:** Ingest into an existing dataset
|
|
137
|
+
* ```typescript
|
|
138
|
+
* const logs = Axiom.Dataset.lookup({ name: "logs" });
|
|
139
|
+
* ```
|
|
140
|
+
*
|
|
115
141
|
* @resource
|
|
116
142
|
* @product Dataset
|
|
117
143
|
*/
|
|
118
144
|
export declare const Dataset: import("alchemy/Resource").ResourceClass<Dataset>;
|
|
119
145
|
export declare const DatasetProvider: () => import("effect/Layer").Layer<Provider.Provider<Dataset>, never, Stack | Stage | Axiom.AxiomOpContext>;
|
|
146
|
+
export {};
|
|
120
147
|
//# sourceMappingURL=Dataset.d.ts.map
|
package/lib/Dataset.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dataset.d.ts","
|
|
1
|
+
{"version":3,"file":"Dataset.d.ts","sources":["../src/Dataset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAIhD,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAItC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;;;;AAEhD,qBAAa,yBAA0B,SAAQ,+BAA8C;IAC3F,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL,MAAM,MAAM,WAAW,GACnB,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,iBAAiB,GACjB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,MAAM,YAAY,GAAG;IACzB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,QAAQ,CAC5B,eAAe,EACf,YAAY,EACZ;IACE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,cAAc,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,+BAA+B;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kCAAkC;IAClC,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC,EACD,KAAK,EACL,SAAS,EACT,aAAa,CACd,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,eAAO,MAAM,OAAO,mDAAqC,CAAC;AA8B1D,eAAO,MAAM,eAAe,6GAsKzB,CAAC"}
|
package/lib/Dataset.js
CHANGED
|
@@ -6,8 +6,11 @@ import * as Provider from "alchemy/Provider";
|
|
|
6
6
|
import { Resource } from "alchemy/Resource";
|
|
7
7
|
import { Stack } from "alchemy/Stack";
|
|
8
8
|
import { Stage } from "alchemy/Stage";
|
|
9
|
+
import * as Data from "effect/Data";
|
|
9
10
|
import * as Effect from "effect/Effect";
|
|
10
11
|
import { otelDatasetHeader } from "./OtelHeaders.js";
|
|
12
|
+
export class DatasetUnexpectedResponse extends Data.TaggedError("DatasetUnexpectedResponse") {
|
|
13
|
+
}
|
|
11
14
|
/**
|
|
12
15
|
* An Axiom dataset — the top-level container that stores events, logs,
|
|
13
16
|
* traces, or metrics. Pick a `kind` up-front: it determines schema and how
|
|
@@ -55,6 +58,16 @@ import { otelDatasetHeader } from "./OtelHeaders.js";
|
|
|
55
58
|
* });
|
|
56
59
|
* ```
|
|
57
60
|
*
|
|
61
|
+
* ### Looking up an existing dataset
|
|
62
|
+
* `Dataset.lookup` references a dataset Alchemy doesn't manage (created in
|
|
63
|
+
* the Axiom console or by another stack). It is read during plan/deploy,
|
|
64
|
+
* never created, updated or deleted.
|
|
65
|
+
*
|
|
66
|
+
* **Example:** Ingest into an existing dataset
|
|
67
|
+
* ```typescript
|
|
68
|
+
* const logs = Axiom.Dataset.lookup({ name: "logs" });
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
58
71
|
* @resource
|
|
59
72
|
* @product Dataset
|
|
60
73
|
*/
|
|
@@ -82,7 +95,7 @@ const parseMarker = (description) => {
|
|
|
82
95
|
return { stack: m[1], stage: m[2], id: m[3] };
|
|
83
96
|
};
|
|
84
97
|
export const DatasetProvider = () => Provider.effect(Dataset, Effect.gen(function* () {
|
|
85
|
-
const
|
|
98
|
+
const credentials = yield* Credentials;
|
|
86
99
|
const create = yield* Axiom.createDataset;
|
|
87
100
|
const update = yield* Axiom.updateDataset;
|
|
88
101
|
const get = yield* Axiom.getDataset;
|
|
@@ -90,8 +103,11 @@ export const DatasetProvider = () => Provider.effect(Dataset, Effect.gen(functio
|
|
|
90
103
|
const del = yield* Axiom.deleteDataset;
|
|
91
104
|
const toAttrs = Effect.fn(function* (dataset) {
|
|
92
105
|
if (!dataset.edgeDeployment || !dataset.edgeDeploymentUrl) {
|
|
93
|
-
return yield*
|
|
106
|
+
return yield* new DatasetUnexpectedResponse({
|
|
107
|
+
message: `Axiom dataset "${dataset.name}" is missing its edge deployment metadata`,
|
|
108
|
+
});
|
|
94
109
|
}
|
|
110
|
+
const { apiBaseUrl } = yield* credentials;
|
|
95
111
|
const apiRoot = apiBaseUrl.replace(/\/$/, "");
|
|
96
112
|
const otelRoot = dataset.edgeDeploymentUrl.replace(/\/$/, "");
|
|
97
113
|
return {
|
|
@@ -151,7 +167,7 @@ export const DatasetProvider = () => Provider.effect(Dataset, Effect.gen(functio
|
|
|
151
167
|
// surfaced foreign datasets as `Unowned`, so by the time we land
|
|
152
168
|
// here mutation is safe.
|
|
153
169
|
const datasetId = output?.id ?? news.name;
|
|
154
|
-
const observed = yield* get({ dataset_id: datasetId }).pipe(Effect.catchTag("NotFound", () => Effect.
|
|
170
|
+
const observed = yield* get({ dataset_id: datasetId }).pipe(Effect.catchTag("NotFound", () => Effect.undefined));
|
|
155
171
|
// Ensure — POST creates the dataset. Tolerate Conflict/
|
|
156
172
|
// UnprocessableEntity as a race with a peer reconciler (or with
|
|
157
173
|
// upstream read↔create), falling through to the sync path.
|
|
@@ -193,13 +209,17 @@ export const DatasetProvider = () => Provider.effect(Dataset, Effect.gen(functio
|
|
|
193
209
|
delete: Effect.fn(function* ({ output }) {
|
|
194
210
|
yield* del({ dataset_id: output.id }).pipe(Effect.catchTag("NotFound", () => Effect.void));
|
|
195
211
|
}),
|
|
212
|
+
lookup: Effect.fn(function* ({ name }) {
|
|
213
|
+
const existing = yield* get({ dataset_id: name }).pipe(Effect.catchTag("NotFound", () => Effect.undefined));
|
|
214
|
+
return existing === undefined ? undefined : yield* toAttrs(existing);
|
|
215
|
+
}),
|
|
196
216
|
read: Effect.fn(function* ({ id, olds, output }) {
|
|
197
217
|
const stack = yield* Stack;
|
|
198
218
|
const stage = yield* Stage;
|
|
199
219
|
const datasetId = output?.id ?? olds?.name;
|
|
200
220
|
if (!datasetId)
|
|
201
221
|
return undefined;
|
|
202
|
-
const existing = yield* get({ dataset_id: datasetId }).pipe(Effect.catchTag("NotFound", () => Effect.
|
|
222
|
+
const existing = yield* get({ dataset_id: datasetId }).pipe(Effect.catchTag("NotFound", () => Effect.undefined));
|
|
203
223
|
if (!existing)
|
|
204
224
|
return undefined;
|
|
205
225
|
const ownership = parseMarker(existing.description);
|
package/lib/Dataset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dataset.js","
|
|
1
|
+
{"version":3,"file":"Dataset.js","sources":["../src/Dataset.ts"],"names":[],"mappings":"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"}
|