@captain_z/zsk 1.8.4 → 1.8.5

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.
Files changed (125) hide show
  1. package/dist/bin.js +13 -0
  2. package/dist/bin.js.map +1 -1
  3. package/dist/commands/check.js +14 -575
  4. package/dist/commands/check.js.map +1 -1
  5. package/dist/commands/config.js +1 -1
  6. package/dist/commands/config.js.map +1 -1
  7. package/dist/commands/demo.d.ts +5 -0
  8. package/dist/commands/demo.js +70 -297
  9. package/dist/commands/demo.js.map +1 -1
  10. package/dist/commands/doctor.js +9 -4
  11. package/dist/commands/doctor.js.map +1 -1
  12. package/dist/commands/gate.d.ts +1 -0
  13. package/dist/commands/gate.js +8 -2
  14. package/dist/commands/gate.js.map +1 -1
  15. package/dist/commands/prepare.js +7 -1
  16. package/dist/commands/prepare.js.map +1 -1
  17. package/dist/commands/project-init.js +30 -8
  18. package/dist/commands/project-init.js.map +1 -1
  19. package/dist/core/config.d.ts +68 -0
  20. package/dist/core/config.js +198 -15
  21. package/dist/core/config.js.map +1 -1
  22. package/dist/core/demo-auth.d.ts +30 -0
  23. package/dist/core/demo-auth.js +213 -0
  24. package/dist/core/demo-auth.js.map +1 -0
  25. package/dist/core/demo-scenarios.d.ts +62 -0
  26. package/dist/core/demo-scenarios.js +276 -0
  27. package/dist/core/demo-scenarios.js.map +1 -0
  28. package/dist/core/demo-sources.d.ts +37 -0
  29. package/dist/core/demo-sources.js +198 -0
  30. package/dist/core/demo-sources.js.map +1 -0
  31. package/dist/core/mcp-registry-discovery.d.ts +16 -0
  32. package/dist/core/mcp-registry-discovery.js +187 -0
  33. package/dist/core/mcp-registry-discovery.js.map +1 -0
  34. package/dist/core/origin-detection.js +1 -1
  35. package/dist/core/origin-detection.js.map +1 -1
  36. package/dist/core/prepare-artifacts.d.ts +16 -0
  37. package/dist/core/prepare-artifacts.js +25 -0
  38. package/dist/core/prepare-artifacts.js.map +1 -0
  39. package/dist/core/prepare-auth-helper.d.ts +8 -0
  40. package/dist/core/prepare-auth-helper.js +32 -0
  41. package/dist/core/prepare-auth-helper.js.map +1 -0
  42. package/dist/core/prepare-materialization.d.ts +8 -0
  43. package/dist/core/prepare-materialization.js +26 -0
  44. package/dist/core/prepare-materialization.js.map +1 -0
  45. package/dist/core/prepare-migration.d.ts +6 -0
  46. package/dist/core/prepare-migration.js +57 -0
  47. package/dist/core/prepare-migration.js.map +1 -0
  48. package/dist/core/prepare-reporting.d.ts +5 -0
  49. package/dist/core/prepare-reporting.js +106 -0
  50. package/dist/core/prepare-reporting.js.map +1 -0
  51. package/dist/core/prepare-routing.d.ts +12 -0
  52. package/dist/core/prepare-routing.js +182 -0
  53. package/dist/core/prepare-routing.js.map +1 -0
  54. package/dist/core/prepare-sync.d.ts +11 -22
  55. package/dist/core/prepare-sync.js +811 -260
  56. package/dist/core/prepare-sync.js.map +1 -1
  57. package/dist/core/prepare-utils.d.ts +6 -0
  58. package/dist/core/prepare-utils.js +35 -0
  59. package/dist/core/prepare-utils.js.map +1 -0
  60. package/dist/core/provider-policy.d.ts +26 -0
  61. package/dist/core/provider-policy.js +180 -0
  62. package/dist/core/provider-policy.js.map +1 -0
  63. package/dist/core/provider-readiness.d.ts +39 -0
  64. package/dist/core/provider-readiness.js +78 -0
  65. package/dist/core/provider-readiness.js.map +1 -0
  66. package/dist/core/source-adapter-normalization.d.ts +31 -0
  67. package/dist/core/source-adapter-normalization.js +235 -0
  68. package/dist/core/source-adapter-normalization.js.map +1 -0
  69. package/dist/core/source-snapshot-adapters.d.ts +3 -3
  70. package/dist/core/source-snapshot-adapters.js +2 -24
  71. package/dist/core/source-snapshot-adapters.js.map +1 -1
  72. package/dist/core/staffing-plan.d.ts +1 -0
  73. package/dist/core/staffing-plan.js +61 -3
  74. package/dist/core/staffing-plan.js.map +1 -1
  75. package/dist/core/stage-clarity-verification.js +21 -18
  76. package/dist/core/stage-clarity-verification.js.map +1 -1
  77. package/dist/core/stage-output-quality.d.ts +3 -0
  78. package/dist/core/stage-output-quality.js +122 -0
  79. package/dist/core/stage-output-quality.js.map +1 -0
  80. package/dist/core/stage-quality-contracts.d.ts +19 -0
  81. package/dist/core/stage-quality-contracts.js.map +1 -1
  82. package/dist/core/stage-quality-criteria.js +0 -37
  83. package/dist/core/stage-quality-criteria.js.map +1 -1
  84. package/dist/core/stage-quality-rendering.d.ts +4 -2
  85. package/dist/core/stage-quality-rendering.js +130 -12
  86. package/dist/core/stage-quality-rendering.js.map +1 -1
  87. package/dist/core/stage-quality.js +17 -6
  88. package/dist/core/stage-quality.js.map +1 -1
  89. package/dist/core/template-registry.js +12 -15
  90. package/dist/core/template-registry.js.map +1 -1
  91. package/dist/core/workspace-conformance.d.ts +39 -0
  92. package/dist/core/workspace-conformance.js +603 -0
  93. package/dist/core/workspace-conformance.js.map +1 -0
  94. package/package.json +2 -2
  95. package/schemas/providers.schema.json +74 -0
  96. package/schemas/zsk-config.schema.json +417 -1
  97. package/templates/project-init/.zsk/README.md +48 -0
  98. package/templates/project-init/.zsk/config.yaml +37 -33
  99. package/templates/project-init/.zsk/docs/CONFIG-SCHEMA.md +127 -0
  100. package/templates/project-init/.zsk/docs/PROJECT-CONFIG.md +26 -21
  101. package/templates/project-init/.zsk/docs/README.md +10 -0
  102. package/templates/project-init/.zsk/docs/SECURITY.md +34 -0
  103. package/templates/project-init/.zsk/docs/SYSTEM-SPEC.md +20 -8
  104. package/templates/project-init/.zsk/evidence/README.md +15 -0
  105. package/templates/project-init/.zsk/issues/README.md +10 -0
  106. package/templates/project-init/.zsk/modules/README.md +19 -0
  107. package/templates/project-init/.zsk/modules/index.md +9 -5
  108. package/templates/project-init/.zsk/raws/README.md +34 -0
  109. package/templates/project-init/.zsk/roles.yaml +36 -105
  110. package/templates/project-init/.zsk/templates/config.examples.yaml +83 -0
  111. package/templates/project-init/.zsk/templates/issue-card.md +23 -0
  112. package/templates/project-init/.zsk/templates/module/README.md +13 -0
  113. package/templates/project-init/.zsk/templates/module/design.md +22 -0
  114. package/templates/project-init/.zsk/templates/module/module.yaml +15 -0
  115. package/templates/project-init/.zsk/templates/module/proposal.md +20 -0
  116. package/templates/project-init/.zsk/templates/module/spec.md +22 -0
  117. package/templates/project-init/.zsk/templates/module/tasks.md +16 -0
  118. package/templates/project-init/.zsk/raws/index.md +0 -34
  119. package/templates/project-init/.zsk/raws/manifest.json +0 -4
  120. package/templates/project-init/.zsk/raws/prepare/backend/index.md +0 -4
  121. package/templates/project-init/.zsk/raws/prepare/design/index.md +0 -21
  122. package/templates/project-init/.zsk/raws/prepare/index.md +0 -37
  123. package/templates/project-init/.zsk/raws/prepare/product/index.md +0 -4
  124. package/templates/project-init/.zsk/raws/prepare/qa/index.md +0 -4
  125. package/templates/project-init/.zsk/raws/prepare/ux/index.md +0 -22
