@4bitlabs/sci0 4.0.1 → 5.0.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 (197) hide show
  1. package/README.md +14 -27
  2. package/dist/index.d.ts +18 -29
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +38 -46
  5. package/dist/index.js.map +1 -1
  6. package/dist/models/draw-codes.d.ts +6 -0
  7. package/dist/models/draw-codes.d.ts.map +1 -0
  8. package/dist/{screen/render-result.js → models/draw-codes.js} +1 -1
  9. package/dist/models/draw-codes.js.map +1 -0
  10. package/dist/models/draw-command.d.ts +1 -56
  11. package/dist/models/draw-command.d.ts.map +1 -1
  12. package/dist/models/draw-command.js +0 -18
  13. package/dist/models/draw-command.js.map +1 -1
  14. package/dist/models/draw-commands.d.ts +47 -0
  15. package/dist/models/draw-commands.d.ts.map +1 -0
  16. package/dist/models/draw-commands.js +3 -0
  17. package/dist/models/draw-commands.js.map +1 -0
  18. package/dist/models/draw-mode.d.ts +21 -0
  19. package/dist/models/draw-mode.d.ts.map +1 -0
  20. package/dist/models/draw-mode.js +26 -0
  21. package/dist/models/draw-mode.js.map +1 -0
  22. package/dist/models/pattern-code.d.ts +6 -0
  23. package/dist/models/pattern-code.d.ts.map +1 -0
  24. package/dist/models/pattern-code.js +3 -0
  25. package/dist/models/pattern-code.js.map +1 -0
  26. package/dist/models/pic.d.ts +10 -0
  27. package/dist/models/pic.d.ts.map +1 -0
  28. package/dist/{screen/screen.js → models/pic.js} +1 -1
  29. package/dist/models/pic.js.map +1 -0
  30. package/dist/models/resource-header.d.ts +4 -0
  31. package/dist/models/resource-header.d.ts.map +1 -1
  32. package/dist/models/resource-id.d.ts +4 -8
  33. package/dist/models/resource-id.d.ts.map +1 -1
  34. package/dist/models/resource-id.js +21 -48
  35. package/dist/models/resource-id.js.map +1 -1
  36. package/dist/models/resource-type.d.ts +1 -22
  37. package/dist/models/resource-type.d.ts.map +1 -1
  38. package/dist/models/resource-type.js +0 -23
  39. package/dist/models/resource-type.js.map +1 -1
  40. package/dist/models/resource-types.d.ts +11 -0
  41. package/dist/models/resource-types.d.ts.map +1 -0
  42. package/dist/models/resource-types.js +14 -0
  43. package/dist/models/resource-types.js.map +1 -0
  44. package/dist/parsers/compression.d.ts +25 -1
  45. package/dist/parsers/compression.d.ts.map +1 -1
  46. package/dist/parsers/compression.js +33 -9
  47. package/dist/parsers/compression.js.map +1 -1
  48. package/dist/parsers/mapping.d.ts +2 -2
  49. package/dist/parsers/mapping.d.ts.map +1 -1
  50. package/dist/parsers/mapping.js +19 -29
  51. package/dist/parsers/mapping.js.map +1 -1
  52. package/dist/parsers/{cel.d.ts → parse-cel.d.ts} +1 -1
  53. package/dist/parsers/parse-cel.d.ts.map +1 -0
  54. package/dist/parsers/{cel.js → parse-cel.js} +1 -1
  55. package/dist/parsers/parse-cel.js.map +1 -0
  56. package/dist/parsers/parse-cursor-options.d.ts +9 -0
  57. package/dist/parsers/parse-cursor-options.d.ts.map +1 -0
  58. package/dist/parsers/parse-cursor-options.js +3 -0
  59. package/dist/parsers/parse-cursor-options.js.map +1 -0
  60. package/dist/parsers/parse-cursor.d.ts +4 -0
  61. package/dist/parsers/parse-cursor.d.ts.map +1 -0
  62. package/dist/parsers/{cursor.js → parse-cursor.js} +4 -4
  63. package/dist/parsers/parse-cursor.js.map +1 -0
  64. package/dist/parsers/parse-font-options.d.ts +5 -0
  65. package/dist/parsers/parse-font-options.d.ts.map +1 -0
  66. package/dist/parsers/parse-font-options.js +3 -0
  67. package/dist/parsers/parse-font-options.js.map +1 -0
  68. package/dist/parsers/parse-font.d.ts +4 -0
  69. package/dist/parsers/parse-font.d.ts.map +1 -0
  70. package/dist/parsers/{font.js → parse-font.js} +4 -4
  71. package/dist/parsers/parse-font.js.map +1 -0
  72. package/dist/parsers/parse-pic.d.ts +20 -0
  73. package/dist/parsers/parse-pic.d.ts.map +1 -0
  74. package/dist/parsers/parse-pic.js +33 -0
  75. package/dist/parsers/parse-pic.js.map +1 -0
  76. package/dist/parsers/parse-view.d.ts +3 -0
  77. package/dist/parsers/parse-view.d.ts.map +1 -0
  78. package/dist/parsers/{view.js → parse-view.js} +6 -6
  79. package/dist/parsers/parse-view.js.map +1 -0
  80. package/dist/parsers/pic/handlers.d.ts +1 -6
  81. package/dist/parsers/pic/handlers.d.ts.map +1 -1
  82. package/dist/parsers/pic/handlers.js +60 -47
  83. package/dist/parsers/pic/handlers.js.map +1 -1
  84. package/dist/parsers/pic/op-codes.d.ts.map +1 -1
  85. package/dist/parsers/pic/pic-state.d.ts +3 -1
  86. package/dist/parsers/pic/pic-state.d.ts.map +1 -1
  87. package/dist/parsers/pic/pic-state.js +2 -2
  88. package/dist/parsers/pic/pic-state.js.map +1 -1
  89. package/dist/parsers/pic/points.d.ts +4 -4
  90. package/dist/parsers/pic/points.d.ts.map +1 -1
  91. package/dist/parsers/pic/points.js +3 -4
  92. package/dist/parsers/pic/points.js.map +1 -1
  93. package/dist/parsers/resource-header.d.ts +2 -2
  94. package/dist/parsers/resource-header.d.ts.map +1 -1
  95. package/dist/parsers/resource-header.js +18 -9
  96. package/dist/parsers/resource-header.js.map +1 -1
  97. package/dist/utils/exhaustive.js +1 -2
  98. package/dist/utils/exhaustive.js.map +1 -1
  99. package/dist/utils/repeat.d.ts.map +1 -1
  100. package/package.json +6 -7
  101. package/dist/models/vec2.d.ts +0 -8
  102. package/dist/models/vec2.d.ts.map +0 -1
  103. package/dist/models/vec2.js +0 -22
  104. package/dist/models/vec2.js.map +0 -1
  105. package/dist/parsers/cel.d.ts.map +0 -1
  106. package/dist/parsers/cel.js.map +0 -1
  107. package/dist/parsers/cursor.d.ts +0 -13
  108. package/dist/parsers/cursor.d.ts.map +0 -1
  109. package/dist/parsers/cursor.js.map +0 -1
  110. package/dist/parsers/font.d.ts +0 -7
  111. package/dist/parsers/font.d.ts.map +0 -1
  112. package/dist/parsers/font.js.map +0 -1
  113. package/dist/parsers/pic/index.d.ts +0 -2
  114. package/dist/parsers/pic/index.d.ts.map +0 -1
  115. package/dist/parsers/pic/index.js +0 -6
  116. package/dist/parsers/pic/index.js.map +0 -1
  117. package/dist/parsers/pic/parser.d.ts +0 -3
  118. package/dist/parsers/pic/parser.d.ts.map +0 -1
  119. package/dist/parsers/pic/parser.js +0 -31
  120. package/dist/parsers/pic/parser.js.map +0 -1
  121. package/dist/parsers/view.d.ts +0 -3
  122. package/dist/parsers/view.d.ts.map +0 -1
  123. package/dist/parsers/view.js.map +0 -1
  124. package/dist/screen/circles.d.ts +0 -3
  125. package/dist/screen/circles.d.ts.map +0 -1
  126. package/dist/screen/circles.js +0 -87
  127. package/dist/screen/circles.js.map +0 -1
  128. package/dist/screen/default-palette.d.ts +0 -2
  129. package/dist/screen/default-palette.d.ts.map +0 -1
  130. package/dist/screen/default-palette.js +0 -11
  131. package/dist/screen/default-palette.js.map +0 -1
  132. package/dist/screen/index.d.ts +0 -3
  133. package/dist/screen/index.d.ts.map +0 -1
  134. package/dist/screen/index.js +0 -9
  135. package/dist/screen/index.js.map +0 -1
  136. package/dist/screen/loop-padding-filter.d.ts +0 -5
  137. package/dist/screen/loop-padding-filter.d.ts.map +0 -1
  138. package/dist/screen/loop-padding-filter.js +0 -34
  139. package/dist/screen/loop-padding-filter.js.map +0 -1
  140. package/dist/screen/noise.d.ts +0 -3
  141. package/dist/screen/noise.d.ts.map +0 -1
  142. package/dist/screen/noise.js +0 -24
  143. package/dist/screen/noise.js.map +0 -1
  144. package/dist/screen/render-pic.d.ts +0 -11
  145. package/dist/screen/render-pic.d.ts.map +0 -1
  146. package/dist/screen/render-pic.js +0 -79
  147. package/dist/screen/render-pic.js.map +0 -1
  148. package/dist/screen/render-result.d.ts +0 -8
  149. package/dist/screen/render-result.d.ts.map +0 -1
  150. package/dist/screen/render-result.js.map +0 -1
  151. package/dist/screen/sci0-screen-impl.d.ts +0 -7
  152. package/dist/screen/sci0-screen-impl.d.ts.map +0 -1
  153. package/dist/screen/sci0-screen-impl.js +0 -163
  154. package/dist/screen/sci0-screen-impl.js.map +0 -1
  155. package/dist/screen/screen-buffer.d.ts +0 -6
  156. package/dist/screen/screen-buffer.d.ts.map +0 -1
  157. package/dist/screen/screen-buffer.js +0 -70
  158. package/dist/screen/screen-buffer.js.map +0 -1
  159. package/dist/screen/screen.d.ts +0 -17
  160. package/dist/screen/screen.d.ts.map +0 -1
  161. package/dist/screen/screen.js.map +0 -1
  162. package/dist/screen/tools/circles.d.ts +0 -3
  163. package/dist/screen/tools/circles.d.ts.map +0 -1
  164. package/dist/screen/tools/circles.js +0 -87
  165. package/dist/screen/tools/circles.js.map +0 -1
  166. package/dist/screen/tools/create-blitter.d.ts +0 -5
  167. package/dist/screen/tools/create-blitter.d.ts.map +0 -1
  168. package/dist/screen/tools/create-blitter.js +0 -22
  169. package/dist/screen/tools/create-blitter.js.map +0 -1
  170. package/dist/screen/tools/create-brush.d.ts +0 -3
  171. package/dist/screen/tools/create-brush.d.ts.map +0 -1
  172. package/dist/screen/tools/create-brush.js +0 -37
  173. package/dist/screen/tools/create-brush.js.map +0 -1
  174. package/dist/screen/tools/create-flood-fill.d.ts +0 -3
  175. package/dist/screen/tools/create-flood-fill.d.ts.map +0 -1
  176. package/dist/screen/tools/create-flood-fill.js +0 -63
  177. package/dist/screen/tools/create-flood-fill.js.map +0 -1
  178. package/dist/screen/tools/create-line.d.ts +0 -3
  179. package/dist/screen/tools/create-line.d.ts.map +0 -1
  180. package/dist/screen/tools/create-line.js +0 -46
  181. package/dist/screen/tools/create-line.js.map +0 -1
  182. package/dist/screen/tools/create-marker.d.ts +0 -3
  183. package/dist/screen/tools/create-marker.d.ts.map +0 -1
  184. package/dist/screen/tools/create-marker.js +0 -11
  185. package/dist/screen/tools/create-marker.js.map +0 -1
  186. package/dist/screen/tools/index.d.ts +0 -6
  187. package/dist/screen/tools/index.d.ts.map +0 -1
  188. package/dist/screen/tools/index.js +0 -14
  189. package/dist/screen/tools/index.js.map +0 -1
  190. package/dist/screen/tools/noise.d.ts +0 -3
  191. package/dist/screen/tools/noise.d.ts.map +0 -1
  192. package/dist/screen/tools/noise.js +0 -24
  193. package/dist/screen/tools/noise.js.map +0 -1
  194. package/dist/utils/tbuffer-helpers.d.ts +0 -5
  195. package/dist/utils/tbuffer-helpers.d.ts.map +0 -1
  196. package/dist/utils/tbuffer-helpers.js +0 -11
  197. package/dist/utils/tbuffer-helpers.js.map +0 -1
