@dreamboard-games/cli 0.1.30-alpha.31 → 0.1.30-alpha.33
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 +8 -8
- package/dist/agent-verifier/agent-workspace-verifier.mjs +109 -13
- package/dist/agent-verifier/agent-workspace-verifier.mjs.map +1 -1
- package/dist/agent-verifier/{chunk-NBRUEJUK.mjs → chunk-OQ6OGY5D.mjs} +3 -3
- package/dist/agent-verifier/{chunk-NBRUEJUK.mjs.map → chunk-OQ6OGY5D.mjs.map} +1 -1
- package/dist/agent-verifier/{materialize-workspace-MAGKDMK5.mjs → materialize-workspace-3ECF4EYD.mjs} +2 -2
- package/dist/agent-verifier/{static-scaffold-CLRRWXON.mjs → static-scaffold-XZ4FS4RR.mjs} +2 -2
- package/dist/authoring-compatibility-internal.js +1 -1
- package/dist/{chunk-YNJVKC2T.js → chunk-BN5UBK47.js} +3 -3
- package/dist/{chunk-YNJVKC2T.js.map → chunk-BN5UBK47.js.map} +1 -1
- package/dist/{chunk-X244CUU4.js → chunk-E67GR2SL.js} +111 -14
- package/dist/chunk-E67GR2SL.js.map +1 -0
- package/dist/index.js +23 -20
- package/dist/index.js.map +1 -1
- package/dist/internal.js +2 -2
- package/package.json +1 -1
- package/release/authoring-release-set.json +2 -2
- package/skills/dreamboard/SKILL.md +3 -3
- package/skills/dreamboard/references/building-your-first-game.md +1 -1
- package/skills/dreamboard/references/cli.md +20 -19
- package/skills/dreamboard/references/quickstart.md +3 -3
- package/dist/chunk-X244CUU4.js.map +0 -1
- /package/dist/agent-verifier/{materialize-workspace-MAGKDMK5.mjs.map → materialize-workspace-3ECF4EYD.mjs.map} +0 -0
- /package/dist/agent-verifier/{static-scaffold-CLRRWXON.mjs.map → static-scaffold-XZ4FS4RR.mjs.map} +0 -0
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
writeWorkspaceJsonFile,
|
|
25
25
|
writeWorkspaceTextFile,
|
|
26
26
|
zProblemDetails
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-BN5UBK47.js";
|
|
28
28
|
import {
|
|
29
29
|
getStoredSession,
|
|
30
30
|
loadGlobalConfig,
|
|
@@ -40,9 +40,16 @@ import {
|
|
|
40
40
|
} from "./chunk-EQNBQVIW.js";
|
|
41
41
|
|
|
42
42
|
// src/build-target.ts
|
|
43
|
-
var injectedBuildChannel = true ? "
|
|
43
|
+
var injectedBuildChannel = true ? "development" : void 0;
|
|
44
|
+
var injectedPackageVersion = true ? "0.1.30-alpha.33" : void 0;
|
|
44
45
|
var BUILD_CHANNEL = injectedBuildChannel === "published" ? "published" : "development";
|
|
46
|
+
var PACKAGE_VERSION = injectedPackageVersion ?? "0.0.0-development";
|
|
47
|
+
function isAlphaReleaseVersion(version) {
|
|
48
|
+
return /(?:^|-|\.)alpha(?:$|-|\.)/.test(version);
|
|
49
|
+
}
|
|
45
50
|
var IS_PUBLISHED_BUILD = BUILD_CHANNEL === "published";
|
|
51
|
+
var IS_ALPHA_RELEASE = isAlphaReleaseVersion(PACKAGE_VERSION);
|
|
52
|
+
var CAN_SELECT_ENVIRONMENT = !IS_PUBLISHED_BUILD || IS_ALPHA_RELEASE;
|
|
46
53
|
var PUBLISHED_ENVIRONMENT = "prod";
|
|
47
54
|
|
|
48
55
|
// src/auth/refresh-error.ts
|
|
@@ -563,15 +570,15 @@ function resolveConfig(globalConfig, flags, project, credentials) {
|
|
|
563
570
|
if (IS_PUBLISHED_BUILD) {
|
|
564
571
|
assertPublicRuntimeFlags(flags);
|
|
565
572
|
}
|
|
566
|
-
const envEnvironment =
|
|
567
|
-
const projectEnvironment =
|
|
568
|
-
const environment =
|
|
573
|
+
const envEnvironment = CAN_SELECT_ENVIRONMENT ? environmentFromProcess() : void 0;
|
|
574
|
+
const projectEnvironment = CAN_SELECT_ENVIRONMENT ? project?.environment : void 0;
|
|
575
|
+
const environment = CAN_SELECT_ENVIRONMENT ? flags.env || envEnvironment || projectEnvironment || globalConfig.environment || (IS_PUBLISHED_BUILD ? PUBLISHED_ENVIRONMENT : "staging") : PUBLISHED_ENVIRONMENT;
|
|
569
576
|
const envConfig = ENVIRONMENT_CONFIGS[environment];
|
|
570
577
|
const publishedEnvConfig = ENVIRONMENT_CONFIGS[PUBLISHED_ENVIRONMENT];
|
|
571
|
-
const hasExplicitEnvironmentOverride =
|
|
572
|
-
const resolvedApiBaseUrl = IS_PUBLISHED_BUILD ? publishedEnvConfig?.apiBaseUrl ?? DEFAULT_API_BASE_URL : hasExplicitEnvironmentOverride ? projectLocalBaseUrl(project?.apiBaseUrl, environment) || envConfig?.apiBaseUrl || DEFAULT_API_BASE_URL : project?.apiBaseUrl || envConfig?.apiBaseUrl || DEFAULT_API_BASE_URL;
|
|
578
|
+
const hasExplicitEnvironmentOverride = CAN_SELECT_ENVIRONMENT && Boolean(flags.env || envEnvironment || projectEnvironment);
|
|
579
|
+
const resolvedApiBaseUrl = IS_PUBLISHED_BUILD && !CAN_SELECT_ENVIRONMENT ? publishedEnvConfig?.apiBaseUrl ?? DEFAULT_API_BASE_URL : hasExplicitEnvironmentOverride ? projectLocalBaseUrl(project?.apiBaseUrl, environment) || envConfig?.apiBaseUrl || DEFAULT_API_BASE_URL : project?.apiBaseUrl || envConfig?.apiBaseUrl || DEFAULT_API_BASE_URL;
|
|
573
580
|
const apiBaseUrl = valueOrUndefined(process.env.DREAMBOARD_API_BASE_URL) ?? resolvedApiBaseUrl;
|
|
574
|
-
const resolvedWebBaseUrl = IS_PUBLISHED_BUILD ? publishedEnvConfig?.webBaseUrl ?? DEFAULT_WEB_BASE_URL : hasExplicitEnvironmentOverride ? projectLocalBaseUrl(project?.webBaseUrl, environment) || envConfig?.webBaseUrl || DEFAULT_WEB_BASE_URL : project?.webBaseUrl || envConfig?.webBaseUrl || DEFAULT_WEB_BASE_URL;
|
|
581
|
+
const resolvedWebBaseUrl = IS_PUBLISHED_BUILD && !CAN_SELECT_ENVIRONMENT ? publishedEnvConfig?.webBaseUrl ?? DEFAULT_WEB_BASE_URL : hasExplicitEnvironmentOverride ? projectLocalBaseUrl(project?.webBaseUrl, environment) || envConfig?.webBaseUrl || DEFAULT_WEB_BASE_URL : project?.webBaseUrl || envConfig?.webBaseUrl || DEFAULT_WEB_BASE_URL;
|
|
575
582
|
const webBaseUrl = valueOrUndefined(process.env.DREAMBOARD_WEB_BASE_URL) ?? resolvedWebBaseUrl;
|
|
576
583
|
const snapshot = buildCredentialSnapshot(flags, credentials, environment);
|
|
577
584
|
const oauthConfig = resolveEnvironmentOAuthConfig(environment, envConfig);
|
|
@@ -676,9 +683,10 @@ function projectLocalBaseUrl(rawUrl, environment) {
|
|
|
676
683
|
return void 0;
|
|
677
684
|
}
|
|
678
685
|
}
|
|
679
|
-
function assertPublicRuntimeFlags(flags) {
|
|
680
|
-
const
|
|
681
|
-
|
|
686
|
+
function assertPublicRuntimeFlags(flags, options = {}) {
|
|
687
|
+
const canSelectEnvironment = options.canSelectEnvironment ?? CAN_SELECT_ENVIRONMENT;
|
|
688
|
+
const argv = options.argv ?? process.argv.slice(2);
|
|
689
|
+
if (!canSelectEnvironment && (flags.env || argv.includes("--env"))) {
|
|
682
690
|
throw new Error(
|
|
683
691
|
"The published Dreamboard CLI is production-only and does not accept `--env`."
|
|
684
692
|
);
|
|
@@ -708,12 +716,18 @@ function createRetryingReadFetch(fetchImpl) {
|
|
|
708
716
|
return (async (input, init) => {
|
|
709
717
|
const method = resolveFetchMethod(input, init);
|
|
710
718
|
if (method !== "GET" && method !== "HEAD") {
|
|
711
|
-
return fetchImpl
|
|
719
|
+
return fetchWithOptionalTrace(fetchImpl, input, init, {
|
|
720
|
+
attempt: 0,
|
|
721
|
+
willRetry: false
|
|
722
|
+
});
|
|
712
723
|
}
|
|
713
724
|
let lastError;
|
|
714
725
|
for (let attempt = 0; attempt <= TRANSIENT_READ_RETRY_DELAYS_MS.length; attempt += 1) {
|
|
715
726
|
try {
|
|
716
|
-
return await fetchImpl
|
|
727
|
+
return await fetchWithOptionalTrace(fetchImpl, input, init, {
|
|
728
|
+
attempt,
|
|
729
|
+
willRetry: attempt < TRANSIENT_READ_RETRY_DELAYS_MS.length
|
|
730
|
+
});
|
|
717
731
|
} catch (error) {
|
|
718
732
|
lastError = error;
|
|
719
733
|
if (attempt >= TRANSIENT_READ_RETRY_DELAYS_MS.length || !isTransientFetchError(error)) {
|
|
@@ -725,6 +739,88 @@ function createRetryingReadFetch(fetchImpl) {
|
|
|
725
739
|
throw lastError;
|
|
726
740
|
});
|
|
727
741
|
}
|
|
742
|
+
async function fetchWithOptionalTrace(fetchImpl, input, init, options) {
|
|
743
|
+
if (!isHttpTraceEnabled()) {
|
|
744
|
+
return fetchImpl(input, init);
|
|
745
|
+
}
|
|
746
|
+
const request = describeRequest(input, init);
|
|
747
|
+
const startedAt = Date.now();
|
|
748
|
+
try {
|
|
749
|
+
const response = await fetchImpl(input, init);
|
|
750
|
+
writeHttpTrace({
|
|
751
|
+
...request,
|
|
752
|
+
attempt: options.attempt,
|
|
753
|
+
status: response.status,
|
|
754
|
+
durationMs: Date.now() - startedAt
|
|
755
|
+
});
|
|
756
|
+
return response;
|
|
757
|
+
} catch (error) {
|
|
758
|
+
writeHttpTrace({
|
|
759
|
+
...request,
|
|
760
|
+
attempt: options.attempt,
|
|
761
|
+
durationMs: Date.now() - startedAt,
|
|
762
|
+
error: error instanceof Error ? error.name : "UnknownError",
|
|
763
|
+
willRetry: options.willRetry
|
|
764
|
+
});
|
|
765
|
+
throw error;
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
function isHttpTraceEnabled() {
|
|
769
|
+
return process.env.DREAMBOARD_CLI_HTTP_TRACE === "1";
|
|
770
|
+
}
|
|
771
|
+
function describeRequest(input, init) {
|
|
772
|
+
return {
|
|
773
|
+
method: resolveFetchMethod(input, init),
|
|
774
|
+
url: redactUrl(input),
|
|
775
|
+
hasAuthorization: hasAuthorizationHeader(input, init)
|
|
776
|
+
};
|
|
777
|
+
}
|
|
778
|
+
function redactUrl(input) {
|
|
779
|
+
const rawUrl = typeof input === "string" ? input : input instanceof URL ? input.toString() : input.url;
|
|
780
|
+
try {
|
|
781
|
+
const url = new URL(rawUrl);
|
|
782
|
+
return `${url.origin}${url.pathname}`;
|
|
783
|
+
} catch {
|
|
784
|
+
return "<unparseable-url>";
|
|
785
|
+
}
|
|
786
|
+
}
|
|
787
|
+
function hasAuthorizationHeader(input, init) {
|
|
788
|
+
return headersContainAuthorization(init?.headers) || typeof Request !== "undefined" && input instanceof Request && input.headers.has("Authorization");
|
|
789
|
+
}
|
|
790
|
+
function headersContainAuthorization(headers) {
|
|
791
|
+
if (!headers) {
|
|
792
|
+
return false;
|
|
793
|
+
}
|
|
794
|
+
if (headers instanceof Headers) {
|
|
795
|
+
return headers.has("Authorization");
|
|
796
|
+
}
|
|
797
|
+
if (Array.isArray(headers)) {
|
|
798
|
+
return headers.some(([name]) => name.toLowerCase() === "authorization");
|
|
799
|
+
}
|
|
800
|
+
return Object.keys(headers).some(
|
|
801
|
+
(name) => name.toLowerCase() === "authorization"
|
|
802
|
+
);
|
|
803
|
+
}
|
|
804
|
+
function writeHttpTrace(event) {
|
|
805
|
+
const parts = [
|
|
806
|
+
"[dreamboard-cli:http]",
|
|
807
|
+
`method=${event.method}`,
|
|
808
|
+
`url=${event.url}`,
|
|
809
|
+
`auth=${event.hasAuthorization ? "present" : "missing"}`,
|
|
810
|
+
`attempt=${event.attempt + 1}`,
|
|
811
|
+
`durationMs=${event.durationMs}`
|
|
812
|
+
];
|
|
813
|
+
if (typeof event.status === "number") {
|
|
814
|
+
parts.push(`status=${event.status}`);
|
|
815
|
+
}
|
|
816
|
+
if (event.error) {
|
|
817
|
+
parts.push(`error=${event.error}`);
|
|
818
|
+
}
|
|
819
|
+
if (event.willRetry) {
|
|
820
|
+
parts.push("willRetry=true");
|
|
821
|
+
}
|
|
822
|
+
console.error(parts.join(" "));
|
|
823
|
+
}
|
|
728
824
|
function resolveFetchMethod(input, init) {
|
|
729
825
|
const method = init?.method ?? (typeof Request !== "undefined" && input instanceof Request ? input.method : void 0);
|
|
730
826
|
return (method ?? "GET").toUpperCase();
|
|
@@ -3768,6 +3864,7 @@ export {
|
|
|
3768
3864
|
exchangeClerkOAuthCode,
|
|
3769
3865
|
createUserSessionManager,
|
|
3770
3866
|
IS_PUBLISHED_BUILD,
|
|
3867
|
+
CAN_SELECT_ENVIRONMENT,
|
|
3771
3868
|
PUBLISHED_ENVIRONMENT,
|
|
3772
3869
|
resolveLocalHarnessAccessToken,
|
|
3773
3870
|
resolveConfig,
|
|
@@ -3812,4 +3909,4 @@ export {
|
|
|
3812
3909
|
isLocalMaintainerRegistryEnabled,
|
|
3813
3910
|
didLocalMaintainerSnapshotChange
|
|
3814
3911
|
};
|
|
3815
|
-
//# sourceMappingURL=chunk-
|
|
3912
|
+
//# sourceMappingURL=chunk-E67GR2SL.js.map
|