@fluidframework/tree 2.3.0 → 2.4.0-294316
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api-report/tree.alpha.api.md +21 -12
- package/api-report/tree.beta.api.md +14 -5
- package/api-report/tree.legacy.alpha.api.md +14 -5
- package/api-report/tree.legacy.public.api.md +14 -5
- package/api-report/tree.public.api.md +14 -5
- package/dist/alpha.d.ts +1 -0
- package/dist/beta.d.ts +1 -0
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/rebase/index.d.ts +1 -1
- package/dist/core/rebase/index.d.ts.map +1 -1
- package/dist/core/rebase/index.js +2 -1
- package/dist/core/rebase/index.js.map +1 -1
- package/dist/core/rebase/types.d.ts +1 -0
- package/dist/core/rebase/types.d.ts.map +1 -1
- package/dist/core/rebase/types.js +8 -1
- package/dist/core/rebase/types.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +7 -0
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +61 -17
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.js +3 -0
- package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.js +1 -4
- package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +1 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.d.ts.map +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/public.d.ts +1 -0
- package/dist/shared-tree/schematizingTreeView.d.ts +1 -0
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +3 -0
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/simple-tree/api/jsonSchema.d.ts +13 -14
- package/dist/simple-tree/api/jsonSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/jsonSchema.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts +8 -2
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +6 -0
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/simpleSchema.d.ts +4 -0
- package/dist/simple-tree/api/simpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/simpleSchema.js.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js +30 -17
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/tree.d.ts +4 -0
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js +4 -0
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
- package/dist/simple-tree/index.d.ts +1 -1
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/schemaTypes.d.ts +44 -4
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js +10 -0
- package/dist/simple-tree/schemaTypes.js.map +1 -1
- package/lib/alpha.d.ts +1 -0
- package/lib/beta.d.ts +1 -0
- package/lib/core/index.d.ts +1 -1
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +1 -1
- package/lib/core/index.js.map +1 -1
- package/lib/core/rebase/index.d.ts +1 -1
- package/lib/core/rebase/index.d.ts.map +1 -1
- package/lib/core/rebase/index.js +1 -1
- package/lib/core/rebase/index.js.map +1 -1
- package/lib/core/rebase/types.d.ts +1 -0
- package/lib/core/rebase/types.d.ts.map +1 -1
- package/lib/core/rebase/types.js +6 -0
- package/lib/core/rebase/types.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +7 -0
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +62 -18
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.js +3 -0
- package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.js +2 -5
- package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +1 -0
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.d.ts.map +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/public.d.ts +1 -0
- package/lib/shared-tree/schematizingTreeView.d.ts +1 -0
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +3 -0
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/simple-tree/api/jsonSchema.d.ts +13 -14
- package/lib/simple-tree/api/jsonSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/jsonSchema.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts +8 -2
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +6 -0
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/simpleSchema.d.ts +4 -0
- package/lib/simple-tree/api/simpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/simpleSchema.js.map +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js +31 -18
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/lib/simple-tree/api/tree.d.ts +4 -0
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js +4 -0
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
- package/lib/simple-tree/index.d.ts +1 -1
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/schemaTypes.d.ts +44 -4
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js +10 -0
- package/lib/simple-tree/schemaTypes.js.map +1 -1
- package/package.json +32 -22
- package/src/core/index.ts +1 -0
- package/src/core/rebase/index.ts +1 -0
- package/src/core/rebase/types.ts +11 -0
- package/src/core/schema-stored/schema.ts +1 -0
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +97 -10
- package/src/feature-libraries/sequence-field/compose.ts +3 -0
- package/src/feature-libraries/sequence-field/utils.ts +2 -4
- package/src/index.ts +1 -0
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/schematizingTreeView.ts +4 -0
- package/src/simple-tree/api/jsonSchema.ts +19 -17
- package/src/simple-tree/api/schemaFactory.ts +12 -6
- package/src/simple-tree/api/simpleSchema.ts +5 -0
- package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +40 -19
- package/src/simple-tree/api/tree.ts +5 -0
- package/src/simple-tree/api/viewSchemaToSimpleSchema.ts +7 -2
- package/src/simple-tree/index.ts +1 -0
- package/src/simple-tree/schemaTypes.ts +55 -5
|
@@ -98,9 +98,12 @@ export function getExplicitStoredKey(fieldSchema: ImplicitFieldSchema): string |
|
|
|
98
98
|
/**
|
|
99
99
|
* Additional information to provide to a {@link FieldSchema}.
|
|
100
100
|
*
|
|
101
|
+
* @typeParam TCustomMetadata - Custom metadata properties to associate with the field.
|
|
102
|
+
* See {@link FieldSchemaMetadata.custom}.
|
|
103
|
+
*
|
|
101
104
|
* @public
|
|
102
105
|
*/
|
|
103
|
-
export interface FieldProps {
|
|
106
|
+
export interface FieldProps<TCustomMetadata = unknown> {
|
|
104
107
|
/**
|
|
105
108
|
* The unique identifier of a field, used in the persisted form of the tree.
|
|
106
109
|
*
|
|
@@ -152,12 +155,19 @@ export interface FieldProps {
|
|
|
152
155
|
* @defaultValue If not specified, the key that is persisted is the property key that was specified in the schema.
|
|
153
156
|
*/
|
|
154
157
|
readonly key?: string;
|
|
158
|
+
|
|
155
159
|
/**
|
|
156
160
|
* A default provider used for fields which were not provided any values.
|
|
157
161
|
* @privateRemarks
|
|
158
162
|
* We are using an erased type here, as we want to expose this API but `InsertableContent` and `NodeKeyManager` are not public.
|
|
159
163
|
*/
|
|
160
164
|
readonly defaultProvider?: DefaultProvider;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Optional metadata to associate with the field.
|
|
168
|
+
* @remarks Note: this metadata is not persisted in the document.
|
|
169
|
+
*/
|
|
170
|
+
readonly metadata?: FieldSchemaMetadata<TCustomMetadata>;
|
|
161
171
|
}
|
|
162
172
|
|
|
163
173
|
/**
|
|
@@ -199,17 +209,44 @@ export function getDefaultProvider(input: FieldProvider): DefaultProvider {
|
|
|
199
209
|
return input as unknown as DefaultProvider;
|
|
200
210
|
}
|
|
201
211
|
|
|
212
|
+
/**
|
|
213
|
+
* Metadata associated with a {@link FieldSchema}.
|
|
214
|
+
*
|
|
215
|
+
* @remarks Specified via {@link FieldProps.metadata}.
|
|
216
|
+
*
|
|
217
|
+
* @sealed
|
|
218
|
+
* @public
|
|
219
|
+
*/
|
|
220
|
+
export interface FieldSchemaMetadata<TCustomMetadata = unknown> {
|
|
221
|
+
/**
|
|
222
|
+
* User-defined metadata.
|
|
223
|
+
*/
|
|
224
|
+
custom?: TCustomMetadata;
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* The description of the field.
|
|
228
|
+
*
|
|
229
|
+
* @remarks
|
|
230
|
+
*
|
|
231
|
+
* If provided, will be used by the system in scenarios where a description of the field is useful.
|
|
232
|
+
* E.g., when converting a field schema to {@link https://json-schema.org/ | JSON Schema}, this description will be
|
|
233
|
+
* used as the `description` field.
|
|
234
|
+
*/
|
|
235
|
+
description?: string | undefined;
|
|
236
|
+
}
|
|
237
|
+
|
|
202
238
|
/**
|
|
203
239
|
* Package internal construction API.
|
|
204
240
|
*/
|
|
205
241
|
export let createFieldSchema: <
|
|
206
242
|
Kind extends FieldKind = FieldKind,
|
|
207
243
|
Types extends ImplicitAllowedTypes = ImplicitAllowedTypes,
|
|
244
|
+
TCustomMetadata = unknown,
|
|
208
245
|
>(
|
|
209
246
|
kind: Kind,
|
|
210
247
|
allowedTypes: Types,
|
|
211
|
-
props?: FieldProps
|
|
212
|
-
) => FieldSchema<Kind, Types>;
|
|
248
|
+
props?: FieldProps<TCustomMetadata>,
|
|
249
|
+
) => FieldSchema<Kind, Types, TCustomMetadata>;
|
|
213
250
|
|
|
214
251
|
/**
|
|
215
252
|
* All policy for a specific field,
|
|
@@ -220,20 +257,26 @@ export let createFieldSchema: <
|
|
|
220
257
|
* @privateRemarks
|
|
221
258
|
* Public access to the constructor is removed to prevent creating expressible but unsupported (or not stable) configurations.
|
|
222
259
|
* {@link createFieldSchema} can be used internally to create instances.
|
|
260
|
+
*
|
|
261
|
+
* @typeParam TCustomMetadata - Custom metadata properties to associate with the field.
|
|
262
|
+
* See {@link FieldSchemaMetadata.custom}.
|
|
263
|
+
*
|
|
223
264
|
* @sealed @public
|
|
224
265
|
*/
|
|
225
266
|
export class FieldSchema<
|
|
226
267
|
out Kind extends FieldKind = FieldKind,
|
|
227
268
|
out Types extends ImplicitAllowedTypes = ImplicitAllowedTypes,
|
|
269
|
+
out TCustomMetadata = unknown,
|
|
228
270
|
> {
|
|
229
271
|
static {
|
|
230
272
|
createFieldSchema = <
|
|
231
273
|
Kind2 extends FieldKind = FieldKind,
|
|
232
274
|
Types2 extends ImplicitAllowedTypes = ImplicitAllowedTypes,
|
|
275
|
+
TCustomMetadata2 = unknown,
|
|
233
276
|
>(
|
|
234
277
|
kind: Kind2,
|
|
235
278
|
allowedTypes: Types2,
|
|
236
|
-
props?: FieldProps
|
|
279
|
+
props?: FieldProps<TCustomMetadata2>,
|
|
237
280
|
) => new FieldSchema(kind, allowedTypes, props);
|
|
238
281
|
}
|
|
239
282
|
/**
|
|
@@ -257,6 +300,13 @@ export class FieldSchema<
|
|
|
257
300
|
*/
|
|
258
301
|
public readonly requiresValue: boolean;
|
|
259
302
|
|
|
303
|
+
/**
|
|
304
|
+
* {@inheritDoc FieldProps.metadata}
|
|
305
|
+
*/
|
|
306
|
+
public get metadata(): FieldSchemaMetadata<TCustomMetadata> | undefined {
|
|
307
|
+
return this.props?.metadata;
|
|
308
|
+
}
|
|
309
|
+
|
|
260
310
|
private constructor(
|
|
261
311
|
/**
|
|
262
312
|
* The {@link https://en.wikipedia.org/wiki/Kind_(type_theory) | kind } of this field.
|
|
@@ -270,7 +320,7 @@ export class FieldSchema<
|
|
|
270
320
|
/**
|
|
271
321
|
* Optional properties associated with the field.
|
|
272
322
|
*/
|
|
273
|
-
public readonly props?: FieldProps
|
|
323
|
+
public readonly props?: FieldProps<TCustomMetadata>,
|
|
274
324
|
) {
|
|
275
325
|
this.lazyTypes = new Lazy(() => normalizeAllowedTypes(this.allowedTypes));
|
|
276
326
|
// TODO: optional fields should (by default) get a default provider that returns undefined, removing the need to special case them here:
|