@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # TWIN Blob Storage Connector Memory
2
2
 
3
- Blob Storage connector implementation using in-memory storage.
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":"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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, Urn } 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 * 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
+ {"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
- # @twin.org/blob-storage-connector-memory - Changelog
1
+ # Changelog
2
2
 
3
- ## [0.0.3-next.6](https://github.com/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.3-next.5...blob-storage-connector-memory-v0.0.3-next.6) (2026-02-09)
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.3-next.4...blob-storage-connector-memory-v0.0.3-next.5) (2026-01-26)
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.3-next.3...blob-storage-connector-memory-v0.0.3-next.4) (2026-01-23)
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.3-next.2...blob-storage-connector-memory-v0.0.3-next.3) (2026-01-21)
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.3-next.1...blob-storage-connector-memory-v0.0.3-next.2) (2026-01-14)
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.3-next.0...blob-storage-connector-memory-v0.0.3-next.1) (2025-11-11)
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/twinfoundation/blob-storage/issues/30)) ([fbf1c92](https://github.com/twinfoundation/blob-storage/commit/fbf1c9276424c841ef5ef3f4de8469ab3fba7e9c))
79
- * add validate-locales ([f20fcec](https://github.com/twinfoundation/blob-storage/commit/f20fceced91e39a0c9edb770b2e43ce944c92f3c))
80
- * eslint migration to flat config ([e4239dd](https://github.com/twinfoundation/blob-storage/commit/e4239dd1c721955cff7f0357255d2bba15319972))
81
- * update dependencies ([56f0094](https://github.com/twinfoundation/blob-storage/commit/56f0094b68d8bd22864cd899ac1b61d95540f719))
82
- * update framework core ([ff339fe](https://github.com/twinfoundation/blob-storage/commit/ff339fe7e3f09ddff429907834bdf43617e9c05e))
83
- * use shared store mechanism ([#12](https://github.com/twinfoundation/blob-storage/issues/12)) ([cae8110](https://github.com/twinfoundation/blob-storage/commit/cae8110681847a1ac4fcac968b8196694e49c320))
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.2-next.4...blob-storage-connector-memory-v0.0.2-next.5) (2025-10-09)
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/twinfoundation/blob-storage/commit/f20fceced91e39a0c9edb770b2e43ce944c92f3c))
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.2-next.3...blob-storage-connector-memory-v0.0.2-next.4) (2025-10-02)
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.2-next.2...blob-storage-connector-memory-v0.0.2-next.3) (2025-08-29)
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/twinfoundation/blob-storage/commit/e4239dd1c721955cff7f0357255d2bba15319972))
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.2-next.1...blob-storage-connector-memory-v0.0.2-next.2) (2025-08-20)
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/twinfoundation/blob-storage/commit/ff339fe7e3f09ddff429907834bdf43617e9c05e))
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.2-next.0...blob-storage-connector-memory-v0.0.2-next.1) (2025-07-24)
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/twinfoundation/blob-storage/commit/56f0094b68d8bd22864cd899ac1b61d95540f719))
154
- * use shared store mechanism ([#12](https://github.com/twinfoundation/blob-storage/issues/12)) ([cae8110](https://github.com/twinfoundation/blob-storage/commit/cae8110681847a1ac4fcac968b8196694e49c320))
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/twinfoundation/blob-storage/commit/eacfe754a0dcd9243d9e13d86422327d0a605164))
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.36...blob-storage-connector-memory-v0.0.1-next.37) (2025-06-20)
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.35...blob-storage-connector-memory-v0.0.1-next.36) (2025-06-19)
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.34...blob-storage-connector-memory-v0.0.1-next.35) (2025-06-17)
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.33...blob-storage-connector-memory-v0.0.1-next.34) (2025-06-12)
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/twinfoundation/blob-storage/commit/56f0094b68d8bd22864cd899ac1b61d95540f719))
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.32...blob-storage-connector-memory-v0.0.1-next.33) (2025-06-03)
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.31...blob-storage-connector-memory-v0.0.1-next.32) (2025-05-28)
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.30...blob-storage-connector-memory-v0.0.1-next.31) (2025-05-08)
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.29...blob-storage-connector-memory-v0.0.1-next.30) (2025-04-17)
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/twinfoundation/blob-storage/issues/12)) ([cae8110](https://github.com/twinfoundation/blob-storage/commit/cae8110681847a1ac4fcac968b8196694e49c320))
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/twinfoundation/blob-storage/compare/blob-storage-connector-memory-v0.0.1-next.28...blob-storage-connector-memory-v0.0.1-next.29) (2025-03-28)
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
- # @twin.org/blob-storage-connector-memory - Examples
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
- ### set()
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**: `string`[]
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.6",
4
- "description": "Blob Storage connector implementation using in-memory storage",
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/twinfoundation/blob-storage.git",
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.6",
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/twinfoundation/blob-storage/issues"
58
+ "url": "git+https://github.com/iotaledger/blob-storage/issues"
59
59
  },
60
60
  "homepage": "https://twindev.org"
61
61
  }