@squidcloud/client 1.0.435 → 1.0.436

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/cjs/index.js +1 -1
  2. package/dist/esm/index.js +1 -1
  3. package/dist/internal-common/src/metric-name.d.ts +9 -0
  4. package/dist/internal-common/src/public-types/ai-agent-integrations.public-types.d.ts +4 -0
  5. package/dist/internal-common/src/public-types/ai-agent.public-types.d.ts +9 -2
  6. package/dist/internal-common/src/public-types/ai-query.public-types.d.ts +22 -37
  7. package/dist/internal-common/src/public-types/integration.public-types.d.ts +1 -1
  8. package/dist/internal-common/src/public-types-backend/api-call.public-context.d.ts +30 -0
  9. package/dist/internal-common/src/public-types-backend/mutation.public-context.d.ts +148 -0
  10. package/dist/internal-common/src/public-types-backend/native-query.public-context.d.ts +72 -0
  11. package/dist/internal-common/src/public-types-backend/query.public-context.d.ts +177 -0
  12. package/dist/internal-common/src/types/ai-agent.types.d.ts +191 -0
  13. package/dist/internal-common/src/types/ai-knowledge-base.types.d.ts +202 -0
  14. package/dist/internal-common/src/types/ai-matchmaking.types.d.ts +59 -0
  15. package/dist/internal-common/src/types/backend-function.types.d.ts +1 -0
  16. package/dist/internal-common/src/types/communication.types.d.ts +1 -0
  17. package/dist/internal-common/src/types/document.types.d.ts +1 -0
  18. package/dist/internal-common/src/types/file.types.d.ts +6 -0
  19. package/dist/internal-common/src/types/headers.types.d.ts +17 -0
  20. package/dist/internal-common/src/types/management-api-key.types.d.ts +92 -0
  21. package/dist/internal-common/src/types/mutation.types.d.ts +1 -0
  22. package/dist/internal-common/src/types/notification.types.d.ts +5 -0
  23. package/dist/internal-common/src/types/observability.types.d.ts +101 -0
  24. package/dist/internal-common/src/types/query.types.d.ts +13 -0
  25. package/dist/internal-common/src/types/secret.types.d.ts +7 -0
  26. package/dist/internal-common/src/types/socket.types.d.ts +1 -0
  27. package/dist/internal-common/src/types/stage.d.ts +9 -0
  28. package/dist/internal-common/src/types/time-units.d.ts +1 -0
  29. package/dist/internal-common/src/types/url-shortener.types.d.ts +45 -0
  30. package/dist/internal-common/src/utils/array.d.ts +7 -0
  31. package/dist/internal-common/src/utils/e2e-test-utils.d.ts +2 -0
  32. package/dist/internal-common/src/utils/file-utils.d.ts +2 -0
  33. package/dist/internal-common/src/utils/global.utils.d.ts +1 -0
  34. package/dist/internal-common/src/utils/http.d.ts +5 -0
  35. package/dist/internal-common/src/utils/lock.manager.d.ts +14 -0
  36. package/dist/internal-common/src/utils/metric-utils.d.ts +4 -0
  37. package/dist/internal-common/src/utils/metrics.types.d.ts +7 -0
  38. package/dist/internal-common/src/utils/object.d.ts +86 -0
  39. package/dist/internal-common/src/utils/serialization.d.ts +18 -0
  40. package/dist/internal-common/src/utils/squid.constants.d.ts +1 -0
  41. package/dist/internal-common/src/utils/trace-id-generator.d.ts +1 -0
  42. package/dist/internal-common/src/utils/validation.d.ts +19 -0
  43. package/dist/internal-common/src/websocket.impl.d.ts +26 -0
  44. package/dist/typescript-client/src/agent/ai-agent-client-reference.d.ts +2 -1
  45. package/dist/typescript-client/src/ai-client.d.ts +7 -1
  46. package/dist/typescript-client/src/index.d.ts +1 -0
  47. package/dist/typescript-client/src/management-client.d.ts +129 -0
  48. package/dist/typescript-client/src/version.d.ts +1 -1
  49. package/package.json +1 -1
