@keystrokehq/keystroke 0.0.50 → 0.0.52
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/action.cjs +1 -1
- package/dist/action.d.cts +2 -2
- package/dist/action.d.mts +2 -2
- package/dist/action.mjs +1 -1
- package/dist/agent.cjs +3 -3
- package/dist/agent.d.cts +3 -3
- package/dist/agent.d.mts +3 -3
- package/dist/agent.mjs +3 -3
- package/dist/config.d.cts +1 -1
- package/dist/config.d.mts +1 -1
- package/dist/credentials.cjs +1 -1
- package/dist/credentials.d.cts +1 -1
- package/dist/credentials.d.mts +1 -1
- package/dist/credentials.mjs +1 -1
- package/dist/{dist-CDXleBv_.cjs → dist-BI2zfNX7.cjs} +552 -7
- package/dist/dist-BI2zfNX7.cjs.map +1 -0
- package/dist/{dist-K3f_Uqb2.mjs → dist-BqkD0-YR.mjs} +3 -3
- package/dist/{dist-K3f_Uqb2.mjs.map → dist-BqkD0-YR.mjs.map} +1 -1
- package/dist/{dist-CnoekdhF.mjs → dist-C-ypbryp.mjs} +3 -3
- package/dist/{dist-CnoekdhF.mjs.map → dist-C-ypbryp.mjs.map} +1 -1
- package/dist/{dist-D3ZYp8vx.mjs → dist-DjygQb0m.mjs} +552 -7
- package/dist/dist-DjygQb0m.mjs.map +1 -0
- package/dist/{dist-C5-XNBIu.cjs → dist-DlgA_osF.cjs} +3 -3
- package/dist/{dist-C5-XNBIu.cjs.map → dist-DlgA_osF.cjs.map} +1 -1
- package/dist/{dist-BSIw7z3H.cjs → dist-XpP23zfG.cjs} +3 -3
- package/dist/{dist-BSIw7z3H.cjs.map → dist-XpP23zfG.cjs.map} +1 -1
- package/dist/{index-Bv6wUQQq.d.cts → index-BeEymXir.d.cts} +3 -3
- package/dist/index-BeEymXir.d.cts.map +1 -0
- package/dist/{index-Bv6wUQQq.d.mts → index-BeEymXir.d.mts} +3 -3
- package/dist/index-BeEymXir.d.mts.map +1 -0
- package/dist/{index-DFtUfWsz.d.mts → index-BspW44XX.d.mts} +2 -2
- package/dist/{index-B6B1jKGS.d.cts.map → index-BspW44XX.d.mts.map} +1 -1
- package/dist/{index-B6B1jKGS.d.cts → index-BwRlj7pv.d.cts} +2 -2
- package/dist/{index-DFtUfWsz.d.mts.map → index-BwRlj7pv.d.cts.map} +1 -1
- package/dist/{index-BZxFr9HO.d.cts → index-BzsZvKGT.d.mts} +2 -2
- package/dist/{index-BZxFr9HO.d.cts.map → index-BzsZvKGT.d.mts.map} +1 -1
- package/dist/{index-EM1DHFHj.d.mts → index-CtyQ1EEq.d.cts} +2 -2
- package/dist/{index-EM1DHFHj.d.mts.map → index-CtyQ1EEq.d.cts.map} +1 -1
- package/dist/{index-BsrdmWmN.d.mts → index-CvXJv3hY.d.mts} +2 -2
- package/dist/{index-BL9S9k2t.d.cts.map → index-CvXJv3hY.d.mts.map} +1 -1
- package/dist/{index-BL9S9k2t.d.cts → index-avLUReqf.d.cts} +2 -2
- package/dist/{index-BsrdmWmN.d.mts.map → index-avLUReqf.d.cts.map} +1 -1
- package/dist/{mistral-DP_vuGSg.cjs → mistral-BNA9P0aK.cjs} +2 -2
- package/dist/{mistral-DP_vuGSg.cjs.map → mistral-BNA9P0aK.cjs.map} +1 -1
- package/dist/{mistral-nX_EdAQA.mjs → mistral-_ZarQt8X.mjs} +2 -2
- package/dist/{mistral-nX_EdAQA.mjs.map → mistral-_ZarQt8X.mjs.map} +1 -1
- package/dist/{sse-ChkYIHuj.cjs → sse-BCRLZvq0.cjs} +2 -2
- package/dist/{sse-ChkYIHuj.cjs.map → sse-BCRLZvq0.cjs.map} +1 -1
- package/dist/{sse-CNr-B_rp.mjs → sse-CrM2YYD2.mjs} +2 -2
- package/dist/{sse-CNr-B_rp.mjs.map → sse-CrM2YYD2.mjs.map} +1 -1
- package/dist/trigger.cjs +1 -1
- package/dist/trigger.d.cts +2 -2
- package/dist/trigger.d.mts +2 -2
- package/dist/trigger.mjs +1 -1
- package/dist/workflow.cjs +1 -1
- package/dist/workflow.d.cts +1 -1
- package/dist/workflow.d.mts +1 -1
- package/dist/workflow.mjs +1 -1
- package/package.json +27 -27
- package/dist/dist-CDXleBv_.cjs.map +0 -1
- package/dist/dist-D3ZYp8vx.mjs.map +0 -1
- package/dist/index-Bv6wUQQq.d.cts.map +0 -1
- package/dist/index-Bv6wUQQq.d.mts.map +0 -1
|
@@ -1,16 +1,560 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
3
3
|
//#region ../shared/dist/index.mjs
|
|
4
|
-
/**
|
|
5
|
-
const
|
|
6
|
-
"
|
|
4
|
+
/** Auth, session, and account-entry URL segments. */
|
|
5
|
+
const AUTH_ACCOUNT_SLUGS = [
|
|
6
|
+
"2fa",
|
|
7
|
+
"accept-invite",
|
|
8
|
+
"auth",
|
|
9
|
+
"authorize",
|
|
10
|
+
"callback",
|
|
11
|
+
"callbacks",
|
|
12
|
+
"confirm-email",
|
|
13
|
+
"confirmation",
|
|
14
|
+
"connect",
|
|
7
15
|
"device",
|
|
16
|
+
"email-verification",
|
|
17
|
+
"forgot-password",
|
|
18
|
+
"invite",
|
|
19
|
+
"invites",
|
|
8
20
|
"login",
|
|
21
|
+
"logout",
|
|
22
|
+
"magic-link",
|
|
23
|
+
"mfa",
|
|
24
|
+
"oauth",
|
|
9
25
|
"onboarding",
|
|
26
|
+
"password",
|
|
27
|
+
"recovery",
|
|
28
|
+
"register",
|
|
29
|
+
"reset-password",
|
|
30
|
+
"saml",
|
|
31
|
+
"session",
|
|
32
|
+
"sessions",
|
|
33
|
+
"sign-in",
|
|
34
|
+
"sign-up",
|
|
35
|
+
"signin",
|
|
36
|
+
"signout",
|
|
37
|
+
"signup",
|
|
38
|
+
"sso",
|
|
39
|
+
"token",
|
|
40
|
+
"tokens",
|
|
41
|
+
"unlink",
|
|
42
|
+
"verify",
|
|
43
|
+
"verify-email"
|
|
44
|
+
];
|
|
45
|
+
/** Org, workspace, billing, and account-management URL segments. */
|
|
46
|
+
const ORG_ACCOUNT_SLUGS = [
|
|
47
|
+
"account",
|
|
48
|
+
"accounts",
|
|
49
|
+
"billing",
|
|
50
|
+
"console",
|
|
51
|
+
"invoice",
|
|
52
|
+
"invoices",
|
|
53
|
+
"member",
|
|
54
|
+
"members",
|
|
55
|
+
"me",
|
|
56
|
+
"org",
|
|
10
57
|
"organization",
|
|
11
|
-
"
|
|
58
|
+
"organizations",
|
|
59
|
+
"orgs",
|
|
60
|
+
"payment",
|
|
61
|
+
"payments",
|
|
62
|
+
"plan",
|
|
63
|
+
"plans",
|
|
64
|
+
"portal",
|
|
65
|
+
"preferences",
|
|
66
|
+
"profile",
|
|
67
|
+
"settings",
|
|
68
|
+
"subscription",
|
|
69
|
+
"subscriptions",
|
|
70
|
+
"team",
|
|
71
|
+
"teams",
|
|
72
|
+
"upgrade",
|
|
73
|
+
"usage",
|
|
74
|
+
"user",
|
|
75
|
+
"users",
|
|
76
|
+
"workspace",
|
|
77
|
+
"workspaces"
|
|
78
|
+
];
|
|
79
|
+
/** Product surfaces, resource types, and in-app navigation segments. */
|
|
80
|
+
const PRODUCT_SLUGS = [
|
|
81
|
+
"action",
|
|
82
|
+
"actions",
|
|
83
|
+
"activity",
|
|
84
|
+
"agent",
|
|
85
|
+
"agents",
|
|
86
|
+
"analytics",
|
|
87
|
+
"app",
|
|
88
|
+
"apps",
|
|
89
|
+
"artifact",
|
|
90
|
+
"artifacts",
|
|
91
|
+
"assistant",
|
|
92
|
+
"assistants",
|
|
93
|
+
"audit",
|
|
94
|
+
"audit-log",
|
|
95
|
+
"automation",
|
|
96
|
+
"automations",
|
|
97
|
+
"branch",
|
|
98
|
+
"branches",
|
|
99
|
+
"canvas",
|
|
100
|
+
"chat",
|
|
101
|
+
"chats",
|
|
102
|
+
"connection",
|
|
103
|
+
"connections",
|
|
104
|
+
"create",
|
|
105
|
+
"credential",
|
|
106
|
+
"credentials",
|
|
107
|
+
"dashboard",
|
|
108
|
+
"deployment",
|
|
109
|
+
"deployments",
|
|
110
|
+
"examples",
|
|
111
|
+
"execute",
|
|
112
|
+
"execution",
|
|
113
|
+
"executions",
|
|
114
|
+
"explore",
|
|
115
|
+
"get-started",
|
|
116
|
+
"history",
|
|
117
|
+
"inbox",
|
|
118
|
+
"inspector",
|
|
119
|
+
"integration",
|
|
120
|
+
"integrations",
|
|
121
|
+
"library",
|
|
122
|
+
"logs",
|
|
123
|
+
"marketplace",
|
|
124
|
+
"mcp",
|
|
125
|
+
"mcps",
|
|
126
|
+
"new",
|
|
127
|
+
"notifications",
|
|
128
|
+
"observe",
|
|
129
|
+
"plugin",
|
|
130
|
+
"plugins",
|
|
131
|
+
"primitive",
|
|
132
|
+
"primitives",
|
|
133
|
+
"project",
|
|
134
|
+
"projects",
|
|
135
|
+
"recents",
|
|
136
|
+
"registry",
|
|
137
|
+
"reports",
|
|
138
|
+
"run",
|
|
139
|
+
"runs",
|
|
140
|
+
"runtime",
|
|
141
|
+
"runtimes",
|
|
142
|
+
"sandbox",
|
|
143
|
+
"sandboxes",
|
|
144
|
+
"search",
|
|
145
|
+
"skill",
|
|
146
|
+
"skills",
|
|
147
|
+
"templates",
|
|
148
|
+
"thread",
|
|
149
|
+
"threads",
|
|
150
|
+
"trigger",
|
|
151
|
+
"triggers",
|
|
152
|
+
"version",
|
|
153
|
+
"versions",
|
|
154
|
+
"workflow",
|
|
155
|
+
"workflows"
|
|
156
|
+
];
|
|
157
|
+
/** Marketing, docs, company, and go-to-market URL segments. */
|
|
158
|
+
const MARKETING_SITE_SLUGS = [
|
|
159
|
+
"about",
|
|
160
|
+
"affiliates",
|
|
161
|
+
"ai",
|
|
162
|
+
"announcements",
|
|
163
|
+
"anthropic",
|
|
164
|
+
"blog",
|
|
165
|
+
"book-demo",
|
|
166
|
+
"brand",
|
|
167
|
+
"campaigns",
|
|
168
|
+
"career",
|
|
169
|
+
"careers",
|
|
170
|
+
"case-studies",
|
|
171
|
+
"casestudies",
|
|
172
|
+
"changelog",
|
|
173
|
+
"chatgpt",
|
|
174
|
+
"chrome-extension",
|
|
175
|
+
"claude",
|
|
176
|
+
"codex",
|
|
177
|
+
"community",
|
|
178
|
+
"company",
|
|
179
|
+
"compare",
|
|
180
|
+
"contact",
|
|
181
|
+
"contribute",
|
|
182
|
+
"creators",
|
|
183
|
+
"customers",
|
|
184
|
+
"demo",
|
|
185
|
+
"demos",
|
|
186
|
+
"discord",
|
|
187
|
+
"docs",
|
|
188
|
+
"documentation",
|
|
189
|
+
"download",
|
|
190
|
+
"downloads",
|
|
191
|
+
"dust",
|
|
192
|
+
"emerging-talent",
|
|
193
|
+
"engineering-blog",
|
|
194
|
+
"enterprise",
|
|
195
|
+
"events",
|
|
196
|
+
"experts",
|
|
197
|
+
"extension",
|
|
198
|
+
"faq",
|
|
199
|
+
"faqs",
|
|
200
|
+
"features",
|
|
201
|
+
"forum",
|
|
202
|
+
"glean",
|
|
203
|
+
"grok",
|
|
204
|
+
"guide",
|
|
205
|
+
"guides",
|
|
206
|
+
"gumloop",
|
|
207
|
+
"handbook",
|
|
208
|
+
"help",
|
|
209
|
+
"help-center",
|
|
210
|
+
"home",
|
|
211
|
+
"how-it-works",
|
|
212
|
+
"howitworks",
|
|
213
|
+
"inspo",
|
|
214
|
+
"intern",
|
|
215
|
+
"investors",
|
|
216
|
+
"jobs",
|
|
217
|
+
"keystroke",
|
|
218
|
+
"legal",
|
|
219
|
+
"lindy",
|
|
220
|
+
"llm",
|
|
221
|
+
"llms",
|
|
222
|
+
"love",
|
|
223
|
+
"make",
|
|
224
|
+
"manifesto",
|
|
225
|
+
"media",
|
|
226
|
+
"merch",
|
|
227
|
+
"mission",
|
|
228
|
+
"mobile",
|
|
229
|
+
"models",
|
|
230
|
+
"n8n",
|
|
231
|
+
"news",
|
|
232
|
+
"newsroom",
|
|
233
|
+
"open",
|
|
234
|
+
"open-claw",
|
|
235
|
+
"open-source",
|
|
236
|
+
"openai",
|
|
237
|
+
"our-story",
|
|
238
|
+
"overview",
|
|
239
|
+
"partners",
|
|
240
|
+
"pi",
|
|
241
|
+
"pipedream",
|
|
242
|
+
"platform",
|
|
243
|
+
"press",
|
|
244
|
+
"press-kit",
|
|
245
|
+
"pricing",
|
|
246
|
+
"privacy",
|
|
247
|
+
"product",
|
|
248
|
+
"products",
|
|
249
|
+
"provider",
|
|
250
|
+
"providers",
|
|
251
|
+
"quick-start",
|
|
252
|
+
"quickstart",
|
|
253
|
+
"refer",
|
|
254
|
+
"relay",
|
|
255
|
+
"relay-app",
|
|
256
|
+
"reporting",
|
|
257
|
+
"request-demo",
|
|
258
|
+
"resources",
|
|
259
|
+
"roadmap",
|
|
260
|
+
"schedule-demo",
|
|
261
|
+
"security",
|
|
262
|
+
"solutions",
|
|
263
|
+
"stack-ai",
|
|
264
|
+
"stackai",
|
|
265
|
+
"startup",
|
|
266
|
+
"startups",
|
|
267
|
+
"status",
|
|
268
|
+
"stories",
|
|
269
|
+
"story",
|
|
270
|
+
"students",
|
|
271
|
+
"support",
|
|
272
|
+
"swag",
|
|
273
|
+
"switch",
|
|
274
|
+
"talent",
|
|
275
|
+
"terms",
|
|
276
|
+
"testimonials",
|
|
277
|
+
"thesis",
|
|
278
|
+
"tines",
|
|
279
|
+
"trust",
|
|
280
|
+
"tutorials",
|
|
281
|
+
"university",
|
|
282
|
+
"use-case",
|
|
283
|
+
"use-cases",
|
|
284
|
+
"usecases",
|
|
285
|
+
"versus",
|
|
286
|
+
"vellum",
|
|
287
|
+
"vs",
|
|
288
|
+
"webinars",
|
|
289
|
+
"workato",
|
|
290
|
+
"xai",
|
|
291
|
+
"yc",
|
|
292
|
+
"zapier"
|
|
293
|
+
];
|
|
294
|
+
/** Integrations, competitors, and partner brand slugs (marketing / integration pages). */
|
|
295
|
+
const INTEGRATION_BRAND_SLUGS = [
|
|
296
|
+
"airtable",
|
|
297
|
+
"asana",
|
|
298
|
+
"aws",
|
|
299
|
+
"azure",
|
|
300
|
+
"bun",
|
|
301
|
+
"confluence",
|
|
302
|
+
"copilot",
|
|
303
|
+
"cursor",
|
|
304
|
+
"databricks",
|
|
305
|
+
"figma",
|
|
306
|
+
"firebase",
|
|
307
|
+
"fly",
|
|
308
|
+
"gcp",
|
|
309
|
+
"gemini",
|
|
310
|
+
"github",
|
|
311
|
+
"gitlab",
|
|
312
|
+
"gmail",
|
|
313
|
+
"heroku",
|
|
314
|
+
"hubspot",
|
|
315
|
+
"huggingface",
|
|
316
|
+
"jira",
|
|
317
|
+
"linear",
|
|
318
|
+
"mailchimp",
|
|
319
|
+
"meta",
|
|
320
|
+
"mistral",
|
|
321
|
+
"mixmax",
|
|
322
|
+
"monday",
|
|
323
|
+
"netlify",
|
|
324
|
+
"neon",
|
|
325
|
+
"notion",
|
|
326
|
+
"npm",
|
|
327
|
+
"outlook",
|
|
328
|
+
"outreach",
|
|
329
|
+
"perplexity",
|
|
330
|
+
"planetscale",
|
|
331
|
+
"pnpm",
|
|
332
|
+
"postmark",
|
|
333
|
+
"ramp",
|
|
334
|
+
"railway",
|
|
335
|
+
"render",
|
|
336
|
+
"resend",
|
|
337
|
+
"salesforce",
|
|
338
|
+
"segment",
|
|
339
|
+
"sendgrid",
|
|
340
|
+
"shopify",
|
|
341
|
+
"slack",
|
|
342
|
+
"snowflake",
|
|
343
|
+
"stripe",
|
|
344
|
+
"supabase",
|
|
345
|
+
"terraform",
|
|
346
|
+
"trello",
|
|
347
|
+
"turso",
|
|
348
|
+
"twilio",
|
|
349
|
+
"typeform",
|
|
350
|
+
"vercel",
|
|
351
|
+
"vscode",
|
|
352
|
+
"windsurf",
|
|
353
|
+
"yarn"
|
|
354
|
+
];
|
|
355
|
+
/** Company, team, and department landing-page segments. */
|
|
356
|
+
const COMPANY_TEAM_SLUGS = [
|
|
357
|
+
"engineers",
|
|
358
|
+
"engineering",
|
|
359
|
+
"executives",
|
|
360
|
+
"hc",
|
|
361
|
+
"intern",
|
|
362
|
+
"it",
|
|
363
|
+
"leadership",
|
|
364
|
+
"marketing",
|
|
365
|
+
"ops",
|
|
366
|
+
"revops",
|
|
367
|
+
"sales",
|
|
368
|
+
"services",
|
|
369
|
+
"tech"
|
|
370
|
+
];
|
|
371
|
+
/** Legal, trust, compliance, and policy URL segments. */
|
|
372
|
+
const LEGAL_TRUST_SLUGS = [
|
|
373
|
+
"accessibility",
|
|
374
|
+
"agreement",
|
|
375
|
+
"a11y",
|
|
376
|
+
"bug-bounty",
|
|
377
|
+
"compliance",
|
|
378
|
+
"cookie-policy",
|
|
379
|
+
"cookies",
|
|
380
|
+
"disclose",
|
|
381
|
+
"dpa",
|
|
382
|
+
"eula",
|
|
383
|
+
"gdpr",
|
|
384
|
+
"hipaa",
|
|
385
|
+
"iso",
|
|
386
|
+
"msa",
|
|
387
|
+
"pci",
|
|
388
|
+
"responsible-disclosure",
|
|
389
|
+
"sla",
|
|
390
|
+
"soc2",
|
|
391
|
+
"tos",
|
|
392
|
+
"trust-center",
|
|
393
|
+
"trustcenter",
|
|
394
|
+
"vulnerability"
|
|
395
|
+
];
|
|
396
|
+
/** Developer, API, CLI, and technical URL segments. */
|
|
397
|
+
const DEVELOPER_TECH_SLUGS = [
|
|
398
|
+
"api",
|
|
399
|
+
"api-docs",
|
|
400
|
+
"cli",
|
|
401
|
+
"code",
|
|
402
|
+
"config",
|
|
403
|
+
"developer",
|
|
404
|
+
"developer-tools",
|
|
405
|
+
"developers",
|
|
406
|
+
"dev-tools",
|
|
407
|
+
"devtools",
|
|
408
|
+
"dev",
|
|
409
|
+
"dev-states",
|
|
410
|
+
"graphql",
|
|
411
|
+
"graphql-playground",
|
|
412
|
+
"mcp-server",
|
|
413
|
+
"mcp-servers",
|
|
414
|
+
"openapi",
|
|
415
|
+
"sdk",
|
|
416
|
+
"swagger"
|
|
417
|
+
];
|
|
418
|
+
/** Infra, ops, static assets, and system URL segments. */
|
|
419
|
+
const INFRA_SYSTEM_SLUGS = [
|
|
420
|
+
"acme-challenge",
|
|
421
|
+
"admin",
|
|
422
|
+
"apple-app-site-association",
|
|
423
|
+
"assets",
|
|
424
|
+
"batch",
|
|
425
|
+
"cache",
|
|
426
|
+
"cdn",
|
|
427
|
+
"cron",
|
|
428
|
+
"debug",
|
|
429
|
+
"error",
|
|
430
|
+
"errors",
|
|
431
|
+
"favicon",
|
|
432
|
+
"feed",
|
|
433
|
+
"files",
|
|
434
|
+
"health",
|
|
435
|
+
"healthcheck",
|
|
436
|
+
"healthz",
|
|
437
|
+
"hooks",
|
|
438
|
+
"internal",
|
|
439
|
+
"item",
|
|
440
|
+
"manifest",
|
|
441
|
+
"metrics",
|
|
442
|
+
"null",
|
|
443
|
+
"ping",
|
|
444
|
+
"prod",
|
|
445
|
+
"public",
|
|
446
|
+
"redirect",
|
|
447
|
+
"robots",
|
|
448
|
+
"rpc",
|
|
449
|
+
"rss",
|
|
450
|
+
"sharer",
|
|
451
|
+
"sitemap",
|
|
452
|
+
"staging",
|
|
453
|
+
"static",
|
|
454
|
+
"storage",
|
|
455
|
+
"test",
|
|
456
|
+
"undefined",
|
|
457
|
+
"universal",
|
|
458
|
+
"webhooks",
|
|
459
|
+
"well-known",
|
|
460
|
+
"www"
|
|
461
|
+
];
|
|
462
|
+
/** Reserved slugs that are valid org names in theory but blocked for routing safety. */
|
|
463
|
+
const ROUTING_SAFETY_SLUGS = [
|
|
464
|
+
"alpha",
|
|
465
|
+
"anonymous",
|
|
466
|
+
"archive",
|
|
467
|
+
"archived",
|
|
468
|
+
"beta",
|
|
469
|
+
"clone",
|
|
470
|
+
"copy",
|
|
471
|
+
"default",
|
|
472
|
+
"deleted",
|
|
473
|
+
"demo-org",
|
|
474
|
+
"draft",
|
|
475
|
+
"drafts",
|
|
476
|
+
"duplicate",
|
|
477
|
+
"early-access",
|
|
478
|
+
"embed",
|
|
479
|
+
"embedded",
|
|
480
|
+
"export",
|
|
481
|
+
"fork",
|
|
482
|
+
"free",
|
|
483
|
+
"guest",
|
|
484
|
+
"import",
|
|
485
|
+
"index",
|
|
486
|
+
"list",
|
|
487
|
+
"manage",
|
|
488
|
+
"moderator",
|
|
489
|
+
"newsletter",
|
|
490
|
+
"owner",
|
|
491
|
+
"preview",
|
|
492
|
+
"previews",
|
|
493
|
+
"private",
|
|
494
|
+
"pro",
|
|
495
|
+
"public-api",
|
|
496
|
+
"publish",
|
|
497
|
+
"published",
|
|
498
|
+
"queue",
|
|
499
|
+
"remove",
|
|
500
|
+
"root",
|
|
501
|
+
"sample",
|
|
502
|
+
"samples",
|
|
503
|
+
"selection",
|
|
504
|
+
"share",
|
|
505
|
+
"shared",
|
|
506
|
+
"sponsor",
|
|
507
|
+
"sponsors",
|
|
508
|
+
"sponsorship",
|
|
509
|
+
"subscribe",
|
|
510
|
+
"super",
|
|
511
|
+
"superuser",
|
|
512
|
+
"system",
|
|
513
|
+
"sys",
|
|
514
|
+
"test-org",
|
|
515
|
+
"trash",
|
|
516
|
+
"unpublish",
|
|
517
|
+
"unsubscribe",
|
|
518
|
+
"upload",
|
|
519
|
+
"uploads",
|
|
520
|
+
"waitlist",
|
|
521
|
+
"widget",
|
|
522
|
+
"widgets",
|
|
523
|
+
"worker",
|
|
524
|
+
"workers"
|
|
525
|
+
];
|
|
526
|
+
/**
|
|
527
|
+
* URL segments reserved for global (non-org) routes — cannot be used as an org slug.
|
|
528
|
+
* Prefer adding new entries to the category arrays above; the Set is the enforcement surface.
|
|
529
|
+
*/
|
|
530
|
+
const RESERVED_ORGANIZATION_SLUGS = new Set([
|
|
531
|
+
...AUTH_ACCOUNT_SLUGS,
|
|
532
|
+
...ORG_ACCOUNT_SLUGS,
|
|
533
|
+
...PRODUCT_SLUGS,
|
|
534
|
+
...MARKETING_SITE_SLUGS,
|
|
535
|
+
...INTEGRATION_BRAND_SLUGS,
|
|
536
|
+
...COMPANY_TEAM_SLUGS,
|
|
537
|
+
...LEGAL_TRUST_SLUGS,
|
|
538
|
+
...DEVELOPER_TECH_SLUGS,
|
|
539
|
+
...INFRA_SYSTEM_SLUGS,
|
|
540
|
+
...ROUTING_SAFETY_SLUGS
|
|
12
541
|
]);
|
|
13
|
-
|
|
542
|
+
/**
|
|
543
|
+
* Base slug format: lowercase, 2-64 chars, alphanumeric + dashes.
|
|
544
|
+
*
|
|
545
|
+
* IMPORTANT: this is the schema for *reading* slugs (persisted rows, API
|
|
546
|
+
* responses). It intentionally does NOT enforce the reserved-name list — an org
|
|
547
|
+
* created before a name became reserved must still parse on read. Use
|
|
548
|
+
* `ClaimableOrganizationSlugSchema` to validate slugs a user is trying to claim.
|
|
549
|
+
*/
|
|
550
|
+
const OrganizationSlugSchema = z.string().trim().toLowerCase().min(2, "Slug must be at least 2 characters").max(64, "Slug must be at most 64 characters").regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/, "Use lowercase letters, numbers, and dashes only");
|
|
551
|
+
/**
|
|
552
|
+
* Slug validation for *claiming* a slug (organization create/rename). Adds the
|
|
553
|
+
* reserved-name check on top of the base format. Never use this to parse
|
|
554
|
+
* existing org data, or pre-existing orgs whose slug later became reserved would
|
|
555
|
+
* fail to load.
|
|
556
|
+
*/
|
|
557
|
+
const ClaimableOrganizationSlugSchema = OrganizationSlugSchema.refine((slug) => !RESERVED_ORGANIZATION_SLUGS.has(slug), "This slug is reserved");
|
|
14
558
|
/** How a credential instance is stored (`credential_instances.auth_kind`). */
|
|
15
559
|
const CredentialAuthKindSchema = z.enum(["api_key", "oauth_managed"]);
|
|
16
560
|
/** Where a credential instance is stored (`credential_instances.scope_type`). */
|
|
@@ -518,9 +1062,10 @@ z.object({ organizations: z.array(UserOrganizationSchema) });
|
|
|
518
1062
|
z.object({ organizationId: z.string().min(1) });
|
|
519
1063
|
z.object({
|
|
520
1064
|
name: z.string().trim().min(1),
|
|
1065
|
+
/** Format-only at the wire boundary; reserved-name checks run in platform-database. */
|
|
521
1066
|
slug: OrganizationSlugSchema.optional()
|
|
522
1067
|
});
|
|
523
|
-
z.object({ slug:
|
|
1068
|
+
z.object({ slug: ClaimableOrganizationSlugSchema });
|
|
524
1069
|
z.object({ organization: UserOrganizationSchema });
|
|
525
1070
|
z.object({ projects: z.array(ProjectSchema) });
|
|
526
1071
|
z.object({ name: z.string().trim().min(1) });
|
|
@@ -729,4 +1274,4 @@ function resolveActionTool(action, options) {
|
|
|
729
1274
|
//#endregion
|
|
730
1275
|
export { credentialInputSchema as _, getActionCredentialRequirements as a, normalizeCredentialList as b, isStepInvocation as c, runOutsideActionExecution as d, runWithinActionExecution as f, credential as g, DEFAULT_CREDENTIAL_RESOLUTION_CHAIN as h, executeAction as i, registerWorkflowRunGetter as l, CREDENTIAL_SCOPE_LEVEL_TO_SCOPE_TYPE as m, createStepInvocation as n, getWorkflowRunHandle as o, CREDENTIAL_SCOPE_LEVELS as p, defineAction as r, isAction as s, actionCoreSchema as t, resolveActionTool as u, defineCredential as v, toCredentialRequirement as x, isCredentialInput as y };
|
|
731
1276
|
|
|
732
|
-
//# sourceMappingURL=dist-
|
|
1277
|
+
//# sourceMappingURL=dist-DjygQb0m.mjs.map
|