@microsoft/sp-module-interfaces 1.21.1 → 1.22.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/index-internal-beta.d.ts +17 -0
  2. package/dist/index-internal-public.d.ts +16 -0
  3. package/dist/index-internal.d.ts +724 -14
  4. package/lib-commonjs/index.js +1 -2
  5. package/lib-commonjs/manifestHelpers.js +1 -1
  6. package/lib-commonjs/manifestSchemaValidator.js +1 -1
  7. package/lib-commonjs/manifestSchemas/IAdaptiveCardExtensionManifest.js +1 -1
  8. package/lib-commonjs/manifestSchemas/IClientSideApplicationManifest.js +1 -1
  9. package/lib-commonjs/manifestSchemas/IClientSideAssemblyManifest.js +1 -1
  10. package/lib-commonjs/manifestSchemas/IClientSideComponentLoaderConfiguration.js +1 -1
  11. package/lib-commonjs/manifestSchemas/IClientSideComponentManifest.js +1 -1
  12. package/lib-commonjs/manifestSchemas/IClientSideExtensionManifest.js +1 -1
  13. package/lib-commonjs/manifestSchemas/IClientSideLibraryManifest.js +1 -1
  14. package/lib-commonjs/manifestSchemas/IClientSideManifestBase.js +1 -1
  15. package/lib-commonjs/manifestSchemas/IClientSideMultiVersionManifest.js +1 -1
  16. package/lib-commonjs/manifestSchemas/IClientSideWebPartManifest.js +1 -1
  17. package/lib-commonjs/manifestSchemas/ICommandSetExtensionManifest.js +1 -1
  18. package/lib-commonjs/manifestSchemas/IPrefabAppManifest.js +1 -1
  19. package/lib-commonjs/manifestSchemas/ManifestType.js +1 -1
  20. package/lib-commonjs/manifestSchemas/examples/application_1.manifest.js +1 -1
  21. package/lib-commonjs/manifestSchemas/examples/application_2.manifest.js +1 -1
  22. package/lib-commonjs/manifestSchemas/examples/application_3.manifest.js +1 -1
  23. package/lib-commonjs/manifestSchemas/examples/assembly_1.manifest.js +1 -1
  24. package/lib-commonjs/manifestSchemas/examples/commandSet_1.manifest.js +1 -1
  25. package/lib-commonjs/manifestSchemas/examples/extension_1.manifest.js +1 -1
  26. package/lib-commonjs/manifestSchemas/examples/extension_2.manifest.js +1 -1
  27. package/lib-commonjs/manifestSchemas/examples/extension_3.manifest.js +1 -1
  28. package/lib-commonjs/manifestSchemas/examples/extension_4.manifest.js +1 -1
  29. package/lib-commonjs/manifestSchemas/examples/library_1.manifest.js +1 -1
  30. package/lib-commonjs/manifestSchemas/examples/multi-version_1.manifest.js +1 -1
  31. package/lib-commonjs/manifestSchemas/examples/prefab_1.manifest.js +1 -1
  32. package/lib-commonjs/manifestSchemas/examples/prefab_2.manifest.js +1 -1
  33. package/lib-commonjs/manifestSchemas/examples/webpart.manifest.json +62 -0
  34. package/lib-commonjs/manifestSchemas/examples/webpart_1.manifest.js +63 -1
  35. package/lib-commonjs/manifestSchemas/examples/webpart_2.manifest.js +63 -1
  36. package/lib-commonjs/manifestSchemas/jsonSchemas/client-side-component-loader-configuration.schema.json +6 -1
  37. package/lib-commonjs/manifestSchemas/jsonSchemas/client-side-web-part-manifest.schema.json +59 -0
  38. package/lib-commonjs/manifestSchemas/jsonSchemas/component-fallback-version.schema.json +106 -0
  39. package/lib-dts/index.d.ts +1 -1
  40. package/lib-dts/manifestSchemas/IClientSideComponentLoaderConfiguration.d.ts +76 -0
  41. package/lib-dts/manifestSchemas/IClientSideWebPartManifest.d.ts +80 -0
  42. package/lib-dts/tsdoc-metadata.json +1 -1
  43. package/lib-esm/index.js +1 -2
  44. package/lib-esm/manifestHelpers.js +1 -1
  45. package/lib-esm/manifestSchemaValidator.js +1 -1
  46. package/lib-esm/manifestSchemas/IAdaptiveCardExtensionManifest.js +1 -1
  47. package/lib-esm/manifestSchemas/IClientSideApplicationManifest.js +1 -1
  48. package/lib-esm/manifestSchemas/IClientSideAssemblyManifest.js +1 -1
  49. package/lib-esm/manifestSchemas/IClientSideComponentLoaderConfiguration.js +1 -1
  50. package/lib-esm/manifestSchemas/IClientSideComponentManifest.js +1 -1
  51. package/lib-esm/manifestSchemas/IClientSideExtensionManifest.js +1 -1
  52. package/lib-esm/manifestSchemas/IClientSideLibraryManifest.js +1 -1
  53. package/lib-esm/manifestSchemas/IClientSideManifestBase.js +1 -1
  54. package/lib-esm/manifestSchemas/IClientSideMultiVersionManifest.js +1 -1
  55. package/lib-esm/manifestSchemas/IClientSideWebPartManifest.js +1 -1
  56. package/lib-esm/manifestSchemas/ICommandSetExtensionManifest.js +1 -1
  57. package/lib-esm/manifestSchemas/IPrefabAppManifest.js +1 -1
  58. package/lib-esm/manifestSchemas/ManifestType.js +1 -1
  59. package/lib-esm/manifestSchemas/examples/application_1.manifest.js +1 -1
  60. package/lib-esm/manifestSchemas/examples/application_2.manifest.js +1 -1
  61. package/lib-esm/manifestSchemas/examples/application_3.manifest.js +1 -1
  62. package/lib-esm/manifestSchemas/examples/assembly_1.manifest.js +1 -1
  63. package/lib-esm/manifestSchemas/examples/commandSet_1.manifest.js +1 -1
  64. package/lib-esm/manifestSchemas/examples/extension_1.manifest.js +1 -1
  65. package/lib-esm/manifestSchemas/examples/extension_2.manifest.js +1 -1
  66. package/lib-esm/manifestSchemas/examples/extension_3.manifest.js +1 -1
  67. package/lib-esm/manifestSchemas/examples/extension_4.manifest.js +1 -1
  68. package/lib-esm/manifestSchemas/examples/library_1.manifest.js +1 -1
  69. package/lib-esm/manifestSchemas/examples/multi-version_1.manifest.js +1 -1
  70. package/lib-esm/manifestSchemas/examples/prefab_1.manifest.js +1 -1
  71. package/lib-esm/manifestSchemas/examples/prefab_2.manifest.js +1 -1
  72. package/lib-esm/manifestSchemas/examples/webpart.manifest.json +62 -0
  73. package/lib-esm/manifestSchemas/examples/webpart_1.manifest.js +63 -1
  74. package/lib-esm/manifestSchemas/examples/webpart_2.manifest.js +63 -1
  75. package/lib-esm/manifestSchemas/jsonSchemas/client-side-component-loader-configuration.schema.json +6 -1
  76. package/lib-esm/manifestSchemas/jsonSchemas/client-side-web-part-manifest.schema.json +59 -0
  77. package/lib-esm/manifestSchemas/jsonSchemas/component-fallback-version.schema.json +106 -0
  78. package/package.json +4 -4
