bsmnt 0.5.0 → 0.6.0

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 (123) hide show
  1. package/README.md +1 -0
  2. package/dist/application/add-hooks/index.d.ts.map +1 -1
  3. package/dist/application/add-hooks/index.js +1 -0
  4. package/dist/application/add-hooks/index.js.map +1 -1
  5. package/dist/application/add-integration/index.d.ts +13 -6
  6. package/dist/application/add-integration/index.d.ts.map +1 -1
  7. package/dist/application/add-integration/index.js +145 -62
  8. package/dist/application/add-integration/index.js.map +1 -1
  9. package/dist/application/create-project/build-context.d.ts +3 -1
  10. package/dist/application/create-project/build-context.d.ts.map +1 -1
  11. package/dist/application/create-project/build-context.js +2 -1
  12. package/dist/application/create-project/build-context.js.map +1 -1
  13. package/dist/application/create-project/index.d.ts +3 -1
  14. package/dist/application/create-project/index.d.ts.map +1 -1
  15. package/dist/application/create-project/index.js +4 -2
  16. package/dist/application/create-project/index.js.map +1 -1
  17. package/dist/application/install-skills/index.js +1 -1
  18. package/dist/application/install-skills/index.js.map +1 -1
  19. package/dist/core/create/execute-plan.d.ts +4 -0
  20. package/dist/core/create/execute-plan.d.ts.map +1 -1
  21. package/dist/core/create/execute-plan.js +8 -0
  22. package/dist/core/create/execute-plan.js.map +1 -1
  23. package/dist/core/create/types.d.ts +2 -0
  24. package/dist/core/create/types.d.ts.map +1 -1
  25. package/dist/domain/skills.d.ts +26 -0
  26. package/dist/domain/skills.d.ts.map +1 -1
  27. package/dist/domain/skills.js +13 -0
  28. package/dist/domain/skills.js.map +1 -1
  29. package/dist/index.js +26 -8
  30. package/dist/index.js.map +1 -1
  31. package/dist/infrastructure/create/executor.d.ts.map +1 -1
  32. package/dist/infrastructure/create/executor.js +5 -0
  33. package/dist/infrastructure/create/executor.js.map +1 -1
  34. package/dist/infrastructure/create/lifecycle-registry.d.ts.map +1 -1
  35. package/dist/infrastructure/create/lifecycle-registry.js +2 -0
  36. package/dist/infrastructure/create/lifecycle-registry.js.map +1 -1
  37. package/dist/infrastructure/create/setup-agent.d.ts +2 -0
  38. package/dist/infrastructure/create/setup-agent.d.ts.map +1 -1
  39. package/dist/infrastructure/create/setup-agent.js +9 -8
  40. package/dist/infrastructure/create/setup-agent.js.map +1 -1
  41. package/dist/infrastructure/create/setup-dotenvx.d.ts +41 -0
  42. package/dist/infrastructure/create/setup-dotenvx.d.ts.map +1 -0
  43. package/dist/infrastructure/create/setup-dotenvx.js +502 -0
  44. package/dist/infrastructure/create/setup-dotenvx.js.map +1 -0
  45. package/dist/infrastructure/create/setup-sanity.d.ts +13 -1
  46. package/dist/infrastructure/create/setup-sanity.d.ts.map +1 -1
  47. package/dist/infrastructure/create/setup-sanity.js +71 -31
  48. package/dist/infrastructure/create/setup-sanity.js.map +1 -1
  49. package/dist/modules/features/cms/sanity/config.d.ts.map +1 -1
  50. package/dist/modules/features/cms/sanity/config.js +2 -1
  51. package/dist/modules/features/cms/sanity/config.js.map +1 -1
  52. package/dist/modules/features/cms/sanity/mergers/layout.d.ts.map +1 -1
  53. package/dist/modules/features/cms/sanity/mergers/layout.js +10 -0
  54. package/dist/modules/features/cms/sanity/mergers/layout.js.map +1 -1
  55. package/dist/modules/features/env/dotenvx/config.d.ts +13 -0
  56. package/dist/modules/features/env/dotenvx/config.d.ts.map +1 -0
  57. package/dist/modules/features/env/dotenvx/config.js +47 -0
  58. package/dist/modules/features/env/dotenvx/config.js.map +1 -0
  59. package/dist/paths.d.ts +8 -0
  60. package/dist/paths.d.ts.map +1 -1
  61. package/dist/paths.js +8 -0
  62. package/dist/paths.js.map +1 -1
  63. package/package.json +5 -1
  64. package/src/agent-skills/json-ld/SKILL.md +85 -0
  65. package/src/agent-skills/manage-env/SKILL.md +67 -0
  66. package/src/modules/features/cms/sanity/files/app/blog/[slug]/page.tsx +48 -21
  67. package/src/modules/features/cms/sanity/files/components/sanity/structured-data.tsx +83 -0
  68. package/src/modules/features/cms/sanity/files/lib/integrations/sanity/queries.ts +14 -0
  69. package/src/modules/features/cms/sanity/files/lib/integrations/sanity/sanity.config.ts +19 -3
  70. package/src/modules/features/cms/sanity/files/lib/integrations/sanity/sanity.types.ts +1 -0
  71. package/src/modules/features/cms/sanity/files/lib/integrations/sanity/schemas/index.ts +36 -1
  72. package/src/modules/features/cms/sanity/files/lib/integrations/sanity/schemas/metadata.ts +12 -1
  73. package/src/modules/features/cms/sanity/files/lib/integrations/sanity/schemas/structured-data-blocks.ts +416 -0
  74. package/src/modules/features/cms/sanity/files/lib/integrations/sanity/schemas/structured-data.ts +100 -0
  75. package/src/modules/features/cms/sanity/files/lib/integrations/sanity/structure.ts +37 -2
  76. package/src/modules/features/cms/sanity/files/lib/integrations/sanity/utils/page-json-ld.ts +208 -0
  77. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/components/same-as-input.tsx +66 -0
  78. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/fetchers/layout.ts +20 -1
  79. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/icons.ts +17 -0
  80. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/queries.ts +22 -0
  81. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/index.ts +28 -0
  82. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/layout/company-data.ts +8 -0
  83. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/layout/structured-data.ts +124 -0
  84. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/shared/metadata.ts +12 -1
  85. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/shared/structured-data-blocks.ts +436 -0
  86. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/singletons.ts +13 -1
  87. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/utils/page-json-ld.ts +208 -0
  88. package/src/modules/features/cms/sanity-pagebuilder/files/lib/utils/json-ld.tsx +324 -15
  89. package/src/modules/features/env/dotenvx/files/decrypt-env.mjs +45 -0
  90. package/src/modules/features/env/dotenvx/files/gitleaks.yml +25 -0
  91. package/src/modules/features/env/dotenvx/files/instrumentation.ts +14 -0
  92. package/src/modules/features/env/dotenvx/files/push-keys.mjs +129 -0
  93. package/src/modules/features/env/dotenvx/files/save-key.mjs +108 -0
  94. package/src/modules/features/env/dotenvx/files/setup-env.mjs +67 -0
  95. package/src/modules/features/env/dotenvx/files/vercelignore +4 -0
  96. package/src/modules/features/env/dotenvx/files/write-env.mjs +47 -0
  97. package/src/templates/next-default/.env.example +14 -6
  98. package/src/templates/next-default/.github/workflows/ci.yml +22 -1
  99. package/src/templates/next-default/.vscode/extensions.json +3 -0
  100. package/src/templates/next-default/README.md +31 -0
  101. package/src/templates/next-default/lib/utils/json-ld.tsx +327 -21
  102. package/src/templates/next-default/next.config.ts +6 -0
  103. package/src/templates/next-experiments/.env.example +14 -6
  104. package/src/templates/next-experiments/.github/workflows/ci.yml +22 -1
  105. package/src/templates/next-experiments/.vscode/extensions.json +3 -0
  106. package/src/templates/next-experiments/README.md +31 -0
  107. package/src/templates/next-experiments/lib/utils/json-ld.tsx +327 -21
  108. package/src/templates/next-experiments/next.config.ts +6 -0
  109. package/src/templates/next-pagebuilder/.env.example +19 -1
  110. package/src/templates/next-pagebuilder/.github/workflows/ci.yml +21 -1
  111. package/src/templates/next-pagebuilder/.vscode/extensions.json +3 -0
  112. package/src/templates/next-pagebuilder/README.md +31 -0
  113. package/src/templates/next-pagebuilder/components/layout/json-ld/index.tsx +32 -19
  114. package/src/templates/next-pagebuilder/components/page-document/index.tsx +38 -0
  115. package/src/templates/next-pagebuilder/lib/integrations/sanity/sanity.types.ts +36 -2
  116. package/src/templates/next-pagebuilder/next.config.ts +6 -0
  117. package/src/templates/next-webgl/.env.example +14 -6
  118. package/src/templates/next-webgl/.github/workflows/ci.yml +22 -1
  119. package/src/templates/next-webgl/.vscode/extensions.json +3 -0
  120. package/src/templates/next-webgl/README.md +31 -0
  121. package/src/templates/next-webgl/lib/utils/json-ld.tsx +327 -21
  122. package/src/templates/next-webgl/next.config.ts +6 -0
  123. package/src/modules/features/cms/sanity/files/lib/utils/json-ld.tsx +0 -244
