@casual-simulation/aux-runtime 3.2.13 → 3.2.14-alpha.7890390188

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.
@@ -246,7 +246,6 @@ declare type ExtraActions =
246
246
  | ShowJoinCodeAction
247
247
  | RequestFullscreenAction
248
248
  | ExitFullscreenAction
249
- | LoadBotsAction
250
249
  | ClearSpaceAction
251
250
  | LocalFormAnimationAction
252
251
  | AddDropSnapTargetsAction
@@ -1469,23 +1468,6 @@ declare interface LoadSpaceAction {
1469
1468
  config: any;
1470
1469
  }
1471
1470
 
1472
- /**
1473
- * Defines an event that loads bots from the given space that match the given tags and values.
1474
- */
1475
- declare interface LoadBotsAction {
1476
- type: 'load_bots';
1477
-
1478
- /**
1479
- * The space that should be searched.
1480
- */
1481
- space: BotSpace;
1482
-
1483
- /**
1484
- * The tags that the loaded bots should have.
1485
- */
1486
- tags: LoadBotsTagFilter[];
1487
- }
1488
-
1489
1471
  /**
1490
1472
  * Defines an interface for objects that specify a tag and value
1491
1473
  * that a bot should have to be loaded.
@@ -2520,85 +2502,6 @@ export interface Bot {
2520
2502
  };
2521
2503
  }
2522
2504
 
2523
- /**
2524
- * Defines an interface for a record.
2525
- */
2526
- export interface Record {
2527
- /**
2528
- * The address that the record was published at.
2529
- */
2530
- address: string;
2531
-
2532
- /**
2533
- * The space that the record was published to.
2534
- */
2535
- space: RecordSpace;
2536
-
2537
- /**
2538
- * The auth ID that published the record.
2539
- */
2540
- authID: string;
2541
-
2542
- /**
2543
- * The data that was stored in the record.
2544
- * Null if dataURL is specified
2545
- */
2546
- data?: any;
2547
-
2548
- /**
2549
- * The URL that the data can be retrieved from.
2550
- * Null if data is specified.
2551
- */
2552
- dataURL?: string;
2553
- }
2554
-
2555
- /**
2556
- * Defines an interface for an object that represents a reference to a specific record.
2557
- */
2558
- export interface RecordReference {
2559
- /**
2560
- * The ID of the user that published the record.
2561
- */
2562
- authID: string;
2563
-
2564
- /**
2565
- * The space that the record lives in.
2566
- */
2567
- space: RecordSpace;
2568
-
2569
- /**
2570
- * The address that the record was published to.
2571
- */
2572
- address: string;
2573
- }
2574
-
2575
-
2576
- /**
2577
- * Defines an interface that represents a set of records that were retrieved.
2578
- */
2579
- export interface GetRecordsResult {
2580
-
2581
- /**
2582
- * The set of records that were retrieved.
2583
- */
2584
- records: Record[];
2585
-
2586
- /**
2587
- * The total number of records that the query would have returned.
2588
- */
2589
- totalCount: number;
2590
-
2591
- /**
2592
- * Whether there are more records available to retrieve for the query.
2593
- */
2594
- hasMoreRecords: boolean;
2595
-
2596
- /**
2597
- * Gets the set page of records.
2598
- */
2599
- getMoreRecords(): Promise<GetRecordsResult>;
2600
- }
2601
-
2602
2505
  /**
2603
2506
  * Defines the possible bot anchor points.
2604
2507
  */
@@ -2700,36 +2603,6 @@ declare interface BotFilterFunction {
2700
2603
  sort?: (bot: Bot) => any;
2701
2604
  }
2702
2605
 
