@drawnagency/primitives 0.1.7 → 0.1.9
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/auth/index.js +2 -2
- package/dist/auth/security.d.ts.map +1 -1
- package/dist/{chunk-2VTPWODA.js → chunk-F32I6ZZV.js} +1 -1
- package/dist/{chunk-CS7F6IOY.js → chunk-F3Z6RISI.js} +4 -1
- package/dist/{chunk-T4BJ6RSB.js → chunk-MCUIFRXW.js} +1 -1
- package/dist/{chunk-UKEVUCIZ.js → chunk-VJV4Q4TM.js} +4 -1
- package/dist/{chunk-HOJAF4VD.js → chunk-W7IA6TVD.js} +16 -9
- package/dist/index.js +5 -5
- package/dist/lib/index.js +3 -3
- package/dist/lib/loader.d.ts.map +1 -1
- package/dist/lib/registry.d.ts.map +1 -1
- package/dist/schemas/index.js +2 -2
- package/package.json +1 -1
- package/src/auth/security.ts +5 -1
- package/src/lib/loader.ts +15 -7
- package/src/lib/registry.ts +6 -1
package/dist/auth/index.js
CHANGED
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
setSessionCookie,
|
|
7
7
|
signSessionToken,
|
|
8
8
|
verifySessionToken
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-F32I6ZZV.js";
|
|
10
10
|
import {
|
|
11
11
|
isSameOriginRequest,
|
|
12
12
|
requireSessionSecret,
|
|
13
13
|
safeNextPath
|
|
14
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-F3Z6RISI.js";
|
|
15
15
|
export {
|
|
16
16
|
AUDIENCE_COOKIE,
|
|
17
17
|
LastOwnerError,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/auth/security.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/auth/security.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,wBAAgB,oBAAoB,IAAI,UAAU,CAUjD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAY7D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAO3E"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
// src/auth/security.ts
|
|
2
|
+
function env(key) {
|
|
3
|
+
return import.meta.env?.[key] ?? process.env?.[key] ?? "";
|
|
4
|
+
}
|
|
2
5
|
function requireSessionSecret() {
|
|
3
|
-
const secret =
|
|
6
|
+
const secret = env("SESSION_SECRET");
|
|
4
7
|
if (!secret) {
|
|
5
8
|
throw new Error("SESSION_SECRET is required but not set");
|
|
6
9
|
}
|
|
@@ -115,7 +115,10 @@ function createRegistry() {
|
|
|
115
115
|
}
|
|
116
116
|
};
|
|
117
117
|
}
|
|
118
|
-
var
|
|
118
|
+
var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("@drawnagency/primitives/registry");
|
|
119
|
+
var g = globalThis;
|
|
120
|
+
if (!g[REGISTRY_KEY]) g[REGISTRY_KEY] = createRegistry();
|
|
121
|
+
var defaultRegistry = g[REGISTRY_KEY];
|
|
119
122
|
function registerSection(def) {
|
|
120
123
|
defaultRegistry.registerSection(def);
|
|
121
124
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
IndexSchema,
|
|
3
|
+
getAllSchemas,
|
|
3
4
|
getSectionSchema
|
|
4
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-VJV4Q4TM.js";
|
|
5
6
|
import {
|
|
6
7
|
safeNextPath
|
|
7
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-F3Z6RISI.js";
|
|
8
9
|
|
|
9
10
|
// src/lib/cn.ts
|
|
10
11
|
import { clsx } from "clsx";
|
|
@@ -202,20 +203,26 @@ var darkModeEvent = createEvent("sitedarkmode");
|
|
|
202
203
|
// src/lib/loader.ts
|
|
203
204
|
function mergeSiteContent(index, sectionFiles) {
|
|
204
205
|
const sections = [];
|
|
206
|
+
const canValidate = getAllSchemas().length >= 2;
|
|
205
207
|
for (const id of index.order) {
|
|
206
208
|
const raw = sectionFiles[id];
|
|
207
209
|
if (!raw) {
|
|
208
210
|
console.warn(`Section file missing for id: ${id}, skipping`);
|
|
209
211
|
continue;
|
|
210
212
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
213
|
+
if (canValidate) {
|
|
214
|
+
const result = getSectionSchema().safeParse(raw);
|
|
215
|
+
if (!result.success) {
|
|
216
|
+
const type = raw.type ?? "unknown";
|
|
217
|
+
console.warn(`Skipping section "${id}" (type: ${type}): invalid schema`);
|
|
218
|
+
continue;
|
|
219
|
+
}
|
|
220
|
+
const meta = index.sections[id];
|
|
221
|
+
sections.push({ section: result.data, meta });
|
|
222
|
+
} else {
|
|
223
|
+
const meta = index.sections[id];
|
|
224
|
+
sections.push({ section: raw, meta });
|
|
216
225
|
}
|
|
217
|
-
const meta = index.sections[id];
|
|
218
|
-
sections.push({ section: result.data, meta });
|
|
219
226
|
}
|
|
220
227
|
return { sections, index };
|
|
221
228
|
}
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
SessionSchema,
|
|
8
8
|
SiteUserSchema,
|
|
9
9
|
slugifyAudienceName
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-MCUIFRXW.js";
|
|
11
11
|
import {
|
|
12
12
|
buildGoogleFontsUrl,
|
|
13
13
|
cn,
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
safeRedirect,
|
|
28
28
|
sanitizeHtml,
|
|
29
29
|
toSectionId
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-W7IA6TVD.js";
|
|
31
31
|
import {
|
|
32
32
|
ColorItemSchema,
|
|
33
33
|
ColorSpaceSchema,
|
|
@@ -48,7 +48,7 @@ import {
|
|
|
48
48
|
getSectionSchema,
|
|
49
49
|
registerSchema,
|
|
50
50
|
registerSection
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-VJV4Q4TM.js";
|
|
52
52
|
import {
|
|
53
53
|
AUDIENCE_COOKIE,
|
|
54
54
|
LastOwnerError,
|
|
@@ -57,12 +57,12 @@ import {
|
|
|
57
57
|
setSessionCookie,
|
|
58
58
|
signSessionToken,
|
|
59
59
|
verifySessionToken
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-F32I6ZZV.js";
|
|
61
61
|
import {
|
|
62
62
|
isSameOriginRequest,
|
|
63
63
|
requireSessionSecret,
|
|
64
64
|
safeNextPath
|
|
65
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-F3Z6RISI.js";
|
|
66
66
|
import {
|
|
67
67
|
EXT_TO_MIME,
|
|
68
68
|
MIME_TO_EXT,
|
package/dist/lib/index.js
CHANGED
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
safeRedirect,
|
|
18
18
|
sanitizeHtml,
|
|
19
19
|
toSectionId
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-W7IA6TVD.js";
|
|
21
21
|
import {
|
|
22
22
|
clearRegistry,
|
|
23
23
|
createRegistry,
|
|
@@ -28,8 +28,8 @@ import {
|
|
|
28
28
|
getSection,
|
|
29
29
|
registerSchema,
|
|
30
30
|
registerSection
|
|
31
|
-
} from "../chunk-
|
|
32
|
-
import "../chunk-
|
|
31
|
+
} from "../chunk-VJV4Q4TM.js";
|
|
32
|
+
import "../chunk-F3Z6RISI.js";
|
|
33
33
|
import "../chunk-UMSFICAC.js";
|
|
34
34
|
export {
|
|
35
35
|
buildGoogleFontsUrl,
|
package/dist/lib/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/lib/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAe,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/lib/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAe,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGvF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,SAAS,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,WAAW,CA2Bb;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,WAAW,CAQb;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAe9E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/lib/registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/lib/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/schemas/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
SessionSchema,
|
|
8
8
|
SiteUserSchema,
|
|
9
9
|
slugifyAudienceName
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-MCUIFRXW.js";
|
|
11
11
|
import {
|
|
12
12
|
ColorItemSchema,
|
|
13
13
|
ColorSpaceSchema,
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
TextLineSchema,
|
|
20
20
|
getSectionContentSchema,
|
|
21
21
|
getSectionSchema
|
|
22
|
-
} from "../chunk-
|
|
22
|
+
} from "../chunk-VJV4Q4TM.js";
|
|
23
23
|
import {
|
|
24
24
|
ImageManifestSchema,
|
|
25
25
|
MediaConfigSchema,
|
package/package.json
CHANGED
package/src/auth/security.ts
CHANGED
|
@@ -3,8 +3,12 @@
|
|
|
3
3
|
* redirect-path validator. Imported by cookies.ts, middleware, and auth API routes.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
function env(key: string): string {
|
|
7
|
+
return import.meta.env?.[key] ?? process.env?.[key] ?? "";
|
|
8
|
+
}
|
|
9
|
+
|
|
6
10
|
export function requireSessionSecret(): Uint8Array {
|
|
7
|
-
const secret =
|
|
11
|
+
const secret = env("SESSION_SECRET");
|
|
8
12
|
if (!secret) {
|
|
9
13
|
throw new Error("SESSION_SECRET is required but not set");
|
|
10
14
|
}
|
package/src/lib/loader.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getSectionSchema, type Section } from "../schemas/sections";
|
|
2
2
|
import { IndexSchema, type SiteIndex, type SectionMeta } from "../schemas/site-config";
|
|
3
|
+
import { getAllSchemas } from "./registry";
|
|
3
4
|
|
|
4
5
|
export interface LoadedSection {
|
|
5
6
|
section: Section;
|
|
@@ -22,20 +23,27 @@ export function mergeSiteContent(
|
|
|
22
23
|
): SiteContent {
|
|
23
24
|
const sections: LoadedSection[] = [];
|
|
24
25
|
|
|
26
|
+
const canValidate = getAllSchemas().length >= 2;
|
|
27
|
+
|
|
25
28
|
for (const id of index.order) {
|
|
26
29
|
const raw = sectionFiles[id];
|
|
27
30
|
if (!raw) {
|
|
28
31
|
console.warn(`Section file missing for id: ${id}, skipping`);
|
|
29
32
|
continue;
|
|
30
33
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
if (canValidate) {
|
|
35
|
+
const result = getSectionSchema().safeParse(raw);
|
|
36
|
+
if (!result.success) {
|
|
37
|
+
const type = (raw as Record<string, unknown>).type ?? "unknown";
|
|
38
|
+
console.warn(`Skipping section "${id}" (type: ${type}): invalid schema`);
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
const meta = index.sections[id];
|
|
42
|
+
sections.push({ section: result.data, meta });
|
|
43
|
+
} else {
|
|
44
|
+
const meta = index.sections[id];
|
|
45
|
+
sections.push({ section: raw as Section, meta });
|
|
36
46
|
}
|
|
37
|
-
const meta = index.sections[id];
|
|
38
|
-
sections.push({ section: result.data, meta });
|
|
39
47
|
}
|
|
40
48
|
|
|
41
49
|
return { sections, index };
|
package/src/lib/registry.ts
CHANGED
|
@@ -169,8 +169,13 @@ export function createRegistry(): SectionRegistry {
|
|
|
169
169
|
}
|
|
170
170
|
|
|
171
171
|
// --- Default instance & module-level convenience functions ---
|
|
172
|
+
// Use a global symbol key so the singleton survives module duplication
|
|
173
|
+
// by Rollup/Vite during SSR code-splitting.
|
|
172
174
|
|
|
173
|
-
const
|
|
175
|
+
const REGISTRY_KEY = Symbol.for("@drawnagency/primitives/registry");
|
|
176
|
+
const g = globalThis as unknown as Record<symbol, SectionRegistry>;
|
|
177
|
+
if (!g[REGISTRY_KEY]) g[REGISTRY_KEY] = createRegistry();
|
|
178
|
+
const defaultRegistry = g[REGISTRY_KEY];
|
|
174
179
|
|
|
175
180
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
176
181
|
export function registerSection(def: SectionDefinition<any>): void {
|