@copilotkit/shared 1.51.4 → 1.51.5-next.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 (256) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/_virtual/_rolldown/runtime.cjs +29 -0
  3. package/dist/constants/index.cjs +13 -0
  4. package/dist/constants/index.cjs.map +1 -0
  5. package/dist/constants/{index.d.ts → index.d.cts} +3 -1
  6. package/dist/constants/index.d.cts.map +1 -0
  7. package/dist/constants/index.d.mts +8 -0
  8. package/dist/constants/index.d.mts.map +1 -0
  9. package/dist/constants/index.mjs +8 -12
  10. package/dist/constants/index.mjs.map +1 -1
  11. package/dist/index.cjs +64 -0
  12. package/dist/index.cjs.map +1 -0
  13. package/dist/index.d.cts +22 -0
  14. package/dist/index.d.cts.map +1 -0
  15. package/dist/index.d.mts +23 -0
  16. package/dist/index.d.mts.map +1 -0
  17. package/dist/index.mjs +16 -123
  18. package/dist/index.mjs.map +1 -1
  19. package/dist/index.umd.js +1017 -2
  20. package/dist/index.umd.js.map +1 -1
  21. package/dist/package.cjs +12 -0
  22. package/dist/package.cjs.map +1 -0
  23. package/dist/package.mjs +6 -0
  24. package/dist/package.mjs.map +1 -0
  25. package/dist/telemetry/events.d.cts +47 -0
  26. package/dist/telemetry/events.d.cts.map +1 -0
  27. package/dist/telemetry/events.d.mts +47 -0
  28. package/dist/telemetry/events.d.mts.map +1 -0
  29. package/dist/telemetry/index.d.mts +1 -0
  30. package/dist/telemetry/scarf-client.cjs +29 -0
  31. package/dist/telemetry/scarf-client.cjs.map +1 -0
  32. package/dist/telemetry/scarf-client.mjs +27 -5
  33. package/dist/telemetry/scarf-client.mjs.map +1 -1
  34. package/dist/telemetry/telemetry-client.cjs +87 -0
  35. package/dist/telemetry/telemetry-client.cjs.map +1 -0
  36. package/dist/telemetry/telemetry-client.d.cts +48 -0
  37. package/dist/telemetry/telemetry-client.d.cts.map +1 -0
  38. package/dist/telemetry/telemetry-client.d.mts +48 -0
  39. package/dist/telemetry/telemetry-client.d.mts.map +1 -0
  40. package/dist/telemetry/telemetry-client.mjs +83 -9
  41. package/dist/telemetry/telemetry-client.mjs.map +1 -1
  42. package/dist/telemetry/utils.cjs +16 -0
  43. package/dist/telemetry/utils.cjs.map +1 -0
  44. package/dist/telemetry/utils.mjs +14 -8
  45. package/dist/telemetry/utils.mjs.map +1 -1
  46. package/dist/types/{action.d.ts → action.d.cts} +32 -32
  47. package/dist/types/action.d.cts.map +1 -0
  48. package/dist/types/action.d.mts +59 -0
  49. package/dist/types/action.d.mts.map +1 -0
  50. package/dist/types/copilot-cloud-config.d.cts +15 -0
  51. package/dist/types/copilot-cloud-config.d.cts.map +1 -0
  52. package/dist/types/copilot-cloud-config.d.mts +15 -0
  53. package/dist/types/copilot-cloud-config.d.mts.map +1 -0
  54. package/dist/types/error.d.cts +57 -0
  55. package/dist/types/error.d.cts.map +1 -0
  56. package/dist/types/error.d.mts +57 -0
  57. package/dist/types/error.d.mts.map +1 -0
  58. package/dist/types/message.d.cts +31 -0
  59. package/dist/types/message.d.cts.map +1 -0
  60. package/dist/types/message.d.mts +31 -0
  61. package/dist/types/message.d.mts.map +1 -0
  62. package/dist/types/openai-assistant.d.cts +55 -0
  63. package/dist/types/openai-assistant.d.cts.map +1 -0
  64. package/dist/types/openai-assistant.d.mts +55 -0
  65. package/dist/types/openai-assistant.d.mts.map +1 -0
  66. package/dist/types/utility.d.cts +6 -0
  67. package/dist/types/utility.d.cts.map +1 -0
  68. package/dist/types/utility.d.mts +6 -0
  69. package/dist/types/utility.d.mts.map +1 -0
  70. package/dist/utils/conditions.cjs +32 -0
  71. package/dist/utils/conditions.cjs.map +1 -0
  72. package/dist/utils/{conditions.d.ts → conditions.d.cts} +16 -11
  73. package/dist/utils/conditions.d.cts.map +1 -0
  74. package/dist/utils/conditions.d.mts +31 -0
  75. package/dist/utils/conditions.d.mts.map +1 -0
  76. package/dist/utils/conditions.mjs +30 -6
  77. package/dist/utils/conditions.mjs.map +1 -1
  78. package/dist/utils/console-styling.cjs +91 -0
  79. package/dist/utils/console-styling.cjs.map +1 -0
  80. package/dist/utils/console-styling.d.cts +65 -0
  81. package/dist/utils/console-styling.d.cts.map +1 -0
  82. package/dist/utils/console-styling.d.mts +65 -0
  83. package/dist/utils/console-styling.d.mts.map +1 -0
  84. package/dist/utils/console-styling.mjs +83 -15
  85. package/dist/utils/console-styling.mjs.map +1 -1
  86. package/dist/utils/errors.cjs +439 -0
  87. package/dist/utils/errors.cjs.map +1 -0
  88. package/dist/utils/{errors.d.ts → errors.d.cts} +188 -156
  89. package/dist/utils/errors.d.cts.map +1 -0
  90. package/dist/utils/errors.d.mts +312 -0
  91. package/dist/utils/errors.d.mts.map +1 -0
  92. package/dist/utils/errors.mjs +416 -63
  93. package/dist/utils/errors.mjs.map +1 -1
  94. package/dist/utils/index.cjs +50 -0
  95. package/dist/utils/index.cjs.map +1 -0
  96. package/dist/utils/{index.d.ts → index.d.cts} +10 -11
  97. package/dist/utils/index.d.cts.map +1 -0
  98. package/dist/utils/index.d.mts +31 -0
  99. package/dist/utils/index.d.mts.map +1 -0
  100. package/dist/utils/index.mjs +47 -107
  101. package/dist/utils/index.mjs.map +1 -1
  102. package/dist/utils/json-schema.cjs +157 -0
  103. package/dist/utils/json-schema.cjs.map +1 -0
  104. package/dist/utils/{json-schema.d.ts → json-schema.d.cts} +19 -17
  105. package/dist/utils/json-schema.d.cts.map +1 -0
  106. package/dist/utils/json-schema.d.mts +36 -0
  107. package/dist/utils/json-schema.d.mts.map +1 -0
  108. package/dist/utils/json-schema.mjs +152 -12
  109. package/dist/utils/json-schema.mjs.map +1 -1
  110. package/dist/utils/random-id.cjs +38 -0
  111. package/dist/utils/random-id.cjs.map +1 -0
  112. package/dist/utils/{random-id.d.ts → random-id.d.cts} +3 -1
  113. package/dist/utils/random-id.d.cts.map +1 -0
  114. package/dist/utils/random-id.d.mts +8 -0
  115. package/dist/utils/random-id.d.mts.map +1 -0
  116. package/dist/utils/random-id.mjs +33 -12
  117. package/dist/utils/random-id.mjs.map +1 -1
  118. package/dist/utils/requests.cjs +58 -0
  119. package/dist/utils/requests.cjs.map +1 -0
  120. package/dist/utils/{requests.d.ts → requests.d.cts} +3 -1
  121. package/dist/utils/requests.d.cts.map +1 -0
  122. package/dist/utils/requests.d.mts +12 -0
  123. package/dist/utils/requests.d.mts.map +1 -0
  124. package/dist/utils/requests.mjs +56 -6
  125. package/dist/utils/requests.mjs.map +1 -1
  126. package/dist/utils/{types.d.ts → types.d.cts} +9 -7
  127. package/dist/utils/types.d.cts.map +1 -0
  128. package/dist/utils/types.d.mts +22 -0
  129. package/dist/utils/types.d.mts.map +1 -0
  130. package/package.json +17 -15
  131. package/src/types/message.ts +3 -1
  132. package/tsdown.config.ts +36 -0
  133. package/vitest.config.mjs +11 -0
  134. package/dist/chunk-2OJ5OJ2D.mjs +0 -1
  135. package/dist/chunk-2OJ5OJ2D.mjs.map +0 -1
  136. package/dist/chunk-3DK3UMRW.mjs +0 -217
  137. package/dist/chunk-3DK3UMRW.mjs.map +0 -1
  138. package/dist/chunk-6BE7PM2Q.mjs +0 -110
  139. package/dist/chunk-6BE7PM2Q.mjs.map +0 -1
  140. package/dist/chunk-BVVLGLFE.mjs +0 -435
  141. package/dist/chunk-BVVLGLFE.mjs.map +0 -1
  142. package/dist/chunk-FCCOSO5L.mjs +0 -1
  143. package/dist/chunk-FCCOSO5L.mjs.map +0 -1
  144. package/dist/chunk-GS5BLXSZ.mjs +0 -41
  145. package/dist/chunk-GS5BLXSZ.mjs.map +0 -1
  146. package/dist/chunk-HFJ7Q6KR.mjs +0 -38
  147. package/dist/chunk-HFJ7Q6KR.mjs.map +0 -1
  148. package/dist/chunk-IAFBVORQ.mjs +0 -1
  149. package/dist/chunk-IAFBVORQ.mjs.map +0 -1
  150. package/dist/chunk-M2RJI5BZ.mjs +0 -94
  151. package/dist/chunk-M2RJI5BZ.mjs.map +0 -1
  152. package/dist/chunk-MSUB6DGR.mjs +0 -1
  153. package/dist/chunk-MSUB6DGR.mjs.map +0 -1
  154. package/dist/chunk-N5EP5OD5.mjs +0 -1
  155. package/dist/chunk-N5EP5OD5.mjs.map +0 -1
  156. package/dist/chunk-NAFEBKSO.mjs +0 -1
  157. package/dist/chunk-NAFEBKSO.mjs.map +0 -1
  158. package/dist/chunk-P7STFMPO.mjs +0 -1
  159. package/dist/chunk-P7STFMPO.mjs.map +0 -1
  160. package/dist/chunk-UYARLQNA.mjs +0 -1
  161. package/dist/chunk-UYARLQNA.mjs.map +0 -1
  162. package/dist/chunk-V7BSERGI.mjs +0 -62
  163. package/dist/chunk-V7BSERGI.mjs.map +0 -1
  164. package/dist/chunk-WAZHII6M.mjs +0 -67
  165. package/dist/chunk-WAZHII6M.mjs.map +0 -1
  166. package/dist/chunk-XTHC46M2.mjs +0 -1
  167. package/dist/chunk-XTHC46M2.mjs.map +0 -1
  168. package/dist/chunk-ZIC6V6S5.mjs +0 -13
  169. package/dist/chunk-ZIC6V6S5.mjs.map +0 -1
  170. package/dist/chunk-ZUE2VR7D.mjs +0 -38
  171. package/dist/chunk-ZUE2VR7D.mjs.map +0 -1
  172. package/dist/constants/index.js +0 -40
  173. package/dist/constants/index.js.map +0 -1
  174. package/dist/index.d.ts +0 -25
  175. package/dist/index.js +0 -1138
  176. package/dist/index.js.map +0 -1
  177. package/dist/telemetry/events.d.ts +0 -45
  178. package/dist/telemetry/events.js +0 -19
  179. package/dist/telemetry/events.js.map +0 -1
  180. package/dist/telemetry/events.mjs +0 -1
  181. package/dist/telemetry/events.mjs.map +0 -1
  182. package/dist/telemetry/index.d.ts +0 -3
  183. package/dist/telemetry/index.js +0 -191
  184. package/dist/telemetry/index.js.map +0 -1
  185. package/dist/telemetry/index.mjs +0 -12
  186. package/dist/telemetry/index.mjs.map +0 -1
  187. package/dist/telemetry/scarf-client.d.ts +0 -7
  188. package/dist/telemetry/scarf-client.js +0 -59
  189. package/dist/telemetry/scarf-client.js.map +0 -1
  190. package/dist/telemetry/security-check.d.ts +0 -2
  191. package/dist/telemetry/security-check.js +0 -2
  192. package/dist/telemetry/security-check.js.map +0 -1
  193. package/dist/telemetry/security-check.mjs +0 -1
  194. package/dist/telemetry/security-check.mjs.map +0 -1
  195. package/dist/telemetry/telemetry-client.d.ts +0 -40
  196. package/dist/telemetry/telemetry-client.js +0 -189
  197. package/dist/telemetry/telemetry-client.js.map +0 -1
  198. package/dist/telemetry/utils.d.ts +0 -8
  199. package/dist/telemetry/utils.js +0 -73
  200. package/dist/telemetry/utils.js.map +0 -1
  201. package/dist/types/action.js +0 -19
  202. package/dist/types/action.js.map +0 -1
  203. package/dist/types/action.mjs +0 -2
  204. package/dist/types/action.mjs.map +0 -1
  205. package/dist/types/copilot-cloud-config.d.ts +0 -13
  206. package/dist/types/copilot-cloud-config.js +0 -19
  207. package/dist/types/copilot-cloud-config.js.map +0 -1
  208. package/dist/types/copilot-cloud-config.mjs +0 -2
  209. package/dist/types/copilot-cloud-config.mjs.map +0 -1
  210. package/dist/types/error.d.ts +0 -55
  211. package/dist/types/error.js +0 -19
  212. package/dist/types/error.js.map +0 -1
  213. package/dist/types/error.mjs +0 -2
  214. package/dist/types/error.mjs.map +0 -1
  215. package/dist/types/index.d.ts +0 -7
  216. package/dist/types/index.js +0 -19
  217. package/dist/types/index.js.map +0 -1
  218. package/dist/types/index.mjs +0 -8
  219. package/dist/types/index.mjs.map +0 -1
  220. package/dist/types/message.d.ts +0 -28
  221. package/dist/types/message.js +0 -19
  222. package/dist/types/message.js.map +0 -1
  223. package/dist/types/message.mjs +0 -2
  224. package/dist/types/message.mjs.map +0 -1
  225. package/dist/types/openai-assistant.d.ts +0 -53
  226. package/dist/types/openai-assistant.js +0 -19
  227. package/dist/types/openai-assistant.js.map +0 -1
  228. package/dist/types/openai-assistant.mjs +0 -2
  229. package/dist/types/openai-assistant.mjs.map +0 -1
  230. package/dist/types/utility.d.ts +0 -6
  231. package/dist/types/utility.js +0 -19
  232. package/dist/types/utility.js.map +0 -1
  233. package/dist/types/utility.mjs +0 -2
  234. package/dist/types/utility.mjs.map +0 -1
  235. package/dist/utils/conditions.js +0 -86
  236. package/dist/utils/conditions.js.map +0 -1
  237. package/dist/utils/console-styling.d.ts +0 -84
  238. package/dist/utils/console-styling.js +0 -123
  239. package/dist/utils/console-styling.js.map +0 -1
  240. package/dist/utils/errors.js +0 -452
  241. package/dist/utils/errors.js.map +0 -1
  242. package/dist/utils/index.js +0 -964
  243. package/dist/utils/index.js.map +0 -1
  244. package/dist/utils/json-schema.js +0 -244
  245. package/dist/utils/json-schema.js.map +0 -1
  246. package/dist/utils/random-id.js +0 -68
  247. package/dist/utils/random-id.js.map +0 -1
  248. package/dist/utils/requests.js +0 -91
  249. package/dist/utils/requests.js.map +0 -1
  250. package/dist/utils/types.js +0 -19
  251. package/dist/utils/types.js.map +0 -1
  252. package/dist/utils/types.mjs +0 -2
  253. package/dist/utils/types.mjs.map +0 -1
  254. package/jest.config.js +0 -5
  255. package/rollup.config.mjs +0 -54
  256. package/tsup.config.ts +0 -15
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"file":"json-schema.mjs","names":[],"sources":["../../src/utils/json-schema.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { Parameter } from \"../types\";\n\nexport type JSONSchemaString = {\n type: \"string\";\n description?: string;\n enum?: string[];\n};\n\nexport type JSONSchemaNumber = {\n type: \"number\";\n description?: string;\n};\n\nexport type JSONSchemaBoolean = {\n type: \"boolean\";\n description?: string;\n};\n\nexport type JSONSchemaObject = {\n type: \"object\";\n properties?: Record<string, JSONSchema>;\n required?: string[];\n description?: string;\n};\n\nexport type JSONSchemaArray = {\n type: \"array\";\n items: JSONSchema;\n description?: string;\n};\n\nexport type JSONSchema =\n | JSONSchemaString\n | JSONSchemaNumber\n | JSONSchemaBoolean\n | JSONSchemaObject\n | JSONSchemaArray;\n\nexport function actionParametersToJsonSchema(\n actionParameters: Parameter[],\n): JSONSchema {\n // Create the parameters object based on the argumentAnnotations\n let parameters: { [key: string]: any } = {};\n for (let parameter of actionParameters || []) {\n parameters[parameter.name] = convertAttribute(parameter);\n }\n\n let requiredParameterNames: string[] = [];\n for (let arg of actionParameters || []) {\n if (arg.required !== false) {\n requiredParameterNames.push(arg.name);\n }\n }\n\n // Create the ChatCompletionFunctions object\n return {\n type: \"object\",\n properties: parameters,\n required: requiredParameterNames,\n };\n}\n\n// Convert JSONSchema to Parameter[]\nexport function jsonSchemaToActionParameters(\n jsonSchema: JSONSchema,\n): Parameter[] {\n if (jsonSchema.type !== \"object\" || !jsonSchema.properties) {\n return [];\n }\n\n const parameters: Parameter[] = [];\n const requiredFields = jsonSchema.required || [];\n\n for (const [name, schema] of Object.entries(jsonSchema.properties)) {\n const parameter = convertJsonSchemaToParameter(\n name,\n schema,\n requiredFields.includes(name),\n );\n parameters.push(parameter);\n }\n\n return parameters;\n}\n\n// Convert JSONSchema property to Parameter\nfunction convertJsonSchemaToParameter(\n name: string,\n schema: JSONSchema,\n isRequired: boolean,\n): Parameter {\n const baseParameter: Parameter = {\n name,\n description: schema.description,\n };\n\n if (!isRequired) {\n baseParameter.required = false;\n }\n\n switch (schema.type) {\n case \"string\":\n return {\n ...baseParameter,\n type: \"string\",\n ...(schema.enum && { enum: schema.enum }),\n };\n case \"number\":\n case \"boolean\":\n return {\n ...baseParameter,\n type: schema.type,\n };\n case \"object\":\n if (schema.properties) {\n const attributes: Parameter[] = [];\n const requiredFields = schema.required || [];\n\n for (const [propName, propSchema] of Object.entries(\n schema.properties,\n )) {\n attributes.push(\n convertJsonSchemaToParameter(\n propName,\n propSchema,\n requiredFields.includes(propName),\n ),\n );\n }\n\n return {\n ...baseParameter,\n type: \"object\",\n attributes,\n };\n }\n return {\n ...baseParameter,\n type: \"object\",\n };\n case \"array\":\n if (schema.items.type === \"object\" && \"properties\" in schema.items) {\n const attributes: Parameter[] = [];\n const requiredFields = schema.items.required || [];\n\n for (const [propName, propSchema] of Object.entries(\n schema.items.properties || {},\n )) {\n attributes.push(\n convertJsonSchemaToParameter(\n propName,\n propSchema,\n requiredFields.includes(propName),\n ),\n );\n }\n\n return {\n ...baseParameter,\n type: \"object[]\",\n attributes,\n };\n } else if (schema.items.type === \"array\") {\n throw new Error(\"Nested arrays are not supported\");\n } else {\n return {\n ...baseParameter,\n type: `${schema.items.type}[]`,\n };\n }\n default:\n return {\n ...baseParameter,\n type: \"string\",\n };\n }\n}\n\nfunction convertAttribute(attribute: Parameter): JSONSchema {\n switch (attribute.type) {\n case \"string\":\n return {\n type: \"string\",\n description: attribute.description,\n ...(attribute.enum && { enum: attribute.enum }),\n };\n case \"number\":\n case \"boolean\":\n return {\n type: attribute.type,\n description: attribute.description,\n };\n case \"object\":\n case \"object[]\":\n const properties = attribute.attributes?.reduce(\n (acc, attr) => {\n acc[attr.name] = convertAttribute(attr);\n return acc;\n },\n {} as Record<string, any>,\n );\n const required = attribute.attributes\n ?.filter((attr) => attr.required !== false)\n .map((attr) => attr.name);\n if (attribute.type === \"object[]\") {\n return {\n type: \"array\",\n items: {\n type: \"object\",\n ...(properties && { properties }),\n ...(required && required.length > 0 && { required }),\n },\n description: attribute.description,\n };\n }\n return {\n type: \"object\",\n description: attribute.description,\n ...(properties && { properties }),\n ...(required && required.length > 0 && { required }),\n };\n default:\n // Handle arrays of primitive types and undefined attribute.type\n if (attribute.type?.endsWith(\"[]\")) {\n const itemType = attribute.type.slice(0, -2);\n return {\n type: \"array\",\n items: { type: itemType as any },\n description: attribute.description,\n };\n }\n // Fallback for undefined type or any other unexpected type\n return {\n type: \"string\",\n description: attribute.description,\n };\n }\n}\n\nexport function convertJsonSchemaToZodSchema(\n jsonSchema: any,\n required: boolean,\n): z.ZodSchema {\n if (jsonSchema.type === \"object\") {\n const spec: { [key: string]: z.ZodSchema } = {};\n\n if (!jsonSchema.properties || !Object.keys(jsonSchema.properties).length) {\n return !required ? z.object(spec).optional() : z.object(spec);\n }\n\n for (const [key, value] of Object.entries(jsonSchema.properties)) {\n spec[key] = convertJsonSchemaToZodSchema(\n value,\n jsonSchema.required ? jsonSchema.required.includes(key) : false,\n );\n }\n let schema = z.object(spec).describe(jsonSchema.description);\n return required ? schema : schema.optional();\n } else if (jsonSchema.type === \"string\") {\n let schema = z.string().describe(jsonSchema.description);\n return required ? schema : schema.optional();\n } else if (jsonSchema.type === \"number\") {\n let schema = z.number().describe(jsonSchema.description);\n return required ? schema : schema.optional();\n } else if (jsonSchema.type === \"boolean\") {\n let schema = z.boolean().describe(jsonSchema.description);\n return required ? schema : schema.optional();\n } else if (jsonSchema.type === \"array\") {\n let itemSchema = convertJsonSchemaToZodSchema(jsonSchema.items, true);\n let schema = z.array(itemSchema).describe(jsonSchema.description);\n return required ? schema : schema.optional();\n }\n throw new Error(\"Invalid JSON schema\");\n}\n\nexport function getZodParameters<T extends [] | Parameter[] | undefined>(\n parameters: T,\n): any {\n if (!parameters) return z.object({});\n const jsonParams = actionParametersToJsonSchema(parameters);\n return convertJsonSchemaToZodSchema(jsonParams, true);\n}\n"],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
+ let uuid = require("uuid");
3
+
4
+ //#region src/utils/random-id.ts
5
+ function randomId() {
6
+ return "ck-" + (0, uuid.v4)();
7
+ }
8
+ function randomUUID() {
9
+ return (0, uuid.v4)();
10
+ }
11
+ /**
12
+ * Recursively converts an object to a serializable form by converting functions to their string representation.
13
+ */
14
+ function toSerializable(value) {
15
+ if (typeof value === "function") return value.toString();
16
+ if (Array.isArray(value)) return value.map(toSerializable);
17
+ if (value !== null && typeof value === "object") {
18
+ const result = {};
19
+ for (const key of Object.keys(value)) result[key] = toSerializable(value[key]);
20
+ return result;
21
+ }
22
+ return value;
23
+ }
24
+ function dataToUUID(input, namespace) {
25
+ const BASE_NAMESPACE = "e4b01160-ff74-4c6e-9b27-d53cd930fe8e";
26
+ const boundNamespace = namespace ? (0, uuid.v5)(namespace, BASE_NAMESPACE) : BASE_NAMESPACE;
27
+ return (0, uuid.v5)(typeof input === "string" ? input : JSON.stringify(toSerializable(input)), boundNamespace);
28
+ }
29
+ function isValidUUID(uuid$1) {
30
+ return (0, uuid.validate)(uuid$1);
31
+ }
32
+
33
+ //#endregion
34
+ exports.dataToUUID = dataToUUID;
35
+ exports.isValidUUID = isValidUUID;
36
+ exports.randomId = randomId;
37
+ exports.randomUUID = randomUUID;
38
+ //# sourceMappingURL=random-id.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random-id.cjs","names":["uuid"],"sources":["../../src/utils/random-id.ts"],"sourcesContent":["import { v4 as uuidv4, validate, v5 as uuidv5 } from \"uuid\";\n\nexport function randomId() {\n return \"ck-\" + uuidv4();\n}\n\nexport function randomUUID() {\n return uuidv4();\n}\n\n/**\n * Recursively converts an object to a serializable form by converting functions to their string representation.\n */\nfunction toSerializable(value: unknown): unknown {\n if (typeof value === \"function\") {\n return value.toString();\n }\n if (Array.isArray(value)) {\n return value.map(toSerializable);\n }\n if (value !== null && typeof value === \"object\") {\n const result: Record<string, unknown> = {};\n for (const key of Object.keys(value)) {\n result[key] = toSerializable((value as Record<string, unknown>)[key]);\n }\n return result;\n }\n return value;\n}\n\nexport function dataToUUID(input: string | object, namespace?: string): string {\n const BASE_NAMESPACE = \"e4b01160-ff74-4c6e-9b27-d53cd930fe8e\";\n // Since namespace needs to be a uuid, we are creating a uuid for it.\n const boundNamespace = namespace\n ? uuidv5(namespace, BASE_NAMESPACE)\n : BASE_NAMESPACE;\n\n const stringInput =\n typeof input === \"string\" ? input : JSON.stringify(toSerializable(input));\n return uuidv5(stringInput, boundNamespace);\n}\n\nexport function isValidUUID(uuid: string) {\n return validate(uuid);\n}\n"],"mappings":";;;;AAEA,SAAgB,WAAW;AACzB,QAAO,sBAAgB;;AAGzB,SAAgB,aAAa;AAC3B,sBAAe;;;;;AAMjB,SAAS,eAAe,OAAyB;AAC/C,KAAI,OAAO,UAAU,WACnB,QAAO,MAAM,UAAU;AAEzB,KAAI,MAAM,QAAQ,MAAM,CACtB,QAAO,MAAM,IAAI,eAAe;AAElC,KAAI,UAAU,QAAQ,OAAO,UAAU,UAAU;EAC/C,MAAM,SAAkC,EAAE;AAC1C,OAAK,MAAM,OAAO,OAAO,KAAK,MAAM,CAClC,QAAO,OAAO,eAAgB,MAAkC,KAAK;AAEvE,SAAO;;AAET,QAAO;;AAGT,SAAgB,WAAW,OAAwB,WAA4B;CAC7E,MAAM,iBAAiB;CAEvB,MAAM,iBAAiB,yBACZ,WAAW,eAAe,GACjC;AAIJ,qBADE,OAAO,UAAU,WAAW,QAAQ,KAAK,UAAU,eAAe,MAAM,CAAC,EAChD,eAAe;;AAG5C,SAAgB,YAAY,QAAc;AACxC,2BAAgBA,OAAK"}
@@ -1,6 +1,8 @@
1
+ //#region src/utils/random-id.d.ts
1
2
  declare function randomId(): string;
