Annotate

teal-src/module.d.tl @ 13011:16b47c3b44f3

mod_invites_register: Allow roles to be an ordered list, first being primary Part of an update to mod_invites and friends to the new authz and roles. Invites with roles in the old way will need to be migrated, but with invites often being short lived it is probably not a long-lived problem.
author Kim Alvefur <zash@zash.se>
date Thu, 30 Mar 2023 11:05:40 +0200
parent 13001:5883e78b6165
child 13109:5469045ef7f0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12979
fbbf4f0db8f0 teal: Move into prosody namespace
Kim Alvefur <zash@zash.se>
parents: 12643
diff changeset
1 local st = require "prosody.util.stanza"
11941
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 global record moduleapi
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 get_name : function (moduleapi) : string
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 get_host : function (moduleapi) : string
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 enum host_type
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 "global"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 "local"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 "component"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 end
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 get_host_type : function (moduleapi) : host_type
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 set_global : function (moduleapi)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 add_feature : function (moduleapi, string)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 add_identity : function (moduleapi, string, string, string) -- TODO enum?
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 add_extension : function (moduleapi, st.stanza_t)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 fire_event : function (moduleapi, string, any) : any
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 type handler = function (any) : any
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 record util_events
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 -- TODO import def
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 end
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 hook_object_event : function (moduleapi, util_events, string, handler, number)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 unhook_object_event : function (moduleapi, util_events, string, handler)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23 hook : function (moduleapi, string, handler, number)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 hook_global : function (moduleapi, string, handler, number)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 hook_tag : function (moduleapi, string, string, handler, number)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 unhook : function (moduleapi, string, handler)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27 wrap_object_event : function (moduleapi, util_events, string, handler)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
28 wrap_event : function (moduleapi, string, handler)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
29 wrap_global : function (moduleapi, string, handler)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
30 require : function (moduleapi, string) : table
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
31 depends : function (moduleapi, string) : table
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
32 shared : function (moduleapi, string) : table
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
33 type config_getter = function<A> (moduleapi, string, A) : A
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
34 get_option : config_getter<any>
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
35 get_option_scalar : config_getter<nil | boolean | number | string>
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
36 get_option_string : config_getter<string>
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
37 get_option_number : config_getter<number>
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
38 get_option_boolean : config_getter<boolean>
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
39 record util_array
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
40 -- TODO import def
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
41 { any }
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
42 end
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
43 get_option_array : config_getter<util_array>
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
44 record util_set
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
45 -- TODO import def
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
46 _items : { any : boolean }
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
47 end
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
48 get_option_set : function (moduleapi, string, { any }) : util_set
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
49 get_option_inherited_set : function (moduleapi, string, { any }) : util_set
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
50 get_option_path : function (moduleapi, string, string, string) : string
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
51 context : function (moduleapi, string) : moduleapi
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
52 add_item : function (moduleapi, string, any)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
53 remove_item : function (moduleapi, string, any)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
54 get_host_items : function (moduleapi, string) : { any }
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
55 handle_items : function (moduleapi, string, handler, handler, boolean)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
56 provides : function (moduleapi, string, table)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
57 record util_session
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
58 -- TODO import def
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
59 send : function ( st.stanza_t | string )
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
60 end
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
61 send : function (moduleapi, st.stanza_t, util_session)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
62 send_iq : function (moduleapi, st.stanza_t, util_session, number)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
63 broadcast : function (moduleapi, { string }, st.stanza_t, function)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
64 type timer_callback = function (number, ... : any) : number
12502
5862ddf71e3c teal/moduleapi: Describe timer wrapper
Kim Alvefur <zash@zash.se>
parents: 11941
diff changeset
65 record timer_wrapper
5862ddf71e3c teal/moduleapi: Describe timer wrapper
Kim Alvefur <zash@zash.se>
parents: 11941
diff changeset
66 stop : function (timer_wrapper)
5862ddf71e3c teal/moduleapi: Describe timer wrapper
Kim Alvefur <zash@zash.se>
parents: 11941
diff changeset
67 disarm : function (timer_wrapper)
5862ddf71e3c teal/moduleapi: Describe timer wrapper
Kim Alvefur <zash@zash.se>
parents: 11941
diff changeset
68 reschedule : function (timer_wrapper, number)
5862ddf71e3c teal/moduleapi: Describe timer wrapper
Kim Alvefur <zash@zash.se>
parents: 11941
diff changeset
69 end
5862ddf71e3c teal/moduleapi: Describe timer wrapper
Kim Alvefur <zash@zash.se>
parents: 11941
diff changeset
70 add_timer : function (moduleapi, number, timer_callback, ... : any) : timer_wrapper
11941
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
71 get_directory : function (moduleapi) : string
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
72 enum file_mode
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
73 "r" "w" "a" "r+" "w+" "a+"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
74 end
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
75 load_resource : function (moduleapi, string, file_mode) : FILE
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
76 enum store_type
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
77 "keyval"
13001
5883e78b6165 teal-src: Add keyval+ store type
Matthew Wild <mwild1@gmail.com>
parents: 12979
diff changeset
78 "keyval+"
11941
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
79 "map"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
80 "archive"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
81 end
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
82 open_store : function (moduleapi, string, store_type)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
83 enum stat_type
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
84 "amount"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
85 "counter"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
86 "rate"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
87 "distribution"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
88 "sizes"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
89 "times"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
90 end
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
91 record stats_conf
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
92 initial : number
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
93 units : string
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
94 type : string
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
95 end
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
96 measure : function (moduleapi, string, stat_type, stats_conf)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
97 measure_object_event : function (moduleapi, util_events, string, string)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
98 measure_event : function (moduleapi, string, string)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
99 measure_global_event : function (moduleapi, string, string)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
100 enum status_type
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
101 "error"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
102 "warn"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
103 "info"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
104 "core"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
105 end
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
106 set_status : function (moduleapi, status_type, string, boolean)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
107 enum log_level
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
108 "debug"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
109 "info"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
110 "warn"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
111 "error"
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
112 end
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
113 log_status : function (moduleapi, log_level, string, ... : any)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
114 get_status : function (moduleapi) : status_type, string, number
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
115
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
116 -- added by modulemanager
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
117 name : string
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
118 host : string
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
119 _log : function (log_level, string, ... : any)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
120 log : function (moduleapi, log_level, string, ... : any)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
121 reloading : boolean
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
122 saved_state : any
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
123 record module_environment
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
124 module : moduleapi
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
125 end
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
126 environment : module_environment
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
127 path : string
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
128 resource_path : string
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
129
12643
9fa749cbd376 teal-src: update module.d.tl with new access control methods
Matthew Wild <mwild1@gmail.com>
parents: 12502
diff changeset
130 -- access control
9fa749cbd376 teal-src: update module.d.tl with new access control methods
Matthew Wild <mwild1@gmail.com>
parents: 12502
diff changeset
131 may : function (moduleapi, string, table|string)
9fa749cbd376 teal-src: update module.d.tl with new access control methods
Matthew Wild <mwild1@gmail.com>
parents: 12502
diff changeset
132 default_permission : function (string, string)
9fa749cbd376 teal-src: update module.d.tl with new access control methods
Matthew Wild <mwild1@gmail.com>
parents: 12502
diff changeset
133 default_permissions : function (string, { string })
9fa749cbd376 teal-src: update module.d.tl with new access control methods
Matthew Wild <mwild1@gmail.com>
parents: 12502
diff changeset
134
11941
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
135 -- methods the module can add
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
136 load : function ()
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
137 add_host : function (moduleapi)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
138 save : function () : any
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
139 restore : function (any)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
140 unload : function ()
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
141 end
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
142
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
143 global module : moduleapi
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
144
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
145 global record common_event
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
146 stanza : st.stanza_t
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
147 record origin
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
148 send : function (st.stanza_t)
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
149 end
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
150 end
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
151
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
152 global record prosody
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
153 version : string
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
154 end
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
155
cfd37453e6b6 teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff changeset
156 return module