-module(lightspeed@platform@turnkey_presets).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/lightspeed/platform/turnkey_presets.gleam").
-export([profile_version_label/0, override_hook/4, secure_saas_preset/0, secure_marketplace_preset/0, secure_operations_preset/0, reference_presets/0, required_critical_flows/0, reference_scenarios/0, name/1, scaffold_command/1, override_hooks/1, requires_framework_internal_edits/1, scenario_name/1, scenario_flows/1, scenario_preset/1, flow_label/1, seam_label/1, with_override_hook/2, has_explicit_override_seams/1, starter_scaffold_ready/1, valid/1, secure_defaults/1, override_without_internal_edits/1, scaffoldable_secure_baseline/1, supports_flow/2, scenario_certified/1, override_surface_signature/1, critical_flow_signature/1, signature/1, scenario_signature/1, fixture_snapshots/0, snapshot_signature/0]).
-export_type([preset_seam/0, override_hook/0, auth_defaults/0, admin_defaults/0, billing_defaults/0, policy_defaults/0, email_defaults/0, queue_defaults/0, starter_preset/0, critical_flow/0, reference_scenario/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(" Turnkey app-platform defaults and presets contracts for M58.\n").
-type preset_seam() :: auth_seam |
admin_seam |
billing_seam |
policy_seam |
email_seam |
queue_seam.
-type override_hook() :: {override_hook,
preset_seam(),
binary(),
binary(),
binary()}.
-type auth_defaults() :: {auth_defaults,
binary(),
integer(),
boolean(),
boolean(),
integer()}.
-type admin_defaults() :: {admin_defaults,
binary(),
binary(),
boolean(),
binary()}.
-type billing_defaults() :: {billing_defaults,
binary(),
boolean(),
boolean(),
boolean()}.
-type policy_defaults() :: {policy_defaults,
binary(),
boolean(),
boolean(),
boolean()}.
-type email_defaults() :: {email_defaults,
binary(),
boolean(),
boolean(),
boolean()}.
-type queue_defaults() :: {queue_defaults,
binary(),
integer(),
boolean(),
boolean(),
boolean()}.
-type starter_preset() :: {starter_preset,
binary(),
binary(),
auth_defaults(),
admin_defaults(),
billing_defaults(),
policy_defaults(),
email_defaults(),
queue_defaults(),
list(override_hook()),
boolean()}.
-type critical_flow() :: signup_with_mfa_flow |
admin_break_glass_approval_flow |
billing_webhook_reconciliation_flow |
policy_denied_audit_trail_flow |
email_verification_delivery_flow |
queue_replay_recovery_flow.
-type reference_scenario() :: {reference_scenario,
binary(),
starter_preset(),
list(critical_flow()),
binary()}.
-file("src/lightspeed/platform/turnkey_presets.gleam", 128).
?DOC(" Stable M58 profile version label.\n").
-spec profile_version_label() -> binary().
profile_version_label() ->
<<"m58.profile.v"/utf8, (erlang:integer_to_binary(1))/binary>>.
-file("src/lightspeed/platform/turnkey_presets.gleam", 383).
?DOC(" Build one override hook.\n").
-spec override_hook(preset_seam(), binary(), binary(), binary()) -> override_hook().
override_hook(Seam, Module, Hook, Rationale) ->
{override_hook, Seam, Module, Hook, Rationale}.
-file("src/lightspeed/platform/turnkey_presets.gleam", 580).
-spec default_override_hooks() -> list(override_hook()).
default_override_hooks() ->
[override_hook(
auth_seam,
<<"MyApp.Platform.AuthOverrides"/utf8>>,
<<"resolve_login_policy"/utf8>>,
<<"adapt login/session controls for external identity boundaries"/utf8>>
),
override_hook(
admin_seam,
<<"MyApp.Platform.AdminOverrides"/utf8>>,
<<"authorize_break_glass"/utf8>>,
<<"require org-specific approval constraints for admin escalation"/utf8>>
),
override_hook(
billing_seam,
<<"MyApp.Platform.BillingOverrides"/utf8>>,
<<"transform_invoice_webhook"/utf8>>,
<<"map provider webhook payloads to tenant billing policy"/utf8>>
),
override_hook(
policy_seam,
<<"MyApp.Platform.PolicyOverrides"/utf8>>,
<<"resolve_policy_context"/utf8>>,
<<"inject domain scope attributes for policy decisions"/utf8>>
),
override_hook(
email_seam,
<<"MyApp.Platform.EmailOverrides"/utf8>>,
<<"customize_delivery_channel"/utf8>>,
<<"route signed templates through tenant delivery controls"/utf8>>
),
override_hook(
queue_seam,
<<"MyApp.Platform.QueueOverrides"/utf8>>,
<<"route_retry_backoff"/utf8>>,
<<"map retry strategy to tenant/class-specific queue policy"/utf8>>
)].
-file("src/lightspeed/platform/turnkey_presets.gleam", 133).
?DOC(" Secure SaaS starter preset.\n").
-spec secure_saas_preset() -> starter_preset().
secure_saas_preset() ->
{starter_preset,
<<"secure_saas"/utf8>>,
<<"lightspeed new acme_portal --preset secure_saas"/utf8>>,
{auth_defaults, <<"MyApp.Auth.Password"/utf8>>, 480, true, true, 14},
{admin_defaults,
<<"MyApp.Admin.Console"/utf8>>,
<<"MyApp.Admin.AuditSink"/utf8>>,
true,
<<"platform_admin"/utf8>>},
{billing_defaults, <<"MyApp.Billing.Stripe"/utf8>>, true, true, true},
{policy_defaults, <<"MyApp.Policy.Rbac"/utf8>>, true, true, true},
{email_defaults, <<"MyApp.Email.Transactional"/utf8>>, true, true, true},
{queue_defaults, <<"MyApp.Queue.Worker"/utf8>>, 6, true, true, true},
default_override_hooks(),
false}.
-file("src/lightspeed/platform/turnkey_presets.gleam", 181).
?DOC(" Secure marketplace starter preset.\n").
-spec secure_marketplace_preset() -> starter_preset().
secure_marketplace_preset() ->
{starter_preset,
<<"secure_marketplace"/utf8>>,
<<"lightspeed new market_hub --preset secure_marketplace"/utf8>>,
{auth_defaults, <<"MyApp.Auth.Oidc"/utf8>>, 360, true, true, 12},
{admin_defaults,
<<"MyApp.Admin.Backoffice"/utf8>>,
<<"MyApp.Admin.AuditSink"/utf8>>,
true,
<<"market_admin"/utf8>>},
{billing_defaults, <<"MyApp.Billing.Hybrid"/utf8>>, true, true, true},
{policy_defaults, <<"MyApp.Policy.Abac"/utf8>>, true, true, true},
{email_defaults, <<"MyApp.Email.Transactional"/utf8>>, true, true, true},
{queue_defaults, <<"MyApp.Queue.Worker"/utf8>>, 5, true, true, true},
default_override_hooks(),
false}.
-file("src/lightspeed/platform/turnkey_presets.gleam", 229).
?DOC(" Secure operations-heavy starter preset.\n").
-spec secure_operations_preset() -> starter_preset().
secure_operations_preset() ->
{starter_preset,
<<"secure_operations"/utf8>>,
<<"lightspeed new ops_center --preset secure_operations"/utf8>>,
{auth_defaults, <<"MyApp.Auth.Password"/utf8>>, 720, true, true, 16},
{admin_defaults,
<<"MyApp.Admin.Console"/utf8>>,
<<"MyApp.Admin.AuditSink"/utf8>>,
true,
<<"ops_super_admin"/utf8>>},
{billing_defaults, <<"MyApp.Billing.Paddle"/utf8>>, true, true, true},
{policy_defaults, <<"MyApp.Policy.Rbac"/utf8>>, true, true, true},
{email_defaults, <<"MyApp.Email.Transactional"/utf8>>, true, true, true},
{queue_defaults, <<"MyApp.Queue.Worker"/utf8>>, 8, true, true, true},
default_override_hooks(),
false}.
-file("src/lightspeed/platform/turnkey_presets.gleam", 277).
?DOC(" Deterministic M58 reference presets.\n").
-spec reference_presets() -> list(starter_preset()).
reference_presets() ->
[secure_saas_preset(),
secure_marketplace_preset(),
secure_operations_preset()].
-file("src/lightspeed/platform/turnkey_presets.gleam", 286).
?DOC(" Required critical flows for M58 certification.\n").
-spec required_critical_flows() -> list(critical_flow()).
required_critical_flows() ->
[signup_with_mfa_flow,
admin_break_glass_approval_flow,
billing_webhook_reconciliation_flow,
policy_denied_audit_trail_flow,
email_verification_delivery_flow,
queue_replay_recovery_flow].
-file("src/lightspeed/platform/turnkey_presets.gleam", 298).
?DOC(" Deterministic reference scenarios for fixture certification.\n").
-spec reference_scenarios() -> list(reference_scenario()).
reference_scenarios() ->
Flows = required_critical_flows(),
[{reference_scenario,
<<"saas_secure_baseline"/utf8>>,
secure_saas_preset(),
Flows,
<<"m58-saas-001"/utf8>>},
{reference_scenario,
<<"marketplace_secure_baseline"/utf8>>,
secure_marketplace_preset(),
Flows,
<<"m58-market-001"/utf8>>},
{reference_scenario,
<<"operations_secure_baseline"/utf8>>,
secure_operations_preset(),
Flows,
<<"m58-ops-001"/utf8>>}].
-file("src/lightspeed/platform/turnkey_presets.gleam", 324).
?DOC(" Preset name accessor.\n").
-spec name(starter_preset()) -> binary().
name(Preset) ->
erlang:element(2, Preset).
-file("src/lightspeed/platform/turnkey_presets.gleam", 329).
?DOC(" One-command scaffold accessor.\n").
-spec scaffold_command(starter_preset()) -> binary().
scaffold_command(Preset) ->
erlang:element(3, Preset).
-file("src/lightspeed/platform/turnkey_presets.gleam", 334).
?DOC(" Override hooks accessor.\n").
-spec override_hooks(starter_preset()) -> list(override_hook()).
override_hooks(Preset) ->
erlang:element(10, Preset).
-file("src/lightspeed/platform/turnkey_presets.gleam", 339).
?DOC(" Framework-internal-edits accessor.\n").
-spec requires_framework_internal_edits(starter_preset()) -> boolean().
requires_framework_internal_edits(Preset) ->
erlang:element(11, Preset).
-file("src/lightspeed/platform/turnkey_presets.gleam", 344).
?DOC(" Scenario name accessor.\n").
-spec scenario_name(reference_scenario()) -> binary().
scenario_name(Scenario) ->
erlang:element(2, Scenario).
-file("src/lightspeed/platform/turnkey_presets.gleam", 349).
?DOC(" Scenario flows accessor.\n").
-spec scenario_flows(reference_scenario()) -> list(critical_flow()).
scenario_flows(Scenario) ->
erlang:element(4, Scenario).
-file("src/lightspeed/platform/turnkey_presets.gleam", 354).
?DOC(" Scenario preset accessor.\n").
-spec scenario_preset(reference_scenario()) -> starter_preset().
scenario_preset(Scenario) ->
erlang:element(3, Scenario).
-file("src/lightspeed/platform/turnkey_presets.gleam", 359).
?DOC(" Critical flow label.\n").
-spec flow_label(critical_flow()) -> binary().
flow_label(Flow) ->
case Flow of
signup_with_mfa_flow ->
<<"signup_with_mfa"/utf8>>;
admin_break_glass_approval_flow ->
<<"admin_break_glass_approval"/utf8>>;
billing_webhook_reconciliation_flow ->
<<"billing_webhook_reconciliation"/utf8>>;
policy_denied_audit_trail_flow ->
<<"policy_denied_audit_trail"/utf8>>;
email_verification_delivery_flow ->
<<"email_verification_delivery"/utf8>>;
queue_replay_recovery_flow ->
<<"queue_replay_recovery"/utf8>>
end.
-file("src/lightspeed/platform/turnkey_presets.gleam", 371).
?DOC(" Override seam label.\n").
-spec seam_label(preset_seam()) -> binary().
seam_label(Seam) ->
case Seam of
auth_seam ->
<<"auth"/utf8>>;
admin_seam ->
<<"admin"/utf8>>;
billing_seam ->
<<"billing"/utf8>>;
policy_seam ->
<<"policy"/utf8>>;
email_seam ->
<<"email"/utf8>>;
queue_seam ->
<<"queue"/utf8>>
end.
-file("src/lightspeed/platform/turnkey_presets.gleam", 646).
-spec override_hook_equal(override_hook(), override_hook()) -> boolean().
override_hook_equal(Left, Right) ->
((erlang:element(2, Left) =:= erlang:element(2, Right)) andalso (erlang:element(
3,
Left
)
=:= erlang:element(3, Right)))
andalso (erlang:element(4, Left) =:= erlang:element(4, Right)).
-file("src/lightspeed/platform/turnkey_presets.gleam", 632).
-spec append_override_if_missing(list(override_hook()), override_hook()) -> list(override_hook()).
append_override_if_missing(Overrides, New_hook) ->
case Overrides of
[] ->
[New_hook];
[Existing | Rest] ->
case override_hook_equal(Existing, New_hook) of
true ->
Overrides;
false ->
[Existing | append_override_if_missing(Rest, New_hook)]
end
end.
-file("src/lightspeed/platform/turnkey_presets.gleam", 393).
?DOC(" Add one override hook when missing.\n").
-spec with_override_hook(starter_preset(), override_hook()) -> starter_preset().
with_override_hook(Preset, New_hook) ->
{starter_preset,
erlang:element(2, Preset),
erlang:element(3, Preset),
erlang:element(4, Preset),
erlang:element(5, Preset),
erlang:element(6, Preset),
erlang:element(7, Preset),
erlang:element(8, Preset),
erlang:element(9, Preset),
append_override_if_missing(erlang:element(10, Preset), New_hook),
erlang:element(11, Preset)}.
-file("src/lightspeed/platform/turnkey_presets.gleam", 715).
-spec seam_present(list(override_hook()), preset_seam()) -> boolean().
seam_present(Overrides, Seam) ->
case Overrides of
[] ->
false;
[Override | Rest] ->
case erlang:element(2, Override) =:= Seam of
true ->
true;
false ->
seam_present(Rest, Seam)
end
end.
-file("src/lightspeed/platform/turnkey_presets.gleam", 457).
?DOC(" True when every seam has at least one explicit override hook.\n").
-spec has_explicit_override_seams(starter_preset()) -> boolean().
has_explicit_override_seams(Preset) ->
((((seam_present(erlang:element(10, Preset), auth_seam) andalso seam_present(
erlang:element(10, Preset),
admin_seam
))
andalso seam_present(erlang:element(10, Preset), billing_seam))
andalso seam_present(erlang:element(10, Preset), policy_seam))
andalso seam_present(erlang:element(10, Preset), email_seam))
andalso seam_present(erlang:element(10, Preset), queue_seam).
-file("src/lightspeed/platform/turnkey_presets.gleam", 697).
-spec override_hook_valid(override_hook()) -> boolean().
override_hook_valid(Override) ->
((erlang:element(3, Override) /= <<""/utf8>>) andalso (erlang:element(
4,
Override
)
/= <<""/utf8>>))
andalso (erlang:element(5, Override) /= <<""/utf8>>).
-file("src/lightspeed/platform/turnkey_presets.gleam", 689).
-spec override_hooks_valid(list(override_hook())) -> boolean().
override_hooks_valid(Overrides) ->
case Overrides of
[] ->
true;
[Override | Rest] ->
override_hook_valid(Override) andalso override_hooks_valid(Rest)
end.
-file("src/lightspeed/platform/turnkey_presets.gleam", 682).
-spec queue_valid(queue_defaults()) -> boolean().
queue_valid(Defaults) ->
(((erlang:element(2, Defaults) /= <<""/utf8>>) andalso (erlang:element(
3,
Defaults
)
>= 3))
andalso erlang:element(4, Defaults))
andalso erlang:element(5, Defaults).
-file("src/lightspeed/platform/turnkey_presets.gleam", 676).
-spec email_valid(email_defaults()) -> boolean().
email_valid(Defaults) ->
((erlang:element(2, Defaults) /= <<""/utf8>>) andalso erlang:element(
3,
Defaults
))
andalso erlang:element(5, Defaults).
-file("src/lightspeed/platform/turnkey_presets.gleam", 670).
-spec policy_valid(policy_defaults()) -> boolean().
policy_valid(Defaults) ->
((erlang:element(2, Defaults) /= <<""/utf8>>) andalso erlang:element(
3,
Defaults
))
andalso erlang:element(4, Defaults).
-file("src/lightspeed/platform/turnkey_presets.gleam", 664).
-spec billing_valid(billing_defaults()) -> boolean().
billing_valid(Defaults) ->
((erlang:element(2, Defaults) /= <<""/utf8>>) andalso erlang:element(
3,
Defaults
))
andalso erlang:element(5, Defaults).
-file("src/lightspeed/platform/turnkey_presets.gleam", 658).
-spec admin_valid(admin_defaults()) -> boolean().
admin_valid(Defaults) ->
((erlang:element(2, Defaults) /= <<""/utf8>>) andalso (erlang:element(
3,
Defaults
)
/= <<""/utf8>>))
andalso (erlang:element(5, Defaults) /= <<""/utf8>>).
-file("src/lightspeed/platform/turnkey_presets.gleam", 652).
-spec auth_valid(auth_defaults()) -> boolean().
auth_valid(Defaults) ->
((erlang:element(2, Defaults) /= <<""/utf8>>) andalso (erlang:element(
3,
Defaults
)
>= 60))
andalso (erlang:element(6, Defaults) >= 12).
-file("src/lightspeed/platform/turnkey_presets.gleam", 438).
?DOC(" True when scaffold command represents one safe starter invocation.\n").
-spec starter_scaffold_ready(starter_preset()) -> boolean().
starter_scaffold_ready(Preset) ->
Command = erlang:element(3, Preset),
((((((Command /= <<""/utf8>>) andalso gleam_stdlib:string_starts_with(
Command,
<<"lightspeed new "/utf8>>
))
andalso (string:length(Command) > 20))
andalso not gleam_stdlib:contains_string(Command, <<"&&"/utf8>>))
andalso not gleam_stdlib:contains_string(Command, <<"||"/utf8>>))
andalso not gleam_stdlib:contains_string(Command, <<";"/utf8>>))
andalso not gleam_stdlib:contains_string(Command, <<"|"/utf8>>).
-file("src/lightspeed/platform/turnkey_presets.gleam", 404).
?DOC(" Validate one starter preset contract.\n").
-spec valid(starter_preset()) -> boolean().
valid(Preset) ->
(((((((((erlang:element(2, Preset) /= <<""/utf8>>) andalso starter_scaffold_ready(
Preset
))
andalso auth_valid(erlang:element(4, Preset)))
andalso admin_valid(erlang:element(5, Preset)))
andalso billing_valid(erlang:element(6, Preset)))
andalso policy_valid(erlang:element(7, Preset)))
andalso email_valid(erlang:element(8, Preset)))
andalso queue_valid(erlang:element(9, Preset)))
andalso override_hooks_valid(erlang:element(10, Preset)))
andalso has_explicit_override_seams(Preset).
-file("src/lightspeed/platform/turnkey_presets.gleam", 418).
?DOC(" True when secure defaults are prewired.\n").
-spec secure_defaults(starter_preset()) -> boolean().
secure_defaults(Preset) ->
((((((((((((((erlang:element(4, erlang:element(4, Preset)) andalso erlang:element(
5,
erlang:element(4, Preset)
))
andalso (erlang:element(6, erlang:element(4, Preset)) >= 12))
andalso erlang:element(4, erlang:element(5, Preset)))
andalso (erlang:element(5, erlang:element(5, Preset)) /= <<""/utf8>>))
andalso erlang:element(3, erlang:element(6, Preset)))
andalso erlang:element(5, erlang:element(6, Preset)))
andalso erlang:element(3, erlang:element(7, Preset)))
andalso erlang:element(4, erlang:element(7, Preset)))
andalso erlang:element(5, erlang:element(7, Preset)))
andalso erlang:element(3, erlang:element(8, Preset)))
andalso erlang:element(5, erlang:element(8, Preset)))
andalso erlang:element(4, erlang:element(8, Preset)))
andalso erlang:element(4, erlang:element(9, Preset)))
andalso erlang:element(5, erlang:element(9, Preset)))
andalso erlang:element(6, erlang:element(9, Preset)).
-file("src/lightspeed/platform/turnkey_presets.gleam", 709).
-spec override_module_external(binary()) -> boolean().
override_module_external(Module) ->
(not gleam_stdlib:contains_string(Module, <<"lightspeed/framework"/utf8>>)
andalso not gleam_stdlib:contains_string(
Module,
<<"lightspeed/component"/utf8>>
))
andalso not gleam_stdlib:contains_string(
Module,
<<"lightspeed/platform"/utf8>>
).
-file("src/lightspeed/platform/turnkey_presets.gleam", 701).
-spec hooks_external(list(override_hook())) -> boolean().
hooks_external(Overrides) ->
case Overrides of
[] ->
true;
[Override | Rest] ->
override_module_external(erlang:element(3, Override)) andalso hooks_external(
Rest
)
end.
-file("src/lightspeed/platform/turnkey_presets.gleam", 451).
?DOC(" True when overrides avoid framework internals edits.\n").
-spec override_without_internal_edits(starter_preset()) -> boolean().
override_without_internal_edits(Preset) ->
not erlang:element(11, Preset) andalso hooks_external(
erlang:element(10, Preset)
).
-file("src/lightspeed/platform/turnkey_presets.gleam", 467).
?DOC(" True when one preset is ready as secure turnkey baseline.\n").
-spec scaffoldable_secure_baseline(starter_preset()) -> boolean().
scaffoldable_secure_baseline(Preset) ->
(valid(Preset) andalso secure_defaults(Preset)) andalso override_without_internal_edits(
Preset
).
-file("src/lightspeed/platform/turnkey_presets.gleam", 474).
?DOC(" True when one critical flow is supported by preset defaults.\n").
-spec supports_flow(starter_preset(), critical_flow()) -> boolean().
supports_flow(Preset, Flow) ->
case Flow of
signup_with_mfa_flow ->
(erlang:element(4, erlang:element(4, Preset)) andalso erlang:element(
5,
erlang:element(4, Preset)
))
andalso (erlang:element(6, erlang:element(4, Preset)) >= 12);
admin_break_glass_approval_flow ->
(erlang:element(4, erlang:element(5, Preset)) andalso (erlang:element(
5,
erlang:element(5, Preset)
)
/= <<""/utf8>>))
andalso (erlang:element(3, erlang:element(5, Preset)) /= <<""/utf8>>);
billing_webhook_reconciliation_flow ->
(erlang:element(3, erlang:element(6, Preset)) andalso erlang:element(
5,
erlang:element(6, Preset)
))
andalso erlang:element(4, erlang:element(6, Preset));
policy_denied_audit_trail_flow ->
(erlang:element(3, erlang:element(7, Preset)) andalso erlang:element(
4,
erlang:element(7, Preset)
))
andalso erlang:element(5, erlang:element(7, Preset));
email_verification_delivery_flow ->
(erlang:element(3, erlang:element(8, Preset)) andalso erlang:element(
4,
erlang:element(8, Preset)
))
andalso erlang:element(5, erlang:element(8, Preset));
queue_replay_recovery_flow ->
((erlang:element(4, erlang:element(9, Preset)) andalso erlang:element(
5,
erlang:element(9, Preset)
))
andalso erlang:element(6, erlang:element(9, Preset)))
andalso (erlang:element(3, erlang:element(9, Preset)) >= 3)
end.
-file("src/lightspeed/platform/turnkey_presets.gleam", 621).
-spec flow_list_supported(starter_preset(), list(critical_flow())) -> boolean().
flow_list_supported(Preset, Flows) ->
case Flows of
[] ->
true;
[Flow | Rest] ->
supports_flow(Preset, Flow) andalso flow_list_supported(
Preset,
Rest
)
end.
-file("src/lightspeed/platform/turnkey_presets.gleam", 505).
?DOC(" True when one reference scenario is certified.\n").
-spec scenario_certified(reference_scenario()) -> boolean().
scenario_certified(Scenario) ->
(((erlang:element(2, Scenario) /= <<""/utf8>>) andalso (erlang:element(
5,
Scenario
)
/= <<""/utf8>>))
andalso scaffoldable_secure_baseline(erlang:element(3, Scenario)))
andalso flow_list_supported(
erlang:element(3, Scenario),
erlang:element(4, Scenario)
).
-file("src/lightspeed/platform/turnkey_presets.gleam", 801).
-spec join_with(binary(), list(binary())) -> binary().
join_with(Separator, Values) ->
case Values of
[] ->
<<""/utf8>>;
[First | Rest] ->
gleam@list:fold(
Rest,
First,
fun(Accumulator, Value) ->
<<<<Accumulator/binary, Separator/binary>>/binary,
Value/binary>>
end
)
end.
-file("src/lightspeed/platform/turnkey_presets.gleam", 726).
-spec override_hook_label(override_hook()) -> binary().
override_hook_label(Override) ->
<<<<<<<<(seam_label(erlang:element(2, Override)))/binary, ":"/utf8>>/binary,
(erlang:element(3, Override))/binary>>/binary,
"#"/utf8>>/binary,
(erlang:element(4, Override))/binary>>.
-file("src/lightspeed/platform/turnkey_presets.gleam", 513).
?DOC(" Stable override surface signature for one preset.\n").
-spec override_surface_signature(starter_preset()) -> binary().
override_surface_signature(Preset) ->
Entries = gleam@list:map(
erlang:element(10, Preset),
fun override_hook_label/1
),
join_with(<<","/utf8>>, Entries).
-file("src/lightspeed/platform/turnkey_presets.gleam", 794).
-spec bool_label(boolean()) -> binary().
bool_label(Value) ->
case Value of
true ->
<<"true"/utf8>>;
false ->
<<"false"/utf8>>
end.
-file("src/lightspeed/platform/turnkey_presets.gleam", 519).
?DOC(" Stable critical-flow support signature for one preset.\n").
-spec critical_flow_signature(starter_preset()) -> binary().
critical_flow_signature(Preset) ->
Entries = gleam@list:map(
required_critical_flows(),
fun(Flow) ->
<<<<(flow_label(Flow))/binary, "="/utf8>>/binary,
(bool_label(supports_flow(Preset, Flow)))/binary>>
end
),
join_with(<<","/utf8>>, Entries).
-file("src/lightspeed/platform/turnkey_presets.gleam", 782).
-spec queue_signature(queue_defaults()) -> binary().
queue_signature(Defaults) ->
<<<<<<<<<<<<<<<<(erlang:element(2, Defaults))/binary,
":max_attempts="/utf8>>/binary,
(erlang:integer_to_binary(
erlang:element(3, Defaults)
))/binary>>/binary,
":dead_letter="/utf8>>/binary,
(bool_label(erlang:element(4, Defaults)))/binary>>/binary,
":idempotency="/utf8>>/binary,
(bool_label(erlang:element(5, Defaults)))/binary>>/binary,
":replay_checkpoint="/utf8>>/binary,
(bool_label(erlang:element(6, Defaults)))/binary>>.
-file("src/lightspeed/platform/turnkey_presets.gleam", 772).
-spec email_signature(email_defaults()) -> binary().
email_signature(Defaults) ->
<<<<<<<<<<<<(erlang:element(2, Defaults))/binary, ":domain_auth="/utf8>>/binary,
(bool_label(erlang:element(3, Defaults)))/binary>>/binary,
":suppression_list="/utf8>>/binary,
(bool_label(erlang:element(4, Defaults)))/binary>>/binary,
":signed_templates="/utf8>>/binary,
(bool_label(erlang:element(5, Defaults)))/binary>>.
-file("src/lightspeed/platform/turnkey_presets.gleam", 762).
-spec policy_signature(policy_defaults()) -> binary().
policy_signature(Defaults) ->
<<<<<<<<<<<<(erlang:element(2, Defaults))/binary, ":deny_by_default="/utf8>>/binary,
(bool_label(erlang:element(3, Defaults)))/binary>>/binary,
":tenant_scoped="/utf8>>/binary,
(bool_label(erlang:element(4, Defaults)))/binary>>/binary,
":trace="/utf8>>/binary,
(bool_label(erlang:element(5, Defaults)))/binary>>.
-file("src/lightspeed/platform/turnkey_presets.gleam", 752).
-spec billing_signature(billing_defaults()) -> binary().
billing_signature(Defaults) ->
<<<<<<<<<<<<(erlang:element(2, Defaults))/binary, ":webhook="/utf8>>/binary,
(bool_label(erlang:element(3, Defaults)))/binary>>/binary,
":dunning="/utf8>>/binary,
(bool_label(erlang:element(4, Defaults)))/binary>>/binary,
":idempotency="/utf8>>/binary,
(bool_label(erlang:element(5, Defaults)))/binary>>.
-file("src/lightspeed/platform/turnkey_presets.gleam", 742).
-spec admin_signature(admin_defaults()) -> binary().
admin_signature(Defaults) ->
<<<<<<<<<<<<(erlang:element(2, Defaults))/binary, ":audit="/utf8>>/binary,
(erlang:element(3, Defaults))/binary>>/binary,
":approval="/utf8>>/binary,
(bool_label(erlang:element(4, Defaults)))/binary>>/binary,
":break_glass="/utf8>>/binary,
(erlang:element(5, Defaults))/binary>>.
-file("src/lightspeed/platform/turnkey_presets.gleam", 730).
-spec auth_signature(auth_defaults()) -> binary().
auth_signature(Defaults) ->
<<<<<<<<<<<<<<<<(erlang:element(2, Defaults))/binary, ":ttl="/utf8>>/binary,
(erlang:integer_to_binary(
erlang:element(3, Defaults)
))/binary>>/binary,
":mfa="/utf8>>/binary,
(bool_label(erlang:element(4, Defaults)))/binary>>/binary,
":passkeys="/utf8>>/binary,
(bool_label(erlang:element(5, Defaults)))/binary>>/binary,
":pwd_min="/utf8>>/binary,
(erlang:integer_to_binary(erlang:element(6, Defaults)))/binary>>.
-file("src/lightspeed/platform/turnkey_presets.gleam", 529).
?DOC(" Stable preset signature.\n").
-spec signature(starter_preset()) -> binary().
signature(Preset) ->
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"preset:"/utf8,
(erlang:element(
2,
Preset
))/binary>>/binary,
"|scaffold="/utf8>>/binary,
(erlang:element(
3,
Preset
))/binary>>/binary,
"|auth="/utf8>>/binary,
(auth_signature(
erlang:element(
4,
Preset
)
))/binary>>/binary,
"|admin="/utf8>>/binary,
(admin_signature(
erlang:element(
5,
Preset
)
))/binary>>/binary,
"|billing="/utf8>>/binary,
(billing_signature(
erlang:element(6, Preset)
))/binary>>/binary,
"|policy="/utf8>>/binary,
(policy_signature(
erlang:element(7, Preset)
))/binary>>/binary,
"|email="/utf8>>/binary,
(email_signature(erlang:element(8, Preset)))/binary>>/binary,
"|queue="/utf8>>/binary,
(queue_signature(erlang:element(9, Preset)))/binary>>/binary,
"|override_surface="/utf8>>/binary,
(override_surface_signature(Preset))/binary>>/binary,
"|internal_edits="/utf8>>/binary,
(bool_label(erlang:element(11, Preset)))/binary>>.
-file("src/lightspeed/platform/turnkey_presets.gleam", 553).
?DOC(" Stable scenario signature.\n").
-spec scenario_signature(reference_scenario()) -> binary().
scenario_signature(Scenario) ->
<<<<<<<<<<<<<<"scenario:"/utf8, (erlang:element(2, Scenario))/binary>>/binary,
"|seed="/utf8>>/binary,
(erlang:element(5, Scenario))/binary>>/binary,
"|preset="/utf8>>/binary,
(signature(erlang:element(3, Scenario)))/binary>>/binary,
"|flows="/utf8>>/binary,
(critical_flow_signature(erlang:element(3, Scenario)))/binary>>.
-file("src/lightspeed/platform/turnkey_presets.gleam", 565).
?DOC(" Deterministic fixture snapshots for M58 drift gates.\n").
-spec fixture_snapshots() -> list({binary(), binary()}).
fixture_snapshots() ->
gleam@list:map(
reference_presets(),
fun(Preset) -> {erlang:element(2, Preset), signature(Preset)} end
).
-file("src/lightspeed/platform/turnkey_presets.gleam", 570).
?DOC(" Deterministic M58 snapshot signature.\n").
-spec snapshot_signature() -> binary().
snapshot_signature() ->
Entries = gleam@list:map(
fixture_snapshots(),
fun(Entry) ->
{Label, Value} = Entry,
<<<<Label/binary, "="/utf8>>/binary, Value/binary>>
end
),
<<<<(profile_version_label())/binary, "|"/utf8>>/binary,
(join_with(<<";"/utf8>>, Entries))/binary>>.