2
3
  declare function randomUUID(): string;
3
4
  declare function dataToUUID(input: string | object, namespace?: string): string;
4
5
  declare function isValidUUID(uuid: string): boolean;
5
-
6
+ //#endregion
6
7
  export { dataToUUID, isValidUUID, randomId, randomUUID };
8
+ //# sourceMappingURL=random-id.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random-id.d.cts","names":[],"sources":["../../src/utils/random-id.ts"],"mappings":";iBAEgB,QAAA,CAAA;AAAA,iBAIA,UAAA,CAAA;AAAA,iBAwBA,UAAA,CAAW,KAAA,mBAAwB,SAAA;AAAA,iBAYnC,WAAA,CAAY,IAAA"}
@@ -0,0 +1,8 @@
1
+ //#region src/utils/random-id.d.ts
2
+ declare function randomId(): string;
3
+ declare function randomUUID(): string;
4
+ declare function dataToUUID(input: string | object, namespace?: string): string;
5
+ declare function isValidUUID(uuid: string): boolean;
6
+ //#endregion
7
+ export { dataToUUID, isValidUUID, randomId, randomUUID };
8
+ //# sourceMappingURL=random-id.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random-id.d.mts","names":[],"sources":["../../src/utils/random-id.ts"],"mappings":";iBAEgB,QAAA,CAAA;AAAA,iBAIA,UAAA,CAAA;AAAA,iBAwBA,UAAA,CAAW,KAAA,mBAAwB,SAAA;AAAA,iBAYnC,WAAA,CAAY,IAAA"}
@@ -1,13 +1,34 @@
1
- import {
2
- dataToUUID,
3
- isValidUUID,
4
- randomId,
5
- randomUUID
6
- } from "../chunk-GS5BLXSZ.mjs";
7
- export {
8
- dataToUUID,
9
- isValidUUID,
10
- randomId,
11
- randomUUID
12
- };
1
+ import { v4, v5, validate } from "uuid";
2
+
3
+ //#region src/utils/random-id.ts
4
+ function randomId() {
5
+ return "ck-" + v4();
6
+ }
7
+ function randomUUID() {
8
+ return v4();
9
+ }
10
+ /**
11
+ * Recursively converts an object to a serializable form by converting functions to their string representation.
12
+ */
13
+ function toSerializable(value) {
14
+ if (typeof value === "function") return value.toString();
15
+ if (Array.isArray(value)) return value.map(toSerializable);
16
+ if (value !== null && typeof value === "object") {
17
+ const result = {};
18
+ for (const key of Object.keys(value)) result[key] = toSerializable(value[key]);
19
+ return result;
20
+ }
21
+ return value;
22
+ }
23
+ function dataToUUID(input, namespace) {
24
+ const BASE_NAMESPACE = "e4b01160-ff74-4c6e-9b27-d53cd930fe8e";
25
+ const boundNamespace = namespace ? v5(namespace, BASE_NAMESPACE) : BASE_NAMESPACE;
26
+ return v5(typeof input === "string" ? input : JSON.stringify(toSerializable(input)), boundNamespace);
27
+ }
28
+ function isValidUUID(uuid) {
29
+ return validate(uuid);
30
+ }
31
+
32
+ //#endregion
33
+ export { dataToUUID, isValidUUID, randomId, randomUUID };
13
34
  //# sourceMappingURL=random-id.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"file":"random-id.mjs","names":["uuidv4","uuidv5"],"sources":["../../src/utils/random-id.ts"],"sourcesContent":["import { v4 as uuidv4, validate, v5 as uuidv5 } from \"uuid\";\n\nexport function randomId() {\n return \"ck-\" + uuidv4();\n}\n\nexport function randomUUID() {\n return uuidv4();\n}\n\n/**\n * Recursively converts an object to a serializable form by converting functions to their string representation.\n */\nfunction toSerializable(value: unknown): unknown {\n if (typeof value === \"function\") {\n return value.toString();\n }\n if (Array.isArray(value)) {\n return value.map(toSerializable);\n }\n if (value !== null && typeof value === \"object\") {\n const result: Record<string, unknown> = {};\n for (const key of Object.keys(value)) {\n result[key] = toSerializable((value as Record<string, unknown>)[key]);\n }\n return result;\n }\n return value;\n}\n\nexport function dataToUUID(input: string | object, namespace?: string): string {\n const BASE_NAMESPACE = \"e4b01160-ff74-4c6e-9b27-d53cd930fe8e\";\n // Since namespace needs to be a uuid, we are creating a uuid for it.\n const boundNamespace = namespace\n ? uuidv5(namespace, BASE_NAMESPACE)\n : BASE_NAMESPACE;\n\n const stringInput =\n typeof input === \"string\" ? input : JSON.stringify(toSerializable(input));\n return uuidv5(stringInput, boundNamespace);\n}\n\nexport function isValidUUID(uuid: string) {\n return validate(uuid);\n}\n"],"mappings":";;;AAEA,SAAgB,WAAW;AACzB,QAAO,QAAQA,IAAQ;;AAGzB,SAAgB,aAAa;AAC3B,QAAOA,IAAQ;;;;;AAMjB,SAAS,eAAe,OAAyB;AAC/C,KAAI,OAAO,UAAU,WACnB,QAAO,MAAM,UAAU;AAEzB,KAAI,MAAM,QAAQ,MAAM,CACtB,QAAO,MAAM,IAAI,eAAe;AAElC,KAAI,UAAU,QAAQ,OAAO,UAAU,UAAU;EAC/C,MAAM,SAAkC,EAAE;AAC1C,OAAK,MAAM,OAAO,OAAO,KAAK,MAAM,CAClC,QAAO,OAAO,eAAgB,MAAkC,KAAK;AAEvE,SAAO;;AAET,QAAO;;AAGT,SAAgB,WAAW,OAAwB,WAA4B;CAC7E,MAAM,iBAAiB;CAEvB,MAAM,iBAAiB,YACnBC,GAAO,WAAW,eAAe,GACjC;AAIJ,QAAOA,GADL,OAAO,UAAU,WAAW,QAAQ,KAAK,UAAU,eAAe,MAAM,CAAC,EAChD,eAAe;;AAG5C,SAAgB,YAAY,MAAc;AACxC,QAAO,SAAS,KAAK"}
