@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.
Files changed (65) hide show
  1. package/README.md +153 -4
  2. package/dist/client.d.ts +5 -1
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +237 -41
  5. package/dist/client.js.map +1 -1
  6. package/dist/error-utils.d.ts +20 -0
  7. package/dist/error-utils.d.ts.map +1 -0
  8. package/dist/error-utils.js +67 -0
  9. package/dist/error-utils.js.map +1 -0
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +148 -22
  13. package/dist/index.js.map +1 -1
  14. package/dist/live-edit.d.ts.map +1 -1
  15. package/dist/live-edit.js +241 -102
  16. package/dist/live-edit.js.map +1 -1
  17. package/dist/logging.d.ts +6 -0
  18. package/dist/logging.d.ts.map +1 -0
  19. package/dist/logging.js +58 -0
  20. package/dist/logging.js.map +1 -0
  21. package/dist/react/index.d.ts +1 -1
  22. package/dist/react/index.d.ts.map +1 -1
  23. package/dist/react/index.js.map +1 -1
  24. package/dist/react/no-mess-preview.d.ts +2 -6
  25. package/dist/react/no-mess-preview.d.ts.map +1 -1
  26. package/dist/react/no-mess-preview.js.map +1 -1
  27. package/dist/react/use-no-mess-live-edit.d.ts.map +1 -1
  28. package/dist/react/use-no-mess-live-edit.js +32 -2
  29. package/dist/react/use-no-mess-live-edit.js.map +1 -1
  30. package/dist/react/use-no-mess-preview.d.ts.map +1 -1
  31. package/dist/react/use-no-mess-preview.js +29 -6
  32. package/dist/react/use-no-mess-preview.js.map +1 -1
  33. package/dist/schema/define-content-type.d.ts +13 -0
  34. package/dist/schema/define-content-type.d.ts.map +1 -0
  35. package/dist/schema/define-content-type.js +33 -0
  36. package/dist/schema/define-content-type.js.map +1 -0
  37. package/dist/schema/define-schema.d.ts +9 -0
  38. package/dist/schema/define-schema.d.ts.map +1 -0
  39. package/dist/schema/define-schema.js +9 -0
  40. package/dist/schema/define-schema.js.map +1 -0
  41. package/dist/schema/field-builders.d.ts +33 -0
  42. package/dist/schema/field-builders.d.ts.map +1 -0
  43. package/dist/schema/field-builders.js +25 -0
  44. package/dist/schema/field-builders.js.map +1 -0
  45. package/dist/schema/index.d.ts +12 -0
  46. package/dist/schema/index.d.ts.map +1 -0
  47. package/dist/schema/index.js +7 -0
  48. package/dist/schema/index.js.map +1 -0
  49. package/dist/schema/parse-schema.d.ts +23 -0
  50. package/dist/schema/parse-schema.d.ts.map +1 -0
  51. package/dist/schema/parse-schema.js +419 -0
  52. package/dist/schema/parse-schema.js.map +1 -0
  53. package/dist/schema/schema-types.d.ts +28 -0
  54. package/dist/schema/schema-types.d.ts.map +1 -0
  55. package/dist/schema/schema-types.js +17 -0
  56. package/dist/schema/schema-types.js.map +1 -0
  57. package/dist/schema/serialize-schema.d.ts +11 -0
  58. package/dist/schema/serialize-schema.d.ts.map +1 -0
  59. package/dist/schema/serialize-schema.js +85 -0
  60. package/dist/schema/serialize-schema.js.map +1 -0
  61. package/dist/types.d.ts +49 -2
  62. package/dist/types.d.ts.map +1 -1
  63. package/dist/types.js +22 -4
  64. package/dist/types.js.map +1 -1
  65. 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;AAKxD,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;IAEF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;IAE3B,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,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5D,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;QACN,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,OAAO,EAAE,GAAG,EAAE;gBACZ,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC1B,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACxB,CAAC;YACD,MAAM,EAAE,GAAG,EAAE;gBACX,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC3B,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACxB,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,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"use-no-mess-live-edit.js","sourceRoot":"","sources":["../../src/react/use-no-mess-live-edit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-no-mess-preview.d.ts","sourceRoot":"","sources":["../../src/react/use-no-mess-preview.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,WAAW,EACX,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,CAiC3B"}
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 [isLoading, setIsLoading] = useState(true);
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 client = new NoMessClient({
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
- setIsLoading(false);
33
+ setErrorDetails(null);
34
+ setStatus("ready");
24
35
  },
25
36
  onError: (err) => {
26
- setError(err);
27
- setIsLoading(false);
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 { entry, error, isLoading };
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;AAMnD,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,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEjD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;YAC9B,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM;YAChC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM;SACjC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,oBAAoB,CAAC;YACnC,MAAM;YACN,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,WAAW,IAAI,oBAAoB;YAClE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACb,QAAQ,CAAC,CAAM,CAAC,CAAC;gBACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YACD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACf,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACd,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,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,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACrC,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,9 @@
1
+ /**
2
+ * Wraps content type definitions into a SchemaDefinition.
3
+ */
4
+ export function defineSchema(config) {
5
+ return {
6
+ contentTypes: config.contentTypes,
7
+ };
8
+ }
9
+ //# sourceMappingURL=define-schema.js.map
@@ -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"}