@wix/ditto-codegen-public 1.0.454 → 1.0.456
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/out.js +54 -53
- package/package.json +2 -2
package/dist/out.js
CHANGED
|
@@ -10581,46 +10581,6 @@ var require_wixTokenRefresh = __commonJS({
|
|
|
10581
10581
|
}
|
|
10582
10582
|
});
|
|
10583
10583
|
|
|
10584
|
-
// dist/experiments.js
|
|
10585
|
-
var require_experiments = __commonJS({
|
|
10586
|
-
"dist/experiments.js"(exports2) {
|
|
10587
|
-
"use strict";
|
|
10588
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
10589
|
-
exports2.FILTERED_JOB_POLLING = void 0;
|
|
10590
|
-
exports2.getExperimentVariant = getExperimentVariant;
|
|
10591
|
-
exports2.isExperimentEnabled = isExperimentEnabled;
|
|
10592
|
-
var logger_12 = require_logger();
|
|
10593
|
-
exports2.FILTERED_JOB_POLLING = "codegenFilteredJobPolling";
|
|
10594
|
-
var parsedExperiments = null;
|
|
10595
|
-
function getExperiments() {
|
|
10596
|
-
if (parsedExperiments !== null) {
|
|
10597
|
-
return parsedExperiments;
|
|
10598
|
-
}
|
|
10599
|
-
const raw = process.env.CODEGEN_EXPERIMENTS;
|
|
10600
|
-
if (!raw) {
|
|
10601
|
-
parsedExperiments = {};
|
|
10602
|
-
return parsedExperiments;
|
|
10603
|
-
}
|
|
10604
|
-
try {
|
|
10605
|
-
parsedExperiments = JSON.parse(raw);
|
|
10606
|
-
} catch (error) {
|
|
10607
|
-
logger_12.logger.error("[Experiments] Failed to parse CODEGEN_EXPERIMENTS", {
|
|
10608
|
-
error: error instanceof Error ? error.message : String(error)
|
|
10609
|
-
});
|
|
10610
|
-
parsedExperiments = {};
|
|
10611
|
-
}
|
|
10612
|
-
return parsedExperiments;
|
|
10613
|
-
}
|
|
10614
|
-
function getExperimentVariant(specName) {
|
|
10615
|
-
return getExperiments()[specName] ?? "A";
|
|
10616
|
-
}
|
|
10617
|
-
function isExperimentEnabled(specName) {
|
|
10618
|
-
const variant = getExperimentVariant(specName);
|
|
10619
|
-
return variant === "true" || variant !== "A" && variant !== "false";
|
|
10620
|
-
}
|
|
10621
|
-
}
|
|
10622
|
-
});
|
|
10623
|
-
|
|
10624
10584
|
// ../codegen-types/dist/errors/ErrorTypes.js
|
|
10625
10585
|
var require_ErrorTypes = __commonJS({
|
|
10626
10586
|
"../codegen-types/dist/errors/ErrorTypes.js"(exports2) {
|
|
@@ -11049,7 +11009,7 @@ var require_CodeGenService = __commonJS({
|
|
|
11049
11009
|
"dist/services/CodeGenService.js"(exports2) {
|
|
11050
11010
|
"use strict";
|
|
11051
11011
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
11052
|
-
exports2.CodeGenService = exports2.FETCH_TIMEOUT_MS = exports2.REQUEST_TIMEOUT_MS = exports2.JobsSortOrder = exports2.TaskKind = exports2.Status = void 0;
|
|
11012
|
+
exports2.CodeGenService = exports2.AUTH_REFRESH_COOLDOWN_MS = exports2.FETCH_TIMEOUT_MS = exports2.REQUEST_TIMEOUT_MS = exports2.JobsSortOrder = exports2.TaskKind = exports2.Status = void 0;
|
|
11053
11013
|
exports2.createCodeGenErrorHandler = createCodeGenErrorHandler;
|
|
11054
11014
|
var http_client_1 = require_index_node();
|
|
11055
11015
|
var http_1 = require_http_impl();
|
|
@@ -11065,7 +11025,6 @@ var require_CodeGenService = __commonJS({
|
|
|
11065
11025
|
return types_1.JobsSortOrder;
|
|
11066
11026
|
} });
|
|
11067
11027
|
var logger_12 = require_logger();
|
|
11068
|
-
var experiments_1 = require_experiments();
|
|
11069
11028
|
var ditto_codegen_types_12 = require_dist4();
|
|
11070
11029
|
var FILE_OPERATION = {
|
|
11071
11030
|
[ditto_codegen_types_12.ExtensionGenerationOperation.INSERT]: types_1.FileOperation.INSERT,
|
|
@@ -11141,6 +11100,8 @@ var require_CodeGenService = __commonJS({
|
|
|
11141
11100
|
}
|
|
11142
11101
|
exports2.REQUEST_TIMEOUT_MS = 12e4;
|
|
11143
11102
|
exports2.FETCH_TIMEOUT_MS = 3e4;
|
|
11103
|
+
var AUTH_FAILURE_STATUSES = /* @__PURE__ */ new Set([401, 403]);
|
|
11104
|
+
exports2.AUTH_REFRESH_COOLDOWN_MS = 6e4;
|
|
11144
11105
|
function isNotFound(error) {
|
|
11145
11106
|
return http_client_1.HttpClient.isHttpError(error) && error.response?.status === 404;
|
|
11146
11107
|
}
|
|
@@ -11151,27 +11112,31 @@ var require_CodeGenService = __commonJS({
|
|
|
11151
11112
|
constructor(projectId, httpClient) {
|
|
11152
11113
|
this.projectId = projectId;
|
|
11153
11114
|
this.accessToken = process.env.WIX_ACCESS_TOKEN;
|
|
11115
|
+
this.lastAuthRefreshAt = 0;
|
|
11116
|
+
this.isAuthRefreshFailing = false;
|
|
11154
11117
|
this.sandboxId = process.env.SANDBOX_ID;
|
|
11155
11118
|
this.refreshAccessToken = async () => {
|
|
11156
|
-
|
|
11157
|
-
|
|
11158
|
-
|
|
11119
|
+
if (!this.inFlightRefresh) {
|
|
11120
|
+
this.inFlightRefresh = this.mintAccessToken();
|
|
11121
|
+
}
|
|
11122
|
+
return this.inFlightRefresh;
|
|
11159
11123
|
};
|
|
11160
11124
|
this.request = async (req, timeout) => {
|
|
11161
11125
|
const build = () => this.withTimeout(this.withAuth(req), timeout);
|
|
11126
|
+
const attemptedToken = this.accessToken;
|
|
11162
11127
|
try {
|
|
11163
11128
|
return await this.httpClient.request(build());
|
|
11164
11129
|
} catch (err) {
|
|
11165
|
-
if (!this.
|
|
11130
|
+
if (!this.isAuthFailure(err))
|
|
11131
|
+
throw err;
|
|
11132
|
+
if (!await this.prepareAuthRetry(attemptedToken))
|
|
11166
11133
|
throw err;
|
|
11167
|
-
logger_12.logger.warn("[CodeGenService] 401 received, refreshing token and retrying once");
|
|
11168
|
-
await this.refreshAccessToken();
|
|
11169
11134
|
return await this.httpClient.request(build());
|
|
11170
11135
|
}
|
|
11171
11136
|
};
|
|
11172
11137
|
this.fetchPendingJobs = async () => {
|
|
11173
11138
|
const { sandboxId } = this;
|
|
11174
|
-
const filtered = sandboxId
|
|
11139
|
+
const filtered = sandboxId ? {
|
|
11175
11140
|
projectId: this.projectId,
|
|
11176
11141
|
filter: { status: types_1.Status.PENDING, sandboxId },
|
|
11177
11142
|
paging: { limit: 1 },
|
|
@@ -11379,13 +11344,49 @@ var require_CodeGenService = __commonJS({
|
|
|
11379
11344
|
}
|
|
11380
11345
|
setAccessToken(token) {
|
|
11381
11346
|
this.accessToken = token;
|
|
11347
|
+
this.onAccessTokenChanged?.(token);
|
|
11348
|
+
}
|
|
11349
|
+
/** Inverted wiring: `opencode-integration/config` imports this module. */
|
|
11350
|
+
setAccessTokenListener(listener) {
|
|
11351
|
+
this.onAccessTokenChanged = listener;
|
|
11382
11352
|
}
|
|
11383
|
-
|
|
11353
|
+
async mintAccessToken() {
|
|
11354
|
+
this.lastAuthRefreshAt = Date.now();
|
|
11355
|
+
try {
|
|
11356
|
+
const token = await (0, wixTokenRefresh_1.refreshWixAccessToken)();
|
|
11357
|
+
this.isAuthRefreshFailing = false;
|
|
11358
|
+
this.setAccessToken(token);
|
|
11359
|
+
return token;
|
|
11360
|
+
} catch (err) {
|
|
11361
|
+
this.isAuthRefreshFailing = true;
|
|
11362
|
+
throw err;
|
|
11363
|
+
} finally {
|
|
11364
|
+
this.inFlightRefresh = void 0;
|
|
11365
|
+
}
|
|
11366
|
+
}
|
|
11367
|
+
isAuthFailure(error) {
|
|
11384
11368
|
if (!http_client_1.HttpClient.isHttpError(error))
|
|
11385
11369
|
return false;
|
|
11386
11370
|
if (this.httpClient.isCancel(error))
|
|
11387
11371
|
return false;
|
|
11388
|
-
|
|
11372
|
+
const status = error.response?.status;
|
|
11373
|
+
return status !== void 0 && AUTH_FAILURE_STATUSES.has(status);
|
|
11374
|
+
}
|
|
11375
|
+
async prepareAuthRetry(attemptedToken) {
|
|
11376
|
+
if (this.accessToken !== attemptedToken)
|
|
11377
|
+
return true;
|
|
11378
|
+
if (this.inFlightRefresh) {
|
|
11379
|
+
await this.inFlightRefresh;
|
|
11380
|
+
return true;
|
|
11381
|
+
}
|
|
11382
|
+
const tokenAgeMs = Date.now() - this.lastAuthRefreshAt;
|
|
11383
|
+
if (tokenAgeMs < exports2.AUTH_REFRESH_COOLDOWN_MS) {
|
|
11384
|
+
logger_12.logger.warn(this.isAuthRefreshFailing ? "[CodeGenService] auth failure while token refresh is failing, not retrying" : "[CodeGenService] auth failure on a freshly refreshed token, not retrying", { tokenAgeMs });
|
|
11385
|
+
return false;
|
|
11386
|
+
}
|
|
11387
|
+
logger_12.logger.info("[CodeGenService] auth failure received, refreshing token and retrying once", { tokenAgeMs });
|
|
11388
|
+
await this.refreshAccessToken();
|
|
11389
|
+
return true;
|
|
11389
11390
|
}
|
|
11390
11391
|
withAuth(req) {
|
|
11391
11392
|
return mapRequest(req, (r) => ({
|
|
@@ -24676,8 +24677,7 @@ var runPendingJob = async (job, logPrefix) => {
|
|
|
24676
24677
|
}
|
|
24677
24678
|
const jobId = job.id;
|
|
24678
24679
|
logger_1.logger.info(`${logPrefix} Selected job`, { jobId });
|
|
24679
|
-
|
|
24680
|
-
(0, config_1.setCurrentAccessToken)(freshToken);
|
|
24680
|
+
await codeGenerationService_1.codeGenerationService.refreshAccessToken();
|
|
24681
24681
|
await codeGenerationService_1.codeGenerationService.markJobAsRuninng(jobId);
|
|
24682
24682
|
await processJob(job);
|
|
24683
24683
|
await codeGenerationService_1.codeGenerationService.markJobAsCompleted(jobId);
|
|
@@ -24741,6 +24741,7 @@ async function main(ctx) {
|
|
|
24741
24741
|
codeIdentifier: ctx.codeIdentifier,
|
|
24742
24742
|
metasiteId: ctx.metasiteId
|
|
24743
24743
|
});
|
|
24744
|
+
codeGenerationService_1.codeGenerationService.setAccessTokenListener(config_1.setCurrentAccessToken);
|
|
24744
24745
|
await initOpenCode();
|
|
24745
24746
|
const nudgeListenerServer = new nudge_listener_server_1.NudgeListenerServer({
|
|
24746
24747
|
fetchPendingJobs: () => codeGenerationService_1.codeGenerationService.fetchPendingJobs(),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/ditto-codegen-public",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.456",
|
|
4
4
|
"description": "AI-powered Wix CLI app generator - standalone executable",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "node build.mjs",
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"esbuild": "^0.27.2",
|
|
30
30
|
"vitest": "^4.0.16"
|
|
31
31
|
},
|
|
32
|
-
"falconPackageHash": "
|
|
32
|
+
"falconPackageHash": "b4e524a284525e70d74a19bc69db923c47fac5ed6de358b32ae8f17e"
|
|
33
33
|
}
|