@proveanything/smartlinks 1.0.14 → 1.0.16

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 (63) hide show
  1. package/README.md +12 -150
  2. package/build-docs.ts +28 -0
  3. package/dist/api/appConfiguration.d.ts +20 -9
  4. package/dist/api/appConfiguration.js +85 -11
  5. package/dist/api/auth.d.ts +3 -4
  6. package/dist/build-docs.js +26 -0
  7. package/dist/http.d.ts +5 -3
  8. package/dist/http.js +5 -3
  9. package/dist/index.d.ts +3 -0
  10. package/docs/README.md +282 -0
  11. package/docs/assets/navigation.js +1 -1
  12. package/docs/assets/search.js +1 -1
  13. package/docs/documentation.json +3311 -1573
  14. package/docs/functions/appConfiguration.deleteConfig.html +1 -0
  15. package/docs/functions/appConfiguration.deleteDataItem.html +1 -0
  16. package/docs/functions/appConfiguration.getConfig.html +1 -0
  17. package/docs/functions/appConfiguration.getData.html +1 -0
  18. package/docs/functions/appConfiguration.getDataItem.html +1 -0
  19. package/docs/functions/appConfiguration.setConfig.html +1 -0
  20. package/docs/functions/appConfiguration.setDataItem.html +1 -0
  21. package/docs/functions/attestation.create.html +2 -2
  22. package/docs/functions/attestation.get.html +2 -2
  23. package/docs/functions/attestation.list.html +2 -2
  24. package/docs/functions/attestation.update.html +2 -2
  25. package/docs/functions/auth.getAccount.html +2 -2
  26. package/docs/functions/auth.login.html +2 -2
  27. package/docs/functions/auth.verifyToken.html +2 -2
  28. package/docs/functions/initializeApi.html +2 -4
  29. package/docs/functions/request.html +1 -1
  30. package/docs/interfaces/AttestationCreateRequest.html +4 -0
  31. package/docs/interfaces/AttestationResponse.html +7 -0
  32. package/docs/interfaces/AttestationUpdateRequest.html +3 -0
  33. package/docs/modules/appConfiguration.html +7 -1
  34. package/docs/modules.html +7 -0
  35. package/docs/types/AccountInfoResponse.html +1 -0
  36. package/docs/types/AppConfigOptions.html +1 -0
  37. package/docs/types/LoginResponse.html +1 -0
  38. package/docs/types/VerifyTokenResponse.html +1 -0
  39. package/package.json +5 -2
  40. package/src/api/appConfiguration.ts +99 -17
  41. package/src/api/auth.ts +3 -3
  42. package/src/http.ts +7 -5
  43. package/src/index.ts +13 -0
  44. package/temp-docs/.nojekyll +1 -0
  45. package/temp-docs/README.md +101 -0
  46. package/temp-docs/interfaces/AppConfigurationResponse.md +45 -0
  47. package/temp-docs/interfaces/AssetResponse.md +39 -0
  48. package/temp-docs/interfaces/AttestationCreateRequest.md +37 -0
  49. package/temp-docs/interfaces/AttestationResponse.md +70 -0
  50. package/temp-docs/interfaces/AttestationUpdateRequest.md +26 -0
  51. package/temp-docs/interfaces/CollectionResponse.md +58 -0
  52. package/temp-docs/interfaces/ErrorResponse.md +32 -0
  53. package/temp-docs/interfaces/ProductResponse.md +58 -0
  54. package/temp-docs/interfaces/ProofResponse.md +97 -0
  55. package/temp-docs/modules/appConfiguration.md +151 -0
  56. package/temp-docs/modules/asset.md +171 -0
  57. package/temp-docs/modules/attestation.md +134 -0
  58. package/temp-docs/modules/auth.md +88 -0
  59. package/temp-docs/modules/collection.md +33 -0
  60. package/temp-docs/modules/product.md +63 -0
  61. package/temp-docs/modules/proof.md +57 -0
  62. package/temp-docs/modules.md +176 -0
  63. package/docs/functions/appConfiguration.get.html +0 -6