@@ -211,6 +211,82 @@ export interface IComponentModuleConfiguration extends IModuleConfigurationBase
211
211
  * Example: `"https://code.jquery.com/jquery-2.2.4.min.js"`
212
212
  */
213
213
  failoverPath?: string | IIntegrityPath;
214
+ /**
215
+ * Used to specify an alternative version of the dependency to be used, under certain conditions.
216
+ * @internal
217
+ */
218
+ fallbackVersion?: IComponentFallbackVersion;
219
+ }
220
+ /**
221
+ * @internal
222
+ * Represents a fallback version of a component that can be used under certain conditions.
223
+ *
224
+ * @remarks
225
+ * This field is used to specify an alternative version of the dependency to load, provided certain conditions are met.
226
+ * The conditions are specified using the `condition` field, which allows an expression to be defined. This supports the following:
227
+ * - AND
228
+ * - OR
229
+ * - NOT
230
+ * - XOR
231
+ * - Flight checks
232
+ * - Killswitch checks
233
+ *
234
+ * This field should only be used if the component has a multi-version manifest.
235
+ */
236
+ export interface IComponentFallbackVersion {
237
+ /**
238
+ * @internal
239
+ * The version of the component to be used as a fallback.
240
+ *
241
+ * @remarks
242
+ * This should be a string representing a semantic version.
243
+ */
244
+ version: string;
245
+ /**
246
+ * @internal
247
+ * The condition under which the fallback version should be used.
248
+ *
249
+ * @remarks
250
+ * This condition is expressed as a logical operator or switch, which can include AND, OR, NOT, XOR,
251
+ * Flight checks, and KillSwitch checks. The condition must evaluate to true for the fallback version to be used.
252
+ */
253
+ condition: IOperatorOrSwitch;
254
+ }
255
+ /**
256
+ * @internal
257
+ * Represents the logical operators used in the flighted manifest configuration.
258
+ */
259
+ export type IOperatorOrSwitch = {
260
+ and: IOperatorOrSwitch[];
261
+ } | {
262
+ or: IOperatorOrSwitch[];
263
+ } | {
264
+ xor: [IOperatorOrSwitch, IOperatorOrSwitch];
265
+ } | {
266
+ not: IOperatorOrSwitch;
267
+ } | IFlightOrKillSwitch;
268
+ /**
269
+ * @internal
270
+ * Represents a flighted component or a kill switch component.
271
+ * This type is used to define components that can be toggled on or off
272
+ * based on certain conditions in the configuration.
273
+ */
274
+ export type IFlightOrKillSwitch = IFlightedComponent | IKillSwitchComponent;
275
+ /**
276
+ * @internal
277
+ * Represents a Flight check definition.
278
+ */
279
+ export interface IFlightedComponent {
280
+ switchType: 'flight';
281
+ id: number;
282
+ }
283
+ /**
284
+ * @internal
285
+ * Represents a Kill Switch check definition.
286
+ */
287
+ export interface IKillSwitchComponent {
288
+ switchType: 'killswitch';
289
+ id: string;
214
290
  }
