milsymbol-sidc 0.1.1 → 0.2.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/README.md CHANGED
@@ -50,6 +50,7 @@ The package ships ESM with bundled TypeScript declarations (`dist/`).
50
50
  import {
51
51
  Sidc,
52
52
  Context,
53
+ Standard,
53
54
  StandardIdentity,
54
55
  SymbolSet,
55
56
  Status,
@@ -72,11 +73,11 @@ The builder is **immutable**: each setter returns a new instance, so a base
72
73
  configuration can be safely reused:
73
74
 
74
75
  ```ts
75
- const base = new Sidc().version(Version.App6E);
76
+ const base = new Sidc({ standard: Standard.App6 });
76
77
 
77
78
  const friendly = base.identity(StandardIdentity.Friend).toString();
78
79
  const hostile = base.identity(StandardIdentity.SuspectJoker).toString();
79
- // base itself is unchanged
80
+ // base itself is unchanged; both derived SIDCs use APP-6 E (version "14")
80
81
  ```
81
82
 
82
83
  ## Anatomy of the generated SIDC
@@ -105,11 +106,13 @@ const hostile = base.identity(StandardIdentity.SuspectJoker).toString();
105
106
  ### `new Sidc(options?)`
106
107
 
107
108
  Creates a builder preconfigured to 2525E / Reality / Unknown / Unknown set /
108
- Present.
109
+ Present. This remains the default for backward compatibility; configure
110
+ `Standard.App6` to default to APP-6 E instead.
109
111
 
110
112
  | Option | Type | Default | Description |
111
113
  | ------ | ---- | ------- | ----------- |
112
114
  | `strict` | `boolean` | `false` | Throw on invalid field combinations during `toString()` instead of warning. Invalid values always throw immediately regardless of this flag. |
115
+ | `standard` | `Standard` | Not configured (2525E behavior) | Select a standard family. `App6` defaults the version to APP-6 E (`"14"`); `MilStd2525` defaults it to MIL-STD-2525E (`"13"`). Explicit configuration also checks that later version choices belong to the selected family. |
113
116
 
114
117
  ### Methods
115
118
 
@@ -117,6 +120,7 @@ All setters validate their argument and return a new immutable `Sidc`.
117
120
 
118
121
  | Method | Field | Accepts |
119
122
  | ------ | ----- | ------- |
123
+ | `standard(s)` | Version default + validation rules | A `Standard` constant. It retains a compatible current version; otherwise it selects that family's latest edition. |
120
124
  | `version(v)` | Positions 1–2 | A `Version` constant or any two-digit string (escape hatch for future editions) |
121
125
  | `context(c)` | Position 3 | A `Context` constant |
122
126
  | `identity(i)` | Position 4 | A `StandardIdentity` constant |
@@ -126,6 +130,16 @@ All setters validate their argument and return a new immutable `Sidc`.
126
130
 
127
131
  ### Enum reference
128
132
 
133
+ #### `Standard`
134
+
135
+ Values match milsymbol's `standard` option and `ms.setStandard()` API, so the
136
+ same constant can configure both libraries.
137
+
138
+ | Constant | Value | Standard family |
139
+ | -------- | ----- | --------------- |
140
+ | `MilStd2525` | `"2525"` | US MIL-STD-2525 (**default behavior when omitted**) |
141
+ | `App6` | `"APP6"` | NATO APP-6 |
142
+
129
143
  #### `Version`
130
144
 
131
145
  | Constant | Code | Standard |
@@ -152,8 +166,8 @@ All setters validate their argument and return a new immutable `Sidc`.
152
166
  | `AssumedFriend` | `"2"` | Blue frame, dashed |
153
167
  | `Friend` | `"3"` | Blue frame |
154
168
  | `Neutral` | `"4"` | Green frame |
155
- | `SuspectJoker` | `"5"` | Red frame, dashed (Joker in exercises) |
156
- | `Faker` | `"6"` | Red frame (exercises only) |
169
+ | `SuspectJoker` | `"5"` | Red frame, dashed — **Suspect** in reality, **Joker** in exercises |
170
+ | `HostileFaker` | `"6"` | Red frame — **Hostile** in reality, **Faker** in exercises |
157
171
 
158
172
  #### `SymbolSet`
159
173
 
@@ -210,42 +224,49 @@ Two layers of validation run at different times:
210
224
 
211
225
  Active combination rules:
212
226
 
213
- - Faker identities require exercise context (`SuspectJoker` is a valid
214
- real-world identity — it renders the dashed suspect-hostile frame).
215
227
  - Condition statuses (fully capable … full to capacity) do not apply to
216
228
  control measures.
217
229
  - Exercise symbols on the unknown symbol set lose their affiliation unless the
218
230
  identity is pending/unknown.
219
231
  - Symbol set 27 is unsupported in MIL-STD-2525D; symbol set 60 is unsupported
220
232
  in APP-6 D.
233
+ - When a `Standard` is explicitly configured, official version codes from the
234
+ other standard family are reported.
221
235
  - Raw version/symbol-set codes outside milsymbol's known tables are reported.
222
236
 
223
237
  ```ts
224
- import { Sidc, SidcValidationError, SidcCombinationError, Context, StandardIdentity } from "milsymbol-sidc";
238
+ import { Sidc, SidcValidationError, SidcCombinationError, Context, StandardIdentity, SymbolSet, Status } from "milsymbol-sidc";
225
239
 
226
240
  // Throws immediately: "9" is not a valid identity code.
227
241
  new Sidc().identity("9" as never); // SidcValidationError
228
242
 
229
- // Warns: faker only exists in exercise context.
230
- new Sidc().identity(StandardIdentity.Faker).toString();
231
-
232
- // Throws instead of warning:
233
- const strict = new Sidc({ strict: true }).identity(StandardIdentity.Faker);
234
- strict.toString(); // SidcCombinationError
243
+ // Suspect/Joker and Hostile/Faker are dual-use: valid in reality AND exercise.
244
+ new Sidc({ strict: true })
245
+ .identity(StandardIdentity.SuspectJoker) // Suspect in reality, Joker in exercises
246
+ .symbolSet(SymbolSet.LandUnit)
247
+ .toString(); // "13051000000000000000", no warnings
235
248
 
236
- // Correct usage: faker inside an exercise.
237
249
  new Sidc({ strict: true })
238
250
  .context(Context.Exercise)
239
- .identity(StandardIdentity.Faker)
251
+ .identity(StandardIdentity.HostileFaker) // Faker in exercises
240
252
  .symbolSet(SymbolSet.LandUnit)
241
253
  .toString(); // "13161000000000000000", no warnings
242
254
 
255
+ // A real combination problem: condition status on a control measure.
256
+ new Sidc({ strict: true })
257
+ .symbolSet(SymbolSet.ControlMeasure)
258
+ .status(Status.Destroyed)
259
+ .toString(); // SidcCombinationError
260
+
243
261
  // Capturing warnings programmatically (e.g. in tests):
244
262
  const warnings: string[] = [];
245
263
  const originalWarn = console.warn;
246
264
  console.warn = (message: string) => warnings.push(message);
247
265
  try {
248
- new Sidc().identity(StandardIdentity.Faker).toString();
266
+ new Sidc()
267
+ .symbolSet(SymbolSet.ControlMeasure)
268
+ .status(Status.Destroyed)
269
+ .toString();
249
270
  } finally {
250
271
  console.warn = originalWarn;
251
272
  }
@@ -263,12 +284,13 @@ parser, so codes from this package work without any configuration. The
263
284
  ### Node.js (ESM)
264
285
 
265
286
  ```js
266
- import ms from "milsymbol"; // bundles all standards incl. 2525E icons
267
- import { Sidc, StandardIdentity, SymbolSet } from "milsymbol-sidc";
287
+ import ms from "milsymbol"; // bundles all numeric standards
288
+ import { Sidc, Standard, StandardIdentity, SymbolSet } from "milsymbol-sidc";
268
289
 
269
- ms.setStandard("2525"); // or "APP6"
290
+ const standard = Standard.App6;
291
+ ms.setStandard(standard); // "APP6": use NATO styling
270
292
 
271
- const sidc = new Sidc()
293
+ const sidc = new Sidc({ standard }) // defaults to APP-6 E (version "14")
272
294
  .identity(StandardIdentity.Friend)
273
295
  .symbolSet(SymbolSet.LandUnit)
274
296
  .toString();
@@ -292,14 +314,16 @@ const ms = require("milsymbol");
292
314
  ```html
293
315
  <script src="https://unpkg.com/milsymbol@3/dist/milsymbol.js"></script>
294
316
  <script type="module">
295
- import { Sidc, StandardIdentity, SymbolSet } from "https://unpkg.com/milsymbol-sidc/dist/src/index.js";
317
+ import { Sidc, Standard, StandardIdentity, SymbolSet } from "https://unpkg.com/milsymbol-sidc/dist/src/index.js";
296
318
 
297
- const sidc = new Sidc()
319
+ const sidc = new Sidc({ standard: Standard.App6 })
298
320
  .identity(StandardIdentity.Neutral)
299
321
  .symbolSet(SymbolSet.SeaSurface)
300
322
  .toString();
301
323
 
302
- document.body.innerHTML = new ms.Symbol(sidc).asSVG();
324
+ document.body.innerHTML = new ms.Symbol(sidc, {
325
+ standard: Standard.App6,
326
+ }).asSVG();
303
327
  </script>
304
328
  ```
305
329
 
@@ -328,12 +352,18 @@ new Sidc()
328
352
  .toString(); // "13033640000000000000"
329
353
 
330
354
  // Exercise joker submarine under APP-6E
331
- new Sidc({ strict: true })
332
- .version("14")
355
+ new Sidc({ standard: Standard.App6, strict: true })
333
356
  .context(Context.Exercise)
334
357
  .identity(StandardIdentity.SuspectJoker)
335
358
  .symbolSet(SymbolSet.SeaSubsurface)
336
359
  .toString(); // "14153500000000000000"
360
+
361
+ // APP-6 D configuration retains an explicitly selected compatible edition
362
+ new Sidc({ standard: Standard.App6, strict: true })
363
+ .version(Version.App6D)
364
+ .identity(StandardIdentity.Friend)
365
+ .symbolSet(SymbolSet.LandDismountedIndividual)
366
+ .toString(); // "11032700000000000000"
337
367
  ```
338
368
 
339
369
  ## Development
@@ -1,9 +1,21 @@
1
1
  /**
2
- * Field codes for positions 1-7 of the 20-character numeric SIDC
3
- * (MIL-STD-2525D/E and APP-6 D/E coding structure).
2
+ * Configuration values and field codes for positions 1-7 of the 20-character
3
+ * numeric SIDC (MIL-STD-2525D/E and APP-6 D/E coding structure).
4
4
  *
5
- * Values are the literal digit codes that appear in the SIDC string.
5
+ * SIDC field values are the literal digit codes that appear in the string.
6
6
  */
7
+ /**
8
+ * Symbol standard family.
9
+ *
10
+ * Values match milsymbol's `standard` option and `ms.setStandard()` API.
11
+ */
12
+ export declare const Standard: {
13
+ /** US MIL-STD-2525 (the default standard family). */
14
+ readonly MilStd2525: "2525";
15
+ /** NATO APP-6. */
16
+ readonly App6: "APP6";
17
+ };
18
+ export type Standard = (typeof Standard)[keyof typeof Standard];
7
19
  /** Positions 1-2: Version / standard edition. */
8
20
  export declare const Version: {
9
21
  /** MIL-STD-2525D (edition D) */
@@ -30,10 +42,10 @@ export declare const StandardIdentity: {
30
42
  readonly AssumedFriend: "2";
31
43
  readonly Friend: "3";
32
44
  readonly Neutral: "4";
33
- /** Hostile suspect; becomes Joker in exercise context. */
45
+ /** Dual-use: Suspect (reality) / Joker (exercise). */
34
46
  readonly SuspectJoker: "5";
35
- /** Hostile faker (exercise context only). */
36
- readonly Faker: "6";
47
+ /** Dual-use: Hostile (reality) / Faker (exercise). */
48
+ readonly HostileFaker: "6";
37
49
  };
38
50
  export type StandardIdentity = (typeof StandardIdentity)[keyof typeof StandardIdentity];
39
51
  /** Positions 5-6: Symbol set. Only sets supported by milsymbol are listed. */
@@ -1 +1 @@
1
- {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../src/enums.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,iDAAiD;AACjD,eAAO,MAAM,OAAO;IAClB,gCAAgC;;IAEhC,sBAAsB;;IAEtB,8CAA8C;;IAE9C,sBAAsB;;CAEd,CAAC;AACX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAE7D,2BAA2B;AAC3B,eAAO,MAAM,OAAO;;;;CAIV,CAAC;AACX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAE7D,mDAAmD;AACnD,eAAO,MAAM,gBAAgB;;;;;;IAM3B,0DAA0D;;IAE1D,6CAA6C;;CAErC,CAAC;AACX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAExF,8EAA8E;AAC9E,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;CAsBZ,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEnE,sCAAsC;AACtC,eAAO,MAAM,MAAM;;;;;;;CAOT,CAAC;AACX,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../src/enums.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,eAAO,MAAM,QAAQ;IACnB,qDAAqD;;IAErD,kBAAkB;;CAEV,CAAC;AACX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEhE,iDAAiD;AACjD,eAAO,MAAM,OAAO;IAClB,gCAAgC;;IAEhC,sBAAsB;;IAEtB,8CAA8C;;IAE9C,sBAAsB;;CAEd,CAAC;AACX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAE7D,2BAA2B;AAC3B,eAAO,MAAM,OAAO;;;;CAIV,CAAC;AACX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAE7D,mDAAmD;AACnD,eAAO,MAAM,gBAAgB;;;;;;IAM3B,sDAAsD;;IAEtD,sDAAsD;;CAE9C,CAAC;AACX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAExF,8EAA8E;AAC9E,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;CAsBZ,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEnE,sCAAsC;AACtC,eAAO,MAAM,MAAM;;;;;;;CAOT,CAAC;AACX,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC"}
package/dist/src/enums.js CHANGED
@@ -1,9 +1,20 @@
1
1
  /**
2
- * Field codes for positions 1-7 of the 20-character numeric SIDC
3
- * (MIL-STD-2525D/E and APP-6 D/E coding structure).
2
+ * Configuration values and field codes for positions 1-7 of the 20-character
3
+ * numeric SIDC (MIL-STD-2525D/E and APP-6 D/E coding structure).
4
4
  *
5
- * Values are the literal digit codes that appear in the SIDC string.
5
+ * SIDC field values are the literal digit codes that appear in the string.
6
6
  */
7
+ /**
8
+ * Symbol standard family.
9
+ *
10
+ * Values match milsymbol's `standard` option and `ms.setStandard()` API.
11
+ */
12
+ export const Standard = {
13
+ /** US MIL-STD-2525 (the default standard family). */
14
+ MilStd2525: "2525",
15
+ /** NATO APP-6. */
16
+ App6: "APP6",
17
+ };
7
18
  /** Positions 1-2: Version / standard edition. */
8
19
  export const Version = {
9
20
  /** MIL-STD-2525D (edition D) */
@@ -28,10 +39,10 @@ export const StandardIdentity = {
28
39
  AssumedFriend: "2",
29
40
  Friend: "3",
30
41
  Neutral: "4",
31
- /** Hostile suspect; becomes Joker in exercise context. */
42
+ /** Dual-use: Suspect (reality) / Joker (exercise). */
32
43
  SuspectJoker: "5",
33
- /** Hostile faker (exercise context only). */
34
- Faker: "6",
44
+ /** Dual-use: Hostile (reality) / Faker (exercise). */
45
+ HostileFaker: "6",
35
46
  };
36
47
  /** Positions 5-6: Symbol set. Only sets supported by milsymbol are listed. */
37
48
  export const SymbolSet = {
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/enums.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,iDAAiD;AACjD,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,gCAAgC;IAChC,WAAW,EAAE,IAAI;IACjB,sBAAsB;IACtB,KAAK,EAAE,IAAI;IACX,8CAA8C;IAC9C,WAAW,EAAE,IAAI;IACjB,sBAAsB;IACtB,KAAK,EAAE,IAAI;CACH,CAAC;AAGX,2BAA2B;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,UAAU,EAAE,GAAG;CACP,CAAC;AAGX,mDAAmD;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,aAAa,EAAE,GAAG;IAClB,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,0DAA0D;IAC1D,YAAY,EAAE,GAAG;IACjB,6CAA6C;IAC7C,KAAK,EAAE,GAAG;CACF,CAAC;AAGX,8EAA8E;AAC9E,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,OAAO,EAAE,IAAI;IACb,GAAG,EAAE,IAAI;IACT,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,IAAI;IACd,gBAAgB,EAAE,IAAI;IACtB,aAAa,EAAE,IAAI;IACnB,YAAY,EAAE,IAAI;IAClB,cAAc,EAAE,IAAI;IACpB,wBAAwB,EAAE,IAAI;IAC9B,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,IAAI;IACd,wBAAwB,EAAE,IAAI;IAC9B,sBAAsB,EAAE,IAAI;IAC5B,uBAAuB,EAAE,IAAI;IAC7B,6BAA6B,EAAE,IAAI;IACnC,6BAA6B,EAAE,IAAI;IACnC,UAAU,EAAE,IAAI;CACR,CAAC;AAGX,sCAAsC;AACtC,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,YAAY,EAAE,GAAG;IACjB,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,GAAG;IACd,cAAc,EAAE,GAAG;CACX,CAAC"}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/enums.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,qDAAqD;IACrD,UAAU,EAAE,MAAM;IAClB,kBAAkB;IAClB,IAAI,EAAE,MAAM;CACJ,CAAC;AAGX,iDAAiD;AACjD,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,gCAAgC;IAChC,WAAW,EAAE,IAAI;IACjB,sBAAsB;IACtB,KAAK,EAAE,IAAI;IACX,8CAA8C;IAC9C,WAAW,EAAE,IAAI;IACjB,sBAAsB;IACtB,KAAK,EAAE,IAAI;CACH,CAAC;AAGX,2BAA2B;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,UAAU,EAAE,GAAG;CACP,CAAC;AAGX,mDAAmD;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,aAAa,EAAE,GAAG;IAClB,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,sDAAsD;IACtD,YAAY,EAAE,GAAG;IACjB,sDAAsD;IACtD,YAAY,EAAE,GAAG;CACT,CAAC;AAGX,8EAA8E;AAC9E,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,OAAO,EAAE,IAAI;IACb,GAAG,EAAE,IAAI;IACT,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,IAAI;IACd,gBAAgB,EAAE,IAAI;IACtB,aAAa,EAAE,IAAI;IACnB,YAAY,EAAE,IAAI;IAClB,cAAc,EAAE,IAAI;IACpB,wBAAwB,EAAE,IAAI;IAC9B,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,IAAI;IACd,wBAAwB,EAAE,IAAI;IAC9B,sBAAsB,EAAE,IAAI;IAC5B,uBAAuB,EAAE,IAAI;IAC7B,6BAA6B,EAAE,IAAI;IACnC,6BAA6B,EAAE,IAAI;IACnC,UAAU,EAAE,IAAI;CACR,CAAC;AAGX,sCAAsC;AACtC,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,YAAY,EAAE,GAAG;IACjB,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,GAAG;IACd,cAAc,EAAE,GAAG;CACX,CAAC"}
@@ -1,4 +1,4 @@
1
- export { Context, StandardIdentity, Status, SymbolSet, Version, } from "./enums.js";
1
+ export { Context, Standard, StandardIdentity, Status, SymbolSet, Version, } from "./enums.js";
2
2
  export { Sidc, type SidcOptions } from "./sidc.js";
3
3
  export { SidcCombinationError, SidcError, SidcValidationError, } from "./validate.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,mBAAmB,GACpB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,mBAAmB,GACpB,MAAM,eAAe,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Context, StandardIdentity, Status, SymbolSet, Version, } from "./enums.js";
1
+ export { Context, Standard, StandardIdentity, Status, SymbolSet, Version, } from "./enums.js";
2
2
  export { Sidc } from "./sidc.js";
3
3
  export { SidcCombinationError, SidcError, SidcValidationError, } from "./validate.js";
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,IAAI,EAAoB,MAAM,WAAW,CAAC;AAEnD,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,mBAAmB,GACpB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,IAAI,EAAoB,MAAM,WAAW,CAAC;AAEnD,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,mBAAmB,GACpB,MAAM,eAAe,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Context, StandardIdentity, Status, SymbolSet, Version } from "./enums.js";
1
+ import { Context, Standard, StandardIdentity, Status, SymbolSet, Version } from "./enums.js";
2
2
  import { type SidcFields } from "./validate.js";
3
3
  export interface SidcOptions {
4
4
  /**
@@ -7,6 +7,12 @@ export interface SidcOptions {
7
7
  * Invalid individual values always throw immediately.
8
8
  */
9
9
  strict?: boolean;
10
+ /**
11
+ * Configure a standard family. This selects its latest edition by default
12
+ * (APP-6 E or MIL-STD-2525E) and enables standard/version consistency checks.
13
+ * Omit this option to preserve the original MIL-STD-2525E behavior.
14
+ */
15
+ standard?: Standard;
10
16
  }
11
17
  /**
12
18
  * Fluent builder for 20-character numeric SIDC strings
@@ -35,6 +41,13 @@ export declare class Sidc {
35
41
  * @param fields Initial field values. Internal; used for immutable clones.
36
42
  */
37
43
  constructor(options?: SidcOptions, fields?: SidcFields);
44
+ /**
45
+ * Configures the standard family and its validation rules.
46
+ *
47
+ * A version already belonging to the selected family is retained. Otherwise
48
+ * it is reset to that family's latest edition (APP-6 E or MIL-STD-2525E).
49
+ */
50
+ standard(standard: Standard): Sidc;
38
51
  /** Positions 1-2: standard edition. Accepts known codes or a raw two-digit code. */
39
52
  version(version: Version | (string & {})): Sidc;
40
53
  /** Position 3: context. */
@@ -1 +1 @@
1
- {"version":3,"file":"sidc.d.ts","sourceRoot":"","sources":["../../src/sidc.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,OAAO,EACR,MAAM,YAAY,CAAC;AACpB,OAAO,EASL,KAAK,UAAU,EAChB,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAQD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC;;;OAGG;gBACS,OAAO,GAAE,WAAgB,EAAE,MAAM,CAAC,EAAE,UAAU;IAW1D,oFAAoF;IACpF,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI;IAK/C,2BAA2B;IAC3B,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ/B,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAU1C,8EAA8E;IAC9E,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI;IAKrD,sCAAsC;IACtC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B;;;;;;OAMG;IACH,QAAQ,IAAI,MAAM;IA8BlB,OAAO,CAAC,IAAI;CAGb"}
1
+ {"version":3,"file":"sidc.d.ts","sourceRoot":"","sources":["../../src/sidc.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,OAAO,EACR,MAAM,YAAY,CAAC;AACpB,OAAO,EAWL,KAAK,UAAU,EAChB,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AASD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC;;;OAGG;gBACS,OAAO,GAAE,WAAgB,EAAE,MAAM,CAAC,EAAE,UAAU;IAuB1D;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAYlC,oFAAoF;IACpF,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI;IAK/C,2BAA2B;IAC3B,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ/B,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAU1C,8EAA8E;IAC9E,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI;IAKrD,sCAAsC;IACtC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B;;;;;;OAMG;IACH,QAAQ,IAAI,MAAM;IA8BlB,OAAO,CAAC,IAAI;CAGb"}
package/dist/src/sidc.js CHANGED
@@ -1,8 +1,9 @@
1
- import { Context, StandardIdentity, Status, SymbolSet, Version, } from "./enums.js";
2
- import { checkOneDigitField, checkTwoDigitField, findCombinationProblems, knownSymbolSets, knownVersions, SidcCombinationError, SidcValidationError, unrecognizedCodeWarning, } from "./validate.js";
1
+ import { Context, Standard, StandardIdentity, Status, SymbolSet, Version, } from "./enums.js";
2
+ import { checkOneDigitField, checkTwoDigitField, defaultVersionForStandard, findCombinationProblems, knownSymbolSets, knownVersions, SidcCombinationError, SidcValidationError, standardForVersion, unrecognizedCodeWarning, } from "./validate.js";
3
3
  const SIDC_LENGTH = 20;
4
4
  const CONTEXTS = new Set(Object.values(Context));
5
5
  const IDENTITIES = new Set(Object.values(StandardIdentity));
6
+ const STANDARDS = new Set(Object.values(Standard));
6
7
  const STATUSES = new Set(Object.values(Status));
7
8
  /**
8
9
  * Fluent builder for 20-character numeric SIDC strings
@@ -31,15 +32,38 @@ export class Sidc {
31
32
  * @param fields Initial field values. Internal; used for immutable clones.
32
33
  */
33
34
  constructor(options = {}, fields) {
35
+ if (fields === undefined &&
36
+ options.standard !== undefined &&
37
+ !STANDARDS.has(options.standard)) {
38
+ throw new SidcValidationError(`Unknown standard "${options.standard}".`);
39
+ }
34
40
  this.fields = fields ?? {
35
- version: Version.MilStd2525E,
41
+ version: options.standard === undefined
42
+ ? Version.MilStd2525E
43
+ : defaultVersionForStandard(options.standard),
36
44
  context: Context.Reality,
37
45
  identity: StandardIdentity.Unknown,
38
46
  symbolSet: SymbolSet.Unknown,
39
47
  status: Status.Present,
48
+ standard: options.standard,
40
49
  };
41
50
  this.strict = options.strict ?? false;
42
51
  }
52
+ /**
53
+ * Configures the standard family and its validation rules.
54
+ *
55
+ * A version already belonging to the selected family is retained. Otherwise
56
+ * it is reset to that family's latest edition (APP-6 E or MIL-STD-2525E).
57
+ */
58
+ standard(standard) {
59
+ if (!STANDARDS.has(standard)) {
60
+ throw new SidcValidationError(`Unknown standard "${standard}".`);
61
+ }
62
+ const version = standardForVersion(this.fields.version) === standard
63
+ ? this.fields.version
64
+ : defaultVersionForStandard(standard);
65
+ return this.with({ standard, version });
66
+ }
43
67
  /** Positions 1-2: standard edition. Accepts known codes or a raw two-digit code. */
44
68
  version(version) {
45
69
  checkTwoDigitField("Version", version);
@@ -1 +1 @@
1
- {"version":3,"file":"sidc.js","sourceRoot":"","sources":["../../src/sidc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidc.js","sourceRoot":"","sources":["../../src/sidc.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { Standard, Version } from "./enums.js";
1
2
  /** Fields encoded by the builder, keyed by SIDC position. */
2
3
  export interface SidcFields {
3
4
  version: string;
@@ -5,6 +6,8 @@ export interface SidcFields {
5
6
  identity: string;
6
7
  symbolSet: string;
7
8
  status: string;
9
+ /** Optional standard-family configuration used for defaults and validation. */
10
+ standard?: Standard;
8
11
  }
9
12
  export declare class SidcError extends Error {
10
13
  constructor(message: string);
@@ -17,6 +20,10 @@ export declare class SidcValidationError extends SidcError {
17
20
  export declare class SidcCombinationError extends SidcError {
18
21
  constructor(message: string);
19
22
  }
23
+ /** Returns the latest supported version for a configured standard family. */
24
+ export declare function defaultVersionForStandard(standard: Standard): Version;
25
+ /** Returns the standard family for a known official version code. */
26
+ export declare function standardForVersion(version: string): Standard | undefined;
20
27
  /** @internal Validates and stores a two-digit field (version or symbol set). */
21
28
  export declare function checkTwoDigitField(name: string, value: string): void;
22
29
  /** @internal Validates a single-digit field (context, identity, status). */
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAEA,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,SAAU,SAAQ,KAAK;gBACtB,OAAO,EAAE,MAAM;CAI5B;AAED,qDAAqD;AACrD,qBAAa,mBAAoB,SAAQ,SAAS;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED,wEAAwE;AACxE,qBAAa,oBAAqB,SAAQ,SAAS;gBACrC,OAAO,EAAE,MAAM;CAI5B;AAsBD,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEpE;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CA+CpE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAKjH;AAED,eAAO,MAAM,aAAa,mBAAiB,CAAC;AAC5C,eAAO,MAAM,eAAe,mBAAoB,CAAC"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAIR,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,qBAAa,SAAU,SAAQ,KAAK;gBACtB,OAAO,EAAE,MAAM;CAI5B;AAED,qDAAqD;AACrD,qBAAa,mBAAoB,SAAQ,SAAS;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED,wEAAwE;AACxE,qBAAa,oBAAqB,SAAQ,SAAS;gBACrC,OAAO,EAAE,MAAM;CAI5B;AAmDD,6EAA6E;AAC7E,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAErE;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAExE;AAUD,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEpE;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CA8CpE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAKjH;AAED,eAAO,MAAM,aAAa,mBAAiB,CAAC;AAC5C,eAAO,MAAM,eAAe,mBAAoB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Context, StandardIdentity, Status, SymbolSet, Version } from "./enums.js";
1
+ import { Context, Standard, StandardIdentity, Status, SymbolSet, Version, } from "./enums.js";
2
2
  export class SidcError extends Error {
3
3
  constructor(message) {
4
4
  super(message);
@@ -29,6 +29,43 @@ const KNOWN_SYMBOL_SETS = [
29
29
  "12",
30
30
  "39",
31
31
  ];
32
+ const STANDARD_DEFAULT_VERSIONS = {
33
+ [Standard.MilStd2525]: Version.MilStd2525E,
34
+ [Standard.App6]: Version.App6E,
35
+ };
36
+ const VERSION_STANDARDS = {
37
+ [Version.MilStd2525D]: Standard.MilStd2525,
38
+ [Version.App6D]: Standard.App6,
39
+ [Version.MilStd2525E]: Standard.MilStd2525,
40
+ [Version.App6E]: Standard.App6,
41
+ };
42
+ const STANDARD_NAMES = {
43
+ [Standard.MilStd2525]: "MIL-STD-2525",
44
+ [Standard.App6]: "APP-6",
45
+ };
46
+ const EDITION_NAMES = {
47
+ [Version.MilStd2525D]: "MIL-STD-2525D",
48
+ [Version.App6D]: "APP-6 D",
49
+ [Version.MilStd2525E]: "MIL-STD-2525E",
50
+ [Version.App6E]: "APP-6 E",
51
+ };
52
+ // Symbol sets omitted from milsymbol's handler bundle for each legacy edition.
53
+ const UNSUPPORTED_SYMBOL_SETS = {
54
+ [Version.MilStd2525D]: [SymbolSet.LandDismountedIndividual],
55
+ [Version.App6D]: [SymbolSet.Cyberspace],
56
+ };
57
+ const SYMBOL_SET_NAMES = {
58
+ [SymbolSet.LandDismountedIndividual]: "dismounted individual",
59
+ [SymbolSet.Cyberspace]: "cyberspace",
60
+ };
61
+ /** Returns the latest supported version for a configured standard family. */
62
+ export function defaultVersionForStandard(standard) {
63
+ return STANDARD_DEFAULT_VERSIONS[standard];
64
+ }
65
+ /** Returns the standard family for a known official version code. */
66
+ export function standardForVersion(version) {
67
+ return VERSION_STANDARDS[version];
68
+ }
32
69
  function assertDigits(name, value, pattern, length) {
33
70
  if (!pattern.test(value)) {
34
71
  throw new SidcValidationError(`${name} must be ${length} digit(s), got "${value}".`);
@@ -49,12 +86,12 @@ export function checkOneDigitField(name, value) {
49
86
  */
50
87
  export function findCombinationProblems(fields) {
51
88
  const problems = [];
52
- const { version, context, identity, symbolSet, status } = fields;
53
- // Faker ("6") only exists in exercises; Suspect/Joker ("5") is a valid
54
- // real-world identity (dashed hostile frame).
55
- if (identity === StandardIdentity.Faker &&
56
- context !== Context.Exercise) {
57
- problems.push(`Identity "${identity}" (faker) is only valid with exercise context.`);
89
+ const { version, context, identity, symbolSet, status, standard } = fields;
90
+ const versionStandard = standardForVersion(version);
91
+ if (standard !== undefined &&
92
+ versionStandard !== undefined &&
93
+ versionStandard !== standard) {
94
+ problems.push(`Version "${version}" (${EDITION_NAMES[version]}) belongs to ${STANDARD_NAMES[versionStandard]}, not the configured ${STANDARD_NAMES[standard]} standard.`);
58
95
  }
59
96
  // Condition statuses do not apply to control measures (tactical graphics).
60
97
  if (Object.values(Status).includes(status) &&
@@ -70,11 +107,8 @@ export function findCombinationProblems(fields) {
70
107
  problems.push("Exercise symbols on the unknown symbol set render without affiliation unless identity is pending/unknown.");
71
108
  }
72
109
  // Symbol sets missing from specific standards' handler lists.
73
- if (version === Version.MilStd2525D && symbolSet === SymbolSet.LandDismountedIndividual) {
74
- problems.push("Symbol set 27 (dismounted individual) is not supported by MIL-STD-2525D.");
75
- }
76
- if (version === Version.App6D && symbolSet === SymbolSet.Cyberspace) {
77
- problems.push("Symbol set 60 (cyberspace) is not supported by APP-6 D.");
110
+ if (UNSUPPORTED_SYMBOL_SETS[version]?.includes(symbolSet)) {
111
+ problems.push(`Symbol set ${symbolSet} (${SYMBOL_SET_NAMES[symbolSet]}) is not supported by ${EDITION_NAMES[version]}.`);
78
112
  }
79
113
  return problems;
80
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAWnF,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,qDAAqD;AACrD,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,wEAAwE;AACxE,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,MAAM,UAAU,GAAG,SAAS,CAAC;AAC7B,MAAM,SAAS,GAAG,MAAM,CAAC;AAEzB,2EAA2E;AAC3E,8EAA8E;AAC9E,MAAM,cAAc,GAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACzE,MAAM,iBAAiB,GAAsB;IAC3C,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;IAC3B,IAAI;IACJ,IAAI;CACL,CAAC;AAEF,SAAS,YAAY,CAAC,IAAY,EAAE,KAAa,EAAE,OAAe,EAAE,MAAc;IAChF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,mBAAmB,CAC3B,GAAG,IAAI,YAAY,MAAM,mBAAmB,KAAK,IAAI,CACtD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,KAAa;IAC5D,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,KAAa;IAC5D,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAkB;IACxD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAEjE,uEAAuE;IACvE,8CAA8C;IAC9C,IACE,QAAQ,KAAK,gBAAgB,CAAC,KAAK;QACnC,OAAO,KAAK,OAAO,CAAC,QAAQ,EAC5B,CAAC;QACD,QAAQ,CAAC,IAAI,CACX,aAAa,QAAQ,gDAAgD,CACtE,CAAC;IACJ,CAAC;IAED,2EAA2E;IAC3E,IACG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7D,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC;QACzB,SAAS,KAAK,SAAS,CAAC,cAAc,EACtC,CAAC;QACD,QAAQ,CAAC,IAAI,CACX,qBAAqB,MAAM,qDAAqD,CACjF,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,IACE,SAAS,KAAK,SAAS,CAAC,OAAO;QAC/B,OAAO,KAAK,OAAO,CAAC,QAAQ;QAC5B,QAAQ,KAAK,gBAAgB,CAAC,OAAO;QACrC,QAAQ,KAAK,gBAAgB,CAAC,OAAO,EACrC,CAAC;QACD,QAAQ,CAAC,IAAI,CACX,2GAA2G,CAC5G,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,IAAI,OAAO,KAAK,OAAO,CAAC,WAAW,IAAI,SAAS,KAAK,SAAS,CAAC,wBAAwB,EAAE,CAAC;QACxF,QAAQ,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,CAAC,KAAK,IAAI,SAAS,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;QACpE,QAAQ,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,KAAa,EAAE,KAAwB;IAC3F,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,gBAAgB,IAAI,UAAU,KAAK,IAAI,CAAC;IACjD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import assert from "node:assert/strict";
2
2
  import { describe, it } from "node:test";
3
- import { Context, Sidc, SidcCombinationError, SidcValidationError, StandardIdentity, Status, SymbolSet, Version, } from "../src/index.js";
3
+ import { Context, Sidc, SidcCombinationError, SidcValidationError, Standard, StandardIdentity, Status, SymbolSet, Version, } from "../src/index.js";
4
4
  /** Runs fn with console.warn captured; returns the captured messages. */
5
5
  function captureWarnings(fn) {
6
6
  const original = console.warn;
@@ -24,13 +24,78 @@ describe("Sidc defaults", () => {
24
24
  const sidc = new Sidc()
25
25
  .version(Version.App6E)
26
26
  .context(Context.Simulation)
27
- .identity(StandardIdentity.Faker)
27
+ .identity(StandardIdentity.HostileFaker)
28
28
  .symbolSet(SymbolSet.SeaSubsurface)
29
29
  .status(Status.Destroyed)
30
30
  .toString();
31
31
  assert.equal(sidc.length, 20);
32
32
  });
33
33
  });
34
+ describe("standard configuration", () => {
35
+ it("defaults APP-6 and MIL-STD-2525 to their latest editions", () => {
36
+ assert.equal(new Sidc({ standard: Standard.App6 }).toString(), "14010000000000000000");
37
+ assert.equal(new Sidc({ standard: Standard.MilStd2525 }).toString(), "13010000000000000000");
38
+ });
39
+ it("configures APP-6 through the immutable setter", () => {
40
+ const base = new Sidc();
41
+ const app6 = base.standard(Standard.App6);
42
+ assert.notEqual(base, app6);
43
+ assert.equal(base.toString().slice(0, 2), Version.MilStd2525E);
44
+ assert.equal(app6.toString().slice(0, 2), Version.App6E);
45
+ });
46
+ it("retains a version that already belongs to the selected family", () => {
47
+ const app6d = new Sidc()
48
+ .version(Version.App6D)
49
+ .standard(Standard.App6);
50
+ assert.equal(app6d.toString().slice(0, 2), Version.App6D);
51
+ });
52
+ it("resets an incompatible version to the selected family's default", () => {
53
+ const sidc = new Sidc()
54
+ .version(Version.App6D)
55
+ .standard(Standard.MilStd2525);
56
+ assert.equal(sidc.toString().slice(0, 2), Version.MilStd2525E);
57
+ });
58
+ it("flags a version from another configured standard family", () => {
59
+ const warnings = captureWarnings(() => {
60
+ new Sidc({ standard: Standard.App6 })
61
+ .version(Version.MilStd2525E)
62
+ .toString();
63
+ });
64
+ assert.equal(warnings.length, 1);
65
+ assert.match(warnings[0], /configured APP-6 standard/);
66
+ assert.throws(() => new Sidc({ strict: true, standard: Standard.App6 })
67
+ .version(Version.MilStd2525E)
68
+ .toString(), SidcCombinationError);
69
+ });
70
+ it("keeps the recognized raw-version escape hatch backward compatible", () => {
71
+ const warnings = captureWarnings(() => {
72
+ const rendered = new Sidc({ standard: Standard.App6 })
73
+ .version("12")
74
+ .toString();
75
+ assert.equal(rendered.slice(0, 2), "12");
76
+ });
77
+ assert.deepEqual(warnings, []);
78
+ });
79
+ it("applies edition-specific APP-6 validation", () => {
80
+ const warnings = captureWarnings(() => {
81
+ new Sidc({ standard: Standard.App6 })
82
+ .version(Version.App6D)
83
+ .symbolSet(SymbolSet.Cyberspace)
84
+ .toString();
85
+ });
86
+ assert.equal(warnings.length, 1);
87
+ assert.match(warnings[0], /APP-6 D/);
88
+ });
89
+ it("rejects unknown standard configuration values", () => {
90
+ assert.throws(() => new Sidc({ standard: "NATO" }), SidcValidationError);
91
+ assert.throws(() => new Sidc().standard("NATO"), SidcValidationError);
92
+ });
93
+ it("accepts every Standard member through the setter", () => {
94
+ for (const standard of Object.values(Standard)) {
95
+ assert.doesNotThrow(() => new Sidc().standard(standard));
96
+ }
97
+ });
98
+ });
34
99
  describe("field encoding (positions 1-7)", () => {
35
100
  it("encodes version at positions 1-2", () => {
36
101
  assert.equal(new Sidc().version(Version.MilStd2525E).toString().slice(0, 2), "13");
@@ -50,7 +115,7 @@ describe("field encoding (positions 1-7)", () => {
50
115
  assert.equal(new Sidc().identity(StandardIdentity.Friend).toString().charAt(3), "3");
51
116
  assert.equal(new Sidc().identity(StandardIdentity.Neutral).toString().charAt(3), "4");
52
117
  assert.equal(new Sidc().identity(StandardIdentity.SuspectJoker).toString().charAt(3), "5");
53
- assert.equal(new Sidc().identity(StandardIdentity.Faker).toString().charAt(3), "6");
118
+ assert.equal(new Sidc().identity(StandardIdentity.HostileFaker).toString().charAt(3), "6");
54
119
  });
55
120
  it("encodes symbol set at positions 5-6", () => {
56
121
  for (const code of Object.values(SymbolSet)) {
@@ -96,7 +161,9 @@ describe("immutability", () => {
96
161
  assert.equal(derived.toString(), "13030030000000000000");
97
162
  });
98
163
  it("carries strict mode through clones", () => {
99
- const strict = new Sidc({ strict: true }).identity(StandardIdentity.Faker);
164
+ const strict = new Sidc({ strict: true })
165
+ .symbolSet(SymbolSet.ControlMeasure)
166
+ .status(Status.Destroyed);
100
167
  assert.throws(() => strict.toString(), SidcCombinationError);
101
168
  });
102
169
  });
@@ -128,7 +195,7 @@ describe("value validation", () => {
128
195
  });
129
196
  });
130
197
  describe("combination validation", () => {
131
- it("suspect identity is valid in reality context", () => {
198
+ it("suspect/joker identity is valid in reality context", () => {
132
199
  const warnings = captureWarnings(() => {
133
200
  new Sidc({ strict: true })
134
201
  .identity(StandardIdentity.SuspectJoker)
@@ -137,22 +204,33 @@ describe("combination validation", () => {
137
204
  });
138
205
  assert.deepEqual(warnings, []);
139
206
  });
140
- it("faker outside exercise context warns by default", () => {
207
+ it("hostile/faker identity is valid in reality context", () => {
141
208
  const warnings = captureWarnings(() => {
142
- new Sidc().identity(StandardIdentity.Faker).toString();
209
+ new Sidc({ strict: true })
210
+ .identity(StandardIdentity.HostileFaker)
211
+ .symbolSet(SymbolSet.LandUnit)
212
+ .toString();
143
213
  });
144
- assert.equal(warnings.length, 1);
145
- assert.match(warnings[0], /exercise context/);
214
+ assert.deepEqual(warnings, []);
146
215
  });
147
- it("suspect identity inside exercise context is clean", () => {
216
+ it("suspect/joker identity inside exercise context is clean", () => {
148
217
  const sidc = new Sidc({ strict: true })
149
218
  .context(Context.Exercise)
150
219
  .identity(StandardIdentity.SuspectJoker)
151
220
  .symbolSet(SymbolSet.LandUnit);
152
221
  assert.doesNotThrow(() => sidc.toString());
153
222
  });
223
+ it("hostile/faker identity inside exercise context is clean", () => {
224
+ const sidc = new Sidc({ strict: true })
225
+ .context(Context.Exercise)
226
+ .identity(StandardIdentity.HostileFaker)
227
+ .symbolSet(SymbolSet.LandUnit);
228
+ assert.doesNotThrow(() => sidc.toString());
229
+ });
154
230
  it("strict mode throws instead of warning", () => {
155
- const sidc = new Sidc({ strict: true }).identity(StandardIdentity.Faker);
231
+ const sidc = new Sidc({ strict: true })
232
+ .symbolSet(SymbolSet.ControlMeasure)
233
+ .status(Status.Destroyed);
156
234
  assert.throws(() => sidc.toString(), SidcCombinationError);
157
235
  });
158
236
  it("condition status on control measures warns", () => {
@@ -183,9 +261,10 @@ describe("combination validation", () => {
183
261
  .toString();
184
262
  new Sidc().version(Version.App6D).symbolSet(SymbolSet.Cyberspace).toString();
185
263
  });
186
- assert.equal(warnings.length, 2);
187
- assert.match(warnings[0], /2525D/);
188
- assert.match(warnings[1], /APP-6 D/);
264
+ assert.deepEqual(warnings, [
265
+ "[milsymbol-sidc] Symbol set 27 (dismounted individual) is not supported by MIL-STD-2525D.",
266
+ "[milsymbol-sidc] Symbol set 60 (cyberspace) is not supported by APP-6 D.",
267
+ ]);
189
268
  });
190
269
  it("valid combinations produce no warnings", () => {
191
270
  const warnings = captureWarnings(() => {
@@ -198,10 +277,10 @@ describe("combination validation", () => {
198
277
  });
199
278
  assert.deepEqual(warnings, []);
200
279
  });
201
- it("stacks multiple combination problems", () => {
280
+ it("stacks multiple problems", () => {
202
281
  const warnings = captureWarnings(() => {
203
282
  new Sidc()
204
- .identity(StandardIdentity.Faker)
283
+ .version("99")
205
284
  .symbolSet(SymbolSet.ControlMeasure)
206
285
  .status(Status.Damaged)
207
286
  .toString();
@@ -215,7 +294,10 @@ describe("builder ergonomics", () => {
215
294
  });
216
295
  it("accepts an empty options object as non-strict", () => {
217
296
  const warnings = captureWarnings(() => {
218
- new Sidc({}).identity(StandardIdentity.Faker).toString();
297
+ new Sidc({})
298
+ .symbolSet(SymbolSet.ControlMeasure)
299
+ .status(Status.Damaged)
300
+ .toString();
219
301
  });
220
302
  assert.equal(warnings.length, 1);
221
303
  });
@@ -284,7 +366,10 @@ describe("error types", () => {
284
366
  assert.throws(() => new Sidc().identity("9"), (error) => error instanceof SidcValidationError && error instanceof Error);
285
367
  });
286
368
  it("combination errors extend SidcError", () => {
287
- assert.throws(() => new Sidc({ strict: true }).identity(StandardIdentity.Faker).toString(), (error) => error instanceof SidcCombinationError && error instanceof Error);
369
+ assert.throws(() => new Sidc({ strict: true })
370
+ .symbolSet(SymbolSet.ControlMeasure)
371
+ .status(Status.Destroyed)
372
+ .toString(), (error) => error instanceof SidcCombinationError && error instanceof Error);
288
373
  });
289
374
  it("names its errors", () => {
290
375
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"sidc.test.js","sourceRoot":"","sources":["../../test/sidc.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidc.test.js","sourceRoot":"","sources":["../../test/sidc.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "milsymbol-sidc",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Fluent TypeScript builder for MIL-STD-2525E / APP-6 numeric (20-character) SIDC strings, for use with milsymbol.",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",