@plotday/twister 0.28.0 → 0.29.0

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 (186) hide show
  1. package/dist/common/calendar.d.ts +17 -7
  2. package/dist/common/calendar.d.ts.map +1 -1
  3. package/dist/common/messaging.d.ts +10 -5
  4. package/dist/common/messaging.d.ts.map +1 -1
  5. package/dist/common/projects.d.ts +10 -5
  6. package/dist/common/projects.d.ts.map +1 -1
  7. package/dist/common/serializable.d.ts +40 -0
  8. package/dist/common/serializable.d.ts.map +1 -0
  9. package/dist/common/serializable.js +2 -0
  10. package/dist/common/serializable.js.map +1 -0
  11. package/dist/docs/assets/hierarchy.js +1 -1
  12. package/dist/docs/assets/navigation.js +1 -1
  13. package/dist/docs/assets/search.js +1 -1
  14. package/dist/docs/classes/tool.ITool.html +1 -1
  15. package/dist/docs/classes/tool.Tool.html +32 -33
  16. package/dist/docs/classes/tools_ai.AI.html +2 -2
  17. package/dist/docs/classes/tools_callbacks.Callbacks.html +6 -6
  18. package/dist/docs/classes/tools_integrations.Integrations.html +3 -3
  19. package/dist/docs/classes/tools_network.Network.html +12 -12
  20. package/dist/docs/classes/tools_plot.Plot.html +40 -30
  21. package/dist/docs/classes/tools_store.Store.html +29 -18
  22. package/dist/docs/classes/tools_tasks.Tasks.html +8 -8
  23. package/dist/docs/classes/tools_twists.Twists.html +5 -5
  24. package/dist/docs/classes/twist.Twist.html +28 -24
  25. package/dist/docs/enums/plot.ActivityLinkType.html +5 -5
  26. package/dist/docs/enums/plot.ActivityType.html +4 -4
  27. package/dist/docs/enums/plot.ActorType.html +4 -4
  28. package/dist/docs/enums/plot.ConferencingProvider.html +6 -6
  29. package/dist/docs/enums/tag.Tag.html +2 -2
  30. package/dist/docs/enums/tools_ai.AIModel.html +2 -2
  31. package/dist/docs/enums/tools_integrations.AuthLevel.html +3 -3
  32. package/dist/docs/enums/tools_integrations.AuthProvider.html +11 -11
  33. package/dist/docs/enums/tools_plot.ActivityAccess.html +3 -3
  34. package/dist/docs/enums/tools_plot.ContactAccess.html +3 -3
  35. package/dist/docs/enums/tools_plot.PriorityAccess.html +3 -3
  36. package/dist/docs/functions/index.Uuid.Generate.html +1 -1
  37. package/dist/docs/functions/utils_hash.quickHash.html +1 -1
  38. package/dist/docs/hierarchy.html +1 -1
  39. package/dist/docs/interfaces/common_calendar.Calendar.html +5 -5
  40. package/dist/docs/interfaces/common_calendar.CalendarTool.html +16 -10
  41. package/dist/docs/interfaces/common_calendar.SyncOptions.html +3 -3
  42. package/dist/docs/interfaces/index.SerializableArray.html +2 -0
  43. package/dist/docs/interfaces/index.SerializableMap.html +2 -0
  44. package/dist/docs/interfaces/index.SerializableObject.html +2 -0
  45. package/dist/docs/interfaces/index.SerializableSet.html +2 -0
  46. package/dist/docs/interfaces/tools_ai.AIRequest.html +11 -11
  47. package/dist/docs/interfaces/tools_ai.AIResponse.html +9 -9
  48. package/dist/docs/interfaces/tools_ai.FilePart.html +5 -5
  49. package/dist/docs/interfaces/tools_ai.ImagePart.html +4 -4
  50. package/dist/docs/interfaces/tools_ai.ReasoningPart.html +4 -4
  51. package/dist/docs/interfaces/tools_ai.RedactedReasoningPart.html +3 -3
  52. package/dist/docs/interfaces/tools_ai.TextPart.html +3 -3
  53. package/dist/docs/interfaces/tools_ai.ToolCallPart.html +5 -5
  54. package/dist/docs/interfaces/tools_ai.ToolExecutionOptions.html +4 -4
  55. package/dist/docs/interfaces/tools_ai.ToolResultPart.html +5 -5
  56. package/dist/docs/interfaces/tools_twists.TwistSource.html +3 -3
  57. package/dist/docs/interfaces/utils_types.ToolShed.html +5 -5
  58. package/dist/docs/modules/index.html +1 -1
  59. package/dist/docs/modules/plot.html +1 -1
  60. package/dist/docs/modules/utils_types.html +1 -1
  61. package/dist/docs/types/common_calendar.CalendarAuth.html +2 -2
  62. package/dist/docs/types/index.Serializable.html +17 -0
  63. package/dist/docs/types/index.Uuid.html +1 -1
  64. package/dist/docs/types/plot.Activity.html +1 -1
  65. package/dist/docs/types/plot.ActivityCommon.html +9 -9
  66. package/dist/docs/types/plot.ActivityLink.html +1 -1
  67. package/dist/docs/types/plot.ActivityMeta.html +5 -3
  68. package/dist/docs/types/plot.ActivityUpdate.html +2 -2
  69. package/dist/docs/types/plot.ActivityWithNotes.html +1 -1
  70. package/dist/docs/types/plot.Actor.html +15 -5
  71. package/dist/docs/types/plot.ActorId.html +1 -1
  72. package/dist/docs/types/plot.ContentType.html +1 -1
  73. package/dist/docs/types/plot.NewActivity.html +1 -1
  74. package/dist/docs/types/plot.NewActivityWithNotes.html +1 -1
  75. package/dist/docs/types/plot.NewActor.html +1 -1
  76. package/dist/docs/types/plot.NewContact.html +4 -4
  77. package/dist/docs/types/plot.NewNote.html +1 -1
  78. package/dist/docs/types/plot.NewPriority.html +15 -5
  79. package/dist/docs/types/plot.NewTags.html +1 -1
  80. package/dist/docs/types/plot.Note.html +1 -1
  81. package/dist/docs/types/plot.NoteUpdate.html +2 -2
  82. package/dist/docs/types/plot.PickPriorityConfig.html +3 -3
  83. package/dist/docs/types/plot.Priority.html +9 -4
  84. package/dist/docs/types/plot.PriorityUpdate.html +3 -0
  85. package/dist/docs/types/plot.SyncUpdate.html +1 -1
  86. package/dist/docs/types/plot.Tags.html +1 -1
  87. package/dist/docs/types/tools_ai.AIAssistantMessage.html +2 -2
  88. package/dist/docs/types/tools_ai.AIMessage.html +1 -1
  89. package/dist/docs/types/tools_ai.AISource.html +1 -1
  90. package/dist/docs/types/tools_ai.AISystemMessage.html +2 -2
  91. package/dist/docs/types/tools_ai.AITool.html +1 -1
  92. package/dist/docs/types/tools_ai.AIToolMessage.html +2 -2
  93. package/dist/docs/types/tools_ai.AIToolSet.html +1 -1
  94. package/dist/docs/types/tools_ai.AIUsage.html +5 -5
  95. package/dist/docs/types/tools_ai.AIUserMessage.html +2 -2
  96. package/dist/docs/types/tools_ai.DataContent.html +1 -1
  97. package/dist/docs/types/tools_ai.ModelPreferences.html +4 -4
  98. package/dist/docs/types/tools_callbacks.Callback.html +1 -1
  99. package/dist/docs/types/tools_integrations.AuthToken.html +4 -4
  100. package/dist/docs/types/tools_integrations.Authorization.html +4 -4
  101. package/dist/docs/types/tools_network.WebhookRequest.html +6 -6
  102. package/dist/docs/types/tools_plot.NoteIntentHandler.html +4 -4
  103. package/dist/docs/types/tools_twists.Log.html +2 -2
  104. package/dist/docs/types/tools_twists.TwistPermissions.html +1 -1
  105. package/dist/docs/types/utils_types.BuiltInTools.html +2 -2
  106. package/dist/docs/types/utils_types.CallbackMethods.html +1 -1
  107. package/dist/docs/types/utils_types.ExtractBuildReturn.html +1 -1
  108. package/dist/docs/types/utils_types.InferOptions.html +1 -1
  109. package/dist/docs/types/utils_types.InferTools.html +1 -1
  110. package/dist/docs/types/utils_types.JSONValue.html +7 -0
  111. package/dist/docs/types/utils_types.NoFunctions.html +1 -1
  112. package/dist/docs/types/utils_types.NonFunction.html +1 -1
  113. package/dist/docs/types/utils_types.PromiseValues.html +1 -1
  114. package/dist/docs/types/utils_types.ToolBuilder.html +1 -1
  115. package/dist/index.d.ts +1 -0
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +1 -0
  118. package/dist/index.js.map +1 -1
  119. package/dist/llm-docs/common/calendar.d.ts +1 -1
  120. package/dist/llm-docs/common/calendar.d.ts.map +1 -1
  121. package/dist/llm-docs/common/calendar.js +1 -1
  122. package/dist/llm-docs/common/calendar.js.map +1 -1
  123. package/dist/llm-docs/common/messaging.d.ts +1 -1
  124. package/dist/llm-docs/common/messaging.d.ts.map +1 -1
  125. package/dist/llm-docs/common/messaging.js +1 -1
  126. package/dist/llm-docs/common/messaging.js.map +1 -1
  127. package/dist/llm-docs/common/projects.d.ts +1 -1
  128. package/dist/llm-docs/common/projects.d.ts.map +1 -1
  129. package/dist/llm-docs/common/projects.js +1 -1
  130. package/dist/llm-docs/common/projects.js.map +1 -1
  131. package/dist/llm-docs/plot.d.ts +1 -1
  132. package/dist/llm-docs/plot.d.ts.map +1 -1
  133. package/dist/llm-docs/plot.js +1 -1
  134. package/dist/llm-docs/plot.js.map +1 -1
  135. package/dist/llm-docs/tool.d.ts +1 -1
  136. package/dist/llm-docs/tool.d.ts.map +1 -1
  137. package/dist/llm-docs/tool.js +1 -1
  138. package/dist/llm-docs/tool.js.map +1 -1
  139. package/dist/llm-docs/tools/network.d.ts +1 -1
  140. package/dist/llm-docs/tools/network.d.ts.map +1 -1
  141. package/dist/llm-docs/tools/network.js +1 -1
  142. package/dist/llm-docs/tools/network.js.map +1 -1
  143. package/dist/llm-docs/tools/plot.d.ts +1 -1
  144. package/dist/llm-docs/tools/plot.d.ts.map +1 -1
  145. package/dist/llm-docs/tools/plot.js +1 -1
  146. package/dist/llm-docs/tools/plot.js.map +1 -1
  147. package/dist/llm-docs/tools/store.d.ts +1 -1
  148. package/dist/llm-docs/tools/store.d.ts.map +1 -1
  149. package/dist/llm-docs/tools/store.js +1 -1
  150. package/dist/llm-docs/tools/store.js.map +1 -1
  151. package/dist/llm-docs/tools/tasks.d.ts +1 -1
  152. package/dist/llm-docs/tools/tasks.d.ts.map +1 -1
  153. package/dist/llm-docs/tools/tasks.js +1 -1
  154. package/dist/llm-docs/tools/tasks.js.map +1 -1
  155. package/dist/llm-docs/twist.d.ts +1 -1
  156. package/dist/llm-docs/twist.d.ts.map +1 -1
  157. package/dist/llm-docs/twist.js +1 -1
  158. package/dist/llm-docs/twist.js.map +1 -1
  159. package/dist/plot.d.ts +125 -14
  160. package/dist/plot.d.ts.map +1 -1
  161. package/dist/plot.js.map +1 -1
  162. package/dist/tool.d.ts +26 -18
  163. package/dist/tool.d.ts.map +1 -1
  164. package/dist/tool.js +25 -17
  165. package/dist/tool.js.map +1 -1
  166. package/dist/tools/network.d.ts +19 -16
  167. package/dist/tools/network.d.ts.map +1 -1
  168. package/dist/tools/network.js +6 -4
  169. package/dist/tools/network.js.map +1 -1
  170. package/dist/tools/plot.d.ts +91 -22
  171. package/dist/tools/plot.d.ts.map +1 -1
  172. package/dist/tools/plot.js +45 -0
  173. package/dist/tools/plot.js.map +1 -1
  174. package/dist/tools/store.d.ts +43 -18
  175. package/dist/tools/store.d.ts.map +1 -1
  176. package/dist/tools/store.js +12 -1
  177. package/dist/tools/store.js.map +1 -1
  178. package/dist/tools/tasks.d.ts +4 -4
  179. package/dist/tools/tasks.js +4 -4
  180. package/dist/twist.d.ts +24 -10
  181. package/dist/twist.d.ts.map +1 -1
  182. package/dist/twist.js +19 -5
  183. package/dist/twist.js.map +1 -1
  184. package/dist/utils/types.d.ts +19 -0
  185. package/dist/utils/types.d.ts.map +1 -1
  186. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { type Activity, type ActivityMeta, type ActivityUpdate, type Actor, type ActorId, ITool, type NewActivity, type NewActivityWithNotes, type NewContact, type NewNote, type NewPriority, type Note, type NoteUpdate, type Priority, type Tag } from "..";
