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