@keetanetwork/anchor 0.0.49 → 0.0.51

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.
Files changed (83) hide show
  1. package/lib/resolver.d.ts +1 -0
  2. package/lib/resolver.d.ts.map +1 -1
  3. package/lib/resolver.js +52 -37
  4. package/lib/resolver.js.map +1 -1
  5. package/npm-shrinkwrap.json +8 -8
  6. package/package.json +2 -2
  7. package/services/asset-movement/client.d.ts.map +1 -1
  8. package/services/asset-movement/client.js +8 -6
  9. package/services/asset-movement/client.js.map +1 -1
  10. package/services/asset-movement/common.d.ts +9 -5
  11. package/services/asset-movement/common.d.ts.map +1 -1
  12. package/services/asset-movement/common.js +18113 -9853
  13. package/services/asset-movement/common.js.map +1 -1
  14. package/services/asset-movement/lib/data/addresses/bank-account/bcr-pay.d.ts +4 -0
  15. package/services/asset-movement/lib/data/addresses/bank-account/bcr-pay.d.ts.map +1 -0
  16. package/services/asset-movement/lib/data/addresses/bank-account/bcr-pay.js +36 -0
  17. package/services/asset-movement/lib/data/addresses/bank-account/bcr-pay.js.map +1 -0
  18. package/services/asset-movement/lib/data/addresses/bank-account/duit-now.d.ts +4 -0
  19. package/services/asset-movement/lib/data/addresses/bank-account/duit-now.d.ts.map +1 -0
  20. package/services/asset-movement/lib/data/addresses/bank-account/duit-now.js +35 -0
  21. package/services/asset-movement/lib/data/addresses/bank-account/duit-now.js.map +1 -0
  22. package/services/asset-movement/lib/data/addresses/bank-account/hk-fps.d.ts +4 -0
  23. package/services/asset-movement/lib/data/addresses/bank-account/hk-fps.d.ts.map +1 -0
  24. package/services/asset-movement/lib/data/addresses/bank-account/hk-fps.js +36 -0
  25. package/services/asset-movement/lib/data/addresses/bank-account/hk-fps.js.map +1 -0
  26. package/services/asset-movement/lib/data/addresses/bank-account/index.generated.d.ts +10 -0
  27. package/services/asset-movement/lib/data/addresses/bank-account/index.generated.d.ts.map +1 -1
  28. package/services/asset-movement/lib/data/addresses/bank-account/index.generated.js +10 -0
  29. package/services/asset-movement/lib/data/addresses/bank-account/index.generated.js.map +1 -1
  30. package/services/asset-movement/lib/data/addresses/bank-account/pay-now.d.ts +4 -0
  31. package/services/asset-movement/lib/data/addresses/bank-account/pay-now.d.ts.map +1 -0
  32. package/services/asset-movement/lib/data/addresses/bank-account/pay-now.js +36 -0
  33. package/services/asset-movement/lib/data/addresses/bank-account/pay-now.js.map +1 -0
  34. package/services/asset-movement/lib/data/addresses/bank-account/pix.d.ts.map +1 -1
  35. package/services/asset-movement/lib/data/addresses/bank-account/pix.js +1 -0
  36. package/services/asset-movement/lib/data/addresses/bank-account/pix.js.map +1 -1
  37. package/services/asset-movement/lib/data/addresses/bank-account/upi.d.ts +4 -0
  38. package/services/asset-movement/lib/data/addresses/bank-account/upi.d.ts.map +1 -0
  39. package/services/asset-movement/lib/data/addresses/bank-account/upi.js +37 -0
  40. package/services/asset-movement/lib/data/addresses/bank-account/upi.js.map +1 -0
  41. package/services/asset-movement/lib/data/addresses/types.generated.d.ts +458 -2
  42. package/services/asset-movement/lib/data/addresses/types.generated.d.ts.map +1 -1
  43. package/services/asset-movement/lib/data/addresses/types.generated.js +508 -0
  44. package/services/asset-movement/lib/data/addresses/types.generated.js.map +1 -1
  45. package/services/asset-movement/lib/location.generated.js +3 -3
  46. package/services/fx/common.d.ts +1 -1
  47. package/services/fx/common.d.ts.map +1 -1
  48. package/services/fx/common.js +16 -16
  49. package/services/fx/common.js.map +1 -1
  50. package/services/fx/server.d.ts.map +1 -1
  51. package/services/fx/server.js +13 -17
  52. package/services/fx/server.js.map +1 -1
  53. package/services/notification/common.generated.js +34 -34
  54. package/services/storage/client.d.ts +38 -0
  55. package/services/storage/client.d.ts.map +1 -1
  56. package/services/storage/client.js +87 -13
  57. package/services/storage/client.js.map +1 -1
  58. package/services/storage/clients/contacts.d.ts +2 -2
  59. package/services/storage/clients/contacts.d.ts.map +1 -1
  60. package/services/storage/clients/contacts.generated.js +1216 -406
  61. package/services/storage/clients/contacts.generated.js.map +1 -1
  62. package/services/storage/clients/contacts.js +27 -9
  63. package/services/storage/clients/contacts.js.map +1 -1
  64. package/services/storage/clients/icon.d.ts +2 -2
  65. package/services/storage/clients/icon.d.ts.map +1 -1
  66. package/services/storage/clients/icon.js +11 -2
  67. package/services/storage/clients/icon.js.map +1 -1
  68. package/services/storage/common.d.ts +38 -1
  69. package/services/storage/common.d.ts.map +1 -1
  70. package/services/storage/common.generated.d.ts +2 -1
  71. package/services/storage/common.generated.d.ts.map +1 -1
  72. package/services/storage/common.generated.js +67 -0
  73. package/services/storage/common.generated.js.map +1 -1
  74. package/services/storage/common.js +8 -0
  75. package/services/storage/common.js.map +1 -1
  76. package/services/storage/server.d.ts.map +1 -1
  77. package/services/storage/server.js +70 -27
  78. package/services/storage/server.js.map +1 -1
  79. package/services/storage/test-utils.d.ts +1 -0
  80. package/services/storage/test-utils.d.ts.map +1 -1
  81. package/services/storage/test-utils.js +15 -0
  82. package/services/storage/test-utils.js.map +1 -1
  83. package/services/username/common.generated.js +23 -23