@@ -0,0 +1,58 @@
1
+
2
+ //#region src/utils/requests.ts
3
+ /**
4
+ * Safely read a Response/Request body with sensible defaults:
5
+ * - clones the response/request to avoid consuming the original response/request
6
+ * - Skips GET/HEAD
7
+ * - Tries JSON first regardless of content-type
8
+ * - Falls back to text and optionally parses when it "looks" like JSON
9
+ */
10
+ async function readBody(r) {
11
+ const method = "method" in r ? r.method.toUpperCase() : void 0;
12
+ if (method === "GET" || method === "HEAD") return;
13
+ if (!("body" in r) || r.body == null) return;
14
+ try {
15
+ return await r.clone().json();
16
+ } catch {
17
+ try {
18
+ const text = await r.clone().text();
19
+ const trimmed = text.trim();
20
+ if (trimmed.length === 0) return text;
21
+ if (trimmed.startsWith("{") || trimmed.startsWith("[")) try {
22
+ return JSON.parse(trimmed);
23
+ } catch {
24
+ return text;
25
+ }
26
+ return text;
27
+ } catch {
28
+ try {
29
+ const stream = r.clone().body ?? null;
30
+ if (!stream) return void 0;
31
+ const reader = stream.getReader();
32
+ const decoder = new TextDecoder();
33
+ let out = "";
34
+ while (true) {
35
+ const { done, value } = await reader.read();
36
+ if (done) break;
37
+ if (typeof value === "string") out += value;
38
+ else out += decoder.decode(value, { stream: true });
39
+ }
40
+ out += decoder.decode();
41
+ const trimmed = out.trim();
42
+ if (trimmed.length === 0) return out;
43
+ if (trimmed.startsWith("{") || trimmed.startsWith("[")) try {
44
+ return JSON.parse(trimmed);
45
+ } catch {
46
+ return out;
47
+ }
48
+ return out;
49
+ } catch {
50
+ return;
51
+ }
52
+ }
53
+ }
54
+ }
55
+
56
+ //#endregion
57
+ exports.readBody = readBody;
58
+ //# sourceMappingURL=requests.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requests.cjs","names":[],"sources":["../../src/utils/requests.ts"],"sourcesContent":["/**\n * Safely read a Response/Request body with sensible defaults:\n * - clones the response/request to avoid consuming the original response/request\n * - Skips GET/HEAD\n * - Tries JSON first regardless of content-type\n * - Falls back to text and optionally parses when it \"looks\" like JSON\n */\nexport async function readBody<T extends Response | Request>(\n r: T,\n): Promise<unknown> {\n // skip GET/HEAD requests (unchanged)\n const method = \"method\" in r ? r.method.toUpperCase() : undefined;\n if (method === \"GET\" || method === \"HEAD\") {\n return undefined;\n }\n\n // no body at all → undefined (unchanged)\n if (!(\"body\" in r) || r.body == null) {\n return undefined;\n }\n\n // 1) try JSON (unchanged)\n try {\n return await r.clone().json();\n } catch {\n // 2) try text (unchanged + your whitespace/JSON-heuristic)\n try {\n const text = await r.clone().text();\n const trimmed = text.trim();\n\n if (trimmed.length === 0) return text;\n\n if (trimmed.startsWith(\"{\") || trimmed.startsWith(\"[\")) {\n try {\n return JSON.parse(trimmed);\n } catch {\n return text;\n }\n }\n return text;\n } catch {\n // 3) FINAL FALLBACK: manual read that accepts string or bytes\n try {\n const c = r.clone();\n const stream: ReadableStream | null = c.body ?? null;\n if (!stream) return undefined;\n\n const reader = stream.getReader();\n const decoder = new TextDecoder();\n let out = \"\";\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n if (typeof value === \"string\") {\n out += value; // accept string chunks\n } else {\n out += decoder.decode(value, { stream: true }); // bytes\n }\n }\n out += decoder.decode(); // flush\n\n const trimmed = out.trim();\n if (trimmed.length === 0) return out;\n\n if (trimmed.startsWith(\"{\") || trimmed.startsWith(\"[\")) {\n try {\n return JSON.parse(trimmed);\n } catch {\n return out;\n }\n }\n return out;\n } catch {\n return undefined; // same \"give up\" behavior you had\n }\n }\n }\n}\n"],"mappings":";;;;;;;;;AAOA,eAAsB,SACpB,GACkB;CAElB,MAAM,SAAS,YAAY,IAAI,EAAE,OAAO,aAAa,GAAG;AACxD,KAAI,WAAW,SAAS,WAAW,OACjC;AAIF,KAAI,EAAE,UAAU,MAAM,EAAE,QAAQ,KAC9B;AAIF,KAAI;AACF,SAAO,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB;AAEN,MAAI;GACF,MAAM,OAAO,MAAM,EAAE,OAAO,CAAC,MAAM;GACnC,MAAM,UAAU,KAAK,MAAM;AAE3B,OAAI,QAAQ,WAAW,EAAG,QAAO;AAEjC,OAAI,QAAQ,WAAW,IAAI,IAAI,QAAQ,WAAW,IAAI,CACpD,KAAI;AACF,WAAO,KAAK,MAAM,QAAQ;WACpB;AACN,WAAO;;AAGX,UAAO;UACD;AAEN,OAAI;IAEF,MAAM,SADI,EAAE,OAAO,CACqB,QAAQ;AAChD,QAAI,CAAC,OAAQ,QAAO;IAEpB,MAAM,SAAS,OAAO,WAAW;IACjC,MAAM,UAAU,IAAI,aAAa;IACjC,IAAI,MAAM;AAEV,WAAO,MAAM;KACX,MAAM,EAAE,MAAM,UAAU,MAAM,OAAO,MAAM;AAC3C,SAAI,KAAM;AACV,SAAI,OAAO,UAAU,SACnB,QAAO;SAEP,QAAO,QAAQ,OAAO,OAAO,EAAE,QAAQ,MAAM,CAAC;;AAGlD,WAAO,QAAQ,QAAQ;IAEvB,MAAM,UAAU,IAAI,MAAM;AAC1B,QAAI,QAAQ,WAAW,EAAG,QAAO;AAEjC,QAAI,QAAQ,WAAW,IAAI,IAAI,QAAQ,WAAW,IAAI,CACpD,KAAI;AACF,YAAO,KAAK,MAAM,QAAQ;YACpB;AACN,YAAO;;AAGX,WAAO;WACD;AACN"}
@@ -1,3 +1,4 @@
1
+ //#region src/utils/requests.d.ts
1
2
  /**
2
3
  * Safely read a Response/Request body with sensible defaults:
3
4
  * - clones the response/request to avoid consuming the original response/request
@@ -6,5 +7,6 @@
6
7
  * - Falls back to text and optionally parses when it "looks" like JSON
7
8
  */
