cooklang-parse 1.0.0 → 1.1.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.js CHANGED
@@ -11456,32 +11456,6 @@ semantics.addOperation("toAST", {
11456
11456
  return null;
11457
11457
  }
11458
11458
  });
11459
- function detectUnclosedBraces(steps) {
11460
- const warnings = [];
11461
- for (const step of steps) {
11462
- for (let i = 0;i < step.length; i++) {
11463
- const item = step[i];
11464
- if (!item || item.type !== "text")
11465
- continue;
11466
- const prev = i > 0 ? step[i - 1] : undefined;
11467
- if (prev && prev.type !== "text" && item.value.includes("{")) {
11468
- warnings.push({
11469
- message: `Possible unclosed brace after ${prev.type} "${prev.name}"`,
11470
- position: { line: 0, column: 0, offset: 0 },
11471
- severity: "warning"
11472
- });
11473
- }
11474
- if (/[@#~]\w*\{[^}]*$/.test(item.value)) {
11475
- warnings.push({
11476
- message: "Possible unclosed brace in text",
11477
- position: { line: 0, column: 0, offset: 0 },
11478
- severity: "warning"
11479
- });
11480
- }
11481
- }
11482
- }
11483
- return warnings;
11484
- }
11485
11459
  function parseCooklang(source) {
11486
11460
  const directives = extractMetadataDirectives(source);
11487
11461
  const matchResult = grammar2.match(directives.strippedSource);
@@ -11504,21 +11478,21 @@ function parseCooklang(source) {
11504
11478
  position: { line: pos.lineNum, column: pos.colNum, offset: mappedOffset },
11505
11479
  severity: "error"
11506
11480
  }
11507
- ]
11481
+ ],
11482
+ warnings: []
11508
11483
  };
11509
11484
  }
11510
11485
  const result = semantics(matchResult).toAST();
11511
11486
  const yamlStartOffset = result.frontmatter ? source.indexOf("---") + 4 : 0;
11512
11487
  const yaml = result.frontmatter ? parseYamlFrontmatter(result.frontmatter, yamlStartOffset) : null;
11513
- const errors = [];
11488
+ const warnings = [];
11514
11489
  if (yaml?.warning) {
11515
- errors.push({
11490
+ warnings.push({
11516
11491
  message: yaml.warning,
11517
11492
  position: yaml.position ?? { line: 1, column: 1, offset: 0 },
11518
11493
  severity: "warning"
11519
11494
  });
11520
11495
  }
11521
- errors.push(...detectUnclosedBraces(result.steps));
11522
11496
  const metadata = { ...yaml?.data, ...directives.metadata };
11523
11497
  const keyFn = (i) => `${i.name}|${i.quantity}|${i.units}`;
11524
11498
  return {
@@ -11529,7 +11503,8 @@ function parseCooklang(source) {
11529
11503
  timers: collectUnique(result.steps, "timer", keyFn),
11530
11504
  sections: result.sections,
11531
11505
  notes: result.notes,
11532
- errors
11506
+ errors: [],
11507
+ warnings
11533
11508
  };
11534
11509
  }
11535
11510
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"semantics.d.ts","sourceRoot":"","sources":["../src/semantics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAA;AAG7B,OAAO,KAAK,EACV,cAAc,EAOf,MAAM,SAAS,CAAA;AAEhB,QAAA,MAAM,OAAO,aAA6B,CAAA;AA8T1C,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CA0D5D;AAED,OAAO,EAAE,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"semantics.d.ts","sourceRoot":"","sources":["../src/semantics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAA;AAG7B,OAAO,KAAK,EACV,cAAc,EAOf,MAAM,SAAS,CAAA;AAEhB,QAAA,MAAM,OAAO,aAA6B,CAAA;AAoS1C,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CA0D5D;AAED,OAAO,EAAE,OAAO,EAAE,CAAA"}
package/dist/types.d.ts CHANGED
@@ -18,6 +18,7 @@ export interface CooklangRecipe {
18
18
  sections: string[];
19
19
  notes: string[];
20
20
  errors: ParseError[];
21
+ warnings: ParseError[];
21
22
  }
22
23
  export type RecipeStepItem = {
23
24
  type: "text";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,cAAc,CAAA;IACxB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,KAAK,EAAE,cAAc,EAAE,EAAE,CAAA;IACzB,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,EAAE,UAAU,EAAE,CAAA;CACrB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B,gBAAgB,GAChB,cAAc,GACd,WAAW,CAAA;AAEf,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,cAAc,CAAA;IACxB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,KAAK,EAAE,cAAc,EAAE,EAAE,CAAA;IACzB,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,EAAE,UAAU,EAAE,CAAA;IACpB,QAAQ,EAAE,UAAU,EAAE,CAAA;CACvB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B,gBAAgB,GAChB,cAAc,GACd,WAAW,CAAA;AAEf,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;CACd"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cooklang-parse",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "A simple, type-safe Cooklang parser built with Ohm.js",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",