@@ -0,0 +1,13 @@
1
+ import { Condition, SimpleCondition } from '../public-types/query.public-types';
2
+ /**
3
+ * Generates the regex pattern, handling special characters as follows:
4
+ * - `_` is replaced with a `.`
5
+ * - `%` is replaced with `[\s\S]*`.
6
+ * - The above characters can be escaped with \, eg. `\_` is replaced with `_` and `\%` with `%`.
7
+ * - All special characters in regex (-, /, \, ^, $, *, +, ?, ., (, ), |, [, ], {, }) get escaped with \
8
+ *
9
+ * Exported for testing purposes.
10
+ * */
11
+ export declare function replaceSpecialCharacters(input: string): string;
12
+ /** Returns true if the condition is a 'SimpleCondition' or false otherwise. */
13
+ export declare function isSimpleCondition(condition: Condition): condition is SimpleCondition;
@@ -0,0 +1,7 @@
1
+ import { ApiKeyEntry } from '../public-types/secret.public-types';
2
+ export declare const BACKEND_API_KEY = "_BACKEND_API_KEY";
3
+ export declare const APP_API_KEY = "APP_API_KEY";
4
+ export declare const AGENT_API_HEADER = "x-squid-agent-api-key";
5
+ export interface AgentSecrets {
6
+ apiKey: ApiKeyEntry | undefined;
7
+ }
@@ -0,0 +1 @@
1
+ export declare const SOCKET_RECONNECT_TIMEOUT: number;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Stage of the Squid deployment:
3
+ * - 'local' - Squid is run locally.
4
+ * - 'prod' - Production environment (https://console.getsquid.ai).
5
+ * - 'sandbox' - One of the sandbox environments (https://console.sandbox.squid.cloud).
6
+ * - 'staging' - One of the staging environments (https://console.staging.squid.cloud).
7
+ */
8
+ export declare const STAGES: readonly ["local", "prod", "sandbox", "staging"];
9
+ export type Stage = (typeof STAGES)[number];
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,45 @@
1
+ import { AppId } from '../public-types/communication.public-types';
2
+ /**
3
+ * Request to create a shortened URL.
4
+ */
5
+ export interface ShortUrlRequest {
6
+ /** The URL to shorten. It must be a valid URL and should include the protocol (start with http:// or https://). */
7
+ url: string;
8
+ /** The application ID that will own this shortened URL. */
9
+ appId: AppId;
10
+ /** Seconds to live for the shortened URL. If set to 0, the URL will never expire. Defaults to 1 day. */
11
+ secondsToLive?: number;
12
+ /** Optional file extension to include in the shortened URL ID (e.g., 'pdf', 'html'). The extension becomes part of the ID, so 'abc123.pdf' and 'abc123.jpg' are distinct URLs. */
13
+ fileExtension?: string;
14
+ }
15
+ /**
16
+ * Request to create shortened URLs.
17
+ */
18
+ export interface ShortUrlBulkRequest {
19
+ /** The URLs to shorten. They must be valid URLs and should include the protocol (start with http:// or https://). */
20
+ urls: string[];
21
+ /** The application ID that will own these shortened URLs. */
22
+ appId: AppId;
23
+ /** Seconds to live for all shortened URLs. If set to 0, the URLs will never expire. Defaults to 1 day. */
24
+ secondsToLive?: number;
25
+ /** Optional file extension to include in all shortened URL IDs (e.g., 'pdf', 'html'). The extension becomes part of each ID, so 'abc123.pdf' and 'abc123.jpg' are distinct URLs. */
26
+ fileExtension?: string;
27
+ }
28
+ /**
29
+ * Request to delete a shortened URL.
30
+ */
31
+ export interface ShortUrlDeleteRequest {
32
+ /** The ID of the shortened URL to delete. */
33
+ id: string;
34
+ /** The application ID that owns the shortened URL. */
35
+ appId: AppId;
36
+ }
37
+ /**
38
+ * Request to delete a shortened URL.
39
+ */
40
+ export interface ShortUrlBulkDeleteRequest {
41
+ /** The IDs of the shortened URLs to delete. */
42
+ ids: string[];
43
+ /** The application ID that owns the shortened URLs. */
44
+ appId: AppId;
45
+ }
@@ -0,0 +1,7 @@
1
+ export declare function truncateOrPadArray(arr: number[], length: number): number[];
2
+ /**
3
+ * Computes a single “recommended” chunk size so that if you loop
4
+ * `for (let i = 0; i < length; i += chunkSize)`,
5
+ * no slice will exceed `maxChunkSize` and all chunk sizes are 'almost' equal.
6
+ */
7
+ export declare function computeRecommendedChunkSize(length: number, maxChunkSize: number): number;
@@ -0,0 +1,2 @@
1
+ /** Returns true if the application is run by a Playwright test. */
2
+ export declare function isPlaywrightTestMode(): boolean | undefined;
@@ -0,0 +1,2 @@
1
+ /** Gets file extension from filename. */
2
+ export declare function getFileExtension(filename: string): string | undefined;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import { AppId } from '../public-types/communication.public-types';
2
+ import { Stage } from '../types/stage';
3
+ export declare const KOTLIN_CONTROLLERS: string[];
4
+ export declare function getEnvironmentPrefix(shard: string | undefined, region: string, cloudId: string, stage: Stage): string;
5
+ export declare function getApplicationUrl(environmentPrefix: string, appId: string, path: string, appIdPlaceholder?: AppId, environmentPrefixPlaceholder?: string, forceKotlin?: boolean): string;
@@ -0,0 +1,14 @@
1
+ type LockMutex = string;
2
+ /**
3
+ * A simple lock manager that locks a list of mutexes.
4
+ * When locking a list of mutexes, the lock will start only when all the mutexes are available - preventing partial lock
5
+ * and potential deadlocks.
6
+ */
7
+ export declare class LockManager {
8
+ private readonly locks;
9
+ lock(...mutexes: LockMutex[]): Promise<void>;
10
+ release(...mutexes: LockMutex[]): void;
11
+ canGetLock(...mutexes: LockMutex[]): boolean;
12
+ lockSync(...mutexes: LockMutex[]): void;
13
+ }
14
+ export {};
@@ -0,0 +1,4 @@
1
+ import { QueryMetricsRequestCommon, QueryMetricsResultGroup } from '../public-types/metric.public-types';
2
+ export type QueryMetricsRequestIntervals = Required<Pick<QueryMetricsRequestCommon, 'fillValue' | 'fn' | 'groupByTags' | 'periodEndSeconds' | 'periodStartSeconds' | 'pointIntervalAlignment' | 'pointIntervalSeconds' | 'tagDomains' | 'noDataBehavior'>>;
3
+ /** Adds missed known tag domain groups and fills all missed points with a request.fillValue. */
4
+ export declare function fillMissedPoints(request: QueryMetricsRequestIntervals, resultGroups: Array<QueryMetricsResultGroup>): void;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Type suffixes defines the type of the metric and can be used for
3
+ * metric value validation for incoming metrics.
4
+ */
5
+ export declare const SQUID_METRIC_TYPE_SUFFIXES: readonly ["_count", "_time", "_size", "_entries", "_value"];
6
+ /** Returns true if the given metric has a valid metric type. */
7
+ export declare function hasValidMetricTypeSuffix(metricName: string): boolean;
@@ -0,0 +1,86 @@
1
+ /** Returns a value by the `path`. Works with array indexes, like a.b[0]. */
2
+ export declare function getInPath(obj: unknown, path: string): any;
3
+ export declare function isDateObject(value: unknown): value is Date;
4
+ /** Sets a value by path . Does not support array indexes. */
5
+ export declare function setInPath(obj: object, path: string, value: unknown, delimiter?: string): void;
6
+ export declare function deleteInPath(obj: object, path: string, delimiter?: string): void;
7
+ export declare function replaceKeyInMap<K, T>(map: Map<K, T | undefined>, a: K, b: K): void;
8
+ export declare function replaceKeyInRecord<K extends keyof any, T>(record: Record<K, T>, a: K, b: K): void;
9
+ export declare function isNil(obj: unknown): obj is null | undefined;
10
+ export declare function isEqual(a: unknown, b: unknown): boolean;
11
+ export declare function isEmpty(a: unknown): boolean;
12
+ export declare function omit<T extends object, K extends PropertyKey[]>(object: T | null | undefined, ...fieldsToRemove: K): Pick<T, Exclude<keyof T, K[number]>>;
13
+ export type CloneCustomizer = (value: unknown) => unknown | undefined;
14
+ /**
15
+ * Creates a deep copy of the specified object, including all nested objects and specifically handling Date, Map, and
16
+ * Set fields.
17
+ *
18
+ * The customizer function can modify the cloning process for the object and its fields. If the customizer
19
+ * returns 'undefined' for any input, the function falls back to the standard cloning logic.
20
+ *
21
+ * The cloning process is recursive, ensuring deep cloning of all objects.
22
+ *
23
+ * Note: This function does not support cloning objects with circular dependencies and will throw a system stack
24
+ * overflow error if encountered.
25
+ */
26
+ export declare function cloneDeep<R = unknown>(value: R, customizer?: CloneCustomizer): R;
27
+ /** Creates a shallow clone of the object. */
28
+ export declare function cloneShallow<T>(value: T): T;
29
+ export declare function deepMerge<T extends object, U extends object>(target: T, source: U): T & U;
30
+ /** Returns true if the `value` is a defined object and is not an array. */
31
+ export declare function isPlainObject(value: unknown): value is object;
32
+ /** Compares 2 values. 'null' and 'undefined' values are considered equal and are less than any other values. */
33
+ export declare function compareValues(v1: unknown, v2: unknown): number;
34
+ /** Returns a new object with all top-level object fields re-mapped using `valueMapperFn`. */
35
+ export declare function mapValues<ResultType extends object = Record<string, unknown>, InputType extends Record<string, unknown> = Record<string, unknown>>(obj: InputType, valueMapperFn: (value: any, key: keyof InputType, obj: InputType) => unknown): ResultType;
36
+ /** Groups elements of the array by key. See _.groupBy for details. */
37
+ export declare function groupBy<T, K extends PropertyKey>(array: T[], getKey: (item: T) => K): Record<K, T[]>;
38
+ /**
39
+ * Picks selected fields from the object and returns a new object with the fields selected.
40
+ * The selected fields are assigned by reference (there is no cloning).
41
+ */
42
+ export declare function pick<T extends object, K extends keyof T>(obj: T, keys: ReadonlyArray<K>): Pick<T, K>;
43
+ /** Inverts the record: swaps keys and values. */
44
+ export declare function invert<K extends string | number, V extends string | number>(record: Record<K, V>): Record<V, K>;
45
+ /**
46
+ * Creates an array of numbers (positive and/or negative) progressing from start up to, but not including, end.
47
+ * If end is less than start a zero-length range is created unless a negative step is specified.
48
+ *
49
+ * Same as lodash range but with an additional parameter: `maximumNumberOfItems`.
50
+ */
51
+ export declare function range(start: number, end: number, step: number, maximumNumberOfItems?: number): number[];
52
+ /** Returns count of top level properties in object. */
53
+ export declare function countObjectKeys(obj: object | undefined | null): number;
54
+ /** Returns object entries sorted by name. */
55
+ export declare function getSortedEntries<T>(record: Record<string, T>): Array<[string, T]>;
56
+ /** Removes top level fields which are empty objects. May be used for value formatting. */
57
+ export declare function removeEmptyTopLevelRecords<T extends object>(record: T): Partial<T>;
58
+ export declare function removeUndefinedValues<V>(tags: Record<string, V | undefined>): Record<string, V>;
59
+ export declare function extractKey(line: string | undefined): string | null;
60
+ /** Represents a line in a diff output */
61
+ export interface DiffLine {
62
+ lineNumber: number;
63
+ text: string;
64
+ type: 'unchanged' | 'added' | 'removed' | 'changed';
65
+ }
66
+ /** Result of computing a line-by-line diff between two objects */
67
+ export interface DiffResult {
68
+ leftLines: Array<DiffLine>;
69
+ rightLines: Array<DiffLine>;
70
+ hasChanges: boolean;
71
+ }
72
+ /**
73
+ * Computes a line-by-line diff between two objects.
74
+ * Objects are serialized to JSON with sorted keys for consistent comparison.
75
+ * @param before The previous/left object (can be undefined for new objects)
76
+ * @param after The current/right object
77
+ * @returns DiffResult with left and right lines and whether there are changes
78
+ */
79
+ export declare function computeObjectDiff(before: unknown, after: unknown): DiffResult;
80
+ /**
81
+ * Formats an object as diff lines (all unchanged).
82
+ * Useful for displaying a single object without comparison.
83
+ * @param obj The object to format
84
+ * @returns Array of DiffLine with all lines marked as unchanged
85
+ */
86
+ export declare function formatObjectAsLines(obj: unknown): Array<DiffLine>;
@@ -0,0 +1,18 @@
1
+ export declare function sortKeys(json: unknown): any;
2
+ export declare function normalizeJsonAsString(json: unknown): string;
3
+ export declare function serializeObj(obj: unknown): string;
4
+ export declare function deserializeObj<T = any>(str: string): T;
5
+ export declare function encodeValueForMapping(value: unknown): string;
6
+ export declare function decodeValueForMapping(encodedString: string): any;
7
+ /**
8
+ * Compares 2 objects by their normalized JSON value.
9
+ * This function should not be used with objects with circular references.
10
+ * Returns true if the object are equal.
11
+ */
12
+ export declare function compareByNormalizedJsonValue<T>(v1: T | undefined, v2: T | undefined): boolean;
13
+ /**
14
+ * Compares 2 objects by their normalized JSON value for specific fields only.
15
+ * This function should not be used with objects with circular references.
16
+ * Returns true if the specified fields are equal.
17
+ */
18
+ export declare function compareByNormalizedJsonValueForFields<T>(v1: T | undefined, v2: T | undefined, fields: Array<keyof T>): boolean;
@@ -0,0 +1 @@
1
+ export declare const SQUID_SUPPORT_EMAIL = "support@getsquid.ai";
@@ -0,0 +1 @@
1
+ export declare function generateTraceId(prefix?: string): string;
@@ -0,0 +1,19 @@
1
+ import { HttpStatusCode } from '../public-types/http-status.public-types';
2
+ export declare class ValidationError extends Error {
3
+ readonly statusCode: HttpStatusCode;
4
+ readonly details?: any;
5
+ constructor(error: string, statusCode: HttpStatusCode, details?: Record<string, unknown>);
6
+ }
7
+ export declare function isValidId(id: unknown, maxLength?: number): boolean;
8
+ export declare function validateFieldSort(fieldSort: unknown): void;
9
+ export declare function validateQueryLimit(limit: unknown): void;
10
+ /**
11
+ * All type names returned by 'typeof' supported by JavaScript:
12
+ * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof}.
13
+ * and a few other supported types.
14
+ */
15
+ export type JavascriptTypeName = 'undefined' | 'object' | 'boolean' | 'number' | 'bigint' | 'string' | 'symbol' | 'function';
16
+ /** Returns true if 'typeof' of the 'value' is 'type' or 'type[]'. */
17
+ export declare function isRightType(value: unknown, type: JavascriptTypeName): boolean;
18
+ /** Returns true if 'obj' has only keys listed in the 'keys'. Object can't be an array. */
19
+ export declare function hasOnlyKeys(obj: object, keys: string[]): boolean;
@@ -0,0 +1,26 @@
1
+ interface Options {
2
+ maxAttempts?: number;
3
+ protocols?: string[];
4
+ onmessage?: (event: any) => void;
5
+ onopen?: (event: any) => void;
6
+ onclose?: (event: any) => void;
7
+ onerror?: (event: any) => void;
8
+ onreconnect?: (event: any) => void;
9
+ onmaximum?: (event: any) => void;
10
+ timeoutMillis?: number;
11
+ }
12
+ export interface WebSocketWrapper {
13
+ open: () => void;
14
+ reconnect: (e: any) => void;
15
+ json: (x: any) => void;
16
+ send: (x: string) => void;
17
+ close: (x?: number, y?: string) => void;
18
+ connected: boolean;
19
+ /**
20
+ * Websocket is explicitly closed by calling socket.close().
21
+ * Used to ignore errors after socket.closed() is called.
22
+ */
23
+ closeCalled: boolean;
24
+ }
25
+ export declare function createWebSocketWrapper(url: string, opts?: Options): WebSocketWrapper;
26
+ export {};
@@ -137,8 +137,9 @@ export declare class AiAgentReference {
137
137
  askAsync<T extends AiChatModelName | undefined = undefined>(prompt: string, jobId: JobId, options?: AiAskOptions<T>): Promise<void>;
138
138
  /**
139
139
  * Observes live status messages from the agent.
140
+ * @param jobId The job ID to filter status updates for a specific job. If not provided, all status updates for the agent are observed.
140
141
  */
141
- observeStatusUpdates(): Observable<AiStatusMessage>;
142
+ observeStatusUpdates(jobId: JobId): Observable<AiStatusMessage>;
142
143
  /**
143
144
  * Returns a list of all chat history messages with the given 'memoryId'.
144
145
  * Includes both user and & AI messages.
@@ -1,3 +1,4 @@
1
+ import { Observable } from 'rxjs';
1
2
  import { AiQueryOptions, AiQueryResponse, ExecuteAiApiResponse } from '../../internal-common/src/public-types/ai-query.public-types';
2
3
  import { AiAgentClientOptions } from './agent/ai-agent-client';
3
4
  import { AiAgentReference } from './agent/ai-agent-client-reference';
@@ -6,7 +7,7 @@ import { AiFilesClient } from './ai-files-client';
6
7
  import { AiImageClient } from './ai-image-client';
7
8
  import { AiKnowledgeBaseReference } from './ai-knowledge-base/ai-knowledge-base-client-reference';
8
9
  import { AiMatchMakingClient } from './ai-matchmaking-client';
9
- import { AiAgent, AiAgentApiIntegrationOptions, AiAgentId, AiFileProviderType, AiKnowledgeBase, AiKnowledgeBaseId, AiProviderType, AiSessionContext, ApplicationAiSettings, IntegrationId, SecretKey } from './public-types';
10
+ import { AiAgent, AiAgentApiIntegrationOptions, AiAgentId, AiFileProviderType, AiKnowledgeBase, AiKnowledgeBaseId, AiProviderType, AiSessionContext, AiStatusMessage, ApplicationAiSettings, IntegrationId, JobId, SecretKey } from './public-types';
10
11
  /**
11
12
  * AiClient class serves as a facade for interacting with different AI services.
12
13
  * It provides simplified access to AI chatbot and assistant functionalities
@@ -117,6 +118,11 @@ export declare class AiClient {
117
118
  * Returns the updated state of the AI application settings.
118
119
  */
119
120
  setAiProviderApiKeySecret(providerType: AiProviderType, secretKey: SecretKey | undefined): Promise<ApplicationAiSettings>;
121
+ /**
122
+ * Observes live status messages for all AI updates.
123
+ * @param jobId (Optional) If provided, filters status updates to only those related to the given job ID.
124
+ */
125
+ observeStatusUpdates(jobId?: JobId): Observable<AiStatusMessage>;
120
126
  private getAiAgentClient;
121
127
  private getAiKnowledgeBaseClient;
122
128
  }
@@ -31,6 +31,7 @@ export * from './extraction-client';
31
31
  export * from './file-args-transformer';
32
32
  export * from './integration-client';
33
33
  export * from './job-client';
34
+ export * from './management-client';
34
35
  export * from './mutation/mutation-sender';
35
36
  export * from './native-query-manager';
36
37
  export * from './notification-client';
@@ -0,0 +1,129 @@
1
+ import { SquidRegion } from '../../internal-common/src/public-types/regions.public-types';
2
+ /**
3
+ * Supported cloud providers for application creation.
4
+ * @category ManagementClient
5
+ */
6
+ export type ManagementCloudId = 'aws' | 'gcp' | 'azure';
7
+ /**
8
+ * Options for creating a ManagementClient.
9
+ * @category ManagementClient
10
+ */
11
+ export interface ManagementClientOptions {
12
+ /** The management API key (starts with 'squid_mgmt_') */
13
+ apiKey: string;
14
+ /** The Squid region to connect to */
15
+ region: SquidRegion;
16
+ }
17
+ /**
18
+ * Request to create a new organization.
19
+ * @category ManagementClient
20
+ */
21
+ export interface ManagementCreateOrganizationRequest {
22
+ /** Name of the organization (2-50 characters) */
23
+ name: string;
24
+ }
25
+ /**
26
+ * Response from creating a new organization.
27
+ * @category ManagementClient
28
+ */
29
+ export interface ManagementCreateOrganizationResponse {
30
+ /** The ID of the created organization */
31
+ organizationId: string;
32
+ }
33
+ /**
34
+ * Request to create a new application.
35
+ * @category ManagementClient
36
+ */
37
+ export interface ManagementCreateApplicationRequest {
38
+ /** The organization ID to create the application in */
39
+ organizationId: string;
40
+ /** Name of the application */
41
+ name: string;
42
+ /** Cloud provider for the application */
43
+ cloudId: ManagementCloudId;
44
+ /** Region within the cloud provider (e.g., 'us-east-1') */
45
+ region: string;
46
+ }
47
+ /**
48
+ * Response from creating a new application.
49
+ * @category ManagementClient
50
+ */
51
+ export interface ManagementCreateApplicationResponse {
52
+ /** The ID of the created application */
53
+ appId: string;
54
+ }
55
+ /**
56
+ * Request to delete an application.
57
+ * @category ManagementClient
58
+ */
59
+ export interface ManagementDeleteApplicationRequest {
60
+ /** The ID of the application to delete */
61
+ appId: string;
62
+ }
63
+ /**
64
+ * Client for programmatic management of Squid organizations and applications.
65
+ *
66
+ * Use this client to automate organization and application management
67
+ * using management API keys (created in the Squid Console Profile Settings).
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * const client = new ManagementClient({
72
+ * apiKey: 'squid_mgmt_xxx...',
73
+ * region: 'us-east-1.aws'
74
+ * });
75
+ *
76
+ * // Create an organization
77
+ * const { organizationId } = await client.createOrganization({ name: 'My Org' });
78
+ *
79
+ * // Create an application
80
+ * const { appId } = await client.createApplication({
81
+ * organizationId,
82
+ * name: 'My App',
83
+ * cloudId: 'aws',
84
+ * region: 'us-east-1'
85
+ * });
86
+ *
87
+ * // Delete an application
88
+ * await client.deleteApplication({ appId });
89
+ * ```
90
+ *
91
+ * @category ManagementClient
92
+ */
93
+ export declare class ManagementClient {
94
+ private readonly apiKey;
95
+ private readonly region;
96
+ /**
97
+ * Creates a new ManagementClient.
98
+ *
99
+ * @param options - Configuration options including API key and region
100
+ * @throws Error if the API key does not start with 'squid_mgmt_'
101
+ */
102
+ constructor(options: ManagementClientOptions);
103
+ /**
104
+ * Creates a new organization.
105
+ * The user associated with the management API key becomes the admin of the new organization.
106
+ *
107
+ * @param request - The organization creation request
108
+ * @returns The created organization's ID
109
+ * @throws Error if organization name is invalid or key is unauthorized
110
+ */
111
+ createOrganization(request: ManagementCreateOrganizationRequest): Promise<ManagementCreateOrganizationResponse>;
112
+ /**
113
+ * Creates a new application in an organization.
114
+ * Requires the user to be an admin in the target organization.
115
+ *
116
+ * @param request - The application creation request
117
+ * @returns The created application's ID
118
+ * @throws Error if user is not admin or organization quota reached
119
+ */
120
+ createApplication(request: ManagementCreateApplicationRequest): Promise<ManagementCreateApplicationResponse>;
121
+ /**
122
+ * Deletes an application.
123
+ * Requires the user to be an admin in the application's organization.
124
+ *
125
+ * @param request - The application deletion request
126
+ * @throws Error if user is not admin or application not found
127
+ */
128
+ deleteApplication(request: ManagementDeleteApplicationRequest): Promise<void>;
129
+ }
@@ -2,4 +2,4 @@
2
2
  * The current version of the SquidCloud client package.
3
3
  * @category Platform
4
4
  */
5
- export declare const SQUIDCLOUD_CLIENT_PACKAGE_VERSION = "1.0.435";
5
+ export declare const SQUIDCLOUD_CLIENT_PACKAGE_VERSION = "1.0.436";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@squidcloud/client",
3
- "version": "1.0.435",
3
+ "version": "1.0.436",
4
4
  "description": "A typescript implementation of the Squid client",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",