@resonatehq/sdk 0.3.7 → 0.5.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 (55) hide show
  1. package/README.md +24 -123
  2. package/dist/async.d.ts +95 -49
  3. package/dist/async.d.ts.map +1 -1
  4. package/dist/async.js +167 -100
  5. package/dist/async.js.map +1 -1
  6. package/dist/core/execution.d.ts +12 -10
  7. package/dist/core/execution.d.ts.map +1 -1
  8. package/dist/core/execution.js +124 -65
  9. package/dist/core/execution.js.map +1 -1
  10. package/dist/core/future.d.ts +3 -1
  11. package/dist/core/future.d.ts.map +1 -1
  12. package/dist/core/future.js +6 -0
  13. package/dist/core/future.js.map +1 -1
  14. package/dist/core/invocation.d.ts +5 -4
  15. package/dist/core/invocation.d.ts.map +1 -1
  16. package/dist/core/invocation.js +39 -13
  17. package/dist/core/invocation.js.map +1 -1
  18. package/dist/core/options.d.ts +32 -11
  19. package/dist/core/options.d.ts.map +1 -1
  20. package/dist/core/options.js +3 -3
  21. package/dist/core/options.js.map +1 -1
  22. package/dist/core/promises/promises.d.ts +3 -2
  23. package/dist/core/promises/promises.d.ts.map +1 -1
  24. package/dist/core/promises/promises.js +4 -1
  25. package/dist/core/promises/promises.js.map +1 -1
  26. package/dist/core/promises/types.d.ts.map +1 -1
  27. package/dist/core/promises/types.js +2 -5
  28. package/dist/core/promises/types.js.map +1 -1
  29. package/dist/core/schedules/schedules.d.ts +22 -0
  30. package/dist/core/schedules/schedules.d.ts.map +1 -0
  31. package/dist/core/schedules/schedules.js +29 -0
  32. package/dist/core/schedules/schedules.js.map +1 -0
  33. package/dist/core/store.d.ts +5 -2
  34. package/dist/core/store.d.ts.map +1 -1
  35. package/dist/core/stores/local.d.ts +1 -1
  36. package/dist/core/stores/local.d.ts.map +1 -1
  37. package/dist/core/stores/local.js +7 -5
  38. package/dist/core/stores/local.js.map +1 -1
  39. package/dist/core/stores/remote.d.ts +7 -7
  40. package/dist/core/stores/remote.d.ts.map +1 -1
  41. package/dist/core/stores/remote.js +30 -23
  42. package/dist/core/stores/remote.js.map +1 -1
  43. package/dist/generator.d.ts +36 -18
  44. package/dist/generator.d.ts.map +1 -1
  45. package/dist/generator.js +66 -73
  46. package/dist/generator.js.map +1 -1
  47. package/dist/index.d.ts +2 -2
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +5 -26
  50. package/dist/index.js.map +1 -1
  51. package/dist/resonate.d.ts +108 -31
  52. package/dist/resonate.d.ts.map +1 -1
  53. package/dist/resonate.js +144 -60
  54. package/dist/resonate.js.map +1 -1
  55. package/package.json +1 -1
@@ -1,24 +1,30 @@
1
1
  import { IEncoder } from "./core/encoder";
2
2
  import { ResonatePromise } from "./core/future";
3
3
  import { ILogger } from "./core/logger";
4
- import { ResonateOptions, Options } from "./core/options";
5
- import { DurablePromise, CreateOptions, CompleteOptions } from "./core/promises/promises";
4
+ import { ResonateOptions, Options, PartialOptions } from "./core/options";
5
+ import * as promises from "./core/promises/promises";
6
6
  import { IRetry } from "./core/retry";
7
+ import * as schedules from "./core/schedules/schedules";
7
8
  import { IStore } from "./core/store";
8
9
  type Func = (...args: any[]) => any;
