@lessly/sdk-app 61.0.2 → 61.2.0

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/dist/index.js CHANGED
@@ -1,14 +1,22 @@
1
1
  // src/runtime/errors.ts
2
+ var ACCESS_DENIED_CODES = /* @__PURE__ */ new Set([
3
+ "role_denied",
4
+ "operation_uncatalogued",
5
+ "no_tool_permission"
6
+ ]);
2
7
  var LesslyApiError = class extends Error {
3
8
  status;
4
9
  code;
5
10
  body;
11
+ /** True iff this is the gateway refusing the call over the caller's access. See ACCESS_DENIED_CODES. */
12
+ accessDenied;
6
13
  constructor(status, code, message, body) {
7
14
  super(message);
8
15
  this.name = "LesslyApiError";
9
16
  this.status = status;
10
17
  this.code = code;
11
18
  this.body = body;
19
+ this.accessDenied = status === 403 && code !== null && ACCESS_DENIED_CODES.has(code);
12
20
  }
13
21
  };
14
22
  function parseErrorBody(body, status) {
@@ -17,6 +25,12 @@ function parseErrorBody(body, status) {
17
25
  const message = b?.error?.message ?? b?.message ?? `Request failed with status ${status}`;
18
26
  return new LesslyApiError(status, code, message, body);
19
27
  }
28
+ function isAccessDenied(err) {
29
+ if (err instanceof LesslyApiError) return err.accessDenied;
30
+ if (typeof err !== "object" || err === null) return false;
31
+ const { status, code } = err;
32
+ return status === 403 && typeof code === "string" && ACCESS_DENIED_CODES.has(code);
33
+ }
20
34
 
21
35
  // src/runtime/csrf.ts
22
36
  var CSRF_COOKIE = "lessly_csrf";
@@ -10275,6 +10289,678 @@ var bindings = {
10275
10289
  }
10276
10290
  };
10277
10291
 
