@twin.org/blob-storage-connector-memory 0.0.3-next.6 → 0.0.3-next.8
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/README.md +1 -1
- package/dist/es/memoryBlobStorageConnector.js +14 -1
- package/dist/es/memoryBlobStorageConnector.js.map +1 -1
- package/dist/types/memoryBlobStorageConnector.d.ts +6 -0
- package/docs/changelog.md +63 -35
- package/docs/examples.md +35 -1
- package/docs/reference/classes/MemoryBlobStorageConnector.md +25 -7
- package/docs/reference/interfaces/IMemoryStorageConnectorConstructorOptions.md +2 -2
- package/locales/en.json +5 -0
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# TWIN Blob Storage Connector Memory
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This package provides an in-memory connector for blob storage workflows where persistence is not required. It is suited to local development, automated testing, and fast feedback loops that benefit from isolated, ephemeral storage.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ContextIdHelper, ContextIdStore } from "@twin.org/context";
|
|
2
|
-
import { Converter, GeneralError, Guards, Urn } from "@twin.org/core";
|
|
2
|
+
import { Converter, GeneralError, Guards, HealthStatus, Urn } from "@twin.org/core";
|
|
3
3
|
import { Sha256 } from "@twin.org/crypto";
|
|
4
4
|
/**
|
|
5
5
|
* Class for performing blob storage operations in-memory.
|
|
@@ -38,6 +38,19 @@ export class MemoryBlobStorageConnector {
|
|
|
38
38
|
className() {
|
|
39
39
|
return MemoryBlobStorageConnector.CLASS_NAME;
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Returns the health status of the component.
|
|
43
|
+
* @returns The health status of the component.
|
|
44
|
+
*/
|
|
45
|
+
async health() {
|
|
46
|
+
return [
|
|
47
|
+
{
|
|
48
|
+
source: MemoryBlobStorageConnector.CLASS_NAME,
|
|
49
|
+
status: HealthStatus.Ok,
|
|
50
|
+
description: "healthDescription"
|
|
51
|
+
}
|
|
52
|
+
];
|
|
53
|
+
}
|
|
41
54
|
/**
|
|
42
55
|
* Set the blob.
|
|
43
56
|
* @param blob The data for the blob.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryBlobStorageConnector.js","sourceRoot":"","sources":["../../src/memoryBlobStorageConnector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"memoryBlobStorageConnector.js","sourceRoot":"","sources":["../../src/memoryBlobStorageConnector.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IBlobStorageConnector } from \"@twin.org/blob-storage-models\";\nimport { ContextIdHelper, ContextIdStore } from \"@twin.org/context\";\nimport { Converter, GeneralError, Guards, HealthStatus, Urn, type IHealth } from \"@twin.org/core\";\nimport { Sha256 } from \"@twin.org/crypto\";\nimport { nameof } from \"@twin.org/nameof\";\nimport type { IMemoryStorageConnectorConstructorOptions } from \"./models/IMemoryStorageConnectorConstructorOptions.js\";\n\n/**\n * Class for performing blob storage operations in-memory.\n */\nexport class MemoryBlobStorageConnector implements IBlobStorageConnector {\n\t/**\n\t * The namespace for the items.\n\t */\n\tpublic static readonly NAMESPACE: string = \"memory\";\n\n\t/**\n\t * Runtime name for the class.\n\t */\n\tpublic static readonly CLASS_NAME: string = nameof<MemoryBlobStorageConnector>();\n\n\t/**\n\t * The keys to use from the context ids to create partitions.\n\t * @internal\n\t */\n\tprivate readonly _partitionContextIds?: string[];\n\n\t/**\n\t * The storage for the in-memory items.\n\t * @internal\n\t */\n\tprivate readonly _store: { [id: string]: Uint8Array };\n\n\t/**\n\t * Create a new instance of MemoryBlobStorageConnector.\n\t * @param options The options for the connector.\n\t */\n\tconstructor(options?: IMemoryStorageConnectorConstructorOptions) {\n\t\tthis._partitionContextIds = options?.partitionContextIds;\n\t\tthis._store = {};\n\t}\n\n\t/**\n\t * Returns the class name of the component.\n\t * @returns The class name of the component.\n\t */\n\tpublic className(): string {\n\t\treturn MemoryBlobStorageConnector.CLASS_NAME;\n\t}\n\n\t/**\n\t * Returns the health status of the component.\n\t * @returns The health status of the component.\n\t */\n\tpublic async health(): Promise<IHealth[]> {\n\t\treturn [\n\t\t\t{\n\t\t\t\tsource: MemoryBlobStorageConnector.CLASS_NAME,\n\t\t\t\tstatus: HealthStatus.Ok,\n\t\t\t\tdescription: \"healthDescription\"\n\t\t\t}\n\t\t];\n\t}\n\n\t/**\n\t * Set the blob.\n\t * @param blob The data for the blob.\n\t * @returns The id of the stored blob in urn format.\n\t */\n\tpublic async set(blob: Uint8Array): Promise<string> {\n\t\tGuards.uint8Array(MemoryBlobStorageConnector.CLASS_NAME, nameof(blob), blob);\n\n\t\tconst contextIds = await ContextIdStore.getContextIds();\n\t\tconst partitionKey = ContextIdHelper.combinedContextKey(contextIds, this._partitionContextIds);\n\n\t\tconst id = Converter.bytesToHex(Sha256.sum256(blob));\n\n\t\tconst fullKey = `${partitionKey ?? \"root\"}/${id}`;\n\t\tthis._store[fullKey] = blob;\n\n\t\treturn `blob:${new Urn(MemoryBlobStorageConnector.NAMESPACE, id).toString()}`;\n\t}\n\n\t/**\n\t * Get the blob.\n\t * @param id The id of the blob to get in urn format.\n\t * @returns The data for the blob if it can be found or undefined.\n\t */\n\tpublic async get(id: string): Promise<Uint8Array | undefined> {\n\t\tUrn.guard(MemoryBlobStorageConnector.CLASS_NAME, nameof(id), id);\n\n\t\tconst contextIds = await ContextIdStore.getContextIds();\n\t\tconst partitionKey = ContextIdHelper.combinedContextKey(contextIds, this._partitionContextIds);\n\n\t\tconst urnParsed = Urn.fromValidString(id);\n\n\t\tif (urnParsed.namespaceMethod() !== MemoryBlobStorageConnector.NAMESPACE) {\n\t\t\tthrow new GeneralError(MemoryBlobStorageConnector.CLASS_NAME, \"namespaceMismatch\", {\n\t\t\t\tnamespace: MemoryBlobStorageConnector.NAMESPACE,\n\t\t\t\tid\n\t\t\t});\n\t\t}\n\n\t\tconst namespaceId = urnParsed.namespaceSpecific(1);\n\t\tconst fullKey = `${partitionKey ?? \"root\"}/${namespaceId}`;\n\t\treturn this._store[fullKey];\n\t}\n\n\t/**\n\t * Remove the blob.\n\t * @param id The id of the blob to remove in urn format.\n\t * @returns True if the blob was found.\n\t */\n\tpublic async remove(id: string): Promise<boolean> {\n\t\tUrn.guard(MemoryBlobStorageConnector.CLASS_NAME, nameof(id), id);\n\n\t\tconst contextIds = await ContextIdStore.getContextIds();\n\t\tconst partitionKey = ContextIdHelper.combinedContextKey(contextIds, this._partitionContextIds);\n\n\t\tconst urnParsed = Urn.fromValidString(id);\n\n\t\tif (urnParsed.namespaceMethod() !== MemoryBlobStorageConnector.NAMESPACE) {\n\t\t\tthrow new GeneralError(MemoryBlobStorageConnector.CLASS_NAME, \"namespaceMismatch\", {\n\t\t\t\tnamespace: MemoryBlobStorageConnector.NAMESPACE,\n\t\t\t\tid\n\t\t\t});\n\t\t}\n\n\t\tconst namespaceId = urnParsed.namespaceSpecific(1);\n\t\tconst fullKey = `${partitionKey ?? \"root\"}/${namespaceId}`;\n\t\tif (this._store[fullKey]) {\n\t\t\tdelete this._store[fullKey];\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Get the memory store.\n\t * @returns The store.\n\t */\n\tpublic getStore(): { [id: string]: Uint8Array } {\n\t\treturn this._store;\n\t}\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { IBlobStorageConnector } from "@twin.org/blob-storage-models";
|
|
2
|
+
import { type IHealth } from "@twin.org/core";
|
|
2
3
|
import type { IMemoryStorageConnectorConstructorOptions } from "./models/IMemoryStorageConnectorConstructorOptions.js";
|
|
3
4
|
/**
|
|
4
5
|
* Class for performing blob storage operations in-memory.
|
|
@@ -22,6 +23,11 @@ export declare class MemoryBlobStorageConnector implements IBlobStorageConnector
|
|
|
22
23
|
* @returns The class name of the component.
|
|
23
24
|
*/
|
|
24
25
|
className(): string;
|
|
26
|
+
/**
|
|
27
|
+
* Returns the health status of the component.
|
|
28
|
+
* @returns The health status of the component.
|
|
29
|
+
*/
|
|
30
|
+
health(): Promise<IHealth[]>;
|
|
25
31
|
/**
|
|
26
32
|
* Set the blob.
|
|
27
33
|
* @param blob The data for the blob.
|
package/docs/changelog.md
CHANGED
|
@@ -1,6 +1,34 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Changelog
|
|
2
2
|
|
|
3
|
-
## [0.0.3-next.
|
|
3
|
+
## [0.0.3-next.8](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.3-next.7...blob-storage-connector-memory-v0.0.3-next.8) (2026-05-07)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* health checks ([#44](https://github.com/iotaledger/twin-blob-storage/issues/44)) ([4a4041c](https://github.com/iotaledger/twin-blob-storage/commit/4a4041c19b68c40ed1aba6d1cdb4318ac4208b7d))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Dependencies
|
|
12
|
+
|
|
13
|
+
* The following workspace dependencies were updated
|
|
14
|
+
* dependencies
|
|
15
|
+
* @twin.org/blob-storage-models bumped from 0.0.3-next.7 to 0.0.3-next.8
|
|
16
|
+
|
|
17
|
+
## [0.0.3-next.7](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.3-next.6...blob-storage-connector-memory-v0.0.3-next.7) (2026-02-25)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Miscellaneous Chores
|
|
21
|
+
|
|
22
|
+
* **blob-storage-connector-memory:** Synchronize repo versions
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Dependencies
|
|
26
|
+
|
|
27
|
+
* The following workspace dependencies were updated
|
|
28
|
+
* dependencies
|
|
29
|
+
* @twin.org/blob-storage-models bumped from 0.0.3-next.6 to 0.0.3-next.7
|
|
30
|
+
|
|
31
|
+
## [0.0.3-next.6](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.3-next.5...blob-storage-connector-memory-v0.0.3-next.6) (2026-02-09)
|
|
4
32
|
|
|
5
33
|
|
|
6
34
|
### Miscellaneous Chores
|
|
@@ -14,7 +42,7 @@
|
|
|
14
42
|
* dependencies
|
|
15
43
|
* @twin.org/blob-storage-models bumped from 0.0.3-next.5 to 0.0.3-next.6
|
|
16
44
|
|
|
17
|
-
## [0.0.3-next.5](https://github.com/
|
|
45
|
+
## [0.0.3-next.5](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.3-next.4...blob-storage-connector-memory-v0.0.3-next.5) (2026-01-26)
|
|
18
46
|
|
|
19
47
|
|
|
20
48
|
### Miscellaneous Chores
|
|
@@ -28,7 +56,7 @@
|
|
|
28
56
|
* dependencies
|
|
29
57
|
* @twin.org/blob-storage-models bumped from 0.0.3-next.4 to 0.0.3-next.5
|
|
30
58
|
|
|
31
|
-
## [0.0.3-next.4](https://github.com/
|
|
59
|
+
## [0.0.3-next.4](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.3-next.3...blob-storage-connector-memory-v0.0.3-next.4) (2026-01-23)
|
|
32
60
|
|
|
33
61
|
|
|
34
62
|
### Miscellaneous Chores
|
|
@@ -42,7 +70,7 @@
|
|
|
42
70
|
* dependencies
|
|
43
71
|
* @twin.org/blob-storage-models bumped from 0.0.3-next.3 to 0.0.3-next.4
|
|
44
72
|
|
|
45
|
-
## [0.0.3-next.3](https://github.com/
|
|
73
|
+
## [0.0.3-next.3](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.3-next.2...blob-storage-connector-memory-v0.0.3-next.3) (2026-01-21)
|
|
46
74
|
|
|
47
75
|
|
|
48
76
|
### Miscellaneous Chores
|
|
@@ -56,7 +84,7 @@
|
|
|
56
84
|
* dependencies
|
|
57
85
|
* @twin.org/blob-storage-models bumped from 0.0.3-next.2 to 0.0.3-next.3
|
|
58
86
|
|
|
59
|
-
## [0.0.3-next.2](https://github.com/
|
|
87
|
+
## [0.0.3-next.2](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.3-next.1...blob-storage-connector-memory-v0.0.3-next.2) (2026-01-14)
|
|
60
88
|
|
|
61
89
|
|
|
62
90
|
### Miscellaneous Chores
|
|
@@ -70,17 +98,17 @@
|
|
|
70
98
|
* dependencies
|
|
71
99
|
* @twin.org/blob-storage-models bumped from 0.0.3-next.1 to 0.0.3-next.2
|
|
72
100
|
|
|
73
|
-
## [0.0.3-next.1](https://github.com/
|
|
101
|
+
## [0.0.3-next.1](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.3-next.0...blob-storage-connector-memory-v0.0.3-next.1) (2025-11-11)
|
|
74
102
|
|
|
75
103
|
|
|
76
104
|
### Features
|
|
77
105
|
|
|
78
|
-
* add context id features ([#30](https://github.com/
|
|
79
|
-
* add validate-locales ([f20fcec](https://github.com/
|
|
80
|
-
* eslint migration to flat config ([e4239dd](https://github.com/
|
|
81
|
-
* update dependencies ([56f0094](https://github.com/
|
|
82
|
-
* update framework core ([ff339fe](https://github.com/
|
|
83
|
-
* use shared store mechanism ([#12](https://github.com/
|
|
106
|
+
* add context id features ([#30](https://github.com/iotaledger/twin-blob-storage/issues/30)) ([fbf1c92](https://github.com/iotaledger/twin-blob-storage/commit/fbf1c9276424c841ef5ef3f4de8469ab3fba7e9c))
|
|
107
|
+
* add validate-locales ([f20fcec](https://github.com/iotaledger/twin-blob-storage/commit/f20fceced91e39a0c9edb770b2e43ce944c92f3c))
|
|
108
|
+
* eslint migration to flat config ([e4239dd](https://github.com/iotaledger/twin-blob-storage/commit/e4239dd1c721955cff7f0357255d2bba15319972))
|
|
109
|
+
* update dependencies ([56f0094](https://github.com/iotaledger/twin-blob-storage/commit/56f0094b68d8bd22864cd899ac1b61d95540f719))
|
|
110
|
+
* update framework core ([ff339fe](https://github.com/iotaledger/twin-blob-storage/commit/ff339fe7e3f09ddff429907834bdf43617e9c05e))
|
|
111
|
+
* use shared store mechanism ([#12](https://github.com/iotaledger/twin-blob-storage/issues/12)) ([cae8110](https://github.com/iotaledger/twin-blob-storage/commit/cae8110681847a1ac4fcac968b8196694e49c320))
|
|
84
112
|
|
|
85
113
|
|
|
86
114
|
### Dependencies
|
|
@@ -89,12 +117,12 @@
|
|
|
89
117
|
* dependencies
|
|
90
118
|
* @twin.org/blob-storage-models bumped from 0.0.3-next.0 to 0.0.3-next.1
|
|
91
119
|
|
|
92
|
-
## [0.0.2-next.5](https://github.com/
|
|
120
|
+
## [0.0.2-next.5](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.2-next.4...blob-storage-connector-memory-v0.0.2-next.5) (2025-10-09)
|
|
93
121
|
|
|
94
122
|
|
|
95
123
|
### Features
|
|
96
124
|
|
|
97
|
-
* add validate-locales ([f20fcec](https://github.com/
|
|
125
|
+
* add validate-locales ([f20fcec](https://github.com/iotaledger/twin-blob-storage/commit/f20fceced91e39a0c9edb770b2e43ce944c92f3c))
|
|
98
126
|
|
|
99
127
|
|
|
100
128
|
### Dependencies
|
|
@@ -103,7 +131,7 @@
|
|
|
103
131
|
* dependencies
|
|
104
132
|
* @twin.org/blob-storage-models bumped from 0.0.2-next.4 to 0.0.2-next.5
|
|
105
133
|
|
|
106
|
-
## [0.0.2-next.4](https://github.com/
|
|
134
|
+
## [0.0.2-next.4](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.2-next.3...blob-storage-connector-memory-v0.0.2-next.4) (2025-10-02)
|
|
107
135
|
|
|
108
136
|
|
|
109
137
|
### Miscellaneous Chores
|
|
@@ -117,12 +145,12 @@
|
|
|
117
145
|
* dependencies
|
|
118
146
|
* @twin.org/blob-storage-models bumped from 0.0.2-next.3 to 0.0.2-next.4
|
|
119
147
|
|
|
120
|
-
## [0.0.2-next.3](https://github.com/
|
|
148
|
+
## [0.0.2-next.3](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.2-next.2...blob-storage-connector-memory-v0.0.2-next.3) (2025-08-29)
|
|
121
149
|
|
|
122
150
|
|
|
123
151
|
### Features
|
|
124
152
|
|
|
125
|
-
* eslint migration to flat config ([e4239dd](https://github.com/
|
|
153
|
+
* eslint migration to flat config ([e4239dd](https://github.com/iotaledger/twin-blob-storage/commit/e4239dd1c721955cff7f0357255d2bba15319972))
|
|
126
154
|
|
|
127
155
|
|
|
128
156
|
### Dependencies
|
|
@@ -131,12 +159,12 @@
|
|
|
131
159
|
* dependencies
|
|
132
160
|
* @twin.org/blob-storage-models bumped from 0.0.2-next.2 to 0.0.2-next.3
|
|
133
161
|
|
|
134
|
-
## [0.0.2-next.2](https://github.com/
|
|
162
|
+
## [0.0.2-next.2](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.2-next.1...blob-storage-connector-memory-v0.0.2-next.2) (2025-08-20)
|
|
135
163
|
|
|
136
164
|
|
|
137
165
|
### Features
|
|
138
166
|
|
|
139
|
-
* update framework core ([ff339fe](https://github.com/
|
|
167
|
+
* update framework core ([ff339fe](https://github.com/iotaledger/twin-blob-storage/commit/ff339fe7e3f09ddff429907834bdf43617e9c05e))
|
|
140
168
|
|
|
141
169
|
|
|
142
170
|
### Dependencies
|
|
@@ -145,13 +173,13 @@
|
|
|
145
173
|
* dependencies
|
|
146
174
|
* @twin.org/blob-storage-models bumped from 0.0.2-next.1 to 0.0.2-next.2
|
|
147
175
|
|
|
148
|
-
## [0.0.2-next.1](https://github.com/
|
|
176
|
+
## [0.0.2-next.1](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.2-next.0...blob-storage-connector-memory-v0.0.2-next.1) (2025-07-24)
|
|
149
177
|
|
|
150
178
|
|
|
151
179
|
### Features
|
|
152
180
|
|
|
153
|
-
* update dependencies ([56f0094](https://github.com/
|
|
154
|
-
* use shared store mechanism ([#12](https://github.com/
|
|
181
|
+
* update dependencies ([56f0094](https://github.com/iotaledger/twin-blob-storage/commit/56f0094b68d8bd22864cd899ac1b61d95540f719))
|
|
182
|
+
* use shared store mechanism ([#12](https://github.com/iotaledger/twin-blob-storage/issues/12)) ([cae8110](https://github.com/iotaledger/twin-blob-storage/commit/cae8110681847a1ac4fcac968b8196694e49c320))
|
|
155
183
|
|
|
156
184
|
|
|
157
185
|
### Dependencies
|
|
@@ -165,7 +193,7 @@
|
|
|
165
193
|
|
|
166
194
|
### Features
|
|
167
195
|
|
|
168
|
-
* release to production ([eacfe75](https://github.com/
|
|
196
|
+
* release to production ([eacfe75](https://github.com/iotaledger/twin-blob-storage/commit/eacfe754a0dcd9243d9e13d86422327d0a605164))
|
|
169
197
|
|
|
170
198
|
|
|
171
199
|
### Dependencies
|
|
@@ -174,7 +202,7 @@
|
|
|
174
202
|
* dependencies
|
|
175
203
|
* @twin.org/blob-storage-models bumped from ^0.0.0 to ^0.0.1
|
|
176
204
|
|
|
177
|
-
## [0.0.1-next.37](https://github.com/
|
|
205
|
+
## [0.0.1-next.37](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.36...blob-storage-connector-memory-v0.0.1-next.37) (2025-06-20)
|
|
178
206
|
|
|
179
207
|
|
|
180
208
|
### Miscellaneous Chores
|
|
@@ -188,7 +216,7 @@
|
|
|
188
216
|
* dependencies
|
|
189
217
|
* @twin.org/blob-storage-models bumped from 0.0.1-next.36 to 0.0.1-next.37
|
|
190
218
|
|
|
191
|
-
## [0.0.1-next.36](https://github.com/
|
|
219
|
+
## [0.0.1-next.36](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.35...blob-storage-connector-memory-v0.0.1-next.36) (2025-06-19)
|
|
192
220
|
|
|
193
221
|
|
|
194
222
|
### Miscellaneous Chores
|
|
@@ -202,7 +230,7 @@
|
|
|
202
230
|
* dependencies
|
|
203
231
|
* @twin.org/blob-storage-models bumped from 0.0.1-next.35 to 0.0.1-next.36
|
|
204
232
|
|
|
205
|
-
## [0.0.1-next.35](https://github.com/
|
|
233
|
+
## [0.0.1-next.35](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.34...blob-storage-connector-memory-v0.0.1-next.35) (2025-06-17)
|
|
206
234
|
|
|
207
235
|
|
|
208
236
|
### Miscellaneous Chores
|
|
@@ -216,12 +244,12 @@
|
|
|
216
244
|
* dependencies
|
|
217
245
|
* @twin.org/blob-storage-models bumped from 0.0.1-next.34 to 0.0.1-next.35
|
|
218
246
|
|
|
219
|
-
## [0.0.1-next.34](https://github.com/
|
|
247
|
+
## [0.0.1-next.34](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.33...blob-storage-connector-memory-v0.0.1-next.34) (2025-06-12)
|
|
220
248
|
|
|
221
249
|
|
|
222
250
|
### Features
|
|
223
251
|
|
|
224
|
-
* update dependencies ([56f0094](https://github.com/
|
|
252
|
+
* update dependencies ([56f0094](https://github.com/iotaledger/twin-blob-storage/commit/56f0094b68d8bd22864cd899ac1b61d95540f719))
|
|
225
253
|
|
|
226
254
|
|
|
227
255
|
### Dependencies
|
|
@@ -230,7 +258,7 @@
|
|
|
230
258
|
* dependencies
|
|
231
259
|
* @twin.org/blob-storage-models bumped from 0.0.1-next.33 to 0.0.1-next.34
|
|
232
260
|
|
|
233
|
-
## [0.0.1-next.33](https://github.com/
|
|
261
|
+
## [0.0.1-next.33](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.32...blob-storage-connector-memory-v0.0.1-next.33) (2025-06-03)
|
|
234
262
|
|
|
235
263
|
|
|
236
264
|
### Miscellaneous Chores
|
|
@@ -244,7 +272,7 @@
|
|
|
244
272
|
* dependencies
|
|
245
273
|
* @twin.org/blob-storage-models bumped from 0.0.1-next.32 to 0.0.1-next.33
|
|
246
274
|
|
|
247
|
-
## [0.0.1-next.32](https://github.com/
|
|
275
|
+
## [0.0.1-next.32](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.31...blob-storage-connector-memory-v0.0.1-next.32) (2025-05-28)
|
|
248
276
|
|
|
249
277
|
|
|
250
278
|
### Miscellaneous Chores
|
|
@@ -258,7 +286,7 @@
|
|
|
258
286
|
* dependencies
|
|
259
287
|
* @twin.org/blob-storage-models bumped from 0.0.1-next.31 to 0.0.1-next.32
|
|
260
288
|
|
|
261
|
-
## [0.0.1-next.31](https://github.com/
|
|
289
|
+
## [0.0.1-next.31](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.30...blob-storage-connector-memory-v0.0.1-next.31) (2025-05-08)
|
|
262
290
|
|
|
263
291
|
|
|
264
292
|
### Miscellaneous Chores
|
|
@@ -272,12 +300,12 @@
|
|
|
272
300
|
* dependencies
|
|
273
301
|
* @twin.org/blob-storage-models bumped from 0.0.1-next.30 to 0.0.1-next.31
|
|
274
302
|
|
|
275
|
-
## [0.0.1-next.30](https://github.com/
|
|
303
|
+
## [0.0.1-next.30](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.29...blob-storage-connector-memory-v0.0.1-next.30) (2025-04-17)
|
|
276
304
|
|
|
277
305
|
|
|
278
306
|
### Features
|
|
279
307
|
|
|
280
|
-
* use shared store mechanism ([#12](https://github.com/
|
|
308
|
+
* use shared store mechanism ([#12](https://github.com/iotaledger/twin-blob-storage/issues/12)) ([cae8110](https://github.com/iotaledger/twin-blob-storage/commit/cae8110681847a1ac4fcac968b8196694e49c320))
|
|
281
309
|
|
|
282
310
|
|
|
283
311
|
### Dependencies
|
|
@@ -286,7 +314,7 @@
|
|
|
286
314
|
* dependencies
|
|
287
315
|
* @twin.org/blob-storage-models bumped from 0.0.1-next.29 to 0.0.1-next.30
|
|
288
316
|
|
|
289
|
-
## [0.0.1-next.29](https://github.com/
|
|
317
|
+
## [0.0.1-next.29](https://github.com/iotaledger/twin-blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.28...blob-storage-connector-memory-v0.0.1-next.29) (2025-03-28)
|
|
290
318
|
|
|
291
319
|
|
|
292
320
|
### Miscellaneous Chores
|
package/docs/examples.md
CHANGED
|
@@ -1 +1,35 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Memory Connector Examples
|
|
2
|
+
|
|
3
|
+
Use these snippets to test fast in-memory blob workflows where you want deterministic behaviour without external dependencies.
|
|
4
|
+
|
|
5
|
+
## MemoryBlobStorageConnector
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import { MemoryBlobStorageConnector } from '@twin.org/blob-storage-connector-memory';
|
|
9
|
+
|
|
10
|
+
const connector = new MemoryBlobStorageConnector({
|
|
11
|
+
partitionContextIds: ['tenant', 'environment']
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
console.log(connector.className()); // MemoryBlobStorageConnector
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
import { Converter } from '@twin.org/core';
|
|
19
|
+
import { MemoryBlobStorageConnector } from '@twin.org/blob-storage-connector-memory';
|
|
20
|
+
|
|
21
|
+
const connector = new MemoryBlobStorageConnector();
|
|
22
|
+
|
|
23
|
+
const blobData = Converter.utf8ToBytes('Memory payload');
|
|
24
|
+
const blobId = await connector.set(blobData);
|
|
25
|
+
console.log(blobId); // blob:urn:blob:memory:...
|
|
26
|
+
|
|
27
|
+
const storedBlob = await connector.get(blobId);
|
|
28
|
+
console.log(storedBlob?.length); // 14
|
|
29
|
+
|
|
30
|
+
const currentStore = connector.getStore();
|
|
31
|
+
console.log(Object.keys(currentStore).length); // 1
|
|
32
|
+
|
|
33
|
+
const removed = await connector.remove(blobId);
|
|
34
|
+
console.log(removed); // true
|
|
35
|
+
```
|
|
@@ -28,7 +28,7 @@ The options for the connector.
|
|
|
28
28
|
|
|
29
29
|
## Properties
|
|
30
30
|
|
|
31
|
-
### NAMESPACE
|
|
31
|
+
### NAMESPACE {#namespace}
|
|
32
32
|
|
|
33
33
|
> `readonly` `static` **NAMESPACE**: `string` = `"memory"`
|
|
34
34
|
|
|
@@ -36,7 +36,7 @@ The namespace for the items.
|
|
|
36
36
|
|
|
37
37
|
***
|
|
38
38
|
|
|
39
|
-
### CLASS\_NAME
|
|
39
|
+
### CLASS\_NAME {#class_name}
|
|
40
40
|
|
|
41
41
|
> `readonly` `static` **CLASS\_NAME**: `string`
|
|
42
42
|
|
|
@@ -44,7 +44,7 @@ Runtime name for the class.
|
|
|
44
44
|
|
|
45
45
|
## Methods
|
|
46
46
|
|
|
47
|
-
### className()
|
|
47
|
+
### className() {#classname}
|
|
48
48
|
|
|
49
49
|
> **className**(): `string`
|
|
50
50
|
|
|
@@ -62,7 +62,25 @@ The class name of the component.
|
|
|
62
62
|
|
|
63
63
|
***
|
|
64
64
|
|
|
65
|
-
###
|
|
65
|
+
### health() {#health}
|
|
66
|
+
|
|
67
|
+
> **health**(): `Promise`\<`IHealth`[]\>
|
|
68
|
+
|
|
69
|
+
Returns the health status of the component.
|
|
70
|
+
|
|
71
|
+
#### Returns
|
|
72
|
+
|
|
73
|
+
`Promise`\<`IHealth`[]\>
|
|
74
|
+
|
|
75
|
+
The health status of the component.
|
|
76
|
+
|
|
77
|
+
#### Implementation of
|
|
78
|
+
|
|
79
|
+
`IBlobStorageConnector.health`
|
|
80
|
+
|
|
81
|
+
***
|
|
82
|
+
|
|
83
|
+
### set() {#set}
|
|
66
84
|
|
|
67
85
|
> **set**(`blob`): `Promise`\<`string`\>
|
|
68
86
|
|
|
@@ -88,7 +106,7 @@ The id of the stored blob in urn format.
|
|
|
88
106
|
|
|
89
107
|
***
|
|
90
108
|
|
|
91
|
-
### get()
|
|
109
|
+
### get() {#get}
|
|
92
110
|
|
|
93
111
|
> **get**(`id`): `Promise`\<`Uint8Array`\<`ArrayBufferLike`\> \| `undefined`\>
|
|
94
112
|
|
|
@@ -114,7 +132,7 @@ The data for the blob if it can be found or undefined.
|
|
|
114
132
|
|
|
115
133
|
***
|
|
116
134
|
|
|
117
|
-
### remove()
|
|
135
|
+
### remove() {#remove}
|
|
118
136
|
|
|
119
137
|
> **remove**(`id`): `Promise`\<`boolean`\>
|
|
120
138
|
|
|
@@ -140,7 +158,7 @@ True if the blob was found.
|
|
|
140
158
|
|
|
141
159
|
***
|
|
142
160
|
|
|
143
|
-
### getStore()
|
|
161
|
+
### getStore() {#getstore}
|
|
144
162
|
|
|
145
163
|
> **getStore**(): `object`
|
|
146
164
|
|
|
@@ -4,8 +4,8 @@ Options for the Memory Blob Storage Connector constructor.
|
|
|
4
4
|
|
|
5
5
|
## Properties
|
|
6
6
|
|
|
7
|
-
### partitionContextIds?
|
|
7
|
+
### partitionContextIds? {#partitioncontextids}
|
|
8
8
|
|
|
9
|
-
> `optional` **partitionContextIds
|
|
9
|
+
> `optional` **partitionContextIds?**: `string`[]
|
|
10
10
|
|
|
11
11
|
The keys to use from the context ids to create partitions.
|
package/locales/en.json
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
+
"health": {
|
|
3
|
+
"memoryBlobStorageConnector": {
|
|
4
|
+
"healthDescription": "Memory blob storage connector is healthy"
|
|
5
|
+
}
|
|
6
|
+
},
|
|
2
7
|
"error": {
|
|
3
8
|
"memoryBlobStorageConnector": {
|
|
4
9
|
"namespaceMismatch": "The namespace in the urn \"{id}\" does not match the namespace of the blob storage \"{namespace}\""
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@twin.org/blob-storage-connector-memory",
|
|
3
|
-
"version": "0.0.3-next.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.0.3-next.8",
|
|
4
|
+
"description": "Provides an in-memory connector for fast local testing and ephemeral blob workflows.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
|
-
"url": "git+https://github.com/
|
|
7
|
+
"url": "git+https://github.com/iotaledger/blob-storage.git",
|
|
8
8
|
"directory": "packages/blob-storage-connector-memory"
|
|
9
9
|
},
|
|
10
10
|
"author": "martyn.janes@iota.org",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"node": ">=20.0.0"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@twin.org/blob-storage-models": "0.0.3-next.
|
|
17
|
+
"@twin.org/blob-storage-models": "0.0.3-next.8",
|
|
18
18
|
"@twin.org/context": "next",
|
|
19
19
|
"@twin.org/core": "next",
|
|
20
20
|
"@twin.org/crypto": "next",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"testing"
|
|
56
56
|
],
|
|
57
57
|
"bugs": {
|
|
58
|
-
"url": "git+https://github.com/
|
|
58
|
+
"url": "git+https://github.com/iotaledger/blob-storage/issues"
|
|
59
59
|
},
|
|
60
60
|
"homepage": "https://twindev.org"
|
|
61
61
|
}
|