@@ -1,4 +1,5 @@
1
1
  import { execFileSync } from "node:child_process";
2
+ import { homedir } from "node:os";
2
3
  import path from "node:path";
3
4
  import fs from "fs-extra";
4
5
  import ora from "ora";
@@ -56,6 +57,32 @@ async function fetchOrganizations(authToken) {
56
57
  }
57
58
  return (await response.json());
58
59
  }
60
+ /**
61
+ * Extract the project ID from `sanity projects create --json` output. The CLI
62
+ * prints log lines (e.g. "Dataset created successfully") before the JSON, so
63
+ * parse the embedded `{...}` object; fall back to a regex for non-JSON output.
64
+ * Returns null when no ID can be found.
65
+ */
66
+ export function parseProjectId(output) {
67
+ const cleanOutput = stripAnsi(output).trim();
68
+ const start = cleanOutput.indexOf("{");
69
+ const end = cleanOutput.lastIndexOf("}");
70
+ if (start !== -1 && end > start) {
71
+ try {
72
+ const parsed = JSON.parse(cleanOutput.slice(start, end + 1));
73
+ const id = parsed.projectId ?? parsed.id ?? parsed.project?.id;
74
+ if (id)
75
+ return id;
76
+ }
77
+ catch {
78
+ // Fall through to regex parsing.
79
+ }
80
+ }
81
+ const textMatch = cleanOutput.match(/"projectId"\s*:\s*"([^"]+)"/i) ??
82
+ cleanOutput.match(/"id"\s*:\s*"([^"]+)"/i) ??
83
+ cleanOutput.match(/\bID:\s*(\S+)/i);
84
+ return textMatch?.[1] ?? null;
85
+ }
59
86
  /**
60
87
  * Create a Sanity project and return the project ID.
61
88
  * Uses execFileSync to avoid shell injection via project name.
@@ -75,30 +102,36 @@ function createSanityProject(projectName, organizationId, cli) {
75
102
  encoding: "utf-8",
76
103
  timeout: 120_000,
77
104
  });
78
- const cleanOutput = stripAnsi(output).trim();
105
+ const projectId = parseProjectId(output);
106
+ if (projectId)
107
+ return projectId;
108
+ throw new Error(`Could not parse project ID from Sanity CLI output:\n${output}`);
109
+ }
110
+ /** Read the auth token Sanity persists in its CLI config (no CLI invocation). */
111
+ function readConfigAuthToken() {
112
+ const base = process.env.XDG_CONFIG_HOME || path.join(homedir(), ".config");
79
113
  try {
80
- const parsed = JSON.parse(cleanOutput);
81
- const parsedProjectId = parsed?.projectId ?? parsed?.id ?? parsed?.project?.id;
82
- if (parsedProjectId)
83
- return parsedProjectId;
114
+ const json = JSON.parse(fs.readFileSync(path.join(base, "sanity", "config.json"), "utf-8"));
115
+ return json.authToken?.trim() || null;
84
116
  }
85
117
  catch {
86
- // Fall through to regex parsing for non-JSON output.
118
+ return null;
87
119
  }
88
- const textMatch = cleanOutput.match(/ID:\s*(\S+)/i) ??
89
- cleanOutput.match(/"id"\s*:\s*"([^"]+)"/i);
90
- if (textMatch?.[1])
91
- return textMatch[1];
92
- throw new Error(`Could not parse project ID from Sanity CLI output:\n${output}`);
93
120
  }
