@nowline/embed 0.0.0-dev.20261016125632.gcdc768a → 0.0.0-dev.20261016135659.g7e263e2

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/meta.json CHANGED
@@ -5141,17 +5141,17 @@
5141
5141
  "format": "esm"
5142
5142
  },
5143
5143
  "../core/dist/i18n/codes.js": {
5144
- "bytes": 2626,
5144
+ "bytes": 2642,
5145
5145
  "imports": [],
5146
5146
  "format": "esm"
5147
5147
  },
5148
5148
  "../core/dist/i18n/messages.en.js": {
5149
- "bytes": 20976,
5149
+ "bytes": 21089,
5150
5150
  "imports": [],
5151
5151
  "format": "esm"
5152
5152
  },
5153
5153
  "../core/dist/i18n/messages.fr.js": {
5154
- "bytes": 24782,
5154
+ "bytes": 24934,
5155
5155
  "imports": [],
5156
5156
  "format": "esm"
5157
5157
  },
@@ -5280,8 +5280,13 @@
5280
5280
  "format": "esm"
5281
5281
  },
5282
5282
  "../core/dist/language/include-waves.js": {
5283
- "bytes": 11995,
5283
+ "bytes": 12694,
5284
5284
  "imports": [
5285
+ {
5286
+ "path": "../../node_modules/.pnpm/langium@4.4.0/node_modules/langium/lib/index.js",
5287
+ "kind": "import-statement",
5288
+ "original": "langium"
5289
+ },
5285
5290
  {
5286
5291
  "path": "../core/dist/generated/ast.js",
5287
5292
  "kind": "import-statement",
@@ -5325,13 +5330,55 @@
5325
5330
  ],
5326
5331
  "format": "esm"
5327
5332
  },
5333
+ "../core/dist/language/references.js": {
5334
+ "bytes": 1542,
5335
+ "imports": [
5336
+ {
5337
+ "path": "../core/dist/util/props.js",
5338
+ "kind": "import-statement",
5339
+ "original": "../util/props.js"
5340
+ },
5341
+ {
5342
+ "path": "../core/dist/language/ast-walk.js",
5343
+ "kind": "import-statement",
5344
+ "original": "./ast-walk.js"
5345
+ },
5346
+ {
5347
+ "path": "../core/dist/language/waves.js",
5348
+ "kind": "import-statement",
5349
+ "original": "./waves.js"
5350
+ }
5351
+ ],
5352
+ "format": "esm"
5353
+ },
5354
+ "../core/dist/language/include-references.js": {
5355
+ "bytes": 2066,
5356
+ "imports": [
5357
+ {
5358
+ "path": "../core/dist/i18n/index.js",
5359
+ "kind": "import-statement",
5360
+ "original": "../i18n/index.js"
5361
+ },
5362
+ {
5363
+ "path": "../core/dist/language/include-waves.js",
5364
+ "kind": "import-statement",
5365
+ "original": "./include-waves.js"
5366
+ },
5367
+ {
5368
+ "path": "../core/dist/language/references.js",
5369
+ "kind": "import-statement",
5370
+ "original": "./references.js"
5371
+ }
5372
+ ],
5373
+ "format": "esm"
5374
+ },
5328
5375
  "stub-node-read-file:../util/node-read-file.js": {
5329
5376
  "bytes": 125,
5330
5377
  "imports": [],
5331
5378
  "format": "esm"
5332
5379
  },
5333
5380
  "../core/dist/language/include-resolver.js": {
5334
- "bytes": 21228,
5381
+ "bytes": 21549,
5335
5382
  "imports": [
5336
5383
  {
5337
5384
  "path": "../../node_modules/.pnpm/langium@4.4.0/node_modules/langium/lib/index.js",
@@ -5353,6 +5400,11 @@
5353
5400
  "kind": "import-statement",
5354
5401
  "original": "../util/props.js"
5355
5402
  },
5403
+ {
5404
+ "path": "../core/dist/language/include-references.js",
5405
+ "kind": "import-statement",
5406
+ "original": "./include-references.js"
5407
+ },
5356
5408
  {
5357
5409
  "path": "../core/dist/language/include-waves.js",
5358
5410
  "kind": "import-statement",
@@ -5512,7 +5564,7 @@
5512
5564
  "format": "esm"
5513
5565
  },
5514
5566
  "../core/dist/language/validator/references.js": {
5515
- "bytes": 12693,
5567
+ "bytes": 11988,
5516
5568
  "imports": [
5517
5569
  {
5518
5570
  "path": "../core/dist/generated/ast.js",
@@ -5529,6 +5581,11 @@
5529
5581
  "kind": "import-statement",
5530
5582
  "original": "../ast-walk.js"
5531
5583
  },
5584
+ {
5585
+ "path": "../core/dist/language/references.js",
5586
+ "kind": "import-statement",
5587
+ "original": "../references.js"
5588
+ },
5532
5589
  {
5533
5590
  "path": "../core/dist/language/validator-utils.js",
5534
5591
  "kind": "import-statement",
@@ -9943,7 +10000,7 @@
9943
10000
  "format": "esm"
9944
10001
  },
9945
10002
  "../browser/dist/diagnostic-row.js": {
9946
- "bytes": 3602,
10003
+ "bytes": 3802,
9947
10004
  "imports": [
9948
10005
  {
9949
10006
  "path": "../core/dist/index.js",
@@ -10278,7 +10335,7 @@
10278
10335
  "imports": [],
10279
10336
  "exports": [],
10280
10337
  "inputs": {},
10281
- "bytes": 3671785
10338
+ "bytes": 3679461
10282
10339
  },
10283
10340
  "dist/nowline.min.js": {
10284
10341
  "imports": [],
@@ -11147,10 +11204,10 @@
11147
11204
  "bytesInOutput": 182
11148
11205
  },
11149
11206
  "../core/dist/i18n/messages.en.js": {
11150
- "bytesInOutput": 15886
11207
+ "bytesInOutput": 15989
11151
11208
  },
11152
11209
  "../core/dist/i18n/messages.fr.js": {
11153
- "bytesInOutput": 20017
11210
+ "bytesInOutput": 20171
11154
11211
  },
11155
11212
  "../core/dist/i18n/messages.fr-CA.js": {
11156
11213
  "bytesInOutput": 10
@@ -11177,10 +11234,16 @@
11177
11234
  "bytesInOutput": 9675
11178
11235
  },
11179
11236
  "../core/dist/language/include-waves.js": {
11180
- "bytesInOutput": 3828
11237
+ "bytesInOutput": 3941
11238
+ },
11239
+ "../core/dist/language/references.js": {
11240
+ "bytesInOutput": 281
11241
+ },
11242
+ "../core/dist/language/include-references.js": {
11243
+ "bytesInOutput": 375
11181
11244
  },
11182
11245
  "../core/dist/language/include-resolver.js": {
11183
- "bytesInOutput": 7231
11246
+ "bytesInOutput": 7268
11184
11247
  },
11185
11248
  "../core/dist/language/validator/support.js": {
11186
11249
  "bytesInOutput": 580
@@ -11198,7 +11261,7 @@
11198
11261
  "bytesInOutput": 4294
11199
11262
  },
11200
11263
  "../core/dist/language/validator/references.js": {
11201
- "bytesInOutput": 3031
11264
+ "bytesInOutput": 2786
11202
11265
  },
11203
11266
  "../core/dist/language/validator/structure.js": {
11204
11267
  "bytesInOutput": 2030
@@ -11396,7 +11459,7 @@
11396
11459
  "bytesInOutput": 2184
11397
11460
  },
11398
11461
  "../browser/dist/diagnostic-row.js": {
11399
- "bytesInOutput": 1023
11462
+ "bytesInOutput": 1065
11400
11463
  },
11401
11464
  "../browser/dist/no-op-include-resolver.js": {
11402
11465
  "bytesInOutput": 189
@@ -11456,7 +11519,7 @@
11456
11519
  "bytesInOutput": 257
11457
11520
  }
11458
11521
  },
11459
- "bytes": 669897
11522
+ "bytes": 670757
11460
11523
  }
11461
11524
  }
11462
11525
  }
@@ -1,4 +1,4 @@
1
- /*! @nowline/embed 0.0.0-dev.20261016125632.gcdc768a sha=cdc768a built=2026-10-16T12:51:05Z */
1
+ /*! @nowline/embed 0.0.0-dev.20261016135659.g7e263e2 sha=7e263e2 built=2026-10-16T13:52:55Z */
2
2
  var __create = Object.create;
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -26077,6 +26077,7 @@ var messages = {
26077
26077
  // Identifier
26078
26078
  "NL.E0300": (a) => `Duplicate identifier "${a.name}". First declared at ${a.location}.`,
26079
26079
  "NL.E0301": (a) => `${a.type} must have an identifier, a title, or both.`,
26080
+ "NL.E0302": (a) => `${a.key}: reference "${a.value}" does not resolve to any declared entity in this file.`,
26080
26081
  // Property values
26081
26082
  "NL.E0400": (a) => `Invalid duration "${a.value}". Use a raw duration literal like 0.5d, 2w, 1m, 2q. Use "size:NAME" to reference a declared size.`,
26082
26083
  "NL.E0401": (a) => `Invalid size "${a.value}". Use the id of a declared size (e.g. xs, m, lg).`,
@@ -26345,6 +26346,7 @@ var messages2 = {
26345
26346
  // Identifiant
26346
26347
  "NL.E0300": (a) => `Identifiant en double \xAB\xA0${a.name}\xA0\xBB. Premi\xE8re d\xE9claration \xE0 ${a.location}.`,
26347
26348
  "NL.E0301": (a) => `${a.type} doit comporter un identifiant, un titre, ou les deux.`,
26349
+ "NL.E0302": (a) => `La r\xE9f\xE9rence \xAB\xA0${a.value}\xA0\xBB de \xAB\xA0${a.key}:\xA0\xBB ne d\xE9signe aucune entit\xE9 d\xE9clar\xE9e dans ce fichier.`,
26348
26350
  // Valeurs de propriété
26349
26351
  "NL.E0400": (a) => `Dur\xE9e invalide \xAB\xA0${a.value}\xA0\xBB. Utilisez un litt\xE9ral de dur\xE9e brut comme 0.5d, 2w, 1m, 2q. Utilisez \xAB\xA0size:NOM\xA0\xBB pour r\xE9f\xE9rencer une taille d\xE9clar\xE9e.`,
26350
26352
  "NL.E0401": (a) => `Taille invalide \xAB\xA0${a.value}\xA0\xBB. Utilisez l'identifiant d'une taille d\xE9clar\xE9e (p.\xA0ex. xs, m, lg).`,
@@ -27826,12 +27828,27 @@ function participates(childFile, childContent, isStub) {
27826
27828
  return false;
27827
27829
  return !!childFile.roadmapDecl || childContent.swimlanes.size > 0 || ownWaves(childFile).length > 0;
27828
27830
  }
27829
- function coded(severity, sourcePath, line, code, ...args) {
27831
+ function nodeLocation(node, property2) {
27832
+ if (!node.$cstNode)
27833
+ return {};
27834
+ const { start, end } = getDiagnosticRange({
27835
+ node,
27836
+ ...property2 === void 0 ? {} : { property: property2 }
27837
+ });
27838
+ return {
27839
+ line: start.line,
27840
+ range: {
27841
+ start: { line: start.line, character: start.character },
27842
+ end: { line: end.line, character: end.character }
27843
+ }
27844
+ };
27845
+ }
27846
+ function coded(severity, sourcePath, at, code, ...args) {
27830
27847
  return {
27831
27848
  severity,
27832
27849
  message: tr("en-US", code, ...args),
27833
27850
  sourcePath,
27834
- ...line === void 0 ? {} : { line },
27851
+ ...at,
27835
27852
  code,
27836
27853
  args,
27837
27854
  rule: "wave"
@@ -27869,7 +27886,7 @@ function checkWaveAgreement(parentFile, parentContent, edge) {
27869
27886
  if (edge.childFile.roadmapEntries.some((e) => isWaveDeclaration(e) && !e.name))
27870
27887
  return none;
27871
27888
  const at = edge.parentAbs;
27872
- const line = edge.inc.$cstNode?.range.start.line;
27889
+ const loc = nodeLocation(edge.inc);
27873
27890
  const path = edge.childRelPath;
27874
27891
  const parent = ownWaves(parentFile);
27875
27892
  const child = ownWaves(edge.childFile);
@@ -27877,21 +27894,21 @@ function checkWaveAgreement(parentFile, parentContent, edge) {
27877
27894
  if (parent.length === 0 && child.length === 0)
27878
27895
  return none;
27879
27896
  if (child.length === 0) {
27880
- return fail(coded("error", at, line, "NL.E0202", {
27897
+ return fail(coded("error", at, loc, "NL.E0202", {
27881
27898
  reason: "child-none",
27882
27899
  path,
27883
27900
  parent: waveIds(parent)
27884
27901
  }));
27885
27902
  }
27886
27903
  if (parent.length === 0) {
27887
- return fail(coded("error", at, line, "NL.E0202", {
27904
+ return fail(coded("error", at, loc, "NL.E0202", {
27888
27905
  reason: "parent-none",
27889
27906
  path,
27890
27907
  child: waveIds(child)
27891
27908
  }));
27892
27909
  }
27893
27910
  if (parent.length !== child.length || parent.some((w, i2) => w.name !== child[i2].name)) {
27894
- return fail(coded("error", at, line, "NL.E0202", {
27911
+ return fail(coded("error", at, loc, "NL.E0202", {
27895
27912
  reason: "mismatch",
27896
27913
  path,
27897
27914
  child: waveIds(child),
@@ -27905,7 +27922,7 @@ function checkWaveAgreement(parentFile, parentContent, edge) {
27905
27922
  const childFloor = waveFloorDate(child[i2], childLookup)?.date ?? null;
27906
27923
  if (parentFloor === childFloor)
27907
27924
  continue;
27908
- return fail(coded("error", at, line, "NL.E0202", {
27925
+ return fail(coded("error", at, loc, "NL.E0202", {
27909
27926
  reason: "floor",
27910
27927
  id: parent[i2].name,
27911
27928
  path,
@@ -27924,7 +27941,7 @@ function checkWaveAgreement(parentFile, parentContent, edge) {
27924
27941
  }));
27925
27942
  if (fields.length === 0)
27926
27943
  continue;
27927
- diagnostics.push(coded("warning", at, line, "NL.W0701", {
27944
+ diagnostics.push(coded("warning", at, loc, "NL.W0701", {
27928
27945
  id: parent[i2].name,
27929
27946
  path,
27930
27947
  fields
@@ -27954,17 +27971,17 @@ function runResolverWaveChecks(input) {
27954
27971
  return file ? files.get(file) : void 0;
27955
27972
  };
27956
27973
  const toDiagnostic = (finding, sourcePath) => {
27957
- const line = finding.node.$cstNode?.range.start.line;
27974
+ const at = nodeLocation(finding.node, finding.property);
27958
27975
  if ("message" in finding) {
27959
27976
  return {
27960
27977
  severity: finding.severity,
27961
27978
  message: finding.message,
27962
27979
  sourcePath,
27963
- ...line === void 0 ? {} : { line },
27980
+ ...at,
27964
27981
  rule: "wave"
27965
27982
  };
27966
27983
  }
27967
- return coded(finding.severity, sourcePath, line, finding.code, finding.args);
27984
+ return coded(finding.severity, sourcePath, at, finding.code, finding.args);
27968
27985
  };
27969
27986
  const children = [];
27970
27987
  const seen = /* @__PURE__ */ new Set([rootAbs]);
@@ -27994,7 +28011,7 @@ function runResolverWaveChecks(input) {
27994
28011
  if (!wave || isWaveDeclaration(node))
27995
28012
  return;
27996
28013
  const waveLine = wave.$cstNode ? wave.$cstNode.range.start.line + 1 : 0;
27997
- push(coded("error", abs, node.$cstNode?.range.start.line, "NL.E0300", {
28014
+ push(coded("error", abs, nodeLocation(node), "NL.E0300", {
27998
28015
  name,
27999
28016
  location: `${basename(rootAbs)}:${waveLine}`
28000
28017
  }));
@@ -28050,6 +28067,61 @@ function runResolverWaveChecks(input) {
28050
28067
  return out;
28051
28068
  }
28052
28069
 
28070
+ // ../core/dist/language/references.js
28071
+ function unresolvedReferences(file) {
28072
+ const declaredIds = referenceableIds(file);
28073
+ const out = [];
28074
+ for (const entry of file.roadmapEntries) {
28075
+ visitProperties(entry, (prop) => {
28076
+ const key = propKey(prop);
28077
+ if (key !== "after" && key !== "before" && key !== "on")
28078
+ return;
28079
+ if (isWaveBannedProperty(prop))
28080
+ return;
28081
+ const vals = prop.value ? [prop.value] : prop.values;
28082
+ for (const v of vals) {
28083
+ if (!v)
28084
+ continue;
28085
+ if ((key === "after" || key === "before") && ISO_DATE_RE.test(v))
28086
+ continue;
28087
+ if (!declaredIds.has(v))
28088
+ out.push({ prop, key, value: v });
28089
+ }
28090
+ });
28091
+ }
28092
+ return out;
28093
+ }
28094
+
28095
+ // ../core/dist/language/include-references.js
28096
+ function checkIncludedReferences(rootAbs, edges) {
28097
+ const out = [];
28098
+ const seen = /* @__PURE__ */ new Set([rootAbs]);
28099
+ const walk2 = (abs) => {
28100
+ for (const edge of edges.get(abs) ?? []) {
28101
+ if (edge.mode === "ignore" || seen.has(edge.childAbs))
28102
+ continue;
28103
+ seen.add(edge.childAbs);
28104
+ if (!hasParseErrors(edge.childFile)) {
28105
+ for (const { prop, key, value } of unresolvedReferences(edge.childFile)) {
28106
+ const args = [{ key, value }];
28107
+ out.push({
28108
+ severity: "error",
28109
+ message: tr("en-US", "NL.E0302", ...args),
28110
+ sourcePath: edge.childAbs,
28111
+ // The validator reports NL.E0302 on the whole property.
28112
+ ...nodeLocation(prop),
28113
+ code: "NL.E0302",
28114
+ args
28115
+ });
28116
+ }
28117
+ }
28118
+ walk2(edge.childAbs);
28119
+ }
28120
+ };
28121
+ walk2(rootAbs);
28122
+ return out;
28123
+ }
28124
+
28053
28125
  // ../core/dist/language/include-resolver.js
28054
28126
  function readStartProp(decl) {
28055
28127
  const prop = decl?.properties.find((p) => p.key === "start");
@@ -28117,6 +28189,7 @@ async function resolveIncludes(file, filePath, options) {
28117
28189
  edges: ctx.edges,
28118
28190
  failed: ctx.failedWaves
28119
28191
  }));
28192
+ ctx.diagnostics.push(...checkIncludedReferences(absPath, ctx.edges));
28120
28193
  return {
28121
28194
  config: config2,
28122
28195
  content,
@@ -29429,28 +29502,8 @@ function checkForwardReferences(file, accept) {
29429
29502
  }
29430
29503
  }
29431
29504
  function checkReferenceResolution(file, accept) {
29432
- const declaredIds = referenceableIds(file);
29433
- const visit = (entry) => {
29434
- visitProperties(entry, (prop) => {
29435
- const key = propKey(prop);
29436
- if (key !== "after" && key !== "before" && key !== "on")
29437
- return;
29438
- if (isWaveBannedProperty(prop))
29439
- return;
29440
- const vals = prop.value ? [prop.value] : prop.values;
29441
- for (const v of vals) {
29442
- if (!v)
29443
- continue;
29444
- if ((key === "after" || key === "before") && ISO_DATE_RE.test(v))
29445
- continue;
29446
- if (!declaredIds.has(v)) {
29447
- accept("error", `${key}: reference "${v}" does not resolve to any declared entity in this file.`, { node: prop });
29448
- }
29449
- }
29450
- });
29451
- };
29452
- for (const entry of file.roadmapEntries) {
29453
- visit(entry);
29505
+ for (const { prop, key, value } of unresolvedReferences(file)) {
29506
+ acceptTr(accept, "error", { node: prop }, "NL.E0302", { key, value });
29454
29507
  }
29455
29508
  }
29456
29509
  function checkInlineDatePins(file, accept) {
@@ -36968,7 +37021,8 @@ function fromLexerError(err, file) {
36968
37021
  };
36969
37022
  }
36970
37023
  function fromResolveDiagnostic(diag, locale) {
36971
- const line = diag.line !== void 0 ? diag.line + 1 : 1;
37024
+ const line = (diag.range?.start.line ?? diag.line ?? 0) + 1;
37025
+ const column = (diag.range?.start.character ?? 0) + 1;
36972
37026
  if (!isRoutedResolveDiagnostic(diag)) {
36973
37027
  return {
36974
37028
  severity: diag.severity,
@@ -36988,7 +37042,7 @@ function fromResolveDiagnostic(diag, locale) {
36988
37042
  ...suggestion === void 0 ? {} : { suggestion },
36989
37043
  file: diag.sourcePath,
36990
37044
  line,
36991
- column: 1
37045
+ column
36992
37046
  };
36993
37047
  }
36994
37048
  function fromRenderWarning(message, file, severity = "warning") {
@@ -40567,8 +40621,8 @@ function effectiveTheme(theme, systemTheme) {
40567
40621
  }
40568
40622
 
40569
40623
  // src/index.ts
40570
- var version = true ? "0.0.0-dev.20261016125632.gcdc768a" : "0.0.0";
40571
- var sha = true ? "cdc768a" : "unknown";
40624
+ var version = true ? "0.0.0-dev.20261016135659.g7e263e2" : "0.0.0";
40625
+ var sha = true ? "7e263e2" : "unknown";
40572
40626
  var DEFAULT_SELECTOR = "pre code.language-nowline, code.language-nowline";
40573
40627
  var initialConfig = {
40574
40628
  theme: "auto",