@twin.org/nft-service 0.0.1-next.9 → 0.0.2-next.1

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.
@@ -38,7 +38,6 @@ function generateRestRoutesNft(baseRouteName, componentName) {
38
38
  id: "nftMintExample",
39
39
  request: {
40
40
  body: {
41
- issuer: "tst1prctjk5ck0dutnsunnje6u90jk5htx03qznjjmkd6843pzltlgz87srjzzv",
42
41
  tag: "MY-NFT",
43
42
  immutableMetadata: {
44
43
  docName: "bill-of-lading",
@@ -98,8 +97,8 @@ function generateRestRoutesNft(baseRouteName, componentName) {
98
97
  id: "nftResolveResponseExample",
99
98
  response: {
100
99
  body: {
101
- issuer: "tst1prctjk5ck0dutnsunnje6u90jk5htx03qznjjmkd6843pzltlgz87srjzzv",
102
- owner: "tst1prctjk5ck0dutnsunnje6u90jk5htx03qznjjmkd6843pzltlgz87srjzzv",
100
+ issuer: "did:iota:tst:0x85ef62ea94fc4eeeeeddf6acc3b566e988e613081d0b93cc54ed831ed4c18d44",
101
+ owner: "did:iota:tst:0x85ef62ea94fc4eeeeeddf6acc3b566e988e613081d0b93cc54ed831ed4c18d44",
103
102
  tag: "MY-NFT",
104
103
  immutableMetadata: {
105
104
  docName: "bill-of-lading",
@@ -159,7 +158,8 @@ function generateRestRoutesNft(baseRouteName, componentName) {
159
158
  id: "nft:iota:aW90YS1uZnQ6dHN0OjB4NzYyYjljNDllYTg2OWUwZWJkYTliYmZhNzY5Mzk0NDdhNDI4ZGNmMTc4YzVkMTVhYjQ0N2UyZDRmYmJiNGViMg=="
160
159
  },
161
160
  body: {
162
- recipient: "tst1prctjk5ck0dutnsunnje6u90jk5htx03qznjjmkd6843pzltlgz87srjzzv",
161
+ recipientIdentity: "did:iota:tst:0x85ef62ea94fc4eeeeeddf6acc3b566e988e613081d0b93cc54ed831ed4c18d44",
162
+ recipientAddress: "tst1prctjk5ck0dutnsunnje6u90jk5htx03qznjjmkd6843pzltlgz87srjzzv",
163
163
  metadata: {
164
164
  data: "AAAAA"
165
165
  }
@@ -217,10 +217,9 @@ function generateRestRoutesNft(baseRouteName, componentName) {
217
217
  async function nftMint(httpRequestContext, componentName, request) {
218
218
  core.Guards.object(ROUTES_SOURCE, "request", request);
219
219
  core.Guards.object(ROUTES_SOURCE, "request.body", request.body);
220
- core.Guards.stringValue(ROUTES_SOURCE, "request.body.issuer", request.body.issuer);
221
220
  core.Guards.stringValue(ROUTES_SOURCE, "request.body.tag", request.body.tag);
222
221
  const component = core.ComponentFactory.get(componentName);
223
- const id = await component.mint(request.body.issuer, request.body.tag, request.body.immutableMetadata, request.body.metadata, request.body.namespace, httpRequestContext.userIdentity);
222
+ const id = await component.mint(request.body.tag, request.body.immutableMetadata, request.body.metadata, request.body.namespace, httpRequestContext.userIdentity);
224
223
  return {
225
224
  statusCode: web.HttpStatusCode.created,
226
225
  headers: {
@@ -274,9 +273,10 @@ async function nftTransfer(httpRequestContext, componentName, request) {
274
273
  core.Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
275
274
  core.Guards.stringValue(ROUTES_SOURCE, "request.pathParams.id", request.pathParams.id);
276
275
  core.Guards.object(ROUTES_SOURCE, "request.body", request.body);
277
- core.Guards.stringValue(ROUTES_SOURCE, "request.body.recipient", request.body.recipient);
276
+ core.Guards.stringValue(ROUTES_SOURCE, "request.body.recipientAddress", request.body.recipientAddress);
277
+ core.Guards.stringValue(ROUTES_SOURCE, "request.body.recipientIdentity", request.body.recipientIdentity);
278
278
  const component = core.ComponentFactory.get(componentName);
279
- await component.transfer(request.pathParams.id, request.body.recipient, request.body.metadata, httpRequestContext.userIdentity);
279
+ await component.transfer(request.pathParams.id, request.body.recipientIdentity, request.body.recipientAddress, request.body.metadata, httpRequestContext.userIdentity);
280
280
  return {
281
281
  statusCode: web.HttpStatusCode.noContent
282
282
  };
@@ -333,7 +333,6 @@ class NftService {
333
333
  }
334
334
  /**
335
335
  * Mint an NFT.
336
- * @param issuer The issuer for the NFT, will also be the initial owner.
337
336
  * @param tag The tag for the NFT.
338
337
  * @param immutableMetadata The immutable metadata for the NFT.
339
338
  * @param metadata The metadata for the NFT.
@@ -341,14 +340,13 @@ class NftService {
341
340
  * @param identity The identity to perform the nft operation on.
342
341
  * @returns The id of the created NFT in urn format.
343
342
  */
344
- async mint(issuer, tag, immutableMetadata, metadata, namespace, identity) {
345
- core.Guards.stringValue(this.CLASS_NAME, "issuer", issuer);
343
+ async mint(tag, immutableMetadata, metadata, namespace, identity) {
346
344
  core.Guards.stringValue(this.CLASS_NAME, "tag", tag);
347
345
  core.Guards.stringValue(this.CLASS_NAME, "identity", identity);
348
346
  try {
349
347
  const connectorNamespace = namespace ?? this._defaultNamespace;
350
348
  const nftConnector = nftModels.NftConnectorFactory.get(connectorNamespace);
351
- const nftUrn = await nftConnector.mint(identity, issuer, tag, immutableMetadata, metadata);
349
+ const nftUrn = await nftConnector.mint(identity, tag, immutableMetadata, metadata);
352
350
  return nftUrn;
353
351
  }
354
352
  catch (error) {
@@ -391,18 +389,20 @@ class NftService {
391
389
  /**
392
390
  * Transfer an NFT.
393
391
  * @param id The id of the NFT to transfer in urn format.
394
- * @param recipient The recipient of the NFT.
392
+ * @param recipientIdentity The recipient identity for the NFT.
393
+ * @param recipientAddress The recipient address for the NFT.
395
394
  * @param metadata Optional mutable data to include during the transfer.
396
395
  * @param identity The identity to perform the nft operation on.
397
396
  * @returns Nothing.
398
397
  */
399
- async transfer(id, recipient, metadata, identity) {
398
+ async transfer(id, recipientIdentity, recipientAddress, metadata, identity) {
400
399
  core.Urn.guard(this.CLASS_NAME, "id", id);
401
- core.Guards.stringValue(this.CLASS_NAME, "recipient", recipient);
400
+ core.Guards.stringValue(this.CLASS_NAME, "recipientIdentity", recipientIdentity);
401
+ core.Guards.stringValue(this.CLASS_NAME, "recipientAddress", recipientAddress);
402
402
  core.Guards.stringValue(this.CLASS_NAME, "identity", identity);
403
403
  try {
404
404
  const nftConnector = this.getConnector(id);
405
- await nftConnector.transfer(identity, id, recipient, metadata);
405
+ await nftConnector.transfer(identity, id, recipientIdentity, recipientAddress, metadata);
406
406
  }
407
407
  catch (error) {
408
408
  throw new core.GeneralError(this.CLASS_NAME, "transferFailed", undefined, error);
@@ -36,7 +36,6 @@ function generateRestRoutesNft(baseRouteName, componentName) {
36
36
  id: "nftMintExample",
37
37
  request: {
38
38
  body: {
39
- issuer: "tst1prctjk5ck0dutnsunnje6u90jk5htx03qznjjmkd6843pzltlgz87srjzzv",
40
39
  tag: "MY-NFT",
41
40
  immutableMetadata: {
42
41
  docName: "bill-of-lading",
@@ -96,8 +95,8 @@ function generateRestRoutesNft(baseRouteName, componentName) {
96
95
  id: "nftResolveResponseExample",
97
96
  response: {
98
97
  body: {
99
- issuer: "tst1prctjk5ck0dutnsunnje6u90jk5htx03qznjjmkd6843pzltlgz87srjzzv",
100
- owner: "tst1prctjk5ck0dutnsunnje6u90jk5htx03qznjjmkd6843pzltlgz87srjzzv",
98
+ issuer: "did:iota:tst:0x85ef62ea94fc4eeeeeddf6acc3b566e988e613081d0b93cc54ed831ed4c18d44",
99
+ owner: "did:iota:tst:0x85ef62ea94fc4eeeeeddf6acc3b566e988e613081d0b93cc54ed831ed4c18d44",
101
100
  tag: "MY-NFT",
102
101
  immutableMetadata: {
103
102
  docName: "bill-of-lading",
@@ -157,7 +156,8 @@ function generateRestRoutesNft(baseRouteName, componentName) {
157
156
  id: "nft:iota:aW90YS1uZnQ6dHN0OjB4NzYyYjljNDllYTg2OWUwZWJkYTliYmZhNzY5Mzk0NDdhNDI4ZGNmMTc4YzVkMTVhYjQ0N2UyZDRmYmJiNGViMg=="
158
157
  },
159
158
  body: {
160
- recipient: "tst1prctjk5ck0dutnsunnje6u90jk5htx03qznjjmkd6843pzltlgz87srjzzv",
159
+ recipientIdentity: "did:iota:tst:0x85ef62ea94fc4eeeeeddf6acc3b566e988e613081d0b93cc54ed831ed4c18d44",
160
+ recipientAddress: "tst1prctjk5ck0dutnsunnje6u90jk5htx03qznjjmkd6843pzltlgz87srjzzv",
161
161
  metadata: {
162
162
  data: "AAAAA"
163
163
  }
@@ -215,10 +215,9 @@ function generateRestRoutesNft(baseRouteName, componentName) {
215
215
  async function nftMint(httpRequestContext, componentName, request) {
216
216
  Guards.object(ROUTES_SOURCE, "request", request);
217
217
  Guards.object(ROUTES_SOURCE, "request.body", request.body);
218
- Guards.stringValue(ROUTES_SOURCE, "request.body.issuer", request.body.issuer);
219
218
  Guards.stringValue(ROUTES_SOURCE, "request.body.tag", request.body.tag);
220
219
  const component = ComponentFactory.get(componentName);
221
- const id = await component.mint(request.body.issuer, request.body.tag, request.body.immutableMetadata, request.body.metadata, request.body.namespace, httpRequestContext.userIdentity);
220
+ const id = await component.mint(request.body.tag, request.body.immutableMetadata, request.body.metadata, request.body.namespace, httpRequestContext.userIdentity);
222
221
  return {
223
222
  statusCode: HttpStatusCode.created,
224
223
  headers: {
@@ -272,9 +271,10 @@ async function nftTransfer(httpRequestContext, componentName, request) {
272
271
  Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
273
272
  Guards.stringValue(ROUTES_SOURCE, "request.pathParams.id", request.pathParams.id);
274
273
  Guards.object(ROUTES_SOURCE, "request.body", request.body);
275
- Guards.stringValue(ROUTES_SOURCE, "request.body.recipient", request.body.recipient);
274
+ Guards.stringValue(ROUTES_SOURCE, "request.body.recipientAddress", request.body.recipientAddress);
275
+ Guards.stringValue(ROUTES_SOURCE, "request.body.recipientIdentity", request.body.recipientIdentity);
276
276
  const component = ComponentFactory.get(componentName);
277
- await component.transfer(request.pathParams.id, request.body.recipient, request.body.metadata, httpRequestContext.userIdentity);
277
+ await component.transfer(request.pathParams.id, request.body.recipientIdentity, request.body.recipientAddress, request.body.metadata, httpRequestContext.userIdentity);
278
278
  return {
279
279
  statusCode: HttpStatusCode.noContent
280
280
  };
@@ -331,7 +331,6 @@ class NftService {
331
331
  }
332
332
  /**
333
333
  * Mint an NFT.
334
- * @param issuer The issuer for the NFT, will also be the initial owner.
335
334
  * @param tag The tag for the NFT.
336
335
  * @param immutableMetadata The immutable metadata for the NFT.
337
336
  * @param metadata The metadata for the NFT.
@@ -339,14 +338,13 @@ class NftService {
339
338
  * @param identity The identity to perform the nft operation on.
340
339
  * @returns The id of the created NFT in urn format.
341
340
  */
342
- async mint(issuer, tag, immutableMetadata, metadata, namespace, identity) {
343
- Guards.stringValue(this.CLASS_NAME, "issuer", issuer);
341
+ async mint(tag, immutableMetadata, metadata, namespace, identity) {
344
342
  Guards.stringValue(this.CLASS_NAME, "tag", tag);
345
343
  Guards.stringValue(this.CLASS_NAME, "identity", identity);
346
344
  try {
347
345
  const connectorNamespace = namespace ?? this._defaultNamespace;
348
346
  const nftConnector = NftConnectorFactory.get(connectorNamespace);
349
- const nftUrn = await nftConnector.mint(identity, issuer, tag, immutableMetadata, metadata);
347
+ const nftUrn = await nftConnector.mint(identity, tag, immutableMetadata, metadata);
350
348
  return nftUrn;
351
349
  }
352
350
  catch (error) {
@@ -389,18 +387,20 @@ class NftService {
389
387
  /**
390
388
  * Transfer an NFT.
391
389
  * @param id The id of the NFT to transfer in urn format.
392
- * @param recipient The recipient of the NFT.
390
+ * @param recipientIdentity The recipient identity for the NFT.
391
+ * @param recipientAddress The recipient address for the NFT.
393
392
  * @param metadata Optional mutable data to include during the transfer.
394
393
  * @param identity The identity to perform the nft operation on.
395
394
  * @returns Nothing.
396
395
  */
397
- async transfer(id, recipient, metadata, identity) {
396
+ async transfer(id, recipientIdentity, recipientAddress, metadata, identity) {
398
397
  Urn.guard(this.CLASS_NAME, "id", id);
399
- Guards.stringValue(this.CLASS_NAME, "recipient", recipient);
398
+ Guards.stringValue(this.CLASS_NAME, "recipientIdentity", recipientIdentity);
399
+ Guards.stringValue(this.CLASS_NAME, "recipientAddress", recipientAddress);
400
400
  Guards.stringValue(this.CLASS_NAME, "identity", identity);
401
401
  try {
402
402
  const nftConnector = this.getConnector(id);
403
- await nftConnector.transfer(identity, id, recipient, metadata);
403
+ await nftConnector.transfer(identity, id, recipientIdentity, recipientAddress, metadata);
404
404
  }
405
405
  catch (error) {
406
406
  throw new GeneralError(this.CLASS_NAME, "transferFailed", undefined, error);
@@ -19,7 +19,6 @@ export declare class NftService implements INftComponent {
19
19
  constructor(options?: INftServiceConstructorOptions);
20
20
  /**
21
21
  * Mint an NFT.
22
- * @param issuer The issuer for the NFT, will also be the initial owner.
23
22
  * @param tag The tag for the NFT.
24
23
  * @param immutableMetadata The immutable metadata for the NFT.
25
24
  * @param metadata The metadata for the NFT.
@@ -27,7 +26,7 @@ export declare class NftService implements INftComponent {
27
26
  * @param identity The identity to perform the nft operation on.
28
27
  * @returns The id of the created NFT in urn format.
29
28
  */
30
- mint<T = unknown, U = unknown>(issuer: string, tag: string, immutableMetadata?: T, metadata?: U, namespace?: string, identity?: string): Promise<string>;
29
+ mint<T = unknown, U = unknown>(tag: string, immutableMetadata?: T, metadata?: U, namespace?: string, identity?: string): Promise<string>;
31
30
  /**
32
31
  * Resolve an NFT.
33
32
  * @param id The id of the NFT to resolve.
@@ -51,12 +50,13 @@ export declare class NftService implements INftComponent {
51
50
  /**
52
51
  * Transfer an NFT.
53
52
  * @param id The id of the NFT to transfer in urn format.
54
- * @param recipient The recipient of the NFT.
53
+ * @param recipientIdentity The recipient identity for the NFT.
54
+ * @param recipientAddress The recipient address for the NFT.
55
55
  * @param metadata Optional mutable data to include during the transfer.
56
56
  * @param identity The identity to perform the nft operation on.
57
57
  * @returns Nothing.
58
58
  */
59
- transfer<T = unknown>(id: string, recipient: string, metadata?: T, identity?: string): Promise<void>;
59
+ transfer<U = unknown>(id: string, recipientIdentity: string, recipientAddress: string, metadata?: U, identity?: string): Promise<void>;
60
60
  /**
61
61
  * Update the data of the NFT.
62
62
  * @param id The id of the NFT to update in urn format.
@@ -64,5 +64,5 @@ export declare class NftService implements INftComponent {
64
64
  * @param identity The identity to perform the nft operation on.
65
65
  * @returns Nothing.
66
66
  */
67
- update<T = unknown>(id: string, metadata: T, identity?: string): Promise<void>;
67
+ update<U = unknown>(id: string, metadata: U, identity?: string): Promise<void>;
68
68
  }
package/docs/changelog.md CHANGED
@@ -1,5 +1,193 @@
1
1
  # @twin.org/nft-service - Changelog
2
2
 
3
- ## v0.0.1-next.9
3
+ ## [0.0.2-next.1](https://github.com/twinfoundation/nft/compare/nft-service-v0.0.2-next.0...nft-service-v0.0.2-next.1) (2025-07-16)
4
+
5
+
6
+ ### Features
7
+
8
+ * iota rebased release ([bfdd233](https://github.com/twinfoundation/nft/commit/bfdd23330e168962f7ad0a6fcd2c9c9a38a11697))
9
+ * update dependencies ([8660f76](https://github.com/twinfoundation/nft/commit/8660f76ca324b0f476e45544cac6bee4b3146c3b))
10
+ * use shared store mechanism ([#16](https://github.com/twinfoundation/nft/issues/16)) ([897bc78](https://github.com/twinfoundation/nft/commit/897bc7805248ba1388b2dd03df24c33f1633f344))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * params order modified ([#19](https://github.com/twinfoundation/nft/issues/19)) ([c2ceb30](https://github.com/twinfoundation/nft/commit/c2ceb3040c12286d4fac09d51db77465366ba89d))
16
+
17
+
18
+ ### Dependencies
19
+
20
+ * The following workspace dependencies were updated
21
+ * dependencies
22
+ * @twin.org/nft-models bumped from 0.0.2-next.0 to 0.0.2-next.1
23
+ * devDependencies
24
+ * @twin.org/nft-connector-entity-storage bumped from 0.0.2-next.0 to 0.0.2-next.1
25
+
26
+ ## 0.0.1 (2025-07-09)
27
+
28
+
29
+ ### Features
30
+
31
+ * release to production ([4d338b3](https://github.com/twinfoundation/nft/commit/4d338b3e8a4dbccc61a1d1da3c470ba86cefe535))
32
+
33
+
34
+ ### Dependencies
35
+
36
+ * The following workspace dependencies were updated
37
+ * dependencies
38
+ * @twin.org/nft-models bumped from ^0.0.0 to ^0.0.1
39
+ * devDependencies
40
+ * @twin.org/nft-connector-entity-storage bumped from ^0.0.0 to ^0.0.1
41
+
42
+ ## [0.0.1-next.32](https://github.com/twinfoundation/nft/compare/nft-service-v0.0.1-next.31...nft-service-v0.0.1-next.32) (2025-06-24)
43
+
44
+
45
+ ### Miscellaneous Chores
46
+
47
+ * **nft-service:** Synchronize repo versions
48
+
49
+
50
+ ### Dependencies
51
+
52
+ * The following workspace dependencies were updated
53
+ * dependencies
54
+ * @twin.org/nft-models bumped from 0.0.1-next.31 to 0.0.1-next.32
55
+ * devDependencies
56
+ * @twin.org/nft-connector-entity-storage bumped from 0.0.1-next.31 to 0.0.1-next.32
57
+
58
+ ## [0.0.1-next.31](https://github.com/twinfoundation/nft/compare/nft-service-v0.0.1-next.30...nft-service-v0.0.1-next.31) (2025-06-12)
59
+
60
+
61
+ ### Features
62
+
63
+ * update dependencies ([8660f76](https://github.com/twinfoundation/nft/commit/8660f76ca324b0f476e45544cac6bee4b3146c3b))
64
+
65
+
66
+ ### Dependencies
67
+
68
+ * The following workspace dependencies were updated
69
+ * dependencies
70
+ * @twin.org/nft-models bumped from 0.0.1-next.30 to 0.0.1-next.31
71
+ * devDependencies
72
+ * @twin.org/nft-connector-entity-storage bumped from 0.0.1-next.30 to 0.0.1-next.31
73
+
74
+ ## [0.0.1-next.30](https://github.com/twinfoundation/nft/compare/nft-service-v0.0.1-next.29...nft-service-v0.0.1-next.30) (2025-05-22)
75
+
76
+
77
+ ### Miscellaneous Chores
78
+
79
+ * **nft-service:** Synchronize repo versions
80
+
81
+
82
+ ### Dependencies
83
+
84
+ * The following workspace dependencies were updated
85
+ * dependencies
86
+ * @twin.org/nft-models bumped from 0.0.1-next.29 to 0.0.1-next.30
87
+ * devDependencies
88
+ * @twin.org/nft-connector-entity-storage bumped from 0.0.1-next.29 to 0.0.1-next.30
89
+
90
+ ## [0.0.1-next.29](https://github.com/twinfoundation/nft/compare/nft-service-v0.0.1-next.28...nft-service-v0.0.1-next.29) (2025-05-21)
91
+
92
+
93
+ ### Miscellaneous Chores
94
+
95
+ * **nft-service:** Synchronize repo versions
96
+
97
+
98
+ ### Dependencies
99
+
100
+ * The following workspace dependencies were updated
101
+ * dependencies
102
+ * @twin.org/nft-models bumped from 0.0.1-next.28 to 0.0.1-next.29
103
+ * devDependencies
104
+ * @twin.org/nft-connector-entity-storage bumped from 0.0.1-next.28 to 0.0.1-next.29
105
+
106
+ ## [0.0.1-next.28](https://github.com/twinfoundation/nft/compare/nft-service-v0.0.1-next.27...nft-service-v0.0.1-next.28) (2025-05-06)
107
+
108
+
109
+ ### Features
110
+
111
+ * iota rebased release ([bfdd233](https://github.com/twinfoundation/nft/commit/bfdd23330e168962f7ad0a6fcd2c9c9a38a11697))
112
+
113
+
114
+ ### Bug Fixes
115
+
116
+ * params order modified ([#19](https://github.com/twinfoundation/nft/issues/19)) ([c2ceb30](https://github.com/twinfoundation/nft/commit/c2ceb3040c12286d4fac09d51db77465366ba89d))
117
+
118
+
119
+ ### Dependencies
120
+
121
+ * The following workspace dependencies were updated
122
+ * dependencies
123
+ * @twin.org/nft-models bumped from 0.0.1-next.27 to 0.0.1-next.28
124
+ * devDependencies
125
+ * @twin.org/nft-connector-entity-storage bumped from 0.0.1-next.27 to 0.0.1-next.28
126
+
127
+ ## [0.0.1-next.27](https://github.com/twinfoundation/nft/compare/nft-service-v0.0.1-next.26...nft-service-v0.0.1-next.27) (2025-04-24)
128
+
129
+
130
+ ### Miscellaneous Chores
131
+
132
+ * **nft-service:** Synchronize repo versions
133
+
134
+
135
+ ### Dependencies
136
+
137
+ * The following workspace dependencies were updated
138
+ * dependencies
139
+ * @twin.org/nft-models bumped from 0.0.1-next.26 to 0.0.1-next.27
140
+ * devDependencies
141
+ * @twin.org/nft-connector-entity-storage bumped from 0.0.1-next.26 to 0.0.1-next.27
142
+
143
+ ## [0.0.1-next.26](https://github.com/twinfoundation/nft/compare/nft-service-v0.0.1-next.25...nft-service-v0.0.1-next.26) (2025-04-17)
144
+
145
+
146
+ ### Features
147
+
148
+ * use shared store mechanism ([#16](https://github.com/twinfoundation/nft/issues/16)) ([897bc78](https://github.com/twinfoundation/nft/commit/897bc7805248ba1388b2dd03df24c33f1633f344))
149
+
150
+
151
+ ### Dependencies
152
+
153
+ * The following workspace dependencies were updated
154
+ * dependencies
155
+ * @twin.org/nft-models bumped from 0.0.1-next.25 to 0.0.1-next.26
156
+ * devDependencies
157
+ * @twin.org/nft-connector-entity-storage bumped from 0.0.1-next.25 to 0.0.1-next.26
158
+
159
+ ## [0.0.1-next.25](https://github.com/twinfoundation/nft/compare/nft-service-v0.0.1-next.24...nft-service-v0.0.1-next.25) (2025-04-17)
160
+
161
+
162
+ ### Miscellaneous Chores
163
+
164
+ * **nft-service:** Synchronize repo versions
165
+
166
+
167
+ ### Dependencies
168
+
169
+ * The following workspace dependencies were updated
170
+ * dependencies
171
+ * @twin.org/nft-models bumped from 0.0.1-next.24 to 0.0.1-next.25
172
+ * devDependencies
173
+ * @twin.org/nft-connector-entity-storage bumped from 0.0.1-next.24 to 0.0.1-next.25
174
+
175
+ ## [0.0.1-next.24](https://github.com/twinfoundation/nft/compare/nft-service-v0.0.1-next.23...nft-service-v0.0.1-next.24) (2025-03-28)
176
+
177
+
178
+ ### Miscellaneous Chores
179
+
180
+ * **nft-service:** Synchronize repo versions
181
+
182
+
183
+ ### Dependencies
184
+
185
+ * The following workspace dependencies were updated
186
+ * dependencies
187
+ * @twin.org/nft-models bumped from 0.0.1-next.23 to 0.0.1-next.24
188
+ * devDependencies
189
+ * @twin.org/nft-connector-entity-storage bumped from 0.0.1-next.23 to 0.0.1-next.24
190
+
191
+ ## v0.0.1-next.23
4
192
 
5
193
  - Initial Release