downcity 1.1.239 → 1.1.241
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/bin/federation/deploy/runtime/QueueResolver.d.ts +3 -0
- package/bin/federation/deploy/runtime/QueueResolver.d.ts.map +1 -1
- package/bin/federation/deploy/runtime/QueueResolver.js +54 -11
- package/bin/federation/deploy/runtime/QueueResolver.js.map +1 -1
- package/bin/federation/types/FederationDeployRuntime.d.ts +1 -1
- package/bin/federation/types/FederationDeployRuntime.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -24,6 +24,9 @@ export interface ResolveQueueResult {
|
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* 确认 Queue 存在,必要时创建。
|
|
27
|
+
*
|
|
28
|
+
* dry-run 模式不会创建远程 Queue,也不需要解析远程 id;如果 Queue 不存在,
|
|
29
|
+
* 只返回 pending 摘要,让 Wrangler dry-run 继续验证临时 binding 配置。
|
|
27
30
|
*/
|
|
28
31
|
export declare function resolveQueue(params: ResolveQueueParams): Promise<ResolveQueueResult>;
|
|
29
32
|
//# sourceMappingURL=QueueResolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueueResolver.d.ts","sourceRoot":"","sources":["../../../../src/federation/deploy/runtime/QueueResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"QueueResolver.d.ts","sourceRoot":"","sources":["../../../../src/federation/deploy/runtime/QueueResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,2BAA2B,EAC5B,MAAM,+CAA+C,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AAG5F,kBAAkB;AAClB,MAAM,WAAW,kBAAkB;IACjC,mBAAmB;IACnB,WAAW,EAAE,2BAA2B,CAAC;IACzC,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,kBAAkB;AAClB,MAAM,WAAW,kBAAkB;IACjC,qBAAqB;IACrB,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CA+C7B"}
|
|
@@ -6,10 +6,12 @@
|
|
|
6
6
|
* - 用户只需要在 `federation.json.resources.queue` 声明稳定资源名。
|
|
7
7
|
* - Queue 没有需要写入项目配置的 id,Wrangler 配置只绑定 queue name。
|
|
8
8
|
*/
|
|
9
|
-
import { CliError } from "../../../shared/CliError.js";
|
|
10
9
|
import { runCommand } from "./CommandRunner.js";
|
|
11
10
|
/**
|
|
12
11
|
* 确认 Queue 存在,必要时创建。
|
|
12
|
+
*
|
|
13
|
+
* dry-run 模式不会创建远程 Queue,也不需要解析远程 id;如果 Queue 不存在,
|
|
14
|
+
* 只返回 pending 摘要,让 Wrangler dry-run 继续验证临时 binding 配置。
|
|
13
15
|
*/
|
|
14
16
|
export async function resolveQueue(params) {
|
|
15
17
|
const queue = params.config_file.config.resources.queue;
|
|
@@ -34,11 +36,12 @@ export async function resolveQueue(params) {
|
|
|
34
36
|
};
|
|
35
37
|
}
|
|
36
38
|
if (!create_if_missing) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
return {
|
|
40
|
+
summary: {
|
|
41
|
+
name: queue_name,
|
|
42
|
+
status: "pending",
|
|
43
|
+
},
|
|
44
|
+
};
|
|
42
45
|
}
|
|
43
46
|
await runCommand({
|
|
44
47
|
label: "Create Cloudflare Queue",
|
|
@@ -60,26 +63,66 @@ export async function resolveQueue(params) {
|
|
|
60
63
|
async function findExistingQueue(params) {
|
|
61
64
|
const output = await runCommand({
|
|
62
65
|
label: "List Cloudflare Queues",
|
|
63
|
-
command: "pnpm exec wrangler queues list
|
|
66
|
+
command: "pnpm exec wrangler queues list",
|
|
64
67
|
cwd: params.project_dir,
|
|
65
68
|
env: { CLOUDFLARE_ACCOUNT_ID: params.account_id },
|
|
66
69
|
capture: true,
|
|
67
70
|
});
|
|
71
|
+
return hasQueueInListOutput(output, params.queue_name);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* 从 Wrangler Queue 列表输出中判断指定 Queue 是否存在。
|
|
75
|
+
*/
|
|
76
|
+
function hasQueueInListOutput(output, queue_name) {
|
|
77
|
+
const trimmed_output = output.trim();
|
|
78
|
+
if (!trimmed_output)
|
|
79
|
+
return false;
|
|
68
80
|
try {
|
|
69
|
-
const parsed = JSON.parse(
|
|
81
|
+
const parsed = JSON.parse(trimmed_output);
|
|
70
82
|
const items = Array.isArray(parsed)
|
|
71
83
|
? parsed
|
|
72
84
|
: Array.isArray(parsed?.queues)
|
|
73
85
|
? parsed.queues
|
|
74
86
|
: [];
|
|
75
|
-
|
|
87
|
+
const has_json_queue = items.some((item) => {
|
|
76
88
|
const record = item && typeof item === "object" ? item : {};
|
|
77
|
-
return String(record.name ?? record.queue_name ?? "").trim() ===
|
|
89
|
+
return String(record.name ?? record.queue_name ?? "").trim() === queue_name;
|
|
78
90
|
});
|
|
91
|
+
if (has_json_queue)
|
|
92
|
+
return true;
|
|
79
93
|
}
|
|
80
94
|
catch {
|
|
81
|
-
|
|
95
|
+
// Wrangler Queue list 当前是文本输出;JSON 解析失败时继续按表格/文本解析。
|
|
96
|
+
}
|
|
97
|
+
return readTextQueueNames(trimmed_output).some((name) => name === queue_name);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* 从文本表格或纯文本输出中读取 Queue 名称。
|
|
101
|
+
*/
|
|
102
|
+
function readTextQueueNames(output) {
|
|
103
|
+
const names = [];
|
|
104
|
+
for (const line of output.replace(/\u001b\[[0-9;]*m/g, "").split(/\r?\n/)) {
|
|
105
|
+
const cells = line
|
|
106
|
+
.split(/[│|]/g)
|
|
107
|
+
.map((cell) => cell.trim())
|
|
108
|
+
.filter(Boolean);
|
|
109
|
+
if (cells.length > 1) {
|
|
110
|
+
names.push(...cells.filter(isPossibleQueueName));
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
const plain_name = line.trim().replace(/^[-*]\s+/, "");
|
|
114
|
+
if (isPossibleQueueName(plain_name))
|
|
115
|
+
names.push(plain_name);
|
|
82
116
|
}
|
|
117
|
+
return names;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* 判断文本片段是否像一个 Cloudflare Queue 名称。
|
|
121
|
+
*/
|
|
122
|
+
function isPossibleQueueName(value) {
|
|
123
|
+
if (!value || value === "name" || value === "queue" || value === "Queue Name")
|
|
124
|
+
return false;
|
|
125
|
+
return /^[a-zA-Z0-9][a-zA-Z0-9._-]*$/.test(value);
|
|
83
126
|
}
|
|
84
127
|
/**
|
|
85
128
|
* shell 参数转义。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueueResolver.js","sourceRoot":"","sources":["../../../../src/federation/deploy/runtime/QueueResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"QueueResolver.js","sourceRoot":"","sources":["../../../../src/federation/deploy/runtime/QueueResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,7 +60,7 @@ export interface FederationD1DatabaseSummary {
|
|
|
60
60
|
/**
|
|
61
61
|
* Queue 准备状态。
|
|
62
62
|
*/
|
|
63
|
-
export type FederationQueueStatus = "created" | "reused" | "skipped";
|
|
63
|
+
export type FederationQueueStatus = "created" | "reused" | "pending" | "skipped";
|
|
64
64
|
/**
|
|
65
65
|
* Queue 准备结果。
|
|
66
66
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FederationDeployRuntime.d.ts","sourceRoot":"","sources":["../../../src/federation/types/FederationDeployRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,MAAM,6BAA6B,GACrC,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,6BAA6B,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,oCAAoC;IACnD;;OAEG;IACH,KAAK,EAAE,6BAA6B,CAAC;IAErC;;OAEG;IACH,SAAS,EAAE,6BAA6B,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAClC,SAAS,GACT,QAAQ,GACR,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,MAAM,EAAE,0BAA0B,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,QAAQ,GACR,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,qBAAqB,CAAC;CAC/B"}
|
|
1
|
+
{"version":3,"file":"FederationDeployRuntime.d.ts","sourceRoot":"","sources":["../../../src/federation/types/FederationDeployRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,MAAM,6BAA6B,GACrC,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,6BAA6B,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,oCAAoC;IACnD;;OAEG;IACH,KAAK,EAAE,6BAA6B,CAAC;IAErC;;OAEG;IACH,SAAS,EAAE,6BAA6B,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAClC,SAAS,GACT,QAAQ,GACR,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,MAAM,EAAE,0BAA0B,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,qBAAqB,CAAC;CAC/B"}
|