@stepzen/transpiler 0.60.0-experimental.6325a56 → 0.60.0-experimental.68c6fc3

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.6325a56",
4
+ "version": "0.60.0-experimental.68c6fc3",
5
5
  "author": "Darren Waddell <darren@stepzen.com>",
6
6
  "license": "MIT",
7
7
  "files": [
@@ -22,47 +22,47 @@
22
22
  "posttest": "prettier . --check"
23
23
  },
24
24
  "dependencies": {
25
- "@graphql-tools/merge": "^9.0.8",
26
- "@stepzen/fetch": "0.60.0-experimental.6325a56",
27
- "debug": "^4.3.7",
28
- "dotenv": "^16.4.7",
29
- "fs-extra": "^11.2.0",
25
+ "@graphql-tools/merge": "^9.2.4",
26
+ "@stepzen/fetch": "0.60.0-experimental.68c6fc3",
27
+ "debug": "^4.4.3",
28
+ "dotenv": "^16.6.1",
29
+ "fs-extra": "^11.4.0",
30
30
  "glob": "^10.5.0",
31
- "graphql": "^16.9.0",
32
- "inquirer": "^8.2.6",
33
- "lodash-es": "^4.18.0",
34
- "prettier": "^2.8.3",
31
+ "graphql": "^16.14.2",
32
+ "inquirer": "^8.2.7",
33
+ "lodash-es": "^4.18.1",
34
+ "prettier": "^2.8.8",
35
35
  "shelljs": "^0.10.0",
36
- "yaml": "^2.6.1"
36
+ "yaml": "^2.9.1"
37
37
  },
38
38
  "devDependencies": {
39
- "@types/chai": "^5.0.0",
40
- "@types/debug": "^4.1.12",
39
+ "@types/chai": "^5.2.3",
40
+ "@types/debug": "^4.1.13",
41
41
  "@types/fs-extra": "^11.0.4",
42
42
  "@types/glob": "^8.1.0",
43
- "@types/inquirer": "^8.2.10",
43
+ "@types/inquirer": "^8.2.13",
44
44
  "@types/lodash-es": "^4.17.12",
45
45
  "@types/mocha": "^10.0.10",
46
46
  "@types/mock-fs": "^4.13.4",
47
- "@types/node-fetch": "^2.6.12",
47
+ "@types/node-fetch": "^2.6.13",
48
48
  "@types/prettier": "^2.7.3",
49
49
  "@types/shelljs": "^0.10.0",
50
50
  "c8": "^10.1.3",
51
51
  "chai": "^4.5.0",
52
52
  "fancy-test": "^1.4.10",
53
- "license-checker-evergreen": "^6.2.0",
53
+ "license-checker-evergreen": "^6.3.1",
54
54
  "mocha": "^10.8.2",
55
- "mock-fs": "^5.3.0",
55
+ "mock-fs": "^5.5.0",
56
56
  "node-ts": "^5.1.2",
57
57
  "ts-node": "^10.9.2",
58
- "typescript": "^5.7.3"
58
+ "typescript": "^5.9.3"
59
59
  },
60
60
  "overrides": {
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": "^5.0.8"
65
65
  }
66
66
  },
67
- "gitHead": "6325a5659f66ace2821b9ae23f6015ac95ac370a"
67
+ "gitHead": "68c6fc379ec5b06f961a5cec5430cdb31253149e"
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 (