notte-sdk 0.0.7 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +99 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +99 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -115,6 +115,104 @@ __export(index_exports, {
|
|
|
115
115
|
});
|
|
116
116
|
module.exports = __toCommonJS(index_exports);
|
|
117
117
|
|
|
118
|
+
// src/version.ts
|
|
119
|
+
var SDK_VERSION = true ? "0.0.8" : "dev";
|
|
120
|
+
var SDK_PACKAGE_NAME = true ? "notte-sdk" : "notte-sdk";
|
|
121
|
+
|
|
122
|
+
// src/version-check.ts
|
|
123
|
+
var DISABLE_ENV = "NOTTE_SDK_DISABLE_VERSION_CHECK";
|
|
124
|
+
var VERSION_CHECK_TIMEOUT_MS = 1500;
|
|
125
|
+
var hasStartedVersionCheck = false;
|
|
126
|
+
function startVersionCheck() {
|
|
127
|
+
if (hasStartedVersionCheck || !shouldCheckVersion()) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
hasStartedVersionCheck = true;
|
|
131
|
+
const timer = setTimeout(() => {
|
|
132
|
+
void checkForLatestVersion().catch(() => void 0);
|
|
133
|
+
}, 0);
|
|
134
|
+
timer.unref?.();
|
|
135
|
+
}
|
|
136
|
+
async function checkForLatestVersion(options = {}) {
|
|
137
|
+
const currentVersion = options.currentVersion ?? SDK_VERSION;
|
|
138
|
+
const packageName = options.packageName ?? SDK_PACKAGE_NAME;
|
|
139
|
+
const fetchFn = options.fetchFn ?? globalThis.fetch;
|
|
140
|
+
const warnFn = options.warnFn ?? console.warn;
|
|
141
|
+
const env = options.env ?? getEnv();
|
|
142
|
+
if (!shouldCheckVersion(currentVersion, fetchFn, env)) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const latestVersion = await fetchLatestVersion(packageName, fetchFn);
|
|
146
|
+
if (!latestVersion || !isVersionGreater(latestVersion, currentVersion)) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
warnFn(
|
|
150
|
+
`[${packageName}] A newer version is available: ${currentVersion} -> ${latestVersion}. Update with: npm install ${packageName}@latest`
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
function shouldCheckVersion(currentVersion = SDK_VERSION, fetchFn = globalThis.fetch, env = getEnv()) {
|
|
154
|
+
if (!fetchFn || !env || env[DISABLE_ENV] || env.NODE_ENV === "test" || env.VITEST || env.CI) {
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
return isPublishedVersion(currentVersion);
|
|
158
|
+
}
|
|
159
|
+
async function fetchLatestVersion(packageName, fetchFn) {
|
|
160
|
+
const controller = typeof AbortController !== "undefined" ? new AbortController() : void 0;
|
|
161
|
+
const timeout = controller ? setTimeout(() => controller.abort(), VERSION_CHECK_TIMEOUT_MS) : void 0;
|
|
162
|
+
timeout?.unref?.();
|
|
163
|
+
try {
|
|
164
|
+
const response = await fetchFn(`https://registry.npmjs.org/${encodeURIComponent(packageName)}/latest`, {
|
|
165
|
+
headers: {
|
|
166
|
+
accept: "application/json"
|
|
167
|
+
},
|
|
168
|
+
signal: controller?.signal
|
|
169
|
+
});
|
|
170
|
+
if (!response.ok) {
|
|
171
|
+
return void 0;
|
|
172
|
+
}
|
|
173
|
+
const payload = await response.json();
|
|
174
|
+
return typeof payload.version === "string" ? payload.version : void 0;
|
|
175
|
+
} catch {
|
|
176
|
+
return void 0;
|
|
177
|
+
} finally {
|
|
178
|
+
if (timeout) {
|
|
179
|
+
clearTimeout(timeout);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
function isPublishedVersion(version) {
|
|
184
|
+
return /^\d+\.\d+\.\d+/.test(version) && !version.includes("dev");
|
|
185
|
+
}
|
|
186
|
+
function isVersionGreater(candidate, current) {
|
|
187
|
+
const candidateVersion = parseSemver(candidate);
|
|
188
|
+
const currentVersion = parseSemver(current);
|
|
189
|
+
if (!candidateVersion || !currentVersion) {
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
for (let index = 0; index < 3; index += 1) {
|
|
193
|
+
if (candidateVersion.parts[index] > currentVersion.parts[index]) {
|
|
194
|
+
return true;
|
|
195
|
+
}
|
|
196
|
+
if (candidateVersion.parts[index] < currentVersion.parts[index]) {
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return currentVersion.prerelease.length > 0 && candidateVersion.prerelease.length === 0;
|
|
201
|
+
}
|
|
202
|
+
function parseSemver(version) {
|
|
203
|
+
const match = version.match(/^(\d+)\.(\d+)\.(\d+)(?:-([^+]+))?/);
|
|
204
|
+
if (!match) {
|
|
205
|
+
return void 0;
|
|
206
|
+
}
|
|
207
|
+
return {
|
|
208
|
+
parts: [Number(match[1]), Number(match[2]), Number(match[3])],
|
|
209
|
+
prerelease: match[4] ?? ""
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
function getEnv() {
|
|
213
|
+
return typeof process !== "undefined" ? process.env : void 0;
|
|
214
|
+
}
|
|
215
|
+
|
|
118
216
|
// src/lib/client/core/bodySerializer.gen.ts
|
|
119
217
|
var serializeFormDataPair = (data, key, value) => {
|
|
120
218
|
if (typeof value === "string" || value instanceof Blob) {
|
|
@@ -2684,9 +2782,6 @@ var NottePersona = class {
|
|
|
2684
2782
|
}
|
|
2685
2783
|
};
|
|
2686
2784
|
|
|
2687
|
-
// src/version.ts
|
|
2688
|
-
var SDK_VERSION = true ? "0.0.7" : "dev";
|
|
2689
|
-
|
|
2690
2785
|
// src/functions.ts
|
|
2691
2786
|
var NotteFunction = class {
|
|
2692
2787
|
constructor(client2, options) {
|
|
@@ -2917,6 +3012,7 @@ var NotteProxyAuthError = class extends Error {
|
|
|
2917
3012
|
};
|
|
2918
3013
|
|
|
2919
3014
|
// src/index.ts
|
|
3015
|
+
startVersionCheck();
|
|
2920
3016
|
var createClient2 = (config) => {
|
|
2921
3017
|
if (config?.baseUrl) {
|
|
2922
3018
|
client.setConfig({ baseUrl: config.baseUrl });
|