215
291
  /**
216
292
  * This is the interface for a script module with the "path" type. Modules of this type must be provided by the
@@ -109,6 +109,26 @@ export interface IClientSideWebPartManifest<TProperties> extends IClientSideComp
109
109
  * logic, then it is recommended to override onAfterPropertiesUpdatedExternally.
110
110
  */
111
111
  useFallbackWhenPropertiesUpdatedExternally?: boolean;
112
+ /**
113
+ * A list of components that can be loaded on idle for performance optimization. These components generally used to support
114
+ * rendering the web part.
115
+ *
116
+ * @internal
117
+ *
118
+ * @privateRemarks
119
+ * Note: All top level JavaScript logic for the loaded component will be run upon loading the component.
120
+ * If the component exports a default function, it will be called.
121
+ *
122
+ * example:
123
+ * ```
124
+ * idleLoadComponents: [{
125
+ * displayMode: 'edit' | 'read' | 'all',
126
+ * priority: 'high' | 'low',
127
+ * componentId: 'abc5-...',
128
+ * }];
129
+ * ```
130
+ */
131
+ idleLoadComponents?: _IIdleLoadComponent[];
112
132
  /**
113
133
  * A Web Part can have pre-configured properties like the title, description, toolbox group name and Web
114
134
  * Part specific custom properties. And there can be multiple instances of these pre-configured properties.
@@ -204,6 +224,34 @@ export interface IClientSideWebPartManifest<TProperties> extends IClientSideComp
204
224
  * Ensure this remains up to date with IFlexibleControlSizingData in FlexibleControl.types.ts
205
225
  */