10292
+ // src/gen/manifest.gen.ts
10293
+ var operations = {
10294
+ "analytics_catalog_get": "read",
10295
+ "analytics_dashboard_create": "write",
10296
+ "analytics_dashboard_delete": "write",
10297
+ "analytics_dashboard_get": "read",
10298
+ "analytics_dashboard_list": "read",
10299
+ "analytics_dashboard_run": "read",
10300
+ "analytics_dashboard_update": "write",
10301
+ "analytics_funnel_run": "read",
10302
+ "analytics_insight_create": "write",
10303
+ "analytics_insight_delete": "write",
10304
+ "analytics_insight_get": "read",
10305
+ "analytics_insight_list": "read",
10306
+ "analytics_insight_run": "read",
10307
+ "analytics_insight_update": "write",
10308
+ "analytics_metric_query": "read",
10309
+ "analytics_person_timeline": "read",
10310
+ "analytics_query_run": "read",
10311
+ "analytics_retention_run": "read",
10312
+ "brain_backup_create": "write",
10313
+ "brain_backup_restore": "write",
10314
+ "brain_backup_status": "read",
10315
+ "brain_backups_list": "read",
10316
+ "brain_clickup_channels_list": "read",
10317
+ "brain_clickup_connections_list": "read",
10318
+ "brain_clickup_lists_list": "read",
10319
+ "brain_clickup_spaces_list": "read",
10320
+ "brain_cognition_digest": "write",
10321
+ "brain_cognition_status": "read",
10322
+ "brain_cognition_sweep": "write",
10323
+ "brain_connector_branches_list": "read",
10324
+ "brain_connector_connections_list": "read",
10325
+ "brain_connector_repos_list": "read",
10326
+ "brain_daemon_batch_status": "read",
10327
+ "brain_daemon_create": "write",
10328
+ "brain_daemon_get": "read",
10329
+ "brain_daemon_reingest": "write",
10330
+ "brain_daemon_remove": "admin",
10331
+ "brain_daemon_run": "write",
10332
+ "brain_daemon_run_items": "read",
10333
+ "brain_daemon_runs": "read",
10334
+ "brain_daemon_status": "read",
10335
+ "brain_daemon_update": "write",
10336
+ "brain_daemons_list": "read",
10337
+ "brain_gdrive_connections_list": "read",
10338
+ "brain_knowledge_entity_memories": "read",
10339
+ "brain_knowledge_graph": "read",
10340
+ "brain_knowledge_neighborhood": "read",
10341
+ "brain_knowledge_relations": "read",
10342
+ "brain_knowledge_search": "read",
10343
+ "brain_memory_add": "write",
10344
+ "brain_memory_delete": "admin",
10345
+ "brain_memory_get": "read",
10346
+ "brain_memory_list": "read",
10347
+ "brain_memory_search": "read",
10348
+ "brain_memory_stats": "read",
10349
+ "brain_memory_update": "write",
10350
+ "brain_product_shared_memory_reset": "write",
10351
+ "brain_restore_status": "read",
10352
+ "brain_usage_report": "read",
10353
+ "consent_config_cookie_domain_upsert": "write",
10354
+ "consent_config_customization_upsert": "write",
10355
+ "consent_config_floating_icon_upsert": "write",
10356
+ "consent_config_theme_upsert": "write",
10357
+ "consent_dashboard_config_get": "read",
10358
+ "consent_dashboard_decisions_list": "read",
10359
+ "consent_dashboard_embed_snippet_get": "read",
10360
+ "consent_dashboard_stats_get": "read",
10361
+ "consent_embed_get": "read",
10362
+ "consent_providers_create": "write",
10363
+ "consent_providers_delete": "admin",
10364
+ "consent_providers_list": "read",
10365
+ "consent_providers_update": "write",
10366
+ "consent_records_export": "read",
10367
+ "consent_stats_get": "read",
10368
+ "content_channels_bind": "write",
10369
+ "content_channels_get": "read",
10370
+ "content_channels_list": "read",
10371
+ "content_channels_resume": "write",
10372
+ "content_channels_unbind": "write",
10373
+ "content_channels_update": "write",
10374
+ "content_media_create_upload_url": "write",
10375
+ "content_media_finalize": "write",
10376
+ "content_media_get": "read",
10377
+ "content_media_list": "read",
10378
+ "content_media_upload": "write",
10379
+ "content_metrics_channel_series": "read",
10380
+ "content_metrics_post_series": "read",
10381
+ "content_posts_approve": "write",
10382
+ "content_posts_attach_media": "write",
10383
+ "content_posts_create": "write",
10384
+ "content_posts_detach_media": "write",
10385
+ "content_posts_get": "read",
10386
+ "content_posts_list": "read",
10387
+ "content_posts_submit": "write",
10388
+ "content_posts_update": "write",
10389
+ "content_posts_versions": "read",
10390
+ "content_publications_cancel": "write",
10391
+ "content_publications_confirm": "write",
10392
+ "content_publications_get": "read",
10393
+ "content_publications_list": "read",
10394
+ "content_publications_publish": "write",
10395
+ "content_publications_remind": "write",
10396
+ "content_publications_reschedule": "write",
10397
+ "content_publications_schedule": "write",
10398
+ "content_publications_validate": "read",
10399
+ "deployment_alert_create": "write",
10400
+ "deployment_alert_delete": "admin",
10401
+ "deployment_alert_events_list": "read",
10402
+ "deployment_alert_list": "read",
10403
+ "deployment_alert_update": "write",
10404
+ "deployment_analytics_query": "read",
10405
+ "deployment_build_get": "read",
10406
+ "deployment_build_list": "read",
10407
+ "deployment_build_logs": "read",
10408
+ "deployment_canvas_get": "read",
10409
+ "deployment_canvas_move_node": "write",
10410
+ "deployment_cloud_sql_backfill_log_flags": "write",
10411
+ "deployment_cloud_sql_database_attach": "write",
10412
+ "deployment_cloud_sql_database_create": "write",
10413
+ "deployment_cloud_sql_database_delete": "admin",
10414
+ "deployment_cloud_sql_database_detach": "write",
10415
+ "deployment_cloud_sql_database_get": "read",
10416
+ "deployment_cloud_sql_database_list": "read",
10417
+ "deployment_cloud_sql_instance_backup": "write",
10418
+ "deployment_cloud_sql_instance_backup_list": "read",
10419
+ "deployment_cloud_sql_instance_create": "write",
10420
+ "deployment_cloud_sql_instance_delete": "admin",
10421
+ "deployment_cloud_sql_instance_get": "read",
10422
+ "deployment_cloud_sql_instance_list": "read",
10423
+ "deployment_cloud_sql_instance_resize": "write",
10424
+ "deployment_cloud_sql_instance_restore": "admin",
10425
+ "deployment_cloud_sql_logs": "read",
10426
+ "deployment_deployment_cancel": "write",
10427
+ "deployment_deployment_get": "read",
10428
+ "deployment_deployment_list": "read",
10429
+ "deployment_domain_add": "admin",
10430
+ "deployment_domain_allowed_list": "read",
10431
+ "deployment_domain_get": "read",
10432
+ "deployment_domain_list": "read",
10433
+ "deployment_domain_list_by_service": "read",
10434
+ "deployment_domain_redirect_www": "admin",
10435
+ "deployment_domain_remove": "admin",
10436
+ "deployment_domain_routes_add": "admin",
10437
+ "deployment_domain_routes_list": "read",
10438
+ "deployment_domain_routes_remove": "admin",
10439
+ "deployment_domain_routes_update": "admin",
10440
+ "deployment_domain_verify": "write",
10441
+ "deployment_environment_create": "write",
10442
+ "deployment_environment_delete": "admin",
10443
+ "deployment_environment_fork": "write",
10444
+ "deployment_environment_get": "read",
10445
+ "deployment_environment_list": "read",
10446
+ "deployment_environment_reconcile": "write",
10447
+ "deployment_environment_update": "write",
10448
+ "deployment_events_list_by_environment": "read",
10449
+ "deployment_events_list_by_service": "read",
10450
+ "deployment_job_run": "write",
10451
+ "deployment_job_run_logs": "read",
10452
+ "deployment_job_runs_list": "read",
10453
+ "deployment_managed_service_backup": "write",
10454
+ "deployment_managed_service_backup_list": "read",
10455
+ "deployment_managed_service_connect_info": "read",
10456
+ "deployment_managed_service_delete": "admin",
10457
+ "deployment_managed_service_get": "read",
10458
+ "deployment_managed_service_list": "read",
10459
+ "deployment_managed_service_logs": "read",
10460
+ "deployment_managed_service_provision": "write",
10461
+ "deployment_managed_service_reconcile": "write",
10462
+ "deployment_managed_service_resize": "write",
10463
+ "deployment_managed_service_restore": "admin",
10464
+ "deployment_managed_service_start": "write",
10465
+ "deployment_managed_service_stop": "write",
10466
+ "deployment_managed_service_types": "read",
10467
+ "deployment_metrics_get": "read",
10468
+ "deployment_preview_environment_create": "write",
10469
+ "deployment_preview_environment_delete": "admin",
10470
+ "deployment_preview_environment_list": "read",
10471
+ "deployment_preview_policy_get": "read",
10472
+ "deployment_preview_policy_set": "admin",
10473
+ "deployment_service_create": "write",
10474
+ "deployment_service_delete": "admin",
10475
+ "deployment_service_exec": "admin",
10476
+ "deployment_service_get": "read",
10477
+ "deployment_service_list": "read",
10478
+ "deployment_service_logs": "read",
10479
+ "deployment_service_redeploy": "write",
10480
+ "deployment_service_restart": "write",
10481
+ "deployment_service_rollback": "write",
10482
+ "deployment_service_scale": "write",
10483
+ "deployment_service_update": "write",
10484
+ "deployment_service_wake": "write",
10485
+ "deployment_ssh_command": "read",
10486
+ "deployment_ssh_key_delete": "admin",
10487
+ "deployment_ssh_key_list": "read",
10488
+ "deployment_ssh_key_register": "admin",
10489
+ "deployment_suspension_get": "read",
10490
+ "deployment_variable_list": "read",
10491
+ "deployment_variable_list_env": "read",
10492
+ "deployment_variable_list_product": "read",
10493
+ "deployment_variable_set": "write",
10494
+ "deployment_variable_set_env": "write",
10495
+ "deployment_variable_set_product": "admin",
10496
+ "deployment_variable_unset": "write",
10497
+ "deployment_variable_unset_env": "write",
10498
+ "deployment_variable_unset_product": "admin",
10499
+ "deployment_vcs_branch_list": "read",
10500
+ "deployment_vcs_connection_list": "read",
10501
+ "deployment_vcs_repo_list": "read",
10502
+ "deployment_volume_create": "write",
10503
+ "deployment_volume_delete": "admin",
10504
+ "deployment_volume_detach": "write",
10505
+ "deployment_volume_get": "read",
10506
+ "deployment_volume_list": "read",
10507
+ "deployment_volume_resize": "write",
10508
+ "mail_apikey_create": "write",
10509
+ "mail_apikey_delete": "admin",
10510
+ "mail_apikey_list": "read",
10511
+ "mail_audience_create": "write",
10512
+ "mail_audience_delete": "admin",
10513
+ "mail_audience_get": "read",
10514
+ "mail_audience_list": "read",
10515
+ "mail_audience_update": "write",
10516
+ "mail_broadcast_cancel": "write",
10517
+ "mail_broadcast_create": "write",
10518
+ "mail_broadcast_delete": "admin",
10519
+ "mail_broadcast_get": "read",
10520
+ "mail_broadcast_list": "read",
10521
+ "mail_broadcast_queue": "write",
10522
+ "mail_broadcast_stats": "read",
10523
+ "mail_broadcast_update": "write",
10524
+ "mail_contact_create": "write",
10525
+ "mail_contact_delete": "admin",
10526
+ "mail_contact_get": "read",
10527
+ "mail_contact_list": "read",
10528
+ "mail_contact_update": "write",
10529
+ "mail_domain_allowed_list": "read",
10530
+ "mail_domain_create": "write",
10531
+ "mail_domain_delete": "admin",
10532
+ "mail_domain_get": "read",
10533
+ "mail_domain_list": "read",
10534
+ "mail_domain_update": "write",
10535
+ "mail_domain_verify": "write",
10536
+ "mail_email_cancel": "write",
10537
+ "mail_email_get": "read",
10538
+ "mail_email_send": "write",
10539
+ "mail_email_send_batch": "write",
10540
+ "mail_email_update": "write",
10541
+ "mail_reputation_get": "read",
10542
+ "mail_stats_get": "read",
10543
+ "mail_suppression_add": "write",
10544
+ "mail_suppression_list": "read",
10545
+ "mail_suppression_remove": "admin",
10546
+ "mail_template_create": "write",
10547
+ "mail_template_delete": "admin",
10548
+ "mail_template_get": "read",
10549
+ "mail_template_list": "read",
10550
+ "mail_template_publish": "write",
10551
+ "mail_template_update": "write",
10552
+ "mail_usage_get": "read",
10553
+ "mail_webhook_create": "write",
10554
+ "mail_webhook_delete": "admin",
10555
+ "mail_webhook_deliveries_list": "read",
10556
+ "mail_webhook_get": "read",
10557
+ "mail_webhook_list": "read",
10558
+ "mail_webhook_update": "write",
10559
+ "observe_alerts_create": "write",
10560
+ "observe_alerts_delete": "admin",
10561
+ "observe_alerts_events_list": "read",
10562
+ "observe_alerts_get": "read",
10563
+ "observe_alerts_list": "read",
10564
+ "observe_alerts_update": "write",
10565
+ "observe_artifacts_delete": "admin",
10566
+ "observe_artifacts_list": "read",
10567
+ "observe_artifacts_resolve": "read",
10568
+ "observe_issues_archive": "admin",
10569
+ "observe_issues_assign": "write",
10570
+ "observe_issues_event": "read",
10571
+ "observe_issues_events": "read",
10572
+ "observe_issues_get": "read",
10573
+ "observe_issues_histogram": "read",
10574
+ "observe_issues_list": "read",
10575
+ "observe_issues_resolve": "write",
10576
+ "observe_keys_create": "write",
10577
+ "observe_keys_list": "read",
10578
+ "observe_keys_revoke": "admin",
10579
+ "observe_logs_facets": "read",
10580
+ "observe_logs_search": "read",
10581
+ "observe_logs_tail": "read",
10582
+ "observe_metrics_list": "read",
10583
+ "observe_metrics_query": "read",
10584
+ "observe_traces_get": "read",
10585
+ "observe_traces_search": "read",
10586
+ "observe_webhooks_create": "write",
10587
+ "observe_webhooks_delete": "admin",
10588
+ "observe_webhooks_deliveries_list": "read",
10589
+ "observe_webhooks_get": "read",
10590
+ "observe_webhooks_list": "read",
10591
+ "observe_webhooks_redeliver": "write",
10592
+ "observe_webhooks_rotate_secret": "write",
10593
+ "observe_webhooks_update": "write",
10594
+ "organization_auth_me": "read",
10595
+ "organization_billing_budgets_get": "read",
10596
+ "organization_billing_budgets_set": "write",
10597
+ "organization_billing_caps_clear": "write",
10598
+ "organization_billing_caps_set": "write",
10599
+ "organization_bindings_list": "read",
10600
+ "organization_clickup_install": "read",
10601
+ "organization_clickup_list-installations": "read",
10602
+ "organization_cloudflare_install": "read",
10603
+ "organization_connectors_approve-request": "write",
10604
+ "organization_connectors_attach": "write",
10605
+ "organization_connectors_delete": "admin",
10606
+ "organization_connectors_deny-request": "write",
10607
+ "organization_connectors_detach": "write",
10608
+ "organization_connectors_list": "read",
10609
+ "organization_connectors_list-attachments": "read",
10610
+ "organization_connectors_list-available": "read",
10611
+ "organization_connectors_list-org": "read",
10612
+ "organization_connectors_list-requests": "read",
10613
+ "organization_connectors_remove": "admin",
10614
+ "organization_connectors_request": "write",
10615
+ "organization_create": "write",
10616
+ "organization_domains_add": "write",
10617
+ "organization_domains_get": "read",
10618
+ "organization_domains_list": "read",
10619
+ "organization_domains_remove": "admin",
10620
+ "organization_domains_set-mode": "write",
10621
+ "organization_extensions_list-installed": "read",
10622
+ "organization_feedback_submit": "write",
10623
+ "organization_gdrive_install": "read",
10624
+ "organization_github_install": "read",
10625
+ "organization_github_list-installations": "read",
10626
+ "organization_googleads_install": "read",
10627
+ "organization_list": "read",
10628
+ "organization_member_accept-invite": "write",
10629
+ "organization_member_invite": "write",
10630
+ "organization_member_list": "read",
10631
+ "organization_member_list-invitations": "read",
10632
+ "organization_member_list-product-access": "read",
10633
+ "organization_member_remove": "admin",
10634
+ "organization_member_revoke-invitation": "admin",
10635
+ "organization_member_set-role": "admin",
10636
+ "organization_member_share-product": "admin",
10637
+ "organization_member_unshare-product": "admin",
10638
+ "organization_members_assign-role": "admin",
10639
+ "organization_permission_catalog": "read",
10640
+ "organization_product_create": "write",
10641
+ "organization_product_list": "read",
10642
+ "organization_product_list-access": "read",
10643
+ "organization_product_list-members": "read",
10644
+ "organization_product_list-roles": "read",
10645
+ "organization_product_revoke-access": "write",
10646
+ "organization_product_select": "read",
10647
+ "organization_product_set-access": "write",
10648
+ "organization_product_update": "write",
10649
+ "organization_public-keys_create": "write",
10650
+ "organization_public-keys_list": "read",
10651
+ "organization_public-keys_revoke": "admin",
10652
+ "organization_public-keys_update-scope": "write",
10653
+ "organization_public-routes_list": "read",
10654
+ "organization_roles_create": "write",
10655
+ "organization_roles_delete": "admin",
10656
+ "organization_roles_get": "read",
10657
+ "organization_roles_list": "read",
10658
+ "organization_roles_update": "write",
10659
+ "organization_security_mfa_enable": "write",
10660
+ "organization_select": "read",
10661
+ "organization_support_thread_create": "write",
10662
+ "organization_support_thread_get": "read",
10663
+ "organization_support_thread_reply": "write",
10664
+ "organization_support_threads_list": "read",
10665
+ "realtime_archive_export": "write",
10666
+ "realtime_archive_export_status": "read",
10667
+ "realtime_archive_get": "read",
10668
+ "realtime_grant_create": "write",
10669
+ "realtime_grant_list": "read",
10670
+ "realtime_grant_revoke": "admin",
10671
+ "realtime_history_get": "read",
10672
+ "realtime_messages_publish": "write",
10673
+ "realtime_namespace_create": "write",
10674
+ "realtime_namespace_delete": "admin",
10675
+ "realtime_namespace_get": "read",
10676
+ "realtime_namespace_list": "read",
10677
+ "realtime_namespace_update": "write",
10678
+ "realtime_presence_enter": "write",
10679
+ "realtime_presence_get": "read",
10680
+ "realtime_presence_leave": "write",
10681
+ "realtime_presence_stats": "read",
10682
+ "realtime_presence_update": "write",
10683
+ "realtime_public_access_status": "read",
10684
+ "realtime_status_get": "read",
10685
+ "realtime_tokens_create": "write",
10686
+ "realtime_webhook_create": "write",
10687
+ "realtime_webhook_delete": "admin",
10688
+ "realtime_webhook_deliveries_list": "read",
10689
+ "realtime_webhook_get": "read",
10690
+ "realtime_webhook_list": "read",
10691
+ "realtime_webhook_secret_rotate": "write",
10692
+ "realtime_webhook_update": "write",
10693
+ "support_agent_create": "write",
10694
+ "support_agent_get": "read",
10695
+ "support_agent_list": "read",
10696
+ "support_agent_update": "write",
10697
+ "support_attachment_create": "write",
10698
+ "support_attachment_finalize": "write",
10699
+ "support_label_create": "write",
10700
+ "support_label_list": "read",
10701
+ "support_message_create": "write",
10702
+ "support_message_list": "read",
10703
+ "support_response_escalate": "write",
10704
+ "support_response_get": "read",
10705
+ "support_response_list": "read",
10706
+ "support_rule_create": "write",
10707
+ "support_rule_delete": "admin",
10708
+ "support_rule_get": "read",
10709
+ "support_rule_list": "read",
10710
+ "support_rule_update": "write",
10711
+ "support_status_archive": "admin",
10712
+ "support_status_create": "write",
10713
+ "support_status_list": "read",
10714
+ "support_status_update": "write",
10715
+ "support_survey_archive": "admin",
10716
+ "support_survey_create": "write",
10717
+ "support_survey_get": "read",
10718
+ "support_survey_list": "read",
10719
+ "support_survey_publish": "write",
10720
+ "support_survey_stats": "read",
10721
+ "support_survey_unpublish": "write",
10722
+ "support_survey_update": "write",
10723
+ "support_thread_assign": "write",
10724
+ "support_thread_create": "write",
10725
+ "support_thread_get": "read",
10726
+ "support_thread_list": "read",
10727
+ "support_thread_status_set": "write",
10728
+ "support_thread_update": "write",
10729
+ "support_webhook_create": "write",
10730
+ "support_webhook_delete": "admin",
10731
+ "support_webhook_deliveries_list": "read",
10732
+ "support_webhook_get": "read",
10733
+ "support_webhook_list": "read",
10734
+ "support_webhook_redeliver": "write",
10735
+ "support_webhook_rotate_secret": "write",
10736
+ "support_webhook_update": "write",
10737
+ "tracking_domains_create": "write",
10738
+ "tracking_domains_delete": "admin",
10739
+ "tracking_domains_get": "read",
10740
+ "tracking_domains_list": "read",
10741
+ "tracking_domains_verify": "write",
10742
+ "tracking_event-names_archive": "admin",
10743
+ "tracking_event-names_list": "read",
10744
+ "tracking_event-names_unarchive": "admin",
10745
+ "tracking_googleads_connection_status": "read",
10746
+ "tracking_googleads_conversion_actions": "read",
10747
+ "tracking_googleads_feedback_config_get": "read",
10748
+ "tracking_googleads_feedback_config_set": "write",
10749
+ "tracking_googleads_feedback_run": "write",
10750
+ "tracking_googleads_feedback_status": "read",
10751
+ "tracking_googleads_feedback_uploads": "read",
10752
+ "tracking_googleads_roas_report": "read",
10753
+ "tracking_googleads_sync_now": "write",
10754
+ "tracking_googleads_tracking_health": "read",
10755
+ "tracking_googleads_us_vs_platform": "read",
10756
+ "tracking_identity_health": "read",
10757
+ "tracking_install-domains_create": "write",
10758
+ "tracking_install-domains_delete": "admin",
10759
+ "tracking_install-domains_list": "read",
10760
+ "tracking_link-domains_create": "write",
10761
+ "tracking_link-domains_delete": "admin",
10762
+ "tracking_link-domains_list": "read",
10763
+ "tracking_live-events_list": "read",
10764
+ "tracking_profiles_delete": "admin",
10765
+ "tracking_profiles_export": "read",
10766
+ "tracking_profiles_get": "read",
10767
+ "tracking_profiles_list": "read",
10768
+ "tracking_reports_attributed_journey": "read",
10769
+ "tracking_reports_event_volume": "read",
10770
+ "tracking_reports_revenue_by_source": "read",
10771
+ "tracking_reports_source_people": "read",
10772
+ "tracking_snippets_get": "read",
10773
+ "users_apikeys_create": "write",
10774
+ "users_apikeys_list": "read",
10775
+ "users_apikeys_revoke": "admin",
10776
+ "users_audit_list": "read",
10777
+ "users_config_get": "read",
10778
+ "users_config_upsert": "write",
10779
+ "users_factors_list": "read",
10780
+ "users_factors_reset": "write",
10781
+ "users_keys_list": "read",
10782
+ "users_keys_revoke": "admin",
10783
+ "users_keys_rotate": "write",
10784
+ "users_ops_retention_get": "read",
10785
+ "users_ops_slo_get": "read",
10786
+ "users_passkeys_list": "read",
10787
+ "users_passkeys_revoke": "admin",
10788
+ "users_sessions_get": "read",
10789
+ "users_sessions_impersonate": "write",
10790
+ "users_sessions_list": "read",
10791
+ "users_sessions_revoke": "admin",
10792
+ "users_stats_get": "read",
10793
+ "users_users_ban": "write",
10794
+ "users_users_create": "write",
10795
+ "users_users_delete": "admin",
10796
+ "users_users_erase": "write",
10797
+ "users_users_export": "read",
10798
+ "users_users_get": "read",
10799
+ "users_users_import": "write",
10800
+ "users_users_invite": "write",
10801
+ "users_users_list": "read",
10802
+ "users_users_set_primary_identifier": "write",
10803
+ "users_users_unban": "write",
10804
+ "users_users_update": "write",
10805
+ "users_waitlist_erase": "write",
10806
+ "users_waitlist_funnel": "write",
10807
+ "users_waitlist_import": "write",
10808
+ "users_waitlist_invite": "write",
10809
+ "users_waitlist_list": "read",
10810
+ "users_webhooks_create": "write",
10811
+ "users_webhooks_delete": "admin",
10812
+ "users_webhooks_deliveries_list": "read",
10813
+ "users_webhooks_get": "read",
10814
+ "users_webhooks_list": "read",
10815
+ "users_webhooks_rotate_secret": "write",
10816
+ "users_webhooks_update": "write",
10817
+ "waitlist_config_get": "read",
10818
+ "waitlist_config_upsert": "write",
10819
+ "waitlist_embed_get": "read",
10820
+ "waitlist_invites_send": "write",
10821
+ "waitlist_signups_erase": "write",
10822
+ "waitlist_signups_funnel": "read",
10823
+ "waitlist_signups_list": "read"
10824
+ };
10825
+
10826
+ // src/runtime/permission-match.ts
10827
+ var LEVELS = ["read", "write", "admin"];
10828
+ var LEVEL_PREFIX = "level:";
10829
+ function isLevelPattern(p) {
10830
+ return typeof p === "string" && p.startsWith(LEVEL_PREFIX) && LEVELS.includes(p.slice(LEVEL_PREFIX.length));
10831
+ }
10832
+ function matchPermission(op, grants) {
10833
+ const key = typeof op === "string" ? op : op.key;
10834
+ const level = typeof op === "string" ? void 0 : op.level;
10835
+ if (!key) return false;
10836
+ const keySegments = key.split("_");
10837
+ for (const grant of grants) {
10838
+ if (isLevelPattern(grant)) {
10839
+ if (level !== void 0 && grant === LEVEL_PREFIX + level) return true;
10840
+ continue;
10841
+ }
10842
+ if (matchSingle(keySegments, grant)) return true;
10843
+ }
10844
+ return false;
10845
+ }
10846
+ function matchSingle(keySegments, grant) {
10847
+ const grantSegments = grant.split("_");
10848
+ const m = grantSegments.length;
10849
+ const n = keySegments.length;
10850
+ const trailing = grantSegments[m - 1] === "*";
10851
+ if (trailing) {
10852
+ if (n < m) return false;
10853
+ for (let i = 0; i < m - 1; i++) {
10854
+ const g = grantSegments[i];
10855
+ if (g !== "*" && g !== keySegments[i]) return false;
10856
+ }
10857
+ return true;
10858
+ }
10859
+ if (n !== m) return false;
10860
+ for (let i = 0; i < m; i++) {
10861
+ const g = grantSegments[i];
10862
+ if (g !== "*" && g !== keySegments[i]) return false;
10863
+ }
10864
+ return true;
10865
+ }
10866
+ function evaluate(op, perms) {
10867
+ return matchPermission(op, perms.allow) && !matchPermission(op, perms.deny);
10868
+ }
10869
+
10870
+ // src/runtime/access.ts
10871
+ var ME_OPERATION_KEY = "organization_product_me";
10872
+ var ME_ROUTE = {
10873
+ method: "GET",
10874
+ path: "/governance/api/v1/products/:productId/me"};
10875
+ var ELEVATED_ROLES = /* @__PURE__ */ new Set(["owner", "admin"]);
10876
+ function findMeBinding(bindings2) {
10877
+ for (const resources of Object.values(bindings2)) {
10878
+ for (const actions of Object.values(resources)) {
10879
+ for (const binding of Object.values(actions)) {
10880
+ if (binding.operationKey === ME_OPERATION_KEY) return binding;
10881
+ }
10882
+ }
10883
+ }
10884
+ return void 0;
10885
+ }
10886
+ function asStringArray(value) {
10887
+ return Array.isArray(value) ? value.filter((v) => typeof v === "string") : [];
10888
+ }
10889
+ function asRoleType(value) {
10890
+ return value === "system" || value === "custom" ? value : null;
10891
+ }
10892
+ function normalize(raw) {
10893
+ const r = typeof raw === "object" && raw !== null ? raw : {};
10894
+ return {
10895
+ role: typeof r.role === "string" ? r.role : "",
10896
+ roleId: typeof r.roleId === "string" ? r.roleId : null,
10897
+ roleName: typeof r.roleName === "string" ? r.roleName : null,
10898
+ roleType: asRoleType(r.roleType),
10899
+ allow: asStringArray(r.allow),
10900
+ deny: asStringArray(r.deny)
10901
+ };
10902
+ }
10903
+ function createAccess(opts, bindings2, operations2) {
10904
+ let snapshot;
10905
+ let inflight;
10906
+ let state = "idle";
10907
+ const subscribers = /* @__PURE__ */ new Set();
10908
+ function setState(next) {
10909
+ if (next === state) return;
10910
+ state = next;
10911
+ for (const cb of [...subscribers]) cb();
10912
+ }
10913
+ return {
10914
+ load() {
10915
+ if (snapshot) return Promise.resolve(snapshot);
10916
+ if (inflight) return inflight;
10917
+ setState("loading");
10918
+ const binding = findMeBinding(bindings2) ?? ME_ROUTE;
10919
+ const request = executeRequest(opts, binding, { productId: opts.productId }).then(
10920
+ (raw) => {
10921
+ const next = normalize(raw);
10922
+ snapshot = next;
10923
+ inflight = void 0;
10924
+ setState("ready");
10925
+ return next;
10926
+ },
10927
+ (err) => {
10928
+ inflight = void 0;
10929
+ setState("error");
10930
+ throw err;
10931
+ }
10932
+ );
10933
+ inflight = request;
10934
+ return request;
10935
+ },
10936
+ can(op) {
10937
+ if (state !== "ready" || !snapshot) return false;
10938
+ if (ELEVATED_ROLES.has(snapshot.role)) return true;
10939
+ const key = typeof op === "string" ? op : op.operationKey;
10940
+ const level = typeof op === "string" ? operations2[key] : op.level;
10941
+ const subject = level === void 0 ? { key } : { key, level };
10942
+ return evaluate(subject, { allow: snapshot.allow, deny: snapshot.deny });
10943
+ },
10944
+ get role() {
10945
+ return snapshot?.role;
10946
+ },
10947
+ get state() {
10948
+ return state;
10949
+ },
10950
+ invalidate() {
10951
+ snapshot = void 0;
10952
+ inflight = void 0;
10953
+ setState("idle");
10954
+ },
10955
+ subscribe(cb) {
10956
+ subscribers.add(cb);
10957
+ return () => {
10958
+ subscribers.delete(cb);
10959
+ };
10960
+ }
10961
+ };
10962
+ }
10963
+
10278
10964
  // src/runtime/createLesslyApp.ts
10279
10965
  function actionFn(opts, binding) {
10280
10966
  return Object.assign(
@@ -10306,7 +10992,11 @@ function namespaceProxy(opts, resources) {
10306
10992
  function createLesslyApp(opts) {
10307
10993
  const map = bindings;
10308
10994
  const nsCache = {};
10995
+ let accessApi;
10309
10996
  const base = {
10997
+ get access() {
10998
+ return accessApi ??= createAccess(opts, map, operations);
10999
+ },
10310
11000
  // The whole streaming surface of the client. Streams are NOT reachable through the request
10311
11001
  // proxy: a socket is not a promise-returning call, and hanging one off `sdk.<ns>.<res>.<act>`
10312
11002
  // would make two very different lifetimes look identical at the call site. The generated
@@ -10338,6 +11028,6 @@ function createLesslyApp(opts) {
10338
11028
  });
10339
11029
  }
10340
11030
 
10341
- export { LesslyApiError, connectStream, createLesslyApp };
11031
+ export { LesslyApiError, connectStream, createLesslyApp, isAccessDenied };
10342
11032
  //# sourceMappingURL=index.js.map
10343
11033
  //# sourceMappingURL=index.js.map