@databricks/sdk-core 0.1.0-dev.3 → 0.1.0-dev.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,10 @@
1
1
  import type { Options } from './options';
2
- /** Call represents a call to a Databricks API. */
3
- export type Call = (signal?: AbortSignal) => Promise<void>;
4
2
  /**
5
3
  * Sleeps for the given duration. It is mostly equivalent to setTimeout, but
6
4
  * can be interrupted by the AbortSignal if the signal aborts before the
7
5
  * duration elapses.
8
6
  */
9
7
  export declare function sleep(ms: number, signal?: AbortSignal): Promise<void>;
10
- /** Makes a call to a Databricks API using the given options. */
11
- export declare function execute(signal: AbortSignal | undefined, call: Call, options?: Options): Promise<void>;
8
+ /** Executes operation op with the given options. */
9
+ export declare function execute(signal: AbortSignal | undefined, op: (signal?: AbortSignal) => Promise<void>, options?: Options): Promise<void>;
12
10
  //# sourceMappingURL=execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/ops/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAQvC;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBrE;AAKD,oDAAoD;AACpD,wBAAsB,OAAO,CAC3B,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,EAC3C,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAGf"}
@@ -28,16 +28,16 @@ export function sleep(ms, signal) {
28
28
  signal.addEventListener('abort', onAbort, { once: true });
29
29
  });
30
30
  }