8
9
  declare function readBody<T extends Response | Request>(r: T): Promise<unknown>;
9
-
10
+ //#endregion
10
11
  export { readBody };
12
+ //# sourceMappingURL=requests.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requests.d.cts","names":[],"sources":["../../src/utils/requests.ts"],"mappings":";;AAOA;;;;;;iBAAsB,QAAA,WAAmB,QAAA,GAAW,OAAA,CAAA,CAClD,CAAA,EAAG,CAAA,GACF,OAAA"}
@@ -0,0 +1,12 @@
1
+ //#region src/utils/requests.d.ts
2
+ /**
3
+ * Safely read a Response/Request body with sensible defaults:
4
+ * - clones the response/request to avoid consuming the original response/request
5
+ * - Skips GET/HEAD
6
+ * - Tries JSON first regardless of content-type
7
+ * - Falls back to text and optionally parses when it "looks" like JSON
8
+ */
9
+ declare function readBody<T extends Response | Request>(r: T): Promise<unknown>;
10
+ //#endregion
11
+ export { readBody };
12
+ //# sourceMappingURL=requests.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requests.d.mts","names":[],"sources":["../../src/utils/requests.ts"],"mappings":";;AAOA;;;;;;iBAAsB,QAAA,WAAmB,QAAA,GAAW,OAAA,CAAA,CAClD,CAAA,EAAG,CAAA,GACF,OAAA"}
@@ -1,7 +1,57 @@
1
- import {
2
- readBody
3
- } from "../chunk-WAZHII6M.mjs";
4
- export {
5
- readBody
6
- };
1
+ //#region src/utils/requests.ts
2
+ /**
3
+ * Safely read a Response/Request body with sensible defaults:
4
+ * - clones the response/request to avoid consuming the original response/request
5
+ * - Skips GET/HEAD
6
+ * - Tries JSON first regardless of content-type
7
+ * - Falls back to text and optionally parses when it "looks" like JSON
8
+ */
9
+ async function readBody(r) {
10
+ const method = "method" in r ? r.method.toUpperCase() : void 0;
11
+ if (method === "GET" || method === "HEAD") return;
12
+ if (!("body" in r) || r.body == null) return;
13
+ try {
14
+ return await r.clone().json();
15
+ } catch {
16
+ try {
17
+ const text = await r.clone().text();
18
+ const trimmed = text.trim();
19
+ if (trimmed.length === 0) return text;
20
+ if (trimmed.startsWith("{") || trimmed.startsWith("[")) try {
21
+ return JSON.parse(trimmed);
22
+ } catch {
23
+ return text;
24
+ }
25
+ return text;
26
+ } catch {
27
+ try {
28
+ const stream = r.clone().body ?? null;
29
+ if (!stream) return void 0;
30
+ const reader = stream.getReader();
31
+ const decoder = new TextDecoder();
32
+ let out = "";
33
+ while (true) {
34
+ const { done, value } = await reader.read();
35
+ if (done) break;
36
+ if (typeof value === "string") out += value;
37
+ else out += decoder.decode(value, { stream: true });
38
+ }
39
+ out += decoder.decode();
40
+ const trimmed = out.trim();
41
+ if (trimmed.length === 0) return out;
42
+ if (trimmed.startsWith("{") || trimmed.startsWith("[")) try {
43
+ return JSON.parse(trimmed);
44
+ } catch {
45
+ return out;
46
+ }
47
+ return out;
48
+ } catch {
49
+ return;
50
+ }
51
+ }
52
+ }
53
+ }
54
+
55
+ //#endregion
56
+ export { readBody };
7
57
  //# sourceMappingURL=requests.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"file":"requests.mjs","names":[],"sources":["../../src/utils/requests.ts"],"sourcesContent":["/**\n * Safely read a Response/Request body with sensible defaults:\n * - clones the response/request to avoid consuming the original response/request\n * - Skips GET/HEAD\n * - Tries JSON first regardless of content-type\n * - Falls back to text and optionally parses when it \"looks\" like JSON\n */\nexport async function readBody<T extends Response | Request>(\n r: T,\n): Promise<unknown> {\n // skip GET/HEAD requests (unchanged)\n const method = \"method\" in r ? r.method.toUpperCase() : undefined;\n if (method === \"GET\" || method === \"HEAD\") {\n return undefined;\n }\n\n // no body at all → undefined (unchanged)\n if (!(\"body\" in r) || r.body == null) {\n return undefined;\n }\n\n // 1) try JSON (unchanged)\n try {\n return await r.clone().json();\n } catch {\n // 2) try text (unchanged + your whitespace/JSON-heuristic)\n try {\n const text = await r.clone().text();\n const trimmed = text.trim();\n\n if (trimmed.length === 0) return text;\n\n if (trimmed.startsWith(\"{\") || trimmed.startsWith(\"[\")) {\n try {\n return JSON.parse(trimmed);\n } catch {\n return text;\n }\n }\n return text;\n } catch {\n // 3) FINAL FALLBACK: manual read that accepts string or bytes\n try {\n const c = r.clone();\n const stream: ReadableStream | null = c.body ?? null;\n if (!stream) return undefined;\n\n const reader = stream.getReader();\n const decoder = new TextDecoder();\n let out = \"\";\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n if (typeof value === \"string\") {\n out += value; // accept string chunks\n } else {\n out += decoder.decode(value, { stream: true }); // bytes\n }\n }\n out += decoder.decode(); // flush\n\n const trimmed = out.trim();\n if (trimmed.length === 0) return out;\n\n if (trimmed.startsWith(\"{\") || trimmed.startsWith(\"[\")) {\n try {\n return JSON.parse(trimmed);\n } catch {\n return out;\n }\n }\n return out;\n } catch {\n return undefined; // same \"give up\" behavior you had\n }\n }\n }\n}\n"],"mappings":";;;;;;;;AAOA,eAAsB,SACpB,GACkB;CAElB,MAAM,SAAS,YAAY,IAAI,EAAE,OAAO,aAAa,GAAG;AACxD,KAAI,WAAW,SAAS,WAAW,OACjC;AAIF,KAAI,EAAE,UAAU,MAAM,EAAE,QAAQ,KAC9B;AAIF,KAAI;AACF,SAAO,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB;AAEN,MAAI;GACF,MAAM,OAAO,MAAM,EAAE,OAAO,CAAC,MAAM;GACnC,MAAM,UAAU,KAAK,MAAM;AAE3B,OAAI,QAAQ,WAAW,EAAG,QAAO;AAEjC,OAAI,QAAQ,WAAW,IAAI,IAAI,QAAQ,WAAW,IAAI,CACpD,KAAI;AACF,WAAO,KAAK,MAAM,QAAQ;WACpB;AACN,WAAO;;AAGX,UAAO;UACD;AAEN,OAAI;IAEF,MAAM,SADI,EAAE,OAAO,CACqB,QAAQ;AAChD,QAAI,CAAC,OAAQ,QAAO;IAEpB,MAAM,SAAS,OAAO,WAAW;IACjC,MAAM,UAAU,IAAI,aAAa;IACjC,IAAI,MAAM;AAEV,WAAO,MAAM;KACX,MAAM,EAAE,MAAM,UAAU,MAAM,OAAO,MAAM;AAC3C,SAAI,KAAM;AACV,SAAI,OAAO,UAAU,SACnB,QAAO;SAEP,QAAO,QAAQ,OAAO,OAAO,EAAE,QAAQ,MAAM,CAAC;;AAGlD,WAAO,QAAQ,QAAQ;IAEvB,MAAM,UAAU,IAAI,MAAM;AAC1B,QAAI,QAAQ,WAAW,EAAG,QAAO;AAEjC,QAAI,QAAQ,WAAW,IAAI,IAAI,QAAQ,WAAW,IAAI,CACpD,KAAI;AACF,YAAO,KAAK,MAAM,QAAQ;YACpB;AACN,YAAO;;AAGX,WAAO;WACD;AACN"}