2703
- export interface RecordFilter {
2704
- recordFilter: true;
2705
- }
2706
-
2707
- export interface AuthIdRecordFilter extends RecordFilter {
2708
- authID: string;
2709
- }
2710
-
2711
- export interface SpaceFilter extends BotFilterFunction, RecordFilter {
2712
- space: string;
2713
- }
2714
-
2715
- export interface AddressRecordFilter extends RecordFilter {
2716
- address: string;
2717
- }
2718
-
2719
- export interface AuthTokenRecordFilter extends RecordFilter {
2720
- authToken: string;
2721
- }
2722
-
2723
- export interface PrefixRecordFilter extends RecordFilter {
2724
- prefix: string;
2725
- }
2726
-
2727
- export interface IDRecordFilter extends BotFilterFunction, RecordFilter {
2728
- id: string;
2729
- }
2730
-
2731
- export type RecordFilters = AuthIdRecordFilter | SpaceFilter | AddressRecordFilter | AuthTokenRecordFilter | PrefixRecordFilter | IDRecordFilter;
2732
-
2733
2606
  /**
2734
2607
  * Defines a result from a webhook.
2735
2608
  */
@@ -3014,8 +2887,9 @@ export type AuthorizeDeniedError = ServerError
3014
2887
  | CreatePublicRecordKeyFailure['errorCode']
3015
2888
  | 'action_not_supported'
3016
2889
  | 'not_logged_in'
3017
- | 'not_authorized'
3018
- | 'unacceptable_request';
2890
+ | NotAuthorizedError
2891
+ | 'unacceptable_request'
2892
+ | 'subscription_limit_reached';
3019
2893
 
3020
2894
  export type UpdateUserPolicyError = 'policy_too_large';
3021
2895
 
@@ -3039,66 +2913,520 @@ export interface RecordActionOptions {
3039
2913
  endpoint?: string;
3040
2914
  }
3041
2915
 
