@karmaniverous/entity-manager 5.0.9 → 5.0.10

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 (139) hide show
  1. package/.github/FUNDING.yml +3 -3
  2. package/dist/cjs/BaseEntityClient/BaseEntityClient.js +28 -0
  3. package/dist/cjs/BaseQueryBuilder/BaseQueryBuilder.js +62 -0
  4. package/dist/cjs/EntityManager/EntityManager.js +131 -0
  5. package/dist/cjs/EntityManager/ParsedConfig.js +385 -0
  6. package/dist/cjs/EntityManager/addKeys.js +60 -0
  7. package/dist/cjs/EntityManager/createEntityManager.js +46 -0
  8. package/dist/cjs/EntityManager/decodeElement.js +46 -0
  9. package/dist/cjs/EntityManager/decodeGeneratedProperty.js +53 -0
  10. package/dist/cjs/EntityManager/dehydrateIndexItem.js +68 -0
  11. package/dist/cjs/EntityManager/dehydratePageKeyMap.js +93 -0
  12. package/dist/cjs/EntityManager/encodeElement.js +40 -0
  13. package/dist/cjs/EntityManager/encodeGeneratedProperty.js +55 -0
  14. package/dist/cjs/EntityManager/findIndexToken.js +10 -0
  15. package/dist/cjs/EntityManager/getHashKeySpace.js +89 -0
  16. package/dist/cjs/EntityManager/getIndexComponents.js +23 -0
  17. package/dist/cjs/EntityManager/getPrimaryKey.js +76 -0
  18. package/dist/cjs/EntityManager/getShardBump.js +24 -0
  19. package/dist/cjs/EntityManager/query.js +130 -0
  20. package/dist/cjs/EntityManager/rehydrateIndexItem.js +65 -0
  21. package/dist/cjs/EntityManager/rehydratePageKeyMap.js +103 -0
  22. package/dist/cjs/EntityManager/removeKeys.js +51 -0
  23. package/dist/cjs/EntityManager/unwrapIndex.js +59 -0
  24. package/dist/cjs/EntityManager/updateItemHashKey.js +79 -0
  25. package/dist/cjs/EntityManager/updateItemRangeKey.js +65 -0
  26. package/dist/cjs/EntityManager/validateEntityToken.js +17 -0
  27. package/dist/cjs/EntityManager/validateGeneratedProperty.js +23 -0
  28. package/dist/cjs/EntityManager/validateIndexToken.js +16 -0
  29. package/dist/cjs/EntityManager/validateTranscodedProperty.js +16 -0
  30. package/dist/cjs/index.js +15 -0
  31. package/dist/default/lib/EntityManager/EntityManager.js +46 -69
  32. package/dist/default/lib/EntityManager/PrivateEntityManager.js +44 -51
  33. package/dist/index.d.ts +1163 -0
  34. package/dist/mjs/BaseEntityClient/BaseEntityClient.js +26 -0
  35. package/dist/mjs/BaseQueryBuilder/BaseQueryBuilder.js +60 -0
  36. package/dist/mjs/EntityManager/EntityManager.js +129 -0
  37. package/dist/mjs/EntityManager/ParsedConfig.js +383 -0
  38. package/dist/mjs/EntityManager/addKeys.js +58 -0
  39. package/dist/mjs/EntityManager/createEntityManager.js +44 -0
  40. package/dist/mjs/EntityManager/decodeElement.js +44 -0
  41. package/dist/mjs/EntityManager/decodeGeneratedProperty.js +51 -0
  42. package/dist/mjs/EntityManager/dehydrateIndexItem.js +66 -0
  43. package/dist/mjs/EntityManager/dehydratePageKeyMap.js +91 -0
  44. package/dist/mjs/EntityManager/encodeElement.js +38 -0
  45. package/dist/mjs/EntityManager/encodeGeneratedProperty.js +53 -0
  46. package/dist/mjs/EntityManager/findIndexToken.js +8 -0
  47. package/dist/mjs/EntityManager/getHashKeySpace.js +87 -0
  48. package/dist/mjs/EntityManager/getIndexComponents.js +21 -0
  49. package/dist/mjs/EntityManager/getPrimaryKey.js +74 -0
  50. package/dist/mjs/EntityManager/getShardBump.js +22 -0
  51. package/dist/mjs/EntityManager/query.js +128 -0
  52. package/dist/mjs/EntityManager/rehydrateIndexItem.js +63 -0
  53. package/dist/mjs/EntityManager/rehydratePageKeyMap.js +101 -0
  54. package/dist/mjs/EntityManager/removeKeys.js +49 -0
  55. package/dist/mjs/EntityManager/unwrapIndex.js +57 -0
  56. package/dist/mjs/EntityManager/updateItemHashKey.js +77 -0
  57. package/dist/mjs/EntityManager/updateItemRangeKey.js +63 -0
  58. package/dist/mjs/EntityManager/validateEntityToken.js +15 -0
  59. package/dist/mjs/EntityManager/validateGeneratedProperty.js +21 -0
  60. package/dist/mjs/EntityManager/validateIndexToken.js +14 -0
  61. package/dist/mjs/EntityManager/validateTranscodedProperty.js +14 -0
  62. package/dist/mjs/index.js +5 -0
  63. package/docs/.nojekyll +1 -0
  64. package/docs/assets/hierarchy.js +1 -0
  65. package/docs/assets/highlight.css +99 -0
  66. package/docs/assets/icons.js +18 -0
  67. package/docs/assets/icons.svg +1 -0
  68. package/docs/assets/main.js +60 -0
  69. package/docs/assets/navigation.js +1 -0
  70. package/docs/assets/search.js +1 -0
  71. package/docs/assets/style.css +1648 -0
  72. package/docs/classes/index.BaseEntityClient.html +124 -0
  73. package/docs/classes/index.BaseQueryBuilder.html +229 -0
  74. package/docs/classes/index.EntityManager.html +510 -0
  75. package/docs/documents/CHANGELOG.html +1432 -0
  76. package/docs/documents/guides_stan-assistant-guide.html +431 -0
  77. package/docs/functions/index.createEntityManager.html +60 -0
  78. package/docs/hierarchy.html +31 -0
  79. package/docs/index.html +212 -0
  80. package/docs/interfaces/index.BaseConfigMap.html +113 -0
  81. package/docs/interfaces/index.BaseEntityClientOptions.html +82 -0
  82. package/docs/interfaces/index.BaseQueryBuilderOptions.html +92 -0
  83. package/docs/interfaces/index.CapturedConfigMapFrom.html +126 -0
  84. package/docs/interfaces/index.ConfigInput.html +189 -0
  85. package/docs/interfaces/index.ParsedConfig.html +144 -0
  86. package/docs/interfaces/index.ParsedEntityConfig.html +91 -0
  87. package/docs/interfaces/index.ParsedGeneratedPropertiesConfig.html +67 -0
  88. package/docs/interfaces/index.ParsedIndexConfig.html +79 -0
  89. package/docs/interfaces/index.ParsedTranscoder.html +71 -0
  90. package/docs/interfaces/index.QueryOptions.html +180 -0
  91. package/docs/interfaces/index.QueryResult.html +91 -0
  92. package/docs/interfaces/index.ShardBump.html +79 -0
  93. package/docs/interfaces/index.ShardQueryResult.html +93 -0
  94. package/docs/modules/index.html +47 -0
  95. package/docs/modules.html +38 -0
  96. package/docs/sitemap.xml +263 -0
  97. package/docs/types/index.BaseKeyTokens.html +39 -0
  98. package/docs/types/index.Config.html +75 -0
  99. package/docs/types/index.ConfigMap.html +41 -0
  100. package/docs/types/index.ConfigOfClient.html +45 -0
  101. package/docs/types/index.EntitiesFromSchema.html +39 -0
  102. package/docs/types/index.EntityClientItemByToken.html +45 -0
  103. package/docs/types/index.EntityClientRecordByToken.html +43 -0
  104. package/docs/types/index.EntityItem.html +41 -0
  105. package/docs/types/index.EntityItemPartial.html +44 -0
  106. package/docs/types/index.EntityKey.html +40 -0
  107. package/docs/types/index.EntityOfToken.html +39 -0
  108. package/docs/types/index.EntityRecord.html +39 -0
  109. package/docs/types/index.EntityRecordPartial.html +40 -0
  110. package/docs/types/index.EntityToken.html +40 -0
  111. package/docs/types/index.FallbackIndexTokenSet.html +40 -0
  112. package/docs/types/index.HasIndexFor.html +43 -0
  113. package/docs/types/index.HashKeyFrom.html +38 -0
  114. package/docs/types/index.IndexComponentTokens.html +45 -0
  115. package/docs/types/index.IndexHashKeyOf.html +42 -0
  116. package/docs/types/index.IndexRangeKeyOf.html +41 -0
  117. package/docs/types/index.IndexTokensFrom.html +41 -0
  118. package/docs/types/index.IndexTokensOf.html +40 -0
  119. package/docs/types/index.KeysFrom.html +38 -0
  120. package/docs/types/index.PageKey.html +40 -0
  121. package/docs/types/index.PageKeyByIndex.html +46 -0
  122. package/docs/types/index.PresentIndexTokenSet.html +45 -0
  123. package/docs/types/index.Projected.html +39 -0
  124. package/docs/types/index.QueryBuilderQueryOptions.html +45 -0
  125. package/docs/types/index.QueryOptionsByCC.html +49 -0
  126. package/docs/types/index.QueryOptionsByCF.html +47 -0
  127. package/docs/types/index.RangeKeyFrom.html +38 -0
  128. package/docs/types/index.ShardQueryFunction.html +63 -0
  129. package/docs/types/index.ShardQueryMap.html +56 -0
  130. package/docs/types/index.ShardQueryMapByCC.html +49 -0
  131. package/docs/types/index.ShardQueryMapByCF.html +47 -0
  132. package/docs/types/index.ShardedKeysFrom.html +38 -0
  133. package/docs/types/index.StorageItem.html +42 -0
  134. package/docs/types/index.StorageRecord.html +40 -0
  135. package/docs/types/index.TranscodedPropertiesFrom.html +38 -0
  136. package/docs/types/index.UnshardedKeysFrom.html +38 -0
  137. package/docs/types/index.ValidateConfigMap.html +40 -0
  138. package/lib/EntityManager/PrivateEntityManager.js +4 -0
  139. package/package.json +1 -1
