@lgriffin/esi.ts 9.6.0 → 10.0.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.
Files changed (259) hide show
  1. package/CHANGELOG.md +787 -388
  2. package/LICENSE +26 -26
  3. package/README.md +974 -1030
  4. package/dist/EsiClient.d.ts +4 -0
  5. package/dist/EsiClient.d.ts.map +1 -1
  6. package/dist/EsiClientBuilder.d.ts.map +1 -1
  7. package/dist/auth/EsiTokenManager.d.ts +200 -0
  8. package/dist/auth/EsiTokenManager.d.ts.map +1 -0
  9. package/dist/auth/EveSsoClient.d.ts +88 -0
  10. package/dist/auth/EveSsoClient.d.ts.map +1 -0
  11. package/dist/auth/errors.d.ts +42 -0
  12. package/dist/auth/errors.d.ts.map +1 -0
  13. package/dist/auth/index.d.ts +14 -0
  14. package/dist/auth/index.d.ts.map +1 -0
  15. package/dist/auth/jwt.d.ts +43 -0
  16. package/dist/auth/jwt.d.ts.map +1 -0
  17. package/dist/auth/pkce.d.ts +21 -0
  18. package/dist/auth/pkce.d.ts.map +1 -0
  19. package/dist/auth/storage/FileTokenStorage.d.ts +44 -0
  20. package/dist/auth/storage/FileTokenStorage.d.ts.map +1 -0
  21. package/dist/auth/storage/MemoryTokenStorage.d.ts +18 -0
  22. package/dist/auth/storage/MemoryTokenStorage.d.ts.map +1 -0
  23. package/dist/auth/types.d.ts +42 -0
  24. package/dist/auth/types.d.ts.map +1 -0
  25. package/dist/chunk-3ZI5A37L.mjs +1065 -0
  26. package/dist/chunk-3ZI5A37L.mjs.map +1 -0
  27. package/dist/chunk-7A72QFDF.mjs +416 -0
  28. package/dist/chunk-7A72QFDF.mjs.map +1 -0
  29. package/dist/chunk-BBSHKVPI.js +71 -0
  30. package/dist/chunk-BBSHKVPI.js.map +1 -0
  31. package/dist/chunk-HPSACXX3.js +416 -0
  32. package/dist/chunk-HPSACXX3.js.map +1 -0
  33. package/dist/chunk-JIW4BXLP.mjs +17 -0
  34. package/dist/chunk-JIW4BXLP.mjs.map +1 -0
  35. package/dist/chunk-MSJHIJXA.js +1065 -0
  36. package/dist/chunk-MSJHIJXA.js.map +1 -0
  37. package/dist/chunk-PZ5AY32C.js +10 -0
  38. package/dist/chunk-PZ5AY32C.js.map +1 -0
  39. package/dist/chunk-R7D7M2LQ.mjs +71 -0
  40. package/dist/chunk-R7D7M2LQ.mjs.map +1 -0
  41. package/dist/chunk-SAQBXXTM.js +2614 -0
  42. package/dist/chunk-SAQBXXTM.js.map +1 -0
  43. package/dist/chunk-VZS32UQ3.mjs +2614 -0
  44. package/dist/chunk-VZS32UQ3.mjs.map +1 -0
  45. package/dist/clients/AllianceClient.d.ts +2 -0
  46. package/dist/clients/AllianceClient.d.ts.map +1 -1
  47. package/dist/clients/AssetsClient.d.ts +2 -0
  48. package/dist/clients/AssetsClient.d.ts.map +1 -1
  49. package/dist/clients/BaseEsiClient.d.ts +1 -0
  50. package/dist/clients/BaseEsiClient.d.ts.map +1 -1
  51. package/dist/clients/CalendarClient.d.ts +2 -0
  52. package/dist/clients/CalendarClient.d.ts.map +1 -1
  53. package/dist/clients/CharacterClient.d.ts +8 -0
  54. package/dist/clients/CharacterClient.d.ts.map +1 -1
  55. package/dist/clients/ClonesClient.d.ts +1 -0
  56. package/dist/clients/ClonesClient.d.ts.map +1 -1
  57. package/dist/clients/ContactsClient.d.ts +6 -0
  58. package/dist/clients/ContactsClient.d.ts.map +1 -1
  59. package/dist/clients/ContractsClient.d.ts +14 -8
  60. package/dist/clients/ContractsClient.d.ts.map +1 -1
  61. package/dist/clients/CorporationProjectsClient.d.ts +22 -12
  62. package/dist/clients/CorporationProjectsClient.d.ts.map +1 -1
  63. package/dist/clients/CorporationsClient.d.ts +17 -0
  64. package/dist/clients/CorporationsClient.d.ts.map +1 -1
  65. package/dist/clients/FactionClient.d.ts +4 -4
  66. package/dist/clients/FactionClient.d.ts.map +1 -1
  67. package/dist/clients/FittingsClient.d.ts +1 -0
  68. package/dist/clients/FittingsClient.d.ts.map +1 -1
  69. package/dist/clients/FleetClient.d.ts +2 -0
  70. package/dist/clients/FleetClient.d.ts.map +1 -1
  71. package/dist/clients/FreelanceJobsClient.d.ts +3 -3
  72. package/dist/clients/FreelanceJobsClient.d.ts.map +1 -1
  73. package/dist/clients/IndustryClient.d.ts +11 -3
  74. package/dist/clients/IndustryClient.d.ts.map +1 -1
  75. package/dist/clients/KillmailsClient.d.ts +2 -0
  76. package/dist/clients/KillmailsClient.d.ts.map +1 -1
  77. package/dist/clients/LoyaltyClient.d.ts +2 -0
  78. package/dist/clients/LoyaltyClient.d.ts.map +1 -1
  79. package/dist/clients/MailClient.d.ts +8 -3
  80. package/dist/clients/MailClient.d.ts.map +1 -1
  81. package/dist/clients/MarketClient.d.ts +6 -0
  82. package/dist/clients/MarketClient.d.ts.map +1 -1
  83. package/dist/clients/MetaClient.d.ts +3 -2
  84. package/dist/clients/MetaClient.d.ts.map +1 -1
  85. package/dist/clients/PiClient.d.ts +2 -0
  86. package/dist/clients/PiClient.d.ts.map +1 -1
  87. package/dist/clients/SkillsClient.d.ts +1 -0
  88. package/dist/clients/SkillsClient.d.ts.map +1 -1
  89. package/dist/clients/WalletClient.d.ts +7 -3
  90. package/dist/clients/WalletClient.d.ts.map +1 -1
  91. package/dist/clients/WarsClient.d.ts +2 -0
  92. package/dist/clients/WarsClient.d.ts.map +1 -1
  93. package/dist/core/ApiClient.d.ts +8 -0
  94. package/dist/core/ApiClient.d.ts.map +1 -1
  95. package/dist/core/ApiClientBuilder.d.ts +3 -1
  96. package/dist/core/ApiClientBuilder.d.ts.map +1 -1
  97. package/dist/core/ApiRequestHandler.d.ts.map +1 -1
  98. package/dist/core/BatchRequestHandler.d.ts.map +1 -1
  99. package/dist/core/RequestDeduplicator.d.ts +2 -0
  100. package/dist/core/RequestDeduplicator.d.ts.map +1 -1
  101. package/dist/core/RetryStrategy.d.ts +2 -0
  102. package/dist/core/RetryStrategy.d.ts.map +1 -1
  103. package/dist/core/cache/ETagCacheManager.d.ts +4 -0
  104. package/dist/core/cache/ETagCacheManager.d.ts.map +1 -1
  105. package/dist/core/circuitBreaker/CircuitBreaker.d.ts +3 -0
  106. package/dist/core/circuitBreaker/CircuitBreaker.d.ts.map +1 -1
  107. package/dist/core/configureApiClient.d.ts.map +1 -1
  108. package/dist/core/constants.d.ts +2 -2
  109. package/dist/core/constants.d.ts.map +1 -1
  110. package/dist/core/endpoints/EndpointDefinition.d.ts +2 -2
  111. package/dist/core/endpoints/EndpointDefinition.d.ts.map +1 -1
  112. package/dist/core/endpoints/calendarEndpoints.d.ts +7 -7
  113. package/dist/core/endpoints/characterEndpoints.d.ts +2 -2
  114. package/dist/core/endpoints/cloneEndpoints.d.ts +2 -2
  115. package/dist/core/endpoints/contractEndpoints.d.ts +15 -22
  116. package/dist/core/endpoints/contractEndpoints.d.ts.map +1 -1
  117. package/dist/core/endpoints/corporationEndpoints.d.ts +19 -22
  118. package/dist/core/endpoints/corporationEndpoints.d.ts.map +1 -1
  119. package/dist/core/endpoints/corporationProjectEndpoints.d.ts +75 -23
  120. package/dist/core/endpoints/corporationProjectEndpoints.d.ts.map +1 -1
  121. package/dist/core/endpoints/createClient.d.ts +2 -2
  122. package/dist/core/endpoints/createClient.d.ts.map +1 -1
  123. package/dist/core/endpoints/dogmaEndpoints.d.ts +2 -2
  124. package/dist/core/endpoints/factionEndpoints.d.ts +36 -36
  125. package/dist/core/endpoints/factionEndpoints.d.ts.map +1 -1
  126. package/dist/core/endpoints/fleetEndpoints.d.ts +1 -1
  127. package/dist/core/endpoints/freelanceJobsEndpoints.d.ts +131 -122
  128. package/dist/core/endpoints/freelanceJobsEndpoints.d.ts.map +1 -1
  129. package/dist/core/endpoints/industryEndpoints.d.ts +6 -6
  130. package/dist/core/endpoints/industryEndpoints.d.ts.map +1 -1
  131. package/dist/core/endpoints/mailEndpoints.d.ts +3 -5
  132. package/dist/core/endpoints/mailEndpoints.d.ts.map +1 -1
  133. package/dist/core/endpoints/mercenaryEndpoints.d.ts +1 -1
  134. package/dist/core/endpoints/metaEndpoints.d.ts +5 -1
  135. package/dist/core/endpoints/metaEndpoints.d.ts.map +1 -1
  136. package/dist/core/endpoints/piEndpoints.d.ts +2 -2
  137. package/dist/core/endpoints/statusEndpoints.d.ts +1 -1
  138. package/dist/core/endpoints/universeEndpoints.d.ts +22 -22
  139. package/dist/core/endpoints/walletEndpoints.d.ts +2 -3
  140. package/dist/core/endpoints/walletEndpoints.d.ts.map +1 -1
  141. package/dist/core/logger/DefaultLogger.d.ts +31 -0
  142. package/dist/core/logger/DefaultLogger.d.ts.map +1 -0
  143. package/dist/core/logger/ILogger.d.ts +14 -4
  144. package/dist/core/logger/ILogger.d.ts.map +1 -1
  145. package/dist/core/logger/NoopLogger.d.ts +7 -0
  146. package/dist/core/logger/NoopLogger.d.ts.map +1 -0
  147. package/dist/core/logger/clientLog.d.ts +11 -0
  148. package/dist/core/logger/clientLog.d.ts.map +1 -0
  149. package/dist/core/logger/logger.d.ts +11 -3
  150. package/dist/core/logger/logger.d.ts.map +1 -1
  151. package/dist/core/logger/loggerUtil.d.ts +8 -6
  152. package/dist/core/logger/loggerUtil.d.ts.map +1 -1
  153. package/dist/core/logger/resolveLogger.d.ts +10 -0
  154. package/dist/core/logger/resolveLogger.d.ts.map +1 -0
  155. package/dist/core/pagination/AsyncPaginationIterator.d.ts +1 -0
  156. package/dist/core/pagination/AsyncPaginationIterator.d.ts.map +1 -1
  157. package/dist/core/pagination/CursorPaginationHandler.d.ts.map +1 -1
  158. package/dist/core/pagination/PaginationHandler.d.ts.map +1 -1
  159. package/dist/core/rateLimiter/RateLimiter.d.ts +6 -0
  160. package/dist/core/rateLimiter/RateLimiter.d.ts.map +1 -1
  161. package/dist/core/requestPipeline/cachePolicy.d.ts +14 -0
  162. package/dist/core/requestPipeline/cachePolicy.d.ts.map +1 -1
  163. package/dist/core/requestPipeline/fetchExecution.d.ts +1 -1
  164. package/dist/core/requestPipeline/fetchExecution.d.ts.map +1 -1
  165. package/dist/core/requestPipeline/headers.d.ts.map +1 -1
  166. package/dist/core/requestPipeline/index.d.ts +2 -2
  167. package/dist/core/requestPipeline/index.d.ts.map +1 -1
  168. package/dist/core/requestPipeline/paginationOrchestration.d.ts.map +1 -1
  169. package/dist/core/requestPipeline/statusHandling.d.ts +8 -2
  170. package/dist/core/requestPipeline/statusHandling.d.ts.map +1 -1
  171. package/dist/core/util/concurrency.d.ts +29 -0
  172. package/dist/core/util/concurrency.d.ts.map +1 -0
  173. package/dist/errors.d.ts +1 -0
  174. package/dist/errors.d.ts.map +1 -1
  175. package/dist/errors.js +53 -195
  176. package/dist/errors.js.map +1 -1
  177. package/dist/errors.mjs +37 -129
  178. package/dist/errors.mjs.map +1 -1
  179. package/dist/index.d.ts +10 -5
  180. package/dist/index.d.ts.map +1 -1
  181. package/dist/index.js +2597 -3480
  182. package/dist/index.js.map +1 -1
  183. package/dist/index.mjs +2250 -3024
  184. package/dist/index.mjs.map +1 -1
  185. package/dist/schemas/calendar.d.ts +9 -7
  186. package/dist/schemas/calendar.d.ts.map +1 -1
  187. package/dist/schemas/character.d.ts +2 -2
  188. package/dist/schemas/clones.d.ts +2 -2
  189. package/dist/schemas/common.d.ts +11 -1
  190. package/dist/schemas/common.d.ts.map +1 -1
  191. package/dist/schemas/contracts.d.ts +69 -6
  192. package/dist/schemas/contracts.d.ts.map +1 -1
  193. package/dist/schemas/corporation-projects.d.ts +96 -9
  194. package/dist/schemas/corporation-projects.d.ts.map +1 -1
  195. package/dist/schemas/corporation.d.ts +34 -22
  196. package/dist/schemas/corporation.d.ts.map +1 -1
  197. package/dist/schemas/dogma.d.ts +2 -2
  198. package/dist/schemas/faction-warfare.d.ts +125 -12
  199. package/dist/schemas/faction-warfare.d.ts.map +1 -1
  200. package/dist/schemas/fleet.d.ts +1 -1
  201. package/dist/schemas/freelance-jobs.d.ts +52 -22
  202. package/dist/schemas/freelance-jobs.d.ts.map +1 -1
  203. package/dist/schemas/index.js +420 -2474
  204. package/dist/schemas/index.js.map +1 -1
  205. package/dist/schemas/index.mjs +225 -2060
  206. package/dist/schemas/index.mjs.map +1 -1
  207. package/dist/schemas/industry.d.ts +33 -0
  208. package/dist/schemas/industry.d.ts.map +1 -1
  209. package/dist/schemas/mail.d.ts +24 -5
  210. package/dist/schemas/mail.d.ts.map +1 -1
  211. package/dist/schemas/mercenary.d.ts +1 -1
  212. package/dist/schemas/meta.d.ts +12 -1
  213. package/dist/schemas/meta.d.ts.map +1 -1
  214. package/dist/schemas/pi.d.ts +2 -2
  215. package/dist/schemas/status.d.ts +1 -1
  216. package/dist/schemas/universe.d.ts +22 -22
  217. package/dist/schemas/universe.d.ts.map +1 -1
  218. package/dist/schemas/wallet.d.ts +16 -0
  219. package/dist/schemas/wallet.d.ts.map +1 -1
  220. package/dist/sde/SdeDataProvider.d.ts.map +1 -1
  221. package/dist/sde/index.js +95 -1162
  222. package/dist/sde/index.js.map +1 -1
  223. package/dist/sde/index.mjs +73 -1091
  224. package/dist/sde/index.mjs.map +1 -1
  225. package/dist/sde/ingestion/SdeExtractor.d.ts.map +1 -1
  226. package/dist/sde/ingestion/metadata.d.ts +13 -0
  227. package/dist/sde/ingestion/metadata.d.ts.map +1 -0
  228. package/dist/sde/memory.js +21 -1095
  229. package/dist/sde/memory.js.map +1 -1
  230. package/dist/sde/memory.mjs +13 -1051
  231. package/dist/sde/memory.mjs.map +1 -1
  232. package/dist/sde/optionalPeers.d.ts +25 -0
  233. package/dist/sde/optionalPeers.d.ts.map +1 -0
  234. package/dist/testing/TestDataFactory.d.ts +28 -1
  235. package/dist/testing/TestDataFactory.d.ts.map +1 -1
  236. package/dist/testing/index.js +116 -125
  237. package/dist/testing/index.js.map +1 -1
  238. package/dist/testing/index.mjs +110 -82
  239. package/dist/testing/index.mjs.map +1 -1
  240. package/dist/types/contracts.d.ts +4 -1
  241. package/dist/types/contracts.d.ts.map +1 -1
  242. package/dist/types/corporation-projects.d.ts +5 -1
  243. package/dist/types/corporation-projects.d.ts.map +1 -1
  244. package/dist/types/faction-warfare.d.ts +9 -1
  245. package/dist/types/faction-warfare.d.ts.map +1 -1
  246. package/dist/types/freelance-jobs.d.ts +2 -1
  247. package/dist/types/freelance-jobs.d.ts.map +1 -1
  248. package/dist/types/generated/esi-spec.generated.d.ts +12 -12
  249. package/dist/types/generated/esi-spec.generated.d.ts.map +1 -1
  250. package/dist/types/generated/spec-alignment.check.d.ts +2 -2
  251. package/dist/types/industry.d.ts +2 -1
  252. package/dist/types/industry.d.ts.map +1 -1
  253. package/dist/types/mail.d.ts +2 -1
  254. package/dist/types/mail.d.ts.map +1 -1
  255. package/dist/types/meta.d.ts +2 -1
  256. package/dist/types/meta.d.ts.map +1 -1
  257. package/dist/types/wallet.d.ts +2 -1
  258. package/dist/types/wallet.d.ts.map +1 -1
  259. package/package.json +326 -289
