@tuturuuu/utils 0.28.0 → 0.29.1

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/biome.json +1 -1
  3. package/package.json +17 -16
  4. package/src/__tests__/api-proxy-guard.test.ts +20 -27
  5. package/src/__tests__/app-url.test.ts +1 -0
  6. package/src/__tests__/workspace-principal-resolution.test.ts +34 -0
  7. package/src/abuse-protection/__tests__/reputation.test.ts +107 -0
  8. package/src/abuse-protection/reputation.ts +42 -3
  9. package/src/api-proxy-guard.ts +0 -15
  10. package/src/commercial-comparison-0.ts +294 -0
  11. package/src/commercial-comparison-1.ts +283 -0
  12. package/src/commercial-comparison-2.ts +262 -0
  13. package/src/commercial-comparison-types.ts +20 -0
  14. package/src/commercial-comparison.test.ts +32 -0
  15. package/src/commercial-comparison.ts +96 -0
  16. package/src/coordination-protocol.ts +61 -0
  17. package/src/coordination.test.ts +84 -0
  18. package/src/coordination.ts +57 -0
  19. package/src/feature-tier-policy.ts +26 -0
  20. package/src/internal-domains.ts +3 -0
  21. package/src/launchable-apps.ts +13 -0
  22. package/src/meet-creation-policy.test.ts +11 -0
  23. package/src/meet-creation-policy.ts +9 -3
  24. package/src/meet-duration.ts +71 -0
  25. package/src/meet-hosting.test.ts +58 -0
  26. package/src/meet-hosting.ts +19 -0
  27. package/src/meeting-invitations.test.ts +102 -0
  28. package/src/meeting-invitations.ts +81 -0
  29. package/src/onboarding.ts +1 -0
  30. package/src/platform-release.test.ts +1 -1
  31. package/src/platform-release.ts +1 -1
  32. package/src/portless.ts +1 -0
  33. package/src/task-helper/task-sort.test.ts +22 -3
  34. package/src/task-helper/task-sort.ts +33 -3
  35. package/src/workspace-helper.ts +3 -3
  36. package/src/workspace-limits.ts +1 -1