@@ -1,12 +1,15 @@
1
1
  import { Ajv } from "ajv/dist/ajv.js";
2
2
  import { readFile, readdir, access, stat } from "node:fs/promises";
3
- import { isAbsolute, join, relative, resolve } from "node:path";
3
+ import { isAbsolute, join, resolve } from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
5
  import { dirname } from "node:path";
6
6
  import { createRequire } from "node:module";
7
7
  import YAML from "yaml";
8
8
  import { PREPARE_RAW_LANES, getWorkspacePath, resolveWorkspaceLayout, } from "./workspace-layout.js";
9
+ import { isPathInside as isInside, playwrightAuthRoots, resolveProjectPath as resolvePath, } from "./workspace-conformance.js";
9
10
  import { inferSourceOrigin } from "./origin-detection.js";
11
+ import { loadProviderPolicy } from "./provider-policy.js";
12
+ import { interpretSourceAdapter } from "./source-adapter-normalization.js";
10
13
  import { resolveEffectiveProjectConfig, resolveTemplateId, templateIdFromConfig, } from "./template-registry.js";
11
14
  export const JIRA_LOCAL_FILE_ORIGIN_KEYS = ["csvPath", "csv", "exportPath"];
12
15
  export const DESIGN_LOCAL_FILE_ORIGIN_KEYS = ["exportPath", "assetPath", "filePath"];
