@ac-kit/format-hid 0.0.0-stage → 0.1.1

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.
Files changed (88) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/LICENSE +28 -0
  3. package/README.md +96 -2
  4. package/dist/descriptor/hid-field-usage.d.ts +35 -0
  5. package/dist/descriptor/hid-field-usage.d.ts.map +1 -0
  6. package/dist/descriptor/hid-field-usage.js +63 -0
  7. package/dist/descriptor/hid-field-usage.js.map +1 -0
  8. package/dist/descriptor/hid-report-descriptor.d.ts +148 -0
  9. package/dist/descriptor/hid-report-descriptor.d.ts.map +1 -0
  10. package/dist/descriptor/hid-report-descriptor.js +15 -0
  11. package/dist/descriptor/hid-report-descriptor.js.map +1 -0
  12. package/dist/descriptor/parse-hid-report-descriptor.d.ts +30 -0
  13. package/dist/descriptor/parse-hid-report-descriptor.d.ts.map +1 -0
  14. package/dist/descriptor/parse-hid-report-descriptor.js +440 -0
  15. package/dist/descriptor/parse-hid-report-descriptor.js.map +1 -0
  16. package/dist/errors.d.ts +17 -0
  17. package/dist/errors.d.ts.map +1 -0
  18. package/dist/errors.js +20 -0
  19. package/dist/errors.js.map +1 -0
  20. package/dist/field/_field-value-bit-position.d.ts +7 -0
  21. package/dist/field/_field-value-bit-position.d.ts.map +1 -0
  22. package/dist/field/_field-value-bit-position.js +24 -0
  23. package/dist/field/_field-value-bit-position.js.map +1 -0
  24. package/dist/field/create-hid-report.d.ts +9 -0
  25. package/dist/field/create-hid-report.d.ts.map +1 -0
  26. package/dist/field/create-hid-report.js +14 -0
  27. package/dist/field/create-hid-report.js.map +1 -0
  28. package/dist/field/hid-field-layout.d.ts +7 -0
  29. package/dist/field/hid-field-layout.d.ts.map +1 -0
  30. package/dist/field/hid-field-layout.js +2 -0
  31. package/dist/field/hid-field-layout.js.map +1 -0
  32. package/dist/field/hid-logical-to-physical.d.ts +14 -0
  33. package/dist/field/hid-logical-to-physical.d.ts.map +1 -0
  34. package/dist/field/hid-logical-to-physical.js +27 -0
  35. package/dist/field/hid-logical-to-physical.js.map +1 -0
  36. package/dist/field/read-hid-field-value.d.ts +18 -0
  37. package/dist/field/read-hid-field-value.d.ts.map +1 -0
  38. package/dist/field/read-hid-field-value.js +35 -0
  39. package/dist/field/read-hid-field-value.js.map +1 -0
  40. package/dist/field/write-hid-field-value-in-place.d.ts +18 -0
  41. package/dist/field/write-hid-field-value-in-place.d.ts.map +1 -0
  42. package/dist/field/write-hid-field-value-in-place.js +41 -0
  43. package/dist/field/write-hid-field-value-in-place.js.map +1 -0
  44. package/dist/field/write-hid-field-value.d.ts +18 -0
  45. package/dist/field/write-hid-field-value.d.ts.map +1 -0
  46. package/dist/field/write-hid-field-value.js +41 -0
  47. package/dist/field/write-hid-field-value.js.map +1 -0
  48. package/dist/index.d.ts +18 -0
  49. package/dist/index.d.ts.map +1 -0
  50. package/dist/index.js +18 -0
  51. package/dist/index.js.map +1 -0
  52. package/dist/item/_read-hid-item.d.ts +18 -0
  53. package/dist/item/_read-hid-item.d.ts.map +1 -0
  54. package/dist/item/_read-hid-item.js +48 -0
  55. package/dist/item/_read-hid-item.js.map +1 -0
  56. package/dist/item/decode-hid-items.d.ts +16 -0
  57. package/dist/item/decode-hid-items.d.ts.map +1 -0
  58. package/dist/item/decode-hid-items.js +24 -0
  59. package/dist/item/decode-hid-items.js.map +1 -0
  60. package/dist/item/encode-hid-items.d.ts +17 -0
  61. package/dist/item/encode-hid-items.d.ts.map +1 -0
  62. package/dist/item/encode-hid-items.js +74 -0
  63. package/dist/item/encode-hid-items.js.map +1 -0
  64. package/dist/item/hid-item-tag.d.ts +37 -0
  65. package/dist/item/hid-item-tag.d.ts.map +1 -0
  66. package/dist/item/hid-item-tag.js +40 -0
  67. package/dist/item/hid-item-tag.js.map +1 -0
  68. package/dist/item/hid-item-value.d.ts +20 -0
  69. package/dist/item/hid-item-value.d.ts.map +1 -0
  70. package/dist/item/hid-item-value.js +36 -0
  71. package/dist/item/hid-item-value.js.map +1 -0
  72. package/dist/item/hid-item.d.ts +32 -0
  73. package/dist/item/hid-item.d.ts.map +1 -0
  74. package/dist/item/hid-item.js +2 -0
  75. package/dist/item/hid-item.js.map +1 -0
  76. package/dist/unit/decode-hid-unit.d.ts +9 -0
  77. package/dist/unit/decode-hid-unit.d.ts.map +1 -0
  78. package/dist/unit/decode-hid-unit.js +26 -0
  79. package/dist/unit/decode-hid-unit.js.map +1 -0
  80. package/dist/unit/encode-hid-unit.d.ts +10 -0
  81. package/dist/unit/encode-hid-unit.d.ts.map +1 -0
  82. package/dist/unit/encode-hid-unit.js +32 -0
  83. package/dist/unit/encode-hid-unit.js.map +1 -0
  84. package/dist/unit/hid-unit.d.ts +29 -0
  85. package/dist/unit/hid-unit.d.ts.map +1 -0
  86. package/dist/unit/hid-unit.js +11 -0
  87. package/dist/unit/hid-unit.js.map +1 -0
  88. package/package.json +60 -3
