@wizzlethorpe/vaults 0.9.5 → 0.9.6

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.
@@ -9,11 +9,15 @@
9
9
  // which isn't part of the npm package.
10
10
  import { createHash } from "node:crypto";
11
11
  import { mkdir, readFile, writeFile } from "node:fs/promises";
12
- import { dirname, join } from "node:path";
12
+ import { basename, dirname, join } from "node:path";
13
13
  import { fileURLToPath } from "node:url";
14
14
  import { CLI_VERSION } from "./version.js";
15
- // Sibling of this compiled file in dist/, produced by scripts/bundle-importer.mjs.
16
- const BUNDLE_PATH = join(dirname(fileURLToPath(import.meta.url)), "foundry-importer.bundle.js");
15
+ // scripts/bundle-importer.mjs always emits the bundle into dist/. This module
16
+ // runs from dist/ once published, but from src/ under tsx (tests) — resolve to
17
+ // dist/ either way.
18
+ const here = dirname(fileURLToPath(import.meta.url));
19
+ const distDir = basename(here) === "src" ? join(here, "..", "dist") : here;
20
+ const BUNDLE_PATH = join(distDir, "foundry-importer.bundle.js");
17
21
  /**
18
22
  * Write `_foundry/importer.js` + `_foundry/version.json` into the deploy.
19
23
  * Called from build.ts after the variant outputs are in place — the
@@ -1 +1 @@
1
- {"version":3,"file":"foundry-importer.js","sourceRoot":"","sources":["../src/foundry-importer.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,uCAAuC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,mFAAmF;AACnF,MAAM,WAAW,GAAG,IAAI,CACtB,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACvC,4BAA4B,CAC7B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,SAAiB;IAC1D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACxC,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,SAAS,CACb,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EACzB,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC1D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"foundry-importer.js","sourceRoot":"","sources":["../src/foundry-importer.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,uCAAuC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,8EAA8E;AAC9E,+EAA+E;AAC/E,oBAAoB;AACpB,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,SAAiB;IAC1D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACxC,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,SAAS,CACb,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EACzB,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC1D,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wizzlethorpe/vaults",
3
- "version": "0.9.5",
3
+ "version": "0.9.6",
4
4
  "description": "Sync an Obsidian vault to a Cloudflare-hosted wiki with role-based access. Renders locally, deploys to Cloudflare Pages.",
5
5
  "keywords": [
6
6
  "obsidian",
@@ -1,96 +0,0 @@
1
- // Migration: copy legacy auth fields out of settings.md frontmatter into
2
- // the CLI-managed config (formerly .vaultrc.json, now .vaults/config.json).
3
- //
4
- // Earlier versions stored `roles`, `auth_type`, and `role_passwords` in
5
- // settings.md. The settings canonicaliser strips unknown keys, so if we
6
- // don't lift them out before settings.md is rewritten, they're silently
7
- // dropped. This migration copies anything we still see in settings.md
8
- // over to the config — but only when the destination is empty / default,
9
- // so re-running on an already-migrated vault is a no-op.
10
- //
11
- // This was previously inline in build.ts as migrateLegacyAuthFromSettings();
12
- // moved here so all migrations live in one registry.
13
- import { readFile } from "node:fs/promises";
14
- import { join } from "node:path";
15
- import matter from "gray-matter";
16
- import { loadConfig, saveConfig } from "../config.js";
17
- import { SETTINGS_FILE } from "../paths.js";
18
- export const legacyAuthSettingsMigration = {
19
- id: "0.6-legacy-auth-settings",
20
- description: "settings.md roles/auth_type/role_passwords → CLI-managed config",
21
- async needs(vaultPath) {
22
- const fm = await readSettingsFrontmatter(vaultPath);
23
- if (!fm)
24
- return false;
25
- if (!hasAnyLegacyKey(fm))
26
- return false;
27
- const cfg = await loadConfig(vaultPath, {});
28
- return liftLegacyAuth(fm, cfg, { dryRun: true }).length > 0;
29
- },
30
- async apply(vaultPath) {
31
- const fm = await readSettingsFrontmatter(vaultPath);
32
- if (!fm)
33
- return;
34
- const cfg = await loadConfig(vaultPath, {});
35
- const moved = liftLegacyAuth(fm, cfg, { dryRun: false });
36
- if (moved.length === 0)
37
- return;
38
- await saveConfig(vaultPath, cfg);
39
- console.log(` moved ${moved.join(", ")} from settings.md → config`);
40
- },
41
- };
42
- async function readSettingsFrontmatter(vaultPath) {
43
- try {
44
- const raw = await readFile(join(vaultPath, SETTINGS_FILE), "utf8");
45
- return (matter(raw).data ?? {});
46
- }
47
- catch {
48
- return null;
49
- }
50
- }
51
- function hasAnyLegacyKey(fm) {
52
- return "roles" in fm || "auth_type" in fm || "role_passwords" in fm;
53
- }
54
- /**
55
- * Single source of truth for which legacy fields qualify for lift, what
56
- * they get moved to, and (when `dryRun=false`) the actual mutation.
57
- *
58
- * Returns the names of fields that qualified (= would move when not a dry
59
- * run). `needs()` runs this dry; `apply()` runs it for real.
60
- */
61
- function liftLegacyAuth(fm, cfg, opts) {
62
- const moved = [];
63
- if (Array.isArray(fm.roles)) {
64
- const list = fm.roles.filter((r) => typeof r === "string");
65
- const isDefault = cfg.roles.length === 0 || (cfg.roles.length === 1 && cfg.roles[0] === "public");
66
- if (list.length > 0 && isDefault && !arraysEqual(list, ["public"])) {
67
- if (!opts.dryRun)
68
- cfg.roles = list;
69
- moved.push("roles");
70
- }
71
- }
72
- // `auth_type` was a forward-looking knob (password vs cloudflare-access vs
73
- // oauth-jwt) that nothing has ever read. The field was removed from
74
- // VaultConfig; lifting it would be a no-op, so we don't bother.
75
- if (fm.role_passwords && typeof fm.role_passwords === "object" && !Array.isArray(fm.role_passwords)
76
- && Object.keys(cfg.rolePasswords).length === 0) {
77
- const cleaned = filterStringValues(fm.role_passwords);
78
- if (Object.keys(cleaned).length > 0) {
79
- if (!opts.dryRun)
80
- cfg.rolePasswords = cleaned;
81
- moved.push("role_passwords");
82
- }
83
- }
84
- return moved;
85
- }
86
- function filterStringValues(map) {
87
- const out = {};
88
- for (const [k, v] of Object.entries(map))
89
- if (typeof v === "string")
90
- out[k] = v;
91
- return out;
92
- }
93
- function arraysEqual(a, b) {
94
- return a.length === b.length && a.every((x, i) => x === b[i]);
95
- }
96
- //# sourceMappingURL=0.6-legacy-auth-settings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"0.6-legacy-auth-settings.js","sourceRoot":"","sources":["../../src/migrate/0.6-legacy-auth-settings.ts"],"names":[],"mappings":"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"}