@@ -33,13 +36,6 @@ export async function checkProjectConfig(target) {
33
36
  validateWithSchema(projectFile, project, projectSchema, issues);
34
37
  const projectConfig = isObject(project) ? project : {};
35
38
  validateProjectTemplate(projectFile, projectConfig, issues);
36
- if (projectConfig.paths?.resources && !projectConfig.paths.raws) {
37
- warnings.push({
38
- file: projectFile,
39
- path: "/paths/resources",
40
- message: "paths.resources is deprecated; prefer paths.raws for immutable source facts",
41
- });
42
- }
43
39
  const moduleFiles = await findModuleConfigFiles(root, projectConfig);
44
40
  const moduleSchema = await readSchema(MODULE_SCHEMA);
45
41
  for (const file of moduleFiles) {
@@ -49,6 +45,7 @@ export async function checkProjectConfig(target) {
49
45
  }
50
46
  validateProjectBoundaries(root, projectConfig, projectFile, issues);
51
47
  await validateProjectReferences(root, projectConfig, projectFile, issues);
48
+ await validateSourceAdapterPolicies(root, projectConfig, projectFile, issues, warnings);
52
49
  return {
53
50
  ok: issues.length === 0,
54
51
  issues,
@@ -194,6 +191,9 @@ function validateProjectBoundaries(root, config, file, issues) {
194
191
  resolvePath(root, layout.playwrightRoot),
195
192
  ], file, "/automation/demo/bridge/executionFile", issues);
196
193
  }
194
+ if (demo?.auth?.storageState) {
195
+ validateUnderAny(root, interpolateModuleTemplate(demo.auth.storageState), playwrightAuthRoots(root, config, "__module__"), file, "/automation/demo/auth/storageState", issues);
196
+ }
197
197
  const rawRoot = resolvePath(root, layout.resourcesRoot);
198
198
  for (const entry of flattenProjectSources(config.sources)) {
199
199
  const { path: name, source } = entry;
@@ -214,6 +214,21 @@ function validateProjectBoundaries(root, config, file, issues) {
214
214
  }
215
215
  }
216
216
  }
217
+ for (const entry of flattenProjectResources(config)) {
218
+ const source = entry.source;
219
+ const resourcePath = `/resources/${config.resources?.indexOf(entry.resource) ?? 0}`;
220
+ const origin = inferSourceOrigin(source);
221
+ validateUnder(root, resolveSourceSnapshot(config, entry), rawRoot, file, `${resourcePath}/output/rawPath`, issues);
222
+ if (origin.method === "local" && source.origin?.path) {
223
+ validateProjectLocalFilePath(root, source.origin.path, file, `${resourcePath}/source/path`, issues);
224
+ }
225
+ for (const key of ADAPTER_LOCAL_FILE_ORIGIN_KEYS) {
226
+ const value = source.origin?.[key];
227
+ if (typeof value === "string" && value.trim().length > 0) {
228
+ validateProjectLocalFilePath(root, value, file, `${resourcePath}/source/${key}`, issues);
229
+ }
230
+ }
231
+ }
217
232
  if (config.staffing?.rolePool) {
218
233
  validateUnder(root, config.staffing.rolePool, resolvePath(root, ".zsk"), file, "/staffing/rolePool", issues);
219
234
  }
@@ -258,17 +273,192 @@ async function validateProjectReferences(root, config, file, issues) {
258
273
  message: "staffing rolePool file does not exist",
259
274
  });
