skir 1.2.14 → 1.2.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.
package/README.md
CHANGED
|
@@ -27,8 +27,8 @@ Write your schema once in a `.skir` file and generate idiomatic, type-safe code
|
|
|
27
27
|
- 📦 **GitHub imports** - Import types directly from GitHub repositories to share data structures across projects.
|
|
28
28
|
- 🔁 **Serialization modes** - Dense JSON for APIs/DBs, readable JSON for debugging, and binary for raw performance.
|
|
29
29
|
- 🕰️ **Safe schema evolution** - Built-in checks and clear rules so old and new data remain deserializable.
|
|
30
|
-
- 🧬 **
|
|
31
|
-
- 🔒 **
|
|
30
|
+
- 🧬 **Polymorphism done right** - Sum types let variants be constants or carry typed payloads for clean, explicit polymorphism.
|
|
31
|
+
- 🔒 **Prioritizes immutability** - Skir generates deeply immutable types with all fields required at construction time.
|
|
32
32
|
- 🗂️ **Key-indexed arrays** - Declare arrays like `[User|user_id]` and get fast key-based lookup APIs.
|
|
33
33
|
- 🛠️ **First-class tooling** - VS Code extension + LSP with validation, completion, and auto-formatting.
|
|
34
34
|
- 🧱 **Easy to extend** - Generators are regular NPM modules, so custom generators plug in cleanly.
|
|
@@ -57,7 +57,7 @@ export async function downloadPackage(packageId, version, githubToken) {
|
|
|
57
57
|
},
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
|
-
async function fetchWithRetry(url, headers, maxRetries =
|
|
60
|
+
async function fetchWithRetry(url, headers, maxRetries = 8) {
|
|
61
61
|
let lastResponse;
|
|
62
62
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
63
63
|
const response = await fetch(url, { headers });
|
|
@@ -139,7 +139,7 @@ async function getGithubTree(repo, version, githubToken) {
|
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
else {
|
|
142
|
-
throw
|
|
142
|
+
throw await buildGithubApiError(response, githubToken);
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
145
|
const githubTree = (await response.json());
|
|
@@ -152,7 +152,7 @@ async function downloadFileContent(repo, sha, githubToken) {
|
|
|
152
152
|
const url = `https://api.github.com/repos/${repo}/git/blobs/${sha}`;
|
|
153
153
|
const response = await fetchWithRetry(url, makeHeaders(githubToken));
|
|
154
154
|
if (!response.ok) {
|
|
155
|
-
throw
|
|
155
|
+
throw await buildGithubApiError(response, githubToken);
|
|
156
156
|
}
|
|
157
157
|
const data = (await response.json());
|
|
158
158
|
// Github API returns base64 encoded content
|
|
@@ -253,4 +253,57 @@ function makeHeaders(githubToken) {
|
|
|
253
253
|
return headers;
|
|
254
254
|
}
|
|
255
255
|
const MAX_RETRY_WAIT_MS = 60 * 1000;
|
|
256
|
+
async function buildGithubApiError(response, githubToken) {
|
|
257
|
+
const statusPrefix = `Github API request failed: ${response.status} ${response.statusText}`;
|
|
258
|
+
const githubMessage = await readGithubErrorMessage(response);
|
|
259
|
+
if (response.status === 401) {
|
|
260
|
+
return new Error(`${statusPrefix} (invalid or expired Github token).${formatGithubMessageSuffix(githubMessage)}`);
|
|
261
|
+
}
|
|
262
|
+
if (response.status === 403 || response.status === 429) {
|
|
263
|
+
const remaining = parseHeaderInt(response.headers.get("X-RateLimit-Remaining"));
|
|
264
|
+
const resetEpochSeconds = parseHeaderInt(response.headers.get("X-RateLimit-Reset"));
|
|
265
|
+
const resetIso = resetEpochSeconds !== undefined
|
|
266
|
+
? new Date(resetEpochSeconds * 1000).toISOString()
|
|
267
|
+
: undefined;
|
|
268
|
+
const missingTokenHint = githubToken
|
|
269
|
+
? ""
|
|
270
|
+
: " No Github token configured; CI jobs without GITHUB_TOKEN are limited to a much lower unauthenticated quota.";
|
|
271
|
+
const resetHint = remaining === 0 && resetIso ? ` Rate limit resets at ${resetIso}.` : "";
|
|
272
|
+
const secondaryRateLimitHint = remaining !== 0
|
|
273
|
+
? " This may be a Github secondary rate limit; reduce parallel requests or add jitter between requests."
|
|
274
|
+
: "";
|
|
275
|
+
return new Error(`${statusPrefix} (Github rate limit exceeded).${missingTokenHint}${resetHint}${secondaryRateLimitHint}${formatGithubMessageSuffix(githubMessage)}`);
|
|
276
|
+
}
|
|
277
|
+
return new Error(`${statusPrefix}${formatGithubMessageSuffix(githubMessage)}`);
|
|
278
|
+
}
|
|
279
|
+
async function readGithubErrorMessage(response) {
|
|
280
|
+
let bodyText;
|
|
281
|
+
try {
|
|
282
|
+
bodyText = await response.text();
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
return undefined;
|
|
286
|
+
}
|
|
287
|
+
const trimmed = bodyText.trim();
|
|
288
|
+
if (trimmed.length === 0) {
|
|
289
|
+
return undefined;
|
|
290
|
+
}
|
|
291
|
+
try {
|
|
292
|
+
const parsed = JSON.parse(trimmed);
|
|
293
|
+
if (typeof parsed.message === "string" &&
|
|
294
|
+
parsed.message.trim().length > 0) {
|
|
295
|
+
return parsed.message.trim();
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
catch {
|
|
299
|
+
// Fall through to plain text message when the body is not JSON.
|
|
300
|
+
}
|
|
301
|
+
return trimmed;
|
|
302
|
+
}
|
|
303
|
+
function formatGithubMessageSuffix(message) {
|
|
304
|
+
if (!message) {
|
|
305
|
+
return "";
|
|
306
|
+
}
|
|
307
|
+
return ` Github response: ${message}`;
|
|
308
|
+
}
|
|
256
309
|
//# sourceMappingURL=package_downloader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package_downloader.js","sourceRoot":"","sources":["../src/package_downloader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"package_downloader.js","sourceRoot":"","sources":["../src/package_downloader.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,7 +66,7 @@ generators:
|
|
|
66
66
|
# # --------------------------------------------------------------------------
|
|
67
67
|
# # C# code generator
|
|
68
68
|
# # Home: https://github.com/gepheum/skir-csharp-gen
|
|
69
|
-
# # To install runtime dependencies:
|
|
69
|
+
# # To install runtime dependencies: dotnet add package skir_client
|
|
70
70
|
# # --------------------------------------------------------------------------
|
|
71
71
|
# - mod: skir-csharp-gen
|
|
72
72
|
# outDir: ./skirout
|
package/package.json
CHANGED
|
@@ -93,7 +93,7 @@ export async function downloadPackage(
|
|
|
93
93
|
async function fetchWithRetry(
|
|
94
94
|
url: string,
|
|
95
95
|
headers: Record<string, string>,
|
|
96
|
-
maxRetries =
|
|
96
|
+
maxRetries = 8,
|
|
97
97
|
): Promise<Response> {
|
|
98
98
|
let lastResponse: Response | undefined;
|
|
99
99
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
@@ -203,9 +203,7 @@ async function getGithubTree(
|
|
|
203
203
|
};
|
|
204
204
|
}
|
|
205
205
|
} else {
|
|
206
|
-
throw
|
|
207
|
-
`Github API request failed: ${response.status} ${response.statusText}`,
|
|
208
|
-
);
|
|
206
|
+
throw await buildGithubApiError(response, githubToken);
|
|
209
207
|
}
|
|
210
208
|
}
|
|
211
209
|
|
|
@@ -225,9 +223,7 @@ async function downloadFileContent(
|
|
|
225
223
|
const response = await fetchWithRetry(url, makeHeaders(githubToken));
|
|
226
224
|
|
|
227
225
|
if (!response.ok) {
|
|
228
|
-
throw
|
|
229
|
-
`Failed to download file: ${response.status} ${response.statusText}`,
|
|
230
|
-
);
|
|
226
|
+
throw await buildGithubApiError(response, githubToken);
|
|
231
227
|
}
|
|
232
228
|
|
|
233
229
|
const data = (await response.json()) as {
|
|
@@ -397,3 +393,87 @@ type GithubTreeResult =
|
|
|
397
393
|
| DependencyError;
|
|
398
394
|
|
|
399
395
|
const MAX_RETRY_WAIT_MS = 60 * 1000;
|
|
396
|
+
|
|
397
|
+
async function buildGithubApiError(
|
|
398
|
+
response: Response,
|
|
399
|
+
githubToken?: string,
|
|
400
|
+
): Promise<Error> {
|
|
401
|
+
const statusPrefix = `Github API request failed: ${response.status} ${response.statusText}`;
|
|
402
|
+
const githubMessage = await readGithubErrorMessage(response);
|
|
403
|
+
|
|
404
|
+
if (response.status === 401) {
|
|
405
|
+
return new Error(
|
|
406
|
+
`${statusPrefix} (invalid or expired Github token).${formatGithubMessageSuffix(githubMessage)}`,
|
|
407
|
+
);
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
if (response.status === 403 || response.status === 429) {
|
|
411
|
+
const remaining = parseHeaderInt(
|
|
412
|
+
response.headers.get("X-RateLimit-Remaining"),
|
|
413
|
+
);
|
|
414
|
+
const resetEpochSeconds = parseHeaderInt(
|
|
415
|
+
response.headers.get("X-RateLimit-Reset"),
|
|
416
|
+
);
|
|
417
|
+
const resetIso =
|
|
418
|
+
resetEpochSeconds !== undefined
|
|
419
|
+
? new Date(resetEpochSeconds * 1000).toISOString()
|
|
420
|
+
: undefined;
|
|
421
|
+
|
|
422
|
+
const missingTokenHint = githubToken
|
|
423
|
+
? ""
|
|
424
|
+
: " No Github token configured; CI jobs without GITHUB_TOKEN are limited to a much lower unauthenticated quota.";
|
|
425
|
+
|
|
426
|
+
const resetHint =
|
|
427
|
+
remaining === 0 && resetIso ? ` Rate limit resets at ${resetIso}.` : "";
|
|
428
|
+
|
|
429
|
+
const secondaryRateLimitHint =
|
|
430
|
+
remaining !== 0
|
|
431
|
+
? " This may be a Github secondary rate limit; reduce parallel requests or add jitter between requests."
|
|
432
|
+
: "";
|
|
433
|
+
|
|
434
|
+
return new Error(
|
|
435
|
+
`${statusPrefix} (Github rate limit exceeded).${missingTokenHint}${resetHint}${secondaryRateLimitHint}${formatGithubMessageSuffix(githubMessage)}`,
|
|
436
|
+
);
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
return new Error(
|
|
440
|
+
`${statusPrefix}${formatGithubMessageSuffix(githubMessage)}`,
|
|
441
|
+
);
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
async function readGithubErrorMessage(
|
|
445
|
+
response: Response,
|
|
446
|
+
): Promise<string | undefined> {
|
|
447
|
+
let bodyText: string;
|
|
448
|
+
try {
|
|
449
|
+
bodyText = await response.text();
|
|
450
|
+
} catch {
|
|
451
|
+
return undefined;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
const trimmed = bodyText.trim();
|
|
455
|
+
if (trimmed.length === 0) {
|
|
456
|
+
return undefined;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
try {
|
|
460
|
+
const parsed = JSON.parse(trimmed) as { message?: unknown };
|
|
461
|
+
if (
|
|
462
|
+
typeof parsed.message === "string" &&
|
|
463
|
+
parsed.message.trim().length > 0
|
|
464
|
+
) {
|
|
465
|
+
return parsed.message.trim();
|
|
466
|
+
}
|
|
467
|
+
} catch {
|
|
468
|
+
// Fall through to plain text message when the body is not JSON.
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
return trimmed;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
function formatGithubMessageSuffix(message: string | undefined): string {
|
|
475
|
+
if (!message) {
|
|
476
|
+
return "";
|
|
477
|
+
}
|
|
478
|
+
return ` Github response: ${message}`;
|
|
479
|
+
}
|
|
@@ -80,7 +80,7 @@ generators:
|
|
|
80
80
|
# # --------------------------------------------------------------------------
|
|
81
81
|
# # C# code generator
|
|
82
82
|
# # Home: https://github.com/gepheum/skir-csharp-gen
|
|
83
|
-
# # To install runtime dependencies:
|
|
83
|
+
# # To install runtime dependencies: dotnet add package skir_client
|
|
84
84
|
# # --------------------------------------------------------------------------
|
|
85
85
|
# - mod: skir-csharp-gen
|
|
86
86
|
# outDir: ./skirout
|