forked from dfinity/agent-js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchangelog.html
230 lines (229 loc) · 9 KB
/
changelog.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Changelog</title>
</head>
<body>
<h1>Agent-JS Changelog</h1>
<section>
<h2>Version 0.13.3</h2>
<ul>
<li>adds ability to polyfill bls verification in Certificate</li>
<li>
Auth Client moves key fallback generation to the create method instead of login and makes
the _key non-nullable. This fixes a regression with async window.open behavior in Safari
</li>
<li>
HttpAgent now offers a method to sync time with the replica, provided a specific canister.
This can be used to set proper Expiry times when a device has fallen out of sync with the replica.
</ul>
<h2>Version 0.13.2</h2>
<ul>
<li>auth-client avoids localstorage global and can be used in a web worker or nodejs</li>
<li>bug: auth-client logout now awaits clearing storage</li>
</ul>
<h2>Version 0.13.1</h2>
<ul>
<li>fixes a bug with the localstorage migration strategy</li>
</ul>
<h2>Version 0.13.0</h2>
<ul>
<li>
AuthClient now uses IndexedDb by default. To use localStorage, import LocalStorage
provider and pass it during AuthClient.create().
</li>
<ul>
<li>Also offers a generic Indexed Db keyval store, IdbKeyVal</li>
</ul>
<li>AuthClient migrates gracefully from localstorage to IDB when upgrading</li>
</ul>
<h2>Version 0.12.2</h2>
<ul>
<li>
Support for the SubtleCrypto interface in @dfinity/identity using the new ECDSAKeyIdentity
</li>
<li>CanisterStatus no longer suppresses rootKey errors</li>
<li>Readme's point to https://agent-js.icp.xyz</li>
</ul>
<h2>Version 0.12.1</h2>
<ul>
<li>Adds inline sourcemaps to packages</li>
<li>
Pulls lint out to a separate job now that Node 12 is failing with latest eslint
dependencies
</li>
<li>Adds UTF-8 as an encoding option for CanisterStatus custom paths</li>
<li>
Adds a public method "createReadStateRequest" that creates the request for "readState".
</li>
<li>
Add an extra parameter to "readState" to pass a created request. If this parameter is
passed, the method does the request directly without creating a new one.
</li>
<li>
Use the "createReadStateRequest" and the extra parameter when polling for the response to
avoid signing requests during polling.
</li>
<li>
Adds derivationOrigin to auth-client login to support the ability to login using the
identity derived from a different origin. See
<a
href="https://github.com/dfinity/internet-identity/pull/724/files#diff-44c106928503ccfb1b3f09f02513578552f66b68dea01c5ec4bd2de858bbba1a"
>proposed changes</a
>
</li>
</ul>
<h2>Version 0.12.0</h2>
<ul>
<li>
Changed the certificate verification interface and fixed its logic. The public constructor
is now static and asynchronous. There is no separate verification method, the check is
done automatically in the constructor and newly also checks that the delegation is
authoritative for the given canister ID, as required by the Internet Computer interface
specification.
</li>
</ul>
<h2>Version 0.11.2</h2>
<ul>
<li>
Adds a default callback to the IdleManager that will refresh the page after clearing the
storage
</li>
<li>
Adds a new utility method,
<pre>canisterStatus</pre>
, to @agent/js. Canister status now allows you to query paths from the canister
certificate with a simple interface, using the API from the<a
href="https://smartcontracts.org/docs/current/references/ic-interface-spec#state-tree-canister-information"
>interface specification</a
><br />
Comes with nicely configured options for
<pre>time</pre>
,
<pre>controllers</pre>
,
<pre>subnet</pre>
,
<pre>module_hash</pre>
, and
<pre>candid</pre>
. Additionally, has a utility for reading custom MetaData set using
<a href="https://github.com/dfinity/ic-wasm">ic-wasm</a>, as well as generic custom paths
in the format of ArrayBuffers.
</li>
<li>updates to package.json files for metadata in npm</li>
</ul>
<h2>Version 0.11.1</h2>
<ul>
<li>Fix for a corner case that could lead to incorrect decoding of record types.</li>
</ul>
<h2>Version 0.11.0</h2>
<ul>
<li>
makeNonce now returns unique values. Previously only the first byte of the nonce was
populated.
</li>
<li>
Introduces IdleManager to the auth-client. You can now use it to detect when the user has
been idle for a configurable amount of time, and then to register callbacks for the sake
of logging the user out and prompting re-authentication. See the @dfinity/auth-client
Readme for more details
</li>
<li>Reduces the maxTimeToLive default setting from 24 hours to 8</li>
<li>
Versioning tool now sets patch version to 0 for minor version updates, or patch and minor
versions to 0 for major version updates
</li>
<li>Removes jest-expect-message, which was making test error messages less useful</li>
<li>
<p>
HttpAgent now generates a nonce to ensure that calls are unique by default. If you want
to opt out or provide your own nonce logic, you can now pass an option of
<code>disableNonce: true</code>during the agent initialization.
</p>
<p>
If you are currently using
<code>agent.addTransform(makeNonceTransform())</code>
, please note that you should remove that logic, or add the <code>disableNonce</code>
option to your agent when upgrading.
</p>
</li>
</ul>
<h2>Version 0.10.3</h2>
<ul>
<li>
Candid now allows optional records to be omitted. See
https://github.com/dfinity/agent-js/issues/524
</li>
<li>
In auth-client, login onSuccess callback and onError callback now supports async pattern.
</li>
<li>
Updates npm dependencies to resolve warnings for typedoc and node-fetch. No runtime
dependencies were affected.
</li>
</ul>
<h2>Version 0.10.2</h2>
<ul>
<li>
Security enhancement - adds a rewrite for urls to subdomains of
<pre>*.ic0.app/api</pre>
to
<pre>ic0.app/api</pre>
</li>
<li>Improves error messages for when HttpAgent cannot infer fetch implementation</li>
</ul>
<h2>Version 0.10.1</h2>
<ul>
<li>
Fix for the auth-client identity option and added JSDOC comment for the timeToLive option
</li>
<li>
Sets the default Internet Identity expiration to 1 day for the authClient, up from 15
minutes
</li>
<li>
No longer checks instanceof Principal in @dfinity/agent, which should allow non-identical
versions of packages to interoperate, as long as they share the same API
</li>
</ul>
<h2>Version 0.10.0</h2>
<ul>
<li>Adds changelog for agent-js packages</li>
<li>
Buffer and Pipe refactor
<ul>
<li>
In previous versions of dfinity packages, we relied on Buffer, a polyfilled version of
the Node.js Buffer utility. In a significant refactor, we have removed all cases of
this, along with Pipe and the nonstandard Blob packages, in favor of ArrayBuffer,
Uint8Array, and DataView
</li>
<li>Utility methods such as <code>blobToUint8Array</code> have been removed.</li>
<li>
Interfaces that relied on Buffer and related packages have been updated to accept
ArrayBuffer, and the type interfaces are updated to reflect this
</li>
</ul>
</li>
<li>
Secp256k1 Support
<ul>
<li>
Adds two new exports to @dfinity/identity - Secp256k1KeyIdentity and
Secp256k1PublicKey
</li>
<li>
API mirrors the ed25519 components, and relies on the
<a href="https://www.npmjs.com/package/secp256k1">secp256k1</a> npm package for
signing and verification.
</li>
</ul>
</li>
</ul>
</section>
</body>
</html>