@no-mess/client 0.1.1 → 0.3.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.
- package/README.md +153 -4
- package/dist/client.d.ts +5 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +237 -41
- package/dist/client.js.map +1 -1
- package/dist/error-utils.d.ts +20 -0
- package/dist/error-utils.d.ts.map +1 -0
- package/dist/error-utils.js +67 -0
- package/dist/error-utils.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +148 -22
- package/dist/index.js.map +1 -1
- package/dist/live-edit.d.ts.map +1 -1
- package/dist/live-edit.js +241 -102
- package/dist/live-edit.js.map +1 -1
- package/dist/logging.d.ts +6 -0
- package/dist/logging.d.ts.map +1 -0
- package/dist/logging.js +58 -0
- package/dist/logging.js.map +1 -0
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react/no-mess-preview.d.ts +2 -6
- package/dist/react/no-mess-preview.d.ts.map +1 -1
- package/dist/react/no-mess-preview.js.map +1 -1
- package/dist/react/use-no-mess-live-edit.d.ts.map +1 -1
- package/dist/react/use-no-mess-live-edit.js +32 -2
- package/dist/react/use-no-mess-live-edit.js.map +1 -1
- package/dist/react/use-no-mess-preview.d.ts.map +1 -1
- package/dist/react/use-no-mess-preview.js +29 -6
- package/dist/react/use-no-mess-preview.js.map +1 -1
- package/dist/schema/define-content-type.d.ts +13 -0
- package/dist/schema/define-content-type.d.ts.map +1 -0
- package/dist/schema/define-content-type.js +33 -0
- package/dist/schema/define-content-type.js.map +1 -0
- package/dist/schema/define-schema.d.ts +9 -0
- package/dist/schema/define-schema.d.ts.map +1 -0
- package/dist/schema/define-schema.js +9 -0
- package/dist/schema/define-schema.js.map +1 -0
- package/dist/schema/field-builders.d.ts +33 -0
- package/dist/schema/field-builders.d.ts.map +1 -0
- package/dist/schema/field-builders.js +25 -0
- package/dist/schema/field-builders.js.map +1 -0
- package/dist/schema/index.d.ts +12 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +7 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/parse-schema.d.ts +23 -0
- package/dist/schema/parse-schema.d.ts.map +1 -0
- package/dist/schema/parse-schema.js +419 -0
- package/dist/schema/parse-schema.js.map +1 -0
- package/dist/schema/schema-types.d.ts +28 -0
- package/dist/schema/schema-types.d.ts.map +1 -0
- package/dist/schema/schema-types.js +17 -0
- package/dist/schema/schema-types.js.map +1 -0
- package/dist/schema/serialize-schema.d.ts +11 -0
- package/dist/schema/serialize-schema.d.ts.map +1 -0
- package/dist/schema/serialize-schema.js +85 -0
- package/dist/schema/serialize-schema.js.map +1 -0
- package/dist/types.d.ts +49 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +22 -4
- package/dist/types.js.map +1 -1
- package/package.json +8 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-no-mess-live-edit.js","sourceRoot":"","sources":["../../src/react/use-no-mess-live-edit.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-no-mess-live-edit.js","sourceRoot":"","sources":["../../src/react/use-no-mess-live-edit.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAMxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA+B;IAE/B,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAClD,EAAE,CACH,CAAC;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IAE3E,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;IAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,SAAS,CAAC,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEnD,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,KAAmB,EAAE,EAAE;QAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,IAAI,oBAAoB,CAAC;QACrE,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO;QAEpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QAEnD,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAChF,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC3B,GAAG,IAAI;gBACP,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,KAAK;aAC7B,CAAC,CAAC,CAAC;YACJ,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;YAC1C,SAAS,CAAC,OAAO,CAAC;gBAChB,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,0BAA0B;gBAChC,OAAO,EAAE,wEAAwE;gBACjF,KAAK,EAAE,iBAAiB;gBACxB,SAAS,EAAE,qCAAqC;gBAChD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,OAAO,EAAE,EAAE;aACZ,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,IAAI,oBAAoB,CAAC;QAE1E,MAAM,MAAM,GAAG,qBAAqB,CAAC;YACnC,WAAW;YACX,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM;YAChC,OAAO,EAAE,GAAG,EAAE;gBACZ,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC1B,iBAAiB,CAAC,EAAE,CAAC,CAAC;gBACtB,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,eAAe,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;YACD,MAAM,EAAE,GAAG,EAAE;gBACX,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC3B,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACxB,CAAC;YACD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACf,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,EAAE;oBAC3C,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,0BAA0B;oBAChC,SAAS,EAAE,2BAA2B;iBACvC,CAAC,CAAC;gBACH,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACrB,eAAe,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;SACF,CAAC,CAAC;QAEH,kEAAkE;QAClE,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAEtD,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC3D,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAExB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AACnE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-no-mess-preview.d.ts","sourceRoot":"","sources":["../../src/react/use-no-mess-preview.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-no-mess-preview.d.ts","sourceRoot":"","sources":["../../src/react/use-no-mess-preview.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,WAAW,EAEX,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAGrB,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAClE,MAAM,EAAE,sBAAsB,GAC7B,sBAAsB,CAAC,CAAC,CAAC,CA0D3B"}
|
|
@@ -1,35 +1,58 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useEffect, useRef, useState } from "react";
|
|
3
3
|
import { NoMessClient } from "../client.js";
|
|
4
|
+
import { normalizeNoMessError } from "../error-utils.js";
|
|
4
5
|
import { createPreviewHandler } from "../index.js";
|
|
5
6
|
import { DEFAULT_ADMIN_ORIGIN } from "../types.js";
|
|
6
7
|
export function useNoMessPreview(config) {
|
|
7
8
|
const [entry, setEntry] = useState(null);
|
|
8
9
|
const [error, setError] = useState(null);
|
|
9
|
-
const [
|
|
10
|
+
const [errorDetails, setErrorDetails] = useState(null);
|
|
11
|
+
const [status, setStatus] = useState("waiting-for-admin");
|
|
10
12
|
const configRef = useRef(config);
|
|
11
13
|
configRef.current = config;
|
|
12
14
|
useEffect(() => {
|
|
13
|
-
const
|
|
15
|
+
const baseClient = new NoMessClient({
|
|
14
16
|
apiKey: configRef.current.apiKey,
|
|
15
17
|
apiUrl: configRef.current.apiUrl,
|
|
18
|
+
logger: configRef.current.logger,
|
|
16
19
|
});
|
|
20
|
+
const client = {
|
|
21
|
+
exchangePreviewSession: async (...args) => {
|
|
22
|
+
setStatus("exchanging-session");
|
|
23
|
+
return baseClient.exchangePreviewSession(...args);
|
|
24
|
+
},
|
|
25
|
+
};
|
|
17
26
|
const handler = createPreviewHandler({
|
|
18
27
|
client,
|
|
19
28
|
adminOrigin: configRef.current.adminOrigin ?? DEFAULT_ADMIN_ORIGIN,
|
|
29
|
+
logger: configRef.current.logger,
|
|
20
30
|
onEntry: (e) => {
|
|
21
31
|
setEntry(e);
|
|
22
32
|
setError(null);
|
|
23
|
-
|
|
33
|
+
setErrorDetails(null);
|
|
34
|
+
setStatus("ready");
|
|
24
35
|
},
|
|
25
36
|
onError: (err) => {
|
|
26
|
-
|
|
27
|
-
|
|
37
|
+
const normalized = normalizeNoMessError(err, {
|
|
38
|
+
kind: "runtime",
|
|
39
|
+
code: "preview_exchange_failed",
|
|
40
|
+
operation: "useNoMessPreview.onError",
|
|
41
|
+
});
|
|
42
|
+
setError(normalized);
|
|
43
|
+
setErrorDetails(normalized);
|
|
44
|
+
setStatus("error");
|
|
28
45
|
},
|
|
29
46
|
});
|
|
30
47
|
handler.start();
|
|
31
48
|
return () => handler.cleanup();
|
|
32
49
|
}, []);
|
|
33
|
-
return {
|
|
50
|
+
return {
|
|
51
|
+
entry,
|
|
52
|
+
error,
|
|
53
|
+
errorDetails,
|
|
54
|
+
isLoading: status !== "ready" && status !== "error",
|
|
55
|
+
status,
|
|
56
|
+
};
|
|
34
57
|
}
|
|
35
58
|
//# sourceMappingURL=use-no-mess-preview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-no-mess-preview.js","sourceRoot":"","sources":["../../src/react/use-no-mess-preview.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"use-no-mess-preview.js","sourceRoot":"","sources":["../../src/react/use-no-mess-preview.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAOnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,UAAU,gBAAgB,CAC9B,MAA8B;IAE9B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAW,IAAI,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IAC3E,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAClC,mBAAmB,CACpB,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC;YAClC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM;YAChC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM;YAChC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM;SACjC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG;YACb,sBAAsB,EAAE,KAAK,EAAE,GAAG,IAAwD,EAAE,EAAE;gBAC5F,SAAS,CAAC,oBAAoB,CAAC,CAAC;gBAChC,OAAO,UAAU,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,CAAC;YACpD,CAAC;SACF,CAAC;QAEF,MAAM,OAAO,GAAG,oBAAoB,CAAC;YACnC,MAAM;YACN,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,WAAW,IAAI,oBAAoB;YAClE,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM;YAChC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACb,QAAQ,CAAC,CAAM,CAAC,CAAC;gBACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,eAAe,CAAC,IAAI,CAAC,CAAC;gBACtB,SAAS,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;YACD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACf,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,EAAE;oBAC3C,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,yBAAyB;oBAC/B,SAAS,EAAE,0BAA0B;iBACtC,CAAC,CAAC;gBACH,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACrB,eAAe,CAAC,UAAU,CAAC,CAAC;gBAC5B,SAAS,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,KAAK;QACL,KAAK;QACL,YAAY;QACZ,SAAS,EAAE,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,OAAO;QACnD,MAAM;KACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { FieldBuilderResult } from "./field-builders";
|
|
2
|
+
import type { ContentTypeDefinition } from "./schema-types";
|
|
3
|
+
export interface ContentTypeConfig {
|
|
4
|
+
name: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
fields: Record<string, FieldBuilderResult>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Defines a content type from a slug and configuration object.
|
|
10
|
+
* Converts field builder results into FieldDefinition[].
|
|
11
|
+
*/
|
|
12
|
+
export declare function defineContentType(slug: string, config: ContentTypeConfig): ContentTypeDefinition;
|
|
13
|
+
//# sourceMappingURL=define-content-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-content-type.d.ts","sourceRoot":"","sources":["../../src/schema/define-content-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAmB,MAAM,gBAAgB,CAAC;AAE7E,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC5C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,iBAAiB,GACxB,qBAAqB,CAgCvB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines a content type from a slug and configuration object.
|
|
3
|
+
* Converts field builder results into FieldDefinition[].
|
|
4
|
+
*/
|
|
5
|
+
export function defineContentType(slug, config) {
|
|
6
|
+
const fields = Object.entries(config.fields).map(([name, builder]) => {
|
|
7
|
+
const def = {
|
|
8
|
+
name,
|
|
9
|
+
type: builder._type,
|
|
10
|
+
required: builder._required,
|
|
11
|
+
};
|
|
12
|
+
if (builder._description) {
|
|
13
|
+
def.description = builder._description;
|
|
14
|
+
}
|
|
15
|
+
if (builder._options) {
|
|
16
|
+
def.options = {};
|
|
17
|
+
if (builder._options.choices) {
|
|
18
|
+
def.options.choices = builder._options.choices;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return def;
|
|
22
|
+
});
|
|
23
|
+
const result = {
|
|
24
|
+
slug,
|
|
25
|
+
name: config.name,
|
|
26
|
+
fields,
|
|
27
|
+
};
|
|
28
|
+
if (config.description) {
|
|
29
|
+
result.description = config.description;
|
|
30
|
+
}
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=define-content-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-content-type.js","sourceRoot":"","sources":["../../src/schema/define-content-type.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,MAAyB;IAEzB,MAAM,MAAM,GAAsB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CACjE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;QAClB,MAAM,GAAG,GAAoB;YAC3B,IAAI;YACJ,IAAI,EAAE,OAAO,CAAC,KAAK;YACnB,QAAQ,EAAE,OAAO,CAAC,SAAS;SAC5B,CAAC;QACF,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC7B,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YACjD,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CACF,CAAC;IAEF,MAAM,MAAM,GAA0B;QACpC,IAAI;QACJ,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM;KACP,CAAC;IAEF,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAC1C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ContentTypeDefinition, SchemaDefinition } from "./schema-types";
|
|
2
|
+
export interface SchemaConfig {
|
|
3
|
+
contentTypes: ContentTypeDefinition[];
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Wraps content type definitions into a SchemaDefinition.
|
|
7
|
+
*/
|
|
8
|
+
export declare function defineSchema(config: SchemaConfig): SchemaDefinition;
|
|
9
|
+
//# sourceMappingURL=define-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-schema.d.ts","sourceRoot":"","sources":["../../src/schema/define-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE9E,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,qBAAqB,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAInE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-schema.js","sourceRoot":"","sources":["../../src/schema/define-schema.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { FieldType } from "./schema-types";
|
|
2
|
+
export interface FieldBuilderOptions {
|
|
3
|
+
required?: boolean;
|
|
4
|
+
description?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface SelectChoice {
|
|
7
|
+
label: string;
|
|
8
|
+
value: string;
|
|
9
|
+
}
|
|
10
|
+
export interface SelectFieldOptions extends FieldBuilderOptions {
|
|
11
|
+
choices: SelectChoice[];
|
|
12
|
+
}
|
|
13
|
+
export interface FieldBuilderResult {
|
|
14
|
+
_type: FieldType;
|
|
15
|
+
_required: boolean;
|
|
16
|
+
_description?: string;
|
|
17
|
+
_options?: {
|
|
18
|
+
choices?: SelectChoice[];
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export declare const field: {
|
|
22
|
+
text: (opts?: FieldBuilderOptions) => FieldBuilderResult;
|
|
23
|
+
textarea: (opts?: FieldBuilderOptions) => FieldBuilderResult;
|
|
24
|
+
number: (opts?: FieldBuilderOptions) => FieldBuilderResult;
|
|
25
|
+
boolean: (opts?: FieldBuilderOptions) => FieldBuilderResult;
|
|
26
|
+
datetime: (opts?: FieldBuilderOptions) => FieldBuilderResult;
|
|
27
|
+
url: (opts?: FieldBuilderOptions) => FieldBuilderResult;
|
|
28
|
+
image: (opts?: FieldBuilderOptions) => FieldBuilderResult;
|
|
29
|
+
select: (opts: SelectFieldOptions) => FieldBuilderResult;
|
|
30
|
+
shopifyProduct: (opts?: FieldBuilderOptions) => FieldBuilderResult;
|
|
31
|
+
shopifyCollection: (opts?: FieldBuilderOptions) => FieldBuilderResult;
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=field-builders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-builders.d.ts","sourceRoot":"","sources":["../../src/schema/field-builders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;KAC1B,CAAC;CACH;AAUD,eAAO,MAAM,KAAK;kBAPD,mBAAmB,KAAG,kBAAkB;sBAAxC,mBAAmB,KAAG,kBAAkB;oBAAxC,mBAAmB,KAAG,kBAAkB;qBAAxC,mBAAmB,KAAG,kBAAkB;sBAAxC,mBAAmB,KAAG,kBAAkB;iBAAxC,mBAAmB,KAAG,kBAAkB;mBAAxC,mBAAmB,KAAG,kBAAkB;mBAexC,kBAAkB,KAAG,kBAAkB;4BAfvC,mBAAmB,KAAG,kBAAkB;+BAAxC,mBAAmB,KAAG,kBAAkB;CAuBxD,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
function createFieldBuilder(type) {
|
|
2
|
+
return (opts) => ({
|
|
3
|
+
_type: type,
|
|
4
|
+
_required: opts?.required ?? false,
|
|
5
|
+
_description: opts?.description,
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
export const field = {
|
|
9
|
+
text: createFieldBuilder("text"),
|
|
10
|
+
textarea: createFieldBuilder("textarea"),
|
|
11
|
+
number: createFieldBuilder("number"),
|
|
12
|
+
boolean: createFieldBuilder("boolean"),
|
|
13
|
+
datetime: createFieldBuilder("datetime"),
|
|
14
|
+
url: createFieldBuilder("url"),
|
|
15
|
+
image: createFieldBuilder("image"),
|
|
16
|
+
select: (opts) => ({
|
|
17
|
+
_type: "select",
|
|
18
|
+
_required: opts.required ?? false,
|
|
19
|
+
_description: opts.description,
|
|
20
|
+
_options: { choices: opts.choices },
|
|
21
|
+
}),
|
|
22
|
+
shopifyProduct: createFieldBuilder("shopifyProduct"),
|
|
23
|
+
shopifyCollection: createFieldBuilder("shopifyCollection"),
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=field-builders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-builders.js","sourceRoot":"","sources":["../../src/schema/field-builders.ts"],"names":[],"mappings":"AAyBA,SAAS,kBAAkB,CAAC,IAAe;IACzC,OAAO,CAAC,IAA0B,EAAsB,EAAE,CAAC,CAAC;QAC1D,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI,EAAE,QAAQ,IAAI,KAAK;QAClC,YAAY,EAAE,IAAI,EAAE,WAAW;KAChC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC;IAChC,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC;IACxC,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC;IACpC,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC;IACtC,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC;IACxC,GAAG,EAAE,kBAAkB,CAAC,KAAK,CAAC;IAC9B,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC;IAClC,MAAM,EAAE,CAAC,IAAwB,EAAsB,EAAE,CAAC,CAAC;QACzD,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;QACjC,YAAY,EAAE,IAAI,CAAC,WAAW;QAC9B,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;KACpC,CAAC;IACF,cAAc,EAAE,kBAAkB,CAAC,gBAAgB,CAAC;IACpD,iBAAiB,EAAE,kBAAkB,CAAC,mBAAmB,CAAC;CAC3D,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type { FieldType, FieldDefinition, ContentTypeDefinition, SchemaDefinition, } from "./schema-types";
|
|
2
|
+
export { FIELD_TYPES } from "./schema-types";
|
|
3
|
+
export type { FieldBuilderOptions, SelectChoice, SelectFieldOptions, FieldBuilderResult, } from "./field-builders";
|
|
4
|
+
export { field } from "./field-builders";
|
|
5
|
+
export type { ContentTypeConfig } from "./define-content-type";
|
|
6
|
+
export { defineContentType } from "./define-content-type";
|
|
7
|
+
export type { SchemaConfig } from "./define-schema";
|
|
8
|
+
export { defineSchema } from "./define-schema";
|
|
9
|
+
export type { ParseError, ParseWarning, ParseResult } from "./parse-schema";
|
|
10
|
+
export { parseSchemaSource } from "./parse-schema";
|
|
11
|
+
export { generateSchemaSource, generateContentTypeSource, } from "./serialize-schema";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EACL,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { FIELD_TYPES } from "./schema-types";
|
|
2
|
+
export { field } from "./field-builders";
|
|
3
|
+
export { defineContentType } from "./define-content-type";
|
|
4
|
+
export { defineSchema } from "./define-schema";
|
|
5
|
+
export { parseSchemaSource } from "./parse-schema";
|
|
6
|
+
export { generateSchemaSource, generateContentTypeSource, } from "./serialize-schema";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAQ7C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EACL,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type ContentTypeDefinition } from "./schema-types";
|
|
2
|
+
export interface ParseError {
|
|
3
|
+
line: number;
|
|
4
|
+
column: number;
|
|
5
|
+
message: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ParseWarning {
|
|
8
|
+
line: number;
|
|
9
|
+
message: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ParseResult {
|
|
12
|
+
success: boolean;
|
|
13
|
+
contentTypes: ContentTypeDefinition[];
|
|
14
|
+
errors: ParseError[];
|
|
15
|
+
warnings: ParseWarning[];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Parses schema DSL source text and extracts ContentTypeDefinition[].
|
|
19
|
+
* Custom recursive-descent parser — no TS compiler, no eval.
|
|
20
|
+
* Never throws; returns partial results + errors.
|
|
21
|
+
*/
|
|
22
|
+
export declare function parseSchemaSource(source: string): ParseResult;
|
|
23
|
+
//# sourceMappingURL=parse-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-schema.d.ts","sourceRoot":"","sources":["../../src/schema/parse-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAG3B,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAID;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CA6C7D"}
|