hide-a-bed 5.2.7 → 6.0.0-beta.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/.prettierrc +7 -0
- package/README.md +270 -218
- package/dist/cjs/index.cjs +1952 -0
- package/dist/esm/index.mjs +1898 -0
- package/docs/.nojekyll +1 -0
- package/docs/assets/hierarchy.js +1 -0
- package/docs/assets/highlight.css +113 -0
- package/docs/assets/icons.js +18 -0
- package/docs/assets/icons.svg +1 -0
- package/docs/assets/main.js +60 -0
- package/docs/assets/navigation.js +1 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1633 -0
- package/docs/classes/QueryBuilder.html +42 -0
- package/docs/functions/bindConfig.html +4 -0
- package/docs/functions/bulkGet.html +14 -0
- package/docs/functions/bulkGetDictionary.html +10 -0
- package/docs/functions/bulkRemove.html +12 -0
- package/docs/functions/bulkRemoveMap.html +11 -0
- package/docs/functions/bulkSave.html +10 -0
- package/docs/functions/bulkSaveTransaction.html +23 -0
- package/docs/functions/createLock.html +7 -0
- package/docs/functions/createQuery.html +1 -0
- package/docs/functions/get.html +1 -0
- package/docs/functions/getAtRev.html +1 -0
- package/docs/functions/getDBInfo.html +10 -0
- package/docs/functions/patch.html +8 -0
- package/docs/functions/patchDangerously.html +9 -0
- package/docs/functions/put.html +1 -0
- package/docs/functions/query.html +15 -0
- package/docs/functions/queryStream.html +6 -0
- package/docs/functions/remove.html +1 -0
- package/docs/functions/removeLock.html +6 -0
- package/docs/functions/watchDocs.html +9 -0
- package/docs/functions/withRetry.html +6 -0
- package/docs/hierarchy.html +1 -0
- package/docs/index.html +483 -0
- package/docs/interfaces/NetworkError.html +6 -0
- package/docs/interfaces/NotFoundError.html +10 -0
- package/docs/interfaces/RetryOptions.html +10 -0
- package/docs/interfaces/RetryableError.html +10 -0
- package/docs/interfaces/StandardSchemaV1.FailureResult.html +4 -0
- package/docs/interfaces/StandardSchemaV1.Issue.html +6 -0
- package/docs/interfaces/StandardSchemaV1.Options.html +3 -0
- package/docs/interfaces/StandardSchemaV1.PathSegment.html +4 -0
- package/docs/interfaces/StandardSchemaV1.Props.html +10 -0
- package/docs/interfaces/StandardSchemaV1.SuccessResult.html +6 -0
- package/docs/interfaces/StandardSchemaV1.Types.html +6 -0
- package/docs/interfaces/StandardSchemaV1.html +4 -0
- package/docs/modules/StandardSchemaV1.html +1 -0
- package/docs/modules.html +1 -0
- package/docs/types/BoundInstance.html +1 -0
- package/docs/types/BulkGetBound.html +2 -0
- package/docs/types/BulkGetDictionaryBound.html +1 -0
- package/docs/types/BulkGetDictionaryOptions.html +2 -0
- package/docs/types/BulkGetDictionaryResult.html +3 -0
- package/docs/types/BulkGetOptions.html +3 -0
- package/docs/types/BulkGetResponse.html +1 -0
- package/docs/types/CouchConfig-1.html +1 -0
- package/docs/types/CouchConfig.html +1 -0
- package/docs/types/CouchConfigInput.html +1 -0
- package/docs/types/CouchDoc-1.html +1 -0
- package/docs/types/CouchDoc.html +2 -0
- package/docs/types/CouchDocInput.html +2 -0
- package/docs/types/GetAtRevBound.html +1 -0
- package/docs/types/GetBound.html +1 -0
- package/docs/types/GetOptions.html +2 -0
- package/docs/types/LockDoc-1.html +1 -0
- package/docs/types/LockDoc.html +1 -0
- package/docs/types/LockOptions-1.html +1 -0
- package/docs/types/LockOptions.html +1 -0
- package/docs/types/LockOptionsInput.html +1 -0
- package/docs/types/OnInvalidDocAction.html +1 -0
- package/docs/types/OnRow.html +1 -0
- package/docs/types/QueryBound.html +1 -0
- package/docs/types/SimpleViewOptions-1.html +1 -0
- package/docs/types/SimpleViewOptions.html +1 -0
- package/docs/types/StandardSchemaV1.InferInput.html +2 -0
- package/docs/types/StandardSchemaV1.InferOutput.html +2 -0
- package/docs/types/StandardSchemaV1.Result.html +2 -0
- package/docs/types/ViewQueryResponse-1.html +1 -0
- package/docs/types/ViewQueryResponse.html +2 -0
- package/docs/types/ViewQueryResponseValidated.html +2 -0
- package/docs/types/ViewRow-1.html +1 -0
- package/docs/types/ViewRow.html +2 -0
- package/docs/types/ViewRowValidated.html +7 -0
- package/docs/types/ViewString.html +1 -0
- package/docs/types/WatchOptionsInput.html +1 -0
- package/docs/types/WatchOptionsSchema-1.html +1 -0
- package/docs/types/WatchOptionsSchema.html +1 -0
- package/eslint.config.js +15 -0
- package/impl/bindConfig.mts +140 -0
- package/impl/bulkGet.mts +256 -0
- package/impl/bulkGet.test.mts +159 -0
- package/impl/bulkRemove.mts +98 -0
- package/impl/bulkRemove.test.mts +102 -0
- package/impl/bulkSave.mts +286 -0
- package/impl/bulkSave.test.mts +319 -0
- package/impl/get.mts +137 -0
- package/impl/get.test.mts +114 -0
- package/impl/getDBInfo.mts +67 -0
- package/impl/getDBInfo.test.mts +62 -0
- package/impl/patch.mts +134 -0
- package/impl/patch.test.mts +142 -0
- package/impl/put.mts +56 -0
- package/impl/put.test.mts +114 -0
- package/impl/query.mts +224 -0
- package/impl/query.test.mts +280 -0
- package/impl/remove.mts +65 -0
- package/impl/remove.test.mts +82 -0
- package/impl/retry.mts +66 -0
- package/impl/retry.test.mts +77 -0
- package/impl/stream.mts +143 -0
- package/impl/stream.test.mts +205 -0
- package/impl/sugar/lock.mts +103 -0
- package/impl/sugar/lock.test.mts +113 -0
- package/impl/sugar/{watch.mjs → watch.mts} +56 -22
- package/impl/sugar/watch.test.mts +155 -0
- package/impl/utils/errors.mts +130 -0
- package/impl/utils/errors.test.mts +58 -0
- package/impl/utils/logger.mts +62 -0
- package/impl/utils/logger.test.mts +129 -0
- package/impl/utils/mergeNeedleOpts.mts +16 -0
- package/impl/utils/parseRows.mts +117 -0
- package/impl/utils/parseRows.test.mts +183 -0
- package/impl/utils/queryBuilder.mts +173 -0
- package/impl/utils/queryBuilder.test.mts +83 -0
- package/impl/utils/queryString.mts +44 -0
- package/impl/utils/queryString.test.mts +53 -0
- package/impl/{trackedEmitter.mjs → utils/trackedEmitter.mts} +9 -7
- package/impl/utils/transactionErrors.mts +71 -0
- package/index.mts +82 -0
- package/index.test.mts +415 -0
- package/package.json +45 -31
- package/schema/config.mts +81 -0
- package/schema/couch/couch.input.schema.ts +43 -0
- package/schema/couch/couch.output.schema.ts +169 -0
- package/schema/sugar/lock.mts +18 -0
- package/schema/sugar/watch.mts +14 -0
- package/schema/util.mts +8 -0
- package/tsconfig.json +10 -4
- package/tsdown.config.ts +16 -0
- package/typedoc.json +4 -0
- package/types/output/eslint.config.d.ts +3 -0
- package/types/output/eslint.config.d.ts.map +1 -0
- package/types/output/impl/bindConfig.d.mts +174 -0
- package/types/output/impl/bindConfig.d.mts.map +1 -0
- package/types/output/impl/bulkGet.d.mts +75 -0
- package/types/output/impl/bulkGet.d.mts.map +1 -0
- package/types/output/impl/bulkGet.test.d.mts +2 -0
- package/types/output/impl/bulkGet.test.d.mts.map +1 -0
- package/types/output/impl/bulkRemove.d.mts +63 -0
- package/types/output/impl/bulkRemove.d.mts.map +1 -0
- package/types/output/impl/bulkRemove.test.d.mts +2 -0
- package/types/output/impl/bulkRemove.test.d.mts.map +1 -0
- package/types/output/impl/bulkSave.d.mts +64 -0
- package/types/output/impl/bulkSave.d.mts.map +1 -0
- package/types/output/impl/bulkSave.test.d.mts +2 -0
- package/types/output/impl/bulkSave.test.d.mts.map +1 -0
- package/types/output/impl/get.d.mts +20 -0
- package/types/output/impl/get.d.mts.map +1 -0
- package/types/output/impl/get.test.d.mts +2 -0
- package/types/output/impl/get.test.d.mts.map +1 -0
- package/types/output/impl/getDBInfo.d.mts +52 -0
- package/types/output/impl/getDBInfo.d.mts.map +1 -0
- package/types/output/impl/getDBInfo.test.d.mts +2 -0
- package/types/output/impl/getDBInfo.test.d.mts.map +1 -0
- package/types/output/impl/patch.d.mts +45 -0
- package/types/output/impl/patch.d.mts.map +1 -0
- package/types/output/impl/patch.test.d.mts +2 -0
- package/types/output/impl/patch.test.d.mts.map +1 -0
- package/types/output/impl/put.d.mts +5 -0
- package/types/output/impl/put.d.mts.map +1 -0
- package/types/output/impl/put.test.d.mts +2 -0
- package/types/output/impl/put.test.d.mts.map +1 -0
- package/types/output/impl/query.d.mts +47 -0
- package/types/output/impl/query.d.mts.map +1 -0
- package/types/output/impl/query.test.d.mts +2 -0
- package/types/output/impl/query.test.d.mts.map +1 -0
- package/types/output/impl/remove.d.mts +9 -0
- package/types/output/impl/remove.d.mts.map +1 -0
- package/types/output/impl/remove.test.d.mts +2 -0
- package/types/output/impl/remove.test.d.mts.map +1 -0
- package/types/output/impl/retry.d.mts +32 -0
- package/types/output/impl/retry.d.mts.map +1 -0
- package/types/output/impl/retry.test.d.mts +2 -0
- package/types/output/impl/retry.test.d.mts.map +1 -0
- package/types/output/impl/stream.d.mts +13 -0
- package/types/output/impl/stream.d.mts.map +1 -0
- package/types/output/impl/stream.test.d.mts +2 -0
- package/types/output/impl/stream.test.d.mts.map +1 -0
- package/types/output/impl/sugar/lock.d.mts +24 -0
- package/types/output/impl/sugar/lock.d.mts.map +1 -0
- package/types/output/impl/sugar/lock.test.d.mts +2 -0
- package/types/output/impl/sugar/lock.test.d.mts.map +1 -0
- package/types/output/impl/sugar/watch.d.mts +21 -0
- package/types/output/impl/sugar/watch.d.mts.map +1 -0
- package/types/output/impl/sugar/watch.test.d.mts +2 -0
- package/types/output/impl/sugar/watch.test.d.mts.map +1 -0
- package/types/output/impl/utils/errors.d.mts +78 -0
- package/types/output/impl/utils/errors.d.mts.map +1 -0
- package/types/output/impl/utils/errors.test.d.mts +2 -0
- package/types/output/impl/utils/errors.test.d.mts.map +1 -0
- package/types/output/impl/utils/logger.d.mts +11 -0
- package/types/output/impl/utils/logger.d.mts.map +1 -0
- package/types/output/impl/utils/logger.test.d.mts +2 -0
- package/types/output/impl/utils/logger.test.d.mts.map +1 -0
- package/types/output/impl/utils/mergeNeedleOpts.d.mts +53 -0
- package/types/output/impl/utils/mergeNeedleOpts.d.mts.map +1 -0
- package/types/output/impl/utils/parseRows.d.mts +15 -0
- package/types/output/impl/utils/parseRows.d.mts.map +1 -0
- package/types/output/impl/utils/parseRows.test.d.mts +2 -0
- package/types/output/impl/utils/parseRows.test.d.mts.map +1 -0
- package/types/output/impl/utils/queryBuilder.d.mts +68 -0
- package/types/output/impl/utils/queryBuilder.d.mts.map +1 -0
- package/types/output/impl/utils/queryBuilder.test.d.mts +2 -0
- package/types/output/impl/utils/queryBuilder.test.d.mts.map +1 -0
- package/types/output/impl/utils/queryString.d.mts +9 -0
- package/types/output/impl/utils/queryString.d.mts.map +1 -0
- package/types/output/impl/utils/queryString.test.d.mts +2 -0
- package/types/output/impl/utils/queryString.test.d.mts.map +1 -0
- package/types/output/impl/utils/trackedEmitter.d.mts +7 -0
- package/types/output/impl/utils/trackedEmitter.d.mts.map +1 -0
- package/{impl → types/output/impl/utils}/transactionErrors.d.mts +16 -31
- package/types/output/impl/utils/transactionErrors.d.mts.map +1 -0
- package/types/output/index.d.mts +32 -0
- package/types/output/index.d.mts.map +1 -0
- package/types/output/index.test.d.mts +2 -0
- package/types/output/index.test.d.mts.map +1 -0
- package/types/output/schema/config.d.mts +90 -0
- package/types/output/schema/config.d.mts.map +1 -0
- package/types/output/schema/couch/couch.input.schema.d.ts +29 -0
- package/types/output/schema/couch/couch.input.schema.d.ts.map +1 -0
- package/types/output/schema/couch/couch.output.schema.d.ts +113 -0
- package/types/output/schema/couch/couch.output.schema.d.ts.map +1 -0
- package/types/output/schema/sugar/lock.d.mts +19 -0
- package/types/output/schema/sugar/lock.d.mts.map +1 -0
- package/types/output/schema/sugar/watch.d.mts +11 -0
- package/types/output/schema/sugar/watch.d.mts.map +1 -0
- package/types/output/schema/util.d.mts +85 -0
- package/types/output/schema/util.d.mts.map +1 -0
- package/types/output/tsdown.config.d.ts +3 -0
- package/types/output/tsdown.config.d.ts.map +1 -0
- package/types/output/types/standard-schema.d.ts +60 -0
- package/types/output/types/standard-schema.d.ts.map +1 -0
- package/types/standard-schema.ts +76 -0
- package/types/utils.d.ts +1 -0
- package/cjs/impl/bulk.cjs +0 -275
- package/cjs/impl/changes.cjs +0 -67
- package/cjs/impl/crud.cjs +0 -127
- package/cjs/impl/errors.cjs +0 -75
- package/cjs/impl/logger.cjs +0 -70
- package/cjs/impl/patch.cjs +0 -95
- package/cjs/impl/query.cjs +0 -116
- package/cjs/impl/queryBuilder.cjs +0 -163
- package/cjs/impl/retry.cjs +0 -55
- package/cjs/impl/stream.cjs +0 -121
- package/cjs/impl/sugar/lock.cjs +0 -81
- package/cjs/impl/sugar/watch.cjs +0 -159
- package/cjs/impl/trackedEmitter.cjs +0 -54
- package/cjs/impl/transactionErrors.cjs +0 -70
- package/cjs/impl/util.cjs +0 -64
- package/cjs/index.cjs +0 -132
- package/cjs/integration/changes.cjs +0 -76
- package/cjs/integration/disconnect-watch.cjs +0 -52
- package/cjs/integration/watch.cjs +0 -59
- package/cjs/schema/bind.cjs +0 -59
- package/cjs/schema/bulk.cjs +0 -92
- package/cjs/schema/changes.cjs +0 -68
- package/cjs/schema/config.cjs +0 -48
- package/cjs/schema/crud.cjs +0 -77
- package/cjs/schema/patch.cjs +0 -53
- package/cjs/schema/query.cjs +0 -62
- package/cjs/schema/stream.cjs +0 -42
- package/cjs/schema/sugar/lock.cjs +0 -59
- package/cjs/schema/sugar/watch.cjs +0 -42
- package/cjs/schema/util.cjs +0 -39
- package/config.json +0 -5
- package/docs/compiler.png +0 -0
- package/dualmode.config.json +0 -11
- package/impl/bulk.d.mts +0 -11
- package/impl/bulk.d.mts.map +0 -1
- package/impl/bulk.mjs +0 -291
- package/impl/changes.d.mts +0 -12
- package/impl/changes.d.mts.map +0 -1
- package/impl/changes.mjs +0 -53
- package/impl/crud.d.mts +0 -7
- package/impl/crud.d.mts.map +0 -1
- package/impl/crud.mjs +0 -108
- package/impl/errors.d.mts +0 -43
- package/impl/errors.d.mts.map +0 -1
- package/impl/errors.mjs +0 -65
- package/impl/logger.d.mts +0 -32
- package/impl/logger.d.mts.map +0 -1
- package/impl/logger.mjs +0 -59
- package/impl/patch.d.mts +0 -6
- package/impl/patch.d.mts.map +0 -1
- package/impl/patch.mjs +0 -88
- package/impl/query.d.mts +0 -195
- package/impl/query.d.mts.map +0 -1
- package/impl/query.mjs +0 -122
- package/impl/queryBuilder.d.mts +0 -154
- package/impl/queryBuilder.d.mts.map +0 -1
- package/impl/queryBuilder.mjs +0 -175
- package/impl/retry.d.mts +0 -2
- package/impl/retry.d.mts.map +0 -1
- package/impl/retry.mjs +0 -39
- package/impl/stream.d.mts +0 -3
- package/impl/stream.d.mts.map +0 -1
- package/impl/stream.mjs +0 -98
- package/impl/sugar/lock.d.mts +0 -5
- package/impl/sugar/lock.d.mts.map +0 -1
- package/impl/sugar/lock.mjs +0 -70
- package/impl/sugar/watch.d.mts +0 -34
- package/impl/sugar/watch.d.mts.map +0 -1
- package/impl/trackedEmitter.d.mts +0 -8
- package/impl/trackedEmitter.d.mts.map +0 -1
- package/impl/transactionErrors.d.mts.map +0 -1
- package/impl/transactionErrors.mjs +0 -47
- package/impl/util.d.mts +0 -3
- package/impl/util.d.mts.map +0 -1
- package/impl/util.mjs +0 -35
- package/index.d.mts +0 -80
- package/index.d.mts.map +0 -1
- package/index.mjs +0 -141
- package/integration/changes.mjs +0 -60
- package/integration/disconnect-watch.mjs +0 -36
- package/integration/watch.mjs +0 -40
- package/log.txt +0 -580
- package/schema/bind.d.mts +0 -5461
- package/schema/bind.d.mts.map +0 -1
- package/schema/bind.mjs +0 -43
- package/schema/bulk.d.mts +0 -923
- package/schema/bulk.d.mts.map +0 -1
- package/schema/bulk.mjs +0 -83
- package/schema/changes.d.mts +0 -191
- package/schema/changes.d.mts.map +0 -1
- package/schema/changes.mjs +0 -59
- package/schema/config.d.mts +0 -79
- package/schema/config.d.mts.map +0 -1
- package/schema/config.mjs +0 -26
- package/schema/crud.d.mts +0 -491
- package/schema/crud.d.mts.map +0 -1
- package/schema/crud.mjs +0 -64
- package/schema/patch.d.mts +0 -255
- package/schema/patch.d.mts.map +0 -1
- package/schema/patch.mjs +0 -42
- package/schema/query.d.mts +0 -406
- package/schema/query.d.mts.map +0 -1
- package/schema/query.mjs +0 -45
- package/schema/stream.d.mts +0 -211
- package/schema/stream.d.mts.map +0 -1
- package/schema/stream.mjs +0 -23
- package/schema/sugar/lock.d.mts +0 -238
- package/schema/sugar/lock.d.mts.map +0 -1
- package/schema/sugar/lock.mjs +0 -50
- package/schema/sugar/watch.d.mts +0 -127
- package/schema/sugar/watch.d.mts.map +0 -1
- package/schema/sugar/watch.mjs +0 -29
- package/schema/util.d.mts +0 -160
- package/schema/util.d.mts.map +0 -1
- package/schema/util.mjs +0 -35
- package/types/changes-stream.d.ts +0 -11
|
@@ -0,0 +1 @@
|
|
|
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>ViewRow | @brivity/hide-a-bed</title><meta name="description" content="Documentation for @brivity/hide-a-bed"/><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></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"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@brivity/hide-a-bed</a><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"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><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><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">ViewRow</a></li></ul><h1>Type Alias ViewRow</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">ViewRow</span><span class="tsd-signature-symbol">:</span> <a href="StandardSchemaV1.InferOutput.html" class="tsd-signature-type tsd-kind-type-alias">InferOutput</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-keyword">typeof</span> <a href="ViewRow.html" class="tsd-signature-type tsd-kind-type-alias">ViewRow</a><span class="tsd-signature-symbol">></span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/DerrykBoyd/hide-a-bed/blob/924f741f6fd36e483aec12aa8737fdab16f11204/client/schema/couch/couch.output.schema.ts#L22">schema/couch/couch.output.schema.ts:22</a></li><li>Defined in <a href="https://github.com/DerrykBoyd/hide-a-bed/blob/924f741f6fd36e483aec12aa8737fdab16f11204/client/schema/couch/couch.output.schema.ts#L29">schema/couch/couch.output.schema.ts:29</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><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><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><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><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><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>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><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>External</span></label></li></ul></div><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><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@brivity/hide-a-bed</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
@@ -0,0 +1,2 @@
|
|
|
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>ViewRow | @brivity/hide-a-bed</title><meta name="description" content="Documentation for @brivity/hide-a-bed"/><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></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"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@brivity/hide-a-bed</a><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"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><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><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">ViewRow</a></li></ul><h1>Type Alias ViewRow</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">ViewRow</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ZodObject</span><span class="tsd-signature-symbol"><</span><br/> <span class="tsd-signature-symbol">{</span><br/> <span class="tsd-kind-property">doc</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ZodOptional</span><span class="tsd-signature-symbol"><</span><br/> <span class="tsd-signature-type">ZodNullable</span><span class="tsd-signature-symbol"><</span><br/> <span class="tsd-signature-type">ZodObject</span><span class="tsd-signature-symbol"><</span><br/> <span class="tsd-signature-symbol">{</span><br/> <span class="tsd-kind-property">_deleted</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ZodOptional</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ZodBoolean</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">_id</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ZodString</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">_rev</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ZodOptional</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ZodNullable</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ZodOptional</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ZodString</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-type">$loose</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">error</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ZodOptional</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ZodString</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">id</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ZodOptional</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ZodString</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">key</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ZodOptional</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ZodNullable</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ZodAny</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">value</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ZodOptional</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ZodNullable</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ZodAny</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-type">$strip</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">></span></div><div class="tsd-comment tsd-typography"><p>Default schema for a CouchDB view row if no validation schema is provided.</p>
|
|
2
|
+
</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/DerrykBoyd/hide-a-bed/blob/924f741f6fd36e483aec12aa8737fdab16f11204/client/schema/couch/couch.output.schema.ts#L22">schema/couch/couch.output.schema.ts:22</a></li><li>Defined in <a href="https://github.com/DerrykBoyd/hide-a-bed/blob/924f741f6fd36e483aec12aa8737fdab16f11204/client/schema/couch/couch.output.schema.ts#L29">schema/couch/couch.output.schema.ts:29</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><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><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><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><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><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>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><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>External</span></label></li></ul></div><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><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@brivity/hide-a-bed</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
@@ -0,0 +1,7 @@
|
|
|
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>ViewRowValidated | @brivity/hide-a-bed</title><meta name="description" content="Documentation for @brivity/hide-a-bed"/><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></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"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@brivity/hide-a-bed</a><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"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><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><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">ViewRowValidated</a></li></ul><h1>Type Alias ViewRowValidated<DocSchema, KeySchema, ValueSchema></h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>A CouchDB view row with validated key, value, and document schemas.</p>
|
|
2
|
+
</div></section><div class="tsd-signature"><span class="tsd-signature-keyword">type</span> <span class="tsd-kind-type-alias">ViewRowValidated</span><span class="tsd-signature-symbol"><</span><br/> <a class="tsd-signature-type tsd-kind-type-parameter" href="#docschema">DocSchema</a> <span class="tsd-signature-keyword">extends</span> <a href="../interfaces/StandardSchemaV1.html" class="tsd-signature-type tsd-kind-interface">StandardSchemaV1</a><span class="tsd-signature-symbol">,</span><br/> <a class="tsd-signature-type tsd-kind-type-parameter" href="#keyschema">KeySchema</a> <span class="tsd-signature-keyword">extends</span> <a href="../interfaces/StandardSchemaV1.html" class="tsd-signature-type tsd-kind-interface">StandardSchemaV1</a><span class="tsd-signature-symbol">,</span><br/> <a class="tsd-signature-type tsd-kind-type-parameter" href="#valueschema">ValueSchema</a> <span class="tsd-signature-keyword">extends</span> <a href="../interfaces/StandardSchemaV1.html" class="tsd-signature-type tsd-kind-interface">StandardSchemaV1</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">></span> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-symbol">{</span><br/> <a class="tsd-kind-property" href="#doc">doc</a><span class="tsd-signature-symbol">?:</span> <a href="StandardSchemaV1.InferOutput.html" class="tsd-signature-type tsd-kind-type-alias">InferOutput</a><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#docschema">DocSchema</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#error">error</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#id">id</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#key">key</a><span class="tsd-signature-symbol">?:</span> <a href="StandardSchemaV1.InferOutput.html" class="tsd-signature-type tsd-kind-type-alias">InferOutput</a><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#keyschema">KeySchema</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#value">value</a><span class="tsd-signature-symbol">?:</span> <a href="StandardSchemaV1.InferOutput.html" class="tsd-signature-type tsd-kind-type-alias">InferOutput</a><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#valueschema">ValueSchema</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span id="docschema"><span class="tsd-kind-type-parameter">DocSchema</span> <span class="tsd-signature-keyword">extends</span> <a href="../interfaces/StandardSchemaV1.html" class="tsd-signature-type tsd-kind-interface">StandardSchemaV1</a></span></li><li><span id="keyschema"><span class="tsd-kind-type-parameter">KeySchema</span> <span class="tsd-signature-keyword">extends</span> <a href="../interfaces/StandardSchemaV1.html" class="tsd-signature-type tsd-kind-interface">StandardSchemaV1</a></span></li><li><span id="valueschema"><span class="tsd-kind-type-parameter">ValueSchema</span> <span class="tsd-signature-keyword">extends</span> <a href="../interfaces/StandardSchemaV1.html" class="tsd-signature-type tsd-kind-interface">StandardSchemaV1</a></span></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/DerrykBoyd/hide-a-bed/blob/924f741f6fd36e483aec12aa8737fdab16f11204/client/schema/couch/couch.output.schema.ts#L34">schema/couch/couch.output.schema.ts:34</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#doc" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>doc?</span></a>
|
|
3
|
+
<a href="#error" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>error?</span></a>
|
|
4
|
+
<a href="#id" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>id?</span></a>
|
|
5
|
+
<a href="#key" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>key?</span></a>
|
|
6
|
+
<a href="#value" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>value?</span></a>
|
|
7
|
+
</div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Properties</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="doc"><code class="tsd-tag">Optional</code><span>doc</span><a href="#doc" 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></h3><div class="tsd-signature"><span class="tsd-kind-property">doc</span><span class="tsd-signature-symbol">?:</span> <a href="StandardSchemaV1.InferOutput.html" class="tsd-signature-type tsd-kind-type-alias">InferOutput</a><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#docschema">DocSchema</a><span class="tsd-signature-symbol">></span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/DerrykBoyd/hide-a-bed/blob/924f741f6fd36e483aec12aa8737fdab16f11204/client/schema/couch/couch.output.schema.ts#L42">schema/couch/couch.output.schema.ts:42</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="error"><code class="tsd-tag">Optional</code><span>error</span><a href="#error" 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></h3><div class="tsd-signature"><span class="tsd-kind-property">error</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/DerrykBoyd/hide-a-bed/blob/924f741f6fd36e483aec12aa8737fdab16f11204/client/schema/couch/couch.output.schema.ts#L43">schema/couch/couch.output.schema.ts:43</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="id"><code class="tsd-tag">Optional</code><span>id</span><a href="#id" 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></h3><div class="tsd-signature"><span class="tsd-kind-property">id</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/DerrykBoyd/hide-a-bed/blob/924f741f6fd36e483aec12aa8737fdab16f11204/client/schema/couch/couch.output.schema.ts#L39">schema/couch/couch.output.schema.ts:39</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="key"><code class="tsd-tag">Optional</code><span>key</span><a href="#key" 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></h3><div class="tsd-signature"><span class="tsd-kind-property">key</span><span class="tsd-signature-symbol">?:</span> <a href="StandardSchemaV1.InferOutput.html" class="tsd-signature-type tsd-kind-type-alias">InferOutput</a><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#keyschema">KeySchema</a><span class="tsd-signature-symbol">></span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/DerrykBoyd/hide-a-bed/blob/924f741f6fd36e483aec12aa8737fdab16f11204/client/schema/couch/couch.output.schema.ts#L40">schema/couch/couch.output.schema.ts:40</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="value"><code class="tsd-tag">Optional</code><span>value</span><a href="#value" 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></h3><div class="tsd-signature"><span class="tsd-kind-property">value</span><span class="tsd-signature-symbol">?:</span> <a href="StandardSchemaV1.InferOutput.html" class="tsd-signature-type tsd-kind-type-alias">InferOutput</a><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#valueschema">ValueSchema</a><span class="tsd-signature-symbol">></span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/DerrykBoyd/hide-a-bed/blob/924f741f6fd36e483aec12aa8737fdab16f11204/client/schema/couch/couch.output.schema.ts#L41">schema/couch/couch.output.schema.ts:41</a></li></ul></aside></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><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><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><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><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><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>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><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>External</span></label></li></ul></div><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><details open class="tsd-accordion tsd-page-navigation"><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><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary><div><a href="#doc"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>doc</span></a><a href="#error"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>error</span></a><a href="#id"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>id</span></a><a href="#key"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>key</span></a><a href="#value"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>value</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@brivity/hide-a-bed</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
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>ViewString | @brivity/hide-a-bed</title><meta name="description" content="Documentation for @brivity/hide-a-bed"/><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></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"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@brivity/hide-a-bed</a><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"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><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><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">ViewString</a></li></ul><h1>Type Alias ViewString</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">ViewString</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"_all_docs"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">`</span><span class="tsd-signature-type">_design/</span><span class="tsd-signature-symbol">${</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-type">/_view/</span><span class="tsd-signature-symbol">${</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">`</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/DerrykBoyd/hide-a-bed/blob/924f741f6fd36e483aec12aa8737fdab16f11204/client/schema/couch/couch.input.schema.ts#L4">schema/couch/couch.input.schema.ts:4</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><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><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><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><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><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>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><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>External</span></label></li></ul></div><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><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@brivity/hide-a-bed</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
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>WatchOptionsInput | @brivity/hide-a-bed</title><meta name="description" content="Documentation for @brivity/hide-a-bed"/><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></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"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@brivity/hide-a-bed</a><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"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><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><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">WatchOptionsInput</a></li></ul><h1>Type Alias WatchOptionsInput</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">WatchOptionsInput</span><span class="tsd-signature-symbol">:</span> <a href="StandardSchemaV1.InferInput.html" class="tsd-signature-type tsd-kind-type-alias">InferInput</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-keyword">typeof</span> <a href="WatchOptionsSchema.html" class="tsd-signature-type tsd-kind-type-alias">WatchOptionsSchema</a><span class="tsd-signature-symbol">></span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/DerrykBoyd/hide-a-bed/blob/924f741f6fd36e483aec12aa8737fdab16f11204/client/schema/sugar/watch.mts#L14">schema/sugar/watch.mts:14</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><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><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><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><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><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>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><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>External</span></label></li></ul></div><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><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@brivity/hide-a-bed</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
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>WatchOptionsSchema | @brivity/hide-a-bed</title><meta name="description" content="Documentation for @brivity/hide-a-bed"/><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></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"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@brivity/hide-a-bed</a><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"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><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><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">WatchOptionsSchema</a></li></ul><h1>Type Alias WatchOptionsSchema</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">WatchOptionsSchema</span><span class="tsd-signature-symbol">:</span> <a href="StandardSchemaV1.InferOutput.html" class="tsd-signature-type tsd-kind-type-alias">InferOutput</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-keyword">typeof</span> <a href="WatchOptionsSchema.html" class="tsd-signature-type tsd-kind-type-alias">WatchOptionsSchema</a><span class="tsd-signature-symbol">></span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/DerrykBoyd/hide-a-bed/blob/924f741f6fd36e483aec12aa8737fdab16f11204/client/schema/sugar/watch.mts#L4">schema/sugar/watch.mts:4</a></li><li>Defined in <a href="https://github.com/DerrykBoyd/hide-a-bed/blob/924f741f6fd36e483aec12aa8737fdab16f11204/client/schema/sugar/watch.mts#L13">schema/sugar/watch.mts:13</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><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><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><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><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><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>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><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>External</span></label></li></ul></div><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><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@brivity/hide-a-bed</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
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>WatchOptionsSchema | @brivity/hide-a-bed</title><meta name="description" content="Documentation for @brivity/hide-a-bed"/><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></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"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@brivity/hide-a-bed</a><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"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><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><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">WatchOptionsSchema</a></li></ul><h1>Type Alias WatchOptionsSchema</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">WatchOptionsSchema</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ZodObject</span><span class="tsd-signature-symbol"><</span><br/> <span class="tsd-signature-symbol">{</span><br/> <span class="tsd-kind-property">include_docs</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ZodOptional</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ZodDefault</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ZodBoolean</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">initialDelay</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ZodOptional</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ZodNumber</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">maxDelay</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ZodOptional</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ZodNumber</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">maxRetries</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ZodOptional</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ZodNumber</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-type">$strip</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">></span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/DerrykBoyd/hide-a-bed/blob/924f741f6fd36e483aec12aa8737fdab16f11204/client/schema/sugar/watch.mts#L4">schema/sugar/watch.mts:4</a></li><li>Defined in <a href="https://github.com/DerrykBoyd/hide-a-bed/blob/924f741f6fd36e483aec12aa8737fdab16f11204/client/schema/sugar/watch.mts#L13">schema/sugar/watch.mts:13</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><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><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><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><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><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>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><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>External</span></label></li></ul></div><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><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@brivity/hide-a-bed</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
package/eslint.config.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import js from '@eslint/js'
|
|
2
|
+
import globals from 'globals'
|
|
3
|
+
import tseslint from 'typescript-eslint'
|
|
4
|
+
import { defineConfig, globalIgnores } from 'eslint/config'
|
|
5
|
+
|
|
6
|
+
export default defineConfig([
|
|
7
|
+
globalIgnores(['dist/', 'node_modules/', 'docs/', 'types/']),
|
|
8
|
+
{
|
|
9
|
+
files: ['**/*.{js,mjs,cjs,ts,mts,cts}'],
|
|
10
|
+
plugins: { js },
|
|
11
|
+
extends: ['js/recommended'],
|
|
12
|
+
languageOptions: { globals: globals.browser }
|
|
13
|
+
},
|
|
14
|
+
tseslint.configs.recommended
|
|
15
|
+
])
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import type z from 'zod'
|
|
2
|
+
import { CouchConfig, type CouchConfigInput } from '../schema/config.mts'
|
|
3
|
+
import { withRetry } from './retry.mts'
|
|
4
|
+
import {
|
|
5
|
+
type BulkGetBound,
|
|
6
|
+
bulkGet,
|
|
7
|
+
type BulkGetDictionaryBound,
|
|
8
|
+
bulkGetDictionary
|
|
9
|
+
} from './bulkGet.mts'
|
|
10
|
+
import { type GetBound, type GetAtRevBound, getAtRev, get } from './get.mts'
|
|
11
|
+
import { queryStream } from './stream.mts'
|
|
12
|
+
import { patch, patchDangerously } from './patch.mts'
|
|
13
|
+
import { put } from './put.mts'
|
|
14
|
+
import type { QueryBound } from './query.mts'
|
|
15
|
+
import { query } from './query.mts'
|
|
16
|
+
import { bulkRemove, bulkRemoveMap } from './bulkRemove.mts'
|
|
17
|
+
import { bulkSave, bulkSaveTransaction } from './bulkSave.mts'
|
|
18
|
+
import { getDBInfo } from './getDBInfo.mts'
|
|
19
|
+
import { remove } from './remove.mts'
|
|
20
|
+
import { createLock, removeLock } from './sugar/lock.mts'
|
|
21
|
+
import { watchDocs } from './sugar/watch.mts'
|
|
22
|
+
|
|
23
|
+
export type BoundInstance = ReturnType<typeof doBind> & {
|
|
24
|
+
options(overrides: Partial<z.input<typeof CouchConfig>>): BoundInstance
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Build a validated binding that exposes CouchDB helpers plus an options() helper for overrides.
|
|
29
|
+
* @param config The CouchDB configuration
|
|
30
|
+
* @returns A bound instance with CouchDB operations and an options() method for overrides
|
|
31
|
+
*/
|
|
32
|
+
export const bindConfig = (config: CouchConfigInput): BoundInstance => {
|
|
33
|
+
const parsedConfig = CouchConfig.parse(config)
|
|
34
|
+
|
|
35
|
+
const funcs = doBind(parsedConfig)
|
|
36
|
+
|
|
37
|
+
// Add the options function that returns a new bound instance
|
|
38
|
+
// this allows the user to override some options
|
|
39
|
+
const reconfigure: BoundInstance['options'] = (overrides: Partial<CouchConfigInput>) => {
|
|
40
|
+
const newConfig: z.input<typeof CouchConfig> = { ...config, ...overrides }
|
|
41
|
+
return bindConfig(newConfig)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const bound: BoundInstance = { ...funcs, options: reconfigure }
|
|
45
|
+
return bound
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @internal
|
|
50
|
+
*
|
|
51
|
+
* Helper to bind a function to a config, optionally wrapping it with retry logic.
|
|
52
|
+
* Casts to the appropriate bound function type.
|
|
53
|
+
* @param func The function to bind
|
|
54
|
+
* @param config The CouchDB configuration
|
|
55
|
+
* @returns The bound function, possibly wrapped with retry logic
|
|
56
|
+
*/
|
|
57
|
+
export function getBoundWithRetry<
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
59
|
+
TBound extends (...args: any[]) => Promise<any>
|
|
60
|
+
>(
|
|
61
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
62
|
+
func: (config: CouchConfig, ...args: any[]) => Promise<any>,
|
|
63
|
+
config: CouchConfig
|
|
64
|
+
) {
|
|
65
|
+
const bound = func.bind(null, config)
|
|
66
|
+
if (config.bindWithRetry) {
|
|
67
|
+
return withRetry(bound, {
|
|
68
|
+
maxRetries: config.maxRetries ?? 10,
|
|
69
|
+
initialDelay: config.initialDelay ?? 1000,
|
|
70
|
+
backoffFactor: config.backoffFactor ?? 2
|
|
71
|
+
}) as TBound
|
|
72
|
+
} else {
|
|
73
|
+
return bound as TBound
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* @internal
|
|
79
|
+
*
|
|
80
|
+
* Bind core CouchDB operations to a specific configuration, optionally applying retry wrappers.
|
|
81
|
+
* @param config The CouchDB configuration
|
|
82
|
+
* @returns An object with CouchDB operations bound to the provided configuration
|
|
83
|
+
*/
|
|
84
|
+
function doBind(config: CouchConfig) {
|
|
85
|
+
// Default retry options
|
|
86
|
+
const retryOptions = {
|
|
87
|
+
maxRetries: config.maxRetries ?? 10,
|
|
88
|
+
initialDelay: config.initialDelay ?? 1000,
|
|
89
|
+
backoffFactor: config.backoffFactor ?? 2
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Create the object without the config property first
|
|
93
|
+
const result = {
|
|
94
|
+
/**
|
|
95
|
+
* These functions use overloaded signatures when bound.
|
|
96
|
+
* To preserve the overloads we need dedicated Bound types
|
|
97
|
+
*/
|
|
98
|
+
bulkGet: getBoundWithRetry<BulkGetBound>(bulkGet, config),
|
|
99
|
+
bulkGetDictionary: getBoundWithRetry<BulkGetDictionaryBound>(bulkGetDictionary, config),
|
|
100
|
+
get: getBoundWithRetry<GetBound>(get, config),
|
|
101
|
+
getAtRev: getBoundWithRetry<GetAtRevBound>(getAtRev, config),
|
|
102
|
+
query: getBoundWithRetry<QueryBound>(query, config),
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* These functions have single signatures and can be bound directly
|
|
106
|
+
*/
|
|
107
|
+
bulkRemove: config.bindWithRetry
|
|
108
|
+
? withRetry(bulkRemove.bind(null, config), retryOptions)
|
|
109
|
+
: bulkRemove.bind(null, config),
|
|
110
|
+
bulkRemoveMap: config.bindWithRetry
|
|
111
|
+
? withRetry(bulkRemoveMap.bind(null, config), retryOptions)
|
|
112
|
+
: bulkRemoveMap.bind(null, config),
|
|
113
|
+
bulkSave: config.bindWithRetry
|
|
114
|
+
? withRetry(bulkSave.bind(null, config), retryOptions)
|
|
115
|
+
: bulkSave.bind(null, config),
|
|
116
|
+
bulkSaveTransaction: bulkSaveTransaction.bind(null, config),
|
|
117
|
+
getDBInfo: config.bindWithRetry
|
|
118
|
+
? withRetry(getDBInfo.bind(null, config), retryOptions)
|
|
119
|
+
: getDBInfo.bind(null, config),
|
|
120
|
+
patch: config.bindWithRetry
|
|
121
|
+
? withRetry(patch.bind(null, config), retryOptions)
|
|
122
|
+
: patch.bind(null, config),
|
|
123
|
+
patchDangerously: patchDangerously.bind(null, config), // patchDangerously not included in retry
|
|
124
|
+
put: config.bindWithRetry
|
|
125
|
+
? withRetry(put.bind(null, config), retryOptions)
|
|
126
|
+
: put.bind(null, config),
|
|
127
|
+
queryStream: config.bindWithRetry
|
|
128
|
+
? withRetry(queryStream.bind(null, config), retryOptions)
|
|
129
|
+
: queryStream.bind(null, config),
|
|
130
|
+
remove: config.bindWithRetry
|
|
131
|
+
? withRetry(remove.bind(null, config), retryOptions)
|
|
132
|
+
: remove.bind(null, config),
|
|
133
|
+
|
|
134
|
+
createLock: createLock.bind(null, config),
|
|
135
|
+
removeLock: removeLock.bind(null, config),
|
|
136
|
+
watchDocs: watchDocs.bind(null, config)
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return result
|
|
140
|
+
}
|
package/impl/bulkGet.mts
ADDED
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import needle from 'needle'
|
|
2
|
+
import { CouchConfig, type CouchConfigInput } from '../schema/config.mts'
|
|
3
|
+
import { createLogger } from './utils/logger.mts'
|
|
4
|
+
import { mergeNeedleOpts } from './utils/mergeNeedleOpts.mts'
|
|
5
|
+
import { RetryableError } from './utils/errors.mts'
|
|
6
|
+
import {
|
|
7
|
+
ViewQueryResponse,
|
|
8
|
+
type ViewQueryResponseValidated,
|
|
9
|
+
CouchDoc,
|
|
10
|
+
type ViewRowValidated
|
|
11
|
+
} from '../schema/couch/couch.output.schema.ts'
|
|
12
|
+
import type { StandardSchemaV1 } from '../types/standard-schema.ts'
|
|
13
|
+
import { parseRows, type OnInvalidDocAction } from './utils/parseRows.mts'
|
|
14
|
+
|
|
15
|
+
export type BulkGetResponse<DocSchema extends StandardSchemaV1 = StandardSchemaV1<CouchDoc>> =
|
|
16
|
+
ViewQueryResponseValidated<
|
|
17
|
+
DocSchema,
|
|
18
|
+
StandardSchemaV1,
|
|
19
|
+
StandardSchemaV1<{
|
|
20
|
+
rev: string
|
|
21
|
+
}>
|
|
22
|
+
>
|
|
23
|
+
|
|
24
|
+
export type BulkGetOptions<DocSchema extends StandardSchemaV1> = {
|
|
25
|
+
includeDocs?: boolean
|
|
26
|
+
validate?: {
|
|
27
|
+
docSchema: DocSchema
|
|
28
|
+
onInvalidDoc?: OnInvalidDocAction
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Executes the bulk get operation against CouchDB.
|
|
34
|
+
*
|
|
35
|
+
* @param _config CouchDB configuration
|
|
36
|
+
* @param ids Array of document IDs to retrieve
|
|
37
|
+
* @param includeDocs Whether to include documents in the response
|
|
38
|
+
*
|
|
39
|
+
* @returns The raw response body from CouchDB
|
|
40
|
+
*
|
|
41
|
+
* @throws {RetryableError} When a retryable HTTP status code is encountered or no response is received.
|
|
42
|
+
* @throws {Error} When CouchDB returns a non-retryable error payload.
|
|
43
|
+
*/
|
|
44
|
+
async function executeBulkGet(
|
|
45
|
+
_config: CouchConfigInput,
|
|
46
|
+
ids: Array<string | undefined>,
|
|
47
|
+
includeDocs: boolean
|
|
48
|
+
) {
|
|
49
|
+
const configParseResult = CouchConfig.safeParse(_config)
|
|
50
|
+
const logger = createLogger(_config)
|
|
51
|
+
logger.info(`Starting bulk get for ${ids.length} documents`)
|
|
52
|
+
|
|
53
|
+
if (!configParseResult.success) {
|
|
54
|
+
logger.error('Invalid configuration provided for bulk get', configParseResult.error)
|
|
55
|
+
throw configParseResult.error
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const config = configParseResult.data
|
|
59
|
+
const url = `${config.couch}/_all_docs${includeDocs ? '?include_docs=true' : ''}`
|
|
60
|
+
const payload = { keys: ids }
|
|
61
|
+
const opts = {
|
|
62
|
+
json: true,
|
|
63
|
+
headers: {
|
|
64
|
+
'Content-Type': 'application/json'
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const mergedOpts = mergeNeedleOpts(config, opts)
|
|
68
|
+
|
|
69
|
+
try {
|
|
70
|
+
const resp = await needle('post', url, payload, mergedOpts)
|
|
71
|
+
if (RetryableError.isRetryableStatusCode(resp.statusCode)) {
|
|
72
|
+
logger.warn(`Retryable status code received: ${resp.statusCode}`)
|
|
73
|
+
throw new RetryableError('retryable error during bulk get', resp.statusCode)
|
|
74
|
+
}
|
|
75
|
+
if (resp.statusCode !== 200) {
|
|
76
|
+
logger.error(`Unexpected status code: ${resp.statusCode}`)
|
|
77
|
+
throw new Error('could not fetch')
|
|
78
|
+
}
|
|
79
|
+
return resp.body
|
|
80
|
+
} catch (err) {
|
|
81
|
+
logger.error('Network error during bulk get:', err)
|
|
82
|
+
RetryableError.handleNetworkError(err)
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Bulk get documents by IDs with options.
|
|
88
|
+
*
|
|
89
|
+
* @template DocSchema - schema (StandardSchemaV1) used to validate each returned document, if provided.
|
|
90
|
+
*
|
|
91
|
+
* @param config - CouchDB configuration data that is validated before use.
|
|
92
|
+
* @param ids - Array of document IDs to retrieve.
|
|
93
|
+
* @param options - Options for bulk get operation, including whether to include documents and validation schema.
|
|
94
|
+
*
|
|
95
|
+
* @returns The bulk get response with rows optionally validated against the supplied document schema.
|
|
96
|
+
*
|
|
97
|
+
* @throws {RetryableError} When a retryable HTTP status code is encountered or no response is received.
|
|
98
|
+
* @throws {Error<StandardSchemaV1.FailureResult["issues"]>} When the configuration or validation schemas fail to parse.
|
|
99
|
+
* @throws {Error} When CouchDB returns a non-retryable error payload.
|
|
100
|
+
*/
|
|
101
|
+
async function _bulkGetWithOptions<DocSchema extends StandardSchemaV1 = typeof CouchDoc>(
|
|
102
|
+
config: CouchConfigInput,
|
|
103
|
+
ids: Array<string | undefined>,
|
|
104
|
+
options: BulkGetOptions<DocSchema> = {}
|
|
105
|
+
): Promise<BulkGetResponse<DocSchema>> {
|
|
106
|
+
const includeDocs = options.includeDocs ?? true
|
|
107
|
+
const body = await executeBulkGet(config, ids, includeDocs)
|
|
108
|
+
|
|
109
|
+
if (!body) {
|
|
110
|
+
throw new RetryableError('no response', 503)
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (body.error) {
|
|
114
|
+
throw new Error(typeof body.reason === 'string' ? body.reason : 'could not fetch')
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
const docSchema = options.validate?.docSchema || CouchDoc
|
|
118
|
+
const rows = await parseRows(body.rows, {
|
|
119
|
+
onInvalidDoc: options.validate?.onInvalidDoc,
|
|
120
|
+
docSchema
|
|
121
|
+
})
|
|
122
|
+
|
|
123
|
+
return {
|
|
124
|
+
...body,
|
|
125
|
+
rows
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Bulk get documents by IDs.
|
|
131
|
+
*
|
|
132
|
+
* @remarks
|
|
133
|
+
* By default, documents are included in the response. To exclude documents, set `includeDocs` to `false`.
|
|
134
|
+
* When `includeDocs` is `true`, you can provide a schema (StandardSchemaV1) to validate the documents.
|
|
135
|
+
* When a schema is provided, you can specify how to handle invalid documents using `onInvalidDoc` option.
|
|
136
|
+
* `onInvalidDoc` can be set to `'throw'` (default) to throw an error on invalid documents, or `'skip'` to omit them from the results.
|
|
137
|
+
*
|
|
138
|
+
* @template DocSchema - schema (StandardSchemaV1) used to validate each returned document, if provided.
|
|
139
|
+
*
|
|
140
|
+
* @param config - CouchDB configuration data that is validated before use.
|
|
141
|
+
* @param ids - Array of document IDs to retrieve.
|
|
142
|
+
* @param options - Options for bulk get operation, including whether to include documents and validation schema.
|
|
143
|
+
*
|
|
144
|
+
* @returns The bulk get response with rows optionally validated against the supplied document schema.
|
|
145
|
+
*
|
|
146
|
+
* @throws {RetryableError} When a retryable HTTP status code is encountered or no response is received.
|
|
147
|
+
* @throws {Error<StandardSchemaV1.FailureResult["issues"]>} When the configuration or validation schemas fail to parse.
|
|
148
|
+
* @throws {Error} When CouchDB returns a non-retryable error payload.
|
|
149
|
+
*/
|
|
150
|
+
export async function bulkGet<DocSchema extends StandardSchemaV1 = typeof CouchDoc>(
|
|
151
|
+
config: CouchConfigInput,
|
|
152
|
+
ids: Array<string | undefined>,
|
|
153
|
+
options: BulkGetOptions<DocSchema> = {}
|
|
154
|
+
) {
|
|
155
|
+
return _bulkGetWithOptions<DocSchema>(config, ids, {
|
|
156
|
+
includeDocs: options.includeDocs,
|
|
157
|
+
validate: options?.validate
|
|
158
|
+
})
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Bound version of bulkGet with config pre-applied.
|
|
163
|
+
*/
|
|
164
|
+
export type BulkGetBound = {
|
|
165
|
+
(
|
|
166
|
+
ids: string[],
|
|
167
|
+
options?: {
|
|
168
|
+
includeDocs?: boolean
|
|
169
|
+
}
|
|
170
|
+
): Promise<ViewQueryResponse>
|
|
171
|
+
<DocSchema extends StandardSchemaV1>(
|
|
172
|
+
ids: string[],
|
|
173
|
+
options?: BulkGetOptions<DocSchema>
|
|
174
|
+
): Promise<ViewQueryResponseValidated<DocSchema>>
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Bulk get documents by IDs and return a dictionary of found and not found documents.
|
|
179
|
+
*/
|
|
180
|
+
|
|
181
|
+
export type BulkGetDictionaryOptions<DocSchema extends StandardSchemaV1 = typeof CouchDoc> = Omit<
|
|
182
|
+
BulkGetOptions<DocSchema>,
|
|
183
|
+
'includeDocs'
|
|
184
|
+
>
|
|
185
|
+
|
|
186
|
+
export type BulkGetDictionaryResult<
|
|
187
|
+
DocSchema extends StandardSchemaV1 = StandardSchemaV1<CouchDoc>
|
|
188
|
+
> = {
|
|
189
|
+
found: Record<string, StandardSchemaV1.InferOutput<DocSchema>>
|
|
190
|
+
notFound: Record<
|
|
191
|
+
string,
|
|
192
|
+
ViewRowValidated<DocSchema, StandardSchemaV1, StandardSchemaV1<{ rev: string }>>
|
|
193
|
+
>
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Bulk get documents by IDs and return a dictionary of found and not found documents.
|
|
198
|
+
*
|
|
199
|
+
* @template DocSchema - Schema used to validate each returned document, if provided. Note: if a document is found and it fails validation this will throw a Error<StandardSchemaV1.FailureResult["issues"]>.
|
|
200
|
+
*
|
|
201
|
+
* @param config - CouchDB configuration data that is validated before use.
|
|
202
|
+
* @param ids - Array of document IDs to retrieve.
|
|
203
|
+
* @param options - Options for bulk get operation, including validation schema.
|
|
204
|
+
*
|
|
205
|
+
* @returns An object containing found documents and not found rows.
|
|
206
|
+
*
|
|
207
|
+
* @throws {RetryableError} When a retryable HTTP status code is encountered or no response is received.
|
|
208
|
+
* @throws {Error<StandardSchemaV1.FailureResult["issues"]>} When the configuration or validation schemas fail to parse.
|
|
209
|
+
* @throws {Error} When CouchDB returns a non-retryable error payload.
|
|
210
|
+
*/
|
|
211
|
+
export async function bulkGetDictionary<DocSchema extends StandardSchemaV1 = typeof CouchDoc>(
|
|
212
|
+
config: CouchConfigInput,
|
|
213
|
+
ids: Array<string | undefined>,
|
|
214
|
+
options?: Omit<BulkGetDictionaryOptions<DocSchema>, 'includeDocs'>
|
|
215
|
+
): Promise<BulkGetDictionaryResult<DocSchema>> {
|
|
216
|
+
const response = await bulkGet(config, ids, {
|
|
217
|
+
includeDocs: true,
|
|
218
|
+
...options
|
|
219
|
+
})
|
|
220
|
+
|
|
221
|
+
const results: BulkGetDictionaryResult<DocSchema> = {
|
|
222
|
+
found: {},
|
|
223
|
+
notFound: {}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
for (const row of response.rows ?? []) {
|
|
227
|
+
const key = typeof row.key === 'string' ? row.key : row.id
|
|
228
|
+
if (!key) continue
|
|
229
|
+
|
|
230
|
+
if (row.error || !row.doc) {
|
|
231
|
+
results.notFound[key] = row
|
|
232
|
+
continue
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
const doc = row.doc
|
|
236
|
+
const docId =
|
|
237
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
238
|
+
typeof (doc as any)?._id === 'string' ? (doc as any)._id : row.id
|
|
239
|
+
|
|
240
|
+
if (!docId) {
|
|
241
|
+
results.notFound[key] = row
|
|
242
|
+
continue
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
results.found[docId] = doc
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
return results
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
export type BulkGetDictionaryBound = {
|
|
252
|
+
<DocSchema extends StandardSchemaV1 = typeof CouchDoc>(
|
|
253
|
+
ids: string[],
|
|
254
|
+
options: BulkGetDictionaryOptions<DocSchema>
|
|
255
|
+
): Promise<BulkGetDictionaryResult<DocSchema>>
|
|
256
|
+
}
|