@@ -1,67 +1,40 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.isResourceNumber = exports.isResourceType = exports.getResourceTypeStr = exports.getResourceIdStr = exports.getResourceNumber = exports.getResourceType = void 0;
27
- const ResourceTypes = __importStar(require("./resource-type"));
3
+ exports.getTypeStr = exports.getIdStr = exports.getNumber = exports.getType = void 0;
28
4
  const exhaustive_1 = require("../utils/exhaustive");
29
- const getResourceType = (id) => (id >>> 11);
30
- exports.getResourceType = getResourceType;
31
- const getResourceNumber = (id) => id & 2047;
32
- exports.getResourceNumber = getResourceNumber;
33
- const getResourceIdStr = (id) => `(${(0, exports.getResourceTypeStr)(id)}:${(0, exports.getResourceNumber)(id).toString(10)})`;
34
- exports.getResourceIdStr = getResourceIdStr;
35
- const getResourceTypeStr = (id) => {
36
- const type = (0, exports.getResourceType)(id);
5
+ const resource_types_1 = require("./resource-types");
6
+ const getType = (id) => (id >>> 11);
7
+ exports.getType = getType;
8
+ const getNumber = (id) => id & 2047;
9
+ exports.getNumber = getNumber;
10
+ const getIdStr = (id) => `(${(0, exports.getTypeStr)(id)}:${(0, exports.getNumber)(id).toString(10)})`;
11
+ exports.getIdStr = getIdStr;
12
+ const getTypeStr = (id) => {
13
+ const type = (0, exports.getType)(id);
37
14
  switch (type) {
38
- case ResourceTypes.VIEW_TYPE:
15
+ case resource_types_1.VIEW_TYPE:
39
16
  return 'View';
40
- case ResourceTypes.PIC_TYPE:
17
+ case resource_types_1.PIC_TYPE:
41
18
  return 'Pic';
42
- case ResourceTypes.SCRIPT_TYPE:
19
+ case resource_types_1.SCRIPT_TYPE:
43
20
  return 'Script';
44
- case ResourceTypes.TEXT_TYPE:
21
+ case resource_types_1.TEXT_TYPE:
45
22
  return 'Text';
46
- case ResourceTypes.SOUND_TYPE:
23
+ case resource_types_1.SOUND_TYPE:
47
24
  return 'Sound';
48
- case ResourceTypes.MEMORY_TYPE:
25
+ case resource_types_1.MEMORY_TYPE:
49
26
  return 'Memory';
50
- case ResourceTypes.VOCAB_TYPE:
27
+ case resource_types_1.VOCAB_TYPE:
51
28
  return 'Vocab';
52
- case ResourceTypes.FONT_TYPE:
29
+ case resource_types_1.FONT_TYPE:
53
30
  return 'Font';
54
- case ResourceTypes.CURSOR_TYPE:
31
+ case resource_types_1.CURSOR_TYPE:
55
32
  return 'Cursor';
56
- case ResourceTypes.PATCH_TYPE:
33
+ case resource_types_1.PATCH_TYPE:
57
34
  return 'Patch';
58
35
  default:
59
36
  (0, exhaustive_1.exhaustive)('Unsupported resource type', type);
60
37
  }
61
38
  };
62
- exports.getResourceTypeStr = getResourceTypeStr;
63
- const isResourceType = (...types) => (it) => types.includes((0, exports.getResourceType)(it));
64
- exports.isResourceType = isResourceType;
65
- const isResourceNumber = (...numbers) => (it) => numbers.includes((0, exports.getResourceNumber)(it));
66
- exports.isResourceNumber = isResourceNumber;
39
+ exports.getTypeStr = getTypeStr;
67
40
  //# sourceMappingURL=resource-id.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-id.js","sourceRoot":"","sources":["../../src/models/resource-id.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+DAAiD;AACjD,oDAAiD;AAE1C,MAAM,eAAe,GAAG,CAAC,EAAU,EAAgB,EAAE,CAC1D,CAAC,EAAE,KAAK,EAAE,CAAiB,CAAC;AADjB,QAAA,eAAe,mBACE;AAEvB,MAAM,iBAAiB,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,EAAE,GAAG,IAAe,CAAC;AAAjE,QAAA,iBAAiB,qBAAgD;AAEvE,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAE,EAAE,CAC7C,IAAI,IAAA,0BAAkB,EAAC,EAAE,CAAC,IAAI,IAAA,yBAAiB,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;AADzD,QAAA,gBAAgB,oBACyC;AAE/D,MAAM,kBAAkB,GAAG,CAAC,EAAU,EAAE,EAAE;IAC/C,MAAM,IAAI,GAAG,IAAA,uBAAe,EAAC,EAAE,CAAC,CAAC;IACjC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,aAAa,CAAC,SAAS;YAC1B,OAAO,MAAM,CAAC;QAChB,KAAK,aAAa,CAAC,QAAQ;YACzB,OAAO,KAAK,CAAC;QACf,KAAK,aAAa,CAAC,WAAW;YAC5B,OAAO,QAAQ,CAAC;QAClB,KAAK,aAAa,CAAC,SAAS;YAC1B,OAAO,MAAM,CAAC;QAChB,KAAK,aAAa,CAAC,UAAU;YAC3B,OAAO,OAAO,CAAC;QACjB,KAAK,aAAa,CAAC,WAAW;YAC5B,OAAO,QAAQ,CAAC;QAClB,KAAK,aAAa,CAAC,UAAU;YAC3B,OAAO,OAAO,CAAC;QACjB,KAAK,aAAa,CAAC,SAAS;YAC1B,OAAO,MAAM,CAAC;QAChB,KAAK,aAAa,CAAC,WAAW;YAC5B,OAAO,QAAQ,CAAC;QAClB,KAAK,aAAa,CAAC,UAAU;YAC3B,OAAO,OAAO,CAAC;QACjB;YACE,IAAA,uBAAU,EAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC;AA1BW,QAAA,kBAAkB,sBA0B7B;AAIK,MAAM,cAAc,GACzB,CAAC,GAAG,KAAqB,EAAuB,EAAE,CAClD,CAAC,EAAU,EAAW,EAAE,CACtB,KAAK,CAAC,QAAQ,CAAC,IAAA,uBAAe,EAAC,EAAE,CAAC,CAAC,CAAC;AAH3B,QAAA,cAAc,kBAGa;AAEjC,MAAM,gBAAgB,GAC3B,CAAC,GAAG,OAAiB,EAAuB,EAAE,CAC9C,CAAC,EAAU,EAAW,EAAE,CACtB,OAAO,CAAC,QAAQ,CAAC,IAAA,yBAAiB,EAAC,EAAE,CAAC,CAAC,CAAC;AAH/B,QAAA,gBAAgB,oBAGe"}
1
+ {"version":3,"file":"resource-id.js","sourceRoot":"","sources":["../../src/models/resource-id.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAEjD,qDAW0B;AAEnB,MAAM,OAAO,GAAG,CAAC,EAAU,EAAgB,EAAE,CAClD,CAAC,EAAE,KAAK,EAAE,CAAiB,CAAC;AADjB,QAAA,OAAO,WACU;AAEvB,MAAM,SAAS,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,EAAE,GAAG,IAAe,CAAC;AAAzD,QAAA,SAAS,aAAgD;AAE/D,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,EAAE,CACrC,IAAI,IAAA,kBAAU,EAAC,EAAE,CAAC,IAAI,IAAA,iBAAS,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;AADzC,QAAA,QAAQ,YACiC;AAE/C,MAAM,UAAU,GAAG,CAAC,EAAU,EAAU,EAAE;IAC/C,MAAM,IAAI,GAAG,IAAA,eAAO,EAAC,EAAE,CAAC,CAAC;IACzB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,0BAAS;YACZ,OAAO,MAAM,CAAC;QAChB,KAAK,yBAAQ;YACX,OAAO,KAAK,CAAC;QACf,KAAK,4BAAW;YACd,OAAO,QAAQ,CAAC;QAClB,KAAK,0BAAS;YACZ,OAAO,MAAM,CAAC;QAChB,KAAK,2BAAU;YACb,OAAO,OAAO,CAAC;QACjB,KAAK,4BAAW;YACd,OAAO,QAAQ,CAAC;QAClB,KAAK,2BAAU;YACb,OAAO,OAAO,CAAC;QACjB,KAAK,0BAAS;YACZ,OAAO,MAAM,CAAC;QAChB,KAAK,4BAAW;YACd,OAAO,QAAQ,CAAC;QAClB,KAAK,2BAAU;YACb,OAAO,OAAO,CAAC;QACjB;YACE,IAAA,uBAAU,EAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC;AA1BW,QAAA,UAAU,cA0BrB"}
@@ -1,24 +1,3 @@
1
- export declare const VIEW_TYPE: 0;
2
- export declare const PIC_TYPE: 1;
3
- export declare const SCRIPT_TYPE: 2;
4
- export declare const TEXT_TYPE: 3;
5
- export declare const SOUND_TYPE: 4;
6
- export declare const MEMORY_TYPE: 5;
7
- export declare const VOCAB_TYPE: 6;
8
- export declare const FONT_TYPE: 7;
9
- export declare const CURSOR_TYPE: 8;
10
- export declare const PATCH_TYPE: 9;
1
+ import { VIEW_TYPE, PIC_TYPE, SCRIPT_TYPE, TEXT_TYPE, SOUND_TYPE, MEMORY_TYPE, VOCAB_TYPE, FONT_TYPE, CURSOR_TYPE, PATCH_TYPE } from './resource-types';
11
2
  export type ResourceType = typeof VIEW_TYPE | typeof PIC_TYPE | typeof SCRIPT_TYPE | typeof TEXT_TYPE | typeof SOUND_TYPE | typeof MEMORY_TYPE | typeof VOCAB_TYPE | typeof FONT_TYPE | typeof CURSOR_TYPE | typeof PATCH_TYPE;
12
- export declare const ResourceTypes: {
13
- VIEW_TYPE: 0;
14
- PIC_TYPE: 1;
15
- SCRIPT_TYPE: 2;
16
- TEXT_TYPE: 3;
17
- SOUND_TYPE: 4;
18
- MEMORY_TYPE: 5;
19
- VOCAB_TYPE: 6;
20
- FONT_TYPE: 7;
21
- CURSOR_TYPE: 8;
22
- PATCH_TYPE: 9;
23
- };
24
3
  //# sourceMappingURL=resource-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-type.d.ts","sourceRoot":"","sources":["../../src/models/resource-type.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,GAAa,CAAC;AACpC,eAAO,MAAM,QAAQ,GAAa,CAAC;AACnC,eAAO,MAAM,WAAW,GAAa,CAAC;AACtC,eAAO,MAAM,SAAS,GAAa,CAAC;AACpC,eAAO,MAAM,UAAU,GAAa,CAAC;AACrC,eAAO,MAAM,WAAW,GAAa,CAAC;AACtC,eAAO,MAAM,UAAU,GAAa,CAAC;AACrC,eAAO,MAAM,SAAS,GAAa,CAAC;AACpC,eAAO,MAAM,WAAW,GAAa,CAAC;AACtC,eAAO,MAAM,UAAU,GAAa,CAAC;AAErC,MAAM,MAAM,YAAY,GACpB,OAAO,SAAS,GAChB,OAAO,QAAQ,GACf,OAAO,WAAW,GAClB,OAAO,SAAS,GAChB,OAAO,UAAU,GACjB,OAAO,WAAW,GAClB,OAAO,UAAU,GACjB,OAAO,SAAS,GAChB,OAAO,WAAW,GAClB,OAAO,UAAU,CAAC;AAEtB,eAAO,MAAM,aAAa;;;;;;;;;;;CAWzB,CAAC"}
1
+ {"version":3,"file":"resource-type.d.ts","sourceRoot":"","sources":["../../src/models/resource-type.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACX,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,YAAY,GACpB,OAAO,SAAS,GAChB,OAAO,QAAQ,GACf,OAAO,WAAW,GAClB,OAAO,SAAS,GAChB,OAAO,UAAU,GACjB,OAAO,WAAW,GAClB,OAAO,UAAU,GACjB,OAAO,SAAS,GAChB,OAAO,WAAW,GAClB,OAAO,UAAU,CAAC"}
@@ -1,26 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ResourceTypes = exports.PATCH_TYPE = exports.CURSOR_TYPE = exports.FONT_TYPE = exports.VOCAB_TYPE = exports.MEMORY_TYPE = exports.SOUND_TYPE = exports.TEXT_TYPE = exports.SCRIPT_TYPE = exports.PIC_TYPE = exports.VIEW_TYPE = void 0;
4
- exports.VIEW_TYPE = 0;
5
- exports.PIC_TYPE = 1;
6
- exports.SCRIPT_TYPE = 2;
7
- exports.TEXT_TYPE = 3;
8
- exports.SOUND_TYPE = 4;
9
- exports.MEMORY_TYPE = 5;
10
- exports.VOCAB_TYPE = 6;
11
- exports.FONT_TYPE = 7;
12
- exports.CURSOR_TYPE = 8;
13
- exports.PATCH_TYPE = 9;
14
- exports.ResourceTypes = {
15
- VIEW_TYPE: exports.VIEW_TYPE,
16
- PIC_TYPE: exports.PIC_TYPE,
17
- SCRIPT_TYPE: exports.SCRIPT_TYPE,
18
- TEXT_TYPE: exports.TEXT_TYPE,
19
- SOUND_TYPE: exports.SOUND_TYPE,
20
- MEMORY_TYPE: exports.MEMORY_TYPE,
21
- VOCAB_TYPE: exports.VOCAB_TYPE,
22
- FONT_TYPE: exports.FONT_TYPE,
23
- CURSOR_TYPE: exports.CURSOR_TYPE,
24
- PATCH_TYPE: exports.PATCH_TYPE,
25
- };
26
3
  //# sourceMappingURL=resource-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-type.js","sourceRoot":"","sources":["../../src/models/resource-type.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,CAAU,CAAC;AACvB,QAAA,QAAQ,GAAG,CAAU,CAAC;AACtB,QAAA,WAAW,GAAG,CAAU,CAAC;AACzB,QAAA,SAAS,GAAG,CAAU,CAAC;AACvB,QAAA,UAAU,GAAG,CAAU,CAAC;AACxB,QAAA,WAAW,GAAG,CAAU,CAAC;AACzB,QAAA,UAAU,GAAG,CAAU,CAAC;AACxB,QAAA,SAAS,GAAG,CAAU,CAAC;AACvB,QAAA,WAAW,GAAG,CAAU,CAAC;AACzB,QAAA,UAAU,GAAG,CAAU,CAAC;AAcxB,QAAA,aAAa,GAAG;IAC3B,SAAS,EAAT,iBAAS;IACT,QAAQ,EAAR,gBAAQ;IACR,WAAW,EAAX,mBAAW;IACX,SAAS,EAAT,iBAAS;IACT,UAAU,EAAV,kBAAU;IACV,WAAW,EAAX,mBAAW;IACX,UAAU,EAAV,kBAAU;IACV,SAAS,EAAT,iBAAS;IACT,WAAW,EAAX,mBAAW;IACX,UAAU,EAAV,kBAAU;CACX,CAAC"}
1
+ {"version":3,"file":"resource-type.js","sourceRoot":"","sources":["../../src/models/resource-type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ export declare const VIEW_TYPE: 0;
2
+ export declare const PIC_TYPE: 1;
3
+ export declare const SCRIPT_TYPE: 2;
4
+ export declare const TEXT_TYPE: 3;
5
+ export declare const SOUND_TYPE: 4;
6
+ export declare const MEMORY_TYPE: 5;
7
+ export declare const VOCAB_TYPE: 6;
8
+ export declare const FONT_TYPE: 7;
9
+ export declare const CURSOR_TYPE: 8;
10
+ export declare const PATCH_TYPE: 9;
11
+ //# sourceMappingURL=resource-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-types.d.ts","sourceRoot":"","sources":["../../src/models/resource-types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,GAAa,CAAC;AACpC,eAAO,MAAM,QAAQ,GAAa,CAAC;AACnC,eAAO,MAAM,WAAW,GAAa,CAAC;AACtC,eAAO,MAAM,SAAS,GAAa,CAAC;AACpC,eAAO,MAAM,UAAU,GAAa,CAAC;AACrC,eAAO,MAAM,WAAW,GAAa,CAAC;AACtC,eAAO,MAAM,UAAU,GAAa,CAAC;AACrC,eAAO,MAAM,SAAS,GAAa,CAAC;AACpC,eAAO,MAAM,WAAW,GAAa,CAAC;AACtC,eAAO,MAAM,UAAU,GAAa,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PATCH_TYPE = exports.CURSOR_TYPE = exports.FONT_TYPE = exports.VOCAB_TYPE = exports.MEMORY_TYPE = exports.SOUND_TYPE = exports.TEXT_TYPE = exports.SCRIPT_TYPE = exports.PIC_TYPE = exports.VIEW_TYPE = void 0;
4
+ exports.VIEW_TYPE = 0;
5
+ exports.PIC_TYPE = 1;
6
+ exports.SCRIPT_TYPE = 2;
7
+ exports.TEXT_TYPE = 3;
8
+ exports.SOUND_TYPE = 4;
9
+ exports.MEMORY_TYPE = 5;
10
+ exports.VOCAB_TYPE = 6;
11
+ exports.FONT_TYPE = 7;
12
+ exports.CURSOR_TYPE = 8;
13
+ exports.PATCH_TYPE = 9;
14
+ //# sourceMappingURL=resource-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-types.js","sourceRoot":"","sources":["../../src/models/resource-types.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,CAAU,CAAC;AACvB,QAAA,QAAQ,GAAG,CAAU,CAAC;AACtB,QAAA,WAAW,GAAG,CAAU,CAAC;AACzB,QAAA,SAAS,GAAG,CAAU,CAAC;AACvB,QAAA,UAAU,GAAG,CAAU,CAAC;AACxB,QAAA,WAAW,GAAG,CAAU,CAAC;AACzB,QAAA,UAAU,GAAG,CAAU,CAAC;AACxB,QAAA,SAAS,GAAG,CAAU,CAAC;AACvB,QAAA,WAAW,GAAG,CAAU,CAAC;AACzB,QAAA,UAAU,GAAG,CAAU,CAAC"}
@@ -1,2 +1,26 @@
1
- export declare const decompress: (mode: 'sci0' | 'sci01', method: number, bytes: Uint8Array) => Uint8Array;
1
+ /**
2
+ * Decompress resource payload bytes with a specific algorithm.
3
+ *
4
+ * #### SCI0 algorithm
5
+ * | | |
6
+ * | --- | --- |
7
+ * | 0 | _no compression_ |
8
+ * | 1 | LZW (8-bit/lsb) |
9
+ * | 2 | Huffman |
10
+ *
11
+ * #### SCI01 algorithm
12
+ * | | |
13
+ * | --- | --- |
14
+ * | 0 | _no compression_ |
15
+ * | 1 | Huffman |
16
+ * | 2 | COMP3 |
17
+ *
18
+ * @see {@link ResourceHeader.compression}
19
+ *
20
+ * @param engine Select between engine type: `sci0` or `sci01`.
21
+ * @param algorithm The decompression method.
22
+ * @param bytes The compressed bytes to decompress.
23
+ * @returns Decompressed payload data.
24
+ */
25
+ export declare const decompress: (engine: "sci0" | "sci01", algorithm: number, bytes: Uint8Array) => Uint8Array;
2
26
  //# sourceMappingURL=compression.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/parsers/compression.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,UAAU,SACf,MAAM,GAAG,OAAO,UACd,MAAM,SACP,UAAU,KAChB,UAmBF,CAAC"}
1
+ {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/parsers/compression.ts"],"names":[],"mappings":"AA2BA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,UAAU,WACb,MAAM,GAAG,OAAO,aACb,MAAM,SACV,UAAU,KAChB,UAmBF,CAAC"}
@@ -17,20 +17,44 @@ const SCI01 = {
17
17
  1: (bytes) => (0, huffman_1.unpack)(bytes),
18
18
  2: (bytes) => (0, comp3_1.unpack)(bytes),
19
19
  };
20
- const decompress = (mode, method, bytes) => {
21
- switch (mode) {
20
+ /**
21
+ * Decompress resource payload bytes with a specific algorithm.
22
+ *
23
+ * #### SCI0 algorithm
24
+ * | | |
25
+ * | --- | --- |
26
+ * | 0 | _no compression_ |
27
+ * | 1 | LZW (8-bit/lsb) |
28
+ * | 2 | Huffman |
29
+ *
30
+ * #### SCI01 algorithm
31
+ * | | |
32
+ * | --- | --- |
33
+ * | 0 | _no compression_ |
34
+ * | 1 | Huffman |
35
+ * | 2 | COMP3 |
36
+ *
37
+ * @see {@link ResourceHeader.compression}
38
+ *
39
+ * @param engine Select between engine type: `sci0` or `sci01`.
40
+ * @param algorithm The decompression method.
41
+ * @param bytes The compressed bytes to decompress.
42
+ * @returns Decompressed payload data.
43
+ */
44
+ const decompress = (engine, algorithm, bytes) => {
45
+ switch (engine) {
22
46
  case 'sci0': {
23
- if (!sci0Supported(method))
24
- throw new Error(`unsupported compression algorithm: ${method.toString(10)}`);
25
- return SCI0[method](bytes);
47
+ if (!sci0Supported(algorithm))
48
+ throw new Error(`unsupported compression algorithm: ${algorithm.toString(10)}`);
49
+ return SCI0[algorithm](bytes);
26
50
  }
27
51
  case 'sci01': {
28
- if (!sci01Supported(method))
29
- throw new Error(`unsupported compression algorithm: ${method.toString(10)}`);
30
- return SCI01[method](bytes);
52
+ if (!sci01Supported(algorithm))
53
+ throw new Error(`unsupported compression algorithm: ${algorithm.toString(10)}`);
54
+ return SCI01[algorithm](bytes);
31
55
  }
32
56
  default:
33
- (0, exhaustive_1.exhaustive)('unsupported compression mode', mode);
57
+ (0, exhaustive_1.exhaustive)('unsupported engine/compression', engine);
34
58
  }
35
59
  };
36
60
  exports.decompress = decompress;
@@ -1 +1 @@
1
- {"version":3,"file":"compression.js","sourceRoot":"","sources":["../../src/parsers/compression.ts"],"names":[],"mappings":";;;AAAA,sDAAmE;AACnE,8CAA2D;AAC3D,kDAA+D;AAE/D,oDAAiD;AAMjD,MAAM,aAAa,GAAG,CAAC,EAAW,EAAwB,EAAE,CAC1D,OAAO,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAE3E,MAAM,cAAc,GAAG,CAAC,EAAW,EAAyB,EAAE,CAC5D,OAAO,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAE3E,MAAM,IAAI,GAAyC;IACjD,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IACnB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,YAAS,EAAC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACjE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,gBAAa,EAAC,KAAK,CAAC;CACnC,CAAC;AAEF,MAAM,KAAK,GAA0C;IACnD,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IACnB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,gBAAa,EAAC,KAAK,CAAC;IAClC,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,cAAW,EAAC,KAAK,CAAC;CACjC,CAAC;AAEK,MAAM,UAAU,GAAG,CACxB,IAAsB,EACtB,MAAc,EACd,KAAiB,EACL,EAAE;IACd,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,sCAAsC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAC5D,CAAC;YACJ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;gBACzB,MAAM,IAAI,KAAK,CACb,sCAAsC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAC5D,CAAC;YACJ,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD;YACE,IAAA,uBAAU,EAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;AACH,CAAC,CAAC;AAvBW,QAAA,UAAU,cAuBrB"}
1
+ {"version":3,"file":"compression.js","sourceRoot":"","sources":["../../src/parsers/compression.ts"],"names":[],"mappings":";;;AAAA,sDAAmE;AACnE,8CAA2D;AAC3D,kDAA+D;AAC/D,oDAAiD;AAMjD,MAAM,aAAa,GAAG,CAAC,EAAW,EAAwB,EAAE,CAC1D,OAAO,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAE3E,MAAM,cAAc,GAAG,CAAC,EAAW,EAAyB,EAAE,CAC5D,OAAO,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAE3E,MAAM,IAAI,GAAyC;IACjD,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IACnB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,YAAS,EAAC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACjE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,gBAAa,EAAC,KAAK,CAAC;CACnC,CAAC;AAEF,MAAM,KAAK,GAA0C;IACnD,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IACnB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,gBAAa,EAAC,KAAK,CAAC;IAClC,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,cAAW,EAAC,KAAK,CAAC;CACjC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACI,MAAM,UAAU,GAAG,CACxB,MAAwB,EACxB,SAAiB,EACjB,KAAiB,EACL,EAAE;IACd,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;gBAC3B,MAAM,IAAI,KAAK,CACb,sCAAsC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAC/D,CAAC;YACJ,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,sCAAsC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAC/D,CAAC;YACJ,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD;YACE,IAAA,uBAAU,EAAC,gCAAgC,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;AACH,CAAC,CAAC;AAvBW,QAAA,UAAU,cAuBrB"}
@@ -1,4 +1,4 @@
1
1
  import { ResourceMap } from '../models/resource-map';
2
- export declare const consume: (bytes: Uint8Array, callback: (e: ResourceMap) => void) => true | Uint8Array;
3
- export declare const parseAll: (bytes: Uint8Array) => [ResourceMap[], boolean];
2
+ export declare function consume(bytes: Uint8Array): IterableIterator<ResourceMap>;
3
+ export declare const parseAllMappings: (bytes: Uint8Array) => ResourceMap[];
4
4
  //# sourceMappingURL=mapping.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/parsers/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAuBrD,eAAO,MAAM,OAAO,UACX,UAAU,YACP,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,KACjC,IAAI,GAAG,UAUT,CAAC;AAEF,eAAO,MAAM,QAAQ,UAAW,UAAU,KAAG,CAAC,WAAW,EAAE,EAAE,OAAO,CAInE,CAAC"}
1
+ {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/parsers/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAKrD,wBAAiB,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAgBzE;AAED,eAAO,MAAM,gBAAgB,UAAW,UAAU,KAAG,WAAW,EAE/D,CAAC"}
@@ -1,36 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseAll = exports.consume = void 0;
4
- const EMPTY = Uint8Array.of(0);
3
+ exports.parseAllMappings = void 0;
4
+ exports.consume = consume;
5
5
  const HEAD_END_TOKEN = ~0 >>> 16;
6
6
  const TAIL_END_TOKEN = ~0 >>> 0;
7
- const read = (view, offset) => {
8
- const head = view.getUint16(offset, true);
9
- const tail = view.getUint32(offset + 2, true);
10
- return [head, tail];
11
- };
12
- const parse = ([head, tail]) => ({
13
- id: head,
14
- file: tail >>> 26,
15
- offset: tail & 67108863,
16
- });
17
- const isEnd = ([head, tail]) => HEAD_END_TOKEN === head && TAIL_END_TOKEN === tail;
18
- const consume = (bytes, callback) => {
7
+ function* consume(bytes) {
19
8
  const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
20
- let i;
21
- for (i = 0; i + 5 < bytes.length; i += 6) {
22
- const token = read(view, i);
23
- if (isEnd(token))
24
- return true;
25
- callback(parse(token));
9
+ for (let offset = 0; offset + 5 < bytes.length; offset += 6) {
10
+ const head = view.getUint16(offset, true);
11
+ const tail = view.getUint32(offset + 2, true);
12
+ const isEnd = HEAD_END_TOKEN === head && TAIL_END_TOKEN === tail;
13
+ if (isEnd)
14
+ return;
15
+ yield {
16
+ id: head,
17
+ file: tail >>> 26,
18
+ offset: tail & 67108863,
19
+ };
26
20
  }
27
- return i % 6 !== 0 ? bytes.slice(i) : EMPTY;
28
- };
29
- exports.consume = consume;
30
- const parseAll = (bytes) => {
31
- const result = [];
32
- const ended = (0, exports.consume)(bytes, (rm) => result.push(rm));
33
- return [result, ended === true];
34
- };
35
- exports.parseAll = parseAll;
21
+ }
22
+ const parseAllMappings = (bytes) => [
23
+ ...consume(bytes),
24
+ ];
25
+ exports.parseAllMappings = parseAllMappings;
36
26
  //# sourceMappingURL=mapping.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/parsers/mapping.ts"],"names":[],"mappings":";;;AAIA,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/B,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AACjC,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AAEhC,MAAM,IAAI,GAAG,CAAC,IAAc,EAAE,MAAc,EAAS,EAAE;IACrD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAQ,EAAe,EAAE,CAAC,CAAC;IACnD,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,IAAI,KAAK,EAAE;IACjB,MAAM,EAAE,IAAI,GAAG,QAAkC;CAClD,CAAC,CAAC;AAEH,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAQ,EAAE,EAAE,CACpC,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,IAAI,CAAC;AAE9C,MAAM,OAAO,GAAG,CACrB,KAAiB,EACjB,QAAkC,EACf,EAAE;IACrB,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAE5E,IAAI,CAAS,CAAC;IACd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5B,IAAI,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9B,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9C,CAAC,CAAC;AAbW,QAAA,OAAO,WAalB;AAEK,MAAM,QAAQ,GAAG,CAAC,KAAiB,EAA4B,EAAE;IACtE,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,IAAA,eAAO,EAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,MAAM,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC;AAJW,QAAA,QAAQ,YAInB"}
1
+ {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/parsers/mapping.ts"],"names":[],"mappings":";;;AAKA,0BAgBC;AAnBD,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AACjC,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AAEhC,QAAe,CAAC,CAAC,OAAO,CAAC,KAAiB;IACxC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAE5E,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAE9C,MAAM,KAAK,GAAG,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,IAAI,CAAC;QACjE,IAAI,KAAK;YAAE,OAAO;QAElB,MAAM;YACJ,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,IAAI,KAAK,EAAE;YACjB,MAAM,EAAE,IAAI,GAAG,QAAkC;SAClD,CAAC;IACJ,CAAC;AACH,CAAC;AAEM,MAAM,gBAAgB,GAAG,CAAC,KAAiB,EAAiB,EAAE,CAAC;IACpE,GAAG,OAAO,CAAC,KAAK,CAAC;CAClB,CAAC;AAFW,QAAA,gBAAgB,oBAE3B"}
@@ -1,3 +1,3 @@
1
1
  import { Cel } from '../models/cel';
2
2
  export declare const parseCel: (frameView: DataView) => Cel;
3
- //# sourceMappingURL=cel.d.ts.map
3
+ //# sourceMappingURL=parse-cel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-cel.d.ts","sourceRoot":"","sources":["../../src/parsers/parse-cel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,eAAO,MAAM,QAAQ,cAAe,QAAQ,KAAG,GA4B9C,CAAC"}
@@ -29,4 +29,4 @@ const parseCel = (frameView) => {
29
29
  };
30
30
  };
31
31
  exports.parseCel = parseCel;
32
- //# sourceMappingURL=cel.js.map
32
+ //# sourceMappingURL=parse-cel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-cel.js","sourceRoot":"","sources":["../../src/parsers/parse-cel.ts"],"names":[],"mappings":";;;AAAA,2CAAyD;AAGlD,MAAM,QAAQ,GAAG,CAAC,SAAmB,EAAO,EAAE;IACnD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG;QACtB,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;QAC5B,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;KAC7B,CAAC;IACF,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAA,8BAAsB,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAElD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAI,CAAC;QAC5B,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACzC,GAAG,IAAI,CAAC,CAAC;QACT,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,GAAG;QACN,QAAQ;QACR,EAAE;QACF,EAAE;KACH,CAAC;AACJ,CAAC,CAAC;AA5BW,QAAA,QAAQ,YA4BnB"}
@@ -0,0 +1,9 @@
1
+ export interface ParseCursorOptions {
2
+ mapping?: {
3
+ black: number;
4
+ gray: number;
5
+ white: number;
6
+ keyColor: number;
7
+ };
8
+ }
9
+ //# sourceMappingURL=parse-cursor-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-cursor-options.d.ts","sourceRoot":"","sources":["../../src/parsers/parse-cursor-options.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=parse-cursor-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-cursor-options.js","sourceRoot":"","sources":["../../src/parsers/parse-cursor-options.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { type Cursor } from '../models/cursor';
2
+ import { ParseCursorOptions } from './parse-cursor-options';
3
+ export declare const parseCursor: (source: Uint8Array, options?: ParseCursorOptions) => Cursor;
4
+ //# sourceMappingURL=parse-cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-cursor.d.ts","sourceRoot":"","sources":["../../src/parsers/parse-cursor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAS5D,eAAO,MAAM,WAAW,WACd,UAAU,YACT,kBAAkB,KAC1B,MAsCF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseFrom = void 0;
3
+ exports.parseCursor = void 0;
4
4
  const image_1 = require("@4bitlabs/image");
5
5
  const DEFAULT_MAPPING = {
6
6
  black: 0x00,
@@ -8,7 +8,7 @@ const DEFAULT_MAPPING = {
8
8
  gray: 0x07,
9
9
  keyColor: 0x0d,
10
10
  };
11
- const parseFrom = (source, options = {}) => {
11
+ const parseCursor = (source, options = {}) => {
12
12
  const { mapping = DEFAULT_MAPPING } = options;
13
13
  const { keyColor } = mapping;
14
14
  const colorLut = [
@@ -37,5 +37,5 @@ const parseFrom = (source, options = {}) => {
37
37
  hotspot,
38
38
  };
39
39
  };
40
- exports.parseFrom = parseFrom;
41
- //# sourceMappingURL=cursor.js.map
40
+ exports.parseCursor = parseCursor;
41
+ //# sourceMappingURL=parse-cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-cursor.js","sourceRoot":"","sources":["../../src/parsers/parse-cursor.ts"],"names":[],"mappings":";;;AAAA,2CAAyD;AAIzD,MAAM,eAAe,GAAG;IACtB,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,IAAI;CACf,CAAC;AAEK,MAAM,WAAW,GAAG,CACzB,MAAkB,EAClB,UAA8B,EAAE,EACxB,EAAE;IACV,MAAM,EAAE,OAAO,GAAG,eAAe,EAAE,GAAG,OAAO,CAAC;IAC9C,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,MAAM,QAAQ,GAAG;QACf,OAAO,CAAC,KAAK;QACb,OAAO,CAAC,KAAK;QACb,OAAO,CAAC,QAAQ;QAChB,OAAO,CAAC,IAAI;KACb,CAAC;IAEF,MAAM,IAAI,GAAG,IAAI,QAAQ,CACvB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,CAClB,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAU,CAAC;IAE5E,MAAM,GAAG,GAAG,IAAA,8BAAsB,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEtB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;YAE3C,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3B,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,GAAG;QACN,OAAO;KACR,CAAC;AACJ,CAAC,CAAC;AAzCW,QAAA,WAAW,eAyCtB"}
@@ -0,0 +1,5 @@
1
+ export interface ParseFontOptions {
2
+ color?: number;
3
+ keyColor?: number;
4
+ }
5
+ //# sourceMappingURL=parse-font-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-font-options.d.ts","sourceRoot":"","sources":["../../src/parsers/parse-font-options.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=parse-font-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-font-options.js","sourceRoot":"","sources":["../../src/parsers/parse-font-options.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { FontFace } from '../models/font-face';
2
+ import { ParseFontOptions } from './parse-font-options';
3
+ export declare const parseFont: (source: Uint8Array, options?: ParseFontOptions) => FontFace;
4
+ //# sourceMappingURL=parse-font.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-font.d.ts","sourceRoot":"","sources":["../../src/parsers/parse-font.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,eAAO,MAAM,SAAS,WACZ,UAAU,YACT,gBAAgB,KACxB,QAqCF,CAAC"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseFrom = void 0;
3
+ exports.parseFont = void 0;
4
4
  const image_1 = require("@4bitlabs/image");
5
5
  const repeat_1 = require("../utils/repeat");
6
- const parseFrom = (source, options = {}) => {
6
+ const parseFont = (source, options = {}) => {
7
7
  const { color = 0x0f, keyColor = 0x00 } = options;
8
8
  const headerView = new DataView(source.buffer, source.byteOffset, 6);
9
9
  const count = headerView.getUint16(2, true);
@@ -29,5 +29,5 @@ const parseFrom = (source, options = {}) => {
29
29
  lineHeight,
30
30
  };
31
31
  };
32
- exports.parseFrom = parseFrom;
33
- //# sourceMappingURL=font.js.map
32
+ exports.parseFont = parseFont;
33
+ //# sourceMappingURL=parse-font.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-font.js","sourceRoot":"","sources":["../../src/parsers/parse-font.ts"],"names":[],"mappings":";;;AAAA,2CAAgF;AAEhF,4CAAyC;AAGlC,MAAM,SAAS,GAAG,CACvB,MAAkB,EAClB,UAA4B,EAAE,EACpB,EAAE;IACZ,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAElD,MAAM,UAAU,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAEjD,MAAM,YAAY,GAAG,IAAI,QAAQ,CAC/B,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,UAAU,GAAG,CAAC,EACrB,KAAK,GAAG,CAAC,CACV,CAAC;IACF,MAAM,QAAQ,GAAG,IAAA,eAAM,EAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAE3E,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAmB,CAAC,MAAM,EAAE,EAAE;QAC3D,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAE7D,MAAM,UAAU,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAErC,MAAM,KAAK,GAAG,IAAA,8BAAsB,EAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;YAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpD,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvD,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,UAAU;QACV,UAAU;KACX,CAAC;AACJ,CAAC,CAAC;AAxCW,QAAA,SAAS,aAwCpB"}
@@ -0,0 +1,20 @@
1
+ import type { DrawCommand } from '../models/draw-command';
2
+ import type { Pic } from '../models/pic';
3
+ /**
4
+ * Parse a {@link Pic} resource from bytes.
5
+ *
6
+ * @param source
7
+ * @returns Parsed draw commands as an array.
8
+ */
9
+ export declare function parsePic(source: Uint8Array): DrawCommand[];
10
+ /**
11
+ * Parse a {@link Pic} resource from bytes.
12
+ *
13
+ * @param source
14
+ * @param options
15
+ * @param options.defer Return an {@link !Iterable} of {@link DrawCommand} that will parse source on demand.
16
+ */
17
+ export declare function parsePic(source: Uint8Array, options: {
18
+ defer: true;
19
+ }): Pic;
20
+ //# sourceMappingURL=parse-pic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-pic.d.ts","sourceRoot":"","sources":["../../src/parsers/parse-pic.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAoBzC;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,EAAE,CAAC;AAC5D;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG,GAAG,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parsePic = parsePic;
4
+ const readers_1 = require("@4bitlabs/readers");
5
+ const handlers_1 = require("./pic/handlers");
6
+ const op_codes_1 = require("./pic/op-codes");
7
+ const pic_state_1 = require("./pic/pic-state");
8
+ function* picIterable(source) {
9
+ const r = (0, readers_1.createBitReader)(source, { mode: 'msb' });
10
+ const state = (0, pic_state_1.createPicState)();
11
+ while (true) {
12
+ const op = r.read32(8);
13
+ if (!(0, op_codes_1.isOpCode)(op))
14
+ throw new Error(`Unrecognized opcode: 0x${op.toString(16)}`);
15
+ if (op === op_codes_1.OpCode.Done)
16
+ break;
17
+ const handler = handlers_1.CodeHandlers[op];
18
+ if (!handler)
19
+ throw new Error(`Unhandled opcode: 0x${op.toString(16)}`);
20
+ yield* handler(r, state);
21
+ }
22
+ }
23
+ function parsePic(source, options = {}) {
24
+ const { defer } = options;
25
+ return defer
26
+ ? {
27
+ [Symbol.iterator]() {
28
+ return picIterable(source);
29
+ },
30
+ }
31
+ : [...picIterable(source)];
32
+ }
33
+ //# sourceMappingURL=parse-pic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-pic.js","sourceRoot":"","sources":["../../src/parsers/parse-pic.ts"],"names":[],"mappings":";;AAwCA,4BAYC;AApDD,+CAAoD;AACpD,6CAA8C;AAC9C,6CAAkD;AAClD,+CAAiD;AAIjD,QAAQ,CAAC,CAAC,WAAW,CAAC,MAAkB;IACtC,MAAM,CAAC,GAAG,IAAA,yBAAe,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,IAAA,0BAAc,GAAE,CAAC;IAC/B,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,CAAC,IAAA,mBAAQ,EAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAE/D,IAAI,EAAE,KAAK,iBAAM,CAAC,IAAI;YAAE,MAAM;QAE9B,MAAM,OAAO,GAAG,uBAAY,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAExE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAiBD,SAAgB,QAAQ,CACtB,MAAkB,EAClB,UAA+B,EAAE;IAEjC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAC1B,OAAO,KAAK;QACV,CAAC,CAAC;YACE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACf,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;SACF;QACH,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type View } from '../models/view';
2
+ export declare const parseView: (source: Uint8Array) => View;
3
+ //# sourceMappingURL=parse-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-view.d.ts","sourceRoot":"","sources":["../../src/parsers/parse-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAa,MAAM,gBAAgB,CAAC;AAItD,eAAO,MAAM,SAAS,WAAY,UAAU,KAAG,IAyD9C,CAAC"}