@@ -1,3 +1,4 @@
1
+ //#region src/utils/types.d.ts
1
2
  type MaybePromise<T> = T | PromiseLike<T>;
2
3
  /**
3
4
  * More specific utility for records with at least one key
@@ -7,14 +8,15 @@ type NonEmptyRecord<T> = T extends Record<string, unknown> ? keyof T extends nev
7
8
  * Type representing an agent's basic information
8
9
  */
9
10
  interface AgentDescription {
10
- name: string;
11
- className: string;
12
- description: string;
11
+ name: string;
12
+ className: string;
13
+ description: string;
13
14
  }
14
15
  interface RuntimeInfo {
15
- version: string;
16
- agents: Record<string, AgentDescription>;
17
- audioFileTranscriptionEnabled: boolean;
16
+ version: string;
17
+ agents: Record<string, AgentDescription>;
18
+ audioFileTranscriptionEnabled: boolean;
18
19
  }
19
-
20
+ //#endregion
20
21
  export { AgentDescription, MaybePromise, NonEmptyRecord, RuntimeInfo };
22
+ //# sourceMappingURL=types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.cts","names":[],"sources":["../../src/utils/types.ts"],"mappings":";KAAY,YAAA,MAAkB,CAAA,GAAI,WAAA,CAAY,CAAA;AAA9C;;;AAAA,KAKY,cAAA,MACV,CAAA,SAAU,MAAA,0BACA,CAAA,yBAEJ,CAAA;;;;UAMS,gBAAA;EACf,IAAA;EACA,SAAA;EACA,WAAA;AAAA;AAAA,UAGe,WAAA;EACf,OAAA;EACA,MAAA,EAAQ,MAAA,SAAe,gBAAA;EACvB,6BAAA;AAAA"}
@@ -0,0 +1,22 @@
1
+ //#region src/utils/types.d.ts
2
+ type MaybePromise<T> = T | PromiseLike<T>;
3
+ /**
4
+ * More specific utility for records with at least one key
5
+ */
6
+ type NonEmptyRecord<T> = T extends Record<string, unknown> ? keyof T extends never ? never : T : never;
7
+ /**
8
+ * Type representing an agent's basic information
9
+ */
10
+ interface AgentDescription {
11
+ name: string;
12
+ className: string;
13
+ description: string;
14
+ }
15
+ interface RuntimeInfo {
16
+ version: string;
17
+ agents: Record<string, AgentDescription>;
18
+ audioFileTranscriptionEnabled: boolean;
19
+ }
20
+ //#endregion
21
+ export { AgentDescription, MaybePromise, NonEmptyRecord, RuntimeInfo };
22
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../src/utils/types.ts"],"mappings":";KAAY,YAAA,MAAkB,CAAA,GAAI,WAAA,CAAY,CAAA;AAA9C;;;AAAA,KAKY,cAAA,MACV,CAAA,SAAU,MAAA,0BACA,CAAA,yBAEJ,CAAA;;;;UAMS,gBAAA;EACf,IAAA;EACA,SAAA;EACA,WAAA;AAAA;AAAA,UAGe,WAAA;EACf,OAAA;EACA,MAAA,EAAQ,MAAA,SAAe,gBAAA;EACvB,6BAAA;AAAA"}
package/package.json CHANGED
@@ -9,29 +9,28 @@
9
9
  "publishConfig": {
10
10
  "access": "public"
11
11
  },
