From 5084b300a44bc360428c59d847d20a412d1064e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20H=C3=BCbelbauer?= Date: Wed, 18 Mar 2026 19:04:05 +0100 Subject: [PATCH 1/6] =?UTF-8?q?=F0=9F=A4=96=20Merge=20PR=20#74775=20`@type?= =?UTF-8?q?s/bun`:=20Bump=20to=201.3.11=20for=20`Bun.cron`=20by=20@TomasHu?= =?UTF-8?q?belbauer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- types/bun/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/bun/package.json b/types/bun/package.json index 14a95c8b265575..39c706fe02125f 100644 --- a/types/bun/package.json +++ b/types/bun/package.json @@ -6,7 +6,7 @@ "https://bun.com" ], "dependencies": { - "bun-types": "1.3.10" + "bun-types": "1.3.11" }, "devDependencies": { "@types/bun": "workspace:." From 642d48e369d53a5b91b55b7d934e3f70799886c8 Mon Sep 17 00:00:00 2001 From: Edwin Gichuru Date: Wed, 18 Mar 2026 21:17:36 +0300 Subject: [PATCH 2/6] =?UTF-8?q?=F0=9F=A4=96=20Merge=20PR=20#74606=20[@type?= =?UTF-8?q?s/coveragejson]:=20update=20types=20by=20@murithigeo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- types/coveragejson/coveragejson-tests.ts | 51 ++++++++++++++++++++++++ types/coveragejson/index.d.ts | 9 ++--- types/coveragejson/package.json | 2 +- 3 files changed, 56 insertions(+), 6 deletions(-) diff --git a/types/coveragejson/coveragejson-tests.ts b/types/coveragejson/coveragejson-tests.ts index 37302f1afed7ea..714ae37f45de8a 100644 --- a/types/coveragejson/coveragejson-tests.ts +++ b/types/coveragejson/coveragejson-tests.ts @@ -854,3 +854,54 @@ let multipolygonseriesDomain: CoverageJSON.MultiPolygonSeries = { }, referencing, }; + +let coverageWithRemoteDomainRange: CoverageJSON.Coverage = { + type: "Coverage", + domain: "https://covjson.org/playground/coverages/grid-domain.covjson", + ranges: { + FOO: "https://gist.github.com/murithigeo/0d35074786aaa0e23657755a14044a2e", + }, + parameters: { + "FOO": { + "type": "Parameter", + "observedProperty": { + "label": { + "en": "Bar", + }, + }, + }, + }, +}; + +let gridDomainWithRegularElevation: CoverageJSON.CoverageJSON = { + type: "Domain", + domainType: "Grid", + axes: { + x: { values: [10, 20] }, + y: { values: [-5, 0] }, + z: { start: 0, stop: 10, num: 10 }, + }, +}; + +let sectionWithRegularElevation: CoverageJSON.Domain = { + type: "Domain", + domainType: "Section", + axes: { + composite: { + dataType: "tuple", + "coordinates": ["t", "x", "y"], + values: [["2024-10-10", 10, 20]], + }, + z: { start: 0, stop: 10, num: 10 }, + }, +}; + +let verticalprofilewithRegularElevation: CoverageJSON.Domain = { + "type": "Domain", + domainType: "VerticalProfile", + axes: { + z: { start: 0, stop: 10, num: 0 }, + x: { values: [10] }, + y: { values: [20] }, + }, +}; diff --git a/types/coveragejson/index.d.ts b/types/coveragejson/index.d.ts index a2768473991fd7..e825870545f4eb 100644 --- a/types/coveragejson/index.d.ts +++ b/types/coveragejson/index.d.ts @@ -88,7 +88,6 @@ export interface ObservedProperty { description?: I18N; /**MUST be a non-empty array of category objects */ categories?: [Category, ...Category[]]; - categoryEnconding?: CategoryEncoding; } /** @@ -452,7 +451,7 @@ export interface Coverage { } export interface Ranges { - [key: string]: NdArray; + [key: string]: NdArray | string; } /** @@ -511,7 +510,7 @@ export interface Grid extends DomainObject { axes: { x: { values: number[] } | RegularlySpacedAxis; y: { values: number[] } | RegularlySpacedAxis; - z?: { values: number[] }; + z?: { values: number[] } | RegularlySpacedAxis; t?: { values: string[] }; }; } @@ -526,7 +525,7 @@ export interface VerticalProfile extends DomainObject { x: { values: [number] }; // eslint-disable-next-line @definitelytyped/no-single-element-tuple-type y: { values: [number] }; - z: { values: number[] }; + z: { values: number[] } | RegularlySpacedAxis; // eslint-disable-next-line @definitelytyped/no-single-element-tuple-type t?: { values: [string] }; }; @@ -638,7 +637,7 @@ export interface Section extends DomainObject { coordinates: ["t", "x", "y"]; values: [string, number, number][]; }; - z: { values: number[] }; + z: { values: number[] } | RegularlySpacedAxis; }; } diff --git a/types/coveragejson/package.json b/types/coveragejson/package.json index ee9ee7e1b2b7d4..55535d99f3c482 100644 --- a/types/coveragejson/package.json +++ b/types/coveragejson/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@types/coveragejson", - "version": "1.0.9999", + "version": "2.0.9999", "projects": [ "https://www.ogc.org/standard/coveragejson/" ], From e99e3a5a41ced9392292e15a8e1e406d7d9b9a6a Mon Sep 17 00:00:00 2001 From: Michael Kitzman Date: Wed, 18 Mar 2026 14:03:43 -0500 Subject: [PATCH 3/6] =?UTF-8?q?=F0=9F=A4=96=20Merge=20PR=20#74605=20[confi?= =?UTF-8?q?g]=20Remove=20config=20by=20@mdkitzman?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- notNeededPackages.json | 4 ++ types/ari-client/package.json | 2 +- types/config/.eslintrc.json | 7 --- types/config/.npmignore | 5 -- types/config/async.d.ts | 7 --- types/config/config-tests.ts | 98 ----------------------------------- types/config/defer.d.ts | 8 --- types/config/index.d.ts | 89 ------------------------------- types/config/package.json | 37 ------------- types/config/raw.d.ts | 10 ---- types/config/tsconfig.json | 19 ------- types/config/utils.d.ts | 20 ------- 12 files changed, 5 insertions(+), 301 deletions(-) delete mode 100644 types/config/.eslintrc.json delete mode 100644 types/config/.npmignore delete mode 100644 types/config/async.d.ts delete mode 100644 types/config/config-tests.ts delete mode 100644 types/config/defer.d.ts delete mode 100644 types/config/index.d.ts delete mode 100644 types/config/package.json delete mode 100644 types/config/raw.d.ts delete mode 100644 types/config/tsconfig.json delete mode 100644 types/config/utils.d.ts diff --git a/notNeededPackages.json b/notNeededPackages.json index 4b74f97c1b234c..63a51318385296 100644 --- a/notNeededPackages.json +++ b/notNeededPackages.json @@ -1172,6 +1172,10 @@ "libraryName": "conf", "asOfVersion": "3.0.0" }, + "config": { + "libraryName": "config", + "asOfVersion": "4.4.0" + }, "confirmdialog": { "libraryName": "confirmdialog", "asOfVersion": "1.0.0" diff --git a/types/ari-client/package.json b/types/ari-client/package.json index c33763fdfc86d5..81e8640cdc84d3 100644 --- a/types/ari-client/package.json +++ b/types/ari-client/package.json @@ -10,7 +10,7 @@ }, "devDependencies": { "@types/ari-client": "workspace:.", - "@types/config": "*" + "@types/config": "<=3" }, "owners": [ { diff --git a/types/config/.eslintrc.json b/types/config/.eslintrc.json deleted file mode 100644 index f59a3bd7344fa3..00000000000000 --- a/types/config/.eslintrc.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "rules": { - "@definitelytyped/no-unnecessary-generics": "off", - "@definitelytyped/strict-export-declare-modifiers": "off", - "@typescript-eslint/naming-convention": "off" - } -} diff --git a/types/config/.npmignore b/types/config/.npmignore deleted file mode 100644 index 93e307400a5456..00000000000000 --- a/types/config/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -* -!**/*.d.ts -!**/*.d.cts -!**/*.d.mts -!**/*.d.*.ts diff --git a/types/config/async.d.ts b/types/config/async.d.ts deleted file mode 100644 index 220479bd964c88..00000000000000 --- a/types/config/async.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { IConfig } from "./"; - -type AsyncFunction = (this: IConfig, config: string, origValue: T) => Promise; - -export function asyncConfig(promise: Promise): Promise; -export function asyncConfig(func: AsyncFunction): Promise; -export function resolveAsyncConfigs(config: IConfig): Promise; diff --git a/types/config/config-tests.ts b/types/config/config-tests.ts deleted file mode 100644 index cd00f610c67ac5..00000000000000 --- a/types/config/config-tests.ts +++ /dev/null @@ -1,98 +0,0 @@ -import * as config from "config"; -import { asyncConfig, resolveAsyncConfigs } from "config/async"; -import { deferConfig } from "config/defer"; -import { raw } from "config/raw"; - -declare module "config" { - interface IConfig { - firstName: string; - lastName: string; - fullName: string; - info: { - country: string; - age: number; - isOlympicAthlete: boolean; - nest1: { - nest2: { - anotherString: string; - nest3: { - anotherNumber: number; - nest4: { - nest5: { - anotherBoolean: boolean; - }; - }; - }; - }; - }; - }; - } -} - -var class1: config.IConfig = config; - -var hasUntyped: boolean = config.has(""); -var hasTyped: boolean = config.has("info.age"); - -var stringReturnType: string = config.get("firstName"); -var numberReturnType: number = config.get("info.age"); -var deepValue: boolean = config.get("info.nest1.nest2.nest3.nest4.nest5.anotherBoolean"); -// @ts-expect-error Type 'boolean' is not assignable to type 'string' -var invalidReturnType: string = config.get("info.isOlympicAthlete"); -var directAccessToo: number = config.info.nest1.nest2.nest3.anotherNumber; - -// util tests: -var extended1: any = config.util.extendDeep({}, {}); -var extended2: any = config.util.extendDeep({}, {}, 20); -var extended3: any = config.util.extendDeep({}, {}, {}, 20); - -var clone1: any = config.util.cloneDeep({}); -var clone2: any = config.util.cloneDeep({}, 20); - -// $ExpectType void -config.util.setPath({}, [""], null); -// $ExpectType void -config.util.setPath({}, [], ""); -// $ExpectType void -config.util.setPath({}, [""], ""); -// @ts-expect-error Argument of type 'string' is not assignable to parameter of type 'string[]' -config.util.setPath({}, ""); -// @ts-expect-error Argument of type 'string' is not assignable to parameter of type 'object' -config.util.setPath("", []); - -var equals1: boolean = config.util.equalsDeep({}, {}); -var equals2: boolean = config.util.equalsDeep({}, {}, 20); - -var diff1: any = config.util.diffDeep({}, {}); -var diff2: any = config.util.diffDeep({}, {}, 20); - -var immutable1: any = config.util.makeImmutable({}); -var immutable2: any = config.util.makeImmutable({}, ""); -var immutable3: any = config.util.makeImmutable({}, "", ""); - -var hidden1: any = config.util.makeHidden({}, ""); -var hidden2: any = config.util.makeHidden({}, "", ""); - -var env: string = config.util.getEnv(""); - -var configSources: config.IConfigSource[] = config.util.getConfigSources(); -var configSource: config.IConfigSource = configSources[0]; -var configSourceName: string = configSource.name; -var configSourceOriginal: string | undefined = configSource.original; - -var moduleDefaults: any = config.util.setModuleDefaults("moduleName", {}); - -asyncConfig(Promise.resolve()); -resolveAsyncConfigs(config); - -var deferredValueConfig = { - firstName: "Foo", - lastName: "Bar", - fullName: deferConfig(function() { - return this.firstName + " " + this.lastName; - }), -}; - -var rawValueConfig = { - outputFile: raw(Promise.resolve("foo")), -}; diff --git a/types/config/defer.d.ts b/types/config/defer.d.ts deleted file mode 100644 index d8553ae49b069b..00000000000000 --- a/types/config/defer.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -type DeferFunction = (this: any, origValue: T) => R; - -/* - * Allows a config value to be deferred for later. The original config object is passed - * into func as "this". - * See: https://github.com/lorenwest/node-config/wiki/Special-features-for-JavaScript-configuration-files#deferred-values-in-javascript-configuration-files - */ -export function deferConfig(func: DeferFunction): R; diff --git a/types/config/index.d.ts b/types/config/index.d.ts deleted file mode 100644 index 62cd6552e93a78..00000000000000 --- a/types/config/index.d.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { ConfigPaths, ConfigPathValues, HasBeenAugmented } from "./utils"; - -declare var c: c.IConfig; - -declare namespace c { - // see https://github.com/lorenwest/node-config/wiki/Using-Config-Utilities - interface IUtil { - // Extend an object (and any object it contains) with one or more objects (and objects contained in them). - extendDeep(mergeInto: any, mergeFrom: any, depth?: number): any; - extendDeep(mergeInto: any, mergeFrom1: any, mergeFrom2: any, depth?: number): any; - extendDeep(mergeInto: any, ...mergeFrom: any): any; - - // Return a deep copy of the specified object. - cloneDeep(copyFrom: any, depth?: number): any; - - // Set objects given a path as a string list - setPath(object: object, path: string[], value?: any): void; - - // Return true if two objects have equal contents. - equalsDeep(object1: any, object2: any, dept?: number): boolean; - - // Returns an object containing all elements that differ between two objects. - diffDeep(object1: any, object2: any, depth?: number): any; - - // Make a javascript object property immutable (assuring it cannot be changed from the current value). - makeImmutable(object: any, propertyName?: string, propertyValue?: string): any; - - // Make an object property hidden so it doesn't appear when enumerating elements of the object. - makeHidden(object: any, propertyName: string, propertyValue?: string): any; - - // Get the current value of a config environment variable - getEnv(varName: string): string; - - // Return the config for the project based on directory param if not directory then return default one (config). - loadFileConfigs(configDir?: string): any; - - // Return the sources for the configurations - getConfigSources(): IConfigSource[]; - - // Returns a new deep copy of the current config object, or any part of the config if provided. - toObject(config?: any): any; - - /** - * This allows module developers to attach their configurations onto the default configuration object - * so they can be configured by the consumers of the module. - */ - setModuleDefaults(moduleName: string, defaults: any): any; - } - - /** - * By augmenting this interface with your own config, you can greatly improve the IntelliSense for the `get` method: - * - Dot notation paths for the `setting` parameter - * - Correctly typed return values - * - * @example - * declare module 'config' { - * interface IConfig extends MyConfig {} - * } - * - * @example - * declare module 'config' { - * interface IConfig { - * myConfig: { - * myString: string; - * myNumber: number; - * }; - * } - * } - * - * @example - * const knownToBeStringTyped = config.get('myConfig.myString'); - */ - interface IConfig { - get: HasBeenAugmented extends true - ? >(setting: T) => ConfigPathValues - : (setting: string) => T; - has(setting: ConfigPaths): boolean; - has(setting: string): boolean; - util: IUtil; - } - - interface IConfigSource { - name: string; - original?: string | undefined; - parsed: any; - } -} - -export = c; diff --git a/types/config/package.json b/types/config/package.json deleted file mode 100644 index 96144abbd95675..00000000000000 --- a/types/config/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "private": true, - "name": "@types/config", - "version": "3.3.9999", - "projects": [ - "https://github.com/lorenwest/node-config" - ], - "devDependencies": { - "@types/config": "workspace:." - }, - "owners": [ - { - "name": "Roman Korneev", - "githubUsername": "RWander" - }, - { - "name": "Forrest Bice", - "githubUsername": "forrestbice" - }, - { - "name": "James Donald", - "githubUsername": "jndonald3" - }, - { - "name": "Alberto Vasquez", - "githubUsername": "albertovasquez" - }, - { - "name": "Christian Vaagland Tellnes", - "githubUsername": "tellnes" - }, - { - "name": "Paritosh Bhatia", - "githubUsername": "ParitoshBh" - } - ] -} diff --git a/types/config/raw.d.ts b/types/config/raw.d.ts deleted file mode 100644 index 27c3031c4a9cd3..00000000000000 --- a/types/config/raw.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* The raw function returns an object as-is instead of passing it through processes that will make the object immutable. - * See: https://github.com/lorenwest/node-config/wiki/Special-features-for-JavaScript-configuration-files#using-promises-processstdout-and-other-objects-in-javascript-config-files - */ - -export class RawConfig { - constructor(rawObj: T); - resolve(): T; -} - -export function raw(obj: T): RawConfig; diff --git a/types/config/tsconfig.json b/types/config/tsconfig.json deleted file mode 100644 index b8ab77dc717ed7..00000000000000 --- a/types/config/tsconfig.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "compilerOptions": { - "module": "node16", - "lib": [ - "es6" - ], - "noImplicitAny": true, - "noImplicitThis": true, - "strictNullChecks": true, - "strictFunctionTypes": true, - "types": [], - "noEmit": true, - "forceConsistentCasingInFileNames": true - }, - "files": [ - "index.d.ts", - "config-tests.ts" - ] -} diff --git a/types/config/utils.d.ts b/types/config/utils.d.ts deleted file mode 100644 index aa6fce359f18cb..00000000000000 --- a/types/config/utils.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -type Join = K extends string | number ? P extends string | number ? `${K}${"" extends P ? "" : "."}${P}` - : never - : never; - -export type ConfigPaths = T extends object ? { - [K in keyof T]-?: K extends string | number ? `${K}` | Join> - : never; - }[keyof T] - : ""; - -export type ConfigPathValues = P extends `${infer K}.${infer Rest}` - ? K extends keyof O ? ConfigPathValues - : never - : P extends keyof O ? O[P] - : never; - -type IsSubsetOf = T extends U ? true : false; - -export type HasBeenAugmented = IsSubsetOf, never> extends true ? false - : true; From c2e4d84fb8a73d89403f6e72e77c84b953830f30 Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 18 Mar 2026 21:48:36 +0200 Subject: [PATCH 4/6] =?UTF-8?q?=F0=9F=A4=96=20Merge=20PR=20#74600=20[@type?= =?UTF-8?q?s/worker-plugin]:=20update=20types=20by=20@arturovt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- types/worker-plugin/index.d.ts | 52 ++++++++++++++++++---- types/worker-plugin/package.json | 4 +- types/worker-plugin/worker-plugin-tests.ts | 4 +- 3 files changed, 49 insertions(+), 11 deletions(-) diff --git a/types/worker-plugin/index.d.ts b/types/worker-plugin/index.d.ts index 3d9c8f55b2466b..0a06b3105c8e32 100644 --- a/types/worker-plugin/index.d.ts +++ b/types/worker-plugin/index.d.ts @@ -2,30 +2,66 @@ import webpack = require("webpack"); export = WorkerPlugin; -declare class WorkerPlugin extends webpack.Plugin { +declare class WorkerPlugin implements webpack.WebpackPluginInstance { constructor(options?: WorkerPlugin.Options); + apply(compiler: webpack.Compiler): void; } declare namespace WorkerPlugin { interface Options { + /** + * Controls the name of the generated worker chunk. + * The name is used to generate a URL according to `output.chunkFilename`. + */ filename?: string | undefined; + + /** + * Controls the chunk filename of secondary chunks generated by the worker bundle. + * Defaults to the parent compiler's `output.chunkFilename`. + */ chunkFilename?: string | undefined; + + /** + * Configures the value of `output.globalObject` for WorkerPlugin's internal Webpack compiler. + * Set to `false` to disable the warning when `output.globalObject` is set to `"window"`. + * Defaults to `"self"`, which is required for HMR to work correctly in workers. + */ globalObject?: false | string | undefined; - plugins?: Array | undefined; + /** - * If set to `true`, this option enables the bundling of [SharedWorker](https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker) + * List of Webpack plugins to apply to the worker's child compiler. + * By default, no plugins from the parent compiler are applied to avoid running things + * like `html-webpack-plugin` twice. Pass a plugin name string to copy it from the + * parent compiler's configuration, or pass a plugin instance to apply it only to worker code. + */ + plugins?: Array | undefined; + + /** + * If set to `true`, enables bundling of + * [`SharedWorker`](https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker). + * @default false */ sharedWorker?: boolean | undefined; + /** - * If set to `false`, this option disables the bundling of [Worker]. - * Intended to be used with `{ sharedWorker: true }` to allow bundling of [SharedWorker] only without also bundling [Worker]. + * If set to `false`, disables bundling of `Worker`. + * Intended to be used with `{ sharedWorker: true }` to bundle `SharedWorker` only. + * @default true */ worker?: boolean | undefined; + + /** + * If set to `true`, retains `{ type: 'module' }` in the bundled output instead of + * removing it. By default, WorkerPlugin removes the `type` option to compile + * Module Workers to Classic Workers, which are supported in all browsers. + * @default false + */ preserveTypeModule?: boolean | undefined; + /** - * Normally, WorkerPlugin will transform `new Worker('./a.js', { type: 'module' })` - * to completely remove the `type` option, outputting something like `new Worker('a.worker.js')`. - * This allows the plugin to compile Module Workers to Classic Workers, which are supported in all browsers. + * Override the `type` value output by WorkerPlugin in the worker constructor options. + * For example, setting `workerType: 'foo'` will output `new Worker('a.worker.js', { type: 'foo' })`. + * Takes precedence over `preserveTypeModule`. */ workerType?: string | undefined; } diff --git a/types/worker-plugin/package.json b/types/worker-plugin/package.json index af31d0aab24782..008f21c23d2482 100644 --- a/types/worker-plugin/package.json +++ b/types/worker-plugin/package.json @@ -6,14 +6,14 @@ "https://github.com/GoogleChromeLabs/worker-plugin" ], "dependencies": { - "@types/webpack": "^4" + "@types/webpack": "^5" }, "devDependencies": { "@types/worker-plugin": "workspace:." }, "owners": [ { - "name": "Artur Androsovych", + "name": "arturovt", "githubUsername": "arturovt" }, { diff --git a/types/worker-plugin/worker-plugin-tests.ts b/types/worker-plugin/worker-plugin-tests.ts index fd92aad90b435a..2850924ff97579 100644 --- a/types/worker-plugin/worker-plugin-tests.ts +++ b/types/worker-plugin/worker-plugin-tests.ts @@ -11,7 +11,9 @@ new WorkerPlugin({ chunkFilename: "[id]_worker_chunk.js", }); -class ExistingPlugin extends webpack.Plugin {} +class ExistingPlugin implements webpack.WebpackPluginInstance { + apply(compiler: webpack.Compiler): void {} +} const optionsArray: WorkerPlugin.Options[] = [ { From 2b02913dfbeb96de4ca87e9b74b7c5a02227503f Mon Sep 17 00:00:00 2001 From: Alison McKay Date: Wed, 18 Mar 2026 13:32:56 -0700 Subject: [PATCH 5/6] [office-js] [office-js-preview] Updates from CDN (#74692) --- types/office-js-preview/index.d.ts | 268 +++++++++++++++++++++++++++-- types/office-js/index.d.ts | 7 + 2 files changed, 265 insertions(+), 10 deletions(-) diff --git a/types/office-js-preview/index.d.ts b/types/office-js-preview/index.d.ts index c68bdf833ba682..d60030d67c4ffe 100644 --- a/types/office-js-preview/index.d.ts +++ b/types/office-js-preview/index.d.ts @@ -35480,6 +35480,48 @@ declare namespace Excel { function run(context: OfficeExtension.ClientRequestContext, batch: (context: Excel.RequestContext) => Promise): Promise; function postprocessBindingDescriptor(response: any): any; function getDataCommonPostprocess(response: any, callArgs: any): any; + /** + * Provides information about the ranges that raised the `onCalculationBusy` event, which triggers when the calculation is in progress in a worksheet. + * + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * @beta + */ + interface WorksheetCalculationBusyEventArgs { + /** + * The address of the ranges that began calculation. + If multiple ranges began calculation, the string is a comma-separated list of those range addresses. + * + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * @beta + */ + address: string; + /** + * The source of the event. It can be local or remote (through co-authoring). + * + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * @beta + */ + source: Excel.EventSource | "Local" | "Remote"; + /** + * Gets the type of the event. See `Excel.EventType` for details. + * + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * @beta + */ + type: "WorksheetCalculationBusy"; + /** + * The ID of the worksheet within which the calculation occurred. + * + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * @beta + */ + worksheetId: string; + } /** * Provides information about the local image. * @@ -39281,6 +39323,9 @@ declare namespace Excel { interface WorksheetFormulaChangedEventArgs { /** * Gets an array of `FormulaChangedEventDetail` objects, which contain the details about the all of the changed formulas. + + If the number of changed formulas or the size of the changed formula text exceeds a size limit, `formulaDetails` + returns undefined. This indicates that something on the sheet has changed, but the details cannot be reported. * * @remarks * [Api set: ExcelApi 1.13] @@ -40937,6 +40982,14 @@ declare namespace Excel { * [Api set: ExcelApi 1.9] */ getSelectedRanges(): Excel.RangeAreas; + /** + * Returns whether the workbook is currently in preview mode. + * + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * @beta + */ + inPreviewMode(): OfficeExtension.ClientResult; /** * Inserts the specified worksheets from a source workbook into the current workbook. @@ -41603,6 +41656,27 @@ declare namespace Excel { * @eventproperty */ readonly onCalculated: OfficeExtension.EventHandlers; + /** + * Occurs when cells in the worksheet are being calculated asynchronously. + + This event is triggered at the end of a calculation cycle, similar to the `onCalculated` event. + Ordinarily, when calculation completes for a cell, the `onCalculated` event is triggered. + However, if the calculation places a transient pending value (such as "#BUSY!") in the + cell, then `onCalculationBusy` is triggered instead to indicate that the cell's state has changed, + although calculation of the final value is not yet complete. When a subsequent + calculation cycle completes the calculation for that cell, the `onCalculated` event is + then triggered. + + Formula features such as JavaScript User-Defined Functions and =PY formulas + may trigger this event. + * + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * + * @eventproperty + * @beta + */ + readonly onCalculationBusy: OfficeExtension.EventHandlers; /** * Occurs when data changes in a specific worksheet. * @@ -41651,6 +41725,9 @@ declare namespace Excel { readonly onFormatChanged: OfficeExtension.EventHandlers; /** * Occurs when one or more formulas are changed in this worksheet. This event is for when the formula itself changes, not the data value resulting from the formula's calculation. + + The event is only triggered when the cell already contains a formula. + The new cell value may not include a formula. This event is not triggered when a formula is entered into a cell that did not previously contain a formula. * * @remarks * [Api set: ExcelApi 1.13] @@ -41904,6 +41981,27 @@ declare namespace Excel { * @eventproperty */ readonly onCalculated: OfficeExtension.EventHandlers; + /** + * Occurs when cells in the worksheet are being calculated asynchronously. + + This event is triggered at the end of a calculation cycle, similar to the `onCalculated` event. + Ordinarily, when calculation completes for a cell, the `onCalculated` event is triggered. + However, if the calculation places a transient pending value (such as "#BUSY!") in the + cell, then `onCalculationBusy` is triggered instead to indicate that the cell's state has changed, + although calculation of the final value is not yet complete. When a subsequent + calculation cycle completes the calculation for that cell, the `onCalculated` event is + then triggered. + + Formula features such as JavaScript User-Defined Functions and =PY formulas + may trigger this event. + * + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * + * @eventproperty + * @beta + */ + readonly onCalculationBusy: OfficeExtension.EventHandlers; /** * Occurs when any worksheet in the workbook is changed. * @@ -42679,7 +42777,8 @@ declare namespace Excel { readonly valueTypes: Excel.RangeValueType[][]; /** * Represents the raw values of the specified range. The data returned could be a string, number, or Boolean. Cells that contain an error will return the error string. - If the returned value starts with a plus ("+"), minus ("-"), or equal sign ("="), Excel interprets this value as a formula. + If the returned value starts with a plus ("+"), minus ("-"), or equal sign ("="), Excel interprets this value as a formula. + Locale-shaped strings (such as the date "19-8-2025" in nl-NL or fr-FR, format DD-MM-YYYY) are stored as text instead of as dates. To ensure dates are stored as dates, use a locale-aware API like `formulasLocal` or use a locale-neutral format like ISO (YYYY-MM-DD) or a numeric date serial. * * @remarks * [Api set: ExcelApi 1.1] @@ -47510,7 +47609,7 @@ declare namespace Excel { * @param sourceData The `Range` object corresponding to the source data. * @param seriesBy Optional. Specifies the way columns or rows are used as data series on the chart. See `Excel.ChartSeriesBy` for details. */ - add(type: "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel", sourceData: Range, seriesBy?: "Auto" | "Columns" | "Rows"): Excel.Chart; + add(type: "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel" | "ColumnClusteredEx" | "ColumnStackedEx" | "ColumnStacked100Ex" | "LineEx" | "LineStackedEx" | "LineStacked100Ex" | "PieEx" | "DoughnutEx" | "BarClusteredEx" | "BarStackedEx" | "BarStacked100Ex" | "AreaEx" | "AreaStackedEx" | "AreaStacked100Ex" | "XYScatterEx" | "BubbleEx", sourceData: Range, seriesBy?: "Auto" | "Columns" | "Rows"): Excel.Chart; /** * Returns the number of charts in the worksheet. * @@ -47693,7 +47792,7 @@ declare namespace Excel { * @remarks * [Api set: ExcelApi 1.7] */ - chartType: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; + chartType: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel" | "ColumnClusteredEx" | "ColumnStackedEx" | "ColumnStacked100Ex" | "LineEx" | "LineStackedEx" | "LineStacked100Ex" | "PieEx" | "DoughnutEx" | "BarClusteredEx" | "BarStackedEx" | "BarStacked100Ex" | "AreaEx" | "AreaStackedEx" | "AreaStacked100Ex" | "XYScatterEx" | "BubbleEx"; /** * Specifies the way that blank cells are plotted on a chart. * @@ -48253,7 +48352,7 @@ declare namespace Excel { * @remarks * [Api set: ExcelApi 1.7] */ - chartType: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; + chartType: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel" | "ColumnClusteredEx" | "ColumnStackedEx" | "ColumnStacked100Ex" | "LineEx" | "LineStackedEx" | "LineStacked100Ex" | "PieEx" | "DoughnutEx" | "BarClusteredEx" | "BarStackedEx" | "BarStacked100Ex" | "AreaEx" | "AreaStackedEx" | "AreaStacked100Ex" | "XYScatterEx" | "BubbleEx"; /** * Represents the doughnut hole size of a chart series. Only valid on doughnut and doughnut exploded charts. Throws an `InvalidArgument` error on invalid charts. @@ -64065,7 +64164,87 @@ declare namespace Excel { * @remarks * [Api set: ExcelApi 1.9] */ - funnel = "Funnel" + funnel = "Funnel", + /** + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + */ + columnClusteredEx = "ColumnClusteredEx", + /** + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + */ + columnStackedEx = "ColumnStackedEx", + /** + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + */ + columnStacked100Ex = "ColumnStacked100Ex", + /** + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + */ + lineEx = "LineEx", + /** + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + */ + lineStackedEx = "LineStackedEx", + /** + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + */ + lineStacked100Ex = "LineStacked100Ex", + /** + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + */ + pieEx = "PieEx", + /** + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + */ + doughnutEx = "DoughnutEx", + /** + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + */ + barClusteredEx = "BarClusteredEx", + /** + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + */ + barStackedEx = "BarStackedEx", + /** + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + */ + barStacked100Ex = "BarStacked100Ex", + /** + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + */ + areaEx = "AreaEx", + /** + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + */ + areaStackedEx = "AreaStackedEx", + /** + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + */ + areaStacked100Ex = "AreaStacked100Ex", + /** + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + */ + xyscatterEx = "XYScatterEx", + /** + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + */ + bubbleEx = "BubbleEx" } /** * @remarks @@ -66967,6 +67146,62 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ worksheetMoved = "WorksheetMoved", + /** + * ShapeAdded represents the type of event registered when a shape has been added to a ShapeCollection. + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * @beta + */ + shapeAdded = "ShapeAdded", + /** + * ShapeDeleted represents the type of event registered when a shape has been deleted from a ShapeCollection. + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * @beta + */ + shapeDeleted = "ShapeDeleted", + /** + * PivotTableAdded represents the type of event registered when a PivotTable has been added to a PivotTableCollection. + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * @beta + */ + pivotTableAdded = "PivotTableAdded", + /** + * PivotTableDeleted represents the type of event registered when a PivotTable has been deleted from a PivotTableCollection. + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * @beta + */ + pivotTableDeleted = "PivotTableDeleted", + /** + * NamedItemAdded represents the type of event registered when a NamedItem has been added to a NamedItemCollection. + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * @beta + */ + namedItemAdded = "NamedItemAdded", + /** + * NamedItemDeleted represents the type of event registered when a NamedItem has been deleted from a NamedItemCollection. + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * @beta + */ + namedItemDeleted = "NamedItemDeleted", + /** + * WorksheetNavigationObjectChanged represents the type of event registered when a navigation object has changed on a worksheet. + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * @beta + */ + worksheetNavigationObjectChanged = "WorksheetNavigationObjectChanged", + /** + * WorkbookNavigationObjectChanged represents the type of event registered when a navigation object has changed on a workbook. + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * @beta + */ + workbookNavigationObjectChanged = "WorkbookNavigationObjectChanged", /** * WorksheetRowHeightChanged represents the type of event registered when the height of a worksheet row is changed. * @remarks @@ -67030,7 +67265,20 @@ declare namespace Excel { * @remarks * [Api set: ExcelApi BETA (PREVIEW ONLY)] */ - augmentationLoopUploadStatusChanged = "AugmentationLoopUploadStatusChanged" + augmentationLoopUploadStatusChanged = "AugmentationLoopUploadStatusChanged", + /** + * `WorksheetCalculationBusy` represents the type of event registered on a `Worksheet` or `WorksheetCollection` and occurs when a cell enters a busy calculation state. + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * @beta + */ + worksheetCalculationBusy = "WorksheetCalculationBusy", + /** + * `WorkbookPreviewDirtied` represents the type of event registered when workbook preview mode has been dirtied. + * @remarks + * [Api set: ExcelApi BETA (PREVIEW ONLY)] + */ + workbookPreviewDirtied = "WorkbookPreviewDirtied" } /** * @remarks @@ -75725,7 +75973,7 @@ declare namespace Excel { * @remarks * [Api set: ExcelApi 1.7] */ - chartType?: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; + chartType?: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel" | "ColumnClusteredEx" | "ColumnStackedEx" | "ColumnStacked100Ex" | "LineEx" | "LineStackedEx" | "LineStacked100Ex" | "PieEx" | "DoughnutEx" | "BarClusteredEx" | "BarStackedEx" | "BarStacked100Ex" | "AreaEx" | "AreaStackedEx" | "AreaStacked100Ex" | "XYScatterEx" | "BubbleEx"; /** * Specifies the way that blank cells are plotted on a chart. * @@ -75950,7 +76198,7 @@ declare namespace Excel { * @remarks * [Api set: ExcelApi 1.7] */ - chartType?: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; + chartType?: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel" | "ColumnClusteredEx" | "ColumnStackedEx" | "ColumnStacked100Ex" | "LineEx" | "LineStackedEx" | "LineStacked100Ex" | "PieEx" | "DoughnutEx" | "BarClusteredEx" | "BarStackedEx" | "BarStacked100Ex" | "AreaEx" | "AreaStackedEx" | "AreaStacked100Ex" | "XYScatterEx" | "BubbleEx"; /** * Represents the doughnut hole size of a chart series. Only valid on doughnut and doughnut exploded charts. Throws an `InvalidArgument` error on invalid charts. @@ -82477,7 +82725,7 @@ declare namespace Excel { * @remarks * [Api set: ExcelApi 1.7] */ - chartType?: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; + chartType?: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel" | "ColumnClusteredEx" | "ColumnStackedEx" | "ColumnStacked100Ex" | "LineEx" | "LineStackedEx" | "LineStacked100Ex" | "PieEx" | "DoughnutEx" | "BarClusteredEx" | "BarStackedEx" | "BarStacked100Ex" | "AreaEx" | "AreaStackedEx" | "AreaStacked100Ex" | "XYScatterEx" | "BubbleEx"; /** * Specifies the way that blank cells are plotted on a chart. * @@ -82723,7 +82971,7 @@ declare namespace Excel { * @remarks * [Api set: ExcelApi 1.7] */ - chartType?: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; + chartType?: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel" | "ColumnClusteredEx" | "ColumnStackedEx" | "ColumnStacked100Ex" | "LineEx" | "LineStackedEx" | "LineStacked100Ex" | "PieEx" | "DoughnutEx" | "BarClusteredEx" | "BarStackedEx" | "BarStacked100Ex" | "AreaEx" | "AreaStackedEx" | "AreaStacked100Ex" | "XYScatterEx" | "BubbleEx"; /** * Represents the doughnut hole size of a chart series. Only valid on doughnut and doughnut exploded charts. Throws an `InvalidArgument` error on invalid charts. diff --git a/types/office-js/index.d.ts b/types/office-js/index.d.ts index b195c877a196be..2ce75c06df1a0c 100644 --- a/types/office-js/index.d.ts +++ b/types/office-js/index.d.ts @@ -35008,6 +35008,9 @@ declare namespace Excel { interface WorksheetFormulaChangedEventArgs { /** * Gets an array of `FormulaChangedEventDetail` objects, which contain the details about the all of the changed formulas. + + If the number of changed formulas or the size of the changed formula text exceeds a size limit, `formulaDetails` + returns undefined. This indicates that something on the sheet has changed, but the details cannot be reported. * * @remarks * [Api set: ExcelApi 1.13] @@ -37182,6 +37185,9 @@ declare namespace Excel { readonly onFormatChanged: OfficeExtension.EventHandlers; /** * Occurs when one or more formulas are changed in this worksheet. This event is for when the formula itself changes, not the data value resulting from the formula's calculation. + + The event is only triggered when the cell already contains a formula. + The new cell value may not include a formula. This event is not triggered when a formula is entered into a cell that did not previously contain a formula. * * @remarks * [Api set: ExcelApi 1.13] @@ -38169,6 +38175,7 @@ declare namespace Excel { /** * Represents the raw values of the specified range. The data returned could be a string, number, or Boolean. Cells that contain an error will return the error string. If the returned value starts with a plus ("+"), minus ("-"), or equal sign ("="), Excel interprets this value as a formula. + Locale-shaped strings (such as the date "19-8-2025" in nl-NL or fr-FR, format DD-MM-YYYY) are stored as text instead of as dates. To ensure dates are stored as dates, use a locale-aware API like `formulasLocal` or use a locale-neutral format like ISO (YYYY-MM-DD) or a numeric date serial. * * @remarks * [Api set: ExcelApi 1.1] From d3978b6847d7192606b6a23ebac626fe4d2d8d56 Mon Sep 17 00:00:00 2001 From: Sam Ramon <15154970+samantharamon@users.noreply.github.com> Date: Wed, 18 Mar 2026 13:33:33 -0700 Subject: [PATCH 6/6] [office-js][office-js-preview] (Outlook) Document changes to inline images in Outlook on the web and new Outlook on Windows (#74776) --- types/office-js-preview/index.d.ts | 174 +++++++++++++++++++---- types/office-js/index.d.ts | 212 ++++++++++++++++++++++++----- 2 files changed, 322 insertions(+), 64 deletions(-) diff --git a/types/office-js-preview/index.d.ts b/types/office-js-preview/index.d.ts index d60030d67c4ffe..2b03c3a5b12545 100644 --- a/types/office-js-preview/index.d.ts +++ b/types/office-js-preview/index.d.ts @@ -11616,7 +11616,7 @@ declare namespace Office { * `asyncContext`: Developers can provide any object they wish to access in the callback function. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of * type `Office.AsyncResult`. If the call fails, the `asyncResult.error` property will contain an error code with the reason for - * the failure. + * the failure. If the call succeeds, an array of `AttachmentDetailsCompose` objects is returned in the `asyncResult.value` property. */ getAttachmentsAsync(options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -11634,7 +11634,7 @@ declare namespace Office { * * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of * type `Office.AsyncResult`. If the call fails, the `asyncResult.error` property will contain an error code with the reason for - * the failure. + * the failure. If the call succeeds, an array of `AttachmentDetailsCompose` objects is returned in the `asyncResult.value` property. */ getAttachmentsAsync(callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -13408,13 +13408,43 @@ declare namespace Office { */ contentId: string; /** - * Gets the index of the attachment. + * Gets the identifier of an attachment. The value varies depending on the Outlook client. + * + * - In Outlook on the web and the new Outlook on Windows, the identifier is the Exchange Web Services (EWS) ID. + * For inline attachments, the initial identifier is a temporary attachment ID, prefixed with `addinId`, while the attachment is uploaded to the server. + * Once the upload completes, the attachment receives an EWS ID. For details, see the notes in the Remarks section. + * + * - In Outlook on Windows (classic) and on Mac, the identifier for inline and non-inline attachments is the index of the attachment. + * + * @remarks + * + * **Important**: Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. */ id: string; /** * Gets a value that indicates whether the attachment appears as an image in the body of the item instead of in the attachment list. */ isInline: boolean; + /** + * In Outlook on the web and the new Outlook on Windows, indicates whether an inline attachment in a message has been uploaded to the server and assigned an Exchange Web Services (EWS) ID. + * + * @remarks + * + * **Important**: + * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID in the `id` property and their `isServiceAccessible` property is set to `true`. + * The temporary attachment ID is only supported for the duration of the current compose session. For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * + * - In Outlook on Windows (classic) and on Mac, the `isServiceAccessible` property always returns `false` since the attachment ID is the index of the attachment. + */ + isServiceAccessible: boolean; /** * Gets the name of the attachment. * @@ -16560,6 +16590,12 @@ declare namespace Office { * - The `getAttachmentContentAsync` method gets the attachment with the specified identifier from the item. As a best practice, you should get * the attachment's identifier from a `getAttachmentsAsync` call, then in the same session, use that identifier to retrieve the attachment. * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * * - In Outlook on the web and the {@link https://support.microsoft.com/office/656bb8d9-5a60-49b2-a98b-ba7822bc7627 | new Outlook on Windows}, * `getAttachmentContentAsync` doesn't support attachments that were added using the **Upload and share** option. * @@ -16574,7 +16610,8 @@ declare namespace Office { * * - `InvalidAttachmentId`: The attachment identifier does not exist. * - * @param attachmentId - The identifier of the attachment you want to get. + * @param attachmentId - The identifier of the attachment you want to get. In Outlook on the web and the new Outlook on Windows, the temporary attachment ID that's + * locally generated for inline images that haven't been uploaded to the server yet are supported for the duration of the current compose session. * @param options - An object literal that contains one or more of the following properties:- * `asyncContext`: Developers can provide any object they wish to access in the callback function. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter, @@ -16597,6 +16634,12 @@ declare namespace Office { * - The `getAttachmentContentAsync` method gets the attachment with the specified identifier from the item. As a best practice, you should get * the attachment's identifier from a `getAttachmentsAsync` call, then in the same session, use that identifier to retrieve the attachment. * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * * - In Outlook on the web and the {@link https://support.microsoft.com/office/656bb8d9-5a60-49b2-a98b-ba7822bc7627 | new Outlook on Windows}, * `getAttachmentContentAsync` doesn't support attachments that were added using the **Upload and share** option. * @@ -16611,7 +16654,8 @@ declare namespace Office { * * - `InvalidAttachmentId`: The attachment identifier does not exist. * - * @param attachmentId - The identifier of the attachment you want to get. + * @param attachmentId - The identifier of the attachment you want to get. In Outlook on the web and the new Outlook on Windows, the temporary attachment ID that's + * locally generated for inline images that haven't been uploaded to the server yet are supported for the duration of the current compose session. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter, * `asyncResult`, which is an `Office.AsyncResult` object. If the call fails, the `asyncResult.error` property will contain * an error code with the reason for the failure. @@ -16627,14 +16671,22 @@ declare namespace Office { * * **{@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-add-ins-overview#extension-points | Applicable Outlook mode}**: Message Compose * - * **Important**: In Outlook on the web and the new Outlook on Windows, users can select the **Upload and share** option to upload an attachment to OneDrive and + * **Important**: + * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * + * - In Outlook on the web and the new Outlook on Windows, users can select the **Upload and share** option to upload an attachment to OneDrive and * include a link to the file in the mail item. However, since only a link is included, `getAttachmentsAsync` doesn't return this attachment. * * @param options - An object literal that contains one or more of the following properties:- * `asyncContext`: Developers can provide any object they wish to access in the callback function. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of * type `Office.AsyncResult`. If the call fails, the `asyncResult.error` property will contain an error code with the reason for - * the failure. + * the failure. If the call succeeds, an array of `AttachmentDetailsCompose` objects is returned in the `asyncResult.value` property. */ getAttachmentsAsync(options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -16647,12 +16699,20 @@ declare namespace Office { * * **{@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-add-ins-overview#extension-points | Applicable Outlook mode}**: Message Compose * - * **Important**: In Outlook on the web and the new Outlook on Windows, users can select the **Upload and share** option to upload an attachment to OneDrive and + * **Important**: + * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * + * - In Outlook on the web and the new Outlook on Windows, users can select the **Upload and share** option to upload an attachment to OneDrive and * include a link to the file in the mail item. However, since only a link is included, `getAttachmentsAsync` doesn't return this attachment. * * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of * type `Office.AsyncResult`. If the call fails, the `asyncResult.error` property will contain an error code with the reason for - * the failure. + * the failure. If the call succeeds, an array of `AttachmentDetailsCompose` objects is returned in the `asyncResult.value` property. */ getAttachmentsAsync(callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -20009,6 +20069,12 @@ declare namespace Office { * - This method isn't supported in Outlook on iOS or Android. For more information on supported APIs in Outlook mobile, see * {@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-mobile-apis | Outlook JavaScript APIs supported in Outlook on mobile devices}. * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID in the `id` property and their `isServiceAccessible` property is set to `true`. + * The temporary attachment ID is only supported for the duration of the current compose session. For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * * - Bitmap (BMP) images aren't supported if they're added as inline attachments. * * - In recent builds of classic Outlook on Windows, a bug was introduced that incorrectly appends an `Authorization: Bearer` header to @@ -20035,9 +20101,10 @@ declare namespace Office { * `asyncContext`: Developers can provide any object they wish to access in the callback function. * `isInline`: If true, indicates that the attachment will be shown inline as an image in the message body and won't be displayed in the attachment list. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of - * type `Office.AsyncResult`. On success, the attachment identifier will be provided in the `asyncResult.value` property. - * If uploading the attachment fails, the `asyncResult` object will contain an `Error` object that provides a description of - * the error. + * type `Office.AsyncResult`. On success, the attachment identifier is provided in the `asyncResult.value` property. The identifier varies depending on the Outlook client. + * In Outlook on the web and the new Outlook on Windows, the Exchange Web Services (EWS) ID is returned. If `isInline` is set to `true`, a temporary attachment ID prefixed with + * `addinId` is initially returned while the attachment is uploaded to the server. Once the upload completes, the attachment is then assigned an EWS ID. For details, see the notes in the Remarks section. + * In Outlook on Windows (classic) and on Mac, the index of the attachment is returned for inline and non-inline attachments. If uploading the attachment fails, a description of the error is provided in `asyncResult.error`. */ addFileAttachmentAsync(uri: string, attachmentName: string, options: Office.AsyncContextOptions & { isInline: boolean }, callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -20057,6 +20124,12 @@ declare namespace Office { * - This method isn't supported in Outlook on iOS or Android. For more information on supported APIs in Outlook mobile, see * {@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-mobile-apis | Outlook JavaScript APIs supported in Outlook on mobile devices}. * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID in the `id` property and their `isServiceAccessible` property is set to `true`. + * The temporary attachment ID is only supported for the duration of the current compose session. For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * * - Bitmap (BMP) images aren't supported if they're added as inline attachments. * * - In recent builds of classic Outlook on Windows, a bug was introduced that incorrectly appends an `Authorization: Bearer` header to @@ -20080,9 +20153,10 @@ declare namespace Office { * @param uri - The URI that provides the location of the file to attach to the message or appointment. The maximum length is 2048 characters. * @param attachmentName - The name of the attachment that is shown while the attachment is uploading. The maximum length is 255 characters. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of - * type `Office.AsyncResult`. On success, the attachment identifier will be provided in the `asyncResult.value` property. - * If uploading the attachment fails, the `asyncResult` object will contain an `Error` object that provides a description of - * the error. + * type `Office.AsyncResult`. On success, the attachment identifier is provided in the `asyncResult.value` property. The identifier varies depending on the Outlook client. + * In Outlook on the web and the new Outlook on Windows, the Exchange Web Services (EWS) ID is returned. If `isInline` is set to `true`, a temporary attachment ID prefixed with + * `addinId` is initially returned while the attachment is uploaded to the server. Once the upload completes, the attachment is then assigned an EWS ID. For details, see the notes in the Remarks section. + * In Outlook on Windows (classic) and on Mac, the index of the attachment is returned for inline and non-inline attachments. If uploading the attachment fails, a description of the error is provided in `asyncResult.error`. */ addFileAttachmentAsync(uri: string, attachmentName: string, callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -20105,6 +20179,12 @@ declare namespace Office { * - Adding an inline Base64 file to a message in compose mode is supported in Outlook on Android and on iOS. For more information on supported APIs in * Outlook mobile, see {@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-mobile-apis | Outlook JavaScript APIs supported in Outlook on mobile devices}. * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * * - If you're using a data URL API (for example, `readAsDataURL`), you need to strip out the data URL prefix, then send the rest of the string to this API. * For example, if the full string is represented by `data:image/svg+xml;base64,`, remove `data:image/svg+xml;base64,`. * @@ -20128,9 +20208,11 @@ declare namespace Office { * @param options - An object literal that contains one or more of the following properties:- * `asyncContext`: Developers can provide any object they wish to access in the callback function. * `isInline`: If true, indicates that the attachment will be shown inline as an image in the message body and won't be displayed in the attachment list. - * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of - * type Office.AsyncResult. On success, the attachment identifier will be provided in the `asyncResult.value` property. - * If uploading the attachment fails, the `asyncResult` object will contain an `Error` object that provides a description of the error. + * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of type `Office.AsyncResult`. + * On success, the attachment identifier is provided in the `asyncResult.value` property. The identifier varies depending on the Outlook client. + * In Outlook on the web and the new Outlook on Windows, the Exchange Web Services (EWS) ID is returned. If `isInline` is set to `true`, a temporary attachment ID prefixed with + * `addinId` is initially returned while the attachment is uploaded to the server. Once the upload completes, the attachment is then assigned an EWS ID. For details, see the notes in the Remarks section. + * In Outlook on Windows (classic) and on Mac, the index of the attachment is returned for inline and non-inline attachments. If uploading the attachment fails, a description of the error is provided in `asyncResult.error`. */ addFileAttachmentFromBase64Async(base64File: string, attachmentName: string, options: Office.AsyncContextOptions & { isInline: boolean }, callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -20153,6 +20235,12 @@ declare namespace Office { * - Adding an inline Base64 file to a message in compose mode is supported in Outlook on Android and on iOS. For more information on supported APIs in * Outlook mobile, see {@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-mobile-apis | Outlook JavaScript APIs supported in Outlook on mobile devices}. * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * * - If you're using a data URL API (for example, `readAsDataURL`), you need to strip out the data URL prefix, then send the rest of the string to this API. * For example, if the full string is represented by `data:image/svg+xml;base64,`, remove `data:image/svg+xml;base64,`. * @@ -20173,9 +20261,11 @@ declare namespace Office { * * @param base64File - The Base64-encoded content of an image or file to be added to an email or event. The maximum length of the encoded string is 27,892,122 characters (about 25 MB). * @param attachmentName - The name of the attachment that is shown while the attachment is uploading. The maximum length is 255 characters. - * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of - * type Office.AsyncResult. On success, the attachment identifier will be provided in the `asyncResult.value` property. - * If uploading the attachment fails, the `asyncResult` object will contain an `Error` object that provides a description of the error. + * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of type `Office.AsyncResult`. + * On success, the attachment identifier is provided in the `asyncResult.value` property. The identifier varies depending on the Outlook client. + * In Outlook on the web and the new Outlook on Windows, the Exchange Web Services (EWS) ID is returned. If `isInline` is set to `true`, a temporary attachment ID prefixed with + * `addinId` is initially returned while the attachment is uploaded to the server. Once the upload completes, the attachment is then assigned an EWS ID. For details, see the notes in the Remarks section. + * In Outlook on Windows (classic) and on Mac, the index of the attachment is returned for inline and non-inline attachments. If uploading the attachment fails, a description of the error is provided in `asyncResult.error`. */ addFileAttachmentFromBase64Async(base64File: string, attachmentName: string, callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -20458,6 +20548,12 @@ declare namespace Office { * - The `getAttachmentContentAsync` method gets the attachment with the specified identifier from the item. As a best practice, you should get * the attachment's identifier from a `getAttachmentsAsync` call, then in the same session, use that identifier to retrieve the attachment. * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * * - In Outlook on the web and the {@link https://support.microsoft.com/office/656bb8d9-5a60-49b2-a98b-ba7822bc7627 | new Outlook on Windows}, * `getAttachmentContentAsync` doesn't support attachments that were added using the **Upload and share** option. * @@ -20472,7 +20568,8 @@ declare namespace Office { * * - `InvalidAttachmentId`: The attachment identifier does not exist. * - * @param attachmentId - The identifier of the attachment you want to get. + * @param attachmentId - The identifier of the attachment you want to get. In Outlook on the web and the new Outlook on Windows, the temporary attachment ID that's + * locally generated for inline images that haven't been uploaded to the server yet are supported for the duration of the current compose session. * @param options - An object literal that contains one or more of the following properties:- * `asyncContext`: Developers can provide any object they wish to access in the callback function. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter, @@ -20495,6 +20592,12 @@ declare namespace Office { * - The `getAttachmentContentAsync` method gets the attachment with the specified identifier from the item. As a best practice, you should get * the attachment's identifier from a `getAttachmentsAsync` call, then in the same session, use that identifier to retrieve the attachment. * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * * - In Outlook on the web and the {@link https://support.microsoft.com/office/656bb8d9-5a60-49b2-a98b-ba7822bc7627 | new Outlook on Windows}, * `getAttachmentContentAsync` doesn't support attachments that were added using the **Upload and share** option. * @@ -20509,7 +20612,8 @@ declare namespace Office { * * - `InvalidAttachmentId`: The attachment identifier does not exist. * - * @param attachmentId - The identifier of the attachment you want to get. + * @param attachmentId - The identifier of the attachment you want to get. In Outlook on the web and the new Outlook on Windows, the temporary attachment ID that's + * locally generated for inline images that haven't been uploaded to the server yet are supported for the duration of the current compose session. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter, * `asyncResult`, which is an `Office.AsyncResult` object. If the call fails, the `asyncResult.error` property will contain * an error code with the reason for the failure. @@ -20525,14 +20629,22 @@ declare namespace Office { * * **{@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-add-ins-overview#extension-points | Applicable Outlook mode}**: Message Compose * - * **Important**: In Outlook on the web and the new Outlook on Windows, users can select the **Upload and share** option to upload an attachment to OneDrive and + * **Important**: + * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * + * - In Outlook on the web and the new Outlook on Windows, users can select the **Upload and share** option to upload an attachment to OneDrive and * include a link to the file in the mail item. However, since only a link is included, `getAttachmentsAsync` doesn't return this attachment. * * @param options - An object literal that contains one or more of the following properties:- * `asyncContext`: Developers can provide any object they wish to access in the callback function. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of * type `Office.AsyncResult`. If the call fails, the `asyncResult.error` property will contain an error code with the reason for - * the failure. + * the failure. If the call succeeds, an array of `AttachmentDetailsCompose` objects is returned in the `asyncResult.value` property. */ getAttachmentsAsync(options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -20545,12 +20657,20 @@ declare namespace Office { * * **{@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-add-ins-overview#extension-points | Applicable Outlook mode}**: Message Compose * - * **Important**: In Outlook on the web and the new Outlook on Windows, users can select the **Upload and share** option to upload an attachment to OneDrive and + * **Important**: + * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * + * - In Outlook on the web and the new Outlook on Windows, users can select the **Upload and share** option to upload an attachment to OneDrive and * include a link to the file in the mail item. However, since only a link is included, `getAttachmentsAsync` doesn't return this attachment. * * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of * type `Office.AsyncResult`. If the call fails, the `asyncResult.error` property will contain an error code with the reason for - * the failure. + * the failure. If the call succeeds, an array of `AttachmentDetailsCompose` objects are returned in the `asyncResult.value` property. */ getAttachmentsAsync(callback?: (asyncResult: Office.AsyncResult) => void): void; /** diff --git a/types/office-js/index.d.ts b/types/office-js/index.d.ts index 2ce75c06df1a0c..1f2b2ee8138fd2 100644 --- a/types/office-js/index.d.ts +++ b/types/office-js/index.d.ts @@ -11574,7 +11574,7 @@ declare namespace Office { * `asyncContext`: Developers can provide any object they wish to access in the callback function. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of * type `Office.AsyncResult`. If the call fails, the `asyncResult.error` property will contain an error code with the reason for - * the failure. + * the failure. If the call succeeds, an array of `AttachmentDetailsCompose` objects is returned in the `asyncResult.value` property. */ getAttachmentsAsync(options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -11592,7 +11592,7 @@ declare namespace Office { * * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of * type `Office.AsyncResult`. If the call fails, the `asyncResult.error` property will contain an error code with the reason for - * the failure. + * the failure. If the call succeeds, an array of `AttachmentDetailsCompose` objects is returned in the `asyncResult.value` property. */ getAttachmentsAsync(callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -13337,13 +13337,43 @@ declare namespace Office { */ contentId: string; /** - * Gets the index of the attachment. + * Gets the identifier of an attachment. The value varies depending on the Outlook client. + * + * - In Outlook on the web and the new Outlook on Windows, the identifier is the Exchange Web Services (EWS) ID. + * For inline attachments, the initial identifier is a temporary attachment ID, prefixed with `addinId`, while the attachment is uploaded to the server. + * Once the upload completes, the attachment receives an EWS ID. For details, see the notes in the Remarks section. + * + * - In Outlook on Windows (classic) and on Mac, the identifier for inline and non-inline attachments is the index of the attachment. + * + * @remarks + * + * **Important**: Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. */ id: string; /** * Gets a value that indicates whether the attachment appears as an image in the body of the item instead of in the attachment list. */ isInline: boolean; + /** + * In Outlook on the web and the new Outlook on Windows, indicates whether an inline attachment in a message has been uploaded to the server and assigned an Exchange Web Services (EWS) ID. + * + * @remarks + * + * **Important**: + * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID in the `id` property and their `isServiceAccessible` property is set to `true`. + * The temporary attachment ID is only supported for the duration of the current compose session. For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * + * - In Outlook on Windows (classic) and on Mac, the `isServiceAccessible` property always returns `false` since the attachment ID is the index of the attachment. + */ + isServiceAccessible: boolean; /** * Gets the name of the attachment. * @@ -16044,12 +16074,6 @@ declare namespace Office { /** * Gets an attachment from a message or appointment and returns it as an `AttachmentContent` object. * - * The `getAttachmentContentAsync` method gets the attachment with the specified identifier from the item. As a best practice, you should get - * the attachment's identifier from a `getAttachmentsAsync` call, then in the same session, use that identifier to retrieve the attachment. - * In Outlook on the web and {@link https://support.microsoft.com/office/656bb8d9-5a60-49b2-a98b-ba7822bc7627 | new Outlook on Windows}, - * the attachment identifier is valid only within the same session. A session is over when the user closes the app, or if the user starts composing an inline form - * then subsequently pops out the form to continue in a separate window. - * * @remarks * [Api set: Mailbox 1.8] * @@ -16057,6 +16081,24 @@ declare namespace Office { * * **{@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-add-ins-overview#extension-points | Applicable Outlook mode}**: Message Compose * + * **Important**: + * + * - The `getAttachmentContentAsync` method gets the attachment with the specified identifier from the item. As a best practice, you should get + * the attachment's identifier from a `getAttachmentsAsync` call, then in the same session, use that identifier to retrieve the attachment. + * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * + * - In Outlook on the web and the {@link https://support.microsoft.com/office/656bb8d9-5a60-49b2-a98b-ba7822bc7627 | new Outlook on Windows}, + * `getAttachmentContentAsync` doesn't support attachments that were added using the **Upload and share** option. + * + * - In Outlook on the web, on mobile devices, and in the new Outlook on Windows, the attachment identifier is valid only within the same session. + * A session is over when the user closes the app, or if the user starts composing an inline form then subsequently pops out the form to + * continue in a separate window. + * * **Errors**: * * - `AttachmentTypeNotSupported`: The attachment type isn't supported. Unsupported types include embedded images in Rich Text Format, @@ -16064,7 +16106,8 @@ declare namespace Office { * * - `InvalidAttachmentId`: The attachment identifier does not exist. * - * @param attachmentId - The identifier of the attachment you want to get. + * @param attachmentId - The identifier of the attachment you want to get. In Outlook on the web and the new Outlook on Windows, the temporary attachment ID that's + * locally generated for inline images that haven't been uploaded to the server yet are supported for the duration of the current compose session. * @param options - An object literal that contains one or more of the following properties:- * `asyncContext`: Developers can provide any object they wish to access in the callback function. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter, @@ -16075,12 +16118,6 @@ declare namespace Office { /** * Gets an attachment from a message or appointment and returns it as an `AttachmentContent` object. * - * The `getAttachmentContentAsync` method gets the attachment with the specified identifier from the item. As a best practice, you should get - * the attachment's identifier from a `getAttachmentsAsync` call, then in the same session, use that identifier to retrieve the attachment. - * In Outlook on the web and {@link https://support.microsoft.com/office/656bb8d9-5a60-49b2-a98b-ba7822bc7627 | new Outlook on Windows}, - * the attachment identifier is valid only within the same session. A session is over when the user closes the app, or if the user starts composing an inline form - * then subsequently pops out the form to continue in a separate window. - * * @remarks * [Api set: Mailbox 1.8] * @@ -16088,6 +16125,24 @@ declare namespace Office { * * **{@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-add-ins-overview#extension-points | Applicable Outlook mode}**: Message Compose * + * **Important**: + * + * - The `getAttachmentContentAsync` method gets the attachment with the specified identifier from the item. As a best practice, you should get + * the attachment's identifier from a `getAttachmentsAsync` call, then in the same session, use that identifier to retrieve the attachment. + * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * + * - In Outlook on the web and the {@link https://support.microsoft.com/office/656bb8d9-5a60-49b2-a98b-ba7822bc7627 | new Outlook on Windows}, + * `getAttachmentContentAsync` doesn't support attachments that were added using the **Upload and share** option. + * + * - In Outlook on the web, on mobile devices, and in the new Outlook on Windows, the attachment identifier is valid only within the same session. + * A session is over when the user closes the app, or if the user starts composing an inline form then subsequently pops out the form to + * continue in a separate window. + * * **Errors**: * * - `AttachmentTypeNotSupported`: The attachment type isn't supported. Unsupported types include embedded images in Rich Text Format, @@ -16095,7 +16150,8 @@ declare namespace Office { * * - `InvalidAttachmentId`: The attachment identifier does not exist. * - * @param attachmentId - The identifier of the attachment you want to get. + * @param attachmentId - The identifier of the attachment you want to get. In Outlook on the web and the new Outlook on Windows, the temporary attachment ID that's + * locally generated for inline images that haven't been uploaded to the server yet are supported for the duration of the current compose session. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter, * `asyncResult`, which is an `Office.AsyncResult` object. If the call fails, the `asyncResult.error` property will contain * an error code with the reason for the failure. @@ -16111,11 +16167,22 @@ declare namespace Office { * * **{@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-add-ins-overview#extension-points | Applicable Outlook mode}**: Message Compose * + * **Important**: + * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * + * - In Outlook on the web and the new Outlook on Windows, users can select the **Upload and share** option to upload an attachment to OneDrive and + * include a link to the file in the mail item. However, since only a link is included, `getAttachmentsAsync` doesn't return this attachment. + * * @param options - An object literal that contains one or more of the following properties:- * `asyncContext`: Developers can provide any object they wish to access in the callback function. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of * type `Office.AsyncResult`. If the call fails, the `asyncResult.error` property will contain an error code with the reason for - * the failure. + * the failure. If the call succeeds, an array of `AttachmentDetailsCompose` objects is returned in the `asyncResult.value` property. */ getAttachmentsAsync(options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -16128,9 +16195,20 @@ declare namespace Office { * * **{@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-add-ins-overview#extension-points | Applicable Outlook mode}**: Message Compose * + * **Important**: + * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * + * - In Outlook on the web and the new Outlook on Windows, users can select the **Upload and share** option to upload an attachment to OneDrive and + * include a link to the file in the mail item. However, since only a link is included, `getAttachmentsAsync` doesn't return this attachment. + * * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of * type `Office.AsyncResult`. If the call fails, the `asyncResult.error` property will contain an error code with the reason for - * the failure. + * the failure. If the call succeeds, an array of `AttachmentDetailsCompose` objects is returned in the `asyncResult.value` property. */ getAttachmentsAsync(callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -19461,6 +19539,12 @@ declare namespace Office { * - This method isn't supported in Outlook on iOS or Android. For more information on supported APIs in Outlook mobile, see * {@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-mobile-apis | Outlook JavaScript APIs supported in Outlook on mobile devices}. * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID in the `id` property and their `isServiceAccessible` property is set to `true`. + * The temporary attachment ID is only supported for the duration of the current compose session. For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * * - Bitmap (BMP) images aren't supported if they're added as inline attachments. * * - In recent builds of classic Outlook on Windows, a bug was introduced that incorrectly appends an `Authorization: Bearer` header to @@ -19487,9 +19571,10 @@ declare namespace Office { * `asyncContext`: Developers can provide any object they wish to access in the callback function. * `isInline`: If true, indicates that the attachment will be shown inline as an image in the message body and won't be displayed in the attachment list. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of - * type `Office.AsyncResult`. On success, the attachment identifier will be provided in the `asyncResult.value` property. - * If uploading the attachment fails, the `asyncResult` object will contain an `Error` object that provides a description of - * the error. + * type `Office.AsyncResult`. On success, the attachment identifier is provided in the `asyncResult.value` property. The identifier varies depending on the Outlook client. + * In Outlook on the web and the new Outlook on Windows, the Exchange Web Services (EWS) ID is returned. If `isInline` is set to `true`, a temporary attachment ID prefixed with + * `addinId` is initially returned while the attachment is uploaded to the server. Once the upload completes, the attachment is then assigned an EWS ID. For details, see the notes in the Remarks section. + * In Outlook on Windows (classic) and on Mac, the index of the attachment is returned for inline and non-inline attachments. If uploading the attachment fails, a description of the error is provided in `asyncResult.error`. */ addFileAttachmentAsync(uri: string, attachmentName: string, options: Office.AsyncContextOptions & { isInline: boolean }, callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -19509,6 +19594,12 @@ declare namespace Office { * - This method isn't supported in Outlook on iOS or Android. For more information on supported APIs in Outlook mobile, see * {@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-mobile-apis | Outlook JavaScript APIs supported in Outlook on mobile devices}. * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID in the `id` property and their `isServiceAccessible` property is set to `true`. + * The temporary attachment ID is only supported for the duration of the current compose session. For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * * - Bitmap (BMP) images aren't supported if they're added as inline attachments. * * - In recent builds of classic Outlook on Windows, a bug was introduced that incorrectly appends an `Authorization: Bearer` header to @@ -19532,9 +19623,10 @@ declare namespace Office { * @param uri - The URI that provides the location of the file to attach to the message or appointment. The maximum length is 2048 characters. * @param attachmentName - The name of the attachment that is shown while the attachment is uploading. The maximum length is 255 characters. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of - * type `Office.AsyncResult`. On success, the attachment identifier will be provided in the `asyncResult.value` property. - * If uploading the attachment fails, the `asyncResult` object will contain an `Error` object that provides a description of - * the error. + * type `Office.AsyncResult`. On success, the attachment identifier is provided in the `asyncResult.value` property. The identifier varies depending on the Outlook client. + * In Outlook on the web and the new Outlook on Windows, the Exchange Web Services (EWS) ID is returned. If `isInline` is set to `true`, a temporary attachment ID prefixed with + * `addinId` is initially returned while the attachment is uploaded to the server. Once the upload completes, the attachment is then assigned an EWS ID. For details, see the notes in the Remarks section. + * In Outlook on Windows (classic) and on Mac, the index of the attachment is returned for inline and non-inline attachments. If uploading the attachment fails, a description of the error is provided in `asyncResult.error`. */ addFileAttachmentAsync(uri: string, attachmentName: string, callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -19557,6 +19649,12 @@ declare namespace Office { * - Adding an inline Base64 file to a message in compose mode is supported in Outlook on Android and on iOS. For more information on supported APIs in * Outlook mobile, see {@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-mobile-apis | Outlook JavaScript APIs supported in Outlook on mobile devices}. * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * * - If you're using a data URL API (for example, `readAsDataURL`), you need to strip out the data URL prefix, then send the rest of the string to this API. * For example, if the full string is represented by `data:image/svg+xml;base64,`, remove `data:image/svg+xml;base64,`. * @@ -19580,9 +19678,11 @@ declare namespace Office { * @param options - An object literal that contains one or more of the following properties:- * `asyncContext`: Developers can provide any object they wish to access in the callback function. * `isInline`: If true, indicates that the attachment will be shown inline as an image in the message body and won't be displayed in the attachment list. - * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of - * type Office.AsyncResult. On success, the attachment identifier will be provided in the `asyncResult.value` property. - * If uploading the attachment fails, the `asyncResult` object will contain an `Error` object that provides a description of the error. + * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of type `Office.AsyncResult`. + * On success, the attachment identifier is provided in the `asyncResult.value` property. The identifier varies depending on the Outlook client. + * In Outlook on the web and the new Outlook on Windows, the Exchange Web Services (EWS) ID is returned. If `isInline` is set to `true`, a temporary attachment ID prefixed with + * `addinId` is initially returned while the attachment is uploaded to the server. Once the upload completes, the attachment is then assigned an EWS ID. For details, see the notes in the Remarks section. + * In Outlook on Windows (classic) and on Mac, the index of the attachment is returned for inline and non-inline attachments. If uploading the attachment fails, a description of the error is provided in `asyncResult.error`. */ addFileAttachmentFromBase64Async(base64File: string, attachmentName: string, options: Office.AsyncContextOptions & { isInline: boolean }, callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -19605,6 +19705,12 @@ declare namespace Office { * - Adding an inline Base64 file to a message in compose mode is supported in Outlook on Android and on iOS. For more information on supported APIs in * Outlook mobile, see {@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-mobile-apis | Outlook JavaScript APIs supported in Outlook on mobile devices}. * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * * - If you're using a data URL API (for example, `readAsDataURL`), you need to strip out the data URL prefix, then send the rest of the string to this API. * For example, if the full string is represented by `data:image/svg+xml;base64,`, remove `data:image/svg+xml;base64,`. * @@ -19625,9 +19731,11 @@ declare namespace Office { * * @param base64File - The Base64-encoded content of an image or file to be added to an email or event. The maximum length of the encoded string is 27,892,122 characters (about 25 MB). * @param attachmentName - The name of the attachment that is shown while the attachment is uploading. The maximum length is 255 characters. - * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of - * type Office.AsyncResult. On success, the attachment identifier will be provided in the `asyncResult.value` property. - * If uploading the attachment fails, the `asyncResult` object will contain an `Error` object that provides a description of the error. + * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of type `Office.AsyncResult`. + * On success, the attachment identifier is provided in the `asyncResult.value` property. The identifier varies depending on the Outlook client. + * In Outlook on the web and the new Outlook on Windows, the Exchange Web Services (EWS) ID is returned. If `isInline` is set to `true`, a temporary attachment ID prefixed with + * `addinId` is initially returned while the attachment is uploaded to the server. Once the upload completes, the attachment is then assigned an EWS ID. For details, see the notes in the Remarks section. + * In Outlook on Windows (classic) and on Mac, the index of the attachment is returned for inline and non-inline attachments. If uploading the attachment fails, a description of the error is provided in `asyncResult.error`. */ addFileAttachmentFromBase64Async(base64File: string, attachmentName: string, callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -19910,6 +20018,12 @@ declare namespace Office { * - The `getAttachmentContentAsync` method gets the attachment with the specified identifier from the item. As a best practice, you should get * the attachment's identifier from a `getAttachmentsAsync` call, then in the same session, use that identifier to retrieve the attachment. * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * * - In Outlook on the web and the {@link https://support.microsoft.com/office/656bb8d9-5a60-49b2-a98b-ba7822bc7627 | new Outlook on Windows}, * `getAttachmentContentAsync` doesn't support attachments that were added using the **Upload and share** option. * @@ -19924,7 +20038,8 @@ declare namespace Office { * * - `InvalidAttachmentId`: The attachment identifier does not exist. * - * @param attachmentId - The identifier of the attachment you want to get. + * @param attachmentId - The identifier of the attachment you want to get. In Outlook on the web and the new Outlook on Windows, the temporary attachment ID that's + * locally generated for inline images that haven't been uploaded to the server yet are supported for the duration of the current compose session. * @param options - An object literal that contains one or more of the following properties:- * `asyncContext`: Developers can provide any object they wish to access in the callback function. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter, @@ -19947,6 +20062,12 @@ declare namespace Office { * - The `getAttachmentContentAsync` method gets the attachment with the specified identifier from the item. As a best practice, you should get * the attachment's identifier from a `getAttachmentsAsync` call, then in the same session, use that identifier to retrieve the attachment. * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * * - In Outlook on the web and the {@link https://support.microsoft.com/office/656bb8d9-5a60-49b2-a98b-ba7822bc7627 | new Outlook on Windows}, * `getAttachmentContentAsync` doesn't support attachments that were added using the **Upload and share** option. * @@ -19961,7 +20082,8 @@ declare namespace Office { * * - `InvalidAttachmentId`: The attachment identifier does not exist. * - * @param attachmentId - The identifier of the attachment you want to get. + * @param attachmentId - The identifier of the attachment you want to get. In Outlook on the web and the new Outlook on Windows, the temporary attachment ID that's + * locally generated for inline images that haven't been uploaded to the server yet are supported for the duration of the current compose session. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter, * `asyncResult`, which is an `Office.AsyncResult` object. If the call fails, the `asyncResult.error` property will contain * an error code with the reason for the failure. @@ -19977,14 +20099,22 @@ declare namespace Office { * * **{@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-add-ins-overview#extension-points | Applicable Outlook mode}**: Message Compose * - * **Important**: In Outlook on the web and the new Outlook on Windows, users can select the **Upload and share** option to upload an attachment to OneDrive and + * **Important**: + * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * + * - In Outlook on the web and the new Outlook on Windows, users can select the **Upload and share** option to upload an attachment to OneDrive and * include a link to the file in the mail item. However, since only a link is included, `getAttachmentsAsync` doesn't return this attachment. * * @param options - An object literal that contains one or more of the following properties:- * `asyncContext`: Developers can provide any object they wish to access in the callback function. * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of * type `Office.AsyncResult`. If the call fails, the `asyncResult.error` property will contain an error code with the reason for - * the failure. + * the failure. If the call succeeds, an array of `AttachmentDetailsCompose` objects is returned in the `asyncResult.value` property. */ getAttachmentsAsync(options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult) => void): void; /** @@ -19997,12 +20127,20 @@ declare namespace Office { * * **{@link https://learn.microsoft.com/office/dev/add-ins/outlook/outlook-add-ins-overview#extension-points | Applicable Outlook mode}**: Message Compose * - * **Important**: In Outlook on the web and the new Outlook on Windows, users can select the **Upload and share** option to upload an attachment to OneDrive and + * **Important**: + * + * - Starting March 30, 2026, after the call to `addFileAttachmentAsync` or `addFileAttachmentFromBase64Async` with `isInline` set to `true` completes, inline images in messages in Outlook on the web and the new Outlook on Windows + * are locally assigned a temporary attachment ID while they're uploaded to the server. A temporary attachment ID is prefixed with `addinId`. Once the images are + * uploaded to the server, they are then assigned an Exchange Web Services (EWS) ID. The temporary attachment ID is only supported for the duration of the current compose session. + * For more information on the changes to how inline images are handled, see + * {@link https://devblogs.microsoft.com/microsoft365dev/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins/ | Changes to attachment IDs for inline images in Outlook add-ins}. + * + * - In Outlook on the web and the new Outlook on Windows, users can select the **Upload and share** option to upload an attachment to OneDrive and * include a link to the file in the mail item. However, since only a link is included, `getAttachmentsAsync` doesn't return this attachment. * * @param callback - Optional. When the method completes, the function passed in the `callback` parameter is called with a single parameter of * type `Office.AsyncResult`. If the call fails, the `asyncResult.error` property will contain an error code with the reason for - * the failure. + * the failure. If the call succeeds, an array of `AttachmentDetailsCompose` objects is returned in the `asyncResult.value` property. */ getAttachmentsAsync(callback?: (asyncResult: Office.AsyncResult) => void): void; /**