31
- /** Makes a call to a Databricks API using the given options. */
32
- export async function execute(signal, call, options) {
31
+ /** Executes operation op with the given options. */
32
+ export async function execute(signal, op, options) {
33
33
  const opts = { ...options };
34
- return executeImpl(signal, call, opts, sleep);
34
+ return executeImpl(signal, op, opts, sleep);
35
35
  }
36
36
  /**
37
37
  * The actual implementation of execute. Its purpose is to ease testing by
38
38
  * providing a convenient way to mock the sleeping logic.
39
39
  */
40
- async function executeImpl(signal, apiCall, opts, sleep) {
40
+ async function executeImpl(signal, op, opts, sleep) {
41
41
  // Optionally combine the signal with a timeout signal. If the signal
42
42
  // already has a deadline, that deadline is updated to the minimum of the
43
43
  // signal's deadline and the timeout.
@@ -46,14 +46,14 @@ async function executeImpl(signal, apiCall, opts, sleep) {
46
46
  signal = signal ? AbortSignal.any([signal, timeoutSignal]) : timeoutSignal;
47
47
  }
48
48
  // Get a new retrier for this specific execution. This is instantiated
49
- // lazily if and when the first call execution returns an error.
49
+ // lazily if and when the first operation execution returns an error.
50
50
  let retrier;
51
51
  for (;;) {
52
52
  if (opts.rateLimiter) {
53
53
  await opts.rateLimiter.wait(signal);
54
54
  }
55
55
  try {
56
- await apiCall(signal);
56
+ await op(signal);
57
57
  return; // Nothing to retry.
58
58
  }
59
59
  catch (err) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/ops/execute.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  /**
2
- * Databricks API client utilities.
2
+ * Utilities to execute Databricks operations with retry, timeout, and rate
3
+ * limiting.
3
4
  *
4
5
  * @packageDocumentation
5
6
  */
6
7
  export { execute } from './execute';
7
- export type { Call } from './execute';
8
8
  export type { Limiter } from './limiter';
9
9
  export type { Options } from './options';
10
10
  export { BackoffPolicy, retryOn } from './retrier';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ops/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,YAAY,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AACvC,YAAY,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,EAAC,aAAa,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AACjD,YAAY,EAAC,oBAAoB,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC"}
@@ -1,5 +1,6 @@
1
1
  /**
2
- * Databricks API client utilities.
2
+ * Utilities to execute Databricks operations with retry, timeout, and rate
3
+ * limiting.
3
4
  *
4
5
  * @packageDocumentation
5
6
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ops/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAGlC,OAAO,EAAC,aAAa,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"limiter.d.ts","sourceRoot":"","sources":["../../src/api/limiter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C"}
1
+ {"version":3,"file":"limiter.d.ts","sourceRoot":"","sources":["../../src/ops/limiter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"limiter.js","sourceRoot":"","sources":["../../src/api/limiter.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"limiter.js","sourceRoot":"","sources":["../../src/ops/limiter.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import type { Limiter } from './limiter';
2
+ import type { Retrier } from './retrier';
3
+ /** Options that control the behavior of an operation. */
4
+ export interface Options {
5
+ /**
6
+ * Provides a new Retrier to be used to execute an operation. The function
7
+ * is called for each operation and must be safe to call concurrently. The
8
+ * retrier must be fresh within the context of an execute call (e.g. no
9
+ * need to reset a BackoffPolicy).
10
+ */
11
+ retrier?: (() => Retrier) | undefined;
12
+ /** The rate limiter used to potentially rate limit the operation. */
13
+ rateLimiter?: Limiter | undefined;
14
+ /**
15
+ * Timeout duration in milliseconds. If the signal already has a deadline,
16
+ * that deadline is updated to the minimum of the signal's deadline and the
17
+ * timeout. The timeout covers the whole operation execution; it is not a
18
+ * timeout for each intermediary call.
19
+ */
20
+ timeout?: number | undefined;
21
+ }
22
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/ops/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAEvC,yDAAyD;AACzD,MAAM,WAAW,OAAO;IACtB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,SAAS,CAAC;IACtC,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/api/options.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/ops/options.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"retrier.d.ts","sourceRoot":"","sources":["../../src/api/retrier.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,eAAO,MAAM,IAAI;WAER,MAAM,GAAG,MAAM;CAGvB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IACxB,qCAAqC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,qCAAqC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAGxB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,CAAC,EAAE,oBAAoB;IAgB1C,0EAA0E;IAC1E,KAAK,IAAI,MAAM;CAShB;AAED,wCAAwC;AACxC,MAAM,WAAW,OAAO;IACtB;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;CAC7C;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,oBAAoB,EAC7B,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,OAAO,GACnC,OAAO,CAUT"}
1
+ {"version":3,"file":"retrier.d.ts","sourceRoot":"","sources":["../../src/ops/retrier.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,eAAO,MAAM,IAAI;WAER,MAAM,GAAG,MAAM;CAGvB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IACxB,qCAAqC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,qCAAqC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAGxB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,CAAC,EAAE,oBAAoB;IAgB1C,0EAA0E;IAC1E,KAAK,IAAI,MAAM;CAShB;AAED,wCAAwC;AACxC,MAAM,WAAW,OAAO;IACtB;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;CAC7C;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,oBAAoB,EAC7B,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,OAAO,GACnC,OAAO,CAUT"}
@@ -1 +1 @@
1
- {"version":3,"file":"retrier.js","sourceRoot":"","sources":["../../src/api/retrier.ts"],"names":[],"mappings":"AAeA,kEAAkE;AAClE,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,sCAAsC;IACtC,GAAG,CAAC,CAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;CACF,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,aAAa;IACxB,qCAAqC;IAC5B,OAAO,CAAS;IAEzB,qCAAqC;IAC5B,OAAO,CAAS;IAEzB,gEAAgE;IACvD,MAAM,CAAS;IAExB,uCAAuC;IAC/B,OAAO,CAAS;IAExB,YAAY,OAA8B;QACxC,IAAI,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,qCAAqC;QAC7E,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC,uCAAuC;QAElF,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;YACtB,0CAA0C;YAC1C,OAAO,GAAG,OAAO,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM;YACT,OAAO,EAAE,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,0EAA0E;IAC1E,KAAK;QACH,kDAAkD;QAClD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAErC,gCAAgC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAElE,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AAYD;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CACrB,OAA6B,EAC7B,WAAoC;IAEpC,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO;QACL,WAAW,CAAC,GAAU;YACpB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"retrier.js","sourceRoot":"","sources":["../../src/ops/retrier.ts"],"names":[],"mappings":"AAeA,kEAAkE;AAClE,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,sCAAsC;IACtC,GAAG,CAAC,CAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;CACF,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,aAAa;IACxB,qCAAqC;IAC5B,OAAO,CAAS;IAEzB,qCAAqC;IAC5B,OAAO,CAAS;IAEzB,gEAAgE;IACvD,MAAM,CAAS;IAExB,uCAAuC;IAC/B,OAAO,CAAS;IAExB,YAAY,OAA8B;QACxC,IAAI,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,qCAAqC;QAC7E,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC,uCAAuC;QAElF,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;YACtB,0CAA0C;YAC1C,OAAO,GAAG,OAAO,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM;YACT,OAAO,EAAE,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,0EAA0E;IAC1E,KAAK;QACH,kDAAkD;QAClD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAErC,gCAAgC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAElE,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AAYD;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CACrB,OAA6B,EAC7B,WAAoC;IAEpC,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO;QACL,WAAW,CAAC,GAAU;YACpB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@databricks/sdk-core",
3
- "version": "0.1.0-dev.3",
3
+ "version": "0.1.0-dev.4",
4
4
  "description": "Databricks core library for JavaScript/TypeScript",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -44,9 +44,9 @@
44
44
  "types": "./dist/logger/index.d.ts",
45
45
  "import": "./dist/logger/index.js"
46
46
  },
47
- "./api": {
48
- "types": "./dist/api/index.d.ts",
49
- "import": "./dist/api/index.js"
47
+ "./ops": {
48
+ "types": "./dist/ops/index.d.ts",
49
+ "import": "./dist/ops/index.js"
50
50
  },
51
51
  "./apierror": {
52
52
  "types": "./dist/apierror/index.d.ts",
@@ -1,9 +1,6 @@
1
1
  import type {Options} from './options';
2
2
  import type {Retrier} from './retrier';
3
3
 
4
- /** Call represents a call to a Databricks API. */
5
- export type Call = (signal?: AbortSignal) => Promise<void>;
6
-
7
4
  // Coerces an unknown value to an Error instance.
8
5
  function toError(value: unknown): Error {
9
6
  return value instanceof Error ? value : new Error(String(value));
@@ -39,14 +36,14 @@ export function sleep(ms: number, signal?: AbortSignal): Promise<void> {
39
36
  // Sleeper is a convenience type for readability.
40
37
  type Sleeper = (ms: number, signal?: AbortSignal) => Promise<void>;
41
38
 
42
- /** Makes a call to a Databricks API using the given options. */
39
+ /** Executes operation op with the given options. */
43
40
  export async function execute(
44
41
  signal: AbortSignal | undefined,
45
- call: Call,
42
+ op: (signal?: AbortSignal) => Promise<void>,
46
43
  options?: Options
47
44
  ): Promise<void> {
48
45
  const opts: Options = {...options};
49
- return executeImpl(signal, call, opts, sleep);
46
+ return executeImpl(signal, op, opts, sleep);
50
47
  }
51
48
 
52
49
  /**
@@ -55,7 +52,7 @@ export async function execute(
55
52
  */
56
53
  async function executeImpl(
57
54
  signal: AbortSignal | undefined,
58
- apiCall: Call,
55
+ op: (signal?: AbortSignal) => Promise<void>,
59
56
  opts: Options,
60
57
  sleep: Sleeper
61
58
  ): Promise<void> {
@@ -68,7 +65,7 @@ async function executeImpl(
68
65
  }
69
66
 
70
67
  // Get a new retrier for this specific execution. This is instantiated
71
- // lazily if and when the first call execution returns an error.
68
+ // lazily if and when the first operation execution returns an error.
72
69
  let retrier: Retrier | undefined;
73
70
 
74
71
  for (;;) {
@@ -77,7 +74,7 @@ async function executeImpl(
77
74
  }
78
75
 
79
76
  try {
80
- await apiCall(signal);
77
+ await op(signal);
81
78
  return; // Nothing to retry.
82
79
  } catch (err: unknown) {
83
80
  const error = toError(err);
@@ -1,11 +1,11 @@
1
1
  /**
2
- * Databricks API client utilities.
2
+ * Utilities to execute Databricks operations with retry, timeout, and rate
3
+ * limiting.
3
4
  *
4
5
  * @packageDocumentation
5
6
  */
6
7
 
7
8
  export {execute} from './execute';
8
- export type {Call} from './execute';
9
9
  export type {Limiter} from './limiter';
10
10
  export type {Options} from './options';
11
11
  export {BackoffPolicy, retryOn} from './retrier';
@@ -0,0 +1,22 @@
1
+ import type {Limiter} from './limiter';
2
+ import type {Retrier} from './retrier';
3
+
4
+ /** Options that control the behavior of an operation. */
5
+ export interface Options {
6
+ /**
7
+ * Provides a new Retrier to be used to execute an operation. The function
8
+ * is called for each operation and must be safe to call concurrently. The
9
+ * retrier must be fresh within the context of an execute call (e.g. no
10
+ * need to reset a BackoffPolicy).
11
+ */
12
+ retrier?: (() => Retrier) | undefined;
13
+ /** The rate limiter used to potentially rate limit the operation. */
14
+ rateLimiter?: Limiter | undefined;
15
+ /**
16
+ * Timeout duration in milliseconds. If the signal already has a deadline,
17
+ * that deadline is updated to the minimum of the signal's deadline and the
18
+ * timeout. The timeout covers the whole operation execution; it is not a
19
+ * timeout for each intermediary call.
20
+ */
21
+ timeout?: number | undefined;
22
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/api/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAGvC,kDAAkD;AAClD,MAAM,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAO3D;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBrE;AAKD,gEAAgE;AAChE,wBAAsB,OAAO,CAC3B,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAGf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/api/execute.ts"],"names":[],"mappings":"AAMA,iDAAiD;AACjD,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,EAAU,EAAE,MAAoB;IACpD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC;AAKD,gEAAgE;AAChE,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAA+B,EAC/B,IAAU,EACV,OAAiB;IAEjB,MAAM,IAAI,GAAY,EAAC,GAAG,OAAO,EAAC,CAAC;IACnC,OAAO,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,WAAW,CACxB,MAA+B,EAC/B,OAAa,EACb,IAAa,EACb,KAAc;IAEd,qEAAqE;IACrE,yEAAyE;IACzE,qCAAqC;IACrC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IAC7E,CAAC;IAED,sEAAsE;IACtE,gEAAgE;IAChE,IAAI,OAA4B,CAAC;IAEjC,SAAS,CAAC;QACR,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;YACtB,OAAO,CAAC,oBAAoB;QAC9B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAE3B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,kCAAkC;gBAC9D,CAAC;gBACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,MAAM,KAAK,CAAC,CAAC,0BAA0B;gBACzC,CAAC;YACH,CAAC;YAED,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,KAAK,CAAC,CAAC,iBAAiB;YAChC,CAAC;YAED,MAAM,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,YAAY,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AACpC,YAAY,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AACvC,YAAY,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,EAAC,aAAa,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AACjD,YAAY,EAAC,oBAAoB,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAIlC,OAAO,EAAC,aAAa,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC"}
@@ -1,22 +0,0 @@
1
- import type { Limiter } from './limiter';
2
- import type { Retrier } from './retrier';
3
- /** Options to control the behavior of an API call. */
4
- export interface Options {
5
- /**
6
- * Provides a new Retrier to be used to execute a Call. The function is
7
- * called for each Call and must be safe to call concurrently. The retrier
8
- * must be fresh within the context of an execute call (e.g. no need to
9
- * reset a BackoffPolicy).
10
- */
11
- retrier?: (() => Retrier) | undefined;
12
- /** The rate limiter used to potentially rate limit the API call. */
13
- rateLimiter?: Limiter | undefined;
14
- /**
15
- * Timeout duration in milliseconds. If the signal already has a deadline,
16
- * that deadline is updated to the minimum of the signal's deadline and the
17
- * timeout. The timeout covers the whole Call execution; it is not a timeout
18
- * for each intermediary API call.
19
- */
20
- timeout?: number | undefined;
21
- }
22
- //# sourceMappingURL=options.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/api/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAEvC,sDAAsD;AACtD,MAAM,WAAW,OAAO;IACtB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,SAAS,CAAC;IACtC,oEAAoE;IACpE,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B"}
@@ -1,22 +0,0 @@
1
- import type {Limiter} from './limiter';
2
- import type {Retrier} from './retrier';
3
-
4
- /** Options to control the behavior of an API call. */
5
- export interface Options {
6
- /**
7
- * Provides a new Retrier to be used to execute a Call. The function is
8
- * called for each Call and must be safe to call concurrently. The retrier
9
- * must be fresh within the context of an execute call (e.g. no need to
10
- * reset a BackoffPolicy).
11
- */
12
- retrier?: (() => Retrier) | undefined;
13
- /** The rate limiter used to potentially rate limit the API call. */
14
- rateLimiter?: Limiter | undefined;
15
- /**
16
- * Timeout duration in milliseconds. If the signal already has a deadline,
17
- * that deadline is updated to the minimum of the signal's deadline and the
18
- * timeout. The timeout covers the whole Call execution; it is not a timeout
19
- * for each intermediary API call.
20
- */
21
- timeout?: number | undefined;
22
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes