@hydranium/protocol 1.0.0-next.85 → 1.0.0-next.86

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.
@@ -114,10 +114,10 @@ export declare function isElementSource(object: unknown): object is ElementSourc
114
114
  /** An element of a document that does not yet exist on disk — used during element creation flows. */
115
115
  export interface SyntheticSource {
116
116
  /**
117
- * The document the element would belong to. That document must already be
118
- * LOADED — the default resolution takes its parse root as the synthetic
119
- * node's container and answers `undefined` when it is not, so a URI for a
120
- * file that exists on disk but was never opened resolves to nothing.
117
+ * The document the element would belong to. It need not be loaded, or
118
+ * exist — an unloaded URI materialises a transient empty document, so a
119
+ * folder is a valid anchor. A URI that IS loaded contributes that
120
+ * document's parse root as the container, putting its contents in scope.
121
121
  */
122
122
  uri: string;
123
123
  /**
@@ -126,6 +126,16 @@ export interface SyntheticSource {
126
126
  * it is what scoping filters candidates against.
127
127
  */
128
128
  type: string;
129
+ /**
130
+ * The grammar the element will belong to, as a language id.
131
+ *
132
+ * Optional because `uri` and `type` each answer on their own when
133
+ * unambiguous. Set it when neither is: a URI naming no file carries no
134
+ * extension to route on, and a `type` two grammars can produce identifies
135
+ * neither. Unset, such a source reaches the server's own policy, which
136
+ * answers the same way for every caller.
137
+ */
138
+ language?: string;
129
139
  }
130
140
  export declare function isSyntheticSource(object: unknown): object is SyntheticSource;
131
141
  /**
@@ -135,7 +145,7 @@ export declare function isSyntheticSource(object: unknown): object is SyntheticS
135
145
  export declare namespace ReferenceSource {
136
146
  function document(uri: string): DocumentSource;
137
147
  function element(name: string, type?: string): ElementSource;
138
- function synthetic(uri: string, type: string): SyntheticSource;
148
+ function synthetic(uri: string, type: string, language?: string): SyntheticSource;
139
149
  }
140
150
  /**
141
151
  * One step in a synthetic navigation path from a {@link ReferenceSource}
@@ -349,5 +359,11 @@ export interface FindNextNameArgs {
349
359
  * See {@link NameTier} for what each tier covers.
350
360
  */
351
361
  tier?: NameTier;
362
+ /**
363
+ * The grammar to name under, routed as {@link SyntheticSource.language} —
364
+ * this call builds one. A caller that sets it there must set it here, or
365
+ * candidates and the name it proposes come from different grammars.
366
+ */
367
+ language?: string;
352
368
  }
353
369
  //# sourceMappingURL=model-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-server.d.ts","sourceRoot":"","sources":["../src/model-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-server.d.ts","sourceRoot":"","sources":["../src/model-server.ts"],"names":[],"mappings":"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"}
@@ -47,8 +47,10 @@ var ReferenceSource;
47
47
  return { name, type };
48
48
  }
49
49
  ReferenceSource.element = element;
50
- function synthetic(uri, type) {
51
- return { uri, type };
50
+ function synthetic(uri, type, language) {
51
+ // The key is omitted rather than set to `undefined`, so a source built
52
+ // without a language stays deep-equal to the two-argument form.
53
+ return language === undefined ? { uri, type } : { uri, type, language };
52
54
  }
53
55
  ReferenceSource.synthetic = synthetic;
54
56
  })(ReferenceSource || (exports.ReferenceSource = ReferenceSource = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"model-server.js","sourceRoot":"","sources":["../src/model-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-server.js","sourceRoot":"","sources":["../src/model-server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hydranium/protocol",
3
- "version": "1.0.0-next.85",
3
+ "version": "1.0.0-next.86",
4
4
  "description": "Generic, language-agnostic types, constants, and pure utilities for the hydranium framework.",
5
5
  "keywords": [
6
6
  "hydranium",
@@ -147,10 +147,10 @@ export function isElementSource(object: unknown): object is ElementSource {
147
147
  /** An element of a document that does not yet exist on disk — used during element creation flows. */
148
148
  export interface SyntheticSource {
149
149
  /**
150
- * The document the element would belong to. That document must already be
151
- * LOADED — the default resolution takes its parse root as the synthetic
152
- * node's container and answers `undefined` when it is not, so a URI for a
153
- * file that exists on disk but was never opened resolves to nothing.
150
+ * The document the element would belong to. It need not be loaded, or
151
+ * exist — an unloaded URI materialises a transient empty document, so a
152
+ * folder is a valid anchor. A URI that IS loaded contributes that
153
+ * document's parse root as the container, putting its contents in scope.
154
154
  */
155
155
  uri: string;
156
156
  /**
@@ -159,6 +159,16 @@ export interface SyntheticSource {
159
159
  * it is what scoping filters candidates against.
160
160
  */
161
161
  type: string;
162
+ /**
163
+ * The grammar the element will belong to, as a language id.
164
+ *
165
+ * Optional because `uri` and `type` each answer on their own when
166
+ * unambiguous. Set it when neither is: a URI naming no file carries no
167
+ * extension to route on, and a `type` two grammars can produce identifies
168
+ * neither. Unset, such a source reaches the server's own policy, which
169
+ * answers the same way for every caller.
170
+ */
171
+ language?: string;
162
172
  }
163
173
 
164
174
  export function isSyntheticSource(object: unknown): object is SyntheticSource {
@@ -183,8 +193,10 @@ export namespace ReferenceSource {
183
193
  export function element(name: string, type?: string): ElementSource {
184
194
  return { name, type };
185
195
  }
186
- export function synthetic(uri: string, type: string): SyntheticSource {
187
- return { uri, type };
196
+ export function synthetic(uri: string, type: string, language?: string): SyntheticSource {
197
+ // The key is omitted rather than set to `undefined`, so a source built
198
+ // without a language stays deep-equal to the two-argument form.
199
+ return language === undefined ? { uri, type } : { uri, type, language };
188
200
  }
189
201
  }
190
202
 
@@ -477,4 +489,10 @@ export interface FindNextNameArgs {
477
489
  * See {@link NameTier} for what each tier covers.
478
490
  */
479
491
  tier?: NameTier;
492
+ /**
493
+ * The grammar to name under, routed as {@link SyntheticSource.language} —
494
+ * this call builds one. A caller that sets it there must set it here, or
495
+ * candidates and the name it proposes come from different grammars.
496
+ */
497
+ language?: string;
480
498
  }