@glion/builder 0.20.0 → 0.22.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/dist/index.d.ts CHANGED
@@ -1,6 +1,12 @@
1
1
  import type { Component, Field, FieldRepetition, Group, Root, RootContent, Segment } from "@glion/ast";
2
2
  export declare function m(...children: RootContent[]): Root;
3
- export declare function g(name: string, ...children: (Segment | Group)[]): Group;
3
+ /**
4
+ * A group of `children`. A string `group` is both the group's ID and its name.
5
+ */
6
+ export declare function g(group: string | {
7
+ id: string;
8
+ name: string;
9
+ }, ...children: (Segment | Group)[]): Group;
4
10
  export declare function s(name: string, ...fields: Field[]): Segment;
5
11
  type FieldValue = FieldRepetition | Component | string;
6
12
  type Flattenable<T> = T | T[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EACT,KAAK,EACL,eAAe,EACf,KAAK,EACL,IAAI,EACJ,WAAW,EACX,OAAO,EACR,MAAM,YAAY,CAAC;AAGpB,wBAAgB,CAAC,CAAC,GAAG,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAElD;AAED,wBAAgB,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAIvE;AAKD,wBAAgB,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAI3D;AAED,KAAK,UAAU,GAAG,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC;AACvD,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAoB9B,kBAAkB;AAClB,wBAAgB,CAAC,IAAI,KAAK,CAAC;AAC3B,wBAAgB,CAAC,CAAC,GAAG,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,CAAC;AAuC/D,wBAAgB,CAAC,IAAI,eAAe,CAAC;AACrC,wBAAgB,CAAC,CACf,GAAG,UAAU,EAAE,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,EAAE,GAC/C,eAAe,CAAC;AAmBnB,wBAAgB,CAAC,IAAI,SAAS,CAAC;AAC/B,wBAAgB,CAAC,CAAC,GAAG,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EACT,KAAK,EACL,eAAe,EACf,KAAK,EACL,IAAI,EACJ,WAAW,EACX,OAAO,EACR,MAAM,YAAY,CAAC;AAGpB,wBAAgB,CAAC,CAAC,GAAG,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAElD;AAED;;GAEG;AACH,wBAAgB,CAAC,CACf,KAAK,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC5C,GAAG,QAAQ,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,GAC/B,KAAK,CAIP;AAKD,wBAAgB,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAI3D;AAED,KAAK,UAAU,GAAG,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC;AACvD,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAoB9B,kBAAkB;AAClB,wBAAgB,CAAC,IAAI,KAAK,CAAC;AAC3B,wBAAgB,CAAC,CAAC,GAAG,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,CAAC;AAuC/D,wBAAgB,CAAC,IAAI,eAAe,CAAC;AACrC,wBAAgB,CAAC,CACf,GAAG,UAAU,EAAE,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,EAAE,GAC/C,eAAe,CAAC;AAmBnB,wBAAgB,CAAC,IAAI,SAAS,CAAC;AAC/B,wBAAgB,CAAC,CAAC,GAAG,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -3,10 +3,18 @@ import { u } from "unist-builder";
3
3
  function m(...children) {
4
4
  return u("root", children);
5
5
  }
6
- function g(name, ...children) {
7
- const group = u("group", children);
8
- group.name = name;
9
- return group;
6
+ /**
7
+ * A group of `children`. A string `group` is both the group's ID and its name.
8
+ */
9
+ function g(group, ...children) {
10
+ const { id, name } = typeof group === "string" ? {
11
+ id: group,
12
+ name: group
13
+ } : group;
14
+ return u("group", {
15
+ id,
16
+ name
17
+ }, children);
10
18
  }
11
19
  function s(name, ...fields) {
12
20
  const segment = u("segment", fields);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["// oxlint-disable typescript/unified-signatures\nimport type {\n Component,\n Field,\n FieldRepetition,\n Group,\n Root,\n RootContent,\n Segment,\n} from \"@glion/ast\";\nimport { u } from \"unist-builder\";\n\nexport function m(...children: RootContent[]): Root {\n return u(\"root\", children);\n}\n\nexport function g(name: string, ...children: (Segment | Group)[]): Group {\n const group = u(\"group\", children) as Group;\n group.name = name;\n return group;\n}\n\n// TODO: Add support for string[]\n// export function s(name: string, ...fields: string[]): Segment;\n// export function s(name: string, ...fields: string[] | Field[]): Segment {\nexport function s(name: string, ...fields: Field[]): Segment {\n const segment = u(\"segment\", fields) as Segment;\n segment.name = name;\n return segment;\n}\n\ntype FieldValue = FieldRepetition | Component | string;\ntype Flattenable<T> = T | T[];\n\nfunction flatten<T>(values: Flattenable<T>[]): T[] {\n return values.flatMap((value) => (Array.isArray(value) ? value : [value]));\n}\n\nfunction isFieldRepetition(value: FieldValue): value is FieldRepetition {\n return (\n typeof value === \"object\" &&\n value !== null &&\n value.type === \"field-repetition\"\n );\n}\n\nfunction isComponent(value: FieldValue): value is Component {\n return (\n typeof value === \"object\" && value !== null && value.type === \"component\"\n );\n}\n\n/** Empty field */\nexport function f(): Field;\nexport function f(...values: Flattenable<FieldValue>[]): Field;\nexport function f(...values: Flattenable<FieldValue>[]): Field {\n if (values.length === 0) {\n return u(\"field\", []);\n }\n\n const flat = flatten<FieldValue>(values);\n if (flat.length === 0) {\n return u(\"field\", []);\n }\n\n const repetitions: FieldRepetition[] = [];\n let pendingComponents: (Component | string)[] = [];\n\n const flushPending = () => {\n if (pendingComponents.length === 0) {\n return;\n }\n repetitions.push(r(...pendingComponents));\n pendingComponents = [];\n };\n\n for (const value of flat) {\n if (isFieldRepetition(value)) {\n flushPending();\n repetitions.push(value);\n continue;\n }\n\n if (isComponent(value) || typeof value === \"string\") {\n pendingComponents.push(value);\n }\n }\n\n flushPending();\n\n return u(\"field\", repetitions);\n}\n\nexport function r(): FieldRepetition;\nexport function r(\n ...components: Flattenable<Component | string>[]\n): FieldRepetition;\nexport function r(\n ...components: Flattenable<Component | string>[]\n): FieldRepetition {\n if (components.length === 0) {\n return u(\"field-repetition\", []);\n }\n\n const flat = flatten<Component | string>(components);\n if (flat.length === 0) {\n return u(\"field-repetition\", []);\n }\n\n return u(\n \"field-repetition\",\n flat.map((value) => (typeof value === \"string\" ? c(value) : value))\n );\n}\n\nexport function c(): Component;\nexport function c(...values: Flattenable<string>[]): Component;\nexport function c(...values: Flattenable<string>[]): Component {\n if (values.length === 0) {\n return u(\"component\", []);\n }\n\n const flat = flatten<string>(values);\n if (flat.length === 0) {\n return u(\"component\", []);\n }\n\n return u(\n \"component\",\n flat.map((subcomponent) => u(\"subcomponent\", subcomponent))\n );\n}\n"],"mappings":";;AAYA,SAAgB,EAAE,GAAG,UAA+B;AAClD,QAAO,EAAE,QAAQ,SAAS;;AAG5B,SAAgB,EAAE,MAAc,GAAG,UAAsC;CACvE,MAAM,QAAQ,EAAE,SAAS,SAAS;AAClC,OAAM,OAAO;AACb,QAAO;;AAMT,SAAgB,EAAE,MAAc,GAAG,QAA0B;CAC3D,MAAM,UAAU,EAAE,WAAW,OAAO;AACpC,SAAQ,OAAO;AACf,QAAO;;AAMT,SAAS,QAAW,QAA+B;AACjD,QAAO,OAAO,SAAS,UAAW,MAAM,QAAQ,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAE;;AAG5E,SAAS,kBAAkB,OAA6C;AACtE,QACE,OAAO,UAAU,YACjB,UAAU,QACV,MAAM,SAAS;;AAInB,SAAS,YAAY,OAAuC;AAC1D,QACE,OAAO,UAAU,YAAY,UAAU,QAAQ,MAAM,SAAS;;AAOlE,SAAgB,EAAE,GAAG,QAA0C;AAC7D,KAAI,OAAO,WAAW,EACpB,QAAO,EAAE,SAAS,EAAE,CAAC;CAGvB,MAAM,OAAO,QAAoB,OAAO;AACxC,KAAI,KAAK,WAAW,EAClB,QAAO,EAAE,SAAS,EAAE,CAAC;CAGvB,MAAM,cAAiC,EAAE;CACzC,IAAI,oBAA4C,EAAE;CAElD,MAAM,qBAAqB;AACzB,MAAI,kBAAkB,WAAW,EAC/B;AAEF,cAAY,KAAK,EAAE,GAAG,kBAAkB,CAAC;AACzC,sBAAoB,EAAE;;AAGxB,MAAK,MAAM,SAAS,MAAM;AACxB,MAAI,kBAAkB,MAAM,EAAE;AAC5B,iBAAc;AACd,eAAY,KAAK,MAAM;AACvB;;AAGF,MAAI,YAAY,MAAM,IAAI,OAAO,UAAU,SACzC,mBAAkB,KAAK,MAAM;;AAIjC,eAAc;AAEd,QAAO,EAAE,SAAS,YAAY;;AAOhC,SAAgB,EACd,GAAG,YACc;AACjB,KAAI,WAAW,WAAW,EACxB,QAAO,EAAE,oBAAoB,EAAE,CAAC;CAGlC,MAAM,OAAO,QAA4B,WAAW;AACpD,KAAI,KAAK,WAAW,EAClB,QAAO,EAAE,oBAAoB,EAAE,CAAC;AAGlC,QAAO,EACL,oBACA,KAAK,KAAK,UAAW,OAAO,UAAU,WAAW,EAAE,MAAM,GAAG,MAAO,CACpE;;AAKH,SAAgB,EAAE,GAAG,QAA0C;AAC7D,KAAI,OAAO,WAAW,EACpB,QAAO,EAAE,aAAa,EAAE,CAAC;CAG3B,MAAM,OAAO,QAAgB,OAAO;AACpC,KAAI,KAAK,WAAW,EAClB,QAAO,EAAE,aAAa,EAAE,CAAC;AAG3B,QAAO,EACL,aACA,KAAK,KAAK,iBAAiB,EAAE,gBAAgB,aAAa,CAAC,CAC5D"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["// oxlint-disable typescript/unified-signatures\nimport type {\n Component,\n Field,\n FieldRepetition,\n Group,\n Root,\n RootContent,\n Segment,\n} from \"@glion/ast\";\nimport { u } from \"unist-builder\";\n\nexport function m(...children: RootContent[]): Root {\n return u(\"root\", children);\n}\n\n/**\n * A group of `children`. A string `group` is both the group's ID and its name.\n */\nexport function g(\n group: string | { id: string; name: string },\n ...children: (Segment | Group)[]\n): Group {\n const { id, name } =\n typeof group === \"string\" ? { id: group, name: group } : group;\n return u(\"group\", { id, name }, children);\n}\n\n// TODO: Add support for string[]\n// export function s(name: string, ...fields: string[]): Segment;\n// export function s(name: string, ...fields: string[] | Field[]): Segment {\nexport function s(name: string, ...fields: Field[]): Segment {\n const segment = u(\"segment\", fields) as Segment;\n segment.name = name;\n return segment;\n}\n\ntype FieldValue = FieldRepetition | Component | string;\ntype Flattenable<T> = T | T[];\n\nfunction flatten<T>(values: Flattenable<T>[]): T[] {\n return values.flatMap((value) => (Array.isArray(value) ? value : [value]));\n}\n\nfunction isFieldRepetition(value: FieldValue): value is FieldRepetition {\n return (\n typeof value === \"object\" &&\n value !== null &&\n value.type === \"field-repetition\"\n );\n}\n\nfunction isComponent(value: FieldValue): value is Component {\n return (\n typeof value === \"object\" && value !== null && value.type === \"component\"\n );\n}\n\n/** Empty field */\nexport function f(): Field;\nexport function f(...values: Flattenable<FieldValue>[]): Field;\nexport function f(...values: Flattenable<FieldValue>[]): Field {\n if (values.length === 0) {\n return u(\"field\", []);\n }\n\n const flat = flatten<FieldValue>(values);\n if (flat.length === 0) {\n return u(\"field\", []);\n }\n\n const repetitions: FieldRepetition[] = [];\n let pendingComponents: (Component | string)[] = [];\n\n const flushPending = () => {\n if (pendingComponents.length === 0) {\n return;\n }\n repetitions.push(r(...pendingComponents));\n pendingComponents = [];\n };\n\n for (const value of flat) {\n if (isFieldRepetition(value)) {\n flushPending();\n repetitions.push(value);\n continue;\n }\n\n if (isComponent(value) || typeof value === \"string\") {\n pendingComponents.push(value);\n }\n }\n\n flushPending();\n\n return u(\"field\", repetitions);\n}\n\nexport function r(): FieldRepetition;\nexport function r(\n ...components: Flattenable<Component | string>[]\n): FieldRepetition;\nexport function r(\n ...components: Flattenable<Component | string>[]\n): FieldRepetition {\n if (components.length === 0) {\n return u(\"field-repetition\", []);\n }\n\n const flat = flatten<Component | string>(components);\n if (flat.length === 0) {\n return u(\"field-repetition\", []);\n }\n\n return u(\n \"field-repetition\",\n flat.map((value) => (typeof value === \"string\" ? c(value) : value))\n );\n}\n\nexport function c(): Component;\nexport function c(...values: Flattenable<string>[]): Component;\nexport function c(...values: Flattenable<string>[]): Component {\n if (values.length === 0) {\n return u(\"component\", []);\n }\n\n const flat = flatten<string>(values);\n if (flat.length === 0) {\n return u(\"component\", []);\n }\n\n return u(\n \"component\",\n flat.map((subcomponent) => u(\"subcomponent\", subcomponent))\n );\n}\n"],"mappings":";;AAYA,SAAgB,EAAE,GAAG,UAA+B;AAClD,QAAO,EAAE,QAAQ,SAAS;;;;;AAM5B,SAAgB,EACd,OACA,GAAG,UACI;CACP,MAAM,EAAE,IAAI,SACV,OAAO,UAAU,WAAW;EAAE,IAAI;EAAO,MAAM;EAAO,GAAG;AAC3D,QAAO,EAAE,SAAS;EAAE;EAAI;EAAM,EAAE,SAAS;;AAM3C,SAAgB,EAAE,MAAc,GAAG,QAA0B;CAC3D,MAAM,UAAU,EAAE,WAAW,OAAO;AACpC,SAAQ,OAAO;AACf,QAAO;;AAMT,SAAS,QAAW,QAA+B;AACjD,QAAO,OAAO,SAAS,UAAW,MAAM,QAAQ,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAE;;AAG5E,SAAS,kBAAkB,OAA6C;AACtE,QACE,OAAO,UAAU,YACjB,UAAU,QACV,MAAM,SAAS;;AAInB,SAAS,YAAY,OAAuC;AAC1D,QACE,OAAO,UAAU,YAAY,UAAU,QAAQ,MAAM,SAAS;;AAOlE,SAAgB,EAAE,GAAG,QAA0C;AAC7D,KAAI,OAAO,WAAW,EACpB,QAAO,EAAE,SAAS,EAAE,CAAC;CAGvB,MAAM,OAAO,QAAoB,OAAO;AACxC,KAAI,KAAK,WAAW,EAClB,QAAO,EAAE,SAAS,EAAE,CAAC;CAGvB,MAAM,cAAiC,EAAE;CACzC,IAAI,oBAA4C,EAAE;CAElD,MAAM,qBAAqB;AACzB,MAAI,kBAAkB,WAAW,EAC/B;AAEF,cAAY,KAAK,EAAE,GAAG,kBAAkB,CAAC;AACzC,sBAAoB,EAAE;;AAGxB,MAAK,MAAM,SAAS,MAAM;AACxB,MAAI,kBAAkB,MAAM,EAAE;AAC5B,iBAAc;AACd,eAAY,KAAK,MAAM;AACvB;;AAGF,MAAI,YAAY,MAAM,IAAI,OAAO,UAAU,SACzC,mBAAkB,KAAK,MAAM;;AAIjC,eAAc;AAEd,QAAO,EAAE,SAAS,YAAY;;AAOhC,SAAgB,EACd,GAAG,YACc;AACjB,KAAI,WAAW,WAAW,EACxB,QAAO,EAAE,oBAAoB,EAAE,CAAC;CAGlC,MAAM,OAAO,QAA4B,WAAW;AACpD,KAAI,KAAK,WAAW,EAClB,QAAO,EAAE,oBAAoB,EAAE,CAAC;AAGlC,QAAO,EACL,oBACA,KAAK,KAAK,UAAW,OAAO,UAAU,WAAW,EAAE,MAAM,GAAG,MAAO,CACpE;;AAKH,SAAgB,EAAE,GAAG,QAA0C;AAC7D,KAAI,OAAO,WAAW,EACpB,QAAO,EAAE,aAAa,EAAE,CAAC;CAG3B,MAAM,OAAO,QAAgB,OAAO;AACpC,KAAI,KAAK,WAAW,EAClB,QAAO,EAAE,aAAa,EAAE,CAAC;AAG3B,QAAO,EACL,aACA,KAAK,KAAK,iBAAiB,EAAE,gBAAgB,aAAa,CAAC,CAC5D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glion/builder",
3
- "version": "0.20.0",
3
+ "version": "0.22.0",
4
4
  "description": "Build HL7v2 AST nodes",
5
5
  "keywords": [
6
6
  "health",
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "unist-builder": "4.0.0",
37
- "@glion/ast": "0.20.0"
37
+ "@glion/ast": "0.22.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/node": "25.6.0",