milsymbol-sidc 0.1.2 → 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 |
@@ -216,6 +230,8 @@ Active combination rules:
216
230
  identity is pending/unknown.
217
231
  - Symbol set 27 is unsupported in MIL-STD-2525D; symbol set 60 is unsupported
218
232
  in APP-6 D.
233
+ - When a `Standard` is explicitly configured, official version codes from the
234
+ other standard family are reported.
219
235
  - Raw version/symbol-set codes outside milsymbol's known tables are reported.
220
236
 
221
237
  ```ts
@@ -268,12 +284,13 @@ parser, so codes from this package work without any configuration. The
268
284
  ### Node.js (ESM)
269
285
 
270
286
  ```js
271
- import ms from "milsymbol"; // bundles all standards incl. 2525E icons
272
- 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";
273
289
 
274
- ms.setStandard("2525"); // or "APP6"
290
+ const standard = Standard.App6;
291
+ ms.setStandard(standard); // "APP6": use NATO styling
275
292
 
276
- const sidc = new Sidc()
293
+ const sidc = new Sidc({ standard }) // defaults to APP-6 E (version "14")
277
294
  .identity(StandardIdentity.Friend)
278
295
  .symbolSet(SymbolSet.LandUnit)
279
296
  .toString();
@@ -297,14 +314,16 @@ const ms = require("milsymbol");
297
314
  ```html
298
315
  <script src="https://unpkg.com/milsymbol@3/dist/milsymbol.js"></script>
299
316
  <script type="module">
300
- 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";
301
318
 
302
- const sidc = new Sidc()
319
+ const sidc = new Sidc({ standard: Standard.App6 })
303
320
  .identity(StandardIdentity.Neutral)
304
321
  .symbolSet(SymbolSet.SeaSurface)
305
322
  .toString();
306
323
 
307
- document.body.innerHTML = new ms.Symbol(sidc).asSVG();
324
+ document.body.innerHTML = new ms.Symbol(sidc, {
325
+ standard: Standard.App6,
326
+ }).asSVG();
308
327
  </script>
309
328
  ```
310
329
 
@@ -333,12 +352,18 @@ new Sidc()
333
352
  .toString(); // "13033640000000000000"
334
353
 
335
354
  // Exercise joker submarine under APP-6E
336
- new Sidc({ strict: true })
337
- .version("14")
355
+ new Sidc({ standard: Standard.App6, strict: true })
338
356
  .context(Context.Exercise)
339
357
  .identity(StandardIdentity.SuspectJoker)
340
358
  .symbolSet(SymbolSet.SeaSubsurface)
341
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"
342
367
  ```
343
368
 
344
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) */
@@ -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,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"}
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) */
@@ -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,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
+ {"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,CAoCpE;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,7 +86,13 @@ 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;
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.`);
95
+ }
53
96
  // Condition statuses do not apply to control measures (tactical graphics).
54
97
  if (Object.values(Status).includes(status) &&
55
98
  parseInt(status, 10) >= 2 &&
@@ -64,11 +107,8 @@ export function findCombinationProblems(fields) {
64
107
  problems.push("Exercise symbols on the unknown symbol set render without affiliation unless identity is pending/unknown.");
65
108
  }
66
109
  // Symbol sets missing from specific standards' handler lists.
67
- if (version === Version.MilStd2525D && symbolSet === SymbolSet.LandDismountedIndividual) {
68
- problems.push("Symbol set 27 (dismounted individual) is not supported by MIL-STD-2525D.");
69
- }
70
- if (version === Version.App6D && symbolSet === SymbolSet.Cyberspace) {
71
- 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]}.`);
72
112
  }
73
113
  return problems;
74
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"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"}
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;
@@ -31,6 +31,71 @@ describe("Sidc defaults", () => {
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");
@@ -196,9 +261,10 @@ describe("combination validation", () => {
196
261
  .toString();
197
262
  new Sidc().version(Version.App6D).symbolSet(SymbolSet.Cyberspace).toString();
198
263
  });
199
- assert.equal(warnings.length, 2);
200
- assert.match(warnings[0], /2525D/);
201
- 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
+ ]);
202
268
  });
203
269
  it("valid combinations produce no warnings", () => {
204
270
  const warnings = captureWarnings(() => {
@@ -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.2",
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",