@crevio/sdk 0.6.0 → 0.6.5
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/README.md +12 -40
- package/dist/commonjs/funcs/accessCheck.d.ts +19 -0
- package/dist/commonjs/funcs/accessCheck.d.ts.map +1 -0
- package/dist/commonjs/funcs/accessCheck.js +129 -0
- package/dist/commonjs/funcs/accessCheck.js.map +1 -0
- package/dist/commonjs/funcs/experiencesFilesCreate.d.ts +1 -1
- package/dist/commonjs/funcs/experiencesFilesCreate.d.ts.map +1 -1
- package/dist/commonjs/funcs/experiencesFilesCreate.js +3 -24
- package/dist/commonjs/funcs/experiencesFilesCreate.js.map +1 -1
- package/dist/commonjs/funcs/lessonsFilesCreate.d.ts +1 -1
- package/dist/commonjs/funcs/lessonsFilesCreate.d.ts.map +1 -1
- package/dist/commonjs/funcs/lessonsFilesCreate.js +3 -24
- package/dist/commonjs/funcs/lessonsFilesCreate.js.map +1 -1
- package/dist/commonjs/funcs/usersGet.d.ts +19 -0
- package/dist/commonjs/funcs/usersGet.d.ts.map +1 -0
- package/dist/commonjs/funcs/usersGet.js +125 -0
- package/dist/commonjs/funcs/usersGet.js.map +1 -0
- package/dist/commonjs/index.d.ts +1 -0
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +1 -0
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/lib/config.d.ts +3 -3
- package/dist/commonjs/lib/config.js +3 -3
- package/dist/commonjs/lib/verify-user-token.d.ts +35 -0
- package/dist/commonjs/lib/verify-user-token.d.ts.map +1 -0
- package/dist/commonjs/lib/verify-user-token.js +75 -0
- package/dist/commonjs/lib/verify-user-token.js.map +1 -0
- package/dist/commonjs/models/accesscheck.d.ts +13 -0
- package/dist/commonjs/models/accesscheck.d.ts.map +1 -0
- package/dist/commonjs/models/accesscheck.js +60 -0
- package/dist/commonjs/models/accesscheck.js.map +1 -0
- package/dist/commonjs/models/booking.d.ts +7 -7
- package/dist/commonjs/models/booking.d.ts.map +1 -1
- package/dist/commonjs/models/booking.js +9 -9
- package/dist/commonjs/models/booking.js.map +1 -1
- package/dist/commonjs/models/eventtype.d.ts +22 -51
- package/dist/commonjs/models/eventtype.d.ts.map +1 -1
- package/dist/commonjs/models/eventtype.js +22 -73
- package/dist/commonjs/models/eventtype.js.map +1 -1
- package/dist/commonjs/models/formation.d.ts +5 -25
- package/dist/commonjs/models/formation.d.ts.map +1 -1
- package/dist/commonjs/models/formation.js +6 -37
- package/dist/commonjs/models/formation.js.map +1 -1
- package/dist/commonjs/models/formationdocument.d.ts +2 -10
- package/dist/commonjs/models/formationdocument.d.ts.map +1 -1
- package/dist/commonjs/models/formationdocument.js +3 -16
- package/dist/commonjs/models/formationdocument.js.map +1 -1
- package/dist/commonjs/models/index.d.ts +2 -0
- package/dist/commonjs/models/index.d.ts.map +1 -1
- package/dist/commonjs/models/index.js +2 -0
- package/dist/commonjs/models/index.js.map +1 -1
- package/dist/commonjs/models/me.d.ts +1 -1
- package/dist/commonjs/models/me.d.ts.map +1 -1
- package/dist/commonjs/models/me.js +1 -1
- package/dist/commonjs/models/me.js.map +1 -1
- package/dist/commonjs/models/operations/checkaccess.d.ts +20 -0
- package/dist/commonjs/models/operations/checkaccess.d.ts.map +1 -0
- package/dist/commonjs/models/operations/checkaccess.js +55 -0
- package/dist/commonjs/models/operations/checkaccess.js.map +1 -0
- package/dist/commonjs/models/operations/createdigitaldownloadfile.d.ts +3 -15
- package/dist/commonjs/models/operations/createdigitaldownloadfile.d.ts.map +1 -1
- package/dist/commonjs/models/operations/createdigitaldownloadfile.js +6 -16
- package/dist/commonjs/models/operations/createdigitaldownloadfile.js.map +1 -1
- package/dist/commonjs/models/operations/createlessonfile.d.ts +3 -15
- package/dist/commonjs/models/operations/createlessonfile.d.ts.map +1 -1
- package/dist/commonjs/models/operations/createlessonfile.js +6 -16
- package/dist/commonjs/models/operations/createlessonfile.js.map +1 -1
- package/dist/commonjs/models/operations/getuser.d.ts +15 -0
- package/dist/commonjs/models/operations/getuser.d.ts.map +1 -0
- package/dist/commonjs/models/operations/getuser.js +49 -0
- package/dist/commonjs/models/operations/getuser.js.map +1 -0
- package/dist/commonjs/models/operations/index.d.ts +2 -0
- package/dist/commonjs/models/operations/index.d.ts.map +1 -1
- package/dist/commonjs/models/operations/index.js +2 -0
- package/dist/commonjs/models/operations/index.js.map +1 -1
- package/dist/commonjs/models/operations/retryformationpayment.d.ts +5 -25
- package/dist/commonjs/models/operations/retryformationpayment.d.ts.map +1 -1
- package/dist/commonjs/models/operations/retryformationpayment.js +6 -36
- package/dist/commonjs/models/operations/retryformationpayment.js.map +1 -1
- package/dist/commonjs/models/operations/submitformation.d.ts +5 -25
- package/dist/commonjs/models/operations/submitformation.d.ts.map +1 -1
- package/dist/commonjs/models/operations/submitformation.js +6 -36
- package/dist/commonjs/models/operations/submitformation.js.map +1 -1
- package/dist/commonjs/models/user.d.ts +14 -0
- package/dist/commonjs/models/user.d.ts.map +1 -0
- package/dist/commonjs/models/user.js +61 -0
- package/dist/commonjs/models/user.js.map +1 -0
- package/dist/commonjs/sdk/access.d.ts +13 -0
- package/dist/commonjs/sdk/access.d.ts.map +1 -0
- package/dist/commonjs/sdk/access.js +22 -0
- package/dist/commonjs/sdk/access.js.map +1 -0
- package/dist/commonjs/sdk/experiencesfiles.d.ts +1 -1
- package/dist/commonjs/sdk/experiencesfiles.js +1 -1
- package/dist/commonjs/sdk/lessonsfiles.d.ts +1 -1
- package/dist/commonjs/sdk/lessonsfiles.js +1 -1
- package/dist/commonjs/sdk/sdk.d.ts +6 -0
- package/dist/commonjs/sdk/sdk.d.ts.map +1 -1
- package/dist/commonjs/sdk/sdk.js +8 -0
- package/dist/commonjs/sdk/sdk.js.map +1 -1
- package/dist/commonjs/sdk/users.d.ts +13 -0
- package/dist/commonjs/sdk/users.d.ts.map +1 -0
- package/dist/commonjs/sdk/users.js +22 -0
- package/dist/commonjs/sdk/users.js.map +1 -0
- package/dist/esm/funcs/accessCheck.d.ts +19 -0
- package/dist/esm/funcs/accessCheck.d.ts.map +1 -0
- package/dist/esm/funcs/accessCheck.js +93 -0
- package/dist/esm/funcs/accessCheck.js.map +1 -0
- package/dist/esm/funcs/experiencesFilesCreate.d.ts +1 -1
- package/dist/esm/funcs/experiencesFilesCreate.d.ts.map +1 -1
- package/dist/esm/funcs/experiencesFilesCreate.js +4 -25
- package/dist/esm/funcs/experiencesFilesCreate.js.map +1 -1
- package/dist/esm/funcs/lessonsFilesCreate.d.ts +1 -1
- package/dist/esm/funcs/lessonsFilesCreate.d.ts.map +1 -1
- package/dist/esm/funcs/lessonsFilesCreate.js +4 -25
- package/dist/esm/funcs/lessonsFilesCreate.js.map +1 -1
- package/dist/esm/funcs/usersGet.d.ts +19 -0
- package/dist/esm/funcs/usersGet.d.ts.map +1 -0
- package/dist/esm/funcs/usersGet.js +89 -0
- package/dist/esm/funcs/usersGet.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/config.d.ts +3 -3
- package/dist/esm/lib/config.js +3 -3
- package/dist/esm/lib/verify-user-token.d.ts +35 -0
- package/dist/esm/lib/verify-user-token.d.ts.map +1 -0
- package/dist/esm/lib/verify-user-token.js +72 -0
- package/dist/esm/lib/verify-user-token.js.map +1 -0
- package/dist/esm/models/accesscheck.d.ts +13 -0
- package/dist/esm/models/accesscheck.d.ts.map +1 -0
- package/dist/esm/models/accesscheck.js +23 -0
- package/dist/esm/models/accesscheck.js.map +1 -0
- package/dist/esm/models/booking.d.ts +7 -7
- package/dist/esm/models/booking.d.ts.map +1 -1
- package/dist/esm/models/booking.js +7 -7
- package/dist/esm/models/booking.js.map +1 -1
- package/dist/esm/models/eventtype.d.ts +22 -51
- package/dist/esm/models/eventtype.d.ts.map +1 -1
- package/dist/esm/models/eventtype.js +21 -62
- package/dist/esm/models/eventtype.js.map +1 -1
- package/dist/esm/models/formation.d.ts +5 -25
- package/dist/esm/models/formation.d.ts.map +1 -1
- package/dist/esm/models/formation.js +5 -31
- package/dist/esm/models/formation.js.map +1 -1
- package/dist/esm/models/formationdocument.d.ts +2 -10
- package/dist/esm/models/formationdocument.d.ts.map +1 -1
- package/dist/esm/models/formationdocument.js +2 -13
- package/dist/esm/models/formationdocument.js.map +1 -1
- package/dist/esm/models/index.d.ts +2 -0
- package/dist/esm/models/index.d.ts.map +1 -1
- package/dist/esm/models/index.js +2 -0
- package/dist/esm/models/index.js.map +1 -1
- package/dist/esm/models/me.d.ts +1 -1
- package/dist/esm/models/me.d.ts.map +1 -1
- package/dist/esm/models/me.js +1 -1
- package/dist/esm/models/me.js.map +1 -1
- package/dist/esm/models/operations/checkaccess.d.ts +20 -0
- package/dist/esm/models/operations/checkaccess.d.ts.map +1 -0
- package/dist/esm/models/operations/checkaccess.js +18 -0
- package/dist/esm/models/operations/checkaccess.js.map +1 -0
- package/dist/esm/models/operations/createdigitaldownloadfile.d.ts +3 -15
- package/dist/esm/models/operations/createdigitaldownloadfile.d.ts.map +1 -1
- package/dist/esm/models/operations/createdigitaldownloadfile.js +5 -14
- package/dist/esm/models/operations/createdigitaldownloadfile.js.map +1 -1
- package/dist/esm/models/operations/createlessonfile.d.ts +3 -15
- package/dist/esm/models/operations/createlessonfile.d.ts.map +1 -1
- package/dist/esm/models/operations/createlessonfile.js +5 -14
- package/dist/esm/models/operations/createlessonfile.js.map +1 -1
- package/dist/esm/models/operations/getuser.d.ts +15 -0
- package/dist/esm/models/operations/getuser.d.ts.map +1 -0
- package/dist/esm/models/operations/getuser.js +12 -0
- package/dist/esm/models/operations/getuser.js.map +1 -0
- package/dist/esm/models/operations/index.d.ts +2 -0
- package/dist/esm/models/operations/index.d.ts.map +1 -1
- package/dist/esm/models/operations/index.js +2 -0
- package/dist/esm/models/operations/index.js.map +1 -1
- package/dist/esm/models/operations/retryformationpayment.d.ts +5 -25
- package/dist/esm/models/operations/retryformationpayment.d.ts.map +1 -1
- package/dist/esm/models/operations/retryformationpayment.js +5 -30
- package/dist/esm/models/operations/retryformationpayment.js.map +1 -1
- package/dist/esm/models/operations/submitformation.d.ts +5 -25
- package/dist/esm/models/operations/submitformation.d.ts.map +1 -1
- package/dist/esm/models/operations/submitformation.js +5 -30
- package/dist/esm/models/operations/submitformation.js.map +1 -1
- package/dist/esm/models/user.d.ts +14 -0
- package/dist/esm/models/user.d.ts.map +1 -0
- package/dist/esm/models/user.js +24 -0
- package/dist/esm/models/user.js.map +1 -0
- package/dist/esm/sdk/access.d.ts +13 -0
- package/dist/esm/sdk/access.d.ts.map +1 -0
- package/dist/esm/sdk/access.js +18 -0
- package/dist/esm/sdk/access.js.map +1 -0
- package/dist/esm/sdk/experiencesfiles.d.ts +1 -1
- package/dist/esm/sdk/experiencesfiles.js +1 -1
- package/dist/esm/sdk/lessonsfiles.d.ts +1 -1
- package/dist/esm/sdk/lessonsfiles.js +1 -1
- package/dist/esm/sdk/sdk.d.ts +6 -0
- package/dist/esm/sdk/sdk.d.ts.map +1 -1
- package/dist/esm/sdk/sdk.js +8 -0
- package/dist/esm/sdk/sdk.js.map +1 -1
- package/dist/esm/sdk/users.d.ts +13 -0
- package/dist/esm/sdk/users.d.ts.map +1 -0
- package/dist/esm/sdk/users.js +18 -0
- package/dist/esm/sdk/users.js.map +1 -0
- package/jsr.json +1 -1
- package/package.json +2 -1
- package/src/funcs/accessCheck.ts +182 -0
- package/src/funcs/experiencesFilesCreate.ts +4 -38
- package/src/funcs/lessonsFilesCreate.ts +4 -38
- package/src/funcs/usersGet.ts +178 -0
- package/src/index.ts +1 -0
- package/src/lib/config.ts +3 -3
- package/src/lib/verify-user-token.ts +118 -0
- package/src/models/accesscheck.ts +44 -0
- package/src/models/booking.ts +15 -15
- package/src/models/eventtype.ts +37 -212
- package/src/models/formation.ts +10 -102
- package/src/models/formationdocument.ts +4 -39
- package/src/models/index.ts +2 -0
- package/src/models/me.ts +2 -2
- package/src/models/operations/checkaccess.ts +45 -0
- package/src/models/operations/createdigitaldownloadfile.ts +8 -40
- package/src/models/operations/createlessonfile.ts +8 -38
- package/src/models/operations/getuser.ts +30 -0
- package/src/models/operations/index.ts +2 -0
- package/src/models/operations/retryformationpayment.ts +10 -105
- package/src/models/operations/submitformation.ts +10 -105
- package/src/models/user.ts +42 -0
- package/src/sdk/access.ts +28 -0
- package/src/sdk/experiencesfiles.ts +1 -1
- package/src/sdk/lessonsfiles.ts +1 -1
- package/src/sdk/sdk.ts +12 -0
- package/src/sdk/users.ts +28 -0
|
@@ -13,7 +13,7 @@ import { Result } from "../types/fp.js";
|
|
|
13
13
|
* Upload digital download files
|
|
14
14
|
*
|
|
15
15
|
* @remarks
|
|
16
|
-
* Attaches
|
|
16
|
+
* Attaches already-uploaded files to a digital download experience as deliverables. Upload the bytes first with `POST /files` (presigned upload), then reference the resulting ids here: `{ "file_ids": ["file_..."] }`. Appends to the existing set and de-duplicates, so re-sending an already-attached id is a safe no-op. Returns the full file list.
|
|
17
17
|
*/
|
|
18
18
|
export declare function experiencesFilesCreate(client: CrevioCore, request: operations.CreateDigitalDownloadFileRequest, options?: RequestOptions): APIPromise<Result<models.ListResponseDigitalDownloadFile, errors.ErrorT | CrevioError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
|
|
19
19
|
//# sourceMappingURL=experiencesFilesCreate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experiencesFilesCreate.d.ts","sourceRoot":"","sources":["../../../src/funcs/experiencesFilesCreate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"experiencesFilesCreate.d.ts","sourceRoot":"","sources":["../../../src/funcs/experiencesFilesCreate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAMxC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAW,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,UAAU,CAAC,gCAAgC,EACpD,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CACX,MAAM,CACJ,MAAM,CAAC,+BAA+B,EACpC,MAAM,CAAC,MAAM,GACb,WAAW,GACX,uBAAuB,GACvB,eAAe,GACf,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,kBAAkB,CACrB,CACF,CAMA"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import { bytesToBlob, getContentTypeFromFileName, readableStreamToArrayBuffer, } from "../lib/files.js";
|
|
4
|
+
import { encodeJSON, encodeSimple } from "../lib/encodings.js";
|
|
6
5
|
import { matchStatusCode } from "../lib/http.js";
|
|
7
6
|
import * as M from "../lib/matchers.js";
|
|
8
7
|
import { compactMap } from "../lib/primitives.js";
|
|
@@ -13,13 +12,11 @@ import * as errors from "../models/errors/index.js";
|
|
|
13
12
|
import * as models from "../models/index.js";
|
|
14
13
|
import * as operations from "../models/operations/index.js";
|
|
15
14
|
import { APIPromise } from "../types/async.js";
|
|
16
|
-
import { isBlobLike } from "../types/blobs.js";
|
|
17
|
-
import { isReadableStream } from "../types/streams.js";
|
|
18
15
|
/**
|
|
19
16
|
* Upload digital download files
|
|
20
17
|
*
|
|
21
18
|
* @remarks
|
|
22
|
-
* Attaches
|
|
19
|
+
* Attaches already-uploaded files to a digital download experience as deliverables. Upload the bytes first with `POST /files` (presigned upload), then reference the resulting ids here: `{ "file_ids": ["file_..."] }`. Appends to the existing set and de-duplicates, so re-sending an already-attached id is a safe no-op. Returns the full file list.
|
|
23
20
|
*/
|
|
24
21
|
export function experiencesFilesCreate(client, request, options) {
|
|
25
22
|
return new APIPromise($do(client, request, options));
|
|
@@ -30,26 +27,7 @@ async function $do(client, request, options) {
|
|
|
30
27
|
return [parsed, { status: "invalid" }];
|
|
31
28
|
}
|
|
32
29
|
const payload = parsed.value;
|
|
33
|
-
const body =
|
|
34
|
-
for (const fileItem of payload.RequestBody.files ?? []) {
|
|
35
|
-
if (isBlobLike(fileItem)) {
|
|
36
|
-
const file = fileItem;
|
|
37
|
-
const blob = await normalizeBlob(file);
|
|
38
|
-
const name = "name" in file ? file.name : undefined;
|
|
39
|
-
appendForm(body, "files[]", blob, name);
|
|
40
|
-
}
|
|
41
|
-
else if (isReadableStream(fileItem.content)) {
|
|
42
|
-
const buffer = await readableStreamToArrayBuffer(fileItem.content);
|
|
43
|
-
const contentType = getContentTypeFromFileName(fileItem.fileName)
|
|
44
|
-
|| "application/octet-stream";
|
|
45
|
-
appendForm(body, "files[]", bytesToBlob(buffer, contentType), fileItem.fileName);
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
const contentType = getContentTypeFromFileName(fileItem.fileName)
|
|
49
|
-
|| "application/octet-stream";
|
|
50
|
-
appendForm(body, "files[]", bytesToBlob(fileItem.content, contentType), fileItem.fileName);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
30
|
+
const body = encodeJSON("body", payload.RequestBody, { explode: true });
|
|
53
31
|
const pathParams = {
|
|
54
32
|
experience_id: encodeSimple("experience_id", payload.experience_id, {
|
|
55
33
|
explode: false,
|
|
@@ -58,6 +36,7 @@ async function $do(client, request, options) {
|
|
|
58
36
|
};
|
|
59
37
|
const path = pathToFunc("/experiences/{experience_id}/files")(pathParams);
|
|
60
38
|
const headers = new Headers(compactMap({
|
|
39
|
+
"Content-Type": "application/json",
|
|
61
40
|
Accept: "application/json",
|
|
62
41
|
}));
|
|
63
42
|
const secConfig = await extractSecurity(client._options.apiKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experiencesFilesCreate.js","sourceRoot":"","sources":["../../../src/funcs/experiencesFilesCreate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"experiencesFilesCreate.js","sourceRoot":"","sources":["../../../src/funcs/experiencesFilesCreate.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ import { Result } from "../types/fp.js";
|
|
|
13
13
|
* Upload lesson files
|
|
14
14
|
*
|
|
15
15
|
* @remarks
|
|
16
|
-
* Attaches
|
|
16
|
+
* Attaches already-uploaded files to a lesson. Upload the bytes first with `POST /files` (presigned upload), then reference the resulting ids here: `{ "file_ids": ["file_..."] }`. Appends to the existing set and de-duplicates, so re-sending an already-attached id is a safe no-op. Returns the full file list.
|
|
17
17
|
*/
|
|
18
18
|
export declare function lessonsFilesCreate(client: CrevioCore, request: operations.CreateLessonFileRequest, options?: RequestOptions): APIPromise<Result<models.ListResponseLessonFile, errors.ErrorT | CrevioError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
|
|
19
19
|
//# sourceMappingURL=lessonsFilesCreate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lessonsFilesCreate.d.ts","sourceRoot":"","sources":["../../../src/funcs/lessonsFilesCreate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"lessonsFilesCreate.d.ts","sourceRoot":"","sources":["../../../src/funcs/lessonsFilesCreate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAMxC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAW,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,UAAU,CAAC,uBAAuB,EAC3C,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CACX,MAAM,CACJ,MAAM,CAAC,sBAAsB,EAC3B,MAAM,CAAC,MAAM,GACb,WAAW,GACX,uBAAuB,GACvB,eAAe,GACf,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,kBAAkB,CACrB,CACF,CAMA"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import { bytesToBlob, getContentTypeFromFileName, readableStreamToArrayBuffer, } from "../lib/files.js";
|
|
4
|
+
import { encodeJSON, encodeSimple } from "../lib/encodings.js";
|
|
6
5
|
import { matchStatusCode } from "../lib/http.js";
|
|
7
6
|
import * as M from "../lib/matchers.js";
|
|
8
7
|
import { compactMap } from "../lib/primitives.js";
|
|
@@ -13,13 +12,11 @@ import * as errors from "../models/errors/index.js";
|
|
|
13
12
|
import * as models from "../models/index.js";
|
|
14
13
|
import * as operations from "../models/operations/index.js";
|
|
15
14
|
import { APIPromise } from "../types/async.js";
|
|
16
|
-
import { isBlobLike } from "../types/blobs.js";
|
|
17
|
-
import { isReadableStream } from "../types/streams.js";
|
|
18
15
|
/**
|
|
19
16
|
* Upload lesson files
|
|
20
17
|
*
|
|
21
18
|
* @remarks
|
|
22
|
-
* Attaches
|
|
19
|
+
* Attaches already-uploaded files to a lesson. Upload the bytes first with `POST /files` (presigned upload), then reference the resulting ids here: `{ "file_ids": ["file_..."] }`. Appends to the existing set and de-duplicates, so re-sending an already-attached id is a safe no-op. Returns the full file list.
|
|
23
20
|
*/
|
|
24
21
|
export function lessonsFilesCreate(client, request, options) {
|
|
25
22
|
return new APIPromise($do(client, request, options));
|
|
@@ -30,26 +27,7 @@ async function $do(client, request, options) {
|
|
|
30
27
|
return [parsed, { status: "invalid" }];
|
|
31
28
|
}
|
|
32
29
|
const payload = parsed.value;
|
|
33
|
-
const body =
|
|
34
|
-
for (const fileItem of payload.RequestBody.files ?? []) {
|
|
35
|
-
if (isBlobLike(fileItem)) {
|
|
36
|
-
const file = fileItem;
|
|
37
|
-
const blob = await normalizeBlob(file);
|
|
38
|
-
const name = "name" in file ? file.name : undefined;
|
|
39
|
-
appendForm(body, "files[]", blob, name);
|
|
40
|
-
}
|
|
41
|
-
else if (isReadableStream(fileItem.content)) {
|
|
42
|
-
const buffer = await readableStreamToArrayBuffer(fileItem.content);
|
|
43
|
-
const contentType = getContentTypeFromFileName(fileItem.fileName)
|
|
44
|
-
|| "application/octet-stream";
|
|
45
|
-
appendForm(body, "files[]", bytesToBlob(buffer, contentType), fileItem.fileName);
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
const contentType = getContentTypeFromFileName(fileItem.fileName)
|
|
49
|
-
|| "application/octet-stream";
|
|
50
|
-
appendForm(body, "files[]", bytesToBlob(fileItem.content, contentType), fileItem.fileName);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
30
|
+
const body = encodeJSON("body", payload.RequestBody, { explode: true });
|
|
53
31
|
const pathParams = {
|
|
54
32
|
lesson_id: encodeSimple("lesson_id", payload.lesson_id, {
|
|
55
33
|
explode: false,
|
|
@@ -58,6 +36,7 @@ async function $do(client, request, options) {
|
|
|
58
36
|
};
|
|
59
37
|
const path = pathToFunc("/lessons/{lesson_id}/files")(pathParams);
|
|
60
38
|
const headers = new Headers(compactMap({
|
|
39
|
+
"Content-Type": "application/json",
|
|
61
40
|
Accept: "application/json",
|
|
62
41
|
}));
|
|
63
42
|
const secConfig = await extractSecurity(client._options.apiKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lessonsFilesCreate.js","sourceRoot":"","sources":["../../../src/funcs/lessonsFilesCreate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"lessonsFilesCreate.js","sourceRoot":"","sources":["../../../src/funcs/lessonsFilesCreate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CrevioCore } from "../core.js";
|
|
2
|
+
import { RequestOptions } from "../lib/sdks.js";
|
|
3
|
+
import { CrevioError } from "../models/errors/crevioerror.js";
|
|
4
|
+
import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError } from "../models/errors/httpclienterrors.js";
|
|
5
|
+
import * as errors from "../models/errors/index.js";
|
|
6
|
+
import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
|
|
7
|
+
import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
|
|
8
|
+
import * as models from "../models/index.js";
|
|
9
|
+
import * as operations from "../models/operations/index.js";
|
|
10
|
+
import { APIPromise } from "../types/async.js";
|
|
11
|
+
import { Result } from "../types/fp.js";
|
|
12
|
+
/**
|
|
13
|
+
* Get user
|
|
14
|
+
*
|
|
15
|
+
* @remarks
|
|
16
|
+
* Returns the profile (first/last name, email) of a buyer signed in on a deployed site, resolved from their user_… id or username. Scoped to the account; pair with getUser/verifyUserToken on the site.
|
|
17
|
+
*/
|
|
18
|
+
export declare function usersGet(client: CrevioCore, request: operations.GetUserRequest, options?: RequestOptions): APIPromise<Result<models.User, errors.ErrorT | CrevioError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
|
|
19
|
+
//# sourceMappingURL=usersGet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usersGet.d.ts","sourceRoot":"","sources":["../../../src/funcs/usersGet.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAMxC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAW,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,UAAU,CAAC,cAAc,EAClC,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CACX,MAAM,CACJ,MAAM,CAAC,IAAI,EACT,MAAM,CAAC,MAAM,GACb,WAAW,GACX,uBAAuB,GACvB,eAAe,GACf,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,kBAAkB,CACrB,CACF,CAMA"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
+
*/
|
|
4
|
+
import { encodeSimple } from "../lib/encodings.js";
|
|
5
|
+
import { matchStatusCode } from "../lib/http.js";
|
|
6
|
+
import * as M from "../lib/matchers.js";
|
|
7
|
+
import { compactMap } from "../lib/primitives.js";
|
|
8
|
+
import { safeParse } from "../lib/schemas.js";
|
|
9
|
+
import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
|
|
10
|
+
import { pathToFunc } from "../lib/url.js";
|
|
11
|
+
import * as errors from "../models/errors/index.js";
|
|
12
|
+
import * as models from "../models/index.js";
|
|
13
|
+
import * as operations from "../models/operations/index.js";
|
|
14
|
+
import { APIPromise } from "../types/async.js";
|
|
15
|
+
/**
|
|
16
|
+
* Get user
|
|
17
|
+
*
|
|
18
|
+
* @remarks
|
|
19
|
+
* Returns the profile (first/last name, email) of a buyer signed in on a deployed site, resolved from their user_… id or username. Scoped to the account; pair with getUser/verifyUserToken on the site.
|
|
20
|
+
*/
|
|
21
|
+
export function usersGet(client, request, options) {
|
|
22
|
+
return new APIPromise($do(client, request, options));
|
|
23
|
+
}
|
|
24
|
+
async function $do(client, request, options) {
|
|
25
|
+
const parsed = safeParse(request, (value) => operations.GetUserRequest$outboundSchema.parse(value), "Input validation failed");
|
|
26
|
+
if (!parsed.ok) {
|
|
27
|
+
return [parsed, { status: "invalid" }];
|
|
28
|
+
}
|
|
29
|
+
const payload = parsed.value;
|
|
30
|
+
const body = null;
|
|
31
|
+
const pathParams = {
|
|
32
|
+
id: encodeSimple("id", payload.id, {
|
|
33
|
+
explode: false,
|
|
34
|
+
charEncoding: "percent",
|
|
35
|
+
}),
|
|
36
|
+
};
|
|
37
|
+
const path = pathToFunc("/users/{id}")(pathParams);
|
|
38
|
+
const headers = new Headers(compactMap({
|
|
39
|
+
Accept: "application/json",
|
|
40
|
+
}));
|
|
41
|
+
const secConfig = await extractSecurity(client._options.apiKey);
|
|
42
|
+
const securityInput = secConfig == null ? {} : { apiKey: secConfig };
|
|
43
|
+
const requestSecurity = resolveGlobalSecurity(securityInput);
|
|
44
|
+
const context = {
|
|
45
|
+
options: client._options,
|
|
46
|
+
baseURL: options?.serverURL ?? client._baseURL ?? "",
|
|
47
|
+
operationID: "getUser",
|
|
48
|
+
oAuth2Scopes: null,
|
|
49
|
+
resolvedSecurity: requestSecurity,
|
|
50
|
+
securitySource: client._options.apiKey,
|
|
51
|
+
retryConfig: options?.retries
|
|
52
|
+
|| client._options.retryConfig
|
|
53
|
+
|| { strategy: "none" },
|
|
54
|
+
retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
|
|
55
|
+
};
|
|
56
|
+
const requestRes = client._createRequest(context, {
|
|
57
|
+
security: requestSecurity,
|
|
58
|
+
method: "GET",
|
|
59
|
+
baseURL: options?.serverURL,
|
|
60
|
+
path: path,
|
|
61
|
+
headers: headers,
|
|
62
|
+
body: body,
|
|
63
|
+
userAgent: client._options.userAgent,
|
|
64
|
+
timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
|
|
65
|
+
}, options);
|
|
66
|
+
if (!requestRes.ok) {
|
|
67
|
+
return [requestRes, { status: "invalid" }];
|
|
68
|
+
}
|
|
69
|
+
const req = requestRes.value;
|
|
70
|
+
const doResult = await client._do(req, {
|
|
71
|
+
context,
|
|
72
|
+
isErrorStatusCode: (statusCode) => matchStatusCode({ status: statusCode }, ["4XX", "5XX"]),
|
|
73
|
+
retryConfig: context.retryConfig,
|
|
74
|
+
retryCodes: context.retryCodes,
|
|
75
|
+
});
|
|
76
|
+
if (!doResult.ok) {
|
|
77
|
+
return [doResult, { status: "request-error", request: req }];
|
|
78
|
+
}
|
|
79
|
+
const response = doResult.value;
|
|
80
|
+
const responseFields = {
|
|
81
|
+
HttpMeta: { Response: response, Request: req },
|
|
82
|
+
};
|
|
83
|
+
const [result] = await M.match(M.json(200, models.User$inboundSchema), M.jsonErr([400, 401, 403, 404], errors.ErrorT$inboundSchema), M.jsonErr(500, errors.ErrorT$inboundSchema), M.fail("4XX"), M.fail("5XX"))(response, req, { extraFields: responseFields });
|
|
84
|
+
if (!result.ok) {
|
|
85
|
+
return [result, { status: "complete", request: req, response }];
|
|
86
|
+
}
|
|
87
|
+
return [result, { status: "complete", request: req, response }];
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=usersGet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usersGet.js","sourceRoot":"","sources":["../../../src/funcs/usersGet.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChE,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChE,cAAc,cAAc,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
3
|
*/
|
|
4
4
|
export * from "./lib/config.js";
|
|
5
|
+
export * from "./lib/verify-user-token.js";
|
|
5
6
|
export * as files from "./lib/files.js";
|
|
6
7
|
export { HTTPClient } from "./lib/http.js";
|
|
7
8
|
export * from "./sdk/sdk.js";
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,cAAc,cAAc,CAAC"}
|
package/dist/esm/lib/config.d.ts
CHANGED
|
@@ -31,8 +31,8 @@ export declare function serverURLFromOptions(options: SDKOptions): URL | null;
|
|
|
31
31
|
export declare const SDK_METADATA: {
|
|
32
32
|
readonly language: "typescript";
|
|
33
33
|
readonly openapiDocVersion: "1.0.0";
|
|
34
|
-
readonly sdkVersion: "0.6.
|
|
35
|
-
readonly genVersion: "2.
|
|
36
|
-
readonly userAgent: "speakeasy-sdk/typescript 0.6.
|
|
34
|
+
readonly sdkVersion: "0.6.5";
|
|
35
|
+
readonly genVersion: "2.914.0";
|
|
36
|
+
readonly userAgent: "speakeasy-sdk/typescript 0.6.5 2.914.0 1.0.0 @crevio/sdk";
|
|
37
37
|
};
|
|
38
38
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/esm/lib/config.js
CHANGED
|
@@ -27,8 +27,8 @@ export function serverURLFromOptions(options) {
|
|
|
27
27
|
export const SDK_METADATA = {
|
|
28
28
|
language: "typescript",
|
|
29
29
|
openapiDocVersion: "1.0.0",
|
|
30
|
-
sdkVersion: "0.6.
|
|
31
|
-
genVersion: "2.
|
|
32
|
-
userAgent: "speakeasy-sdk/typescript 0.6.
|
|
30
|
+
sdkVersion: "0.6.5",
|
|
31
|
+
genVersion: "2.914.0",
|
|
32
|
+
userAgent: "speakeasy-sdk/typescript 0.6.5 2.914.0 1.0.0 @crevio/sdk",
|
|
33
33
|
};
|
|
34
34
|
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface CrevioUser {
|
|
2
|
+
/** The signed-in end-user's Crevio user id (e.g. "user_abc123"). */
|
|
3
|
+
userId: string;
|
|
4
|
+
/** The account (merchant) this request is scoped to (e.g. "acct_abc123"). */
|
|
5
|
+
accountId: string;
|
|
6
|
+
}
|
|
7
|
+
export type HeaderSource = Headers | Request | Record<string, string | string[] | undefined> | null | undefined;
|
|
8
|
+
export interface VerifyUserTokenOptions {
|
|
9
|
+
/**
|
|
10
|
+
* Where to fetch the Ed25519 public key set. Defaults to Crevio production
|
|
11
|
+
* (`https://crevio.co/.well-known/jwks.json`). Point this at your dev host
|
|
12
|
+
* (or the local dev proxy) when developing. Results are cached per URL.
|
|
13
|
+
*/
|
|
14
|
+
jwksUrl?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Expected `aud` claim (the site's worker name). Off-platform apps should set
|
|
17
|
+
* this to reject tokens minted for a different site; on-platform the dispatch
|
|
18
|
+
* worker already binds the token to this site, so it can be omitted.
|
|
19
|
+
*/
|
|
20
|
+
audience?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Verifies the signed user token the Crevio platform forwards on the request and
|
|
24
|
+
* returns the authenticated visitor, or `null` for an anonymous visitor (no
|
|
25
|
+
* token) or an invalid/expired/forged token — always fail-closed.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* const user = await verifyUserToken(await headers());
|
|
30
|
+
* if (!user) return <SignInWithCrevio />;
|
|
31
|
+
* const { hasAccess } = await crevio.access.check({ id: user.userId, resourceId: "exp_123" });
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function verifyUserToken(source: HeaderSource, options?: VerifyUserTokenOptions): Promise<CrevioUser | null>;
|
|
35
|
+
//# sourceMappingURL=verify-user-token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-user-token.d.ts","sourceRoot":"","sources":["../../../src/lib/verify-user-token.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,UAAU;IACzB,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,MAAM,MAAM,YAAY,GACpB,OAAO,GACP,OAAO,GACP,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GAC7C,IAAI,GACJ,SAAS,CAAC;AAEd,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA8BD;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAqB5B"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// Hand-written helper (a custom file Speakeasy does not generate, so it
|
|
2
|
+
// survives `speakeasy run` untouched). It is the Crevio equivalent of Whop's
|
|
3
|
+
// `verifyUserToken`, and follows the same contract: read the signed user token
|
|
4
|
+
// the platform forwards on each request, verify its signature, and return the
|
|
5
|
+
// authenticated identity.
|
|
6
|
+
//
|
|
7
|
+
// The one export line in index.ts must be re-added after each regen
|
|
8
|
+
// (persistentEdits is disabled to avoid three-way merge conflicts).
|
|
9
|
+
//
|
|
10
|
+
// The token is a compact EdDSA (Ed25519) JWS minted by Rails (Sites::Token).
|
|
11
|
+
// On Crevio-hosted apps the dispatch worker verifies it at the edge and forwards
|
|
12
|
+
// it as the `x-crevio-user-token` header (stripping any inbound spoof); we verify
|
|
13
|
+
// it again here against the published JWKS so the guarantee holds even for apps
|
|
14
|
+
// hosted off-platform, where no dispatch worker sits in front.
|
|
15
|
+
import { createRemoteJWKSet, jwtVerify } from "jose";
|
|
16
|
+
const TOKEN_HEADER = "x-crevio-user-token";
|
|
17
|
+
const ISSUER = "crevio";
|
|
18
|
+
const DEFAULT_JWKS_URL = "https://crevio.co/.well-known/jwks.json";
|
|
19
|
+
// jose caches keys internally and refreshes on unknown `kid`, so we keep one
|
|
20
|
+
// remote key set per JWKS URL for the life of the process.
|
|
21
|
+
const keySets = new Map();
|
|
22
|
+
function jwksFor(url) {
|
|
23
|
+
let set = keySets.get(url);
|
|
24
|
+
if (!set) {
|
|
25
|
+
set = createRemoteJWKSet(new URL(url));
|
|
26
|
+
keySets.set(url, set);
|
|
27
|
+
}
|
|
28
|
+
return set;
|
|
29
|
+
}
|
|
30
|
+
function readHeader(source, name) {
|
|
31
|
+
if (!source)
|
|
32
|
+
return null;
|
|
33
|
+
const headers = source instanceof Request ? source.headers : source;
|
|
34
|
+
// Headers, ReadonlyHeaders (Next.js), and Request#headers all expose `.get`.
|
|
35
|
+
if (typeof headers.get === "function") {
|
|
36
|
+
return headers.get(name) ?? null;
|
|
37
|
+
}
|
|
38
|
+
const record = headers;
|
|
39
|
+
const value = record[name] ?? record[name.toLowerCase()];
|
|
40
|
+
return Array.isArray(value) ? (value[0] ?? null) : (value ?? null);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Verifies the signed user token the Crevio platform forwards on the request and
|
|
44
|
+
* returns the authenticated visitor, or `null` for an anonymous visitor (no
|
|
45
|
+
* token) or an invalid/expired/forged token — always fail-closed.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* const user = await verifyUserToken(await headers());
|
|
50
|
+
* if (!user) return <SignInWithCrevio />;
|
|
51
|
+
* const { hasAccess } = await crevio.access.check({ id: user.userId, resourceId: "exp_123" });
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export async function verifyUserToken(source, options) {
|
|
55
|
+
const token = readHeader(source, TOKEN_HEADER);
|
|
56
|
+
if (!token)
|
|
57
|
+
return null;
|
|
58
|
+
try {
|
|
59
|
+
const { payload } = await jwtVerify(token, jwksFor(options?.jwksUrl ?? DEFAULT_JWKS_URL), options?.audience
|
|
60
|
+
? { issuer: ISSUER, audience: options.audience }
|
|
61
|
+
: { issuer: ISSUER });
|
|
62
|
+
const userId = payload.sub;
|
|
63
|
+
const accountId = payload["acc"];
|
|
64
|
+
if (typeof userId !== "string" || typeof accountId !== "string")
|
|
65
|
+
return null;
|
|
66
|
+
return { userId, accountId };
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=verify-user-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-user-token.js","sourceRoot":"","sources":["../../../src/lib/verify-user-token.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,6EAA6E;AAC7E,+EAA+E;AAC/E,8EAA8E;AAC9E,0BAA0B;AAC1B,EAAE;AACF,oEAAoE;AACpE,oEAAoE;AACpE,EAAE;AACF,6EAA6E;AAC7E,iFAAiF;AACjF,kFAAkF;AAClF,gFAAgF;AAChF,+DAA+D;AAE/D,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAErD,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,gBAAgB,GAAG,yCAAyC,CAAC;AAkCnE,6EAA6E;AAC7E,2DAA2D;AAC3D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiD,CAAC;AAEzE,SAAS,OAAO,CAAC,GAAW;IAC1B,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,kBAAkB,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,MAAoB,EAAE,IAAY;IACpD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,OAAO,GAAG,MAAM,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAEpE,6EAA6E;IAC7E,IAAI,OAAQ,OAA6B,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;QAC7D,OAAQ,OAA6C,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAC1E,CAAC;IAED,MAAM,MAAM,GAAG,OAAwD,CAAC;IACxE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAoB,EACpB,OAAgC;IAEhC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CACjC,KAAK,EACL,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,gBAAgB,CAAC,EAC7C,OAAO,EAAE,QAAQ;YACf,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;YAChD,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CACvB,CAAC;QAEF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE7E,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as z from "zod/v3";
|
|
2
|
+
import { Result as SafeParseResult } from "../types/fp.js";
|
|
3
|
+
import { SDKValidationError } from "./errors/sdkvalidationerror.js";
|
|
4
|
+
export type AccessCheck = {
|
|
5
|
+
object: string;
|
|
6
|
+
hasAccess: boolean;
|
|
7
|
+
accessLevel: string;
|
|
8
|
+
expiresAt: string | null;
|
|
9
|
+
};
|
|
10
|
+
/** @internal */
|
|
11
|
+
export declare const AccessCheck$inboundSchema: z.ZodType<AccessCheck, z.ZodTypeDef, unknown>;
|
|
12
|
+
export declare function accessCheckFromJSON(jsonString: string): SafeParseResult<AccessCheck, SDKValidationError>;
|
|
13
|
+
//# sourceMappingURL=accesscheck.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accesscheck.d.ts","sourceRoot":"","sources":["../../../src/models/accesscheck.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,gBAAgB;AAChB,eAAO,MAAM,yBAAyB,EAAE,CAAC,CAAC,OAAO,CAC/C,WAAW,EACX,CAAC,CAAC,UAAU,EACZ,OAAO,CAYP,CAAC;AAEH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,GACjB,eAAe,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAMlD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
+
*/
|
|
4
|
+
import * as z from "zod/v3";
|
|
5
|
+
import { remap as remap$ } from "../lib/primitives.js";
|
|
6
|
+
import { safeParse } from "../lib/schemas.js";
|
|
7
|
+
/** @internal */
|
|
8
|
+
export const AccessCheck$inboundSchema = z.object({
|
|
9
|
+
object: z.string(),
|
|
10
|
+
has_access: z.boolean(),
|
|
11
|
+
access_level: z.string(),
|
|
12
|
+
expires_at: z.nullable(z.string()),
|
|
13
|
+
}).transform((v) => {
|
|
14
|
+
return remap$(v, {
|
|
15
|
+
"has_access": "hasAccess",
|
|
16
|
+
"access_level": "accessLevel",
|
|
17
|
+
"expires_at": "expiresAt",
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
export function accessCheckFromJSON(jsonString) {
|
|
21
|
+
return safeParse(jsonString, (x) => AccessCheck$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'AccessCheck' from JSON`);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=accesscheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accesscheck.js","sourceRoot":"","sources":["../../../src/models/accesscheck.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAW9C,gBAAgB;AAChB,MAAM,CAAC,MAAM,yBAAyB,GAIlC,CAAC,CAAC,MAAM,CAAC;IACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CACnC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;IACjB,OAAO,MAAM,CAAC,CAAC,EAAE;QACf,YAAY,EAAE,WAAW;QACzB,cAAc,EAAE,aAAa;QAC7B,YAAY,EAAE,WAAW;KAC1B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,mBAAmB,CACjC,UAAkB;IAElB,OAAO,SAAS,CACd,UAAU,EACV,CAAC,CAAC,EAAE,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EACrD,yCAAyC,CAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -12,7 +12,7 @@ export declare const BookingStatus: {
|
|
|
12
12
|
readonly NoShow: "no_show";
|
|
13
13
|
};
|
|
14
14
|
export type BookingStatus = ClosedEnum<typeof BookingStatus>;
|
|
15
|
-
export type
|
|
15
|
+
export type IntakeAnswer = {};
|
|
16
16
|
/**
|
|
17
17
|
* ID by default, full object when expanded
|
|
18
18
|
*/
|
|
@@ -24,9 +24,9 @@ export type CheckoutUnion = Checkout | string;
|
|
|
24
24
|
export type Booking = {
|
|
25
25
|
object: string;
|
|
26
26
|
id: string;
|
|
27
|
-
eventTypeId:
|
|
28
|
-
customerId:
|
|
29
|
-
orderId:
|
|
27
|
+
eventTypeId: string;
|
|
28
|
+
customerId: string | null;
|
|
29
|
+
orderId: string | null;
|
|
30
30
|
status: BookingStatus;
|
|
31
31
|
timeZone: string;
|
|
32
32
|
attendeeName: string | null;
|
|
@@ -37,7 +37,7 @@ export type Booking = {
|
|
|
37
37
|
cancelReason: string | null;
|
|
38
38
|
createdAt: Date;
|
|
39
39
|
updatedAt: Date;
|
|
40
|
-
intakeAnswers:
|
|
40
|
+
intakeAnswers: Array<IntakeAnswer>;
|
|
41
41
|
startTime: Date;
|
|
42
42
|
endTime: Date;
|
|
43
43
|
cancelledAt: Date | null;
|
|
@@ -53,8 +53,8 @@ export type Booking = {
|
|
|
53
53
|
/** @internal */
|
|
54
54
|
export declare const BookingStatus$inboundSchema: z.ZodNativeEnum<typeof BookingStatus>;
|
|
55
55
|
/** @internal */
|
|
56
|
-
export declare const
|
|
57
|
-
export declare function
|
|
56
|
+
export declare const IntakeAnswer$inboundSchema: z.ZodType<IntakeAnswer, z.ZodTypeDef, unknown>;
|
|
57
|
+
export declare function intakeAnswerFromJSON(jsonString: string): SafeParseResult<IntakeAnswer, SDKValidationError>;
|
|
58
58
|
/** @internal */
|
|
59
59
|
export declare const EventTypeUnion$inboundSchema: z.ZodType<EventTypeUnion, z.ZodTypeDef, unknown>;
|
|
60
60
|
export declare function eventTypeUnionFromJSON(jsonString: string): SafeParseResult<EventTypeUnion, SDKValidationError>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"booking.d.ts","sourceRoot":"","sources":["../../../src/models/booking.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAA0B,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,SAAS,EAA2B,MAAM,gBAAgB,CAAC;AAEpE,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AAE7D,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"booking.d.ts","sourceRoot":"","sources":["../../../src/models/booking.ts"],"names":[],"mappings":"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"}
|