@inlay/core 0.0.4 → 0.0.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.
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { l } from "@atproto/lex";
2
2
  export { l } from "@atproto/lex";
3
- import { type Node, type LexiconComponent } from "./node.ts";
4
- export { type Node, isValidNode } from "./node.ts";
3
+ import { type Node, type LexiconComponent } from "./node";
4
+ export { type Node, isValidNode } from "./node";
5
5
  type LexiconModule = LexiconComponent & {
6
6
  readonly main: l.Procedure;
7
7
  };
@@ -17,6 +17,9 @@ type Config<M extends LexiconModule> = Omit<l.InferMethodInputBody<M["main"]>, "
17
17
  key?: string;
18
18
  };
19
19
  export declare function $<M extends LexiconModule>(mod: M, config?: Config<M>, ...children: Child[]): Node;
20
- export declare function stringifyNode(node: Node, indent?: number): string;
21
- export declare function parseNode<T = Node>(json: string): T;
20
+ export declare function $(nsid: string, config?: l.UnknownObject & {
21
+ key?: string;
22
+ }, ...children: Child[]): Node;
23
+ export declare function serializeNode<T>(node: T): T;
24
+ export declare function deserializeNode<T>(obj: T): T;
22
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACjC,OAAO,EAEL,KAAK,IAAI,EACT,KAAK,gBAAgB,EAGtB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,KAAK,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAInD,KAAK,aAAa,GAAG,gBAAgB,GAAG;IACtC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,KAAK,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,EAAE,CAAC;AAI3E,KAAK,KAAK,CAAC,CAAC,SAAS,aAAa,IAAI,IAAI,CACxC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EACjC,UAAU,CACX,GAAG;IACF,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,GAChD,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAE9B,wBAAgB,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG;KACrC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACpE,CAEA;AAID,KAAK,MAAM,CAAC,CAAC,SAAS,aAAa,IAAI,IAAI,CACzC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EACjC,UAAU,CACX,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,wBAAgB,CAAC,CAAC,CAAC,SAAS,aAAa,EACvC,GAAG,EAAE,CAAC,EACN,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAClB,GAAG,QAAQ,EAAE,KAAK,EAAE,GACnB,IAAI,CAON;AA0BD,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,SAAS,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAEnD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEjC,OAAO,EAEL,KAAK,IAAI,EACT,KAAK,gBAAgB,EAGtB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,KAAK,IAAI,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAIhD,KAAK,aAAa,GAAG,gBAAgB,GAAG;IACtC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,KAAK,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,EAAE,CAAC;AAI3E,KAAK,KAAK,CAAC,CAAC,SAAS,aAAa,IAAI,IAAI,CACxC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EACjC,UAAU,CACX,GAAG;IACF,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,GAChD,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAE9B,wBAAgB,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG;KACrC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACpE,CAEA;AAID,KAAK,MAAM,CAAC,CAAC,SAAS,aAAa,IAAI,IAAI,CACzC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EACjC,UAAU,CACX,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAGrB,wBAAgB,CAAC,CAAC,CAAC,SAAS,aAAa,EACvC,GAAG,EAAE,CAAC,EACN,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAClB,GAAG,QAAQ,EAAE,KAAK,EAAE,GACnB,IAAI,CAAC;AAGR,wBAAgB,CAAC,CACf,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,CAAC,CAAC,aAAa,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3C,GAAG,QAAQ,EAAE,KAAK,EAAE,GACnB,IAAI,CAAC;AAmBR,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAW3C;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAS5C"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  // Usage:
4
4
  // import { Stack } from "@/generated/org/design";
5
5
  // import { Post } from "@/generated/com/example";
6
- // import { $, parseNode } from "@inlay/core";
6
+ // import { $, serializeNode, deserializeNode } from "@inlay/core";
7
7
  //
8
8
  // $(Stack, { gap: "medium" },
9
9
  // $(Post, { uri: 'at://...' }),
@@ -11,48 +11,47 @@
11
11
  // )
12
12
  //
13
13
  // Serialization:
14
- // stringifyNode(node) // serializes with brand encoding
15
- // parseNode(json) // restores branded nodes
14
+ // serializeNode(node)
15
+ // deserializeNode(obj)
16
16
  //