1
+ import { type Activity, type ActivityUpdate, type Actor, type ActorId, ITool, type NewActivity, type NewActivityWithNotes, type NewContact, type NewNote, type NewPriority, type Note, type NoteUpdate, type Priority, type PriorityUpdate, type Tag, Uuid } from "..";
2
2
  export declare enum ActivityAccess {
3
3
  /**
4
4
  * Create new Note on an Activity where the twist was mentioned.
@@ -76,10 +76,56 @@ export type NoteIntentHandler = {
76
76
  * ```
77
77
  */
78
78
  export declare abstract class Plot extends ITool {
79
+ /**
80
+ * Configuration options for the Plot tool.
81
+ *
82
+ * **Important**: All permissions must be explicitly requested. There are no default permissions.
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * // Minimal configuration with required permissions
87
+ * build(build: ToolBuilder) {
88
+ * return {
89
+ * plot: build(Plot, {
90
+ * activity: {
91
+ * access: ActivityAccess.Create
92
+ * }
93
+ * })
94
+ * };
95
+ * }
96
+ *
97
+ * // Full configuration with callbacks
98
+ * build(build: ToolBuilder) {
99
+ * return {
100
+ * plot: build(Plot, {
101
+ * activity: {
102
+ * access: ActivityAccess.Create,
103
+ * updated: this.onActivityUpdated
104
+ * },
105
+ * note: {
106
+ * intents: [{
107
+ * description: "Schedule meetings",
108
+ * examples: ["Schedule a meeting tomorrow"],
109
+ * handler: this.onSchedulingIntent
110
+ * }],
111
+ * created: this.onNoteCreated
112
+ * },
113
+ * priority: {
114
+ * access: PriorityAccess.Full
115
+ * },
116
+ * contact: {
117
+ * access: ContactAccess.Write
118
+ * }
119
+ * })
120
+ * };
121
+ * }
122
+ * ```
123
+ */
79
124
  static readonly Options: {
80
125
  activity?: {
81
126
  /**
82
127
  * Capability to create Notes and modify tags.
128
+ * Must be explicitly set to grant permissions.
83
129
  */
84
130
  access?: ActivityAccess;
85
131
  /**
@@ -308,35 +354,35 @@ export declare abstract class Plot extends ITool {
308
354
  */
309
355
  abstract updateNote(note: NoteUpdate): Promise<void>;
310
356
  /**
311
- * Finds an activity by its meta.source.
312
- *
313
- * This method enables lookup of activities that were created from external
314
- * systems, using the metadata to locate the corresponding Plot activity.
357
+ * Retrieves an activity by ID or source.
315
358
  *
316
- * By default, archived activities are excluded from the search. Set includeArchived
317
- * to true to include them in the results.
359
+ * This method enables lookup of activities either by their unique ID or by their
360
+ * source identifier (canonical URL from an external system). Archived activities
361
+ * are included in the results.
318
362
  *
319
- * @param source - The meta.source value to search for
320
- * @param includeArchived - Whether to include archived activities in search (default: false)
363
+ * @param activity - Activity lookup by ID or source
321
364
  * @returns Promise resolving to the matching activity or null if not found
322
365
  */
323
- abstract getActivityBySource(source: string, includeArchived?: boolean): Promise<Activity | null>;
366
+ abstract getActivity(activity: {
367
+ id: Uuid;
368
+ } | {
369
+ source: string;
370
+ }): Promise<Activity | null>;
324
371
  /**
325
- * Finds an activity by its metadata.
372
+ * Retrieves a note by ID or key.
326
373
  *
327
- * This method enables lookup of activities that were created from external
328
- * systems, using the metadata to locate the corresponding Plot activity.
329
- * Uses JSON containment matching - the provided meta must be contained
330
- * within the activity's meta field.
374
+ * This method enables lookup of notes either by their unique ID or by their
375
+ * key (unique identifier within the activity). Archived notes are included
376
+ * in the results.
331
377
  *
332
- * By default, archived activities are excluded from the search. Set includeArchived
333
- * to true to include them in the results.
334
- *
335
- * @param meta - The metadata to search for (uses JSON containment matching)
336
- * @param includeArchived - Whether to include archived activities in search (default: false)
337
- * @returns Promise resolving to the matching activity or null if not found
378
+ * @param note - Note lookup by ID or key
379
+ * @returns Promise resolving to the matching note or null if not found
338
380
  */
339
- abstract getActivityByMeta(meta: ActivityMeta, includeArchived?: boolean): Promise<Activity | null>;
381
+ abstract getNote(note: {
382
+ id: Uuid;
383
+ } | {
384
+ key: string;
385
+ }): Promise<Note | null>;
340
386
  /**
341
387
  * Creates a new priority in the Plot system.
342
388
  *
@@ -347,6 +393,29 @@ export declare abstract class Plot extends ITool {
347
393
  * @returns Promise resolving to the complete created priority
348
394
  */
349
395
  abstract createPriority(priority: NewPriority): Promise<Priority>;
396
+ /**
397
+ * Retrieves a priority by ID or key.
398
+ *
399
+ * Archived priorities are included in the results.
400
+ *
401
+ * @param priority - Priority lookup by ID or key
402
+ * @returns Promise resolving to the matching priority or null if not found
403
+ */
404
+ abstract getPriority(priority: {
405
+ id: Uuid;
406
+ } | {
407
+ key: string;
408
+ }): Promise<Priority | null>;
409
+ /**
410
+ * Updates an existing priority in the Plot system.
411
+ *
412
+ * The priority is identified by either its ID or key.
413
+ * Only the fields specified in the update will be changed.
414
+ *
415
+ * @param update - Priority update containing ID/key and fields to change
416
+ * @returns Promise that resolves when the update is complete
417
+ */
418
+ abstract updatePriority(update: PriorityUpdate): Promise<void>;
350
419
  /**
351
420
  * Adds contacts to the Plot system.
352
421
  *
@@ -1 +1 @@
1
- {"version":3,"file":"plot.d.ts","sourceRoot":"","sources":["../../src/tools/plot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plot.d.ts","sourceRoot":"","sources":["../../src/tools/plot.ts"],"names":[],"mappings":"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"}
@@ -67,6 +67,51 @@ export var ContactAccess;
67
67
  * ```
68
68
  */
69
69
  export class Plot extends ITool {
70
+ /**
71
+ * Configuration options for the Plot tool.
72
+ *
73
+ * **Important**: All permissions must be explicitly requested. There are no default permissions.
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * // Minimal configuration with required permissions
78
+ * build(build: ToolBuilder) {
79
+ * return {
80
+ * plot: build(Plot, {
81
+ * activity: {
82
+ * access: ActivityAccess.Create
83
+ * }
84
+ * })
85
+ * };
86
+ * }
87
+ *
88
+ * // Full configuration with callbacks
89
+ * build(build: ToolBuilder) {
90
+ * return {
91
+ * plot: build(Plot, {
92
+ * activity: {
93
+ * access: ActivityAccess.Create,
94
+ * updated: this.onActivityUpdated
95
+ * },
96
+ * note: {
97
+ * intents: [{
98
+ * description: "Schedule meetings",
99
+ * examples: ["Schedule a meeting tomorrow"],
100
+ * handler: this.onSchedulingIntent
101
+ * }],
102
+ * created: this.onNoteCreated
103
+ * },
104
+ * priority: {
105
+ * access: PriorityAccess.Full
106
+ * },
107
+ * contact: {
108
+ * access: ContactAccess.Write
109
+ * }
110
+ * })
111
+ * };
112
+ * }
113
+ * ```
114
+ */
70
115
  static Options;
71
116
  }
72
117
  //# sourceMappingURL=plot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plot.js","sourceRoot":"","sources":["../../src/tools/plot.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,GAUN,MAAM,IAAI,CAAC;AAEZ,MAAM,CAAN,IAAY,cAYX;AAZD,WAAY,cAAc;IACxB;;;OAGG;IACH,yDAAO,CAAA;IACP;;;;OAIG;IACH,uDAAM,CAAA;AACR,CAAC,EAZW,cAAc,KAAd,cAAc,QAYzB;AAED,MAAM,CAAN,IAAY,cAYX;AAZD,WAAY,cAAc;IACxB;;;OAGG;IACH,uDAAM,CAAA;IACN;;;;OAIG;IACH,mDAAI,CAAA;AACN,CAAC,EAZW,cAAc,KAAd,cAAc,QAYzB;AAED,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,iFAAiF;IACjF,iDAAI,CAAA;IACJ,kCAAkC;IAClC,mDAAK,CAAA;AACP,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB;AAeD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,OAAgB,IAAK,SAAQ,KAAK;IACtC,MAAM,CAAU,OAAO,CA8DrB;CA4QH"}
1
+ {"version":3,"file":"plot.js","sourceRoot":"","sources":["../../src/tools/plot.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,GAYN,MAAM,IAAI,CAAC;AAEZ,MAAM,CAAN,IAAY,cAYX;AAZD,WAAY,cAAc;IACxB;;;OAGG;IACH,yDAAO,CAAA;IACP;;;;OAIG;IACH,uDAAM,CAAA;AACR,CAAC,EAZW,cAAc,KAAd,cAAc,QAYzB;AAED,MAAM,CAAN,IAAY,cAYX;AAZD,WAAY,cAAc;IACxB;;;OAGG;IACH,uDAAM,CAAA;IACN;;;;OAIG;IACH,mDAAI,CAAA;AACN,CAAC,EAZW,cAAc,KAAd,cAAc,QAYzB;AAED,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,iFAAiF;IACjF,iDAAI,CAAA;IACJ,kCAAkC;IAClC,mDAAK,CAAA;AACP,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB;AAeD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,OAAgB,IAAK,SAAQ,KAAK;IACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,MAAM,CAAU,OAAO,CA+DrB;CAyRH"}
@@ -1,4 +1,4 @@
1
- import { ITool } from "..";
1
+ import { ITool, type Serializable } from "..";
2
2
  /**
3
3
  * Built-in tool for persistent key-value storage.
4
4
  *
@@ -13,9 +13,20 @@ import { ITool } from "..";
13
13
  * **Storage Characteristics:**
14
14
  * - Persistent across worker restarts
15
15
  * - Isolated per twist/tool instance
16
- * - Supports any JSON-serializable data
16
+ * - Supports SuperJSON-serializable data (see below)
17
17
  * - Async operations for scalability
18
18
  *
19
+ * **Supported Data Types (via SuperJSON):**
20
+ * - Primitives: string, number, boolean, null, undefined
21
+ * - Complex types: Date, RegExp, Map, Set, Error, URL, BigInt
22
+ * - Collections: Arrays and objects (recursively)
23
+ *
24
+ * **NOT Supported (will throw validation errors):**
25
+ * - Functions (use callback tokens instead - see Callbacks tool)
26
+ * - Symbols
27
+ * - Circular references
28
+ * - Custom class instances
29
+ *
19
30
  * **Use Cases:**
20
31
  * - Storing authentication tokens
21
32
  * - Caching configuration data
@@ -50,39 +61,53 @@ export declare abstract class Store extends ITool {
50
61
  * Returns the stored value deserialized to the specified type,
51
62
  * or null if the key doesn't exist or the value is null.
52
63
  *
53
- * @template T - The expected type of the stored value
64
+ * Values are automatically deserialized using SuperJSON, which
65
+ * properly restores Date objects, Maps, Sets, and other complex types.
66
+ *
67
+ * @template T - The expected type of the stored value (must be Serializable)
54
68
  * @param key - The storage key to retrieve
55
69
  * @returns Promise resolving to the stored value or null
56
70
  */
57
- abstract get<T>(key: string): Promise<T | null>;
71
+ abstract get<T extends Serializable>(key: string): Promise<T | null>;
58
72
  /**
59
73
  * Stores a value in persistent storage.
60
74
  *
61
- * The value will be JSON-serialized and stored persistently.
75
+ * The value will be serialized using SuperJSON and stored persistently.
62
76
  * Any existing value at the same key will be overwritten.
63
77
  *
64
- * **Handling undefined values:**
65
- * - Object keys with undefined values are automatically removed
66
- * - Arrays with undefined elements will throw a validation error
67
- * - Use null instead of undefined for array elements
78
+ * SuperJSON automatically handles Date objects, Maps, Sets, undefined values,
79
+ * and other complex types that standard JSON doesn't support.
68
80
  *
69
- * @template T - The type of value being stored
81
+ * @template T - The type of value being stored (must be Serializable)
70
82
  * @param key - The storage key to use
71
- * @param value - The value to store (must be JSON-serializable)
83
+ * @param value - The value to store (must be SuperJSON-serializable)
72
84
  * @returns Promise that resolves when the value is stored
73
85
  *
74
86
  * @example
75
87
  * ```typescript
76
- * // Object keys with undefined are removed
77
- * await this.set('data', { name: 'test', optional: undefined });
78
- * // Stores: { name: 'test' }
88
+ * // Date objects are preserved
89
+ * await this.set('sync_state', {
90
+ * lastSync: new Date(),
91
+ * minDate: new Date(2024, 0, 1)
92
+ * });
93
+ *
94
+ * // undefined is now supported
95
+ * await this.set('data', { name: 'test', optional: undefined }); // ✅ Works
96
+ *
97
+ * // Arrays with undefined are supported
98
+ * await this.set('items', [1, undefined, 3]); // ✅ Works
99
+ * await this.set('items', [1, null, 3]); // ✅ Also works
100
+ *
101
+ * // Maps and Sets are supported
102
+ * await this.set('mapping', new Map([['key', 'value']])); // ✅ Works
103
+ * await this.set('tags', new Set(['tag1', 'tag2'])); // ✅ Works
79
104
  *
80
- * // Arrays with undefined throw errors - use null instead
81
- * await this.set('items', [1, null, 3]); // ✅ Works
82
- * await this.set('items', [1, undefined, 3]); // Throws error
105
+ * // Functions are NOT supported - use callback tokens instead
106
+ * const token = await this.callback(this.myFunction);
107
+ * await this.set('callback_ref', token); // Use callback token
83
108
  * ```
84
109
  */
85
- abstract set<T>(key: string, value: T): Promise<void>;
110
+ abstract set<T extends Serializable>(key: string, value: T): Promise<void>;
86
111
  /**
87
112
  * Removes a specific key from storage.
88
113
  *
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/tools/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAE3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,8BAAsB,KAAM,SAAQ,KAAK;IACvC;;;;;;;;;OASG;IAEH,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IAEH,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAErD;;;;;;;;OAQG;IAEH,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1C;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CACnC"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/tools/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,IAAI,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,8BAAsB,KAAM,SAAQ,KAAK;IACvC;;;;;;;;;;;;OAYG;IAEH,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IAEH,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1E;;;;;;;;OAQG;IAEH,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1C;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CACnC"}
@@ -13,9 +13,20 @@ import { ITool } from "..";
13
13
  * **Storage Characteristics:**
14
14
  * - Persistent across worker restarts
15
15
  * - Isolated per twist/tool instance
16
- * - Supports any JSON-serializable data
16
+ * - Supports SuperJSON-serializable data (see below)
17
17
  * - Async operations for scalability
18
18
  *
19
+ * **Supported Data Types (via SuperJSON):**
20
+ * - Primitives: string, number, boolean, null, undefined
21
+ * - Complex types: Date, RegExp, Map, Set, Error, URL, BigInt
22
+ * - Collections: Arrays and objects (recursively)
23
+ *
24
+ * **NOT Supported (will throw validation errors):**
25
+ * - Functions (use callback tokens instead - see Callbacks tool)
26
+ * - Symbols
27
+ * - Circular references
28
+ * - Custom class instances
29
+ *
19
30
  * **Use Cases:**
20
31
  * - Storing authentication tokens
21
32
  * - Caching configuration data
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/tools/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAE3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,OAAgB,KAAM,SAAQ,KAAK;CAiExC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/tools/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,IAAI,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,MAAM,OAAgB,KAAM,SAAQ,KAAK;CA+ExC"}
@@ -3,12 +3,12 @@ import type { Callback } from "./callbacks";
3
3
  /**
4
4
  * Run background tasks and scheduled jobs.
5
5
  *
6
- * The Run tool enables twists and tools to queue callbacks. This is especially
7
- * iportant for long-running operations and batch processing, since twists
8
- * operate within runtime limits. Run callbacks also benefit from automatic
6
+ * The Tasks tool enables twists and tools to queue callbacks. This is especially
7
+ * important for long-running operations and batch processing, since twists
8
+ * operate within runtime limits. Task callbacks also benefit from automatic
9
9
  * retries on failure.
10
10
  *
11
- * **Note:** Run methods are also available directly on Twist and Tool classes
11
+ * **Note:** Tasks tool methods are also available directly on Twist and Tool classes
12
12
  * via `this.runTask()`, `this.cancelTask()`, and `this.cancelAllTasks()`.
13
13
  * This is the recommended approach for most use cases.
14
14
  *
@@ -2,12 +2,12 @@ import { ITool } from "..";
2
2
  /**
3
3
  * Run background tasks and scheduled jobs.
4
4
  *
5
- * The Run tool enables twists and tools to queue callbacks. This is especially
6
- * iportant for long-running operations and batch processing, since twists
7
- * operate within runtime limits. Run callbacks also benefit from automatic
5
+ * The Tasks tool enables twists and tools to queue callbacks. This is especially
6
+ * important for long-running operations and batch processing, since twists
7
+ * operate within runtime limits. Task callbacks also benefit from automatic
8
8
  * retries on failure.
9
9
  *
10
- * **Note:** Run methods are also available directly on Twist and Tool classes
10
+ * **Note:** Tasks tool methods are also available directly on Twist and Tool classes
11
11
  * via `this.runTask()`, `this.cancelTask()`, and `this.cancelAllTasks()`.
12
12
  * This is the recommended approach for most use cases.
13
13
  *
package/dist/twist.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type Priority } from "./plot";
1
+ import { type Priority, Uuid } from "./plot";
2
2
  import { type ITool } from "./tool";
3
3
  import type { Callback } from "./tools/callbacks";
4
4
  import type { InferTools, ToolBuilder, ToolShed } from "./utils/types";
@@ -30,9 +30,9 @@ import type { InferTools, ToolBuilder, ToolShed } from "./utils/types";
30
30
  * ```
31
31
  */
32
32
  export declare abstract class Twist<TSelf> {
33
- protected id: string;
33
+ protected id: Uuid;
34
34
  private toolShed;
35
- constructor(id: string, toolShed: ToolShed);
35
+ constructor(id: Uuid, toolShed: ToolShed);
36
36
  /**
37
37
  * Gets the initialized tools for this twist.
38
38
  * @throws Error if called before initialization is complete
@@ -95,21 +95,35 @@ export declare abstract class Twist<TSelf> {
95
95
  /**
96
96
  * Retrieves a value from persistent storage by key.
97
97
  *
98
- * @template T - The expected type of the stored value
98
+ * Values are automatically deserialized using SuperJSON, which
99
+ * properly restores Date objects, Maps, Sets, and other complex types.
100
+ *
101
+ * @template T - The expected type of the stored value (must be Serializable)
99
102
  * @param key - The storage key to retrieve
100
103
  * @returns Promise resolving to the stored value or null
101
104
  */
102
- protected get<T>(key: string): Promise<T | null>;
105
+ protected get<T extends import("./index").Serializable>(key: string): Promise<T | null>;
103
106
  /**
104
107
  * Stores a value in persistent storage.
105
108
  *
106
- * **Important**: Values must be JSON-serializable. Functions, Symbols, and undefined values
107
- * cannot be stored directly.
109
+ * The value will be serialized using SuperJSON and stored persistently.
110
+ * SuperJSON automatically handles Date objects, Maps, Sets, undefined values,
111
+ * and other complex types that standard JSON doesn't support.
108
112
  *
113
+ * **Important**: Functions and Symbols cannot be stored.
109
114
  * **For function references**: Use callbacks instead of storing functions directly.
110
115
  *
111
116
  * @example
112
117
  * ```typescript
118
+ * // ✅ Date objects are preserved
119
+ * await this.set("sync_state", {
120
+ * lastSync: new Date(),
121
+ * minDate: new Date(2024, 0, 1)
122
+ * });
123
+ *
124
+ * // ✅ undefined is now supported
125
+ * await this.set("data", { name: "test", optional: undefined });
126
+ *
113
127
  * // ❌ WRONG: Cannot store functions directly
114
128
  * await this.set("handler", this.myHandler);
115
129
  *
@@ -122,12 +136,12 @@ export declare abstract class Twist<TSelf> {
122
136
  * await this.run(token, args);
123
137
  * ```
124
138
  *
125
- * @template T - The type of value being stored
139
+ * @template T - The type of value being stored (must be Serializable)
126
140
  * @param key - The storage key to use
127
- * @param value - The value to store (must be JSON-serializable)
141
+ * @param value - The value to store (must be SuperJSON-serializable)
128
142
  * @returns Promise that resolves when the value is stored
129
143
  */
130
- protected set<T>(key: string, value: T): Promise<void>;
144
+ protected set<T extends import("./index").Serializable>(key: string, value: T): Promise<void>;
131
145
  /**
132
146
  * Removes a specific key from persistent storage.
133
147
  *
@@ -1 +1 @@
1
- {"version":3,"file":"twist.d.ts","sourceRoot":"","sources":["../src/twist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,8BAAsB,KAAK,CAAC,KAAK;IACnB,SAAS,CAAC,EAAE,EAAE,MAAM;IAAE,OAAO,CAAC,QAAQ;gBAA5B,EAAE,EAAE,MAAM,EAAU,QAAQ,EAAE,QAAQ;IAE5D;;;OAGG;IACH,SAAS,KAAK,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAEvC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAElE;;;;;;;;;;;;;OAaG;cACa,QAAQ,CACtB,EAAE,EAAE,QAAQ,EACZ,GAAG,SAAS,EAAE,GAAG,EAAE,GAClB,OAAO,CAAC,QAAQ,CAAC;IAIpB;;;;;OAKG;cACa,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D;;;;OAIG;cACa,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAInD;;;;;;OAMG;cACa,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAI/D;;;;;;OAMG;cACa,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAItD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;cACa,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D;;;;;OAKG;cACa,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD;;;;OAIG;cACa,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzC;;;;;;;OAOG;cACa,OAAO,CACrB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,IAAI,CAAA;KAAE,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIzB;;;;;OAKG;cACa,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD;;;;OAIG;cACa,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/C;;;;;;;;OAQG;IAEH,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD;;;;;;;;OAQG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB;;;;;;;OAOG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC"}
1
+ {"version":3,"file":"twist.d.ts","sourceRoot":"","sources":["../src/twist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,8BAAsB,KAAK,CAAC,KAAK;IACnB,SAAS,CAAC,EAAE,EAAE,IAAI;IAAE,OAAO,CAAC,QAAQ;gBAA1B,EAAE,EAAE,IAAI,EAAU,QAAQ,EAAE,QAAQ;IAE1D;;;OAGG;IACH,SAAS,KAAK,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAEvC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAElE;;;;;;;;;;;;;OAaG;cACa,QAAQ,CACtB,EAAE,EAAE,QAAQ,EACZ,GAAG,SAAS,EAAE,GAAG,EAAE,GAClB,OAAO,CAAC,QAAQ,CAAC;IAIpB;;;;;OAKG;cACa,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D;;;;OAIG;cACa,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAInD;;;;;;OAMG;cACa,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAI/D;;;;;;;;;OASG;cACa,GAAG,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,YAAY,EAC1D,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAIpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;cACa,GAAG,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,YAAY,EAC1D,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;;OAKG;cACa,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD;;;;OAIG;cACa,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzC;;;;;;;OAOG;cACa,OAAO,CACrB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,IAAI,CAAA;KAAE,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIzB;;;;;OAKG;cACa,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD;;;;OAIG;cACa,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/C;;;;;;;;OAQG;IAEH,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD;;;;;;;;OAQG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB;;;;;;;OAOG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC"}
package/dist/twist.js CHANGED
@@ -86,7 +86,10 @@ export class Twist {
86
86
  /**
87
87
  * Retrieves a value from persistent storage by key.
88
88
  *
89
- * @template T - The expected type of the stored value
89
+ * Values are automatically deserialized using SuperJSON, which
90
+ * properly restores Date objects, Maps, Sets, and other complex types.
91
+ *
92
+ * @template T - The expected type of the stored value (must be Serializable)
90
93
  * @param key - The storage key to retrieve
91
94
  * @returns Promise resolving to the stored value or null
92
95
  */
@@ -96,13 +99,24 @@ export class Twist {
96
99
  /**
97
100
  * Stores a value in persistent storage.
98
101
  *
99
- * **Important**: Values must be JSON-serializable. Functions, Symbols, and undefined values
100
- * cannot be stored directly.
102
+ * The value will be serialized using SuperJSON and stored persistently.
103
+ * SuperJSON automatically handles Date objects, Maps, Sets, undefined values,
104
+ * and other complex types that standard JSON doesn't support.
101
105
  *
106
+ * **Important**: Functions and Symbols cannot be stored.
102
107
  * **For function references**: Use callbacks instead of storing functions directly.
103
108
  *
104
109
  * @example
105
110
  * ```typescript
111
+ * // ✅ Date objects are preserved
112
+ * await this.set("sync_state", {
113
+ * lastSync: new Date(),
114
+ * minDate: new Date(2024, 0, 1)
115
+ * });
116
+ *
117
+ * // ✅ undefined is now supported
118
+ * await this.set("data", { name: "test", optional: undefined });
119
+ *
106
120
  * // ❌ WRONG: Cannot store functions directly
107
121
  * await this.set("handler", this.myHandler);
108
122
  *
@@ -115,9 +129,9 @@ export class Twist {
115
129
  * await this.run(token, args);
116
130
  * ```
117
131
  *
118
- * @template T - The type of value being stored
132
+ * @template T - The type of value being stored (must be Serializable)
119
133
  * @param key - The storage key to use
120
- * @param value - The value to store (must be JSON-serializable)
134
+ * @param value - The value to store (must be SuperJSON-serializable)
121
135
  * @returns Promise that resolves when the value is stored
122
136
  */
123
137
  async set(key, value) {
package/dist/twist.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"twist.js","sourceRoot":"","sources":["../src/twist.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAgB,KAAK;IACH;IAAoB;IAA1C,YAAsB,EAAU,EAAU,QAAkB;QAAtC,OAAE,GAAF,EAAE,CAAQ;QAAU,aAAQ,GAAR,QAAQ,CAAU;IAAG,CAAC;IAEhE;;;OAGG;IACH,IAAc,KAAK;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAqB,CAAC;IACrD,CAAC;IAqBD;;;;;;;;;;;;;OAaG;IACO,KAAK,CAAC,QAAQ,CACtB,EAAY,EACZ,GAAG,SAAgB;QAEnB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAS,EAAE,GAAG,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,cAAc,CAAC,KAAe;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,kBAAkB;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,GAAG,CAAC,KAAe,EAAE,GAAG,IAAQ;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,GAAG,CAAI,GAAW;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACO,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,KAAQ;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,KAAK,CAAC,GAAW;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,QAAQ;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACrC,CAAC;IAED;;;;;;;OAOG;IACO,KAAK,CAAC,OAAO,CACrB,QAAkB,EAClB,OAA0B;QAE1B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,UAAU,CAAC,KAAa;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,cAAc;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;IAC3C,CAAC;IAED;;;;;;;;OAQG;IACH,6DAA6D;IAC7D,QAAQ,CAAC,QAA8B;QACrC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO;QACL,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;OAOG;IACH,UAAU;QACR,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;CACF"}
1
+ {"version":3,"file":"twist.js","sourceRoot":"","sources":["../src/twist.ts"],"names":[],"mappings":"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"}
@@ -88,4 +88,23 @@ export type NoFunctions<T> = T extends (...args: any[]) => any ? never : T exten
88
88
  export type CallbackMethods<T> = {
89
89
  [K in keyof T]: T[K] extends (...args: any[]) => any ? K : never;
90
90
  }[keyof T];
91
+ /**
92
+ * Represents a valid JSON value.
93
+ *
94
+ * This type ensures type safety for data that needs to be serialized to JSON,
95
+ * such as metadata fields, webhook payloads, and stored data.
96
+ *
97
+ * @example
98
+ * ```typescript
99
+ * const meta: JSONValue = {
100
+ * name: "Example",
101
+ * count: 42,
102
+ * tags: ["foo", "bar"],
103
+ * nested: { value: true }
104
+ * };
105
+ * ```
106
+ */
107
+ export type JSONValue = string | number | boolean | null | {
108
+ [key: string]: JSONValue;
109
+ } | JSONValue[];
91
110
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAM5C;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;KAC5B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACzD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS;IAC5C,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC;CACpC,GACG,CAAC,GACD,EAAE,CAAC;AAEP;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS;IACtC,OAAO,EAAE,MAAM,CAAC,CAAC;CAClB,GACG,CAAC,GACD,OAAO,CAAC;AAEZ;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,EAAE,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,EACtE,SAAS,EAAE,EAAE,EACb,OAAO,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,KACvB,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/B;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;CAClB;AAMD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;AAEpE;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAC1D,KAAK,GACL,CAAC,SAAS,MAAM,GAChB;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GACvE,CAAC,CAAC;AAEN;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;KAC9B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK;CACjE,CAAC,MAAM,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAM5C;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;KAC5B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACzD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS;IAC5C,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC;CACpC,GACG,CAAC,GACD,EAAE,CAAC;AAEP;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS;IACtC,OAAO,EAAE,MAAM,CAAC,CAAC;CAClB,GACG,CAAC,GACD,OAAO,CAAC;AAEZ;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,EAAE,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,EACtE,SAAS,EAAE,EAAE,EACb,OAAO,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,KACvB,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/B;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;CAClB;AAMD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;AAEpE;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAC1D,KAAK,GACL,CAAC,SAAS,MAAM,GAChB;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GACvE,CAAC,CAAC;AAEN;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;KAC9B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK;CACjE,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5B,SAAS,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plotday/twister",
3
- "version": "0.28.0",
3
+ "version": "0.29.0",
4
4
  "description": "Plot Twist Creator - Build intelligent extensions that integrate and automate",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",