@@ -0,0 +1,36 @@
1
+ /**
2
+ * The item's data read as a little-endian unsigned integer — how HID 1.11
3
+ * §6.2.2.7 reads Usage Page, Report Size, Report Count, Report ID and Unit.
4
+ *
5
+ * Use {@link hidItemSigned} for Logical/Physical Minimum and other signed
6
+ * values. An empty data field reads as 0.
7
+ *
8
+ * @throws {RangeError} When the data is longer than 4 bytes (a long item).
9
+ */
10
+ export function hidItemUnsigned(item) {
11
+ const { data } = item;
12
+ if (data.length > 4) {
13
+ throw new RangeError(`hidItemUnsigned: ${data.length} data bytes exceed the 4 an integer item holds`);
14
+ }
15
+ let value = 0;
16
+ for (let index = data.length - 1; index >= 0; index--) {
17
+ value = value * 256 + data[index];
18
+ }
19
+ return value;
20
+ }
21
+ /**
22
+ * The item's data read as a little-endian two's-complement integer of its own
23
+ * width — 1, 2 or 4 bytes — as HID 1.11 §6.2.2.7 reads Logical and Physical
24
+ * Minimum. An empty data field reads as 0.
25
+ *
26
+ * @throws {RangeError} When the data is longer than 4 bytes (a long item).
27
+ */
28
+ export function hidItemSigned(item) {
29
+ const value = hidItemUnsigned(item);
30
+ const bits = item.data.length * 8;
31
+ if (bits === 0 || value < 2 ** (bits - 1)) {
32
+ return value;
33
+ }
34
+ return value - 2 ** bits;
35
+ }
36
+ //# sourceMappingURL=hid-item-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hid-item-value.js","sourceRoot":"","sources":["../../src/item/hid-item-value.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,IAAa;IAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACtB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,UAAU,CACnB,oBAAoB,IAAI,CAAC,MAAM,gDAAgD,CAC/E,CAAC;IACH,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACvD,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC;IACpC,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAAa;IAC1C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACd,CAAC;IAED,OAAO,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,32 @@
1
+ /** The `bType` field of a short item's prefix byte (HID 1.11 §6.2.2.2). */
2
+ export type HidItemType = "main" | "global" | "local" | "reserved";
3
+ /**
4
+ * A short item: a one-byte prefix carrying the type, the tag and a data length
5
+ * of 0, 1, 2 or 4 bytes (HID 1.11 §6.2.2.2).
6
+ */
7
+ export type HidShortItem = {
8
+ kind: "short";
9
+ type: HidItemType;
10
+ /**
11
+ * `bTag`, 0–15. Its meaning depends on `type`: see {@link HidMainTag},
12
+ * {@link HidGlobalTag} and {@link HidLocalTag}.
13
+ */
14
+ tag: number;
15
+ /** Raw little-endian data, 0, 1, 2 or 4 bytes long. */
16
+ data: Uint8Array;
17
+ };
18
+ /**
19
+ * A long item: prefix `0xFE`, a one-byte data length and a one-byte tag (HID
20
+ * 1.11 §6.2.2.3). HID 1.11 defines no long item tag, so these only ever carry
21
+ * vendor data.
22
+ */
23
+ export type HidLongItem = {
24
+ kind: "long";
25
+ /** `bLongItemTag`, 0–255. */
26
+ tag: number;
27
+ /** Raw data, 0–255 bytes long. */
28
+ data: Uint8Array;
29
+ };
30
+ /** One item of a report descriptor, as it appears on the wire. */
31
+ export type HidItem = HidShortItem | HidLongItem;
32
+ //# sourceMappingURL=hid-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hid-item.d.ts","sourceRoot":"","sources":["../../src/item/hid-item.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAEnE;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,IAAI,EAAE,UAAU,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,IAAI,EAAE,UAAU,CAAC;CACjB,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=hid-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hid-item.js","sourceRoot":"","sources":["../../src/item/hid-item.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import type { HidUnit } from "./hid-unit.js";
2
+ /**
3
+ * Splits a unit word — a field's {@link HidReportField.unit} — into its system
4
+ * and the exponent of each base quantity (HID 1.11 §6.2.2.7).
5
+ *
6
+ * @throws {RangeError} When `word` is not an integer in 0–0xFFFFFFFF.
7
+ */
8
+ export declare function decodeHidUnit(word: number): HidUnit;
9
+ //# sourceMappingURL=decode-hid-unit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode-hid-unit.d.ts","sourceRoot":"","sources":["../../src/unit/decode-hid-unit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAQ7C;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAiBnD"}
@@ -0,0 +1,26 @@
1
+ function signedNibble_(word, nibble) {
2
+ const value = (word >>> (nibble * 4)) & 0xf;
3
+ return value >= 8 ? value - 16 : value;
4
+ }
5
+ /**
6
+ * Splits a unit word — a field's {@link HidReportField.unit} — into its system
7
+ * and the exponent of each base quantity (HID 1.11 §6.2.2.7).
8
+ *
9
+ * @throws {RangeError} When `word` is not an integer in 0–0xFFFFFFFF.
10
+ */
11
+ export function decodeHidUnit(word) {
12
+ if (!Number.isInteger(word) || word < 0 || word > 4294967295) {
13
+ throw new RangeError(`decodeHidUnit: ${word} is not a 32-bit unsigned integer`);
14
+ }
15
+ return {
16
+ system: word & 0xf,
17
+ length: signedNibble_(word, 1),
18
+ mass: signedNibble_(word, 2),
19
+ time: signedNibble_(word, 3),
20
+ temperature: signedNibble_(word, 4),
21
+ current: signedNibble_(word, 5),
22
+ luminousIntensity: signedNibble_(word, 6),
23
+ reserved: word >>> 28,
24
+ };
25
+ }
26
+ //# sourceMappingURL=decode-hid-unit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode-hid-unit.js","sourceRoot":"","sources":["../../src/unit/decode-hid-unit.ts"],"names":[],"mappings":"AAEA,SAAS,aAAa,CAAC,IAAY,EAAE,MAAc;IAClD,MAAM,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAE5C,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACzC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,UAAW,EAAE,CAAC;QAC/D,MAAM,IAAI,UAAU,CACnB,kBAAkB,IAAI,mCAAmC,CACzD,CAAC;IACH,CAAC;IAED,OAAO;QACN,MAAM,EAAE,IAAI,GAAG,GAAG;QAClB,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5B,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5B,WAAW,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;QACnC,OAAO,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/B,iBAAiB,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;QACzC,QAAQ,EAAE,IAAI,KAAK,EAAE;KACrB,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { HidUnit } from "./hid-unit.js";
2
+ /**
3
+ * Packs a unit into the 32-bit word a Unit item carries — the inverse of
4
+ * {@link decodeHidUnit}.
5
+ *
6
+ * @throws {RangeError} When `system` or `reserved` is not 0–15, or an exponent
7
+ * is not an integer in -8–7.
8
+ */
9
+ export declare function encodeHidUnit(unit: HidUnit): number;
10
+ //# sourceMappingURL=encode-hid-unit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-hid-unit.d.ts","sourceRoot":"","sources":["../../src/unit/encode-hid-unit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAwB7C;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAYnD"}
@@ -0,0 +1,32 @@
1
+ const EXPONENTS_ = [
2
+ "length",
3
+ "mass",
4
+ "time",
5
+ "temperature",
6
+ "current",
7
+ "luminousIntensity",
8
+ ];
9
+ function checkNibble_(name, value, minimum, maximum) {
10
+ if (!Number.isInteger(value) || value < minimum || value > maximum) {
11
+ throw new RangeError(`encodeHidUnit: ${name} ${value} is not ${minimum}–${maximum}`);
12
+ }
13
+ }
14
+ /**
15
+ * Packs a unit into the 32-bit word a Unit item carries — the inverse of
16
+ * {@link decodeHidUnit}.
17
+ *
18
+ * @throws {RangeError} When `system` or `reserved` is not 0–15, or an exponent
19
+ * is not an integer in -8–7.
20
+ */
21
+ export function encodeHidUnit(unit) {
22
+ checkNibble_("system", unit.system, 0, 15);
23
+ checkNibble_("reserved", unit.reserved, 0, 15);
24
+ let word = unit.system;
25
+ for (const [index, name] of EXPONENTS_.entries()) {
26
+ const exponent = unit[name];
27
+ checkNibble_(name, exponent, -8, 7);
28
+ word |= (exponent & 0xf) << ((index + 1) * 4);
29
+ }
30
+ return (word | (unit.reserved << 28)) >>> 0;
31
+ }
32
+ //# sourceMappingURL=encode-hid-unit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-hid-unit.js","sourceRoot":"","sources":["../../src/unit/encode-hid-unit.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAG;IAClB,QAAQ;IACR,MAAM;IACN,MAAM;IACN,aAAa;IACb,SAAS;IACT,mBAAmB;CAC2B,CAAC;AAEhD,SAAS,YAAY,CACpB,IAAY,EACZ,KAAa,EACb,OAAe,EACf,OAAe;IAEf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,OAAO,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;QACpE,MAAM,IAAI,UAAU,CACnB,kBAAkB,IAAI,IAAI,KAAK,WAAW,OAAO,IAAI,OAAO,EAAE,CAC9D,CAAC;IACH,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAAa;IAC1C,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3C,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAE/C,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IACvB,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,29 @@
1
+ /** Nibble 0 of a unit word (HID 1.11 §6.2.2.7). 5–14 are reserved. */
2
+ export declare enum HidUnitSystem {
3
+ NONE = 0,
4
+ SI_LINEAR = 1,
5
+ SI_ROTATION = 2,
6
+ ENGLISH_LINEAR = 3,
7
+ ENGLISH_ROTATION = 4,
8
+ VENDOR_DEFINED = 15
9
+ }
10
+ /**
11
+ * A unit word split into its nibbles. Each dimension is the signed exponent of
12
+ * that base quantity, -8–7: `{ system: SI_LINEAR, length: 1, time: -2 }` is
13
+ * cm·s⁻². What "length" means — centimetre, inch, radian, degree — depends on
14
+ * `system`.
15
+ */
16
+ export type HidUnit = {
17
+ /** A {@link HidUnitSystem}, or the raw nibble of a reserved one. */
18
+ system: number;
19
+ /** Length, or angle in a rotation system. */
20
+ length: number;
21
+ mass: number;
22
+ time: number;
23
+ temperature: number;
24
+ current: number;
25
+ luminousIntensity: number;
26
+ /** Nibble 7, reserved; 0–15, kept so a word round-trips. */
27
+ reserved: number;
28
+ };
29
+ //# sourceMappingURL=hid-unit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hid-unit.d.ts","sourceRoot":"","sources":["../../src/unit/hid-unit.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oBAAY,aAAa;IACxB,IAAI,IAAM;IACV,SAAS,IAAM;IACf,WAAW,IAAM;IACjB,cAAc,IAAM;IACpB,gBAAgB,IAAM;IACtB,cAAc,KAAM;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,OAAO,GAAG;IACrB,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /** Nibble 0 of a unit word (HID 1.11 §6.2.2.7). 5–14 are reserved. */
2
+ export var HidUnitSystem;
3
+ (function (HidUnitSystem) {
4
+ HidUnitSystem[HidUnitSystem["NONE"] = 0] = "NONE";
5
+ HidUnitSystem[HidUnitSystem["SI_LINEAR"] = 1] = "SI_LINEAR";
6
+ HidUnitSystem[HidUnitSystem["SI_ROTATION"] = 2] = "SI_ROTATION";
7
+ HidUnitSystem[HidUnitSystem["ENGLISH_LINEAR"] = 3] = "ENGLISH_LINEAR";
8
+ HidUnitSystem[HidUnitSystem["ENGLISH_ROTATION"] = 4] = "ENGLISH_ROTATION";
9
+ HidUnitSystem[HidUnitSystem["VENDOR_DEFINED"] = 15] = "VENDOR_DEFINED";
10
+ })(HidUnitSystem || (HidUnitSystem = {}));
11
+ //# sourceMappingURL=hid-unit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hid-unit.js","sourceRoot":"","sources":["../../src/unit/hid-unit.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACxB,iDAAU,CAAA;IACV,2DAAe,CAAA;IACf,+DAAiB,CAAA;IACjB,qEAAoB,CAAA;IACpB,yEAAsB,CAAA;IACtB,sEAAoB,CAAA;AACrB,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB"}
package/package.json CHANGED
@@ -1,6 +1,63 @@
1
1
  {
2
2
  "name": "@ac-kit/format-hid",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.1.1",
4
+ "description": "USB HID 1.11 report descriptors: item codec, semantic parse into reports and fields, bit-level field access and the unit word.",
5
+ "keywords": [
6
+ "hid",
7
+ "hidraw",
8
+ "report-descriptor",
9
+ "usb",
10
+ "usb-hid"
11
+ ],
12
+ "homepage": "https://anthochamp.github.io/node-essentials/api/format-hid/",
13
+ "bugs": {
14
+ "url": "https://git.grenadine.io/anthochamp/node-essentials/issues"
15
+ },
16
+ "license": "BSD-3-Clause",
17
+ "author": "Anthony Champagne <dev@anthonychampagne.fr>",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://git.grenadine.io/anthochamp/node-essentials.git",
21
+ "directory": "packages/format-hid"
22
+ },
23
+ "files": [
24
+ "dist"
25
+ ],
26
+ "type": "module",
27
+ "sideEffects": false,
28
+ "main": "./dist/index.js",
29
+ "exports": {
30
+ ".": "./dist/index.js"
31
+ },
32
+ "publishConfig": {
33
+ "main": "./dist/index.js",
34
+ "exports": {
35
+ ".": "./dist/index.js"
36
+ },
37
+ "access": "public"
38
+ },
39
+ "scripts": {
40
+ "compile": "tsc -p ./tsconfig.build.json -outDir dist",
41
+ "compile:check": "tsc -noEmit -p ./tsconfig.json",
42
+ "clean": "rimraf dist",
43
+ "build": "yarn clean && yarn compile",
44
+ "test": "yarn run -T vitest run",
45
+ "prepack": "yarn build"
46
+ },
47
+ "dependencies": {
48
+ "@ac-kit/core": "^0.4.0",
49
+ "@types/web": "^0.0.359"
50
+ },
51
+ "devDependencies": {
52
+ "@ac-kit/tsconfig": "0.1.0",
53
+ "@ac-kit/typedoc-config": "0.1.0",
54
+ "@ac-kit/vitest-config": "0.1.1",
55
+ "@typescript/native": "typescript@7.0.2",
56
+ "rimraf": "6.1.3",
57
+ "typedoc": "0.28.20",
58
+ "typescript": "@typescript/typescript6@6.0.2"
59
+ },
60
+ "engines": {
61
+ "node": ">=24"
62
+ }
6
63
  }