Skip to content

Access

Access benefit schema and validated entitlement constructor; constructing a value does not grant access.

const Access: Schema.Union<readonly [Schema.Struct<{
entitlements: Schema.$Array<Schema.brand<Schema.String, "EntitlementKey">>;
type: Schema.tag<"entitlements">;
duration: Schema.Union<readonly [Schema.Literals<readonly ...>, Schema.Struct<{
type: ...;
months: ...;
anchor: ...;
calendar: ...;
}>]>;
}>]> & {
discriminants: readonly ["entitlements"];
cases: {
entitlements: Schema.Struct<{
entitlements: Schema.$Array<Schema.brand<Schema.String, "EntitlementKey">>;
type: Schema.tag<"entitlements">;
duration: Schema.Union<readonly [Schema.Literals<readonly [..., ...]>, Schema.Struct<{
type: Schema.tag<...>;
months: Schema.brand<..., ...>;
anchor: Schema.Literal<...>;
calendar: Schema.Literal<...>;
}>]>;
}>;
};
isAnyOf: <Keys>(keys) => (value) => value is Extract<{ entitlements: readonly ((...) & (...))[]; type: "entitlements"; duration: "perpetual" | "purchased_period" | { type: "fixed"; months: number & any; anchor: "settlement"; calendar: "utc_clamped" } }, { type: Keys }>;
guards: {
entitlements: (u) => u is { entitlements: readonly (string & any)[]; type: "entitlements"; duration: "perpetual" | "purchased_period" | { type: "fixed"; months: number & any; anchor: "settlement"; calendar: "utc_clamped" } };
};
match: {
<Cases> (value, cases): Cases[keyof Cases] extends (value) => R ? any : never;
<Cases> (cases): (value) => Cases[keyof Cases] extends (value) => R ? any : never;
};
} & {
entitlements: (input) => Effect.Effect<typeof AccessBenefit.Type, Schema.SchemaError>;
};
readonly discriminants: readonly ["entitlements"];
readonly cases: {
entitlements: Schema.Struct<{
entitlements: Schema.$Array<Schema.brand<Schema.String, "EntitlementKey">>;
type: Schema.tag<"entitlements">;
duration: Schema.Union<readonly [Schema.Literals<readonly [..., ...]>, Schema.Struct<{
type: Schema.tag<...>;
months: Schema.brand<..., ...>;
anchor: Schema.Literal<...>;
calendar: Schema.Literal<...>;
}>]>;
}>;
};
entitlements: Schema.Struct<{
entitlements: Schema.$Array<Schema.brand<Schema.String, "EntitlementKey">>;
type: Schema.tag<"entitlements">;
duration: Schema.Union<readonly [Schema.Literals<readonly [..., ...]>, Schema.Struct<{
type: Schema.tag<...>;
months: Schema.brand<..., ...>;
anchor: Schema.Literal<...>;
calendar: Schema.Literal<...>;
}>]>;
}>;
readonly isAnyOf: <Keys>(keys) => (value) => value is Extract<{ entitlements: readonly ((...) & (...))[]; type: "entitlements"; duration: "perpetual" | "purchased_period" | { type: "fixed"; months: number & any; anchor: "settlement"; calendar: "utc_clamped" } }, { type: Keys }>;

Keys

readonly Keys[]

(value) => value is Extract<{ entitlements: readonly ((…) & (…))[]; type: “entitlements”; duration: “perpetual” | “purchased_period” | { type: “fixed”; months: number & any; anchor: “settlement”; calendar: “utc_clamped” } }, { type: Keys }>

readonly guards: {
entitlements: (u) => u is { entitlements: readonly (string & any)[]; type: "entitlements"; duration: "perpetual" | "purchased_period" | { type: "fixed"; months: number & any; anchor: "settlement"; calendar: "utc_clamped" } };
};
entitlements: (u) => u is { entitlements: readonly (string & any)[]; type: "entitlements"; duration: "perpetual" | "purchased_period" | { type: "fixed"; months: number & any; anchor: "settlement"; calendar: "utc_clamped" } };

unknown

u is { entitlements: readonly (string & any)[]; type: “entitlements”; duration: “perpetual” | “purchased_period” | { type: “fixed”; months: number & any; anchor: “settlement”; calendar: “utc_clamped” } }

readonly match: {
<Cases> (value, cases): Cases[keyof Cases] extends (value) => R ? any : never;
<Cases> (cases): (value) => Cases[keyof Cases] extends (value) => R ? any : never;
};
<Cases>(value, cases): Cases[keyof Cases] extends (value) => R ? any : never;

Cases extends { [key: string]: (value) => any; }

readonly string & any[]

"entitlements"

| "perpetual" | "purchased_period" | { type: "fixed"; months: number & any; anchor: "settlement"; calendar: "utc_clamped"; }

Cases

Cases[keyof Cases] extends (value) => R ? any : never

<Cases>(cases): (value) => Cases[keyof Cases] extends (value) => R ? any : never;

Cases extends { [key: string]: (value) => any; }

Cases

(value) => Cases[keyof Cases] extends (value) => R ? any : never

entitlements: (input) => Effect.Effect<typeof AccessBenefit.Type, Schema.SchemaError>;

Parses an entitlement contribution without requiring its wire-format tag.

Omit<typeof AccessBenefit.Encoded, "type">

Effect.Effect<typeof AccessBenefit.Type, Schema.SchemaError>