206
226
  flexibleLayoutSizing?: IFlexibleLayoutSizing;
227
+ /**
228
+ * @alpha
229
+ * Optional AI properties for the web part including the structure of AI properties and the mapping between
230
+ * AI properties and the web part property bag.
231
+ * If provided, AI scenarios like LLM agent in SharePoint Pages will be able to interact with the web part. For example,
232
+ * Creating a web part, modifying existing web part, better understanding of the web part's data structure, etc.
233
+ */
234
+ aiProperties?: IAIProperties;
235
+ }
236
+ /**
237
+ * @internal
238
+ * Definition: A component that can be loaded in the background to improve performance.
239
+ */
240
+ export interface _IIdleLoadComponent {
241
+ /**
242
+ * The display mode in which the component should be loaded.
243
+ * If not specified, the component will be loaded in all display modes.
244
+ */
245
+ displayMode?: 'edit' | 'read';
246
+ /**
247
+ * The priority of the component to be loaded.
248
+ * High priority components will be loaded before low priority components.
249
+ */
250
+ priority: 'high' | 'low';
251
+ /**
252
+ * Manifest ID of the component to be loaded.
253
+ */
254
+ componentId: string;
207
255
  }
208
256
  /**
209
257
  * Flexible layout sizing data
@@ -501,4 +549,36 @@ export interface ICapabilityCollection {
501
549
  */
502
550
  AuthenticationModel?: Array<'OpenIDConnect' | 'Federated'>;
503
551
  }
552
+ /**
553
+ * @alpha
554
+ * Defines the AI properties for the web part, including their structure and the mapping to the web part's property bag.
555
+ * When provided, AI scenarios such as an LLM agent in SharePoint Pages can interact with the web part,
556
+ * e.g., creating it, modifying it, or understanding its data structure.
557
+ */
558
+ export interface IAIProperties {
559
+ /**
560
+ * The structure of AI properties for the web part.
561
+ */
562
+ structure: {
563
+ /**
564
+ * A free-form nested object not intended for direct use by web part developers.
565
+ * It is interpreted internally by the system based on the conversion logic
566
+ * between web part AI properties and JSON.
567
+ * The contract for this structure is internal and not exposed to developers.
568
+ */
569
+ [key: string]: unknown;
570
+ };
571
+ /**
572
+ * The mapping of AI properties to existing property bag.
573
+ */
574
+ mapping: {
575
+ /**
576
+ * A free-form nested object not intended for direct use by web part developers.
577
+ * It is interpreted internally by the system based on the conversion logic
578
+ * between web part AI properties and JSON.
579
+ * The contract for this structure is internal and not exposed to developers.
580
+ */
581
+ [key: string]: unknown;
582
+ };
583
+ }
504
584
  //# sourceMappingURL=IClientSideWebPartManifest.d.ts.map
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.52.1"
8
+ "packageVersion": "7.52.5"
9
9
  }
10
10
  ]
11
11
  }
package/lib-esm/index.js CHANGED
@@ -1,6 +1,5 @@
1
1
  export * from './manifestSchemas/IClientSideApplicationManifest';
2
2
  export * from './manifestSchemas/IClientSideAssemblyManifest';
3
- export * from './manifestSchemas/IClientSideComponentLoaderConfiguration';
4
3
  export * from './manifestSchemas/IClientSideComponentManifest';
5
4
  export * from './manifestSchemas/IClientSideExtensionManifest';
6
5
  export * from './manifestSchemas/IClientSideLibraryManifest';
@@ -12,4 +11,4 @@ export * from './manifestSchemas/ManifestType';
12
11
  export * from './manifestSchemas/IAdaptiveCardExtensionManifest';
13
12
  export * from './manifestSchemas/IPrefabAppManifest';