260
275
  }
276
+ async function validateSourceAdapterPolicies(root, config, file, issues, warnings) {
277
+ const policy = await loadProviderPolicy(root);
278
+ for (const issue of policy.issues) {
279
+ issues.push({ file: policy.path ?? file, path: "", message: issue.replace(`${policy.path}: `, "") });
280
+ }
281
+ for (const warning of policy.warnings) {
282
+ warnings.push({ file: policy.path ?? file, path: "", message: warning.replace(`${policy.path}: `, "") });
283
+ }
284
+ for (const entry of flattenPrepareEntries(config)) {
285
+ const normalized = interpretSourceAdapter(entry.source);
286
+ const entryPath = entry.resource
287
+ ? `/resources/${config.resources?.indexOf(entry.resource) ?? 0}`
288
+ : `/sources/${entry.path}`;
289
+ for (const warning of normalized.warnings) {
290
+ warnings.push({ file, path: entryPath, message: warning });
291
+ }
292
+ for (const error of normalized.errors) {
293
+ issues.push({ file, path: entryPath, message: error });
294
+ }
295
+ if (normalized.mcpProviderName && normalized.adapterId) {
296
+ const mapping = policy.mappings.get(normalized.mcpProviderName);
297
+ if (mapping && mapping.adapter !== normalized.adapterId) {
298
+ issues.push({
299
+ file,
300
+ path: `${entryPath}/mcpProvider`,
301
+ message: `mcpProvider ${normalized.mcpProviderName} maps to adapter ${mapping.adapter}, but source adapter is ${normalized.adapterId}`,
302
+ });
303
+ }
304
+ }
305
+ }
306
+ }
261
307
  export function flattenProjectSources(sources) {
262
308
  const entries = [];
263
309
  visitSourceTree(sources, [], entries);
264
310
  return entries;
265
311
  }
312
+ export function flattenProjectResources(config) {
313
+ const resources = Array.isArray(config.resources) ? config.resources : [];
314
+ const entries = [];
315
+ for (const resource of resources) {
316
+ if (!isResourceConfig(resource))
317
+ continue;
318
+ const id = sourceSegmentSlug(resource.id);
319
+ const type = resource.type.trim();
320
+ const rawKind = resourceRawKind(type);
321
+ const snapshot = resolveResourceSnapshot(config, resource);
322
+ const source = resourceToSourceConfig(config, resource, snapshot);
323
+ entries.push({
324
+ id,
325
+ provider: id,
326
+ path: `resources/${id}`,
327
+ rawLane: rawKind,
328
+ area: resource.area?.trim() || defaultResourceArea(type),
329
+ segments: [rawKind, id],
330
+ source,
331
+ resource,
332
+ });
333
+ }
334
+ return entries;
335
+ }
336
+ export function flattenPrepareEntries(config) {
337
+ return [
338
+ ...flattenProjectResources(config),
339
+ ...flattenProjectSources(config.sources),
340
+ ];
341
+ }
266
342
  export function resolveSourceSnapshot(config, entry) {
267
343
  const explicit = entry.source.snapshot ?? entry.source.output;
268
344
  if (explicit)
269
345
  return explicit;
270
346
  return join(getWorkspacePath(config, "resourcesRoot"), ...sourceRawSegments(entry.segments, entry.provider), "source.md");
271
347
  }