2916
+ /**
2917
+ * The possible types of subjects that can be affected by permissions.
2918
+ *
2919
+ * - "user" - The permission is for a user.
2920
+ * - "inst" - The permission is for an inst.
2921
+ * - "role" - The permission is for a role.
2922
+ *
2923
+ * @dochash types/permissions
2924
+ * @doctitle Permissions Types
2925
+ * @docsidebar Permissions
2926
+ * @docdescription Types that represent permissions that control access to resources.
2927
+ * @docname SubjectType
2928
+ */
2929
+ export type SubjectType = 'user' | 'inst' | 'role';
2930
+
2931
+ /**
2932
+ * The possible types of permissions that can be added to policies.
2933
+ *
2934
+ * @dochash types/permissions
2935
+ * @doctitle Permissions Types
2936
+ * @docsidebar Permissions
2937
+ * @docdescription Types that represent permissions that control access to resources.
2938
+ * @docname AvailablePermissions
2939
+ */
2940
+ export type AvailablePermissions =
2941
+ | DataPermission
2942
+ | FilePermission
2943
+ | EventPermission
2944
+ | MarkerPermission
2945
+ | RolePermission
2946
+ | InstPermission;
2947
+
2948
+ /**
2949
+ * Defines an interface that describes common options for all permissions.
2950
+ */
2951
+ export interface Permission {
2952
+ /**
2953
+ * The marker that the permission is for.
2954
+ * If null or undefined, then the permission is for a specific resource instead of a marker.
2955
+ */
2956
+ marker?: string;
2957
+
2958
+ /**
2959
+ * The type of the subject that the permission is for.
2960
+ *
2961
+ * "user" - The permission is for a user.
2962
+ * "inst" - The permission is for an inst.
2963
+ * "role" - The permission is for a role.
2964
+ */
2965
+ subjectType: SubjectType;
2966
+
2967
+ /**
2968
+ * The ID of the subject.
2969
+ */
2970
+ subjectId: string;
2971
+
2972
+ /**
2973
+ * The ID of the resource that is allowed.
2974
+ * If null, then all resources are allowed.
2975
+ */
2976
+ resourceId?: string | null;
2977
+
2978
+ /**
2979
+ * The options for the permission.
2980
+ */
2981
+ options: {};
2982
+
2983
+ /**
2984
+ * The unix time in miliseconds that the permission will expire at.
2985
+ * If null, then the permission does not expire.
2986
+ */
2987
+ expireTimeMs: number | null;
2988
+ }
2989
+
2990
+
2991
+ /**
2992
+ * Defines an interface that describes the common options for all permissions that affect data records.
2993
+ *
2994
+ * @dochash types/permissions
2995
+ * @docname DataPermission
2996
+ */
2997
+ export interface DataPermission extends Permission {
2998
+ /**
2999
+ * The kind of the permission.
3000
+ */
3001
+ resourceKind: 'data';
3002
+
3003
+ /**
3004
+ * The action th at is allowed.
3005
+ * If null, then all actions are allowed.
3006
+ */
3007
+ action: DataActionKinds | null;
3008
+ }
3009
+
3010
+ /**
3011
+ * Options for file permissions.
3012
+ *
3013
+ * @dochash types/permissions
3014
+ * @docname FilePermissionOptions
3015
+ */
3016
+ export interface FilePermissionOptions {
3017
+ /**
3018
+ * The maximum allowed file size in bytes.
3019
+ * Defaults to Infinity.
3020
+ */
3021
+ maxFileSizeInBytes?: number;
3022
+
3023
+ /**
3024
+ * The list of allowed file MIME types.
3025
+ * If true, then all file types are allowed.
3026
+ * If an array of strings, then only MIME types that are specified are allowed.
3027
+ */
3028
+ allowedMimeTypes?: true | string[];
3029
+ }
3030
+
3031
+
3032
+ /**
3033
+ * Defines an interface that describes the common options for all permissions that affect file records.
3034
+ *
3035
+ * @dochash types/permissions
3036
+ * @docname FilePermission
3037
+ */
3038
+ export interface FilePermission extends Permission {
3039
+ /**
3040
+ * The kind of the permission.
3041
+ */
3042
+ resourceKind: 'file';
3043
+
3044
+ /**
3045
+ * The action th at is allowed.
3046
+ * If null, then all actions are allowed.
3047
+ */
3048
+ action: FileActionKinds | null;
3049
+
3050
+ /**
3051
+ * The options for the permission.
3052
+ */
3053
+ options: FilePermissionOptions;
3054
+ }
3055
+
3056
+
3057
+ /**
3058
+ * Defines an interface that describes the common options for all permissions that affect event records.
3059
+ *
3060
+ * @dochash types/permissions
3061
+ * @docname EventPermission
3062
+ */
3063
+ export interface EventPermission extends Permission {
3064
+ /**
3065
+ * The kind of the permission.
3066
+ */
3067
+ resourceKind: 'event';
3068
+
3069
+ /**
3070
+ * The action th at is allowed.
3071
+ * If null, then all actions are allowed.
3072
+ */
3073
+ action: EventActionKinds | null;
3074
+ }
3075
+
3076
+
3077
+ /**
3078
+ * Defines an interface that describes the common options for all permissions that affect markers.
3079
+ *
3080
+ * @dochash types/permissions
3081
+ * @docname MarkerPermission
3082
+ */
3083
+ export interface MarkerPermission extends Permission {
3084
+ /**
3085
+ * The kind of the permission.
3086
+ */
3087
+ resourceKind: 'marker';
3088
+
3089
+ /**
3090
+ * The action th at is allowed.
3091
+ * If null, then all actions are allowed.
3092
+ */
3093
+ action: MarkerActionKinds | null;
3094
+ }
3095
+
3096
+
3097
+ /**
3098
+ * Options for role permissions.
3099
+ *
3100
+ * @dochash types/permissions
3101
+ * @docname RolePermissionOptions
3102
+ */
3103
+ export interface RolePermissionOptions {
3104
+ /**
3105
+ * The maximum lifetime that the role can be granted for in miliseconds.
3106
+ * If not specified, then the role can be granted for an infinite amount of time.
3107
+ */
3108
+ maxDurationMs?: number;
3109
+ }
3110
+
3111
+
3112
+ /**
3113
+ * Defines an interface that describes the common options for all permissions that affect roles.
3114
+ *
3115
+ * @dochash types/permissions
3116
+ * @docname RolePermission
3117
+ */
3118
+ export interface RolePermission extends Permission {
3119
+ /**
3120
+ * The kind of the permission.
3121
+ */
3122
+ resourceKind: 'role';
3123
+
3124
+ /**
3125
+ * The ID of the resource that is allowed.
3126
+ * If null, then all resources are allowed.
3127
+ */
3128
+ resourceId: string | null;
3129
+
3130
+ /**
3131
+ * The action th at is allowed.
3132
+ * If null, then all actions are allowed.
3133
+ */
3134
+ action: RoleActionKinds | null;
3135
+
3136
+ /**
3137
+ * The options for the permission.
3138
+ */
3139
+ options: RolePermissionOptions;
3140
+ }
3141
+
3142
+
3143
+ /**
3144
+ * Defines an interface that describes common options for all permissions that affect insts.
3145
+ *
3146
+ * @dochash types/permissions
3147
+ * @docname InstPermission
3148
+ */
3149
+ export interface InstPermission extends Permission {
3150
+ /**
3151
+ * The kind of the permission.
3152
+ */
3153
+ resourceKind: 'inst';
3154
+
3155
+ /**
3156
+ * The ID of the resource that is allowed.
3157
+ * If null, then all resources are allowed.
3158
+ */
3159
+ resourceId: string | null;
3160
+
3161
+ /**
3162
+ * The action th at is allowed.
3163
+ * If null, then all actions are allowed.
3164
+ */
3165
+ action: InstActionKinds | null;
3166
+ }
3167
+
3168
+ /**
3169
+ * The possible types of actions that can be performed on data resources.
3170
+ *
3171
+ * @dochash types/permissions
3172
+ * @docname DataActionKinds
3173
+ */
3174
+ export type DataActionKinds = 'read' | 'create' | 'update' | 'delete' | 'list';
3175
+
3176
+ /**
3177
+ * The possible types of actions that can be performed on file resources.
3178
+ *
3179
+ * @dochash types/permissions
3180
+ * @docname FileActionKinds
3181
+ */
3182
+ export type FileActionKinds = 'read' | 'create' | 'update' | 'delete' | 'list';
3183
+
3184
+ /**
3185
+ * The possible types of actions that can be performed on event resources.
3186
+ *
3187
+ * @dochash types/permissions
3188
+ * @docname EventActionKinds
3189
+ */
3190
+ export type EventActionKinds = 'increment' | 'count' | 'update' | 'list';
3191
+
3192
+ /**
3193
+ * The possible types of actions that can be performed on marker resources.
3194
+ *
3195
+ * @dochash types/permissions
3196
+ * @docname MarkerActionKinds
3197
+ */
3198
+ export type MarkerActionKinds =
3199
+ | 'assign'
3200
+ | 'unassign'
3201
+ | 'grantPermission'
3202
+ | 'revokePermission'
3203
+ | 'read';
3204
+
3205
+ /**
3206
+ * The possible types of actions that can be performed on roles resources.
3207
+ *
3208
+ * @dochash types/permissions
3209
+ * @docname RoleActionKinds
3210
+ */
3211
+ export type RoleActionKinds = 'grant' | 'revoke' | 'read' | 'update' | 'list';
3212
+
3213
+ /**
3214
+ * The possible types of actions that can be performed on inst resources.
3215
+ *
3216
+ * @dochash types/permissions
3217
+ * @docname InstActionKinds
3218
+ */
3219
+ export type InstActionKinds =
3220
+ | 'create'
3221
+ | 'read'
3222
+ | 'update'
3223
+ | 'updateData'
3224
+ | 'delete'
3225
+ | 'list'
3226
+ | 'sendAction';
3227
+
3228
+
3229
+ /**
3230
+ * Defines the possible results of granting a permission to a marker.
3231
+ *
3232
+ * @dochash types/records/policies
3233
+ * @doctitle Policy Types
3234
+ * @docsidebar Policies
3235
+ * @docdescription Types for working with policies.
3236
+ * @docgroup 01-grant
3237
+ * @docorder 0
3238
+ * @docname GrantMarkerPermissionResult
3239
+ */
3042
3240
  export type GrantMarkerPermissionResult =