94
- /** Get the user's Sanity auth token from the CLI debug output. */
121
+ /**
122
+ * Get the user's Sanity auth token. Prefers the persisted CLI config (robust
123
+ * across CLI versions); falls back to scraping `sanity debug --secrets`.
124
+ */
95
125
  function getAuthToken(cli) {
126
+ const fromConfig = readConfigAuthToken();
127
+ if (fromConfig)
128
+ return fromConfig;
96
129
  const output = execFileSync(cli.command, ["debug", "--secrets"], {
97
130
  encoding: "utf-8",
98
131
  timeout: 30_000,
99
132
  });
100
- const clean = stripAnsi(output);
101
- const match = clean.match(/Auth token:\s*'([^']+)'/);
133
+ // Token may be wrapped in quotes and/or ANSI color; tolerate both.
134
+ const match = stripAnsi(output).match(/Auth token:\s*['"]?([^'"\s]+)/);
102
135
  if (!match?.[1]) {
103
136
  throw new Error("Could not extract auth token from Sanity CLI.");
104
137
  }
@@ -132,11 +165,10 @@ async function createApiToken(projectId, authToken) {
132
165
  return data.key;
133
166
  }
134
167
  /**
135
- * Write .env.local with Sanity credentials.
136
- * Appends to existing file if present.
168
+ * Write Sanity credentials into the given env file. Appends if present.
137
169
  */
138
- async function writeEnvLocal(targetDir, projectId, apiToken) {
139
- const envPath = path.join(targetDir, ".env.local");
170
+ async function writeEnvCredentials(targetDir, file, projectId, apiToken) {
171
+ const envPath = path.join(targetDir, file);
140
172
  const sanityBlock = `# Sanity CMS
141
173
  NEXT_PUBLIC_SANITY_PROJECT_ID=${projectId}
142
174
  NEXT_PUBLIC_SANITY_DATASET=production
@@ -194,7 +226,7 @@ async function ensureGitignore(targetDir) {
194
226
  * 3. Organization selection
195
227
  * 4. Project creation
196
228
  * 5. API token creation
197
- * 6. .env.local generation
229
+ * 6. Credential write (`.env` with dotenvx, else `.env.local`)
198
230
  * 7. Connection verification
199
231
  *
200
232
  * @param targetDir - Absolute path to the project directory
@@ -203,10 +235,15 @@ async function ensureGitignore(targetDir) {
203
235
  */
204
236
  export async function setupSanity(targetDir, options = {}) {
205
237
  console.log();
238
+ // With dotenvx, credentials go straight into the committed `.env` (encrypted
239
+ // afterward); otherwise into the gitignored `.env.local`.
240
+ const envFile = options.dotenvx ? ".env" : ".env.local";
206
241
  const { wantSetup } = await prompts({
207
242
  type: "confirm",
208
243
  name: "wantSetup",
209
- message: "Set up Sanity project automatically? (creates project, tokens, .env.local)",
244
+ message: options.dotenvx
245
+ ? "Set up Sanity project automatically? (creates project + tokens, encrypted into .env)"
246
+ : "Set up Sanity project automatically? (creates project, tokens, .env.local)",
210
247
  initial: true,
211
248
  });
212
249
  if (!wantSetup) {
@@ -342,15 +379,15 @@ export async function setupSanity(targetDir, options = {}) {
342
379
  apiSpinner.fail(pc.red(`Failed to create API token: ${msg}`));
343
380
  return false;
344
381
  }
345
- // Step 7: Write .env.local
346
- const envSpinner = ora("Writing .env.local...").start();
382
+ // Step 7: Write credentials
383
+ const envSpinner = ora(`Writing ${envFile}...`).start();
347
384
  try {
348
- await writeEnvLocal(targetDir, projectId, apiToken);
349
- envSpinner.succeed(pc.green(".env.local configured with Sanity credentials."));
385
+ await writeEnvCredentials(targetDir, envFile, projectId, apiToken);
386
+ envSpinner.succeed(pc.green(`${envFile} configured with Sanity credentials.`));
350
387
  }
351
388
  catch (e) {
352
389
  const msg = e instanceof Error ? e.message : String(e);
353
- envSpinner.fail(pc.red(`Failed to write .env.local: ${msg}`));
390
+ envSpinner.fail(pc.red(`Failed to write ${envFile}: ${msg}`));
354
391
  return false;
355
392
  }
356
393
  // Step 8: Verify connection
@@ -362,12 +399,15 @@ export async function setupSanity(targetDir, options = {}) {
362
399
  else {
363
400
  verifySpinner.warn(pc.yellow("Could not verify connection. Check credentials after bun install."));
364
401
  }
365
- // Step 9: Ensure .env.local is gitignored
366
- try {
367
- await ensureGitignore(targetDir);
368
- }
369
- catch {
370
- // Non-critical, don't block
402
+ // Step 9: Ensure .env.local is gitignored. Skipped when writing `.env` —
403
+ // dotenvx owns that file's gitignore (it commits it encrypted).
404
+ if (envFile === ".env.local") {
405
+ try {
406
+ await ensureGitignore(targetDir);
407
+ }
408
+ catch {
409
+ // Non-critical, don't block
410
+ }
371
411
  }
372
412
  console.log(pc.green(`\n Sanity project "${projectName}" (${projectId}) is ready.`));
373
413
  console.log(pc.dim(` Manage at: https://sanity.io/manage/project/${projectId}`));
@@ -1 +1 @@
1
- {"version":3,"file":"setup-sanity.js","sourceRoot":"","sources":["../../../src/infrastructure/create/setup-sanity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-sanity.js","sourceRoot":"","sources":["../../../src/infrastructure/create/setup-sanity.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,YAAY,EAAE,uBA6D1B,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,YAAY,EAAE,uBA8D1B,CAAC"}
@@ -9,6 +9,7 @@ export const sanityConfig = {
9
9
  "@portabletext/markdown": "^1.1.3",
10
10
  "@portabletext/types": "^2.0.13",
11
11
  "@sanity/asset-utils": "^2.3.0",
12
+ "@sanity/icons": "^3.7.4",
12
13
  "@sanity/image-url": "^2.1.1",
13
14
  "@sanity/visual-editing": "^5.4.3",
14
15
  "@sanity/vision": "^5.30.0",
@@ -30,6 +31,7 @@ export const sanityConfig = {
30
31
  },
31
32
  additivePaths: [
32
33
  "lib/integrations/sanity",
34
+ "components/sanity",
33
35
  "components/ui/sanity-image",
34
36
  "app/api/draft-mode",
35
37
  "app/api/revalidate",
@@ -40,7 +42,6 @@ export const sanityConfig = {
40
42
  "app/sitemap.md",
41
43
  "lib/utils/rss.ts",
42
44
  "lib/utils/url.ts",
43
- "lib/utils/json-ld.tsx",
44
45
  "lib/utils/metadata.ts",
45
46
  "lib/utils/portable-text-to-markdown.ts",
46
47
  "lib/scripts/generate-page.ts",
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,CAAC,MAAM,YAAY,GAA4B;IACpD,IAAI,EAAE,QAAQ;IAEd,YAAY,EAAE;QACb,gBAAgB,EAAE,QAAQ;QAC1B,wBAAwB,EAAE,QAAQ;QAClC,qBAAqB,EAAE,SAAS;QAChC,qBAAqB,EAAE,QAAQ;QAC/B,mBAAmB,EAAE,QAAQ;QAC7B,wBAAwB,EAAE,QAAQ;QAClC,gBAAgB,EAAE,SAAS;QAC3B,aAAa,EAAE,UAAU;QACzB,MAAM,EAAE,SAAS;QACjB,qBAAqB,EAAE,QAAQ;KAC/B;IAED,eAAe,EAAE;QAChB,YAAY,EAAE,QAAQ;KACtB;IAED,OAAO,EAAE;QACR,gBAAgB,EACf,wFAAwF;QACzF,gBAAgB,EACf,0LAA0L;QAC3L,MAAM,EAAE,wBAAwB;QAChC,GAAG,EAAE,0BAA0B;QAC/B,QAAQ,EAAE,wBAAwB;QAClC,KAAK,EAAE,YAAY;QACnB,YAAY,EAAE,uCAAuC;KACrD;IAED,aAAa,EAAE;QACd,yBAAyB;QACzB,4BAA4B;QAC5B,oBAAoB;QACpB,oBAAoB;QACpB,YAAY;QACZ,cAAc;QACd,UAAU;QACV,cAAc;QACd,gBAAgB;QAChB,kBAAkB;QAClB,kBAAkB;QAClB,uBAAuB;QACvB,uBAAuB;QACvB,wCAAwC;QACxC,8BAA8B;QAC9B,gCAAgC;QAChC,iCAAiC;QACjC,4BAA4B;QAC5B,UAAU;KACV;IAED,UAAU,EAAE;QACX,gBAAgB;QAChB,0BAA0B;QAC1B,uCAAuC;QACvC,0BAA0B;QAC1B,WAAW;KACX;CACD,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,CAAC,MAAM,YAAY,GAA4B;IACpD,IAAI,EAAE,QAAQ;IAEd,YAAY,EAAE;QACb,gBAAgB,EAAE,QAAQ;QAC1B,wBAAwB,EAAE,QAAQ;QAClC,qBAAqB,EAAE,SAAS;QAChC,qBAAqB,EAAE,QAAQ;QAC/B,eAAe,EAAE,QAAQ;QACzB,mBAAmB,EAAE,QAAQ;QAC7B,wBAAwB,EAAE,QAAQ;QAClC,gBAAgB,EAAE,SAAS;QAC3B,aAAa,EAAE,UAAU;QACzB,MAAM,EAAE,SAAS;QACjB,qBAAqB,EAAE,QAAQ;KAC/B;IAED,eAAe,EAAE;QAChB,YAAY,EAAE,QAAQ;KACtB;IAED,OAAO,EAAE;QACR,gBAAgB,EACf,wFAAwF;QACzF,gBAAgB,EACf,0LAA0L;QAC3L,MAAM,EAAE,wBAAwB;QAChC,GAAG,EAAE,0BAA0B;QAC/B,QAAQ,EAAE,wBAAwB;QAClC,KAAK,EAAE,YAAY;QACnB,YAAY,EAAE,uCAAuC;KACrD;IAED,aAAa,EAAE;QACd,yBAAyB;QACzB,mBAAmB;QACnB,4BAA4B;QAC5B,oBAAoB;QACpB,oBAAoB;QACpB,YAAY;QACZ,cAAc;QACd,UAAU;QACV,cAAc;QACd,gBAAgB;QAChB,kBAAkB;QAClB,kBAAkB;QAClB,uBAAuB;QACvB,wCAAwC;QACxC,8BAA8B;QAC9B,gCAAgC;QAChC,iCAAiC;QACjC,4BAA4B;QAC5B,UAAU;KACV;IAED,UAAU,EAAE;QACX,gBAAgB;QAChB,0BAA0B;QAC1B,uCAAuC;QACvC,0BAA0B;QAC1B,WAAW;KACX;CACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/features/cms/sanity/mergers/layout.ts"],"names":[],"mappings":"AA2DA,UAAU,kBAAkB;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,WAAW;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAChC,YAAY,EAAE,MAAM,EACpB,EAAE,SAAS,EAAE,UAAU,EAAE,GAAE,kBAAuB,GAChD,OAAO,CAAC,WAAW,CAAC,CA4JtB"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/features/cms/sanity/mergers/layout.ts"],"names":[],"mappings":"AA2DA,UAAU,kBAAkB;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,WAAW;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAChC,YAAY,EAAE,MAAM,EACpB,EAAE,SAAS,EAAE,UAAU,EAAE,GAAE,kBAAuB,GAChD,OAAO,CAAC,WAAW,CAAC,CA+KtB"}
@@ -71,6 +71,16 @@ export async function mergeLayout(templatePath, { targetDir, pathPrefix } = {})
71
71
  content.includes("isSanityConfigured")) {
72
72
  return { skipped: true, reason: "Already has Sanity integration" };
73
73
  }
74
+ // 0. Swap the static site-wide JSON-LD for the CMS-driven component. Only
75
+ // swap when both the import and the usage are present, to avoid leaving a
76
+ // dangling reference.
77
+ const jsonLdImportRe = /import\s*\{[^}]*\}\s*from\s*["']@\/lib\/utils\/json-ld["'];?\n?/;
78
+ const jsonLdUsageRe = /<JsonLd\s+data=\{generateWebSiteJsonLd\([\s\S]*?\}\)\}\s*\/>\s*<JsonLd\s+data=\{generateOrganizationJsonLd\([\s\S]*?\}\)\}\s*\/>/;
79
+ if (jsonLdImportRe.test(content) && jsonLdUsageRe.test(content)) {
80
+ content = content
81
+ .replace(jsonLdImportRe, `import { SanityStructuredData } from "@/components/sanity/structured-data"\n`)
82
+ .replace(jsonLdUsageRe, `<SanityStructuredData\n fallbackName={APP_NAME}\n fallbackDescription={APP_DESCRIPTION}\n fallbackLogo="/opengraph-image.jpg"\n />`);
83
+ }
74
84
  // 1. Add Sanity imports after the full top-level import section.
75
85
  // Each statement ends at its module specifier's closing quote, with an
76
86
  // optional semicolon (templates use Biome's `asNeeded` style, so most have
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../../../src/modules/features/cms/sanity/mergers/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../../../src/modules/features/cms/sanity/mergers/layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface DotenvxConfig {
2
+ name: string;
3
+ dependencies: Record<string, string>;
4
+ /** Scripts prefixed with `dotenvx run -- ` (runtime only; not static checks). */
5
+ wrapScripts: readonly string[];
6
+ /** Sanity scripts transformed off `--env-file .env.local` onto dotenvx. */
7
+ sanityScripts: readonly string[];
8
+ addScripts: Readonly<Record<string, string>>;
9
+ /** Files copied from `files/` (relative dest -> source basename). */
10
+ files: Readonly<Record<string, string>>;
11
+ }
12
+ export declare const dotenvxConfig: DotenvxConfig;
13
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/modules/features/env/dotenvx/config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,iFAAiF;IACjF,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,2EAA2E;IAC3E,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,qEAAqE;IACrE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACxC;AAED,eAAO,MAAM,aAAa,EAAE,aAgD3B,CAAC"}
@@ -0,0 +1,47 @@
1
+ // dotenvx manifest: single source of truth shared by the create flow and
2
+ // `bsmnt integrate --dotenvx` so generated output never drifts.
3
+ export const dotenvxConfig = {
4
+ name: "dotenvx",
5
+ dependencies: {
6
+ "@dotenvx/dotenvx": "^1.71.1",
7
+ },
8
+ wrapScripts: [
9
+ "build",
10
+ "start",
11
+ "dev",
12
+ "dev:https",
13
+ "dev:inspect",
14
+ "analyze:experimental",
15
+ ],
16
+ sanityScripts: ["sanity:extract", "sanity:typegen"],
17
+ addScripts: {
18
+ "env:setup": "bun run scripts/setup-env.mjs",
19
+ "env:view": "bun run scripts/decrypt-env.mjs",
20
+ // Add/encrypt values without remembering the dotenvx flags. `set` adds one
21
+ // (`--plain` / `--preview` / `--prod`); `encrypt-all` bulk-encrypts a file.
22
+ "env:set": "bun run scripts/write-env.mjs set",
23
+ "env:encrypt-all": "bun run scripts/write-env.mjs encrypt",
24
+ // Push the private keys from .env.keys to CI / host so envs decrypt there.
25
+ // Pick a target from a menu, or pass `github` / `vercel`.
26
+ "env:setup-remote": "bun run scripts/push-keys.mjs",
27
+ // Save the private key to 1Password (Development vault) + point .env's op-ref at it.
28
+ "env:save": "bun run scripts/save-key.mjs",
29
+ // Onboarding: bun install restores .env.keys from 1Password (soft — never
30
+ // fails the install; skips when keys exist, in CI, or with no ref/op).
31
+ preinstall: "bun run scripts/setup-env.mjs --auto",
32
+ },
33
+ files: {
34
+ ".github/workflows/gitleaks.yml": "gitleaks.yml",
35
+ "scripts/setup-env.mjs": "setup-env.mjs",
36
+ "scripts/decrypt-env.mjs": "decrypt-env.mjs",
37
+ "scripts/write-env.mjs": "write-env.mjs",
38
+ "scripts/push-keys.mjs": "push-keys.mjs",
39
+ "scripts/save-key.mjs": "save-key.mjs",
40
+ // Runtime decryption on serverless (Vercel functions) — the run wrapper
41
+ // only covers local dev + build. Next.js root instrumentation file.
42
+ "instrumentation.ts": "instrumentation.ts",
43
+ // Keep .env.keys / local env files out of `vercel deploy` uploads.
44
+ ".vercelignore": "vercelignore",
45
+ },
46
+ };
47
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../src/modules/features/env/dotenvx/config.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,gEAAgE;AAchE,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC3C,IAAI,EAAE,SAAS;IAEf,YAAY,EAAE;QACb,kBAAkB,EAAE,SAAS;KAC7B;IAED,WAAW,EAAE;QACZ,OAAO;QACP,OAAO;QACP,KAAK;QACL,WAAW;QACX,aAAa;QACb,sBAAsB;KACtB;IAED,aAAa,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEnD,UAAU,EAAE;QACX,WAAW,EAAE,+BAA+B;QAC5C,UAAU,EAAE,iCAAiC;QAC7C,2EAA2E;QAC3E,4EAA4E;QAC5E,SAAS,EAAE,mCAAmC;QAC9C,iBAAiB,EAAE,uCAAuC;QAC1D,2EAA2E;QAC3E,0DAA0D;QAC1D,kBAAkB,EAAE,+BAA+B;QACnD,qFAAqF;QACrF,UAAU,EAAE,8BAA8B;QAC1C,0EAA0E;QAC1E,uEAAuE;QACvE,UAAU,EAAE,sCAAsC;KAClD;IAED,KAAK,EAAE;QACN,gCAAgC,EAAE,cAAc;QAChD,uBAAuB,EAAE,eAAe;QACxC,yBAAyB,EAAE,iBAAiB;QAC5C,uBAAuB,EAAE,eAAe;QACxC,uBAAuB,EAAE,eAAe;QACxC,sBAAsB,EAAE,cAAc;QACtC,wEAAwE;QACxE,oEAAoE;QACpE,oBAAoB,EAAE,oBAAoB;QAC1C,mEAAmE;QACnE,eAAe,EAAE,cAAc;KAC/B;CACD,CAAC"}
package/dist/paths.d.ts CHANGED
@@ -4,6 +4,8 @@ export declare const TEMPLATES_DIR: string;
4
4
  export declare const TEMPLATE_HOOKS_DIR: string;
5
5
  /** Directory containing the Biome linting plugin rules. */
6
6
  export declare const PLUGINS_DIR: string;
7
+ /** Directory containing bundled agent skills copied into generated projects. */
8
+ export declare const AGENT_SKILLS_DIR: string;
7
9
  /** Node-version guard injected into each scaffolded project; under `src/` so it ships verbatim. */
8
10
  export declare const CHECK_NODE_VERSION_FILE: string;
9
11
  /**
@@ -25,4 +27,10 @@ export declare const SANITY_PAGEBUILDER_FILES_DIR: string;
25
27
  * project root.
26
28
  */
27
29
  export declare const HUBSPOT_FILES_DIR: string;
30
+ /**
31
+ * Directory containing the dotenvx integration source files (the CI guard
32
+ * workflow and the 1Password key-restore script). Always resolves to
33
+ * `src/modules/features/env/dotenvx/files/` relative to the project root.
34
+ */
35
+ export declare const DOTENVX_FILES_DIR: string;
28
36
  //# sourceMappingURL=paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAaA,6DAA6D;AAC7D,eAAO,MAAM,aAAa,EAAE,MAI3B,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB,EAAE,MAIhC,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,WAAW,EAAE,MAA2C,CAAC;AAEtE,mGAAmG;AACnG,eAAO,MAAM,uBAAuB,EAAE,MAKrC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAQ9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAQ1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAQ/B,CAAC"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAaA,6DAA6D;AAC7D,eAAO,MAAM,aAAa,EAAE,MAI3B,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB,EAAE,MAIhC,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,WAAW,EAAE,MAA2C,CAAC;AAEtE,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,EAAE,MAI9B,CAAC;AAEF,mGAAmG;AACnG,eAAO,MAAM,uBAAuB,EAAE,MAKrC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAQ9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAQ1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAQ/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAQ/B,CAAC"}
package/dist/paths.js CHANGED
@@ -14,6 +14,8 @@ export const TEMPLATES_DIR = path.join(PROJECT_ROOT, "src", "templates");
14
14
  export const TEMPLATE_HOOKS_DIR = path.join(PROJECT_ROOT, "src", "template-hooks");
15
15
  /** Directory containing the Biome linting plugin rules. */
16
16
  export const PLUGINS_DIR = path.join(PROJECT_ROOT, "plugins");
17
+ /** Directory containing bundled agent skills copied into generated projects. */
18
+ export const AGENT_SKILLS_DIR = path.join(PROJECT_ROOT, "src", "agent-skills");
17
19
  /** Node-version guard injected into each scaffolded project; under `src/` so it ships verbatim. */
18
20
  export const CHECK_NODE_VERSION_FILE = path.join(PROJECT_ROOT, "src", "assets", "check-node-version.mjs");
19
21
  /**
@@ -35,4 +37,10 @@ export const SANITY_PAGEBUILDER_FILES_DIR = path.join(PROJECT_ROOT, "src", "modu
35
37
  * project root.
36
38
  */
37
39
  export const HUBSPOT_FILES_DIR = path.join(PROJECT_ROOT, "src", "modules", "features", "forms", "hubspot", "files");
40
+ /**
41
+ * Directory containing the dotenvx integration source files (the CI guard
42
+ * workflow and the 1Password key-restore script). Always resolves to
43
+ * `src/modules/features/env/dotenvx/files/` relative to the project root.
44
+ */
45
+ export const DOTENVX_FILES_DIR = path.join(PROJECT_ROOT, "src", "modules", "features", "env", "dotenvx", "files");
38
46
  //# sourceMappingURL=paths.js.map
package/dist/paths.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAAW,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1D,MAAM,SAAS,GAAW,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAEnD;;;;GAIG;AACH,MAAM,YAAY,GAAW,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAE3D,6DAA6D;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAW,IAAI,CAAC,IAAI,CAC7C,YAAY,EACZ,KAAK,EACL,WAAW,CACX,CAAC;AAEF,0DAA0D;AAC1D,MAAM,CAAC,MAAM,kBAAkB,GAAW,IAAI,CAAC,IAAI,CAClD,YAAY,EACZ,KAAK,EACL,gBAAgB,CAChB,CAAC;AAEF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAW,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAEtE,mGAAmG;AACnG,MAAM,CAAC,MAAM,uBAAuB,GAAW,IAAI,CAAC,IAAI,CACvD,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,wBAAwB,CACxB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAW,IAAI,CAAC,IAAI,CAChD,YAAY,EACZ,KAAK,EACL,SAAS,EACT,UAAU,EACV,KAAK,EACL,QAAQ,EACR,OAAO,CACP,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAW,IAAI,CAAC,IAAI,CAC5D,YAAY,EACZ,KAAK,EACL,SAAS,EACT,UAAU,EACV,KAAK,EACL,oBAAoB,EACpB,OAAO,CACP,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAW,IAAI,CAAC,IAAI,CACjD,YAAY,EACZ,KAAK,EACL,SAAS,EACT,UAAU,EACV,OAAO,EACP,SAAS,EACT,OAAO,CACP,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAAW,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1D,MAAM,SAAS,GAAW,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAEnD;;;;GAIG;AACH,MAAM,YAAY,GAAW,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAE3D,6DAA6D;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAW,IAAI,CAAC,IAAI,CAC7C,YAAY,EACZ,KAAK,EACL,WAAW,CACX,CAAC;AAEF,0DAA0D;AAC1D,MAAM,CAAC,MAAM,kBAAkB,GAAW,IAAI,CAAC,IAAI,CAClD,YAAY,EACZ,KAAK,EACL,gBAAgB,CAChB,CAAC;AAEF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAW,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAEtE,gFAAgF;AAChF,MAAM,CAAC,MAAM,gBAAgB,GAAW,IAAI,CAAC,IAAI,CAChD,YAAY,EACZ,KAAK,EACL,cAAc,CACd,CAAC;AAEF,mGAAmG;AACnG,MAAM,CAAC,MAAM,uBAAuB,GAAW,IAAI,CAAC,IAAI,CACvD,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,wBAAwB,CACxB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAW,IAAI,CAAC,IAAI,CAChD,YAAY,EACZ,KAAK,EACL,SAAS,EACT,UAAU,EACV,KAAK,EACL,QAAQ,EACR,OAAO,CACP,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAW,IAAI,CAAC,IAAI,CAC5D,YAAY,EACZ,KAAK,EACL,SAAS,EACT,UAAU,EACV,KAAK,EACL,oBAAoB,EACpB,OAAO,CACP,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAW,IAAI,CAAC,IAAI,CACjD,YAAY,EACZ,KAAK,EACL,SAAS,EACT,UAAU,EACV,OAAO,EACP,SAAS,EACT,OAAO,CACP,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAW,IAAI,CAAC,IAAI,CACjD,YAAY,EACZ,KAAK,EACL,SAAS,EACT,UAAU,EACV,KAAK,EACL,SAAS,EACT,OAAO,CACP,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bsmnt",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "packageManager": "bun@1.3.14",
5
5
  "description": "CLI to scaffold basement projects and add integrations",
6
6
  "type": "module",
@@ -23,8 +23,10 @@
23
23
  "!src/templates/*/.next",
24
24
  "!src/templates/*/bun.lock",
25
25
  "src/template-hooks",
26
+ "src/agent-skills",
26
27
  "src/modules/features/cms/sanity/files",
27
28
  "src/modules/features/cms/sanity-pagebuilder/files",
29
+ "src/modules/features/env/dotenvx/files",
28
30
  "src/assets",
29
31
  "plugins"
30
32
  ],
@@ -32,6 +34,7 @@
32
34
  "preinstall": "node src/assets/check-node-version.mjs",
33
35
  "build": "tsc",
34
36
  "check": "tsc --noEmit",
37
+ "test": "bun test src",
35
38
  "dev": "tsx src/index.ts",
36
39
  "lint": "biome check .",
37
40
  "lint:fix": "biome check --write --unsafe .",
@@ -75,6 +78,7 @@
75
78
  "@sanity/image-url": "^2.1.1",
76
79
  "@sanity/vision": "^5.30.0",
77
80
  "commander": "^13.1.0",
81
+ "dotenv": "^17.4.2",
78
82
  "fs-extra": "^11.3.3",
79
83
  "next-sanity": "^13.0.10",
80
84
  "ora": "^9.1.0",
@@ -0,0 +1,85 @@
1
+ ---
2
+ name: json-ld
3
+ description: >-
4
+ Add schema.org JSON-LD structured data when building components or pages
5
+ that render structured content (job listings, FAQs, events, videos,
6
+ work/product lists, articles, breadcrumbs). Use BEFORE hand-writing any
7
+ <script type="application/ld+json"> tag — this project ships typed
8
+ generators for all common schemas.
9
+ ---
10
+
11
+ # JSON-LD Structured Data
12
+
13
+ This project ships typed JSON-LD generators and a `<JsonLd />` component in
14
+ `lib/utils/json-ld.tsx`. Never hand-roll a `<script type="application/ld+json">`
15
+ tag — import a generator and render it through `<JsonLd />` (it serializes and
16
+ escapes `<` for safe embedding).
17
+
18
+ ```tsx
19
+ import { JsonLd, generateJobPostingJsonLd } from "@/lib/utils/json-ld"
20
+
21
+ // inside a server component
22
+ {jobs.map((job) => (
23
+ <JsonLd
24
+ key={job.id}
25
+ data={generateJobPostingJsonLd({
26
+ title: job.title,
27
+ description: job.description,
28
+ datePosted: job.publishedAt,
29
+ employmentType: job.type,
30
+ organizationName: job.company,
31
+ })}
32
+ />
33
+ ))}
34
+ ```
35
+
36
+ ## Which tier owns the data?
37
+
38
+ 1. **Site-wide identity** (`Organization`, `WebSite`) — already emitted by the
39
+ site layout. Never re-emit these from components or pages. With Sanity,
40
+ editors manage it in Studio → Layout → Structured Data; Company Data social
41
+ links merge into `sameAs` via their "Include in Structured Data" toggle.
42
+ 2. **Page-level** (Sanity projects only) — editors attach predefined JSON-LD
43
+ blocks (FAQ, Event, Video, Job Posting, Software Application, Item List,
44
+ Custom) to a page under SEO & Metadata → Structured Data (JSON-LD). The
45
+ page document component already renders them. If the content is page-owned
46
+ and editor-managed, point editors to that field instead of coding it.
47
+ 3. **Component-level** — when a component itself renders structured content
48
+ (from props or CMS data), emit JSON-LD next to the markup using the
49
+ generators below.
50
+
51
+ ## Component → schema mapping
52
+
53
+ | Component renders | Generator |
54
+ | ------------------------------------------ | ------------------------------------ |
55
+ | Job / career listings | `generateJobPostingJsonLd` (per job) |
56
+ | FAQ / accordion Q&A | `generateFaqJsonLd` |
57
+ | Events / agenda | `generateEventJsonLd` (per event) |
58
+ | Video player or embed | `generateVideoJsonLd` |
59
+ | Curated lists (work, products, post index) | `generateItemListJsonLd` |
60
+ | Article / blog post body | `generateArticleJsonLd` |
61
+ | Breadcrumb navigation | `generateBreadcrumbJsonLd` |
62
+ | App / tool promo section | `generateSoftwareApplicationJsonLd` |
63
+ | Plain marketing pages | `generateWebPageJsonLd` |
64
+ | Logo walls, testimonials, generic heroes | none — don't force structured data |
65
+
66
+ ## Rules
67
+
68
+ - Emit from **server components** so the script tags are in the initial HTML.
69
+ - One `<JsonLd />` per entity — map each job/event to its own tag instead of
70
+ merging unrelated entities into one block.
71
+ - Only emit when the schema's required fields exist (e.g. `JobPosting` needs
72
+ title, description, datePosted). Skip the tag entirely rather than emitting
73
+ partial data.
74
+ - Sanity data: run values through `stegaClean` from `next-sanity` before they
75
+ reach JSON-LD (see `components/layout/json-ld` for the pattern), otherwise
76
+ invisible stega characters leak into the emitted markup.
77
+ - Don't duplicate: if a page-level Sanity block already covers the content,
78
+ don't also emit it from the component.
79
+ - Generators absolutize app-relative URLs (`/jobs/123`) automatically; pass
80
+ absolute URLs (including Sanity CDN assets) as-is.
81
+
82
+ ## Verify
83
+
84
+ Check `view-source:` for each `application/ld+json` script and validate with
85
+ https://validator.schema.org or https://search.google.com/test/rich-results.