348
+ function isResourceConfig(value) {
349
+ return isObject(value) &&
350
+ typeof value.id === "string" &&
351
+ value.id.trim().length > 0 &&
352
+ typeof value.type === "string" &&
353
+ value.type.trim().length > 0;
354
+ }
355
+ function resourceToSourceConfig(config, resource, snapshot) {
356
+ const providerName = typeof resource.provider === "string" ? resource.provider.trim() : undefined;
357
+ const providerProfile = providerName ? config.providers?.[providerName] : undefined;
358
+ const source = isObject(resource.source) ? { ...resource.source } : {};
359
+ const origin = resourceOrigin(config, resource, providerName, providerProfile, source);
360
+ const adapter = firstString(stringValue(source.adapter), typeof resource.provider === "object" ? resource.provider.adapter : undefined, providerProfile?.adapter);
361
+ const mcpProvider = firstString(stringValue(source.mcpProvider), stringValue(source.mcpServer), typeof resource.provider === "object" ? resource.provider.name : undefined, typeof resource.provider === "object" ? resource.provider.mcpProvider : undefined);
362
+ const metadata = {
363
+ ...(isObject(resource.metadata) ? resource.metadata : {}),
364
+ resourceId: resource.id,
365
+ resourceType: resource.type,
366
+ resourceArea: resource.area ?? defaultResourceArea(resource.type ?? ""),
367
+ providerProfile: providerName,
368
+ classify: resource.classify,
369
+ };
370
+ return {
371
+ kind: firstString(stringValue(source.kind), resource.type),
372
+ type: resource.type,
373
+ adapter,
374
+ provider: firstString(providerName, typeof resource.provider === "object" ? resource.provider.name : undefined),
375
+ mcpProvider,
376
+ snapshot,
377
+ metadata,
378
+ origin,
379
+ };
380
+ }
381
+ function resourceOrigin(config, resource, providerName, providerProfile, source) {
382
+ const providerObject = isObject(resource.provider) ? resource.provider : undefined;
383
+ const origin = {
384
+ ...pickProviderDefaults(providerProfile),
385
+ ...(isObject(source.origin) ? source.origin : {}),
386
+ ...source,
387
+ };
388
+ delete origin.origin;
389
+ const providerKind = firstString(providerObject?.kind, providerProfile?.adapter, providerProfile?.type, providerName);
390
+ if (!origin.kind)
391
+ origin.kind = firstString(stringValue(source.kind), providerKind, resource.type);
392
+ if (providerProfile?.baseUrl && !origin.baseUrl)
393
+ origin.baseUrl = providerProfile.baseUrl;
394
+ if (providerProfile?.auth && !origin.auth)
395
+ origin.auth = providerProfile.auth;
396
+ if (providerObject)
397
+ Object.assign(origin, providerObject);
398
+ if (resource.params)
399
+ Object.assign(origin, resource.params);
400
+ applyResourceQuery(origin, resource.query);
401
+ return origin;
402
+ }
403
+ function pickProviderDefaults(provider) {
404
+ if (!isObject(provider?.defaults))
405
+ return {};
406
+ return { ...provider.defaults };
407
+ }
408
+ function applyResourceQuery(origin, query) {
409
+ if (typeof query === "string" && query.trim()) {
410
+ origin.query = query.trim();
411
+ return;
412
+ }
413
+ if (!isObject(query))
414
+ return;
415
+ Object.assign(origin, query);
416
+ if (!origin.query && typeof query.jql === "string")
417
+ origin.query = query.jql;
418
+ if (!origin.jql && typeof query.jql === "string")
419
+ origin.jql = query.jql;
420
+ }
421
+ function resolveResourceSnapshot(config, resource) {
422
+ const explicit = resource.output?.rawPath;
423
+ if (explicit && looksLikeFilePath(explicit))
424
+ return explicit;
425
+ if (explicit)
426
+ return join(explicit, "snapshot.md");
427
+ return join(getWorkspacePath(config, "resourcesRoot"), resourceRawKind(resource.type ?? "resource"), sourceSegmentSlug(resource.id ?? "resource") || "resource", "snapshot.md");
428
+ }
429
+ function resourceRawKind(type) {
430
+ const slug = sourceSegmentSlug(type) || "resources";
431
+ if (["issue", "issues", "bug", "bugs", "ticket", "tickets"].includes(slug))
432
+ return "issues";
433
+ if (["repository", "repositories", "repo", "repos", "git", "git-submodule", "submodule"].includes(slug))
434
+ return "repositories";
435
+ return slug;
436
+ }
437
+ function defaultResourceArea(type) {
438
+ const slug = sourceSegmentSlug(type);
439
+ if (["issue", "issues", "bug", "bugs", "ticket", "tickets"].includes(slug))
440
+ return "Issues";
441
+ if (["repository", "repositories", "repo", "repos", "git", "git-submodule", "submodule"].includes(slug))
442
+ return "Repositories";
443
+ if (["design", "design-source", "figma", "modao"].includes(slug))
444
+ return "Design";
445
+ if (["document", "confluence", "prd", "srs"].includes(slug))
446
+ return "Confluence";
447
+ return "Custom";
448
+ }
449
+ function looksLikeFilePath(value) {
450
+ return /(^|[/\\])[^/\\]+\.[A-Za-z0-9]+$/.test(value);
451
+ }
452
+ function firstString(...values) {
453
+ for (const value of values) {
454
+ if (typeof value === "string" && value.trim().length > 0)
455
+ return value.trim();
456
+ }
457
+ return undefined;
458
+ }
459
+ function stringValue(value) {
460
+ return typeof value === "string" ? value : undefined;
461
+ }
272
462
  export function resolveSourceIndex(config, entry) {
273
463
  return join(getWorkspacePath(config, "resourcesRoot"), ...sourceRawSegments(entry.segments, entry.provider), "index.md");
274
464
  }