9
10
  export declare abstract class ResonateBase {
10
11
  private readonly functions;
12
+ readonly promises: ResonatePromises;
13
+ readonly schedules: ResonateSchedules;
11
14
  readonly pid: string;
15
+ readonly poll: number;
12
16
  readonly timeout: number;
13
17
  readonly tags: Record<string, string>;
14
- protected readonly encoder: IEncoder<unknown, string | undefined>;
15
- protected readonly logger: ILogger;
16
- protected readonly retry: IRetry;
17
- protected readonly store: IStore;
18
+ readonly encoder: IEncoder<unknown, string | undefined>;
19
+ readonly logger: ILogger;
20
+ readonly retry: IRetry;
21
+ readonly store: IStore;
18
22
  private interval;
19
- constructor({ encoder, logger, pid, retry, store, tags, timeout, // 10s
23
+ constructor({ encoder, logger, pid, poll, // 5s
24
+ retry, store, tags, timeout, // 10s
20
25
  url, }?: Partial<ResonateOptions>);
21
- register(name: string, funcOrVersion: Func | number, funcOrOpts: Func | Partial<Options>): (id: string, ...args: any) => ResonatePromise<any>;
26
+ protected abstract execute(name: string, id: string, func: Func, args: any[], opts: Options, defaults: Options, durablePromise?: promises.DurablePromise<any>): ResonatePromise<any>;
27
+ register(name: string, func: Func, opts?: Partial<Options>): (id: string, ...args: any) => ResonatePromise<any>;
22
28
  registerModule(module: Record<string, Func>, opts?: Partial<Options>): void;
23
29
  /**
24
30
  * Run a Resonate function. Functions must first be registered with {@link register}.
@@ -29,19 +35,15 @@ export declare abstract class ResonateBase {
29
35
  * @param args The function arguments.
30
36
  * @returns A promise that resolve to the function return value.
31
37
  */
32
- run<T>(name: string, id: string, ...args: any[]): ResonatePromise<T>;
38
+ run<T>(name: string, id: string, ...argsWithOpts: [...any, PartialOptions?]): ResonatePromise<T>;
39
+ schedule(name: string, cron: string, func: Func | string, ...argsWithOpts: [...any, PartialOptions?]): Promise<schedules.Schedule>;
33
40
  /**
34
- * Run a Resonate function. Functions must first be registered with {@link register}.
41
+ * Construct options.
35
42
  *
36
- * @template T The return type of the function.
37
- * @param name The function name.
38
- * @param version The function version.
39
- * @param id A unique id for the function invocation.
40
- * @param args The function arguments.
41
- * @returns A promise that resolve to the function return value.
43
+ * @param opts A partial {@link Options} object.
44
+ * @returns PartialOptions.
42
45
  */
43
- run<T>(name: string, version: number, id: string, ...args: any[]): ResonatePromise<T>;
44
- protected abstract execute(name: string, version: number, id: string, func: Func, args: any[], opts: Options): ResonatePromise<any>;
46
+ options(opts?: Partial<Options>): PartialOptions;
45
47
  /**
46
48
  * Start the resonate service.
47
49
  *
@@ -52,23 +54,98 @@ export declare abstract class ResonateBase {
52
54
  * Stop the resonate service.
53
55
  */
54
56
  stop(): void;
57
+ private defaults;
55
58
  private _start;
56
- get promises(): {
57
- create: <T>(id: string, timeout: number, opts?: Partial<CreateOptions>) => Promise<DurablePromise<T>>;
58
- resolve: <T_1>(id: string, value: T_1, opts?: Partial<CompleteOptions>) => Promise<DurablePromise<T_1>>;
59
- reject: <T_2>(id: string, error: any, opts?: Partial<CompleteOptions>) => Promise<DurablePromise<T_2>>;
60
- cancel: <T_3>(id: string, error: any, opts?: Partial<CompleteOptions>) => Promise<DurablePromise<T_3>>;
61
- get: <T_4>(id: string) => Promise<DurablePromise<T_4>>;
62
- search: (id: string, state?: string, tags?: Record<string, string>, limit?: number) => AsyncGenerator<DurablePromise<any>[], void, unknown>;
63
- };
59
+ private split;
60
+ }
61
+ export interface ResonatePromises {
64
62
  /**
65
- * Construct options.
63
+ * Create a durable promise.
66
64
  *
67
- * @param opts A partial {@link Options} object.
68
- * @returns Options with the __resonate flag set.
65
+ * @template T The type of the promise.
66
+ * @param id Unique identifier for the promise.
67
+ * @param timeout Time (in milliseconds) after which the promise is considered expired.
68
+ * @param opts Additional options.
69
+ * @returns A durable promise.
70
+ */
71
+ create<T>(id: string, timeout: number, opts?: Partial<promises.CreateOptions>): Promise<promises.DurablePromise<T>>;
72
+ /**
73
+ * Resolve a durable promise.
74
+ *
75
+ * @template T The type of the promise.
76
+ * @param id Unique identifier for the promise.
77
+ * @param value The resolved value.
78
+ * @param opts Additional options.
79
+ * @returns A durable promise.
80
+ */
81
+ resolve<T>(id: string, value: T, opts?: Partial<promises.CompleteOptions>): Promise<promises.DurablePromise<T>>;
82
+ /**
83
+ * Reject a durable promise.
84
+ *
85
+ * @template T The type of the promise.
86
+ * @param id Unique identifier for the promise.
87
+ * @param error The reject value.
88
+ * @param opts Additional options.
89
+ * @returns A durable promise.
90
+ */
91
+ reject<T>(id: string, error: any, opts?: Partial<promises.CompleteOptions>): Promise<promises.DurablePromise<T>>;
92
+ /**
93
+ * Cancel a durable promise.
94
+ *
95
+ * @template T The type of the promise.
96
+ * @param id Unique identifier for the promise.
97
+ * @param error The cancel value.
98
+ * @param opts Additional options.
99
+ * @returns A durable promise.
100
+ */
101
+ cancel<T>(id: string, error: any, opts?: Partial<promises.CompleteOptions>): Promise<promises.DurablePromise<T>>;
102
+ /**
103
+ * Get a durable promise.
104
+ *
105
+ * @template T The type of the promise.
106
+ * @param id Id of the promise.
107
+ * @returns A durable promise.
108
+ */
109
+ get<T>(id: string): Promise<promises.DurablePromise<T>>;
110
+ /**
111
+ * Search durable promises.
112
+ *
113
+ * @param id Ids to match, can include wildcards.
114
+ * @param state State to match.
115
+ * @param tags Tags to match.
116
+ * @param limit Maximum number of promises to return.
117
+ * @returns A generator that yields durable promises.
118
+ */
119
+ search(id: string, state?: string, tags?: Record<string, string>, limit?: number): AsyncGenerator<promises.DurablePromise<any>[]>;
120
+ }
121
+ export interface ResonateSchedules {
122
+ /**
123
+ * Create a new schedule.
124
+ *
125
+ * @param id Unique identifier for the schedule.
126
+ * @param cron CRON expression defining the schedule's execution time.
127
+ * @param promiseId Unique identifier for the associated promise.
128
+ * @param promiseTimeout Timeout for the associated promise in milliseconds.
129
+ * @param opts Additional options.
130
+ * @returns A schedule.
131
+ */
132
+ create(id: string, cron: string, promiseId: string, promiseTimeout: number, opts?: Partial<schedules.Options>): Promise<schedules.Schedule>;
133
+ /**
134
+ * Get a schedule.
135
+ *
136
+ * @param id Id of the schedule.
137
+ * @returns A schedule.
138
+ */
139
+ get(id: string): Promise<schedules.Schedule>;
140
+ /**
141
+ * Search for schedules.
142
+ *
143
+ * @param id Ids to match, can include wildcards.
144
+ * @param tags Tags to match.
145
+ * @param limit Maximum number of schedules to return.
146
+ * @returns A generator that yields schedules.
69
147
  */
70
- options({ encoder, poll, // every 5s
71
- retry, store, tags, timeout, }: Partial<Options>): Options;
148
+ search(id: string, tags: Record<string, string> | undefined, limit?: number): AsyncGenerator<schedules.Schedule[], void>;
72
149
  }
73
150
  export {};
74
151
  //# sourceMappingURL=resonate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resonate.d.ts","sourceRoot":"","sources":["../lib/resonate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resonate.d.ts","sourceRoot":"","sources":["../lib/resonate.ts"],"names":[],"mappings":"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"}
package/dist/resonate.js CHANGED
@@ -26,8 +26,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.ResonateBase = void 0;
27
27
  const json_1 = require("./core/encoders/json");
28
28
  const logger_1 = require("./core/loggers/logger");
29
- const promises_1 = require("./core/promises/promises");
29
+ const options_1 = require("./core/options");
30
+ const promises = __importStar(require("./core/promises/promises"));
30
31
  const retry_1 = require("./core/retries/retry");
32
+ const schedules = __importStar(require("./core/schedules/schedules"));
31
33
  const local_1 = require("./core/stores/local");
32
34
  const remote_1 = require("./core/stores/remote");
33
35
  const utils = __importStar(require("./core/utils"));
@@ -36,7 +38,10 @@ const utils = __importStar(require("./core/utils"));
36
38
  /////////////////////////////////////////////////////////////////////
37
39
  class ResonateBase {
38
40
  functions = {};
41
+ promises;
42
+ schedules;
39
43
  pid;
44
+ poll;
40
45
  timeout;
41
46
  tags;
42
47
  encoder;
@@ -44,11 +49,13 @@ class ResonateBase {
44
49
  retry;
45
50
  store;
46
51
  interval;
47
- constructor({ encoder = new json_1.JSONEncoder(), logger = new logger_1.Logger(), pid = utils.randomId(), retry = retry_1.Retry.exponential(), store = undefined, tags = {}, timeout = 10000, // 10s
52
+ constructor({ encoder = new json_1.JSONEncoder(), logger = new logger_1.Logger(), pid = utils.randomId(), poll = 5000, // 5s
53
+ retry = retry_1.Retry.exponential(), store = undefined, tags = {}, timeout = 10000, // 10s
48
54
  url = undefined, } = {}) {
49
55
  this.encoder = encoder;
50
56
  this.logger = logger;
51
57
  this.pid = pid;
58
+ this.poll = poll;
52
59
  this.retry = retry;
53
60
  this.tags = tags;
54
61
  this.timeout = timeout;
@@ -61,44 +68,125 @@ class ResonateBase {
61
68
  else {
62
69
  this.store = new local_1.LocalStore(this.logger);
63
70
  }
71
+ // promises
72
+ this.promises = {
73
+ create: (id, timeout, opts = {}) => promises.DurablePromise.create(this.store.promises, this.encoder, id, timeout, opts),
74
+ resolve: (id, value, opts = {}) => promises.DurablePromise.resolve(this.store.promises, this.encoder, id, value, opts),
75
+ reject: (id, error, opts = {}) => promises.DurablePromise.reject(this.store.promises, this.encoder, id, error, opts),
76
+ cancel: (id, error, opts = {}) => promises.DurablePromise.cancel(this.store.promises, this.encoder, id, error, opts),
77
+ get: (id) => promises.DurablePromise.get(this.store.promises, this.encoder, id),
78
+ search: (id, state, tags, limit) => promises.DurablePromise.search(this.store.promises, this.encoder, id, state, tags, limit),
79
+ };
80
+ // schedules
81
+ this.schedules = {
82
+ create: (id, cron, promiseId, promiseTimeout, opts = {}) => schedules.Schedule.create(this.store.schedules, this.encoder, id, cron, promiseId, promiseTimeout, opts),
83
+ get: (id) => schedules.Schedule.get(this.store.schedules, this.encoder, id),
84
+ search: (id, tags, limit) => schedules.Schedule.search(this.store.schedules, this.encoder, id, tags, limit),
85
+ };
64
86
  }
65
- register(name, funcOrVersion, funcOrOpts) {
66
- const version = typeof funcOrVersion === "number" ? funcOrVersion : 1;
67
- const func = typeof funcOrVersion === "function" ? funcOrVersion : typeof funcOrOpts === "function" ? funcOrOpts : null;
68
- const opts = typeof funcOrOpts === "object" ? this.options(funcOrOpts) : this.options({});
69
- if (!func) {
70
- throw new Error("Must provide value for func");
71
- }
72
- if (version <= 0) {
87
+ register(name, func, opts = {}) {
88
+ // set default version
89
+ opts.version = opts.version ?? 1;
90
+ // set default options
91
+ const options = this.defaults(opts);
92
+ if (options.version <= 0) {
73
93
  throw new Error("Version must be greater than 0");
74
94
  }
75
95
  if (!this.functions[name]) {
76
96
  this.functions[name] = {};
77
97
  }
78
- if (this.functions[name][version]) {
79
- throw new Error(`Function ${name} version ${version} already registered`);
98
+ if (this.functions[name][options.version]) {
99
+ throw new Error(`Function ${name} version ${options.version} already registered`);
80
100
  }
81
101
  // register as latest (0) if version is greatest so far
82
- if (version > Math.max(...Object.values(this.functions[name]).map((f) => f.version))) {
83
- this.functions[name][0] = { version, func, opts };
102
+ if (options.version > Math.max(...Object.values(this.functions[name]).map((f) => f.opts.version))) {
103
+ this.functions[name][0] = { func, opts: options };
84
104
  }
85
105
  // register specific version
86
- this.functions[name][version] = { version, func, opts };
87
- return (id, ...args) => this.run(name, version, id, ...args);
106
+ this.functions[name][options.version] = { func, opts: options };
107
+ return (id, ...args) => this.run(name, id, ...args, options);
88
108
  }
89
109
  registerModule(module, opts = {}) {
90
110
  for (const key in module) {
91
111
  this.register(key, module[key], opts);
92
112
  }
93
113
  }
94
- run(name, idOrVersion, ...args) {
95
- const id = typeof idOrVersion === "string" ? idOrVersion : args.shift();
96
- const v = typeof idOrVersion === "number" ? idOrVersion : 0;
97
- if (!this.functions[name] || !this.functions[name][v]) {
98
- throw new Error(`Function ${name} version ${v} not registered`);
99
- }
100
- const { version, func, opts } = this.functions[name][v];
101
- return this.execute(name, version, id, func, args, opts);
114
+ /**
115
+ * Run a Resonate function. Functions must first be registered with {@link register}.
116
+ *
117
+ * @template T The return type of the function.
118
+ * @param id A unique id for the function invocation.
119
+ * @param name The function name.
120
+ * @param args The function arguments.
121
+ * @returns A promise that resolve to the function return value.
122
+ */
123
+ run(name, id, ...argsWithOpts) {
124
+ const { args, opts: { version }, part: { durable, idempotencyKey, tags, timeout }, } = this.split(argsWithOpts);
125
+ if (!this.functions[name] || !this.functions[name][version]) {
126
+ throw new Error(`Function ${name} version ${version} not registered`);
127
+ }
128
+ // the options registered with the function are the defaults
129
+ const { func, opts: defaults } = this.functions[name][version];
130
+ // only the following options can be overridden, this information is persisted
131
+ // in the durable promise and therefore not required on the recovery path
132
+ const override = {};
133
+ if (durable !== undefined) {
134
+ override.durable = durable;
135
+ }
136
+ if (idempotencyKey !== undefined) {
137
+ override.idempotencyKey = idempotencyKey;
138
+ }
139
+ if (tags !== undefined) {
140
+ override.tags = { ...defaults.tags, ...tags, "resonate:invocation": "true" };
141
+ }
142
+ else {
143
+ override.tags = { ...defaults.tags, "resonate:invocation": "true" };
144
+ }
145
+ if (timeout !== undefined) {
146
+ override.timeout = timeout;
147
+ }
148
+ // merge defaults with override to get opts
149
+ const opts = {
150
+ ...defaults,
151
+ ...override,
152
+ };
153
+ // lock on top level is true by default
154
+ opts.lock = opts.lock ?? true;
155
+ return this.execute(name, id, func, args, opts, defaults);
156
+ }
157
+ schedule(name, cron, func, ...argsWithOpts) {
158
+ const { args, opts } = this.split(argsWithOpts);
159
+ if (typeof func === "function") {
160
+ // if function is provided, the default version is 1
161
+ // as opposed to 0 (alias for latest version)
162
+ opts.version = opts.version || 1;
163
+ this.register(name, func, opts);
164
+ }
165
+ const funcName = typeof func === "string" ? func : name;
166
+ if (!this.functions[funcName] || !this.functions[funcName][opts.version]) {
167
+ throw new Error(`Function ${funcName} version ${opts.version} not registered`);
168
+ }
169
+ const { opts: { version, timeout, tags: promiseTags }, } = this.functions[funcName][opts.version];
170
+ const idempotencyKey = typeof opts.idempotencyKey === "function" ? opts.idempotencyKey(funcName) : opts.idempotencyKey;
171
+ const promiseParam = {
172
+ func: funcName,
173
+ version,
174
+ args,
175
+ };
176
+ return this.schedules.create(name, cron, "{{.id}}.{{.timestamp}}", timeout, {
177
+ idempotencyKey,
178
+ promiseParam,
179
+ promiseTags,
180
+ });
181
+ }
182
+ /**
183
+ * Construct options.
184
+ *
185
+ * @param opts A partial {@link Options} object.
186
+ * @returns PartialOptions.
187
+ */
188
+ options(opts = {}) {
189
+ return { ...opts, __resonate: true };
102
190
  }
103
191
  /**
104
192
  * Start the resonate service.
@@ -115,10 +203,27 @@ class ResonateBase {
115
203
  stop() {
116
204
  clearInterval(this.interval);
117
205
  }
206
+ defaults({ durable = true, eid = utils.randomId, encoder = this.encoder, idempotencyKey = utils.hash, lock = undefined, poll = this.poll, retry = this.retry, tags = {}, timeout = this.timeout, version = 0, } = {}) {
207
+ // merge tags
208
+ tags = { ...this.tags, ...tags };
209
+ return {
210
+ __resonate: true,
211
+ eid,
212
+ durable,
213
+ encoder,
214
+ idempotencyKey,
215
+ lock,
216
+ poll,
217
+ retry,
218
+ tags,
219
+ timeout,
220
+ version,
221
+ };
222
+ }
118
223
  async _start() {
119
- for await (const promises of this.promises.search("*", "pending", { "resonate:invocation": "true" })) {
120
- for (const promise of promises) {
121
- try {
224
+ try {
225
+ for await (const promises of this.promises.search("*", "pending", { "resonate:invocation": "true" })) {
226
+ for (const promise of promises) {
122
227
  const param = promise.param();
123
228
  if (param &&
124
229
  typeof param === "object" &&
@@ -128,44 +233,23 @@ class ResonateBase {
128
233
  typeof param.version === "number" &&
129
234
  "args" in param &&
130
235
  Array.isArray(param.args)) {
131
- this.run(param.func, param.version, promise.id, param.args);
236
+ const { func, opts } = this.functions[param.func][param.version];
237
+ this.execute(param.func, promise.id, func, param.args, opts, opts, promise);
132
238
  }
133
239
  }
134
- catch (e) {
135
- this.logger.warn(e);
136
- }
137
240
  }
138
241
  }
242
+ catch (e) {
243
+ // squash all errors and log,
244
+ // transient errors will be ironed out in the next interval
245
+ this.logger.error(e);
246
+ }
139
247
  }
140
- get promises() {
141
- return {
142
- create: (id, timeout, opts = {}) => promises_1.DurablePromise.create(this.store.promises, this.encoder, id, timeout, opts),
143
- resolve: (id, value, opts = {}) => promises_1.DurablePromise.resolve(this.store.promises, this.encoder, id, value, opts),
144
- reject: (id, error, opts = {}) => promises_1.DurablePromise.reject(this.store.promises, this.encoder, id, error, opts),
145
- cancel: (id, error, opts = {}) => promises_1.DurablePromise.cancel(this.store.promises, this.encoder, id, error, opts),
146
- get: (id) => promises_1.DurablePromise.get(this.store.promises, this.encoder, id),
147
- search: (id, state, tags, limit) => promises_1.DurablePromise.search(this.store.promises, this.encoder, id, state, tags, limit),
148
- };
149
- }
150
- /**
151
- * Construct options.
152
- *
153
- * @param opts A partial {@link Options} object.
154
- * @returns Options with the __resonate flag set.
155
- */
156
- options({ encoder = this.encoder, poll = 5000, // every 5s
157
- retry = this.retry, store = this.store, tags = {}, timeout = this.timeout, }) {
158
- // merge tags
159
- tags = { ...this.tags, ...tags };
160
- return {
161
- __resonate: true,
162
- encoder,
163
- poll,
164
- retry,
165
- store,
166
- tags,
167
- timeout,
168
- };
248
+ split(args) {
249
+ const part = args[args.length - 1];
250
+ return (0, options_1.isOptions)(part)
251
+ ? { args: args.slice(0, -1), opts: this.defaults(part), part }
252
+ : { args, opts: this.defaults(), part: {} };
169
253
  }
170
254
  }
171
255
  exports.ResonateBase = ResonateBase;
@@ -1 +1 @@
1
- {"version":3,"file":"resonate.js","sourceRoot":"","sources":["../lib/resonate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resonate.js","sourceRoot":"","sources":["../lib/resonate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resonatehq/sdk",
3
- "version": "0.3.7",
3
+ "version": "0.5.0",
4
4
  "description": "TypeScript SDK for Resonate",
5
5
  "author": "Resonate Developers",
6
6
  "license": "Apache-2.0",