@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.
- package/dist/common/calendar.d.ts +17 -7
- package/dist/common/calendar.d.ts.map +1 -1
- package/dist/common/messaging.d.ts +10 -5
- package/dist/common/messaging.d.ts.map +1 -1
- package/dist/common/projects.d.ts +10 -5
- package/dist/common/projects.d.ts.map +1 -1
- package/dist/common/serializable.d.ts +40 -0
- package/dist/common/serializable.d.ts.map +1 -0
- package/dist/common/serializable.js +2 -0
- package/dist/common/serializable.js.map +1 -0
- package/dist/docs/assets/hierarchy.js +1 -1
- package/dist/docs/assets/navigation.js +1 -1
- package/dist/docs/assets/search.js +1 -1
- package/dist/docs/classes/tool.ITool.html +1 -1
- package/dist/docs/classes/tool.Tool.html +32 -33
- package/dist/docs/classes/tools_ai.AI.html +2 -2
- package/dist/docs/classes/tools_callbacks.Callbacks.html +6 -6
- package/dist/docs/classes/tools_integrations.Integrations.html +3 -3
- package/dist/docs/classes/tools_network.Network.html +12 -12
- package/dist/docs/classes/tools_plot.Plot.html +40 -30
- package/dist/docs/classes/tools_store.Store.html +29 -18
- package/dist/docs/classes/tools_tasks.Tasks.html +8 -8
- package/dist/docs/classes/tools_twists.Twists.html +5 -5
- package/dist/docs/classes/twist.Twist.html +28 -24
- package/dist/docs/enums/plot.ActivityLinkType.html +5 -5
- package/dist/docs/enums/plot.ActivityType.html +4 -4
- package/dist/docs/enums/plot.ActorType.html +4 -4
- package/dist/docs/enums/plot.ConferencingProvider.html +6 -6
- package/dist/docs/enums/tag.Tag.html +2 -2
- package/dist/docs/enums/tools_ai.AIModel.html +2 -2
- package/dist/docs/enums/tools_integrations.AuthLevel.html +3 -3
- package/dist/docs/enums/tools_integrations.AuthProvider.html +11 -11
- package/dist/docs/enums/tools_plot.ActivityAccess.html +3 -3
- package/dist/docs/enums/tools_plot.ContactAccess.html +3 -3
- package/dist/docs/enums/tools_plot.PriorityAccess.html +3 -3
- package/dist/docs/functions/index.Uuid.Generate.html +1 -1
- package/dist/docs/functions/utils_hash.quickHash.html +1 -1
- package/dist/docs/hierarchy.html +1 -1
- package/dist/docs/interfaces/common_calendar.Calendar.html +5 -5
- package/dist/docs/interfaces/common_calendar.CalendarTool.html +16 -10
- package/dist/docs/interfaces/common_calendar.SyncOptions.html +3 -3
- package/dist/docs/interfaces/index.SerializableArray.html +2 -0
- package/dist/docs/interfaces/index.SerializableMap.html +2 -0
- package/dist/docs/interfaces/index.SerializableObject.html +2 -0
- package/dist/docs/interfaces/index.SerializableSet.html +2 -0
- package/dist/docs/interfaces/tools_ai.AIRequest.html +11 -11
- package/dist/docs/interfaces/tools_ai.AIResponse.html +9 -9
- package/dist/docs/interfaces/tools_ai.FilePart.html +5 -5
- package/dist/docs/interfaces/tools_ai.ImagePart.html +4 -4
- package/dist/docs/interfaces/tools_ai.ReasoningPart.html +4 -4
- package/dist/docs/interfaces/tools_ai.RedactedReasoningPart.html +3 -3
- package/dist/docs/interfaces/tools_ai.TextPart.html +3 -3
- package/dist/docs/interfaces/tools_ai.ToolCallPart.html +5 -5
- package/dist/docs/interfaces/tools_ai.ToolExecutionOptions.html +4 -4
- package/dist/docs/interfaces/tools_ai.ToolResultPart.html +5 -5
- package/dist/docs/interfaces/tools_twists.TwistSource.html +3 -3
- package/dist/docs/interfaces/utils_types.ToolShed.html +5 -5
- package/dist/docs/modules/index.html +1 -1
- package/dist/docs/modules/plot.html +1 -1
- package/dist/docs/modules/utils_types.html +1 -1
- package/dist/docs/types/common_calendar.CalendarAuth.html +2 -2
- package/dist/docs/types/index.Serializable.html +17 -0
- package/dist/docs/types/index.Uuid.html +1 -1
- package/dist/docs/types/plot.Activity.html +1 -1
- package/dist/docs/types/plot.ActivityCommon.html +9 -9
- package/dist/docs/types/plot.ActivityLink.html +1 -1
- package/dist/docs/types/plot.ActivityMeta.html +5 -3
- package/dist/docs/types/plot.ActivityUpdate.html +2 -2
- package/dist/docs/types/plot.ActivityWithNotes.html +1 -1
- package/dist/docs/types/plot.Actor.html +15 -5
- package/dist/docs/types/plot.ActorId.html +1 -1
- package/dist/docs/types/plot.ContentType.html +1 -1
- package/dist/docs/types/plot.NewActivity.html +1 -1
- package/dist/docs/types/plot.NewActivityWithNotes.html +1 -1
- package/dist/docs/types/plot.NewActor.html +1 -1
- package/dist/docs/types/plot.NewContact.html +4 -4
- package/dist/docs/types/plot.NewNote.html +1 -1
- package/dist/docs/types/plot.NewPriority.html +15 -5
- package/dist/docs/types/plot.NewTags.html +1 -1
- package/dist/docs/types/plot.Note.html +1 -1
- package/dist/docs/types/plot.NoteUpdate.html +2 -2
- package/dist/docs/types/plot.PickPriorityConfig.html +3 -3
- package/dist/docs/types/plot.Priority.html +9 -4
- package/dist/docs/types/plot.PriorityUpdate.html +3 -0
- package/dist/docs/types/plot.SyncUpdate.html +1 -1
- package/dist/docs/types/plot.Tags.html +1 -1
- package/dist/docs/types/tools_ai.AIAssistantMessage.html +2 -2
- package/dist/docs/types/tools_ai.AIMessage.html +1 -1
- package/dist/docs/types/tools_ai.AISource.html +1 -1
- package/dist/docs/types/tools_ai.AISystemMessage.html +2 -2
- package/dist/docs/types/tools_ai.AITool.html +1 -1
- package/dist/docs/types/tools_ai.AIToolMessage.html +2 -2
- package/dist/docs/types/tools_ai.AIToolSet.html +1 -1
- package/dist/docs/types/tools_ai.AIUsage.html +5 -5
- package/dist/docs/types/tools_ai.AIUserMessage.html +2 -2
- package/dist/docs/types/tools_ai.DataContent.html +1 -1
- package/dist/docs/types/tools_ai.ModelPreferences.html +4 -4
- package/dist/docs/types/tools_callbacks.Callback.html +1 -1
- package/dist/docs/types/tools_integrations.AuthToken.html +4 -4
- package/dist/docs/types/tools_integrations.Authorization.html +4 -4
- package/dist/docs/types/tools_network.WebhookRequest.html +6 -6
- package/dist/docs/types/tools_plot.NoteIntentHandler.html +4 -4
- package/dist/docs/types/tools_twists.Log.html +2 -2
- package/dist/docs/types/tools_twists.TwistPermissions.html +1 -1
- package/dist/docs/types/utils_types.BuiltInTools.html +2 -2
- package/dist/docs/types/utils_types.CallbackMethods.html +1 -1
- package/dist/docs/types/utils_types.ExtractBuildReturn.html +1 -1
- package/dist/docs/types/utils_types.InferOptions.html +1 -1
- package/dist/docs/types/utils_types.InferTools.html +1 -1
- package/dist/docs/types/utils_types.JSONValue.html +7 -0
- package/dist/docs/types/utils_types.NoFunctions.html +1 -1
- package/dist/docs/types/utils_types.NonFunction.html +1 -1
- package/dist/docs/types/utils_types.PromiseValues.html +1 -1
- package/dist/docs/types/utils_types.ToolBuilder.html +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/llm-docs/common/calendar.d.ts +1 -1
- package/dist/llm-docs/common/calendar.d.ts.map +1 -1
- package/dist/llm-docs/common/calendar.js +1 -1
- package/dist/llm-docs/common/calendar.js.map +1 -1
- package/dist/llm-docs/common/messaging.d.ts +1 -1
- package/dist/llm-docs/common/messaging.d.ts.map +1 -1
- package/dist/llm-docs/common/messaging.js +1 -1
- package/dist/llm-docs/common/messaging.js.map +1 -1
- package/dist/llm-docs/common/projects.d.ts +1 -1
- package/dist/llm-docs/common/projects.d.ts.map +1 -1
- package/dist/llm-docs/common/projects.js +1 -1
- package/dist/llm-docs/common/projects.js.map +1 -1
- package/dist/llm-docs/plot.d.ts +1 -1
- package/dist/llm-docs/plot.d.ts.map +1 -1
- package/dist/llm-docs/plot.js +1 -1
- package/dist/llm-docs/plot.js.map +1 -1
- package/dist/llm-docs/tool.d.ts +1 -1
- package/dist/llm-docs/tool.d.ts.map +1 -1
- package/dist/llm-docs/tool.js +1 -1
- package/dist/llm-docs/tool.js.map +1 -1
- package/dist/llm-docs/tools/network.d.ts +1 -1
- package/dist/llm-docs/tools/network.d.ts.map +1 -1
- package/dist/llm-docs/tools/network.js +1 -1
- package/dist/llm-docs/tools/network.js.map +1 -1
- package/dist/llm-docs/tools/plot.d.ts +1 -1
- package/dist/llm-docs/tools/plot.d.ts.map +1 -1
- package/dist/llm-docs/tools/plot.js +1 -1
- package/dist/llm-docs/tools/plot.js.map +1 -1
- package/dist/llm-docs/tools/store.d.ts +1 -1
- package/dist/llm-docs/tools/store.d.ts.map +1 -1
- package/dist/llm-docs/tools/store.js +1 -1
- package/dist/llm-docs/tools/store.js.map +1 -1
- package/dist/llm-docs/tools/tasks.d.ts +1 -1
- package/dist/llm-docs/tools/tasks.d.ts.map +1 -1
- package/dist/llm-docs/tools/tasks.js +1 -1
- package/dist/llm-docs/tools/tasks.js.map +1 -1
- package/dist/llm-docs/twist.d.ts +1 -1
- package/dist/llm-docs/twist.d.ts.map +1 -1
- package/dist/llm-docs/twist.js +1 -1
- package/dist/llm-docs/twist.js.map +1 -1
- package/dist/plot.d.ts +125 -14
- package/dist/plot.d.ts.map +1 -1
- package/dist/plot.js.map +1 -1
- package/dist/tool.d.ts +26 -18
- package/dist/tool.d.ts.map +1 -1
- package/dist/tool.js +25 -17
- package/dist/tool.js.map +1 -1
- package/dist/tools/network.d.ts +19 -16
- package/dist/tools/network.d.ts.map +1 -1
- package/dist/tools/network.js +6 -4
- package/dist/tools/network.js.map +1 -1
- package/dist/tools/plot.d.ts +91 -22
- package/dist/tools/plot.d.ts.map +1 -1
- package/dist/tools/plot.js +45 -0
- package/dist/tools/plot.js.map +1 -1
- package/dist/tools/store.d.ts +43 -18
- package/dist/tools/store.d.ts.map +1 -1
- package/dist/tools/store.js +12 -1
- package/dist/tools/store.js.map +1 -1
- package/dist/tools/tasks.d.ts +4 -4
- package/dist/tools/tasks.js +4 -4
- package/dist/twist.d.ts +24 -10
- package/dist/twist.d.ts.map +1 -1
- package/dist/twist.js +19 -5
- package/dist/twist.js.map +1 -1
- package/dist/utils/types.d.ts +19 -0
- package/dist/utils/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/tools/plot.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Activity, type
|
|
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
|
-
*
|
|
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
|
-
*
|
|
317
|
-
*
|
|
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
|
|
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
|
|
366
|
+
abstract getActivity(activity: {
|
|
367
|
+
id: Uuid;
|
|
368
|
+
} | {
|
|
369
|
+
source: string;
|
|
370
|
+
}): Promise<Activity | null>;
|
|
324
371
|
/**
|
|
325
|
-
*
|
|
372
|
+
* Retrieves a note by ID or key.
|
|
326
373
|
*
|
|
327
|
-
* This method enables lookup of
|
|
328
|
-
*
|
|
329
|
-
*
|
|
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
|
-
*
|
|
333
|
-
*
|
|
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
|
|
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
|
*
|
package/dist/tools/plot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plot.d.ts","sourceRoot":"","sources":["../../src/tools/plot.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"plot.d.ts","sourceRoot":"","sources":["../../src/tools/plot.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/plot.js
CHANGED
|
@@ -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
|
package/dist/tools/plot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plot.js","sourceRoot":"","sources":["../../src/tools/plot.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,
|
|
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"}
|
package/dist/tools/store.d.ts
CHANGED
|
@@ -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
|
|
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
|
-
*
|
|
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
|
|
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
|
-
*
|
|
65
|
-
*
|
|
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
|
|
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
|
-
* //
|
|
77
|
-
* await this.set('
|
|
78
|
-
*
|
|
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
|
-
* //
|
|
81
|
-
* await this.
|
|
82
|
-
* await this.set('
|
|
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;
|
|
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"}
|
package/dist/tools/store.js
CHANGED
|
@@ -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
|
|
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
|
package/dist/tools/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/tools/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,
|
|
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"}
|
package/dist/tools/tasks.d.ts
CHANGED
|
@@ -3,12 +3,12 @@ import type { Callback } from "./callbacks";
|
|
|
3
3
|
/**
|
|
4
4
|
* Run background tasks and scheduled jobs.
|
|
5
5
|
*
|
|
6
|
-
* The
|
|
7
|
-
*
|
|
8
|
-
* operate within runtime limits.
|
|
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:**
|
|
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
|
*
|
package/dist/tools/tasks.js
CHANGED
|
@@ -2,12 +2,12 @@ import { ITool } from "..";
|
|
|
2
2
|
/**
|
|
3
3
|
* Run background tasks and scheduled jobs.
|
|
4
4
|
*
|
|
5
|
-
* The
|
|
6
|
-
*
|
|
7
|
-
* operate within runtime limits.
|
|
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:**
|
|
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:
|
|
33
|
+
protected id: Uuid;
|
|
34
34
|
private toolShed;
|
|
35
|
-
constructor(id:
|
|
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
|
-
*
|
|
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
|
-
*
|
|
107
|
-
*
|
|
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
|
|
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
|
*
|
package/dist/twist.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
*
|
|
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
|
-
*
|
|
100
|
-
*
|
|
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
|
|
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;
|
|
1
|
+
{"version":3,"file":"twist.js","sourceRoot":"","sources":["../src/twist.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/types.d.ts
CHANGED
|
@@ -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"}
|