@ourofoundation/ouro-js 3.8.2 → 3.8.4

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 (182) hide show
  1. package/dist/chunk-2GABFYUS.cjs +2 -0
  2. package/dist/chunk-2GABFYUS.cjs.map +1 -0
  3. package/dist/chunk-4AEKCY33.js +2 -0
  4. package/dist/chunk-4AEKCY33.js.map +1 -0
  5. package/dist/chunk-4GP5MIEM.cjs +2 -0
  6. package/dist/chunk-4GP5MIEM.cjs.map +1 -0
  7. package/dist/{chunk-DSJ23DIB.cjs → chunk-4UNQYG7I.cjs} +2 -2
  8. package/dist/{chunk-DSJ23DIB.cjs.map → chunk-4UNQYG7I.cjs.map} +1 -1
  9. package/dist/{chunk-KU5AWMS5.cjs → chunk-5PWVQ2XA.cjs} +2 -2
  10. package/dist/{chunk-KU5AWMS5.cjs.map → chunk-5PWVQ2XA.cjs.map} +1 -1
  11. package/dist/chunk-67Q4RMP6.js +2 -0
  12. package/dist/chunk-67Q4RMP6.js.map +1 -0
  13. package/dist/chunk-6KQTA6I7.cjs +2 -0
  14. package/dist/{chunk-AIIAIQ6L.cjs.map → chunk-6KQTA6I7.cjs.map} +1 -1
  15. package/dist/chunk-B4OJDZY5.js +2 -0
  16. package/dist/{chunk-PGCNGDPK.js.map → chunk-B4OJDZY5.js.map} +1 -1
  17. package/dist/{chunk-OCG3P3PJ.js → chunk-BWUPF76F.js} +2 -2
  18. package/dist/{chunk-OCG3P3PJ.js.map → chunk-BWUPF76F.js.map} +1 -1
  19. package/dist/{chunk-RMMMRN4X.cjs → chunk-D2VAJ55Q.cjs} +2 -2
  20. package/dist/{chunk-RMMMRN4X.cjs.map → chunk-D2VAJ55Q.cjs.map} +1 -1
  21. package/dist/chunk-D6JWKEY5.cjs +2 -0
  22. package/dist/chunk-D6JWKEY5.cjs.map +1 -0
  23. package/dist/chunk-G3IGIXKD.cjs +2 -0
  24. package/dist/chunk-G3IGIXKD.cjs.map +1 -0
  25. package/dist/chunk-GS5VFJ22.cjs +2 -0
  26. package/dist/chunk-GS5VFJ22.cjs.map +1 -0
  27. package/dist/chunk-GUEHIQ6T.cjs +2 -0
  28. package/dist/chunk-GUEHIQ6T.cjs.map +1 -0
  29. package/dist/chunk-HKU6LRRS.js +2 -0
  30. package/dist/chunk-HKU6LRRS.js.map +1 -0
  31. package/dist/chunk-IUO6O47I.cjs +2 -0
  32. package/dist/chunk-IUO6O47I.cjs.map +1 -0
  33. package/dist/chunk-KTJTOSL2.cjs +2 -0
  34. package/dist/chunk-KTJTOSL2.cjs.map +1 -0
  35. package/dist/chunk-KV6R6XC2.cjs +2 -0
  36. package/dist/chunk-KV6R6XC2.cjs.map +1 -0
  37. package/dist/chunk-MRUJUIPN.js +2 -0
  38. package/dist/chunk-MRUJUIPN.js.map +1 -0
  39. package/dist/{chunk-LXDNBUOU.js → chunk-MV4VXP6M.js} +2 -2
  40. package/dist/{chunk-LXDNBUOU.js.map → chunk-MV4VXP6M.js.map} +1 -1
  41. package/dist/chunk-NGPSTYQD.js +2 -0
  42. package/dist/chunk-NGPSTYQD.js.map +1 -0
  43. package/dist/chunk-NK4K542Q.js +2 -0
  44. package/dist/chunk-NK4K542Q.js.map +1 -0
  45. package/dist/chunk-NLU672VS.js +2 -0
  46. package/dist/chunk-NLU672VS.js.map +1 -0
  47. package/dist/chunk-OC34WU3H.cjs +2 -0
  48. package/dist/chunk-OC34WU3H.cjs.map +1 -0
  49. package/dist/chunk-OZBQNIKJ.js +2 -0
  50. package/dist/chunk-OZBQNIKJ.js.map +1 -0
  51. package/dist/chunk-QVMN2EX4.js +2 -0
  52. package/dist/chunk-QVMN2EX4.js.map +1 -0
  53. package/dist/{chunk-E2FDUS3B.cjs → chunk-RCUD47O3.cjs} +2 -2
  54. package/dist/{chunk-E2FDUS3B.cjs.map → chunk-RCUD47O3.cjs.map} +1 -1
  55. package/dist/chunk-SB4X4GDQ.js +2 -0
  56. package/dist/chunk-SB4X4GDQ.js.map +1 -0
  57. package/dist/chunk-WMCUQQ2Q.cjs +2 -0
  58. package/dist/chunk-WMCUQQ2Q.cjs.map +1 -0
  59. package/dist/chunk-XQTA6BNA.js +2 -0
  60. package/dist/chunk-XQTA6BNA.js.map +1 -0
  61. package/dist/chunk-XTINLMDO.js +2 -0
  62. package/dist/{chunk-FGEMQEEM.js.map → chunk-XTINLMDO.js.map} +1 -1
  63. package/dist/chunk-ZBNLKRMB.js +2 -0
  64. package/dist/{chunk-MKRXM63S.js.map → chunk-ZBNLKRMB.js.map} +1 -1
  65. package/dist/index.cjs +1 -1
  66. package/dist/index.d.cts +7 -6
  67. package/dist/index.d.ts +7 -6
  68. package/dist/index.js +1 -1
  69. package/dist/schema/asset-filters.cjs +1 -1
  70. package/dist/schema/asset-filters.d.cts +4 -2
  71. package/dist/schema/asset-filters.d.ts +4 -2
  72. package/dist/schema/asset-filters.js +1 -1
  73. package/dist/schema/assets.cjs +1 -1
  74. package/dist/schema/assets.d.cts +6 -0
  75. package/dist/schema/assets.d.ts +6 -0
  76. package/dist/schema/assets.js +1 -1
  77. package/dist/schema/comments.cjs +1 -1
  78. package/dist/schema/comments.d.cts +36 -0
  79. package/dist/schema/comments.d.ts +36 -0
  80. package/dist/schema/comments.js +1 -1
  81. package/dist/schema/conversations.cjs +1 -1
  82. package/dist/schema/conversations.d.cts +12 -0
  83. package/dist/schema/conversations.d.ts +12 -0
  84. package/dist/schema/conversations.js +1 -1
  85. package/dist/schema/datasets.cjs +1 -1
  86. package/dist/schema/datasets.d.cts +13 -5
  87. package/dist/schema/datasets.d.ts +13 -5
  88. package/dist/schema/datasets.js +1 -1
  89. package/dist/schema/files.cjs +1 -1
  90. package/dist/schema/files.d.cts +168 -1
  91. package/dist/schema/files.d.ts +168 -1
  92. package/dist/schema/files.js +1 -1
  93. package/dist/schema/notifications.cjs +1 -1
  94. package/dist/schema/notifications.d.cts +148 -1
  95. package/dist/schema/notifications.d.ts +148 -1
  96. package/dist/schema/notifications.js +1 -1
  97. package/dist/schema/organizations.cjs +1 -1
  98. package/dist/schema/organizations.d.cts +3 -1
  99. package/dist/schema/organizations.d.ts +3 -1
  100. package/dist/schema/organizations.js +1 -1
  101. package/dist/schema/posts.cjs +1 -1
  102. package/dist/schema/posts.d.cts +36 -0
  103. package/dist/schema/posts.d.ts +36 -0
  104. package/dist/schema/posts.js +1 -1
  105. package/dist/schema/quests.cjs +1 -1
  106. package/dist/schema/quests.d.cts +88 -15
  107. package/dist/schema/quests.d.ts +88 -15
  108. package/dist/schema/quests.js +1 -1
  109. package/dist/schema/renditions.cjs +2 -0
  110. package/dist/schema/renditions.cjs.map +1 -0
  111. package/dist/schema/renditions.d.cts +196 -0
  112. package/dist/schema/renditions.d.ts +196 -0
  113. package/dist/schema/renditions.js +2 -0
  114. package/dist/schema/renditions.js.map +1 -0
  115. package/dist/schema/services.cjs +1 -1
  116. package/dist/schema/services.d.cts +319 -7
  117. package/dist/schema/services.d.ts +319 -7
  118. package/dist/schema/services.js +1 -1
  119. package/dist/schema/teams.cjs +1 -1
  120. package/dist/schema/teams.d.cts +25 -0
  121. package/dist/schema/teams.d.ts +25 -0
  122. package/dist/schema/teams.js +1 -1
  123. package/dist/schema/users.cjs +1 -1
  124. package/dist/schema/users.d.cts +42 -1
  125. package/dist/schema/users.d.ts +42 -1
  126. package/dist/schema/users.js +1 -1
  127. package/dist/utils/files.cjs +1 -1
  128. package/dist/utils/files.d.cts +2 -1
  129. package/dist/utils/files.d.ts +2 -1
  130. package/dist/utils/files.js +1 -1
  131. package/dist/utils/quest-submission.cjs +1 -1
  132. package/dist/utils/quest-submission.d.cts +10 -1
  133. package/dist/utils/quest-submission.d.ts +10 -1
  134. package/dist/utils/quest-submission.js +1 -1
  135. package/package.json +1 -1
  136. package/tests/file-classification.test.mjs +19 -0
  137. package/tests/files.test.mjs +21 -1
  138. package/tests/renditions.test.mjs +111 -0
  139. package/dist/chunk-3DGJ27WL.js +0 -2
  140. package/dist/chunk-3DGJ27WL.js.map +0 -1
  141. package/dist/chunk-3JPOAQ2M.cjs +0 -2
  142. package/dist/chunk-3JPOAQ2M.cjs.map +0 -1
  143. package/dist/chunk-5CPECQKN.js +0 -2
  144. package/dist/chunk-5CPECQKN.js.map +0 -1
  145. package/dist/chunk-5SC4M4E3.cjs +0 -2
  146. package/dist/chunk-5SC4M4E3.cjs.map +0 -1
  147. package/dist/chunk-AIIAIQ6L.cjs +0 -2
  148. package/dist/chunk-CDJH4OT5.js +0 -2
  149. package/dist/chunk-CDJH4OT5.js.map +0 -1
  150. package/dist/chunk-EC376C5T.js +0 -2
  151. package/dist/chunk-EC376C5T.js.map +0 -1
  152. package/dist/chunk-FGEMQEEM.js +0 -2
  153. package/dist/chunk-KHERHT26.cjs +0 -2
  154. package/dist/chunk-KHERHT26.cjs.map +0 -1
  155. package/dist/chunk-KMENBGAB.js +0 -2
  156. package/dist/chunk-KMENBGAB.js.map +0 -1
  157. package/dist/chunk-LHCGBWFP.cjs +0 -2
  158. package/dist/chunk-LHCGBWFP.cjs.map +0 -1
  159. package/dist/chunk-MKRXM63S.js +0 -2
  160. package/dist/chunk-O4LSX56P.js +0 -2
  161. package/dist/chunk-O4LSX56P.js.map +0 -1
  162. package/dist/chunk-OU4JKY4M.js +0 -2
  163. package/dist/chunk-OU4JKY4M.js.map +0 -1
  164. package/dist/chunk-PGCNGDPK.js +0 -2
  165. package/dist/chunk-PVUBGWOI.cjs +0 -2
  166. package/dist/chunk-PVUBGWOI.cjs.map +0 -1
  167. package/dist/chunk-RS5H4XDK.js +0 -2
  168. package/dist/chunk-RS5H4XDK.js.map +0 -1
  169. package/dist/chunk-T6UO42TO.cjs +0 -2
  170. package/dist/chunk-T6UO42TO.cjs.map +0 -1
  171. package/dist/chunk-U6XOT6XH.cjs +0 -2
  172. package/dist/chunk-U6XOT6XH.cjs.map +0 -1
  173. package/dist/chunk-W6KXPYCB.js +0 -2
  174. package/dist/chunk-W6KXPYCB.js.map +0 -1
  175. package/dist/chunk-XEA4DDOE.cjs +0 -2
  176. package/dist/chunk-XEA4DDOE.cjs.map +0 -1
  177. package/dist/chunk-XL2RQ3DZ.cjs +0 -2
  178. package/dist/chunk-XL2RQ3DZ.cjs.map +0 -1
  179. package/dist/chunk-Y6BK75KP.js +0 -2
  180. package/dist/chunk-Y6BK75KP.js.map +0 -1
  181. package/dist/chunk-YTCAK2AH.cjs +0 -2
  182. package/dist/chunk-YTCAK2AH.cjs.map +0 -1
@@ -63,6 +63,7 @@ declare const TeamSchema: z.ZodObject<{
63
63
  web_only: "web_only";
64
64
  api_only: "api_only";
65
65
  }>>>;
66
+ join_policy: z.ZodDefault<z.ZodOptional<z.ZodString>>;
66
67
  userMembership: z.ZodOptional<z.ZodNullable<z.ZodObject<{
67
68
  user_id: z.ZodUUID;
68
69
  role: z.ZodEnum<{
@@ -72,6 +73,11 @@ declare const TeamSchema: z.ZodObject<{
72
73
  none: "none";
73
74
  }>;
74
75
  }, z.core.$strip>>>;
76
+ userJoinRequest: z.ZodOptional<z.ZodNullable<z.ZodObject<{
77
+ id: z.ZodUUID;
78
+ status: z.ZodString;
79
+ created_at: z.ZodString;
80
+ }, z.core.$strip>>>;
75
81
  memberCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
76
82
  members: z.ZodArray<z.ZodObject<{
77
83
  user_id: z.ZodUUID;
@@ -115,6 +121,7 @@ declare const CreateTeamSchema: z.ZodObject<{
115
121
  id: z.ZodDefault<z.ZodString>;
116
122
  org_id: z.ZodUUID;
117
123
  name: z.ZodString;
124
+ join_policy: z.ZodDefault<z.ZodOptional<z.ZodString>>;
118
125
  actor_type_policy: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
119
126
  any: "any";
120
127
  verified_only: "verified_only";
@@ -174,6 +181,12 @@ declare const ReadTeamSchema: z.ZodObject<{
174
181
  web_only: "web_only";
175
182
  api_only: "api_only";
176
183
  }>>>;
184
+ join_policy: z.ZodDefault<z.ZodOptional<z.ZodString>>;
185
+ userJoinRequest: z.ZodOptional<z.ZodNullable<z.ZodObject<{
186
+ id: z.ZodUUID;
187
+ status: z.ZodString;
188
+ created_at: z.ZodString;
189
+ }, z.core.$strip>>>;
177
190
  created_at: z.ZodString;
178
191
  userMembership: z.ZodOptional<z.ZodNullable<z.ZodObject<{
179
192
  user_id: z.ZodUUID;
@@ -319,6 +332,12 @@ declare const ReadTeamsSchema: z.ZodArray<z.ZodObject<{
319
332
  web_only: "web_only";
320
333
  api_only: "api_only";
321
334
  }>>>;
335
+ join_policy: z.ZodDefault<z.ZodOptional<z.ZodString>>;
336
+ userJoinRequest: z.ZodOptional<z.ZodNullable<z.ZodObject<{
337
+ id: z.ZodUUID;
338
+ status: z.ZodString;
339
+ created_at: z.ZodString;
340
+ }, z.core.$strip>>>;
322
341
  created_at: z.ZodString;
323
342
  userMembership: z.ZodOptional<z.ZodNullable<z.ZodObject<{
324
343
  user_id: z.ZodUUID;
@@ -437,6 +456,7 @@ declare const ReadTeamsSchema: z.ZodArray<z.ZodObject<{
437
456
  }, z.core.$strip>>;
438
457
  declare const UpdateTeamSchema: z.ZodObject<{
439
458
  name: z.ZodOptional<z.ZodString>;
459
+ join_policy: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodString>>>;
440
460
  actor_type_policy: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodEnum<{
441
461
  any: "any";
442
462
  verified_only: "verified_only";
@@ -473,6 +493,11 @@ declare const UpdateTeamSchema: z.ZodObject<{
473
493
  none: "none";
474
494
  }>;
475
495
  }, z.core.$strip>>>>;
496
+ userJoinRequest: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodObject<{
497
+ id: z.ZodUUID;
498
+ status: z.ZodString;
499
+ created_at: z.ZodString;
500
+ }, z.core.$strip>>>>;
476
501
  memberCount: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
477
502
  members: z.ZodOptional<z.ZodArray<z.ZodObject<{
478
503
  user_id: z.ZodUUID;
@@ -63,6 +63,7 @@ declare const TeamSchema: z.ZodObject<{
63
63
  web_only: "web_only";
64
64
  api_only: "api_only";
65
65
  }>>>;
66
+ join_policy: z.ZodDefault<z.ZodOptional<z.ZodString>>;
66
67
  userMembership: z.ZodOptional<z.ZodNullable<z.ZodObject<{
67
68
  user_id: z.ZodUUID;
68
69
  role: z.ZodEnum<{
@@ -72,6 +73,11 @@ declare const TeamSchema: z.ZodObject<{
72
73
  none: "none";
73
74
  }>;
74
75
  }, z.core.$strip>>>;
76
+ userJoinRequest: z.ZodOptional<z.ZodNullable<z.ZodObject<{
77
+ id: z.ZodUUID;
78
+ status: z.ZodString;
79
+ created_at: z.ZodString;
80
+ }, z.core.$strip>>>;
75
81
  memberCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
76
82
  members: z.ZodArray<z.ZodObject<{
77
83
  user_id: z.ZodUUID;
@@ -115,6 +121,7 @@ declare const CreateTeamSchema: z.ZodObject<{
115
121
  id: z.ZodDefault<z.ZodString>;
116
122
  org_id: z.ZodUUID;
117
123
  name: z.ZodString;
124
+ join_policy: z.ZodDefault<z.ZodOptional<z.ZodString>>;
118
125
  actor_type_policy: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
119
126
  any: "any";
120
127
  verified_only: "verified_only";
@@ -174,6 +181,12 @@ declare const ReadTeamSchema: z.ZodObject<{
174
181
  web_only: "web_only";
175
182
  api_only: "api_only";
176
183
  }>>>;
184
+ join_policy: z.ZodDefault<z.ZodOptional<z.ZodString>>;
185
+ userJoinRequest: z.ZodOptional<z.ZodNullable<z.ZodObject<{
186
+ id: z.ZodUUID;
187
+ status: z.ZodString;
188
+ created_at: z.ZodString;
189
+ }, z.core.$strip>>>;
177
190
  created_at: z.ZodString;
178
191
  userMembership: z.ZodOptional<z.ZodNullable<z.ZodObject<{
179
192
  user_id: z.ZodUUID;
@@ -319,6 +332,12 @@ declare const ReadTeamsSchema: z.ZodArray<z.ZodObject<{
319
332
  web_only: "web_only";
320
333
  api_only: "api_only";
321
334
  }>>>;
335
+ join_policy: z.ZodDefault<z.ZodOptional<z.ZodString>>;
336
+ userJoinRequest: z.ZodOptional<z.ZodNullable<z.ZodObject<{
337
+ id: z.ZodUUID;
338
+ status: z.ZodString;
339
+ created_at: z.ZodString;
340
+ }, z.core.$strip>>>;
322
341
  created_at: z.ZodString;
323
342
  userMembership: z.ZodOptional<z.ZodNullable<z.ZodObject<{
324
343
  user_id: z.ZodUUID;
@@ -437,6 +456,7 @@ declare const ReadTeamsSchema: z.ZodArray<z.ZodObject<{
437
456
  }, z.core.$strip>>;
438
457
  declare const UpdateTeamSchema: z.ZodObject<{
439
458
  name: z.ZodOptional<z.ZodString>;
459
+ join_policy: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodString>>>;
440
460
  actor_type_policy: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodEnum<{
441
461
  any: "any";
442
462
  verified_only: "verified_only";
@@ -473,6 +493,11 @@ declare const UpdateTeamSchema: z.ZodObject<{
473
493
  none: "none";
474
494
  }>;
475
495
  }, z.core.$strip>>>>;
496
+ userJoinRequest: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodObject<{
497
+ id: z.ZodUUID;
498
+ status: z.ZodString;
499
+ created_at: z.ZodString;
500
+ }, z.core.$strip>>>>;
476
501
  memberCount: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
477
502
  members: z.ZodOptional<z.ZodArray<z.ZodObject<{
478
503
  user_id: z.ZodUUID;
@@ -1,2 +1,2 @@
1
- export{b as CreateTeamSchema,c as ReadTeamSchema,d as ReadTeamsSchema,a as TeamSchema,e as UpdateTeamSchema}from'../chunk-Y6BK75KP.js';import'../chunk-OCG3P3PJ.js';import'../chunk-CDJH4OT5.js';import'../chunk-33C7IDRP.js';import'../chunk-42ADEGDM.js';//# sourceMappingURL=teams.js.map
1
+ export{b as CreateTeamSchema,c as ReadTeamSchema,d as ReadTeamsSchema,a as TeamSchema,e as UpdateTeamSchema}from'../chunk-67Q4RMP6.js';import'../chunk-BWUPF76F.js';import'../chunk-NLU672VS.js';import'../chunk-42ADEGDM.js';import'../chunk-33C7IDRP.js';//# sourceMappingURL=teams.js.map
2
2
  //# sourceMappingURL=teams.js.map
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkYTCAK2AH_cjs=require('../chunk-YTCAK2AH.cjs');Object.defineProperty(exports,"ActorTypeSchema",{enumerable:true,get:function(){return chunkYTCAK2AH_cjs.a}});Object.defineProperty(exports,"ProfileSchema",{enumerable:true,get:function(){return chunkYTCAK2AH_cjs.b}});Object.defineProperty(exports,"ReadProfileSchema",{enumerable:true,get:function(){return chunkYTCAK2AH_cjs.c}});Object.defineProperty(exports,"UpdateProfileSchema",{enumerable:true,get:function(){return chunkYTCAK2AH_cjs.d}});//# sourceMappingURL=users.cjs.map
1
+ 'use strict';var chunkWMCUQQ2Q_cjs=require('../chunk-WMCUQQ2Q.cjs');Object.defineProperty(exports,"ActorTypeSchema",{enumerable:true,get:function(){return chunkWMCUQQ2Q_cjs.a}});Object.defineProperty(exports,"LanguageToolsPreferencesSchema",{enumerable:true,get:function(){return chunkWMCUQQ2Q_cjs.b}});Object.defineProperty(exports,"PreferencesSchema",{enumerable:true,get:function(){return chunkWMCUQQ2Q_cjs.c}});Object.defineProperty(exports,"ProfileSchema",{enumerable:true,get:function(){return chunkWMCUQQ2Q_cjs.d}});Object.defineProperty(exports,"ReadProfileSchema",{enumerable:true,get:function(){return chunkWMCUQQ2Q_cjs.e}});Object.defineProperty(exports,"UpdateProfileSchema",{enumerable:true,get:function(){return chunkWMCUQQ2Q_cjs.f}});//# sourceMappingURL=users.cjs.map
2
2
  //# sourceMappingURL=users.cjs.map
@@ -5,6 +5,45 @@ declare const ActorTypeSchema: z.ZodEnum<{
5
5
  agent: "agent";
6
6
  verified: "verified";
7
7
  }>;
8
+ declare const LanguageToolsPreferencesSchema: z.ZodObject<{
9
+ language: z.ZodString;
10
+ translation: z.ZodObject<{
11
+ route_id: z.ZodNullable<z.ZodUUID>;
12
+ options: z.ZodRecord<z.ZodString, z.ZodAny>;
13
+ }, z.core.$catchall<z.ZodAny>>;
14
+ speech: z.ZodObject<{
15
+ route_id: z.ZodNullable<z.ZodUUID>;
16
+ options: z.ZodRecord<z.ZodString, z.ZodAny>;
17
+ voice: z.ZodNullable<z.ZodString>;
18
+ }, z.core.$catchall<z.ZodAny>>;
19
+ transcription: z.ZodOptional<z.ZodObject<{
20
+ route_id: z.ZodNullable<z.ZodUUID>;
21
+ options: z.ZodRecord<z.ZodString, z.ZodAny>;
22
+ }, z.core.$catchall<z.ZodAny>>>;
23
+ }, z.core.$catchall<z.ZodAny>>;
24
+ declare const PreferencesSchema: z.ZodObject<{
25
+ id: z.ZodUUID;
26
+ user_id: z.ZodUUID;
27
+ notifications: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
28
+ webhooks: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodAny>>>;
29
+ onboarding: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
30
+ language_tools: z.ZodOptional<z.ZodNullable<z.ZodObject<{
31
+ language: z.ZodString;
32
+ translation: z.ZodObject<{
33
+ route_id: z.ZodNullable<z.ZodUUID>;
34
+ options: z.ZodRecord<z.ZodString, z.ZodAny>;
35
+ }, z.core.$catchall<z.ZodAny>>;
36
+ speech: z.ZodObject<{
37
+ route_id: z.ZodNullable<z.ZodUUID>;
38
+ options: z.ZodRecord<z.ZodString, z.ZodAny>;
39
+ voice: z.ZodNullable<z.ZodString>;
40
+ }, z.core.$catchall<z.ZodAny>>;
41
+ transcription: z.ZodOptional<z.ZodObject<{
42
+ route_id: z.ZodNullable<z.ZodUUID>;
43
+ options: z.ZodRecord<z.ZodString, z.ZodAny>;
44
+ }, z.core.$catchall<z.ZodAny>>>;
45
+ }, z.core.$catchall<z.ZodAny>>>>;
46
+ }, z.core.$catchall<z.ZodAny>>;
8
47
  declare const ProfileSchema: z.ZodObject<{
9
48
  id: z.ZodUUID;
10
49
  user_id: z.ZodUUID;
@@ -82,8 +121,10 @@ declare const UpdateProfileSchema: z.ZodObject<{
82
121
  }, z.core.$strip>;
83
122
 
84
123
  type ActorType = z.infer<typeof ActorTypeSchema>;
124
+ type LanguageToolsPreferences = z.infer<typeof LanguageToolsPreferencesSchema>;
125
+ type Preferences = z.infer<typeof PreferencesSchema>;
85
126
  type Profile = z.infer<typeof ProfileSchema>;
86
127
  type UpdateProfile = z.infer<typeof UpdateProfileSchema>;
87
128
  type ReadProfile = z.infer<typeof ReadProfileSchema>;
88
129
 
89
- export { type ActorType, ActorTypeSchema, type Profile, ProfileSchema, type ReadProfile, ReadProfileSchema, type UpdateProfile, UpdateProfileSchema };
130
+ export { type ActorType, ActorTypeSchema, type LanguageToolsPreferences, LanguageToolsPreferencesSchema, type Preferences, PreferencesSchema, type Profile, ProfileSchema, type ReadProfile, ReadProfileSchema, type UpdateProfile, UpdateProfileSchema };
@@ -5,6 +5,45 @@ declare const ActorTypeSchema: z.ZodEnum<{
5
5
  agent: "agent";
6
6
  verified: "verified";
7
7
  }>;
8
+ declare const LanguageToolsPreferencesSchema: z.ZodObject<{
9
+ language: z.ZodString;
10
+ translation: z.ZodObject<{
11
+ route_id: z.ZodNullable<z.ZodUUID>;
12
+ options: z.ZodRecord<z.ZodString, z.ZodAny>;
13
+ }, z.core.$catchall<z.ZodAny>>;
14
+ speech: z.ZodObject<{
15
+ route_id: z.ZodNullable<z.ZodUUID>;
16
+ options: z.ZodRecord<z.ZodString, z.ZodAny>;
17
+ voice: z.ZodNullable<z.ZodString>;
18
+ }, z.core.$catchall<z.ZodAny>>;
19
+ transcription: z.ZodOptional<z.ZodObject<{
20
+ route_id: z.ZodNullable<z.ZodUUID>;
21
+ options: z.ZodRecord<z.ZodString, z.ZodAny>;
22
+ }, z.core.$catchall<z.ZodAny>>>;
23
+ }, z.core.$catchall<z.ZodAny>>;
24
+ declare const PreferencesSchema: z.ZodObject<{
25
+ id: z.ZodUUID;
26
+ user_id: z.ZodUUID;
27
+ notifications: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
28
+ webhooks: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodAny>>>;
29
+ onboarding: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
30
+ language_tools: z.ZodOptional<z.ZodNullable<z.ZodObject<{
31
+ language: z.ZodString;
32
+ translation: z.ZodObject<{
33
+ route_id: z.ZodNullable<z.ZodUUID>;
34
+ options: z.ZodRecord<z.ZodString, z.ZodAny>;
35
+ }, z.core.$catchall<z.ZodAny>>;
36
+ speech: z.ZodObject<{
37
+ route_id: z.ZodNullable<z.ZodUUID>;
38
+ options: z.ZodRecord<z.ZodString, z.ZodAny>;
39
+ voice: z.ZodNullable<z.ZodString>;
40
+ }, z.core.$catchall<z.ZodAny>>;
41
+ transcription: z.ZodOptional<z.ZodObject<{
42
+ route_id: z.ZodNullable<z.ZodUUID>;
43
+ options: z.ZodRecord<z.ZodString, z.ZodAny>;
44
+ }, z.core.$catchall<z.ZodAny>>>;
45
+ }, z.core.$catchall<z.ZodAny>>>>;
46
+ }, z.core.$catchall<z.ZodAny>>;
8
47
  declare const ProfileSchema: z.ZodObject<{
9
48
  id: z.ZodUUID;
10
49
  user_id: z.ZodUUID;
@@ -82,8 +121,10 @@ declare const UpdateProfileSchema: z.ZodObject<{
82
121
  }, z.core.$strip>;
83
122
 
84
123
  type ActorType = z.infer<typeof ActorTypeSchema>;
124
+ type LanguageToolsPreferences = z.infer<typeof LanguageToolsPreferencesSchema>;
125
+ type Preferences = z.infer<typeof PreferencesSchema>;
85
126
  type Profile = z.infer<typeof ProfileSchema>;
86
127
  type UpdateProfile = z.infer<typeof UpdateProfileSchema>;
87
128
  type ReadProfile = z.infer<typeof ReadProfileSchema>;
88
129
 
89
- export { type ActorType, ActorTypeSchema, type Profile, ProfileSchema, type ReadProfile, ReadProfileSchema, type UpdateProfile, UpdateProfileSchema };
130
+ export { type ActorType, ActorTypeSchema, type LanguageToolsPreferences, LanguageToolsPreferencesSchema, type Preferences, PreferencesSchema, type Profile, ProfileSchema, type ReadProfile, ReadProfileSchema, type UpdateProfile, UpdateProfileSchema };
@@ -1,2 +1,2 @@
1
- export{a as ActorTypeSchema,b as ProfileSchema,c as ReadProfileSchema,d as UpdateProfileSchema}from'../chunk-CDJH4OT5.js';//# sourceMappingURL=users.js.map
1
+ export{a as ActorTypeSchema,b as LanguageToolsPreferencesSchema,c as PreferencesSchema,d as ProfileSchema,e as ReadProfileSchema,f as UpdateProfileSchema}from'../chunk-NLU672VS.js';//# sourceMappingURL=users.js.map
2
2
  //# sourceMappingURL=users.js.map
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkKHERHT26_cjs=require('../chunk-KHERHT26.cjs');Object.defineProperty(exports,"FILE_FILTERS",{enumerable:true,get:function(){return chunkKHERHT26_cjs.a}});Object.defineProperty(exports,"fileTypes",{enumerable:true,get:function(){return chunkKHERHT26_cjs.b}});Object.defineProperty(exports,"getExtensionFromFileName",{enumerable:true,get:function(){return chunkKHERHT26_cjs.e}});Object.defineProperty(exports,"getExtensionFromMimeType",{enumerable:true,get:function(){return chunkKHERHT26_cjs.f}});Object.defineProperty(exports,"getFileClassification",{enumerable:true,get:function(){return chunkKHERHT26_cjs.h}});Object.defineProperty(exports,"getFileFilterLabel",{enumerable:true,get:function(){return chunkKHERHT26_cjs.c}});Object.defineProperty(exports,"getSafeFileExtension",{enumerable:true,get:function(){return chunkKHERHT26_cjs.g}});Object.defineProperty(exports,"normalizeExtension",{enumerable:true,get:function(){return chunkKHERHT26_cjs.d}});//# sourceMappingURL=files.cjs.map
1
+ 'use strict';var chunkOC34WU3H_cjs=require('../chunk-OC34WU3H.cjs');Object.defineProperty(exports,"FILE_FILTERS",{enumerable:true,get:function(){return chunkOC34WU3H_cjs.a}});Object.defineProperty(exports,"fileTypes",{enumerable:true,get:function(){return chunkOC34WU3H_cjs.b}});Object.defineProperty(exports,"getExtensionFromFileName",{enumerable:true,get:function(){return chunkOC34WU3H_cjs.e}});Object.defineProperty(exports,"getExtensionFromMimeType",{enumerable:true,get:function(){return chunkOC34WU3H_cjs.f}});Object.defineProperty(exports,"getFileClassification",{enumerable:true,get:function(){return chunkOC34WU3H_cjs.i}});Object.defineProperty(exports,"getFileFilterLabel",{enumerable:true,get:function(){return chunkOC34WU3H_cjs.c}});Object.defineProperty(exports,"getFileTypeName",{enumerable:true,get:function(){return chunkOC34WU3H_cjs.h}});Object.defineProperty(exports,"getSafeFileExtension",{enumerable:true,get:function(){return chunkOC34WU3H_cjs.g}});Object.defineProperty(exports,"normalizeExtension",{enumerable:true,get:function(){return chunkOC34WU3H_cjs.d}});//# sourceMappingURL=files.cjs.map
2
2
  //# sourceMappingURL=files.cjs.map
@@ -12,7 +12,8 @@ declare function getSafeFileExtension({ fileName, mimeType, fallback, }: {
12
12
  mimeType?: string | null;
13
13
  fallback?: string | null;
14
14
  }): string;
15
+ declare function getFileTypeName(extension: string | null | undefined): string | null;
15
16
  /** Display classification for a MIME type (asset badges, etc.). */
16
17
  declare function getFileClassification(type: string, extension: string): string;
17
18
 
18
- export { FILE_FILTERS, type FileFilter, fileTypes, getExtensionFromFileName, getExtensionFromMimeType, getFileClassification, getFileFilterLabel, getSafeFileExtension, normalizeExtension };
19
+ export { FILE_FILTERS, type FileFilter, fileTypes, getExtensionFromFileName, getExtensionFromMimeType, getFileClassification, getFileFilterLabel, getFileTypeName, getSafeFileExtension, normalizeExtension };
@@ -12,7 +12,8 @@ declare function getSafeFileExtension({ fileName, mimeType, fallback, }: {
12
12
  mimeType?: string | null;
13
13
  fallback?: string | null;
14
14
  }): string;
15
+ declare function getFileTypeName(extension: string | null | undefined): string | null;
15
16
  /** Display classification for a MIME type (asset badges, etc.). */
16
17
  declare function getFileClassification(type: string, extension: string): string;
17
18
 
18
- export { FILE_FILTERS, type FileFilter, fileTypes, getExtensionFromFileName, getExtensionFromMimeType, getFileClassification, getFileFilterLabel, getSafeFileExtension, normalizeExtension };
19
+ export { FILE_FILTERS, type FileFilter, fileTypes, getExtensionFromFileName, getExtensionFromMimeType, getFileClassification, getFileFilterLabel, getFileTypeName, getSafeFileExtension, normalizeExtension };
@@ -1,2 +1,2 @@
1
- export{a as FILE_FILTERS,b as fileTypes,e as getExtensionFromFileName,f as getExtensionFromMimeType,h as getFileClassification,c as getFileFilterLabel,g as getSafeFileExtension,d as normalizeExtension}from'../chunk-OU4JKY4M.js';//# sourceMappingURL=files.js.map
1
+ export{a as FILE_FILTERS,b as fileTypes,e as getExtensionFromFileName,f as getExtensionFromMimeType,i as getFileClassification,c as getFileFilterLabel,h as getFileTypeName,g as getSafeFileExtension,d as normalizeExtension}from'../chunk-QVMN2EX4.js';//# sourceMappingURL=files.js.map
2
2
  //# sourceMappingURL=files.js.map
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkU6XOT6XH_cjs=require('../chunk-U6XOT6XH.cjs');require('../chunk-XEA4DDOE.cjs'),require('../chunk-KHERHT26.cjs'),require('../chunk-RMMMRN4X.cjs'),require('../chunk-3JPOAQ2M.cjs'),require('../chunk-KU5AWMS5.cjs'),require('../chunk-YTCAK2AH.cjs'),require('../chunk-YFEGRZXL.cjs'),require('../chunk-7HF5VHUN.cjs'),require('../chunk-JRBBNFFI.cjs');Object.defineProperty(exports,"KeyedAssetInputSchema",{enumerable:true,get:function(){return chunkU6XOT6XH_cjs.c}});Object.defineProperty(exports,"KeyedAssetInputValueSchema",{enumerable:true,get:function(){return chunkU6XOT6XH_cjs.b}});Object.defineProperty(exports,"KeyedAssetRefsSchema",{enumerable:true,get:function(){return chunkU6XOT6XH_cjs.a}});Object.defineProperty(exports,"QuestSubmissionAssetDeclarationSchema",{enumerable:true,get:function(){return chunkU6XOT6XH_cjs.d}});Object.defineProperty(exports,"assetMatchesDeclaration",{enumerable:true,get:function(){return chunkU6XOT6XH_cjs.k}});Object.defineProperty(exports,"declarationToPickerFilters",{enumerable:true,get:function(){return chunkU6XOT6XH_cjs.j}});Object.defineProperty(exports,"declarationToSubmissionDeclaration",{enumerable:true,get:function(){return chunkU6XOT6XH_cjs.f}});Object.defineProperty(exports,"getPrimaryAssetRef",{enumerable:true,get:function(){return chunkU6XOT6XH_cjs.l}});Object.defineProperty(exports,"getPrimaryDeclarationKey",{enumerable:true,get:function(){return chunkU6XOT6XH_cjs.h}});Object.defineProperty(exports,"getRouteInputDeclarationsFromRoute",{enumerable:true,get:function(){return chunkU6XOT6XH_cjs.e}});Object.defineProperty(exports,"getSubmissionAssetShape",{enumerable:true,get:function(){return chunkU6XOT6XH_cjs.i}});Object.defineProperty(exports,"materializeContributorSubmissionAssets",{enumerable:true,get:function(){return chunkU6XOT6XH_cjs.g}});Object.defineProperty(exports,"toRouteInputAssets",{enumerable:true,get:function(){return chunkU6XOT6XH_cjs.m}});//# sourceMappingURL=quest-submission.cjs.map
1
+ 'use strict';var chunkIUO6O47I_cjs=require('../chunk-IUO6O47I.cjs');require('../chunk-GS5VFJ22.cjs'),require('../chunk-OC34WU3H.cjs'),require('../chunk-D2VAJ55Q.cjs'),require('../chunk-4GP5MIEM.cjs'),require('../chunk-5PWVQ2XA.cjs'),require('../chunk-WMCUQQ2Q.cjs'),require('../chunk-JRBBNFFI.cjs'),require('../chunk-7HF5VHUN.cjs'),require('../chunk-YFEGRZXL.cjs');Object.defineProperty(exports,"KeyedAssetInputSchema",{enumerable:true,get:function(){return chunkIUO6O47I_cjs.c}});Object.defineProperty(exports,"KeyedAssetInputValueSchema",{enumerable:true,get:function(){return chunkIUO6O47I_cjs.b}});Object.defineProperty(exports,"KeyedAssetRefsSchema",{enumerable:true,get:function(){return chunkIUO6O47I_cjs.a}});Object.defineProperty(exports,"QuestSubmissionAssetDeclarationSchema",{enumerable:true,get:function(){return chunkIUO6O47I_cjs.d}});Object.defineProperty(exports,"assetMatchesDeclaration",{enumerable:true,get:function(){return chunkIUO6O47I_cjs.k}});Object.defineProperty(exports,"declarationToPickerFilters",{enumerable:true,get:function(){return chunkIUO6O47I_cjs.j}});Object.defineProperty(exports,"declarationToSubmissionDeclaration",{enumerable:true,get:function(){return chunkIUO6O47I_cjs.f}});Object.defineProperty(exports,"getPrimaryAssetRef",{enumerable:true,get:function(){return chunkIUO6O47I_cjs.l}});Object.defineProperty(exports,"getPrimaryDeclarationKey",{enumerable:true,get:function(){return chunkIUO6O47I_cjs.h}});Object.defineProperty(exports,"getRouteInputDeclarationsFromRoute",{enumerable:true,get:function(){return chunkIUO6O47I_cjs.e}});Object.defineProperty(exports,"getSubmissionAssetShape",{enumerable:true,get:function(){return chunkIUO6O47I_cjs.i}});Object.defineProperty(exports,"materializeContributorSubmissionAssets",{enumerable:true,get:function(){return chunkIUO6O47I_cjs.g}});Object.defineProperty(exports,"toRouteInputAssets",{enumerable:true,get:function(){return chunkIUO6O47I_cjs.m}});//# sourceMappingURL=quest-submission.cjs.map
2
2
  //# sourceMappingURL=quest-submission.cjs.map
@@ -55,18 +55,26 @@ declare const QuestSubmissionAssetDeclarationSchema: z.ZodObject<{
55
55
  dataset: "dataset";
56
56
  file: "file";
57
57
  post: "post";
58
+ comment: "comment";
58
59
  }>;
60
+ asset_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
61
+ dataset: "dataset";
62
+ file: "file";
63
+ post: "post";
64
+ comment: "comment";
65
+ }>>>;
59
66
  primary: z.ZodOptional<z.ZodBoolean>;
60
67
  input_filter: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
68
+ audio: "audio";
61
69
  image: "image";
62
70
  video: "video";
63
- audio: "audio";
64
71
  pdf: "pdf";
65
72
  "3d model": "3d model";
66
73
  "atomic structure": "atomic structure";
67
74
  }>>>;
68
75
  file_extensions: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
69
76
  contains_file_extensions: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
77
+ label: z.ZodOptional<z.ZodNullable<z.ZodString>>;
70
78
  required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
71
79
  }, z.core.$catchall<z.ZodAny>>;
72
80
  type KeyedAssetRefs = z.infer<typeof KeyedAssetRefsSchema>;
@@ -91,6 +99,7 @@ type RouteInputDeclarationLike = {
91
99
  filter?: string | null;
92
100
  file_extensions?: string[] | null;
93
101
  input_file_extensions?: string[] | null;
102
+ label?: string | null;
94
103
  };
95
104
  type RouteForSubmissionShape = {
96
105
  route?: {
@@ -55,18 +55,26 @@ declare const QuestSubmissionAssetDeclarationSchema: z.ZodObject<{
55
55
  dataset: "dataset";
56
56
  file: "file";
57
57
  post: "post";
58
+ comment: "comment";
58
59
  }>;
60
+ asset_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
61
+ dataset: "dataset";
62
+ file: "file";
63
+ post: "post";
64
+ comment: "comment";
65
+ }>>>;
59
66
  primary: z.ZodOptional<z.ZodBoolean>;
60
67
  input_filter: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
68
+ audio: "audio";
61
69
  image: "image";
62
70
  video: "video";
63
- audio: "audio";
64
71
  pdf: "pdf";
65
72
  "3d model": "3d model";
66
73
  "atomic structure": "atomic structure";
67
74
  }>>>;
68
75
  file_extensions: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
69
76
  contains_file_extensions: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
77
+ label: z.ZodOptional<z.ZodNullable<z.ZodString>>;
70
78
  required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
71
79
  }, z.core.$catchall<z.ZodAny>>;
72
80
  type KeyedAssetRefs = z.infer<typeof KeyedAssetRefsSchema>;
@@ -91,6 +99,7 @@ type RouteInputDeclarationLike = {
91
99
  filter?: string | null;
92
100
  file_extensions?: string[] | null;
93
101
  input_file_extensions?: string[] | null;
102
+ label?: string | null;
94
103
  };
95
104
  type RouteForSubmissionShape = {
96
105
  route?: {
@@ -1,2 +1,2 @@
1
- export{c as KeyedAssetInputSchema,b as KeyedAssetInputValueSchema,a as KeyedAssetRefsSchema,d as QuestSubmissionAssetDeclarationSchema,k as assetMatchesDeclaration,j as declarationToPickerFilters,f as declarationToSubmissionDeclaration,l as getPrimaryAssetRef,h as getPrimaryDeclarationKey,e as getRouteInputDeclarationsFromRoute,i as getSubmissionAssetShape,g as materializeContributorSubmissionAssets,m as toRouteInputAssets}from'../chunk-O4LSX56P.js';import'../chunk-RS5H4XDK.js';import'../chunk-OU4JKY4M.js';import'../chunk-PGCNGDPK.js';import'../chunk-Y6BK75KP.js';import'../chunk-OCG3P3PJ.js';import'../chunk-CDJH4OT5.js';import'../chunk-33C7IDRP.js';import'../chunk-DUBPWSCA.js';import'../chunk-42ADEGDM.js';//# sourceMappingURL=quest-submission.js.map
1
+ export{c as KeyedAssetInputSchema,b as KeyedAssetInputValueSchema,a as KeyedAssetRefsSchema,d as QuestSubmissionAssetDeclarationSchema,k as assetMatchesDeclaration,j as declarationToPickerFilters,f as declarationToSubmissionDeclaration,l as getPrimaryAssetRef,h as getPrimaryDeclarationKey,e as getRouteInputDeclarationsFromRoute,i as getSubmissionAssetShape,g as materializeContributorSubmissionAssets,m as toRouteInputAssets}from'../chunk-OZBQNIKJ.js';import'../chunk-SB4X4GDQ.js';import'../chunk-QVMN2EX4.js';import'../chunk-B4OJDZY5.js';import'../chunk-67Q4RMP6.js';import'../chunk-BWUPF76F.js';import'../chunk-NLU672VS.js';import'../chunk-42ADEGDM.js';import'../chunk-DUBPWSCA.js';import'../chunk-33C7IDRP.js';//# sourceMappingURL=quest-submission.js.map
2
2
  //# sourceMappingURL=quest-submission.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ourofoundation/ouro-js",
3
- "version": "3.8.2",
3
+ "version": "3.8.4",
4
4
  "description": "Interact with the Ouro platform in browser and node.js environments",
5
5
  "module": "./dist/index.js",
6
6
  "main": "./dist/index.cjs",
@@ -0,0 +1,19 @@
1
+ import assert from "node:assert/strict";
2
+ import test from "node:test";
3
+
4
+ import { getFileClassification, getFileTypeName } from "../dist/index.js";
5
+
6
+ test("Ouro-specific formats get a readable name", () => {
7
+ assert.equal(getFileTypeName("phasediagram"), "phase diagram");
8
+ assert.equal(getFileTypeName(".PhaseDiagram"), "phase diagram");
9
+ assert.equal(getFileTypeName("json"), null);
10
+ assert.equal(
11
+ getFileClassification("application/json", "phasediagram"),
12
+ "phase diagram"
13
+ );
14
+ });
15
+
16
+ test("other files keep their MIME category or extension", () => {
17
+ assert.equal(getFileClassification("image/png", "png"), "image");
18
+ assert.equal(getFileClassification("application/json", "json"), ".json");
19
+ });
@@ -1,7 +1,7 @@
1
1
  import assert from "node:assert/strict";
2
2
  import test from "node:test";
3
3
 
4
- import { CreateFileSchema } from "../dist/index.js";
4
+ import { CreateFileSchema, updateFileSchema } from "../dist/index.js";
5
5
 
6
6
  const successMetadata = {
7
7
  id: "019b7d6d-2cc5-7df8-a575-91ecbfc72fc0",
@@ -69,3 +69,23 @@ test("ZIP preview rows and archive metadata parse together", () => {
69
69
  assert.equal(file.metadata.archive.entry_count, 1);
70
70
  assert.equal(file.preview[0].name, "data.csv");
71
71
  });
72
+
73
+ test("updateFileSchema keeps structure summaries, including unparseable ones", () => {
74
+ const structure = {
75
+ formula: "Fe8Si5W3",
76
+ elements: ["Fe", "Si", "W"],
77
+ num_atoms: 16,
78
+ space_group: { symbol: "P4/mmm", number: 123 },
79
+ crystal_system: "tetragonal",
80
+ lattice: { a: 5.4889, b: 5.4889, c: 6.1547, alpha: 90, beta: 90, gamma: 90 },
81
+ volume: 185.426,
82
+ density: 10.197,
83
+ };
84
+ const cif = { ...successMetadata, name: "x.cif", type: "chemical/x-cif", extension: "cif" };
85
+
86
+ const parsed = updateFileSchema.parse({ metadata: { ...cif, structure } });
87
+ assert.deepEqual(parsed.metadata.structure, structure);
88
+
89
+ const failed = updateFileSchema.parse({ metadata: { ...cif, structure: null } });
90
+ assert.equal(failed.metadata.structure, null);
91
+ });
@@ -0,0 +1,111 @@
1
+ import assert from "node:assert/strict";
2
+ import test from "node:test";
3
+
4
+ import {
5
+ AssetRenditionSchema,
6
+ LanguageToolsPreferencesSchema,
7
+ RouteCapabilitiesSchema,
8
+ RouteInputAssetDeclarationSchema,
9
+ } from "../dist/index.js";
10
+
11
+ const id = "019b7d6d-2cc5-7df8-a575-91ecbfc72fc0";
12
+ const otherId = "019b7d6d-2cc5-7df8-a575-91ecbfc72fc1";
13
+
14
+ test("route inputs accept a post and comment union", () => {
15
+ const declaration = RouteInputAssetDeclarationSchema.parse({
16
+ asset_type: "post",
17
+ asset_types: ["post", "comment"],
18
+ primary: true,
19
+ });
20
+
21
+ assert.equal(declaration.asset_type, "post");
22
+ assert.deepEqual(declaration.asset_types, ["post", "comment"]);
23
+ });
24
+
25
+ test("legacy singular route input declarations remain valid", () => {
26
+ const declaration = RouteInputAssetDeclarationSchema.parse({
27
+ asset_type: "post",
28
+ });
29
+
30
+ assert.equal(declaration.asset_type, "post");
31
+ assert.equal(declaration.asset_types, undefined);
32
+ });
33
+
34
+ test("semantic text capabilities parse cache and voice metadata", () => {
35
+ const capabilities = RouteCapabilitiesSchema.parse({
36
+ "text.translate.v1": {
37
+ supported_languages: ["en", "es"],
38
+ cache_version: "2026-09-17",
39
+ structured_content: true,
40
+ },
41
+ "text.speech.v1": {
42
+ supported_languages: ["en-US"],
43
+ voices: [{ id: "alloy", language: "en-US" }],
44
+ cache_scope: "user",
45
+ cache_version: "voice-model-2",
46
+ trusted: true,
47
+ },
48
+ "speech.transcribe.v1": {
49
+ supported_languages: ["*"],
50
+ cache_version: "stt-1",
51
+ },
52
+ });
53
+
54
+ assert.equal(capabilities["text.translate.v1"].cache_scope, "none");
55
+ assert.equal(capabilities["text.translate.v1"].trusted, false);
56
+ assert.equal(capabilities["text.speech.v1"].voices[0].id, "alloy");
57
+ assert.equal(capabilities["speech.transcribe.v1"].cache_scope, "none");
58
+ });
59
+
60
+ test("translation and speech renditions share a status contract", () => {
61
+ const translation = AssetRenditionSchema.parse({
62
+ id,
63
+ asset_id: otherId,
64
+ route_id: id,
65
+ provider_id: otherId,
66
+ kind: "translation",
67
+ status: "success",
68
+ target_language: "es",
69
+ content: {
70
+ json: { type: "doc", content: [] },
71
+ text: "Hola",
72
+ },
73
+ created_at: "2026-09-17T00:00:00.000Z",
74
+ last_updated: "2026-09-17T00:00:00.000Z",
75
+ });
76
+ const speech = AssetRenditionSchema.parse({
77
+ id,
78
+ asset_id: otherId,
79
+ route_id: id,
80
+ provider_id: otherId,
81
+ kind: "speech",
82
+ status: "in-progress",
83
+ language: "en-US",
84
+ created_at: "2026-09-17T00:00:00.000Z",
85
+ last_updated: "2026-09-17T00:00:00.000Z",
86
+ });
87
+
88
+ assert.equal(translation.content.text, "Hola");
89
+ assert.equal(speech.status, "in-progress");
90
+ });
91
+
92
+ test("language tool preferences retain per-provider options", () => {
93
+ const preferences = LanguageToolsPreferencesSchema.parse({
94
+ language: "es-MX",
95
+ translation: {
96
+ route_id: id,
97
+ options: { formality: "informal" },
98
+ },
99
+ speech: {
100
+ route_id: otherId,
101
+ voice: "alloy",
102
+ options: {},
103
+ },
104
+ transcription: {
105
+ route_id: id,
106
+ options: {},
107
+ },
108
+ });
109
+
110
+ assert.equal(preferences.translation.options.formality, "informal");
111
+ });
@@ -1,2 +0,0 @@
1
- import {b,f,h as h$1,a}from'./chunk-PGCNGDPK.js';import {object,boolean,number,optional,string,enum as _enum,uuid,literal,discriminatedUnion}from'zod';var h=object({entry_count:number(),file_count:number(),directory_count:number(),total_uncompressed_size:number(),total_compressed_size:number(),preview_truncated:boolean()}),S=object({id:uuid(),path:string(),bucket:_enum(["public-files","files"]),name:string(),type:string(),extension:string(),size:number(),width:optional(number()),height:optional(number()),archive:optional(h)}),_=object({type:string()}),d=S.extend(b.partial().shape),y=_.extend(b.partial().shape),F=f.extend({asset_type:literal("file").default("file"),metadata:d}),g=discriminatedUnion("state",[h$1.extend({asset_type:literal("file").default("file"),state:literal("success").default("success"),metadata:d}),h$1.extend({asset_type:literal("file").default("file"),state:literal("in-progress"),metadata:y})]).transform(i=>a(i)),M=F.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,organization:true,user:true,team:true,slug:true,is_pinned_in_team:true}).extend({last_updated:string().default(()=>new Date().toISOString())}).transform(i=>a(i));export{h as a,F as b,g as c,M as d};//# sourceMappingURL=chunk-3DGJ27WL.js.map
2
- //# sourceMappingURL=chunk-3DGJ27WL.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/schema/files.ts"],"names":["ZipArchiveMetadataSchema","object","number","boolean","BaseFileMetadataSchema","uuid","string","zodEnum","optional","BaseStubFileMetadataSchema","FileMetadataSchema","AssetMetadataSchema","StubFileMetadataSchema","FileSchema","AssetSchema","literal","CreateFileSchema","discriminatedUnion","CreateAssetSchema","value","normalizeAssetConfigForParsing","updateFileSchema"],"mappings":"2JAqBMA,CAA2BC,CAAAA,MAAAA,CAAO,CACtC,WAAA,CAAaC,MAAO,EAAA,CACpB,WAAYA,MAAO,EAAA,CACnB,eAAiBA,CAAAA,MAAAA,EACjB,CAAA,uBAAA,CAAyBA,QACzB,CAAA,qBAAA,CAAuBA,MAAO,EAAA,CAC9B,iBAAmBC,CAAAA,OAAAA,EACrB,CAAC,CAAA,CAEKC,CAAyBH,CAAAA,MAAAA,CAAO,CACpC,EAAA,CAAII,MACJ,CAAA,IAAA,CAAMC,MAAO,EAAA,CACb,MAAQC,CAAAA,KAAAA,CAAQ,CAAC,cAAgB,CAAA,OAAO,CAAC,CAAA,CACzC,IAAMD,CAAAA,MAAAA,GACN,IAAMA,CAAAA,MAAAA,EACN,CAAA,SAAA,CAAWA,MAAO,EAAA,CAClB,KAAMJ,MAAO,EAAA,CAEb,KAAOM,CAAAA,QAAAA,CAASN,MAAO,EAAC,EACxB,MAAQM,CAAAA,QAAAA,CAASN,MAAO,EAAC,CACzB,CAAA,OAAA,CAASM,SAASR,CAAwB,CAC5C,CAAC,CAAA,CAEKS,CAA6BR,CAAAA,MAAAA,CAAO,CACxC,IAAMK,CAAAA,MAAAA,EACR,CAAC,CAEKI,CAAAA,CAAAA,CAAqBN,EAAuB,MAChDO,CAAAA,CAAAA,CAAoB,OAAQ,EAAA,CAAE,KAChC,CAAA,CAEMC,CAAyBH,CAAAA,CAAAA,CAA2B,MACxDE,CAAAA,CAAAA,CAAoB,OAAQ,EAAA,CAAE,KAChC,CAAA,CAEME,EAAaC,CAAY,CAAA,MAAA,CAAO,CACpC,UAAA,CAAYC,OAAQ,CAAA,MAAM,EAAE,OAAQ,CAAA,MAAM,CAC1C,CAAA,QAAA,CAAUL,CACZ,CAAC,EAEKM,CAAmBC,CAAAA,kBAAAA,CAAmB,OAAS,CAAA,CAKnDC,GAAkB,CAAA,MAAA,CAAO,CACvB,UAAYH,CAAAA,OAAAA,CAAQ,MAAM,CAAA,CAAE,OAAQ,CAAA,MAAM,EAC1C,KAAOA,CAAAA,OAAAA,CAAQ,SAAS,CAAA,CAAE,OAAQ,CAAA,SAAS,EAC3C,QAAUL,CAAAA,CACZ,CAAC,CAAA,CAEDQ,GAAkB,CAAA,MAAA,CAAO,CACvB,UAAYH,CAAAA,OAAAA,CAAQ,MAAM,CAAA,CAAE,OAAQ,CAAA,MAAM,EAC1C,KAAOA,CAAAA,OAAAA,CAAQ,aAAa,CAAA,CAC5B,QAAUH,CAAAA,CACZ,CAAC,CACH,CAAC,CAAE,CAAA,SAAA,CAAWO,CAAUC,EAAAA,CAAAA,CAA+BD,CAAK,CAAC,CAAA,CAEvDE,CAAmBR,CAAAA,CAAAA,CAAW,OAAQ,EAAA,CACzC,KAAK,CACJ,OAAA,CAAS,IACT,CAAA,EAAA,CAAI,IACJ,CAAA,UAAA,CAAY,KACZ,YAAc,CAAA,IAAA,CACd,YAAc,CAAA,IAAA,CACd,IAAM,CAAA,IAAA,CACN,KAAM,IACN,CAAA,IAAA,CAAM,IACN,CAAA,iBAAA,CAAmB,IACrB,CAAC,EACA,MAAO,CAAA,CACN,YAAcP,CAAAA,MAAAA,EAAS,CAAA,OAAA,CAAQ,IAAM,IAAI,IAAA,EAAO,CAAA,WAAA,EAAa,CAC/D,CAAC,CAAA,CACA,SAAWa,CAAAA,CAAAA,EAAUC,CAA+BD,CAAAA,CAAK,CAAC","file":"chunk-3DGJ27WL.js","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n enum as zodEnum,\n type z,\n optional,\n literal,\n discriminatedUnion,\n nullable,\n boolean\n} from \"zod\";\n\nimport {\n AssetSchema,\n CreateAssetSchema,\n AssetMetadataSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\n\nconst ZipArchiveMetadataSchema = object({\n entry_count: number(),\n file_count: number(),\n directory_count: number(),\n total_uncompressed_size: number(),\n total_compressed_size: number(),\n preview_truncated: boolean(),\n});\n\nconst BaseFileMetadataSchema = object({\n id: uuid(), // The id of the file object\n path: string(), // The path of the file in storage\n bucket: zodEnum([\"public-files\", \"files\"]),\n name: string(),\n type: string(),\n extension: string(),\n size: number(),\n // If the file is an image, we store width and height\n width: optional(number()),\n height: optional(number()),\n archive: optional(ZipArchiveMetadataSchema),\n});\n\nconst BaseStubFileMetadataSchema = object({\n type: string(),\n});\n\nconst FileMetadataSchema = BaseFileMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst StubFileMetadataSchema = BaseStubFileMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst FileSchema = AssetSchema.extend({\n asset_type: literal(\"file\").default(\"file\"),\n metadata: FileMetadataSchema,\n});\n\nconst CreateFileSchema = discriminatedUnion(\"state\", [\n // Success state, file is ready. Keep `.default()` on this branch only so\n // omitted `state` still creates a ready file. Zod 4.5 treats a defaulted\n // discriminator as claiming `undefined`; two such branches throw\n // `Duplicate discriminator value \"undefined\"` on first parse.\n CreateAssetSchema.extend({\n asset_type: literal(\"file\").default(\"file\"),\n state: literal(\"success\").default(\"success\"),\n metadata: FileMetadataSchema,\n }),\n // In-progress state, file is being processed\n CreateAssetSchema.extend({\n asset_type: literal(\"file\").default(\"file\"),\n state: literal(\"in-progress\"),\n metadata: StubFileMetadataSchema,\n }),\n]).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst updateFileSchema = FileSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n FileSchema,\n CreateFileSchema,\n updateFileSchema,\n ZipArchiveMetadataSchema,\n};\nexport type File = z.infer<typeof FileSchema>;\nexport type CreateFile = z.infer<typeof CreateFileSchema>;\nexport type UpdateFile = z.infer<typeof updateFileSchema>;\nexport type ZipArchiveMetadata = z.infer<typeof ZipArchiveMetadataSchema>;\n"]}
@@ -1,2 +0,0 @@
1
- 'use strict';var chunkKU5AWMS5_cjs=require('./chunk-KU5AWMS5.cjs'),chunkYTCAK2AH_cjs=require('./chunk-YTCAK2AH.cjs'),chunkYFEGRZXL_cjs=require('./chunk-YFEGRZXL.cjs'),chunkJRBBNFFI_cjs=require('./chunk-JRBBNFFI.cjs'),uuidv7=require('uuidv7'),zod=require('zod');var s=zod.object({id:zod.uuid(),org_id:zod.uuid(),organization:chunkKU5AWMS5_cjs.c,name:zod.string(),description:zod.optional(zod.nullable(zod.object({text:zod.string(),json:zod.record(zod.string(),zod.any())}))),default_role:chunkYFEGRZXL_cjs.c,visibility:chunkYFEGRZXL_cjs.b,actor_type_policy:zod.optional(zod.nullable(chunkKU5AWMS5_cjs.a)),source_policy:zod.optional(zod.nullable(chunkKU5AWMS5_cjs.b)),userMembership:zod.optional(zod.nullable(zod.object({user_id:zod.uuid(),role:chunkYFEGRZXL_cjs.c}))),memberCount:zod.optional(zod.nullable(zod.number())),members:zod.array(zod.object({user_id:zod.uuid(),role:chunkYFEGRZXL_cjs.c,added_at:zod.string(),user:zod.optional(zod.nullable(chunkYTCAK2AH_cjs.b.partial()))})),created_at:zod.string()}),P=s.extend({id:zod.string().default(()=>uuidv7.uuidv7()),default_role:chunkYFEGRZXL_cjs.c.default("write").refine(d=>d==="read"||d==="write"),visibility:chunkYFEGRZXL_cjs.b.default("public").refine(d=>d==="public"||d==="organization"),created_at:zod.string().default(()=>new Date().toISOString())}).omit({organization:true,userMembership:true,memberCount:true,members:true,created_at:true}),T=s.extend({userMembership:zod.optional(zod.nullable(zod.object({user_id:zod.uuid(),role:chunkYFEGRZXL_cjs.c}))),memberCount:zod.number(),members:zod.array(zod.object({user_id:zod.uuid(),role:chunkYFEGRZXL_cjs.c,added_at:zod.string(),user:zod.optional(zod.nullable(chunkYTCAK2AH_cjs.b.partial()))})),organization:zod.optional(zod.nullable(chunkKU5AWMS5_cjs.c.partial())),assets:zod.optional(zod.nullable(zod.array(zod.record(zod.string(),zod.any())))),users:zod.optional(zod.nullable(zod.array(chunkYTCAK2AH_cjs.b.partial()))),actions:zod.optional(zod.nullable(zod.array(chunkJRBBNFFI_cjs.a)))}),U=zod.array(T.extend({label:zod.string(),value:zod.string()})),j=s.partial().omit({org_id:true,organization:true,created_at:true}).extend({id:zod.uuid()});exports.a=s;exports.b=P;exports.c=T;exports.d=U;exports.e=j;//# sourceMappingURL=chunk-3JPOAQ2M.cjs.map
2
- //# sourceMappingURL=chunk-3JPOAQ2M.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/schema/teams.ts"],"names":["TeamSchema","object","uuid","OrganizationsSchema","string","optional","nullable","record","any","RoleSchema","VisibilitySchema","ActorTypePolicySchema","SourcePolicySchema","number","array","ProfileSchema","CreateTeamSchema","uuidv7","v","ReadTeamSchema","zodRecord","ContentActionRefSchema","ReadTeamsSchema","UpdateTeamSchema"],"mappings":"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","file":"chunk-3JPOAQ2M.cjs","sourcesContent":["import { uuidv7 } from \"uuidv7\";\nimport {\n object,\n string,\n uuid,\n number,\n array,\n type z,\n optional,\n nullable,\n any,\n record\n} from \"zod\";\n\nimport { RoleSchema, VisibilitySchema } from \"./common\";\nimport { ContentActionRefSchema } from \"./content-refs\";\nimport { OrganizationsSchema, ActorTypePolicySchema, SourcePolicySchema } from \"./organizations\";\nimport { ProfileSchema } from \"./users\";\nimport { record as zodRecord } from \"zod\";\n\nconst TeamSchema = object({\n id: uuid(),\n org_id: uuid(),\n organization: OrganizationsSchema,\n name: string(),\n description: optional(\n nullable(\n object({\n text: string(),\n json: record(string(), any()),\n })\n )\n ),\n default_role: RoleSchema,\n visibility: VisibilitySchema,\n actor_type_policy: optional(nullable(ActorTypePolicySchema)),\n source_policy: optional(nullable(SourcePolicySchema)),\n userMembership: optional(\n nullable(\n object({\n user_id: uuid(),\n role: RoleSchema,\n })\n )\n ),\n memberCount: optional(nullable(number())),\n members: array(\n object({\n user_id: uuid(),\n role: RoleSchema,\n added_at: string(),\n user: optional(nullable(ProfileSchema.partial())),\n })\n ),\n created_at: string(),\n});\n\nconst CreateTeamSchema = TeamSchema.extend({\n id: string().default(() => uuidv7()),\n default_role: RoleSchema.default(\"write\").refine(\n (v) => v === \"read\" || v === \"write\"\n ),\n visibility: VisibilitySchema.default(\"public\").refine(\n (v) => v === \"public\" || v === \"organization\"\n ),\n created_at: string().default(() => new Date().toISOString()),\n}).omit({\n organization: true,\n userMembership: true,\n memberCount: true,\n members: true,\n created_at: true,\n});\n\nconst ReadTeamSchema = TeamSchema.extend({\n userMembership: optional(\n nullable(\n object({\n user_id: uuid(),\n role: RoleSchema,\n })\n )\n ),\n memberCount: number(),\n members: array(\n object({\n user_id: uuid(),\n role: RoleSchema,\n added_at: string(),\n user: optional(nullable(ProfileSchema.partial())),\n })\n ),\n organization: optional(nullable(OrganizationsSchema.partial())),\n // Enriched fields used for rendering embedded references in description.\n // assets stay loose here — AssetSchema imports TeamSchema (cycle).\n assets: optional(\n nullable(array(zodRecord(string(), any())))\n ),\n users: optional(\n nullable(array(ProfileSchema.partial()))\n ),\n actions: optional(nullable(array(ContentActionRefSchema))),\n});\n\nconst ReadTeamsSchema = array(\n ReadTeamSchema.extend({\n label: string(),\n value: string(),\n })\n);\n\nconst UpdateTeamSchema = TeamSchema.partial()\n .omit({\n org_id: true,\n organization: true,\n created_at: true,\n })\n .extend({\n id: uuid(),\n });\n\nexport {\n TeamSchema,\n CreateTeamSchema,\n ReadTeamSchema,\n ReadTeamsSchema,\n UpdateTeamSchema,\n};\nexport type Team = z.infer<typeof TeamSchema>;\nexport type CreateTeam = z.infer<typeof CreateTeamSchema>;\nexport type ReadTeam = z.infer<typeof ReadTeamSchema>;\nexport type ReadTeams = z.infer<typeof ReadTeamsSchema>;\nexport type UpdateTeam = z.infer<typeof UpdateTeamSchema>;\n"]}