package/docs/README.md ADDED
@@ -0,0 +1,282 @@
1
+ # Smartlinks SDK Documentation
2
+
3
+ ## Table of contents
4
+
5
+ ### Namespaces
6
+
7
+ - [appConfiguration](modules/appConfiguration.md)
8
+ - [asset](modules/asset.md)
9
+ - [attestation](modules/attestation.md)
10
+ - [auth](modules/auth.md)
11
+ - [collection](modules/collection.md)
12
+ - [product](modules/product.md)
13
+ - [proof](modules/proof.md)
14
+
15
+ ### Interfaces
16
+
17
+ - [AppConfigurationResponse](interfaces/AppConfigurationResponse.md)
18
+ - [AssetResponse](interfaces/AssetResponse.md)
19
+ - [AttestationCreateRequest](interfaces/AttestationCreateRequest.md)
20
+ - [AttestationResponse](interfaces/AttestationResponse.md)
21
+ - [AttestationUpdateRequest](interfaces/AttestationUpdateRequest.md)
22
+ - [CollectionResponse](interfaces/CollectionResponse.md)
23
+ - [ErrorResponse](interfaces/ErrorResponse.md)
24
+ - [ProductResponse](interfaces/ProductResponse.md)
25
+ - [ProofResponse](interfaces/ProofResponse.md)
26
+
27
+ ### Type Aliases
28
+
29
+ - [AccountInfoResponse](modules.md#accountinforesponse)
30
+ - [AppConfigOptions](modules.md#appconfigoptions)
31
+ - [LoginResponse](modules.md#loginresponse)
32
+ - [VerifyTokenResponse](modules.md#verifytokenresponse)
33
+
34
+ ### Functions
35
+
36
+ - [initializeApi](modules.md#initializeapi)
37
+ - [request](modules.md#request)
38
+
39
+ ## Type Aliases
40
+
41
+ ### AccountInfoResponse
42
+
43
+ Ƭ **AccountInfoResponse**: `Object`
44
+
45
+ #### Type declaration
46
+
47
+ | Name | Type |
48
+ | :------ | :------ |
49
+ | `account` | `Record`\<`string`, `any`\> |
50
+ | `location` | `Record`\<`string`, `any`\> |
51
+ | `owner` | `Record`\<`string`, `any`\> |
52
+ | `user` | `Record`\<`string`, `any`\> |
53
+
54
+ #### Defined in
55
+
56
+ [api/auth.ts:19](https://github.com/Prove-Anything/smartlinks/blob/54a929dabe2ef3c5f4a5a559c656ea584231138a/src/api/auth.ts#L19)
57
+
58
+ ___
59
+
60
+ ### AppConfigOptions
61
+
62
+ Ƭ **AppConfigOptions**: `Object`
63
+
64
+ #### Type declaration
65
+
66
+ | Name | Type |
67
+ | :------ | :------ |
68
+ | `admin?` | `boolean` |
69
+ | `appId` | `string` |
70
+ | `batchId?` | `string` |
71
+ | `collectionId?` | `string` |
72
+ | `config?` | `any` |
73
+ | `data?` | `any` |
74
+ | `itemId?` | `string` |
75
+ | `productId?` | `string` |
76
+ | `user?` | `boolean` |
77
+ | `userData?` | `boolean` |
78
+ | `variantId?` | `string` |
79
+
80
+ #### Defined in
81
+
82
+ [api/appConfiguration.ts:4](https://github.com/Prove-Anything/smartlinks/blob/54a929dabe2ef3c5f4a5a559c656ea584231138a/src/api/appConfiguration.ts#L4)
83
+
84
+ ___
85
+
86
+ ### LoginResponse
87
+
88
+ Ƭ **LoginResponse**: `Object`
89
+
90
+ #### Type declaration
91
+
92
+ | Name | Type |
93
+ | :------ | :------ |
94
+ | `account` | `Record`\<`string`, `any`\> |
95
+ | `bearerToken` | `string` |
96
+ | `email` | `string` |
97
+ | `id` | `string` |
98
+ | `name` | `string` |
99
+
100
+ #### Defined in
101
+
102
+ [api/auth.ts:3](https://github.com/Prove-Anything/smartlinks/blob/54a929dabe2ef3c5f4a5a559c656ea584231138a/src/api/auth.ts#L3)
103
+
104
+ ___
105
+
106
+ ### VerifyTokenResponse
107
+
108
+ Ƭ **VerifyTokenResponse**: `Object`
109
+
110
+ #### Type declaration
111
+
112
+ | Name | Type |
113
+ | :------ | :------ |
114
+ | `account?` | `Record`\<`string`, `any`\> |
115
+ | `email?` | `string` |
116
+ | `id?` | `string` |
117
+ | `name?` | `string` |
118
+ | `valid` | `boolean` |
119
+
120
+ #### Defined in
121
+
122
+ [api/auth.ts:11](https://github.com/Prove-Anything/smartlinks/blob/54a929dabe2ef3c5f4a5a559c656ea584231138a/src/api/auth.ts#L11)
123
+
124
+ ## Functions
125
+
126
+ ### initializeApi
127
+
128
+ ▸ **initializeApi**(`options`): `void`
129
+
130
+ Call this once (e.g. at app startup) to configure baseURL/auth.
131
+
132
+ #### Parameters
133
+
134
+ | Name | Type | Description |
135
+ | :------ | :------ | :------ |
136
+ | `options` | `Object` | Configuration options |
137
+ | `options.apiKey?` | `string` | - |
138
+ | `options.baseURL` | `string` | - |
139
+ | `options.bearerToken?` | `string` | - |
140
+ | `options.proxyMode?` | `boolean` | - |
141
+
142
+ #### Returns
143
+
144
+ `void`
145
+
146
+ #### Defined in
147
+
148
+ [http.ts:20](https://github.com/Prove-Anything/smartlinks/blob/54a929dabe2ef3c5f4a5a559c656ea584231138a/src/http.ts#L20)
149
+
150
+ ___
151
+
152
+ ### request
153
+
154
+ ▸ **request**\<`T`\>(`path`): `Promise`\<`T`\>
155
+
156
+ Internal helper that performs a GET request to `\${baseURL}\${path}`,
157
+ injecting headers for apiKey or bearerToken if present.
158
+ Returns the parsed JSON as T, or throws an Error.
159
+
160
+ #### Type parameters
161
+
162
+ | Name |
163
+ | :------ |
164
+ | `T` |
165
+
166
+ #### Parameters
167
+
168
+ | Name | Type |
169
+ | :------ | :------ |
170
+ | `path` | `string` |
171
+
172
+ #### Returns
173
+
174
+ `Promise`\<`T`\>
175
+
176
+ #### Defined in
177
+
178
+ [http.ts:96](https://github.com/Prove-Anything/smartlinks/blob/54a929dabe2ef3c5f4a5a559c656ea584231138a/src/http.ts#L96)
179
+
180
+
181
+
182
+ An official JavaScript/TypeScript client SDK for the Smartlinks API. This package provides simple, namespaced functions to fetch Collection, Product, Proof, and App Configuration data in both browser and Node.js environments.
183
+
184
+ ## Installation
185
+
186
+ ```bash
187
+ npm install @proveanything/smartlinks
188
+ # or
189
+ yarn add @proveanything/smartlinks
190
+ ```
191
+
192
+ ## Quickstart
193
+
194
+ ```ts
195
+ import {
196
+ initializeApi,
197
+ collection,
198
+ product,
199
+ proof,
200
+ appConfiguration,
201
+ } from "@proveanything/smartlinks";
202
+
203
+ async function main() {
204
+ // Initialize once (provide base URL and optional API key, bearer token, or proxyMode)
205
+ initializeApi({
206
+ baseURL: "https://smartlinks.app/api/v1",
207
+ apiKey: "YOUR_API_KEY_HERE", // optional
208
+ bearerToken: "YOUR_BEARER_TOKEN", // optional
209
+ proxyMode: false // optional, set true if running in iframe via parent proxy
210
+ });
211
+
212
+ try {
213
+ // Fetch a collection by ID
214
+ const coll = await collection.get("abc123");
215
+ console.log("Collection:", coll);
216
+
217
+ // Fetch a product item by collection ID & product ID
218
+ const prod = await product.get("abc123", "prod789");
219
+ console.log("Product Item:", prod);
220
+
221
+ // Fetch a proof by collection ID & proof ID
222
+ const prf = await proof.get("abc123", "proof456");
223
+ console.log("Proof:", prf);
224
+
225
+ // Fetch an app configuration by collection ID & app ID
226
+ const cfg = await appConfiguration.get("abc123", "app789");
227
+ console.log("App Configuration:", cfg);
228
+ } catch (err) {
229
+ console.error("Error fetching data:", err);
230
+ }
231
+ }
232
+
233
+ main();
234
+ ```
235
+
236
+ ## API Reference
237
+
238
+ ### Initialization
239
+
240
+ ```ts
241
+ initializeApi(options: { baseURL: string; apiKey?: string; bearerToken?: string; proxyMode?: boolean }): void
242
+ ```
243
+
244
+ - **Parameters:**
245
+ - `baseURL` (`string`, required): The root URL of the Smartlinks API, e.g. `https://smartlinks.app/api/v1`.
246
+ - `apiKey` (`string`, optional): Your API key for the `X-API-Key` header.
247
+ - `bearerToken` (`string`, optional): Your Bearer token for the `Authorization` header.
248
+ - `proxyMode` (`boolean`, optional): Set to `true` if running in an iframe and using a parent proxy for requests.
249
+
250
+ All subsequent calls to the API functions will use these settings.
251
+
252
+ ---
253
+
254
+ ### Namespaced Modules
255
+
256
+ Each namespace provides a `get` method for fetching data:
257
+
258
+ - **collection.get(collectionId: string): Promise<Collection>**
259
+ - **product.get(collectionId: string, productId: string): Promise<Product>**
260
+ - **proof.get(collectionId: string, proofId: string): Promise<Proof>**
261
+ - **appConfiguration.get(collectionId: string, appId: string): Promise<AppConfiguration>**
262
+
263
+ All methods return a Promise resolving to the corresponding object, or throw an `Error` on failure.
264
+
265
+ ---
266
+
267
+ ## Changelog
268
+
269
+ ### 1.0.0
270
+
271
+ - Initial release:
272
+ - `initializeApi` function to configure baseURL and auth.
273
+ - Namespaced modules:
274
+ - `collection.get(collectionId)`
275
+ - `product.get(collectionId, productId)`
276
+ - `proof.get(collectionId, proofId)`
277
+ - `appConfiguration.get(collectionId, appId)`
278
+ - Full TypeScript typings and JSDoc.
279
+ - Browser/Node fetch support via `cross-fetch`.
280
+ - Error handling via thrown `Error` objects.
281
+
282
+
@@ -1 +1 @@
1
- window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAACp2VTW+DMAyG/0vOaJWmrgduqNrO07RbtQMKDkSlMQtJtQ/1v0+UUkIaHLoref3w2rGd3S8z8GVYyvKm2aISsrQ6NxIVS1iTm4ql7ICFraFd+YqHyhxqlrC9VAVL1wnjlawLDYqluyu2BDOShFW8iwywSjBT3mZ9+jglo722dUlXT93npUZeUG+xroFP83NcnWm+8sZX4kFfNRaWh/N0iBfZEhyKBTAUBKqW7dJ8b6RxbDTjqW4RkMrZVREw29SYF9m0VXyWI6I7zhhozdwsjIeLuo9ryA0ETTmkXkU3SIwRGqRpuWOETkMgNBzwGE2lV5F3VSyoSK+i78maKnBB1lRL90LGOVoVrkuHGSVUZbGU4SHrEOdTOhrtvIP+mIg/gpbi+x33MO/B0ZAF5YGdMZSVzyyJ+7a/Q4nt/cbfNIOTJrRa7rMxIP43MkN0cFy8FNzd5iTgL7O77aP4v3kUceuZ90y/Qdugap2xlcqAFjmHdjUnnv7h8Wnj/qBbwzTVVVCo8f0iebcyCvqsNWqSN1FQqMtbSMI8TQSHIgYbFRRKKmlkXssfyBoZ6paJgHwaPi2EG+5ydNttf5suZV+CCgAA"
1
+ window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAACp2WQW+cMBCF/4vPq6aNklTd22rbSJEitYraXqIeEAxghfUQe4iaVv3vlSEEY8zY5Lp+/vzGnnns/V9B8JvEXmRte0RVyqrTGUlUYifajGqxFycsugbMma94V9OpETvxIFUh9hc7kdeyKTQosb9/xRbQAMGwb0KWncotIgB1N8xPuLr4t/O4nzPKbghOG8jjFoZdAW0w/KrmifbcVJ7VxmnJhTt6hmo2VW0SqjYbfRrG5y+HmxkDFOhP+3NSU1ZA16iP2DSQz3vdcdfTfCX/Kteov2ksupxixBdZCg7LBBiWDKqRJrXehTSOjVY81yUBuZpdFQPr2gaz4jBvFZ/liPiOIwJDa7k4LSZ1X64hIwiackiDim+QGKMKlDW/7hjBahiEhhM+RUsZVOxbFQk3Mqj4d+qoDjxQR3VqLhzyHDsVvheLmSTczWIlw0NmEf0qvxu7dQfDMrP/CbQsn7/jA6x7cDTsheaBzBivNV8JifXLDdlxKKF2dc20ftKMTtpQtGyzMSLeNjLj7uC4eCW42eYU4IfZZvtYvt08lnHrB+9zfQemRWWcsZWKQJdZDuZsTTw/4fzyyj3AxjBPdRUsaoqNY5+jd/DYgVu+S10RJx7AO17qErE/+rRL9D0TcwdMH3bW9lLGQb9ojZrlzRQc6uVPAgvzNBEcljHYpGCfZkj9G1XiEkjPrX2QpcQjvv/08cPleWiovrb9MC6Q3nqMd2u/LWv+Zosx0s/pC7HGC0hiVKkkyayRf+DQylAYzQTsPw9vMCaEDo2BDbP/yOUDY+0OAAA="
@@ -1 +1 @@
1
- window.searchData = "data:application/octet-stream;base64,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";
1
+ window.searchData = "data:application/octet-stream;base64,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";