3043
3241
  | GrantMarkerPermissionSuccess
3044
3242
  | GrantMarkerPermissionFailure;
3045
3243
 
3244
+ /**
3245
+ * Defines an interface that represents a successful request to grant a marker permission to a policy.
3246
+ *
3247
+ * @dochash types/records/policies
3248
+ * @docgroup 01-grant
3249
+ * @docorder 1
3250
+ * @docname GrantMarkerPermissionSuccess
3251
+ */
3046
3252
  export interface GrantMarkerPermissionSuccess {
3047
3253
  success: true;
3048
3254
  }
3049
3255
 
3256
+ /**
3257
+ * Defines an interface that represents a failed request to grant a marker permission to a policy.
3258
+ *
3259
+ * @dochash types/records/policies
3260
+ * @docgroup 01-grant
3261
+ * @docorder 2
3262
+ * @docname GrantMarkerPermissionFailure
3263
+ */
3050
3264
  export interface GrantMarkerPermissionFailure {
3051
3265
  success: false;
3266
+
3267
+ /**
3268
+ * The error code that indicates why the request failed.
3269
+ */
3052
3270
  errorCode:
3053
3271
  | ServerError
3054
- | AuthorizeDeniedError
3055
- | 'policy_too_large';
3272
+ | AuthorizeDeniedError;
3273
+
3274
+ /**
3275
+ * The error message that indicates why the request failed.
3276
+ */
3056
3277
  errorMessage: string;
3057
3278
  }