@@ -411,13 +601,6 @@ function validateZskWorkspaceRoot(root, value, file, path, issues) {
411
601
  function interpolateModuleTemplate(value) {
412
602
  return value.split("{module}").join("__module__");
413
603
  }
414
- function resolvePath(root, value) {
415
- return isAbsolute(value) ? value : resolve(root, value);
416
- }
417
- function isInside(root, target) {
418
- const rel = relative(root, target);
419
- return rel === "" || (!rel.startsWith("..") && !isAbsolute(rel));
420
- }
421
604
  function formatSchemaPath(error) {
422
605
  const path = error.instancePath || "/";
423
606
  if (error.keyword === "required" && typeof error.params === "object") {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { ProjectConfig } from "./config.js";
2
+ export type ResolvedDemoAuthConfig = {
3
+ required: boolean;
4
+ loginUrl?: string;
5
+ storageState: string;
6
+ envFiles: string[];
7
+ env: Record<string, string>;
8
+ selectors: Record<string, string>;
9
+ };
10
+ export type DemoLoginHelperConfig = {
11
+ loginUrl: string;
12
+ storageState: string;
13
+ envFiles: string[];
14
+ env: Record<string, string>;
15
+ selectors: Record<string, string>;
16
+ };
17
+ export type AuthStateValidation = {
18
+ storageState: string;
19
+ status: "missing" | "valid" | "invalid";
20
+ validatedAt: string;
21
+ cookies: number;
22
+ origins: number;
23
+ message: string;
24
+ loginBypassEvidence?: string;
25
+ };
26
+ export declare function resolveDemoAuthConfig(config: ProjectConfig, moduleId: string): ResolvedDemoAuthConfig;
27
+ export declare function demoAuthRoots(target: string, config: ProjectConfig, moduleId: string): string[];
28
+ export declare function renderDemoLoginHelper(auth: DemoLoginHelperConfig): string;
29
+ export declare function demoAuthRuntimeLines(): string[];
30
+ export declare function validatePlaywrightAuthState(target: string, storageState: string, validatedAt: string): Promise<AuthStateValidation>;
@@ -0,0 +1,213 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { resolve } from "node:path";
3
+ import { playwrightAuthRoots } from "./workspace-conformance.js";
4
+ import { getWorkspacePath, interpolateModulePath } from "./workspace-layout.js";
5
+ export function resolveDemoAuthConfig(config, moduleId) {
6
+ const auth = config.automation?.demo?.auth;
7
+ return {
8
+ required: auth?.required ?? true,
9
+ loginUrl: auth?.loginUrl,
10
+ storageState: interpolate(auth?.storageState ?? getWorkspacePath(config, "playwrightAuthState", { module: moduleId }), moduleId),
11
+ envFiles: uniqueStrings(auth?.envFiles ?? []),
12
+ env: normalizeStringRecord(auth?.env),
13
+ selectors: normalizeStringRecord(auth?.selectors),
14
+ };
15
+ }
16
+ export function demoAuthRoots(target, config, moduleId) {
17
+ return playwrightAuthRoots(target, config, moduleId);
18
+ }
19
+ export function renderDemoLoginHelper(auth) {
20
+ return [
21
+ `import { chromium } from "playwright";`,
22
+ `import { existsSync, mkdirSync, readFileSync } from "node:fs";`,
23
+ `import { dirname, resolve } from "node:path";`,
24
+ `import { homedir } from "node:os";`,
25
+ ``,
26
+ `const envFiles = ${JSON.stringify(auth.envFiles)};`,
27
+ `const authEnv = ${JSON.stringify(auth.env)};`,
28
+ `const authSelectors = ${JSON.stringify(auth.selectors)};`,
29
+ `const targetUrl = process.env.ZSK_DEMO_LOGIN_URL ?? ${JSON.stringify(auth.loginUrl)};`,
30
+ `const storageStatePath = process.env.ZSK_PLAYWRIGHT_STORAGE_STATE ?? ${JSON.stringify(auth.storageState)};`,
31
+ ``,
32
+ ...demoAuthRuntimeLines(),
33
+ ``,
34
+ `if (!targetUrl) throw new Error("Set automation.demo.auth.loginUrl, ZSK_DEMO_LOGIN_URL, or pass --url when generating this helper.");`,
35
+ `loadConfiguredEnvFiles();`,
36
+ `const browser = await chromium.launch({ headless: false });`,
37
+ `const context = await browser.newContext();`,
38
+ `const page = await context.newPage();`,
39
+ `await page.goto(targetUrl, { waitUntil: "domcontentloaded" });`,
40
+ `const filledKeys = await fillConfiguredLogin(page);`,
41
+ `if (filledKeys.length) console.log(\`Filled login fields from env keys: ${"${filledKeys.join(', ')}"}\`);`,
42
+ `console.log("Complete login in the opened browser, then press Enter here to save storageState.");`,
43
+ `await new Promise((resolve) => process.stdin.once("data", resolve));`,
44
+ `mkdirSync(dirname(storageStatePath), { recursive: true });`,
45
+ `await context.storageState({ path: storageStatePath });`,
46
+ `console.log(\`Saved Playwright storageState to ${"${storageStatePath}"}\`);`,
47
+ `await browser.close();`,
48
+ ``,
49
+ ].join("\n");
50
+ }
51
+ export function demoAuthRuntimeLines() {
52
+ return [
53
+ `function expandHome(path) {`,
54
+ ` return path.startsWith("~/") ? resolve(homedir(), path.slice(2)) : path;`,
55
+ `}`,
56
+ ``,
57
+ `function parseEnvLine(line) {`,
58
+ ` const trimmed = line.trim();`,
59
+ ` if (!trimmed || trimmed.startsWith("#")) return null;`,
60
+ ` const body = trimmed.startsWith("export ") ? trimmed.slice(7).trim() : trimmed;`,
61
+ ` const match = /^([A-Za-z_][A-Za-z0-9_]*)=(.*)$/.exec(body);`,
62
+ ` if (!match) return null;`,
63
+ ` let value = match[2].trim();`,
64
+ " if (/[`]|\\$\\(/.test(value)) return null;",
65
+ ` const hash = value.search(/\\s+#/);`,
66
+ ` if (hash >= 0) value = value.slice(0, hash).trim();`,
67
+ ` if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {`,
68
+ ` value = value.slice(1, -1);`,
69
+ ` }`,
70
+ ` return { key: match[1], value };`,
71
+ `}`,
72
+ ``,
73
+ `function loadConfiguredEnvFiles() {`,
74
+ ` for (const file of envFiles) {`,
75
+ ` const expanded = expandHome(file);`,
76
+ ` if (!existsSync(expanded)) continue;`,
77
+ ` for (const line of readFileSync(expanded, "utf8").split(/\\r?\\n/)) {`,
78
+ ` const parsed = parseEnvLine(line);`,
79
+ ` if (parsed && process.env[parsed.key] === undefined) process.env[parsed.key] = parsed.value;`,
80
+ ` }`,
81
+ ` }`,
82
+ `}`,
83
+ ``,
84
+ `function authEnvValue(...names) {`,
85
+ ` for (const name of names) {`,
86
+ ` const key = authEnv[name];`,
87
+ ` if (key && process.env[key]) return { key, value: process.env[key] };`,
88
+ ` }`,
89
+ ` return null;`,
90
+ `}`,
91
+ ``,
92
+ `async function fillIfVisible(page, selector, credential) {`,
93
+ ` if (!selector || !credential?.value) return null;`,
94
+ ` const locator = page.locator(selector).first();`,
95
+ ` if (!(await locator.isVisible({ timeout: 1000 }).catch(() => false))) return null;`,
96
+ ` await locator.fill(credential.value);`,
97
+ ` return credential.key;`,
98
+ `}`,
99
+ ``,
100
+ `async function clickIfVisible(page, selector) {`,
101
+ ` if (!selector) return false;`,
102
+ ` const locator = page.locator(selector).first();`,
103
+ ` if (!(await locator.isVisible({ timeout: 1000 }).catch(() => false))) return false;`,
104
+ ` await locator.click();`,
105
+ ` return true;`,
106
+ `}`,
107
+ ``,
108
+ `async function fillConfiguredLogin(page) {`,
109
+ ` const filled = [];`,
110
+ ` const username = authEnvValue("username", "user", "email", "account");`,
111
+ ` const password = authEnvValue("password", "pass");`,
112
+ ` const otp = authEnvValue("otp", "mfa", "code");`,
113
+ ` const usernameSelector = authSelectors.username ?? "input[type='email'], input[name='email'], input[name='username'], input[name='account'], input[autocomplete='username']";`,
114
+ ` const passwordSelector = authSelectors.password ?? "input[type='password'], input[autocomplete='current-password']";`,
115
+ ` const otpSelector = authSelectors.otp;`,
116
+ ` const usernameKey = await fillIfVisible(page, usernameSelector, username);`,
117
+ ` const passwordKey = await fillIfVisible(page, passwordSelector, password);`,
118
+ ` const otpKey = await fillIfVisible(page, otpSelector, otp);`,
119
+ ` for (const key of [usernameKey, passwordKey, otpKey]) if (key) filled.push(key);`,
120
+ ` if (filled.length && authSelectors.submit) await clickIfVisible(page, authSelectors.submit);`,
121
+ ` return filled;`,
122
+ `}`,
123
+ ];
124
+ }
125
+ export async function validatePlaywrightAuthState(target, storageState, validatedAt) {
126
+ const file = resolve(target, storageState);
127
+ let parsed;
128
+ try {
129
+ parsed = JSON.parse(await readFile(file, "utf8"));
130
+ }
131
+ catch (error) {
132
+ const code = typeof error === "object" && error !== null && "code" in error
133
+ ? String(error.code)
134
+ : "";
135
+ if (code === "ENOENT") {
136
+ return {
137
+ storageState,
138
+ status: "missing",
139
+ validatedAt,
140
+ cookies: 0,
141
+ origins: 0,
142
+ message: "storageState file does not exist yet; generated specs fail fast unless ZSK_DEMO_LOGIN=1 bootstraps it or ZSK_DEMO_AUTH=none explicitly marks the flow public",
143
+ };
144
+ }
145
+ return {
146
+ storageState,
147
+ status: "invalid",
148
+ validatedAt,
149
+ cookies: 0,
150
+ origins: 0,
151
+ message: "storageState file is not valid JSON",
152
+ };
153
+ }
154
+ if (!isRecord(parsed)) {
155
+ return {
156
+ storageState,
157
+ status: "invalid",
158
+ validatedAt,
159
+ cookies: 0,
160
+ origins: 0,
161
+ message: "storageState JSON must be an object",
162
+ };
163
+ }
164
+ const cookies = Array.isArray(parsed.cookies) ? parsed.cookies.length : -1;
165
+ const origins = Array.isArray(parsed.origins) ? parsed.origins.length : -1;
166
+ if (cookies < 0 || origins < 0) {
167
+ return {
168
+ storageState,
169
+ status: "invalid",
170
+ validatedAt,
171
+ cookies: Math.max(cookies, 0),
172
+ origins: Math.max(origins, 0),
173
+ message: "storageState must include Playwright cookies and origins arrays",
174
+ };
175
+ }
176
+ if (cookies === 0 && origins === 0) {
177
+ return {
178
+ storageState,
179
+ status: "invalid",
180
+ validatedAt,
181
+ cookies,
182
+ origins,
183
+ message: "storageState contains no cookies or localStorage origins, so it cannot prove reusable login/session credentials",
184
+ };
185
+ }
186
+ return {
187
+ storageState,
188
+ status: "valid",
189
+ validatedAt,
190
+ cookies,
191
+ origins,
192
+ message: "storageState is parseable and contains reusable session material",
193
+ loginBypassEvidence: "Generated Playwright specs can reuse this state through ZSK_PLAYWRIGHT_STORAGE_STATE.",
194
+ };
195
+ }
196
+ function normalizeStringRecord(value) {
197
+ const result = {};
198
+ for (const [key, item] of Object.entries(value ?? {})) {
199
+ if (typeof item === "string" && item.trim())
200
+ result[key] = item.trim();
201
+ }
202
+ return result;
203
+ }
204
+ function interpolate(value, moduleId) {
205
+ return interpolateModulePath(value, moduleId);
206
+ }
207
+ function uniqueStrings(values) {
208
+ return Array.from(new Set(values.map((value) => value.trim()).filter(Boolean)));
209
+ }
210
+ function isRecord(value) {
211
+ return typeof value === "object" && value !== null && !Array.isArray(value);
212
+ }
213
+ //# sourceMappingURL=demo-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-auth.js","sourceRoot":"","sources":["../../src/core/demo-auth.ts"],"names":[],"mappings":"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"}