17
17
  // Node types are NSIDs (e.g., "com.example.Post")
18
18
  export { l } from "@atproto/lex";
19
- import { BRAND, createNode, keyStaticChildren, } from "./node.js";
20
- export { isValidNode } from "./node.js";
19
+ import { ensureValidNsid } from "@atproto/syntax";
20
+ import { BRAND, createNode, keyStaticChildren, } from "./node";
21
+ export { isValidNode } from "./node";
21
22
  export function jslex(namespace) {
22
23
  return namespace;
23
24
  }
24
- export function $(mod, config, ...children) {
25
+ // Implementation
26
+ export function $(modOrNsid, config, ...children) {
27
+ const nsid = typeof modOrNsid === "string"
28
+ ? (ensureValidNsid(modOrNsid), modOrNsid)
29
+ : modOrNsid.$nsid;
25
30
  const { key, ...rest } = config ?? {};
26
31
  const props = children.length > 0
27
32
  ? { ...rest, children: keyStaticChildren(children) }
28
33
  : rest;
29
- return createNode(mod.$nsid, key, props);
34
+ return createNode(nsid, key, props);
30
35
  }
31
- function replacer(key, value) {
32
- if (key === "$") {
33
- if (value === BRAND) {
34
- return "$";
36
+ export function serializeNode(node) {
37
+ return JSON.parse(JSON.stringify(node, (key, value) => {
38
+ if (key === "$") {
39
+ if (value === BRAND)
40
+ return "$";
41
+ if (typeof value === "string" && value.startsWith("$"))
42
+ return "$" + value;
35
43
  }
36
- if (typeof value === "string" && value.startsWith("$")) {
37
- return "$" + value;
38
- }
39
- }
40
- return value;
44
+ return value;
45
+ }));
41
46
  }
42
- function reviver(key, value) {
43
- if (key === "$") {
44
- if (value === "$") {
45
- return BRAND;
46
- }
47
- if (typeof value === "string" && value.startsWith("$$")) {
48
- return value.slice(1);
47
+ export function deserializeNode(obj) {
48
+ return JSON.parse(JSON.stringify(obj), (key, value) => {
49
+ if (key === "$") {
50
+ if (value === "$")
51
+ return BRAND;
52
+ if (typeof value === "string" && value.startsWith("$$"))
53
+ return value.slice(1);
49
54
  }
50
- }
51
- return value;
52
- }
53
- export function stringifyNode(node, indent) {
54
- return JSON.stringify(node, replacer, indent);
55
- }
56
- export function parseNode(json) {
57
- return JSON.parse(json, reviver);
55
+ return value;
56
+ });
58
57
  }
@@ -1,6 +1,6 @@
1
1
  import type { l } from "@atproto/lex";
2
- import type { Node, LexiconComponent } from "./node.ts";
3
- import { Fragment } from "./jsx-runtime.ts";
2
+ import type { Node, LexiconComponent } from "./node";
3
+ import { Fragment } from "./jsx-runtime";
4
4
  export { Fragment };
5
5
  export declare function jsxDEV(type: LexiconComponent, props: l.UnknownObject | null, key?: string, isStaticChildren?: boolean): Node;
6
6
  //# sourceMappingURL=jsx-dev-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-dev-runtime.d.ts","sourceRoot":"","sources":["../src/jsx-dev-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAa,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,wBAAgB,MAAM,CACpB,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,CAAC,CAAC,aAAa,GAAG,IAAI,EAC7B,GAAG,CAAC,EAAE,MAAM,EACZ,gBAAgB,CAAC,EAAE,OAAO,GACzB,IAAI,CAEN"}
1
+ {"version":3,"file":"jsx-dev-runtime.d.ts","sourceRoot":"","sources":["../src/jsx-dev-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAa,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,wBAAgB,MAAM,CACpB,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,CAAC,CAAC,aAAa,GAAG,IAAI,EAC7B,GAAG,CAAC,EAAE,MAAM,EACZ,gBAAgB,CAAC,EAAE,OAAO,GACzB,IAAI,CAEN"}
@@ -1,4 +1,4 @@
1
- import { jsx, jsxs, Fragment } from "./jsx-runtime.js";
1
+ import { jsx, jsxs, Fragment } from "./jsx-runtime";
2
2
  export { Fragment };
3
3
  export function jsxDEV(type, props, key, isStaticChildren) {
4
4
  return isStaticChildren ? jsxs(type, props, key) : jsx(type, props, key);
@@ -1,5 +1,5 @@
1
1
  import type { l } from "@atproto/lex";
2
- import { type Node, type LexiconComponent } from "./node.ts";
2
+ import { type Node, type LexiconComponent } from "./node";
3
3
  export declare function jsx(type: LexiconComponent, props: l.UnknownObject | null, key?: string): Node;
4
4
  export declare function jsxs(type: LexiconComponent, props: l.UnknownObject | null, key?: string): Node;
5
5
  export declare function Fragment(_props: {
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../src/jsx-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,KAAK,IAAI,EACT,KAAK,gBAAgB,EAGtB,MAAM,WAAW,CAAC;AAEnB,wBAAgB,GAAG,CACjB,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,CAAC,CAAC,aAAa,GAAG,IAAI,EAC7B,GAAG,CAAC,EAAE,MAAM,GACX,IAAI,CAEN;AAED,wBAAgB,IAAI,CAClB,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,CAAC,CAAC,aAAa,GAAG,IAAI,EAC7B,GAAG,CAAC,EAAE,MAAM,GACX,IAAI,CAQN;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,KAAK,CAE9D"}
1
+ {"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../src/jsx-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,KAAK,IAAI,EACT,KAAK,gBAAgB,EAGtB,MAAM,QAAQ,CAAC;AAEhB,wBAAgB,GAAG,CACjB,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,CAAC,CAAC,aAAa,GAAG,IAAI,EAC7B,GAAG,CAAC,EAAE,MAAM,GACX,IAAI,CAEN;AAED,wBAAgB,IAAI,CAClB,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,CAAC,CAAC,aAAa,GAAG,IAAI,EAC7B,GAAG,CAAC,EAAE,MAAM,GACX,IAAI,CAQN;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,KAAK,CAE9D"}
@@ -1,4 +1,4 @@
1
- import { createNode, keyStaticChildren, } from "./node.js";
1
+ import { createNode, keyStaticChildren, } from "./node";
2
2
  export function jsx(type, props, key) {
3
3
  return createNode(type.$nsid, key, props);
4
4
  }
package/dist/node.d.ts CHANGED
@@ -8,7 +8,7 @@ export type Node = {
8
8
  export type LexiconComponent = {
9
9
  readonly $nsid: l.NsidString;
10
10
  };
11
- export declare function createNode(type: l.NsidString, key?: string, props?: l.UnknownObject | null): Node;
11
+ export declare function createNode(type: l.NsidString, key?: string, props?: Record<string, unknown> | null): Node;
12
12
  export declare function isValidNode(value: unknown): value is Node;
13
13
  export declare function keyStaticChildren<T>(children: T): T;
14
14
  //# sourceMappingURL=node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEtC,eAAO,MAAM,KAAK,eAAkB,CAAC;AAErC,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC;CAC9B,CAAC;AAEF,wBAAgB,UAAU,CACxB,IAAI,EAAE,CAAC,CAAC,UAAU,EAClB,GAAG,CAAC,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,CAAC,CAAC,aAAa,GAAG,IAAI,GAC7B,IAAI,CAEN;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAMzD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAYnD"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEtC,eAAO,MAAM,KAAK,eAAkB,CAAC;AAErC,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC;CAC9B,CAAC;AAEF,wBAAgB,UAAU,CACxB,IAAI,EAAE,CAAC,CAAC,UAAU,EAClB,GAAG,CAAC,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACrC,IAAI,CAEN;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAMzD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAYnD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inlay/core",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "type": "module",
5
5
  "author": "Dan Abramov <dan.abramov@gmail.com>",
6
6
  "license": "MIT",
@@ -29,7 +29,8 @@
29
29
  "prepublishOnly": "npm run build"
30
30
  },
31
31
  "dependencies": {
32
- "@atproto/lex": "^0.0.12"
32
+ "@atproto/lex": "^0.0.12",
33
+ "@atproto/syntax": "^0.4.3"
33
34
  },
34
35
  "devDependencies": {
35
36
  "typescript": "^5.9.0"