14
13
 
15
- //#sourceMappingUrl=./index.js.map
14
+ //# sourceMappingURL=./index.js.map
@@ -18,4 +18,4 @@
18
18
  return config.type === 'path';
19
19
  }
20
20
 
21
- //#sourceMappingUrl=./manifestHelpers.js.map
21
+ //# sourceMappingURL=./manifestHelpers.js.map
@@ -132,4 +132,4 @@ class ManifestValidator {
132
132
  }
133
133
  export { ManifestValidator as default };
134
134
 
135
- //#sourceMappingUrl=./manifestSchemaValidator.js.map
135
+ //# sourceMappingURL=./manifestSchemaValidator.js.map
@@ -6,4 +6,4 @@
6
6
  * @beta
7
7
  */ export { };
8
8
 
9
- //#sourceMappingUrl=./IAdaptiveCardExtensionManifest.js.map
9
+ //# sourceMappingURL=./IAdaptiveCardExtensionManifest.js.map
@@ -2,4 +2,4 @@
2
2
  * @alpha
3
3
  */ export { };
4
4
 
5
- //#sourceMappingUrl=./IClientSideApplicationManifest.js.map
5
+ //# sourceMappingURL=./IClientSideApplicationManifest.js.map
@@ -4,4 +4,4 @@
4
4
  * @public
5
5
  */ export { };
6
6
 
7
- //#sourceMappingUrl=./IClientSideAssemblyManifest.js.map
7
+ //# sourceMappingURL=./IClientSideAssemblyManifest.js.map
@@ -14,4 +14,4 @@
14
14
  * @beta
15
15
  */ export { };
16
16
 
17
- //#sourceMappingUrl=./IClientSideComponentLoaderConfiguration.js.map
17
+ //# sourceMappingURL=./IClientSideComponentLoaderConfiguration.js.map
@@ -24,4 +24,4 @@
24
24
  * @public
25
25
  */ export { };
26
26
 
27
- //#sourceMappingUrl=./IClientSideComponentManifest.js.map
27
+ //# sourceMappingURL=./IClientSideComponentManifest.js.map
@@ -4,4 +4,4 @@
4
4
  * @public
5
5
  */ export { };
6
6
 
7
- //#sourceMappingUrl=./IClientSideExtensionManifest.js.map
7
+ //# sourceMappingURL=./IClientSideExtensionManifest.js.map
@@ -4,4 +4,4 @@
4
4
  * @public
5
5
  */ export { };
6
6
 
7
- //#sourceMappingUrl=./IClientSideLibraryManifest.js.map
7
+ //# sourceMappingURL=./IClientSideLibraryManifest.js.map
@@ -4,4 +4,4 @@
4
4
  * @public
5
5
  */ export { };
6
6
 
7
- //#sourceMappingUrl=./IClientSideManifestBase.js.map
7
+ //# sourceMappingURL=./IClientSideManifestBase.js.map
@@ -22,4 +22,4 @@
22
22
  * @alpha
23
23
  */ export { };
24
24
 
25
- //#sourceMappingUrl=./IClientSideMultiVersionManifest.js.map
25
+ //# sourceMappingURL=./IClientSideMultiVersionManifest.js.map
@@ -59,4 +59,4 @@ export var PredefinedGroup;
59
59
  */ PredefinedGroup["Local"] = "8b7bf6f1-a56a-4aa3-8657-7eb6e7e6af61";
60
60
  })(PredefinedGroup || (PredefinedGroup = {}));
61
61
 
62
- //#sourceMappingUrl=./IClientSideWebPartManifest.js.map
62
+ //# sourceMappingURL=./IClientSideWebPartManifest.js.map
@@ -5,4 +5,4 @@
5
5
  * @public
6
6
  */ export { };
7
7
 
8
- //#sourceMappingUrl=./ICommandSetExtensionManifest.js.map
8
+ //# sourceMappingURL=./ICommandSetExtensionManifest.js.map
@@ -4,4 +4,4 @@
4
4
  * @alpha
