@lgriffin/esi.ts 9.7.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.
- package/CHANGELOG.md +370 -0
- package/README.md +168 -231
- package/dist/EsiClient.d.ts +4 -0
- package/dist/EsiClient.d.ts.map +1 -1
- package/dist/EsiClientBuilder.d.ts.map +1 -1
- package/dist/auth/EsiTokenManager.d.ts +200 -0
- package/dist/auth/EsiTokenManager.d.ts.map +1 -0
- package/dist/auth/EveSsoClient.d.ts +88 -0
- package/dist/auth/EveSsoClient.d.ts.map +1 -0
- package/dist/auth/errors.d.ts +42 -0
- package/dist/auth/errors.d.ts.map +1 -0
- package/dist/auth/index.d.ts +14 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/jwt.d.ts +43 -0
- package/dist/auth/jwt.d.ts.map +1 -0
- package/dist/auth/pkce.d.ts +21 -0
- package/dist/auth/pkce.d.ts.map +1 -0
- package/dist/auth/storage/FileTokenStorage.d.ts +44 -0
- package/dist/auth/storage/FileTokenStorage.d.ts.map +1 -0
- package/dist/auth/storage/MemoryTokenStorage.d.ts +18 -0
- package/dist/auth/storage/MemoryTokenStorage.d.ts.map +1 -0
- package/dist/auth/types.d.ts +42 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/chunk-3ZI5A37L.mjs +1065 -0
- package/dist/chunk-3ZI5A37L.mjs.map +1 -0
- package/dist/chunk-7A72QFDF.mjs +416 -0
- package/dist/chunk-7A72QFDF.mjs.map +1 -0
- package/dist/chunk-BBSHKVPI.js +71 -0
- package/dist/chunk-BBSHKVPI.js.map +1 -0
- package/dist/chunk-HPSACXX3.js +416 -0
- package/dist/chunk-HPSACXX3.js.map +1 -0
- package/dist/chunk-JIW4BXLP.mjs +17 -0
- package/dist/chunk-JIW4BXLP.mjs.map +1 -0
- package/dist/chunk-MSJHIJXA.js +1065 -0
- package/dist/chunk-MSJHIJXA.js.map +1 -0
- package/dist/chunk-PZ5AY32C.js +10 -0
- package/dist/chunk-PZ5AY32C.js.map +1 -0
- package/dist/chunk-R7D7M2LQ.mjs +71 -0
- package/dist/chunk-R7D7M2LQ.mjs.map +1 -0
- package/dist/chunk-SAQBXXTM.js +2614 -0
- package/dist/chunk-SAQBXXTM.js.map +1 -0
- package/dist/chunk-VZS32UQ3.mjs +2614 -0
- package/dist/chunk-VZS32UQ3.mjs.map +1 -0
- package/dist/clients/AllianceClient.d.ts.map +1 -1
- package/dist/clients/ContractsClient.d.ts +12 -9
- package/dist/clients/ContractsClient.d.ts.map +1 -1
- package/dist/clients/CorporationProjectsClient.d.ts +22 -12
- package/dist/clients/CorporationProjectsClient.d.ts.map +1 -1
- package/dist/clients/FactionClient.d.ts +4 -4
- package/dist/clients/FactionClient.d.ts.map +1 -1
- package/dist/clients/FreelanceJobsClient.d.ts +3 -3
- package/dist/clients/FreelanceJobsClient.d.ts.map +1 -1
- package/dist/clients/IndustryClient.d.ts +4 -4
- package/dist/clients/IndustryClient.d.ts.map +1 -1
- package/dist/clients/MailClient.d.ts +4 -4
- package/dist/clients/MailClient.d.ts.map +1 -1
- package/dist/clients/MetaClient.d.ts +3 -2
- package/dist/clients/MetaClient.d.ts.map +1 -1
- package/dist/clients/WalletClient.d.ts +4 -4
- package/dist/clients/WalletClient.d.ts.map +1 -1
- package/dist/core/ApiClient.d.ts +4 -0
- package/dist/core/ApiClient.d.ts.map +1 -1
- package/dist/core/ApiRequestHandler.d.ts.map +1 -1
- package/dist/core/BatchRequestHandler.d.ts.map +1 -1
- package/dist/core/RequestDeduplicator.d.ts +2 -0
- package/dist/core/RequestDeduplicator.d.ts.map +1 -1
- package/dist/core/RetryStrategy.d.ts +2 -0
- package/dist/core/RetryStrategy.d.ts.map +1 -1
- package/dist/core/cache/ETagCacheManager.d.ts +4 -0
- package/dist/core/cache/ETagCacheManager.d.ts.map +1 -1
- package/dist/core/circuitBreaker/CircuitBreaker.d.ts +3 -0
- package/dist/core/circuitBreaker/CircuitBreaker.d.ts.map +1 -1
- package/dist/core/configureApiClient.d.ts.map +1 -1
- package/dist/core/constants.d.ts +2 -2
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/endpoints/calendarEndpoints.d.ts +7 -7
- package/dist/core/endpoints/characterEndpoints.d.ts +2 -2
- package/dist/core/endpoints/cloneEndpoints.d.ts +2 -2
- package/dist/core/endpoints/contractEndpoints.d.ts +15 -22
- package/dist/core/endpoints/contractEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/corporationEndpoints.d.ts +19 -22
- package/dist/core/endpoints/corporationEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/corporationProjectEndpoints.d.ts +75 -23
- package/dist/core/endpoints/corporationProjectEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/createClient.d.ts.map +1 -1
- package/dist/core/endpoints/dogmaEndpoints.d.ts +2 -2
- package/dist/core/endpoints/factionEndpoints.d.ts +36 -36
- package/dist/core/endpoints/factionEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/fleetEndpoints.d.ts +1 -1
- package/dist/core/endpoints/freelanceJobsEndpoints.d.ts +131 -122
- package/dist/core/endpoints/freelanceJobsEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/industryEndpoints.d.ts +6 -6
- package/dist/core/endpoints/industryEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/mailEndpoints.d.ts +3 -5
- package/dist/core/endpoints/mailEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/mercenaryEndpoints.d.ts +1 -1
- package/dist/core/endpoints/metaEndpoints.d.ts +5 -1
- package/dist/core/endpoints/metaEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/piEndpoints.d.ts +2 -2
- package/dist/core/endpoints/statusEndpoints.d.ts +1 -1
- package/dist/core/endpoints/universeEndpoints.d.ts +22 -22
- package/dist/core/endpoints/walletEndpoints.d.ts +2 -3
- package/dist/core/endpoints/walletEndpoints.d.ts.map +1 -1
- package/dist/core/logger/DefaultLogger.d.ts +31 -0
- package/dist/core/logger/DefaultLogger.d.ts.map +1 -0
- package/dist/core/logger/ILogger.d.ts +14 -4
- package/dist/core/logger/ILogger.d.ts.map +1 -1
- package/dist/core/logger/NoopLogger.d.ts +4 -0
- package/dist/core/logger/NoopLogger.d.ts.map +1 -1
- package/dist/core/logger/clientLog.d.ts +11 -0
- package/dist/core/logger/clientLog.d.ts.map +1 -0
- package/dist/core/logger/logger.d.ts +11 -3
- package/dist/core/logger/logger.d.ts.map +1 -1
- package/dist/core/logger/loggerUtil.d.ts +8 -6
- package/dist/core/logger/loggerUtil.d.ts.map +1 -1
- package/dist/core/logger/resolveLogger.d.ts +10 -0
- package/dist/core/logger/resolveLogger.d.ts.map +1 -0
- package/dist/core/pagination/AsyncPaginationIterator.d.ts.map +1 -1
- package/dist/core/pagination/CursorPaginationHandler.d.ts.map +1 -1
- package/dist/core/pagination/PaginationHandler.d.ts.map +1 -1
- package/dist/core/rateLimiter/RateLimiter.d.ts.map +1 -1
- package/dist/core/requestPipeline/cachePolicy.d.ts +14 -0
- package/dist/core/requestPipeline/cachePolicy.d.ts.map +1 -1
- package/dist/core/requestPipeline/fetchExecution.d.ts +1 -1
- package/dist/core/requestPipeline/fetchExecution.d.ts.map +1 -1
- package/dist/core/requestPipeline/headers.d.ts.map +1 -1
- package/dist/core/requestPipeline/index.d.ts +2 -2
- package/dist/core/requestPipeline/index.d.ts.map +1 -1
- package/dist/core/requestPipeline/paginationOrchestration.d.ts.map +1 -1
- package/dist/core/requestPipeline/statusHandling.d.ts +8 -2
- package/dist/core/requestPipeline/statusHandling.d.ts.map +1 -1
- package/dist/core/util/concurrency.d.ts +29 -0
- package/dist/core/util/concurrency.d.ts.map +1 -0
- package/dist/errors.d.ts +1 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +53 -195
- package/dist/errors.js.map +1 -1
- package/dist/errors.mjs +37 -129
- package/dist/errors.mjs.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1972 -3472
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1606 -2995
- package/dist/index.mjs.map +1 -1
- package/dist/schemas/calendar.d.ts +9 -7
- package/dist/schemas/calendar.d.ts.map +1 -1
- package/dist/schemas/character.d.ts +2 -2
- package/dist/schemas/clones.d.ts +2 -2
- package/dist/schemas/contracts.d.ts +69 -6
- package/dist/schemas/contracts.d.ts.map +1 -1
- package/dist/schemas/corporation-projects.d.ts +96 -9
- package/dist/schemas/corporation-projects.d.ts.map +1 -1
- package/dist/schemas/corporation.d.ts +34 -22
- package/dist/schemas/corporation.d.ts.map +1 -1
- package/dist/schemas/dogma.d.ts +2 -2
- package/dist/schemas/faction-warfare.d.ts +125 -12
- package/dist/schemas/faction-warfare.d.ts.map +1 -1
- package/dist/schemas/fleet.d.ts +1 -1
- package/dist/schemas/freelance-jobs.d.ts +52 -22
- package/dist/schemas/freelance-jobs.d.ts.map +1 -1
- package/dist/schemas/index.js +420 -2479
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/index.mjs +225 -2065
- package/dist/schemas/index.mjs.map +1 -1
- package/dist/schemas/industry.d.ts +33 -0
- package/dist/schemas/industry.d.ts.map +1 -1
- package/dist/schemas/mail.d.ts +24 -5
- package/dist/schemas/mail.d.ts.map +1 -1
- package/dist/schemas/mercenary.d.ts +1 -1
- package/dist/schemas/meta.d.ts +12 -1
- package/dist/schemas/meta.d.ts.map +1 -1
- package/dist/schemas/pi.d.ts +2 -2
- package/dist/schemas/status.d.ts +1 -1
- package/dist/schemas/universe.d.ts +22 -22
- package/dist/schemas/universe.d.ts.map +1 -1
- package/dist/schemas/wallet.d.ts +16 -0
- package/dist/schemas/wallet.d.ts.map +1 -1
- package/dist/sde/SdeDataProvider.d.ts.map +1 -1
- package/dist/sde/index.js +95 -1162
- package/dist/sde/index.js.map +1 -1
- package/dist/sde/index.mjs +73 -1091
- package/dist/sde/index.mjs.map +1 -1
- package/dist/sde/ingestion/SdeExtractor.d.ts.map +1 -1
- package/dist/sde/ingestion/metadata.d.ts +13 -0
- package/dist/sde/ingestion/metadata.d.ts.map +1 -0
- package/dist/sde/memory.js +21 -1095
- package/dist/sde/memory.js.map +1 -1
- package/dist/sde/memory.mjs +13 -1051
- package/dist/sde/memory.mjs.map +1 -1
- package/dist/sde/optionalPeers.d.ts +25 -0
- package/dist/sde/optionalPeers.d.ts.map +1 -0
- package/dist/testing/TestDataFactory.d.ts +28 -1
- package/dist/testing/TestDataFactory.d.ts.map +1 -1
- package/dist/testing/index.js +116 -125
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/index.mjs +110 -82
- package/dist/testing/index.mjs.map +1 -1
- package/dist/types/contracts.d.ts +4 -1
- package/dist/types/contracts.d.ts.map +1 -1
- package/dist/types/corporation-projects.d.ts +5 -1
- package/dist/types/corporation-projects.d.ts.map +1 -1
- package/dist/types/faction-warfare.d.ts +9 -1
- package/dist/types/faction-warfare.d.ts.map +1 -1
- package/dist/types/freelance-jobs.d.ts +2 -1
- package/dist/types/freelance-jobs.d.ts.map +1 -1
- package/dist/types/generated/spec-alignment.check.d.ts +2 -2
- package/dist/types/industry.d.ts +2 -1
- package/dist/types/industry.d.ts.map +1 -1
- package/dist/types/mail.d.ts +2 -1
- package/dist/types/mail.d.ts.map +1 -1
- package/dist/types/meta.d.ts +2 -1
- package/dist/types/meta.d.ts.map +1 -1
- package/dist/types/wallet.d.ts +2 -1
- package/dist/types/wallet.d.ts.map +1 -1
- package/package.json +46 -23
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/ESI.ts/ESI.ts/dist/chunk-MSJHIJXA.js","../src/sde/errors.ts","../src/sde/MemorySdeProvider.ts","../src/sde/SdeTestDataFactory.ts"],"names":[],"mappings":"AAAA;ACAO,IAAM,SAAA,EAAN,MAAA,QAAuB,MAAM;AAAA,EAClC,WAAA,CAAY,OAAA,EAAiB;AAC3B,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,KAAA,EAAO,UAAA;AAAA,EACd;AACF,CAAA;AAEO,IAAM,iBAAA,EAAN,MAAA,QAA+B,SAAS;AAAA,EACpB;AAAA,EAEzB,WAAA,CAAY,OAAA,EAAiB,KAAA,EAAiB;AAC5C,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,KAAA,EAAO,kBAAA;AACZ,IAAA,IAAA,CAAK,MAAA,EAAQ,KAAA;AAAA,EACf;AACF,CAAA;AAEO,IAAM,mBAAA,EAAN,MAAA,QAAiC,SAAS;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EAEhB,WAAA,CAAY,UAAA,EAAoB,eAAA,EAA0B,QAAA,EAAmB;AAC3E,IAAA,MAAM,SAAA,EAAW,SAAA,IAAa,KAAA,EAAA,EAAY,CAAA,MAAA,EAAS,QAAQ,CAAA,CAAA,EAAA,EAAM,EAAA;AACjE,IAAA,KAAA,CAAM,CAAA,0BAAA,EAA6B,UAAU,CAAA,EAAA;AACjC,IAAA;AACW,IAAA;AACL,IAAA;AACF,IAAA;AAClB,EAAA;AACF;AAE6C;AAC3B,EAAA;AACA,EAAA;AAE8B,EAAA;AACJ,IAAA;AAC5B,IAAA;AACI,IAAA;AACF,IAAA;AAChB,EAAA;AACF;AAE8D;AACpC,EAAA;AAC1B;AAE8E;AACpD,EAAA;AAC1B;AAI+B;AACL,EAAA;AAC1B;AAIoC;AACV,EAAA;AAC1B;ADZkD;AACA;AE0DY;AACO,iBAAA;AAC3D,EAAA;AAE8B,EAAA;AAKzB,IAAA;AACC,MAAA;AACR,QAAA;AAC0C,QAAA;AAC5C,MAAA;AACF,IAAA;AAE2C,IAAA;AACE,IAAA;AACA,IAAA;AACA,IAAA;AAC7C,IAAA;AACE,MAAA;AACK,MAAA;AACI,MAAA;AACX,IAAA;AACmC,IAAA;AACQ,IAAA;AACA,IAAA;AACE,IAAA;AACF,IAAA;AACP,IAAA;AACK,IAAA;AACE,IAAA;AACE,IAAA;AACA,IAAA;AAC7C,IAAA;AACE,MAAA;AACK,MAAA;AACI,MAAA;AACX,IAAA;AACkC,IAAA;AACC,IAAA;AACW,IAAA;AACH,IAAA;AACF,IAAA;AACzC,IAAA;AACE,MAAA;AACK,MAAA;AACI,MAAA;AACX,IAAA;AACmC,IAAA;AACU,IAAA;AAC7C,IAAA;AACE,MAAA;AACK,MAAA;AACI,MAAA;AACX,IAAA;AAC8C,IAAA;AACT,IAAA;AACH,IAAA;AAClC,IAAA;AACE,MAAA;AACK,MAAA;AACI,MAAA;AACX,IAAA;AACkC,IAAA;AAClC,IAAA;AACE,MAAA;AACK,MAAA;AACI,MAAA;AACX,IAAA;AACA,IAAA;AACE,MAAA;AACK,MAAA;AACI,MAAA;AACX,IAAA;AAC8C,IAAA;AAC9C,IAAA;AACE,MAAA;AACK,MAAA;AACI,MAAA;AACX,IAAA;AAC2C,IAAA;AAC3C,IAAA;AACE,MAAA;AACK,MAAA;AACI,MAAA;AACX,IAAA;AACoC,IAAA;AACpC,IAAA;AACE,MAAA;AACK,MAAA;AACI,MAAA;AACX,IAAA;AAC6C,IAAA;AACT,IAAA;AACO,IAAA;AACR,IAAA;AACnC,IAAA;AACE,MAAA;AACK,MAAA;AACI,MAAA;AACX,IAAA;AACA,IAAA;AACE,MAAA;AACK,MAAA;AACI,MAAA;AACX,IAAA;AAC4C,IAAA;AACR,IAAA;AACF,IAAA;AACO,IAAA;AACA,IAAA;AACC,IAAA;AAEvB,IAAA;AACiB,MAAA;AACI,MAAA;AACE,MAAA;AAChB,MAAA;AAC1B,IAAA;AACF,EAAA;AAEiE,EAAA;AAChB,IAAA;AACjD,EAAA;AAE0C,EAAA;AACT,IAAA;AACmB,IAAA;AACpD,EAAA;AAEuE,EAAA;AACpC,IAAA;AACwB,MAAA;AACzD,IAAA;AACF,EAAA;AAOO,EAAA;AACgC,IAAA;AACf,IAAA;AACwB,IAAA;AACO,MAAA;AAChB,MAAA;AAChB,QAAA;AACY,QAAA;AAC/B,MAAA;AACF,IAAA;AACO,IAAA;AACT,EAAA;AAAA;AAGwC,EAAA;AACC,IAAA;AACzC,EAAA;AAC4C,EAAA;AACG,IAAA;AAC/C,EAAA;AAC2C,EAAA;AACA,IAAA;AAC3C,EAAA;AACoD,EAAA;AACf,IAAA;AACrC,EAAA;AACoD,EAAA;AACZ,IAAA;AACxC,EAAA;AACkC,EAAA;AACO,IAAA;AACzC,EAAA;AAAA;AAG2C,EAAA;AACE,IAAA;AAC7C,EAAA;AAC0B,EAAA;AACY,IAAA;AACtC,EAAA;AACgE,EAAA;AACpB,IAAA;AAC5C,EAAA;AAC6D,EAAA;AAChB,IAAA;AAC7C,EAAA;AACqD,EAAA;AACV,IAAA;AAC3C,EAAA;AACuE,EAAA;AACzD,IAAA;AACV,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AACiD,EAAA;AACV,IAAA;AACvC,EAAA;AACmD,EAAA;AACX,IAAA;AACxC,EAAA;AAAA;AAGwD,EAAA;AACZ,IAAA;AAC5C,EAAA;AACmE,EAAA;AACvB,IAAA;AAC5C,EAAA;AAAA;AAGqC,EAAA;AACI,IAAA;AACzC,EAAA;AAC+C,EAAA;AAEV,IAAA;AAErC,EAAA;AAC2C,EAAA;AACE,IAAA;AAC7C,EAAA;AAC+C,EAAA;AACT,IAAA;AACtC,EAAA;AACqC,EAAA;AACI,IAAA;AACzC,EAAA;AAC2C,EAAA;AACP,IAAA;AACpC,EAAA;AAC6D,EAAA;AACjB,IAAA;AAC5C,EAAA;AAC2D,EAAA;AACd,IAAA;AAC7C,EAAA;AAAA;AAG8C,EAAA;AACC,IAAA;AAC/C,EAAA;AAC4B,EAAA;AACW,IAAA;AACvC,EAAA;AACqC,EAAA;AACI,IAAA;AACzC,EAAA;AACsB,EAAA;AACc,IAAA;AACpC,EAAA;AACoD,EAAA;AACZ,IAAA;AACxC,EAAA;AACiD,EAAA;AACR,IAAA;AACzC,EAAA;AACiD,EAAA;AACT,IAAA;AACxC,EAAA;AAC0D,EAAA;AACjB,IAAA;AACzC,EAAA;AAAA;AAGgE,EAAA;AAClB,IAAA;AAC9C,EAAA;AACiE,EAAA;AAClB,IAAA;AAC/C,EAAA;AACoD,EAAA;AACV,IAAA;AAC1C,EAAA;AACuD,EAAA;AACZ,IAAA;AAC3C,EAAA;AACqD,EAAA;AACV,IAAA;AAC3C,EAAA;AAAA;AAG0D,EAAA;AACf,IAAA;AAC3C,EAAA;AAC8D,EAAA;AAClB,IAAA;AAC5C,EAAA;AACqC,EAAA;AACsB,IAAA;AAC5B,MAAA;AAC7B,IAAA;AACF,EAAA;AACwD,EAAA;AACpB,IAAA;AACpC,EAAA;AACmE,EAAA;AACvB,IAAA;AAC5C,EAAA;AAAA;AAGoD,EAAA;AACX,IAAA;AACzC,EAAA;AACgC,EAAA;AACU,IAAA;AAC1C,EAAA;AACqC,EAAA;AACI,IAAA;AACzC,EAAA;AAC8C,EAAA;AACC,IAAA;AAC/C,EAAA;AAAA;AAG8D,EAAA;AAChB,IAAA;AAC9C,EAAA;AACyE,EAAA;AAC1B,IAAA;AAC/C,EAAA;AACqD,EAAA;AACV,IAAA;AAC3C,EAAA;AACmE,EAAA;AACvB,IAAA;AAC5C,EAAA;AAGiC,EAAA;AACX,IAAA;AACtB,EAAA;AAC2D,EAAA;AAClC,IAAA;AACzB,EAAA;AAC+C,EAAA;AACA,IAAA;AAC/C,EAAA;AACgC,EAAA;AACU,IAAA;AAC1C,EAAA;AAAA;AAGwD,EAAA;AAChB,IAAA;AACxC,EAAA;AACsE,EAAA;AACvB,IAAA;AAC/C,EAAA;AAC4C,EAAA;AACI,IAAA;AAChD,EAAA;AACyE,EAAA;AACnD,IAAA;AACtB,EAAA;AAC+C,EAAA;AACtB,IAAA;AACzB,EAAA;AAAA;AAGoD,EAAA;AACX,IAAA;AACzC,EAAA;AACgC,EAAA;AACU,IAAA;AAC1C,EAAA;AAC0D,EAAA;AACb,IAAA;AAC7C,EAAA;AAC2D,EAAA;AACb,IAAA;AAC9C,EAAA;AAAA;AAG0D,EAAA;AAChB,IAAA;AAC1C,EAAA;AACoC,EAAA;AACO,IAAA;AAC3C,EAAA;AAAA;AAGsE,EAAA;AAChD,IAAA;AACtB,EAAA;AACkD,EAAA;AACzB,IAAA;AACzB,EAAA;AAAA;AAG0D,EAAA;AACd,IAAA;AAC5C,EAAA;AACqE,EAAA;AACxB,IAAA;AAC7C,EAAA;AACqE,EAAA;AACxB,IAAA;AAC7C,EAAA;AAAA;AAGuD,EAAA;AACb,IAAA;AAC1C,EAAA;AACkC,EAAA;AACS,IAAA;AAC3C,EAAA;AAAA;AAK8B,EAAA;AACR,IAAA;AACtB,EAAA;AACqD,EAAA;AAC5B,IAAA;AACzB,EAAA;AAEE,EAAA;AAEY,IAAA;AACV,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAC0D,EAAA;AACjC,IAAA;AACzB,EAAA;AAAA;AAGiD,EAAA;AACV,IAAA;AACvC,EAAA;AAC8B,EAAA;AACU,IAAA;AACxC,EAAA;AAAA;AAGyE,EAAA;AACzB,IAAA;AAChD,EAAA;AAAA;AAG2C,EAAA;AACE,IAAA;AAC7C,EAAA;AAC0B,EAAA;AACY,IAAA;AACtC,EAAA;AAAA;AAG6D,EAAA;AACjB,IAAA;AAC5C,EAAA;AAC2D,EAAA;AACd,IAAA;AAC7C,EAAA;AAAA;AAGqC,EAAA;AACI,IAAA;AACzC,EAAA;AAC0D,EAAA;AACf,IAAA;AAC3C,EAAA;AACqD,EAAA;AACT,IAAA;AAC5C,EAAA;AAAA;AAGyE,EAAA;AACzB,IAAA;AAChD,EAAA;AAC8C,EAAA;AACrB,IAAA;AACzB,EAAA;AACmE,EAAA;AACrB,IAAA;AAC9C,EAAA;AAC0C,EAAA;AACK,IAAA;AAC/C,EAAA;AAAA;AAG+C,EAAA;AACD,IAAA;AAC9C,EAAA;AACqD,EAAA;AACT,IAAA;AAC5C,EAAA;AAC+C,EAAA;AACC,IAAA;AAChD,EAAA;AAAA;AAG8C,EAAA;AACC,IAAA;AAC/C,EAAA;AAC8C,EAAA;AACC,IAAA;AAC/C,EAAA;AAC8C,EAAA;AACE,IAAA;AAChD,EAAA;AAC4B,EAAA;AACY,IAAA;AACxC,EAAA;AAAA;AAMY,EAAA;AAC0B,IAAA;AACtC,EAAA;AAEoE,EAAA;AAC/B,IAAA;AACrC,EAAA;AAAA;AAG6B,EAAA;AACE,IAAA;AAC/B,EAAA;AAEc,EAAA;AACI,IAAA;AAClB,EAAA;AACF;AF/GkD;AACA;AGrflB;AACkC,EAAA;AACvD,IAAA;AACG,MAAA;AACC,MAAA;AACH,MAAA;AACA,MAAA;AACO,MAAA;AACF,MAAA;AACK,MAAA;AACR,MAAA;AACA,MAAA;AACK,MAAA;AACF,MAAA;AACF,MAAA;AACD,MAAA;AACA,MAAA;AACG,MAAA;AACI,MAAA;AACL,MAAA;AACI,MAAA;AACX,MAAA;AACL,IAAA;AACF,EAAA;AAEmE,EAAA;AAC1D,IAAA;AACI,MAAA;AACG,MAAA;AACF,MAAA;AACE,MAAA;AACU,MAAA;AAChB,MAAA;AACK,MAAA;AACG,MAAA;AACN,MAAA;AACL,MAAA;AACL,IAAA;AACF,EAAA;AAE4E,EAAA;AACnE,IAAA;AACO,MAAA;AACN,MAAA;AACK,MAAA;AACH,MAAA;AACL,MAAA;AACL,IAAA;AACF,EAAA;AAE6D,EAAA;AACpD,IAAA;AACK,MAAA;AACiB,MAAA;AACd,MAAA;AACF,MAAA;AACL,MAAA;AACI,MAAA;AACoC,MAAA;AAC7B,MAAA;AACd,MAAA;AACL,IAAA;AACF,EAAA;AAIiB,EAAA;AACR,IAAA;AACY,MAAA;AACN,MAAA;AACL,MAAA;AACyC,MAAA;AACrC,MAAA;AACyB,MAAA;AAClB,MAAA;AACd,MAAA;AACL,IAAA;AACF,EAAA;AAE4E,EAAA;AACnE,IAAA;AACK,MAAA;AACF,MAAA;AACS,MAAA;AACZ,MAAA;AACU,MAAA;AACH,MAAA;AACN,MAAA;AACc,MAAA;AACoB,MAAA;AACD,MAAA;AAC/B,MAAA;AACE,MAAA;AACA,MAAA;AACK,MAAA;AACC,MAAA;AACR,MAAA;AACc,MAAA;AACZ,MAAA;AACF,MAAA;AACS,MAAA;AACH,MAAA;AACX,MAAA;AACL,IAAA;AACF,EAAA;AAEmE,EAAA;AAC1D,IAAA;AACO,MAAA;AAC4B,MAAA;AACK,MAAA;AAC9B,MAAA;AACP,MAAA;AACL,MAAA;AACL,IAAA;AACF,EAAA;AAEuD,EAAA;AAC9C,IAAA;AACG,MAAA;AACA,MAAA;AACO,MAAA;AACH,MAAA;AACL,QAAA;AACC,QAAA;AACM,QAAA;AACJ,QAAA;AACO,QAAA;AACF,QAAA;AACf,MAAA;AACQ,MAAA;AACL,MAAA;AACL,IAAA;AACF,EAAA;AAE6D,EAAA;AACpD,IAAA;AACK,MAAA;AACgB,MAAA;AACb,MAAA;AACG,MAAA;AACE,MAAA;AACT,MAAA;AACkC,MAAA;AACnC,MAAA;AACO,MAAA;AACF,MAAA;AACL,MAAA;AACO,MAAA;AACZ,MAAA;AACL,IAAA;AACF,EAAA;AAEuD,EAAA;AAC9C,IAAA;AACG,MAAA;AACK,MAAA;AACG,MAAA;AACP,MAAA;AACG,MAAA;AACoC,MAAA;AACxC,MAAA;AACO,MAAA;AACF,MAAA;AACL,MAAA;AACO,MAAA;AACZ,MAAA;AACL,IAAA;AACF,EAAA;AAIgB,EAAA;AACP,IAAA;AACW,MAAA;AACA,MAAA;AACP,MAAA;AACG,MAAA;AACmC,MAAA;AACvC,MAAA;AACO,MAAA;AACF,MAAA;AACL,MAAA;AACL,MAAA;AACL,IAAA;AACF,EAAA;AAEgE,EAAA;AACvD,IAAA;AACM,MAAA;AACI,MAAA;AACF,MAAA;AACH,MAAA;AACQ,MAAA;AACV,MAAA;AACO,MAAA;AACO,MAAA;AAChB,MAAA;AACY,MAAA;AACN,MAAA;AACG,MAAA;AACH,MAAA;AACT,MAAA;AACL,IAAA;AACF,EAAA;AAEuD,EAAA;AAC9C,IAAA;AACG,MAAA;AACK,MAAA;AACL,MAAA;AACF,MAAA;AACM,MAAA;AACH,MAAA;AACN,MAAA;AACL,IAAA;AACF,EAAA;AAEsE,EAAA;AAC7D,IAAA;AACQ,MAAA;AACH,MAAA;AACK,MAAA;AACF,MAAA;AACL,MAAA;AACM,MAAA;AACN,MAAA;AACF,MAAA;AACM,MAAA;AACJ,MAAA;AACG,MAAA;AACR,MAAA;AACL,IAAA;AACF,EAAA;AAEmE,EAAA;AAC1D,IAAA;AACO,MAAA;AACC,MAAA;AACH,MAAA;AACG,MAAA;AACL,MAAA;AACM,MAAA;AACN,MAAA;AACF,MAAA;AACM,MAAA;AACM,MAAA;AACP,MAAA;AACR,MAAA;AACL,IAAA;AACF,EAAA;AAIkB,EAAA;AACT,IAAA;AACU,MAAA;AACR,MAAA;AACE,MAAA;AACI,MAAA;AACL,MAAA;AACmB,MAAA;AACb,MAAA;AACD,MAAA;AACA,MAAA;AACQ,MAAA;AACf,MAAA;AACsB,MAAA;AACpB,MAAA;AACF,MAAA;AACK,MAAA;AACF,MAAA;AACG,MAAA;AACA,MAAA;AACQ,MAAA;AACD,MAAA;AACR,MAAA;AACF,MAAA;AACE,MAAA;AACD,MAAA;AACF,MAAA;AACG,MAAA;AACI,MAAA;AACC,MAAA;AACR,MAAA;AACI,MAAA;AACG,MAAA;AACM,MAAA;AAClB,MAAA;AACL,IAAA;AACF,EAAA;AAEyE,EAAA;AAChE,IAAA;AACM,MAAA;AACK,MAAA;AACH,MAAA;AACJ,MAAA;AACG,MAAA;AACH,MAAA;AACsC,MAAA;AACvB,MAAA;AACA,MAAA;AACE,MAAA;AACX,MAAA;AACP,MAAA;AACU,MAAA;AACf,MAAA;AACL,IAAA;AACF,EAAA;AAE4E,EAAA;AACnE,IAAA;AACU,MAAA;AACF,MAAA;AACH,MAAA;AACF,MAAA;AACF,MAAA;AACS,MAAA;AACZ,MAAA;AACL,IAAA;AACF,EAAA;AAEsE,EAAA;AAC7D,IAAA;AACQ,MAAA;AAC2B,MAAA;AAClC,MAAA;AACE,MAAA;AACI,MAAA;AACC,MAAA;AACV,MAAA;AACL,IAAA;AACF,EAAA;AAEuD,EAAA;AAC9C,IAAA;AACG,MAAA;AACE,MAAA;AACP,MAAA;AACL,IAAA;AACF,EAAA;AAEgE,EAAA;AACvD,IAAA;AACM,MAAA;AACE,MAAA;AACD,MAAA;AACI,MAAA;AACH,MAAA;AACA,MAAA;AACV,MAAA;AACL,IAAA;AACF,EAAA;AAIkB,EAAA;AACT,IAAA;AACQ,MAAA;AACQ,MAAA;AACX,MAAA;AACI,MAAA;AACD,MAAA;AACI,MAAA;AACL,MAAA;AACN,MAAA;AACK,MAAA;AACA,MAAA;AACE,MAAA;AACL,MAAA;AACY,MAAA;AACN,MAAA;AACN,MAAA;AACc,MAAA;AACN,MAAA;AACA,MAAA;AACb,MAAA;AACL,IAAA;AACF,EAAA;AAE4E,EAAA;AACnE,IAAA;AACK,MAAA;AACU,MAAA;AACE,MAAA;AACD,MAAA;AACH,MAAA;AACA,MAAA;AACZ,MAAA;AACQ,MAAA;AACD,MAAA;AACD,MAAA;AACN,MAAA;AACY,MAAA;AACP,MAAA;AACE,MAAA;AACC,MAAA;AACM,MAAA;AACF,MAAA;AACQ,MAAA;AACb,MAAA;AACA,MAAA;AACL,MAAA;AACM,MAAA;AACX,MAAA;AACL,IAAA;AACF,EAAA;AAEsE,EAAA;AAC7D,IAAA;AACO,MAAA;AACK,QAAA;AACP,UAAA;AACK,UAAA;AACmB,YAAA;AACD,YAAA;AAC7B,UAAA;AACuC,UAAA;AACzC,QAAA;AACF,MAAA;AACiB,MAAA;AACG,MAAA;AACjB,MAAA;AACL,IAAA;AACF,EAAA;AAImB,EAAA;AACV,IAAA;AACc,MAAA;AACR,MAAA;AACL,MAAA;AACC,MAAA;AACC,MAAA;AACL,MAAA;AACL,IAAA;AACF,EAAA;AAIkB,EAAA;AACT,IAAA;AACI,MAAA;AACE,MAAA;AACC,MAAA;AACF,MAAA;AACP,MAAA;AACL,IAAA;AACF,EAAA;AAEmD,EAAA;AACT,IAAA;AACJ,IAAA;AACH,IAAA;AACvB,MAAA;AACF,MAAA;AACS,MAAA;AAChB,IAAA;AACgC,IAAA;AACvB,MAAA;AACF,MAAA;AACS,MAAA;AAChB,IAAA;AACgC,IAAA;AACvB,MAAA;AACF,MAAA;AACS,MAAA;AAChB,IAAA;AAEgC,IAAA;AACN,IAAA;AACR,MAAA;AAClB,IAAA;AACsC,IAAA;AAC3B,MAAA;AACJ,MAAA;AACyB,MAAA;AACd,MAAA;AAClB,IAAA;AACsC,IAAA;AAC3B,MAAA;AACJ,MAAA;AACyB,MAAA;AACd,MAAA;AACD,MAAA;AACjB,IAAA;AACoC,IAAA;AACZ,MAAA;AACe,MAAA;AACvC,IAAA;AAE6C,IAAA;AACX,IAAA;AACW,IAAA;AACD,IAAA;AACpB,MAAA;AACxB,IAAA;AAE4B,IAAA;AACQ,IAAA;AACI,IAAA;AACJ,IAAA;AACZ,MAAA;AACxB,IAAA;AACyC,IAAA;AACrB,MAAA;AACN,MAAA;AACd,IAAA;AACwC,IAAA;AAChB,MAAA;AACN,MAAA;AAClB,IAAA;AAE4B,IAAA;AACZ,MAAA;AACT,MAAA;AACS,MAAA;AACL,MAAA;AACX,IAAA;AAC0C,IAAA;AACV,MAAA;AAChC,IAAA;AACsC,IAAA;AACV,IAAA;AACM,IAAA;AAEP,IAAA;AACe,IAAA;AACJ,IAAA;AACV,IAAA;AAEtB,IAAA;AACgB,MAAA;AACP,MAAA;AACa,MAAA;AACX,MAAA;AACc,MAAA;AACC,MAAA;AACX,MAAA;AACR,MAAA;AACI,MAAA;AACJ,MAAA;AACgB,MAAA;AACV,MAAA;AACN,MAAA;AACU,MAAA;AACD,MAAA;AACI,MAAA;AACD,MAAA;AACmB,MAAA;AACrB,MAAA;AACV,MAAA;AACM,MAAA;AACc,MAAA;AACN,MAAA;AACJ,MAAA;AACY,MAAA;AACF,MAAA;AAClC,IAAA;AACF,EAAA;AACF;AH2ckD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/ESI.ts/ESI.ts/dist/chunk-MSJHIJXA.js","sourcesContent":[null,"export class SdeError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'SdeError';\n }\n}\n\nexport class SdeDatabaseError extends SdeError {\n public override readonly cause: unknown;\n\n constructor(message: string, cause?: unknown) {\n super(message);\n this.name = 'SdeDatabaseError';\n this.cause = cause;\n }\n}\n\nexport class SdeValidationError extends SdeError {\n public readonly validationError: unknown;\n public readonly entityType: string;\n public readonly entityId?: number;\n\n constructor(entityType: string, validationError: unknown, entityId?: number) {\n const idSuffix = entityId !== undefined ? ` (id: ${entityId})` : '';\n super(`SDE validation failed for ${entityType}${idSuffix}`);\n this.name = 'SdeValidationError';\n this.validationError = validationError;\n this.entityType = entityType;\n this.entityId = entityId;\n }\n}\n\nexport class SdeVersionMismatchError extends SdeError {\n public readonly expected: string;\n public readonly actual: string;\n\n constructor(expected: string, actual: string) {\n super(`SDE version mismatch: expected ${expected}, got ${actual}`);\n this.name = 'SdeVersionMismatchError';\n this.expected = expected;\n this.actual = actual;\n }\n}\n\nexport function isSdeError(error: unknown): error is SdeError {\n return error instanceof SdeError;\n}\n\nexport function isSdeDatabaseError(error: unknown): error is SdeDatabaseError {\n return error instanceof SdeDatabaseError;\n}\n\nexport function isSdeValidationError(\n error: unknown,\n): error is SdeValidationError {\n return error instanceof SdeValidationError;\n}\n\nexport function isSdeVersionMismatch(\n error: unknown,\n): error is SdeVersionMismatchError {\n return error instanceof SdeVersionMismatchError;\n}\n","import type { IStaticDataProvider } from './IStaticDataProvider';\nimport type {\n EveType,\n EveGroup,\n EveCategory,\n Region,\n Constellation,\n SolarSystem,\n Stargate,\n Star,\n Planet,\n Moon,\n AsteroidBelt,\n Faction,\n Race,\n Bloodline,\n Ancestry,\n NpcCorporation,\n NpcStation,\n MarketGroup,\n MetaGroup,\n Icon,\n Graphic,\n DogmaAttribute,\n DogmaEffect,\n Blueprint,\n PlanetSchematic,\n AgentType,\n AgentInSpace,\n Certificate,\n CharacterAttribute,\n CloneGrade,\n CorporationActivity,\n DogmaAttributeCategory,\n DogmaUnit,\n IndustryActivity,\n Landmark,\n NotificationType,\n NpcCharacter,\n NpcCorporationDivision,\n School,\n SecondarySun,\n Skin,\n SkinLicense,\n StationOperation,\n StationService,\n TypeDogma,\n TypeMaterial,\n TypeBonus,\n Mission,\n Dungeon,\n EpicArc,\n} from './types';\nimport type { SdeVersionInfo } from './version';\n\nexport interface MemorySdeData {\n types?: EveType[];\n groups?: EveGroup[];\n categories?: EveCategory[];\n regions?: Region[];\n constellations?: Constellation[];\n solarSystems?: SolarSystem[];\n stargates?: Stargate[];\n stars?: Star[];\n planets?: Planet[];\n moons?: Moon[];\n asteroidBelts?: AsteroidBelt[];\n factions?: Faction[];\n races?: Race[];\n bloodlines?: Bloodline[];\n ancestries?: Ancestry[];\n npcCorporations?: NpcCorporation[];\n npcStations?: NpcStation[];\n marketGroups?: MarketGroup[];\n metaGroups?: MetaGroup[];\n icons?: Icon[];\n graphics?: Graphic[];\n dogmaAttributes?: DogmaAttribute[];\n dogmaEffects?: DogmaEffect[];\n blueprints?: Blueprint[];\n planetSchematics?: PlanetSchematic[];\n agentTypes?: AgentType[];\n agentsInSpace?: AgentInSpace[];\n certificates?: Certificate[];\n characterAttributes?: CharacterAttribute[];\n cloneGrades?: CloneGrade[];\n corporationActivities?: CorporationActivity[];\n dogmaAttributeCategories?: DogmaAttributeCategory[];\n dogmaUnits?: DogmaUnit[];\n industryActivities?: IndustryActivity[];\n landmarks?: Landmark[];\n notificationTypes?: NotificationType[];\n npcCharacters?: NpcCharacter[];\n npcCorporationDivisions?: NpcCorporationDivision[];\n schools?: School[];\n secondarySuns?: SecondarySun[];\n skins?: Skin[];\n skinLicenses?: SkinLicense[];\n stationOperations?: StationOperation[];\n stationServices?: StationService[];\n typeDogma?: TypeDogma[];\n typeMaterials?: TypeMaterial[];\n typeBonuses?: TypeBonus[];\n missions?: Mission[];\n dungeons?: Dungeon[];\n epicArcs?: EpicArc[];\n version?: Partial<SdeVersionInfo>;\n}\n\nexport class MemorySdeProvider implements IStaticDataProvider {\n private data: Map<string, Map<number | string, unknown>> = new Map();\n private versionInfo: SdeVersionInfo;\n\n constructor(data: MemorySdeData = {}) {\n const register = <T>(\n key: string,\n items: T[] | undefined,\n idFn: (item: T) => number | string,\n ): void => {\n this.data.set(\n key,\n new Map((items ?? []).map((item) => [idFn(item), item])),\n );\n };\n\n register('eve_types', data.types, (t) => t.typeId);\n register('eve_groups', data.groups, (g) => g.groupId);\n register('eve_categories', data.categories, (c) => c.categoryId);\n register('eve_regions', data.regions, (r) => r.regionId);\n register(\n 'eve_constellations',\n data.constellations,\n (c) => c.constellationId,\n );\n register('eve_solar_systems', data.solarSystems, (s) => s.systemId);\n register('eve_stargates', data.stargates, (s) => s.stargateId);\n register('eve_stars', data.stars, (s) => s.starId);\n register('eve_planets', data.planets, (p) => p.planetId);\n register('eve_moons', data.moons, (m) => m.moonId);\n register('eve_asteroid_belts', data.asteroidBelts, (a) => a.asteroidBeltId);\n register('eve_factions', data.factions, (f) => f.factionId);\n register('eve_races', data.races, (r) => r.raceId);\n register('eve_bloodlines', data.bloodlines, (b) => b.bloodlineId);\n register('eve_ancestries', data.ancestries, (a) => a.ancestryId);\n register(\n 'eve_npc_corporations',\n data.npcCorporations,\n (c) => c.corporationId,\n );\n register('eve_npc_stations', data.npcStations, (s) => s.stationId);\n register('eve_market_groups', data.marketGroups, (g) => g.marketGroupId);\n register('eve_meta_groups', data.metaGroups, (g) => g.metaGroupId);\n register('eve_icons', data.icons, (i) => i.iconId);\n register('eve_graphics', data.graphics, (g) => g.graphicId);\n register(\n 'eve_dogma_attributes',\n data.dogmaAttributes,\n (a) => a.attributeId,\n );\n register('eve_dogma_effects', data.dogmaEffects, (e) => e.effectId);\n register('eve_blueprints', data.blueprints, (b) => b.blueprintTypeId);\n register(\n 'eve_planet_schematics',\n data.planetSchematics,\n (s) => s.planetSchematicId,\n );\n register('eve_agent_types', data.agentTypes, (a) => a.agentTypeId);\n register('eve_agents_in_space', data.agentsInSpace, (a) => a.characterId);\n register('eve_certificates', data.certificates, (c) => c.certificateId);\n register(\n 'eve_character_attributes',\n data.characterAttributes,\n (c) => c.attributeId,\n );\n register('eve_clone_grades', data.cloneGrades, (c) => c.cloneGradeId);\n register(\n 'eve_corporation_activities',\n data.corporationActivities,\n (c) => c.corporationActivityId,\n );\n register(\n 'eve_dogma_attribute_categories',\n data.dogmaAttributeCategories,\n (d) => d.attributeCategoryId,\n );\n register('eve_dogma_units', data.dogmaUnits, (d) => d.unitId);\n register(\n 'eve_industry_activities',\n data.industryActivities,\n (i) => i.industryActivityId,\n );\n register('eve_landmarks', data.landmarks, (l) => l.landmarkId);\n register(\n 'eve_notification_types',\n data.notificationTypes,\n (n) => n.notificationTypeId,\n );\n register('eve_npc_characters', data.npcCharacters, (n) => n.characterId);\n register(\n 'eve_npc_corporation_divisions',\n data.npcCorporationDivisions,\n (n) => n.npcCorporationDivisionId,\n );\n register('eve_schools', data.schools, (s) => s.schoolId);\n register('eve_secondary_suns', data.secondarySuns, (s) => s.secondarySunId);\n register('eve_skins', data.skins, (s) => s.skinId);\n register('eve_skin_licenses', data.skinLicenses, (s) => s.licenseTypeId);\n register(\n 'eve_station_operations',\n data.stationOperations,\n (s) => s.stationOperationId,\n );\n register(\n 'eve_station_services',\n data.stationServices,\n (s) => s.stationServiceId,\n );\n register('eve_type_dogma', data.typeDogma, (t) => t.typeId);\n register('eve_type_materials', data.typeMaterials, (t) => t.typeId);\n register('eve_type_bonuses', data.typeBonuses, (t) => t.typeId);\n register('eve_missions', data.missions, (m) => m.missionId);\n register('eve_dungeons', data.dungeons, (d) => d.dungeonId);\n register('eve_epic_arcs', data.epicArcs, (e) => e.epicArcId);\n\n this.versionInfo = {\n version: data.version?.version ?? '1.0.0-test',\n buildDate: data.version?.buildDate ?? '2024-01-01T00:00:00Z',\n importedAt: data.version?.importedAt ?? '2024-01-01T00:00:00Z',\n checksum: data.version?.checksum,\n };\n }\n\n private getById<T>(table: string, id: number | string): T | null {\n return (this.data.get(table)?.get(id) as T) ?? null;\n }\n\n private getAllFrom<T>(table: string): T[] {\n const map = this.data.get(table);\n return map ? (Array.from(map.values()) as T[]) : [];\n }\n\n private filterBy<T>(table: string, field: string, value: unknown): T[] {\n return this.getAllFrom<T>(table).filter(\n (item) => (item as Record<string, unknown>)[field] === value,\n );\n }\n\n private searchBy<T>(\n table: string,\n field: string,\n query: string,\n limit = 25,\n ): T[] {\n const lowerQuery = query.toLowerCase();\n const results: T[] = [];\n for (const item of this.getAllFrom<T>(table)) {\n const val = (item as Record<string, unknown>)[field];\n if (typeof val === 'string' && val.toLowerCase().includes(lowerQuery)) {\n results.push(item);\n if (results.length >= limit) break;\n }\n }\n return results;\n }\n\n // --- Types, Groups, Categories ---\n getType(typeId: number): EveType | null {\n return this.getById('eve_types', typeId);\n }\n getTypesByGroup(groupId: number): EveType[] {\n return this.filterBy('eve_types', 'groupId', groupId);\n }\n getGroup(groupId: number): EveGroup | null {\n return this.getById('eve_groups', groupId);\n }\n getGroupsByCategory(categoryId: number): EveGroup[] {\n return this.filterBy('eve_groups', 'categoryId', categoryId);\n }\n getCategory(categoryId: number): EveCategory | null {\n return this.getById('eve_categories', categoryId);\n }\n getAllCategories(): EveCategory[] {\n return this.getAllFrom('eve_categories');\n }\n\n // --- Regions, Constellations, Solar Systems, Stargates ---\n getRegion(regionId: number): Region | null {\n return this.getById('eve_regions', regionId);\n }\n getAllRegions(): Region[] {\n return this.getAllFrom('eve_regions');\n }\n getConstellation(constellationId: number): Constellation | null {\n return this.getById('eve_constellations', constellationId);\n }\n getConstellationsByRegion(regionId: number): Constellation[] {\n return this.filterBy('eve_constellations', 'regionId', regionId);\n }\n getSolarSystem(systemId: number): SolarSystem | null {\n return this.getById('eve_solar_systems', systemId);\n }\n getSolarSystemsByConstellation(constellationId: number): SolarSystem[] {\n return this.filterBy(\n 'eve_solar_systems',\n 'constellationId',\n constellationId,\n );\n }\n getStargate(stargateId: number): Stargate | null {\n return this.getById('eve_stargates', stargateId);\n }\n getStargatesBySystem(systemId: number): Stargate[] {\n return this.filterBy('eve_stargates', 'solarSystemId', systemId);\n }\n\n // --- Search ---\n searchTypesByName(query: string, limit = 25): EveType[] {\n return this.searchBy('eve_types', 'name', query, limit);\n }\n searchSolarSystemsByName(query: string, limit = 25): SolarSystem[] {\n return this.searchBy('eve_solar_systems', 'name', query, limit);\n }\n\n // --- Universe ---\n getStar(starId: number): Star | null {\n return this.getById('eve_stars', starId);\n }\n getStarBySystem(systemId: number): Star | null {\n return (\n this.filterBy<Star>('eve_stars', 'solarSystemId', systemId)[0] ?? null\n );\n }\n getPlanet(planetId: number): Planet | null {\n return this.getById('eve_planets', planetId);\n }\n getPlanetsBySystem(systemId: number): Planet[] {\n return this.filterBy('eve_planets', 'solarSystemId', systemId);\n }\n getMoon(moonId: number): Moon | null {\n return this.getById('eve_moons', moonId);\n }\n getMoonsBySystem(systemId: number): Moon[] {\n return this.filterBy('eve_moons', 'solarSystemId', systemId);\n }\n getAsteroidBelt(asteroidBeltId: number): AsteroidBelt | null {\n return this.getById('eve_asteroid_belts', asteroidBeltId);\n }\n getAsteroidBeltsBySystem(systemId: number): AsteroidBelt[] {\n return this.filterBy('eve_asteroid_belts', 'solarSystemId', systemId);\n }\n\n // --- Character/Lore ---\n getFaction(factionId: number): Faction | null {\n return this.getById('eve_factions', factionId);\n }\n getAllFactions(): Faction[] {\n return this.getAllFrom('eve_factions');\n }\n getRace(raceId: number): Race | null {\n return this.getById('eve_races', raceId);\n }\n getAllRaces(): Race[] {\n return this.getAllFrom('eve_races');\n }\n getBloodline(bloodlineId: number): Bloodline | null {\n return this.getById('eve_bloodlines', bloodlineId);\n }\n getBloodlinesByRace(raceId: number): Bloodline[] {\n return this.filterBy('eve_bloodlines', 'raceId', raceId);\n }\n getAncestry(ancestryId: number): Ancestry | null {\n return this.getById('eve_ancestries', ancestryId);\n }\n getAncestriesByBloodline(bloodlineId: number): Ancestry[] {\n return this.filterBy('eve_ancestries', 'bloodlineId', bloodlineId);\n }\n\n // --- NPC Infrastructure ---\n getNpcCorporation(corporationId: number): NpcCorporation | null {\n return this.getById('eve_npc_corporations', corporationId);\n }\n getNpcCorporationsByFaction(factionId: number): NpcCorporation[] {\n return this.filterBy('eve_npc_corporations', 'factionId', factionId);\n }\n getNpcStation(stationId: number): NpcStation | null {\n return this.getById('eve_npc_stations', stationId);\n }\n getNpcStationsBySystem(systemId: number): NpcStation[] {\n return this.filterBy('eve_npc_stations', 'solarSystemId', systemId);\n }\n getNpcStationsByOwner(ownerId: number): NpcStation[] {\n return this.filterBy('eve_npc_stations', 'ownerId', ownerId);\n }\n\n // --- Market ---\n getMarketGroup(marketGroupId: number): MarketGroup | null {\n return this.getById('eve_market_groups', marketGroupId);\n }\n getMarketGroupsByParent(parentGroupId: number): MarketGroup[] {\n return this.filterBy('eve_market_groups', 'parentGroupId', parentGroupId);\n }\n getRootMarketGroups(): MarketGroup[] {\n return this.getAllFrom<MarketGroup>('eve_market_groups').filter(\n (g) => g.parentGroupId === null,\n );\n }\n getTypesByMarketGroup(marketGroupId: number): EveType[] {\n return this.filterBy('eve_types', 'marketGroupId', marketGroupId);\n }\n searchMarketGroupsByName(query: string, limit = 25): MarketGroup[] {\n return this.searchBy('eve_market_groups', 'name', query, limit);\n }\n\n // --- Meta/UI ---\n getMetaGroup(metaGroupId: number): MetaGroup | null {\n return this.getById('eve_meta_groups', metaGroupId);\n }\n getAllMetaGroups(): MetaGroup[] {\n return this.getAllFrom('eve_meta_groups');\n }\n getIcon(iconId: number): Icon | null {\n return this.getById('eve_icons', iconId);\n }\n getGraphic(graphicId: number): Graphic | null {\n return this.getById('eve_graphics', graphicId);\n }\n\n // --- Dogma ---\n getDogmaAttribute(attributeId: number): DogmaAttribute | null {\n return this.getById('eve_dogma_attributes', attributeId);\n }\n searchDogmaAttributesByName(query: string, limit = 25): DogmaAttribute[] {\n return this.searchBy('eve_dogma_attributes', 'name', query, limit);\n }\n getDogmaEffect(effectId: number): DogmaEffect | null {\n return this.getById('eve_dogma_effects', effectId);\n }\n searchDogmaEffectsByName(query: string, limit = 25): DogmaEffect[] {\n return this.searchBy('eve_dogma_effects', 'name', query, limit);\n }\n getDogmaAttributeCategory(\n attributeCategoryId: number,\n ): DogmaAttributeCategory | null {\n return this.getById('eve_dogma_attribute_categories', attributeCategoryId);\n }\n getAllDogmaAttributeCategories(): DogmaAttributeCategory[] {\n return this.getAllFrom('eve_dogma_attribute_categories');\n }\n getDogmaUnit(unitId: number): DogmaUnit | null {\n return this.getById('eve_dogma_units', unitId);\n }\n getAllDogmaUnits(): DogmaUnit[] {\n return this.getAllFrom('eve_dogma_units');\n }\n\n // --- Industry ---\n getBlueprint(blueprintTypeId: number): Blueprint | null {\n return this.getById('eve_blueprints', blueprintTypeId);\n }\n getPlanetSchematic(planetSchematicId: number): PlanetSchematic | null {\n return this.getById('eve_planet_schematics', planetSchematicId);\n }\n getAllPlanetSchematics(): PlanetSchematic[] {\n return this.getAllFrom('eve_planet_schematics');\n }\n getIndustryActivity(industryActivityId: number): IndustryActivity | null {\n return this.getById('eve_industry_activities', industryActivityId);\n }\n getAllIndustryActivities(): IndustryActivity[] {\n return this.getAllFrom('eve_industry_activities');\n }\n\n // --- Agent System ---\n getAgentType(agentTypeId: number): AgentType | null {\n return this.getById('eve_agent_types', agentTypeId);\n }\n getAllAgentTypes(): AgentType[] {\n return this.getAllFrom('eve_agent_types');\n }\n getAgentInSpace(characterId: number): AgentInSpace | null {\n return this.getById('eve_agents_in_space', characterId);\n }\n getAgentsInSpaceBySystem(systemId: number): AgentInSpace[] {\n return this.filterBy('eve_agents_in_space', 'solarSystemId', systemId);\n }\n\n // --- Certificates ---\n getCertificate(certificateId: number): Certificate | null {\n return this.getById('eve_certificates', certificateId);\n }\n getAllCertificates(): Certificate[] {\n return this.getAllFrom('eve_certificates');\n }\n\n // --- Character Attributes ---\n getCharacterAttribute(attributeId: number): CharacterAttribute | null {\n return this.getById('eve_character_attributes', attributeId);\n }\n getAllCharacterAttributes(): CharacterAttribute[] {\n return this.getAllFrom('eve_character_attributes');\n }\n\n // --- NPC Characters ---\n getNpcCharacter(characterId: number): NpcCharacter | null {\n return this.getById('eve_npc_characters', characterId);\n }\n getNpcCharactersByCorporation(corporationId: number): NpcCharacter[] {\n return this.filterBy('eve_npc_characters', 'corporationId', corporationId);\n }\n searchNpcCharactersByName(query: string, limit = 25): NpcCharacter[] {\n return this.searchBy('eve_npc_characters', 'name', query, limit);\n }\n\n // --- Clone Grades ---\n getCloneGrade(cloneGradeId: number): CloneGrade | null {\n return this.getById('eve_clone_grades', cloneGradeId);\n }\n getAllCloneGrades(): CloneGrade[] {\n return this.getAllFrom('eve_clone_grades');\n }\n\n // --- Corporation Reference ---\n getCorporationActivity(\n corporationActivityId: number,\n ): CorporationActivity | null {\n return this.getById('eve_corporation_activities', corporationActivityId);\n }\n getAllCorporationActivities(): CorporationActivity[] {\n return this.getAllFrom('eve_corporation_activities');\n }\n getNpcCorporationDivision(\n npcCorporationDivisionId: number,\n ): NpcCorporationDivision | null {\n return this.getById(\n 'eve_npc_corporation_divisions',\n npcCorporationDivisionId,\n );\n }\n getAllNpcCorporationDivisions(): NpcCorporationDivision[] {\n return this.getAllFrom('eve_npc_corporation_divisions');\n }\n\n // --- Landmarks ---\n getLandmark(landmarkId: number): Landmark | null {\n return this.getById('eve_landmarks', landmarkId);\n }\n getAllLandmarks(): Landmark[] {\n return this.getAllFrom('eve_landmarks');\n }\n\n // --- Notifications ---\n getNotificationType(notificationTypeId: number): NotificationType | null {\n return this.getById('eve_notification_types', notificationTypeId);\n }\n\n // --- Schools ---\n getSchool(schoolId: number): School | null {\n return this.getById('eve_schools', schoolId);\n }\n getAllSchools(): School[] {\n return this.getAllFrom('eve_schools');\n }\n\n // --- Secondary Suns ---\n getSecondarySun(secondarySunId: number): SecondarySun | null {\n return this.getById('eve_secondary_suns', secondarySunId);\n }\n getSecondarySunsBySystem(systemId: number): SecondarySun[] {\n return this.filterBy('eve_secondary_suns', 'solarSystemId', systemId);\n }\n\n // --- Skins ---\n getSkin(skinId: number): Skin | null {\n return this.getById('eve_skins', skinId);\n }\n getSkinLicense(licenseTypeId: number): SkinLicense | null {\n return this.getById('eve_skin_licenses', licenseTypeId);\n }\n getSkinLicensesBySkin(skinId: number): SkinLicense[] {\n return this.filterBy('eve_skin_licenses', 'skinId', skinId);\n }\n\n // --- Station Operations & Services ---\n getStationOperation(stationOperationId: number): StationOperation | null {\n return this.getById('eve_station_operations', stationOperationId);\n }\n getAllStationOperations(): StationOperation[] {\n return this.getAllFrom('eve_station_operations');\n }\n getStationService(stationServiceId: number): StationService | null {\n return this.getById('eve_station_services', stationServiceId);\n }\n getAllStationServices(): StationService[] {\n return this.getAllFrom('eve_station_services');\n }\n\n // --- Type Extensions ---\n getTypeDogma(typeId: number): TypeDogma | null {\n return this.getById('eve_type_dogma', typeId);\n }\n getTypeMaterial(typeId: number): TypeMaterial | null {\n return this.getById('eve_type_materials', typeId);\n }\n getTypeBonus(typeId: number): TypeBonus | null {\n return this.getById('eve_type_bonuses', typeId);\n }\n\n // --- Missions & Content ---\n getMission(missionId: number): Mission | null {\n return this.getById('eve_missions', missionId);\n }\n getDungeon(dungeonId: number): Dungeon | null {\n return this.getById('eve_dungeons', dungeonId);\n }\n getEpicArc(epicArcId: number): EpicArc | null {\n return this.getById('eve_epic_arcs', epicArcId);\n }\n getAllEpicArcs(): EpicArc[] {\n return this.getAllFrom('eve_epic_arcs');\n }\n\n // --- Generic accessor ---\n getEntity<T = Record<string, unknown>>(\n tableName: string,\n id: number | string,\n ): T | null {\n return this.getById<T>(tableName, id);\n }\n\n getAllEntities<T = Record<string, unknown>>(tableName: string): T[] {\n return this.getAllFrom<T>(tableName);\n }\n\n // --- Version & Lifecycle ---\n getVersion(): SdeVersionInfo {\n return { ...this.versionInfo };\n }\n\n close(): void {\n this.data.clear();\n }\n}\n","import type {\n EveType,\n EveGroup,\n EveCategory,\n Region,\n Constellation,\n SolarSystem,\n Stargate,\n Star,\n Planet,\n Moon,\n AsteroidBelt,\n Faction,\n Race,\n Bloodline,\n Ancestry,\n NpcCorporation,\n NpcStation,\n MarketGroup,\n MetaGroup,\n Icon,\n Graphic,\n DogmaAttribute,\n DogmaEffect,\n Blueprint,\n PlanetSchematic,\n} from './types';\nimport type { SdeVersionInfo } from './version';\nimport type { MemorySdeData } from './MemorySdeProvider';\n\nexport class SdeTestDataFactory {\n static createEveType(overrides: Partial<EveType> = {}): EveType {\n return {\n typeId: 34,\n groupId: 18,\n mass: 1,\n name: 'Tritanium',\n portionSize: 1,\n published: true,\n packagedVolume: null,\n volume: 0.01,\n radius: null,\n description: 'The most common mineral in the known universe.',\n graphicId: 20,\n soundId: null,\n iconId: null,\n raceId: null,\n basePrice: 4,\n marketGroupId: 1857,\n capacity: null,\n isRepackable: null,\n ...overrides,\n };\n }\n\n static createEveGroup(overrides: Partial<EveGroup> = {}): EveGroup {\n return {\n groupId: 18,\n anchorable: false,\n anchored: false,\n categoryId: 4,\n fittableNonSingleton: false,\n name: 'Mineral',\n published: true,\n useBasePrice: true,\n iconId: null,\n ...overrides,\n };\n }\n\n static createEveCategory(overrides: Partial<EveCategory> = {}): EveCategory {\n return {\n categoryId: 4,\n name: 'Material',\n published: true,\n iconId: null,\n ...overrides,\n };\n }\n\n static createRegion(overrides: Partial<Region> = {}): Region {\n return {\n regionId: 10000002,\n constellationIDs: [20000020],\n description: 'The Forge is the industrial heart of the Caldari State.',\n factionId: 500001,\n name: 'The Forge',\n nebulaId: 10,\n position: { x: -9.6e16, y: 6.0e16, z: -1.1e17 },\n wormholeClassId: 0,\n ...overrides,\n };\n }\n\n static createConstellation(\n overrides: Partial<Constellation> = {},\n ): Constellation {\n return {\n constellationId: 20000020,\n factionId: 500001,\n name: 'Kimotoro',\n position: { x: -9.7e16, y: 6.1e16, z: -1.15e17 },\n regionId: 10000002,\n solarSystemIDs: [30000142, 30000144],\n wormholeClassId: 0,\n ...overrides,\n };\n }\n\n static createSolarSystem(overrides: Partial<SolarSystem> = {}): SolarSystem {\n return {\n systemId: 30000142,\n border: false,\n constellationId: 20000020,\n hub: true,\n international: false,\n luminosity: 0.02142,\n name: 'Jita',\n planetIDs: [40009077],\n position: { x: -1.29e17, y: 6.07e16, z: -1.12e17 },\n position2D: { x: -1.29e17, y: -1.12e17 },\n radius: 4.67e12,\n regionId: 10000002,\n regional: false,\n securityClass: 'B',\n securityStatus: 0.9459991455078125,\n starId: 40009082,\n stargateIDs: [50001248],\n corridor: null,\n fringe: null,\n wormholeClassId: null,\n visualEffect: null,\n ...overrides,\n };\n }\n\n static createStargate(overrides: Partial<Stargate> = {}): Stargate {\n return {\n stargateId: 50001248,\n destination: { solarSystemId: 30000144, stargateId: 50001249 },\n position: { x: 1.5e12, y: 3.2e11, z: -8.7e11 },\n solarSystemId: 30000142,\n typeId: 16,\n ...overrides,\n };\n }\n\n static createStar(overrides: Partial<Star> = {}): Star {\n return {\n starId: 40009082,\n radius: 346600000,\n solarSystemId: 30000142,\n statistics: {\n age: 76000000000,\n life: 100000000000,\n luminosity: 0.02142,\n locked: false,\n spectralClass: 'K7 V',\n temperature: 4000,\n },\n typeId: 3796,\n ...overrides,\n };\n }\n\n static createPlanet(overrides: Partial<Planet> = {}): Planet {\n return {\n planetId: 40009077,\n asteroidBeltIDs: [40009079],\n attributes: {},\n celestialIndex: 1,\n moonIDs: [40009078],\n orbitId: 40009082,\n position: { x: 1.2e13, y: 1e11, z: -3.5e12 },\n radius: 2330000,\n solarSystemId: 30000142,\n statistics: {},\n typeId: 2015,\n npcStationIDs: null,\n ...overrides,\n };\n }\n\n static createMoon(overrides: Partial<Moon> = {}): Moon {\n return {\n moonId: 40009078,\n attributes: {},\n celestialIndex: 1,\n orbitId: 40009077,\n orbitIndex: 1,\n position: { x: 1.21e13, y: 1.01e11, z: -3.51e12 },\n radius: 240000,\n solarSystemId: 30000142,\n statistics: {},\n typeId: 14,\n npcStationIDs: null,\n ...overrides,\n };\n }\n\n static createAsteroidBelt(\n overrides: Partial<AsteroidBelt> = {},\n ): AsteroidBelt {\n return {\n asteroidBeltId: 40009079,\n celestialIndex: 1,\n orbitId: 40009077,\n orbitIndex: 1,\n position: { x: 1.19e13, y: 9.9e10, z: -3.49e12 },\n radius: 50000,\n solarSystemId: 30000142,\n statistics: {},\n typeId: 15,\n ...overrides,\n };\n }\n\n static createFaction(overrides: Partial<Faction> = {}): Faction {\n return {\n factionId: 500001,\n corporationId: 1000035,\n description: 'The Caldari State is a corporate dictatorship.',\n flatLogo: 'res:/ui/texture/corps/caldari.png',\n flatLogoWithName: 'res:/ui/texture/corps/caldari_name.png',\n iconId: 1439,\n memberRaces: [1],\n militiaCorporationId: 1000180,\n name: 'Caldari State',\n shortDescription: 'Caldari',\n sizeFactor: 5,\n solarSystemId: 30000142,\n uniqueName: true,\n ...overrides,\n };\n }\n\n static createRace(overrides: Partial<Race> = {}): Race {\n return {\n raceId: 1,\n description: 'The Caldari State is a corporate dictatorship.',\n iconId: 1439,\n name: 'Caldari',\n shipTypeId: 601,\n skills: {},\n ...overrides,\n };\n }\n\n static createBloodline(overrides: Partial<Bloodline> = {}): Bloodline {\n return {\n bloodlineId: 1,\n charisma: 3,\n corporationId: 1000006,\n description: 'The Deteis are regarded as the face of the Caldari State.',\n iconId: 1383,\n intelligence: 7,\n memory: 7,\n name: 'Deteis',\n perception: 5,\n raceId: 1,\n willpower: 5,\n ...overrides,\n };\n }\n\n static createAncestry(overrides: Partial<Ancestry> = {}): Ancestry {\n return {\n ancestryId: 1,\n bloodlineId: 1,\n charisma: 0,\n description: 'Born and raised in a capsule.',\n iconId: 1664,\n intelligence: 0,\n memory: 0,\n name: 'Tube Child',\n perception: 0,\n shortDescription: 'Raised in a capsule.',\n willpower: 2,\n ...overrides,\n };\n }\n\n static createNpcCorporation(\n overrides: Partial<NpcCorporation> = {},\n ): NpcCorporation {\n return {\n corporationId: 1000035,\n ceoId: 3004451,\n deleted: false,\n description: 'The Caldari Navy is the armed forces of the Caldari State.',\n extent: 'G',\n hasPlayerPersonnelManager: false,\n initialPrice: 0,\n memberLimit: 0,\n minSecurity: 0,\n minimumJoinStanding: 0,\n name: 'Caldari Navy',\n sendCharTerminationMessage: true,\n shares: 100000,\n size: 'H',\n stationId: 60003760,\n taxRate: 0,\n tickerName: 'CN',\n uniqueName: true,\n allowedMemberRaces: null,\n corporationTrades: null,\n divisions: null,\n enemyId: null,\n factionId: 500001,\n friendId: null,\n iconId: 1439,\n investors: null,\n lpOfferTables: null,\n mainActivityId: null,\n raceId: 1,\n sizeFactor: null,\n solarSystemId: 30000142,\n secondaryActivityId: null,\n ...overrides,\n };\n }\n\n static createNpcStation(overrides: Partial<NpcStation> = {}): NpcStation {\n return {\n stationId: 60003760,\n celestialIndex: 4,\n operationId: 1,\n orbitId: 40009081,\n orbitIndex: 4,\n ownerId: 1000035,\n position: { x: 1.58e14, y: 9.63e12, z: 1.06e14 },\n reprocessingEfficiency: 0.5,\n reprocessingHangarFlag: 4,\n reprocessingStationsTake: 0.05,\n solarSystemId: 30000142,\n typeId: 1529,\n useOperationName: true,\n ...overrides,\n };\n }\n\n static createMarketGroup(overrides: Partial<MarketGroup> = {}): MarketGroup {\n return {\n marketGroupId: 1857,\n description: 'Refined minerals used in manufacturing.',\n hasTypes: true,\n iconId: 22,\n name: 'Minerals',\n parentGroupId: 1031,\n ...overrides,\n };\n }\n\n static createMetaGroup(overrides: Partial<MetaGroup> = {}): MetaGroup {\n return {\n metaGroupId: 1,\n color: { r: 255, g: 255, b: 255, a: 255 },\n name: 'Tech I',\n iconId: null,\n iconSuffix: null,\n description: null,\n ...overrides,\n };\n }\n\n static createIcon(overrides: Partial<Icon> = {}): Icon {\n return {\n iconId: 22,\n iconFile: 'res:/UI/Texture/Icons/22_32_2.png',\n ...overrides,\n };\n }\n\n static createGraphic(overrides: Partial<Graphic> = {}): Graphic {\n return {\n graphicId: 20,\n graphicFile: 'res:/dx9/model/worldobject/asteroid/oreveld001.red',\n iconFolder: null,\n sofFactionName: null,\n sofHullName: null,\n sofRaceName: null,\n ...overrides,\n };\n }\n\n static createDogmaAttribute(\n overrides: Partial<DogmaAttribute> = {},\n ): DogmaAttribute {\n return {\n attributeId: 9,\n attributeCategoryId: 1,\n dataType: 2,\n defaultValue: 0,\n description: 'Hit points for a ship.',\n displayWhenZero: false,\n highIsGood: true,\n name: 'hp',\n published: true,\n stackable: false,\n displayName: null,\n iconId: null,\n tooltipDescription: null,\n tooltipTitle: null,\n unitId: 1,\n chargeRechargeTimeId: null,\n maxAttributeId: null,\n minAttributeId: null,\n ...overrides,\n };\n }\n\n static createDogmaEffect(overrides: Partial<DogmaEffect> = {}): DogmaEffect {\n return {\n effectId: 11,\n disallowAutoRepeat: false,\n dischargeAttributeId: 0,\n durationAttributeId: 0,\n effectCategoryId: 0,\n electronicChance: false,\n guid: 'effects.LowSlotModifier',\n isAssistance: false,\n isOffensive: false,\n isWarpSafe: true,\n name: 'lowSlotModifier',\n propulsionChance: false,\n published: true,\n rangeChance: false,\n distribution: null,\n falloffAttributeId: null,\n rangeAttributeId: null,\n trackingSpeedAttributeId: null,\n description: null,\n displayName: null,\n iconId: null,\n modifierInfo: null,\n ...overrides,\n };\n }\n\n static createBlueprint(overrides: Partial<Blueprint> = {}): Blueprint {\n return {\n activities: {\n manufacturing: {\n time: 6000,\n materials: [\n { typeId: 34, quantity: 100 },\n { typeId: 35, quantity: 50 },\n ],\n products: [{ typeId: 587, quantity: 1 }],\n },\n },\n blueprintTypeId: 787,\n maxProductionLimit: 10,\n ...overrides,\n };\n }\n\n static createPlanetSchematic(\n overrides: Partial<PlanetSchematic> = {},\n ): PlanetSchematic {\n return {\n planetSchematicId: 65,\n cycleTime: 1800,\n name: 'Bacteria',\n pins: [],\n types: [],\n ...overrides,\n };\n }\n\n static createVersionInfo(\n overrides: Partial<SdeVersionInfo> = {},\n ): SdeVersionInfo {\n return {\n version: '2024-01-15.1',\n buildDate: '2024-01-15T00:00:00Z',\n importedAt: '2024-01-16T12:00:00Z',\n checksum: 'abc123def456',\n ...overrides,\n };\n }\n\n static createHierarchicalTestData(): MemorySdeData {\n const category = this.createEveCategory();\n const group = this.createEveGroup({ categoryId: category.categoryId });\n const type1 = this.createEveType({\n typeId: 34,\n name: 'Tritanium',\n groupId: group.groupId,\n });\n const type2 = this.createEveType({\n typeId: 35,\n name: 'Pyerite',\n groupId: group.groupId,\n });\n const type3 = this.createEveType({\n typeId: 36,\n name: 'Mexallon',\n groupId: group.groupId,\n });\n\n const region = this.createRegion();\n const constellation = this.createConstellation({\n regionId: region.regionId,\n });\n const system1 = this.createSolarSystem({\n systemId: 30000142,\n name: 'Jita',\n constellationId: constellation.constellationId,\n regionId: region.regionId,\n });\n const system2 = this.createSolarSystem({\n systemId: 30000144,\n name: 'Perimeter',\n constellationId: constellation.constellationId,\n regionId: region.regionId,\n securityStatus: 0.9,\n });\n const stargate = this.createStargate({\n solarSystemId: system1.systemId,\n destination: { solarSystemId: system2.systemId, stargateId: 50001249 },\n });\n\n const star = this.createStar({ solarSystemId: system1.systemId });\n const planet = this.createPlanet({ solarSystemId: system1.systemId });\n const moon = this.createMoon({ solarSystemId: system1.systemId });\n const asteroidBelt = this.createAsteroidBelt({\n solarSystemId: system1.systemId,\n });\n\n const race = this.createRace();\n const faction = this.createFaction({ memberRaces: [race.raceId] });\n const bloodline = this.createBloodline({ raceId: race.raceId });\n const ancestry = this.createAncestry({\n bloodlineId: bloodline.bloodlineId,\n });\n const npcCorp = this.createNpcCorporation({\n factionId: faction.factionId,\n raceId: race.raceId,\n });\n const npcStation = this.createNpcStation({\n solarSystemId: system1.systemId,\n ownerId: npcCorp.corporationId,\n });\n\n const rootMarketGroup = this.createMarketGroup({\n marketGroupId: 1031,\n name: 'Manufacture & Research',\n parentGroupId: null,\n hasTypes: false,\n });\n const marketGroup = this.createMarketGroup({\n parentGroupId: rootMarketGroup.marketGroupId,\n });\n const metaGroup = this.createMetaGroup();\n const icon = this.createIcon();\n const graphic = this.createGraphic();\n\n const dogmaAttribute = this.createDogmaAttribute();\n const dogmaEffect = this.createDogmaEffect();\n const blueprint = this.createBlueprint();\n const planetSchematic = this.createPlanetSchematic();\n\n return {\n categories: [category],\n groups: [group],\n types: [type1, type2, type3],\n regions: [region],\n constellations: [constellation],\n solarSystems: [system1, system2],\n stargates: [stargate],\n stars: [star],\n planets: [planet],\n moons: [moon],\n asteroidBelts: [asteroidBelt],\n factions: [faction],\n races: [race],\n bloodlines: [bloodline],\n ancestries: [ancestry],\n npcCorporations: [npcCorp],\n npcStations: [npcStation],\n marketGroups: [rootMarketGroup, marketGroup],\n metaGroups: [metaGroup],\n icons: [icon],\n graphics: [graphic],\n dogmaAttributes: [dogmaAttribute],\n dogmaEffects: [dogmaEffect],\n blueprints: [blueprint],\n planetSchematics: [planetSchematic],\n version: this.createVersionInfo(),\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var __defProp = Object.defineProperty;
|
|
2
|
+
var __export = (target, all) => {
|
|
3
|
+
for (var name in all)
|
|
4
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
exports.__export = __export;
|
|
10
|
+
//# sourceMappingURL=chunk-PZ5AY32C.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/ESI.ts/ESI.ts/dist/chunk-PZ5AY32C.js"],"names":[],"mappings":"AAAA,6EAAI,UAAU,EAAE,MAAM,CAAC,cAAc;AACrC,IAAI,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG;AAChC,EAAE,IAAI,CAAC,IAAI,KAAK,GAAG,GAAG;AACtB,IAAI,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AACD;AACA;AACE;AACF,4BAAC","file":"/home/runner/work/ESI.ts/ESI.ts/dist/chunk-PZ5AY32C.js"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// src/auth/errors.ts
|
|
2
|
+
var AuthError = class extends Error {
|
|
3
|
+
constructor(message) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.name = "AuthError";
|
|
6
|
+
}
|
|
7
|
+
};
|
|
8
|
+
var SsoError = class extends AuthError {
|
|
9
|
+
statusCode;
|
|
10
|
+
errorCode;
|
|
11
|
+
errorDescription;
|
|
12
|
+
constructor(statusCode, errorCode, errorDescription) {
|
|
13
|
+
const detail = errorDescription ? `: ${errorDescription}` : "";
|
|
14
|
+
super(`EVE SSO request failed (${statusCode} ${errorCode})${detail}`);
|
|
15
|
+
this.name = "SsoError";
|
|
16
|
+
this.statusCode = statusCode;
|
|
17
|
+
this.errorCode = errorCode;
|
|
18
|
+
this.errorDescription = errorDescription;
|
|
19
|
+
}
|
|
20
|
+
/** True for statuses where the same request can be retried later. */
|
|
21
|
+
isRetryable() {
|
|
22
|
+
return this.statusCode === 429 || this.statusCode >= 500;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
var TokenRevokedError = class extends AuthError {
|
|
26
|
+
characterId;
|
|
27
|
+
constructor(message, characterId) {
|
|
28
|
+
super(message);
|
|
29
|
+
this.name = "TokenRevokedError";
|
|
30
|
+
this.characterId = characterId;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
var TokenDecodeError = class extends AuthError {
|
|
34
|
+
constructor(message) {
|
|
35
|
+
super(message);
|
|
36
|
+
this.name = "TokenDecodeError";
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
var CharacterNotFoundError = class extends AuthError {
|
|
40
|
+
characterId;
|
|
41
|
+
constructor(characterId) {
|
|
42
|
+
super(`No token stored for character ${characterId}`);
|
|
43
|
+
this.name = "CharacterNotFoundError";
|
|
44
|
+
this.characterId = characterId;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
function isAuthError(error) {
|
|
48
|
+
return error instanceof AuthError;
|
|
49
|
+
}
|
|
50
|
+
function isSsoError(error) {
|
|
51
|
+
return error instanceof SsoError;
|
|
52
|
+
}
|
|
53
|
+
function isTokenRevoked(error) {
|
|
54
|
+
return error instanceof TokenRevokedError;
|
|
55
|
+
}
|
|
56
|
+
function isCharacterNotFound(error) {
|
|
57
|
+
return error instanceof CharacterNotFoundError;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export {
|
|
61
|
+
AuthError,
|
|
62
|
+
SsoError,
|
|
63
|
+
TokenRevokedError,
|
|
64
|
+
TokenDecodeError,
|
|
65
|
+
CharacterNotFoundError,
|
|
66
|
+
isAuthError,
|
|
67
|
+
isSsoError,
|
|
68
|
+
isTokenRevoked,
|
|
69
|
+
isCharacterNotFound
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=chunk-R7D7M2LQ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/auth/errors.ts"],"sourcesContent":["/** Base class for every error raised by the auth subsystem. */\nexport class AuthError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'AuthError';\n }\n}\n\n/**\n * EVE SSO answered a token or revoke request with a non-2xx status.\n *\n * `errorCode` is the OAuth2 `error` field from the response body\n * (`invalid_client`, `invalid_request`, ...) or `unknown` when the body could\n * not be parsed. `statusCode` is the HTTP status.\n */\nexport class SsoError extends AuthError {\n public readonly statusCode: number;\n public readonly errorCode: string;\n public readonly errorDescription?: string;\n\n constructor(\n statusCode: number,\n errorCode: string,\n errorDescription?: string,\n ) {\n const detail = errorDescription ? `: ${errorDescription}` : '';\n super(`EVE SSO request failed (${statusCode} ${errorCode})${detail}`);\n this.name = 'SsoError';\n this.statusCode = statusCode;\n this.errorCode = errorCode;\n this.errorDescription = errorDescription;\n }\n\n /** True for statuses where the same request can be retried later. */\n isRetryable(): boolean {\n return this.statusCode === 429 || this.statusCode >= 500;\n }\n}\n\n/**\n * The refresh token is no longer accepted by SSO (`invalid_grant`), or the\n * manager has already recorded that outcome for the character. The character\n * must log in again; retrying cannot help.\n */\nexport class TokenRevokedError extends AuthError {\n public readonly characterId?: number;\n\n constructor(message: string, characterId?: number) {\n super(message);\n this.name = 'TokenRevokedError';\n this.characterId = characterId;\n }\n}\n\n/** A JWT access token could not be decoded into the claims the manager needs. */\nexport class TokenDecodeError extends AuthError {\n constructor(message: string) {\n super(message);\n this.name = 'TokenDecodeError';\n }\n}\n\n/** No token is stored for the requested character. */\nexport class CharacterNotFoundError extends AuthError {\n public readonly characterId: number;\n\n constructor(characterId: number) {\n super(`No token stored for character ${characterId}`);\n this.name = 'CharacterNotFoundError';\n this.characterId = characterId;\n }\n}\n\nexport function isAuthError(error: unknown): error is AuthError {\n return error instanceof AuthError;\n}\n\nexport function isSsoError(error: unknown): error is SsoError {\n return error instanceof SsoError;\n}\n\nexport function isTokenRevoked(error: unknown): error is TokenRevokedError {\n return error instanceof TokenRevokedError;\n}\n\nexport function isCharacterNotFound(\n error: unknown,\n): error is CharacterNotFoundError {\n return error instanceof CharacterNotFoundError;\n}\n"],"mappings":";AACO,IAAM,YAAN,cAAwB,MAAM;AAAA,EACnC,YAAY,SAAiB;AAC3B,UAAM,OAAO;AACb,SAAK,OAAO;AAAA,EACd;AACF;AASO,IAAM,WAAN,cAAuB,UAAU;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EAEhB,YACE,YACA,WACA,kBACA;AACA,UAAM,SAAS,mBAAmB,KAAK,gBAAgB,KAAK;AAC5D,UAAM,2BAA2B,UAAU,IAAI,SAAS,IAAI,MAAM,EAAE;AACpE,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,YAAY;AACjB,SAAK,mBAAmB;AAAA,EAC1B;AAAA;AAAA,EAGA,cAAuB;AACrB,WAAO,KAAK,eAAe,OAAO,KAAK,cAAc;AAAA,EACvD;AACF;AAOO,IAAM,oBAAN,cAAgC,UAAU;AAAA,EAC/B;AAAA,EAEhB,YAAY,SAAiB,aAAsB;AACjD,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,cAAc;AAAA,EACrB;AACF;AAGO,IAAM,mBAAN,cAA+B,UAAU;AAAA,EAC9C,YAAY,SAAiB;AAC3B,UAAM,OAAO;AACb,SAAK,OAAO;AAAA,EACd;AACF;AAGO,IAAM,yBAAN,cAAqC,UAAU;AAAA,EACpC;AAAA,EAEhB,YAAY,aAAqB;AAC/B,UAAM,iCAAiC,WAAW,EAAE;AACpD,SAAK,OAAO;AACZ,SAAK,cAAc;AAAA,EACrB;AACF;AAEO,SAAS,YAAY,OAAoC;AAC9D,SAAO,iBAAiB;AAC1B;AAEO,SAAS,WAAW,OAAmC;AAC5D,SAAO,iBAAiB;AAC1B;AAEO,SAAS,eAAe,OAA4C;AACzE,SAAO,iBAAiB;AAC1B;AAEO,SAAS,oBACd,OACiC;AACjC,SAAO,iBAAiB;AAC1B;","names":[]}
|