@@ -0,0 +1,294 @@
1
+ import type { ComparisonFeature } from './commercial-comparison-types';
2
+ export const features0: ComparisonFeature[] = [
3
+ {
4
+ id: 'attachments',
5
+ app: 'capacity',
6
+ category: 'capacity',
7
+ values: ['10', '10', '10', '10'],
8
+ detail: 'attachment',
9
+ pending: false,
10
+ },
11
+ {
12
+ id: 'publishers',
13
+ app: 'capacity',
14
+ category: 'capacity',
15
+ values: ['8 / 96', '8 / 96', '8 / 96', '8 / 96'],
16
+ detail: 'meetSafety',
17
+ pending: false,
18
+ },
19
+ {
20
+ id: 'duration',
21
+ app: 'capacity',
22
+ category: 'capacity',
23
+ values: ['2 h', '2 h', '2 h', '2 h'],
24
+ detail: 'meetSafety',
25
+ pending: false,
26
+ },
27
+ {
28
+ id: 'workspaces',
29
+ app: 'capacity',
30
+ category: 'capacity',
31
+ values: ['10', '10', '10', '10'],
32
+ detail: 'account',
33
+ pending: false,
34
+ },
35
+ {
36
+ id: 'board',
37
+ app: 'capacity',
38
+ category: 'capacity',
39
+ values: ['10', '50', '50', 'contract'],
40
+ detail: 'board',
41
+ pending: false,
42
+ },
43
+ {
44
+ id: 'responses',
45
+ app: 'capacity',
46
+ category: 'capacity',
47
+ values: ['100', '1,000', '5,000', 'contract'],
48
+ detail: 'monthlyAllowance',
49
+ pending: true,
50
+ },
51
+ {
52
+ id: 'automation',
53
+ app: 'capacity',
54
+ category: 'capacity',
55
+ values: ['100', '1,000', '5,000', 'contract'],
56
+ detail: 'monthlyAllowance',
57
+ pending: true,
58
+ },
59
+ {
60
+ id: 'aiCredits',
61
+ app: 'capacity',
62
+ category: 'capacity',
63
+ values: ['1,000', '10,000', '30,000', 'contract'],
64
+ detail: 'aiAllowance',
65
+ pending: true,
66
+ },
67
+ {
68
+ id: 'storage',
69
+ app: 'capacity',
70
+ category: 'capacity',
71
+ values: ['1 GiB', '20 GiB', '100 GiB', 'contract'],
72
+ detail: 'storageAllowance',
73
+ pending: true,
74
+ },
75
+ {
76
+ id: 'guests',
77
+ app: 'capacity',
78
+ category: 'capacity',
79
+ values: ['10', '50', '250', 'contract'],
80
+ detail: 'guests',
81
+ pending: true,
82
+ },
83
+ {
84
+ id: 'members',
85
+ app: 'capacity',
86
+ category: 'capacity',
87
+ values: ['5', 'seats', 'seats', 'contract'],
88
+ detail: 'members',
89
+ pending: true,
90
+ },
91
+ {
92
+ id: 'platform_0',
93
+ app: 'platform',
94
+ category: 'work',
95
+ values: ['included', 'included', 'included', 'included'],
96
+ detail: 'standard',
97
+ },
98
+ {
99
+ id: 'platform_1',
100
+ app: 'platform',
101
+ category: 'work',
102
+ values: ['included', 'included', 'included', 'included'],
103
+ detail: 'standard',
104
+ },
105
+ {
106
+ id: 'platform_2',
107
+ app: 'platform',
108
+ category: 'work',
109
+ values: ['included', 'included', 'included', 'included'],
110
+ detail: 'standard',
111
+ },
112
+ {
113
+ id: 'platform_3',
114
+ app: 'platform',
115
+ category: 'work',
116
+ values: ['included', 'included', 'included', 'included'],
117
+ detail: 'standard',
118
+ },
119
+ {
120
+ id: 'platform_4',
121
+ app: 'platform',
122
+ category: 'work',
123
+ values: ['included', 'included', 'included', 'included'],
124
+ detail: 'standard',
125
+ },
126
+ {
127
+ id: 'platform_5',
128
+ app: 'platform',
129
+ category: 'work',
130
+ values: ['included', 'included', 'included', 'included'],
131
+ detail: 'standard',
132
+ },
133
+ {
134
+ id: 'tasks_0',
135
+ app: 'tasks',
136
+ category: 'work',
137
+ values: ['included', 'included', 'included', 'included'],
138
+ detail: 'standard',
139
+ },
140
+ {
141
+ id: 'tasks_1',
142
+ app: 'tasks',
143
+ category: 'work',
144
+ values: ['included', 'included', 'included', 'included'],
145
+ detail: 'standard',
146
+ },
147
+ {
148
+ id: 'tasks_2',
149
+ app: 'tasks',
150
+ category: 'work',
151
+ values: ['included', 'included', 'included', 'included'],
152
+ detail: 'standard',
153
+ },
154
+ {
155
+ id: 'tasks_3',
156
+ app: 'tasks',
157
+ category: 'work',
158
+ values: ['included', 'included', 'included', 'included'],
159
+ detail: 'standard',
160
+ },
161
+ {
162
+ id: 'tasks_4',
163
+ app: 'tasks',
164
+ category: 'work',
165
+ values: ['included', 'included', 'included', 'included'],
166
+ detail: 'standard',
167
+ },
168
+ {
169
+ id: 'calendar_0',
170
+ app: 'calendar',
171
+ category: 'work',
172
+ values: ['included', 'included', 'included', 'included'],
173
+ detail: 'standard',
174
+ },
175
+ {
176
+ id: 'calendar_1',
177
+ app: 'calendar',
178
+ category: 'work',
179
+ values: ['included', 'included', 'included', 'included'],
180
+ detail: 'standard',
181
+ },
182
+ {
183
+ id: 'calendar_2',
184
+ app: 'calendar',
185
+ category: 'work',
186
+ values: ['included', 'included', 'included', 'included'],
187
+ detail: 'standard',
188
+ },
189
+ {
190
+ id: 'track_0',
191
+ app: 'track',
192
+ category: 'work',
193
+ values: ['included', 'included', 'included', 'included'],
194
+ detail: 'standard',
195
+ },
196
+ {
197
+ id: 'track_1',
198
+ app: 'track',
199
+ category: 'work',
200
+ values: ['included', 'included', 'included', 'included'],
201
+ detail: 'standard',
202
+ },
203
+ {
204
+ id: 'track_2',
205
+ app: 'track',
206
+ category: 'work',
207
+ values: ['included', 'included', 'included', 'included'],
208
+ detail: 'standard',
209
+ },
210
+ {
211
+ id: 'track_3',
212
+ app: 'track',
213
+ category: 'work',
214
+ values: ['included', 'included', 'included', 'included'],
215
+ detail: 'standard',
216
+ },
217
+ {
218
+ id: 'drive_0',
219
+ app: 'drive',
220
+ category: 'work',
221
+ values: ['included', 'included', 'included', 'included'],
222
+ detail: 'storage',
223
+ },
224
+ {
225
+ id: 'drive_1',
226
+ app: 'drive',
227
+ category: 'work',
228
+ values: ['included', 'included', 'included', 'included'],
229
+ detail: 'storage',
230
+ },
231
+ {
232
+ id: 'drive_2',
233
+ app: 'drive',
234
+ category: 'work',
235
+ values: ['included', 'included', 'included', 'included'],
236
+ detail: 'storage',
237
+ },
238
+ {
239
+ id: 'drive_3',
240
+ app: 'drive',
241
+ category: 'work',
242
+ values: ['included', 'included', 'included', 'included'],
243
+ detail: 'storage',
244
+ },
245
+ {
246
+ id: 'chat_0',
247
+ app: 'chat',
248
+ category: 'work',
249
+ values: ['excluded', 'included', 'included', 'included'],
250
+ detail: 'storage',
251
+ },
252
+ {
253
+ id: 'chat_1',
254
+ app: 'chat',
255
+ category: 'work',
256
+ values: ['excluded', 'included', 'included', 'included'],
257
+ detail: 'storage',
258
+ },
259
+ {
260
+ id: 'chat_2',
261
+ app: 'chat',
262
+ category: 'work',
263
+ values: ['excluded', 'included', 'included', 'included'],
264
+ detail: 'storage',
265
+ },
266
+ {
267
+ id: 'meet_0',
268
+ app: 'meet',
269
+ category: 'work',
270
+ values: ['preview', 'preview', 'preview', 'preview'],
271
+ detail: 'standard',
272
+ },
273
+ {
274
+ id: 'meet_1',
275
+ app: 'meet',
276
+ category: 'work',
277
+ values: ['preview', 'preview', 'preview', 'preview'],
278
+ detail: 'standard',
279
+ },
280
+ {
281
+ id: 'meet_2',
282
+ app: 'meet',
283
+ category: 'work',
284
+ values: ['preview', 'preview', 'preview', 'preview'],
285
+ detail: 'standard',
286
+ },
287
+ {
288
+ id: 'meet_3',
289
+ app: 'meet',
290
+ category: 'work',
291
+ values: ['preview', 'preview', 'preview', 'preview'],
292
+ detail: 'standard',
293
+ },
294
+ ];
@@ -0,0 +1,283 @@
1
+ import type { ComparisonFeature } from './commercial-comparison-types';
2
+ export const features1: ComparisonFeature[] = [
3
+ {
4
+ id: 'meet_4',
5
+ app: 'meet',
6
+ category: 'work',
7
+ values: ['preview', 'preview', 'preview', 'preview'],
8
+ detail: 'standard',
9
+ },
10
+ {
11
+ id: 'contacts_0',
12
+ app: 'contacts',
13
+ category: 'operations',
14
+ values: ['included', 'included', 'included', 'included'],
15
+ detail: 'standard',
16
+ },
17
+ {
18
+ id: 'contacts_1',
19
+ app: 'contacts',
20
+ category: 'operations',
21
+ values: ['included', 'included', 'included', 'included'],
22
+ detail: 'standard',
23
+ },
24
+ {
25
+ id: 'contacts_2',
26
+ app: 'contacts',
27
+ category: 'operations',
28
+ values: ['included', 'included', 'included', 'included'],
29
+ detail: 'standard',
30
+ },
31
+ {
32
+ id: 'contacts_3',
33
+ app: 'contacts',
34
+ category: 'operations',
35
+ values: ['included', 'included', 'included', 'included'],
36
+ detail: 'standard',
37
+ },
38
+ {
39
+ id: 'contacts_4',
40
+ app: 'contacts',
41
+ category: 'operations',
42
+ values: ['included', 'included', 'included', 'included'],
43
+ detail: 'standard',
44
+ },
45
+ {
46
+ id: 'contacts_5',
47
+ app: 'contacts',
48
+ category: 'operations',
49
+ values: ['included', 'included', 'included', 'included'],
50
+ detail: 'standard',
51
+ },
52
+ {
53
+ id: 'contacts_6',
54
+ app: 'contacts',
55
+ category: 'operations',
56
+ values: ['included', 'included', 'included', 'included'],
57
+ detail: 'standard',
58
+ },
59
+ {
60
+ id: 'finance_0',
61
+ app: 'finance',
62
+ category: 'operations',
63
+ values: ['included', 'included', 'included', 'included'],
64
+ detail: 'storage',
65
+ },
66
+ {
67
+ id: 'finance_1',
68
+ app: 'finance',
69
+ category: 'operations',
70
+ values: ['included', 'included', 'included', 'included'],
71
+ detail: 'storage',
72
+ },
73
+ {
74
+ id: 'finance_2',
75
+ app: 'finance',
76
+ category: 'operations',
77
+ values: ['included', 'included', 'included', 'included'],
78
+ detail: 'storage',
79
+ },
80
+ {
81
+ id: 'finance_3',
82
+ app: 'finance',
83
+ category: 'operations',
84
+ values: ['included', 'included', 'included', 'included'],
85
+ detail: 'storage',
86
+ },
87
+ {
88
+ id: 'finance_4',
89
+ app: 'finance',
90
+ category: 'operations',
91
+ values: ['included', 'included', 'included', 'included'],
92
+ detail: 'storage',
93
+ },
94
+ {
95
+ id: 'finance_5',
96
+ app: 'finance',
97
+ category: 'operations',
98
+ values: ['included', 'included', 'included', 'included'],
99
+ detail: 'storage',
100
+ },
101
+ {
102
+ id: 'finance_6',
103
+ app: 'finance',
104
+ category: 'operations',
105
+ values: ['included', 'included', 'included', 'included'],
106
+ detail: 'storage',
107
+ },
108
+ {
109
+ id: 'inventory_0',
110
+ app: 'inventory',
111
+ category: 'operations',
112
+ values: ['included', 'included', 'included', 'included'],
113
+ detail: 'standard',
114
+ },
115
+ {
116
+ id: 'inventory_1',
117
+ app: 'inventory',
118
+ category: 'operations',
119
+ values: ['included', 'included', 'included', 'included'],
120
+ detail: 'standard',
121
+ },
122
+ {
123
+ id: 'forms_0',
124
+ app: 'forms',
125
+ category: 'operations',
126
+ values: ['included', 'included', 'included', 'included'],
127
+ detail: 'storage',
128
+ },
129
+ {
130
+ id: 'forms_1',
131
+ app: 'forms',
132
+ category: 'operations',
133
+ values: ['included', 'included', 'included', 'included'],
134
+ detail: 'storage',
135
+ },
136
+ {
137
+ id: 'forms_2',
138
+ app: 'forms',
139
+ category: 'operations',
140
+ values: ['included', 'included', 'included', 'included'],
141
+ detail: 'storage',
142
+ },
143
+ {
144
+ id: 'forms_3',
145
+ app: 'forms',
146
+ category: 'operations',
147
+ values: ['included', 'included', 'included', 'included'],
148
+ detail: 'storage',
149
+ },
150
+ {
151
+ id: 'cms_0',
152
+ app: 'cms',
153
+ category: 'operations',
154
+ values: ['included', 'included', 'included', 'included'],
155
+ detail: 'storage',
156
+ },
157
+ {
158
+ id: 'cms_1',
159
+ app: 'cms',
160
+ category: 'operations',
161
+ values: ['included', 'included', 'included', 'included'],
162
+ detail: 'storage',
163
+ },
164
+ {
165
+ id: 'cms_2',
166
+ app: 'cms',
167
+ category: 'operations',
168
+ values: ['included', 'included', 'included', 'included'],
169
+ detail: 'storage',
170
+ },
171
+ {
172
+ id: 'cms_3',
173
+ app: 'cms',
174
+ category: 'operations',
175
+ values: ['included', 'included', 'included', 'included'],
176
+ detail: 'storage',
177
+ },
178
+ {
179
+ id: 'cms_4',
180
+ app: 'cms',
181
+ category: 'operations',
182
+ values: ['included', 'included', 'included', 'included'],
183
+ detail: 'storage',
184
+ },
185
+ {
186
+ id: 'cms_5',
187
+ app: 'cms',
188
+ category: 'operations',
189
+ values: ['included', 'included', 'included', 'included'],
190
+ detail: 'storage',
191
+ },
192
+ {
193
+ id: 'cms_6',
194
+ app: 'cms',
195
+ category: 'operations',
196
+ values: ['included', 'included', 'included', 'included'],
197
+ detail: 'storage',
198
+ },
199
+ {
200
+ id: 'mail_0',
201
+ app: 'mail',
202
+ category: 'operations',
203
+ values: ['preview', 'preview', 'preview', 'preview'],
204
+ detail: 'standard',
205
+ },
206
+ {
207
+ id: 'mail_1',
208
+ app: 'mail',
209
+ category: 'operations',
210
+ values: ['preview', 'preview', 'preview', 'preview'],
211
+ detail: 'standard',
212
+ },
213
+ {
214
+ id: 'mail_2',
215
+ app: 'mail',
216
+ category: 'operations',
217
+ values: ['preview', 'preview', 'preview', 'preview'],
218
+ detail: 'standard',
219
+ },
220
+ {
221
+ id: 'ai_0',
222
+ app: 'ai',
223
+ category: 'ai',
224
+ values: ['included', 'included', 'included', 'included'],
225
+ detail: 'ai',
226
+ },
227
+ {
228
+ id: 'ai_1',
229
+ app: 'ai',
230
+ category: 'ai',
231
+ values: ['included', 'included', 'included', 'included'],
232
+ detail: 'ai',
233
+ },
234
+ {
235
+ id: 'ai_2',
236
+ app: 'ai',
237
+ category: 'ai',
238
+ values: ['included', 'included', 'included', 'included'],
239
+ detail: 'ai',
240
+ },
241
+ {
242
+ id: 'ai_3',
243
+ app: 'ai',
244
+ category: 'ai',
245
+ values: ['included', 'included', 'included', 'included'],
246
+ detail: 'ai',
247
+ },
248
+ {
249
+ id: 'ai_4',
250
+ app: 'ai',
251
+ category: 'ai',
252
+ values: ['included', 'included', 'included', 'included'],
253
+ detail: 'ai',
254
+ },
255
+ {
256
+ id: 'ai_5',
257
+ app: 'ai',
258
+ category: 'ai',
259
+ values: ['included', 'included', 'included', 'included'],
260
+ detail: 'ai',
261
+ },
262
+ {
263
+ id: 'mind_0',
264
+ app: 'mind',
265
+ category: 'ai',
266
+ values: ['preview', 'preview', 'preview', 'preview'],
267
+ detail: 'ai',
268
+ },
269
+ {
270
+ id: 'hive_0',
271
+ app: 'hive',
272
+ category: 'ai',
273
+ values: ['preview', 'preview', 'preview', 'preview'],
274
+ detail: 'ai',
275
+ },
276
+ {
277
+ id: 'hive_1',
278
+ app: 'hive',
279
+ category: 'ai',
280
+ values: ['preview', 'preview', 'preview', 'preview'],
281
+ detail: 'ai',
282
+ },
283
+ ];