5
5
  */ export { };
6
6
 
7
- //#sourceMappingUrl=./IPrefabAppManifest.js.map
7
+ //# sourceMappingURL=./IPrefabAppManifest.js.map
@@ -12,4 +12,4 @@
12
12
  */ ManifestType["container"] = "Container";
13
13
  })(ManifestType || (ManifestType = {}));
14
14
 
15
- //#sourceMappingUrl=./ManifestType.js.map
15
+ //# sourceMappingURL=./ManifestType.js.map
@@ -341,4 +341,4 @@ const appManifest = {
341
341
  };
342
342
  export default appManifest;
343
343
 
344
- //#sourceMappingUrl=./application_1.manifest.js.map
344
+ //# sourceMappingURL=./application_1.manifest.js.map
@@ -44,4 +44,4 @@ const appManifest = {
44
44
  };
45
45
  export default appManifest;
46
46
 
47
- //#sourceMappingUrl=./application_2.manifest.js.map
47
+ //# sourceMappingURL=./application_2.manifest.js.map
@@ -39,4 +39,4 @@ const appManifest = {
39
39
  };
40
40
  export default appManifest;
41
41
 
42
- //#sourceMappingUrl=./application_3.manifest.js.map
42
+ //# sourceMappingURL=./application_3.manifest.js.map
@@ -333,4 +333,4 @@ const assemblyManifest = {
333
333
  };
334
334
  export default assemblyManifest;
335
335
 
336
- //#sourceMappingUrl=./assembly_1.manifest.js.map
336
+ //# sourceMappingURL=./assembly_1.manifest.js.map
@@ -39,4 +39,4 @@ const extensionManifest = {
39
39
  };
40
40
  export default extensionManifest;
41
41
 
42
- //#sourceMappingUrl=./commandSet_1.manifest.js.map
42
+ //# sourceMappingURL=./commandSet_1.manifest.js.map
@@ -22,4 +22,4 @@ const extensionManifest = {
22
22
  };
23
23
  export default extensionManifest;
24
24
 
25
- //#sourceMappingUrl=./extension_1.manifest.js.map
25
+ //# sourceMappingURL=./extension_1.manifest.js.map
@@ -21,4 +21,4 @@ const extensionManifest = {
21
21
  };
22
22
  export default extensionManifest;
23
23
 
24
- //#sourceMappingUrl=./extension_2.manifest.js.map
24
+ //# sourceMappingURL=./extension_2.manifest.js.map
@@ -20,4 +20,4 @@ const extensionManifest = {
20
20
  };
21
21
  export default extensionManifest;
22
22
 
23
- //#sourceMappingUrl=./extension_3.manifest.js.map
23
+ //# sourceMappingURL=./extension_3.manifest.js.map
@@ -20,4 +20,4 @@ const extensionManifest = {
20
20
  };
21
21
  export default extensionManifest;
22
22
 
23
- //#sourceMappingUrl=./extension_4.manifest.js.map
23
+ //# sourceMappingURL=./extension_4.manifest.js.map
@@ -332,4 +332,4 @@ const libraryManifest = {
332
332
  };
333
333
  export default libraryManifest;
334
334
 
335
- //#sourceMappingUrl=./library_1.manifest.js.map
335
+ //# sourceMappingURL=./library_1.manifest.js.map
@@ -670,4 +670,4 @@ const multiVersionManifest = {
670
670
  };
671
671
  export default multiVersionManifest;
672
672
 
673
- //#sourceMappingUrl=./multi-version_1.manifest.js.map
673
+ //# sourceMappingURL=./multi-version_1.manifest.js.map
@@ -341,4 +341,4 @@ const prefabManifest = {
341
341
  };
342
342
  export default prefabManifest;
343
343
 
344
- //#sourceMappingUrl=./prefab_1.manifest.js.map
344
+ //# sourceMappingURL=./prefab_1.manifest.js.map
@@ -378,4 +378,4 @@ const prefabManifest = {
378
378
  };
