@violetbuse/rocktick 0.4.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/CHANGELOG.md +46 -0
- package/LICENSE +201 -0
- package/README.md +394 -0
- package/api-promise.d.mts +2 -0
- package/api-promise.d.mts.map +1 -0
- package/api-promise.d.ts +2 -0
- package/api-promise.d.ts.map +1 -0
- package/api-promise.js +6 -0
- package/api-promise.js.map +1 -0
- package/api-promise.mjs +2 -0
- package/api-promise.mjs.map +1 -0
- package/client.d.mts +212 -0
- package/client.d.mts.map +1 -0
- package/client.d.ts +212 -0
- package/client.d.ts.map +1 -0
- package/client.js +491 -0
- package/client.js.map +1 -0
- package/client.mjs +487 -0
- package/client.mjs.map +1 -0
- package/core/api-promise.d.mts +46 -0
- package/core/api-promise.d.mts.map +1 -0
- package/core/api-promise.d.ts +46 -0
- package/core/api-promise.d.ts.map +1 -0
- package/core/api-promise.js +74 -0
- package/core/api-promise.js.map +1 -0
- package/core/api-promise.mjs +70 -0
- package/core/api-promise.mjs.map +1 -0
- package/core/error.d.mts +46 -0
- package/core/error.d.mts.map +1 -0
- package/core/error.d.ts +46 -0
- package/core/error.d.ts.map +1 -0
- package/core/error.js +113 -0
- package/core/error.js.map +1 -0
- package/core/error.mjs +97 -0
- package/core/error.mjs.map +1 -0
- package/core/pagination.d.mts +56 -0
- package/core/pagination.d.mts.map +1 -0
- package/core/pagination.d.ts +56 -0
- package/core/pagination.d.ts.map +1 -0
- package/core/pagination.js +102 -0
- package/core/pagination.js.map +1 -0
- package/core/pagination.mjs +96 -0
- package/core/pagination.mjs.map +1 -0
- package/core/resource.d.mts +6 -0
- package/core/resource.d.mts.map +1 -0
- package/core/resource.d.ts +6 -0
- package/core/resource.d.ts.map +1 -0
- package/core/resource.js +11 -0
- package/core/resource.js.map +1 -0
- package/core/resource.mjs +7 -0
- package/core/resource.mjs.map +1 -0
- package/core/uploads.d.mts +3 -0
- package/core/uploads.d.mts.map +1 -0
- package/core/uploads.d.ts +3 -0
- package/core/uploads.d.ts.map +1 -0
- package/core/uploads.js +6 -0
- package/core/uploads.js.map +1 -0
- package/core/uploads.mjs +2 -0
- package/core/uploads.mjs.map +1 -0
- package/error.d.mts +2 -0
- package/error.d.mts.map +1 -0
- package/error.d.ts +2 -0
- package/error.d.ts.map +1 -0
- package/error.js +6 -0
- package/error.js.map +1 -0
- package/error.mjs +2 -0
- package/error.mjs.map +1 -0
- package/index.d.mts +7 -0
- package/index.d.mts.map +1 -0
- package/index.d.ts +7 -0
- package/index.d.ts.map +1 -0
- package/index.js +32 -0
- package/index.js.map +1 -0
- package/index.mjs +8 -0
- package/index.mjs.map +1 -0
- package/internal/builtin-types.d.mts +73 -0
- package/internal/builtin-types.d.mts.map +1 -0
- package/internal/builtin-types.d.ts +73 -0
- package/internal/builtin-types.d.ts.map +1 -0
- package/internal/builtin-types.js +4 -0
- package/internal/builtin-types.js.map +1 -0
- package/internal/builtin-types.mjs +3 -0
- package/internal/builtin-types.mjs.map +1 -0
- package/internal/detect-platform.d.mts +15 -0
- package/internal/detect-platform.d.mts.map +1 -0
- package/internal/detect-platform.d.ts +15 -0
- package/internal/detect-platform.d.ts.map +1 -0
- package/internal/detect-platform.js +162 -0
- package/internal/detect-platform.js.map +1 -0
- package/internal/detect-platform.mjs +157 -0
- package/internal/detect-platform.mjs.map +1 -0
- package/internal/errors.d.mts +3 -0
- package/internal/errors.d.mts.map +1 -0
- package/internal/errors.d.ts +3 -0
- package/internal/errors.d.ts.map +1 -0
- package/internal/errors.js +41 -0
- package/internal/errors.js.map +1 -0
- package/internal/errors.mjs +36 -0
- package/internal/errors.mjs.map +1 -0
- package/internal/headers.d.mts +20 -0
- package/internal/headers.d.mts.map +1 -0
- package/internal/headers.d.ts +20 -0
- package/internal/headers.d.ts.map +1 -0
- package/internal/headers.js +79 -0
- package/internal/headers.js.map +1 -0
- package/internal/headers.mjs +74 -0
- package/internal/headers.mjs.map +1 -0
- package/internal/parse.d.mts +12 -0
- package/internal/parse.d.mts.map +1 -0
- package/internal/parse.d.ts +12 -0
- package/internal/parse.d.ts.map +1 -0
- package/internal/parse.js +35 -0
- package/internal/parse.js.map +1 -0
- package/internal/parse.mjs +32 -0
- package/internal/parse.mjs.map +1 -0
- package/internal/request-options.d.mts +75 -0
- package/internal/request-options.d.mts.map +1 -0
- package/internal/request-options.d.ts +75 -0
- package/internal/request-options.d.ts.map +1 -0
- package/internal/request-options.js +14 -0
- package/internal/request-options.js.map +1 -0
- package/internal/request-options.mjs +10 -0
- package/internal/request-options.mjs.map +1 -0
- package/internal/shim-types.d.mts +17 -0
- package/internal/shim-types.d.mts.map +1 -0
- package/internal/shim-types.d.ts +17 -0
- package/internal/shim-types.d.ts.map +1 -0
- package/internal/shim-types.js +4 -0
- package/internal/shim-types.js.map +1 -0
- package/internal/shim-types.mjs +3 -0
- package/internal/shim-types.mjs.map +1 -0
- package/internal/shims.d.mts +20 -0
- package/internal/shims.d.mts.map +1 -0
- package/internal/shims.d.ts +20 -0
- package/internal/shims.d.ts.map +1 -0
- package/internal/shims.js +92 -0
- package/internal/shims.js.map +1 -0
- package/internal/shims.mjs +85 -0
- package/internal/shims.mjs.map +1 -0
- package/internal/to-file.d.mts +45 -0
- package/internal/to-file.d.mts.map +1 -0
- package/internal/to-file.d.ts +45 -0
- package/internal/to-file.d.ts.map +1 -0
- package/internal/to-file.js +91 -0
- package/internal/to-file.js.map +1 -0
- package/internal/to-file.mjs +88 -0
- package/internal/to-file.mjs.map +1 -0
- package/internal/tslib.js +81 -0
- package/internal/tslib.mjs +17 -0
- package/internal/types.d.mts +69 -0
- package/internal/types.d.mts.map +1 -0
- package/internal/types.d.ts +69 -0
- package/internal/types.d.ts.map +1 -0
- package/internal/types.js +4 -0
- package/internal/types.js.map +1 -0
- package/internal/types.mjs +3 -0
- package/internal/types.mjs.map +1 -0
- package/internal/uploads.d.mts +42 -0
- package/internal/uploads.d.mts.map +1 -0
- package/internal/uploads.d.ts +42 -0
- package/internal/uploads.d.ts.map +1 -0
- package/internal/uploads.js +141 -0
- package/internal/uploads.js.map +1 -0
- package/internal/uploads.mjs +131 -0
- package/internal/uploads.mjs.map +1 -0
- package/internal/utils/base64.d.mts +3 -0
- package/internal/utils/base64.d.mts.map +1 -0
- package/internal/utils/base64.d.ts +3 -0
- package/internal/utils/base64.d.ts.map +1 -0
- package/internal/utils/base64.js +38 -0
- package/internal/utils/base64.js.map +1 -0
- package/internal/utils/base64.mjs +33 -0
- package/internal/utils/base64.mjs.map +1 -0
- package/internal/utils/bytes.d.mts +4 -0
- package/internal/utils/bytes.d.mts.map +1 -0
- package/internal/utils/bytes.d.ts +4 -0
- package/internal/utils/bytes.d.ts.map +1 -0
- package/internal/utils/bytes.js +31 -0
- package/internal/utils/bytes.js.map +1 -0
- package/internal/utils/bytes.mjs +26 -0
- package/internal/utils/bytes.mjs.map +1 -0
- package/internal/utils/env.d.mts +9 -0
- package/internal/utils/env.d.mts.map +1 -0
- package/internal/utils/env.d.ts +9 -0
- package/internal/utils/env.d.ts.map +1 -0
- package/internal/utils/env.js +22 -0
- package/internal/utils/env.js.map +1 -0
- package/internal/utils/env.mjs +18 -0
- package/internal/utils/env.mjs.map +1 -0
- package/internal/utils/log.d.mts +37 -0
- package/internal/utils/log.d.mts.map +1 -0
- package/internal/utils/log.d.ts +37 -0
- package/internal/utils/log.d.ts.map +1 -0
- package/internal/utils/log.js +85 -0
- package/internal/utils/log.js.map +1 -0
- package/internal/utils/log.mjs +79 -0
- package/internal/utils/log.mjs.map +1 -0
- package/internal/utils/path.d.mts +15 -0
- package/internal/utils/path.d.mts.map +1 -0
- package/internal/utils/path.d.ts +15 -0
- package/internal/utils/path.d.ts.map +1 -0
- package/internal/utils/path.js +79 -0
- package/internal/utils/path.js.map +1 -0
- package/internal/utils/path.mjs +74 -0
- package/internal/utils/path.mjs.map +1 -0
- package/internal/utils/sleep.d.mts +2 -0
- package/internal/utils/sleep.d.mts.map +1 -0
- package/internal/utils/sleep.d.ts +2 -0
- package/internal/utils/sleep.d.ts.map +1 -0
- package/internal/utils/sleep.js +7 -0
- package/internal/utils/sleep.js.map +1 -0
- package/internal/utils/sleep.mjs +3 -0
- package/internal/utils/sleep.mjs.map +1 -0
- package/internal/utils/uuid.d.mts +5 -0
- package/internal/utils/uuid.d.mts.map +1 -0
- package/internal/utils/uuid.d.ts +5 -0
- package/internal/utils/uuid.d.ts.map +1 -0
- package/internal/utils/uuid.js +19 -0
- package/internal/utils/uuid.js.map +1 -0
- package/internal/utils/uuid.mjs +15 -0
- package/internal/utils/uuid.mjs.map +1 -0
- package/internal/utils/values.d.mts +18 -0
- package/internal/utils/values.d.mts.map +1 -0
- package/internal/utils/values.d.ts +18 -0
- package/internal/utils/values.d.ts.map +1 -0
- package/internal/utils/values.js +112 -0
- package/internal/utils/values.js.map +1 -0
- package/internal/utils/values.mjs +94 -0
- package/internal/utils/values.mjs.map +1 -0
- package/internal/utils.d.mts +7 -0
- package/internal/utils.d.mts.map +1 -0
- package/internal/utils.d.ts +7 -0
- package/internal/utils.d.ts.map +1 -0
- package/internal/utils.js +11 -0
- package/internal/utils.js.map +1 -0
- package/internal/utils.mjs +8 -0
- package/internal/utils.mjs.map +1 -0
- package/package.json +147 -0
- package/pagination.d.mts +2 -0
- package/pagination.d.mts.map +1 -0
- package/pagination.d.ts +2 -0
- package/pagination.d.ts.map +1 -0
- package/pagination.js +6 -0
- package/pagination.js.map +1 -0
- package/pagination.mjs +2 -0
- package/pagination.mjs.map +1 -0
- package/resource.d.mts +2 -0
- package/resource.d.mts.map +1 -0
- package/resource.d.ts +2 -0
- package/resource.d.ts.map +1 -0
- package/resource.js +6 -0
- package/resource.js.map +1 -0
- package/resource.mjs +2 -0
- package/resource.mjs.map +1 -0
- package/resources/cron.d.mts +96 -0
- package/resources/cron.d.mts.map +1 -0
- package/resources/cron.d.ts +96 -0
- package/resources/cron.d.ts.map +1 -0
- package/resources/cron.js +23 -0
- package/resources/cron.js.map +1 -0
- package/resources/cron.mjs +19 -0
- package/resources/cron.mjs.map +1 -0
- package/resources/executions.d.mts +88 -0
- package/resources/executions.d.mts.map +1 -0
- package/resources/executions.d.ts +88 -0
- package/resources/executions.d.ts.map +1 -0
- package/resources/executions.js +20 -0
- package/resources/executions.js.map +1 -0
- package/resources/executions.mjs +16 -0
- package/resources/executions.mjs.map +1 -0
- package/resources/index.d.mts +6 -0
- package/resources/index.d.mts.map +1 -0
- package/resources/index.d.ts +6 -0
- package/resources/index.d.ts.map +1 -0
- package/resources/index.js +15 -0
- package/resources/index.js.map +1 -0
- package/resources/index.mjs +7 -0
- package/resources/index.mjs.map +1 -0
- package/resources/jobs.d.mts +96 -0
- package/resources/jobs.d.mts.map +1 -0
- package/resources/jobs.d.ts +96 -0
- package/resources/jobs.d.ts.map +1 -0
- package/resources/jobs.js +23 -0
- package/resources/jobs.js.map +1 -0
- package/resources/jobs.mjs +19 -0
- package/resources/jobs.mjs.map +1 -0
- package/resources/tenants.d.mts +39 -0
- package/resources/tenants.d.mts.map +1 -0
- package/resources/tenants.d.ts +39 -0
- package/resources/tenants.d.ts.map +1 -0
- package/resources/tenants.js +19 -0
- package/resources/tenants.js.map +1 -0
- package/resources/tenants.mjs +15 -0
- package/resources/tenants.mjs.map +1 -0
- package/resources/verify.d.mts +20 -0
- package/resources/verify.d.mts.map +1 -0
- package/resources/verify.d.ts +20 -0
- package/resources/verify.d.ts.map +1 -0
- package/resources/verify.js +16 -0
- package/resources/verify.js.map +1 -0
- package/resources/verify.mjs +12 -0
- package/resources/verify.mjs.map +1 -0
- package/resources.d.mts +2 -0
- package/resources.d.mts.map +1 -0
- package/resources.d.ts +2 -0
- package/resources.d.ts.map +1 -0
- package/resources.js +5 -0
- package/resources.js.map +1 -0
- package/resources.mjs +2 -0
- package/resources.mjs.map +1 -0
- package/src/api-promise.ts +2 -0
- package/src/client.ts +843 -0
- package/src/core/README.md +3 -0
- package/src/core/api-promise.ts +92 -0
- package/src/core/error.ts +130 -0
- package/src/core/pagination.ts +162 -0
- package/src/core/resource.ts +11 -0
- package/src/core/uploads.ts +2 -0
- package/src/error.ts +2 -0
- package/src/index.ts +23 -0
- package/src/internal/README.md +3 -0
- package/src/internal/builtin-types.ts +93 -0
- package/src/internal/detect-platform.ts +196 -0
- package/src/internal/errors.ts +33 -0
- package/src/internal/headers.ts +97 -0
- package/src/internal/parse.ts +50 -0
- package/src/internal/request-options.ts +91 -0
- package/src/internal/shim-types.ts +26 -0
- package/src/internal/shims.ts +107 -0
- package/src/internal/to-file.ts +154 -0
- package/src/internal/types.ts +95 -0
- package/src/internal/uploads.ts +187 -0
- package/src/internal/utils/base64.ts +40 -0
- package/src/internal/utils/bytes.ts +32 -0
- package/src/internal/utils/env.ts +18 -0
- package/src/internal/utils/log.ts +126 -0
- package/src/internal/utils/path.ts +88 -0
- package/src/internal/utils/sleep.ts +3 -0
- package/src/internal/utils/uuid.ts +17 -0
- package/src/internal/utils/values.ts +105 -0
- package/src/internal/utils.ts +8 -0
- package/src/lib/.keep +4 -0
- package/src/pagination.ts +2 -0
- package/src/resource.ts +2 -0
- package/src/resources/cron.ts +160 -0
- package/src/resources/executions.ts +150 -0
- package/src/resources/index.ts +29 -0
- package/src/resources/jobs.ts +160 -0
- package/src/resources/tenants.ts +76 -0
- package/src/resources/verify.ts +28 -0
- package/src/resources.ts +1 -0
- package/src/tsconfig.json +11 -0
- package/src/uploads.ts +2 -0
- package/src/version.ts +1 -0
- package/uploads.d.mts +2 -0
- package/uploads.d.mts.map +1 -0
- package/uploads.d.ts +2 -0
- package/uploads.d.ts.map +1 -0
- package/uploads.js +6 -0
- package/uploads.js.map +1 -0
- package/uploads.mjs +2 -0
- package/uploads.mjs.map +1 -0
- package/version.d.mts +2 -0
- package/version.d.mts.map +1 -0
- package/version.d.ts +2 -0
- package/version.d.ts.map +1 -0
- package/version.js +5 -0
- package/version.js.map +1 -0
- package/version.mjs +2 -0
- package/version.mjs.map +1 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { RocktickError } from '../../core/error';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Percent-encode everything that isn't safe to have in a path without encoding safe chars.
|
|
5
|
+
*
|
|
6
|
+
* Taken from https://datatracker.ietf.org/doc/html/rfc3986#section-3.3:
|
|
7
|
+
* > unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
|
|
8
|
+
* > sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
|
|
9
|
+
* > pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
|
|
10
|
+
*/
|
|
11
|
+
export function encodeURIPath(str: string) {
|
|
12
|
+
return str.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g, encodeURIComponent);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const EMPTY = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.create(null));
|
|
16
|
+
|
|
17
|
+
export const createPathTagFunction = (pathEncoder = encodeURIPath) =>
|
|
18
|
+
function path(statics: readonly string[], ...params: readonly unknown[]): string {
|
|
19
|
+
// If there are no params, no processing is needed.
|
|
20
|
+
if (statics.length === 1) return statics[0]!;
|
|
21
|
+
|
|
22
|
+
let postPath = false;
|
|
23
|
+
const invalidSegments = [];
|
|
24
|
+
const path = statics.reduce((previousValue, currentValue, index) => {
|
|
25
|
+
if (/[?#]/.test(currentValue)) {
|
|
26
|
+
postPath = true;
|
|
27
|
+
}
|
|
28
|
+
const value = params[index];
|
|
29
|
+
let encoded = (postPath ? encodeURIComponent : pathEncoder)('' + value);
|
|
30
|
+
if (
|
|
31
|
+
index !== params.length &&
|
|
32
|
+
(value == null ||
|
|
33
|
+
(typeof value === 'object' &&
|
|
34
|
+
// handle values from other realms
|
|
35
|
+
value.toString ===
|
|
36
|
+
Object.getPrototypeOf(Object.getPrototypeOf((value as any).hasOwnProperty ?? EMPTY) ?? EMPTY)
|
|
37
|
+
?.toString))
|
|
38
|
+
) {
|
|
39
|
+
encoded = value + '';
|
|
40
|
+
invalidSegments.push({
|
|
41
|
+
start: previousValue.length + currentValue.length,
|
|
42
|
+
length: encoded.length,
|
|
43
|
+
error: `Value of type ${Object.prototype.toString
|
|
44
|
+
.call(value)
|
|
45
|
+
.slice(8, -1)} is not a valid path parameter`,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return previousValue + currentValue + (index === params.length ? '' : encoded);
|
|
49
|
+
}, '');
|
|
50
|
+
|
|
51
|
+
const pathOnly = path.split(/[?#]/, 1)[0]!;
|
|
52
|
+
const invalidSegmentPattern = /(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi;
|
|
53
|
+
let match;
|
|
54
|
+
|
|
55
|
+
// Find all invalid segments
|
|
56
|
+
while ((match = invalidSegmentPattern.exec(pathOnly)) !== null) {
|
|
57
|
+
invalidSegments.push({
|
|
58
|
+
start: match.index,
|
|
59
|
+
length: match[0].length,
|
|
60
|
+
error: `Value "${match[0]}" can\'t be safely passed as a path parameter`,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
invalidSegments.sort((a, b) => a.start - b.start);
|
|
65
|
+
|
|
66
|
+
if (invalidSegments.length > 0) {
|
|
67
|
+
let lastEnd = 0;
|
|
68
|
+
const underline = invalidSegments.reduce((acc, segment) => {
|
|
69
|
+
const spaces = ' '.repeat(segment.start - lastEnd);
|
|
70
|
+
const arrows = '^'.repeat(segment.length);
|
|
71
|
+
lastEnd = segment.start + segment.length;
|
|
72
|
+
return acc + spaces + arrows;
|
|
73
|
+
}, '');
|
|
74
|
+
|
|
75
|
+
throw new RocktickError(
|
|
76
|
+
`Path parameters result in path with invalid segments:\n${invalidSegments
|
|
77
|
+
.map((e) => e.error)
|
|
78
|
+
.join('\n')}\n${path}\n${underline}`,
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return path;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* URI-encodes path params and ensures no unsafe /./ or /../ path segments are introduced.
|
|
87
|
+
*/
|
|
88
|
+
export const path = /* @__PURE__ */ createPathTagFunction(encodeURIPath);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* https://stackoverflow.com/a/2117523
|
|
5
|
+
*/
|
|
6
|
+
export let uuid4 = function () {
|
|
7
|
+
const { crypto } = globalThis as any;
|
|
8
|
+
if (crypto?.randomUUID) {
|
|
9
|
+
uuid4 = crypto.randomUUID.bind(crypto);
|
|
10
|
+
return crypto.randomUUID();
|
|
11
|
+
}
|
|
12
|
+
const u8 = new Uint8Array(1);
|
|
13
|
+
const randomByte = crypto ? () => crypto.getRandomValues(u8)[0]! : () => (Math.random() * 0xff) & 0xff;
|
|
14
|
+
return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) =>
|
|
15
|
+
(+c ^ (randomByte() & (15 >> (+c / 4)))).toString(16),
|
|
16
|
+
);
|
|
17
|
+
};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { RocktickError } from '../../core/error';
|
|
4
|
+
|
|
5
|
+
// https://url.spec.whatwg.org/#url-scheme-string
|
|
6
|
+
const startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;
|
|
7
|
+
|
|
8
|
+
export const isAbsoluteURL = (url: string): boolean => {
|
|
9
|
+
return startsWithSchemeRegexp.test(url);
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export let isArray = (val: unknown): val is unknown[] => ((isArray = Array.isArray), isArray(val));
|
|
13
|
+
export let isReadonlyArray = isArray as (val: unknown) => val is readonly unknown[];
|
|
14
|
+
|
|
15
|
+
/** Returns an object if the given value isn't an object, otherwise returns as-is */
|
|
16
|
+
export function maybeObj(x: unknown): object {
|
|
17
|
+
if (typeof x !== 'object') {
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return x ?? {};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// https://stackoverflow.com/a/34491287
|
|
25
|
+
export function isEmptyObj(obj: Object | null | undefined): boolean {
|
|
26
|
+
if (!obj) return true;
|
|
27
|
+
for (const _k in obj) return false;
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// https://eslint.org/docs/latest/rules/no-prototype-builtins
|
|
32
|
+
export function hasOwn<T extends object = object>(obj: T, key: PropertyKey): key is keyof T {
|
|
33
|
+
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export function isObj(obj: unknown): obj is Record<string, unknown> {
|
|
37
|
+
return obj != null && typeof obj === 'object' && !Array.isArray(obj);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export const ensurePresent = <T>(value: T | null | undefined): T => {
|
|
41
|
+
if (value == null) {
|
|
42
|
+
throw new RocktickError(`Expected a value to be given but received ${value} instead.`);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return value;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export const validatePositiveInteger = (name: string, n: unknown): number => {
|
|
49
|
+
if (typeof n !== 'number' || !Number.isInteger(n)) {
|
|
50
|
+
throw new RocktickError(`${name} must be an integer`);
|
|
51
|
+
}
|
|
52
|
+
if (n < 0) {
|
|
53
|
+
throw new RocktickError(`${name} must be a positive integer`);
|
|
54
|
+
}
|
|
55
|
+
return n;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export const coerceInteger = (value: unknown): number => {
|
|
59
|
+
if (typeof value === 'number') return Math.round(value);
|
|
60
|
+
if (typeof value === 'string') return parseInt(value, 10);
|
|
61
|
+
|
|
62
|
+
throw new RocktickError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export const coerceFloat = (value: unknown): number => {
|
|
66
|
+
if (typeof value === 'number') return value;
|
|
67
|
+
if (typeof value === 'string') return parseFloat(value);
|
|
68
|
+
|
|
69
|
+
throw new RocktickError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export const coerceBoolean = (value: unknown): boolean => {
|
|
73
|
+
if (typeof value === 'boolean') return value;
|
|
74
|
+
if (typeof value === 'string') return value === 'true';
|
|
75
|
+
return Boolean(value);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export const maybeCoerceInteger = (value: unknown): number | undefined => {
|
|
79
|
+
if (value == null) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
return coerceInteger(value);
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const maybeCoerceFloat = (value: unknown): number | undefined => {
|
|
86
|
+
if (value == null) {
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
return coerceFloat(value);
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export const maybeCoerceBoolean = (value: unknown): boolean | undefined => {
|
|
93
|
+
if (value == null) {
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
return coerceBoolean(value);
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export const safeJSON = (text: string) => {
|
|
100
|
+
try {
|
|
101
|
+
return JSON.parse(text);
|
|
102
|
+
} catch (err) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
export * from './utils/values';
|
|
4
|
+
export * from './utils/base64';
|
|
5
|
+
export * from './utils/env';
|
|
6
|
+
export * from './utils/log';
|
|
7
|
+
export * from './utils/uuid';
|
|
8
|
+
export * from './utils/sleep';
|
package/src/lib/.keep
ADDED
package/src/resource.ts
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { APIResource } from '../core/resource';
|
|
4
|
+
import * as ExecutionsAPI from './executions';
|
|
5
|
+
import { APIPromise } from '../core/api-promise';
|
|
6
|
+
import { CursorPage, type CursorPageParams, PagePromise } from '../core/pagination';
|
|
7
|
+
import { RequestOptions } from '../internal/request-options';
|
|
8
|
+
import { path } from '../internal/utils/path';
|
|
9
|
+
|
|
10
|
+
export class Cron extends APIResource {
|
|
11
|
+
create(body: CronCreateParams, options?: RequestOptions): APIPromise<CronJob> {
|
|
12
|
+
return this._client.post('/api/cron', { body, ...options });
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
retrieve(jobID: string, options?: RequestOptions): APIPromise<CronJob> {
|
|
16
|
+
return this._client.get(path`/api/cron/${jobID}`, options);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
update(jobID: string, body: CronUpdateParams, options?: RequestOptions): APIPromise<CronJob> {
|
|
20
|
+
return this._client.post(path`/api/cron/${jobID}`, { body, ...options });
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
list(
|
|
24
|
+
query: CronListParams | null | undefined = {},
|
|
25
|
+
options?: RequestOptions,
|
|
26
|
+
): PagePromise<CronListResponsesCursorPage, CronListResponse> {
|
|
27
|
+
return this._client.getAPIList('/api/cron', CursorPage<CronListResponse>, { query, ...options });
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export type CronListResponsesCursorPage = CursorPage<CronListResponse>;
|
|
32
|
+
|
|
33
|
+
export interface CronJob {
|
|
34
|
+
id: string;
|
|
35
|
+
|
|
36
|
+
executions: Array<ExecutionsAPI.Execution>;
|
|
37
|
+
|
|
38
|
+
max_retries: number;
|
|
39
|
+
|
|
40
|
+
region: string;
|
|
41
|
+
|
|
42
|
+
request: CronJob.Request;
|
|
43
|
+
|
|
44
|
+
schedule: string;
|
|
45
|
+
|
|
46
|
+
max_response_bytes?: number | null;
|
|
47
|
+
|
|
48
|
+
tenant_id?: string | null;
|
|
49
|
+
|
|
50
|
+
timeout_ms?: number | null;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export namespace CronJob {
|
|
54
|
+
export interface Request {
|
|
55
|
+
headers: { [key: string]: string };
|
|
56
|
+
|
|
57
|
+
method: string;
|
|
58
|
+
|
|
59
|
+
url: string;
|
|
60
|
+
|
|
61
|
+
body?: string | null;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export interface CronListResponse {
|
|
66
|
+
id: string;
|
|
67
|
+
|
|
68
|
+
executions: Array<ExecutionsAPI.Execution>;
|
|
69
|
+
|
|
70
|
+
max_retries: number;
|
|
71
|
+
|
|
72
|
+
region: string;
|
|
73
|
+
|
|
74
|
+
request: CronListResponse.Request;
|
|
75
|
+
|
|
76
|
+
schedule: string;
|
|
77
|
+
|
|
78
|
+
max_response_bytes?: number | null;
|
|
79
|
+
|
|
80
|
+
tenant_id?: string | null;
|
|
81
|
+
|
|
82
|
+
timeout_ms?: number | null;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export namespace CronListResponse {
|
|
86
|
+
export interface Request {
|
|
87
|
+
headers: { [key: string]: string };
|
|
88
|
+
|
|
89
|
+
method: string;
|
|
90
|
+
|
|
91
|
+
url: string;
|
|
92
|
+
|
|
93
|
+
body?: string | null;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export interface CronCreateParams {
|
|
98
|
+
request: CronCreateParams.Request;
|
|
99
|
+
|
|
100
|
+
schedule: string;
|
|
101
|
+
|
|
102
|
+
max_response_bytes?: number | null;
|
|
103
|
+
|
|
104
|
+
max_retries?: number | null;
|
|
105
|
+
|
|
106
|
+
region?: string | null;
|
|
107
|
+
|
|
108
|
+
timeout_ms?: number | null;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export namespace CronCreateParams {
|
|
112
|
+
export interface Request {
|
|
113
|
+
headers: { [key: string]: string };
|
|
114
|
+
|
|
115
|
+
method: string;
|
|
116
|
+
|
|
117
|
+
url: string;
|
|
118
|
+
|
|
119
|
+
body?: string | null;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export interface CronUpdateParams {
|
|
124
|
+
max_response_bytes?: number | null;
|
|
125
|
+
|
|
126
|
+
max_retries?: number | null;
|
|
127
|
+
|
|
128
|
+
region?: string | null;
|
|
129
|
+
|
|
130
|
+
request?: CronUpdateParams.Request | null;
|
|
131
|
+
|
|
132
|
+
schedule?: string | null;
|
|
133
|
+
|
|
134
|
+
timeout_ms?: number | null;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export namespace CronUpdateParams {
|
|
138
|
+
export interface Request {
|
|
139
|
+
headers: { [key: string]: string };
|
|
140
|
+
|
|
141
|
+
method: string;
|
|
142
|
+
|
|
143
|
+
url: string;
|
|
144
|
+
|
|
145
|
+
body?: string | null;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export interface CronListParams extends CursorPageParams {}
|
|
150
|
+
|
|
151
|
+
export declare namespace Cron {
|
|
152
|
+
export {
|
|
153
|
+
type CronJob as CronJob,
|
|
154
|
+
type CronListResponse as CronListResponse,
|
|
155
|
+
type CronListResponsesCursorPage as CronListResponsesCursorPage,
|
|
156
|
+
type CronCreateParams as CronCreateParams,
|
|
157
|
+
type CronUpdateParams as CronUpdateParams,
|
|
158
|
+
type CronListParams as CronListParams,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { APIResource } from '../core/resource';
|
|
4
|
+
import { APIPromise } from '../core/api-promise';
|
|
5
|
+
import { CursorPage, type CursorPageParams, PagePromise } from '../core/pagination';
|
|
6
|
+
import { RequestOptions } from '../internal/request-options';
|
|
7
|
+
import { path } from '../internal/utils/path';
|
|
8
|
+
|
|
9
|
+
export class Executions extends APIResource {
|
|
10
|
+
retrieve(executionID: string, options?: RequestOptions): APIPromise<Execution> {
|
|
11
|
+
return this._client.get(path`/api/executions/${executionID}`, options);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
list(
|
|
15
|
+
query: ExecutionListParams | null | undefined = {},
|
|
16
|
+
options?: RequestOptions,
|
|
17
|
+
): PagePromise<ExecutionListResponsesCursorPage, ExecutionListResponse> {
|
|
18
|
+
return this._client.getAPIList('/api/executions', CursorPage<ExecutionListResponse>, {
|
|
19
|
+
query,
|
|
20
|
+
...options,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export type ExecutionListResponsesCursorPage = CursorPage<ExecutionListResponse>;
|
|
26
|
+
|
|
27
|
+
export interface Execution {
|
|
28
|
+
id: string;
|
|
29
|
+
|
|
30
|
+
max_retries: number;
|
|
31
|
+
|
|
32
|
+
region: string;
|
|
33
|
+
|
|
34
|
+
request: Execution.Request;
|
|
35
|
+
|
|
36
|
+
scheduled_at: number;
|
|
37
|
+
|
|
38
|
+
cron_job_id?: string | null;
|
|
39
|
+
|
|
40
|
+
executed_at?: number | null;
|
|
41
|
+
|
|
42
|
+
max_response_bytes?: number | null;
|
|
43
|
+
|
|
44
|
+
one_off_job_id?: string | null;
|
|
45
|
+
|
|
46
|
+
response?: Execution.Response | null;
|
|
47
|
+
|
|
48
|
+
response_error?: string | null;
|
|
49
|
+
|
|
50
|
+
retry_for?: string | null;
|
|
51
|
+
|
|
52
|
+
success?: boolean | null;
|
|
53
|
+
|
|
54
|
+
tenant_id?: string | null;
|
|
55
|
+
|
|
56
|
+
timeout_ms?: number | null;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export namespace Execution {
|
|
60
|
+
export interface Request {
|
|
61
|
+
headers: { [key: string]: string };
|
|
62
|
+
|
|
63
|
+
method: string;
|
|
64
|
+
|
|
65
|
+
url: string;
|
|
66
|
+
|
|
67
|
+
body?: string | null;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export interface Response {
|
|
71
|
+
body: string;
|
|
72
|
+
|
|
73
|
+
headers: { [key: string]: string };
|
|
74
|
+
|
|
75
|
+
status: number;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export interface ExecutionListResponse {
|
|
80
|
+
id: string;
|
|
81
|
+
|
|
82
|
+
max_retries: number;
|
|
83
|
+
|
|
84
|
+
region: string;
|
|
85
|
+
|
|
86
|
+
request: ExecutionListResponse.Request;
|
|
87
|
+
|
|
88
|
+
scheduled_at: number;
|
|
89
|
+
|
|
90
|
+
cron_job_id?: string | null;
|
|
91
|
+
|
|
92
|
+
executed_at?: number | null;
|
|
93
|
+
|
|
94
|
+
max_response_bytes?: number | null;
|
|
95
|
+
|
|
96
|
+
one_off_job_id?: string | null;
|
|
97
|
+
|
|
98
|
+
response?: ExecutionListResponse.Response | null;
|
|
99
|
+
|
|
100
|
+
response_error?: string | null;
|
|
101
|
+
|
|
102
|
+
retry_for?: string | null;
|
|
103
|
+
|
|
104
|
+
success?: boolean | null;
|
|
105
|
+
|
|
106
|
+
tenant_id?: string | null;
|
|
107
|
+
|
|
108
|
+
timeout_ms?: number | null;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export namespace ExecutionListResponse {
|
|
112
|
+
export interface Request {
|
|
113
|
+
headers: { [key: string]: string };
|
|
114
|
+
|
|
115
|
+
method: string;
|
|
116
|
+
|
|
117
|
+
url: string;
|
|
118
|
+
|
|
119
|
+
body?: string | null;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export interface Response {
|
|
123
|
+
body: string;
|
|
124
|
+
|
|
125
|
+
headers: { [key: string]: string };
|
|
126
|
+
|
|
127
|
+
status: number;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export interface ExecutionListParams extends CursorPageParams {
|
|
132
|
+
completed?: boolean | null;
|
|
133
|
+
|
|
134
|
+
cron_id?: string | null;
|
|
135
|
+
|
|
136
|
+
from?: number | null;
|
|
137
|
+
|
|
138
|
+
one_off_job_id?: string | null;
|
|
139
|
+
|
|
140
|
+
to?: number | null;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export declare namespace Executions {
|
|
144
|
+
export {
|
|
145
|
+
type Execution as Execution,
|
|
146
|
+
type ExecutionListResponse as ExecutionListResponse,
|
|
147
|
+
type ExecutionListResponsesCursorPage as ExecutionListResponsesCursorPage,
|
|
148
|
+
type ExecutionListParams as ExecutionListParams,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
export {
|
|
4
|
+
Cron,
|
|
5
|
+
type CronJob,
|
|
6
|
+
type CronListResponse,
|
|
7
|
+
type CronCreateParams,
|
|
8
|
+
type CronUpdateParams,
|
|
9
|
+
type CronListParams,
|
|
10
|
+
type CronListResponsesCursorPage,
|
|
11
|
+
} from './cron';
|
|
12
|
+
export {
|
|
13
|
+
Executions,
|
|
14
|
+
type Execution,
|
|
15
|
+
type ExecutionListResponse,
|
|
16
|
+
type ExecutionListParams,
|
|
17
|
+
type ExecutionListResponsesCursorPage,
|
|
18
|
+
} from './executions';
|
|
19
|
+
export {
|
|
20
|
+
Jobs,
|
|
21
|
+
type OneOffJob,
|
|
22
|
+
type JobListResponse,
|
|
23
|
+
type JobCreateParams,
|
|
24
|
+
type JobUpdateParams,
|
|
25
|
+
type JobListParams,
|
|
26
|
+
type JobListResponsesCursorPage,
|
|
27
|
+
} from './jobs';
|
|
28
|
+
export { Tenants, type Tenant, type TenantCreateParams, type TenantUpdateParams } from './tenants';
|
|
29
|
+
export { Verify, type VerifyRetrieveResponse } from './verify';
|