12
- "version": "1.51.4",
12
+ "type": "module",
13
+ "version": "1.51.5-next.1",
13
14
  "sideEffects": false,
14
- "main": "./dist/index.js",
15
+ "main": "./dist/index.cjs",
15
16
  "module": "./dist/index.mjs",
16
17
  "exports": {
17
18
  ".": {
18
19
  "import": "./dist/index.mjs",
19
- "require": "./dist/index.js",
20
- "types": "./dist/index.d.ts"
21
- }
20
+ "require": "./dist/index.cjs"
21
+ },
22
+ "./package.json": "./package.json"
22
23
  },
23
24
  "unpkg": "./dist/index.umd.js",
24
25
  "jsdelivr": "./dist/index.umd.js",
25
- "types": "./dist/index.d.ts",
26
+ "types": "./dist/index.d.cts",
26
27
  "license": "MIT",
27
28
  "devDependencies": {
28
- "@types/jest": "^29.5.4",
29
29
  "@types/uuid": "^10.0.0",
30
30
  "eslint": "^8.56.0",
31
- "jest": "^29.6.4",
32
- "ts-jest": "^29.1.1",
33
- "tsup": "^6.7.0",
31
+ "tsdown": "^0.20.3",
34
32
  "typescript": "^5.2.3",
33
+ "vitest": "^3.2.4",
35
34
  "zod-to-json-schema": "^3.23.5",
36
35
  "eslint-config-custom": "1.4.8",
37
36
  "tsconfig": "1.4.8"
@@ -44,7 +43,7 @@
44
43
  "zod": "^3.23.3"
45
44
  },
46
45
  "peerDependencies": {
47
- "@ag-ui/core": "^0.0.43"
46
+ "@ag-ui/core": "^0.0.45"
48
47
  },
49
48
  "keywords": [
50
49
  "copilotkit",
@@ -59,11 +58,14 @@
59
58
  "textarea"
60
59
  ],
61
60
  "scripts": {
62
- "build": "tsup --clean && rollup -c rollup.config.mjs",
63
- "dev": "tsup --watch --no-splitting",
64
- "test": "jest --passWithNoTests",
61
+ "build": "tsdown",
62
+ "dev": "tsdown --watch",
63
+ "test": "vitest run",
64
+ "test:watch": "vitest",
65
65
  "check-types": "tsc --noEmit",
66
66
  "link:global": "pnpm link --global",
67
- "unlink:global": "pnpm unlink --global"
67
+ "unlink:global": "pnpm unlink --global",
68
+ "publint": "publint .",
69
+ "attw": "attw --pack . --profile node16"
68
70
  }
69
71
  }
@@ -11,6 +11,7 @@ export type SystemMessage = agui.SystemMessage;
11
11
  export type DeveloperMessage = agui.DeveloperMessage;
12
12
  export type ToolCall = agui.ToolCall;
13
13
  export type ActivityMessage = agui.ActivityMessage;
