@decaf-ts/for-couchdb 0.4.15 → 0.4.17
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/dist/for-couchdb.cjs +1 -1
- package/dist/for-couchdb.cjs.map +1 -1
- package/dist/for-couchdb.js +1 -1
- package/dist/for-couchdb.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/query/Paginator.d.ts +1 -1
- package/lib/esm/query/Paginator.js +1 -1
- package/lib/esm/repository.d.ts +2 -2
- package/lib/esm/repository.js +44 -39
- package/lib/esm/repository.js.map +1 -1
- package/lib/esm/utils.js +1 -1
- package/lib/esm/utils.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/query/Paginator.cjs +1 -1
- package/lib/query/Paginator.d.ts +1 -1
- package/lib/repository.cjs +43 -38
- package/lib/repository.d.ts +2 -2
- package/lib/repository.js.map +1 -1
- package/lib/utils.cjs +1 -1
- package/lib/utils.js.map +1 -1
- package/package.json +3 -2
- package/workdocs/assets/slogans.json +402 -0
package/lib/index.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export * from "./query";
|
|
|
16
16
|
* @summary The version string of the for-couchdb package
|
|
17
17
|
* @const VERSION
|
|
18
18
|
*/
|
|
19
|
-
export declare const VERSION = "0.4.
|
|
19
|
+
export declare const VERSION = "0.4.16";
|
|
20
20
|
/**
|
|
21
21
|
* @description Stores the current package name
|
|
22
22
|
* @summary The version string of the for-couchdb package
|
package/lib/query/Paginator.cjs
CHANGED
|
@@ -6,7 +6,7 @@ const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
|
6
6
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
7
7
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
8
8
|
/**
|
|
9
|
-
* @description Paginator for
|
|
9
|
+
* @description Paginator for ConuchDB query results
|
|
10
10
|
* @summary Implements pagination for CouchDB queries using bookmarks for efficient navigation through result sets
|
|
11
11
|
* @template M - The model type that extends Model
|
|
12
12
|
* @template R - The result type
|
package/lib/query/Paginator.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { Model } from "@decaf-ts/decorator-validation";
|
|
|
4
4
|
import { CouchDBAdapter } from "../adapter";
|
|
5
5
|
import { Constructor } from "@decaf-ts/decoration";
|
|
6
6
|
/**
|
|
7
|
-
* @description Paginator for
|
|
7
|
+
* @description Paginator for ConuchDB query results
|
|
8
8
|
* @summary Implements pagination for CouchDB queries using bookmarks for efficient navigation through result sets
|
|
9
9
|
* @template M - The model type that extends Model
|
|
10
10
|
* @template R - The result type
|
package/lib/repository.cjs
CHANGED
|
@@ -77,24 +77,30 @@ class CouchDBRepository extends core_1.Repository {
|
|
|
77
77
|
*/
|
|
78
78
|
async updatePrefix(model, ...args) {
|
|
79
79
|
const contextArgs = await db_decorators_1.Context.args(db_decorators_1.OperationKeys.UPDATE, this.class, args, this.adapter, this._overrides || {});
|
|
80
|
-
const
|
|
81
|
-
const
|
|
80
|
+
const ctx = contextArgs.context;
|
|
81
|
+
const ignoreHandlers = ctx.get("ignoreHandlers");
|
|
82
|
+
const ignoreValidate = ctx.get("ignoreValidation");
|
|
82
83
|
const pk = model[this.pk];
|
|
83
84
|
if (!pk)
|
|
84
85
|
throw new db_decorators_1.InternalError(`No value for the Id is defined under the property ${this.pk}`);
|
|
85
|
-
|
|
86
|
-
|
|
86
|
+
let oldModel;
|
|
87
|
+
let oldMetadata;
|
|
88
|
+
if (ctx.get("applyUpdateValidation")) {
|
|
89
|
+
oldModel = await this.read(pk);
|
|
90
|
+
oldMetadata = oldModel ? adapter_1.CouchDBAdapter.getMetadata(oldModel) : undefined;
|
|
91
|
+
if (ctx.get("mergeForUpdate"))
|
|
92
|
+
model = decorator_validation_1.Model.merge(oldModel, model, this.class);
|
|
93
|
+
}
|
|
87
94
|
if (!ignoreHandlers)
|
|
88
|
-
await (0, db_decorators_1.enforceDBDecorators)(this,
|
|
95
|
+
await (0, db_decorators_1.enforceDBDecorators)(this, ctx, model, db_decorators_1.OperationKeys.UPDATE, db_decorators_1.OperationKeys.ON, oldModel);
|
|
89
96
|
if (!ignoreValidate) {
|
|
90
97
|
const errors = await Promise.resolve(model.hasErrors(oldModel, ...decorator_validation_1.Model.relations(this.class), ...(contextArgs.context.get("ignoredValidationProperties") || [])));
|
|
91
98
|
if (errors)
|
|
92
99
|
throw new db_decorators_1.ValidationError(errors.toString());
|
|
93
100
|
}
|
|
94
|
-
const oldMetadata = adapter_1.CouchDBAdapter.getMetadata(oldModel);
|
|
95
101
|
if (oldMetadata)
|
|
96
102
|
adapter_1.CouchDBAdapter.setMetadata(model, oldMetadata);
|
|
97
|
-
return [model, ...contextArgs.args];
|
|
103
|
+
return [model, ...contextArgs.args, oldModel];
|
|
98
104
|
}
|
|
99
105
|
/**
|
|
100
106
|
* @description Prepares multiple models for update.
|
|
@@ -107,44 +113,43 @@ class CouchDBRepository extends core_1.Repository {
|
|
|
107
113
|
*/
|
|
108
114
|
async updateAllPrefix(models, ...args) {
|
|
109
115
|
const contextArgs = await db_decorators_1.Context.args(db_decorators_1.OperationKeys.UPDATE, this.class, args, this.adapter, this._overrides || {});
|
|
110
|
-
const
|
|
111
|
-
const
|
|
116
|
+
const context = contextArgs.context;
|
|
117
|
+
const ignoreHandlers = context.get("ignoreHandlers");
|
|
118
|
+
const ignoreValidate = context.get("ignoreValidation");
|
|
112
119
|
const ids = models.map((m) => {
|
|
113
120
|
const id = m[this.pk];
|
|
114
121
|
if (!id)
|
|
115
122
|
throw new db_decorators_1.InternalError("missing id on update operation");
|
|
116
123
|
return id;
|
|
117
124
|
});
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
125
|
+
let oldModels;
|
|
126
|
+
if (context.get("applyUpdateValidation")) {
|
|
127
|
+
oldModels = await this.readAll(ids, context);
|
|
128
|
+
if (context.get("mergeForUpdate"))
|
|
129
|
+
models = models.map((m, i) => {
|
|
130
|
+
m = decorator_validation_1.Model.merge(oldModels[i], m, this.class);
|
|
131
|
+
const oldMetadata = adapter_1.CouchDBAdapter.getMetadata(oldModels[i]);
|
|
132
|
+
if (oldMetadata)
|
|
133
|
+
adapter_1.CouchDBAdapter.setMetadata(m, oldMetadata);
|
|
134
|
+
return m;
|
|
135
|
+
});
|
|
136
|
+
if (!ignoreHandlers)
|
|
137
|
+
await Promise.all(models.map((m, i) => (0, db_decorators_1.enforceDBDecorators)(this, contextArgs.context, m, db_decorators_1.OperationKeys.UPDATE, db_decorators_1.OperationKeys.ON, oldModels ? oldModels[i] : undefined)));
|
|
138
|
+
if (!ignoreValidate) {
|
|
139
|
+
const ignoredProps = context.get("ignoredValidationProperties") || [];
|
|
140
|
+
let modelsValidation;
|
|
141
|
+
if (!context.get("applyUpdateValidation")) {
|
|
142
|
+
modelsValidation = await Promise.resolve(models.map((m) => m.hasErrors(...ignoredProps)));
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
modelsValidation = await Promise.all(models.map((m, i) => Promise.resolve(m.hasErrors(oldModels[i], ...ignoredProps))));
|
|
146
|
+
}
|
|
147
|
+
const errorMessages = (0, db_decorators_1.reduceErrorsToPrint)(modelsValidation);
|
|
148
|
+
if (errorMessages)
|
|
149
|
+
throw new db_decorators_1.ValidationError(errorMessages);
|
|
150
|
+
}
|
|
141
151
|
}
|
|
142
|
-
models.
|
|
143
|
-
const oldMetadata = adapter_1.CouchDBAdapter.getMetadata(oldModels[i]);
|
|
144
|
-
if (oldMetadata)
|
|
145
|
-
adapter_1.CouchDBAdapter.setMetadata(m, oldMetadata);
|
|
146
|
-
});
|
|
147
|
-
return [models, ...contextArgs.args];
|
|
152
|
+
return [models, ...contextArgs.args, oldModels];
|
|
148
153
|
}
|
|
149
154
|
}
|
|
150
155
|
exports.CouchDBRepository = CouchDBRepository;
|
package/lib/repository.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export declare class CouchDBRepository<M extends Model, A extends CouchDBAdapter
|
|
|
25
25
|
* @throws {InternalError} If the model has no primary key value.
|
|
26
26
|
* @throws {ValidationError} If the model fails validation.
|
|
27
27
|
*/
|
|
28
|
-
protected updatePrefix(model: M, ...args: MaybeContextualArg<ContextOf<A>>): Promise<[M, ...args: any[], ContextOf<A
|
|
28
|
+
protected updatePrefix(model: M, ...args: MaybeContextualArg<ContextOf<A>>): Promise<[M, ...args: any[], ContextOf<A>, M | undefined]>;
|
|
29
29
|
/**
|
|
30
30
|
* @description Prepares multiple models for update.
|
|
31
31
|
* @summary Validates multiple models and prepares them for update in the database.
|
|
@@ -35,5 +35,5 @@ export declare class CouchDBRepository<M extends Model, A extends CouchDBAdapter
|
|
|
35
35
|
* @throws {InternalError} If any model has no primary key value.
|
|
36
36
|
* @throws {ValidationError} If any model fails validation.
|
|
37
37
|
*/
|
|
38
|
-
protected updateAllPrefix(models: M[], ...args: MaybeContextualArg<ContextOf<A>>): Promise<[M[], ...args: any[], ContextOf<A
|
|
38
|
+
protected updateAllPrefix(models: M[], ...args: MaybeContextualArg<ContextOf<A>>): Promise<[M[], ...args: any[], ContextOf<A>, M[] | undefined]>;
|
|
39
39
|
}
|
package/lib/repository.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":";;;AAAA,yCAAgE;AAChE,yEAAuD;AAEvD,2CAA2C;AAE3C,
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}
|
package/lib/utils.cjs
CHANGED
|
@@ -59,7 +59,7 @@ async function reAuth(con, user, pass) {
|
|
|
59
59
|
* DB-->>Client: Return result
|
|
60
60
|
*/
|
|
61
61
|
function wrapDocumentScope(con, dbName, user, pass) {
|
|
62
|
-
const db = con.use(dbName);
|
|
62
|
+
const db = con.use ? con.use(dbName) : con;
|
|
63
63
|
["insert", "get", "put", "destroy", "find"].forEach((k) => {
|
|
64
64
|
const original = db[k];
|
|
65
65
|
Object.defineProperty(db, k, {
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAgBA,wBAEC;AAsCD,8CAyBC;AAUD,wDAGC;AAcD,8CAWC;AAyCD,4CA0CC;AA1MD,yCAAiE;AACjE,+CAA0C;AAC1C,2DAA2D;AAC3D,qDAAoD;AAGpD;;;;;;;;;GASG;AACI,KAAK,UAAU,MAAM,CAAC,GAAQ,EAAE,IAAY,EAAE,IAAY;IAC/D,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,SAAgB,iBAAiB,CAC/B,GAAQ,EACR,MAAc,EACd,IAAY,EACZ,IAAY;IAEZ,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/for-couchdb",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.17",
|
|
4
4
|
"description": "template for ts projects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -60,7 +60,8 @@
|
|
|
60
60
|
"files": [
|
|
61
61
|
"lib",
|
|
62
62
|
"dist",
|
|
63
|
-
"docker"
|
|
63
|
+
"docker",
|
|
64
|
+
"workdocs/assets/slogans.json"
|
|
64
65
|
],
|
|
65
66
|
"keywords": [
|
|
66
67
|
"couchdb",
|
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"Slogan": "Put your data on the Couch — it deserves a break.",
|
|
4
|
+
"Tags": "CouchDB, Chill, Fun"
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"Slogan": "Decaf-TS + CouchDB: the most relaxed stack in tech.",
|
|
8
|
+
"Tags": "CouchDB, Coffee-themed, Calm"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"Slogan": "No stress, no schema — just smooth storage.",
|
|
12
|
+
"Tags": "NoSQL, Calm, Tech"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"Slogan": "Sit back. Your queries just got simpler.",
|
|
16
|
+
"Tags": "SQL-like, Chill, Productivity"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"Slogan": "Declarative indexes. Because you have better things to do.",
|
|
20
|
+
"Tags": "Indexing, DX, Witty"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"Slogan": "Query like it’s SQL. Relax like it’s NoSQL.",
|
|
24
|
+
"Tags": "SQL-like, CouchDB, Duality"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"Slogan": "Skip the CRUD. Keep the couch.",
|
|
28
|
+
"Tags": "CRUD-less, Chill, Fun"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"Slogan": "No setup. No stress. No problem.",
|
|
32
|
+
"Tags": "Declarative, Easy Setup, Calm"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"Slogan": "Database queries that feel like a nap in a hammock.",
|
|
36
|
+
"Tags": "SQL-like, Chill, Joy"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"Slogan": "Where your data chills and your dev flow soars.",
|
|
40
|
+
"Tags": "CouchDB, DevX, Chill"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"Slogan": "Let the indexes build themselves.",
|
|
44
|
+
"Tags": "Indexing, Productivity, Automation"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"Slogan": "CouchDB: for developers who like to lean back.",
|
|
48
|
+
"Tags": "Couch, Calm, Identity"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"Slogan": "Couch mode: ON. Query mode: AUTO.",
|
|
52
|
+
"Tags": "CouchDB, Indexing, Chill"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"Slogan": "Your backend’s comfy recliner.",
|
|
56
|
+
"Tags": "Backend, Couch Metaphor, Humor"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"Slogan": "Sleep better knowing your queries just work.",
|
|
60
|
+
"Tags": "SQL-like, Productivity, Chill"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"Slogan": "The database that won’t keep you up at night.",
|
|
64
|
+
"Tags": "CouchDB, Sleep, Calm"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"Slogan": "No caffeine needed when your queries write themselves.",
|
|
68
|
+
"Tags": "Indexing, Coffee-themed, Declarative"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"Slogan": "From query to chill in 0.01s.",
|
|
72
|
+
"Tags": "Performance, SQL-like, Couch Metaphor"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"Slogan": "CRUD is so last decade. Welcome to Couch mode.",
|
|
76
|
+
"Tags": "CRUD-less, Chill, Future"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"Slogan": "Decaf + Couch = backend bliss.",
|
|
80
|
+
"Tags": "Stack Combo, Branding, Fun"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"Slogan": "Put your data on the CouchDB — it deserves a break.",
|
|
84
|
+
"Tags": "CouchDB, Chill, Fun"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"Slogan": "Decaf-TS + CouchDBDB: the most reclineed stack in tech.",
|
|
88
|
+
"Tags": "CouchDB, Coffee-themed, Calm"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"Slogan": "No stress, no schema — just smooth storage.",
|
|
92
|
+
"Tags": "NoSQL, Calm, Tech"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"Slogan": "Sit back. Your queries just got simpler.",
|
|
96
|
+
"Tags": "SQL-like, Chill, Productivity"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"Slogan": "Declarative indexes. Because you have better things to do.",
|
|
100
|
+
"Tags": "Indexing, DX, Witty"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"Slogan": "Query like it’s SQL. Relax like it’s NoSQL.",
|
|
104
|
+
"Tags": "SQL-like, CouchDB, Duality"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"Slogan": "Skip the manual queries. Keep the couch.",
|
|
108
|
+
"Tags": "CRUD-less, Chill, Fun"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"Slogan": "No setup. No stress. No problem.",
|
|
112
|
+
"Tags": "Declarative, Easy Setup, Calm"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"Slogan": "Database queries that feel like a nap in a hammock.",
|
|
116
|
+
"Tags": "SQL-like, Chill, Joy"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"Slogan": "Where your data chills and your dev flow soars.",
|
|
120
|
+
"Tags": "CouchDB, DevX, Chill"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"Slogan": "Let the indexes build themselves.",
|
|
124
|
+
"Tags": "Indexing, Productivity, Automation"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"Slogan": "CouchDBDB: for developers who like to lean back.",
|
|
128
|
+
"Tags": "Couch, Calm, Identity"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"Slogan": "CouchDB mode: ON. Query mode: AUTO.",
|
|
132
|
+
"Tags": "CouchDB, Indexing, Chill"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"Slogan": "Your backend’s comfy recliner.",
|
|
136
|
+
"Tags": "Backend, Couch Metaphor, Humor"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"Slogan": "Sleep better knowing your queries just work.",
|
|
140
|
+
"Tags": "SQL-like, Productivity, Chill"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"Slogan": "The database that won’t keep you up at night.",
|
|
144
|
+
"Tags": "CouchDB, Sleep, Calm"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"Slogan": "No caffeine needed when your queries write themselves.",
|
|
148
|
+
"Tags": "Indexing, Coffee-themed, Declarative"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"Slogan": "From query to chill in 0.01s.",
|
|
152
|
+
"Tags": "Performance, SQL-like, Couch Metaphor"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"Slogan": "manual queries is so last decade. Welcome to CouchDB mode.",
|
|
156
|
+
"Tags": "CRUD-less, Chill, Future"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"Slogan": "Decaf + CouchDB = backend bliss.",
|
|
160
|
+
"Tags": "Stack Combo, Branding, Fun"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"Slogan": "Put your data on the CouchDB — it deserves a break.",
|
|
164
|
+
"Tags": "CouchDB, Chill, Fun"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"Slogan": "Decaf-TS + CouchDBDB: the most reclineed stack in tech.",
|
|
168
|
+
"Tags": "CouchDB, Coffee-themed, Calm"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"Slogan": "No stress, no schema — just smooth storage.",
|
|
172
|
+
"Tags": "NoSQL, Calm, Tech"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"Slogan": "Sit back. Your queries just got simpler.",
|
|
176
|
+
"Tags": "SQL-like, Chill, Productivity"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"Slogan": "Declarative indexes. Because you have better things to do.",
|
|
180
|
+
"Tags": "Indexing, DX, Witty"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"Slogan": "Query like it’s SQL. Relax like it’s NoSQL.",
|
|
184
|
+
"Tags": "SQL-like, CouchDB, Duality"
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"Slogan": "Skip the manual queries. Keep the couch.",
|
|
188
|
+
"Tags": "CRUD-less, Chill, Fun"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"Slogan": "No setup. No stress. No problem.",
|
|
192
|
+
"Tags": "Declarative, Easy Setup, Calm"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"Slogan": "Database queries that feel like a nap in a hammock.",
|
|
196
|
+
"Tags": "SQL-like, Chill, Joy"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"Slogan": "Where your data chills and your dev flow soars.",
|
|
200
|
+
"Tags": "CouchDB, DevX, Chill"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"Slogan": "Let the indexes build themselves.",
|
|
204
|
+
"Tags": "Indexing, Productivity, Automation"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"Slogan": "CouchDBDB: for developers who like to lean back.",
|
|
208
|
+
"Tags": "Couch, Calm, Identity"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"Slogan": "CouchDB mode: ON. Query mode: AUTO.",
|
|
212
|
+
"Tags": "CouchDB, Indexing, Chill"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"Slogan": "Your backend’s comfy recliner.",
|
|
216
|
+
"Tags": "Backend, Couch Metaphor, Humor"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"Slogan": "Sleep better knowing your queries just work.",
|
|
220
|
+
"Tags": "SQL-like, Productivity, Chill"
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"Slogan": "The database that won’t keep you up at night.",
|
|
224
|
+
"Tags": "CouchDB, Sleep, Calm"
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"Slogan": "No caffeine needed when your queries write themselves.",
|
|
228
|
+
"Tags": "Indexing, Coffee-themed, Declarative"
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"Slogan": "From query to chill in 0.01s.",
|
|
232
|
+
"Tags": "Performance, SQL-like, Couch Metaphor"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"Slogan": "manual queries is so last decade. Welcome to CouchDB mode.",
|
|
236
|
+
"Tags": "CRUD-less, Chill, Future"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"Slogan": "Decaf + CouchDB = backend bliss.",
|
|
240
|
+
"Tags": "Stack Combo, Branding, Fun"
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"Slogan": "Put your data on the CouchDB — it deserves a break.",
|
|
244
|
+
"Tags": "CouchDB, Chill, Fun"
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"Slogan": "Decaf-TS + CouchDBDB: the most reclineed stack in tech.",
|
|
248
|
+
"Tags": "CouchDB, Coffee-themed, Calm"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"Slogan": "No stress, no schema — just smooth storage.",
|
|
252
|
+
"Tags": "NoSQL, Calm, Tech"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"Slogan": "Sit back. Your queries just got simpler.",
|
|
256
|
+
"Tags": "SQL-like, Chill, Productivity"
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
"Slogan": "Declarative indexes. Because you have better things to do.",
|
|
260
|
+
"Tags": "Indexing, DX, Witty"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"Slogan": "Query like it’s SQL. Relax like it’s NoSQL.",
|
|
264
|
+
"Tags": "SQL-like, CouchDB, Duality"
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"Slogan": "Skip the manual queries. Keep the couch.",
|
|
268
|
+
"Tags": "CRUD-less, Chill, Fun"
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"Slogan": "No setup. No stress. No problem.",
|
|
272
|
+
"Tags": "Declarative, Easy Setup, Calm"
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"Slogan": "Database queries that feel like a nap in a hammock.",
|
|
276
|
+
"Tags": "SQL-like, Chill, Joy"
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"Slogan": "Where your data chills and your dev flow soars.",
|
|
280
|
+
"Tags": "CouchDB, DevX, Chill"
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"Slogan": "Let the indexes build themselves.",
|
|
284
|
+
"Tags": "Indexing, Productivity, Automation"
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"Slogan": "CouchDBDB: for developers who like to lean back.",
|
|
288
|
+
"Tags": "Couch, Calm, Identity"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"Slogan": "CouchDB mode: ON. Query mode: AUTO.",
|
|
292
|
+
"Tags": "CouchDB, Indexing, Chill"
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"Slogan": "Your backend’s comfy recliner.",
|
|
296
|
+
"Tags": "Backend, Couch Metaphor, Humor"
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"Slogan": "Sleep better knowing your queries just work.",
|
|
300
|
+
"Tags": "SQL-like, Productivity, Chill"
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"Slogan": "The database that won’t keep you up at night.",
|
|
304
|
+
"Tags": "CouchDB, Sleep, Calm"
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"Slogan": "No caffeine needed when your queries write themselves.",
|
|
308
|
+
"Tags": "Indexing, Coffee-themed, Declarative"
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"Slogan": "From query to chill in 0.01s.",
|
|
312
|
+
"Tags": "Performance, SQL-like, Couch Metaphor"
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"Slogan": "manual queries is so last decade. Welcome to CouchDB mode.",
|
|
316
|
+
"Tags": "CRUD-less, Chill, Future"
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"Slogan": "Decaf + CouchDB = backend bliss.",
|
|
320
|
+
"Tags": "Stack Combo, Branding, Fun"
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
"Slogan": "Put your data on the CouchDB — it deserves a break.",
|
|
324
|
+
"Tags": "CouchDB, Chill, Fun"
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"Slogan": "Decaf-TS + CouchDBDB: the most reclineed stack in tech.",
|
|
328
|
+
"Tags": "CouchDB, Coffee-themed, Calm"
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
"Slogan": "No stress, no schema — just smooth storage.",
|
|
332
|
+
"Tags": "NoSQL, Calm, Tech"
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"Slogan": "Sit back. Your queries just got simpler.",
|
|
336
|
+
"Tags": "SQL-like, Chill, Productivity"
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"Slogan": "Declarative indexes. Because you have better things to do.",
|
|
340
|
+
"Tags": "Indexing, DX, Witty"
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
"Slogan": "Query like it’s SQL. Relax like it’s NoSQL.",
|
|
344
|
+
"Tags": "SQL-like, CouchDB, Duality"
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
"Slogan": "Skip the manual queries. Keep the couch.",
|
|
348
|
+
"Tags": "CRUD-less, Chill, Fun"
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"Slogan": "No setup. No stress. No problem.",
|
|
352
|
+
"Tags": "Declarative, Easy Setup, Calm"
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"Slogan": "Database queries that feel like a nap in a hammock.",
|
|
356
|
+
"Tags": "SQL-like, Chill, Joy"
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
"Slogan": "Where your data chills and your dev flow soars.",
|
|
360
|
+
"Tags": "CouchDB, DevX, Chill"
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
"Slogan": "Let the indexes build themselves.",
|
|
364
|
+
"Tags": "Indexing, Productivity, Automation"
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"Slogan": "CouchDBDB: for developers who like to lean back.",
|
|
368
|
+
"Tags": "Couch, Calm, Identity"
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
"Slogan": "CouchDB mode: ON. Query mode: AUTO.",
|
|
372
|
+
"Tags": "CouchDB, Indexing, Chill"
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"Slogan": "Your backend’s comfy recliner.",
|
|
376
|
+
"Tags": "Backend, Couch Metaphor, Humor"
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
"Slogan": "Sleep better knowing your queries just work.",
|
|
380
|
+
"Tags": "SQL-like, Productivity, Chill"
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
"Slogan": "The database that won’t keep you up at night.",
|
|
384
|
+
"Tags": "CouchDB, Sleep, Calm"
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
"Slogan": "No caffeine needed when your queries write themselves.",
|
|
388
|
+
"Tags": "Indexing, Coffee-themed, Declarative"
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
"Slogan": "From query to chill in 0.01s.",
|
|
392
|
+
"Tags": "Performance, SQL-like, Couch Metaphor"
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"Slogan": "manual queries is so last decade. Welcome to CouchDB mode.",
|
|
396
|
+
"Tags": "CRUD-less, Chill, Future"
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"Slogan": "Decaf + CouchDB = backend bliss.",
|
|
400
|
+
"Tags": "Stack Combo, Branding, Fun"
|
|
401
|
+
}
|
|
402
|
+
]
|