@@ -1 +1 @@
1
- {"version":3,"file":"contacts.generated.js","sourceRoot":"","sources":["../../../../src/services/storage/clients/contacts.generated.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAGrC,MAAM,CAAC,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuD,CAAC","sourcesContent":["import { createAssert } from 'typia';\nimport type { Contact } from './contacts.ts';\n\nexport const assertContact: (input: unknown) => Contact = createAssert<Contact>();\n"]}
1
+ {"version":3,"file":"contacts.generated.js","sourceRoot":"","sources":["../../../../src/services/storage/clients/contacts.generated.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAGrC,MAAM,CAAC,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuD,CAAC","sourcesContent":["import { createAssert } from 'typia';\nimport type { Contact } from './contacts.ts';\n\nexport const assertContact: (input: unknown) => Contact = createAssert<Contact>();\n"]}
@@ -60,8 +60,10 @@ function contactTags(address) {
60
60
  */
61
61
  export class StorageContactsClient {
62
62
  #session;
63
- constructor(session) {
64
- this.#session = session;
63
+ #logger;
64
+ constructor(config) {
65
+ this.#session = config.session;
66
+ this.#logger = config.logger;
65
67
  }
66
68
  deriveId(address) {
67
69
  const data = Buffer.from(canonicalizeContactAddress(address));
@@ -86,41 +88,47 @@ export class StorageContactsClient {
86
88
  }
87
89
  async create(options) {
88
90
  const id = this.deriveId(options.address);
89
- const contact = {
91
+ this.#logger?.debug('StorageContactsClient::create', `Creating contact ${id}`);
92
+ const contact = assertContact({
90
93
  id,
91
94
  label: options.label,
92
95
  address: options.address,
93
96
  ...(options.rail !== undefined ? { rail: options.rail } : {})
94
- };
97
+ });
95
98
  await this.#session.put(id, this.#serialize(contact), {
96
99
  mimeType: MIME_TYPE,
97
100
  tags: contactTags(options.address)
98
101
  });
102
+ this.#logger?.debug('StorageContactsClient::create', `Contact created: ${id}`);
99
103
  return (contact);
100
104
  }
101
105
  async get(id, includeMetadata) {
106
+ this.#logger?.debug('StorageContactsClient::get', `Getting contact ${id}`);
102
107
  const [result, metadata] = await Promise.all([
103
108
  this.#session.get(id),
104
109
  includeMetadata ? this.#session.getMetadata(id) : Promise.resolve(null)
105
110
  ]);
106
111
  if (!result) {
112
+ this.#logger?.debug('StorageContactsClient::get', `Contact not found: ${id}`);
107
113
  return (null);
108
114
  }
115
+ this.#logger?.debug('StorageContactsClient::get', `Contact retrieved: ${id}`);
109
116
  return (this.#deserialize(result.data, metadata));
110
117
  }
111
118
  async update(id, options) {
119
+ this.#logger?.debug('StorageContactsClient::update', `Updating contact ${id}`);
112
120
  const existing = await this.get(id);
113
121
  if (!existing) {
114
122
  throw (new Errors.DocumentNotFound(`Contact not found: ${id}`));
115
123
  }
116
124
  const newAddress = options.address ?? existing.address;
117
125
  const newId = this.deriveId(newAddress);
118
- const updated = {
126
+ const updated = assertContact({
119
127
  id: newId,
120
128
  label: options.label ?? existing.label,
121
129
  address: newAddress,
122
130
  ...(existing.rail !== undefined ? { rail: existing.rail } : {})
123
- };
131
+ });
124
132
  await this.#session.put(newId, this.#serialize(updated), {
125
133
  mimeType: MIME_TYPE,
126
134
  tags: contactTags(updated.address)
@@ -129,17 +137,21 @@ export class StorageContactsClient {
129
137
  try {
130
138
  await this.#session.delete(id);
131
139
  }
132
- catch {
133
- // Put succeeded; old contact is now orphaned
140
+ catch (error) {
141
+ this.#logger?.warn('StorageContactsClient::update', `Failed to delete old contact ${id} after re-keying to ${newId}`, error);
134
142
  }
135
143
  }
144
+ this.#logger?.debug('StorageContactsClient::update', `Contact updated: ${newId}`);
136
145
  return (updated);
137
146
  }
138
147
  async delete(id) {
148
+ this.#logger?.debug('StorageContactsClient::delete', `Deleting contact ${id}`);
139
149
  const result = await this.#session.delete(id);
150
+ this.#logger?.debug('StorageContactsClient::delete', `Contact delete ${id}: ${result ? 'removed' : 'not found'}`);
140
151
  return (result);
141
152
  }
142
153
  async list(options) {
154
+ this.#logger?.debug('StorageContactsClient::list', 'Listing contacts');
143
155
  const criteria = {
144
156
  pathPrefix: this.#session.workingDirectory
145
157
  };
@@ -151,9 +163,15 @@ export class StorageContactsClient {
151
163
  for (const metadata of searchResult.results) {
152
164
  const result = await this.#session.get(metadata.path);
153
165
  if (result) {
154
- contacts.push(this.#deserialize(result.data, metadata));
166
+ try {
167
+ contacts.push(this.#deserialize(result.data, metadata));
168
+ }
169
+ catch (error) {
170
+ this.#logger?.warn('StorageContactsClient::list', `Skipping corrupt contact at ${metadata.path}`, error);
171
+ }
155
172
  }
156
173
  }
174
+ this.#logger?.debug('StorageContactsClient::list', `Listed ${contacts.length} contacts`);
157
175
  return (contacts);
158
176
  }
159
177
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../../../src/services/storage/clients/contacts.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAwE+C,CAAC;AAkCxG,aAAa;AAEb,iCAAiC;AAEjC;;GAEG;AACH,MAAM,SAAS,GAAG,kBAAkB,CAAC;AAErC;;;;;;;GAOG;AACH,SAAS,0BAA0B,CAAC,OAAuB;IAC1D,MAAM,EAAE,mBAAmB,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,wDAAwD;IACvI,OAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAS,IAAY,EAAE,KAAc;QACpE,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1E,yEAAyE;YACzE,MAAM,GAAG,GAAG,KAAiC,CAAC;YAC9C,OAAM,CAAC,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAC1D,CAAC,CAAC;QACJ,CAAC;QAED,OAAM,CAAC,KAAK,CAAC,CAAC;IACf,CAAC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,QAA2B;IACjD,MAAM,GAAG,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IAEnD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,OAAuB;IAC3C,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAM,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,OAAM,CAAC,EAAE,CAAC,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IACxB,QAAQ,CAA4B;IAE7C,YAAY,OAAkC;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,OAAuB;QAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjD,OAAM,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,OAAgB;QAC1B,OAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAKD,YAAY,CAAC,IAAY,EAAE,QAA4C;QACtE,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAE3D,IAAI,QAAQ,EAAE,CAAC;YACd,OAAM,CAAC;gBACN,GAAG,OAAO;gBACV,GAAG,QAAQ;aACX,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YACP,OAAM,CAAC,OAAO,CAAC,CAAC;QACjB,CAAC;IACF,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAIZ;QACA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAY;YACxB,EAAE;YACF,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC;QAEF,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YACrD,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;SAClC,CAAC,CAAC;QAEH,OAAM,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAID,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,eAAyB;QAC9C,MAAM,CAAE,MAAM,EAAE,QAAQ,CAAE,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;SACvE,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAM,CAAC,IAAI,CAAC,CAAC;QACd,CAAC;QAED,OAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,OAGxB;QACA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,MAAK,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAExC,MAAM,OAAO,GAAY;YACxB,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK;YACtC,OAAO,EAAE,UAAU;YACnB,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/D,CAAC;QAEF,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YACxD,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;SAClC,CAAC,CAAC;QAEH,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YAClB,IAAI,CAAC;gBACJ,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACR,6CAA6C;YAC9C,CAAC;QACF,CAAC;QAED,OAAM,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9C,OAAM,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAEV;QACA,MAAM,QAAQ,GAA4C;YACzD,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB;SAC1C,CAAC;QAEF,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAA0B,EAAE,CAAC;QAC3C,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,MAAM,EAAE,CAAC;gBACZ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACzD,CAAC;QACF,CAAC;QAED,OAAM,CAAC,QAAQ,CAAC,CAAC;IAClB,CAAC;CACD","sourcesContent":["import type { AssetTransferInstructions, RecipientResolved, KeetaNetAccount, Rail } from '../../asset-movement/common.js';\nimport type { AssetLocationLike, PickChainLocation } from '../../asset-movement/lib/location.js';\nimport type { KeetaStorageAnchorSession } from '../client.js';\nimport { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';\nimport { convertAssetLocationToString } from '../../asset-movement/lib/location.js';\nimport { Errors } from '../common.js';\nimport type { StorageObjectMetadata } from '../common.js';\nimport { Buffer } from '../../../lib/utils/buffer.js';\nimport { assertContact } from './contacts.generated.js';\n\n// #region Types\n\ntype DistributiveOmit<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;\n\n/**\n * The structural shape of a transfer instruction, excluding transaction-specific fields.\n */\nexport type TransferInstructionShape = DistributiveOmit<\n\tAssetTransferInstructions,\n\t'value' | 'assetFee' | 'totalReceiveAmount' | 'persistentAddressId'\n>;\n\n/**\n * The type of provider information allowed for a contact address.\n */\nexport type ProviderInformationType = 'username' | 'template';\n\n/**\n * The type of recipient for a persistent address template.\n */\nexport type PersistentAddressTemplateRecipient = Extract<RecipientResolved, { type: 'persistent-address' }>;\n\n/**\n * Base interface for contact addresses with narrowed generic parameters.\n */\nexport interface ContactAddressBase<\n\tRecipientType extends RecipientResolved,\n\tLocation extends AssetLocationLike,\n\tProviderInformationAllowedTypes extends ProviderInformationType\n> {\n\trecipient: RecipientType;\n\tlocation?: Location;\n\tproviderInformation?: { [providerId: string]: ProviderInformationAllowedTypes[] };\n\tpastInstructions?: TransferInstructionShape[];\n}\n\nexport type KeetaAssetLocation = PickChainLocation<'keeta'> | `chain:keeta:${bigint}`;\n\n/**\n * A contact address for a Keeta account.\n */\nexport type KeetaContactAddress = ContactAddressBase<string, KeetaAssetLocation, 'username'>;\n\n/**\n * A contact address for a persistent address template.\n */\nexport type TemplateContactAddress = ContactAddressBase<PersistentAddressTemplateRecipient, AssetLocationLike, 'template'>;\n\n/**\n * A contact address for a non-Keeta, non-persistent-address recipient.\n */\nexport type OtherContactAddress = ContactAddressBase<\n\tExclude<RecipientResolved, KeetaNetAccount | PersistentAddressTemplateRecipient>,\n\tExclude<AssetLocationLike, KeetaAssetLocation>,\n\t'template'\n>;\n\nexport type ContactAddress = KeetaContactAddress | TemplateContactAddress | OtherContactAddress;\n\n/**\n * A stored contact with metadata and an address.\n */\nexport interface Contact {\n\tid: string;\n\tlabel: string;\n\taddress: ContactAddress;\n\trail?: Rail;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\ninterface SharedStorageObjectMetadata extends Pick<StorageObjectMetadata, 'createdAt' | 'updatedAt'> {};\n\nexport interface ContactWithMetadata extends Contact, SharedStorageObjectMetadata {}\n\n// #endregion\n\n// #region Interface\n\n/**\n * Generic contacts client interface\n */\nexport interface ContactsClient {\n\tderiveId(address: ContactAddress): string;\n\n\tcreate(options: {\n\t\tlabel: string;\n\t\taddress: ContactAddress;\n\t\trail?: Rail;\n\t}): Promise<Contact>;\n\n\tget(id: string): Promise<Contact | null>;\n\n\tupdate(id: string, options: {\n\t\tlabel?: string;\n\t\taddress?: ContactAddress;\n\t}): Promise<Contact>;\n\n\tdelete(id: string): Promise<boolean>;\n\n\tlist(options?: {\n\t\tlocation?: AssetLocationLike;\n\t}): Promise<Contact[]>;\n}\n\n// #endregion\n\n// #region Storage Implementation\n\n/**\n * MIME type for contact data.\n */\nconst MIME_TYPE = 'application/json';\n\n/**\n * Canonicalize a contact address for use in ID derivation.\n * Excludes metadata fields (`providerInformation`, `pastInstructions`) that are not part of contact identity.\n *\n * @param address - The contact address to canonicalize.\n *\n * @returns The canonicalized string representation of the contact address identity fields.\n */\nfunction canonicalizeContactAddress(address: ContactAddress): string {\n\tconst { providerInformation: _, pastInstructions: __, ...identity } = address; // eslint-disable-line @typescript-eslint/no-unused-vars\n\treturn(JSON.stringify(identity, function(_key: string, value: unknown): unknown {\n\t\tif (value !== null && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tconst obj = value as { [k: string]: unknown };\n\t\t\treturn(Object.fromEntries(\n\t\t\t\tObject.entries(obj).sort(([a], [b]) => a.localeCompare(b))\n\t\t\t));\n\t\t}\n\n\t\treturn(value);\n\t}));\n}\n\n/**\n * Convert an asset location to a tag for use in storage.\n *\n * @param location - The asset location to convert to a tag.\n *\n * @returns The tag string.\n */\nfunction locationToTag(location: AssetLocationLike): string {\n\tconst str = convertAssetLocationToString(location);\n\n\tconst parts = str.split(':');\n\treturn(parts.join('-'));\n}\n\n/**\n * Convert a contact address to a list of tags for use in storage.\n *\n * @param address - The contact address to convert to tags.\n *\n * @returns The list of tags.\n */\nfunction contactTags(address: ContactAddress): string[] {\n\tif (address.location) {\n\t\treturn([locationToTag(address.location)]);\n\t}\n\n\treturn([]);\n}\n\n/**\n * Storage Anchor-backed implementation of `ContactsClient`.\n * Stores contacts as encrypted JSON objects via a `KeetaStorageAnchorSession`.\n */\nexport class StorageContactsClient implements ContactsClient {\n\treadonly #session: KeetaStorageAnchorSession;\n\n\tconstructor(session: KeetaStorageAnchorSession) {\n\t\tthis.#session = session;\n\t}\n\n\tderiveId(address: ContactAddress): string {\n\t\tconst data = Buffer.from(canonicalizeContactAddress(address));\n\t\tconst hash = KeetaNetLib.Utils.Hash.Hash(data);\n\n\t\tconst result = Buffer.from(hash).toString('hex');\n\t\treturn(result);\n\t}\n\n\t#serialize(contact: Contact): Buffer {\n\t\treturn(Buffer.from(JSON.stringify(contact)));\n\t}\n\n\t#deserialize(data: Buffer, metadata: SharedStorageObjectMetadata): ContactWithMetadata;\n\t#deserialize(data: Buffer, metadata: null): Contact;\n\t#deserialize(data: Buffer, metadata: SharedStorageObjectMetadata | null): ContactWithMetadata | Contact;\n\t#deserialize(data: Buffer, metadata: SharedStorageObjectMetadata | null): ContactWithMetadata | Contact {\n\t\tconst contact = assertContact(JSON.parse(data.toString()));\n\n\t\tif (metadata) {\n\t\t\treturn({\n\t\t\t\t...contact,\n\t\t\t\t...metadata\n\t\t\t});\n\t\t} else {\n\t\t\treturn(contact);\n\t\t}\n\t}\n\n\tasync create(options: {\n\t\tlabel: string;\n\t\taddress: ContactAddress;\n\t\trail?: Rail | undefined;\n\t}): Promise<Contact> {\n\t\tconst id = this.deriveId(options.address);\n\t\tconst contact: Contact = {\n\t\t\tid,\n\t\t\tlabel: options.label,\n\t\t\taddress: options.address,\n\t\t\t...(options.rail !== undefined ? { rail: options.rail } : {})\n\t\t};\n\n\t\tawait this.#session.put(id, this.#serialize(contact), {\n\t\t\tmimeType: MIME_TYPE,\n\t\t\ttags: contactTags(options.address)\n\t\t});\n\n\t\treturn(contact);\n\t}\n\n\tasync get(id: string, includeMetadata: true): Promise<ContactWithMetadata | null>;\n\tasync get(id: string, includeMetadata?: false): Promise<Contact | null>;\n\tasync get(id: string, includeMetadata?: boolean) {\n\t\tconst [ result, metadata ] = await Promise.all([\n\t\t\tthis.#session.get(id),\n\t\t\tincludeMetadata ? this.#session.getMetadata(id) : Promise.resolve(null)\n\t\t]);\n\n\t\tif (!result) {\n\t\t\treturn(null);\n\t\t}\n\n\t\treturn(this.#deserialize(result.data, metadata));\n\t}\n\n\tasync update(id: string, options: {\n\t\tlabel?: string;\n\t\taddress?: ContactAddress;\n\t}): Promise<Contact> {\n\t\tconst existing = await this.get(id);\n\t\tif (!existing) {\n\t\t\tthrow(new Errors.DocumentNotFound(`Contact not found: ${id}`));\n\t\t}\n\n\t\tconst newAddress = options.address ?? existing.address;\n\t\tconst newId = this.deriveId(newAddress);\n\n\t\tconst updated: Contact = {\n\t\t\tid: newId,\n\t\t\tlabel: options.label ?? existing.label,\n\t\t\taddress: newAddress,\n\t\t\t...(existing.rail !== undefined ? { rail: existing.rail } : {})\n\t\t};\n\n\t\tawait this.#session.put(newId, this.#serialize(updated), {\n\t\t\tmimeType: MIME_TYPE,\n\t\t\ttags: contactTags(updated.address)\n\t\t});\n\n\t\tif (newId !== id) {\n\t\t\ttry {\n\t\t\t\tawait this.#session.delete(id);\n\t\t\t} catch {\n\t\t\t\t// Put succeeded; old contact is now orphaned\n\t\t\t}\n\t\t}\n\n\t\treturn(updated);\n\t}\n\n\tasync delete(id: string): Promise<boolean> {\n\t\tconst result = await this.#session.delete(id);\n\t\treturn(result);\n\t}\n\n\tasync list(options?: {\n\t\tlocation?: AssetLocationLike;\n\t}): Promise<ContactWithMetadata[]> {\n\t\tconst criteria: { pathPrefix: string; tags?: string[] } = {\n\t\t\tpathPrefix: this.#session.workingDirectory\n\t\t};\n\n\t\tif (options?.location) {\n\t\t\tcriteria.tags = [locationToTag(options.location)];\n\t\t}\n\n\t\tconst searchResult = await this.#session.search(criteria);\n\n\t\tconst contacts: ContactWithMetadata[] = [];\n\t\tfor (const metadata of searchResult.results) {\n\t\t\tconst result = await this.#session.get(metadata.path);\n\t\t\tif (result) {\n\t\t\t\tcontacts.push(this.#deserialize(result.data, metadata));\n\t\t\t}\n\t\t}\n\n\t\treturn(contacts);\n\t}\n}\n\n// #endregion\n"]}
1
+ {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../../../src/services/storage/clients/contacts.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AssetTransferInstructions, RecipientResolved, KeetaNetAccount, Rail } from '../../asset-movement/common.js';\nimport type { AssetLocationLike, PickChainLocation } from '../../asset-movement/lib/location.js';\nimport type { KeetaStorageAnchorSession, StorageSubClientConfig } from '../client.js';\nimport type { Logger } from '../../../lib/log/index.js';\nimport type { StorageObjectMetadata } from '../common.js';\nimport { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';\nimport { convertAssetLocationToString } from '../../asset-movement/lib/location.js';\nimport { Errors } from '../common.js';\nimport { Buffer } from '../../../lib/utils/buffer.js';\nimport { assertContact } from './contacts.generated.js';\n\n// #region Types\n\ntype DistributiveOmit<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;\n\n/**\n * The structural shape of a transfer instruction, excluding transaction-specific fields.\n */\nexport type TransferInstructionShape = DistributiveOmit<\n\tAssetTransferInstructions,\n\t'value' | 'assetFee' | 'totalReceiveAmount' | 'persistentAddressId'\n>;\n\n/**\n * The type of provider information allowed for a contact address.\n */\nexport type ProviderInformationType = 'username' | 'template';\n\n/**\n * The type of recipient for a persistent address template.\n */\nexport type PersistentAddressTemplateRecipient = Extract<RecipientResolved, { type: 'persistent-address' }>;\n\n/**\n * Base interface for contact addresses with narrowed generic parameters.\n */\nexport interface ContactAddressBase<\n\tRecipientType extends RecipientResolved,\n\tLocation extends AssetLocationLike,\n\tProviderInformationAllowedTypes extends ProviderInformationType\n> {\n\trecipient: RecipientType;\n\tlocation?: Location;\n\tproviderInformation?: { [providerId: string]: ProviderInformationAllowedTypes[] };\n\tpastInstructions?: TransferInstructionShape[];\n}\n\nexport type KeetaAssetLocation = PickChainLocation<'keeta'> | `chain:keeta:${bigint}`;\n\n/**\n * A contact address for a Keeta account.\n */\nexport type KeetaContactAddress = ContactAddressBase<string, KeetaAssetLocation, 'username'>;\n\n/**\n * A contact address for a persistent address template.\n */\nexport type TemplateContactAddress = ContactAddressBase<PersistentAddressTemplateRecipient, AssetLocationLike, 'template'>;\n\n/**\n * A contact address for a non-Keeta, non-persistent-address recipient.\n */\nexport type OtherContactAddress = ContactAddressBase<\n\tExclude<RecipientResolved, KeetaNetAccount | PersistentAddressTemplateRecipient>,\n\tExclude<AssetLocationLike, KeetaAssetLocation>,\n\t'template'\n>;\n\nexport type ContactAddress = KeetaContactAddress | TemplateContactAddress | OtherContactAddress;\n\n/**\n * A stored contact with metadata and an address.\n */\nexport interface Contact {\n\tid: string;\n\tlabel: string;\n\taddress: ContactAddress;\n\trail?: Rail;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\ninterface SharedStorageObjectMetadata extends Pick<StorageObjectMetadata, 'createdAt' | 'updatedAt'> {};\n\nexport interface ContactWithMetadata extends Contact, SharedStorageObjectMetadata {}\n\n// #endregion\n\n// #region Interface\n\n/**\n * Generic contacts client interface\n */\nexport interface ContactsClient {\n\tderiveId(address: ContactAddress): string;\n\n\tcreate(options: {\n\t\tlabel: string;\n\t\taddress: ContactAddress;\n\t\trail?: Rail;\n\t}): Promise<Contact>;\n\n\tget(id: string): Promise<Contact | null>;\n\n\tupdate(id: string, options: {\n\t\tlabel?: string;\n\t\taddress?: ContactAddress;\n\t}): Promise<Contact>;\n\n\tdelete(id: string): Promise<boolean>;\n\n\tlist(options?: {\n\t\tlocation?: AssetLocationLike;\n\t}): Promise<Contact[]>;\n}\n\n// #endregion\n\n// #region Storage Implementation\n\n/**\n * MIME type for contact data.\n */\nconst MIME_TYPE = 'application/json';\n\n/**\n * Canonicalize a contact address for use in ID derivation.\n * Excludes metadata fields (`providerInformation`, `pastInstructions`) that are not part of contact identity.\n *\n * @param address - The contact address to canonicalize.\n *\n * @returns The canonicalized string representation of the contact address identity fields.\n */\nfunction canonicalizeContactAddress(address: ContactAddress): string {\n\tconst { providerInformation: _, pastInstructions: __, ...identity } = address; // eslint-disable-line @typescript-eslint/no-unused-vars\n\treturn(JSON.stringify(identity, function(_key: string, value: unknown): unknown {\n\t\tif (value !== null && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tconst obj = value as { [k: string]: unknown };\n\t\t\treturn(Object.fromEntries(\n\t\t\t\tObject.entries(obj).sort(([a], [b]) => a.localeCompare(b))\n\t\t\t));\n\t\t}\n\n\t\treturn(value);\n\t}));\n}\n\n/**\n * Convert an asset location to a tag for use in storage.\n *\n * @param location - The asset location to convert to a tag.\n *\n * @returns The tag string.\n */\nfunction locationToTag(location: AssetLocationLike): string {\n\tconst str = convertAssetLocationToString(location);\n\n\tconst parts = str.split(':');\n\treturn(parts.join('-'));\n}\n\n/**\n * Convert a contact address to a list of tags for use in storage.\n *\n * @param address - The contact address to convert to tags.\n *\n * @returns The list of tags.\n */\nfunction contactTags(address: ContactAddress): string[] {\n\tif (address.location) {\n\t\treturn([locationToTag(address.location)]);\n\t}\n\n\treturn([]);\n}\n\n/**\n * Storage Anchor-backed implementation of `ContactsClient`.\n * Stores contacts as encrypted JSON objects via a `KeetaStorageAnchorSession`.\n */\nexport class StorageContactsClient implements ContactsClient {\n\treadonly #session: KeetaStorageAnchorSession;\n\treadonly #logger?: Logger | undefined;\n\n\tconstructor(config: StorageSubClientConfig) {\n\t\tthis.#session = config.session;\n\t\tthis.#logger = config.logger;\n\t}\n\n\tderiveId(address: ContactAddress): string {\n\t\tconst data = Buffer.from(canonicalizeContactAddress(address));\n\t\tconst hash = KeetaNetLib.Utils.Hash.Hash(data);\n\n\t\tconst result = Buffer.from(hash).toString('hex');\n\t\treturn(result);\n\t}\n\n\t#serialize(contact: Contact): Buffer {\n\t\treturn(Buffer.from(JSON.stringify(contact)));\n\t}\n\n\t#deserialize(data: Buffer, metadata: SharedStorageObjectMetadata): ContactWithMetadata;\n\t#deserialize(data: Buffer, metadata: null): Contact;\n\t#deserialize(data: Buffer, metadata: SharedStorageObjectMetadata | null): ContactWithMetadata | Contact;\n\t#deserialize(data: Buffer, metadata: SharedStorageObjectMetadata | null): ContactWithMetadata | Contact {\n\t\tconst contact = assertContact(JSON.parse(data.toString()));\n\n\t\tif (metadata) {\n\t\t\treturn({\n\t\t\t\t...contact,\n\t\t\t\t...metadata\n\t\t\t});\n\t\t} else {\n\t\t\treturn(contact);\n\t\t}\n\t}\n\n\tasync create(options: {\n\t\tlabel: string;\n\t\taddress: ContactAddress;\n\t\trail?: Rail | undefined;\n\t}): Promise<Contact> {\n\t\tconst id = this.deriveId(options.address);\n\t\tthis.#logger?.debug('StorageContactsClient::create', `Creating contact ${id}`);\n\n\t\tconst contact: Contact = assertContact({\n\t\t\tid,\n\t\t\tlabel: options.label,\n\t\t\taddress: options.address,\n\t\t\t...(options.rail !== undefined ? { rail: options.rail } : {})\n\t\t});\n\n\t\tawait this.#session.put(id, this.#serialize(contact), {\n\t\t\tmimeType: MIME_TYPE,\n\t\t\ttags: contactTags(options.address)\n\t\t});\n\n\t\tthis.#logger?.debug('StorageContactsClient::create', `Contact created: ${id}`);\n\t\treturn(contact);\n\t}\n\n\tasync get(id: string, includeMetadata: true): Promise<ContactWithMetadata | null>;\n\tasync get(id: string, includeMetadata?: false): Promise<Contact | null>;\n\tasync get(id: string, includeMetadata?: boolean) {\n\t\tthis.#logger?.debug('StorageContactsClient::get', `Getting contact ${id}`);\n\n\t\tconst [ result, metadata ] = await Promise.all([\n\t\t\tthis.#session.get(id),\n\t\t\tincludeMetadata ? this.#session.getMetadata(id) : Promise.resolve(null)\n\t\t]);\n\n\t\tif (!result) {\n\t\t\tthis.#logger?.debug('StorageContactsClient::get', `Contact not found: ${id}`);\n\t\t\treturn(null);\n\t\t}\n\n\t\tthis.#logger?.debug('StorageContactsClient::get', `Contact retrieved: ${id}`);\n\t\treturn(this.#deserialize(result.data, metadata));\n\t}\n\n\tasync update(id: string, options: {\n\t\tlabel?: string;\n\t\taddress?: ContactAddress;\n\t}): Promise<Contact> {\n\t\tthis.#logger?.debug('StorageContactsClient::update', `Updating contact ${id}`);\n\n\t\tconst existing = await this.get(id);\n\t\tif (!existing) {\n\t\t\tthrow(new Errors.DocumentNotFound(`Contact not found: ${id}`));\n\t\t}\n\n\t\tconst newAddress = options.address ?? existing.address;\n\t\tconst newId = this.deriveId(newAddress);\n\n\t\tconst updated: Contact = assertContact({\n\t\t\tid: newId,\n\t\t\tlabel: options.label ?? existing.label,\n\t\t\taddress: newAddress,\n\t\t\t...(existing.rail !== undefined ? { rail: existing.rail } : {})\n\t\t});\n\n\t\tawait this.#session.put(newId, this.#serialize(updated), {\n\t\t\tmimeType: MIME_TYPE,\n\t\t\ttags: contactTags(updated.address)\n\t\t});\n\n\t\tif (newId !== id) {\n\t\t\ttry {\n\t\t\t\tawait this.#session.delete(id);\n\t\t\t} catch (error) {\n\t\t\t\tthis.#logger?.warn('StorageContactsClient::update', `Failed to delete old contact ${id} after re-keying to ${newId}`, error);\n\t\t\t}\n\t\t}\n\n\t\tthis.#logger?.debug('StorageContactsClient::update', `Contact updated: ${newId}`);\n\t\treturn(updated);\n\t}\n\n\tasync delete(id: string): Promise<boolean> {\n\t\tthis.#logger?.debug('StorageContactsClient::delete', `Deleting contact ${id}`);\n\t\tconst result = await this.#session.delete(id);\n\t\tthis.#logger?.debug('StorageContactsClient::delete', `Contact delete ${id}: ${result ? 'removed' : 'not found'}`);\n\t\treturn(result);\n\t}\n\n\tasync list(options?: {\n\t\tlocation?: AssetLocationLike;\n\t}): Promise<ContactWithMetadata[]> {\n\t\tthis.#logger?.debug('StorageContactsClient::list', 'Listing contacts');\n\n\t\tconst criteria: { pathPrefix: string; tags?: string[] } = {\n\t\t\tpathPrefix: this.#session.workingDirectory\n\t\t};\n\n\t\tif (options?.location) {\n\t\t\tcriteria.tags = [locationToTag(options.location)];\n\t\t}\n\n\t\tconst searchResult = await this.#session.search(criteria);\n\t\tconst contacts: ContactWithMetadata[] = [];\n\t\tfor (const metadata of searchResult.results) {\n\t\t\tconst result = await this.#session.get(metadata.path);\n\t\t\tif (result) {\n\t\t\t\ttry {\n\t\t\t\t\tcontacts.push(this.#deserialize(result.data, metadata));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.#logger?.warn('StorageContactsClient::list', `Skipping corrupt contact at ${metadata.path}`, error);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.#logger?.debug('StorageContactsClient::list', `Listed ${contacts.length} contacts`);\n\t\treturn(contacts);\n\t}\n}\n\n// #endregion\n"]}
@@ -1,4 +1,4 @@
1
- import type { KeetaStorageAnchorSession } from '../client.js';
1
+ import type { StorageSubClientConfig } from '../client.js';
2
2
  import type { Buffer } from '../../../lib/utils/buffer.js';
3
3
  /**
4
4
  * Icon binary data with its MIME type.
@@ -21,7 +21,7 @@ export interface IconsClient {
21
21
  */
22
22
  export declare class StorageIconsClient implements IconsClient {
23
23
  #private;
24
- constructor(session: KeetaStorageAnchorSession);
24
+ constructor(config: StorageSubClientConfig);
25
25
  set(icon: IconData): Promise<void>;
26
26
  get(): Promise<IconData | null>;
27
27
  delete(): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../../src/services/storage/clients/icon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAK3D;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAMF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,GAAG,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAChC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3B;AAQD;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,WAAW;;gBAGzC,OAAO,EAAE,yBAAyB;IAIxC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlC,GAAG,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAS/B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAIhC"}
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../../src/services/storage/clients/icon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA6B,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAK3D;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAMF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,GAAG,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAChC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3B;AAQD;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,WAAW;;gBAIzC,MAAM,EAAE,sBAAsB;IAKpC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAclC,GAAG,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAa/B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAMhC"}
@@ -8,26 +8,35 @@ const ICON_FILENAME = 'icon';
8
8
  */
9
9
  export class StorageIconsClient {
10
10
  #session;
11
- constructor(session) {
12
- this.#session = session;
11
+ #logger;
12
+ constructor(config) {
13
+ this.#session = config.session;
14
+ this.#logger = config.logger;
13
15
  }
14
16
  async set(icon) {
17
+ this.#logger?.debug('StorageIconsClient::set', `Setting icon (${icon.mimeType})`);
15
18
  if (!icon.mimeType.startsWith('image/')) {
16
19
  throw (new Errors.ValidationFailed(`Invalid icon MIME type: "${icon.mimeType}". Must be an image/* type.`));
17
20
  }
18
21
  await this.#session.put(ICON_FILENAME, icon.data, {
19
22
  mimeType: icon.mimeType
20
23
  });
24
+ this.#logger?.debug('StorageIconsClient::set', 'Icon set successfully');
21
25
  }
22
26
  async get() {
27
+ this.#logger?.debug('StorageIconsClient::get', 'Getting icon');
23
28
  const result = await this.#session.get(ICON_FILENAME);
24
29
  if (!result) {
30
+ this.#logger?.debug('StorageIconsClient::get', 'Icon not found');
25
31
  return (null);
26
32
  }
33
+ this.#logger?.debug('StorageIconsClient::get', 'Icon retrieved');
27
34
  return ({ data: result.data, mimeType: result.mimeType });
28
35
  }
29
36
  async delete() {
37
+ this.#logger?.debug('StorageIconsClient::delete', 'Deleting icon');
30
38
  const result = await this.#session.delete(ICON_FILENAME);
39
+ this.#logger?.debug('StorageIconsClient::delete', `Icon delete: ${result ? 'removed' : 'not found'}`);
31
40
  return (result);
32
41
  }
33
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../../src/services/storage/clients/icon.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAyBtC,aAAa;AAEb,iCAAiC;AAEjC,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IACrB,QAAQ,CAA4B;IAE7C,YAAY,OAAkC;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAc;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,MAAK,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,4BAA4B,IAAI,CAAC,QAAQ,6BAA6B,CAAC,CAAC,CAAC;QAC5G,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE;YACjD,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACvB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG;QACR,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAM,CAAC,IAAI,CAAC,CAAC;QACd,CAAC;QAED,OAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,MAAM;QACX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACzD,OAAM,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;CACD","sourcesContent":["import type { KeetaStorageAnchorSession } from '../client.js';\nimport type { Buffer } from '../../../lib/utils/buffer.js';\nimport { Errors } from '../common.js';\n\n// #region Types\n\n/**\n * Icon binary data with its MIME type.\n */\nexport type IconData = {\n\tdata: Buffer;\n\tmimeType: string;\n};\n\n// #endregion\n\n// #region Interface\n\n/**\n * Generic icons client interface.\n */\nexport interface IconsClient {\n\tset(icon: IconData): Promise<void>;\n\tget(): Promise<IconData | null>;\n\tdelete(): Promise<boolean>;\n}\n\n// #endregion\n\n// #region Storage Implementation\n\nconst ICON_FILENAME = 'icon';\n\n/**\n * Storage Anchor-backed implementation of `IconsClient`.\n * Stores a single icon as a public binary object via a `KeetaStorageAnchorSession`.\n */\nexport class StorageIconsClient implements IconsClient {\n\treadonly #session: KeetaStorageAnchorSession;\n\n\tconstructor(session: KeetaStorageAnchorSession) {\n\t\tthis.#session = session;\n\t}\n\n\tasync set(icon: IconData): Promise<void> {\n\t\tif (!icon.mimeType.startsWith('image/')) {\n\t\t\tthrow(new Errors.ValidationFailed(`Invalid icon MIME type: \"${icon.mimeType}\". Must be an image/* type.`));\n\t\t}\n\n\t\tawait this.#session.put(ICON_FILENAME, icon.data, {\n\t\t\tmimeType: icon.mimeType\n\t\t});\n\t}\n\n\tasync get(): Promise<IconData | null> {\n\t\tconst result = await this.#session.get(ICON_FILENAME);\n\t\tif (!result) {\n\t\t\treturn(null);\n\t\t}\n\n\t\treturn({ data: result.data, mimeType: result.mimeType });\n\t}\n\n\tasync delete(): Promise<boolean> {\n\t\tconst result = await this.#session.delete(ICON_FILENAME);\n\t\treturn(result);\n\t}\n}\n\n// #endregion\n"]}
1
+ {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../../src/services/storage/clients/icon.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAyBtC,aAAa;AAEb,iCAAiC;AAEjC,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IACrB,QAAQ,CAA4B;IACpC,OAAO,CAAsB;IAEtC,YAAY,MAA8B;QACzC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAc;QACvB,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,yBAAyB,EAAE,iBAAiB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAElF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,MAAK,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,4BAA4B,IAAI,CAAC,QAAQ,6BAA6B,CAAC,CAAC,CAAC;QAC5G,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE;YACjD,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,yBAAyB,EAAE,uBAAuB,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,GAAG;QACR,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,yBAAyB,EAAE,cAAc,CAAC,CAAC;QAE/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;YACjE,OAAM,CAAC,IAAI,CAAC,CAAC;QACd,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;QACjE,OAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,MAAM;QACX,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,4BAA4B,EAAE,eAAe,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,4BAA4B,EAAE,gBAAgB,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACtG,OAAM,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;CACD","sourcesContent":["import type { KeetaStorageAnchorSession, StorageSubClientConfig } from '../client.js';\nimport type { Logger } from '../../../lib/log/index.js';\nimport type { Buffer } from '../../../lib/utils/buffer.js';\nimport { Errors } from '../common.js';\n\n// #region Types\n\n/**\n * Icon binary data with its MIME type.\n */\nexport type IconData = {\n\tdata: Buffer;\n\tmimeType: string;\n};\n\n// #endregion\n\n// #region Interface\n\n/**\n * Generic icons client interface.\n */\nexport interface IconsClient {\n\tset(icon: IconData): Promise<void>;\n\tget(): Promise<IconData | null>;\n\tdelete(): Promise<boolean>;\n}\n\n// #endregion\n\n// #region Storage Implementation\n\nconst ICON_FILENAME = 'icon';\n\n/**\n * Storage Anchor-backed implementation of `IconsClient`.\n * Stores a single icon as a public binary object via a `KeetaStorageAnchorSession`.\n */\nexport class StorageIconsClient implements IconsClient {\n\treadonly #session: KeetaStorageAnchorSession;\n\treadonly #logger?: Logger | undefined;\n\n\tconstructor(config: StorageSubClientConfig) {\n\t\tthis.#session = config.session;\n\t\tthis.#logger = config.logger;\n\t}\n\n\tasync set(icon: IconData): Promise<void> {\n\t\tthis.#logger?.debug('StorageIconsClient::set', `Setting icon (${icon.mimeType})`);\n\n\t\tif (!icon.mimeType.startsWith('image/')) {\n\t\t\tthrow(new Errors.ValidationFailed(`Invalid icon MIME type: \"${icon.mimeType}\". Must be an image/* type.`));\n\t\t}\n\n\t\tawait this.#session.put(ICON_FILENAME, icon.data, {\n\t\t\tmimeType: icon.mimeType\n\t\t});\n\n\t\tthis.#logger?.debug('StorageIconsClient::set', 'Icon set successfully');\n\t}\n\n\tasync get(): Promise<IconData | null> {\n\t\tthis.#logger?.debug('StorageIconsClient::get', 'Getting icon');\n\n\t\tconst result = await this.#session.get(ICON_FILENAME);\n\t\tif (!result) {\n\t\t\tthis.#logger?.debug('StorageIconsClient::get', 'Icon not found');\n\t\t\treturn(null);\n\t\t}\n\n\t\tthis.#logger?.debug('StorageIconsClient::get', 'Icon retrieved');\n\t\treturn({ data: result.data, mimeType: result.mimeType });\n\t}\n\n\tasync delete(): Promise<boolean> {\n\t\tthis.#logger?.debug('StorageIconsClient::delete', 'Deleting icon');\n\t\tconst result = await this.#session.delete(ICON_FILENAME);\n\t\tthis.#logger?.debug('StorageIconsClient::delete', `Icon delete: ${result ? 'removed' : 'not found'}`);\n\t\treturn(result);\n\t}\n}\n\n// #endregion\n"]}
@@ -1,6 +1,7 @@
1
1
  import type { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';
2
2
  import type { HTTPSignedField } from '../../lib/http-server/common.js';
3
3
  import type { Signable } from '../../lib/utils/signing.js';
4
+ import type { EncryptedContainer } from '../../lib/encrypted-container.js';
4
5
  import { KeetaAnchorUserError, KeetaAnchorUserValidationError } from '../../lib/error.js';
5
6
  import { Buffer } from '../../lib/utils/buffer.js';
6
7
  /**
@@ -227,6 +228,25 @@ export declare function getKeetaStorageAnchorPutRequestSigningData(input: {
227
228
  visibility?: StorageObjectVisibility;
228
229
  tags?: string[];
229
230
  }): Signable;
231
+ /**
232
+ * Server-side request to update object metadata.
233
+ * Path is derived from the URL, not the body.
234
+ */
235
+ export type KeetaStorageAnchorUpdateMetadataRequest = {
236
+ account?: string;
237
+ signed?: HTTPSignedField;
238
+ tags: string[];
239
+ visibility: StorageObjectVisibility;
240
+ };
241
+ /**
242
+ * Build signing data for an update-metadata request.
243
+ * Tags are sorted with localeCompare for deterministic signatures.
244
+ */
245
+ export declare function getKeetaStorageAnchorUpdateMetadataRequestSigningData(input: {
246
+ path: string;
247
+ visibility: StorageObjectVisibility;
248
+ tags: string[];
249
+ }): Signable;
230
250
  /**
231
251
  * Client-side request to get an object
232
252
  */
@@ -561,6 +581,11 @@ export interface StorageBackend {
561
581
  * Delete an object by path
562
582
  */
563
583
  delete(path: string): Promise<boolean>;
584
+ /**
585
+ * Update metadata for an existing object without re-uploading data.
586
+ * @returns Updated metadata, or null if the object does not exist
587
+ */
588
+ updateMetadata?(path: string, metadata: Omit<StoragePutMetadata, 'owner'>): Promise<StorageObjectMetadata | null>;
564
589
  }
565
590
  /**
566
591
  * Search capability interface.
@@ -647,7 +672,7 @@ export interface PathPolicy<TPathInfo> {
647
672
  * Check if the account has access to perform the operation on the parsed path.
648
673
  * @returns true if access is allowed, false otherwise
649
674
  */
650
- checkAccess(account: KeetaNetAccount, parsed: TPathInfo, operation: 'get' | 'put' | 'delete' | 'search' | 'metadata'): boolean;
675
+ checkAccess(account: KeetaNetAccount, parsed: TPathInfo, operation: 'get' | 'put' | 'delete' | 'search' | 'metadata' | 'updateMetadata'): boolean;
651
676
  /**
652
677
  * Get the account authorized to sign pre-signed URLs for this path.
653
678
  * Used for public object access verification.
@@ -663,6 +688,18 @@ export interface PathPolicy<TPathInfo> {
663
688
  * @throws Errors.InvalidMetadata if metadata violates path constraints
664
689
  */
665
690
  validateMetadata?(parsed: TPathInfo, metadata: StoragePutMetadata): void;
691
+ /**
692
+ * Validate the encrypted container during PUT.
693
+ * Called after the container is parsed from the raw buffer but before decryption.
694
+ * The container's principals getter returns all recipient public keys from the
695
+ * ASN.1 header without requiring decryption.
696
+ *
697
+ * @param parsed - The parsed path info
698
+ * @param container - The encrypted container parsed from the uploaded data
699
+ * @param metadata - The metadata associated with the upload
700
+ * @throws Errors.InvalidMetadata if the container violates policy constraints
701
+ */
702
+ validateContainer?(parsed: TPathInfo, container: EncryptedContainer, metadata: StoragePutMetadata): void;
666
703
  }
667
704
  /**
668
705
  * Parse the decrypted plaintext from an EncryptedContainer.
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/services/storage/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/services/storage/common.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { KeetaStorageAnchorPutRequest, KeetaStorageAnchorPutResponse, KeetaStorageAnchorGetRequest, KeetaStorageAnchorGetResponse, KeetaStorageAnchorDeleteRequest, KeetaStorageAnchorDeleteResponse, KeetaStorageAnchorSearchRequest, KeetaStorageAnchorSearchResponse, KeetaStorageAnchorQuotaRequest, KeetaStorageAnchorQuotaResponse } from './common.ts';
1
+ import type { KeetaStorageAnchorPutRequest, KeetaStorageAnchorPutResponse, KeetaStorageAnchorGetRequest, KeetaStorageAnchorGetResponse, KeetaStorageAnchorDeleteRequest, KeetaStorageAnchorDeleteResponse, KeetaStorageAnchorSearchRequest, KeetaStorageAnchorSearchResponse, KeetaStorageAnchorQuotaRequest, KeetaStorageAnchorQuotaResponse, KeetaStorageAnchorUpdateMetadataRequest } from './common.ts';
2
2
  export declare const isKeetaStorageAnchorPutResponse: (input: unknown) => input is KeetaStorageAnchorPutResponse;
3
3
  export declare const isKeetaStorageAnchorGetResponse: (input: unknown) => input is KeetaStorageAnchorGetResponse;
4
4
  export declare const isKeetaStorageAnchorDeleteResponse: (input: unknown) => input is KeetaStorageAnchorDeleteResponse;
@@ -14,4 +14,5 @@ export declare const assertKeetaStorageAnchorSearchRequest: (input: unknown) =>
14
14
  export declare const assertKeetaStorageAnchorSearchResponse: (input: unknown) => KeetaStorageAnchorSearchResponse;
15
15
  export declare const assertKeetaStorageAnchorQuotaRequest: (input: unknown) => KeetaStorageAnchorQuotaRequest;
16
16
  export declare const assertKeetaStorageAnchorQuotaResponse: (input: unknown) => KeetaStorageAnchorQuotaResponse;
17
+ export declare const assertKeetaStorageAnchorUpdateMetadataRequest: (input: unknown) => KeetaStorageAnchorUpdateMetadataRequest;
17
18
  //# sourceMappingURL=common.generated.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.generated.d.ts","sourceRoot":"","sources":["../../../src/services/storage/common.generated.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,4BAA4B,EAC5B,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,+BAA+B,EAC/B,gCAAgC,EAChC,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,+BAA+B,EAC/B,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,+BAA+B,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,6BAAyE,CAAC;AACrJ,eAAO,MAAM,+BAA+B,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,6BAAyE,CAAC;AACrJ,eAAO,MAAM,kCAAkC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,gCAA+E,CAAC;AAC9J,eAAO,MAAM,kCAAkC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,gCAA+E,CAAC;AAC9J,eAAO,MAAM,iCAAiC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,+BAA6E,CAAC;AAE3J,eAAO,MAAM,kCAAkC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,4BAA2E,CAAC;AACjJ,eAAO,MAAM,mCAAmC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,6BAA6E,CAAC;AACpJ,eAAO,MAAM,kCAAkC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,4BAA2E,CAAC;AACjJ,eAAO,MAAM,mCAAmC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,6BAA6E,CAAC;AACpJ,eAAO,MAAM,qCAAqC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,+BAAiF,CAAC;AAC1J,eAAO,MAAM,sCAAsC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,gCAAmF,CAAC;AAC7J,eAAO,MAAM,qCAAqC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,+BAAiF,CAAC;AAC1J,eAAO,MAAM,sCAAsC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,gCAAmF,CAAC;AAC7J,eAAO,MAAM,oCAAoC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,8BAA+E,CAAC;AACvJ,eAAO,MAAM,qCAAqC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,+BAAiF,CAAC"}
1
+ {"version":3,"file":"common.generated.d.ts","sourceRoot":"","sources":["../../../src/services/storage/common.generated.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,4BAA4B,EAC5B,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,+BAA+B,EAC/B,gCAAgC,EAChC,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,+BAA+B,EAC/B,uCAAuC,EACvC,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,+BAA+B,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,6BAAyE,CAAC;AACrJ,eAAO,MAAM,+BAA+B,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,6BAAyE,CAAC;AACrJ,eAAO,MAAM,kCAAkC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,gCAA+E,CAAC;AAC9J,eAAO,MAAM,kCAAkC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,gCAA+E,CAAC;AAC9J,eAAO,MAAM,iCAAiC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,+BAA6E,CAAC;AAE3J,eAAO,MAAM,kCAAkC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,4BAA2E,CAAC;AACjJ,eAAO,MAAM,mCAAmC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,6BAA6E,CAAC;AACpJ,eAAO,MAAM,kCAAkC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,4BAA2E,CAAC;AACjJ,eAAO,MAAM,mCAAmC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,6BAA6E,CAAC;AACpJ,eAAO,MAAM,qCAAqC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,+BAAiF,CAAC;AAC1J,eAAO,MAAM,sCAAsC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,gCAAmF,CAAC;AAC7J,eAAO,MAAM,qCAAqC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,+BAAiF,CAAC;AAC1J,eAAO,MAAM,sCAAsC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,gCAAmF,CAAC;AAC7J,eAAO,MAAM,oCAAoC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,8BAA+E,CAAC;AACvJ,eAAO,MAAM,qCAAqC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,+BAAiF,CAAC;AAC1J,eAAO,MAAM,6CAA6C,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,uCAAiG,CAAC"}
@@ -860,4 +860,71 @@ export const assertKeetaStorageAnchorQuotaResponse = (() => { const _io0 = input
860
860
  }
861
861
  return input;
862
862
  }; })();
863
+ export const assertKeetaStorageAnchorUpdateMetadataRequest = (() => { const _io0 = input => (undefined === input.account || "string" === typeof input.account) && (undefined === input.signed || "object" === typeof input.signed && null !== input.signed && _io1(input.signed)) && (Array.isArray(input.tags) && input.tags.every(elem => "string" === typeof elem)) && ("public" === input.visibility || "private" === input.visibility); const _io1 = input => "string" === typeof input.nonce && "string" === typeof input.timestamp && "string" === typeof input.signature; const _ao0 = (input, _path, _exceptionable = true) => (undefined === input.account || "string" === typeof input.account || __typia_transform__assertGuard._assertGuard(_exceptionable, {
864
+ method: "createAssert",
865
+ path: _path + ".account",
866
+ expected: "(string | undefined)",
867
+ value: input.account
868
+ }, _errorFactory)) && (undefined === input.signed || ("object" === typeof input.signed && null !== input.signed || __typia_transform__assertGuard._assertGuard(_exceptionable, {
869
+ method: "createAssert",
870
+ path: _path + ".signed",
871
+ expected: "(HTTPSignedField | undefined)",
872
+ value: input.signed
873
+ }, _errorFactory)) && _ao1(input.signed, _path + ".signed", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
874
+ method: "createAssert",
875
+ path: _path + ".signed",
876
+ expected: "(HTTPSignedField | undefined)",
877
+ value: input.signed
878
+ }, _errorFactory)) && ((Array.isArray(input.tags) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
879
+ method: "createAssert",
880
+ path: _path + ".tags",
881
+ expected: "Array<string>",
882
+ value: input.tags
883
+ }, _errorFactory)) && input.tags.every((elem, _index2) => "string" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {
884
+ method: "createAssert",
885
+ path: _path + ".tags[" + _index2 + "]",
886
+ expected: "string",
887
+ value: elem
888
+ }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
889
+ method: "createAssert",
890
+ path: _path + ".tags",
891
+ expected: "Array<string>",
892
+ value: input.tags
893
+ }, _errorFactory)) && ("public" === input.visibility || "private" === input.visibility || __typia_transform__assertGuard._assertGuard(_exceptionable, {
894
+ method: "createAssert",
895
+ path: _path + ".visibility",
896
+ expected: "(\"private\" | \"public\")",
897
+ value: input.visibility
898
+ }, _errorFactory)); const _ao1 = (input, _path, _exceptionable = true) => ("string" === typeof input.nonce || __typia_transform__assertGuard._assertGuard(_exceptionable, {
899
+ method: "createAssert",
900
+ path: _path + ".nonce",
901
+ expected: "string",
902
+ value: input.nonce
903
+ }, _errorFactory)) && ("string" === typeof input.timestamp || __typia_transform__assertGuard._assertGuard(_exceptionable, {
904
+ method: "createAssert",
905
+ path: _path + ".timestamp",
906
+ expected: "string",
907
+ value: input.timestamp
908
+ }, _errorFactory)) && ("string" === typeof input.signature || __typia_transform__assertGuard._assertGuard(_exceptionable, {
909
+ method: "createAssert",
910
+ path: _path + ".signature",
911
+ expected: "string",
912
+ value: input.signature
913
+ }, _errorFactory)); const __is = input => "object" === typeof input && null !== input && _io0(input); let _errorFactory; return (input, errorFactory) => {
914
+ if (false === __is(input)) {
915
+ _errorFactory = errorFactory;
916
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || __typia_transform__assertGuard._assertGuard(true, {
917
+ method: "createAssert",
918
+ path: _path + "",
919
+ expected: "KeetaStorageAnchorUpdateMetadataRequest",
920
+ value: input
921
+ }, _errorFactory)) && _ao0(input, _path + "", true) || __typia_transform__assertGuard._assertGuard(true, {
922
+ method: "createAssert",
923
+ path: _path + "",
924
+ expected: "KeetaStorageAnchorUpdateMetadataRequest",
925
+ value: input
926
+ }, _errorFactory))(input, "$input", true);
927
+ }
928
+ return input;
929
+ }; })();
863
930
  //# sourceMappingURL=common.generated.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.generated.js","sourceRoot":"","sources":["../../../src/services/storage/common.generated.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAc/C,MAAM,CAAC,MAAM,+BAA+B;;;;;;;sFAAwG,CAAC;AACrJ,MAAM,CAAC,MAAM,+BAA+B;;;;;;;sFAAwG,CAAC;AACrJ,MAAM,CAAC,MAAM,kCAAkC;;;;;;;sFAA8G,CAAC;AAC9J,MAAM,CAAC,MAAM,kCAAkC;;;;;;;sFAA8G,CAAC;AAC9J,MAAM,CAAC,MAAM,iCAAiC;;;;;;;sFAA4G,CAAC;AAE3J,MAAM,CAAC,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiG,CAAC;AACjJ,MAAM,CAAC,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAmG,CAAC;AACpJ,MAAM,CAAC,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiG,CAAC;AACjJ,MAAM,CAAC,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAmG,CAAC;AACpJ,MAAM,CAAC,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuG,CAAC;AAC1J,MAAM,CAAC,MAAM,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAyG,CAAC;AAC7J,MAAM,CAAC,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuG,CAAC;AAC1J,MAAM,CAAC,MAAM,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAyG,CAAC;AAC7J,MAAM,CAAC,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAqG,CAAC;AACvJ,MAAM,CAAC,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuG,CAAC","sourcesContent":["import { createIs, createAssert } from 'typia';\nimport type {\n\tKeetaStorageAnchorPutRequest,\n\tKeetaStorageAnchorPutResponse,\n\tKeetaStorageAnchorGetRequest,\n\tKeetaStorageAnchorGetResponse,\n\tKeetaStorageAnchorDeleteRequest,\n\tKeetaStorageAnchorDeleteResponse,\n\tKeetaStorageAnchorSearchRequest,\n\tKeetaStorageAnchorSearchResponse,\n\tKeetaStorageAnchorQuotaRequest,\n\tKeetaStorageAnchorQuotaResponse\n} from './common.ts';\n\nexport const isKeetaStorageAnchorPutResponse: (input: unknown) => input is KeetaStorageAnchorPutResponse = createIs<KeetaStorageAnchorPutResponse>();\nexport const isKeetaStorageAnchorGetResponse: (input: unknown) => input is KeetaStorageAnchorGetResponse = createIs<KeetaStorageAnchorGetResponse>();\nexport const isKeetaStorageAnchorDeleteResponse: (input: unknown) => input is KeetaStorageAnchorDeleteResponse = createIs<KeetaStorageAnchorDeleteResponse>();\nexport const isKeetaStorageAnchorSearchResponse: (input: unknown) => input is KeetaStorageAnchorSearchResponse = createIs<KeetaStorageAnchorSearchResponse>();\nexport const isKeetaStorageAnchorQuotaResponse: (input: unknown) => input is KeetaStorageAnchorQuotaResponse = createIs<KeetaStorageAnchorQuotaResponse>();\n\nexport const assertKeetaStorageAnchorPutRequest: (input: unknown) => KeetaStorageAnchorPutRequest = createAssert<KeetaStorageAnchorPutRequest>();\nexport const assertKeetaStorageAnchorPutResponse: (input: unknown) => KeetaStorageAnchorPutResponse = createAssert<KeetaStorageAnchorPutResponse>();\nexport const assertKeetaStorageAnchorGetRequest: (input: unknown) => KeetaStorageAnchorGetRequest = createAssert<KeetaStorageAnchorGetRequest>();\nexport const assertKeetaStorageAnchorGetResponse: (input: unknown) => KeetaStorageAnchorGetResponse = createAssert<KeetaStorageAnchorGetResponse>();\nexport const assertKeetaStorageAnchorDeleteRequest: (input: unknown) => KeetaStorageAnchorDeleteRequest = createAssert<KeetaStorageAnchorDeleteRequest>();\nexport const assertKeetaStorageAnchorDeleteResponse: (input: unknown) => KeetaStorageAnchorDeleteResponse = createAssert<KeetaStorageAnchorDeleteResponse>();\nexport const assertKeetaStorageAnchorSearchRequest: (input: unknown) => KeetaStorageAnchorSearchRequest = createAssert<KeetaStorageAnchorSearchRequest>();\nexport const assertKeetaStorageAnchorSearchResponse: (input: unknown) => KeetaStorageAnchorSearchResponse = createAssert<KeetaStorageAnchorSearchResponse>();\nexport const assertKeetaStorageAnchorQuotaRequest: (input: unknown) => KeetaStorageAnchorQuotaRequest = createAssert<KeetaStorageAnchorQuotaRequest>();\nexport const assertKeetaStorageAnchorQuotaResponse: (input: unknown) => KeetaStorageAnchorQuotaResponse = createAssert<KeetaStorageAnchorQuotaResponse>();\n"]}
1
+ {"version":3,"file":"common.generated.js","sourceRoot":"","sources":["../../../src/services/storage/common.generated.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAe/C,MAAM,CAAC,MAAM,+BAA+B;;;;;;;sFAAwG,CAAC;AACrJ,MAAM,CAAC,MAAM,+BAA+B;;;;;;;sFAAwG,CAAC;AACrJ,MAAM,CAAC,MAAM,kCAAkC;;;;;;;sFAA8G,CAAC;AAC9J,MAAM,CAAC,MAAM,kCAAkC;;;;;;;sFAA8G,CAAC;AAC9J,MAAM,CAAC,MAAM,iCAAiC;;;;;;;sFAA4G,CAAC;AAE3J,MAAM,CAAC,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiG,CAAC;AACjJ,MAAM,CAAC,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAmG,CAAC;AACpJ,MAAM,CAAC,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiG,CAAC;AACjJ,MAAM,CAAC,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAmG,CAAC;AACpJ,MAAM,CAAC,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuG,CAAC;AAC1J,MAAM,CAAC,MAAM,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAyG,CAAC;AAC7J,MAAM,CAAC,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuG,CAAC;AAC1J,MAAM,CAAC,MAAM,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAyG,CAAC;AAC7J,MAAM,CAAC,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAqG,CAAC;AACvJ,MAAM,CAAC,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuG,CAAC;AAC1J,MAAM,CAAC,MAAM,6CAA6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuH,CAAC","sourcesContent":["import { createIs, createAssert } from 'typia';\nimport type {\n\tKeetaStorageAnchorPutRequest,\n\tKeetaStorageAnchorPutResponse,\n\tKeetaStorageAnchorGetRequest,\n\tKeetaStorageAnchorGetResponse,\n\tKeetaStorageAnchorDeleteRequest,\n\tKeetaStorageAnchorDeleteResponse,\n\tKeetaStorageAnchorSearchRequest,\n\tKeetaStorageAnchorSearchResponse,\n\tKeetaStorageAnchorQuotaRequest,\n\tKeetaStorageAnchorQuotaResponse,\n\tKeetaStorageAnchorUpdateMetadataRequest\n} from './common.ts';\n\nexport const isKeetaStorageAnchorPutResponse: (input: unknown) => input is KeetaStorageAnchorPutResponse = createIs<KeetaStorageAnchorPutResponse>();\nexport const isKeetaStorageAnchorGetResponse: (input: unknown) => input is KeetaStorageAnchorGetResponse = createIs<KeetaStorageAnchorGetResponse>();\nexport const isKeetaStorageAnchorDeleteResponse: (input: unknown) => input is KeetaStorageAnchorDeleteResponse = createIs<KeetaStorageAnchorDeleteResponse>();\nexport const isKeetaStorageAnchorSearchResponse: (input: unknown) => input is KeetaStorageAnchorSearchResponse = createIs<KeetaStorageAnchorSearchResponse>();\nexport const isKeetaStorageAnchorQuotaResponse: (input: unknown) => input is KeetaStorageAnchorQuotaResponse = createIs<KeetaStorageAnchorQuotaResponse>();\n\nexport const assertKeetaStorageAnchorPutRequest: (input: unknown) => KeetaStorageAnchorPutRequest = createAssert<KeetaStorageAnchorPutRequest>();\nexport const assertKeetaStorageAnchorPutResponse: (input: unknown) => KeetaStorageAnchorPutResponse = createAssert<KeetaStorageAnchorPutResponse>();\nexport const assertKeetaStorageAnchorGetRequest: (input: unknown) => KeetaStorageAnchorGetRequest = createAssert<KeetaStorageAnchorGetRequest>();\nexport const assertKeetaStorageAnchorGetResponse: (input: unknown) => KeetaStorageAnchorGetResponse = createAssert<KeetaStorageAnchorGetResponse>();\nexport const assertKeetaStorageAnchorDeleteRequest: (input: unknown) => KeetaStorageAnchorDeleteRequest = createAssert<KeetaStorageAnchorDeleteRequest>();\nexport const assertKeetaStorageAnchorDeleteResponse: (input: unknown) => KeetaStorageAnchorDeleteResponse = createAssert<KeetaStorageAnchorDeleteResponse>();\nexport const assertKeetaStorageAnchorSearchRequest: (input: unknown) => KeetaStorageAnchorSearchRequest = createAssert<KeetaStorageAnchorSearchRequest>();\nexport const assertKeetaStorageAnchorSearchResponse: (input: unknown) => KeetaStorageAnchorSearchResponse = createAssert<KeetaStorageAnchorSearchResponse>();\nexport const assertKeetaStorageAnchorQuotaRequest: (input: unknown) => KeetaStorageAnchorQuotaRequest = createAssert<KeetaStorageAnchorQuotaRequest>();\nexport const assertKeetaStorageAnchorQuotaResponse: (input: unknown) => KeetaStorageAnchorQuotaResponse = createAssert<KeetaStorageAnchorQuotaResponse>();\nexport const assertKeetaStorageAnchorUpdateMetadataRequest: (input: unknown) => KeetaStorageAnchorUpdateMetadataRequest = createAssert<KeetaStorageAnchorUpdateMetadataRequest>();\n"]}
@@ -13,6 +13,14 @@ export function getKeetaStorageAnchorPutRequestSigningData(input) {
13
13
  const sortedTags = [...tags].sort();
14
14
  return (['put', input.path, visibility, ...sortedTags]);
15
15
  }
16
+ /**
17
+ * Build signing data for an update-metadata request.
18
+ * Tags are sorted with localeCompare for deterministic signatures.
19
+ */
20
+ export function getKeetaStorageAnchorUpdateMetadataRequestSigningData(input) {
21
+ const sortedTags = [...input.tags].sort(function (a, b) { return (a.localeCompare(b)); });
22
+ return (['updateMetadata', input.path, input.visibility, ...sortedTags]);
23
+ }
16
24
  export function getKeetaStorageAnchorGetRequestSigningData(input) {
17
25
  return (['get', input.path]);
18
26
  }