@@ -0,0 +1,40 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>EntityToken | @karmaniverous/entity-manager</title><meta name="description" content="Documentation for @karmaniverous/entity-manager"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
2
+ <div class="tsd-toolbar-contents container"><a href="https://github.com/karmaniverous/entity-manager" class="title">@karmaniverous/entity-manager</a>
3
+ <div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
4
+ <ul role="listbox" id="tsd-search-results"></ul>
5
+ <div id="tsd-search-status" aria-live="polite" aria-atomic="true">
6
+ <div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
7
+ <div class="container container-main">
8
+ <div class="col-content">
9
+ <div class="tsd-page-title">
10
+ <ul class="tsd-breadcrumb" aria-label="Breadcrumb">
11
+ <li><a href="../modules/index.html">index</a></li>
12
+ <li><a href="" aria-current="page">EntityToken</a></li></ul>
13
+ <h1>Type Alias EntityToken&lt;CC&gt;<code class="tsd-tag">Protected</code></h1></div>
14
+ <div class="tsd-signature"><span class="tsd-kind-type-alias">EntityToken</span><span class="tsd-signature-symbol">:</span> <a href="https://www.typescriptlang.org/docs/handbook/utility-types.html#extracttype-union" class="tsd-signature-type external" target="_blank">Extract</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a href="https://docs.karmanivero.us/entity-tools/types/entity-tools.Exactify.html" class="tsd-signature-type external" target="_blank">Exactify</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#cc">CC</a><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;EntityMap&quot;</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></div>
15
+ <div class="tsd-comment tsd-typography"><p>Extracts entity tokens from a <a href="index.ConfigMap.html" class="tsd-kind-type-alias"><code>ConfigMap</code></a>.</p>
16
+ </div>
17
+ <section class="tsd-panel">
18
+ <h4>Type Parameters</h4>
19
+ <ul class="tsd-type-parameter-list">
20
+ <li><span id="cc"><span class="tsd-kind-type-parameter">CC</span> <span class="tsd-signature-keyword">extends</span> <a href="../interfaces/index.BaseConfigMap.html" class="tsd-signature-type tsd-kind-interface">BaseConfigMap</a></span>
21
+ <div class="tsd-comment tsd-typography"><p><a href="index.ConfigMap.html" class="tsd-kind-type-alias"><code>ConfigMap</code></a> that defines an <a href="index.Config.html" class="tsd-kind-type-alias"><code>EntityManager configuration</code></a>'s <a href="https://docs.karmanivero.us/entity-tools/types/entity-tools.EntityMap.html"><code>EntityMap</code></a>, key properties, and <a href="https://docs.karmanivero.us/entity-tools/types/entity-tools.TranscodeRegistry.html"><code>TranscodeRegistry</code></a>. If omitted, defaults to <a href="../interfaces/index.BaseConfigMap.html" class="tsd-kind-interface"><code>BaseConfigMap</code></a>.</p>
22
+ </div></li></ul></section><aside class="tsd-sources">
23
+ <ul>
24
+ <li>Defined in <a href="https://github.com/karmaniverous/entity-manager/blob/d2ff954ea0261727cdbac42b98076fc3e0181656/src/EntityManager/EntityToken.ts#L19">EntityManager/EntityToken.ts:19</a></li></ul></aside></div>
25
+ <div class="col-sidebar">
26
+ <div class="page-menu">
27
+ <div class="tsd-navigation settings">
28
+ <details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
29
+ <h3>Settings</h3></summary>
30
+ <div class="tsd-accordion-details">
31
+ <div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
32
+ <ul id="tsd-filter-options">
33
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li></ul></div>
34
+ <div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
35
+ <div class="site-menu">
36
+ <nav class="tsd-navigation"><a href="../modules.html">@karmaniverous/entity-manager</a>
37
+ <ul class="tsd-small-nested-navigation" id="tsd-nav-container">
38
+ <li>Loading...</li></ul></nav></div></div></div><footer>
39
+ <p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
40
+ <div class="overlay"></div></body></html>
@@ -0,0 +1,40 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>FallbackIndexTokenSet | @karmaniverous/entity-manager</title><meta name="description" content="Documentation for @karmaniverous/entity-manager"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
2
+ <div class="tsd-toolbar-contents container"><a href="https://github.com/karmaniverous/entity-manager" class="title">@karmaniverous/entity-manager</a>
3
+ <div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
4
+ <ul role="listbox" id="tsd-search-results"></ul>
5
+ <div id="tsd-search-status" aria-live="polite" aria-atomic="true">
6
+ <div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
7
+ <div class="container container-main">
8
+ <div class="col-content">
9
+ <div class="tsd-page-title">
10
+ <ul class="tsd-breadcrumb" aria-label="Breadcrumb">
11
+ <li><a href="../modules/index.html">index</a></li>
12
+ <li><a href="" aria-current="page">FallbackIndexTokenSet</a></li></ul>
13
+ <h1>Type Alias FallbackIndexTokenSet&lt;CC&gt;</h1></div>
14
+ <div class="tsd-signature"><span class="tsd-kind-type-alias">FallbackIndexTokenSet</span><span class="tsd-signature-symbol">:</span> <a href="https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type" class="tsd-signature-type external" target="_blank">Record</a><span class="tsd-signature-symbol">&lt;</span><br/>    <span class="tsd-signature-symbol">|</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#cc">CC</a><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;HashKey&quot;</span><span class="tsd-signature-symbol">]</span><br/>    <span class="tsd-signature-symbol">|</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#cc">CC</a><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;RangeKey&quot;</span><span class="tsd-signature-symbol">]</span><br/>    <span class="tsd-signature-symbol">|</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#cc">CC</a><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;ShardedKeys&quot;</span><span class="tsd-signature-symbol">]</span><br/>    <span class="tsd-signature-symbol">|</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#cc">CC</a><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;UnshardedKeys&quot;</span><span class="tsd-signature-symbol">]</span><br/>    <span class="tsd-signature-symbol">|</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#cc">CC</a><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;TranscodedProperties&quot;</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-signature-type">true</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span></div>
15
+ <div class="tsd-comment tsd-typography"><p>Key set for index component tokens when CF does not carry an <code>indexes</code> map
16
+ or IT is unknown. Includes global keys, generated keys, and transcodable
17
+ properties.</p>
18
+ </div>
19
+ <section class="tsd-panel">
20
+ <h4>Type Parameters</h4>
21
+ <ul class="tsd-type-parameter-list">
22
+ <li><span id="cc"><span class="tsd-kind-type-parameter">CC</span> <span class="tsd-signature-keyword">extends</span> <a href="../interfaces/index.BaseConfigMap.html" class="tsd-signature-type tsd-kind-interface">BaseConfigMap</a></span></li></ul></section><aside class="tsd-sources">
23
+ <ul>
24
+ <li>Defined in <a href="https://github.com/karmaniverous/entity-manager/blob/d2ff954ea0261727cdbac42b98076fc3e0181656/src/EntityManager/PageKey.ts#L140">EntityManager/PageKey.ts:140</a></li></ul></aside></div>
25
+ <div class="col-sidebar">
26
+ <div class="page-menu">
27
+ <div class="tsd-navigation settings">
28
+ <details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
29
+ <h3>Settings</h3></summary>
30
+ <div class="tsd-accordion-details">
31
+ <div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
32
+ <ul id="tsd-filter-options">
33
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li></ul></div>
34
+ <div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
35
+ <div class="site-menu">
36
+ <nav class="tsd-navigation"><a href="../modules.html">@karmaniverous/entity-manager</a>
37
+ <ul class="tsd-small-nested-navigation" id="tsd-nav-container">
38
+ <li>Loading...</li></ul></nav></div></div></div><footer>
39
+ <p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
40
+ <div class="overlay"></div></body></html>
@@ -0,0 +1,43 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>HasIndexFor | @karmaniverous/entity-manager</title><meta name="description" content="Documentation for @karmaniverous/entity-manager"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
2
+ <div class="tsd-toolbar-contents container"><a href="https://github.com/karmaniverous/entity-manager" class="title">@karmaniverous/entity-manager</a>
3
+ <div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
4
+ <ul role="listbox" id="tsd-search-results"></ul>
5
+ <div id="tsd-search-status" aria-live="polite" aria-atomic="true">
6
+ <div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
7
+ <div class="container container-main">
8
+ <div class="col-content">
9
+ <div class="tsd-page-title">
10
+ <ul class="tsd-breadcrumb" aria-label="Breadcrumb">
11
+ <li><a href="../modules/index.html">index</a></li>
12
+ <li><a href="" aria-current="page">HasIndexFor</a></li></ul>
13
+ <h1>Type Alias HasIndexFor&lt;CF, IT&gt;</h1></div>
14
+ <div class="tsd-signature"><span class="tsd-kind-type-alias">HasIndexFor</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#cf">CF</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">indexes</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-keyword">infer</span> <span class="tsd-kind-type-parameter">I</span> <span class="tsd-signature-symbol">}</span><br/>    <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type tsd-kind-type-parameter">I</span> <span class="tsd-signature-keyword">extends</span> <a href="https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type" class="tsd-signature-type external" target="_blank">Record</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">&gt;</span><br/>        <span class="tsd-signature-symbol">?</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#it">IT</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-keyword">keyof</span> <span class="tsd-signature-type tsd-kind-type-parameter">I</span> <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">true</span> <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">false</span><br/>        <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">false</span><br/>    <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">false</span></div>
15
+ <div class="tsd-comment tsd-typography"><p>Test whether a values-first config literal CF carries a concrete index IT.</p>
16
+ </div>
17
+ <section class="tsd-panel">
18
+ <h4>Type Parameters</h4>
19
+ <ul class="tsd-type-parameter-list">
20
+ <li><span id="cf"><span class="tsd-kind-type-parameter">CF</span></span></li>
21
+ <li><span id="it"><span class="tsd-kind-type-parameter">IT</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">string</span></span></li></ul></section>
22
+ <div class="tsd-comment tsd-typography">
23
+ <div class="tsd-tag-remarks">
24
+ <h4 class="tsd-anchor-link" id="remarks">Remarks<a href="#remarks" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><p>Used to decide whether index-aware narrowing is available.</p>
25
+ </div></div><aside class="tsd-sources">
26
+ <ul>
27
+ <li>Defined in <a href="https://github.com/karmaniverous/entity-manager/blob/d2ff954ea0261727cdbac42b98076fc3e0181656/src/EntityManager/PageKey.ts#L91">EntityManager/PageKey.ts:91</a></li></ul></aside></div>
28
+ <div class="col-sidebar">
29
+ <div class="page-menu">
30
+ <div class="tsd-navigation settings">
31
+ <details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
32
+ <h3>Settings</h3></summary>
33
+ <div class="tsd-accordion-details">
34
+ <div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
35
+ <ul id="tsd-filter-options">
36
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li></ul></div>
37
+ <div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
38
+ <div class="site-menu">
39
+ <nav class="tsd-navigation"><a href="../modules.html">@karmaniverous/entity-manager</a>
40
+ <ul class="tsd-small-nested-navigation" id="tsd-nav-container">
41
+ <li>Loading...</li></ul></nav></div></div></div><footer>
42
+ <p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
43
+ <div class="overlay"></div></body></html>
@@ -0,0 +1,38 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>HashKeyFrom | @karmaniverous/entity-manager</title><meta name="description" content="Documentation for @karmaniverous/entity-manager"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
2
+ <div class="tsd-toolbar-contents container"><a href="https://github.com/karmaniverous/entity-manager" class="title">@karmaniverous/entity-manager</a>
3
+ <div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
4
+ <ul role="listbox" id="tsd-search-results"></ul>
5
+ <div id="tsd-search-status" aria-live="polite" aria-atomic="true">
6
+ <div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
7
+ <div class="container container-main">
8
+ <div class="col-content">
9
+ <div class="tsd-page-title">
10
+ <ul class="tsd-breadcrumb" aria-label="Breadcrumb">
11
+ <li><a href="../modules/index.html">index</a></li>
12
+ <li><a href="" aria-current="page">HashKeyFrom</a></li></ul>
13
+ <h1>Type Alias HashKeyFrom&lt;CC&gt;</h1></div>
14
+ <div class="tsd-signature"><span class="tsd-kind-type-alias">HashKeyFrom</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#cc">CC</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">hashKey</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">infer</span> <span class="tsd-kind-type-parameter">H</span> <span class="tsd-signature-symbol">}</span> <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type tsd-kind-type-parameter">H</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;hashKey&quot;</span></div>
15
+ <div class="tsd-comment tsd-typography"><p>Extract the hash key token string literal from a values-first config input type.</p>
16
+ </div>
17
+ <section class="tsd-panel">
18
+ <h4>Type Parameters</h4>
19
+ <ul class="tsd-type-parameter-list">
20
+ <li><span id="cc"><span class="tsd-kind-type-parameter">CC</span></span></li></ul></section><aside class="tsd-sources">
21
+ <ul>
22
+ <li>Defined in <a href="https://github.com/karmaniverous/entity-manager/blob/d2ff954ea0261727cdbac42b98076fc3e0181656/src/EntityManager/createEntityManager.ts#L105">EntityManager/createEntityManager.ts:105</a></li></ul></aside></div>
23
+ <div class="col-sidebar">
24
+ <div class="page-menu">
25
+ <div class="tsd-navigation settings">
26
+ <details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
27
+ <h3>Settings</h3></summary>
28
+ <div class="tsd-accordion-details">
29
+ <div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
30
+ <ul id="tsd-filter-options">
31
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li></ul></div>
32
+ <div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
33
+ <div class="site-menu">
34
+ <nav class="tsd-navigation"><a href="../modules.html">@karmaniverous/entity-manager</a>
35
+ <ul class="tsd-small-nested-navigation" id="tsd-nav-container">
36
+ <li>Loading...</li></ul></nav></div></div></div><footer>
37
+ <p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
38
+ <div class="overlay"></div></body></html>
@@ -0,0 +1,45 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>IndexComponentTokens | @karmaniverous/entity-manager</title><meta name="description" content="Documentation for @karmaniverous/entity-manager"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
2
+ <div class="tsd-toolbar-contents container"><a href="https://github.com/karmaniverous/entity-manager" class="title">@karmaniverous/entity-manager</a>
3
+ <div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
4
+ <ul role="listbox" id="tsd-search-results"></ul>
5
+ <div id="tsd-search-status" aria-live="polite" aria-atomic="true">
6
+ <div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
7
+ <div class="container container-main">
8
+ <div class="col-content">
9
+ <div class="tsd-page-title">
10
+ <ul class="tsd-breadcrumb" aria-label="Breadcrumb">
11
+ <li><a href="../modules/index.html">index</a></li>
12
+ <li><a href="" aria-current="page">IndexComponentTokens</a></li></ul>
13
+ <h1>Type Alias IndexComponentTokens&lt;CC, CF, IT&gt;</h1></div>
14
+ <div class="tsd-signature"><span class="tsd-kind-type-alias">IndexComponentTokens</span><span class="tsd-signature-symbol">:</span> <a href="index.HasIndexFor.html" class="tsd-signature-type tsd-kind-type-alias">HasIndexFor</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#cf">CF</a><span class="tsd-signature-symbol">,</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#it">IT</a><span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">true</span><br/>    <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-keyword">keyof</span> <a href="index.PresentIndexTokenSet.html" class="tsd-signature-type tsd-kind-type-alias">PresentIndexTokenSet</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#cc">CC</a><span class="tsd-signature-symbol">,</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#cf">CF</a><span class="tsd-signature-symbol">,</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#it">IT</a><span class="tsd-signature-symbol">&gt;</span><br/>    <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">keyof</span> <a href="index.FallbackIndexTokenSet.html" class="tsd-signature-type tsd-kind-type-alias">FallbackIndexTokenSet</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#cc">CC</a><span class="tsd-signature-symbol">&gt;</span></div>
15
+ <div class="tsd-comment tsd-typography"><p>Derive the union of token names that may appear in a page key for a specific index.</p>
16
+ </div>
17
+ <section class="tsd-panel">
18
+ <h4>Type Parameters</h4>
19
+ <ul class="tsd-type-parameter-list">
20
+ <li><span id="cc"><span class="tsd-kind-type-parameter">CC</span> <span class="tsd-signature-keyword">extends</span> <a href="../interfaces/index.BaseConfigMap.html" class="tsd-signature-type tsd-kind-interface">BaseConfigMap</a></span></li>
21
+ <li><span id="cf"><span class="tsd-kind-type-parameter">CF</span></span></li>
22
+ <li><span id="it"><span class="tsd-kind-type-parameter">IT</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">string</span></span></li></ul></section>
23
+ <div class="tsd-comment tsd-typography">
24
+ <div class="tsd-tag-remarks">
25
+ <h4 class="tsd-anchor-link" id="remarks">Remarks<a href="#remarks" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><p>If CF carries a concrete <code>indexes</code> map and IT is a member key, this narrows to the
26
+ exact component-token set for that index. Otherwise, it falls back to the broad key set.</p>
27
+ </div></div><aside class="tsd-sources">
28
+ <ul>
29
+ <li>Defined in <a href="https://github.com/karmaniverous/entity-manager/blob/d2ff954ea0261727cdbac42b98076fc3e0181656/src/EntityManager/PageKey.ts#L156">EntityManager/PageKey.ts:156</a></li></ul></aside></div>
30
+ <div class="col-sidebar">
31
+ <div class="page-menu">
32
+ <div class="tsd-navigation settings">
33
+ <details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
34
+ <h3>Settings</h3></summary>
35
+ <div class="tsd-accordion-details">
36
+ <div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
37
+ <ul id="tsd-filter-options">
38
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li></ul></div>
39
+ <div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
40
+ <div class="site-menu">
41
+ <nav class="tsd-navigation"><a href="../modules.html">@karmaniverous/entity-manager</a>
42
+ <ul class="tsd-small-nested-navigation" id="tsd-nav-container">
43
+ <li>Loading...</li></ul></nav></div></div></div><footer>
44
+ <p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
45
+ <div class="overlay"></div></body></html>
@@ -0,0 +1,42 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>IndexHashKeyOf | @karmaniverous/entity-manager</title><meta name="description" content="Documentation for @karmaniverous/entity-manager"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
2
+ <div class="tsd-toolbar-contents container"><a href="https://github.com/karmaniverous/entity-manager" class="title">@karmaniverous/entity-manager</a>
3
+ <div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
4
+ <ul role="listbox" id="tsd-search-results"></ul>
5
+ <div id="tsd-search-status" aria-live="polite" aria-atomic="true">
6
+ <div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
7
+ <div class="container container-main">
8
+ <div class="col-content">
9
+ <div class="tsd-page-title">
10
+ <ul class="tsd-breadcrumb" aria-label="Breadcrumb">
11
+ <li><a href="../modules/index.html">index</a></li>
12
+ <li><a href="" aria-current="page">IndexHashKeyOf</a></li></ul>
13
+ <h1>Type Alias IndexHashKeyOf&lt;CF, IT&gt;</h1></div>
14
+ <div class="tsd-signature"><span class="tsd-kind-type-alias">IndexHashKeyOf</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#cf">CF</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">indexes</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-keyword">infer</span> <span class="tsd-kind-type-parameter">I</span> <span class="tsd-signature-symbol">}</span><br/>    <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type tsd-kind-type-parameter">I</span> <span class="tsd-signature-keyword">extends</span> <a href="https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type" class="tsd-signature-type external" target="_blank">Record</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">&gt;</span><br/>        <span class="tsd-signature-symbol">?</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#it">IT</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-keyword">keyof</span> <span class="tsd-signature-type tsd-kind-type-parameter">I</span><br/>            <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type tsd-kind-type-parameter">I</span><span class="tsd-signature-symbol">[</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#it">IT</a><span class="tsd-signature-symbol">]</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">hashKey</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">infer</span> <span class="tsd-kind-type-parameter">HK</span> <span class="tsd-signature-symbol">}</span> <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type tsd-kind-type-parameter">HK</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">never</span><br/>            <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">never</span><br/>        <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">never</span><br/>    <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">never</span></div>
15
+ <div class="tsd-comment tsd-typography"><p>Internal helpers to safely derive index component tokens for an index IT.</p>
16
+ <p>These helpers avoid direct generic indexing into <code>CF['indexes'][IT]</code> which can
17
+ trigger TS2536. They guard presence and key membership before extracting
18
+ literal types when available.</p>
19
+ </div>
20
+ <section class="tsd-panel">
21
+ <h4>Type Parameters</h4>
22
+ <ul class="tsd-type-parameter-list">
23
+ <li><span id="cf"><span class="tsd-kind-type-parameter">CF</span></span></li>
24
+ <li><span id="it"><span class="tsd-kind-type-parameter">IT</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">string</span></span></li></ul></section><aside class="tsd-sources">
25
+ <ul>
26
+ <li>Defined in <a href="https://github.com/karmaniverous/entity-manager/blob/d2ff954ea0261727cdbac42b98076fc3e0181656/src/EntityManager/PageKey.ts#L32">EntityManager/PageKey.ts:32</a></li></ul></aside></div>
27
+ <div class="col-sidebar">
28
+ <div class="page-menu">
29
+ <div class="tsd-navigation settings">
30
+ <details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
31
+ <h3>Settings</h3></summary>
32
+ <div class="tsd-accordion-details">
33
+ <div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
34
+ <ul id="tsd-filter-options">
35
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li></ul></div>
36
+ <div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
37
+ <div class="site-menu">
38
+ <nav class="tsd-navigation"><a href="../modules.html">@karmaniverous/entity-manager</a>
39
+ <ul class="tsd-small-nested-navigation" id="tsd-nav-container">
40
+ <li>Loading...</li></ul></nav></div></div></div><footer>
41
+ <p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
42
+ <div class="overlay"></div></body></html>
@@ -0,0 +1,41 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>IndexRangeKeyOf | @karmaniverous/entity-manager</title><meta name="description" content="Documentation for @karmaniverous/entity-manager"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
2
+ <div class="tsd-toolbar-contents container"><a href="https://github.com/karmaniverous/entity-manager" class="title">@karmaniverous/entity-manager</a>
3
+ <div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
4
+ <ul role="listbox" id="tsd-search-results"></ul>
5
+ <div id="tsd-search-status" aria-live="polite" aria-atomic="true">
6
+ <div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
7
+ <div class="container container-main">
8
+ <div class="col-content">
9
+ <div class="tsd-page-title">
10
+ <ul class="tsd-breadcrumb" aria-label="Breadcrumb">
11
+ <li><a href="../modules/index.html">index</a></li>
12
+ <li><a href="" aria-current="page">IndexRangeKeyOf</a></li></ul>
13
+ <h1>Type Alias IndexRangeKeyOf&lt;CF, IT&gt;</h1></div>
14
+ <div class="tsd-signature"><span class="tsd-kind-type-alias">IndexRangeKeyOf</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#cf">CF</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">indexes</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-keyword">infer</span> <span class="tsd-kind-type-parameter">I</span> <span class="tsd-signature-symbol">}</span><br/>    <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type tsd-kind-type-parameter">I</span> <span class="tsd-signature-keyword">extends</span> <a href="https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type" class="tsd-signature-type external" target="_blank">Record</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">&gt;</span><br/>        <span class="tsd-signature-symbol">?</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#it">IT</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-keyword">keyof</span> <span class="tsd-signature-type tsd-kind-type-parameter">I</span><br/>            <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type tsd-kind-type-parameter">I</span><span class="tsd-signature-symbol">[</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#it">IT</a><span class="tsd-signature-symbol">]</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">rangeKey</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">infer</span> <span class="tsd-kind-type-parameter">RK</span> <span class="tsd-signature-symbol">}</span> <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type tsd-kind-type-parameter">RK</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">never</span><br/>            <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">never</span><br/>        <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">never</span><br/>    <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">never</span></div>
15
+ <div class="tsd-comment tsd-typography"><p>Derive the index range-key token for a specific index token.</p>
16
+ <p>When CF carries an <code>indexes</code> object and IT is a member key, this extracts the
17
+ concrete <code>rangeKey</code> token type.</p>
18
+ </div>
19
+ <section class="tsd-panel">
20
+ <h4>Type Parameters</h4>
21
+ <ul class="tsd-type-parameter-list">
22
+ <li><span id="cf"><span class="tsd-kind-type-parameter">CF</span></span></li>
23
+ <li><span id="it"><span class="tsd-kind-type-parameter">IT</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">string</span></span></li></ul></section><aside class="tsd-sources">
24
+ <ul>
25
+ <li>Defined in <a href="https://github.com/karmaniverous/entity-manager/blob/d2ff954ea0261727cdbac42b98076fc3e0181656/src/EntityManager/PageKey.ts#L54">EntityManager/PageKey.ts:54</a></li></ul></aside></div>
26
+ <div class="col-sidebar">
27
+ <div class="page-menu">
28
+ <div class="tsd-navigation settings">
29
+ <details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
30
+ <h3>Settings</h3></summary>
31
+ <div class="tsd-accordion-details">
32
+ <div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
33
+ <ul id="tsd-filter-options">
34
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li></ul></div>
35
+ <div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
36
+ <div class="site-menu">
37
+ <nav class="tsd-navigation"><a href="../modules.html">@karmaniverous/entity-manager</a>
38
+ <ul class="tsd-small-nested-navigation" id="tsd-nav-container">
39
+ <li>Loading...</li></ul></nav></div></div></div><footer>
40
+ <p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
41
+ <div class="overlay"></div></body></html>
@@ -0,0 +1,41 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>IndexTokensFrom | @karmaniverous/entity-manager</title><meta name="description" content="Documentation for @karmaniverous/entity-manager"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
2
+ <div class="tsd-toolbar-contents container"><a href="https://github.com/karmaniverous/entity-manager" class="title">@karmaniverous/entity-manager</a>
3
+ <div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
4
+ <ul role="listbox" id="tsd-search-results"></ul>
5
+ <div id="tsd-search-status" aria-live="polite" aria-atomic="true">
6
+ <div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
7
+ <div class="container container-main">
8
+ <div class="col-content">
9
+ <div class="tsd-page-title">
10
+ <ul class="tsd-breadcrumb" aria-label="Breadcrumb">
11
+ <li><a href="../modules/index.html">index</a></li>
12
+ <li><a href="" aria-current="page">IndexTokensFrom</a></li></ul>
13
+ <h1>Type Alias IndexTokensFrom&lt;CC&gt;</h1></div>
14
+ <div class="tsd-signature"><span class="tsd-kind-type-alias">IndexTokensFrom</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#cc">CC</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">indexes</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-keyword">infer</span> <span class="tsd-kind-type-parameter">I</span> <span class="tsd-signature-symbol">}</span> <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-keyword">keyof</span> <span class="tsd-signature-type tsd-kind-type-parameter">I</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
15
+ <div class="tsd-comment tsd-typography"><p>Derive the union of index token names from a values-first config input.</p>
16
+ <p>When the provided config literal carries an <code>indexes</code> object with preserved
17
+ literal keys (prefer <code>as const</code> at call sites), this helper captures the
18
+ index token union. Falls back to <code>string</code> if absent.</p>
19
+ </div>
20
+ <section class="tsd-panel">
21
+ <h4>Type Parameters</h4>
22
+ <ul class="tsd-type-parameter-list">
23
+ <li><span id="cc"><span class="tsd-kind-type-parameter">CC</span></span></li></ul></section><aside class="tsd-sources">
24
+ <ul>
25
+ <li>Defined in <a href="https://github.com/karmaniverous/entity-manager/blob/d2ff954ea0261727cdbac42b98076fc3e0181656/src/EntityManager/createEntityManager.ts#L175">EntityManager/createEntityManager.ts:175</a></li></ul></aside></div>
26
+ <div class="col-sidebar">
27
+ <div class="page-menu">
28
+ <div class="tsd-navigation settings">
29
+ <details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
30
+ <h3>Settings</h3></summary>
31
+ <div class="tsd-accordion-details">
32
+ <div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
33
+ <ul id="tsd-filter-options">
34
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li></ul></div>
35
+ <div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
36
+ <div class="site-menu">
37
+ <nav class="tsd-navigation"><a href="../modules.html">@karmaniverous/entity-manager</a>
38
+ <ul class="tsd-small-nested-navigation" id="tsd-nav-container">
39
+ <li>Loading...</li></ul></nav></div></div></div><footer>
40
+ <p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
41
+ <div class="overlay"></div></body></html>
@@ -0,0 +1,40 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>IndexTokensOf | @karmaniverous/entity-manager</title><meta name="description" content="Documentation for @karmaniverous/entity-manager"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
2
+ <div class="tsd-toolbar-contents container"><a href="https://github.com/karmaniverous/entity-manager" class="title">@karmaniverous/entity-manager</a>
3
+ <div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
4
+ <ul role="listbox" id="tsd-search-results"></ul>
5
+ <div id="tsd-search-status" aria-live="polite" aria-atomic="true">
6
+ <div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
7
+ <div class="container container-main">
8
+ <div class="col-content">
9
+ <div class="tsd-page-title">
10
+ <ul class="tsd-breadcrumb" aria-label="Breadcrumb">
11
+ <li><a href="../modules/index.html">index</a></li>
12
+ <li><a href="" aria-current="page">IndexTokensOf</a></li></ul>
13
+ <h1>Type Alias IndexTokensOf&lt;CF&gt;</h1></div>
14
+ <div class="tsd-signature"><span class="tsd-kind-type-alias">IndexTokensOf</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#cf">CF</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">indexes</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-keyword">infer</span> <span class="tsd-kind-type-parameter">I</span> <span class="tsd-signature-symbol">}</span><br/>    <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type tsd-kind-type-parameter">I</span> <span class="tsd-signature-keyword">extends</span> <a href="https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type" class="tsd-signature-type external" target="_blank">Record</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">?</span> <a href="https://www.typescriptlang.org/docs/handbook/utility-types.html#extracttype-union" class="tsd-signature-type external" target="_blank">Extract</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <span class="tsd-signature-type tsd-kind-type-parameter">I</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><br/>    <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
15
+ <div class="tsd-comment tsd-typography"><p>Derive the union of index token names from a values-first config literal.</p>
16
+ <p>When CF carries an <code>indexes</code> object with preserved literal keys (prefer <code>as const</code>),
17
+ this helper captures the index token union. Falls back to <code>string</code> if absent.</p>
18
+ </div>
19
+ <section class="tsd-panel">
20
+ <h4>Type Parameters</h4>
21
+ <ul class="tsd-type-parameter-list">
22
+ <li><span id="cf"><span class="tsd-kind-type-parameter">CF</span></span></li></ul></section><aside class="tsd-sources">
23
+ <ul>
24
+ <li>Defined in <a href="https://github.com/karmaniverous/entity-manager/blob/d2ff954ea0261727cdbac42b98076fc3e0181656/src/EntityManager/PageKey.ts#L76">EntityManager/PageKey.ts:76</a></li></ul></aside></div>
25
+ <div class="col-sidebar">
26
+ <div class="page-menu">
27
+ <div class="tsd-navigation settings">
28
+ <details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
29
+ <h3>Settings</h3></summary>
30
+ <div class="tsd-accordion-details">
31
+ <div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
32
+ <ul id="tsd-filter-options">
33
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li></ul></div>
34
+ <div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
35
+ <div class="site-menu">
36
+ <nav class="tsd-navigation"><a href="../modules.html">@karmaniverous/entity-manager</a>
37
+ <ul class="tsd-small-nested-navigation" id="tsd-nav-container">
38
+ <li>Loading...</li></ul></nav></div></div></div><footer>
39
+ <p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
40
+ <div class="overlay"></div></body></html>
@@ -0,0 +1,38 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>KeysFrom | @karmaniverous/entity-manager</title><meta name="description" content="Documentation for @karmaniverous/entity-manager"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
2
+ <div class="tsd-toolbar-contents container"><a href="https://github.com/karmaniverous/entity-manager" class="title">@karmaniverous/entity-manager</a>
3
+ <div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
4
+ <ul role="listbox" id="tsd-search-results"></ul>
5
+ <div id="tsd-search-status" aria-live="polite" aria-atomic="true">
6
+ <div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
7
+ <div class="container container-main">
8
+ <div class="col-content">
9
+ <div class="tsd-page-title">
10
+ <ul class="tsd-breadcrumb" aria-label="Breadcrumb">
11
+ <li><a href="../modules/index.html">index</a></li>
12
+ <li><a href="" aria-current="page">KeysFrom</a></li></ul>
13
+ <h1>Type Alias KeysFrom&lt;K&gt;</h1></div>
14
+ <div class="tsd-signature"><span class="tsd-kind-type-alias">KeysFrom</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#k">K</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-keyword">readonly</span> (<span class="tsd-signature-keyword">infer</span> <span class="tsd-kind-type-parameter">E</span>)<span class="tsd-signature-symbol">[]</span><br/>    <span class="tsd-signature-symbol">?</span> <a href="https://www.typescriptlang.org/docs/handbook/utility-types.html#extracttype-union" class="tsd-signature-type external" target="_blank">Extract</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type tsd-kind-type-parameter">E</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><br/>    <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#k">K</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">?</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#k">K</a> <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">never</span></div>
15
+ <div class="tsd-comment tsd-typography"><p>Normalize literals: string | readonly string[] -&gt; union of strings.</p>
16
+ </div>
17
+ <section class="tsd-panel">
18
+ <h4>Type Parameters</h4>
19
+ <ul class="tsd-type-parameter-list">
20
+ <li><span id="k"><span class="tsd-kind-type-parameter">K</span></span></li></ul></section><aside class="tsd-sources">
21
+ <ul>
22
+ <li>Defined in <a href="https://github.com/karmaniverous/entity-manager/blob/d2ff954ea0261727cdbac42b98076fc3e0181656/src/EntityManager/TokenAware.ts#L32">EntityManager/TokenAware.ts:32</a></li></ul></aside></div>
23
+ <div class="col-sidebar">
24
+ <div class="page-menu">
25
+ <div class="tsd-navigation settings">
26
+ <details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
27
+ <h3>Settings</h3></summary>
28
+ <div class="tsd-accordion-details">
29
+ <div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
30
+ <ul id="tsd-filter-options">
31
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li></ul></div>
32
+ <div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
33
+ <div class="site-menu">
34
+ <nav class="tsd-navigation"><a href="../modules.html">@karmaniverous/entity-manager</a>
35
+ <ul class="tsd-small-nested-navigation" id="tsd-nav-container">
36
+ <li>Loading...</li></ul></nav></div></div></div><footer>
37
+ <p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
38
+ <div class="overlay"></div></body></html>