14
+ export type ReasoningMessage = agui.ReasoningMessage;
14
15
 
15
16
  // Extended message types
16
17
  export type ToolResult = agui.ToolMessage & {
@@ -36,4 +37,5 @@ export type Message =
36
37
  | UserMessage
37
38
  | SystemMessage
38
39
  | DeveloperMessage
39
- | ActivityMessage;
40
+ | ActivityMessage
41
+ | ReasoningMessage;
@@ -0,0 +1,36 @@
1
+ import { defineConfig } from "tsdown";
2
+
3
+ export default defineConfig([
4
+ {
5
+ entry: ["src/index.ts"],
6
+ format: ["esm", "cjs"],
7
+ dts: true,
8
+ sourcemap: true,
9
+ target: "es2022",
10
+ outDir: "dist",
11
+ unbundle: true,
12
+ exports: true,
13
+ },
14
+ {
15
+ entry: ["src/index.ts"],
16
+ format: ["umd"],
17
+ globalName: "CopilotKitShared",
18
+ sourcemap: true,
19
+ target: "es2018",
20
+ outDir: "dist",
21
+ external: ["zod", "graphql", "uuid", "@ag-ui/core"],
22
+ codeSplitting: false,
23
+ outputOptions(options) {
24
+ options.entryFileNames = "[name].umd.js";
25
+ options.globals = {
26
+ zod: "Zod",
27
+ graphql: "GraphQL",
28
+ uuid: "UUID",
29
+ "@ag-ui/core": "AgUICore",
30
+ "@segment/analytics-node": "SegmentAnalyticsNode",
31
+ chalk: "chalk",
32
+ };
33
+ return options;
34
+ },
35
+ },
36
+ ]);
@@ -0,0 +1,11 @@
1
+ import { defineConfig } from "vitest/config";
2
+
3
+ export default defineConfig({
4
+ test: {
5
+ environment: "node",
6
+ globals: true,
7
+ include: ["src/**/*.{test,spec}.ts"],
8
+ reporters: [["default", { summary: false }]],
9
+ silent: true,
10
+ },
11
+ });
@@ -1 +0,0 @@
1
- //# sourceMappingURL=chunk-2OJ5OJ2D.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}