@anysoftinc/anydb-sdk 0.3.0 → 0.4.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/README.md +13 -0
- package/dist/anydb.datascript.core.js +336 -0
- package/dist/anydb.datascript.rules.js +29 -0
- package/dist/anydb.datascript.schema.js +35 -0
- package/dist/client.d.ts +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +59 -0
- package/dist/cljs.core.js +38752 -0
- package/dist/cljs.reader.js +450 -0
- package/dist/cljs.tools.reader.edn.js +945 -0
- package/dist/cljs.tools.reader.impl.commons.js +205 -0
- package/dist/cljs.tools.reader.impl.errors.js +429 -0
- package/dist/cljs.tools.reader.impl.inspect.js +170 -0
- package/dist/cljs.tools.reader.impl.utils.js +413 -0
- package/dist/cljs.tools.reader.js +1815 -0
- package/dist/cljs.tools.reader.reader_types.js +826 -0
- package/dist/cljs_env.js +7672 -0
- package/dist/clojure.data.js +307 -0
- package/dist/clojure.edn.js +107 -0
- package/dist/clojure.set.js +394 -0
- package/dist/clojure.string.js +490 -0
- package/dist/clojure.walk.js +144 -0
- package/dist/datascript-backend.js +2 -2
- package/dist/datascript.built_ins.js +680 -0
- package/dist/datascript.conn.js +814 -0
- package/dist/datascript.core.js +1285 -0
- package/dist/datascript.db.js +4058 -0
- package/dist/datascript.impl.entity.js +588 -0
- package/dist/datascript.lru.js +213 -0
- package/dist/datascript.parser.js +8598 -0
- package/dist/datascript.pull_api.js +2287 -0
- package/dist/datascript.pull_parser.js +865 -0
- package/dist/datascript.query.js +2785 -0
- package/dist/datascript.serialize.js +352 -0
- package/dist/datascript.storage.js +50 -0
- package/dist/datascript.util.js +82 -0
- package/dist/extend_clj.core.js +134 -0
- package/dist/me.tonsky.persistent_sorted_set.arrays.js +54 -0
- package/dist/me.tonsky.persistent_sorted_set.js +2485 -0
- package/dist/nextauth-adapter.d.ts.map +1 -1
- package/dist/nextauth-adapter.js +8 -11
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -115,6 +115,19 @@ SchemaBuilder and DatomicUtils have been removed in v2. Use plain tx maps with k
|
|
|
115
115
|
|
|
116
116
|
Utility helpers for tempids and entity builders were removed in v2.
|
|
117
117
|
|
|
118
|
+
### Idempotent Schema Install
|
|
119
|
+
|
|
120
|
+
Use `ensureAttributes(db, schemaEntities)` to install attribute idents exactly once per database alias. It checks which idents already exist and only transacts the missing ones.
|
|
121
|
+
|
|
122
|
+
```ts
|
|
123
|
+
import { ensureAttributes, kw } from "@anysoftinc/anydb-sdk";
|
|
124
|
+
|
|
125
|
+
await ensureAttributes(db, [
|
|
126
|
+
{ "db/ident": kw("person/name"), "db/valueType": kw("db.type/string"), "db/cardinality": kw("db.cardinality/one") },
|
|
127
|
+
{ "db/ident": kw("person/age"), "db/valueType": kw("db.type/long"), "db/cardinality": kw("db.cardinality/one") },
|
|
128
|
+
]);
|
|
129
|
+
```
|
|
130
|
+
|
|
118
131
|
## Advanced Features
|
|
119
132
|
|
|
120
133
|
### EDN Data Types
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
var $CLJS = require("./cljs_env");
|
|
2
|
+
var $jscomp = $CLJS.$jscomp;
|
|
3
|
+
var COMPILED = false;
|
|
4
|
+
require("./cljs.core.js");
|
|
5
|
+
require("./datascript.core.js");
|
|
6
|
+
require("./clojure.edn.js");
|
|
7
|
+
require("./clojure.string.js");
|
|
8
|
+
require("./anydb.datascript.schema.js");
|
|
9
|
+
require("./anydb.datascript.rules.js");
|
|
10
|
+
var anydb=$CLJS.anydb || ($CLJS.anydb = {});
|
|
11
|
+
var clojure=$CLJS.clojure || ($CLJS.clojure = {});
|
|
12
|
+
var cljs=$CLJS.cljs || ($CLJS.cljs = {});
|
|
13
|
+
var goog=$CLJS.goog || ($CLJS.goog = {});
|
|
14
|
+
var datascript=$CLJS.datascript || ($CLJS.datascript = {});
|
|
15
|
+
var me=$CLJS.me || ($CLJS.me = {});
|
|
16
|
+
var extend_clj=$CLJS.extend_clj || ($CLJS.extend_clj = {});
|
|
17
|
+
|
|
18
|
+
$CLJS.SHADOW_ENV.setLoaded("anydb.datascript.core.js");
|
|
19
|
+
|
|
20
|
+
goog.provide('anydb.datascript.core');
|
|
21
|
+
if((typeof anydb !== 'undefined') && (typeof anydb.datascript !== 'undefined') && (typeof anydb.datascript.core !== 'undefined') && (typeof anydb.datascript.core.db_registry !== 'undefined')){
|
|
22
|
+
} else {
|
|
23
|
+
anydb.datascript.core.db_registry = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);
|
|
24
|
+
}
|
|
25
|
+
anydb.datascript.core.schema_attributes = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 9, [new cljs.core.Keyword("db","index","db/index",-1531680669),null,new cljs.core.Keyword("db","unique","db/unique",329396388),null,new cljs.core.Keyword("db","valueType","db/valueType",1827971944),null,new cljs.core.Keyword("db","noHistory","db/noHistory",-1975127444),null,new cljs.core.Keyword("db","isComponent","db/isComponent",423352398),null,new cljs.core.Keyword("db","fulltext","db/fulltext",-1432910705),null,new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),null,new cljs.core.Keyword("db","doc","db/doc",1913350069),null,new cljs.core.Keyword("db","ident","db/ident",-737096),null], null), null);
|
|
26
|
+
/**
|
|
27
|
+
* Detect if a transaction contains schema attribute changes
|
|
28
|
+
*/
|
|
29
|
+
anydb.datascript.core.detect_schema_changes = (function anydb$datascript$core$detect_schema_changes(tx_data){
|
|
30
|
+
return cljs.core.some((function (datom_or_map){
|
|
31
|
+
var attrs = ((cljs.core.map_QMARK_(datom_or_map))?cljs.core.keys(datom_or_map):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"a","a",-2123407586).cljs$core$IFn$_invoke$arity$1(datom_or_map)], null));
|
|
32
|
+
return cljs.core.some(anydb.datascript.core.schema_attributes,attrs);
|
|
33
|
+
}),tx_data);
|
|
34
|
+
});
|
|
35
|
+
/**
|
|
36
|
+
* Extract schema map from current database for recreation
|
|
37
|
+
*/
|
|
38
|
+
anydb.datascript.core.extract_schema_from_db = (function anydb$datascript$core$extract_schema_from_db(db){
|
|
39
|
+
var schema_datoms = datascript.core.datoms.cljs$core$IFn$_invoke$arity$2(db,new cljs.core.Keyword(null,"aevt","aevt",-585148059));
|
|
40
|
+
return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (attr_map){
|
|
41
|
+
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db","ident","db/ident",-737096).cljs$core$IFn$_invoke$arity$1(attr_map),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(attr_map,new cljs.core.Keyword("db","ident","db/ident",-737096))], null);
|
|
42
|
+
}),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__15283_SHARP_){
|
|
43
|
+
return cljs.core.contains_QMARK_(p1__15283_SHARP_,new cljs.core.Keyword("db","ident","db/ident",-737096));
|
|
44
|
+
}),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__15284){
|
|
45
|
+
var vec__15285 = p__15284;
|
|
46
|
+
var _ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__15285,(0),null);
|
|
47
|
+
var datoms = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__15285,(1),null);
|
|
48
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,p__15288){
|
|
49
|
+
var map__15289 = p__15288;
|
|
50
|
+
var map__15289__$1 = cljs.core.__destructure_map(map__15289);
|
|
51
|
+
var a = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__15289__$1,new cljs.core.Keyword(null,"a","a",-2123407586));
|
|
52
|
+
var v = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__15289__$1,new cljs.core.Keyword(null,"v","v",21465059));
|
|
53
|
+
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,a,v);
|
|
54
|
+
}),cljs.core.PersistentArrayMap.EMPTY,datoms);
|
|
55
|
+
}),cljs.core.group_by(new cljs.core.Keyword(null,"e","e",1381269198),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__15282_SHARP_){
|
|
56
|
+
var G__15290 = new cljs.core.Keyword(null,"a","a",-2123407586).cljs$core$IFn$_invoke$arity$1(p1__15282_SHARP_);
|
|
57
|
+
return (anydb.datascript.core.schema_attributes.cljs$core$IFn$_invoke$arity$1 ? anydb.datascript.core.schema_attributes.cljs$core$IFn$_invoke$arity$1(G__15290) : anydb.datascript.core.schema_attributes.call(null,G__15290));
|
|
58
|
+
}),schema_datoms))))));
|
|
59
|
+
});
|
|
60
|
+
/**
|
|
61
|
+
* Check for schema changes and recreate connection if needed
|
|
62
|
+
*/
|
|
63
|
+
anydb.datascript.core.migrate_schema_if_needed = (function anydb$datascript$core$migrate_schema_if_needed(db_alias,conn,tx_data){
|
|
64
|
+
if(cljs.core.truth_(anydb.datascript.core.detect_schema_changes(tx_data))){
|
|
65
|
+
var old_db = datascript.core.db(conn);
|
|
66
|
+
var old_schema = anydb.datascript.core.extract_schema_from_db(old_db);
|
|
67
|
+
var all_datoms = cljs.core.vec(datascript.core.datoms.cljs$core$IFn$_invoke$arity$2(old_db,new cljs.core.Keyword(null,"eavt","eavt",-666437073)));
|
|
68
|
+
var temp_conn = (datascript.core.create_conn.cljs$core$IFn$_invoke$arity$1 ? datascript.core.create_conn.cljs$core$IFn$_invoke$arity$1(old_schema) : datascript.core.create_conn.call(null,old_schema));
|
|
69
|
+
var _ = (datascript.core.transact_BANG_.cljs$core$IFn$_invoke$arity$2 ? datascript.core.transact_BANG_.cljs$core$IFn$_invoke$arity$2(temp_conn,tx_data) : datascript.core.transact_BANG_.call(null,temp_conn,tx_data));
|
|
70
|
+
var new_schema = anydb.datascript.core.extract_schema_from_db(datascript.core.db(temp_conn));
|
|
71
|
+
var new_conn = (datascript.core.create_conn.cljs$core$IFn$_invoke$arity$1 ? datascript.core.create_conn.cljs$core$IFn$_invoke$arity$1(new_schema) : datascript.core.create_conn.call(null,new_schema));
|
|
72
|
+
var non_schema_datoms_15309 = cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__15291_SHARP_){
|
|
73
|
+
var G__15292 = new cljs.core.Keyword(null,"a","a",-2123407586).cljs$core$IFn$_invoke$arity$1(p1__15291_SHARP_);
|
|
74
|
+
return (anydb.datascript.core.schema_attributes.cljs$core$IFn$_invoke$arity$1 ? anydb.datascript.core.schema_attributes.cljs$core$IFn$_invoke$arity$1(G__15292) : anydb.datascript.core.schema_attributes.call(null,G__15292));
|
|
75
|
+
}),all_datoms);
|
|
76
|
+
if(cljs.core.seq(non_schema_datoms_15309)){
|
|
77
|
+
var G__15293_15310 = new_conn;
|
|
78
|
+
var G__15294_15311 = cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p__15295){
|
|
79
|
+
var map__15296 = p__15295;
|
|
80
|
+
var map__15296__$1 = cljs.core.__destructure_map(map__15296);
|
|
81
|
+
var e = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__15296__$1,new cljs.core.Keyword(null,"e","e",1381269198));
|
|
82
|
+
var a = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__15296__$1,new cljs.core.Keyword(null,"a","a",-2123407586));
|
|
83
|
+
var v = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__15296__$1,new cljs.core.Keyword(null,"v","v",21465059));
|
|
84
|
+
return new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db","add","db/add",235286841),e,a,v], null);
|
|
85
|
+
}),non_schema_datoms_15309);
|
|
86
|
+
(datascript.core.transact_BANG_.cljs$core$IFn$_invoke$arity$2 ? datascript.core.transact_BANG_.cljs$core$IFn$_invoke$arity$2(G__15293_15310,G__15294_15311) : datascript.core.transact_BANG_.call(null,G__15293_15310,G__15294_15311));
|
|
87
|
+
} else {
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
(datascript.core.transact_BANG_.cljs$core$IFn$_invoke$arity$2 ? datascript.core.transact_BANG_.cljs$core$IFn$_invoke$arity$2(new_conn,tx_data) : datascript.core.transact_BANG_.call(null,new_conn,tx_data));
|
|
91
|
+
|
|
92
|
+
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(anydb.datascript.core.db_registry,cljs.core.assoc,db_alias,new_conn);
|
|
93
|
+
|
|
94
|
+
return new_conn;
|
|
95
|
+
} else {
|
|
96
|
+
(datascript.core.transact_BANG_.cljs$core$IFn$_invoke$arity$2 ? datascript.core.transact_BANG_.cljs$core$IFn$_invoke$arity$2(conn,tx_data) : datascript.core.transact_BANG_.call(null,conn,tx_data));
|
|
97
|
+
|
|
98
|
+
return conn;
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
/**
|
|
102
|
+
* Get or create a DataScript connection for a database alias
|
|
103
|
+
*/
|
|
104
|
+
anydb.datascript.core.get_or_create_conn = (function anydb$datascript$core$get_or_create_conn(db_alias){
|
|
105
|
+
var or__5002__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(anydb.datascript.core.db_registry),db_alias);
|
|
106
|
+
if(cljs.core.truth_(or__5002__auto__)){
|
|
107
|
+
return or__5002__auto__;
|
|
108
|
+
} else {
|
|
109
|
+
var initial_schema = anydb.datascript.schema.get_initial_schema();
|
|
110
|
+
var conn = (datascript.core.create_conn.cljs$core$IFn$_invoke$arity$1 ? datascript.core.create_conn.cljs$core$IFn$_invoke$arity$1(initial_schema) : datascript.core.create_conn.call(null,initial_schema));
|
|
111
|
+
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(anydb.datascript.core.db_registry,cljs.core.assoc,db_alias,conn);
|
|
112
|
+
|
|
113
|
+
return conn;
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
/**
|
|
117
|
+
* List all currently active DataScript databases
|
|
118
|
+
*/
|
|
119
|
+
anydb.datascript.core.list_databases = (function anydb$datascript$core$list_databases(){
|
|
120
|
+
return cljs.core.vec(cljs.core.keys(cljs.core.deref(anydb.datascript.core.db_registry)));
|
|
121
|
+
});
|
|
122
|
+
/**
|
|
123
|
+
* Delete a DataScript database (remove from registry)
|
|
124
|
+
*/
|
|
125
|
+
anydb.datascript.core.delete_database = (function anydb$datascript$core$delete_database(db_alias){
|
|
126
|
+
if(cljs.core.contains_QMARK_(cljs.core.deref(anydb.datascript.core.db_registry),db_alias)){
|
|
127
|
+
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(anydb.datascript.core.db_registry,cljs.core.dissoc,db_alias);
|
|
128
|
+
|
|
129
|
+
return new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"db-deleted","db-deleted",1500904071),db_alias], null);
|
|
130
|
+
} else {
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
/**
|
|
135
|
+
* Execute transaction on DataScript database with schema migration
|
|
136
|
+
*/
|
|
137
|
+
anydb.datascript.core.transact = (function anydb$datascript$core$transact(db_alias,tx_data){
|
|
138
|
+
var conn = anydb.datascript.core.get_or_create_conn(db_alias);
|
|
139
|
+
var old_db = datascript.core.db(conn);
|
|
140
|
+
var updated_conn = anydb.datascript.core.migrate_schema_if_needed(db_alias,conn,tx_data);
|
|
141
|
+
var new_db = datascript.core.db(updated_conn);
|
|
142
|
+
var tx_report = cljs.core.deref(datascript.core.transact.cljs$core$IFn$_invoke$arity$2(updated_conn,cljs.core.PersistentVector.EMPTY));
|
|
143
|
+
return new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"db-before","db-before",-553691536),old_db,new cljs.core.Keyword(null,"db-after","db-after",-571884666),new_db,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),new cljs.core.Keyword(null,"tx-data","tx-data",934159761).cljs$core$IFn$_invoke$arity$1(tx_report),new cljs.core.Keyword(null,"tempids","tempids",1767509089),new cljs.core.Keyword(null,"tempids","tempids",1767509089).cljs$core$IFn$_invoke$arity$1(tx_report)], null);
|
|
144
|
+
});
|
|
145
|
+
/**
|
|
146
|
+
* Execute Datalog query on DataScript database
|
|
147
|
+
*/
|
|
148
|
+
anydb.datascript.core.query = (function anydb$datascript$core$query(var_args){
|
|
149
|
+
var args__5732__auto__ = [];
|
|
150
|
+
var len__5726__auto___15312 = arguments.length;
|
|
151
|
+
var i__5727__auto___15313 = (0);
|
|
152
|
+
while(true){
|
|
153
|
+
if((i__5727__auto___15313 < len__5726__auto___15312)){
|
|
154
|
+
args__5732__auto__.push((arguments[i__5727__auto___15313]));
|
|
155
|
+
|
|
156
|
+
var G__15314 = (i__5727__auto___15313 + (1));
|
|
157
|
+
i__5727__auto___15313 = G__15314;
|
|
158
|
+
continue;
|
|
159
|
+
} else {
|
|
160
|
+
}
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
var argseq__5733__auto__ = ((((2) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);
|
|
165
|
+
return anydb.datascript.core.query.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__auto__);
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
(anydb.datascript.core.query.cljs$core$IFn$_invoke$arity$variadic = (function (q,db_alias,args){
|
|
169
|
+
var conn = anydb.datascript.core.get_or_create_conn(db_alias);
|
|
170
|
+
var db = datascript.core.db(conn);
|
|
171
|
+
return cljs.core.apply.cljs$core$IFn$_invoke$arity$4(datascript.core.q,q,db,args);
|
|
172
|
+
}));
|
|
173
|
+
|
|
174
|
+
(anydb.datascript.core.query.cljs$lang$maxFixedArity = (2));
|
|
175
|
+
|
|
176
|
+
/** @this {Function} */
|
|
177
|
+
(anydb.datascript.core.query.cljs$lang$applyTo = (function (seq15297){
|
|
178
|
+
var G__15298 = cljs.core.first(seq15297);
|
|
179
|
+
var seq15297__$1 = cljs.core.next(seq15297);
|
|
180
|
+
var G__15299 = cljs.core.first(seq15297__$1);
|
|
181
|
+
var seq15297__$2 = cljs.core.next(seq15297__$1);
|
|
182
|
+
var self__5711__auto__ = this;
|
|
183
|
+
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__15298,G__15299,seq15297__$2);
|
|
184
|
+
}));
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Get entity by ID from DataScript database
|
|
188
|
+
*/
|
|
189
|
+
anydb.datascript.core.entity = (function anydb$datascript$core$entity(db_alias,entity_id){
|
|
190
|
+
var conn = anydb.datascript.core.get_or_create_conn(db_alias);
|
|
191
|
+
var db = datascript.core.db(conn);
|
|
192
|
+
return (datascript.core.entity.cljs$core$IFn$_invoke$arity$2 ? datascript.core.entity.cljs$core$IFn$_invoke$arity$2(db,entity_id) : datascript.core.entity.call(null,db,entity_id));
|
|
193
|
+
});
|
|
194
|
+
/**
|
|
195
|
+
* Get datoms from DataScript database
|
|
196
|
+
*/
|
|
197
|
+
anydb.datascript.core.datoms = (function anydb$datascript$core$datoms(var_args){
|
|
198
|
+
var args__5732__auto__ = [];
|
|
199
|
+
var len__5726__auto___15315 = arguments.length;
|
|
200
|
+
var i__5727__auto___15316 = (0);
|
|
201
|
+
while(true){
|
|
202
|
+
if((i__5727__auto___15316 < len__5726__auto___15315)){
|
|
203
|
+
args__5732__auto__.push((arguments[i__5727__auto___15316]));
|
|
204
|
+
|
|
205
|
+
var G__15317 = (i__5727__auto___15316 + (1));
|
|
206
|
+
i__5727__auto___15316 = G__15317;
|
|
207
|
+
continue;
|
|
208
|
+
} else {
|
|
209
|
+
}
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
var argseq__5733__auto__ = ((((2) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);
|
|
214
|
+
return anydb.datascript.core.datoms.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__auto__);
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
(anydb.datascript.core.datoms.cljs$core$IFn$_invoke$arity$variadic = (function (db_alias,index,components){
|
|
218
|
+
var conn = anydb.datascript.core.get_or_create_conn(db_alias);
|
|
219
|
+
var db = datascript.core.db(conn);
|
|
220
|
+
return cljs.core.apply.cljs$core$IFn$_invoke$arity$4(datascript.core.datoms,db,index,components);
|
|
221
|
+
}));
|
|
222
|
+
|
|
223
|
+
(anydb.datascript.core.datoms.cljs$lang$maxFixedArity = (2));
|
|
224
|
+
|
|
225
|
+
/** @this {Function} */
|
|
226
|
+
(anydb.datascript.core.datoms.cljs$lang$applyTo = (function (seq15300){
|
|
227
|
+
var G__15301 = cljs.core.first(seq15300);
|
|
228
|
+
var seq15300__$1 = cljs.core.next(seq15300);
|
|
229
|
+
var G__15302 = cljs.core.first(seq15300__$1);
|
|
230
|
+
var seq15300__$2 = cljs.core.next(seq15300__$1);
|
|
231
|
+
var self__5711__auto__ = this;
|
|
232
|
+
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__15301,G__15302,seq15300__$2);
|
|
233
|
+
}));
|
|
234
|
+
|
|
235
|
+
anydb.datascript.core.createDatabase = (function anydb$datascript$core$createDatabase(db_alias){
|
|
236
|
+
anydb.datascript.core.get_or_create_conn(db_alias);
|
|
237
|
+
|
|
238
|
+
return new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"db-created","db-created",1312908662),db_alias], null);
|
|
239
|
+
});
|
|
240
|
+
anydb.datascript.core.listDatabases = (function anydb$datascript$core$listDatabases(){
|
|
241
|
+
return cljs.core.clj__GT_js(anydb.datascript.core.list_databases());
|
|
242
|
+
});
|
|
243
|
+
anydb.datascript.core.deleteDatabase = (function anydb$datascript$core$deleteDatabase(db_alias){
|
|
244
|
+
return cljs.core.clj__GT_js(anydb.datascript.core.delete_database(db_alias));
|
|
245
|
+
});
|
|
246
|
+
anydb.datascript.core.transactData = (function anydb$datascript$core$transactData(db_alias,tx_data_edn){
|
|
247
|
+
var tx_data = clojure.edn.read_string.cljs$core$IFn$_invoke$arity$1(tx_data_edn);
|
|
248
|
+
return cljs.core.clj__GT_js(anydb.datascript.core.transact(db_alias,tx_data));
|
|
249
|
+
});
|
|
250
|
+
anydb.datascript.core.queryData = (function anydb$datascript$core$queryData(var_args){
|
|
251
|
+
var args__5732__auto__ = [];
|
|
252
|
+
var len__5726__auto___15318 = arguments.length;
|
|
253
|
+
var i__5727__auto___15319 = (0);
|
|
254
|
+
while(true){
|
|
255
|
+
if((i__5727__auto___15319 < len__5726__auto___15318)){
|
|
256
|
+
args__5732__auto__.push((arguments[i__5727__auto___15319]));
|
|
257
|
+
|
|
258
|
+
var G__15320 = (i__5727__auto___15319 + (1));
|
|
259
|
+
i__5727__auto___15319 = G__15320;
|
|
260
|
+
continue;
|
|
261
|
+
} else {
|
|
262
|
+
}
|
|
263
|
+
break;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
var argseq__5733__auto__ = ((((2) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);
|
|
267
|
+
return anydb.datascript.core.queryData.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__auto__);
|
|
268
|
+
});
|
|
269
|
+
goog.exportSymbol('anydb.datascript.core.queryData', anydb.datascript.core.queryData);
|
|
270
|
+
|
|
271
|
+
(anydb.datascript.core.queryData.cljs$core$IFn$_invoke$arity$variadic = (function (q_edn,db_alias,args_edn){
|
|
272
|
+
var q = clojure.edn.read_string.cljs$core$IFn$_invoke$arity$1(q_edn);
|
|
273
|
+
var args = cljs.core.map.cljs$core$IFn$_invoke$arity$2(clojure.edn.read_string,args_edn);
|
|
274
|
+
return cljs.core.clj__GT_js(cljs.core.apply.cljs$core$IFn$_invoke$arity$4(anydb.datascript.core.query,q,db_alias,args));
|
|
275
|
+
}));
|
|
276
|
+
|
|
277
|
+
(anydb.datascript.core.queryData.cljs$lang$maxFixedArity = (2));
|
|
278
|
+
|
|
279
|
+
/** @this {Function} */
|
|
280
|
+
(anydb.datascript.core.queryData.cljs$lang$applyTo = (function (seq15303){
|
|
281
|
+
var G__15304 = cljs.core.first(seq15303);
|
|
282
|
+
var seq15303__$1 = cljs.core.next(seq15303);
|
|
283
|
+
var G__15305 = cljs.core.first(seq15303__$1);
|
|
284
|
+
var seq15303__$2 = cljs.core.next(seq15303__$1);
|
|
285
|
+
var self__5711__auto__ = this;
|
|
286
|
+
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__15304,G__15305,seq15303__$2);
|
|
287
|
+
}));
|
|
288
|
+
|
|
289
|
+
anydb.datascript.core.getEntity = (function anydb$datascript$core$getEntity(db_alias,entity_id){
|
|
290
|
+
return cljs.core.clj__GT_js(anydb.datascript.core.entity(db_alias,entity_id));
|
|
291
|
+
});
|
|
292
|
+
anydb.datascript.core.getDatoms = (function anydb$datascript$core$getDatoms(var_args){
|
|
293
|
+
var args__5732__auto__ = [];
|
|
294
|
+
var len__5726__auto___15321 = arguments.length;
|
|
295
|
+
var i__5727__auto___15322 = (0);
|
|
296
|
+
while(true){
|
|
297
|
+
if((i__5727__auto___15322 < len__5726__auto___15321)){
|
|
298
|
+
args__5732__auto__.push((arguments[i__5727__auto___15322]));
|
|
299
|
+
|
|
300
|
+
var G__15323 = (i__5727__auto___15322 + (1));
|
|
301
|
+
i__5727__auto___15322 = G__15323;
|
|
302
|
+
continue;
|
|
303
|
+
} else {
|
|
304
|
+
}
|
|
305
|
+
break;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
var argseq__5733__auto__ = ((((2) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);
|
|
309
|
+
return anydb.datascript.core.getDatoms.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__auto__);
|
|
310
|
+
});
|
|
311
|
+
goog.exportSymbol('anydb.datascript.core.getDatoms', anydb.datascript.core.getDatoms);
|
|
312
|
+
|
|
313
|
+
(anydb.datascript.core.getDatoms.cljs$core$IFn$_invoke$arity$variadic = (function (db_alias,index,components){
|
|
314
|
+
return cljs.core.clj__GT_js(cljs.core.apply.cljs$core$IFn$_invoke$arity$4(anydb.datascript.core.datoms,db_alias,cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(index),components));
|
|
315
|
+
}));
|
|
316
|
+
|
|
317
|
+
(anydb.datascript.core.getDatoms.cljs$lang$maxFixedArity = (2));
|
|
318
|
+
|
|
319
|
+
/** @this {Function} */
|
|
320
|
+
(anydb.datascript.core.getDatoms.cljs$lang$applyTo = (function (seq15306){
|
|
321
|
+
var G__15307 = cljs.core.first(seq15306);
|
|
322
|
+
var seq15306__$1 = cljs.core.next(seq15306);
|
|
323
|
+
var G__15308 = cljs.core.first(seq15306__$1);
|
|
324
|
+
var seq15306__$2 = cljs.core.next(seq15306__$1);
|
|
325
|
+
var self__5711__auto__ = this;
|
|
326
|
+
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__15307,G__15308,seq15306__$2);
|
|
327
|
+
}));
|
|
328
|
+
|
|
329
|
+
Object.defineProperty(module.exports, "createDatabase", { enumerable: true, get: function() { return anydb.datascript.core.createDatabase; } });
|
|
330
|
+
Object.defineProperty(module.exports, "listDatabases", { enumerable: true, get: function() { return anydb.datascript.core.listDatabases; } });
|
|
331
|
+
Object.defineProperty(module.exports, "deleteDatabase", { enumerable: true, get: function() { return anydb.datascript.core.deleteDatabase; } });
|
|
332
|
+
Object.defineProperty(module.exports, "transactData", { enumerable: true, get: function() { return anydb.datascript.core.transactData; } });
|
|
333
|
+
Object.defineProperty(module.exports, "queryData", { enumerable: true, get: function() { return anydb.datascript.core.queryData; } });
|
|
334
|
+
Object.defineProperty(module.exports, "getEntity", { enumerable: true, get: function() { return anydb.datascript.core.getEntity; } });
|
|
335
|
+
Object.defineProperty(module.exports, "getDatoms", { enumerable: true, get: function() { return anydb.datascript.core.getDatoms; } });
|
|
336
|
+
//# sourceMappingURL=anydb.datascript.core.js.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
var $CLJS = require("./cljs_env");
|
|
2
|
+
var $jscomp = $CLJS.$jscomp;
|
|
3
|
+
var COMPILED = false;
|
|
4
|
+
require("./cljs.core.js");
|
|
5
|
+
var anydb=$CLJS.anydb || ($CLJS.anydb = {});
|
|
6
|
+
var clojure=$CLJS.clojure || ($CLJS.clojure = {});
|
|
7
|
+
var cljs=$CLJS.cljs || ($CLJS.cljs = {});
|
|
8
|
+
var goog=$CLJS.goog || ($CLJS.goog = {});
|
|
9
|
+
var datascript=$CLJS.datascript || ($CLJS.datascript = {});
|
|
10
|
+
var me=$CLJS.me || ($CLJS.me = {});
|
|
11
|
+
var extend_clj=$CLJS.extend_clj || ($CLJS.extend_clj = {});
|
|
12
|
+
|
|
13
|
+
$CLJS.SHADOW_ENV.setLoaded("anydb.datascript.rules.js");
|
|
14
|
+
|
|
15
|
+
goog.provide('anydb.datascript.rules');
|
|
16
|
+
/**
|
|
17
|
+
* Create ABAC filter - for now just allow everything for development
|
|
18
|
+
*/
|
|
19
|
+
anydb.datascript.rules.make_abac_filter = (function anydb$datascript$rules$make_abac_filter(db,subject,action){
|
|
20
|
+
return cljs.core.constantly(true);
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Find policies - placeholder for development
|
|
24
|
+
*/
|
|
25
|
+
anydb.datascript.rules.find_policies = (function anydb$datascript$rules$find_policies(db,subject,action){
|
|
26
|
+
return cljs.core.PersistentVector.EMPTY;
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=anydb.datascript.rules.js.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
var $CLJS = require("./cljs_env");
|
|
2
|
+
var $jscomp = $CLJS.$jscomp;
|
|
3
|
+
var COMPILED = false;
|
|
4
|
+
require("./cljs.core.js");
|
|
5
|
+
var anydb=$CLJS.anydb || ($CLJS.anydb = {});
|
|
6
|
+
var clojure=$CLJS.clojure || ($CLJS.clojure = {});
|
|
7
|
+
var cljs=$CLJS.cljs || ($CLJS.cljs = {});
|
|
8
|
+
var goog=$CLJS.goog || ($CLJS.goog = {});
|
|
9
|
+
var datascript=$CLJS.datascript || ($CLJS.datascript = {});
|
|
10
|
+
var me=$CLJS.me || ($CLJS.me = {});
|
|
11
|
+
var extend_clj=$CLJS.extend_clj || ($CLJS.extend_clj = {});
|
|
12
|
+
|
|
13
|
+
$CLJS.SHADOW_ENV.setLoaded("anydb.datascript.schema.js");
|
|
14
|
+
|
|
15
|
+
goog.provide('anydb.datascript.schema');
|
|
16
|
+
/**
|
|
17
|
+
* Base schema with essential Datomic attributes
|
|
18
|
+
*/
|
|
19
|
+
anydb.datascript.schema.base_schema = cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword("db","index","db/index",-1531680669),new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db","noHistory","db/noHistory",-1975127444),new cljs.core.Keyword("db","isComponent","db/isComponent",423352398),new cljs.core.Keyword("db","fulltext","db/fulltext",-1432910705),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db","doc","db/doc",1913350069),new cljs.core.Keyword("db","ident","db/ident",-737096)],[cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722)], null)]);
|
|
20
|
+
/**
|
|
21
|
+
* Authentication schema matching Datomic version
|
|
22
|
+
*/
|
|
23
|
+
anydb.datascript.schema.auth_schema = cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword("anydb.auth.account.v1","expires-at","anydb.auth.account.v1/expires-at",606383524),new cljs.core.Keyword("anydb.auth.session.v1","user-id","anydb.auth.session.v1/user-id",-1474562396),new cljs.core.Keyword("anydb.auth.user.v1","email","anydb.auth.user.v1/email",408674374),new cljs.core.Keyword("anydb.auth.account.v1","provider-account-id","anydb.auth.account.v1/provider-account-id",354659754),new cljs.core.Keyword("anydb.auth.account.v1","type","anydb.auth.account.v1/type",2122210282),new cljs.core.Keyword("anydb.auth.account.v1","user-id","anydb.auth.account.v1/user-id",858502027),new cljs.core.Keyword("anydb.auth.vtoken.v1","expires","anydb.auth.vtoken.v1/expires",-1415084052),new cljs.core.Keyword("anydb.auth.account.v1","token-type","anydb.auth.account.v1/token-type",230053326),new cljs.core.Keyword("anydb.auth.account.v1","scope","anydb.auth.account.v1/scope",626022544),new cljs.core.Keyword("anydb.auth.account.v1","id-token","anydb.auth.account.v1/id-token",-1438219888),new cljs.core.Keyword("anydb.auth.vtoken.v1","id","anydb.auth.vtoken.v1/id",85885712),new cljs.core.Keyword("anydb.auth.session.v1","session-token","anydb.auth.session.v1/session-token",1759289457),new cljs.core.Keyword("anydb.auth.vtoken.v1","identifier","anydb.auth.vtoken.v1/identifier",765319474),new cljs.core.Keyword("anydb.auth.user.v1","email-verified","anydb.auth.user.v1/email-verified",-1060690478),new cljs.core.Keyword("anydb.auth.user.v1","name","anydb.auth.user.v1/name",837523829),new cljs.core.Keyword("anydb.auth.vtoken.v1","token","anydb.auth.vtoken.v1/token",560685717),new cljs.core.Keyword("anydb.auth.account.v1","id","anydb.auth.account.v1/id",-306231562),new cljs.core.Keyword("anydb.auth.account.v1","access-token","anydb.auth.account.v1/access-token",411190071),new cljs.core.Keyword("anydb.auth.user.v1","id","anydb.auth.user.v1/id",424050968),new cljs.core.Keyword("anydb.auth.account.v1","session-state","anydb.auth.account.v1/session-state",-1912084678),new cljs.core.Keyword("anydb.auth.session.v1","expires","anydb.auth.session.v1/expires",-375846693),new cljs.core.Keyword("anydb.auth.user.v1","image","anydb.auth.user.v1/image",813147164),new cljs.core.Keyword("anydb.auth.account.v1","refresh-token","anydb.auth.account.v1/refresh-token",50087070),new cljs.core.Keyword("anydb.auth.account.v1","provider","anydb.auth.account.v1/provider",763211294),new cljs.core.Keyword("anydb.auth.session.v1","id","anydb.auth.session.v1/id",1999569887)],[cljs.core.PersistentArrayMap.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","ref","db.type/ref",-1728373079)], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722)], null),cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","ref","db.type/ref",-1728373079)], null),cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722)], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722)], null),cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722)], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722)], null),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722)], null),cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722)], null)]);
|
|
24
|
+
/**
|
|
25
|
+
* ABAC policy schema
|
|
26
|
+
*/
|
|
27
|
+
anydb.datascript.schema.policy_schema = cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword("anydb.policy.v1","condition","anydb.policy.v1/condition",157767879),new cljs.core.Keyword("anydb.policy.v1","resources","anydb.policy.v1/resources",-1155158966),new cljs.core.Keyword("anydb.policy.v1","subject","anydb.policy.v1/subject",1575700076),new cljs.core.Keyword("anydb.effect.v1","allow","anydb.effect.v1/allow",-215888429),new cljs.core.Keyword("anydb.action.v1","read","anydb.action.v1/read",186721782),new cljs.core.Keyword("anydb.effect.v1","deny","anydb.effect.v1/deny",-87231945),new cljs.core.Keyword("anydb.system.v1","subject","anydb.system.v1/subject",-1423265001),new cljs.core.Keyword("anydb.policy.v1","effect","anydb.policy.v1/effect",1118373528),new cljs.core.Keyword("anydb.action.v1","write","anydb.action.v1/write",707273535),new cljs.core.Keyword("anydb.policy.v1","actions","anydb.policy.v1/actions",1038406495)],[cljs.core.PersistentArrayMap.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","many","db.cardinality/many",772806234)], null),cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","many","db.cardinality/many",772806234)], null)]);
|
|
28
|
+
/**
|
|
29
|
+
* Get complete initial schema for DataScript
|
|
30
|
+
*/
|
|
31
|
+
anydb.datascript.schema.get_initial_schema = (function anydb$datascript$schema$get_initial_schema(){
|
|
32
|
+
return cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([anydb.datascript.schema.base_schema,anydb.datascript.schema.auth_schema,anydb.datascript.schema.policy_schema], 0));
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=anydb.datascript.schema.js.map
|
package/dist/client.d.ts
CHANGED
|
@@ -113,4 +113,5 @@ export declare function createAnyDBClient(client: DatomicClient, storageAlias: s
|
|
|
113
113
|
export declare function pluckFirstColumn(rows: any[][]): any[];
|
|
114
114
|
export { shouldUseDataScript, isDataScriptAvailable };
|
|
115
115
|
export default DatomicClient;
|
|
116
|
+
export declare function ensureAttributes(db: AnyDBClient, schemaEntities: Array<Record<string, any>>): Promise<void>;
|
|
116
117
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -363,3 +363,62 @@ export function pluckFirstColumn(rows) {
|
|
|
363
363
|
// Re-export DataScript helpers for consumers that need feature-detection
|
|
364
364
|
export { shouldUseDataScript, isDataScriptAvailable };
|
|
365
365
|
export default DatomicClient;
|
|
366
|
+
// ===== Schema helpers (idempotent ensure) =====
|
|
367
|
+
const __ensuredIdentsCache = new Map();
|
|
368
|
+
function getDbAliasCached(db) {
|
|
369
|
+
return db.info().then((info) => info["db/alias"]);
|
|
370
|
+
}
|
|
371
|
+
function extractIdentName(entity) {
|
|
372
|
+
const identVal = entity["db/ident"];
|
|
373
|
+
if (!identVal)
|
|
374
|
+
return null;
|
|
375
|
+
if (typeof identVal === "string")
|
|
376
|
+
return identVal.startsWith(":") ? identVal.slice(1) : identVal;
|
|
377
|
+
if (typeof identVal === "object" && identVal && identVal._type === "keyword") {
|
|
378
|
+
return identVal.value;
|
|
379
|
+
}
|
|
380
|
+
return null;
|
|
381
|
+
}
|
|
382
|
+
export async function ensureAttributes(db, schemaEntities) {
|
|
383
|
+
const alias = await getDbAliasCached(db);
|
|
384
|
+
const cached = __ensuredIdentsCache.get(alias) || new Set();
|
|
385
|
+
// Compute desired idents
|
|
386
|
+
const desired = schemaEntities
|
|
387
|
+
.map(extractIdentName)
|
|
388
|
+
.filter((v) => Boolean(v));
|
|
389
|
+
// Filter out those already ensured in this process
|
|
390
|
+
const toCheck = desired.filter((n) => !cached.has(n));
|
|
391
|
+
if (toCheck.length === 0)
|
|
392
|
+
return;
|
|
393
|
+
// Determine which exist already in DB
|
|
394
|
+
const existing = new Set();
|
|
395
|
+
for (const ident of toCheck) {
|
|
396
|
+
try {
|
|
397
|
+
const q = {
|
|
398
|
+
find: [sym("?e")],
|
|
399
|
+
where: [
|
|
400
|
+
[sym("?e"), kw("db/ident"), kw(ident)],
|
|
401
|
+
],
|
|
402
|
+
};
|
|
403
|
+
const rows = await db.query(q);
|
|
404
|
+
if (Array.isArray(rows) && rows.length > 0)
|
|
405
|
+
existing.add(ident);
|
|
406
|
+
}
|
|
407
|
+
catch (_) {
|
|
408
|
+
// ignore transient errors
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
const missing = toCheck.filter((n) => !existing.has(n));
|
|
412
|
+
if (missing.length > 0) {
|
|
413
|
+
const tx = schemaEntities.filter((e) => {
|
|
414
|
+
const n = extractIdentName(e);
|
|
415
|
+
return n != null && missing.includes(n);
|
|
416
|
+
});
|
|
417
|
+
if (tx.length > 0) {
|
|
418
|
+
await db.transact(tx);
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
// Update cache
|
|
422
|
+
const updated = new Set([...cached, ...toCheck]);
|
|
423
|
+
__ensuredIdentsCache.set(alias, updated);
|
|
424
|
+
}
|