@stepzen/transpiler 0.60.0-experimental.9267a2f → 0.60.0-experimental.a6ad7dd
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/merge-helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,aAAa,EAAc,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"merge-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/merge-helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,aAAa,EAAc,MAAM,SAAS,CAAA;AAuBlE,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,WAQ/C,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,QAAQ,MAAM,EAAE,MAAM,MAAM,WAStE,CAAA;AAgBD,eAAO,MAAM,yBAAyB,GACpC,MAAM,MAAM,EACZ,OAAO,GAAG,KACT,OAiBF,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,EAAE,OAAO,GAAG,KAAG,OAc3D,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC3B,aAAa,MAAM,EAAE,EACrB,SAAQ,OAAe,EACvB,UAAS,GAAQ,KAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CA6BzC,CAAA;AAED,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,MAAM,CAmEpD,CAAA;AAED,eAAO,MAAM,SAAS,GACpB,WAAW,MAAM,EACjB,YAAY,MAAM,KACjB,OAAO,CAAC,aAAa,CAGvB,CAAA;AAED,eAAO,MAAM,4BAA4B,GAAI,MAAM,GAAG,EAAE,OAAO,GAAG,QAoBjE,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,MAAM,GAAG,EAAE,OAAO,GAAG,QAmBxD,CAAA;AAED,eAAO,MAAM,6BAA6B,GAAI,MAAM,MAAM,EAAE,OAAO,GAAG,QAiBrE,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,EAAE,OAAO,GAAG,QAc5D,CAAA"}
|
|
@@ -13,6 +13,12 @@ import { STEPZEN_SERVER_URL } from './constants.js';
|
|
|
13
13
|
import configure from '../actions/configure.js';
|
|
14
14
|
import transpile from '../actions/transpile.js';
|
|
15
15
|
import { rmtemp } from './rmtemp.js';
|
|
16
|
+
class NonRetryableError extends Error {
|
|
17
|
+
constructor(message) {
|
|
18
|
+
super(message);
|
|
19
|
+
this.name = 'NonRetryableError';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
16
22
|
export const dedupeTempFolder = (dirpath) => {
|
|
17
23
|
do {
|
|
18
24
|
dirpath = replace(dirpath, os.tmpdir(), '');
|
|
@@ -98,13 +104,46 @@ export const getConfiguration = async (directories, silent = false, answers = {}
|
|
|
98
104
|
export const getExtensions = async () => {
|
|
99
105
|
const baseurl = STEPZEN_SERVER_URL.replace('{account}', 'stepzen');
|
|
100
106
|
const url = `${baseurl}/directives.graphql`;
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
107
|
+
const maxRetries = 3;
|
|
108
|
+
const baseDelayMs = 1000;
|
|
109
|
+
let lastError;
|
|
110
|
+
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
111
|
+
const startedAt = Date.now();
|
|
112
|
+
try {
|
|
113
|
+
debug('stepzen:extensions')(`[transpiler] fetching StepZen extensions from ${url} (attempt ${attempt}/${maxRetries})`);
|
|
114
|
+
const response = await fetch(url);
|
|
115
|
+
if (!response.ok) {
|
|
116
|
+
// Don't retry 4xx errors (client errors like 401, 403, 404)
|
|
117
|
+
if (response.status < 500) {
|
|
118
|
+
throw new NonRetryableError(`HTTP ${response.status} ${response.statusText}`);
|
|
119
|
+
}
|
|
120
|
+
// Retry 5xx errors (server errors)
|
|
121
|
+
throw new Error(`HTTP ${response.status} ${response.statusText}`);
|
|
122
|
+
}
|
|
123
|
+
const text = await response.text();
|
|
124
|
+
const doneAt = Date.now();
|
|
125
|
+
debug('stepzen:extensions')(`[transpiler] fetched extensions (${text.length} bytes, ${doneAt - startedAt} ms)`);
|
|
126
|
+
return text;
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
130
|
+
debug('stepzen:extensions')(`[transpiler] attempt ${attempt}/${maxRetries} failed: ${lastError.message}`);
|
|
131
|
+
// Don't retry client errors
|
|
132
|
+
if (lastError instanceof NonRetryableError) {
|
|
133
|
+
throw lastError;
|
|
134
|
+
}
|
|
135
|
+
if (attempt < maxRetries) {
|
|
136
|
+
// Linear backoff: 1s, 2s, 3s
|
|
137
|
+
const delay = baseDelayMs * attempt;
|
|
138
|
+
debug('stepzen:extensions')(`[transpiler] retrying in ${delay}ms...`);
|
|
139
|
+
await new Promise(resolve => setTimeout(resolve, delay));
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
debug('stepzen:extensions')(`[transpiler] all ${maxRetries} attempts failed: ${lastError.message}`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
throw lastError ?? new Error('Failed to fetch StepZen extensions');
|
|
108
147
|
};
|
|
109
148
|
export const getSchema = async (directory, extensions) => {
|
|
110
149
|
const transpiled = await transpile(directory);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-helpers.js","sourceRoot":"","sources":["../../src/utils/merge-helpers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"merge-helpers.js","sourceRoot":"","sources":["../../src/utils/merge-helpers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stepzen/transpiler",
|
|
3
3
|
"description": "The StepZen transpiler",
|
|
4
|
-
"version": "0.60.0-experimental.
|
|
4
|
+
"version": "0.60.0-experimental.a6ad7dd",
|
|
5
5
|
"author": "Darren Waddell <darren@stepzen.com>",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"files": [
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@graphql-tools/merge": "^9.0.8",
|
|
26
|
-
"@stepzen/fetch": "0.60.0-experimental.
|
|
26
|
+
"@stepzen/fetch": "0.60.0-experimental.a6ad7dd",
|
|
27
27
|
"debug": "^4.3.7",
|
|
28
28
|
"dotenv": "^16.4.7",
|
|
29
29
|
"fs-extra": "^11.2.0",
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
"cross-spawn": "^7.0.6",
|
|
62
62
|
"lodash": "^4.18.0",
|
|
63
63
|
"minimatch": {
|
|
64
|
-
"brace-expansion": "^2.
|
|
64
|
+
"brace-expansion": "^2.1.2"
|
|
65
65
|
}
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "a6ad7ddea9690839346f14d721abd41b84add544"
|
|
68
68
|
}
|
|
@@ -17,6 +17,13 @@ import configure from '../actions/configure.js'
|
|
|
17
17
|
import transpile from '../actions/transpile.js'
|
|
18
18
|
import {rmtemp} from './rmtemp.js'
|
|
19
19
|
|
|
20
|
+
class NonRetryableError extends Error {
|
|
21
|
+
constructor(message: string) {
|
|
22
|
+
super(message)
|
|
23
|
+
this.name = 'NonRetryableError'
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
20
27
|
export const dedupeTempFolder = (dirpath: string) => {
|
|
21
28
|
do {
|
|
22
29
|
dirpath = replace(dirpath, os.tmpdir(), '')
|
|
@@ -129,22 +136,69 @@ export const getExtensions = async (): Promise<string> => {
|
|
|
129
136
|
const baseurl = STEPZEN_SERVER_URL.replace('{account}', 'stepzen')
|
|
130
137
|
const url = `${baseurl}/directives.graphql`
|
|
131
138
|
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
`[transpiler] fetching StepZen extensions from ${url}`,
|
|
135
|
-
)
|
|
139
|
+
const maxRetries = 3
|
|
140
|
+
const baseDelayMs = 1000
|
|
136
141
|
|
|
137
|
-
|
|
138
|
-
const text = await response.text()
|
|
142
|
+
let lastError: Error | undefined
|
|
139
143
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
144
|
+
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
145
|
+
const startedAt = Date.now()
|
|
146
|
+
|
|
147
|
+
try {
|
|
148
|
+
debug('stepzen:extensions')(
|
|
149
|
+
`[transpiler] fetching StepZen extensions from ${url} (attempt ${attempt}/${maxRetries})`,
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
const response = await fetch(url)
|
|
153
|
+
|
|
154
|
+
if (!response.ok) {
|
|
155
|
+
// Don't retry 4xx errors (client errors like 401, 403, 404)
|
|
156
|
+
if (response.status < 500) {
|
|
157
|
+
throw new NonRetryableError(
|
|
158
|
+
`HTTP ${response.status} ${response.statusText}`,
|
|
159
|
+
)
|
|
160
|
+
}
|
|
161
|
+
// Retry 5xx errors (server errors)
|
|
162
|
+
throw new Error(`HTTP ${response.status} ${response.statusText}`)
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
const text = await response.text()
|
|
166
|
+
|
|
167
|
+
const doneAt = Date.now()
|
|
168
|
+
debug('stepzen:extensions')(
|
|
169
|
+
`[transpiler] fetched extensions (${text.length} bytes, ${
|
|
170
|
+
doneAt - startedAt
|
|
171
|
+
} ms)`,
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
return text
|
|
175
|
+
} catch (error) {
|
|
176
|
+
lastError = error instanceof Error ? error : new Error(String(error))
|
|
177
|
+
|
|
178
|
+
debug('stepzen:extensions')(
|
|
179
|
+
`[transpiler] attempt ${attempt}/${maxRetries} failed: ${lastError.message}`,
|
|
180
|
+
)
|
|
181
|
+
|
|
182
|
+
// Don't retry client errors
|
|
183
|
+
if (lastError instanceof NonRetryableError) {
|
|
184
|
+
throw lastError
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (attempt < maxRetries) {
|
|
188
|
+
// Linear backoff: 1s, 2s, 3s
|
|
189
|
+
const delay = baseDelayMs * attempt
|
|
190
|
+
debug('stepzen:extensions')(`[transpiler] retrying in ${delay}ms...`)
|
|
191
|
+
|
|
192
|
+
await new Promise(resolve => setTimeout(resolve, delay))
|
|
193
|
+
} else {
|
|
194
|
+
debug('stepzen:extensions')(
|
|
195
|
+
`[transpiler] all ${maxRetries} attempts failed: ${lastError.message}`,
|
|
196
|
+
)
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
146
200
|
|
|
147
|
-
|
|
201
|
+
throw lastError ?? new Error('Failed to fetch StepZen extensions')
|
|
148
202
|
}
|
|
149
203
|
|
|
150
204
|
export const getSchema = async (
|