@stepzen/transpiler 0.60.0-experimental.2c0bc73 → 0.60.0-experimental.47e5246

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;AAgBlE,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,CAoBpD,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"}
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 startedAt = new Date().getTime();
102
- debug('stepzen:extensions')(`[transpiler] fetching StepZen extensions from ${url}`);
103
- const response = await fetch(url);
104
- const text = await response.text();
105
- const doneAt = new Date().getTime();
106
- debug('stepzen:extensions')(`[transpiler] fetched extensions (${text.length} bytes, ${doneAt - startedAt} ms)`);
107
- return text;
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.2c0bc73",
4
+ "version": "0.60.0-experimental.47e5246",
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.2c0bc73",
26
+ "@stepzen/fetch": "0.60.0-experimental.47e5246",
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.0.2"
64
+ "brace-expansion": "^2.1.2"
65
65
  }
66
66
  },
67
- "gitHead": "2c0bc7358150840286da6dc22e728fbad5e8f3e4"
67
+ "gitHead": "47e524624ca2ac1d23b62ce5d09c895f8a0fb797"
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 startedAt = new Date().getTime()
133
- debug('stepzen:extensions')(
134
- `[transpiler] fetching StepZen extensions from ${url}`,
135
- )
139
+ const maxRetries = 3
140
+ const baseDelayMs = 1000
136
141
 
137
- const response = await fetch(url)
138
- const text = await response.text()
142
+ let lastError: Error | undefined
139
143
 
140
- const doneAt = new Date().getTime()
141
- debug('stepzen:extensions')(
142
- `[transpiler] fetched extensions (${text.length} bytes, ${
143
- doneAt - startedAt
144
- } ms)`,
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
- return text
201
+ throw lastError ?? new Error('Failed to fetch StepZen extensions')
148
202
  }
149
203
 
150
204
  export const getSchema = async (