379
379
  export default prefabManifest;
380
380
 
381
- //#sourceMappingUrl=./prefab_2.manifest.js.map
381
+ //# sourceMappingURL=./prefab_2.manifest.js.map
@@ -323,6 +323,68 @@
323
323
  "path": "nonAmdB.js",
324
324
  "globalName": "nonAmdB",
325
325
  "globalDependencies": ["nonAmdB"]
326
+ },
327
+ "fallbackFlighted": {
328
+ "type": "component",
329
+ "version": "1.2.3",
330
+ "id": "00000000-0000-0000-0000-000000000000",
331
+ "fallbackVersion": {
332
+ "version": "0.0.1",
333
+ "condition": {
334
+ "switchType": "flight",
335
+ "id": 12345
336
+ }
337
+ }
338
+ },
339
+ "fallbackKillSwitched": {
340
+ "type": "component",
341
+ "version": "1.2.3",
342
+ "id": "00000000-0000-0000-0000-000000000000",
343
+ "fallbackVersion": {
344
+ "version": "0.0.1",
345
+ "condition": {
346
+ "switchType": "killswitch",
347
+ "id": "00000000-0000-0000-0000-000000000000"
348
+ }
349
+ }
350
+ },
351
+ "fallbackComplexExpression": {
352
+ "type": "component",
353
+ "version": "1.2.3",
354
+ "id": "00000000-0000-0000-0000-000000000000",
355
+ "fallbackVersion": {
356
+ "version": "0.0.1",
357
+ "condition": {
358
+ "xor": [
359
+ {
360
+ "or": [
361
+ {
362
+ "switchType": "flight",
363
+ "id": 12345
364
+ },
365
+ {
366
+ "not": {
367
+ "switchType": "killswitch",
368
+ "id": "00000000-0000-0000-0000-000000000000"
369
+ }
370
+ }
371
+ ]
372
+ },
373
+ {
374
+ "and": [
375
+ {
376
+ "switchType": "flight",
377
+ "id": 67890
378
+ },
379
+ {
380
+ "switchType": "killswitch",
381
+ "id": "11111111-1111-1111-1111-111111111111"
382
+ }
383
+ ]
384
+ }
385
+ ]
386
+ }
387
+ }
326
388
  }
327
389
  }
328
390
  },
@@ -328,6 +328,68 @@ const webpartManifest = {
328
328
  globalDependencies: [
329
329
  'nonAmdB'
330
330
  ]
331
+ },
332
+ fallbackFlighted: {
333
+ type: 'component',
334
+ version: '1.2.3',
335
+ id: '00000000-0000-0000-0000-000000000000',
336
+ fallbackVersion: {
337
+ version: '0.0.1',
338
+ condition: {
339
+ switchType: 'flight',
340
+ id: 12345
341
+ }
342
+ }
343
+ },
344
+ fallbackKillSwitched: {
345
+ type: 'component',
346
+ version: '1.2.3',
347
+ id: '00000000-0000-0000-0000-000000000000',
348
+ fallbackVersion: {
349
+ version: '0.0.1',
350
+ condition: {
351
+ switchType: 'killswitch',
352
+ id: '00000000-0000-0000-0000-000000000000'
353
+ }
354
+ }
355
+ },
356
+ fallbackComplexExpression: {
357
+ type: 'component',
358
+ version: '1.2.3',
359
+ id: '00000000-0000-0000-0000-000000000000',
360
+ fallbackVersion: {
361
+ version: '0.0.1',
362
+ condition: {
363
+ xor: [
364
+ {
365
+ or: [
366
+ {
367
+ switchType: 'flight',
368
+ id: 12345
369
+ },
370
+ {
371
+ not: {
372
+ switchType: 'killswitch',
373
+ id: '00000000-0000-0000-0000-000000000000'
374
+ }
375
+ }
376
+ ]
377
+ },
378
+ {
379
+ and: [
380
+ {
381
+ switchType: 'flight',
382
+ id: 67890
383
+ },
384
+ {
385
+ switchType: 'killswitch',
386
+ id: '11111111-1111-1111-1111-111111111111'
387
+ }
388
+ ]
389
+ }
390
+ ]
391
+ }
392
+ }
331
393
  }
