@wix/portfolio 1.0.88 → 1.0.90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,39 +1,127 @@
1
- type RESTFunctionDescriptor<T extends (...args: any[]) => any = (...args: any[]) => any> = (httpClient: HttpClient) => T;
2
- interface HttpClient {
3
- request<TResponse, TData = any>(req: RequestOptionsFactory<TResponse, TData>): Promise<HttpResponse<TResponse>>;
1
+ type HostModule$5<T, H extends Host$5> = {
2
+ __type: 'host';
3
+ create(host: H): T;
4
+ };
5
+ type HostModuleAPI$5<T extends HostModule$5<any, any>> = T extends HostModule$5<infer U, any> ? U : never;
6
+ type Host$5<Environment = unknown> = {
7
+ channel: {
8
+ observeState(callback: (props: unknown, environment: Environment) => unknown): {
9
+ disconnect: () => void;
10
+ } | Promise<{
11
+ disconnect: () => void;
12
+ }>;
13
+ };
14
+ environment?: Environment;
15
+ /**
16
+ * Optional bast url to use for API requests, for example `www.wixapis.com`
17
+ */
18
+ apiBaseUrl?: string;
19
+ /**
20
+ * Possible data to be provided by every host, for cross cutting concerns
21
+ * like internationalization, billing, etc.
22
+ */
23
+ essentials?: {
24
+ /**
25
+ * The language of the currently viewed session
26
+ */
27
+ language?: string;
28
+ /**
29
+ * The locale of the currently viewed session
30
+ */
31
+ locale?: string;
32
+ /**
33
+ * Any headers that should be passed through to the API requests
34
+ */
35
+ passThroughHeaders?: Record<string, string>;
36
+ };
37
+ };
38
+
39
+ type RESTFunctionDescriptor$5<T extends (...args: any[]) => any = (...args: any[]) => any> = (httpClient: HttpClient$5) => T;
40
+ interface HttpClient$5 {
41
+ request<TResponse, TData = any>(req: RequestOptionsFactory$5<TResponse, TData>): Promise<HttpResponse$5<TResponse>>;
4
42
  fetchWithAuth: typeof fetch;
5
43
  wixAPIFetch: (relativeUrl: string, options: RequestInit) => Promise<Response>;
44
+ getActiveToken?: () => string | undefined;
6
45
  }
7
- type RequestOptionsFactory<TResponse = any, TData = any> = (context: any) => RequestOptions<TResponse, TData>;
8
- type HttpResponse<T = any> = {
46
+ type RequestOptionsFactory$5<TResponse = any, TData = any> = (context: any) => RequestOptions$5<TResponse, TData>;
47
+ type HttpResponse$5<T = any> = {
9
48
  data: T;
10
49
  status: number;
11
50
  statusText: string;
12
51
  headers: any;
13
52
  request?: any;
14
53
  };
15
- type RequestOptions<_TResponse = any, Data = any> = {
54
+ type RequestOptions$5<_TResponse = any, Data = any> = {
16
55
  method: 'POST' | 'GET' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';
17
56
  url: string;
18
57
  data?: Data;
19
58
  params?: URLSearchParams;
20
- } & APIMetadata;
21
- type APIMetadata = {
59
+ } & APIMetadata$5;
60
+ type APIMetadata$5 = {
22
61
  methodFqn?: string;
23
62
  entityFqdn?: string;
24
63
  packageName?: string;
25
64
  };
26
- type BuildRESTFunction<T extends RESTFunctionDescriptor> = T extends RESTFunctionDescriptor<infer U> ? U : never;
27
- type EventDefinition<Payload = unknown, Type extends string = string> = {
65
+ type BuildRESTFunction$5<T extends RESTFunctionDescriptor$5> = T extends RESTFunctionDescriptor$5<infer U> ? U : never;
66
+ type EventDefinition$9<Payload = unknown, Type extends string = string> = {
28
67
  __type: 'event-definition';
29
68
  type: Type;
30
69
  isDomainEvent?: boolean;
31
70
  transformations?: (envelope: unknown) => Payload;
32
71
  __payload: Payload;
33
72
  };
34
- declare function EventDefinition<Type extends string>(type: Type, isDomainEvent?: boolean, transformations?: (envelope: any) => unknown): <Payload = unknown>() => EventDefinition<Payload, Type>;
35
- type EventHandler<T extends EventDefinition> = (payload: T['__payload']) => void | Promise<void>;
36
- type BuildEventDefinition<T extends EventDefinition<any, string>> = (handler: EventHandler<T>) => void;
73
+ declare function EventDefinition$9<Type extends string>(type: Type, isDomainEvent?: boolean, transformations?: (envelope: any) => unknown): <Payload = unknown>() => EventDefinition$9<Payload, Type>;
74
+ type EventHandler$9<T extends EventDefinition$9> = (payload: T['__payload']) => void | Promise<void>;
75
+ type BuildEventDefinition$9<T extends EventDefinition$9<any, string>> = (handler: EventHandler$9<T>) => void;
76
+
77
+ type ServicePluginMethodInput$5 = {
78
+ request: any;
79
+ metadata: any;
80
+ };
81
+ type ServicePluginContract$5 = Record<string, (payload: ServicePluginMethodInput$5) => unknown | Promise<unknown>>;
82
+ type ServicePluginMethodMetadata$5 = {
83
+ name: string;
84
+ primaryHttpMappingPath: string;
85
+ transformations: {
86
+ fromREST: (...args: unknown[]) => ServicePluginMethodInput$5;
87
+ toREST: (...args: unknown[]) => unknown;
88
+ };
89
+ };
90
+ type ServicePluginDefinition$5<Contract extends ServicePluginContract$5> = {
91
+ __type: 'service-plugin-definition';
92
+ componentType: string;
93
+ methods: ServicePluginMethodMetadata$5[];
94
+ __contract: Contract;
95
+ };
96
+ declare function ServicePluginDefinition$5<Contract extends ServicePluginContract$5>(componentType: string, methods: ServicePluginMethodMetadata$5[]): ServicePluginDefinition$5<Contract>;
97
+ type BuildServicePluginDefinition$5<T extends ServicePluginDefinition$5<any>> = (implementation: T['__contract']) => void;
98
+ declare const SERVICE_PLUGIN_ERROR_TYPE$5 = "wix_spi_error";
99
+
100
+ type RequestContext$5 = {
101
+ isSSR: boolean;
102
+ host: string;
103
+ protocol?: string;
104
+ };
105
+ type ResponseTransformer$5 = (data: any, headers?: any) => any;
106
+ /**
107
+ * Ambassador request options types are copied mostly from AxiosRequestConfig.
108
+ * They are copied and not imported to reduce the amount of dependencies (to reduce install time).
109
+ * https://github.com/axios/axios/blob/3f53eb6960f05a1f88409c4b731a40de595cb825/index.d.ts#L307-L315
110
+ */
111
+ type Method$5 = 'get' | 'GET' | 'delete' | 'DELETE' | 'head' | 'HEAD' | 'options' | 'OPTIONS' | 'post' | 'POST' | 'put' | 'PUT' | 'patch' | 'PATCH' | 'purge' | 'PURGE' | 'link' | 'LINK' | 'unlink' | 'UNLINK';
112
+ type AmbassadorRequestOptions$5<T = any> = {
113
+ _?: T;
114
+ url?: string;
115
+ method?: Method$5;
116
+ params?: any;
117
+ data?: any;
118
+ transformResponse?: ResponseTransformer$5 | ResponseTransformer$5[];
119
+ };
120
+ type AmbassadorFactory$5<Request, Response> = (payload: Request) => ((context: RequestContext$5) => AmbassadorRequestOptions$5<Response>) & {
121
+ __isAmbassador: boolean;
122
+ };
123
+ type AmbassadorFunctionDescriptor$5<Request = any, Response = any> = AmbassadorFactory$5<Request, Response>;
124
+ type BuildAmbassadorFunction$5<T extends AmbassadorFunctionDescriptor$5> = T extends AmbassadorFunctionDescriptor$5<infer Request, infer Response> ? (req: Request) => Promise<Response> : never;
37
125
 
38
126
  declare global {
39
127
  // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
@@ -42,6 +130,284 @@ declare global {
42
130
  }
43
131
  }
44
132
 
133
+ declare const emptyObjectSymbol$5: unique symbol;
134
+
135
+ /**
136
+ Represents a strictly empty plain object, the `{}` value.
137
+
138
+ When you annotate something as the type `{}`, it can be anything except `null` and `undefined`. This means that you cannot use `{}` to represent an empty plain object ([read more](https://stackoverflow.com/questions/47339869/typescript-empty-object-and-any-difference/52193484#52193484)).
139
+
140
+ @example
141
+ ```
142
+ import type {EmptyObject} from 'type-fest';
143
+
144
+ // The following illustrates the problem with `{}`.
145
+ const foo1: {} = {}; // Pass
146
+ const foo2: {} = []; // Pass
147
+ const foo3: {} = 42; // Pass
148
+ const foo4: {} = {a: 1}; // Pass
149
+
150
+ // With `EmptyObject` only the first case is valid.
151
+ const bar1: EmptyObject = {}; // Pass
152
+ const bar2: EmptyObject = 42; // Fail
153
+ const bar3: EmptyObject = []; // Fail
154
+ const bar4: EmptyObject = {a: 1}; // Fail
155
+ ```
156
+
157
+ Unfortunately, `Record<string, never>`, `Record<keyof any, never>` and `Record<never, never>` do not work. See {@link https://github.com/sindresorhus/type-fest/issues/395 #395}.
158
+
159
+ @category Object
160
+ */
161
+ type EmptyObject$5 = {[emptyObjectSymbol$5]?: never};
162
+
163
+ /**
164
+ Returns a boolean for whether the two given types are equal.
165
+
166
+ @link https://github.com/microsoft/TypeScript/issues/27024#issuecomment-421529650
167
+ @link https://stackoverflow.com/questions/68961864/how-does-the-equals-work-in-typescript/68963796#68963796
168
+
169
+ Use-cases:
170
+ - If you want to make a conditional branch based on the result of a comparison of two types.
171
+
172
+ @example
173
+ ```
174
+ import type {IsEqual} from 'type-fest';
175
+
176
+ // This type returns a boolean for whether the given array includes the given item.
177
+ // `IsEqual` is used to compare the given array at position 0 and the given item and then return true if they are equal.
178
+ type Includes<Value extends readonly any[], Item> =
179
+ Value extends readonly [Value[0], ...infer rest]
180
+ ? IsEqual<Value[0], Item> extends true
181
+ ? true
182
+ : Includes<rest, Item>
183
+ : false;
184
+ ```
185
+
186
+ @category Type Guard
187
+ @category Utilities
188
+ */
189
+ type IsEqual$5<A, B> =
190
+ (<G>() => G extends A ? 1 : 2) extends
191
+ (<G>() => G extends B ? 1 : 2)
192
+ ? true
193
+ : false;
194
+
195
+ /**
196
+ Filter out keys from an object.
197
+
198
+ Returns `never` if `Exclude` is strictly equal to `Key`.
199
+ Returns `never` if `Key` extends `Exclude`.
200
+ Returns `Key` otherwise.
201
+
202
+ @example
203
+ ```
204
+ type Filtered = Filter<'foo', 'foo'>;
205
+ //=> never
206
+ ```
207
+
208
+ @example
209
+ ```
210
+ type Filtered = Filter<'bar', string>;
211
+ //=> never
212
+ ```
213
+
214
+ @example
215
+ ```
216
+ type Filtered = Filter<'bar', 'foo'>;
217
+ //=> 'bar'
218
+ ```
219
+
220
+ @see {Except}
221
+ */
222
+ type Filter$5<KeyType, ExcludeType> = IsEqual$5<KeyType, ExcludeType> extends true ? never : (KeyType extends ExcludeType ? never : KeyType);
223
+
224
+ type ExceptOptions$5 = {
225
+ /**
226
+ Disallow assigning non-specified properties.
227
+
228
+ Note that any omitted properties in the resulting type will be present in autocomplete as `undefined`.
229
+
230
+ @default false
231
+ */
232
+ requireExactProps?: boolean;
233
+ };
234
+
235
+ /**
236
+ Create a type from an object type without certain keys.
237
+
238
+ We recommend setting the `requireExactProps` option to `true`.
239
+
240
+ This type is a stricter version of [`Omit`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-5.html#the-omit-helper-type). The `Omit` type does not restrict the omitted keys to be keys present on the given type, while `Except` does. The benefits of a stricter type are avoiding typos and allowing the compiler to pick up on rename refactors automatically.
241
+
242
+ This type was proposed to the TypeScript team, which declined it, saying they prefer that libraries implement stricter versions of the built-in types ([microsoft/TypeScript#30825](https://github.com/microsoft/TypeScript/issues/30825#issuecomment-523668235)).
243
+
244
+ @example
245
+ ```
246
+ import type {Except} from 'type-fest';
247
+
248
+ type Foo = {
249
+ a: number;
250
+ b: string;
251
+ };
252
+
253
+ type FooWithoutA = Except<Foo, 'a'>;
254
+ //=> {b: string}
255
+
256
+ const fooWithoutA: FooWithoutA = {a: 1, b: '2'};
257
+ //=> errors: 'a' does not exist in type '{ b: string; }'
258
+
259
+ type FooWithoutB = Except<Foo, 'b', {requireExactProps: true}>;
260
+ //=> {a: number} & Partial<Record<"b", never>>
261
+
262
+ const fooWithoutB: FooWithoutB = {a: 1, b: '2'};
263
+ //=> errors at 'b': Type 'string' is not assignable to type 'undefined'.
264
+ ```
265
+
266
+ @category Object
267
+ */
268
+ type Except$5<ObjectType, KeysType extends keyof ObjectType, Options extends ExceptOptions$5 = {requireExactProps: false}> = {
269
+ [KeyType in keyof ObjectType as Filter$5<KeyType, KeysType>]: ObjectType[KeyType];
270
+ } & (Options['requireExactProps'] extends true
271
+ ? Partial<Record<KeysType, never>>
272
+ : {});
273
+
274
+ /**
275
+ Extract the keys from a type where the value type of the key extends the given `Condition`.
276
+
277
+ Internally this is used for the `ConditionalPick` and `ConditionalExcept` types.
278
+
279
+ @example
280
+ ```
281
+ import type {ConditionalKeys} from 'type-fest';
282
+
283
+ interface Example {
284
+ a: string;
285
+ b: string | number;
286
+ c?: string;
287
+ d: {};
288
+ }
289
+
290
+ type StringKeysOnly = ConditionalKeys<Example, string>;
291
+ //=> 'a'
292
+ ```
293
+
294
+ To support partial types, make sure your `Condition` is a union of undefined (for example, `string | undefined`) as demonstrated below.
295
+
296
+ @example
297
+ ```
298
+ import type {ConditionalKeys} from 'type-fest';
299
+
300
+ type StringKeysAndUndefined = ConditionalKeys<Example, string | undefined>;
301
+ //=> 'a' | 'c'
302
+ ```
303
+
304
+ @category Object
305
+ */
306
+ type ConditionalKeys$5<Base, Condition> = NonNullable<
307
+ // Wrap in `NonNullable` to strip away the `undefined` type from the produced union.
308
+ {
309
+ // Map through all the keys of the given base type.
310
+ [Key in keyof Base]:
311
+ // Pick only keys with types extending the given `Condition` type.
312
+ Base[Key] extends Condition
313
+ // Retain this key since the condition passes.
314
+ ? Key
315
+ // Discard this key since the condition fails.
316
+ : never;
317
+
318
+ // Convert the produced object into a union type of the keys which passed the conditional test.
319
+ }[keyof Base]
320
+ >;
321
+
322
+ /**
323
+ Exclude keys from a shape that matches the given `Condition`.
324
+
325
+ This is useful when you want to create a new type with a specific set of keys from a shape. For example, you might want to exclude all the primitive properties from a class and form a new shape containing everything but the primitive properties.
326
+
327
+ @example
328
+ ```
329
+ import type {Primitive, ConditionalExcept} from 'type-fest';
330
+
331
+ class Awesome {
332
+ name: string;
333
+ successes: number;
334
+ failures: bigint;
335
+
336
+ run() {}
337
+ }
338
+
339
+ type ExceptPrimitivesFromAwesome = ConditionalExcept<Awesome, Primitive>;
340
+ //=> {run: () => void}
341
+ ```
342
+
343
+ @example
344
+ ```
345
+ import type {ConditionalExcept} from 'type-fest';
346
+
347
+ interface Example {
348
+ a: string;
349
+ b: string | number;
350
+ c: () => void;
351
+ d: {};
352
+ }
353
+
354
+ type NonStringKeysOnly = ConditionalExcept<Example, string>;
355
+ //=> {b: string | number; c: () => void; d: {}}
356
+ ```
357
+
358
+ @category Object
359
+ */
360
+ type ConditionalExcept$5<Base, Condition> = Except$5<
361
+ Base,
362
+ ConditionalKeys$5<Base, Condition>
363
+ >;
364
+
365
+ /**
366
+ * Descriptors are objects that describe the API of a module, and the module
367
+ * can either be a REST module or a host module.
368
+ * This type is recursive, so it can describe nested modules.
369
+ */
370
+ type Descriptors$5 = RESTFunctionDescriptor$5 | AmbassadorFunctionDescriptor$5 | HostModule$5<any, any> | EventDefinition$9<any> | ServicePluginDefinition$5<any> | {
371
+ [key: string]: Descriptors$5 | PublicMetadata$5 | any;
372
+ };
373
+ /**
374
+ * This type takes in a descriptors object of a certain Host (including an `unknown` host)
375
+ * and returns an object with the same structure, but with all descriptors replaced with their API.
376
+ * Any non-descriptor properties are removed from the returned object, including descriptors that
377
+ * do not match the given host (as they will not work with the given host).
378
+ */
379
+ type BuildDescriptors$5<T extends Descriptors$5, H extends Host$5<any> | undefined, Depth extends number = 5> = {
380
+ done: T;
381
+ recurse: T extends {
382
+ __type: typeof SERVICE_PLUGIN_ERROR_TYPE$5;
383
+ } ? never : T extends AmbassadorFunctionDescriptor$5 ? BuildAmbassadorFunction$5<T> : T extends RESTFunctionDescriptor$5 ? BuildRESTFunction$5<T> : T extends EventDefinition$9<any> ? BuildEventDefinition$9<T> : T extends ServicePluginDefinition$5<any> ? BuildServicePluginDefinition$5<T> : T extends HostModule$5<any, any> ? HostModuleAPI$5<T> : ConditionalExcept$5<{
384
+ [Key in keyof T]: T[Key] extends Descriptors$5 ? BuildDescriptors$5<T[Key], H, [
385
+ -1,
386
+ 0,
387
+ 1,
388
+ 2,
389
+ 3,
390
+ 4,
391
+ 5
392
+ ][Depth]> : never;
393
+ }, EmptyObject$5>;
394
+ }[Depth extends -1 ? 'done' : 'recurse'];
395
+ type PublicMetadata$5 = {
396
+ PACKAGE_NAME?: string;
397
+ };
398
+
399
+ declare global {
400
+ interface ContextualClient {
401
+ }
402
+ }
403
+ /**
404
+ * A type used to create concerete types from SDK descriptors in
405
+ * case a contextual client is available.
406
+ */
407
+ type MaybeContext$5<T extends Descriptors$5> = globalThis.ContextualClient extends {
408
+ host: Host$5;
409
+ } ? BuildDescriptors$5<T, globalThis.ContextualClient['host']> : T;
410
+
45
411
  /** Collection is the main entity of CollectionsService */
46
412
  interface Collection {
47
413
  /**
@@ -718,7 +1084,7 @@ interface CollectionsQueryBuilder {
718
1084
  find: () => Promise<CollectionsQueryResult>;
719
1085
  }
720
1086
 
721
- declare function createCollection$1(httpClient: HttpClient): CreateCollectionSignature;
1087
+ declare function createCollection$1(httpClient: HttpClient$5): CreateCollectionSignature;
722
1088
  interface CreateCollectionSignature {
723
1089
  /**
724
1090
  * Creates a new Collection
@@ -727,7 +1093,7 @@ interface CreateCollectionSignature {
727
1093
  */
728
1094
  (collection: Collection): Promise<Collection & CollectionNonNullableFields>;
729
1095
  }
730
- declare function getCollection$1(httpClient: HttpClient): GetCollectionSignature;
1096
+ declare function getCollection$1(httpClient: HttpClient$5): GetCollectionSignature;
731
1097
  interface GetCollectionSignature {
732
1098
  /**
733
1099
  * Get a Collection by id
@@ -736,14 +1102,14 @@ interface GetCollectionSignature {
736
1102
  */
737
1103
  (collectionId: string, options?: GetCollectionOptions | undefined): Promise<Collection & CollectionNonNullableFields>;
738
1104
  }
739
- declare function listCollections$1(httpClient: HttpClient): ListCollectionsSignature;
1105
+ declare function listCollections$1(httpClient: HttpClient$5): ListCollectionsSignature;
740
1106
  interface ListCollectionsSignature {
741
1107
  /**
742
1108
  * List all Collections in portfolio
743
1109
  */
744
1110
  (options?: ListCollectionsOptions | undefined): Promise<ListCollectionsResponse & ListCollectionsResponseNonNullableFields>;
745
1111
  }
746
- declare function updateCollection$1(httpClient: HttpClient): UpdateCollectionSignature;
1112
+ declare function updateCollection$1(httpClient: HttpClient$5): UpdateCollectionSignature;
747
1113
  interface UpdateCollectionSignature {
748
1114
  /**
749
1115
  * Update a Collection, supports partial update
@@ -753,7 +1119,7 @@ interface UpdateCollectionSignature {
753
1119
  */
754
1120
  (_id: string | null, collection: UpdateCollection): Promise<Collection & CollectionNonNullableFields>;
755
1121
  }
756
- declare function deleteCollection$1(httpClient: HttpClient): DeleteCollectionSignature;
1122
+ declare function deleteCollection$1(httpClient: HttpClient$5): DeleteCollectionSignature;
757
1123
  interface DeleteCollectionSignature {
758
1124
  /**
759
1125
  * Delete a Collection
@@ -761,25 +1127,43 @@ interface DeleteCollectionSignature {
761
1127
  */
762
1128
  (collectionId: string): Promise<DeleteCollectionResponse & DeleteCollectionResponseNonNullableFields>;
763
1129
  }
764
- declare function queryCollections$1(httpClient: HttpClient): QueryCollectionsSignature;
1130
+ declare function queryCollections$1(httpClient: HttpClient$5): QueryCollectionsSignature;
765
1131
  interface QueryCollectionsSignature {
766
1132
  /**
767
1133
  * Query Collections using [WQL - Wix Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language)
768
1134
  */
769
1135
  (options?: QueryCollectionsOptions | undefined): CollectionsQueryBuilder;
770
1136
  }
771
- declare const onCollectionCreated$1: EventDefinition<CollectionCreatedEnvelope, "wix.portfolio.collections.v1.collection_created">;
772
- declare const onCollectionUpdated$1: EventDefinition<CollectionUpdatedEnvelope, "wix.portfolio.collections.v1.collection_updated">;
773
- declare const onCollectionDeleted$1: EventDefinition<CollectionDeletedEnvelope, "wix.portfolio.collections.v1.collection_deleted">;
1137
+ declare const onCollectionCreated$1: EventDefinition$9<CollectionCreatedEnvelope, "wix.portfolio.collections.v1.collection_created">;
1138
+ declare const onCollectionUpdated$1: EventDefinition$9<CollectionUpdatedEnvelope, "wix.portfolio.collections.v1.collection_updated">;
1139
+ declare const onCollectionDeleted$1: EventDefinition$9<CollectionDeletedEnvelope, "wix.portfolio.collections.v1.collection_deleted">;
1140
+
1141
+ type EventDefinition$8<Payload = unknown, Type extends string = string> = {
1142
+ __type: 'event-definition';
1143
+ type: Type;
1144
+ isDomainEvent?: boolean;
1145
+ transformations?: (envelope: unknown) => Payload;
1146
+ __payload: Payload;
1147
+ };
1148
+ declare function EventDefinition$8<Type extends string>(type: Type, isDomainEvent?: boolean, transformations?: (envelope: any) => unknown): <Payload = unknown>() => EventDefinition$8<Payload, Type>;
1149
+ type EventHandler$8<T extends EventDefinition$8> = (payload: T['__payload']) => void | Promise<void>;
1150
+ type BuildEventDefinition$8<T extends EventDefinition$8<any, string>> = (handler: EventHandler$8<T>) => void;
1151
+
1152
+ declare global {
1153
+ // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
1154
+ interface SymbolConstructor {
1155
+ readonly observable: symbol;
1156
+ }
1157
+ }
774
1158
 
775
- declare function createEventModule$3<T extends EventDefinition<any, string>>(eventDefinition: T): BuildEventDefinition<T> & T;
1159
+ declare function createEventModule$3<T extends EventDefinition$8<any, string>>(eventDefinition: T): BuildEventDefinition$8<T> & T;
776
1160
 
777
- declare const createCollection: BuildRESTFunction<typeof createCollection$1> & typeof createCollection$1;
778
- declare const getCollection: BuildRESTFunction<typeof getCollection$1> & typeof getCollection$1;
779
- declare const listCollections: BuildRESTFunction<typeof listCollections$1> & typeof listCollections$1;
780
- declare const updateCollection: BuildRESTFunction<typeof updateCollection$1> & typeof updateCollection$1;
781
- declare const deleteCollection: BuildRESTFunction<typeof deleteCollection$1> & typeof deleteCollection$1;
782
- declare const queryCollections: BuildRESTFunction<typeof queryCollections$1> & typeof queryCollections$1;
1161
+ declare const createCollection: MaybeContext$5<BuildRESTFunction$5<typeof createCollection$1> & typeof createCollection$1>;
1162
+ declare const getCollection: MaybeContext$5<BuildRESTFunction$5<typeof getCollection$1> & typeof getCollection$1>;
1163
+ declare const listCollections: MaybeContext$5<BuildRESTFunction$5<typeof listCollections$1> & typeof listCollections$1>;
1164
+ declare const updateCollection: MaybeContext$5<BuildRESTFunction$5<typeof updateCollection$1> & typeof updateCollection$1>;
1165
+ declare const deleteCollection: MaybeContext$5<BuildRESTFunction$5<typeof deleteCollection$1> & typeof deleteCollection$1>;
1166
+ declare const queryCollections: MaybeContext$5<BuildRESTFunction$5<typeof queryCollections$1> & typeof queryCollections$1>;
783
1167
 
784
1168
  type _publicOnCollectionCreatedType = typeof onCollectionCreated$1;
785
1169
  /** */
@@ -839,6 +1223,416 @@ declare namespace index_d$5 {
839
1223
  export { type ActionEvent$5 as ActionEvent, type index_d$5_AdminRemoveMenuItemsResponse as AdminRemoveMenuItemsResponse, type App$2 as App, type BaseEventMetadata$3 as BaseEventMetadata, type index_d$5_Collection as Collection, type index_d$5_CollectionCreatedEnvelope as CollectionCreatedEnvelope, type index_d$5_CollectionDeletedEnvelope as CollectionDeletedEnvelope, type index_d$5_CollectionNonNullableFields as CollectionNonNullableFields, type index_d$5_CollectionUpdatedEnvelope as CollectionUpdatedEnvelope, type index_d$5_CollectionsQueryBuilder as CollectionsQueryBuilder, type index_d$5_CollectionsQueryResult as CollectionsQueryResult, type index_d$5_CreateCollectionRequest as CreateCollectionRequest, type index_d$5_CreateCollectionResponse as CreateCollectionResponse, type index_d$5_CreateCollectionResponseNonNullableFields as CreateCollectionResponseNonNullableFields, type CursorPaging$4 as CursorPaging, type Cursors$4 as Cursors, type index_d$5_DeleteCollectionRequest as DeleteCollectionRequest, type index_d$5_DeleteCollectionResponse as DeleteCollectionResponse, type index_d$5_DeleteCollectionResponseNonNullableFields as DeleteCollectionResponseNonNullableFields, type DomainEvent$5 as DomainEvent, type DomainEventBodyOneOf$5 as DomainEventBodyOneOf, type Empty$3 as Empty, type EntityCreatedEvent$5 as EntityCreatedEvent, type EntityDeletedEvent$5 as EntityDeletedEvent, type EntityUpdatedEvent$5 as EntityUpdatedEvent, type EventMetadata$3 as EventMetadata, type File$2 as File, type index_d$5_GetCollectionOptions as GetCollectionOptions, type index_d$5_GetCollectionRequest as GetCollectionRequest, type index_d$5_GetCollectionResponse as GetCollectionResponse, type index_d$5_GetCollectionResponseNonNullableFields as GetCollectionResponseNonNullableFields, type IdentificationData$5 as IdentificationData, type IdentificationDataIdOneOf$5 as IdentificationDataIdOneOf, type Image$3 as Image, ImageType$3 as ImageType, type InvalidateCache$2 as InvalidateCache, type InvalidateCacheGetByOneOf$2 as InvalidateCacheGetByOneOf, type Keyword$2 as Keyword, type index_d$5_ListCollectionsOptions as ListCollectionsOptions, type index_d$5_ListCollectionsRequest as ListCollectionsRequest, type index_d$5_ListCollectionsResponse as ListCollectionsResponse, type index_d$5_ListCollectionsResponseNonNullableFields as ListCollectionsResponseNonNullableFields, type MessageEnvelope$5 as MessageEnvelope, type Page$2 as Page, type Paging$3 as Paging, type PagingMetadataV2$4 as PagingMetadataV2, type Point$3 as Point, type index_d$5_QueryCollectionsOptions as QueryCollectionsOptions, type index_d$5_QueryCollectionsRequest as QueryCollectionsRequest, type index_d$5_QueryCollectionsResponse as QueryCollectionsResponse, type index_d$5_QueryCollectionsResponseNonNullableFields as QueryCollectionsResponseNonNullableFields, type QueryV2$3 as QueryV2, type QueryV2PagingMethodOneOf$3 as QueryV2PagingMethodOneOf, type RestoreInfo$5 as RestoreInfo, type SeoSchema$2 as SeoSchema, type Settings$2 as Settings, SortOrder$3 as SortOrder, type Sorting$3 as Sorting, type Tag$2 as Tag, type URI$2 as URI, type UnsharpMasking$3 as UnsharpMasking, type index_d$5_UpdateCollection as UpdateCollection, type index_d$5_UpdateCollectionRequest as UpdateCollectionRequest, type index_d$5_UpdateCollectionResponse as UpdateCollectionResponse, type index_d$5_UpdateCollectionResponseNonNullableFields as UpdateCollectionResponseNonNullableFields, WebhookIdentityType$5 as WebhookIdentityType, type index_d$5__publicOnCollectionCreatedType as _publicOnCollectionCreatedType, type index_d$5__publicOnCollectionDeletedType as _publicOnCollectionDeletedType, type index_d$5__publicOnCollectionUpdatedType as _publicOnCollectionUpdatedType, index_d$5_createCollection as createCollection, index_d$5_deleteCollection as deleteCollection, index_d$5_getCollection as getCollection, index_d$5_listCollections as listCollections, index_d$5_onCollectionCreated as onCollectionCreated, index_d$5_onCollectionDeleted as onCollectionDeleted, index_d$5_onCollectionUpdated as onCollectionUpdated, onCollectionCreated$1 as publicOnCollectionCreated, onCollectionDeleted$1 as publicOnCollectionDeleted, onCollectionUpdated$1 as publicOnCollectionUpdated, index_d$5_queryCollections as queryCollections, index_d$5_updateCollection as updateCollection };
840
1224
  }
841
1225
 
1226
+ type HostModule$4<T, H extends Host$4> = {
1227
+ __type: 'host';
1228
+ create(host: H): T;
1229
+ };
1230
+ type HostModuleAPI$4<T extends HostModule$4<any, any>> = T extends HostModule$4<infer U, any> ? U : never;
1231
+ type Host$4<Environment = unknown> = {
1232
+ channel: {
1233
+ observeState(callback: (props: unknown, environment: Environment) => unknown): {
1234
+ disconnect: () => void;
1235
+ } | Promise<{
1236
+ disconnect: () => void;
1237
+ }>;
1238
+ };
1239
+ environment?: Environment;
1240
+ /**
1241
+ * Optional bast url to use for API requests, for example `www.wixapis.com`
1242
+ */
1243
+ apiBaseUrl?: string;
1244
+ /**
1245
+ * Possible data to be provided by every host, for cross cutting concerns
1246
+ * like internationalization, billing, etc.
1247
+ */
1248
+ essentials?: {
1249
+ /**
1250
+ * The language of the currently viewed session
1251
+ */
1252
+ language?: string;
1253
+ /**
1254
+ * The locale of the currently viewed session
1255
+ */
1256
+ locale?: string;
1257
+ /**
1258
+ * Any headers that should be passed through to the API requests
1259
+ */
1260
+ passThroughHeaders?: Record<string, string>;
1261
+ };
1262
+ };
1263
+
1264
+ type RESTFunctionDescriptor$4<T extends (...args: any[]) => any = (...args: any[]) => any> = (httpClient: HttpClient$4) => T;
1265
+ interface HttpClient$4 {
1266
+ request<TResponse, TData = any>(req: RequestOptionsFactory$4<TResponse, TData>): Promise<HttpResponse$4<TResponse>>;
1267
+ fetchWithAuth: typeof fetch;
1268
+ wixAPIFetch: (relativeUrl: string, options: RequestInit) => Promise<Response>;
1269
+ getActiveToken?: () => string | undefined;
1270
+ }
1271
+ type RequestOptionsFactory$4<TResponse = any, TData = any> = (context: any) => RequestOptions$4<TResponse, TData>;
1272
+ type HttpResponse$4<T = any> = {
1273
+ data: T;
1274
+ status: number;
1275
+ statusText: string;
1276
+ headers: any;
1277
+ request?: any;
1278
+ };
1279
+ type RequestOptions$4<_TResponse = any, Data = any> = {
1280
+ method: 'POST' | 'GET' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';
1281
+ url: string;
1282
+ data?: Data;
1283
+ params?: URLSearchParams;
1284
+ } & APIMetadata$4;
1285
+ type APIMetadata$4 = {
1286
+ methodFqn?: string;
1287
+ entityFqdn?: string;
1288
+ packageName?: string;
1289
+ };
1290
+ type BuildRESTFunction$4<T extends RESTFunctionDescriptor$4> = T extends RESTFunctionDescriptor$4<infer U> ? U : never;
1291
+ type EventDefinition$7<Payload = unknown, Type extends string = string> = {
1292
+ __type: 'event-definition';
1293
+ type: Type;
1294
+ isDomainEvent?: boolean;
1295
+ transformations?: (envelope: unknown) => Payload;
1296
+ __payload: Payload;
1297
+ };
1298
+ declare function EventDefinition$7<Type extends string>(type: Type, isDomainEvent?: boolean, transformations?: (envelope: any) => unknown): <Payload = unknown>() => EventDefinition$7<Payload, Type>;
1299
+ type EventHandler$7<T extends EventDefinition$7> = (payload: T['__payload']) => void | Promise<void>;
1300
+ type BuildEventDefinition$7<T extends EventDefinition$7<any, string>> = (handler: EventHandler$7<T>) => void;
1301
+
1302
+ type ServicePluginMethodInput$4 = {
1303
+ request: any;
1304
+ metadata: any;
1305
+ };
1306
+ type ServicePluginContract$4 = Record<string, (payload: ServicePluginMethodInput$4) => unknown | Promise<unknown>>;
1307
+ type ServicePluginMethodMetadata$4 = {
1308
+ name: string;
1309
+ primaryHttpMappingPath: string;
1310
+ transformations: {
1311
+ fromREST: (...args: unknown[]) => ServicePluginMethodInput$4;
1312
+ toREST: (...args: unknown[]) => unknown;
1313
+ };
1314
+ };
1315
+ type ServicePluginDefinition$4<Contract extends ServicePluginContract$4> = {
1316
+ __type: 'service-plugin-definition';
1317
+ componentType: string;
1318
+ methods: ServicePluginMethodMetadata$4[];
1319
+ __contract: Contract;
1320
+ };
1321
+ declare function ServicePluginDefinition$4<Contract extends ServicePluginContract$4>(componentType: string, methods: ServicePluginMethodMetadata$4[]): ServicePluginDefinition$4<Contract>;
1322
+ type BuildServicePluginDefinition$4<T extends ServicePluginDefinition$4<any>> = (implementation: T['__contract']) => void;
1323
+ declare const SERVICE_PLUGIN_ERROR_TYPE$4 = "wix_spi_error";
1324
+
1325
+ type RequestContext$4 = {
1326
+ isSSR: boolean;
1327
+ host: string;
1328
+ protocol?: string;
1329
+ };
1330
+ type ResponseTransformer$4 = (data: any, headers?: any) => any;
1331
+ /**
1332
+ * Ambassador request options types are copied mostly from AxiosRequestConfig.
1333
+ * They are copied and not imported to reduce the amount of dependencies (to reduce install time).
1334
+ * https://github.com/axios/axios/blob/3f53eb6960f05a1f88409c4b731a40de595cb825/index.d.ts#L307-L315
1335
+ */
1336
+ type Method$4 = 'get' | 'GET' | 'delete' | 'DELETE' | 'head' | 'HEAD' | 'options' | 'OPTIONS' | 'post' | 'POST' | 'put' | 'PUT' | 'patch' | 'PATCH' | 'purge' | 'PURGE' | 'link' | 'LINK' | 'unlink' | 'UNLINK';
1337
+ type AmbassadorRequestOptions$4<T = any> = {
1338
+ _?: T;
1339
+ url?: string;
1340
+ method?: Method$4;
1341
+ params?: any;
1342
+ data?: any;
1343
+ transformResponse?: ResponseTransformer$4 | ResponseTransformer$4[];
1344
+ };
1345
+ type AmbassadorFactory$4<Request, Response> = (payload: Request) => ((context: RequestContext$4) => AmbassadorRequestOptions$4<Response>) & {
1346
+ __isAmbassador: boolean;
1347
+ };
1348
+ type AmbassadorFunctionDescriptor$4<Request = any, Response = any> = AmbassadorFactory$4<Request, Response>;
1349
+ type BuildAmbassadorFunction$4<T extends AmbassadorFunctionDescriptor$4> = T extends AmbassadorFunctionDescriptor$4<infer Request, infer Response> ? (req: Request) => Promise<Response> : never;
1350
+
1351
+ declare global {
1352
+ // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
1353
+ interface SymbolConstructor {
1354
+ readonly observable: symbol;
1355
+ }
1356
+ }
1357
+
1358
+ declare const emptyObjectSymbol$4: unique symbol;
1359
+
1360
+ /**
1361
+ Represents a strictly empty plain object, the `{}` value.
1362
+
1363
+ When you annotate something as the type `{}`, it can be anything except `null` and `undefined`. This means that you cannot use `{}` to represent an empty plain object ([read more](https://stackoverflow.com/questions/47339869/typescript-empty-object-and-any-difference/52193484#52193484)).
1364
+
1365
+ @example
1366
+ ```
1367
+ import type {EmptyObject} from 'type-fest';
1368
+
1369
+ // The following illustrates the problem with `{}`.
1370
+ const foo1: {} = {}; // Pass
1371
+ const foo2: {} = []; // Pass
1372
+ const foo3: {} = 42; // Pass
1373
+ const foo4: {} = {a: 1}; // Pass
1374
+
1375
+ // With `EmptyObject` only the first case is valid.
1376
+ const bar1: EmptyObject = {}; // Pass
1377
+ const bar2: EmptyObject = 42; // Fail
1378
+ const bar3: EmptyObject = []; // Fail
1379
+ const bar4: EmptyObject = {a: 1}; // Fail
1380
+ ```
1381
+
1382
+ Unfortunately, `Record<string, never>`, `Record<keyof any, never>` and `Record<never, never>` do not work. See {@link https://github.com/sindresorhus/type-fest/issues/395 #395}.
1383
+
1384
+ @category Object
1385
+ */
1386
+ type EmptyObject$4 = {[emptyObjectSymbol$4]?: never};
1387
+
1388
+ /**
1389
+ Returns a boolean for whether the two given types are equal.
1390
+
1391
+ @link https://github.com/microsoft/TypeScript/issues/27024#issuecomment-421529650
1392
+ @link https://stackoverflow.com/questions/68961864/how-does-the-equals-work-in-typescript/68963796#68963796
1393
+
1394
+ Use-cases:
1395
+ - If you want to make a conditional branch based on the result of a comparison of two types.
1396
+
1397
+ @example
1398
+ ```
1399
+ import type {IsEqual} from 'type-fest';
1400
+
1401
+ // This type returns a boolean for whether the given array includes the given item.
1402
+ // `IsEqual` is used to compare the given array at position 0 and the given item and then return true if they are equal.
1403
+ type Includes<Value extends readonly any[], Item> =
1404
+ Value extends readonly [Value[0], ...infer rest]
1405
+ ? IsEqual<Value[0], Item> extends true
1406
+ ? true
1407
+ : Includes<rest, Item>
1408
+ : false;
1409
+ ```
1410
+
1411
+ @category Type Guard
1412
+ @category Utilities
1413
+ */
1414
+ type IsEqual$4<A, B> =
1415
+ (<G>() => G extends A ? 1 : 2) extends
1416
+ (<G>() => G extends B ? 1 : 2)
1417
+ ? true
1418
+ : false;
1419
+
1420
+ /**
1421
+ Filter out keys from an object.
1422
+
1423
+ Returns `never` if `Exclude` is strictly equal to `Key`.
1424
+ Returns `never` if `Key` extends `Exclude`.
1425
+ Returns `Key` otherwise.
1426
+
1427
+ @example
1428
+ ```
1429
+ type Filtered = Filter<'foo', 'foo'>;
1430
+ //=> never
1431
+ ```
1432
+
1433
+ @example
1434
+ ```
1435
+ type Filtered = Filter<'bar', string>;
1436
+ //=> never
1437
+ ```
1438
+
1439
+ @example
1440
+ ```
1441
+ type Filtered = Filter<'bar', 'foo'>;
1442
+ //=> 'bar'
1443
+ ```
1444
+
1445
+ @see {Except}
1446
+ */
1447
+ type Filter$4<KeyType, ExcludeType> = IsEqual$4<KeyType, ExcludeType> extends true ? never : (KeyType extends ExcludeType ? never : KeyType);
1448
+
1449
+ type ExceptOptions$4 = {
1450
+ /**
1451
+ Disallow assigning non-specified properties.
1452
+
1453
+ Note that any omitted properties in the resulting type will be present in autocomplete as `undefined`.
1454
+
1455
+ @default false
1456
+ */
1457
+ requireExactProps?: boolean;
1458
+ };
1459
+
1460
+ /**
1461
+ Create a type from an object type without certain keys.
1462
+
1463
+ We recommend setting the `requireExactProps` option to `true`.
1464
+
1465
+ This type is a stricter version of [`Omit`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-5.html#the-omit-helper-type). The `Omit` type does not restrict the omitted keys to be keys present on the given type, while `Except` does. The benefits of a stricter type are avoiding typos and allowing the compiler to pick up on rename refactors automatically.
1466
+
1467
+ This type was proposed to the TypeScript team, which declined it, saying they prefer that libraries implement stricter versions of the built-in types ([microsoft/TypeScript#30825](https://github.com/microsoft/TypeScript/issues/30825#issuecomment-523668235)).
1468
+
1469
+ @example
1470
+ ```
1471
+ import type {Except} from 'type-fest';
1472
+
1473
+ type Foo = {
1474
+ a: number;
1475
+ b: string;
1476
+ };
1477
+
1478
+ type FooWithoutA = Except<Foo, 'a'>;
1479
+ //=> {b: string}
1480
+
1481
+ const fooWithoutA: FooWithoutA = {a: 1, b: '2'};
1482
+ //=> errors: 'a' does not exist in type '{ b: string; }'
1483
+
1484
+ type FooWithoutB = Except<Foo, 'b', {requireExactProps: true}>;
1485
+ //=> {a: number} & Partial<Record<"b", never>>
1486
+
1487
+ const fooWithoutB: FooWithoutB = {a: 1, b: '2'};
1488
+ //=> errors at 'b': Type 'string' is not assignable to type 'undefined'.
1489
+ ```
1490
+
1491
+ @category Object
1492
+ */
1493
+ type Except$4<ObjectType, KeysType extends keyof ObjectType, Options extends ExceptOptions$4 = {requireExactProps: false}> = {
1494
+ [KeyType in keyof ObjectType as Filter$4<KeyType, KeysType>]: ObjectType[KeyType];
1495
+ } & (Options['requireExactProps'] extends true
1496
+ ? Partial<Record<KeysType, never>>
1497
+ : {});
1498
+
1499
+ /**
1500
+ Extract the keys from a type where the value type of the key extends the given `Condition`.
1501
+
1502
+ Internally this is used for the `ConditionalPick` and `ConditionalExcept` types.
1503
+
1504
+ @example
1505
+ ```
1506
+ import type {ConditionalKeys} from 'type-fest';
1507
+
1508
+ interface Example {
1509
+ a: string;
1510
+ b: string | number;
1511
+ c?: string;
1512
+ d: {};
1513
+ }
1514
+
1515
+ type StringKeysOnly = ConditionalKeys<Example, string>;
1516
+ //=> 'a'
1517
+ ```
1518
+
1519
+ To support partial types, make sure your `Condition` is a union of undefined (for example, `string | undefined`) as demonstrated below.
1520
+
1521
+ @example
1522
+ ```
1523
+ import type {ConditionalKeys} from 'type-fest';
1524
+
1525
+ type StringKeysAndUndefined = ConditionalKeys<Example, string | undefined>;
1526
+ //=> 'a' | 'c'
1527
+ ```
1528
+
1529
+ @category Object
1530
+ */
1531
+ type ConditionalKeys$4<Base, Condition> = NonNullable<
1532
+ // Wrap in `NonNullable` to strip away the `undefined` type from the produced union.
1533
+ {
1534
+ // Map through all the keys of the given base type.
1535
+ [Key in keyof Base]:
1536
+ // Pick only keys with types extending the given `Condition` type.
1537
+ Base[Key] extends Condition
1538
+ // Retain this key since the condition passes.
1539
+ ? Key
1540
+ // Discard this key since the condition fails.
1541
+ : never;
1542
+
1543
+ // Convert the produced object into a union type of the keys which passed the conditional test.
1544
+ }[keyof Base]
1545
+ >;
1546
+
1547
+ /**
1548
+ Exclude keys from a shape that matches the given `Condition`.
1549
+
1550
+ This is useful when you want to create a new type with a specific set of keys from a shape. For example, you might want to exclude all the primitive properties from a class and form a new shape containing everything but the primitive properties.
1551
+
1552
+ @example
1553
+ ```
1554
+ import type {Primitive, ConditionalExcept} from 'type-fest';
1555
+
1556
+ class Awesome {
1557
+ name: string;
1558
+ successes: number;
1559
+ failures: bigint;
1560
+
1561
+ run() {}
1562
+ }
1563
+
1564
+ type ExceptPrimitivesFromAwesome = ConditionalExcept<Awesome, Primitive>;
1565
+ //=> {run: () => void}
1566
+ ```
1567
+
1568
+ @example
1569
+ ```
1570
+ import type {ConditionalExcept} from 'type-fest';
1571
+
1572
+ interface Example {
1573
+ a: string;
1574
+ b: string | number;
1575
+ c: () => void;
1576
+ d: {};
1577
+ }
1578
+
1579
+ type NonStringKeysOnly = ConditionalExcept<Example, string>;
1580
+ //=> {b: string | number; c: () => void; d: {}}
1581
+ ```
1582
+
1583
+ @category Object
1584
+ */
1585
+ type ConditionalExcept$4<Base, Condition> = Except$4<
1586
+ Base,
1587
+ ConditionalKeys$4<Base, Condition>
1588
+ >;
1589
+
1590
+ /**
1591
+ * Descriptors are objects that describe the API of a module, and the module
1592
+ * can either be a REST module or a host module.
1593
+ * This type is recursive, so it can describe nested modules.
1594
+ */
1595
+ type Descriptors$4 = RESTFunctionDescriptor$4 | AmbassadorFunctionDescriptor$4 | HostModule$4<any, any> | EventDefinition$7<any> | ServicePluginDefinition$4<any> | {
1596
+ [key: string]: Descriptors$4 | PublicMetadata$4 | any;
1597
+ };
1598
+ /**
1599
+ * This type takes in a descriptors object of a certain Host (including an `unknown` host)
1600
+ * and returns an object with the same structure, but with all descriptors replaced with their API.
1601
+ * Any non-descriptor properties are removed from the returned object, including descriptors that
1602
+ * do not match the given host (as they will not work with the given host).
1603
+ */
1604
+ type BuildDescriptors$4<T extends Descriptors$4, H extends Host$4<any> | undefined, Depth extends number = 5> = {
1605
+ done: T;
1606
+ recurse: T extends {
1607
+ __type: typeof SERVICE_PLUGIN_ERROR_TYPE$4;
1608
+ } ? never : T extends AmbassadorFunctionDescriptor$4 ? BuildAmbassadorFunction$4<T> : T extends RESTFunctionDescriptor$4 ? BuildRESTFunction$4<T> : T extends EventDefinition$7<any> ? BuildEventDefinition$7<T> : T extends ServicePluginDefinition$4<any> ? BuildServicePluginDefinition$4<T> : T extends HostModule$4<any, any> ? HostModuleAPI$4<T> : ConditionalExcept$4<{
1609
+ [Key in keyof T]: T[Key] extends Descriptors$4 ? BuildDescriptors$4<T[Key], H, [
1610
+ -1,
1611
+ 0,
1612
+ 1,
1613
+ 2,
1614
+ 3,
1615
+ 4,
1616
+ 5
1617
+ ][Depth]> : never;
1618
+ }, EmptyObject$4>;
1619
+ }[Depth extends -1 ? 'done' : 'recurse'];
1620
+ type PublicMetadata$4 = {
1621
+ PACKAGE_NAME?: string;
1622
+ };
1623
+
1624
+ declare global {
1625
+ interface ContextualClient {
1626
+ }
1627
+ }
1628
+ /**
1629
+ * A type used to create concerete types from SDK descriptors in
1630
+ * case a contextual client is available.
1631
+ */
1632
+ type MaybeContext$4<T extends Descriptors$4> = globalThis.ContextualClient extends {
1633
+ host: Host$4;
1634
+ } ? BuildDescriptors$4<T, globalThis.ContextualClient['host']> : T;
1635
+
842
1636
  interface PortfolioSettings {
843
1637
  /**
844
1638
  * The revision of the portfolio settings
@@ -1035,7 +1829,7 @@ interface UpdatePortfolioSettingsResponseNonNullableFields {
1035
1829
  updatedPortfolioSettings?: PortfolioSettingsNonNullableFields;
1036
1830
  }
1037
1831
 
1038
- declare function createPortfolioSettings$1(httpClient: HttpClient): CreatePortfolioSettingsSignature;
1832
+ declare function createPortfolioSettings$1(httpClient: HttpClient$4): CreatePortfolioSettingsSignature;
1039
1833
  interface CreatePortfolioSettingsSignature {
1040
1834
  /**
1041
1835
  * Create a new portfolio settings
@@ -1044,14 +1838,14 @@ interface CreatePortfolioSettingsSignature {
1044
1838
  */
1045
1839
  (portfolioSettings: PortfolioSettings): Promise<PortfolioSettings & PortfolioSettingsNonNullableFields>;
1046
1840
  }
1047
- declare function getPortfolioSettings$1(httpClient: HttpClient): GetPortfolioSettingsSignature;
1841
+ declare function getPortfolioSettings$1(httpClient: HttpClient$4): GetPortfolioSettingsSignature;
1048
1842
  interface GetPortfolioSettingsSignature {
1049
1843
  /**
1050
1844
  * Get the portfolio settings
1051
1845
  */
1052
1846
  (): Promise<GetPortfolioSettingsResponse & GetPortfolioSettingsResponseNonNullableFields>;
1053
1847
  }
1054
- declare function updatePortfolioSettings$1(httpClient: HttpClient): UpdatePortfolioSettingsSignature;
1848
+ declare function updatePortfolioSettings$1(httpClient: HttpClient$4): UpdatePortfolioSettingsSignature;
1055
1849
  interface UpdatePortfolioSettingsSignature {
1056
1850
  /**
1057
1851
  * Update the portfolio settings
@@ -1060,9 +1854,9 @@ interface UpdatePortfolioSettingsSignature {
1060
1854
  (portfolioSettings: PortfolioSettings): Promise<UpdatePortfolioSettingsResponse & UpdatePortfolioSettingsResponseNonNullableFields>;
1061
1855
  }
1062
1856
 
1063
- declare const createPortfolioSettings: BuildRESTFunction<typeof createPortfolioSettings$1> & typeof createPortfolioSettings$1;
1064
- declare const getPortfolioSettings: BuildRESTFunction<typeof getPortfolioSettings$1> & typeof getPortfolioSettings$1;
1065
- declare const updatePortfolioSettings: BuildRESTFunction<typeof updatePortfolioSettings$1> & typeof updatePortfolioSettings$1;
1857
+ declare const createPortfolioSettings: MaybeContext$4<BuildRESTFunction$4<typeof createPortfolioSettings$1> & typeof createPortfolioSettings$1>;
1858
+ declare const getPortfolioSettings: MaybeContext$4<BuildRESTFunction$4<typeof getPortfolioSettings$1> & typeof getPortfolioSettings$1>;
1859
+ declare const updatePortfolioSettings: MaybeContext$4<BuildRESTFunction$4<typeof updatePortfolioSettings$1> & typeof updatePortfolioSettings$1>;
1066
1860
 
1067
1861
  type index_d$4_AddItemDirection = AddItemDirection;
1068
1862
  declare const index_d$4_AddItemDirection: typeof AddItemDirection;
@@ -1089,22 +1883,432 @@ declare namespace index_d$4 {
1089
1883
  export { type ActionEvent$4 as ActionEvent, index_d$4_AddItemDirection as AddItemDirection, type index_d$4_CreatePortfolioSettingsRequest as CreatePortfolioSettingsRequest, type index_d$4_CreatePortfolioSettingsResponse as CreatePortfolioSettingsResponse, type index_d$4_CreatePortfolioSettingsResponseNonNullableFields as CreatePortfolioSettingsResponseNonNullableFields, index_d$4_DefaultItemName as DefaultItemName, type DomainEvent$4 as DomainEvent, type DomainEventBodyOneOf$4 as DomainEventBodyOneOf, type EntityCreatedEvent$4 as EntityCreatedEvent, type EntityDeletedEvent$4 as EntityDeletedEvent, type EntityUpdatedEvent$4 as EntityUpdatedEvent, type index_d$4_GetPortfolioSettingsRequest as GetPortfolioSettingsRequest, type index_d$4_GetPortfolioSettingsResponse as GetPortfolioSettingsResponse, type index_d$4_GetPortfolioSettingsResponseNonNullableFields as GetPortfolioSettingsResponseNonNullableFields, type IdentificationData$4 as IdentificationData, type IdentificationDataIdOneOf$4 as IdentificationDataIdOneOf, type index_d$4_MediaSettings as MediaSettings, type MessageEnvelope$4 as MessageEnvelope, type index_d$4_PortfolioSettings as PortfolioSettings, type index_d$4_PortfolioSettingsNonNullableFields as PortfolioSettingsNonNullableFields, type index_d$4_ProjectItemSettings as ProjectItemSettings, type RestoreInfo$4 as RestoreInfo, type index_d$4_SiteMenuSettings as SiteMenuSettings, type index_d$4_UpdatePortfolioSettingsRequest as UpdatePortfolioSettingsRequest, type index_d$4_UpdatePortfolioSettingsResponse as UpdatePortfolioSettingsResponse, type index_d$4_UpdatePortfolioSettingsResponseNonNullableFields as UpdatePortfolioSettingsResponseNonNullableFields, WebhookIdentityType$4 as WebhookIdentityType, index_d$4_createPortfolioSettings as createPortfolioSettings, index_d$4_getPortfolioSettings as getPortfolioSettings, index_d$4_updatePortfolioSettings as updatePortfolioSettings };
1090
1884
  }
1091
1885
 
1092
- /** ProjectItem is the main entity of ProjectItemsService */
1093
- interface Item extends ItemMetadataOneOf {
1094
- /** Information about the image. */
1095
- image?: Image$2;
1096
- /** Information about the video. */
1097
- video?: Video$2;
1098
- /**
1099
- * Id of the Project the items are part of
1100
- * Project must exist before adding items to it. You can create a project using the [ProjectService](https://dev.wix.com/docs/rest/business-solutions/portfolio/project)
1101
- */
1102
- projectId?: string | null;
1103
- /**
1104
- * Item ID.
1105
- * @readonly
1106
- */
1107
- _id?: string | null;
1886
+ type HostModule$3<T, H extends Host$3> = {
1887
+ __type: 'host';
1888
+ create(host: H): T;
1889
+ };
1890
+ type HostModuleAPI$3<T extends HostModule$3<any, any>> = T extends HostModule$3<infer U, any> ? U : never;
1891
+ type Host$3<Environment = unknown> = {
1892
+ channel: {
1893
+ observeState(callback: (props: unknown, environment: Environment) => unknown): {
1894
+ disconnect: () => void;
1895
+ } | Promise<{
1896
+ disconnect: () => void;
1897
+ }>;
1898
+ };
1899
+ environment?: Environment;
1900
+ /**
1901
+ * Optional bast url to use for API requests, for example `www.wixapis.com`
1902
+ */
1903
+ apiBaseUrl?: string;
1904
+ /**
1905
+ * Possible data to be provided by every host, for cross cutting concerns
1906
+ * like internationalization, billing, etc.
1907
+ */
1908
+ essentials?: {
1909
+ /**
1910
+ * The language of the currently viewed session
1911
+ */
1912
+ language?: string;
1913
+ /**
1914
+ * The locale of the currently viewed session
1915
+ */
1916
+ locale?: string;
1917
+ /**
1918
+ * Any headers that should be passed through to the API requests
1919
+ */
1920
+ passThroughHeaders?: Record<string, string>;
1921
+ };
1922
+ };
1923
+
1924
+ type RESTFunctionDescriptor$3<T extends (...args: any[]) => any = (...args: any[]) => any> = (httpClient: HttpClient$3) => T;
1925
+ interface HttpClient$3 {
1926
+ request<TResponse, TData = any>(req: RequestOptionsFactory$3<TResponse, TData>): Promise<HttpResponse$3<TResponse>>;
1927
+ fetchWithAuth: typeof fetch;
1928
+ wixAPIFetch: (relativeUrl: string, options: RequestInit) => Promise<Response>;
1929
+ getActiveToken?: () => string | undefined;
1930
+ }
1931
+ type RequestOptionsFactory$3<TResponse = any, TData = any> = (context: any) => RequestOptions$3<TResponse, TData>;
1932
+ type HttpResponse$3<T = any> = {
1933
+ data: T;
1934
+ status: number;
1935
+ statusText: string;
1936
+ headers: any;
1937
+ request?: any;
1938
+ };
1939
+ type RequestOptions$3<_TResponse = any, Data = any> = {
1940
+ method: 'POST' | 'GET' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';
1941
+ url: string;
1942
+ data?: Data;
1943
+ params?: URLSearchParams;
1944
+ } & APIMetadata$3;
1945
+ type APIMetadata$3 = {
1946
+ methodFqn?: string;
1947
+ entityFqdn?: string;
1948
+ packageName?: string;
1949
+ };
1950
+ type BuildRESTFunction$3<T extends RESTFunctionDescriptor$3> = T extends RESTFunctionDescriptor$3<infer U> ? U : never;
1951
+ type EventDefinition$6<Payload = unknown, Type extends string = string> = {
1952
+ __type: 'event-definition';
1953
+ type: Type;
1954
+ isDomainEvent?: boolean;
1955
+ transformations?: (envelope: unknown) => Payload;
1956
+ __payload: Payload;
1957
+ };
1958
+ declare function EventDefinition$6<Type extends string>(type: Type, isDomainEvent?: boolean, transformations?: (envelope: any) => unknown): <Payload = unknown>() => EventDefinition$6<Payload, Type>;
1959
+ type EventHandler$6<T extends EventDefinition$6> = (payload: T['__payload']) => void | Promise<void>;
1960
+ type BuildEventDefinition$6<T extends EventDefinition$6<any, string>> = (handler: EventHandler$6<T>) => void;
1961
+
1962
+ type ServicePluginMethodInput$3 = {
1963
+ request: any;
1964
+ metadata: any;
1965
+ };
1966
+ type ServicePluginContract$3 = Record<string, (payload: ServicePluginMethodInput$3) => unknown | Promise<unknown>>;
1967
+ type ServicePluginMethodMetadata$3 = {
1968
+ name: string;
1969
+ primaryHttpMappingPath: string;
1970
+ transformations: {
1971
+ fromREST: (...args: unknown[]) => ServicePluginMethodInput$3;
1972
+ toREST: (...args: unknown[]) => unknown;
1973
+ };
1974
+ };
1975
+ type ServicePluginDefinition$3<Contract extends ServicePluginContract$3> = {
1976
+ __type: 'service-plugin-definition';
1977
+ componentType: string;
1978
+ methods: ServicePluginMethodMetadata$3[];
1979
+ __contract: Contract;
1980
+ };
1981
+ declare function ServicePluginDefinition$3<Contract extends ServicePluginContract$3>(componentType: string, methods: ServicePluginMethodMetadata$3[]): ServicePluginDefinition$3<Contract>;
1982
+ type BuildServicePluginDefinition$3<T extends ServicePluginDefinition$3<any>> = (implementation: T['__contract']) => void;
1983
+ declare const SERVICE_PLUGIN_ERROR_TYPE$3 = "wix_spi_error";
1984
+
1985
+ type RequestContext$3 = {
1986
+ isSSR: boolean;
1987
+ host: string;
1988
+ protocol?: string;
1989
+ };
1990
+ type ResponseTransformer$3 = (data: any, headers?: any) => any;
1991
+ /**
1992
+ * Ambassador request options types are copied mostly from AxiosRequestConfig.
1993
+ * They are copied and not imported to reduce the amount of dependencies (to reduce install time).
1994
+ * https://github.com/axios/axios/blob/3f53eb6960f05a1f88409c4b731a40de595cb825/index.d.ts#L307-L315
1995
+ */
1996
+ type Method$3 = 'get' | 'GET' | 'delete' | 'DELETE' | 'head' | 'HEAD' | 'options' | 'OPTIONS' | 'post' | 'POST' | 'put' | 'PUT' | 'patch' | 'PATCH' | 'purge' | 'PURGE' | 'link' | 'LINK' | 'unlink' | 'UNLINK';
1997
+ type AmbassadorRequestOptions$3<T = any> = {
1998
+ _?: T;
1999
+ url?: string;
2000
+ method?: Method$3;
2001
+ params?: any;
2002
+ data?: any;
2003
+ transformResponse?: ResponseTransformer$3 | ResponseTransformer$3[];
2004
+ };
2005
+ type AmbassadorFactory$3<Request, Response> = (payload: Request) => ((context: RequestContext$3) => AmbassadorRequestOptions$3<Response>) & {
2006
+ __isAmbassador: boolean;
2007
+ };
2008
+ type AmbassadorFunctionDescriptor$3<Request = any, Response = any> = AmbassadorFactory$3<Request, Response>;
2009
+ type BuildAmbassadorFunction$3<T extends AmbassadorFunctionDescriptor$3> = T extends AmbassadorFunctionDescriptor$3<infer Request, infer Response> ? (req: Request) => Promise<Response> : never;
2010
+
2011
+ declare global {
2012
+ // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
2013
+ interface SymbolConstructor {
2014
+ readonly observable: symbol;
2015
+ }
2016
+ }
2017
+
2018
+ declare const emptyObjectSymbol$3: unique symbol;
2019
+
2020
+ /**
2021
+ Represents a strictly empty plain object, the `{}` value.
2022
+
2023
+ When you annotate something as the type `{}`, it can be anything except `null` and `undefined`. This means that you cannot use `{}` to represent an empty plain object ([read more](https://stackoverflow.com/questions/47339869/typescript-empty-object-and-any-difference/52193484#52193484)).
2024
+
2025
+ @example
2026
+ ```
2027
+ import type {EmptyObject} from 'type-fest';
2028
+
2029
+ // The following illustrates the problem with `{}`.
2030
+ const foo1: {} = {}; // Pass
2031
+ const foo2: {} = []; // Pass
2032
+ const foo3: {} = 42; // Pass
2033
+ const foo4: {} = {a: 1}; // Pass
2034
+
2035
+ // With `EmptyObject` only the first case is valid.
2036
+ const bar1: EmptyObject = {}; // Pass
2037
+ const bar2: EmptyObject = 42; // Fail
2038
+ const bar3: EmptyObject = []; // Fail
2039
+ const bar4: EmptyObject = {a: 1}; // Fail
2040
+ ```
2041
+
2042
+ Unfortunately, `Record<string, never>`, `Record<keyof any, never>` and `Record<never, never>` do not work. See {@link https://github.com/sindresorhus/type-fest/issues/395 #395}.
2043
+
2044
+ @category Object
2045
+ */
2046
+ type EmptyObject$3 = {[emptyObjectSymbol$3]?: never};
2047
+
2048
+ /**
2049
+ Returns a boolean for whether the two given types are equal.
2050
+
2051
+ @link https://github.com/microsoft/TypeScript/issues/27024#issuecomment-421529650
2052
+ @link https://stackoverflow.com/questions/68961864/how-does-the-equals-work-in-typescript/68963796#68963796
2053
+
2054
+ Use-cases:
2055
+ - If you want to make a conditional branch based on the result of a comparison of two types.
2056
+
2057
+ @example
2058
+ ```
2059
+ import type {IsEqual} from 'type-fest';
2060
+
2061
+ // This type returns a boolean for whether the given array includes the given item.
2062
+ // `IsEqual` is used to compare the given array at position 0 and the given item and then return true if they are equal.
2063
+ type Includes<Value extends readonly any[], Item> =
2064
+ Value extends readonly [Value[0], ...infer rest]
2065
+ ? IsEqual<Value[0], Item> extends true
2066
+ ? true
2067
+ : Includes<rest, Item>
2068
+ : false;
2069
+ ```
2070
+
2071
+ @category Type Guard
2072
+ @category Utilities
2073
+ */
2074
+ type IsEqual$3<A, B> =
2075
+ (<G>() => G extends A ? 1 : 2) extends
2076
+ (<G>() => G extends B ? 1 : 2)
2077
+ ? true
2078
+ : false;
2079
+
2080
+ /**
2081
+ Filter out keys from an object.
2082
+
2083
+ Returns `never` if `Exclude` is strictly equal to `Key`.
2084
+ Returns `never` if `Key` extends `Exclude`.
2085
+ Returns `Key` otherwise.
2086
+
2087
+ @example
2088
+ ```
2089
+ type Filtered = Filter<'foo', 'foo'>;
2090
+ //=> never
2091
+ ```
2092
+
2093
+ @example
2094
+ ```
2095
+ type Filtered = Filter<'bar', string>;
2096
+ //=> never
2097
+ ```
2098
+
2099
+ @example
2100
+ ```
2101
+ type Filtered = Filter<'bar', 'foo'>;
2102
+ //=> 'bar'
2103
+ ```
2104
+
2105
+ @see {Except}
2106
+ */
2107
+ type Filter$3<KeyType, ExcludeType> = IsEqual$3<KeyType, ExcludeType> extends true ? never : (KeyType extends ExcludeType ? never : KeyType);
2108
+
2109
+ type ExceptOptions$3 = {
2110
+ /**
2111
+ Disallow assigning non-specified properties.
2112
+
2113
+ Note that any omitted properties in the resulting type will be present in autocomplete as `undefined`.
2114
+
2115
+ @default false
2116
+ */
2117
+ requireExactProps?: boolean;
2118
+ };
2119
+
2120
+ /**
2121
+ Create a type from an object type without certain keys.
2122
+
2123
+ We recommend setting the `requireExactProps` option to `true`.
2124
+
2125
+ This type is a stricter version of [`Omit`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-5.html#the-omit-helper-type). The `Omit` type does not restrict the omitted keys to be keys present on the given type, while `Except` does. The benefits of a stricter type are avoiding typos and allowing the compiler to pick up on rename refactors automatically.
2126
+
2127
+ This type was proposed to the TypeScript team, which declined it, saying they prefer that libraries implement stricter versions of the built-in types ([microsoft/TypeScript#30825](https://github.com/microsoft/TypeScript/issues/30825#issuecomment-523668235)).
2128
+
2129
+ @example
2130
+ ```
2131
+ import type {Except} from 'type-fest';
2132
+
2133
+ type Foo = {
2134
+ a: number;
2135
+ b: string;
2136
+ };
2137
+
2138
+ type FooWithoutA = Except<Foo, 'a'>;
2139
+ //=> {b: string}
2140
+
2141
+ const fooWithoutA: FooWithoutA = {a: 1, b: '2'};
2142
+ //=> errors: 'a' does not exist in type '{ b: string; }'
2143
+
2144
+ type FooWithoutB = Except<Foo, 'b', {requireExactProps: true}>;
2145
+ //=> {a: number} & Partial<Record<"b", never>>
2146
+
2147
+ const fooWithoutB: FooWithoutB = {a: 1, b: '2'};
2148
+ //=> errors at 'b': Type 'string' is not assignable to type 'undefined'.
2149
+ ```
2150
+
2151
+ @category Object
2152
+ */
2153
+ type Except$3<ObjectType, KeysType extends keyof ObjectType, Options extends ExceptOptions$3 = {requireExactProps: false}> = {
2154
+ [KeyType in keyof ObjectType as Filter$3<KeyType, KeysType>]: ObjectType[KeyType];
2155
+ } & (Options['requireExactProps'] extends true
2156
+ ? Partial<Record<KeysType, never>>
2157
+ : {});
2158
+
2159
+ /**
2160
+ Extract the keys from a type where the value type of the key extends the given `Condition`.
2161
+
2162
+ Internally this is used for the `ConditionalPick` and `ConditionalExcept` types.
2163
+
2164
+ @example
2165
+ ```
2166
+ import type {ConditionalKeys} from 'type-fest';
2167
+
2168
+ interface Example {
2169
+ a: string;
2170
+ b: string | number;
2171
+ c?: string;
2172
+ d: {};
2173
+ }
2174
+
2175
+ type StringKeysOnly = ConditionalKeys<Example, string>;
2176
+ //=> 'a'
2177
+ ```
2178
+
2179
+ To support partial types, make sure your `Condition` is a union of undefined (for example, `string | undefined`) as demonstrated below.
2180
+
2181
+ @example
2182
+ ```
2183
+ import type {ConditionalKeys} from 'type-fest';
2184
+
2185
+ type StringKeysAndUndefined = ConditionalKeys<Example, string | undefined>;
2186
+ //=> 'a' | 'c'
2187
+ ```
2188
+
2189
+ @category Object
2190
+ */
2191
+ type ConditionalKeys$3<Base, Condition> = NonNullable<
2192
+ // Wrap in `NonNullable` to strip away the `undefined` type from the produced union.
2193
+ {
2194
+ // Map through all the keys of the given base type.
2195
+ [Key in keyof Base]:
2196
+ // Pick only keys with types extending the given `Condition` type.
2197
+ Base[Key] extends Condition
2198
+ // Retain this key since the condition passes.
2199
+ ? Key
2200
+ // Discard this key since the condition fails.
2201
+ : never;
2202
+
2203
+ // Convert the produced object into a union type of the keys which passed the conditional test.
2204
+ }[keyof Base]
2205
+ >;
2206
+
2207
+ /**
2208
+ Exclude keys from a shape that matches the given `Condition`.
2209
+
2210
+ This is useful when you want to create a new type with a specific set of keys from a shape. For example, you might want to exclude all the primitive properties from a class and form a new shape containing everything but the primitive properties.
2211
+
2212
+ @example
2213
+ ```
2214
+ import type {Primitive, ConditionalExcept} from 'type-fest';
2215
+
2216
+ class Awesome {
2217
+ name: string;
2218
+ successes: number;
2219
+ failures: bigint;
2220
+
2221
+ run() {}
2222
+ }
2223
+
2224
+ type ExceptPrimitivesFromAwesome = ConditionalExcept<Awesome, Primitive>;
2225
+ //=> {run: () => void}
2226
+ ```
2227
+
2228
+ @example
2229
+ ```
2230
+ import type {ConditionalExcept} from 'type-fest';
2231
+
2232
+ interface Example {
2233
+ a: string;
2234
+ b: string | number;
2235
+ c: () => void;
2236
+ d: {};
2237
+ }
2238
+
2239
+ type NonStringKeysOnly = ConditionalExcept<Example, string>;
2240
+ //=> {b: string | number; c: () => void; d: {}}
2241
+ ```
2242
+
2243
+ @category Object
2244
+ */
2245
+ type ConditionalExcept$3<Base, Condition> = Except$3<
2246
+ Base,
2247
+ ConditionalKeys$3<Base, Condition>
2248
+ >;
2249
+
2250
+ /**
2251
+ * Descriptors are objects that describe the API of a module, and the module
2252
+ * can either be a REST module or a host module.
2253
+ * This type is recursive, so it can describe nested modules.
2254
+ */
2255
+ type Descriptors$3 = RESTFunctionDescriptor$3 | AmbassadorFunctionDescriptor$3 | HostModule$3<any, any> | EventDefinition$6<any> | ServicePluginDefinition$3<any> | {
2256
+ [key: string]: Descriptors$3 | PublicMetadata$3 | any;
2257
+ };
2258
+ /**
2259
+ * This type takes in a descriptors object of a certain Host (including an `unknown` host)
2260
+ * and returns an object with the same structure, but with all descriptors replaced with their API.
2261
+ * Any non-descriptor properties are removed from the returned object, including descriptors that
2262
+ * do not match the given host (as they will not work with the given host).
2263
+ */
2264
+ type BuildDescriptors$3<T extends Descriptors$3, H extends Host$3<any> | undefined, Depth extends number = 5> = {
2265
+ done: T;
2266
+ recurse: T extends {
2267
+ __type: typeof SERVICE_PLUGIN_ERROR_TYPE$3;
2268
+ } ? never : T extends AmbassadorFunctionDescriptor$3 ? BuildAmbassadorFunction$3<T> : T extends RESTFunctionDescriptor$3 ? BuildRESTFunction$3<T> : T extends EventDefinition$6<any> ? BuildEventDefinition$6<T> : T extends ServicePluginDefinition$3<any> ? BuildServicePluginDefinition$3<T> : T extends HostModule$3<any, any> ? HostModuleAPI$3<T> : ConditionalExcept$3<{
2269
+ [Key in keyof T]: T[Key] extends Descriptors$3 ? BuildDescriptors$3<T[Key], H, [
2270
+ -1,
2271
+ 0,
2272
+ 1,
2273
+ 2,
2274
+ 3,
2275
+ 4,
2276
+ 5
2277
+ ][Depth]> : never;
2278
+ }, EmptyObject$3>;
2279
+ }[Depth extends -1 ? 'done' : 'recurse'];
2280
+ type PublicMetadata$3 = {
2281
+ PACKAGE_NAME?: string;
2282
+ };
2283
+
2284
+ declare global {
2285
+ interface ContextualClient {
2286
+ }
2287
+ }
2288
+ /**
2289
+ * A type used to create concerete types from SDK descriptors in
2290
+ * case a contextual client is available.
2291
+ */
2292
+ type MaybeContext$3<T extends Descriptors$3> = globalThis.ContextualClient extends {
2293
+ host: Host$3;
2294
+ } ? BuildDescriptors$3<T, globalThis.ContextualClient['host']> : T;
2295
+
2296
+ /** ProjectItem is the main entity of ProjectItemsService */
2297
+ interface Item extends ItemMetadataOneOf {
2298
+ /** Information about the image. */
2299
+ image?: Image$2;
2300
+ /** Information about the video. */
2301
+ video?: Video$2;
2302
+ /**
2303
+ * Id of the Project the items are part of
2304
+ * Project must exist before adding items to it. You can create a project using the [ProjectService](https://dev.wix.com/docs/rest/business-solutions/portfolio/project)
2305
+ */
2306
+ projectId?: string | null;
2307
+ /**
2308
+ * Item ID.
2309
+ * @readonly
2310
+ */
2311
+ _id?: string | null;
1108
2312
  /**
1109
2313
  * Index that determines which position a media item is displayed in the gallery. <br />
1110
2314
  *
@@ -1866,7 +3070,7 @@ interface DuplicateProjectItemsOptions {
1866
3070
  targetProjectId: string;
1867
3071
  }
1868
3072
 
1869
- declare function createProjectItem$1(httpClient: HttpClient): CreateProjectItemSignature;
3073
+ declare function createProjectItem$1(httpClient: HttpClient$3): CreateProjectItemSignature;
1870
3074
  interface CreateProjectItemSignature {
1871
3075
  /**
1872
3076
  * Creates a new ProjectItem
@@ -1875,14 +3079,14 @@ interface CreateProjectItemSignature {
1875
3079
  */
1876
3080
  (item: Item): Promise<Item & ItemNonNullableFields>;
1877
3081
  }
1878
- declare function bulkCreateProjectItems$1(httpClient: HttpClient): BulkCreateProjectItemsSignature;
3082
+ declare function bulkCreateProjectItems$1(httpClient: HttpClient$3): BulkCreateProjectItemsSignature;
1879
3083
  interface BulkCreateProjectItemsSignature {
1880
3084
  /**
1881
3085
  * Create items in bulk
1882
3086
  */
1883
3087
  (options?: BulkCreateProjectItemsOptions | undefined): Promise<BulkCreateProjectItemsResponse & BulkCreateProjectItemsResponseNonNullableFields>;
1884
3088
  }
1885
- declare function getProjectItem$1(httpClient: HttpClient): GetProjectItemSignature;
3089
+ declare function getProjectItem$1(httpClient: HttpClient$3): GetProjectItemSignature;
1886
3090
  interface GetProjectItemSignature {
1887
3091
  /**
1888
3092
  * Get a ProjectItem by id
@@ -1891,7 +3095,7 @@ interface GetProjectItemSignature {
1891
3095
  */
1892
3096
  (itemId: string): Promise<Item & ItemNonNullableFields>;
1893
3097
  }
1894
- declare function listProjectItems$1(httpClient: HttpClient): ListProjectItemsSignature;
3098
+ declare function listProjectItems$1(httpClient: HttpClient$3): ListProjectItemsSignature;
1895
3099
  interface ListProjectItemsSignature {
1896
3100
  /**
1897
3101
  * List all items in project
@@ -1899,7 +3103,7 @@ interface ListProjectItemsSignature {
1899
3103
  */
1900
3104
  (projectId: string, options?: ListProjectItemsOptions | undefined): Promise<ListProjectItemsResponse & ListProjectItemsResponseNonNullableFields>;
1901
3105
  }
1902
- declare function updateProjectItem$1(httpClient: HttpClient): UpdateProjectItemSignature;
3106
+ declare function updateProjectItem$1(httpClient: HttpClient$3): UpdateProjectItemSignature;
1903
3107
  interface UpdateProjectItemSignature {
1904
3108
  /**
1905
3109
  * Update a ProjectItem, supports partial update
@@ -1908,14 +3112,14 @@ interface UpdateProjectItemSignature {
1908
3112
  */
1909
3113
  (_id: string | null, item: UpdateProjectItem): Promise<Item & ItemNonNullableFields>;
1910
3114
  }
1911
- declare function bulkUpdateProjectItems$1(httpClient: HttpClient): BulkUpdateProjectItemsSignature;
3115
+ declare function bulkUpdateProjectItems$1(httpClient: HttpClient$3): BulkUpdateProjectItemsSignature;
1912
3116
  interface BulkUpdateProjectItemsSignature {
1913
3117
  /**
1914
3118
  * Update ProjectItems in bulk
1915
3119
  */
1916
3120
  (options?: BulkUpdateProjectItemsOptions | undefined): Promise<BulkUpdateProjectItemsResponse & BulkUpdateProjectItemsResponseNonNullableFields>;
1917
3121
  }
1918
- declare function deleteProjectItem$1(httpClient: HttpClient): DeleteProjectItemSignature;
3122
+ declare function deleteProjectItem$1(httpClient: HttpClient$3): DeleteProjectItemSignature;
1919
3123
  interface DeleteProjectItemSignature {
1920
3124
  /**
1921
3125
  * Delete a ProjectItem
@@ -1923,14 +3127,14 @@ interface DeleteProjectItemSignature {
1923
3127
  */
1924
3128
  (itemId: string): Promise<DeleteProjectItemResponse & DeleteProjectItemResponseNonNullableFields>;
1925
3129
  }
1926
- declare function bulkDeleteProjectItems$1(httpClient: HttpClient): BulkDeleteProjectItemsSignature;
3130
+ declare function bulkDeleteProjectItems$1(httpClient: HttpClient$3): BulkDeleteProjectItemsSignature;
1927
3131
  interface BulkDeleteProjectItemsSignature {
1928
3132
  /**
1929
3133
  * Delete items in bulk
1930
3134
  */
1931
3135
  (options: BulkDeleteProjectItemsOptions): Promise<BulkDeleteProjectItemsResponse & BulkDeleteProjectItemsResponseNonNullableFields>;
1932
3136
  }
1933
- declare function duplicateProjectItems$1(httpClient: HttpClient): DuplicateProjectItemsSignature;
3137
+ declare function duplicateProjectItems$1(httpClient: HttpClient$3): DuplicateProjectItemsSignature;
1934
3138
  interface DuplicateProjectItemsSignature {
1935
3139
  /**
1936
3140
  * Given an 'origin' Project and 'target' Project, copy all ProjectItems in 'origin' Project to 'target' Project.
@@ -1938,21 +3142,39 @@ interface DuplicateProjectItemsSignature {
1938
3142
  */
1939
3143
  (originProjectId: string, options: DuplicateProjectItemsOptions): Promise<DuplicateProjectItemsResponse & DuplicateProjectItemsResponseNonNullableFields>;
1940
3144
  }
1941
- declare const onProjectItemCreated$1: EventDefinition<ProjectItemCreatedEnvelope, "wix.portfolio.project_items.v1.project_item_created">;
1942
- declare const onProjectItemUpdated$1: EventDefinition<ProjectItemUpdatedEnvelope, "wix.portfolio.project_items.v1.project_item_updated">;
1943
- declare const onProjectItemDeleted$1: EventDefinition<ProjectItemDeletedEnvelope, "wix.portfolio.project_items.v1.project_item_deleted">;
3145
+ declare const onProjectItemCreated$1: EventDefinition$6<ProjectItemCreatedEnvelope, "wix.portfolio.project_items.v1.project_item_created">;
3146
+ declare const onProjectItemUpdated$1: EventDefinition$6<ProjectItemUpdatedEnvelope, "wix.portfolio.project_items.v1.project_item_updated">;
3147
+ declare const onProjectItemDeleted$1: EventDefinition$6<ProjectItemDeletedEnvelope, "wix.portfolio.project_items.v1.project_item_deleted">;
3148
+
3149
+ type EventDefinition$5<Payload = unknown, Type extends string = string> = {
3150
+ __type: 'event-definition';
3151
+ type: Type;
3152
+ isDomainEvent?: boolean;
3153
+ transformations?: (envelope: unknown) => Payload;
3154
+ __payload: Payload;
3155
+ };
3156
+ declare function EventDefinition$5<Type extends string>(type: Type, isDomainEvent?: boolean, transformations?: (envelope: any) => unknown): <Payload = unknown>() => EventDefinition$5<Payload, Type>;
3157
+ type EventHandler$5<T extends EventDefinition$5> = (payload: T['__payload']) => void | Promise<void>;
3158
+ type BuildEventDefinition$5<T extends EventDefinition$5<any, string>> = (handler: EventHandler$5<T>) => void;
3159
+
3160
+ declare global {
3161
+ // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
3162
+ interface SymbolConstructor {
3163
+ readonly observable: symbol;
3164
+ }
3165
+ }
1944
3166
 
1945
- declare function createEventModule$2<T extends EventDefinition<any, string>>(eventDefinition: T): BuildEventDefinition<T> & T;
3167
+ declare function createEventModule$2<T extends EventDefinition$5<any, string>>(eventDefinition: T): BuildEventDefinition$5<T> & T;
1946
3168
 
1947
- declare const createProjectItem: BuildRESTFunction<typeof createProjectItem$1> & typeof createProjectItem$1;
1948
- declare const bulkCreateProjectItems: BuildRESTFunction<typeof bulkCreateProjectItems$1> & typeof bulkCreateProjectItems$1;
1949
- declare const getProjectItem: BuildRESTFunction<typeof getProjectItem$1> & typeof getProjectItem$1;
1950
- declare const listProjectItems: BuildRESTFunction<typeof listProjectItems$1> & typeof listProjectItems$1;
1951
- declare const updateProjectItem: BuildRESTFunction<typeof updateProjectItem$1> & typeof updateProjectItem$1;
1952
- declare const bulkUpdateProjectItems: BuildRESTFunction<typeof bulkUpdateProjectItems$1> & typeof bulkUpdateProjectItems$1;
1953
- declare const deleteProjectItem: BuildRESTFunction<typeof deleteProjectItem$1> & typeof deleteProjectItem$1;
1954
- declare const bulkDeleteProjectItems: BuildRESTFunction<typeof bulkDeleteProjectItems$1> & typeof bulkDeleteProjectItems$1;
1955
- declare const duplicateProjectItems: BuildRESTFunction<typeof duplicateProjectItems$1> & typeof duplicateProjectItems$1;
3169
+ declare const createProjectItem: MaybeContext$3<BuildRESTFunction$3<typeof createProjectItem$1> & typeof createProjectItem$1>;
3170
+ declare const bulkCreateProjectItems: MaybeContext$3<BuildRESTFunction$3<typeof bulkCreateProjectItems$1> & typeof bulkCreateProjectItems$1>;
3171
+ declare const getProjectItem: MaybeContext$3<BuildRESTFunction$3<typeof getProjectItem$1> & typeof getProjectItem$1>;
3172
+ declare const listProjectItems: MaybeContext$3<BuildRESTFunction$3<typeof listProjectItems$1> & typeof listProjectItems$1>;
3173
+ declare const updateProjectItem: MaybeContext$3<BuildRESTFunction$3<typeof updateProjectItem$1> & typeof updateProjectItem$1>;
3174
+ declare const bulkUpdateProjectItems: MaybeContext$3<BuildRESTFunction$3<typeof bulkUpdateProjectItems$1> & typeof bulkUpdateProjectItems$1>;
3175
+ declare const deleteProjectItem: MaybeContext$3<BuildRESTFunction$3<typeof deleteProjectItem$1> & typeof deleteProjectItem$1>;
3176
+ declare const bulkDeleteProjectItems: MaybeContext$3<BuildRESTFunction$3<typeof bulkDeleteProjectItems$1> & typeof bulkDeleteProjectItems$1>;
3177
+ declare const duplicateProjectItems: MaybeContext$3<BuildRESTFunction$3<typeof duplicateProjectItems$1> & typeof duplicateProjectItems$1>;
1956
3178
 
1957
3179
  type _publicOnProjectItemCreatedType = typeof onProjectItemCreated$1;
1958
3180
  /** */
@@ -2039,72 +3261,477 @@ declare namespace index_d$3 {
2039
3261
  export { type ActionEvent$3 as ActionEvent, type App$1 as App, type ApplicationError$1 as ApplicationError, type BaseEventMetadata$2 as BaseEventMetadata, type BulkActionMetadata$1 as BulkActionMetadata, type index_d$3_BulkCreateProjectItemResult as BulkCreateProjectItemResult, type index_d$3_BulkCreateProjectItemsOptions as BulkCreateProjectItemsOptions, type index_d$3_BulkCreateProjectItemsRequest as BulkCreateProjectItemsRequest, type index_d$3_BulkCreateProjectItemsResponse as BulkCreateProjectItemsResponse, type index_d$3_BulkCreateProjectItemsResponseNonNullableFields as BulkCreateProjectItemsResponseNonNullableFields, type index_d$3_BulkDeleteProjectItemResult as BulkDeleteProjectItemResult, type index_d$3_BulkDeleteProjectItemsOptions as BulkDeleteProjectItemsOptions, type index_d$3_BulkDeleteProjectItemsRequest as BulkDeleteProjectItemsRequest, type index_d$3_BulkDeleteProjectItemsResponse as BulkDeleteProjectItemsResponse, type index_d$3_BulkDeleteProjectItemsResponseNonNullableFields as BulkDeleteProjectItemsResponseNonNullableFields, type index_d$3_BulkUpdateProjectItemResult as BulkUpdateProjectItemResult, type index_d$3_BulkUpdateProjectItemsOptions as BulkUpdateProjectItemsOptions, type index_d$3_BulkUpdateProjectItemsRequest as BulkUpdateProjectItemsRequest, type index_d$3_BulkUpdateProjectItemsResponse as BulkUpdateProjectItemsResponse, type index_d$3_BulkUpdateProjectItemsResponseNonNullableFields as BulkUpdateProjectItemsResponseNonNullableFields, type index_d$3_CreateProjectGalleryRequest as CreateProjectGalleryRequest, type index_d$3_CreateProjectGalleryResponse as CreateProjectGalleryResponse, type index_d$3_CreateProjectItemRequest as CreateProjectItemRequest, type index_d$3_CreateProjectItemResponse as CreateProjectItemResponse, type index_d$3_CreateProjectItemResponseNonNullableFields as CreateProjectItemResponseNonNullableFields, type CursorPaging$3 as CursorPaging, type Cursors$3 as Cursors, type index_d$3_DeleteProjectItemRequest as DeleteProjectItemRequest, type index_d$3_DeleteProjectItemResponse as DeleteProjectItemResponse, type index_d$3_DeleteProjectItemResponseNonNullableFields as DeleteProjectItemResponseNonNullableFields, type DeletedProjectRestored$1 as DeletedProjectRestored, type DomainEvent$3 as DomainEvent, type DomainEventBodyOneOf$3 as DomainEventBodyOneOf, type index_d$3_DuplicateProjectItemsOptions as DuplicateProjectItemsOptions, type index_d$3_DuplicateProjectItemsRequest as DuplicateProjectItemsRequest, type index_d$3_DuplicateProjectItemsResponse as DuplicateProjectItemsResponse, type index_d$3_DuplicateProjectItemsResponseNonNullableFields as DuplicateProjectItemsResponseNonNullableFields, type Empty$2 as Empty, type EntityCreatedEvent$3 as EntityCreatedEvent, type EntityDeletedEvent$3 as EntityDeletedEvent, type EntityUpdatedEvent$3 as EntityUpdatedEvent, type EventMetadata$2 as EventMetadata, type File$1 as File, type index_d$3_GenerateTokenForProjectItemsRequest as GenerateTokenForProjectItemsRequest, type index_d$3_GenerateTokenForProjectItemsResponse as GenerateTokenForProjectItemsResponse, type index_d$3_GetProjectItemRequest as GetProjectItemRequest, type index_d$3_GetProjectItemResponse as GetProjectItemResponse, type index_d$3_GetProjectItemResponseNonNullableFields as GetProjectItemResponseNonNullableFields, type IdentificationData$3 as IdentificationData, type IdentificationDataIdOneOf$3 as IdentificationDataIdOneOf, type Image$2 as Image, ImageType$2 as ImageType, type InvalidateCache$1 as InvalidateCache, type InvalidateCacheGetByOneOf$1 as InvalidateCacheGetByOneOf, type index_d$3_Item as Item, type ItemMetadata$1 as ItemMetadata, type index_d$3_ItemMetadataOneOf as ItemMetadataOneOf, type index_d$3_ItemNonNullableFields as ItemNonNullableFields, type index_d$3_Link as Link, type index_d$3_ListProjectItemsOptions as ListProjectItemsOptions, type index_d$3_ListProjectItemsRequest as ListProjectItemsRequest, type index_d$3_ListProjectItemsResponse as ListProjectItemsResponse, type index_d$3_ListProjectItemsResponseNonNullableFields as ListProjectItemsResponseNonNullableFields, type index_d$3_MaskedItem as MaskedItem, type MessageEnvelope$3 as MessageEnvelope, type Page$1 as Page, type Paging$2 as Paging, type PagingMetadataV2$3 as PagingMetadataV2, type Point$2 as Point, type index_d$3_ProjectItemCreatedEnvelope as ProjectItemCreatedEnvelope, type index_d$3_ProjectItemDeletedEnvelope as ProjectItemDeletedEnvelope, type index_d$3_ProjectItemMediaToken as ProjectItemMediaToken, type index_d$3_ProjectItemUpdatedEnvelope as ProjectItemUpdatedEnvelope, type index_d$3_QueryProjectItemsRequest as QueryProjectItemsRequest, type index_d$3_QueryProjectItemsResponse as QueryProjectItemsResponse, type QueryV2$2 as QueryV2, type QueryV2PagingMethodOneOf$2 as QueryV2PagingMethodOneOf, type RestoreInfo$3 as RestoreInfo, SortOrder$2 as SortOrder, type Sorting$2 as Sorting, type index_d$3_Tags as Tags, index_d$3_Type as Type, type URI$1 as URI, type UnsharpMasking$2 as UnsharpMasking, type index_d$3_UpdateProjectItem as UpdateProjectItem, type index_d$3_UpdateProjectItemRequest as UpdateProjectItemRequest, type index_d$3_UpdateProjectItemResponse as UpdateProjectItemResponse, type index_d$3_UpdateProjectItemResponseNonNullableFields as UpdateProjectItemResponseNonNullableFields, type Video$2 as Video, type VideoResolution$2 as VideoResolution, WebhookIdentityType$3 as WebhookIdentityType, type index_d$3__publicOnProjectItemCreatedType as _publicOnProjectItemCreatedType, type index_d$3__publicOnProjectItemDeletedType as _publicOnProjectItemDeletedType, type index_d$3__publicOnProjectItemUpdatedType as _publicOnProjectItemUpdatedType, index_d$3_bulkCreateProjectItems as bulkCreateProjectItems, index_d$3_bulkDeleteProjectItems as bulkDeleteProjectItems, index_d$3_bulkUpdateProjectItems as bulkUpdateProjectItems, index_d$3_createProjectItem as createProjectItem, index_d$3_deleteProjectItem as deleteProjectItem, index_d$3_duplicateProjectItems as duplicateProjectItems, index_d$3_getProjectItem as getProjectItem, index_d$3_listProjectItems as listProjectItems, index_d$3_onProjectItemCreated as onProjectItemCreated, index_d$3_onProjectItemDeleted as onProjectItemDeleted, index_d$3_onProjectItemUpdated as onProjectItemUpdated, onProjectItemCreated$1 as publicOnProjectItemCreated, onProjectItemDeleted$1 as publicOnProjectItemDeleted, onProjectItemUpdated$1 as publicOnProjectItemUpdated, index_d$3_updateProjectItem as updateProjectItem };
2040
3262
  }
2041
3263
 
2042
- /** Project is the main entity of ProjectsService */
2043
- interface Project$1 extends ProjectCoverOneOf$1 {
2044
- /** project's cover photo */
2045
- coverImage?: Image$1;
2046
- /** project's cover video */
2047
- coverVideo?: Video$1;
2048
- /**
2049
- * Project ID
2050
- * @readonly
2051
- */
2052
- _id?: string | null;
2053
- /**
2054
- * Represents the current state of an item. Each time the item is modified, its `revision` changes. for an update operation to succeed, you MUST pass the latest revision
2055
- * @readonly
2056
- */
2057
- revision?: string | null;
2058
- title?: string | null;
2059
- description?: string | null;
2060
- /** indicates if the project should be hidden from Portfolio */
2061
- hidden?: boolean | null;
2062
- /** Collections must exist to be added to a project. Can be created/updated/deleted using [Collection Service](https://dev.wix.com/docs/rest/business-solutions/portfolio/collection) */
2063
- collectionIds?: string[];
2064
- /** Custom project details */
2065
- details?: ProjectDetail$1[];
2066
- /** Project's slug */
2067
- slug?: string | null;
2068
- /**
2069
- * Represents the time this Project was created
2070
- * @readonly
2071
- */
2072
- _createdDate?: Date;
2073
- /**
2074
- * Represents the time this Project was last updated
2075
- * @readonly
2076
- */
2077
- _updatedDate?: Date;
2078
- /**
2079
- * Url and relative url of Project - in order to receive this field in READ requests you will need to pass the `include_page_url` field as part of request
2080
- * @readonly
2081
- */
2082
- url?: string;
2083
- /** SEO data for the project */
2084
- seoData?: SeoSchema$1;
2085
- /**
2086
- * indicates if the project is synced from external platform (via integration page) and therefore will be updated from the external platform on daily basis
2087
- * @readonly
2088
- */
2089
- syncedProject?: boolean | null;
2090
- }
2091
- /** @oneof */
2092
- interface ProjectCoverOneOf$1 {
2093
- /** project's cover photo */
2094
- coverImage?: Image$1;
2095
- /** project's cover video */
2096
- coverVideo?: Video$1;
3264
+ type HostModule$2<T, H extends Host$2> = {
3265
+ __type: 'host';
3266
+ create(host: H): T;
3267
+ };
3268
+ type HostModuleAPI$2<T extends HostModule$2<any, any>> = T extends HostModule$2<infer U, any> ? U : never;
3269
+ type Host$2<Environment = unknown> = {
3270
+ channel: {
3271
+ observeState(callback: (props: unknown, environment: Environment) => unknown): {
3272
+ disconnect: () => void;
3273
+ } | Promise<{
3274
+ disconnect: () => void;
3275
+ }>;
3276
+ };
3277
+ environment?: Environment;
3278
+ /**
3279
+ * Optional bast url to use for API requests, for example `www.wixapis.com`
3280
+ */
3281
+ apiBaseUrl?: string;
3282
+ /**
3283
+ * Possible data to be provided by every host, for cross cutting concerns
3284
+ * like internationalization, billing, etc.
3285
+ */
3286
+ essentials?: {
3287
+ /**
3288
+ * The language of the currently viewed session
3289
+ */
3290
+ language?: string;
3291
+ /**
3292
+ * The locale of the currently viewed session
3293
+ */
3294
+ locale?: string;
3295
+ /**
3296
+ * Any headers that should be passed through to the API requests
3297
+ */
3298
+ passThroughHeaders?: Record<string, string>;
3299
+ };
3300
+ };
3301
+
3302
+ type RESTFunctionDescriptor$2<T extends (...args: any[]) => any = (...args: any[]) => any> = (httpClient: HttpClient$2) => T;
3303
+ interface HttpClient$2 {
3304
+ request<TResponse, TData = any>(req: RequestOptionsFactory$2<TResponse, TData>): Promise<HttpResponse$2<TResponse>>;
3305
+ fetchWithAuth: typeof fetch;
3306
+ wixAPIFetch: (relativeUrl: string, options: RequestInit) => Promise<Response>;
3307
+ getActiveToken?: () => string | undefined;
2097
3308
  }
2098
- interface Image$1 {
2099
- /** Image info - Wix Media Image. */
2100
- imageInfo?: string;
2101
- /** Focal point of the image. */
2102
- focalPoint?: Point$1;
3309
+ type RequestOptionsFactory$2<TResponse = any, TData = any> = (context: any) => RequestOptions$2<TResponse, TData>;
3310
+ type HttpResponse$2<T = any> = {
3311
+ data: T;
3312
+ status: number;
3313
+ statusText: string;
3314
+ headers: any;
3315
+ request?: any;
3316
+ };
3317
+ type RequestOptions$2<_TResponse = any, Data = any> = {
3318
+ method: 'POST' | 'GET' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';
3319
+ url: string;
3320
+ data?: Data;
3321
+ params?: URLSearchParams;
3322
+ } & APIMetadata$2;
3323
+ type APIMetadata$2 = {
3324
+ methodFqn?: string;
3325
+ entityFqdn?: string;
3326
+ packageName?: string;
3327
+ };
3328
+ type BuildRESTFunction$2<T extends RESTFunctionDescriptor$2> = T extends RESTFunctionDescriptor$2<infer U> ? U : never;
3329
+ type EventDefinition$4<Payload = unknown, Type extends string = string> = {
3330
+ __type: 'event-definition';
3331
+ type: Type;
3332
+ isDomainEvent?: boolean;
3333
+ transformations?: (envelope: unknown) => Payload;
3334
+ __payload: Payload;
3335
+ };
3336
+ declare function EventDefinition$4<Type extends string>(type: Type, isDomainEvent?: boolean, transformations?: (envelope: any) => unknown): <Payload = unknown>() => EventDefinition$4<Payload, Type>;
3337
+ type EventHandler$4<T extends EventDefinition$4> = (payload: T['__payload']) => void | Promise<void>;
3338
+ type BuildEventDefinition$4<T extends EventDefinition$4<any, string>> = (handler: EventHandler$4<T>) => void;
3339
+
3340
+ type ServicePluginMethodInput$2 = {
3341
+ request: any;
3342
+ metadata: any;
3343
+ };
3344
+ type ServicePluginContract$2 = Record<string, (payload: ServicePluginMethodInput$2) => unknown | Promise<unknown>>;
3345
+ type ServicePluginMethodMetadata$2 = {
3346
+ name: string;
3347
+ primaryHttpMappingPath: string;
3348
+ transformations: {
3349
+ fromREST: (...args: unknown[]) => ServicePluginMethodInput$2;
3350
+ toREST: (...args: unknown[]) => unknown;
3351
+ };
3352
+ };
3353
+ type ServicePluginDefinition$2<Contract extends ServicePluginContract$2> = {
3354
+ __type: 'service-plugin-definition';
3355
+ componentType: string;
3356
+ methods: ServicePluginMethodMetadata$2[];
3357
+ __contract: Contract;
3358
+ };
3359
+ declare function ServicePluginDefinition$2<Contract extends ServicePluginContract$2>(componentType: string, methods: ServicePluginMethodMetadata$2[]): ServicePluginDefinition$2<Contract>;
3360
+ type BuildServicePluginDefinition$2<T extends ServicePluginDefinition$2<any>> = (implementation: T['__contract']) => void;
3361
+ declare const SERVICE_PLUGIN_ERROR_TYPE$2 = "wix_spi_error";
3362
+
3363
+ type RequestContext$2 = {
3364
+ isSSR: boolean;
3365
+ host: string;
3366
+ protocol?: string;
3367
+ };
3368
+ type ResponseTransformer$2 = (data: any, headers?: any) => any;
3369
+ /**
3370
+ * Ambassador request options types are copied mostly from AxiosRequestConfig.
3371
+ * They are copied and not imported to reduce the amount of dependencies (to reduce install time).
3372
+ * https://github.com/axios/axios/blob/3f53eb6960f05a1f88409c4b731a40de595cb825/index.d.ts#L307-L315
3373
+ */
3374
+ type Method$2 = 'get' | 'GET' | 'delete' | 'DELETE' | 'head' | 'HEAD' | 'options' | 'OPTIONS' | 'post' | 'POST' | 'put' | 'PUT' | 'patch' | 'PATCH' | 'purge' | 'PURGE' | 'link' | 'LINK' | 'unlink' | 'UNLINK';
3375
+ type AmbassadorRequestOptions$2<T = any> = {
3376
+ _?: T;
3377
+ url?: string;
3378
+ method?: Method$2;
3379
+ params?: any;
3380
+ data?: any;
3381
+ transformResponse?: ResponseTransformer$2 | ResponseTransformer$2[];
3382
+ };
3383
+ type AmbassadorFactory$2<Request, Response> = (payload: Request) => ((context: RequestContext$2) => AmbassadorRequestOptions$2<Response>) & {
3384
+ __isAmbassador: boolean;
3385
+ };
3386
+ type AmbassadorFunctionDescriptor$2<Request = any, Response = any> = AmbassadorFactory$2<Request, Response>;
3387
+ type BuildAmbassadorFunction$2<T extends AmbassadorFunctionDescriptor$2> = T extends AmbassadorFunctionDescriptor$2<infer Request, infer Response> ? (req: Request) => Promise<Response> : never;
3388
+
3389
+ declare global {
3390
+ // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
3391
+ interface SymbolConstructor {
3392
+ readonly observable: symbol;
3393
+ }
2103
3394
  }
2104
- declare enum ImageType$1 {
2105
- UNDEFINED = "UNDEFINED",
2106
- WIX_MEDIA = "WIX_MEDIA",
2107
- EXTERNAL = "EXTERNAL"
3395
+
3396
+ declare const emptyObjectSymbol$2: unique symbol;
3397
+
3398
+ /**
3399
+ Represents a strictly empty plain object, the `{}` value.
3400
+
3401
+ When you annotate something as the type `{}`, it can be anything except `null` and `undefined`. This means that you cannot use `{}` to represent an empty plain object ([read more](https://stackoverflow.com/questions/47339869/typescript-empty-object-and-any-difference/52193484#52193484)).
3402
+
3403
+ @example
3404
+ ```
3405
+ import type {EmptyObject} from 'type-fest';
3406
+
3407
+ // The following illustrates the problem with `{}`.
3408
+ const foo1: {} = {}; // Pass
3409
+ const foo2: {} = []; // Pass
3410
+ const foo3: {} = 42; // Pass
3411
+ const foo4: {} = {a: 1}; // Pass
3412
+
3413
+ // With `EmptyObject` only the first case is valid.
3414
+ const bar1: EmptyObject = {}; // Pass
3415
+ const bar2: EmptyObject = 42; // Fail
3416
+ const bar3: EmptyObject = []; // Fail
3417
+ const bar4: EmptyObject = {a: 1}; // Fail
3418
+ ```
3419
+
3420
+ Unfortunately, `Record<string, never>`, `Record<keyof any, never>` and `Record<never, never>` do not work. See {@link https://github.com/sindresorhus/type-fest/issues/395 #395}.
3421
+
3422
+ @category Object
3423
+ */
3424
+ type EmptyObject$2 = {[emptyObjectSymbol$2]?: never};
3425
+
3426
+ /**
3427
+ Returns a boolean for whether the two given types are equal.
3428
+
3429
+ @link https://github.com/microsoft/TypeScript/issues/27024#issuecomment-421529650
3430
+ @link https://stackoverflow.com/questions/68961864/how-does-the-equals-work-in-typescript/68963796#68963796
3431
+
3432
+ Use-cases:
3433
+ - If you want to make a conditional branch based on the result of a comparison of two types.
3434
+
3435
+ @example
3436
+ ```
3437
+ import type {IsEqual} from 'type-fest';
3438
+
3439
+ // This type returns a boolean for whether the given array includes the given item.
3440
+ // `IsEqual` is used to compare the given array at position 0 and the given item and then return true if they are equal.
3441
+ type Includes<Value extends readonly any[], Item> =
3442
+ Value extends readonly [Value[0], ...infer rest]
3443
+ ? IsEqual<Value[0], Item> extends true
3444
+ ? true
3445
+ : Includes<rest, Item>
3446
+ : false;
3447
+ ```
3448
+
3449
+ @category Type Guard
3450
+ @category Utilities
3451
+ */
3452
+ type IsEqual$2<A, B> =
3453
+ (<G>() => G extends A ? 1 : 2) extends
3454
+ (<G>() => G extends B ? 1 : 2)
3455
+ ? true
3456
+ : false;
3457
+
3458
+ /**
3459
+ Filter out keys from an object.
3460
+
3461
+ Returns `never` if `Exclude` is strictly equal to `Key`.
3462
+ Returns `never` if `Key` extends `Exclude`.
3463
+ Returns `Key` otherwise.
3464
+
3465
+ @example
3466
+ ```
3467
+ type Filtered = Filter<'foo', 'foo'>;
3468
+ //=> never
3469
+ ```
3470
+
3471
+ @example
3472
+ ```
3473
+ type Filtered = Filter<'bar', string>;
3474
+ //=> never
3475
+ ```
3476
+
3477
+ @example
3478
+ ```
3479
+ type Filtered = Filter<'bar', 'foo'>;
3480
+ //=> 'bar'
3481
+ ```
3482
+
3483
+ @see {Except}
3484
+ */
3485
+ type Filter$2<KeyType, ExcludeType> = IsEqual$2<KeyType, ExcludeType> extends true ? never : (KeyType extends ExcludeType ? never : KeyType);
3486
+
3487
+ type ExceptOptions$2 = {
3488
+ /**
3489
+ Disallow assigning non-specified properties.
3490
+
3491
+ Note that any omitted properties in the resulting type will be present in autocomplete as `undefined`.
3492
+
3493
+ @default false
3494
+ */
3495
+ requireExactProps?: boolean;
3496
+ };
3497
+
3498
+ /**
3499
+ Create a type from an object type without certain keys.
3500
+
3501
+ We recommend setting the `requireExactProps` option to `true`.
3502
+
3503
+ This type is a stricter version of [`Omit`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-5.html#the-omit-helper-type). The `Omit` type does not restrict the omitted keys to be keys present on the given type, while `Except` does. The benefits of a stricter type are avoiding typos and allowing the compiler to pick up on rename refactors automatically.
3504
+
3505
+ This type was proposed to the TypeScript team, which declined it, saying they prefer that libraries implement stricter versions of the built-in types ([microsoft/TypeScript#30825](https://github.com/microsoft/TypeScript/issues/30825#issuecomment-523668235)).
3506
+
3507
+ @example
3508
+ ```
3509
+ import type {Except} from 'type-fest';
3510
+
3511
+ type Foo = {
3512
+ a: number;
3513
+ b: string;
3514
+ };
3515
+
3516
+ type FooWithoutA = Except<Foo, 'a'>;
3517
+ //=> {b: string}
3518
+
3519
+ const fooWithoutA: FooWithoutA = {a: 1, b: '2'};
3520
+ //=> errors: 'a' does not exist in type '{ b: string; }'
3521
+
3522
+ type FooWithoutB = Except<Foo, 'b', {requireExactProps: true}>;
3523
+ //=> {a: number} & Partial<Record<"b", never>>
3524
+
3525
+ const fooWithoutB: FooWithoutB = {a: 1, b: '2'};
3526
+ //=> errors at 'b': Type 'string' is not assignable to type 'undefined'.
3527
+ ```
3528
+
3529
+ @category Object
3530
+ */
3531
+ type Except$2<ObjectType, KeysType extends keyof ObjectType, Options extends ExceptOptions$2 = {requireExactProps: false}> = {
3532
+ [KeyType in keyof ObjectType as Filter$2<KeyType, KeysType>]: ObjectType[KeyType];
3533
+ } & (Options['requireExactProps'] extends true
3534
+ ? Partial<Record<KeysType, never>>
3535
+ : {});
3536
+
3537
+ /**
3538
+ Extract the keys from a type where the value type of the key extends the given `Condition`.
3539
+
3540
+ Internally this is used for the `ConditionalPick` and `ConditionalExcept` types.
3541
+
3542
+ @example
3543
+ ```
3544
+ import type {ConditionalKeys} from 'type-fest';
3545
+
3546
+ interface Example {
3547
+ a: string;
3548
+ b: string | number;
3549
+ c?: string;
3550
+ d: {};
3551
+ }
3552
+
3553
+ type StringKeysOnly = ConditionalKeys<Example, string>;
3554
+ //=> 'a'
3555
+ ```
3556
+
3557
+ To support partial types, make sure your `Condition` is a union of undefined (for example, `string | undefined`) as demonstrated below.
3558
+
3559
+ @example
3560
+ ```
3561
+ import type {ConditionalKeys} from 'type-fest';
3562
+
3563
+ type StringKeysAndUndefined = ConditionalKeys<Example, string | undefined>;
3564
+ //=> 'a' | 'c'
3565
+ ```
3566
+
3567
+ @category Object
3568
+ */
3569
+ type ConditionalKeys$2<Base, Condition> = NonNullable<
3570
+ // Wrap in `NonNullable` to strip away the `undefined` type from the produced union.
3571
+ {
3572
+ // Map through all the keys of the given base type.
3573
+ [Key in keyof Base]:
3574
+ // Pick only keys with types extending the given `Condition` type.
3575
+ Base[Key] extends Condition
3576
+ // Retain this key since the condition passes.
3577
+ ? Key
3578
+ // Discard this key since the condition fails.
3579
+ : never;
3580
+
3581
+ // Convert the produced object into a union type of the keys which passed the conditional test.
3582
+ }[keyof Base]
3583
+ >;
3584
+
3585
+ /**
3586
+ Exclude keys from a shape that matches the given `Condition`.
3587
+
3588
+ This is useful when you want to create a new type with a specific set of keys from a shape. For example, you might want to exclude all the primitive properties from a class and form a new shape containing everything but the primitive properties.
3589
+
3590
+ @example
3591
+ ```
3592
+ import type {Primitive, ConditionalExcept} from 'type-fest';
3593
+
3594
+ class Awesome {
3595
+ name: string;
3596
+ successes: number;
3597
+ failures: bigint;
3598
+
3599
+ run() {}
3600
+ }
3601
+
3602
+ type ExceptPrimitivesFromAwesome = ConditionalExcept<Awesome, Primitive>;
3603
+ //=> {run: () => void}
3604
+ ```
3605
+
3606
+ @example
3607
+ ```
3608
+ import type {ConditionalExcept} from 'type-fest';
3609
+
3610
+ interface Example {
3611
+ a: string;
3612
+ b: string | number;
3613
+ c: () => void;
3614
+ d: {};
3615
+ }
3616
+
3617
+ type NonStringKeysOnly = ConditionalExcept<Example, string>;
3618
+ //=> {b: string | number; c: () => void; d: {}}
3619
+ ```
3620
+
3621
+ @category Object
3622
+ */
3623
+ type ConditionalExcept$2<Base, Condition> = Except$2<
3624
+ Base,
3625
+ ConditionalKeys$2<Base, Condition>
3626
+ >;
3627
+
3628
+ /**
3629
+ * Descriptors are objects that describe the API of a module, and the module
3630
+ * can either be a REST module or a host module.
3631
+ * This type is recursive, so it can describe nested modules.
3632
+ */
3633
+ type Descriptors$2 = RESTFunctionDescriptor$2 | AmbassadorFunctionDescriptor$2 | HostModule$2<any, any> | EventDefinition$4<any> | ServicePluginDefinition$2<any> | {
3634
+ [key: string]: Descriptors$2 | PublicMetadata$2 | any;
3635
+ };
3636
+ /**
3637
+ * This type takes in a descriptors object of a certain Host (including an `unknown` host)
3638
+ * and returns an object with the same structure, but with all descriptors replaced with their API.
3639
+ * Any non-descriptor properties are removed from the returned object, including descriptors that
3640
+ * do not match the given host (as they will not work with the given host).
3641
+ */
3642
+ type BuildDescriptors$2<T extends Descriptors$2, H extends Host$2<any> | undefined, Depth extends number = 5> = {
3643
+ done: T;
3644
+ recurse: T extends {
3645
+ __type: typeof SERVICE_PLUGIN_ERROR_TYPE$2;
3646
+ } ? never : T extends AmbassadorFunctionDescriptor$2 ? BuildAmbassadorFunction$2<T> : T extends RESTFunctionDescriptor$2 ? BuildRESTFunction$2<T> : T extends EventDefinition$4<any> ? BuildEventDefinition$4<T> : T extends ServicePluginDefinition$2<any> ? BuildServicePluginDefinition$2<T> : T extends HostModule$2<any, any> ? HostModuleAPI$2<T> : ConditionalExcept$2<{
3647
+ [Key in keyof T]: T[Key] extends Descriptors$2 ? BuildDescriptors$2<T[Key], H, [
3648
+ -1,
3649
+ 0,
3650
+ 1,
3651
+ 2,
3652
+ 3,
3653
+ 4,
3654
+ 5
3655
+ ][Depth]> : never;
3656
+ }, EmptyObject$2>;
3657
+ }[Depth extends -1 ? 'done' : 'recurse'];
3658
+ type PublicMetadata$2 = {
3659
+ PACKAGE_NAME?: string;
3660
+ };
3661
+
3662
+ declare global {
3663
+ interface ContextualClient {
3664
+ }
3665
+ }
3666
+ /**
3667
+ * A type used to create concerete types from SDK descriptors in
3668
+ * case a contextual client is available.
3669
+ */
3670
+ type MaybeContext$2<T extends Descriptors$2> = globalThis.ContextualClient extends {
3671
+ host: Host$2;
3672
+ } ? BuildDescriptors$2<T, globalThis.ContextualClient['host']> : T;
3673
+
3674
+ /** Project is the main entity of ProjectsService */
3675
+ interface Project$1 extends ProjectCoverOneOf$1 {
3676
+ /** project's cover photo */
3677
+ coverImage?: Image$1;
3678
+ /** project's cover video */
3679
+ coverVideo?: Video$1;
3680
+ /**
3681
+ * Project ID
3682
+ * @readonly
3683
+ */
3684
+ _id?: string | null;
3685
+ /**
3686
+ * Represents the current state of an item. Each time the item is modified, its `revision` changes. for an update operation to succeed, you MUST pass the latest revision
3687
+ * @readonly
3688
+ */
3689
+ revision?: string | null;
3690
+ title?: string | null;
3691
+ description?: string | null;
3692
+ /** indicates if the project should be hidden from Portfolio */
3693
+ hidden?: boolean | null;
3694
+ /** Collections must exist to be added to a project. Can be created/updated/deleted using [Collection Service](https://dev.wix.com/docs/rest/business-solutions/portfolio/collection) */
3695
+ collectionIds?: string[];
3696
+ /** Custom project details */
3697
+ details?: ProjectDetail$1[];
3698
+ /** Project's slug */
3699
+ slug?: string | null;
3700
+ /**
3701
+ * Represents the time this Project was created
3702
+ * @readonly
3703
+ */
3704
+ _createdDate?: Date;
3705
+ /**
3706
+ * Represents the time this Project was last updated
3707
+ * @readonly
3708
+ */
3709
+ _updatedDate?: Date;
3710
+ /**
3711
+ * Url and relative url of Project - in order to receive this field in READ requests you will need to pass the `include_page_url` field as part of request
3712
+ * @readonly
3713
+ */
3714
+ url?: string;
3715
+ /** SEO data for the project */
3716
+ seoData?: SeoSchema$1;
3717
+ }
3718
+ /** @oneof */
3719
+ interface ProjectCoverOneOf$1 {
3720
+ /** project's cover photo */
3721
+ coverImage?: Image$1;
3722
+ /** project's cover video */
3723
+ coverVideo?: Video$1;
3724
+ }
3725
+ interface Image$1 {
3726
+ /** Image info - Wix Media Image. */
3727
+ imageInfo?: string;
3728
+ /** Focal point of the image. */
3729
+ focalPoint?: Point$1;
3730
+ }
3731
+ declare enum ImageType$1 {
3732
+ UNDEFINED = "UNDEFINED",
3733
+ WIX_MEDIA = "WIX_MEDIA",
3734
+ EXTERNAL = "EXTERNAL"
2108
3735
  }
2109
3736
  interface Point$1 {
2110
3737
  /** X-coordinate of the focal point. */
@@ -3180,11 +4807,6 @@ interface UpdateProject {
3180
4807
  url?: string;
3181
4808
  /** SEO data for the project */
3182
4809
  seoData?: SeoSchema$1;
3183
- /**
3184
- * indicates if the project is synced from external platform (via integration page) and therefore will be updated from the external platform on daily basis
3185
- * @readonly
3186
- */
3187
- syncedProject?: boolean | null;
3188
4810
  }
3189
4811
  interface BulkUpdateProjectsOptions {
3190
4812
  /** projects to be updated. */
@@ -3289,14 +4911,14 @@ interface QueryProjectsWithCollectionInfoOptions {
3289
4911
  includePageUrl?: boolean | null;
3290
4912
  }
3291
4913
 
3292
- declare function getProjectPageData$1(httpClient: HttpClient): GetProjectPageDataSignature;
4914
+ declare function getProjectPageData$1(httpClient: HttpClient$2): GetProjectPageDataSignature;
3293
4915
  interface GetProjectPageDataSignature {
3294
4916
  /**
3295
4917
  * Get project data for a specific project
3296
4918
  */
3297
4919
  (identifiers: GetProjectPageDataIdentifiers): Promise<GetProjectPageDataResponse & GetProjectPageDataResponseNonNullableFields>;
3298
4920
  }
3299
- declare function createProject$1(httpClient: HttpClient): CreateProjectSignature;
4921
+ declare function createProject$1(httpClient: HttpClient$2): CreateProjectSignature;
3300
4922
  interface CreateProjectSignature {
3301
4923
  /**
3302
4924
  * Creates a new Project
@@ -3305,7 +4927,7 @@ interface CreateProjectSignature {
3305
4927
  */
3306
4928
  (project: Project$1): Promise<Project$1 & ProjectNonNullableFields$1>;
3307
4929
  }
3308
- declare function getProject$1(httpClient: HttpClient): GetProjectSignature;
4930
+ declare function getProject$1(httpClient: HttpClient$2): GetProjectSignature;
3309
4931
  interface GetProjectSignature {
3310
4932
  /**
3311
4933
  * Get a Project by id
@@ -3314,14 +4936,14 @@ interface GetProjectSignature {
3314
4936
  */
3315
4937
  (projectId: string, options?: GetProjectOptions | undefined): Promise<Project$1 & ProjectNonNullableFields$1>;
3316
4938
  }
3317
- declare function listProjects$1(httpClient: HttpClient): ListProjectsSignature;
4939
+ declare function listProjects$1(httpClient: HttpClient$2): ListProjectsSignature;
3318
4940
  interface ListProjectsSignature {
3319
4941
  /**
3320
4942
  * List all projects in portfolio by creation date
3321
4943
  */
3322
4944
  (options?: ListProjectsOptions | undefined): Promise<ListProjectsResponse & ListProjectsResponseNonNullableFields>;
3323
4945
  }
3324
- declare function updateProject$1(httpClient: HttpClient): UpdateProjectSignature;
4946
+ declare function updateProject$1(httpClient: HttpClient$2): UpdateProjectSignature;
3325
4947
  interface UpdateProjectSignature {
3326
4948
  /**
3327
4949
  * Update a Project, supports partial update
@@ -3331,14 +4953,14 @@ interface UpdateProjectSignature {
3331
4953
  */
3332
4954
  (_id: string | null, project: UpdateProject): Promise<Project$1 & ProjectNonNullableFields$1>;
3333
4955
  }
3334
- declare function bulkUpdateProjects$1(httpClient: HttpClient): BulkUpdateProjectsSignature;
4956
+ declare function bulkUpdateProjects$1(httpClient: HttpClient$2): BulkUpdateProjectsSignature;
3335
4957
  interface BulkUpdateProjectsSignature {
3336
4958
  /**
3337
4959
  * Update Projects in bulk
3338
4960
  */
3339
4961
  (options?: BulkUpdateProjectsOptions | undefined): Promise<BulkUpdateProjectsResponse & BulkUpdateProjectsResponseNonNullableFields>;
3340
4962
  }
3341
- declare function deleteProject$1(httpClient: HttpClient): DeleteProjectSignature;
4963
+ declare function deleteProject$1(httpClient: HttpClient$2): DeleteProjectSignature;
3342
4964
  interface DeleteProjectSignature {
3343
4965
  /**
3344
4966
  * Delete a Project
@@ -3346,14 +4968,14 @@ interface DeleteProjectSignature {
3346
4968
  */
3347
4969
  (projectId: string): Promise<DeleteProjectResponse & DeleteProjectResponseNonNullableFields>;
3348
4970
  }
3349
- declare function queryProjects$1(httpClient: HttpClient): QueryProjectsSignature;
4971
+ declare function queryProjects$1(httpClient: HttpClient$2): QueryProjectsSignature;
3350
4972
  interface QueryProjectsSignature {
3351
4973
  /**
3352
4974
  * Query Projects using [WQL - Wix Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language)
3353
4975
  */
3354
4976
  (options?: QueryProjectsOptions | undefined): ProjectsQueryBuilder;
3355
4977
  }
3356
- declare function updateProjectOrderInCollection$3(httpClient: HttpClient): UpdateProjectOrderInCollectionSignature$1;
4978
+ declare function updateProjectOrderInCollection$3(httpClient: HttpClient$2): UpdateProjectOrderInCollectionSignature$1;
3357
4979
  interface UpdateProjectOrderInCollectionSignature$1 {
3358
4980
  /**
3359
4981
  * Deprecated - please use ProjectsInCollectionsService.UpdateProjectOrderInCollection instead
@@ -3363,7 +4985,7 @@ interface UpdateProjectOrderInCollectionSignature$1 {
3363
4985
  */
3364
4986
  (identifiers: UpdateProjectOrderInCollectionIdentifiers$1, sortOrder: number | null): Promise<UpdateProjectOrderInCollectionResponse$1 & UpdateProjectOrderInCollectionResponseNonNullableFields$1>;
3365
4987
  }
3366
- declare function queryProjectsWithCollectionInfo$1(httpClient: HttpClient): QueryProjectsWithCollectionInfoSignature;
4988
+ declare function queryProjectsWithCollectionInfo$1(httpClient: HttpClient$2): QueryProjectsWithCollectionInfoSignature;
3367
4989
  interface QueryProjectsWithCollectionInfoSignature {
3368
4990
  /**
3369
4991
  * Deprecated - please use ProjectsInCollectionsService.QueryProjectsInCollections instead
@@ -3373,22 +4995,40 @@ interface QueryProjectsWithCollectionInfoSignature {
3373
4995
  */
3374
4996
  (query: QueryV2$1, options?: QueryProjectsWithCollectionInfoOptions | undefined): Promise<QueryProjectWithCollectionInfoResponse & QueryProjectWithCollectionInfoResponseNonNullableFields>;
3375
4997
  }
3376
- declare const onProjectCreated$1: EventDefinition<ProjectCreatedEnvelope, "wix.portfolio.projects.v1.project_created">;
3377
- declare const onProjectUpdated$1: EventDefinition<ProjectUpdatedEnvelope, "wix.portfolio.projects.v1.project_updated">;
3378
- declare const onProjectDeleted$1: EventDefinition<ProjectDeletedEnvelope, "wix.portfolio.projects.v1.project_deleted">;
4998
+ declare const onProjectCreated$1: EventDefinition$4<ProjectCreatedEnvelope, "wix.portfolio.projects.v1.project_created">;
4999
+ declare const onProjectUpdated$1: EventDefinition$4<ProjectUpdatedEnvelope, "wix.portfolio.projects.v1.project_updated">;
5000
+ declare const onProjectDeleted$1: EventDefinition$4<ProjectDeletedEnvelope, "wix.portfolio.projects.v1.project_deleted">;
3379
5001
 
3380
- declare function createEventModule$1<T extends EventDefinition<any, string>>(eventDefinition: T): BuildEventDefinition<T> & T;
5002
+ type EventDefinition$3<Payload = unknown, Type extends string = string> = {
5003
+ __type: 'event-definition';
5004
+ type: Type;
5005
+ isDomainEvent?: boolean;
5006
+ transformations?: (envelope: unknown) => Payload;
5007
+ __payload: Payload;
5008
+ };
5009
+ declare function EventDefinition$3<Type extends string>(type: Type, isDomainEvent?: boolean, transformations?: (envelope: any) => unknown): <Payload = unknown>() => EventDefinition$3<Payload, Type>;
5010
+ type EventHandler$3<T extends EventDefinition$3> = (payload: T['__payload']) => void | Promise<void>;
5011
+ type BuildEventDefinition$3<T extends EventDefinition$3<any, string>> = (handler: EventHandler$3<T>) => void;
3381
5012
 
3382
- declare const getProjectPageData: BuildRESTFunction<typeof getProjectPageData$1> & typeof getProjectPageData$1;
3383
- declare const createProject: BuildRESTFunction<typeof createProject$1> & typeof createProject$1;
3384
- declare const getProject: BuildRESTFunction<typeof getProject$1> & typeof getProject$1;
3385
- declare const listProjects: BuildRESTFunction<typeof listProjects$1> & typeof listProjects$1;
3386
- declare const updateProject: BuildRESTFunction<typeof updateProject$1> & typeof updateProject$1;
3387
- declare const bulkUpdateProjects: BuildRESTFunction<typeof bulkUpdateProjects$1> & typeof bulkUpdateProjects$1;
3388
- declare const deleteProject: BuildRESTFunction<typeof deleteProject$1> & typeof deleteProject$1;
3389
- declare const queryProjects: BuildRESTFunction<typeof queryProjects$1> & typeof queryProjects$1;
3390
- declare const updateProjectOrderInCollection$2: BuildRESTFunction<typeof updateProjectOrderInCollection$3> & typeof updateProjectOrderInCollection$3;
3391
- declare const queryProjectsWithCollectionInfo: BuildRESTFunction<typeof queryProjectsWithCollectionInfo$1> & typeof queryProjectsWithCollectionInfo$1;
5013
+ declare global {
5014
+ // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
5015
+ interface SymbolConstructor {
5016
+ readonly observable: symbol;
5017
+ }
5018
+ }
5019
+
5020
+ declare function createEventModule$1<T extends EventDefinition$3<any, string>>(eventDefinition: T): BuildEventDefinition$3<T> & T;
5021
+
5022
+ declare const getProjectPageData: MaybeContext$2<BuildRESTFunction$2<typeof getProjectPageData$1> & typeof getProjectPageData$1>;
5023
+ declare const createProject: MaybeContext$2<BuildRESTFunction$2<typeof createProject$1> & typeof createProject$1>;
5024
+ declare const getProject: MaybeContext$2<BuildRESTFunction$2<typeof getProject$1> & typeof getProject$1>;
5025
+ declare const listProjects: MaybeContext$2<BuildRESTFunction$2<typeof listProjects$1> & typeof listProjects$1>;
5026
+ declare const updateProject: MaybeContext$2<BuildRESTFunction$2<typeof updateProject$1> & typeof updateProject$1>;
5027
+ declare const bulkUpdateProjects: MaybeContext$2<BuildRESTFunction$2<typeof bulkUpdateProjects$1> & typeof bulkUpdateProjects$1>;
5028
+ declare const deleteProject: MaybeContext$2<BuildRESTFunction$2<typeof deleteProject$1> & typeof deleteProject$1>;
5029
+ declare const queryProjects: MaybeContext$2<BuildRESTFunction$2<typeof queryProjects$1> & typeof queryProjects$1>;
5030
+ declare const updateProjectOrderInCollection$2: MaybeContext$2<BuildRESTFunction$2<typeof updateProjectOrderInCollection$3> & typeof updateProjectOrderInCollection$3>;
5031
+ declare const queryProjectsWithCollectionInfo: MaybeContext$2<BuildRESTFunction$2<typeof queryProjectsWithCollectionInfo$1> & typeof queryProjectsWithCollectionInfo$1>;
3392
5032
 
3393
5033
  type _publicOnProjectCreatedType = typeof onProjectCreated$1;
3394
5034
  /** */
@@ -3479,6 +5119,416 @@ declare namespace index_d$2 {
3479
5119
  export { type ActionEvent$2 as ActionEvent, type index_d$2_App as App, type index_d$2_ApplicationError as ApplicationError, type Asset$1 as Asset, type BaseEventMetadata$1 as BaseEventMetadata, type index_d$2_BulkActionMetadata as BulkActionMetadata, type index_d$2_BulkUpdateProjectsOptions as BulkUpdateProjectsOptions, type index_d$2_BulkUpdateProjectsRequest as BulkUpdateProjectsRequest, type index_d$2_BulkUpdateProjectsResponse as BulkUpdateProjectsResponse, type index_d$2_BulkUpdateProjectsResponseNonNullableFields as BulkUpdateProjectsResponseNonNullableFields, type index_d$2_BulkUpdateProjectsResult as BulkUpdateProjectsResult, type index_d$2_CreateNewPortfolioAppRequest as CreateNewPortfolioAppRequest, type index_d$2_CreateNewPortfolioAppResponse as CreateNewPortfolioAppResponse, type index_d$2_CreateProjectRequest as CreateProjectRequest, type index_d$2_CreateProjectResponse as CreateProjectResponse, type index_d$2_CreateProjectResponseNonNullableFields as CreateProjectResponseNonNullableFields, type CursorPaging$2 as CursorPaging, type Cursors$2 as Cursors, type DeleteContext$1 as DeleteContext, type index_d$2_DeleteProjectRequest as DeleteProjectRequest, type index_d$2_DeleteProjectResponse as DeleteProjectResponse, type index_d$2_DeleteProjectResponseNonNullableFields as DeleteProjectResponseNonNullableFields, DeleteStatus$1 as DeleteStatus, type index_d$2_DeletedProjectRestored as DeletedProjectRestored, type DetailsLink$1 as DetailsLink, type DomainEvent$2 as DomainEvent, type DomainEventBodyOneOf$2 as DomainEventBodyOneOf, type Empty$1 as Empty, type EntityCreatedEvent$2 as EntityCreatedEvent, type EntityDeletedEvent$2 as EntityDeletedEvent, type EntityUpdatedEvent$2 as EntityUpdatedEvent, type EventMetadata$1 as EventMetadata, type index_d$2_File as File, type index_d$2_GetProjectOptions as GetProjectOptions, type index_d$2_GetProjectPageDataIdentifiers as GetProjectPageDataIdentifiers, type index_d$2_GetProjectPageDataRequest as GetProjectPageDataRequest, type index_d$2_GetProjectPageDataResponse as GetProjectPageDataResponse, type index_d$2_GetProjectPageDataResponseNonNullableFields as GetProjectPageDataResponseNonNullableFields, type index_d$2_GetProjectRequest as GetProjectRequest, type index_d$2_GetProjectResponse as GetProjectResponse, type index_d$2_GetProjectResponseNonNullableFields as GetProjectResponseNonNullableFields, type IdentificationData$2 as IdentificationData, type IdentificationDataIdOneOf$2 as IdentificationDataIdOneOf, type Image$1 as Image, ImageType$1 as ImageType, type index_d$2_InvalidateCache as InvalidateCache, type index_d$2_InvalidateCacheGetByOneOf as InvalidateCacheGetByOneOf, type index_d$2_ItemMetadata as ItemMetadata, type Keyword$1 as Keyword, type index_d$2_ListProjectsOptions as ListProjectsOptions, type index_d$2_ListProjectsRequest as ListProjectsRequest, type index_d$2_ListProjectsResponse as ListProjectsResponse, type index_d$2_ListProjectsResponseNonNullableFields as ListProjectsResponseNonNullableFields, type index_d$2_MaskedProject as MaskedProject, type index_d$2_MenuSettingUpdatedEvent as MenuSettingUpdatedEvent, type MessageEnvelope$2 as MessageEnvelope, type MetaSiteSpecialEvent$1 as MetaSiteSpecialEvent, type MetaSiteSpecialEventPayloadOneOf$1 as MetaSiteSpecialEventPayloadOneOf, Namespace$1 as Namespace, type NamespaceChanged$1 as NamespaceChanged, type index_d$2_Page as Page, type Paging$1 as Paging, type PagingMetadataV2$2 as PagingMetadataV2, type Point$1 as Point, type Project$1 as Project, type ProjectCoverOneOf$1 as ProjectCoverOneOf, type index_d$2_ProjectCreatedEnvelope as ProjectCreatedEnvelope, type index_d$2_ProjectDeletedEnvelope as ProjectDeletedEnvelope, type ProjectDetail$1 as ProjectDetail, type ProjectDetailValueOneOf$1 as ProjectDetailValueOneOf, type ProjectInCollection$1 as ProjectInCollection, type ProjectNonNullableFields$1 as ProjectNonNullableFields, type index_d$2_ProjectSlug as ProjectSlug, type ProjectSource$1 as ProjectSource, type index_d$2_ProjectUpdatedEnvelope as ProjectUpdatedEnvelope, type index_d$2_ProjectsQueryBuilder as ProjectsQueryBuilder, type index_d$2_ProjectsQueryResult as ProjectsQueryResult, type index_d$2_QueryProjectWithCollectionInfoRequest as QueryProjectWithCollectionInfoRequest, type index_d$2_QueryProjectWithCollectionInfoResponse as QueryProjectWithCollectionInfoResponse, type index_d$2_QueryProjectWithCollectionInfoResponseNonNullableFields as QueryProjectWithCollectionInfoResponseNonNullableFields, type index_d$2_QueryProjectsOptions as QueryProjectsOptions, type index_d$2_QueryProjectsRequest as QueryProjectsRequest, type index_d$2_QueryProjectsResponse as QueryProjectsResponse, type index_d$2_QueryProjectsResponseNonNullableFields as QueryProjectsResponseNonNullableFields, type index_d$2_QueryProjectsWithCollectionInfoOptions as QueryProjectsWithCollectionInfoOptions, type QueryV2$1 as QueryV2, type QueryV2PagingMethodOneOf$1 as QueryV2PagingMethodOneOf, type RestoreInfo$2 as RestoreInfo, type index_d$2_RestoreProjectFromTrashBinRequest as RestoreProjectFromTrashBinRequest, type index_d$2_RestoreProjectFromTrashBinResponse as RestoreProjectFromTrashBinResponse, type SeoSchema$1 as SeoSchema, type ServiceProvisioned$1 as ServiceProvisioned, type ServiceRemoved$1 as ServiceRemoved, type Settings$1 as Settings, type SiteCreated$1 as SiteCreated, SiteCreatedContext$1 as SiteCreatedContext, type SiteDeleted$1 as SiteDeleted, type SiteHardDeleted$1 as SiteHardDeleted, type SiteMarkedAsTemplate$1 as SiteMarkedAsTemplate, type SiteMarkedAsWixSite$1 as SiteMarkedAsWixSite, type SitePublished$1 as SitePublished, type SiteRenamed$1 as SiteRenamed, type SiteTransferred$1 as SiteTransferred, type SiteUndeleted$1 as SiteUndeleted, type SiteUnpublished$1 as SiteUnpublished, SortOrder$1 as SortOrder, type Sorting$1 as Sorting, State$1 as State, type StudioAssigned$1 as StudioAssigned, type StudioUnassigned$1 as StudioUnassigned, type index_d$2_SyncProjectWithCollectionMappings as SyncProjectWithCollectionMappings, SyncStatus$2 as SyncStatus, type Tag$1 as Tag, type index_d$2_URI as URI, type UnsharpMasking$1 as UnsharpMasking, type index_d$2_UpdateProject as UpdateProject, type UpdateProjectOrderInCollectionIdentifiers$1 as UpdateProjectOrderInCollectionIdentifiers, type UpdateProjectOrderInCollectionRequest$1 as UpdateProjectOrderInCollectionRequest, type UpdateProjectOrderInCollectionResponse$1 as UpdateProjectOrderInCollectionResponse, type UpdateProjectOrderInCollectionResponseNonNullableFields$1 as UpdateProjectOrderInCollectionResponseNonNullableFields, type index_d$2_UpdateProjectRequest as UpdateProjectRequest, type index_d$2_UpdateProjectResponse as UpdateProjectResponse, type index_d$2_UpdateProjectResponseNonNullableFields as UpdateProjectResponseNonNullableFields, type Video$1 as Video, type VideoResolution$1 as VideoResolution, WebhookIdentityType$2 as WebhookIdentityType, type index_d$2__publicOnProjectCreatedType as _publicOnProjectCreatedType, type index_d$2__publicOnProjectDeletedType as _publicOnProjectDeletedType, type index_d$2__publicOnProjectUpdatedType as _publicOnProjectUpdatedType, index_d$2_bulkUpdateProjects as bulkUpdateProjects, index_d$2_createProject as createProject, index_d$2_deleteProject as deleteProject, index_d$2_getProject as getProject, index_d$2_getProjectPageData as getProjectPageData, index_d$2_listProjects as listProjects, index_d$2_onProjectCreated as onProjectCreated, index_d$2_onProjectDeleted as onProjectDeleted, index_d$2_onProjectUpdated as onProjectUpdated, onProjectCreated$1 as publicOnProjectCreated, onProjectDeleted$1 as publicOnProjectDeleted, onProjectUpdated$1 as publicOnProjectUpdated, index_d$2_queryProjects as queryProjects, index_d$2_queryProjectsWithCollectionInfo as queryProjectsWithCollectionInfo, index_d$2_updateProject as updateProject, updateProjectOrderInCollection$2 as updateProjectOrderInCollection };
3480
5120
  }
3481
5121
 
5122
+ type HostModule$1<T, H extends Host$1> = {
5123
+ __type: 'host';
5124
+ create(host: H): T;
5125
+ };
5126
+ type HostModuleAPI$1<T extends HostModule$1<any, any>> = T extends HostModule$1<infer U, any> ? U : never;
5127
+ type Host$1<Environment = unknown> = {
5128
+ channel: {
5129
+ observeState(callback: (props: unknown, environment: Environment) => unknown): {
5130
+ disconnect: () => void;
5131
+ } | Promise<{
5132
+ disconnect: () => void;
5133
+ }>;
5134
+ };
5135
+ environment?: Environment;
5136
+ /**
5137
+ * Optional bast url to use for API requests, for example `www.wixapis.com`
5138
+ */
5139
+ apiBaseUrl?: string;
5140
+ /**
5141
+ * Possible data to be provided by every host, for cross cutting concerns
5142
+ * like internationalization, billing, etc.
5143
+ */
5144
+ essentials?: {
5145
+ /**
5146
+ * The language of the currently viewed session
5147
+ */
5148
+ language?: string;
5149
+ /**
5150
+ * The locale of the currently viewed session
5151
+ */
5152
+ locale?: string;
5153
+ /**
5154
+ * Any headers that should be passed through to the API requests
5155
+ */
5156
+ passThroughHeaders?: Record<string, string>;
5157
+ };
5158
+ };
5159
+
5160
+ type RESTFunctionDescriptor$1<T extends (...args: any[]) => any = (...args: any[]) => any> = (httpClient: HttpClient$1) => T;
5161
+ interface HttpClient$1 {
5162
+ request<TResponse, TData = any>(req: RequestOptionsFactory$1<TResponse, TData>): Promise<HttpResponse$1<TResponse>>;
5163
+ fetchWithAuth: typeof fetch;
5164
+ wixAPIFetch: (relativeUrl: string, options: RequestInit) => Promise<Response>;
5165
+ getActiveToken?: () => string | undefined;
5166
+ }
5167
+ type RequestOptionsFactory$1<TResponse = any, TData = any> = (context: any) => RequestOptions$1<TResponse, TData>;
5168
+ type HttpResponse$1<T = any> = {
5169
+ data: T;
5170
+ status: number;
5171
+ statusText: string;
5172
+ headers: any;
5173
+ request?: any;
5174
+ };
5175
+ type RequestOptions$1<_TResponse = any, Data = any> = {
5176
+ method: 'POST' | 'GET' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';
5177
+ url: string;
5178
+ data?: Data;
5179
+ params?: URLSearchParams;
5180
+ } & APIMetadata$1;
5181
+ type APIMetadata$1 = {
5182
+ methodFqn?: string;
5183
+ entityFqdn?: string;
5184
+ packageName?: string;
5185
+ };
5186
+ type BuildRESTFunction$1<T extends RESTFunctionDescriptor$1> = T extends RESTFunctionDescriptor$1<infer U> ? U : never;
5187
+ type EventDefinition$2<Payload = unknown, Type extends string = string> = {
5188
+ __type: 'event-definition';
5189
+ type: Type;
5190
+ isDomainEvent?: boolean;
5191
+ transformations?: (envelope: unknown) => Payload;
5192
+ __payload: Payload;
5193
+ };
5194
+ declare function EventDefinition$2<Type extends string>(type: Type, isDomainEvent?: boolean, transformations?: (envelope: any) => unknown): <Payload = unknown>() => EventDefinition$2<Payload, Type>;
5195
+ type EventHandler$2<T extends EventDefinition$2> = (payload: T['__payload']) => void | Promise<void>;
5196
+ type BuildEventDefinition$2<T extends EventDefinition$2<any, string>> = (handler: EventHandler$2<T>) => void;
5197
+
5198
+ type ServicePluginMethodInput$1 = {
5199
+ request: any;
5200
+ metadata: any;
5201
+ };
5202
+ type ServicePluginContract$1 = Record<string, (payload: ServicePluginMethodInput$1) => unknown | Promise<unknown>>;
5203
+ type ServicePluginMethodMetadata$1 = {
5204
+ name: string;
5205
+ primaryHttpMappingPath: string;
5206
+ transformations: {
5207
+ fromREST: (...args: unknown[]) => ServicePluginMethodInput$1;
5208
+ toREST: (...args: unknown[]) => unknown;
5209
+ };
5210
+ };
5211
+ type ServicePluginDefinition$1<Contract extends ServicePluginContract$1> = {
5212
+ __type: 'service-plugin-definition';
5213
+ componentType: string;
5214
+ methods: ServicePluginMethodMetadata$1[];
5215
+ __contract: Contract;
5216
+ };
5217
+ declare function ServicePluginDefinition$1<Contract extends ServicePluginContract$1>(componentType: string, methods: ServicePluginMethodMetadata$1[]): ServicePluginDefinition$1<Contract>;
5218
+ type BuildServicePluginDefinition$1<T extends ServicePluginDefinition$1<any>> = (implementation: T['__contract']) => void;
5219
+ declare const SERVICE_PLUGIN_ERROR_TYPE$1 = "wix_spi_error";
5220
+
5221
+ type RequestContext$1 = {
5222
+ isSSR: boolean;
5223
+ host: string;
5224
+ protocol?: string;
5225
+ };
5226
+ type ResponseTransformer$1 = (data: any, headers?: any) => any;
5227
+ /**
5228
+ * Ambassador request options types are copied mostly from AxiosRequestConfig.
5229
+ * They are copied and not imported to reduce the amount of dependencies (to reduce install time).
5230
+ * https://github.com/axios/axios/blob/3f53eb6960f05a1f88409c4b731a40de595cb825/index.d.ts#L307-L315
5231
+ */
5232
+ type Method$1 = 'get' | 'GET' | 'delete' | 'DELETE' | 'head' | 'HEAD' | 'options' | 'OPTIONS' | 'post' | 'POST' | 'put' | 'PUT' | 'patch' | 'PATCH' | 'purge' | 'PURGE' | 'link' | 'LINK' | 'unlink' | 'UNLINK';
5233
+ type AmbassadorRequestOptions$1<T = any> = {
5234
+ _?: T;
5235
+ url?: string;
5236
+ method?: Method$1;
5237
+ params?: any;
5238
+ data?: any;
5239
+ transformResponse?: ResponseTransformer$1 | ResponseTransformer$1[];
5240
+ };
5241
+ type AmbassadorFactory$1<Request, Response> = (payload: Request) => ((context: RequestContext$1) => AmbassadorRequestOptions$1<Response>) & {
5242
+ __isAmbassador: boolean;
5243
+ };
5244
+ type AmbassadorFunctionDescriptor$1<Request = any, Response = any> = AmbassadorFactory$1<Request, Response>;
5245
+ type BuildAmbassadorFunction$1<T extends AmbassadorFunctionDescriptor$1> = T extends AmbassadorFunctionDescriptor$1<infer Request, infer Response> ? (req: Request) => Promise<Response> : never;
5246
+
5247
+ declare global {
5248
+ // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
5249
+ interface SymbolConstructor {
5250
+ readonly observable: symbol;
5251
+ }
5252
+ }
5253
+
5254
+ declare const emptyObjectSymbol$1: unique symbol;
5255
+
5256
+ /**
5257
+ Represents a strictly empty plain object, the `{}` value.
5258
+
5259
+ When you annotate something as the type `{}`, it can be anything except `null` and `undefined`. This means that you cannot use `{}` to represent an empty plain object ([read more](https://stackoverflow.com/questions/47339869/typescript-empty-object-and-any-difference/52193484#52193484)).
5260
+
5261
+ @example
5262
+ ```
5263
+ import type {EmptyObject} from 'type-fest';
5264
+
5265
+ // The following illustrates the problem with `{}`.
5266
+ const foo1: {} = {}; // Pass
5267
+ const foo2: {} = []; // Pass
5268
+ const foo3: {} = 42; // Pass
5269
+ const foo4: {} = {a: 1}; // Pass
5270
+
5271
+ // With `EmptyObject` only the first case is valid.
5272
+ const bar1: EmptyObject = {}; // Pass
5273
+ const bar2: EmptyObject = 42; // Fail
5274
+ const bar3: EmptyObject = []; // Fail
5275
+ const bar4: EmptyObject = {a: 1}; // Fail
5276
+ ```
5277
+
5278
+ Unfortunately, `Record<string, never>`, `Record<keyof any, never>` and `Record<never, never>` do not work. See {@link https://github.com/sindresorhus/type-fest/issues/395 #395}.
5279
+
5280
+ @category Object
5281
+ */
5282
+ type EmptyObject$1 = {[emptyObjectSymbol$1]?: never};
5283
+
5284
+ /**
5285
+ Returns a boolean for whether the two given types are equal.
5286
+
5287
+ @link https://github.com/microsoft/TypeScript/issues/27024#issuecomment-421529650
5288
+ @link https://stackoverflow.com/questions/68961864/how-does-the-equals-work-in-typescript/68963796#68963796
5289
+
5290
+ Use-cases:
5291
+ - If you want to make a conditional branch based on the result of a comparison of two types.
5292
+
5293
+ @example
5294
+ ```
5295
+ import type {IsEqual} from 'type-fest';
5296
+
5297
+ // This type returns a boolean for whether the given array includes the given item.
5298
+ // `IsEqual` is used to compare the given array at position 0 and the given item and then return true if they are equal.
5299
+ type Includes<Value extends readonly any[], Item> =
5300
+ Value extends readonly [Value[0], ...infer rest]
5301
+ ? IsEqual<Value[0], Item> extends true
5302
+ ? true
5303
+ : Includes<rest, Item>
5304
+ : false;
5305
+ ```
5306
+
5307
+ @category Type Guard
5308
+ @category Utilities
5309
+ */
5310
+ type IsEqual$1<A, B> =
5311
+ (<G>() => G extends A ? 1 : 2) extends
5312
+ (<G>() => G extends B ? 1 : 2)
5313
+ ? true
5314
+ : false;
5315
+
5316
+ /**
5317
+ Filter out keys from an object.
5318
+
5319
+ Returns `never` if `Exclude` is strictly equal to `Key`.
5320
+ Returns `never` if `Key` extends `Exclude`.
5321
+ Returns `Key` otherwise.
5322
+
5323
+ @example
5324
+ ```
5325
+ type Filtered = Filter<'foo', 'foo'>;
5326
+ //=> never
5327
+ ```
5328
+
5329
+ @example
5330
+ ```
5331
+ type Filtered = Filter<'bar', string>;
5332
+ //=> never
5333
+ ```
5334
+
5335
+ @example
5336
+ ```
5337
+ type Filtered = Filter<'bar', 'foo'>;
5338
+ //=> 'bar'
5339
+ ```
5340
+
5341
+ @see {Except}
5342
+ */
5343
+ type Filter$1<KeyType, ExcludeType> = IsEqual$1<KeyType, ExcludeType> extends true ? never : (KeyType extends ExcludeType ? never : KeyType);
5344
+
5345
+ type ExceptOptions$1 = {
5346
+ /**
5347
+ Disallow assigning non-specified properties.
5348
+
5349
+ Note that any omitted properties in the resulting type will be present in autocomplete as `undefined`.
5350
+
5351
+ @default false
5352
+ */
5353
+ requireExactProps?: boolean;
5354
+ };
5355
+
5356
+ /**
5357
+ Create a type from an object type without certain keys.
5358
+
5359
+ We recommend setting the `requireExactProps` option to `true`.
5360
+
5361
+ This type is a stricter version of [`Omit`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-5.html#the-omit-helper-type). The `Omit` type does not restrict the omitted keys to be keys present on the given type, while `Except` does. The benefits of a stricter type are avoiding typos and allowing the compiler to pick up on rename refactors automatically.
5362
+
5363
+ This type was proposed to the TypeScript team, which declined it, saying they prefer that libraries implement stricter versions of the built-in types ([microsoft/TypeScript#30825](https://github.com/microsoft/TypeScript/issues/30825#issuecomment-523668235)).
5364
+
5365
+ @example
5366
+ ```
5367
+ import type {Except} from 'type-fest';
5368
+
5369
+ type Foo = {
5370
+ a: number;
5371
+ b: string;
5372
+ };
5373
+
5374
+ type FooWithoutA = Except<Foo, 'a'>;
5375
+ //=> {b: string}
5376
+
5377
+ const fooWithoutA: FooWithoutA = {a: 1, b: '2'};
5378
+ //=> errors: 'a' does not exist in type '{ b: string; }'
5379
+
5380
+ type FooWithoutB = Except<Foo, 'b', {requireExactProps: true}>;
5381
+ //=> {a: number} & Partial<Record<"b", never>>
5382
+
5383
+ const fooWithoutB: FooWithoutB = {a: 1, b: '2'};
5384
+ //=> errors at 'b': Type 'string' is not assignable to type 'undefined'.
5385
+ ```
5386
+
5387
+ @category Object
5388
+ */
5389
+ type Except$1<ObjectType, KeysType extends keyof ObjectType, Options extends ExceptOptions$1 = {requireExactProps: false}> = {
5390
+ [KeyType in keyof ObjectType as Filter$1<KeyType, KeysType>]: ObjectType[KeyType];
5391
+ } & (Options['requireExactProps'] extends true
5392
+ ? Partial<Record<KeysType, never>>
5393
+ : {});
5394
+
5395
+ /**
5396
+ Extract the keys from a type where the value type of the key extends the given `Condition`.
5397
+
5398
+ Internally this is used for the `ConditionalPick` and `ConditionalExcept` types.
5399
+
5400
+ @example
5401
+ ```
5402
+ import type {ConditionalKeys} from 'type-fest';
5403
+
5404
+ interface Example {
5405
+ a: string;
5406
+ b: string | number;
5407
+ c?: string;
5408
+ d: {};
5409
+ }
5410
+
5411
+ type StringKeysOnly = ConditionalKeys<Example, string>;
5412
+ //=> 'a'
5413
+ ```
5414
+
5415
+ To support partial types, make sure your `Condition` is a union of undefined (for example, `string | undefined`) as demonstrated below.
5416
+
5417
+ @example
5418
+ ```
5419
+ import type {ConditionalKeys} from 'type-fest';
5420
+
5421
+ type StringKeysAndUndefined = ConditionalKeys<Example, string | undefined>;
5422
+ //=> 'a' | 'c'
5423
+ ```
5424
+
5425
+ @category Object
5426
+ */
5427
+ type ConditionalKeys$1<Base, Condition> = NonNullable<
5428
+ // Wrap in `NonNullable` to strip away the `undefined` type from the produced union.
5429
+ {
5430
+ // Map through all the keys of the given base type.
5431
+ [Key in keyof Base]:
5432
+ // Pick only keys with types extending the given `Condition` type.
5433
+ Base[Key] extends Condition
5434
+ // Retain this key since the condition passes.
5435
+ ? Key
5436
+ // Discard this key since the condition fails.
5437
+ : never;
5438
+
5439
+ // Convert the produced object into a union type of the keys which passed the conditional test.
5440
+ }[keyof Base]
5441
+ >;
5442
+
5443
+ /**
5444
+ Exclude keys from a shape that matches the given `Condition`.
5445
+
5446
+ This is useful when you want to create a new type with a specific set of keys from a shape. For example, you might want to exclude all the primitive properties from a class and form a new shape containing everything but the primitive properties.
5447
+
5448
+ @example
5449
+ ```
5450
+ import type {Primitive, ConditionalExcept} from 'type-fest';
5451
+
5452
+ class Awesome {
5453
+ name: string;
5454
+ successes: number;
5455
+ failures: bigint;
5456
+
5457
+ run() {}
5458
+ }
5459
+
5460
+ type ExceptPrimitivesFromAwesome = ConditionalExcept<Awesome, Primitive>;
5461
+ //=> {run: () => void}
5462
+ ```
5463
+
5464
+ @example
5465
+ ```
5466
+ import type {ConditionalExcept} from 'type-fest';
5467
+
5468
+ interface Example {
5469
+ a: string;
5470
+ b: string | number;
5471
+ c: () => void;
5472
+ d: {};
5473
+ }
5474
+
5475
+ type NonStringKeysOnly = ConditionalExcept<Example, string>;
5476
+ //=> {b: string | number; c: () => void; d: {}}
5477
+ ```
5478
+
5479
+ @category Object
5480
+ */
5481
+ type ConditionalExcept$1<Base, Condition> = Except$1<
5482
+ Base,
5483
+ ConditionalKeys$1<Base, Condition>
5484
+ >;
5485
+
5486
+ /**
5487
+ * Descriptors are objects that describe the API of a module, and the module
5488
+ * can either be a REST module or a host module.
5489
+ * This type is recursive, so it can describe nested modules.
5490
+ */
5491
+ type Descriptors$1 = RESTFunctionDescriptor$1 | AmbassadorFunctionDescriptor$1 | HostModule$1<any, any> | EventDefinition$2<any> | ServicePluginDefinition$1<any> | {
5492
+ [key: string]: Descriptors$1 | PublicMetadata$1 | any;
5493
+ };
5494
+ /**
5495
+ * This type takes in a descriptors object of a certain Host (including an `unknown` host)
5496
+ * and returns an object with the same structure, but with all descriptors replaced with their API.
5497
+ * Any non-descriptor properties are removed from the returned object, including descriptors that
5498
+ * do not match the given host (as they will not work with the given host).
5499
+ */
5500
+ type BuildDescriptors$1<T extends Descriptors$1, H extends Host$1<any> | undefined, Depth extends number = 5> = {
5501
+ done: T;
5502
+ recurse: T extends {
5503
+ __type: typeof SERVICE_PLUGIN_ERROR_TYPE$1;
5504
+ } ? never : T extends AmbassadorFunctionDescriptor$1 ? BuildAmbassadorFunction$1<T> : T extends RESTFunctionDescriptor$1 ? BuildRESTFunction$1<T> : T extends EventDefinition$2<any> ? BuildEventDefinition$2<T> : T extends ServicePluginDefinition$1<any> ? BuildServicePluginDefinition$1<T> : T extends HostModule$1<any, any> ? HostModuleAPI$1<T> : ConditionalExcept$1<{
5505
+ [Key in keyof T]: T[Key] extends Descriptors$1 ? BuildDescriptors$1<T[Key], H, [
5506
+ -1,
5507
+ 0,
5508
+ 1,
5509
+ 2,
5510
+ 3,
5511
+ 4,
5512
+ 5
5513
+ ][Depth]> : never;
5514
+ }, EmptyObject$1>;
5515
+ }[Depth extends -1 ? 'done' : 'recurse'];
5516
+ type PublicMetadata$1 = {
5517
+ PACKAGE_NAME?: string;
5518
+ };
5519
+
5520
+ declare global {
5521
+ interface ContextualClient {
5522
+ }
5523
+ }
5524
+ /**
5525
+ * A type used to create concerete types from SDK descriptors in
5526
+ * case a contextual client is available.
5527
+ */
5528
+ type MaybeContext$1<T extends Descriptors$1> = globalThis.ContextualClient extends {
5529
+ host: Host$1;
5530
+ } ? BuildDescriptors$1<T, globalThis.ContextualClient['host']> : T;
5531
+
3482
5532
  interface ProjectInCollection {
3483
5533
  /** Collection ID */
3484
5534
  collectionId?: string;
@@ -3530,11 +5580,6 @@ interface Project extends ProjectCoverOneOf {
3530
5580
  url?: string;
3531
5581
  /** SEO data for the project */
3532
5582
  seoData?: SeoSchema;
3533
- /**
3534
- * indicates if the project is synced from external platform (via integration page) and therefore will be updated from the external platform on daily basis
3535
- * @readonly
3536
- */
3537
- syncedProject?: boolean | null;
3538
5583
  }
3539
5584
  /** @oneof */
3540
5585
  interface ProjectCoverOneOf {
@@ -4111,7 +6156,7 @@ interface UpdateProjectOrderInCollectionIdentifiers {
4111
6156
  collectionId: string;
4112
6157
  }
4113
6158
 
4114
- declare function queryProjectInCollections$1(httpClient: HttpClient): QueryProjectInCollectionsSignature;
6159
+ declare function queryProjectInCollections$1(httpClient: HttpClient$1): QueryProjectInCollectionsSignature;
4115
6160
  interface QueryProjectInCollectionsSignature {
4116
6161
  /**
4117
6162
  * Query project in collection context using [WQL - Wix Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language)
@@ -4124,7 +6169,7 @@ interface QueryProjectInCollectionsSignature {
4124
6169
  */
4125
6170
  (options?: QueryProjectInCollectionsOptions | undefined): ProjectInCollectionsQueryBuilder;
4126
6171
  }
4127
- declare function updateProjectOrderInCollection$1(httpClient: HttpClient): UpdateProjectOrderInCollectionSignature;
6172
+ declare function updateProjectOrderInCollection$1(httpClient: HttpClient$1): UpdateProjectOrderInCollectionSignature;
4128
6173
  interface UpdateProjectOrderInCollectionSignature {
4129
6174
  /**
4130
6175
  * Updates Project's order in a given Collection
@@ -4132,12 +6177,30 @@ interface UpdateProjectOrderInCollectionSignature {
4132
6177
  */
4133
6178
  (identifiers: UpdateProjectOrderInCollectionIdentifiers, sortOrder: number | null): Promise<UpdateProjectOrderInCollectionResponse & UpdateProjectOrderInCollectionResponseNonNullableFields>;
4134
6179
  }
4135
- declare const onProjectInCollectionProjectOrderInCollectionUpdatedEvent$1: EventDefinition<ProjectInCollectionProjectOrderInCollectionUpdatedEnvelope, "wix.portfolio.projects.v1.project_in_collection_project_order_in_collection_updated_event">;
6180
+ declare const onProjectInCollectionProjectOrderInCollectionUpdatedEvent$1: EventDefinition$2<ProjectInCollectionProjectOrderInCollectionUpdatedEnvelope, "wix.portfolio.projects.v1.project_in_collection_project_order_in_collection_updated_event">;
4136
6181
 
4137
- declare function createEventModule<T extends EventDefinition<any, string>>(eventDefinition: T): BuildEventDefinition<T> & T;
6182
+ type EventDefinition$1<Payload = unknown, Type extends string = string> = {
6183
+ __type: 'event-definition';
6184
+ type: Type;
6185
+ isDomainEvent?: boolean;
6186
+ transformations?: (envelope: unknown) => Payload;
6187
+ __payload: Payload;
6188
+ };
6189
+ declare function EventDefinition$1<Type extends string>(type: Type, isDomainEvent?: boolean, transformations?: (envelope: any) => unknown): <Payload = unknown>() => EventDefinition$1<Payload, Type>;
6190
+ type EventHandler$1<T extends EventDefinition$1> = (payload: T['__payload']) => void | Promise<void>;
6191
+ type BuildEventDefinition$1<T extends EventDefinition$1<any, string>> = (handler: EventHandler$1<T>) => void;
4138
6192
 
4139
- declare const queryProjectInCollections: BuildRESTFunction<typeof queryProjectInCollections$1> & typeof queryProjectInCollections$1;
4140
- declare const updateProjectOrderInCollection: BuildRESTFunction<typeof updateProjectOrderInCollection$1> & typeof updateProjectOrderInCollection$1;
6193
+ declare global {
6194
+ // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
6195
+ interface SymbolConstructor {
6196
+ readonly observable: symbol;
6197
+ }
6198
+ }
6199
+
6200
+ declare function createEventModule<T extends EventDefinition$1<any, string>>(eventDefinition: T): BuildEventDefinition$1<T> & T;
6201
+
6202
+ declare const queryProjectInCollections: MaybeContext$1<BuildRESTFunction$1<typeof queryProjectInCollections$1> & typeof queryProjectInCollections$1>;
6203
+ declare const updateProjectOrderInCollection: MaybeContext$1<BuildRESTFunction$1<typeof updateProjectOrderInCollection$1> & typeof updateProjectOrderInCollection$1>;
4141
6204
 
4142
6205
  type _publicOnProjectInCollectionProjectOrderInCollectionUpdatedEventType = typeof onProjectInCollectionProjectOrderInCollectionUpdatedEvent$1;
4143
6206
  /** */
@@ -4189,6 +6252,416 @@ declare namespace index_d$1 {
4189
6252
  export { type ActionEvent$1 as ActionEvent, type index_d$1_BaseEventMetadata as BaseEventMetadata, type CursorPaging$1 as CursorPaging, type Cursors$1 as Cursors, type index_d$1_DetailsLink as DetailsLink, type DomainEvent$1 as DomainEvent, type DomainEventBodyOneOf$1 as DomainEventBodyOneOf, type EntityCreatedEvent$1 as EntityCreatedEvent, type EntityDeletedEvent$1 as EntityDeletedEvent, type EntityUpdatedEvent$1 as EntityUpdatedEvent, type index_d$1_EventMetadata as EventMetadata, type IdentificationData$1 as IdentificationData, type IdentificationDataIdOneOf$1 as IdentificationDataIdOneOf, type index_d$1_Image as Image, index_d$1_ImageType as ImageType, type index_d$1_Keyword as Keyword, type MessageEnvelope$1 as MessageEnvelope, type index_d$1_Paging as Paging, type PagingMetadataV2$1 as PagingMetadataV2, type index_d$1_Point as Point, type index_d$1_Project as Project, type index_d$1_ProjectCoverOneOf as ProjectCoverOneOf, type index_d$1_ProjectDetail as ProjectDetail, type index_d$1_ProjectDetailValueOneOf as ProjectDetailValueOneOf, type index_d$1_ProjectInCollection as ProjectInCollection, type index_d$1_ProjectInCollectionProjectOrderInCollectionUpdatedEnvelope as ProjectInCollectionProjectOrderInCollectionUpdatedEnvelope, type index_d$1_ProjectInCollectionsQueryBuilder as ProjectInCollectionsQueryBuilder, type index_d$1_ProjectInCollectionsQueryResult as ProjectInCollectionsQueryResult, type index_d$1_ProjectOrderInCollectionUpdatedEvent as ProjectOrderInCollectionUpdatedEvent, type index_d$1_ProjectSource as ProjectSource, type index_d$1_QueryProjectInCollectionsOptions as QueryProjectInCollectionsOptions, type index_d$1_QueryProjectInCollectionsRequest as QueryProjectInCollectionsRequest, type index_d$1_QueryProjectInCollectionsResponse as QueryProjectInCollectionsResponse, type index_d$1_QueryProjectInCollectionsResponseNonNullableFields as QueryProjectInCollectionsResponseNonNullableFields, type index_d$1_QueryV2 as QueryV2, type index_d$1_QueryV2PagingMethodOneOf as QueryV2PagingMethodOneOf, type RestoreInfo$1 as RestoreInfo, type index_d$1_SeoSchema as SeoSchema, type index_d$1_Settings as Settings, index_d$1_SortOrder as SortOrder, type index_d$1_Sorting as Sorting, SyncStatus$1 as SyncStatus, type index_d$1_Tag as Tag, type index_d$1_UnsharpMasking as UnsharpMasking, type index_d$1_UpdateProjectOrderInCollectionIdentifiers as UpdateProjectOrderInCollectionIdentifiers, type index_d$1_UpdateProjectOrderInCollectionRequest as UpdateProjectOrderInCollectionRequest, type index_d$1_UpdateProjectOrderInCollectionResponse as UpdateProjectOrderInCollectionResponse, type index_d$1_UpdateProjectOrderInCollectionResponseNonNullableFields as UpdateProjectOrderInCollectionResponseNonNullableFields, type index_d$1_Video as Video, type index_d$1_VideoResolution as VideoResolution, WebhookIdentityType$1 as WebhookIdentityType, type index_d$1__publicOnProjectInCollectionProjectOrderInCollectionUpdatedEventType as _publicOnProjectInCollectionProjectOrderInCollectionUpdatedEventType, index_d$1_onProjectInCollectionProjectOrderInCollectionUpdatedEvent as onProjectInCollectionProjectOrderInCollectionUpdatedEvent, onProjectInCollectionProjectOrderInCollectionUpdatedEvent$1 as publicOnProjectInCollectionProjectOrderInCollectionUpdatedEvent, index_d$1_queryProjectInCollections as queryProjectInCollections, index_d$1_updateProjectOrderInCollection as updateProjectOrderInCollection };
4190
6253
  }
4191
6254
 
6255
+ type HostModule<T, H extends Host> = {
6256
+ __type: 'host';
6257
+ create(host: H): T;
6258
+ };
6259
+ type HostModuleAPI<T extends HostModule<any, any>> = T extends HostModule<infer U, any> ? U : never;
6260
+ type Host<Environment = unknown> = {
6261
+ channel: {
6262
+ observeState(callback: (props: unknown, environment: Environment) => unknown): {
6263
+ disconnect: () => void;
6264
+ } | Promise<{
6265
+ disconnect: () => void;
6266
+ }>;
6267
+ };
6268
+ environment?: Environment;
6269
+ /**
6270
+ * Optional bast url to use for API requests, for example `www.wixapis.com`
6271
+ */
6272
+ apiBaseUrl?: string;
6273
+ /**
6274
+ * Possible data to be provided by every host, for cross cutting concerns
6275
+ * like internationalization, billing, etc.
6276
+ */
6277
+ essentials?: {
6278
+ /**
6279
+ * The language of the currently viewed session
6280
+ */
6281
+ language?: string;
6282
+ /**
6283
+ * The locale of the currently viewed session
6284
+ */
6285
+ locale?: string;
6286
+ /**
6287
+ * Any headers that should be passed through to the API requests
6288
+ */
6289
+ passThroughHeaders?: Record<string, string>;
6290
+ };
6291
+ };
6292
+
6293
+ type RESTFunctionDescriptor<T extends (...args: any[]) => any = (...args: any[]) => any> = (httpClient: HttpClient) => T;
6294
+ interface HttpClient {
6295
+ request<TResponse, TData = any>(req: RequestOptionsFactory<TResponse, TData>): Promise<HttpResponse<TResponse>>;
6296
+ fetchWithAuth: typeof fetch;
6297
+ wixAPIFetch: (relativeUrl: string, options: RequestInit) => Promise<Response>;
6298
+ getActiveToken?: () => string | undefined;
6299
+ }
6300
+ type RequestOptionsFactory<TResponse = any, TData = any> = (context: any) => RequestOptions<TResponse, TData>;
6301
+ type HttpResponse<T = any> = {
6302
+ data: T;
6303
+ status: number;
6304
+ statusText: string;
6305
+ headers: any;
6306
+ request?: any;
6307
+ };
6308
+ type RequestOptions<_TResponse = any, Data = any> = {
6309
+ method: 'POST' | 'GET' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';
6310
+ url: string;
6311
+ data?: Data;
6312
+ params?: URLSearchParams;
6313
+ } & APIMetadata;
6314
+ type APIMetadata = {
6315
+ methodFqn?: string;
6316
+ entityFqdn?: string;
6317
+ packageName?: string;
6318
+ };
6319
+ type BuildRESTFunction<T extends RESTFunctionDescriptor> = T extends RESTFunctionDescriptor<infer U> ? U : never;
6320
+ type EventDefinition<Payload = unknown, Type extends string = string> = {
6321
+ __type: 'event-definition';
6322
+ type: Type;
6323
+ isDomainEvent?: boolean;
6324
+ transformations?: (envelope: unknown) => Payload;
6325
+ __payload: Payload;
6326
+ };
6327
+ declare function EventDefinition<Type extends string>(type: Type, isDomainEvent?: boolean, transformations?: (envelope: any) => unknown): <Payload = unknown>() => EventDefinition<Payload, Type>;
6328
+ type EventHandler<T extends EventDefinition> = (payload: T['__payload']) => void | Promise<void>;
6329
+ type BuildEventDefinition<T extends EventDefinition<any, string>> = (handler: EventHandler<T>) => void;
6330
+
6331
+ type ServicePluginMethodInput = {
6332
+ request: any;
6333
+ metadata: any;
6334
+ };
6335
+ type ServicePluginContract = Record<string, (payload: ServicePluginMethodInput) => unknown | Promise<unknown>>;
6336
+ type ServicePluginMethodMetadata = {
6337
+ name: string;
6338
+ primaryHttpMappingPath: string;
6339
+ transformations: {
6340
+ fromREST: (...args: unknown[]) => ServicePluginMethodInput;
6341
+ toREST: (...args: unknown[]) => unknown;
6342
+ };
6343
+ };
6344
+ type ServicePluginDefinition<Contract extends ServicePluginContract> = {
6345
+ __type: 'service-plugin-definition';
6346
+ componentType: string;
6347
+ methods: ServicePluginMethodMetadata[];
6348
+ __contract: Contract;
6349
+ };
6350
+ declare function ServicePluginDefinition<Contract extends ServicePluginContract>(componentType: string, methods: ServicePluginMethodMetadata[]): ServicePluginDefinition<Contract>;
6351
+ type BuildServicePluginDefinition<T extends ServicePluginDefinition<any>> = (implementation: T['__contract']) => void;
6352
+ declare const SERVICE_PLUGIN_ERROR_TYPE = "wix_spi_error";
6353
+
6354
+ type RequestContext = {
6355
+ isSSR: boolean;
6356
+ host: string;
6357
+ protocol?: string;
6358
+ };
6359
+ type ResponseTransformer = (data: any, headers?: any) => any;
6360
+ /**
6361
+ * Ambassador request options types are copied mostly from AxiosRequestConfig.
6362
+ * They are copied and not imported to reduce the amount of dependencies (to reduce install time).
6363
+ * https://github.com/axios/axios/blob/3f53eb6960f05a1f88409c4b731a40de595cb825/index.d.ts#L307-L315
6364
+ */
6365
+ type Method = 'get' | 'GET' | 'delete' | 'DELETE' | 'head' | 'HEAD' | 'options' | 'OPTIONS' | 'post' | 'POST' | 'put' | 'PUT' | 'patch' | 'PATCH' | 'purge' | 'PURGE' | 'link' | 'LINK' | 'unlink' | 'UNLINK';
6366
+ type AmbassadorRequestOptions<T = any> = {
6367
+ _?: T;
6368
+ url?: string;
6369
+ method?: Method;
6370
+ params?: any;
6371
+ data?: any;
6372
+ transformResponse?: ResponseTransformer | ResponseTransformer[];
6373
+ };
6374
+ type AmbassadorFactory<Request, Response> = (payload: Request) => ((context: RequestContext) => AmbassadorRequestOptions<Response>) & {
6375
+ __isAmbassador: boolean;
6376
+ };
6377
+ type AmbassadorFunctionDescriptor<Request = any, Response = any> = AmbassadorFactory<Request, Response>;
6378
+ type BuildAmbassadorFunction<T extends AmbassadorFunctionDescriptor> = T extends AmbassadorFunctionDescriptor<infer Request, infer Response> ? (req: Request) => Promise<Response> : never;
6379
+
6380
+ declare global {
6381
+ // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
6382
+ interface SymbolConstructor {
6383
+ readonly observable: symbol;
6384
+ }
6385
+ }
6386
+
6387
+ declare const emptyObjectSymbol: unique symbol;
6388
+
6389
+ /**
6390
+ Represents a strictly empty plain object, the `{}` value.
6391
+
6392
+ When you annotate something as the type `{}`, it can be anything except `null` and `undefined`. This means that you cannot use `{}` to represent an empty plain object ([read more](https://stackoverflow.com/questions/47339869/typescript-empty-object-and-any-difference/52193484#52193484)).
6393
+
6394
+ @example
6395
+ ```
6396
+ import type {EmptyObject} from 'type-fest';
6397
+
6398
+ // The following illustrates the problem with `{}`.
6399
+ const foo1: {} = {}; // Pass
6400
+ const foo2: {} = []; // Pass
6401
+ const foo3: {} = 42; // Pass
6402
+ const foo4: {} = {a: 1}; // Pass
6403
+
6404
+ // With `EmptyObject` only the first case is valid.
6405
+ const bar1: EmptyObject = {}; // Pass
6406
+ const bar2: EmptyObject = 42; // Fail
6407
+ const bar3: EmptyObject = []; // Fail
6408
+ const bar4: EmptyObject = {a: 1}; // Fail
6409
+ ```
6410
+
6411
+ Unfortunately, `Record<string, never>`, `Record<keyof any, never>` and `Record<never, never>` do not work. See {@link https://github.com/sindresorhus/type-fest/issues/395 #395}.
6412
+
6413
+ @category Object
6414
+ */
6415
+ type EmptyObject = {[emptyObjectSymbol]?: never};
6416
+
6417
+ /**
6418
+ Returns a boolean for whether the two given types are equal.
6419
+
6420
+ @link https://github.com/microsoft/TypeScript/issues/27024#issuecomment-421529650
6421
+ @link https://stackoverflow.com/questions/68961864/how-does-the-equals-work-in-typescript/68963796#68963796
6422
+
6423
+ Use-cases:
6424
+ - If you want to make a conditional branch based on the result of a comparison of two types.
6425
+
6426
+ @example
6427
+ ```
6428
+ import type {IsEqual} from 'type-fest';
6429
+
6430
+ // This type returns a boolean for whether the given array includes the given item.
6431
+ // `IsEqual` is used to compare the given array at position 0 and the given item and then return true if they are equal.
6432
+ type Includes<Value extends readonly any[], Item> =
6433
+ Value extends readonly [Value[0], ...infer rest]
6434
+ ? IsEqual<Value[0], Item> extends true
6435
+ ? true
6436
+ : Includes<rest, Item>
6437
+ : false;
6438
+ ```
6439
+
6440
+ @category Type Guard
6441
+ @category Utilities
6442
+ */
6443
+ type IsEqual<A, B> =
6444
+ (<G>() => G extends A ? 1 : 2) extends
6445
+ (<G>() => G extends B ? 1 : 2)
6446
+ ? true
6447
+ : false;
6448
+
6449
+ /**
6450
+ Filter out keys from an object.
6451
+
6452
+ Returns `never` if `Exclude` is strictly equal to `Key`.
6453
+ Returns `never` if `Key` extends `Exclude`.
6454
+ Returns `Key` otherwise.
6455
+
6456
+ @example
6457
+ ```
6458
+ type Filtered = Filter<'foo', 'foo'>;
6459
+ //=> never
6460
+ ```
6461
+
6462
+ @example
6463
+ ```
6464
+ type Filtered = Filter<'bar', string>;
6465
+ //=> never
6466
+ ```
6467
+
6468
+ @example
6469
+ ```
6470
+ type Filtered = Filter<'bar', 'foo'>;
6471
+ //=> 'bar'
6472
+ ```
6473
+
6474
+ @see {Except}
6475
+ */
6476
+ type Filter<KeyType, ExcludeType> = IsEqual<KeyType, ExcludeType> extends true ? never : (KeyType extends ExcludeType ? never : KeyType);
6477
+
6478
+ type ExceptOptions = {
6479
+ /**
6480
+ Disallow assigning non-specified properties.
6481
+
6482
+ Note that any omitted properties in the resulting type will be present in autocomplete as `undefined`.
6483
+
6484
+ @default false
6485
+ */
6486
+ requireExactProps?: boolean;
6487
+ };
6488
+
6489
+ /**
6490
+ Create a type from an object type without certain keys.
6491
+
6492
+ We recommend setting the `requireExactProps` option to `true`.
6493
+
6494
+ This type is a stricter version of [`Omit`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-5.html#the-omit-helper-type). The `Omit` type does not restrict the omitted keys to be keys present on the given type, while `Except` does. The benefits of a stricter type are avoiding typos and allowing the compiler to pick up on rename refactors automatically.
6495
+
6496
+ This type was proposed to the TypeScript team, which declined it, saying they prefer that libraries implement stricter versions of the built-in types ([microsoft/TypeScript#30825](https://github.com/microsoft/TypeScript/issues/30825#issuecomment-523668235)).
6497
+
6498
+ @example
6499
+ ```
6500
+ import type {Except} from 'type-fest';
6501
+
6502
+ type Foo = {
6503
+ a: number;
6504
+ b: string;
6505
+ };
6506
+
6507
+ type FooWithoutA = Except<Foo, 'a'>;
6508
+ //=> {b: string}
6509
+
6510
+ const fooWithoutA: FooWithoutA = {a: 1, b: '2'};
6511
+ //=> errors: 'a' does not exist in type '{ b: string; }'
6512
+
6513
+ type FooWithoutB = Except<Foo, 'b', {requireExactProps: true}>;
6514
+ //=> {a: number} & Partial<Record<"b", never>>
6515
+
6516
+ const fooWithoutB: FooWithoutB = {a: 1, b: '2'};
6517
+ //=> errors at 'b': Type 'string' is not assignable to type 'undefined'.
6518
+ ```
6519
+
6520
+ @category Object
6521
+ */
6522
+ type Except<ObjectType, KeysType extends keyof ObjectType, Options extends ExceptOptions = {requireExactProps: false}> = {
6523
+ [KeyType in keyof ObjectType as Filter<KeyType, KeysType>]: ObjectType[KeyType];
6524
+ } & (Options['requireExactProps'] extends true
6525
+ ? Partial<Record<KeysType, never>>
6526
+ : {});
6527
+
6528
+ /**
6529
+ Extract the keys from a type where the value type of the key extends the given `Condition`.
6530
+
6531
+ Internally this is used for the `ConditionalPick` and `ConditionalExcept` types.
6532
+
6533
+ @example
6534
+ ```
6535
+ import type {ConditionalKeys} from 'type-fest';
6536
+
6537
+ interface Example {
6538
+ a: string;
6539
+ b: string | number;
6540
+ c?: string;
6541
+ d: {};
6542
+ }
6543
+
6544
+ type StringKeysOnly = ConditionalKeys<Example, string>;
6545
+ //=> 'a'
6546
+ ```
6547
+
6548
+ To support partial types, make sure your `Condition` is a union of undefined (for example, `string | undefined`) as demonstrated below.
6549
+
6550
+ @example
6551
+ ```
6552
+ import type {ConditionalKeys} from 'type-fest';
6553
+
6554
+ type StringKeysAndUndefined = ConditionalKeys<Example, string | undefined>;
6555
+ //=> 'a' | 'c'
6556
+ ```
6557
+
6558
+ @category Object
6559
+ */
6560
+ type ConditionalKeys<Base, Condition> = NonNullable<
6561
+ // Wrap in `NonNullable` to strip away the `undefined` type from the produced union.
6562
+ {
6563
+ // Map through all the keys of the given base type.
6564
+ [Key in keyof Base]:
6565
+ // Pick only keys with types extending the given `Condition` type.
6566
+ Base[Key] extends Condition
6567
+ // Retain this key since the condition passes.
6568
+ ? Key
6569
+ // Discard this key since the condition fails.
6570
+ : never;
6571
+
6572
+ // Convert the produced object into a union type of the keys which passed the conditional test.
6573
+ }[keyof Base]
6574
+ >;
6575
+
6576
+ /**
6577
+ Exclude keys from a shape that matches the given `Condition`.
6578
+
6579
+ This is useful when you want to create a new type with a specific set of keys from a shape. For example, you might want to exclude all the primitive properties from a class and form a new shape containing everything but the primitive properties.
6580
+
6581
+ @example
6582
+ ```
6583
+ import type {Primitive, ConditionalExcept} from 'type-fest';
6584
+
6585
+ class Awesome {
6586
+ name: string;
6587
+ successes: number;
6588
+ failures: bigint;
6589
+
6590
+ run() {}
6591
+ }
6592
+
6593
+ type ExceptPrimitivesFromAwesome = ConditionalExcept<Awesome, Primitive>;
6594
+ //=> {run: () => void}
6595
+ ```
6596
+
6597
+ @example
6598
+ ```
6599
+ import type {ConditionalExcept} from 'type-fest';
6600
+
6601
+ interface Example {
6602
+ a: string;
6603
+ b: string | number;
6604
+ c: () => void;
6605
+ d: {};
6606
+ }
6607
+
6608
+ type NonStringKeysOnly = ConditionalExcept<Example, string>;
6609
+ //=> {b: string | number; c: () => void; d: {}}
6610
+ ```
6611
+
6612
+ @category Object
6613
+ */
6614
+ type ConditionalExcept<Base, Condition> = Except<
6615
+ Base,
6616
+ ConditionalKeys<Base, Condition>
6617
+ >;
6618
+
6619
+ /**
6620
+ * Descriptors are objects that describe the API of a module, and the module
6621
+ * can either be a REST module or a host module.
6622
+ * This type is recursive, so it can describe nested modules.
6623
+ */
6624
+ type Descriptors = RESTFunctionDescriptor | AmbassadorFunctionDescriptor | HostModule<any, any> | EventDefinition<any> | ServicePluginDefinition<any> | {
6625
+ [key: string]: Descriptors | PublicMetadata | any;
6626
+ };
6627
+ /**
6628
+ * This type takes in a descriptors object of a certain Host (including an `unknown` host)
6629
+ * and returns an object with the same structure, but with all descriptors replaced with their API.
6630
+ * Any non-descriptor properties are removed from the returned object, including descriptors that
6631
+ * do not match the given host (as they will not work with the given host).
6632
+ */
6633
+ type BuildDescriptors<T extends Descriptors, H extends Host<any> | undefined, Depth extends number = 5> = {
6634
+ done: T;
6635
+ recurse: T extends {
6636
+ __type: typeof SERVICE_PLUGIN_ERROR_TYPE;
6637
+ } ? never : T extends AmbassadorFunctionDescriptor ? BuildAmbassadorFunction<T> : T extends RESTFunctionDescriptor ? BuildRESTFunction<T> : T extends EventDefinition<any> ? BuildEventDefinition<T> : T extends ServicePluginDefinition<any> ? BuildServicePluginDefinition<T> : T extends HostModule<any, any> ? HostModuleAPI<T> : ConditionalExcept<{
6638
+ [Key in keyof T]: T[Key] extends Descriptors ? BuildDescriptors<T[Key], H, [
6639
+ -1,
6640
+ 0,
6641
+ 1,
6642
+ 2,
6643
+ 3,
6644
+ 4,
6645
+ 5
6646
+ ][Depth]> : never;
6647
+ }, EmptyObject>;
6648
+ }[Depth extends -1 ? 'done' : 'recurse'];
6649
+ type PublicMetadata = {
6650
+ PACKAGE_NAME?: string;
6651
+ };
6652
+
6653
+ declare global {
6654
+ interface ContextualClient {
6655
+ }
6656
+ }
6657
+ /**
6658
+ * A type used to create concerete types from SDK descriptors in
6659
+ * case a contextual client is available.
6660
+ */
6661
+ type MaybeContext<T extends Descriptors> = globalThis.ContextualClient extends {
6662
+ host: Host;
6663
+ } ? BuildDescriptors<T, globalThis.ContextualClient['host']> : T;
6664
+
4192
6665
  interface SyncedProject {
4193
6666
  /** Project ID in Portfolio - if project was yet to be create, will be None */
4194
6667
  portfolioProjectId?: string | null;
@@ -4872,11 +7345,11 @@ interface GetLoginRedirectableUrlSignature {
4872
7345
  (appDefId: string): Promise<GetLoginRedirectableUrlResponse & GetLoginRedirectableUrlResponseNonNullableFields>;
4873
7346
  }
4874
7347
 
4875
- declare const getProjects: BuildRESTFunction<typeof getProjects$1> & typeof getProjects$1;
4876
- declare const syncProject: BuildRESTFunction<typeof syncProject$1> & typeof syncProject$1;
4877
- declare const getSyncStatus: BuildRESTFunction<typeof getSyncStatus$1> & typeof getSyncStatus$1;
4878
- declare const stopSync: BuildRESTFunction<typeof stopSync$1> & typeof stopSync$1;
4879
- declare const getLoginRedirectableUrl: BuildRESTFunction<typeof getLoginRedirectableUrl$1> & typeof getLoginRedirectableUrl$1;
7348
+ declare const getProjects: MaybeContext<BuildRESTFunction<typeof getProjects$1> & typeof getProjects$1>;
7349
+ declare const syncProject: MaybeContext<BuildRESTFunction<typeof syncProject$1> & typeof syncProject$1>;
7350
+ declare const getSyncStatus: MaybeContext<BuildRESTFunction<typeof getSyncStatus$1> & typeof getSyncStatus$1>;
7351
+ declare const stopSync: MaybeContext<BuildRESTFunction<typeof stopSync$1> & typeof stopSync$1>;
7352
+ declare const getLoginRedirectableUrl: MaybeContext<BuildRESTFunction<typeof getLoginRedirectableUrl$1> & typeof getLoginRedirectableUrl$1>;
4880
7353
 
4881
7354
  type index_d_ActionEvent = ActionEvent;
4882
7355
  type index_d_Asset = Asset;