twenty-client-sdk 2.49.0 → 2.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/application-runtime-ChCYK0LL.mjs +4 -0
- package/dist/application-runtime-D8WlTvVU.js +1 -0
- package/dist/chunk-DWNI8pZO.js +1 -0
- package/dist/core.cjs +1 -1
- package/dist/core.mjs +11 -5
- package/dist/generate.cjs +4 -4
- package/dist/generate.mjs +2 -2
- package/dist/metadata/generated/schema.d.ts +63 -4
- package/dist/metadata/generated/types.d.ts +27 -0
- package/dist/metadata.cjs +2 -2
- package/dist/metadata.mjs +3001 -2965
- package/dist/rest.cjs +1 -1
- package/dist/rest.mjs +10 -10
- package/package.json +1 -1
- package/dist/application-BDz3e_S2.mjs +0 -59278
- package/dist/application-k13CQDdV.js +0 -60
- package/dist/chunk-Dqa2HsxW.mjs +0 -20
- package/dist/chunk-mLOUI7ql.js +0 -1
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
//#region ../twenty-shared/dist/application-runtime.mjs
|
|
2
|
+
var e = "TWENTY_API_KEY", t = "TWENTY_API_URL", n = "TWENTY_APP_ACCESS_TOKEN", r = "TWENTY_APP_APPLICATION_ACCESS_TOKEN", i = "TWENTY_FUNCTIONS_URL";
|
|
3
|
+
//#endregion
|
|
4
|
+
export { e as a, n as i, r as n, t as r, i as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`TWENTY_API_KEY`,t=`TWENTY_API_URL`,n=`TWENTY_APP_ACCESS_TOKEN`,r=`TWENTY_APP_APPLICATION_ACCESS_TOKEN`,i=`TWENTY_FUNCTIONS_URL`;Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return o}});
|
package/dist/core.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./chunk-
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./chunk-DWNI8pZO.js");var t=class{constructor(e){throw Error("CoreApiClient was not generated. Install this app on a Twenty instance or run `yarn twenty dev`.")}},n=e.t({});exports.CoreApiClient=t,Object.defineProperty(exports,"CoreSchema",{enumerable:!0,get:function(){return n}});
|
package/dist/core.mjs
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var e = Object.defineProperty, t = (t, n) => {
|
|
3
|
+
let r = {};
|
|
4
|
+
for (var i in t) e(r, i, {
|
|
5
|
+
get: t[i],
|
|
6
|
+
enumerable: !0
|
|
7
|
+
});
|
|
8
|
+
return n || e(r, Symbol.toStringTag, { value: "Module" }), r;
|
|
9
|
+
}, n = class {
|
|
4
10
|
constructor(e) {
|
|
5
11
|
throw Error("CoreApiClient was not generated. Install this app on a Twenty instance or run `yarn twenty dev`.");
|
|
6
12
|
}
|
|
7
|
-
},
|
|
13
|
+
}, r = /* @__PURE__ */ t({});
|
|
8
14
|
//#endregion
|
|
9
|
-
export {
|
|
15
|
+
export { n as CoreApiClient, r as CoreSchema };
|
package/dist/generate.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./chunk-
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./chunk-DWNI8pZO.js"),t=require("./application-runtime-D8WlTvVU.js");let n=require("node:fs/promises"),r=require("node:path"),i=require("esbuild"),a=require("graphql"),o=require("lodash/camelCase.js");o=e.n(o);let s=require("node:fs"),c=require("node:os"),l=require("prettier/standalone");l=e.n(l);let u=require("prettier/plugins/graphql");u=e.n(u);let d=require("prettier/plugins/typescript");d=e.n(d);let f=require("prettier/plugins/estree");f=e.n(f);let p=require("lodash/uniq.js");p=e.n(p);let ee=require("node:url");var te=`// __STRIPPED_DURING_INJECTION_START__`,ne=`// __STRIPPED_DURING_INJECTION_END__`,m=`// __UPLOAD_FILE_START__`,h=`// __UPLOAD_FILE_END__`,g=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),_=(e,t)=>{let n=e;return n=n.replace(RegExp(`${g(te)}[\\s\\S]*?${g(ne)}\\n?`),``),n=n.replace(`'__TWENTY_DEFAULT_URL__'`,t.defaultUrl),n=n.replace(/TwentyGeneratedClient/g,t.apiClientName),t.includeUploadFile?(n=n.replace(RegExp(`\\s*${g(m)}\\n`),`
|
|
2
2
|
`),n=n.replace(RegExp(`\\s*${g(h)}\\n`),`
|
|
3
3
|
`)):n=n.replace(RegExp(`\\s*${g(m)}[\\s\\S]*?${g(h)}\\n?`),`
|
|
4
4
|
`),`\n// ${t.apiClientName} (auto-injected by twenty-client-sdk)\n${n}`},v=e=>(0,n.mkdir)(e,{recursive:!0}),y=async e=>{let t;try{t=await(0,n.readdir)(e)}catch(t){if(t instanceof Error&&`code`in t&&t.code===`ENOENT`){await(0,n.mkdir)(e,{recursive:!0});return}throw t}await Promise.all(t.map(t=>(0,n.rm)((0,r.join)(e,t),{recursive:!0,force:!0})))},b=async(e,t)=>{try{await(0,n.rename)(e,t)}catch(r){if(r instanceof Error&&`code`in r&&r.code===`EXDEV`)await(0,n.cp)(e,t,{recursive:!0}),await(0,n.rm)(e,{recursive:!0,force:!0});else throw r}},x=e=>(0,n.rm)(e,{recursive:!0,force:!0}),re=e=>{let{root:t}=(0,r.parse)(e),n=e.slice(t.length).split(/[\\/]/).filter(Boolean).length,i=(0,r.resolve)((0,c.homedir)()),a=e===i||i.startsWith(`${e}/`);if(e===t||n<2||a)throw Error(`Refusing to recursively clear unsafe path: ${e}`)},S=async(e,t=!1)=>{let n=(0,r.resolve)(...e);t&&(re(n),await s.promises.rm(n,{recursive:!0,force:!0})),await s.promises.mkdir(n,{recursive:!0})},C=async(e,t)=>{let n=(0,r.resolve)(...e,`..`);await s.promises.mkdir(n,{recursive:!0}),await s.promises.writeFile((0,r.resolve)(...e),t)},w=`./runtime`,T=e=>e?`${e.name}GenqlSelection`:``,ie=e=>{let t=e.config?.endpoint?`"${e.config.endpoint}"`:`undefined`,n=e.config?.fetchImport;return`
|
|
@@ -1091,7 +1091,7 @@ export interface LinkedTypeMap {
|
|
|
1091
1091
|
`)+`
|
|
1092
1092
|
}
|
|
1093
1093
|
`).join(`
|
|
1094
|
-
`))}var Ie=async e=>{if(!e.schema)throw Error("`schema` must be defined in the config");let t=(0,a.buildSchema)(e.schema,{assumeValidSDL:!0}),n=e.sortProperties?(0,a.lexicographicSortSchema)(t):t;return n.getQueryType()&&(0,a.assertValidSchema)(n),n},Z=async e=>{if(!e.output)throw Error("`output` must be defined in the config");await Pe(e,await Ie(e))},Le={DateTime:`string`,JSON:`
|
|
1094
|
+
`))}var Ie=async e=>{if(!e.schema)throw Error("`schema` must be defined in the config");let t=(0,a.buildSchema)(e.schema,{assumeValidSDL:!0}),n=e.sortProperties?(0,a.lexicographicSortSchema)(t):t;return n.getQueryType()&&(0,a.assertValidSchema)(n),n},Z=async e=>{if(!e.output)throw Error("`output` must be defined in the config");await Pe(e,await Ie(e))},Le={DateTime:`string`,JSON:`unknown`,UUID:`string`},Q=`core/generated`,$=async({schema:e,outputPath:i,clientWrapperTemplateSource:a})=>{let o=a??`import type { TwentyClientRunAs } from '../shared/twenty-client-run-as.type';
|
|
1095
1095
|
|
|
1096
1096
|
// Ambient stubs for the genql-generated code this template is injected into.
|
|
1097
1097
|
// __STRIPPED_DURING_INJECTION_START__
|
|
@@ -1585,7 +1585,7 @@ export class TwentyGeneratedClient {
|
|
|
1585
1585
|
processEnvironment[APP_ACCESS_TOKEN_ENV_KEY] = token;
|
|
1586
1586
|
}
|
|
1587
1587
|
}
|
|
1588
|
-
`,s=`${i}.tmp`;await v(s),await y(s);try{await Z({schema:e,output:s,scalarTypes:Le});let a=_(o,{apiClientName:`CoreApiClient`,defaultUrl:`\`\${process.env.${t.
|
|
1588
|
+
`,s=`${i}.tmp`;await v(s),await y(s);try{await Z({schema:e,output:s,scalarTypes:Le});let a=_(o,{apiClientName:`CoreApiClient`,defaultUrl:`\`\${process.env.${t.r}}/graphql\``,includeUploadFile:!0});await(0,n.appendFile)((0,r.join)(s,`index.ts`),a),await x(i),await b(s,i),await ze(i)}catch(e){throw await x(s),e}},Re=async({packageRoot:e,schema:t})=>{let i=(0,r.join)(e,`dist`,Q);await $({schema:t,outputPath:i}),await(0,n.copyFile)((0,r.join)(i,`index.mjs`),(0,r.join)(e,`dist`,`core.mjs`)),await(0,n.copyFile)((0,r.join)(i,`index.cjs`),(0,r.join)(e,`dist`,`core.cjs`))},ze=async e=>{let t=(0,r.join)(e,`index.ts`),a=(0,r.join)(e,`index.mjs`);await(0,i.build)({entryPoints:[t],outfile:a,bundle:!0,format:`esm`,platform:`node`,target:`node18`,sourcemap:!1,minify:!1}),await(0,i.build)({entryPoints:[t],outfile:(0,r.join)(e,`index.cjs`),bundle:!0,format:`cjs`,platform:`node`,target:`node18`,sourcemap:!1,minify:!1}),await(0,n.writeFile)((0,r.join)(e,`package.json`),JSON.stringify({type:`module`,main:`index.mjs`,module:`index.mjs`},null,2))},Be={DateTime:`string`,JSON:`Record<string, unknown>`,UUID:`string`},Ve=async({schema:e,outputPath:i,clientWrapperTemplateSource:a})=>{let o=a??`import type { TwentyClientRunAs } from '../shared/twenty-client-run-as.type';
|
|
1589
1589
|
|
|
1590
1590
|
// Ambient stubs for the genql-generated code this template is injected into.
|
|
1591
1591
|
// __STRIPPED_DURING_INJECTION_START__
|
|
@@ -2079,4 +2079,4 @@ export class TwentyGeneratedClient {
|
|
|
2079
2079
|
processEnvironment[APP_ACCESS_TOKEN_ENV_KEY] = token;
|
|
2080
2080
|
}
|
|
2081
2081
|
}
|
|
2082
|
-
`;await v(i),await y(i),await Z({schema:e,output:i,scalarTypes:{...Be,Upload:`File`}});let s=_(o,{apiClientName:`MetadataApiClient`,defaultUrl:`\`\${process.env.${t.
|
|
2082
|
+
`;await v(i),await y(i),await Z({schema:e,output:i,scalarTypes:{...Be,Upload:`File`}});let s=_(o,{apiClientName:`MetadataApiClient`,defaultUrl:`\`\${process.env.${t.r}}/metadata\``,includeUploadFile:!0});await(0,n.appendFile)((0,r.join)(i,`index.ts`),s)};exports.GENERATED_CORE_DIR=Q,exports.generateCoreClientFromSchema=$,exports.generateMetadataClient=Ve,exports.replaceCoreClient=Re;
|
package/dist/generate.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { r as e } from "./application-runtime-ChCYK0LL.mjs";
|
|
2
2
|
import { appendFile as t, copyFile as n, cp as r, mkdir as i, readdir as a, rename as o, rm as s, writeFile as c } from "node:fs/promises";
|
|
3
3
|
import { dirname as l, join as u, parse as ee, relative as d, resolve as f } from "node:path";
|
|
4
4
|
import { build as p } from "esbuild";
|
|
@@ -519,7 +519,7 @@ var ot = async (e) => {
|
|
|
519
519
|
await it(e, await ot(e));
|
|
520
520
|
}, st = {
|
|
521
521
|
DateTime: "string",
|
|
522
|
-
JSON: "
|
|
522
|
+
JSON: "unknown",
|
|
523
523
|
UUID: "string"
|
|
524
524
|
}, Q = "core/generated", $ = async ({ schema: n, outputPath: r, clientWrapperTemplateSource: i }) => {
|
|
525
525
|
let a = i ?? "import type { TwentyClientRunAs } from '../shared/twenty-client-run-as.type';\n\n// Ambient stubs for the genql-generated code this template is injected into.\n// __STRIPPED_DURING_INJECTION_START__\ntype QueryGenqlSelection = Record<string, unknown>;\ntype MutationGenqlSelection = Record<string, unknown>;\ntype GraphqlOperation = Record<string, unknown>;\n\ntype ClientOptions = Omit<RequestInit, 'body' | 'headers'> & {\n url?: string;\n headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n fetcher?: (\n operation: GraphqlOperation | GraphqlOperation[],\n ) => Promise<unknown>;\n fetch?: typeof globalThis.fetch;\n batch?: unknown;\n};\n\ntype Client = {\n query: (\n request: QueryGenqlSelection & { __name?: string },\n ) => Promise<unknown>;\n mutation: (\n request: MutationGenqlSelection & { __name?: string },\n ) => Promise<unknown>;\n};\n\ndeclare function createClient(options: ClientOptions): Client;\n\ndeclare class GenqlError extends Error {\n constructor(errors: unknown, data: unknown);\n}\n// __STRIPPED_DURING_INJECTION_END__\n\nconst APP_ACCESS_TOKEN_ENV_KEY = 'TWENTY_APP_ACCESS_TOKEN';\nconst APP_APPLICATION_ACCESS_TOKEN_ENV_KEY =\n 'TWENTY_APP_APPLICATION_ACCESS_TOKEN';\nconst API_KEY_ENV_KEY = 'TWENTY_API_KEY';\n\nexport type TwentyGeneratedClientOptions = ClientOptions & {\n runAs?: TwentyClientRunAs;\n};\n\ntype ProcessEnvironment = Record<string, string | undefined>;\n\ntype GraphqlErrorPayloadEntry = {\n message?: string;\n extensions?: { code?: string };\n};\n\ntype GraphqlResponsePayload = {\n data?: Record<string, unknown>;\n errors?: GraphqlErrorPayloadEntry[];\n};\n\ntype GraphqlResponse = {\n status: number;\n statusText: string;\n payload: GraphqlResponsePayload | null;\n rawBody: string;\n};\n\ntype FilesFieldUploadTarget = {\n fileId: string;\n uploadUrl: string;\n contentType: string;\n};\n\ntype FilesFieldUploadedFile = {\n id: string;\n path: string;\n size: number;\n createdAt: string;\n url: string;\n};\n\nconst getProcessEnvironment = (): ProcessEnvironment => {\n const processObject = (\n globalThis as { process?: { env?: ProcessEnvironment } }\n ).process;\n\n return processObject?.env ?? {};\n};\n\nconst getTokenFromAuthorizationHeader = (\n authorizationHeader: string | undefined,\n): string | null => {\n if (typeof authorizationHeader !== 'string') {\n return null;\n }\n\n const trimmedAuthorizationHeader = authorizationHeader.trim();\n\n if (trimmedAuthorizationHeader.length === 0) {\n return null;\n }\n\n if (trimmedAuthorizationHeader === 'Bearer') {\n return null;\n }\n\n if (trimmedAuthorizationHeader.startsWith('Bearer ')) {\n return trimmedAuthorizationHeader.slice('Bearer '.length).trim();\n }\n\n return trimmedAuthorizationHeader;\n};\n\nconst getTokenFromHeaders = (\n headers: HeadersInit | undefined,\n): string | null => {\n if (!headers) {\n return null;\n }\n\n if (headers instanceof Headers) {\n return getTokenFromAuthorizationHeader(\n headers.get('Authorization') ?? undefined,\n );\n }\n\n if (Array.isArray(headers)) {\n const matchedAuthorizationHeader = headers.find(\n ([headerName]) => headerName.toLowerCase() === 'authorization',\n );\n\n return getTokenFromAuthorizationHeader(matchedAuthorizationHeader?.[1]);\n }\n\n const headersRecord = headers as Record<string, string | undefined>;\n\n return getTokenFromAuthorizationHeader(\n headersRecord.Authorization ?? headersRecord.authorization,\n );\n};\n\nconst hasAuthenticationErrorInGraphqlPayload = (\n payload: GraphqlResponsePayload | null,\n): boolean => {\n if (!payload?.errors) {\n return false;\n }\n\n return payload.errors.some((graphqlError) => {\n return (\n graphqlError.extensions?.code === 'UNAUTHENTICATED' ||\n graphqlError.message?.toLowerCase() === 'unauthorized'\n );\n });\n};\n\nconst defaultOptions: TwentyGeneratedClientOptions = {\n url: '__TWENTY_DEFAULT_URL__',\n headers: {\n 'Content-Type': 'application/json',\n },\n};\n\nexport class TwentyGeneratedClient {\n private client: Client;\n private url: string;\n private requestOptions: RequestInit;\n private headers: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n private fetchImplementation: typeof globalThis.fetch | null;\n private authorizationToken: string | null;\n private refreshAccessTokenPromise: Promise<string | null> | null = null;\n\n constructor(options?: TwentyGeneratedClientOptions) {\n const merged: TwentyGeneratedClientOptions = {\n ...defaultOptions,\n ...options,\n };\n\n const {\n url,\n headers,\n fetch: customFetchImplementation,\n fetcher: _fetcher,\n batch: _batch,\n runAs,\n ...requestOptions\n } = merged;\n\n this.url = url ?? '';\n this.requestOptions = requestOptions;\n this.headers = headers ?? {};\n this.fetchImplementation =\n customFetchImplementation ?? globalThis.fetch ?? null;\n\n const processEnvironment = getProcessEnvironment();\n const tokenFromHeaders = getTokenFromHeaders(\n typeof headers === 'function' ? undefined : headers,\n );\n\n this.authorizationToken =\n tokenFromHeaders ??\n processEnvironment[\n runAs === 'application'\n ? APP_APPLICATION_ACCESS_TOKEN_ENV_KEY\n : APP_ACCESS_TOKEN_ENV_KEY\n ] ??\n processEnvironment[API_KEY_ENV_KEY] ??\n null;\n\n this.client = createClient({\n ...merged,\n headers: undefined,\n fetcher: async (operation) =>\n this.executeGraphqlRequestWithOptionalRefresh({\n operation,\n }),\n });\n }\n\n query<R extends QueryGenqlSelection>(request: R & { __name?: string }) {\n return this.client.query(request);\n }\n\n mutation<R extends MutationGenqlSelection>(request: R & { __name?: string }) {\n return this.client.mutation(request);\n }\n\n // __UPLOAD_FILE_START__\n async uploadFile({\n fileBuffer,\n filename,\n fieldMetadataUniversalIdentifier,\n }: {\n fileBuffer: Buffer;\n filename: string;\n fieldMetadataUniversalIdentifier: string;\n }): Promise<FilesFieldUploadedFile> {\n const { createFileUpload: uploadTarget } =\n await this.executeMutationOrThrow<{\n createFileUpload: FilesFieldUploadTarget;\n }>({\n query: `mutation CreateFilesFieldFileUpload($filename: String!, $size: Float!, $fieldMetadataUniversalIdentifier: String!) {\n createFileUpload(filename: $filename, size: $size, fileFolder: FilesField, fieldMetadataUniversalIdentifier: $fieldMetadataUniversalIdentifier) { fileId uploadUrl contentType }\n }`,\n variables: {\n filename,\n size: fileBuffer.byteLength,\n fieldMetadataUniversalIdentifier,\n },\n });\n\n await this.putFileToUploadTargetOrThrow({ fileBuffer, uploadTarget });\n\n const { completeFileUpload: uploadedFile } =\n await this.executeMutationOrThrow<{\n completeFileUpload: FilesFieldUploadedFile;\n }>({\n query: `mutation CompleteFilesFieldFileUpload($fileId: String!) {\n completeFileUpload(fileId: $fileId) { id path size createdAt url }\n }`,\n variables: { fileId: uploadTarget.fileId },\n });\n\n return uploadedFile;\n }\n\n private async putFileToUploadTargetOrThrow({\n fileBuffer,\n uploadTarget,\n }: {\n fileBuffer: Buffer;\n uploadTarget: FilesFieldUploadTarget;\n }): Promise<void> {\n const fetchImplementation = this.getFetchImplementationOrThrow();\n\n const response = await fetchImplementation.call(\n globalThis,\n uploadTarget.uploadUrl,\n {\n method: 'PUT',\n headers: { 'Content-Type': uploadTarget.contentType },\n body: fileBuffer as BodyInit,\n credentials: 'omit',\n },\n );\n\n if (!response.ok) {\n throw new Error(\n `File upload failed (${response.status} ${response.statusText}): ${await response.text()}`,\n );\n }\n }\n\n private async executeMutationOrThrow<TData>({\n query,\n variables,\n }: {\n query: string;\n variables: Record<string, unknown>;\n }): Promise<TData> {\n const result = await this.executeGraphqlRequestWithOptionalRefresh({\n operation: { query, variables },\n });\n\n if (result.errors) {\n throw new GenqlError(result.errors, result.data);\n }\n\n if (!result.data) {\n throw new Error('Empty GraphQL response');\n }\n\n return result.data as TData;\n }\n // __UPLOAD_FILE_END__\n\n private async executeGraphqlRequestWithOptionalRefresh({\n operation,\n headers,\n requestInit,\n }: {\n operation: GraphqlOperation | GraphqlOperation[] | FormData;\n headers?: HeadersInit;\n requestInit?: RequestInit;\n }) {\n const firstResponse = await this.executeGraphqlRequest({\n operation,\n headers,\n requestInit,\n token: this.authorizationToken,\n });\n\n if (this.shouldRefreshToken(firstResponse)) {\n const refreshedAccessToken = await this.requestRefreshedAccessToken();\n\n if (refreshedAccessToken) {\n const retryResponse = await this.executeGraphqlRequest({\n operation,\n headers,\n requestInit,\n token: refreshedAccessToken,\n });\n\n return this.assertResponseIsSuccessful(retryResponse);\n }\n }\n\n return this.assertResponseIsSuccessful(firstResponse);\n }\n\n private async executeGraphqlRequest({\n operation,\n headers,\n requestInit,\n token,\n }: {\n operation: GraphqlOperation | GraphqlOperation[] | FormData;\n headers?: HeadersInit;\n requestInit?: RequestInit;\n token: string | null;\n }): Promise<GraphqlResponse> {\n const fetchImplementation = this.getFetchImplementationOrThrow();\n\n const resolvedHeaders = await this.resolveHeaders();\n const requestHeaders = new Headers(resolvedHeaders);\n\n if (headers) {\n new Headers(headers).forEach((value, key) =>\n requestHeaders.set(key, value),\n );\n }\n\n if (operation instanceof FormData) {\n requestHeaders.delete('Content-Type');\n } else {\n requestHeaders.set('Content-Type', 'application/json');\n }\n\n if (token) {\n requestHeaders.set('Authorization', `Bearer ${token}`);\n } else {\n requestHeaders.delete('Authorization');\n }\n\n const response = await fetchImplementation.call(globalThis, this.url, {\n ...this.requestOptions,\n ...requestInit,\n method: requestInit?.method ?? 'POST',\n headers: requestHeaders,\n body:\n operation instanceof FormData ? operation : JSON.stringify(operation),\n });\n\n const rawBody = await response.text();\n let payload: GraphqlResponsePayload | null = null;\n\n if (rawBody.trim().length > 0) {\n try {\n payload = JSON.parse(rawBody) as GraphqlResponsePayload;\n } catch {\n payload = null;\n }\n }\n\n return {\n status: response.status,\n statusText: response.statusText,\n payload,\n rawBody,\n };\n }\n\n private getFetchImplementationOrThrow(): typeof globalThis.fetch {\n if (!this.fetchImplementation) {\n throw new Error(\n 'Global `fetch` function is not available, ' +\n 'pass a fetch implementation to the Twenty client',\n );\n }\n\n return this.fetchImplementation;\n }\n\n private async resolveHeaders(): Promise<HeadersInit> {\n if (typeof this.headers === 'function') {\n return (await this.headers()) ?? {};\n }\n\n return this.headers ?? {};\n }\n\n private shouldRefreshToken(response: GraphqlResponse): boolean {\n if (response.status === 401) {\n return true;\n }\n\n return hasAuthenticationErrorInGraphqlPayload(response.payload);\n }\n\n private assertResponseIsSuccessful(response: GraphqlResponse) {\n if (response.status < 200 || response.status >= 300) {\n throw new Error(`${response.statusText}: ${response.rawBody}`);\n }\n\n if (response.payload === null) {\n throw new Error('Invalid JSON response');\n }\n\n return response.payload;\n }\n\n private async requestRefreshedAccessToken(): Promise<string | null> {\n const refreshAccessTokenFunction = (\n globalThis as {\n frontComponentHostCommunicationApi?: {\n requestAccessTokenRefresh?: () => Promise<string>;\n };\n }\n ).frontComponentHostCommunicationApi?.requestAccessTokenRefresh;\n\n if (typeof refreshAccessTokenFunction !== 'function') {\n return null;\n }\n\n if (!this.refreshAccessTokenPromise) {\n this.refreshAccessTokenPromise = refreshAccessTokenFunction()\n .then((refreshedAccessToken) => {\n if (\n typeof refreshedAccessToken !== 'string' ||\n refreshedAccessToken.length === 0\n ) {\n return null;\n }\n\n this.setAuthorizationToken(refreshedAccessToken);\n\n return refreshedAccessToken;\n })\n .catch((refreshError: unknown) => {\n console.error('Twenty client: token refresh failed', refreshError);\n\n return null;\n })\n .finally(() => {\n this.refreshAccessTokenPromise = null;\n });\n }\n\n return this.refreshAccessTokenPromise;\n }\n\n private setAuthorizationToken(token: string) {\n this.authorizationToken = token;\n\n const processEnvironment = getProcessEnvironment();\n\n processEnvironment[APP_ACCESS_TOKEN_ENV_KEY] = token;\n }\n}\n", o = `${r}.tmp`;
|
|
@@ -386,6 +386,12 @@ export interface ApplicationHealthCheckResult {
|
|
|
386
386
|
__typename: 'ApplicationHealthCheckResult';
|
|
387
387
|
}
|
|
388
388
|
export type ApplicationHealthStatus = 'ERROR' | 'INFO' | 'NEUTRAL' | 'OK' | 'SUCCESS' | 'UNKNOWN' | 'WARNING';
|
|
389
|
+
export interface ApplicationPreferences {
|
|
390
|
+
applicationId: Scalars['UUID'];
|
|
391
|
+
settingsMenuItems: SettingsMenuItem[];
|
|
392
|
+
variables: UserApplicationVariableValue[];
|
|
393
|
+
__typename: 'ApplicationPreferences';
|
|
394
|
+
}
|
|
389
395
|
export interface ApplicationRegistration {
|
|
390
396
|
createdAt: Scalars['DateTime'];
|
|
391
397
|
galleryImagesUrls: Scalars['String'][];
|
|
@@ -614,7 +620,7 @@ export interface BillingEntitlement {
|
|
|
614
620
|
value: Scalars['Boolean'];
|
|
615
621
|
__typename: 'BillingEntitlement';
|
|
616
622
|
}
|
|
617
|
-
export type BillingEntitlementKey = 'AUDIT_LOGS' | 'CUSTOM_DOMAIN' | 'RECORD_SHARING' | 'RLS' | 'SSO' | 'USAGE_LIMIT' | 'VALIDATION_RULES';
|
|
623
|
+
export type BillingEntitlementKey = 'AUDIT_LOGS' | 'CUSTOM_DOMAIN' | 'CUSTOM_ROLES' | 'RECORD_SHARING' | 'RLS' | 'SSO' | 'USAGE_LIMIT' | 'VALIDATION_RULES';
|
|
618
624
|
export interface BillingLicensedProduct {
|
|
619
625
|
description: Scalars['String'];
|
|
620
626
|
images?: Scalars['String'][];
|
|
@@ -697,6 +703,8 @@ export interface BillingResourceCreditUsage {
|
|
|
697
703
|
userCreditsUsed: Scalars['Float'];
|
|
698
704
|
workspaceCreditsExtraGranted: Scalars['Float'];
|
|
699
705
|
workspaceCreditsGranted: Scalars['Float'];
|
|
706
|
+
workspaceCreditsGrantedForSeats: Scalars['Float'];
|
|
707
|
+
workspaceCreditsSeats: Scalars['Int'];
|
|
700
708
|
workspaceCreditsTotalGranted: Scalars['Float'];
|
|
701
709
|
workspaceCreditsUsed: Scalars['Float'];
|
|
702
710
|
__typename: 'BillingResourceCreditUsage';
|
|
@@ -1204,7 +1212,7 @@ export interface FeatureFlag {
|
|
|
1204
1212
|
value: Scalars['Boolean'];
|
|
1205
1213
|
__typename: 'FeatureFlag';
|
|
1206
1214
|
}
|
|
1207
|
-
export type FeatureFlagKey = 'IS_AI_CHAT_INBOX_ENABLED' | 'IS_APP_PREFERENCES_ENABLED' | 'IS_ASYNC_CSV_EXPORT_ENABLED' | 'IS_CALENDAR_EVENT_SHARED_ACROSS_CHANNELS_ENABLED' | 'IS_CONFIGURABLE_SEARCH_FIELDS_ENABLED' | 'IS_DEFERRED_WORKSPACE_MIGRATION_ACTIONS_ENABLED' | '
|
|
1215
|
+
export type FeatureFlagKey = 'IS_AI_CHAT_INBOX_ENABLED' | 'IS_APP_PREFERENCES_ENABLED' | 'IS_ASYNC_CSV_EXPORT_ENABLED' | 'IS_CALENDAR_EVENT_SHARED_ACROSS_CHANNELS_ENABLED' | 'IS_CONFIGURABLE_SEARCH_FIELDS_ENABLED' | 'IS_DEFERRED_WORKSPACE_MIGRATION_ACTIONS_ENABLED' | 'IS_LOGS_SETTINGS_SECTION_ENABLED' | 'IS_MESSAGE_CAMPAIGN_ENABLED' | 'IS_RECORD_CREATION_FORM_ENABLED' | 'IS_RECORD_LEVEL_SHARING_ENABLED' | 'IS_REST_METADATA_API_NEW_FORMAT_DIRECT';
|
|
1208
1216
|
export interface Field {
|
|
1209
1217
|
applicationId: Scalars['UUID'];
|
|
1210
1218
|
createdAt: Scalars['DateTime'];
|
|
@@ -1671,6 +1679,11 @@ export interface MessageCampaignDetailsConfiguration {
|
|
|
1671
1679
|
configurationType: WidgetConfigurationType;
|
|
1672
1680
|
__typename: 'MessageCampaignDetailsConfiguration';
|
|
1673
1681
|
}
|
|
1682
|
+
export interface MessageCampaignSendBlockerDTO {
|
|
1683
|
+
code: Scalars['String'];
|
|
1684
|
+
message: Scalars['String'];
|
|
1685
|
+
__typename: 'MessageCampaignSendBlockerDTO';
|
|
1686
|
+
}
|
|
1674
1687
|
export interface MessageChannel {
|
|
1675
1688
|
connectedAccount?: ConnectedAccountPublicDTO;
|
|
1676
1689
|
connectedAccountId: Scalars['UUID'];
|
|
@@ -2389,6 +2402,11 @@ export interface PlaceDetailsResult {
|
|
|
2389
2402
|
street?: Scalars['String'];
|
|
2390
2403
|
__typename: 'PlaceDetailsResult';
|
|
2391
2404
|
}
|
|
2405
|
+
export interface PreviewMessageCampaignSendOutputDTO {
|
|
2406
|
+
audience?: CampaignAudiencePreviewDTO;
|
|
2407
|
+
blockers: MessageCampaignSendBlockerDTO[];
|
|
2408
|
+
__typename: 'PreviewMessageCampaignSendOutputDTO';
|
|
2409
|
+
}
|
|
2392
2410
|
export interface PublicApplicationRegistration {
|
|
2393
2411
|
id: Scalars['UUID'];
|
|
2394
2412
|
logoUrl?: Scalars['String'];
|
|
@@ -2556,6 +2574,7 @@ export interface Query {
|
|
|
2556
2574
|
metadataTranslations: MetadataTranslation[];
|
|
2557
2575
|
minimalMetadata: MinimalMetadata;
|
|
2558
2576
|
mostlyEmptyFieldMetadataIds: Scalars['UUID'][];
|
|
2577
|
+
myApplicationPreferences: ApplicationPreferences[];
|
|
2559
2578
|
myCalendarChannels: CalendarChannel[];
|
|
2560
2579
|
myConnectedAccounts: ConnectedAccountPublicDTO[];
|
|
2561
2580
|
myMessageChannels: MessageChannel[];
|
|
@@ -2568,6 +2587,7 @@ export interface Query {
|
|
|
2568
2587
|
objects: ObjectConnection;
|
|
2569
2588
|
pieChartData: PieChartData;
|
|
2570
2589
|
previewMessageCampaignAudience: CampaignAudiencePreviewDTO;
|
|
2590
|
+
previewMessageCampaignSend: PreviewMessageCampaignSendOutputDTO;
|
|
2571
2591
|
publicMarketplaceAppDetail: MarketplaceAppDetail;
|
|
2572
2592
|
publicMarketplaceApps: MarketplaceApp[];
|
|
2573
2593
|
recordPermissions: RecordPermissionsResult[];
|
|
@@ -3972,6 +3992,13 @@ export interface ApplicationHealthCheckResultGenqlSelection {
|
|
|
3972
3992
|
__typename?: boolean | number;
|
|
3973
3993
|
__scalar?: boolean | number;
|
|
3974
3994
|
}
|
|
3995
|
+
export interface ApplicationPreferencesGenqlSelection {
|
|
3996
|
+
applicationId?: boolean | number;
|
|
3997
|
+
settingsMenuItems?: SettingsMenuItemGenqlSelection;
|
|
3998
|
+
variables?: UserApplicationVariableValueGenqlSelection;
|
|
3999
|
+
__typename?: boolean | number;
|
|
4000
|
+
__scalar?: boolean | number;
|
|
4001
|
+
}
|
|
3975
4002
|
export interface ApplicationRegistrationGenqlSelection {
|
|
3976
4003
|
createdAt?: boolean | number;
|
|
3977
4004
|
galleryImagesUrls?: boolean | number;
|
|
@@ -4314,6 +4341,8 @@ export interface BillingResourceCreditUsageGenqlSelection {
|
|
|
4314
4341
|
userCreditsUsed?: boolean | number;
|
|
4315
4342
|
workspaceCreditsExtraGranted?: boolean | number;
|
|
4316
4343
|
workspaceCreditsGranted?: boolean | number;
|
|
4344
|
+
workspaceCreditsGrantedForSeats?: boolean | number;
|
|
4345
|
+
workspaceCreditsSeats?: boolean | number;
|
|
4317
4346
|
workspaceCreditsTotalGranted?: boolean | number;
|
|
4318
4347
|
workspaceCreditsUsed?: boolean | number;
|
|
4319
4348
|
__typename?: boolean | number;
|
|
@@ -5902,6 +5931,12 @@ export interface MessageCampaignDetailsConfigurationGenqlSelection {
|
|
|
5902
5931
|
__typename?: boolean | number;
|
|
5903
5932
|
__scalar?: boolean | number;
|
|
5904
5933
|
}
|
|
5934
|
+
export interface MessageCampaignSendBlockerDTOGenqlSelection {
|
|
5935
|
+
code?: boolean | number;
|
|
5936
|
+
message?: boolean | number;
|
|
5937
|
+
__typename?: boolean | number;
|
|
5938
|
+
__scalar?: boolean | number;
|
|
5939
|
+
}
|
|
5905
5940
|
export interface MessageChannelGenqlSelection {
|
|
5906
5941
|
connectedAccount?: ConnectedAccountPublicDTOGenqlSelection;
|
|
5907
5942
|
connectedAccountId?: boolean | number;
|
|
@@ -7823,6 +7858,16 @@ export interface PreviewMessageCampaignAudienceInput {
|
|
|
7823
7858
|
listId: Scalars['String'];
|
|
7824
7859
|
unsubscribeTopicId?: (Scalars['String'] | null);
|
|
7825
7860
|
}
|
|
7861
|
+
export interface PreviewMessageCampaignSendInput {
|
|
7862
|
+
campaignId: Scalars['String'];
|
|
7863
|
+
scheduledAt?: (Scalars['DateTime'] | null);
|
|
7864
|
+
}
|
|
7865
|
+
export interface PreviewMessageCampaignSendOutputDTOGenqlSelection {
|
|
7866
|
+
audience?: CampaignAudiencePreviewDTOGenqlSelection;
|
|
7867
|
+
blockers?: MessageCampaignSendBlockerDTOGenqlSelection;
|
|
7868
|
+
__typename?: boolean | number;
|
|
7869
|
+
__scalar?: boolean | number;
|
|
7870
|
+
}
|
|
7826
7871
|
export interface PublicApplicationRegistrationGenqlSelection {
|
|
7827
7872
|
id?: boolean | number;
|
|
7828
7873
|
logoUrl?: boolean | number;
|
|
@@ -8339,6 +8384,7 @@ export interface QueryGenqlSelection {
|
|
|
8339
8384
|
objectMetadataId: Scalars['UUID'];
|
|
8340
8385
|
};
|
|
8341
8386
|
};
|
|
8387
|
+
myApplicationPreferences?: ApplicationPreferencesGenqlSelection;
|
|
8342
8388
|
myCalendarChannels?: (CalendarChannelGenqlSelection & {
|
|
8343
8389
|
__args?: {
|
|
8344
8390
|
connectedAccountId?: (Scalars['UUID'] | null);
|
|
@@ -8387,6 +8433,11 @@ export interface QueryGenqlSelection {
|
|
|
8387
8433
|
input: PreviewMessageCampaignAudienceInput;
|
|
8388
8434
|
};
|
|
8389
8435
|
});
|
|
8436
|
+
previewMessageCampaignSend?: (PreviewMessageCampaignSendOutputDTOGenqlSelection & {
|
|
8437
|
+
__args: {
|
|
8438
|
+
input: PreviewMessageCampaignSendInput;
|
|
8439
|
+
};
|
|
8440
|
+
});
|
|
8390
8441
|
publicMarketplaceAppDetail?: (MarketplaceAppDetailGenqlSelection & {
|
|
8391
8442
|
__args: {
|
|
8392
8443
|
universalIdentifier: Scalars['String'];
|
|
@@ -10334,6 +10385,9 @@ export declare const isApplicationHealthCheckAction: (obj?: {
|
|
|
10334
10385
|
export declare const isApplicationHealthCheckResult: (obj?: {
|
|
10335
10386
|
__typename?: any;
|
|
10336
10387
|
} | null | undefined) => obj is ApplicationHealthCheckResult;
|
|
10388
|
+
export declare const isApplicationPreferences: (obj?: {
|
|
10389
|
+
__typename?: any;
|
|
10390
|
+
} | null | undefined) => obj is ApplicationPreferences;
|
|
10337
10391
|
export declare const isApplicationRegistration: (obj?: {
|
|
10338
10392
|
__typename?: any;
|
|
10339
10393
|
} | null | undefined) => obj is ApplicationRegistration;
|
|
@@ -10766,6 +10820,9 @@ export declare const isMessageCampaignBodyConfiguration: (obj?: {
|
|
|
10766
10820
|
export declare const isMessageCampaignDetailsConfiguration: (obj?: {
|
|
10767
10821
|
__typename?: any;
|
|
10768
10822
|
} | null | undefined) => obj is MessageCampaignDetailsConfiguration;
|
|
10823
|
+
export declare const isMessageCampaignSendBlockerDTO: (obj?: {
|
|
10824
|
+
__typename?: any;
|
|
10825
|
+
} | null | undefined) => obj is MessageCampaignSendBlockerDTO;
|
|
10769
10826
|
export declare const isMessageChannel: (obj?: {
|
|
10770
10827
|
__typename?: any;
|
|
10771
10828
|
} | null | undefined) => obj is MessageChannel;
|
|
@@ -10886,6 +10943,9 @@ export declare const isPieChartDataItem: (obj?: {
|
|
|
10886
10943
|
export declare const isPlaceDetailsResult: (obj?: {
|
|
10887
10944
|
__typename?: any;
|
|
10888
10945
|
} | null | undefined) => obj is PlaceDetailsResult;
|
|
10946
|
+
export declare const isPreviewMessageCampaignSendOutputDTO: (obj?: {
|
|
10947
|
+
__typename?: any;
|
|
10948
|
+
} | null | undefined) => obj is PreviewMessageCampaignSendOutputDTO;
|
|
10889
10949
|
export declare const isPublicApplicationRegistration: (obj?: {
|
|
10890
10950
|
__typename?: any;
|
|
10891
10951
|
} | null | undefined) => obj is PublicApplicationRegistration;
|
|
@@ -11351,6 +11411,7 @@ export declare const enumBarChartLayout: {
|
|
|
11351
11411
|
export declare const enumBillingEntitlementKey: {
|
|
11352
11412
|
AUDIT_LOGS: "AUDIT_LOGS";
|
|
11353
11413
|
CUSTOM_DOMAIN: "CUSTOM_DOMAIN";
|
|
11414
|
+
CUSTOM_ROLES: "CUSTOM_ROLES";
|
|
11354
11415
|
RECORD_SHARING: "RECORD_SHARING";
|
|
11355
11416
|
RLS: "RLS";
|
|
11356
11417
|
SSO: "SSO";
|
|
@@ -11556,12 +11617,10 @@ export declare const enumFeatureFlagKey: {
|
|
|
11556
11617
|
IS_CALENDAR_EVENT_SHARED_ACROSS_CHANNELS_ENABLED: "IS_CALENDAR_EVENT_SHARED_ACROSS_CHANNELS_ENABLED";
|
|
11557
11618
|
IS_CONFIGURABLE_SEARCH_FIELDS_ENABLED: "IS_CONFIGURABLE_SEARCH_FIELDS_ENABLED";
|
|
11558
11619
|
IS_DEFERRED_WORKSPACE_MIGRATION_ACTIONS_ENABLED: "IS_DEFERRED_WORKSPACE_MIGRATION_ACTIONS_ENABLED";
|
|
11559
|
-
IS_JSON_FILTER_ENABLED: "IS_JSON_FILTER_ENABLED";
|
|
11560
11620
|
IS_LOGS_SETTINGS_SECTION_ENABLED: "IS_LOGS_SETTINGS_SECTION_ENABLED";
|
|
11561
11621
|
IS_MESSAGE_CAMPAIGN_ENABLED: "IS_MESSAGE_CAMPAIGN_ENABLED";
|
|
11562
11622
|
IS_RECORD_CREATION_FORM_ENABLED: "IS_RECORD_CREATION_FORM_ENABLED";
|
|
11563
11623
|
IS_RECORD_LEVEL_SHARING_ENABLED: "IS_RECORD_LEVEL_SHARING_ENABLED";
|
|
11564
|
-
IS_RECORD_SHARE_VISIBILITY_GATING_ENABLED: "IS_RECORD_SHARE_VISIBILITY_GATING_ENABLED";
|
|
11565
11624
|
IS_REST_METADATA_API_NEW_FORMAT_DIRECT: "IS_REST_METADATA_API_NEW_FORMAT_DIRECT";
|
|
11566
11625
|
};
|
|
11567
11626
|
export declare const enumFieldDisplayMode: {
|
|
@@ -412,6 +412,12 @@ declare const _default: {
|
|
|
412
412
|
__typename: number[];
|
|
413
413
|
};
|
|
414
414
|
ApplicationHealthStatus: {};
|
|
415
|
+
ApplicationPreferences: {
|
|
416
|
+
applicationId: number[];
|
|
417
|
+
settingsMenuItems: number[];
|
|
418
|
+
variables: number[];
|
|
419
|
+
__typename: number[];
|
|
420
|
+
};
|
|
415
421
|
ApplicationRegistration: {
|
|
416
422
|
createdAt: number[];
|
|
417
423
|
galleryImagesUrls: number[];
|
|
@@ -725,6 +731,8 @@ declare const _default: {
|
|
|
725
731
|
userCreditsUsed: number[];
|
|
726
732
|
workspaceCreditsExtraGranted: number[];
|
|
727
733
|
workspaceCreditsGranted: number[];
|
|
734
|
+
workspaceCreditsGrantedForSeats: number[];
|
|
735
|
+
workspaceCreditsSeats: number[];
|
|
728
736
|
workspaceCreditsTotalGranted: number[];
|
|
729
737
|
workspaceCreditsUsed: number[];
|
|
730
738
|
__typename: number[];
|
|
@@ -2270,6 +2278,11 @@ declare const _default: {
|
|
|
2270
2278
|
configurationType: number[];
|
|
2271
2279
|
__typename: number[];
|
|
2272
2280
|
};
|
|
2281
|
+
MessageCampaignSendBlockerDTO: {
|
|
2282
|
+
code: number[];
|
|
2283
|
+
message: number[];
|
|
2284
|
+
__typename: number[];
|
|
2285
|
+
};
|
|
2273
2286
|
MessageChannel: {
|
|
2274
2287
|
connectedAccount: number[];
|
|
2275
2288
|
connectedAccountId: number[];
|
|
@@ -3636,6 +3649,16 @@ declare const _default: {
|
|
|
3636
3649
|
unsubscribeTopicId: number[];
|
|
3637
3650
|
__typename: number[];
|
|
3638
3651
|
};
|
|
3652
|
+
PreviewMessageCampaignSendInput: {
|
|
3653
|
+
campaignId: number[];
|
|
3654
|
+
scheduledAt: number[];
|
|
3655
|
+
__typename: number[];
|
|
3656
|
+
};
|
|
3657
|
+
PreviewMessageCampaignSendOutputDTO: {
|
|
3658
|
+
audience: number[];
|
|
3659
|
+
blockers: number[];
|
|
3660
|
+
__typename: number[];
|
|
3661
|
+
};
|
|
3639
3662
|
PublicApplicationRegistration: {
|
|
3640
3663
|
id: number[];
|
|
3641
3664
|
logoUrl: number[];
|
|
@@ -3981,6 +4004,7 @@ declare const _default: {
|
|
|
3981
4004
|
mostlyEmptyFieldMetadataIds: (number | {
|
|
3982
4005
|
objectMetadataId: (string | number)[];
|
|
3983
4006
|
})[];
|
|
4007
|
+
myApplicationPreferences: number[];
|
|
3984
4008
|
myCalendarChannels: (number | {
|
|
3985
4009
|
connectedAccountId: number[];
|
|
3986
4010
|
})[];
|
|
@@ -4010,6 +4034,9 @@ declare const _default: {
|
|
|
4010
4034
|
previewMessageCampaignAudience: (number | {
|
|
4011
4035
|
input: (string | number)[];
|
|
4012
4036
|
})[];
|
|
4037
|
+
previewMessageCampaignSend: (number | {
|
|
4038
|
+
input: (string | number)[];
|
|
4039
|
+
})[];
|
|
4013
4040
|
publicMarketplaceAppDetail: (number | {
|
|
4014
4041
|
universalIdentifier: (string | number)[];
|
|
4015
4042
|
})[];
|