332
394
  }
333
395
  },
@@ -347,4 +409,4 @@ const webpartManifest = {
347
409
  };
348
410
  export default webpartManifest;
349
411
 
350
- //#sourceMappingUrl=./webpart_1.manifest.js.map
412
+ //# sourceMappingURL=./webpart_1.manifest.js.map
@@ -327,6 +327,68 @@ const webpartManifest = {
327
327
  globalDependencies: [
328
328
  'nonAmdB'
329
329
  ]
330
+ },
331
+ fallbackFlighted: {
332
+ type: 'component',
333
+ version: '1.2.3',
334
+ id: '00000000-0000-0000-0000-000000000000',
335
+ fallbackVersion: {
336
+ version: '0.0.1',
337
+ condition: {
338
+ switchType: 'flight',
339
+ id: 12345
340
+ }
341
+ }
342
+ },
343
+ fallbackKillSwitched: {
344
+ type: 'component',
345
+ version: '1.2.3',
346
+ id: '00000000-0000-0000-0000-000000000000',
347
+ fallbackVersion: {
348
+ version: '0.0.1',
349
+ condition: {
350
+ switchType: 'killswitch',
351
+ id: '00000000-0000-0000-0000-000000000000'
352
+ }
353
+ }
354
+ },
355
+ fallbackComplexExpression: {
356
+ type: 'component',
357
+ version: '1.2.3',
358
+ id: '00000000-0000-0000-0000-000000000000',
359
+ fallbackVersion: {
360
+ version: '0.0.1',
361
+ condition: {
362
+ xor: [
363
+ {
364
+ or: [
365
+ {
366
+ switchType: 'flight',
367
+ id: 12345
368
+ },
369
+ {
370
+ not: {
371
+ switchType: 'killswitch',
372
+ id: '00000000-0000-0000-0000-000000000000'
373
+ }
374
+ }
375
+ ]
376
+ },
377
+ {
378
+ and: [
379
+ {
380
+ switchType: 'flight',
381
+ id: 67890
382
+ },
383
+ {
384
+ switchType: 'killswitch',
385
+ id: '11111111-1111-1111-1111-111111111111'
386
+ }
387
+ ]
388
+ }
389
+ ]
390
+ }
391
+ }
330
392
  }
331
393
  }
332
394
  },
@@ -385,4 +447,4 @@ const webpartManifest = {
385
447
  };
386
448
  export default webpartManifest;
387
449
 
388
- //#sourceMappingUrl=./webpart_2.manifest.js.map
450
+ //# sourceMappingURL=./webpart_2.manifest.js.map
@@ -105,7 +105,8 @@
105
105
  "shouldNotPreload": { "$ref": "any-value.schema.json" },
106
106
  "version": { "$ref": "any-value.schema.json" },
107
107
  "id": { "$ref": "any-value.schema.json" },
108
- "failoverPath": { "$ref": "any-value.schema.json" }
108
+ "failoverPath": { "$ref": "any-value.schema.json" },
109
+ "fallbackVersion": { "$ref": "any-value.schema.json" }
109
110
  },
110
111
  "additionalProperties": false
111
112
  },
@@ -145,6 +146,10 @@
145
146
  "title": "Failover Path",
146
147
  "description": "A path to the framework-supplied module in case the framework fails to load the requested version. This must be either a fully-qualified URL, or a path under the paths specified in the \"internalModuleBaseUrls\" field. If this field is not specified and the version is not available in the framework runtime, the closest matching version of the module will be provided instead.",
147
148
  "$ref": "#/definitions/path"
149
+ },
150
+
151
+ "fallbackVersion": {
152
+ "$ref": "component-fallback-version.schema.json"
148
153
  }
149
154
  },
150
155
  "additionalProperties": true