@@ -1,7 +1,22 @@
1
+ import {
2
+ MemorySdeProvider,
3
+ SdeDatabaseError,
4
+ SdeError,
5
+ SdeTestDataFactory,
6
+ SdeValidationError,
7
+ SdeVersionMismatchError,
8
+ isSdeDatabaseError,
9
+ isSdeError,
10
+ isSdeValidationError,
11
+ isSdeVersionMismatch
12
+ } from "../chunk-3ZI5A37L.mjs";
13
+ import {
14
+ __filename
15
+ } from "../chunk-JIW4BXLP.mjs";
16
+
1
17
  // src/sde/SdeDataProvider.ts
2
18
  import * as fs from "fs";
3
19
  import * as path from "path";
4
- import * as yaml2 from "js-yaml";
5
20
 
6
21
  // src/sde/ingestion/constants.ts
7
22
  var SDE_METADATA_FILENAME = "_sde.yaml";
@@ -740,59 +755,44 @@ var SDE_FILE_REGISTRY = [
740
755
  }
741
756
  ];
742
757
 
743
- // src/sde/ingestion/SdeExtractor.ts
744
- import AdmZip from "adm-zip";
745
- import * as yaml from "js-yaml";
746
-
747
- // src/sde/errors.ts
748
- var SdeError = class extends Error {
749
- constructor(message) {
750
- super(message);
751
- this.name = "SdeError";
752
- }
753
- };
754
- var SdeDatabaseError = class extends SdeError {
755
- cause;
756
- constructor(message, cause) {
757
- super(message);
758
- this.name = "SdeDatabaseError";
759
- this.cause = cause;
760
- }
761
- };
762
- var SdeValidationError = class extends SdeError {
763
- validationError;
764
- entityType;
765
- entityId;
766
- constructor(entityType, validationError, entityId) {
767
- const idSuffix = entityId !== void 0 ? ` (id: ${entityId})` : "";
768
- super(`SDE validation failed for ${entityType}${idSuffix}`);
769
- this.name = "SdeValidationError";
770
- this.validationError = validationError;
771
- this.entityType = entityType;
772
- this.entityId = entityId;
773
- }
774
- };
775
- var SdeVersionMismatchError = class extends SdeError {
776
- expected;
777
- actual;
778
- constructor(expected, actual) {
779
- super(`SDE version mismatch: expected ${expected}, got ${actual}`);
780
- this.name = "SdeVersionMismatchError";
781
- this.expected = expected;
782
- this.actual = actual;
758
+ // src/sde/optionalPeers.ts
759
+ import { createRequire } from "module";
760
+ var requireFromPackage = createRequire(__filename);
761
+ function isMissing(err, peer) {
762
+ if (!(err instanceof Error)) return false;
763
+ const code = err.code;
764
+ return (code === "MODULE_NOT_FOUND" || code === "ERR_MODULE_NOT_FOUND") && err.message.includes(`'${peer}'`);
765
+ }
766
+ function requireOptionalPeer(peer, neededFor, load = requireFromPackage) {
767
+ try {
768
+ return load(peer);
769
+ } catch (err) {
770
+ if (isMissing(err, peer)) {
771
+ throw new SdeError(
772
+ `${peer} is required to ${neededFor}. It is an optional peer dependency of @lgriffin/esi.ts; install it with: npm install ${peer}`
773
+ );
774
+ }
775
+ throw err;
783
776
  }
784
- };
785
- function isSdeError(error) {
786
- return error instanceof SdeError;
787
777
  }
788
- function isSdeDatabaseError(error) {
789
- return error instanceof SdeDatabaseError;
778
+ function loadJsYaml() {
779
+ return requireOptionalPeer("js-yaml", "parse SDE YAML files");
790
780
  }
791
- function isSdeValidationError(error) {
792
- return error instanceof SdeValidationError;
781
+ function loadAdmZip() {
782
+ return requireOptionalPeer("adm-zip", "read SDE ZIP archives");
793
783
  }
794
- function isSdeVersionMismatch(error) {
795
- return error instanceof SdeVersionMismatchError;
784
+
785
+ // src/sde/ingestion/metadata.ts
786
+ function asText(value) {
787
+ return typeof value === "string" || typeof value === "number" ? String(value) : "";
788
+ }
789
+ function parseSdeMetadata(content) {
790
+ const parsed = loadJsYaml().load(content);
791
+ const block = parsed.sde ?? parsed;
792
+ return {
793
+ buildNumber: asText(block.buildNumber),
794
+ releaseDate: asText(block.releaseDate)
795
+ };
796
796
  }
797
797
 
798
798
  // src/sde/ingestion/SdeExtractor.ts
@@ -804,34 +804,31 @@ function findEntry(zip, filename) {
804
804
  return entryBasename === basename || entry.entryName === filename || entry.entryName === `sde/${filename}`;
805
805
  });
806
806
  }
807
+ function openZip(zipPath) {
808
+ const Zip = loadAdmZip();
809
+ return new Zip(zipPath);
810
+ }
807
811
  function readEntryAsString(entry) {
808
812
  const buffer = entry.getData();
809
813
  return buffer.toString("utf-8");
810
814
  }
811
815
  var SdeExtractor = class {
812
816
  readMetadata(zipPath) {
813
- const zip = new AdmZip(zipPath);
817
+ const zip = openZip(zipPath);
814
818
  const entry = findEntry(zip, SDE_METADATA_FILENAME);
815
819
  if (!entry) {
816
820
  throw new SdeError(
817
821
  `Metadata file '${SDE_METADATA_FILENAME}' not found in archive: ${zipPath}`
818
822
  );
819
823
  }
820
- const content = readEntryAsString(entry);
821
- const parsed = yaml.load(content);
822
- const bn = parsed.buildNumber;
823
- const rd = parsed.releaseDate;
824
- return {
825
- buildNumber: typeof bn === "string" || typeof bn === "number" ? String(bn) : "",
826
- releaseDate: typeof rd === "string" || typeof rd === "number" ? String(rd) : ""
827
- };
824
+ return parseSdeMetadata(readEntryAsString(entry));
828
825
  }
829
826
  parseFile(zipPath, filename) {
830
- const zip = new AdmZip(zipPath);
827
+ const zip = openZip(zipPath);
831
828
  return this.parseFileFromZip(zip, filename);
832
829
  }
833
830
  parseFiles(zipPath, filenames) {
834
- const zip = new AdmZip(zipPath);
831
+ const zip = openZip(zipPath);
835
832
  const results = [];
836
833
  for (const filename of filenames) {
837
834
  const entry = findEntry(zip, filename);
@@ -843,11 +840,11 @@ var SdeExtractor = class {
843
840
  return results;
844
841
  }
845
842
  extractAll(zipPath, outputDir) {
846
- const zip = new AdmZip(zipPath);
843
+ const zip = openZip(zipPath);
847
844
  zip.extractAllTo(outputDir, true);
848
845
  }
849
846
  listFiles(zipPath) {
850
- const zip = new AdmZip(zipPath);
847
+ const zip = openZip(zipPath);
851
848
  return zip.getEntries().filter(
852
849
  (entry) => !entry.isDirectory && entry.entryName.endsWith(".yaml")
853
850
  ).map((entry) => entry.entryName);
@@ -861,7 +858,7 @@ var SdeExtractor = class {
861
858
  }
862
859
  parseEntryAsFile(entry, filename) {
863
860
  const content = readEntryAsString(entry);
864
- const parsed = yaml.load(content);
861
+ const parsed = loadJsYaml().load(content);
865
862
  const records = new Map(
866
863
  Object.entries(parsed).map(([key, value]) => {
867
864
  const numKey = Number(key);
@@ -921,6 +918,13 @@ function transformRecordNative(entityId, raw, spec) {
921
918
  }
922
919
 
923
920
  // src/sde/SdeDataProvider.ts
921
+ function toVersionInfo(metadata) {
922
+ return {
923
+ version: metadata?.buildNumber || "unknown",
924
+ buildDate: metadata?.releaseDate || "unknown",
925
+ importedAt: (/* @__PURE__ */ new Date()).toISOString()
926
+ };
927
+ }
924
928
  var SdeDataProvider = class _SdeDataProvider {
925
929
  entities = /* @__PURE__ */ new Map();
926
930
  fkIndexes = /* @__PURE__ */ new Map();
@@ -933,30 +937,14 @@ var SdeDataProvider = class _SdeDataProvider {
933
937
  if (!fs.existsSync(resolvedDir)) {
934
938
  throw new SdeError(`SDE directory not found: ${resolvedDir}`);
935
939
  }
936
- let version = {
937
- version: "unknown",
938
- buildDate: "unknown",
939
- importedAt: (/* @__PURE__ */ new Date()).toISOString()
940
- };
941
- const metaPath = path.join(resolvedDir, "_sde.yaml");
942
- if (fs.existsSync(metaPath)) {
943
- const metaContent = fs.readFileSync(metaPath, "utf-8");
944
- const parsed = yaml2.load(metaContent);
945
- const sdeBlock = parsed.sde ?? parsed;
946
- const bn = sdeBlock.buildNumber;
947
- const rd = sdeBlock.releaseDate;
948
- version = {
949
- version: typeof bn === "string" || typeof bn === "number" ? String(bn) : "unknown",
950
- buildDate: typeof rd === "string" || typeof rd === "number" ? String(rd) : "unknown",
951
- importedAt: (/* @__PURE__ */ new Date()).toISOString()
952
- };
953
- }
954
- const provider = new _SdeDataProvider(version);
940
+ const metaPath = path.join(resolvedDir, SDE_METADATA_FILENAME);
941
+ const metadata = fs.existsSync(metaPath) ? parseSdeMetadata(fs.readFileSync(metaPath, "utf-8")) : void 0;
942
+ const provider = new _SdeDataProvider(toVersionInfo(metadata));
955
943
  for (const spec of SDE_FILE_REGISTRY) {
956
944
  const filePath = path.join(resolvedDir, spec.yamlFile);
957
945
  if (!fs.existsSync(filePath)) continue;
958
946
  const content = fs.readFileSync(filePath, "utf-8");
959
- const parsed = yaml2.load(content);
947
+ const parsed = loadJsYaml().load(content);
960
948
  if (!parsed || typeof parsed !== "object") continue;
961
949
  provider.loadRecords(spec, parsed);
962
950
  }
@@ -969,12 +957,7 @@ var SdeDataProvider = class _SdeDataProvider {
969
957
  }
970
958
  const extractor = new SdeExtractor();
971
959
  const metadata = extractor.readMetadata(resolvedPath);
972
- const version = {
973
- version: metadata.buildNumber || "unknown",
974
- buildDate: metadata.releaseDate || "unknown",
975
- importedAt: (/* @__PURE__ */ new Date()).toISOString()
976
- };
977
- const provider = new _SdeDataProvider(version);
960
+ const provider = new _SdeDataProvider(toVersionInfo(metadata));
978
961
  const yamlFiles = SDE_FILE_REGISTRY.map((s) => s.yamlFile);
979
962
  const parsedFiles = extractor.parseFiles(resolvedPath, yamlFiles);
980
963
  const specMap = new Map(SDE_FILE_REGISTRY.map((s) => [s.yamlFile, s]));
@@ -1527,1007 +1510,6 @@ var SdeDataProvider = class _SdeDataProvider {
1527
1510
  this.fkIndexes.clear();
1528
1511
  }
1529
1512
  };
1530
-
1531
- // src/sde/MemorySdeProvider.ts
1532
- var MemorySdeProvider = class {
1533
- data = /* @__PURE__ */ new Map();
1534
- versionInfo;
1535
- constructor(data = {}) {
1536
- const register = (key, items, idFn) => {
1537
- this.data.set(
1538
- key,
1539
- new Map((items ?? []).map((item) => [idFn(item), item]))
1540
- );
1541
- };
1542
- register("eve_types", data.types, (t) => t.typeId);
1543
- register("eve_groups", data.groups, (g) => g.groupId);
1544
- register("eve_categories", data.categories, (c) => c.categoryId);
1545
- register("eve_regions", data.regions, (r) => r.regionId);
1546
- register(
1547
- "eve_constellations",
1548
- data.constellations,
1549
- (c) => c.constellationId
1550
- );
1551
- register("eve_solar_systems", data.solarSystems, (s) => s.systemId);
1552
- register("eve_stargates", data.stargates, (s) => s.stargateId);
1553
- register("eve_stars", data.stars, (s) => s.starId);
1554
- register("eve_planets", data.planets, (p) => p.planetId);
1555
- register("eve_moons", data.moons, (m) => m.moonId);
1556
- register("eve_asteroid_belts", data.asteroidBelts, (a) => a.asteroidBeltId);
1557
- register("eve_factions", data.factions, (f) => f.factionId);
1558
- register("eve_races", data.races, (r) => r.raceId);
1559
- register("eve_bloodlines", data.bloodlines, (b) => b.bloodlineId);
1560
- register("eve_ancestries", data.ancestries, (a) => a.ancestryId);
1561
- register(
1562
- "eve_npc_corporations",
1563
- data.npcCorporations,
1564
- (c) => c.corporationId
1565
- );
1566
- register("eve_npc_stations", data.npcStations, (s) => s.stationId);
1567
- register("eve_market_groups", data.marketGroups, (g) => g.marketGroupId);
1568
- register("eve_meta_groups", data.metaGroups, (g) => g.metaGroupId);
1569
- register("eve_icons", data.icons, (i) => i.iconId);
1570
- register("eve_graphics", data.graphics, (g) => g.graphicId);
1571
- register(
1572
- "eve_dogma_attributes",
1573
- data.dogmaAttributes,
1574
- (a) => a.attributeId
1575
- );
1576
- register("eve_dogma_effects", data.dogmaEffects, (e) => e.effectId);
1577
- register("eve_blueprints", data.blueprints, (b) => b.blueprintTypeId);
1578
- register(
1579
- "eve_planet_schematics",
1580
- data.planetSchematics,
1581
- (s) => s.planetSchematicId
1582
- );
1583
- register("eve_agent_types", data.agentTypes, (a) => a.agentTypeId);
1584
- register("eve_agents_in_space", data.agentsInSpace, (a) => a.characterId);
1585
- register("eve_certificates", data.certificates, (c) => c.certificateId);
1586
- register(
1587
- "eve_character_attributes",
1588
- data.characterAttributes,
1589
- (c) => c.attributeId
1590
- );
1591
- register("eve_clone_grades", data.cloneGrades, (c) => c.cloneGradeId);
1592
- register(
1593
- "eve_corporation_activities",
1594
- data.corporationActivities,
1595
- (c) => c.corporationActivityId
1596
- );
1597
- register(
1598
- "eve_dogma_attribute_categories",
1599
- data.dogmaAttributeCategories,
1600
- (d) => d.attributeCategoryId
1601
- );
1602
- register("eve_dogma_units", data.dogmaUnits, (d) => d.unitId);
1603
- register(
1604
- "eve_industry_activities",
1605
- data.industryActivities,
1606
- (i) => i.industryActivityId
1607
- );
1608
- register("eve_landmarks", data.landmarks, (l) => l.landmarkId);
1609
- register(
1610
- "eve_notification_types",
1611
- data.notificationTypes,
1612
- (n) => n.notificationTypeId
1613
- );
1614
- register("eve_npc_characters", data.npcCharacters, (n) => n.characterId);
1615
- register(
1616
- "eve_npc_corporation_divisions",
1617
- data.npcCorporationDivisions,
1618
- (n) => n.npcCorporationDivisionId
1619
- );
1620
- register("eve_schools", data.schools, (s) => s.schoolId);
1621
- register("eve_secondary_suns", data.secondarySuns, (s) => s.secondarySunId);
1622
- register("eve_skins", data.skins, (s) => s.skinId);
1623
- register("eve_skin_licenses", data.skinLicenses, (s) => s.licenseTypeId);
1624
- register(
1625
- "eve_station_operations",
1626
- data.stationOperations,
1627
- (s) => s.stationOperationId
1628
- );
1629
- register(
1630
- "eve_station_services",
1631
- data.stationServices,
1632
- (s) => s.stationServiceId
1633
- );
1634
- register("eve_type_dogma", data.typeDogma, (t) => t.typeId);
1635
- register("eve_type_materials", data.typeMaterials, (t) => t.typeId);
1636
- register("eve_type_bonuses", data.typeBonuses, (t) => t.typeId);
1637
- register("eve_missions", data.missions, (m) => m.missionId);
1638
- register("eve_dungeons", data.dungeons, (d) => d.dungeonId);
1639
- register("eve_epic_arcs", data.epicArcs, (e) => e.epicArcId);
1640
- this.versionInfo = {
1641
- version: data.version?.version ?? "1.0.0-test",
1642
- buildDate: data.version?.buildDate ?? "2024-01-01T00:00:00Z",
1643
- importedAt: data.version?.importedAt ?? "2024-01-01T00:00:00Z",
1644
- checksum: data.version?.checksum
1645
- };
1646
- }
1647
- getById(table, id) {
1648
- return this.data.get(table)?.get(id) ?? null;
1649
- }
1650
- getAllFrom(table) {
1651
- const map = this.data.get(table);
1652
- return map ? Array.from(map.values()) : [];
1653
- }
1654
- filterBy(table, field, value) {
1655
- return this.getAllFrom(table).filter(
1656
- (item) => item[field] === value
1657
- );
1658
- }
1659
- searchBy(table, field, query, limit = 25) {
1660
- const lowerQuery = query.toLowerCase();
1661
- const results = [];
1662
- for (const item of this.getAllFrom(table)) {
1663
- const val = item[field];
1664
- if (typeof val === "string" && val.toLowerCase().includes(lowerQuery)) {
1665
- results.push(item);
1666
- if (results.length >= limit) break;
1667
- }
1668
- }
1669
- return results;
1670
- }
1671
- // --- Types, Groups, Categories ---
1672
- getType(typeId) {
1673
- return this.getById("eve_types", typeId);
1674
- }
1675
- getTypesByGroup(groupId) {
1676
- return this.filterBy("eve_types", "groupId", groupId);
1677
- }
1678
- getGroup(groupId) {
1679
- return this.getById("eve_groups", groupId);
1680
- }
1681
- getGroupsByCategory(categoryId) {
1682
- return this.filterBy("eve_groups", "categoryId", categoryId);
1683
- }
1684
- getCategory(categoryId) {
1685
- return this.getById("eve_categories", categoryId);
1686
- }
1687
- getAllCategories() {
1688
- return this.getAllFrom("eve_categories");
1689
- }
1690
- // --- Regions, Constellations, Solar Systems, Stargates ---
1691
- getRegion(regionId) {
1692
- return this.getById("eve_regions", regionId);
1693
- }
1694
- getAllRegions() {
1695
- return this.getAllFrom("eve_regions");
1696
- }
1697
- getConstellation(constellationId) {
1698
- return this.getById("eve_constellations", constellationId);
1699
- }
1700
- getConstellationsByRegion(regionId) {
1701
- return this.filterBy("eve_constellations", "regionId", regionId);
1702
- }
1703
- getSolarSystem(systemId) {
1704
- return this.getById("eve_solar_systems", systemId);
1705
- }
1706
- getSolarSystemsByConstellation(constellationId) {
1707
- return this.filterBy(
1708
- "eve_solar_systems",
1709
- "constellationId",
1710
- constellationId
1711
- );
1712
- }
1713
- getStargate(stargateId) {
1714
- return this.getById("eve_stargates", stargateId);
1715
- }
1716
- getStargatesBySystem(systemId) {
1717
- return this.filterBy("eve_stargates", "solarSystemId", systemId);
1718
- }
1719
- // --- Search ---
1720
- searchTypesByName(query, limit = 25) {
1721
- return this.searchBy("eve_types", "name", query, limit);
1722
- }
1723
- searchSolarSystemsByName(query, limit = 25) {
1724
- return this.searchBy("eve_solar_systems", "name", query, limit);
1725
- }
1726
- // --- Universe ---
1727
- getStar(starId) {
1728
- return this.getById("eve_stars", starId);
1729
- }
1730
- getStarBySystem(systemId) {
1731
- return this.filterBy("eve_stars", "solarSystemId", systemId)[0] ?? null;
1732
- }
1733
- getPlanet(planetId) {
1734
- return this.getById("eve_planets", planetId);
1735
- }
1736
- getPlanetsBySystem(systemId) {
1737
- return this.filterBy("eve_planets", "solarSystemId", systemId);
1738
- }
1739
- getMoon(moonId) {
1740
- return this.getById("eve_moons", moonId);
1741
- }
1742
- getMoonsBySystem(systemId) {
1743
- return this.filterBy("eve_moons", "solarSystemId", systemId);
1744
- }
1745
- getAsteroidBelt(asteroidBeltId) {
1746
- return this.getById("eve_asteroid_belts", asteroidBeltId);
1747
- }
1748
- getAsteroidBeltsBySystem(systemId) {
1749
- return this.filterBy("eve_asteroid_belts", "solarSystemId", systemId);
1750
- }
1751
- // --- Character/Lore ---
1752
- getFaction(factionId) {
1753
- return this.getById("eve_factions", factionId);
1754
- }
1755
- getAllFactions() {
1756
- return this.getAllFrom("eve_factions");
1757
- }
1758
- getRace(raceId) {
1759
- return this.getById("eve_races", raceId);
1760
- }
1761
- getAllRaces() {
1762
- return this.getAllFrom("eve_races");
1763
- }
1764
- getBloodline(bloodlineId) {
1765
- return this.getById("eve_bloodlines", bloodlineId);
1766
- }
1767
- getBloodlinesByRace(raceId) {
1768
- return this.filterBy("eve_bloodlines", "raceId", raceId);
1769
- }
1770
- getAncestry(ancestryId) {
1771
- return this.getById("eve_ancestries", ancestryId);
1772
- }
1773
- getAncestriesByBloodline(bloodlineId) {
1774
- return this.filterBy("eve_ancestries", "bloodlineId", bloodlineId);
1775
- }
1776
- // --- NPC Infrastructure ---
1777
- getNpcCorporation(corporationId) {
1778
- return this.getById("eve_npc_corporations", corporationId);
1779
- }
1780
- getNpcCorporationsByFaction(factionId) {
1781
- return this.filterBy("eve_npc_corporations", "factionId", factionId);
1782
- }
1783
- getNpcStation(stationId) {
1784
- return this.getById("eve_npc_stations", stationId);
1785
- }
1786
- getNpcStationsBySystem(systemId) {
1787
- return this.filterBy("eve_npc_stations", "solarSystemId", systemId);
1788
- }
1789
- getNpcStationsByOwner(ownerId) {
1790
- return this.filterBy("eve_npc_stations", "ownerId", ownerId);
1791
- }
1792
- // --- Market ---
1793
- getMarketGroup(marketGroupId) {
1794
- return this.getById("eve_market_groups", marketGroupId);
1795
- }
1796
- getMarketGroupsByParent(parentGroupId) {
1797
- return this.filterBy("eve_market_groups", "parentGroupId", parentGroupId);
1798
- }
1799
- getRootMarketGroups() {
1800
- return this.getAllFrom("eve_market_groups").filter(
1801
- (g) => g.parentGroupId === null
1802
- );
1803
- }
1804
- getTypesByMarketGroup(marketGroupId) {
1805
- return this.filterBy("eve_types", "marketGroupId", marketGroupId);
1806
- }
1807
- searchMarketGroupsByName(query, limit = 25) {
1808
- return this.searchBy("eve_market_groups", "name", query, limit);
1809
- }
1810
- // --- Meta/UI ---
1811
- getMetaGroup(metaGroupId) {
1812
- return this.getById("eve_meta_groups", metaGroupId);
1813
- }
1814
- getAllMetaGroups() {
1815
- return this.getAllFrom("eve_meta_groups");
1816
- }
1817
- getIcon(iconId) {
1818
- return this.getById("eve_icons", iconId);
1819
- }
1820
- getGraphic(graphicId) {
1821
- return this.getById("eve_graphics", graphicId);
1822
- }
1823
- // --- Dogma ---
1824
- getDogmaAttribute(attributeId) {
1825
- return this.getById("eve_dogma_attributes", attributeId);
1826
- }
1827
- searchDogmaAttributesByName(query, limit = 25) {
1828
- return this.searchBy("eve_dogma_attributes", "name", query, limit);
1829
- }
1830
- getDogmaEffect(effectId) {
1831
- return this.getById("eve_dogma_effects", effectId);
1832
- }
1833
- searchDogmaEffectsByName(query, limit = 25) {
1834
- return this.searchBy("eve_dogma_effects", "name", query, limit);
1835
- }
1836
- getDogmaAttributeCategory(attributeCategoryId) {
1837
- return this.getById("eve_dogma_attribute_categories", attributeCategoryId);
1838
- }
1839
- getAllDogmaAttributeCategories() {
1840
- return this.getAllFrom("eve_dogma_attribute_categories");
1841
- }
1842
- getDogmaUnit(unitId) {
1843
- return this.getById("eve_dogma_units", unitId);
1844
- }
1845
- getAllDogmaUnits() {
1846
- return this.getAllFrom("eve_dogma_units");
1847
- }
1848
- // --- Industry ---
1849
- getBlueprint(blueprintTypeId) {
1850
- return this.getById("eve_blueprints", blueprintTypeId);
1851
- }
1852
- getPlanetSchematic(planetSchematicId) {
1853
- return this.getById("eve_planet_schematics", planetSchematicId);
1854
- }
1855
- getAllPlanetSchematics() {
1856
- return this.getAllFrom("eve_planet_schematics");
1857
- }
1858
- getIndustryActivity(industryActivityId) {
1859
- return this.getById("eve_industry_activities", industryActivityId);
1860
- }
1861
- getAllIndustryActivities() {
1862
- return this.getAllFrom("eve_industry_activities");
1863
- }
1864
- // --- Agent System ---
1865
- getAgentType(agentTypeId) {
1866
- return this.getById("eve_agent_types", agentTypeId);
1867
- }
1868
- getAllAgentTypes() {
1869
- return this.getAllFrom("eve_agent_types");
1870
- }
1871
- getAgentInSpace(characterId) {
1872
- return this.getById("eve_agents_in_space", characterId);
1873
- }
1874
- getAgentsInSpaceBySystem(systemId) {
1875
- return this.filterBy("eve_agents_in_space", "solarSystemId", systemId);
1876
- }
1877
- // --- Certificates ---
1878
- getCertificate(certificateId) {
1879
- return this.getById("eve_certificates", certificateId);
1880
- }
1881
- getAllCertificates() {
1882
- return this.getAllFrom("eve_certificates");
1883
- }
1884
- // --- Character Attributes ---
1885
- getCharacterAttribute(attributeId) {
1886
- return this.getById("eve_character_attributes", attributeId);
1887
- }
1888
- getAllCharacterAttributes() {
1889
- return this.getAllFrom("eve_character_attributes");
1890
- }
1891
- // --- NPC Characters ---
1892
- getNpcCharacter(characterId) {
1893
- return this.getById("eve_npc_characters", characterId);
1894
- }
1895
- getNpcCharactersByCorporation(corporationId) {
1896
- return this.filterBy("eve_npc_characters", "corporationId", corporationId);
1897
- }
1898
- searchNpcCharactersByName(query, limit = 25) {
1899
- return this.searchBy("eve_npc_characters", "name", query, limit);
1900
- }
1901
- // --- Clone Grades ---
1902
- getCloneGrade(cloneGradeId) {
1903
- return this.getById("eve_clone_grades", cloneGradeId);
1904
- }
1905
- getAllCloneGrades() {
1906
- return this.getAllFrom("eve_clone_grades");
1907
- }
1908
- // --- Corporation Reference ---
1909
- getCorporationActivity(corporationActivityId) {
1910
- return this.getById("eve_corporation_activities", corporationActivityId);
1911
- }
1912
- getAllCorporationActivities() {
1913
- return this.getAllFrom("eve_corporation_activities");
1914
- }
1915
- getNpcCorporationDivision(npcCorporationDivisionId) {
1916
- return this.getById(
1917
- "eve_npc_corporation_divisions",
1918
- npcCorporationDivisionId
1919
- );
1920
- }
1921
- getAllNpcCorporationDivisions() {
1922
- return this.getAllFrom("eve_npc_corporation_divisions");
1923
- }
1924
- // --- Landmarks ---
1925
- getLandmark(landmarkId) {
1926
- return this.getById("eve_landmarks", landmarkId);
1927
- }
1928
- getAllLandmarks() {
1929
- return this.getAllFrom("eve_landmarks");
1930
- }
1931
- // --- Notifications ---
1932
- getNotificationType(notificationTypeId) {
1933
- return this.getById("eve_notification_types", notificationTypeId);
1934
- }
1935
- // --- Schools ---
1936
- getSchool(schoolId) {
1937
- return this.getById("eve_schools", schoolId);
1938
- }
1939
- getAllSchools() {
1940
- return this.getAllFrom("eve_schools");
1941
- }
1942
- // --- Secondary Suns ---
1943
- getSecondarySun(secondarySunId) {
1944
- return this.getById("eve_secondary_suns", secondarySunId);
1945
- }
1946
- getSecondarySunsBySystem(systemId) {
1947
- return this.filterBy("eve_secondary_suns", "solarSystemId", systemId);
1948
- }
1949
- // --- Skins ---
1950
- getSkin(skinId) {
1951
- return this.getById("eve_skins", skinId);
1952
- }
1953
- getSkinLicense(licenseTypeId) {
1954
- return this.getById("eve_skin_licenses", licenseTypeId);
1955
- }
1956
- getSkinLicensesBySkin(skinId) {
1957
- return this.filterBy("eve_skin_licenses", "skinId", skinId);
1958
- }
1959
- // --- Station Operations & Services ---
1960
- getStationOperation(stationOperationId) {
1961
- return this.getById("eve_station_operations", stationOperationId);
1962
- }
1963
- getAllStationOperations() {
1964
- return this.getAllFrom("eve_station_operations");
1965
- }
1966
- getStationService(stationServiceId) {
1967
- return this.getById("eve_station_services", stationServiceId);
1968
- }
1969
- getAllStationServices() {
1970
- return this.getAllFrom("eve_station_services");
1971
- }
1972
- // --- Type Extensions ---
1973
- getTypeDogma(typeId) {
1974
- return this.getById("eve_type_dogma", typeId);
1975
- }
1976
- getTypeMaterial(typeId) {
1977
- return this.getById("eve_type_materials", typeId);
1978
- }
1979
- getTypeBonus(typeId) {
1980
- return this.getById("eve_type_bonuses", typeId);
1981
- }
1982
- // --- Missions & Content ---
1983
- getMission(missionId) {
1984
- return this.getById("eve_missions", missionId);
1985
- }
1986
- getDungeon(dungeonId) {
1987
- return this.getById("eve_dungeons", dungeonId);
1988
- }
1989
- getEpicArc(epicArcId) {
1990
- return this.getById("eve_epic_arcs", epicArcId);
1991
- }
1992
- getAllEpicArcs() {
1993
- return this.getAllFrom("eve_epic_arcs");
1994
- }
1995
- // --- Generic accessor ---
1996
- getEntity(tableName, id) {
1997
- return this.getById(tableName, id);
1998
- }
1999
- getAllEntities(tableName) {
2000
- return this.getAllFrom(tableName);
2001
- }
2002
- // --- Version & Lifecycle ---
2003
- getVersion() {
2004
- return { ...this.versionInfo };
2005
- }
2006
- close() {
2007
- this.data.clear();
2008
- }
2009
- };
2010
-
2011
- // src/sde/SdeTestDataFactory.ts
2012
- var SdeTestDataFactory = class {
2013
- static createEveType(overrides = {}) {
2014
- return {
2015
- typeId: 34,
2016
- groupId: 18,
2017
- mass: 1,
2018
- name: "Tritanium",
2019
- portionSize: 1,
2020
- published: true,
2021
- packagedVolume: null,
2022
- volume: 0.01,
2023
- radius: null,
2024
- description: "The most common mineral in the known universe.",
2025
- graphicId: 20,
2026
- soundId: null,
2027
- iconId: null,
2028
- raceId: null,
2029
- basePrice: 4,
2030
- marketGroupId: 1857,
2031
- capacity: null,
2032
- isRepackable: null,
2033
- ...overrides
2034
- };
2035
- }
2036
- static createEveGroup(overrides = {}) {
2037
- return {
2038
- groupId: 18,
2039
- anchorable: false,
2040
- anchored: false,
2041
- categoryId: 4,
2042
- fittableNonSingleton: false,
2043
- name: "Mineral",
2044
- published: true,
2045
- useBasePrice: true,
2046
- iconId: null,
2047
- ...overrides
2048
- };
2049
- }
2050
- static createEveCategory(overrides = {}) {
2051
- return {
2052
- categoryId: 4,
2053
- name: "Material",
2054
- published: true,
2055
- iconId: null,
2056
- ...overrides
2057
- };
2058
- }
2059
- static createRegion(overrides = {}) {
2060
- return {
2061
- regionId: 10000002,
2062
- constellationIDs: [20000020],
2063
- description: "The Forge is the industrial heart of the Caldari State.",
2064
- factionId: 500001,
2065
- name: "The Forge",
2066
- nebulaId: 10,
2067
- position: { x: -96e15, y: 6e16, z: -11e16 },
2068
- wormholeClassId: 0,
2069
- ...overrides
2070
- };
2071
- }
2072
- static createConstellation(overrides = {}) {
2073
- return {
2074
- constellationId: 20000020,
2075
- factionId: 500001,
2076
- name: "Kimotoro",
2077
- position: { x: -97e15, y: 61e15, z: -115e15 },
2078
- regionId: 10000002,
2079
- solarSystemIDs: [30000142, 30000144],
2080
- wormholeClassId: 0,
2081
- ...overrides
2082
- };
2083
- }
2084
- static createSolarSystem(overrides = {}) {
2085
- return {
2086
- systemId: 30000142,
2087
- border: false,
2088
- constellationId: 20000020,
2089
- hub: true,
2090
- international: false,
2091
- luminosity: 0.02142,
2092
- name: "Jita",
2093
- planetIDs: [40009077],
2094
- position: { x: -129e15, y: 607e14, z: -112e15 },
2095
- position2D: { x: -129e15, y: -112e15 },
2096
- radius: 467e10,
2097
- regionId: 10000002,
2098
- regional: false,
2099
- securityClass: "B",
2100
- securityStatus: 0.9459991455078125,
2101
- starId: 40009082,
2102
- stargateIDs: [50001248],
2103
- corridor: null,
2104
- fringe: null,
2105
- wormholeClassId: null,
2106
- visualEffect: null,
2107
- ...overrides
2108
- };
2109
- }
2110
- static createStargate(overrides = {}) {
2111
- return {
2112
- stargateId: 50001248,
2113
- destination: { solarSystemId: 30000144, stargateId: 50001249 },
2114
- position: { x: 15e11, y: 32e10, z: -87e10 },
2115
- solarSystemId: 30000142,
2116
- typeId: 16,
2117
- ...overrides
2118
- };
2119
- }
2120
- static createStar(overrides = {}) {
2121
- return {
2122
- starId: 40009082,
2123
- radius: 3466e5,
2124
- solarSystemId: 30000142,
2125
- statistics: {
2126
- age: 76e9,
2127
- life: 1e11,
2128
- luminosity: 0.02142,
2129
- locked: false,
2130
- spectralClass: "K7 V",
2131
- temperature: 4e3
2132
- },
2133
- typeId: 3796,
2134
- ...overrides
2135
- };
2136
- }
2137
- static createPlanet(overrides = {}) {
2138
- return {
2139
- planetId: 40009077,
2140
- asteroidBeltIDs: [40009079],
2141
- attributes: {},
2142
- celestialIndex: 1,
2143
- moonIDs: [40009078],
2144
- orbitId: 40009082,
2145
- position: { x: 12e12, y: 1e11, z: -35e11 },
2146
- radius: 233e4,
2147
- solarSystemId: 30000142,
2148
- statistics: {},
2149
- typeId: 2015,
2150
- npcStationIDs: null,
2151
- ...overrides
2152
- };
2153
- }
2154
- static createMoon(overrides = {}) {
2155
- return {
2156
- moonId: 40009078,
2157
- attributes: {},
2158
- celestialIndex: 1,
2159
- orbitId: 40009077,
2160
- orbitIndex: 1,
2161
- position: { x: 121e11, y: 101e9, z: -351e10 },
2162
- radius: 24e4,
2163
- solarSystemId: 30000142,
2164
- statistics: {},
2165
- typeId: 14,
2166
- npcStationIDs: null,
2167
- ...overrides
2168
- };
2169
- }
2170
- static createAsteroidBelt(overrides = {}) {
2171
- return {
2172
- asteroidBeltId: 40009079,
2173
- celestialIndex: 1,
2174
- orbitId: 40009077,
2175
- orbitIndex: 1,
2176
- position: { x: 119e11, y: 99e9, z: -349e10 },
2177
- radius: 5e4,
2178
- solarSystemId: 30000142,
2179
- statistics: {},
2180
- typeId: 15,
2181
- ...overrides
2182
- };
2183
- }
2184
- static createFaction(overrides = {}) {
2185
- return {
2186
- factionId: 500001,
2187
- corporationId: 1000035,
2188
- description: "The Caldari State is a corporate dictatorship.",
2189
- flatLogo: "res:/ui/texture/corps/caldari.png",
2190
- flatLogoWithName: "res:/ui/texture/corps/caldari_name.png",
2191
- iconId: 1439,
2192
- memberRaces: [1],
2193
- militiaCorporationId: 1000180,
2194
- name: "Caldari State",
2195
- shortDescription: "Caldari",
2196
- sizeFactor: 5,
2197
- solarSystemId: 30000142,
2198
- uniqueName: true,
2199
- ...overrides
2200
- };
2201
- }
2202
- static createRace(overrides = {}) {
2203
- return {
2204
- raceId: 1,
2205
- description: "The Caldari State is a corporate dictatorship.",
2206
- iconId: 1439,
2207
- name: "Caldari",
2208
- shipTypeId: 601,
2209
- skills: {},
2210
- ...overrides
2211
- };
2212
- }
2213
- static createBloodline(overrides = {}) {
2214
- return {
2215
- bloodlineId: 1,
2216
- charisma: 3,
2217
- corporationId: 1000006,
2218
- description: "The Deteis are regarded as the face of the Caldari State.",
2219
- iconId: 1383,
2220
- intelligence: 7,
2221
- memory: 7,
2222
- name: "Deteis",
2223
- perception: 5,
2224
- raceId: 1,
2225
- willpower: 5,
2226
- ...overrides
2227
- };
2228
- }
2229
- static createAncestry(overrides = {}) {
2230
- return {
2231
- ancestryId: 1,
2232
- bloodlineId: 1,
2233
- charisma: 0,
2234
- description: "Born and raised in a capsule.",
2235
- iconId: 1664,
2236
- intelligence: 0,
2237
- memory: 0,
2238
- name: "Tube Child",
2239
- perception: 0,
2240
- shortDescription: "Raised in a capsule.",
2241
- willpower: 2,
2242
- ...overrides
2243
- };
2244
- }
2245
- static createNpcCorporation(overrides = {}) {
2246
- return {
2247
- corporationId: 1000035,
2248
- ceoId: 3004451,
2249
- deleted: false,
2250
- description: "The Caldari Navy is the armed forces of the Caldari State.",
2251
- extent: "G",
2252
- hasPlayerPersonnelManager: false,
2253
- initialPrice: 0,
2254
- memberLimit: 0,
2255
- minSecurity: 0,
2256
- minimumJoinStanding: 0,
2257
- name: "Caldari Navy",
2258
- sendCharTerminationMessage: true,
2259
- shares: 1e5,
2260
- size: "H",
2261
- stationId: 60003760,
2262
- taxRate: 0,
2263
- tickerName: "CN",
2264
- uniqueName: true,
2265
- allowedMemberRaces: null,
2266
- corporationTrades: null,
2267
- divisions: null,
2268
- enemyId: null,
2269
- factionId: 500001,
2270
- friendId: null,
2271
- iconId: 1439,
2272
- investors: null,
2273
- lpOfferTables: null,
2274
- mainActivityId: null,
2275
- raceId: 1,
2276
- sizeFactor: null,
2277
- solarSystemId: 30000142,
2278
- secondaryActivityId: null,
2279
- ...overrides
2280
- };
2281
- }
2282
- static createNpcStation(overrides = {}) {
2283
- return {
2284
- stationId: 60003760,
2285
- celestialIndex: 4,
2286
- operationId: 1,
2287
- orbitId: 40009081,
2288
- orbitIndex: 4,
2289
- ownerId: 1000035,
2290
- position: { x: 158e12, y: 963e10, z: 106e12 },
2291
- reprocessingEfficiency: 0.5,
2292
- reprocessingHangarFlag: 4,
2293
- reprocessingStationsTake: 0.05,
2294
- solarSystemId: 30000142,
2295
- typeId: 1529,
2296
- useOperationName: true,
2297
- ...overrides
2298
- };
2299
- }
2300
- static createMarketGroup(overrides = {}) {
2301
- return {
2302
- marketGroupId: 1857,
2303
- description: "Refined minerals used in manufacturing.",
2304
- hasTypes: true,
2305
- iconId: 22,
2306
- name: "Minerals",
2307
- parentGroupId: 1031,
2308
- ...overrides
2309
- };
2310
- }
2311
- static createMetaGroup(overrides = {}) {
2312
- return {
2313
- metaGroupId: 1,
2314
- color: { r: 255, g: 255, b: 255, a: 255 },
2315
- name: "Tech I",
2316
- iconId: null,
2317
- iconSuffix: null,
2318
- description: null,
2319
- ...overrides
2320
- };
2321
- }
2322
- static createIcon(overrides = {}) {
2323
- return {
2324
- iconId: 22,
2325
- iconFile: "res:/UI/Texture/Icons/22_32_2.png",
2326
- ...overrides
2327
- };
2328
- }
2329
- static createGraphic(overrides = {}) {
2330
- return {
2331
- graphicId: 20,
2332
- graphicFile: "res:/dx9/model/worldobject/asteroid/oreveld001.red",
2333
- iconFolder: null,
2334
- sofFactionName: null,
2335
- sofHullName: null,
2336
- sofRaceName: null,
2337
- ...overrides
2338
- };
2339
- }
2340
- static createDogmaAttribute(overrides = {}) {
2341
- return {
2342
- attributeId: 9,
2343
- attributeCategoryId: 1,
2344
- dataType: 2,
2345
- defaultValue: 0,
2346
- description: "Hit points for a ship.",
2347
- displayWhenZero: false,
2348
- highIsGood: true,
2349
- name: "hp",
2350
- published: true,
2351
- stackable: false,
2352
- displayName: null,
2353
- iconId: null,
2354
- tooltipDescription: null,
2355
- tooltipTitle: null,
2356
- unitId: 1,
2357
- chargeRechargeTimeId: null,
2358
- maxAttributeId: null,
2359
- minAttributeId: null,
2360
- ...overrides
2361
- };
2362
- }
2363
- static createDogmaEffect(overrides = {}) {
2364
- return {
2365
- effectId: 11,
2366
- disallowAutoRepeat: false,
2367
- dischargeAttributeId: 0,
2368
- durationAttributeId: 0,
2369
- effectCategoryId: 0,
2370
- electronicChance: false,
2371
- guid: "effects.LowSlotModifier",
2372
- isAssistance: false,
2373
- isOffensive: false,
2374
- isWarpSafe: true,
2375
- name: "lowSlotModifier",
2376
- propulsionChance: false,
2377
- published: true,
2378
- rangeChance: false,
2379
- distribution: null,
2380
- falloffAttributeId: null,
2381
- rangeAttributeId: null,
2382
- trackingSpeedAttributeId: null,
2383
- description: null,
2384
- displayName: null,
2385
- iconId: null,
2386
- modifierInfo: null,
2387
- ...overrides
2388
- };
2389
- }
2390
- static createBlueprint(overrides = {}) {
2391
- return {
2392
- activities: {
2393
- manufacturing: {
2394
- time: 6e3,
2395
- materials: [
2396
- { typeId: 34, quantity: 100 },
2397
- { typeId: 35, quantity: 50 }
2398
- ],
2399
- products: [{ typeId: 587, quantity: 1 }]
2400
- }
2401
- },
2402
- blueprintTypeId: 787,
2403
- maxProductionLimit: 10,
2404
- ...overrides
2405
- };
2406
- }
2407
- static createPlanetSchematic(overrides = {}) {
2408
- return {
2409
- planetSchematicId: 65,
2410
- cycleTime: 1800,
2411
- name: "Bacteria",
2412
- pins: [],
2413
- types: [],
2414
- ...overrides
2415
- };
2416
- }
2417
- static createVersionInfo(overrides = {}) {
2418
- return {
2419
- version: "2024-01-15.1",
2420
- buildDate: "2024-01-15T00:00:00Z",
2421
- importedAt: "2024-01-16T12:00:00Z",
2422
- checksum: "abc123def456",
2423
- ...overrides
2424
- };
2425
- }
2426
- static createHierarchicalTestData() {
2427
- const category = this.createEveCategory();
2428
- const group = this.createEveGroup({ categoryId: category.categoryId });
2429
- const type1 = this.createEveType({
2430
- typeId: 34,
2431
- name: "Tritanium",
2432
- groupId: group.groupId
2433
- });
2434
- const type2 = this.createEveType({
2435
- typeId: 35,
2436
- name: "Pyerite",
2437
- groupId: group.groupId
2438
- });
2439
- const type3 = this.createEveType({
2440
- typeId: 36,
2441
- name: "Mexallon",
2442
- groupId: group.groupId
2443
- });
2444
- const region = this.createRegion();
2445
- const constellation = this.createConstellation({
2446
- regionId: region.regionId
2447
- });
2448
- const system1 = this.createSolarSystem({
2449
- systemId: 30000142,
2450
- name: "Jita",
2451
- constellationId: constellation.constellationId,
2452
- regionId: region.regionId
2453
- });
2454
- const system2 = this.createSolarSystem({
2455
- systemId: 30000144,
2456
- name: "Perimeter",
2457
- constellationId: constellation.constellationId,
2458
- regionId: region.regionId,
2459
- securityStatus: 0.9
2460
- });
2461
- const stargate = this.createStargate({
2462
- solarSystemId: system1.systemId,
2463
- destination: { solarSystemId: system2.systemId, stargateId: 50001249 }
2464
- });
2465
- const star = this.createStar({ solarSystemId: system1.systemId });
2466
- const planet = this.createPlanet({ solarSystemId: system1.systemId });
2467
- const moon = this.createMoon({ solarSystemId: system1.systemId });
2468
- const asteroidBelt = this.createAsteroidBelt({
2469
- solarSystemId: system1.systemId
2470
- });
2471
- const race = this.createRace();
2472
- const faction = this.createFaction({ memberRaces: [race.raceId] });
2473
- const bloodline = this.createBloodline({ raceId: race.raceId });
2474
- const ancestry = this.createAncestry({
2475
- bloodlineId: bloodline.bloodlineId
2476
- });
2477
- const npcCorp = this.createNpcCorporation({
2478
- factionId: faction.factionId,
2479
- raceId: race.raceId
2480
- });
2481
- const npcStation = this.createNpcStation({
2482
- solarSystemId: system1.systemId,
2483
- ownerId: npcCorp.corporationId
2484
- });
2485
- const rootMarketGroup = this.createMarketGroup({
2486
- marketGroupId: 1031,
2487
- name: "Manufacture & Research",
2488
- parentGroupId: null,
2489
- hasTypes: false
2490
- });
2491
- const marketGroup = this.createMarketGroup({
2492
- parentGroupId: rootMarketGroup.marketGroupId
2493
- });
2494
- const metaGroup = this.createMetaGroup();
2495
- const icon = this.createIcon();
2496
- const graphic = this.createGraphic();
2497
- const dogmaAttribute = this.createDogmaAttribute();
2498
- const dogmaEffect = this.createDogmaEffect();
2499
- const blueprint = this.createBlueprint();
2500
- const planetSchematic = this.createPlanetSchematic();
2501
- return {
2502
- categories: [category],
2503
- groups: [group],
2504
- types: [type1, type2, type3],
2505
- regions: [region],
2506
- constellations: [constellation],
2507
- solarSystems: [system1, system2],
2508
- stargates: [stargate],
2509
- stars: [star],
2510
- planets: [planet],
2511
- moons: [moon],
2512
- asteroidBelts: [asteroidBelt],
2513
- factions: [faction],
2514
- races: [race],
2515
- bloodlines: [bloodline],
2516
- ancestries: [ancestry],
2517
- npcCorporations: [npcCorp],
2518
- npcStations: [npcStation],
2519
- marketGroups: [rootMarketGroup, marketGroup],
2520
- metaGroups: [metaGroup],
2521
- icons: [icon],
2522
- graphics: [graphic],
2523
- dogmaAttributes: [dogmaAttribute],
2524
- dogmaEffects: [dogmaEffect],
2525
- blueprints: [blueprint],
2526
- planetSchematics: [planetSchematic],
2527
- version: this.createVersionInfo()
2528
- };
2529
- }
2530
- };
2531
1513
  export {
2532
1514
  MemorySdeProvider,
2533
1515
  SdeDataProvider,