@fluid-experimental/tree 2.1.0-276985 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/biome.jsonc +1 -1
- package/dist/Identifiers.d.ts +1 -1
- package/dist/Identifiers.js.map +1 -1
- package/lib/Identifiers.d.ts +1 -1
- package/lib/Identifiers.js.map +1 -1
- package/package.json +27 -27
- package/src/Identifiers.ts +1 -1
package/CHANGELOG.md
CHANGED
package/biome.jsonc
CHANGED
package/dist/Identifiers.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export type UuidString = string & {
|
|
|
20
20
|
*/
|
|
21
21
|
export type AttributionId = UuidString;
|
|
22
22
|
/**
|
|
23
|
-
* A
|
|
23
|
+
* A {@link https://datatracker.ietf.org/doc/html/rfc4122 | version 4, variant 2 uuid}.
|
|
24
24
|
* @internal
|
|
25
25
|
*/
|
|
26
26
|
export type StableId = UuidString & {
|
package/dist/Identifiers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Identifiers.js","sourceRoot":"","sources":["../src/Identifiers.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAwKH;;;GAGG;AACH,wDAAwD;AACxD,SAAgB,oBAAoB,CAAC,IAAiC;IACrE,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;AACjC,CAAC;AAFD,oDAEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Type-safe identifiers for specific use cases.\n */\n\n/**\n * A 128-bit Universally Unique IDentifier. Represented here\n * with a string of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,\n * where x is a lowercase hex digit.\n * @alpha\n */\nexport type UuidString = string & {\n\treadonly UuidString: '9d40d0ae-90d9-44b1-9482-9f55d59d5465';\n};\n\n/**\n * An identifier associated with a session for the purpose of attributing its created content to some user/entity.\n * @alpha\n */\nexport type AttributionId = UuidString;\n\n/**\n * A
|
|
1
|
+
{"version":3,"file":"Identifiers.js","sourceRoot":"","sources":["../src/Identifiers.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAwKH;;;GAGG;AACH,wDAAwD;AACxD,SAAgB,oBAAoB,CAAC,IAAiC;IACrE,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;AACjC,CAAC;AAFD,oDAEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Type-safe identifiers for specific use cases.\n */\n\n/**\n * A 128-bit Universally Unique IDentifier. Represented here\n * with a string of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,\n * where x is a lowercase hex digit.\n * @alpha\n */\nexport type UuidString = string & {\n\treadonly UuidString: '9d40d0ae-90d9-44b1-9482-9f55d59d5465';\n};\n\n/**\n * An identifier associated with a session for the purpose of attributing its created content to some user/entity.\n * @alpha\n */\nexport type AttributionId = UuidString;\n\n/**\n * A {@link https://datatracker.ietf.org/doc/html/rfc4122 | version 4, variant 2 uuid}.\n * @internal\n */\nexport type StableId = UuidString & {\n\treadonly StableId: '53172b0d-a3d5-41ea-bd75-b43839c97f5a';\n};\n\n/**\n * A StableId which is suitable for use as a session identifier\n * @internal\n */\nexport type SessionId = StableId & {\n\treadonly SessionId: '4498f850-e14e-4be9-8db0-89ec00997e58';\n};\n\n/**\n * Edit identifier\n * @alpha\n */\nexport type EditId = UuidString & { readonly EditId: '56897beb-53e4-4e66-85da-4bf5cd5d0d49' };\n\n/**\n * Scoped to a single edit: identifies a sequences of nodes that can be moved into a trait.\n *\n * Within a given Edit, any DetachedSequenceId must be a source at most once, and a destination at most once.\n * If used as a source, it must be after it is used as a destination.\n * If this is violated, the Edit is considered malformed.\n * @alpha\n */\nexport type DetachedSequenceId = number & {\n\treadonly DetachedSequenceId: 'f7d7903a-194e-45e7-8e82-c9ef4333577d';\n};\n\n/**\n * An identifier (UUID) that has been shortened by a distributed compression algorithm.\n * @alpha\n */\nexport type CompressedId = FinalCompressedId | LocalCompressedId;\n\n/**\n * The ID of the string that has been interned, which can be used by a {@link StringInterner} to retrieve the original string.\n * @internal\n */\nexport type InternedStringId = number & {\n\treadonly InternedStringId: 'e221abc9-9d17-4493-8db0-70c871a1c27c';\n};\n\n/**\n * A brand for identity types that are unique within a particular session (SharedTree instance).\n * @alpha\n */\nexport interface SessionUnique {\n\treadonly SessionUnique: 'cea55054-6b82-4cbf-ad19-1fa645ea3b3e';\n}\n\n/**\n * A compressed ID that has been normalized into \"session space\" (see `IdCompressor` for more).\n * Consumer-facing APIs and data structures should use session-space IDs as their lifetime and equality is stable and tied to the\n * compressor that produced them.\n * @alpha\n */\nexport type SessionSpaceCompressedId = CompressedId & SessionUnique;\n\n/**\n * A compressed ID that has been normalized into \"op space\" (see `IdCompressor` for more).\n * Serialized/persisted structures (e.g. ops) should use op-space IDs as a performance optimization, as they require no normalizing when\n * received by a remote client due to the fact that op space for a given compressor is session space for all other compressors.\n * @internal\n */\nexport type OpSpaceCompressedId = CompressedId & {\n\treadonly OpNormalized: '9209432d-a959-4df7-b2ad-767ead4dbcae';\n};\n\n/**\n * A compressed ID that is local to a document. Stable across all revisions of a document starting from the one in which it was created.\n * It should not be persisted outside of the history as it can only be decompressed in the context of the originating document.\n * If external persistence is needed (e.g. by a client), a StableId should be used instead.\n * @alpha\n */\nexport type FinalCompressedId = number & {\n\treadonly FinalCompressedId: '5d83d1e2-98b7-4e4e-a889-54c855cfa73d';\n\n\t// Same brand as OpNormalizedCompressedId, as final IDs are always finally normalized\n\treadonly OpNormalized: '9209432d-a959-4df7-b2ad-767ead4dbcae';\n};\n\n/**\n * A compressed ID that is local to a session (can only be decompressed when paired with a SessionId).\n * It should not be persisted outside of the history as it can only be decompressed in the context of the originating session.\n * If external persistence is needed (e.g. by a client), a StableId should be used instead.\n * @alpha\n */\nexport type LocalCompressedId = number & {\n\treadonly LocalCompressedId: '6fccb42f-e2a4-4243-bd29-f13d12b9c6d1';\n} & SessionUnique; // Same brand as CompressedId, as local IDs are always locally normalized\n\n/**\n * @alpha\n */\nexport interface NodeIdBrand {\n\treadonly NodeId: 'e53e7d6b-c8b9-431a-8805-4843fc639342';\n}\n\n/**\n * Node identifier.\n * Identifies a node within a document.\n * @alpha\n */\nexport type NodeId = number & SessionSpaceCompressedId & NodeIdBrand;\n\nexport type FinalNodeId = FinalCompressedId & NodeIdBrand;\n\n/**\n * A Node identifier which is persisted by SharedTree internals. Not usable as a {@link NodeId}.\n * @internal\n */\nexport type OpSpaceNodeId = number & OpSpaceCompressedId & NodeIdBrand;\n\n/**\n * Globally unique node identifier.\n * Uniquely identifies a node within and across documents. Can be used across SharedTree instances.\n * @alpha\n */\nexport type StableNodeId = string & {\n\treadonly StableNodeId: 'a0843b38-699d-4bb2-aa7a-16c502a71151';\n};\n\n/**\n * Definition.\n * A full (Uuid) persistable definition.\n * @alpha\n */\nexport type Definition = UuidString & {\n\treadonly Definition: 'c0ef9488-2a78-482d-aeed-37fba996354c';\n};\n\n/**\n * Definition.\n * A full (Uuid) persistable label for a trait.\n * @alpha\n */\nexport type TraitLabel = UuidString & {\n\treadonly TraitLabel: '613826ed-49cc-4df3-b2b8-bfc6866af8e3';\n};\n\n/**\n * Determine if a node is a DetachedSequenceId.\n * @internal\n */\n// Nodes can be an `object` type which is a banned type.\nexport function isDetachedSequenceId(node: DetachedSequenceId | object): node is DetachedSequenceId {\n\treturn typeof node !== 'object';\n}\n"]}
|
package/lib/Identifiers.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export type UuidString = string & {
|
|
|
20
20
|
*/
|
|
21
21
|
export type AttributionId = UuidString;
|
|
22
22
|
/**
|
|
23
|
-
* A
|
|
23
|
+
* A {@link https://datatracker.ietf.org/doc/html/rfc4122 | version 4, variant 2 uuid}.
|
|
24
24
|
* @internal
|
|
25
25
|
*/
|
|
26
26
|
export type StableId = UuidString & {
|
package/lib/Identifiers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Identifiers.js","sourceRoot":"","sources":["../src/Identifiers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwKH;;;GAGG;AACH,wDAAwD;AACxD,MAAM,UAAU,oBAAoB,CAAC,IAAiC;IACrE,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;AACjC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Type-safe identifiers for specific use cases.\n */\n\n/**\n * A 128-bit Universally Unique IDentifier. Represented here\n * with a string of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,\n * where x is a lowercase hex digit.\n * @alpha\n */\nexport type UuidString = string & {\n\treadonly UuidString: '9d40d0ae-90d9-44b1-9482-9f55d59d5465';\n};\n\n/**\n * An identifier associated with a session for the purpose of attributing its created content to some user/entity.\n * @alpha\n */\nexport type AttributionId = UuidString;\n\n/**\n * A
|
|
1
|
+
{"version":3,"file":"Identifiers.js","sourceRoot":"","sources":["../src/Identifiers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwKH;;;GAGG;AACH,wDAAwD;AACxD,MAAM,UAAU,oBAAoB,CAAC,IAAiC;IACrE,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;AACjC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Type-safe identifiers for specific use cases.\n */\n\n/**\n * A 128-bit Universally Unique IDentifier. Represented here\n * with a string of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,\n * where x is a lowercase hex digit.\n * @alpha\n */\nexport type UuidString = string & {\n\treadonly UuidString: '9d40d0ae-90d9-44b1-9482-9f55d59d5465';\n};\n\n/**\n * An identifier associated with a session for the purpose of attributing its created content to some user/entity.\n * @alpha\n */\nexport type AttributionId = UuidString;\n\n/**\n * A {@link https://datatracker.ietf.org/doc/html/rfc4122 | version 4, variant 2 uuid}.\n * @internal\n */\nexport type StableId = UuidString & {\n\treadonly StableId: '53172b0d-a3d5-41ea-bd75-b43839c97f5a';\n};\n\n/**\n * A StableId which is suitable for use as a session identifier\n * @internal\n */\nexport type SessionId = StableId & {\n\treadonly SessionId: '4498f850-e14e-4be9-8db0-89ec00997e58';\n};\n\n/**\n * Edit identifier\n * @alpha\n */\nexport type EditId = UuidString & { readonly EditId: '56897beb-53e4-4e66-85da-4bf5cd5d0d49' };\n\n/**\n * Scoped to a single edit: identifies a sequences of nodes that can be moved into a trait.\n *\n * Within a given Edit, any DetachedSequenceId must be a source at most once, and a destination at most once.\n * If used as a source, it must be after it is used as a destination.\n * If this is violated, the Edit is considered malformed.\n * @alpha\n */\nexport type DetachedSequenceId = number & {\n\treadonly DetachedSequenceId: 'f7d7903a-194e-45e7-8e82-c9ef4333577d';\n};\n\n/**\n * An identifier (UUID) that has been shortened by a distributed compression algorithm.\n * @alpha\n */\nexport type CompressedId = FinalCompressedId | LocalCompressedId;\n\n/**\n * The ID of the string that has been interned, which can be used by a {@link StringInterner} to retrieve the original string.\n * @internal\n */\nexport type InternedStringId = number & {\n\treadonly InternedStringId: 'e221abc9-9d17-4493-8db0-70c871a1c27c';\n};\n\n/**\n * A brand for identity types that are unique within a particular session (SharedTree instance).\n * @alpha\n */\nexport interface SessionUnique {\n\treadonly SessionUnique: 'cea55054-6b82-4cbf-ad19-1fa645ea3b3e';\n}\n\n/**\n * A compressed ID that has been normalized into \"session space\" (see `IdCompressor` for more).\n * Consumer-facing APIs and data structures should use session-space IDs as their lifetime and equality is stable and tied to the\n * compressor that produced them.\n * @alpha\n */\nexport type SessionSpaceCompressedId = CompressedId & SessionUnique;\n\n/**\n * A compressed ID that has been normalized into \"op space\" (see `IdCompressor` for more).\n * Serialized/persisted structures (e.g. ops) should use op-space IDs as a performance optimization, as they require no normalizing when\n * received by a remote client due to the fact that op space for a given compressor is session space for all other compressors.\n * @internal\n */\nexport type OpSpaceCompressedId = CompressedId & {\n\treadonly OpNormalized: '9209432d-a959-4df7-b2ad-767ead4dbcae';\n};\n\n/**\n * A compressed ID that is local to a document. Stable across all revisions of a document starting from the one in which it was created.\n * It should not be persisted outside of the history as it can only be decompressed in the context of the originating document.\n * If external persistence is needed (e.g. by a client), a StableId should be used instead.\n * @alpha\n */\nexport type FinalCompressedId = number & {\n\treadonly FinalCompressedId: '5d83d1e2-98b7-4e4e-a889-54c855cfa73d';\n\n\t// Same brand as OpNormalizedCompressedId, as final IDs are always finally normalized\n\treadonly OpNormalized: '9209432d-a959-4df7-b2ad-767ead4dbcae';\n};\n\n/**\n * A compressed ID that is local to a session (can only be decompressed when paired with a SessionId).\n * It should not be persisted outside of the history as it can only be decompressed in the context of the originating session.\n * If external persistence is needed (e.g. by a client), a StableId should be used instead.\n * @alpha\n */\nexport type LocalCompressedId = number & {\n\treadonly LocalCompressedId: '6fccb42f-e2a4-4243-bd29-f13d12b9c6d1';\n} & SessionUnique; // Same brand as CompressedId, as local IDs are always locally normalized\n\n/**\n * @alpha\n */\nexport interface NodeIdBrand {\n\treadonly NodeId: 'e53e7d6b-c8b9-431a-8805-4843fc639342';\n}\n\n/**\n * Node identifier.\n * Identifies a node within a document.\n * @alpha\n */\nexport type NodeId = number & SessionSpaceCompressedId & NodeIdBrand;\n\nexport type FinalNodeId = FinalCompressedId & NodeIdBrand;\n\n/**\n * A Node identifier which is persisted by SharedTree internals. Not usable as a {@link NodeId}.\n * @internal\n */\nexport type OpSpaceNodeId = number & OpSpaceCompressedId & NodeIdBrand;\n\n/**\n * Globally unique node identifier.\n * Uniquely identifies a node within and across documents. Can be used across SharedTree instances.\n * @alpha\n */\nexport type StableNodeId = string & {\n\treadonly StableNodeId: 'a0843b38-699d-4bb2-aa7a-16c502a71151';\n};\n\n/**\n * Definition.\n * A full (Uuid) persistable definition.\n * @alpha\n */\nexport type Definition = UuidString & {\n\treadonly Definition: 'c0ef9488-2a78-482d-aeed-37fba996354c';\n};\n\n/**\n * Definition.\n * A full (Uuid) persistable label for a trait.\n * @alpha\n */\nexport type TraitLabel = UuidString & {\n\treadonly TraitLabel: '613826ed-49cc-4df3-b2b8-bfc6866af8e3';\n};\n\n/**\n * Determine if a node is a DetachedSequenceId.\n * @internal\n */\n// Nodes can be an `object` type which is a banned type.\nexport function isDetachedSequenceId(node: DetachedSequenceId | object): node is DetachedSequenceId {\n\treturn typeof node !== 'object';\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluid-experimental/tree",
|
|
3
|
-
"version": "2.1.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Distributed tree",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -37,18 +37,18 @@
|
|
|
37
37
|
"main": "lib/index.js",
|
|
38
38
|
"types": "lib/index.d.ts",
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@fluid-internal/client-utils": "2.1.0
|
|
41
|
-
"@fluidframework/container-definitions": "2.1.0
|
|
42
|
-
"@fluidframework/core-interfaces": "2.1.0
|
|
43
|
-
"@fluidframework/core-utils": "2.1.0
|
|
44
|
-
"@fluidframework/datastore-definitions": "2.1.0
|
|
45
|
-
"@fluidframework/driver-definitions": "2.1.0
|
|
46
|
-
"@fluidframework/id-compressor": "2.1.0
|
|
47
|
-
"@fluidframework/runtime-definitions": "2.1.0
|
|
48
|
-
"@fluidframework/runtime-utils": "2.1.0
|
|
49
|
-
"@fluidframework/shared-object-base": "2.1.0
|
|
50
|
-
"@fluidframework/telemetry-utils": "2.1.0
|
|
51
|
-
"@fluidframework/tree": "2.1.0
|
|
40
|
+
"@fluid-internal/client-utils": "~2.1.0",
|
|
41
|
+
"@fluidframework/container-definitions": "~2.1.0",
|
|
42
|
+
"@fluidframework/core-interfaces": "~2.1.0",
|
|
43
|
+
"@fluidframework/core-utils": "~2.1.0",
|
|
44
|
+
"@fluidframework/datastore-definitions": "~2.1.0",
|
|
45
|
+
"@fluidframework/driver-definitions": "~2.1.0",
|
|
46
|
+
"@fluidframework/id-compressor": "~2.1.0",
|
|
47
|
+
"@fluidframework/runtime-definitions": "~2.1.0",
|
|
48
|
+
"@fluidframework/runtime-utils": "~2.1.0",
|
|
49
|
+
"@fluidframework/shared-object-base": "~2.1.0",
|
|
50
|
+
"@fluidframework/telemetry-utils": "~2.1.0",
|
|
51
|
+
"@fluidframework/tree": "~2.1.0",
|
|
52
52
|
"@tylerbu/sorted-btree-es6": "^1.8.0",
|
|
53
53
|
"buffer": "^6.0.3",
|
|
54
54
|
"denque": "^1.5.1",
|
|
@@ -57,21 +57,21 @@
|
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@arethetypeswrong/cli": "^0.15.2",
|
|
60
|
-
"@biomejs/biome": "
|
|
61
|
-
"@fluid-internal/mocha-test-setup": "2.1.0
|
|
62
|
-
"@fluid-private/stochastic-test-utils": "2.1.0
|
|
63
|
-
"@fluid-private/test-drivers": "2.1.0
|
|
60
|
+
"@biomejs/biome": "~1.8.3",
|
|
61
|
+
"@fluid-internal/mocha-test-setup": "~2.1.0",
|
|
62
|
+
"@fluid-private/stochastic-test-utils": "~2.1.0",
|
|
63
|
+
"@fluid-private/test-drivers": "~2.1.0",
|
|
64
64
|
"@fluid-tools/benchmark": "^0.48.0",
|
|
65
65
|
"@fluidframework/build-common": "^2.0.3",
|
|
66
|
-
"@fluidframework/build-tools": "^0.
|
|
67
|
-
"@fluidframework/container-definitions": "2.1.0
|
|
68
|
-
"@fluidframework/container-loader": "2.1.0
|
|
69
|
-
"@fluidframework/container-runtime": "2.1.0
|
|
66
|
+
"@fluidframework/build-tools": "^0.41.0",
|
|
67
|
+
"@fluidframework/container-definitions": "~2.1.0",
|
|
68
|
+
"@fluidframework/container-loader": "~2.1.0",
|
|
69
|
+
"@fluidframework/container-runtime": "~2.1.0",
|
|
70
70
|
"@fluidframework/eslint-config-fluid": "^5.3.0",
|
|
71
|
-
"@fluidframework/runtime-utils": "2.1.0
|
|
72
|
-
"@fluidframework/test-runtime-utils": "2.1.0
|
|
73
|
-
"@fluidframework/test-utils": "2.1.0
|
|
74
|
-
"@fluidframework/undo-redo": "2.1.0
|
|
71
|
+
"@fluidframework/runtime-utils": "~2.1.0",
|
|
72
|
+
"@fluidframework/test-runtime-utils": "~2.1.0",
|
|
73
|
+
"@fluidframework/test-utils": "~2.1.0",
|
|
74
|
+
"@fluidframework/undo-redo": "~2.1.0",
|
|
75
75
|
"@microsoft/api-extractor": "^7.45.1",
|
|
76
76
|
"@types/chai": "^4.0.0",
|
|
77
77
|
"@types/lru-cache": "^5.1.0",
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
"build:docs": "api-extractor run --local",
|
|
105
105
|
"build:esnext": "tsc --project ./tsconfig.esnext.json",
|
|
106
106
|
"check:are-the-types-wrong": "attw --pack . --exclude-entrypoints ./test/EditLog",
|
|
107
|
-
"check:biome": "biome check .
|
|
107
|
+
"check:biome": "biome check .",
|
|
108
108
|
"check:exports": "concurrently \"npm:check:exports:*\"",
|
|
109
109
|
"check:exports:bundle-release-tags": "api-extractor run --config api-extractor/api-extractor-lint-bundle.json",
|
|
110
110
|
"check:exports:cjs:EditLog": "echo AB#8147 skip api-extractor run --config api-extractor/api-extractor-lint-EditLog.cjs.json",
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
"eslint": "eslint src",
|
|
119
119
|
"eslint:fix": "eslint src --fix",
|
|
120
120
|
"format": "npm run format:biome",
|
|
121
|
-
"format:biome": "biome check . --
|
|
121
|
+
"format:biome": "biome check . --write",
|
|
122
122
|
"format:prettier": "prettier --write . --cache --ignore-path ../../../.prettierignore",
|
|
123
123
|
"lint": "fluid-build . --task lint",
|
|
124
124
|
"lint:fix": "fluid-build . --task eslint:fix --task format",
|
package/src/Identifiers.ts
CHANGED
|
@@ -24,7 +24,7 @@ export type UuidString = string & {
|
|
|
24
24
|
export type AttributionId = UuidString;
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
|
-
* A
|
|
27
|
+
* A {@link https://datatracker.ietf.org/doc/html/rfc4122 | version 4, variant 2 uuid}.
|
|
28
28
|
* @internal
|
|
29
29
|
*/
|
|
30
30
|
export type StableId = UuidString & {
|