@kontent-ai/core-sdk 12.0.0-preview.12 → 12.0.0-preview.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/devkit/environment.utils.d.ts +2 -0
- package/dist/devkit/environment.utils.js +12 -0
- package/dist/devkit/environment.utils.js.map +1 -0
- package/dist/devkit_api.d.ts +1 -0
- package/dist/devkit_api.js +1 -0
- package/dist/devkit_api.js.map +1 -1
- package/dist/models/utility.models.d.ts +0 -12
- package/dist/public_api.d.ts +5 -2
- package/dist/public_api.js +3 -0
- package/dist/public_api.js.map +1 -1
- package/dist/sdk/paging-sdk-query.d.ts +2 -3
- package/dist/sdk/paging-sdk-query.js +3 -0
- package/dist/sdk/paging-sdk-query.js.map +1 -1
- package/dist/sdk/sdk-models.d.ts +7 -7
- package/dist/sdk/sdk-models.js +3 -1
- package/dist/sdk/sdk-models.js.map +1 -1
- package/dist/sdk/sdk-query.d.ts +2 -3
- package/dist/sdk/sdk-query.js +1 -0
- package/dist/sdk/sdk-query.js.map +1 -1
- package/dist/sdk/sdk-utils.d.ts +2 -0
- package/dist/sdk/sdk-utils.js +4 -0
- package/dist/sdk/sdk-utils.js.map +1 -0
- package/dist/sdk-info.js +1 -1
- package/dist/utils/type.utils.d.ts +2 -0
- package/dist/utils/type.utils.js +5 -0
- package/dist/utils/type.utils.js.map +1 -0
- package/dist/utils/url.utils.d.ts +5 -0
- package/dist/utils/url.utils.js +10 -0
- package/dist/utils/url.utils.js.map +1 -0
- package/lib/devkit/environment.utils.ts +15 -0
- package/lib/devkit_api.ts +2 -0
- package/lib/models/utility.models.ts +0 -12
- package/lib/public_api.ts +6 -2
- package/lib/sdk/paging-sdk-query.ts +10 -8
- package/lib/sdk/sdk-models.ts +10 -9
- package/lib/sdk/sdk-query.ts +4 -4
- package/lib/sdk/sdk-utils.ts +5 -0
- package/lib/utils/type.utils.ts +5 -0
- package/lib/utils/url.utils.ts +19 -0
- package/package.json +1 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
export function getEnvironmentRequiredValue(variableName) {
|
|
3
|
+
const value = getEnvironmentOptionalValue(variableName);
|
|
4
|
+
if (!value) {
|
|
5
|
+
throw new Error(`Missing environment variable '${chalk.red(variableName)}'`);
|
|
6
|
+
}
|
|
7
|
+
return value;
|
|
8
|
+
}
|
|
9
|
+
export function getEnvironmentOptionalValue(variableName) {
|
|
10
|
+
return process.env[variableName];
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=environment.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.utils.js","sourceRoot":"","sources":["../../lib/devkit/environment.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,2BAA2B,CAAC,YAAoB;IAC/D,MAAM,KAAK,GAAG,2BAA2B,CAAC,YAAY,CAAC,CAAC;IAExD,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,YAAoB;IAC/D,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC"}
|
package/dist/devkit_api.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
/** biome-ignore-all lint/performance/noBarrelFile: One barrel for exported API is fine */
|
|
2
|
+
export { getEnvironmentOptionalValue, getEnvironmentRequiredValue } from "./devkit/environment.utils.js";
|
|
2
3
|
export { deleteFolderRecursive } from "./devkit/script.utils.js";
|
|
3
4
|
export { replaceSdkVersionPlaceholder } from "./utils/sdk-version.utils.js";
|
package/dist/devkit_api.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/** biome-ignore-all lint/performance/noBarrelFile: One barrel for exported API is fine */
|
|
2
|
+
export { getEnvironmentOptionalValue, getEnvironmentRequiredValue } from "./devkit/environment.utils.js";
|
|
2
3
|
export { deleteFolderRecursive } from "./devkit/script.utils.js";
|
|
3
4
|
export { replaceSdkVersionPlaceholder } from "./utils/sdk-version.utils.js";
|
|
4
5
|
//# sourceMappingURL=devkit_api.js.map
|
package/dist/devkit_api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devkit_api.js","sourceRoot":"","sources":["../lib/devkit_api.ts"],"names":[],"mappings":"AAAA,0FAA0F;
|
|
1
|
+
{"version":3,"file":"devkit_api.js","sourceRoot":"","sources":["../lib/devkit_api.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAE1F,OAAO,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AACzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Improves the type readability by flattening the type.
|
|
3
|
-
*/
|
|
4
|
-
export type Prettify<T> = {
|
|
5
|
-
[K in keyof T]: T[K];
|
|
6
|
-
} & {};
|
|
7
|
-
/**
|
|
8
|
-
* Override selected properties of a type. Uses Omit to remove the properties and then adds the new properties.
|
|
9
|
-
*/
|
|
10
|
-
export type Override<Type, NewType extends {
|
|
11
|
-
[key in keyof Type]?: NewType[key];
|
|
12
|
-
}> = Omit<Type, keyof NewType> & NewType;
|
|
13
1
|
/**
|
|
14
2
|
* Represents an empty object type.
|
|
15
3
|
*/
|
package/dist/public_api.d.ts
CHANGED
|
@@ -5,11 +5,14 @@ export { getDefaultHttpService } from "./http/http.service.js";
|
|
|
5
5
|
export type { CommonHeaderNames, ContinuationHeaderName, ErrorResponseData, Header, HttpMethod, RetryStrategyOptions, SDKInfo, ValidationError, } from "./models/core.models.js";
|
|
6
6
|
export { type ErrorReason, type ErrorReasonData, KontentSdkError } from "./models/error.models.js";
|
|
7
7
|
export type { JsonArray, JsonObject, JsonValue } from "./models/json.models.js";
|
|
8
|
-
export type { EmptyObject
|
|
8
|
+
export type { EmptyObject } from "./models/utility.models.js";
|
|
9
9
|
export { createPagingQuery } from "./sdk/paging-sdk-query.js";
|
|
10
|
-
export type { PagingQuery, PagingQueryResult, Query, QueryResponse, QueryResponseMeta, QueryResult,
|
|
10
|
+
export type { kontentUuidSchema, nilUuid, PagingQuery, PagingQueryResult, Query, QueryResponse, QueryResponseMeta, QueryResult, SdkConfig, SuccessfulHttpResponse, } from "./sdk/sdk-models.js";
|
|
11
11
|
export { createQuery, extractContinuationToken } from "./sdk/sdk-query.js";
|
|
12
|
+
export { isPagingQuery } from "./sdk/sdk-utils.js";
|
|
12
13
|
export { isKontent404Error, isKontentSdkError } from "./utils/error.utils.js";
|
|
13
14
|
export { getSdkIdHeader } from "./utils/header.utils.js";
|
|
14
15
|
export { toRequiredRetryStrategyOptions } from "./utils/retry.utils.js";
|
|
15
16
|
export { tryCatch, tryCatchAsync } from "./utils/try.utils.js";
|
|
17
|
+
export { getCodenameSchema } from "./utils/type.utils.js";
|
|
18
|
+
export { getEndpointUrl } from "./utils/url.utils.js";
|
package/dist/public_api.js
CHANGED
|
@@ -4,8 +4,11 @@ export { getDefaultHttpService } from "./http/http.service.js";
|
|
|
4
4
|
export { KontentSdkError } from "./models/error.models.js";
|
|
5
5
|
export { createPagingQuery } from "./sdk/paging-sdk-query.js";
|
|
6
6
|
export { createQuery, extractContinuationToken } from "./sdk/sdk-query.js";
|
|
7
|
+
export { isPagingQuery } from "./sdk/sdk-utils.js";
|
|
7
8
|
export { isKontent404Error, isKontentSdkError } from "./utils/error.utils.js";
|
|
8
9
|
export { getSdkIdHeader } from "./utils/header.utils.js";
|
|
9
10
|
export { toRequiredRetryStrategyOptions } from "./utils/retry.utils.js";
|
|
10
11
|
export { tryCatch, tryCatchAsync } from "./utils/try.utils.js";
|
|
12
|
+
export { getCodenameSchema } from "./utils/type.utils.js";
|
|
13
|
+
export { getEndpointUrl } from "./utils/url.utils.js";
|
|
11
14
|
//# sourceMappingURL=public_api.js.map
|
package/dist/public_api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_api.js","sourceRoot":"","sources":["../lib/public_api.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAe/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAW/D,OAAO,EAA0C,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"public_api.js","sourceRoot":"","sources":["../lib/public_api.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAe/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAW/D,OAAO,EAA0C,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAa9D,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -4,9 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { GetNextPageData, RequestBody } from "../http/http.models.js";
|
|
6
6
|
import type { JsonValue } from "../models/json.models.js";
|
|
7
|
-
import type { EmptyObject } from "../models/utility.models.js";
|
|
8
7
|
import type { PagingQuery } from "./sdk-models.js";
|
|
9
8
|
import { type ResolveQueryData } from "./sdk-query.js";
|
|
10
|
-
export declare function createPagingQuery<TResponsePayload extends JsonValue, TRequestBody extends RequestBody, TMeta
|
|
9
|
+
export declare function createPagingQuery<TResponsePayload extends JsonValue, TRequestBody extends RequestBody, TMeta>(data: Omit<ResolveQueryData<TResponsePayload, TRequestBody, TMeta>, "nextPageState" | "pageIndex"> & {
|
|
11
10
|
readonly getNextPageData: GetNextPageData<TResponsePayload, TMeta>;
|
|
12
|
-
}):
|
|
11
|
+
}): PagingQuery<TResponsePayload, TMeta>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paging-sdk-query.js","sourceRoot":"","sources":["../../lib/sdk/paging-sdk-query.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"paging-sdk-query.js","sourceRoot":"","sources":["../../lib/sdk/paging-sdk-query.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAkD,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAwBhH,MAAM,UAAU,iBAAiB,CAChC,IAEC;IAED,MAAM,aAAa,GAEyE,CAAC,MAAM,EAAE,EAAE;QACtG,OAAO;YACN,GAAG,IAAI;YACP,SAAS,EAAE,CAAC;YACZ,gBAAgB,EAAE,MAAM,IAAI,EAAE;SAC9B,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACN,KAAK,EAAE,GAAG,EAAE;YACX,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QACzB,CAAC;QACD,GAAG,WAAW,CAAwC,IAAI,CAAC;QAC3D,YAAY,EAAE,KAAK,EAAE,MAAyB,EAAE,EAAE;YACjD,OAAO,MAAM,uBAAuB,CAAwC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QACpG,CAAC;QACD,KAAK,EAAE,CAAC,MAAyB,EAAE,EAAE,CAAC,yBAAyB,CAAwC,aAAa,CAAC,MAAM,CAAC,CAAC;KAC7H,CAAC;AACH,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,yBAAyB,CACxC,IAA6G;IAE7G,IAAI,aAAa,GAAkB,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;IACrF,IAAI,SAAS,GAAW,CAAC,CAAC;IAE1B,OAAO,mBAAmB,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAyD,MAAM,iBAAiB,CAC3F;YACC,GAAG,IAAI;YACP,aAAa,EAAE,aAAa;SAC5B,CACD,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,MAAM,CAAC,KAAK,CAAC;QACpB,CAAC;QAED,MAAM,MAAM,CAAC,QAAQ,CAAC;QAEtB,SAAS,EAAE,CAAC;QACZ,aAAa,GAAG,oBAAoB,CAAC;YACpC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,SAAS,EAAE,SAAS;YACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SACzB,CAAC,CAAC;IACJ,CAAC;AACF,CAAC;AAED,SAAS,oBAAoB,CAA4C,EACxE,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,QAAQ,GAMR;IACA,OAAO,KAAK,CAAC,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;SACtE,UAAU,EAAiB;SAC3B,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACrC,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,cAAc;KAC1B,CAAC,CAAC;SACF,IAAI,CAAC,EAAE,gBAAgB,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACxD,WAAW,EAAE,KAAK;KAClB,CAAC,CAAC;SACF,IAAI,CAAC,EAAE,gBAAgB,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAChE,WAAW,EAAE,KAAK;KAClB,CAAC,CAAC;SACF,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;QAC3C,MAAM,gBAAgB,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEvD,OAAO,KAAK,CAAC,gBAAgB,CAAC;aAC5B,UAAU,EAAiB;aAC3B,IAAI,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3D,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,mBAAmB;YAC/B,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;SACtC,CAAC,CAAC;aACF,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrD,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,aAAa;YACzB,WAAW,EAAE,CAAC,CAAC,WAAW;SAC1B,CAAC,CAAC;aACF,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YACjB,WAAW,EAAE,KAAK;SAClB,CAAC,CAAC,CAAC;IACN,CAAC,CAAC;SACD,SAAS,CAAC,GAAG,EAAE;QACf,OAAO;YACN,WAAW,EAAE,KAAK;SAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,uBAAuB,CACrC,IAIC;IAED,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,kBAAkB,CAAwC,IAAI,CAAC,CAAC;IAE5G,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO;YACN,OAAO,EAAE,KAAK;YACd,KAAK;SACL,CAAC;IACH,CAAC;IAED,OAAO,4BAA4B,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,kBAAkB,CAChC,IAIC;IAED,MAAM,gBAAgB,GAAkB,oBAAoB,CAAC;QAC5D,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,SAAS;KACnB,CAAC,CAAC;IAEH,OAAO,MAAM,qBAAqB,CAAwC;QACzE,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,gBAAgB;QAC/B,SAAS,EAAE,EAAE;KACb,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAA8E,EACjH,SAAS,EACT,aAAa,EACb,SAAS,GAST;IACA,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE,CAAC;QACzC,OAAO;YACN,OAAO,EAAE,IAAI;YACb,SAAS;SACT,CAAC;IACH,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,iBAAiB,CAAwC;QACnG,GAAG,SAAS;QACZ,aAAa,EAAE,aAAa;KAC5B,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO;YACN,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;SACZ,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAsD,CAAC,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC;IAErG,OAAO,MAAM,qBAAqB,CAAwC;QACzE,SAAS,EAAE,SAAS;QACpB,aAAa,EAAE,oBAAoB,CAAC;YACnC,eAAe,EAAE,SAAS,CAAC,eAAe;YAC1C,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;YAC5C,SAAS,EAAE,gBAAgB,CAAC,MAAM;YAClC,QAAQ,EAAE,QAAQ;SAClB,CAAC;QACF,SAAS,EAAE,gBAAgB;KAC3B,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CACpC,SAA4D,EAC5D,UAAkB;IAElB,MAAM,YAAY,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtC,IAAI,CAAC,YAAY,EAAE,CAAC;QACnB,OAAO;YACN,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,cAAc,CAAC;gBACrB,MAAM,EAAE,aAAa;gBACrB,GAAG,EAAE,UAAU;gBACf,OAAO,EAAE,sGAAsG;aAC/G,CAAC;SACF,CAAC;IACH,CAAC;IAED,OAAO;QACN,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC;QACzB,qBAAqB,EAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB;KAC1D,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,aAA4B;IACxD,OAAO,aAAa,CAAC,WAAW,CAAC;AAClC,CAAC"}
|
package/dist/sdk/sdk-models.d.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Shared query models/types intended to be reused across SDKs (e.g. Sync, Delivery, Management)
|
|
3
3
|
* to keep common code and behavior consistent.
|
|
4
4
|
*/
|
|
5
|
+
import z from "zod";
|
|
5
6
|
import type { AdapterResponse, HttpResponse, HttpService, PaginationConfig, RequestBody, ResponseData } from "../http/http.models.js";
|
|
6
7
|
import type { KontentSdkError } from "../models/error.models.js";
|
|
7
|
-
import type { Prettify } from "../models/utility.models.js";
|
|
8
8
|
export type QueryResponseMeta<TMeta = unknown> = Pick<AdapterResponse, "status" | "responseHeaders" | "url"> & {
|
|
9
9
|
readonly continuationToken?: string;
|
|
10
10
|
} & TMeta;
|
|
@@ -40,11 +40,12 @@ export type SdkConfig = {
|
|
|
40
40
|
readonly enable: boolean;
|
|
41
41
|
};
|
|
42
42
|
};
|
|
43
|
-
export type Query<TResponsePayload, TMeta
|
|
43
|
+
export type Query<TResponsePayload, TMeta> = {
|
|
44
|
+
schema: z.ZodType<TResponsePayload>;
|
|
44
45
|
toUrl(): string;
|
|
45
46
|
toPromise(): Promise<QueryResult<QueryResponse<TResponsePayload, TMeta>>>;
|
|
46
47
|
};
|
|
47
|
-
export type PagingQuery<TResponsePayload, TMeta
|
|
48
|
+
export type PagingQuery<TResponsePayload, TMeta> = Query<TResponsePayload, TMeta> & {
|
|
48
49
|
toAllPromise(config?: PaginationConfig): Promise<PagingQueryResult<QueryResponse<TResponsePayload, TMeta>>>;
|
|
49
50
|
pages(config?: PaginationConfig): AsyncGenerator<QueryResponse<TResponsePayload, TMeta>>;
|
|
50
51
|
};
|
|
@@ -64,10 +65,7 @@ export type NextPageStateWithRequest = {
|
|
|
64
65
|
readonly continuationToken?: never;
|
|
65
66
|
readonly nextPageUrl?: never;
|
|
66
67
|
};
|
|
67
|
-
export type SuccessfulHttpResponse<TResponsePayload extends ResponseData, TRequestBody extends RequestBody> =
|
|
68
|
-
readonly success: true;
|
|
69
|
-
}>["response"]>;
|
|
70
|
-
export type ResultOfSuccessfulQuery<TQuery extends Query<unknown>> = Extract<Awaited<ReturnType<TQuery["toPromise"]>>, {
|
|
68
|
+
export type SuccessfulHttpResponse<TResponsePayload extends ResponseData, TRequestBody extends RequestBody> = Extract<HttpResponse<TResponsePayload, TRequestBody>, {
|
|
71
69
|
readonly success: true;
|
|
72
70
|
}>["response"];
|
|
73
71
|
/**
|
|
@@ -87,6 +85,8 @@ export type PagingQueryResult<TResponsePayload> = (Success & {
|
|
|
87
85
|
readonly responses?: never;
|
|
88
86
|
readonly lastContinuationToken?: never;
|
|
89
87
|
});
|
|
88
|
+
export declare const nilUuid = "00000000-0000-0000-0000-000000000000";
|
|
89
|
+
export declare const kontentUuidSchema: z.ZodUnion<readonly [z.ZodUUID, z.ZodLiteral<"00000000-0000-0000-0000-000000000000">]>;
|
|
90
90
|
type Success = {
|
|
91
91
|
readonly success: true;
|
|
92
92
|
readonly error?: never;
|
package/dist/sdk/sdk-models.js
CHANGED
|
@@ -2,5 +2,7 @@
|
|
|
2
2
|
* Shared query models/types intended to be reused across SDKs (e.g. Sync, Delivery, Management)
|
|
3
3
|
* to keep common code and behavior consistent.
|
|
4
4
|
*/
|
|
5
|
-
|
|
5
|
+
import z from "zod";
|
|
6
|
+
export const nilUuid = "00000000-0000-0000-0000-000000000000";
|
|
7
|
+
export const kontentUuidSchema = z.union([z.uuid({ version: "v4" }), z.literal(nilUuid)]);
|
|
6
8
|
//# sourceMappingURL=sdk-models.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-models.js","sourceRoot":"","sources":["../../lib/sdk/sdk-models.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
1
|
+
{"version":3,"file":"sdk-models.js","sourceRoot":"","sources":["../../lib/sdk/sdk-models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,CAAC,MAAM,KAAK,CAAC;AA2FpB,MAAM,CAAC,MAAM,OAAO,GAAG,sCAAsC,CAAC;AAE9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/sdk/sdk-query.d.ts
CHANGED
|
@@ -6,9 +6,8 @@ import type { ZodType } from "zod";
|
|
|
6
6
|
import type { HttpService, RequestBody } from "../http/http.models.js";
|
|
7
7
|
import type { Header, SDKInfo } from "../models/core.models.js";
|
|
8
8
|
import type { JsonValue } from "../models/json.models.js";
|
|
9
|
-
import type { EmptyObject } from "../models/utility.models.js";
|
|
10
9
|
import type { NextPageStateWithRequest, Query, SdkConfig, SuccessfulHttpResponse } from "./sdk-models.js";
|
|
11
|
-
export type QueryPromiseResult<TResponsePayload extends JsonValue, TMeta
|
|
10
|
+
export type QueryPromiseResult<TResponsePayload extends JsonValue, TMeta> = ReturnType<Pick<Query<TResponsePayload, TMeta>, "toPromise">["toPromise"]>;
|
|
12
11
|
type MetadataContextData = {
|
|
13
12
|
readonly continuationToken?: string;
|
|
14
13
|
};
|
|
@@ -26,7 +25,7 @@ export type ResolveQueryData<TResponsePayload extends JsonValue, TRequestBody ex
|
|
|
26
25
|
readonly sdkInfo: SDKInfo;
|
|
27
26
|
readonly authorizationApiKey: string | undefined;
|
|
28
27
|
} & MetadataMapperConfig<TResponsePayload, TRequestBody, TMeta>;
|
|
29
|
-
export declare function createQuery<TResponsePayload extends JsonValue, TRequestBody extends RequestBody, TMeta
|
|
28
|
+
export declare function createQuery<TResponsePayload extends JsonValue, TRequestBody extends RequestBody, TMeta>(data: Omit<ResolveQueryData<TResponsePayload, TRequestBody, TMeta>, "continuationToken" | "nextPageState" | "pageIndex">): Pick<Query<TResponsePayload, TMeta>, "toPromise" | "schema">;
|
|
30
29
|
export declare function extractContinuationToken(responseHeaders: readonly Header[]): string | undefined;
|
|
31
30
|
export declare function resolveQueryAsync<TResponsePayload extends JsonValue, TRequestBody extends RequestBody, TMeta>({ config, request, mapMetadata, zodSchema, sdkInfo, authorizationApiKey, nextPageState, }: ResolveQueryData<TResponsePayload, TRequestBody, TMeta>): QueryPromiseResult<TResponsePayload, TMeta>;
|
|
32
31
|
export {};
|
package/dist/sdk/sdk-query.js
CHANGED
|
@@ -7,6 +7,7 @@ import { createSdkError } from "../utils/error.utils.js";
|
|
|
7
7
|
import { getSdkIdHeader } from "../utils/header.utils.js";
|
|
8
8
|
export function createQuery(data) {
|
|
9
9
|
return {
|
|
10
|
+
schema: data.zodSchema,
|
|
10
11
|
toPromise: async () => {
|
|
11
12
|
return await resolveQueryAsync({
|
|
12
13
|
...data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-query.js","sourceRoot":"","sources":["../../lib/sdk/sdk-query.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"sdk-query.js","sourceRoot":"","sources":["../../lib/sdk/sdk-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-utils.js","sourceRoot":"","sources":["../../lib/sdk/sdk-utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAkB,KAA8C;IAC5F,OAAO,WAAW,IAAI,KAAK,IAAI,cAAc,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,CAAC;AAC5E,CAAC"}
|
package/dist/sdk-info.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.utils.js","sourceRoot":"","sources":["../../lib/utils/type.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,iBAAiB,CAA6C,SAAsB;IACnG,OAAO,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAC3E,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function getEndpointUrl({ environmentId, path, baseUrl, }) {
|
|
2
|
+
return `${removeTrailingSlashes(baseUrl)}${removeDuplicateSlashes(`/${environmentId}/${path}`)}`;
|
|
3
|
+
}
|
|
4
|
+
function removeDuplicateSlashes(path) {
|
|
5
|
+
return path.replace(/\/+/g, "/");
|
|
6
|
+
}
|
|
7
|
+
function removeTrailingSlashes(path) {
|
|
8
|
+
return path.replace(/\/+$/, "");
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=url.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.utils.js","sourceRoot":"","sources":["../../lib/utils/url.utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,EAC9B,aAAa,EACb,IAAI,EACJ,OAAO,GAKP;IACA,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,GAAG,sBAAsB,CAAC,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;AAClG,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
|
|
3
|
+
export function getEnvironmentRequiredValue(variableName: string): string {
|
|
4
|
+
const value = getEnvironmentOptionalValue(variableName);
|
|
5
|
+
|
|
6
|
+
if (!value) {
|
|
7
|
+
throw new Error(`Missing environment variable '${chalk.red(variableName)}'`);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function getEnvironmentOptionalValue(variableName: string): string | undefined {
|
|
14
|
+
return process.env[variableName];
|
|
15
|
+
}
|
package/lib/devkit_api.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
/** biome-ignore-all lint/performance/noBarrelFile: One barrel for exported API is fine */
|
|
2
|
+
|
|
3
|
+
export { getEnvironmentOptionalValue, getEnvironmentRequiredValue } from "./devkit/environment.utils.js";
|
|
2
4
|
export { deleteFolderRecursive } from "./devkit/script.utils.js";
|
|
3
5
|
export { replaceSdkVersionPlaceholder } from "./utils/sdk-version.utils.js";
|
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Improves the type readability by flattening the type.
|
|
3
|
-
*/
|
|
4
|
-
export type Prettify<T> = {
|
|
5
|
-
[K in keyof T]: T[K];
|
|
6
|
-
} & {};
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Override selected properties of a type. Uses Omit to remove the properties and then adds the new properties.
|
|
10
|
-
*/
|
|
11
|
-
export type Override<Type, NewType extends { [key in keyof Type]?: NewType[key] }> = Omit<Type, keyof NewType> & NewType;
|
|
12
|
-
|
|
13
1
|
/**
|
|
14
2
|
* Represents an empty object type.
|
|
15
3
|
*/
|
package/lib/public_api.ts
CHANGED
|
@@ -27,21 +27,25 @@ export type {
|
|
|
27
27
|
} from "./models/core.models.js";
|
|
28
28
|
export { type ErrorReason, type ErrorReasonData, KontentSdkError } from "./models/error.models.js";
|
|
29
29
|
export type { JsonArray, JsonObject, JsonValue } from "./models/json.models.js";
|
|
30
|
-
export type { EmptyObject
|
|
30
|
+
export type { EmptyObject } from "./models/utility.models.js";
|
|
31
31
|
export { createPagingQuery } from "./sdk/paging-sdk-query.js";
|
|
32
32
|
export type {
|
|
33
|
+
kontentUuidSchema,
|
|
34
|
+
nilUuid,
|
|
33
35
|
PagingQuery,
|
|
34
36
|
PagingQueryResult,
|
|
35
37
|
Query,
|
|
36
38
|
QueryResponse,
|
|
37
39
|
QueryResponseMeta,
|
|
38
40
|
QueryResult,
|
|
39
|
-
ResultOfSuccessfulQuery,
|
|
40
41
|
SdkConfig,
|
|
41
42
|
SuccessfulHttpResponse,
|
|
42
43
|
} from "./sdk/sdk-models.js";
|
|
43
44
|
export { createQuery, extractContinuationToken } from "./sdk/sdk-query.js";
|
|
45
|
+
export { isPagingQuery } from "./sdk/sdk-utils.js";
|
|
44
46
|
export { isKontent404Error, isKontentSdkError } from "./utils/error.utils.js";
|
|
45
47
|
export { getSdkIdHeader } from "./utils/header.utils.js";
|
|
46
48
|
export { toRequiredRetryStrategyOptions } from "./utils/retry.utils.js";
|
|
47
49
|
export { tryCatch, tryCatchAsync } from "./utils/try.utils.js";
|
|
50
|
+
export { getCodenameSchema } from "./utils/type.utils.js";
|
|
51
|
+
export { getEndpointUrl } from "./utils/url.utils.js";
|
|
@@ -6,12 +6,11 @@
|
|
|
6
6
|
import { match, P } from "ts-pattern";
|
|
7
7
|
import type { GetNextPageData, PaginationConfig, RequestBody } from "../http/http.models.js";
|
|
8
8
|
import type { JsonValue } from "../models/json.models.js";
|
|
9
|
-
import type { EmptyObject } from "../models/utility.models.js";
|
|
10
9
|
import { createSdkError } from "../utils/error.utils.js";
|
|
11
10
|
import type { NextPageStateWithRequest, PagingQuery, PagingQueryResult, QueryResponse } from "./sdk-models.js";
|
|
12
11
|
import { createQuery, type QueryPromiseResult, type ResolveQueryData, resolveQueryAsync } from "./sdk-query.js";
|
|
13
12
|
|
|
14
|
-
type PagingQueryPromiseResult<TResponsePayload extends JsonValue, TMeta
|
|
13
|
+
type PagingQueryPromiseResult<TResponsePayload extends JsonValue, TMeta> = ReturnType<
|
|
15
14
|
Pick<PagingQuery<TResponsePayload, TMeta>, "toAllPromise">["toAllPromise"]
|
|
16
15
|
>;
|
|
17
16
|
|
|
@@ -33,11 +32,11 @@ type FetchAllPagesResult<TResponsePayload extends JsonValue, TMeta> =
|
|
|
33
32
|
readonly error: ReturnType<typeof createSdkError>;
|
|
34
33
|
};
|
|
35
34
|
|
|
36
|
-
export function createPagingQuery<TResponsePayload extends JsonValue, TRequestBody extends RequestBody, TMeta
|
|
35
|
+
export function createPagingQuery<TResponsePayload extends JsonValue, TRequestBody extends RequestBody, TMeta>(
|
|
37
36
|
data: Omit<ResolveQueryData<TResponsePayload, TRequestBody, TMeta>, "nextPageState" | "pageIndex"> & {
|
|
38
37
|
readonly getNextPageData: GetNextPageData<TResponsePayload, TMeta>;
|
|
39
38
|
},
|
|
40
|
-
):
|
|
39
|
+
): PagingQuery<TResponsePayload, TMeta> {
|
|
41
40
|
const getPagingData: (
|
|
42
41
|
config: PaginationConfig | undefined,
|
|
43
42
|
) => Parameters<typeof resolvePagingQueryAsync<TResponsePayload, TRequestBody, TMeta>>[0] = (config) => {
|
|
@@ -49,6 +48,9 @@ export function createPagingQuery<TResponsePayload extends JsonValue, TRequestBo
|
|
|
49
48
|
};
|
|
50
49
|
|
|
51
50
|
return {
|
|
51
|
+
toUrl: () => {
|
|
52
|
+
return data.request.url;
|
|
53
|
+
},
|
|
52
54
|
...createQuery<TResponsePayload, TRequestBody, TMeta>(data),
|
|
53
55
|
toAllPromise: async (config?: PaginationConfig) => {
|
|
54
56
|
return await resolvePagingQueryAsync<TResponsePayload, TRequestBody, TMeta>(getPagingData(config));
|
|
@@ -57,7 +59,7 @@ export function createPagingQuery<TResponsePayload extends JsonValue, TRequestBo
|
|
|
57
59
|
};
|
|
58
60
|
}
|
|
59
61
|
|
|
60
|
-
async function* createPagingQueryIterator<TResponsePayload extends JsonValue, TRequestBody extends RequestBody, TMeta
|
|
62
|
+
async function* createPagingQueryIterator<TResponsePayload extends JsonValue, TRequestBody extends RequestBody, TMeta>(
|
|
61
63
|
data: Omit<Parameters<typeof resolvePagingQueryAsync<TResponsePayload, TRequestBody, TMeta>>[0], "pageIndex">,
|
|
62
64
|
): AsyncGenerator<QueryResponse<TResponsePayload, TMeta>> {
|
|
63
65
|
let nextPageState: NextPageState = { hasNextPage: true, pageSource: "firstRequest" };
|
|
@@ -136,7 +138,7 @@ function resolveNextPageState<TResponsePayload extends JsonValue, TMeta>({
|
|
|
136
138
|
});
|
|
137
139
|
}
|
|
138
140
|
|
|
139
|
-
async function resolvePagingQueryAsync<TResponsePayload extends JsonValue, TRequestBody extends RequestBody
|
|
141
|
+
async function resolvePagingQueryAsync<TResponsePayload extends JsonValue, TRequestBody extends RequestBody, TMeta>(
|
|
140
142
|
data: Omit<ResolveQueryData<TResponsePayload, TRequestBody, TMeta>, "nextPageState" | "getNextPageData"> & {
|
|
141
143
|
readonly getNextPageData: GetNextPageData<TResponsePayload, TMeta>;
|
|
142
144
|
readonly paginationConfig: PaginationConfig;
|
|
@@ -155,7 +157,7 @@ async function resolvePagingQueryAsync<TResponsePayload extends JsonValue, TRequ
|
|
|
155
157
|
return validateAndBuildPagingResult(responses, data.request.url);
|
|
156
158
|
}
|
|
157
159
|
|
|
158
|
-
async function fetchAllPagesAsync<TResponsePayload extends JsonValue, TRequestBody extends RequestBody
|
|
160
|
+
async function fetchAllPagesAsync<TResponsePayload extends JsonValue, TRequestBody extends RequestBody, TMeta>(
|
|
159
161
|
data: Omit<ResolveQueryData<TResponsePayload, TRequestBody, TMeta>, "nextPageState"> & {
|
|
160
162
|
readonly getNextPageData: GetNextPageData<TResponsePayload, TMeta>;
|
|
161
163
|
readonly paginationConfig: PaginationConfig;
|
|
@@ -176,7 +178,7 @@ async function fetchAllPagesAsync<TResponsePayload extends JsonValue, TRequestBo
|
|
|
176
178
|
});
|
|
177
179
|
}
|
|
178
180
|
|
|
179
|
-
async function fetchAllPagesInternal<TResponsePayload extends JsonValue, TRequestBody extends RequestBody, TMeta
|
|
181
|
+
async function fetchAllPagesInternal<TResponsePayload extends JsonValue, TRequestBody extends RequestBody, TMeta>({
|
|
180
182
|
queryData,
|
|
181
183
|
nextPageState,
|
|
182
184
|
responses,
|
package/lib/sdk/sdk-models.ts
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
* to keep common code and behavior consistent.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import z from "zod";
|
|
6
7
|
import type { AdapterResponse, HttpResponse, HttpService, PaginationConfig, RequestBody, ResponseData } from "../http/http.models.js";
|
|
7
8
|
import type { KontentSdkError } from "../models/error.models.js";
|
|
8
|
-
import type { Prettify } from "../models/utility.models.js";
|
|
9
9
|
|
|
10
10
|
export type QueryResponseMeta<TMeta = unknown> = Pick<AdapterResponse, "status" | "responseHeaders" | "url"> & {
|
|
11
11
|
readonly continuationToken?: string;
|
|
@@ -47,12 +47,13 @@ export type SdkConfig = {
|
|
|
47
47
|
};
|
|
48
48
|
};
|
|
49
49
|
|
|
50
|
-
export type Query<TResponsePayload, TMeta
|
|
50
|
+
export type Query<TResponsePayload, TMeta> = {
|
|
51
|
+
schema: z.ZodType<TResponsePayload>;
|
|
51
52
|
toUrl(): string;
|
|
52
53
|
toPromise(): Promise<QueryResult<QueryResponse<TResponsePayload, TMeta>>>;
|
|
53
54
|
};
|
|
54
55
|
|
|
55
|
-
export type PagingQuery<TResponsePayload, TMeta
|
|
56
|
+
export type PagingQuery<TResponsePayload, TMeta> = Query<TResponsePayload, TMeta> & {
|
|
56
57
|
toAllPromise(config?: PaginationConfig): Promise<PagingQueryResult<QueryResponse<TResponsePayload, TMeta>>>;
|
|
57
58
|
pages(config?: PaginationConfig): AsyncGenerator<QueryResponse<TResponsePayload, TMeta>>;
|
|
58
59
|
};
|
|
@@ -77,12 +78,8 @@ export type NextPageStateWithRequest =
|
|
|
77
78
|
readonly nextPageUrl?: never;
|
|
78
79
|
};
|
|
79
80
|
|
|
80
|
-
export type SuccessfulHttpResponse<TResponsePayload extends ResponseData, TRequestBody extends RequestBody> =
|
|
81
|
-
|
|
82
|
-
>;
|
|
83
|
-
|
|
84
|
-
export type ResultOfSuccessfulQuery<TQuery extends Query<unknown>> = Extract<
|
|
85
|
-
Awaited<ReturnType<TQuery["toPromise"]>>,
|
|
81
|
+
export type SuccessfulHttpResponse<TResponsePayload extends ResponseData, TRequestBody extends RequestBody> = Extract<
|
|
82
|
+
HttpResponse<TResponsePayload, TRequestBody>,
|
|
86
83
|
{ readonly success: true }
|
|
87
84
|
>["response"];
|
|
88
85
|
|
|
@@ -97,6 +94,10 @@ export type PagingQueryResult<TResponsePayload> =
|
|
|
97
94
|
| (Success & { readonly responses: TResponsePayload[]; readonly lastContinuationToken: string | undefined })
|
|
98
95
|
| (Failure & { readonly responses?: never; readonly lastContinuationToken?: never });
|
|
99
96
|
|
|
97
|
+
export const nilUuid = "00000000-0000-0000-0000-000000000000";
|
|
98
|
+
|
|
99
|
+
export const kontentUuidSchema = z.union([z.uuid({ version: "v4" }), z.literal(nilUuid)]);
|
|
100
|
+
|
|
100
101
|
type Success = {
|
|
101
102
|
readonly success: true;
|
|
102
103
|
readonly error?: never;
|
package/lib/sdk/sdk-query.ts
CHANGED
|
@@ -8,12 +8,11 @@ import type { HttpService, RequestBody } from "../http/http.models.js";
|
|
|
8
8
|
import { getDefaultHttpService } from "../http/http.service.js";
|
|
9
9
|
import type { CommonHeaderNames, ContinuationHeaderName, Header, SDKInfo } from "../models/core.models.js";
|
|
10
10
|
import type { JsonValue } from "../models/json.models.js";
|
|
11
|
-
import type { EmptyObject } from "../models/utility.models.js";
|
|
12
11
|
import { createSdkError } from "../utils/error.utils.js";
|
|
13
12
|
import { getSdkIdHeader } from "../utils/header.utils.js";
|
|
14
13
|
import type { NextPageStateWithRequest, Query, SdkConfig, SuccessfulHttpResponse } from "./sdk-models.js";
|
|
15
14
|
|
|
16
|
-
export type QueryPromiseResult<TResponsePayload extends JsonValue, TMeta
|
|
15
|
+
export type QueryPromiseResult<TResponsePayload extends JsonValue, TMeta> = ReturnType<
|
|
17
16
|
Pick<Query<TResponsePayload, TMeta>, "toPromise">["toPromise"]
|
|
18
17
|
>;
|
|
19
18
|
|
|
@@ -38,10 +37,11 @@ export type ResolveQueryData<TResponsePayload extends JsonValue, TRequestBody ex
|
|
|
38
37
|
readonly authorizationApiKey: string | undefined;
|
|
39
38
|
} & MetadataMapperConfig<TResponsePayload, TRequestBody, TMeta>;
|
|
40
39
|
|
|
41
|
-
export function createQuery<TResponsePayload extends JsonValue, TRequestBody extends RequestBody, TMeta
|
|
40
|
+
export function createQuery<TResponsePayload extends JsonValue, TRequestBody extends RequestBody, TMeta>(
|
|
42
41
|
data: Omit<ResolveQueryData<TResponsePayload, TRequestBody, TMeta>, "continuationToken" | "nextPageState" | "pageIndex">,
|
|
43
|
-
): Pick<Query<TResponsePayload, TMeta>, "toPromise"> {
|
|
42
|
+
): Pick<Query<TResponsePayload, TMeta>, "toPromise" | "schema"> {
|
|
44
43
|
return {
|
|
44
|
+
schema: data.zodSchema,
|
|
45
45
|
toPromise: async () => {
|
|
46
46
|
return await resolveQueryAsync<TResponsePayload, TRequestBody, TMeta>({
|
|
47
47
|
...data,
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PagingQuery, Query } from "./sdk-models.js";
|
|
2
|
+
|
|
3
|
+
export function isPagingQuery<T, TBody = null>(query: Query<T, TBody> | PagingQuery<T, TBody>): query is PagingQuery<T, TBody> {
|
|
4
|
+
return "toPromise" in query && "toAllPromise" in query && "pages" in query;
|
|
5
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function getEndpointUrl({
|
|
2
|
+
environmentId,
|
|
3
|
+
path,
|
|
4
|
+
baseUrl,
|
|
5
|
+
}: {
|
|
6
|
+
readonly environmentId: string;
|
|
7
|
+
readonly path: string;
|
|
8
|
+
readonly baseUrl: string;
|
|
9
|
+
}): string {
|
|
10
|
+
return `${removeTrailingSlashes(baseUrl)}${removeDuplicateSlashes(`/${environmentId}/${path}`)}`;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function removeDuplicateSlashes(path: string): string {
|
|
14
|
+
return path.replace(/\/+/g, "/");
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function removeTrailingSlashes(path: string): string {
|
|
18
|
+
return path.replace(/\/+$/, "");
|
|
19
|
+
}
|