3058
3279
 
3059
3280
 
3060
- export type RevokeMarkerPermissionResult =
3061
- | RevokeMarkerPermissionSuccess
3062
- | RevokeMarkerPermissionFailure;
3281
+ /**
3282
+ * Defines the possible results of granting a permission to a resource.
3283
+ *
3284
+ * @dochash types/records/policies
3285
+ * @docname GrantResourcePermissionResult
3286
+ */
3287
+ export type GrantResourcePermissionResult =
3288
+ | GrantResourcePermissionSuccess
3289
+ | GrantResourcePermissionFailure;
3063
3290
 
3064
- export interface RevokeMarkerPermissionSuccess {
3291
+ /**
3292
+ * Defines an interface that represents a successful request to grant a permission to a resource.
3293
+ *
3294
+ * @dochash types/records/policies
3295
+ * @docgroup 01-grant
3296
+ * @docorder 1
3297
+ * @docname GrantResourcePermissionSuccess
3298
+ */
3299
+ export interface GrantResourcePermissionSuccess {
3065
3300
  success: true;
3066
3301
  }
3067
3302
 
3068
- export interface RevokeMarkerPermissionFailure {
3303
+ /**
3304
+ * Defines an interface that represents a failed request to grant a permission to a resource.
3305
+ *
3306
+ * @dochash types/records/policies
3307
+ * @docgroup 01-grant
3308
+ * @docorder 2
3309
+ * @docname GrantResourcePermissionFailure
3310
+ */
3311
+ export interface GrantResourcePermissionFailure {
3069
3312
  success: false;
3313
+
3314
+ /**
3315
+ * The error code that indicates why the request failed.
3316
+ */
3070
3317
  errorCode:
3071
3318
  | ServerError
3072
- | AuthorizeDeniedError
3073
- | GetPolicyError
3074
- | UpdateUserPolicyError;
3319
+ | AuthorizeDeniedError;
3320
+
3321
+ /**
3322
+ * The error message that indicates why the request failed.
3323
+ */
3075
3324
  errorMessage: string;
3076
3325
  }
3077
3326
 
3078
- export type GrantRoleResult = GrantRoleSuccess | GrantRoleFailure;
3327
+ /**
3328
+ * Defines the possible results of revoking a permission.
3329
+ *
3330
+ * @dochash types/records/policies
3331
+ * @docgroup 02-revoke
3332
+ * @docorder 0
3333
+ * @docname RevokeMarkerPermissionResult
3334
+ */
3335
+ export type RevokePermissionResult =
3336
+ | RevokePermissionSuccess
3337
+ | RevokePermissionFailure;
3079
3338
 
3080
- export interface GrantRoleSuccess {
3339
+ /**
3340
+ * Defines an interface that represents a successful request to revoke a permission.
3341
+ *
3342
+ * @dochash types/records/policies
3343
+ * @docgroup 02-revoke
3344
+ * @docorder 1
3345
+ * @docname RevokePermissionSuccess
3346
+ */
3347
+ export interface RevokePermissionSuccess {
3081
3348
  success: true;
3082
3349
  }
3083
3350
 
3084
- export interface GrantRoleFailure {
3351
+ /**
3352
+ * Defines an interface that represents a failed request to revoke a permission.
3353
+ *
3354
+ * @dochash types/records/policies
3355
+ * @docgroup 02-revoke
3356
+ * @docorder 2
3357
+ * @docname RevokePermissionFailure
3358
+ */
3359
+ export interface RevokePermissionFailure {
3085
3360
  success: false;
3361
+
3362
+ /**
3363
+ * The error code that indicates why the request failed.
3364
+ */
3086
3365
  errorCode:
3087
3366
  | ServerError
3088
- | AuthorizeDeniedError
3089
- | 'roles_too_large';
3367
+ | 'permission_not_found'
3368
+ | AuthorizeDeniedError;
3369
+
3370
+ /**
3371
+ * The error message that indicates why the request failed.
3372
+ */
3090
3373
  errorMessage: string;
3091
3374
  }
3092
3375
 
3093
-
3376
+ /**
3377
+ * Defines the possible results of revoking a role.
3378
+ *
3379
+ * @dochash types/records/roles
3380
+ * @docgroup 01-revoke
3381
+ * @docorder 0
3382
+ * @docname RevokeRoleResult
3383
+ */
3094
3384
  export type RevokeRoleResult = RevokeRoleSuccess | RevokeRoleFailure;
3095
3385
 
3386
+ /**
3387
+ * Defines an interface that represents a successful request to revoke a role.
3388
+ *
3389
+ * @dochash types/records/roles
3390
+ * @docgroup 01-revoke
3391
+ * @docorder 1
3392
+ * @docname RevokeRoleSuccess
3393
+ */
3096
3394
  export interface RevokeRoleSuccess {
3097
3395
  success: true;
3098
3396
  }
3099
3397
 
3398
+ /**
3399
+ * Defines an interface that represents a failed request to revoke a role.
3400
+ *
3401
+ * @dochash types/records/roles
3402
+ * @docgroup 01-revoke
3403
+ * @docorder 2
3404
+ * @docname RevokeRoleFailure
3405
+ */
3100
3406
  export interface RevokeRoleFailure {
3101
3407
  success: false;
3408
+
3409
+ /**
3410
+ * The error code that indicates why the request failed.
3411
+ */
3412
+ errorCode:
3413
+ | ServerError
3414
+ | AuthorizeDeniedError;
3415
+
3416
+ /**
3417
+ * The error message that indicates why the request failed.
3418
+ */
3419
+ errorMessage: string;
3420
+ }
3421
+
3422
+ export type GrantRoleResult = GrantRoleSuccess | GrantRoleFailure;
3423
+
3424
+ export interface GrantRoleSuccess {
3425
+ success: true;
3426
+ }
3427
+
3428
+ export interface GrantRoleFailure {
3429
+ success: false;
3102
3430
  errorCode:
3103
3431
  | ServerError
3104
3432
  | AuthorizeDeniedError
@@ -3124,6 +3452,32 @@ export interface RevokeRoleFailure {
3124
3452
  * The policy that should be used for deleting the record.
3125
3453
  */
3126
3454
  deletePolicy?: RecordUserPolicyType;
3455
+
3456
+ /**
3457
+ * The markers that should be applied to the record.
3458
+ */
3459
+ markers?: string[];
3460
+
3461
+ /**
3462
+ * The marker that should be applied to the record.
3463
+ */
3464
+ marker?: string;
3465
+ }
3466
+
3467
+ /**
3468
+ * Defines an interface that represents the options for a list data action.
3469
+ *
3470
+ * @dochash types/records/data
3471
+ * @docName ListDataOptions
3472
+ */
3473
+ export interface ListDataOptions extends RecordActionOptions {
3474
+
3475
+ /**
3476
+ * The order that items should be sorted in.
3477
+ * - "ascending" means that the items should be sorted in alphebatically ascending order by address.
3478
+ * - "descending" means that the items should be sorted in alphebatically descending order by address.
3479
+ */
3480
+ sort?: 'ascending' | 'descending';
3127
3481
  }
3128
3482
 
3129
3483
  export type RecordDataResult = RecordDataSuccess | RecordDataFailure;
@@ -3587,8 +3941,19 @@ export interface RoomTrackOptions {
3587
3941
  aspectRatio?: number;
3588
3942
  }
3589
3943
 
3944
+ /**
3945
+ * The possible kinds of tracks.
3946
+ */
3590
3947
  export type TrackKind = 'video' | 'audio';
3948
+
3949
+ /**
3950
+ * The possible sources for a room track.
3951
+ */
3591
3952
  export type TrackSource = 'camera' | 'microphone' | 'screen_share' | 'screen_share_audio';
3953
+
3954
+ /**
3955
+ * The possible video qualities for a room track.
3956
+ */
3592
3957
  export type TrackVideoQuality = 'high' | 'medium' | 'low' | 'off';
3593
3958
 
3594
3959
  export interface JoinRoomActionOptions extends Partial<RoomOptions> {
@@ -7996,7 +8361,7 @@ declare global {
7996
8361
  * // Find all the bots with the ID "bob".
7997
8362
  * let bobs = getBots(byId("bob"));
7998
8363
  */
7999
- function byID(id: string): IDRecordFilter;
8364
+ function byID(id: string): BotFilterFunction;
8000
8365
 
8001
8366
  /**
8002
8367
  * Creates a filter function that checks whether bots match the given mod.
@@ -8826,7 +9191,7 @@ interface DebuggerBase {
8826
9191
  * // Find all the bots with the ID "bob".
8827
9192
  * let bobs = getBots(byId("bob"));
8828
9193
  */
8829
- byID(id: string): IDRecordFilter;
9194
+ byID(id: string): BotFilterFunction;
8830
9195
 
8831
9196
  /**
8832
9197
  * Creates a filter function that checks whether bots match the given mod.
@@ -11124,32 +11489,42 @@ interface Os {
11124
11489
  ): Promise<CreatePublicRecordKeyResult>;
11125
11490
 
11126
11491
  /**
11127
- * Grants the given marker the given permission in the given record.
11128
- * @param recordName The name of the record.
11129
- * @param marker The marker.
11130
- * @param permission The permission to grant.
11131
- * @param options The options.
11492
+ * Grants the given permission in the given record.
11493
+ *
11494
+ * See [Record Security](page:learn/records/security) for more information.
11495
+ *
11496
+ * @param recordName the name of the record.
11497
+ * @param permission the permission that should be added.
11498
+ * @param options the options for the operation.
11499
+ *
11500
+ * @dochash actions/os/records
11501
+ * @docgroup 01-records
11502
+ * @docname os.grantPermission
11132
11503
  */
11133
- grantRecordMarkerPermission(
11504
+ grantPermission(
11134
11505
  recordName: string,
11135
- marker: string,
11136
- permission: object,
11506
+ permission: AvailablePermissions,
11137
11507
  options?: RecordActionOptions
11138
- ): Promise<GrantMarkerPermissionResult>;
11508
+ ): Promise<GrantMarkerPermissionResult | GrantResourcePermissionResult>;
11139
11509
 
11140
11510
  /**
11141
- * Revokes the given permission from the given marker in the given record.
11142
- * @param recordName The name of the record.
11143
- * @param marker The name of the marker.
11144
- * @param permission The permission that should be revoked.
11145
- * @param options The options.
11511
+ * Revokes the permission with the given ID from the the given record.
11512
+ *
11513
+ * See [Record Security](page:learn/records/security) for more information.
11514
+ *
11515
+ * @param recordName the name of the record.
11516
+ * @param permissionId the ID of the permission that should be removed.
11517
+ * @param options the options for the operation.
11518
+ *
11519
+ * @dochash actions/os/records
11520
+ * @docgroup 01-records
11521
+ * @docname os.revokePermission
11146
11522
  */
11147
- revokeRecordMarkerPermission(
11523
+ revokePermission(
11148
11524
  recordName: string,
11149
- marker: string,
11150
- permission: object,
11525
+ permissionId: string,
11151
11526
  options?: RecordActionOptions
11152
- ): Promise<RevokeMarkerPermissionResult>;
11527
+ ): Promise<RevokePermissionResult>;
11153
11528
 
11154
11529
  /**
11155
11530
  * Grants the current inst admin permissions in the given record for the rest of the day.
@@ -11161,7 +11536,6 @@ interface Os {
11161
11536
  options?: RecordActionOptions
11162
11537
  ): Promise<GrantRoleResult>;
11163
11538
 
11164
-
11165
11539
  /**
11166
11540
  * Grants the given user the given role in the given record for the specified time.
11167
11541
  * @param recordName The name of the record.
@@ -11262,6 +11636,67 @@ interface Os {
11262
11636
  */
11263
11637
  listData(recordKeyOrName: string, startingAddress?: string, endpoint?: string): Promise<ListDataResult>;
11264
11638
 
11639
+ /**
11640
+ * Gets a partial list of [data](glossary:data-record) with the given marker that is stored in the given record.
11641
+ * Optionally accepts the address before the first item that should be included in the list.
11642
+ * Returns a promise that resolves with an object that contains the items (if successful) or information about the error that occurred.
11643
+ *
11644
+ * @param recordKeyOrName the record name or a record key. This indicates the record that the data should be retrieved from.
11645
+ * Note that you don't need a record key in order to retrieve public data from a record. Using a record name will work just fine.
11646
+ * @param marker The marker that needs to be assigned to the data items that should be included in the list.
11647
+ * e.g. Using "publicRead" will return all data items with the "publicRead" marker.
11648
+ * @param startingAddress the address after which items will be included in the list.
11649
+ * Since items are ordered within the record by address, this can be used as way to iterate through all the data items in a record.
11650
+ * If omitted, then the list will start with the first item.
11651
+ * @param options The options for the operation.
11652
+ *
11653
+ * @example Get a list of publicRead data items in a record
11654
+ * const result = await os.listData('myRecord', 'publicRead');
11655
+ * if (result.success) {
11656
+ * os.toast(result.items);
11657
+ * } else {
11658
+ * os.toast("Failed " + result.errorMessage);
11659
+ * }
11660
+ *
11661
+ * @example List all the items that have the publicRead marker in a record
11662
+ * let lastAddress;
11663
+ * let items = [];
11664
+ * while(true) {
11665
+ * const result = await os.listData('myRecord', 'publicRead', lastAddress);
11666
+ * if (result.success) {
11667
+ * console.log(result.items);
11668
+ * items.push(...result.items);
11669
+ * if (result.items.length > 0) {
11670
+ * lastAddress = result.items[result.items.length - 1].address;
11671
+ * } else {
11672
+ * // result.items is empty, so we can break out of the loop
11673
+ * break;
11674
+ * }
11675
+ * } else {
11676
+ * os.toast("Failed " + result.errorMessage);
11677
+ * break;
11678
+ * }
11679
+ * }
11680
+ *
11681
+ * @example List publicRead items in descending order
11682
+ * const result = await os.listData('myRecord', 'publicRead', null, { sort: 'descending' });
11683
+ * if (result.success) {
11684
+ * os.toast(result.items);
11685
+ * } else {
11686
+ * os.toast("Failed " + result.errorMessage);
11687
+ * }
11688
+ *
11689
+ * @dochash actions/os/records
11690
+ * @docgroup 01-records
11691
+ * @docname os.listDataByMarker
11692
+ */
11693
+ listDataByMarker(
11694
+ recordKeyOrName: string,
11695
+ marker: string,
11696
+ startingAddress?: string,
11697
+ options?: ListDataOptions
11698
+ ): Promise<ListDataResult>;
11699
+
11265
11700
  /**
11266
11701
  * Erases the data stored in the given record at the given address.
11267
11702
  * @param recordKey The key that should be used to access the record.