@antelopejs/interface-database-decorators 0.1.10 → 0.1.12
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 +9 -7
- package/dist/common.js.map +1 -1
- package/dist/database.js +18 -2
- package/dist/database.js.map +1 -1
- package/dist/model.js +48 -29
- package/dist/model.js.map +1 -1
- package/dist/modifiers/common.d.ts +24 -4
- package/dist/modifiers/common.js +104 -130
- package/dist/modifiers/common.js.map +1 -1
- package/dist/modifiers/encryption.js +14 -9
- package/dist/modifiers/encryption.js.map +1 -1
- package/dist/modifiers/hash.d.ts +46 -4
- package/dist/modifiers/hash.js +172 -14
- package/dist/modifiers/hash.js.map +1 -1
- package/dist/modifiers/internal/kinds.d.ts +13 -0
- package/dist/modifiers/internal/kinds.js +33 -0
- package/dist/modifiers/internal/kinds.js.map +1 -0
- package/dist/modifiers/internal/records.d.ts +31 -0
- package/dist/modifiers/internal/records.js +56 -0
- package/dist/modifiers/internal/records.js.map +1 -0
- package/dist/modifiers/localization.js +4 -2
- package/dist/modifiers/localization.js.map +1 -1
- package/dist/schema.js +1 -2
- package/dist/schema.js.map +1 -1
- package/dist/table.js +21 -6
- package/dist/table.js.map +1 -1
- package/dist/tests/codec_helpers.d.ts +6 -2
- package/dist/tests/codec_helpers.js +18 -14
- package/dist/tests/codec_helpers.js.map +1 -1
- package/dist/tests/common.test.js +38 -46
- package/dist/tests/common.test.js.map +1 -1
- package/dist/tests/cross_instance.test.js +27 -2
- package/dist/tests/cross_instance.test.js.map +1 -1
- package/dist/tests/database.test.js +278 -256
- package/dist/tests/database.test.js.map +1 -1
- package/dist/tests/hash_upgrade.test.d.ts +1 -0
- package/dist/tests/hash_upgrade.test.js +132 -0
- package/dist/tests/hash_upgrade.test.js.map +1 -0
- package/dist/tests/helpers/hash-rows.d.ts +40 -0
- package/dist/tests/helpers/hash-rows.js +41 -0
- package/dist/tests/helpers/hash-rows.js.map +1 -0
- package/dist/tests/helpers/other-instance.d.ts +1 -1
- package/dist/tests/helpers/other-instance.js +41 -9
- package/dist/tests/helpers/other-instance.js.map +1 -1
- package/dist/tests/integration.test.js +485 -485
- package/dist/tests/integration.test.js.map +1 -1
- package/dist/tests/model.test.js +293 -308
- package/dist/tests/model.test.js.map +1 -1
- package/dist/tests/modifiers/autodate.test.js +80 -86
- package/dist/tests/modifiers/autodate.test.js.map +1 -1
- package/dist/tests/modifiers/common.test.js +181 -195
- package/dist/tests/modifiers/common.test.js.map +1 -1
- package/dist/tests/modifiers/encryption.test.js +149 -155
- package/dist/tests/modifiers/encryption.test.js.map +1 -1
- package/dist/tests/modifiers/hash.test.js +386 -99
- package/dist/tests/modifiers/hash.test.js.map +1 -1
- package/dist/tests/modifiers/localization.test.js +186 -196
- package/dist/tests/modifiers/localization.test.js.map +1 -1
- package/dist/tests/partial_update.test.d.ts +1 -0
- package/dist/tests/partial_update.test.js +55 -0
- package/dist/tests/partial_update.test.js.map +1 -0
- package/dist/tests/relation.test.js +92 -97
- package/dist/tests/relation.test.js.map +1 -1
- package/dist/tests/schema.test.js +101 -106
- package/dist/tests/schema.test.js.map +1 -1
- package/dist/tests/table.test.js +124 -132
- package/dist/tests/table.test.js.map +1 -1
- package/docs/3.table-modifiers.md +36 -15
- package/package.json +14 -3
- package/skills/database-decorators-interface/SKILL.md +4 -2
- package/skills/database-decorators-interface/cases.json +71 -0
package/dist/modifiers/common.js
CHANGED
|
@@ -13,6 +13,8 @@ exports.lock = lock;
|
|
|
13
13
|
exports.testValue = testValue;
|
|
14
14
|
exports.triggerEvent = triggerEvent;
|
|
15
15
|
const common_1 = require("../common");
|
|
16
|
+
const kinds_1 = require("./internal/kinds");
|
|
17
|
+
const records_1 = require("./internal/records");
|
|
16
18
|
exports.MixinSymbol = Symbol();
|
|
17
19
|
class Modifier {
|
|
18
20
|
meta;
|
|
@@ -57,30 +59,20 @@ class ContainerModifier extends TwoWayModifier {
|
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
61
|
exports.ContainerModifier = ContainerModifier;
|
|
60
|
-
function isWriteOnly(modifier) {
|
|
61
|
-
return "lock" in modifier && !("unlock" in modifier);
|
|
62
|
-
}
|
|
63
|
-
function isOnlyEvents(modifier) {
|
|
64
|
-
return !("lock" in modifier);
|
|
65
|
-
}
|
|
66
62
|
class ModifiersStaticMetadata {
|
|
67
63
|
static key = Symbol.for("@antelopejs/interface-database-decorators/ModifiersStaticMetadata@1");
|
|
68
64
|
fields = {};
|
|
69
65
|
events = new Map();
|
|
70
66
|
}
|
|
71
67
|
exports.ModifiersStaticMetadata = ModifiersStaticMetadata;
|
|
72
|
-
function withRef(internal, id, modifier, metaRef, callback) {
|
|
73
|
-
metaRef._ref = internal.meta[id];
|
|
74
|
-
const ret = callback(modifier);
|
|
75
|
-
if (metaRef._ref !== internal.meta[id]) {
|
|
76
|
-
internal.meta[id] = metaRef._ref;
|
|
77
|
-
}
|
|
78
|
-
return ret;
|
|
79
|
-
}
|
|
80
68
|
class ModifiersDynamicMetadata {
|
|
81
69
|
static key = Symbol.for("@antelopejs/interface-database-decorators/ModifiersDynamicMetadata@1");
|
|
82
70
|
staticMeta;
|
|
83
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Values assigned to a field before its modifiers could lock them, by field
|
|
73
|
+
* name. Reads return them; `unlock` and `lock` assign them again.
|
|
74
|
+
*/
|
|
75
|
+
floating = {};
|
|
84
76
|
fields = {};
|
|
85
77
|
constructor(target) {
|
|
86
78
|
this.staticMeta = (0, common_1.getMetadata)(target.constructor, ModifiersStaticMetadata);
|
|
@@ -89,58 +81,57 @@ class ModifiersDynamicMetadata {
|
|
|
89
81
|
}
|
|
90
82
|
}
|
|
91
83
|
canGet(field) {
|
|
92
|
-
const list = this.staticMeta
|
|
84
|
+
const list = (0, records_1.fieldsByKey)(this.staticMeta)[field];
|
|
93
85
|
const lastModifier = list[list.length - 1].modifier;
|
|
94
|
-
if (lastModifier.autolock) {
|
|
86
|
+
if ("autolock" in lastModifier && lastModifier.autolock) {
|
|
95
87
|
return true;
|
|
96
88
|
}
|
|
97
|
-
return (!isWriteOnly(lastModifier) &&
|
|
98
|
-
!list.some(({ id, modifier }) => !modifier.autounlock &&
|
|
89
|
+
return (!(0, kinds_1.isWriteOnly)(lastModifier) &&
|
|
90
|
+
!list.some(({ id, modifier }) => !("autounlock" in modifier && modifier.autounlock) &&
|
|
99
91
|
"unlock" in modifier &&
|
|
100
|
-
!(id in this
|
|
92
|
+
!(id in (0, records_1.unlockArgsOf)(this, field))));
|
|
101
93
|
}
|
|
102
94
|
get(field, internal) {
|
|
103
95
|
if (field in this.floating) {
|
|
104
|
-
return this
|
|
96
|
+
return (0, records_1.floatingByKey)(this)[field];
|
|
105
97
|
}
|
|
106
98
|
if (!this.canGet(field)) {
|
|
107
99
|
return;
|
|
108
100
|
}
|
|
109
|
-
const list = this.staticMeta
|
|
110
|
-
let value = internal
|
|
101
|
+
const list = (0, records_1.fieldsByKey)(this.staticMeta)[field];
|
|
102
|
+
let value = (0, records_1.dataByKey)(internal)[field];
|
|
111
103
|
for (const { id, modifier, metaRef } of list) {
|
|
112
|
-
if (
|
|
113
|
-
if (this
|
|
114
|
-
value = withRef(internal, id, modifier, metaRef, (modifier) => modifier.unlock(value, ...this
|
|
104
|
+
if ((0, kinds_1.isTwoWay)(modifier) && value !== undefined) {
|
|
105
|
+
if ((0, records_1.unlockArgsOf)(this, field)[id]) {
|
|
106
|
+
value = (0, records_1.withRef)(internal, id, modifier, metaRef, (modifier) => modifier.unlock(value, ...(0, records_1.unlockArgsOf)(this, field)[id]));
|
|
115
107
|
}
|
|
116
|
-
else if (modifier.autounlock) {
|
|
117
|
-
value = withRef(internal, id, modifier, metaRef, (modifier) => modifier.unlock(value));
|
|
108
|
+
else if ("autounlock" in modifier && modifier.autounlock) {
|
|
109
|
+
value = (0, records_1.withRef)(internal, id, modifier, metaRef, (modifier) => modifier.unlock(value));
|
|
118
110
|
}
|
|
119
111
|
}
|
|
120
112
|
}
|
|
121
113
|
return value;
|
|
122
114
|
}
|
|
123
115
|
canSet(field) {
|
|
124
|
-
const list = this.staticMeta
|
|
125
|
-
return !list.some(({ id, modifier }) => !modifier.autolock &&
|
|
116
|
+
const list = (0, records_1.fieldsByKey)(this.staticMeta)[field];
|
|
117
|
+
return !list.some(({ id, modifier }) => !("autolock" in modifier && modifier.autolock) &&
|
|
126
118
|
"lock" in modifier &&
|
|
127
|
-
!(id in this
|
|
119
|
+
!(id in (0, records_1.unlockArgsOf)(this, field)));
|
|
128
120
|
}
|
|
129
121
|
set(field, internal, value) {
|
|
130
122
|
if (!this.canSet(field)) {
|
|
131
|
-
this
|
|
123
|
+
(0, records_1.floatingByKey)(this)[field] = value;
|
|
132
124
|
return;
|
|
133
125
|
}
|
|
134
|
-
const list = this.staticMeta
|
|
135
|
-
// TODO: should maybe cache this
|
|
126
|
+
const list = (0, records_1.fieldsByKey)(this.staticMeta)[field];
|
|
136
127
|
const prevlist = [];
|
|
137
|
-
let prev = internal
|
|
128
|
+
let prev = (0, records_1.dataByKey)(internal)[field];
|
|
138
129
|
for (let i = 0; i < list.length - 1; ++i) {
|
|
139
130
|
const { id, modifier, metaRef } = list[i];
|
|
140
131
|
prevlist[i] = { id, modifier, metaRef, prev };
|
|
141
|
-
if (
|
|
142
|
-
if (this
|
|
143
|
-
prev = modifier.unlock(prev, ...this
|
|
132
|
+
if ((0, kinds_1.isTwoWay)(modifier)) {
|
|
133
|
+
if ((0, records_1.unlockArgsOf)(this, field)[id]) {
|
|
134
|
+
prev = modifier.unlock(prev, ...(0, records_1.unlockArgsOf)(this, field)[id]);
|
|
144
135
|
}
|
|
145
136
|
else {
|
|
146
137
|
prev = undefined;
|
|
@@ -153,39 +144,21 @@ class ModifiersDynamicMetadata {
|
|
|
153
144
|
});
|
|
154
145
|
for (let i = prevlist.length - 1; i >= 0; --i) {
|
|
155
146
|
const { id, modifier, metaRef, prev } = prevlist[i];
|
|
156
|
-
if (
|
|
157
|
-
value = withRef(internal, id, modifier, metaRef, (modifier) => modifier.lock(prev, value, ...(this
|
|
147
|
+
if ((0, kinds_1.isLocking)(modifier)) {
|
|
148
|
+
value = (0, records_1.withRef)(internal, id, modifier, metaRef, (modifier) => modifier.lock(prev, value, ...((0, records_1.unlockArgsOf)(this, field)[id] || [])));
|
|
158
149
|
}
|
|
159
150
|
}
|
|
160
|
-
internal
|
|
161
|
-
delete this
|
|
151
|
+
(0, records_1.dataByKey)(internal)[field] = value;
|
|
152
|
+
delete (0, records_1.floatingByKey)(this)[field];
|
|
162
153
|
}
|
|
163
154
|
}
|
|
164
155
|
exports.ModifiersDynamicMetadata = ModifiersDynamicMetadata;
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
meta: {},
|
|
169
|
-
data: {},
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
return object._internal;
|
|
173
|
-
}
|
|
174
|
-
/* Data stages:
|
|
175
|
-
*
|
|
176
|
-
* - `Database`: locked plain object
|
|
177
|
-
* - Complete data with encoded _internal field
|
|
178
|
-
* - ex: `{ plain: 'value', _internal: { [..] } }`
|
|
179
|
-
* - `Instance`: class instance
|
|
180
|
-
* - Complete data with prototype attached and accessors
|
|
181
|
-
* - ex: `Table { plain: 'value', special: (accessor) }`
|
|
182
|
-
* - `Plaindata`: unlocked plain object
|
|
183
|
-
* - Subset of existing data from locked object
|
|
184
|
-
* - ex: `{ plain: 'value', special: 'data' }`
|
|
156
|
+
/**
|
|
157
|
+
* Builds a table instance from unlocked plain data: each key is assigned, so
|
|
158
|
+
* modifiers lock the fields they can. Then runs the `fromPlainData` event.
|
|
185
159
|
*/
|
|
186
160
|
function fromPlainData(rawObject, TableClass) {
|
|
187
161
|
const shallowCopy = {};
|
|
188
|
-
// Attach prototype
|
|
189
162
|
Object.setPrototypeOf(shallowCopy, TableClass.prototype);
|
|
190
163
|
for (const [key, val] of Object.entries(rawObject)) {
|
|
191
164
|
shallowCopy[key] = val;
|
|
@@ -193,66 +166,73 @@ function fromPlainData(rawObject, TableClass) {
|
|
|
193
166
|
triggerEvent(shallowCopy, "fromPlainData", rawObject);
|
|
194
167
|
return shallowCopy;
|
|
195
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Converts a table instance to unlocked plain data, without `_internal`. A
|
|
171
|
+
* field still locked comes out `undefined`. Then runs the `toPlainData` event.
|
|
172
|
+
*/
|
|
196
173
|
function toPlainData(object) {
|
|
197
174
|
const metaTable = (0, common_1.getMetadata)(object.constructor, ModifiersStaticMetadata);
|
|
198
175
|
const result = { ...object };
|
|
199
|
-
|
|
176
|
+
if ("_internal" in result)
|
|
177
|
+
delete result._internal;
|
|
200
178
|
for (const field of Object.keys(metaTable.fields)) {
|
|
201
|
-
|
|
179
|
+
const key = field;
|
|
180
|
+
result[key] = object[key];
|
|
202
181
|
}
|
|
203
182
|
triggerEvent(object, "toPlainData", result);
|
|
204
183
|
return result;
|
|
205
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Builds a table instance from a stored record, its modified fields still
|
|
187
|
+
* locked in `_internal`. Then runs the `fromDatabase` event.
|
|
188
|
+
*/
|
|
206
189
|
function fromDatabase(rawObject, TableClass) {
|
|
207
|
-
// Generate Meta
|
|
208
190
|
const shallowCopy = { ...rawObject };
|
|
209
|
-
// Attach prototype
|
|
210
191
|
Object.setPrototypeOf(shallowCopy, TableClass.prototype);
|
|
211
192
|
triggerEvent(shallowCopy, "fromDatabase", rawObject);
|
|
212
193
|
return shallowCopy;
|
|
213
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Converts a table instance to the locked record to store, `_internal`
|
|
197
|
+
* included and floating values left out. Then runs the `toDatabase` event.
|
|
198
|
+
*/
|
|
214
199
|
function toDatabase(object) {
|
|
215
200
|
const result = { ...object };
|
|
216
201
|
triggerEvent(object, "toDatabase", result);
|
|
217
202
|
return result;
|
|
218
203
|
}
|
|
219
|
-
const ignoredEventNames = {
|
|
220
|
-
constructor: true,
|
|
221
|
-
lock: true,
|
|
222
|
-
unlock: true,
|
|
223
|
-
};
|
|
224
204
|
function attachModifier(TableClass, Modifier, field, options) {
|
|
225
205
|
const entry = {
|
|
226
206
|
id: Modifier.name,
|
|
227
207
|
modifier: new Modifier(),
|
|
228
208
|
metaRef: { _ref: {} },
|
|
229
209
|
};
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
self._ref
|
|
239
|
-
|
|
240
|
-
|
|
210
|
+
Object.assign(entry.modifier, {
|
|
211
|
+
meta: new Proxy(entry.metaRef, {
|
|
212
|
+
get: (self, p) => {
|
|
213
|
+
if (!self._ref)
|
|
214
|
+
return undefined;
|
|
215
|
+
return self._ref[p];
|
|
216
|
+
},
|
|
217
|
+
set: (self, p, v) => {
|
|
218
|
+
if (!self._ref)
|
|
219
|
+
self._ref = {};
|
|
220
|
+
return Reflect.set(self._ref, p, v, self._ref);
|
|
221
|
+
},
|
|
222
|
+
}),
|
|
241
223
|
});
|
|
242
|
-
entry.modifier
|
|
243
|
-
// Mark TableClass as special
|
|
224
|
+
Object.assign(entry.modifier, { options });
|
|
244
225
|
const metaTable = (0, common_1.getMetadata)(TableClass, ModifiersStaticMetadata);
|
|
245
|
-
if (!isOnlyEvents(entry.modifier)) {
|
|
246
|
-
// Add Modifier to TableClass[field] with options
|
|
226
|
+
if (!(0, kinds_1.isOnlyEvents)(entry.modifier)) {
|
|
247
227
|
if (field in metaTable.fields) {
|
|
248
|
-
const list = metaTable
|
|
228
|
+
const list = (0, records_1.fieldsByKey)(metaTable)[field];
|
|
249
229
|
const last = list[list.length - 1];
|
|
250
|
-
if (isWriteOnly(last.modifier)) {
|
|
251
|
-
if (isWriteOnly(entry.modifier)) {
|
|
252
|
-
throw new Error(`Attempted adding Modifier ${entry.id} on ${TableClass.name}.${field} but it already has a One-Way Modifier`);
|
|
230
|
+
if ((0, kinds_1.isWriteOnly)(last.modifier)) {
|
|
231
|
+
if ((0, kinds_1.isWriteOnly)(entry.modifier)) {
|
|
232
|
+
throw new Error(`Attempted adding Modifier ${entry.id} on ${TableClass.name}.${String(field)} but it already has a One-Way Modifier`);
|
|
253
233
|
}
|
|
254
234
|
else {
|
|
255
|
-
throw new Error(`Adding Modifier ${entry.id} on ${TableClass.name}.${field} after a One-Way Modifier, please review your ordering.`);
|
|
235
|
+
throw new Error(`Adding Modifier ${entry.id} on ${TableClass.name}.${String(field)} after a One-Way Modifier, please review your ordering.`);
|
|
256
236
|
}
|
|
257
237
|
}
|
|
258
238
|
else {
|
|
@@ -260,13 +240,13 @@ function attachModifier(TableClass, Modifier, field, options) {
|
|
|
260
240
|
}
|
|
261
241
|
}
|
|
262
242
|
else {
|
|
263
|
-
metaTable
|
|
243
|
+
(0, records_1.fieldsByKey)(metaTable)[field] = [entry];
|
|
264
244
|
Object.defineProperty(TableClass.prototype, field, {
|
|
265
245
|
get: function () {
|
|
266
|
-
return (0, common_1.getMetadata)(this, ModifiersDynamicMetadata).get(field, getInternal(this));
|
|
246
|
+
return (0, common_1.getMetadata)(this, ModifiersDynamicMetadata).get(field, (0, records_1.getInternal)(this));
|
|
267
247
|
},
|
|
268
248
|
set: function (value) {
|
|
269
|
-
(0, common_1.getMetadata)(this, ModifiersDynamicMetadata).set(field, getInternal(this), value);
|
|
249
|
+
(0, common_1.getMetadata)(this, ModifiersDynamicMetadata).set(field, (0, records_1.getInternal)(this), value);
|
|
270
250
|
},
|
|
271
251
|
});
|
|
272
252
|
}
|
|
@@ -279,77 +259,71 @@ function attachModifier(TableClass, Modifier, field, options) {
|
|
|
279
259
|
});
|
|
280
260
|
}
|
|
281
261
|
for (const event of Object.getOwnPropertyNames(Modifier.prototype)) {
|
|
282
|
-
if (!(event in ignoredEventNames) &&
|
|
283
|
-
|
|
262
|
+
if (!(event in kinds_1.ignoredEventNames) &&
|
|
263
|
+
(0, kinds_1.isCallable)(Modifier.prototype[event])) {
|
|
284
264
|
if (!metaTable.events.has(event)) {
|
|
285
265
|
metaTable.events.set(event, []);
|
|
286
266
|
}
|
|
287
|
-
metaTable.
|
|
267
|
+
(0, records_1.eventsByKey)(metaTable).get(event)?.push([field, entry]);
|
|
288
268
|
}
|
|
289
269
|
}
|
|
290
270
|
}
|
|
271
|
+
function fieldsModifiedBy(metaTable, modifierClass, fields) {
|
|
272
|
+
return (fields ?? Object.keys(metaTable.fields)).filter((field) => (0, records_1.fieldsByKey)(metaTable)[field]?.find(({ id }) => id === modifierClass.name));
|
|
273
|
+
}
|
|
291
274
|
function getModifiedFields(object, Modifier) {
|
|
292
275
|
const metaTable = (0, common_1.getMetadata)(object.constructor, ModifiersStaticMetadata);
|
|
293
|
-
return
|
|
276
|
+
return fieldsModifiedBy(metaTable, Modifier);
|
|
294
277
|
}
|
|
295
278
|
function unlock(object, Modifier, fields, ...args) {
|
|
296
279
|
const metaTable = (0, common_1.getMetadata)(object.constructor, ModifiersStaticMetadata);
|
|
297
|
-
const usedFields = (
|
|
298
|
-
// Get metadata
|
|
280
|
+
const usedFields = fieldsModifiedBy(metaTable, Modifier, fields);
|
|
299
281
|
const meta = (0, common_1.getMetadata)(object, ModifiersDynamicMetadata);
|
|
300
|
-
// for each field set metadata[field][Modifier] to args
|
|
301
282
|
for (const field of usedFields) {
|
|
302
|
-
meta
|
|
283
|
+
(0, records_1.unlockArgsOf)(meta, field)[Modifier.name] = args;
|
|
303
284
|
if (field in meta.floating) {
|
|
304
|
-
|
|
305
|
-
object[field] = meta.floating[field];
|
|
285
|
+
object[field] = (0, records_1.floatingOf)(meta, field);
|
|
306
286
|
}
|
|
307
287
|
}
|
|
308
288
|
}
|
|
309
289
|
function unlockrequest(table, object, field, modifiers) {
|
|
310
|
-
const args = {};
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
}
|
|
314
|
-
const meta = object.key("_internal").key("meta");
|
|
290
|
+
const args = Object.fromEntries(modifiers.map(({ modifier, args: modArgs }) => [modifier.name, modArgs]));
|
|
291
|
+
const stored = object;
|
|
292
|
+
const meta = stored.key("_internal").key("meta");
|
|
315
293
|
const metaTable = (0, common_1.getMetadata)(table, ModifiersStaticMetadata);
|
|
316
|
-
return (metaTable
|
|
317
|
-
if (isWriteOnly(modifier)) {
|
|
294
|
+
return ((0, records_1.fieldsByKey)(metaTable)[field]?.reduce((data, { id, modifier }) => {
|
|
295
|
+
if ((0, kinds_1.isWriteOnly)(modifier) || !(0, kinds_1.isTwoWay)(modifier)) {
|
|
318
296
|
return data;
|
|
319
297
|
}
|
|
320
298
|
data = modifier.unlockrequest(data, meta.key(id), ...args[id]);
|
|
321
299
|
return data;
|
|
322
|
-
},
|
|
300
|
+
}, stored.key("_internal").key("data").key(field)) || stored.key(field));
|
|
323
301
|
}
|
|
324
302
|
function lock(object, Modifier, fields, ...args) {
|
|
325
303
|
const metaTable = (0, common_1.getMetadata)(object.constructor, ModifiersStaticMetadata);
|
|
326
|
-
const usedFields = (
|
|
327
|
-
// Get metadata
|
|
304
|
+
const usedFields = fieldsModifiedBy(metaTable, Modifier, fields);
|
|
328
305
|
const meta = (0, common_1.getMetadata)(object, ModifiersDynamicMetadata);
|
|
329
|
-
// for each field set metadata[field][Modifier] to args
|
|
330
306
|
for (const field of usedFields) {
|
|
331
307
|
const val = object[field];
|
|
332
|
-
meta
|
|
308
|
+
(0, records_1.unlockArgsOf)(meta, field)[Modifier.name] = args;
|
|
333
309
|
object[field] = val;
|
|
334
310
|
}
|
|
335
311
|
}
|
|
336
312
|
function testValue(object, field, value) {
|
|
337
313
|
const metaTable = (0, common_1.getMetadata)(object.constructor, ModifiersStaticMetadata);
|
|
338
|
-
// Get metadata
|
|
339
314
|
const meta = (0, common_1.getMetadata)(object, ModifiersDynamicMetadata);
|
|
340
|
-
const internal = getInternal(object);
|
|
341
|
-
const val = internal
|
|
342
|
-
for (const { id, modifier, metaRef } of metaTable
|
|
343
|
-
const args = meta
|
|
315
|
+
const internal = (0, records_1.getInternal)(object);
|
|
316
|
+
const val = (0, records_1.dataByKey)(internal)[field];
|
|
317
|
+
for (const { id, modifier, metaRef } of (0, records_1.fieldsByKey)(metaTable)[field]) {
|
|
318
|
+
const args = (0, records_1.unlockArgsOf)(meta, field)[id] ||
|
|
319
|
+
("autolock" in modifier && modifier.autolock ? [] : undefined);
|
|
344
320
|
if (!args)
|
|
345
321
|
return false;
|
|
346
|
-
if (isWriteOnly(modifier)) {
|
|
347
|
-
|
|
348
|
-
return withRef(internal, id, modifier, metaRef, (modifier) => modifier.test(val, value, ...args));
|
|
322
|
+
if ((0, kinds_1.isWriteOnly)(modifier)) {
|
|
323
|
+
return (0, records_1.withRef)(internal, id, modifier, metaRef, (modifier) => modifier.test(val, value, ...args));
|
|
349
324
|
}
|
|
350
|
-
if (
|
|
351
|
-
|
|
352
|
-
return withRef(internal, id, modifier, metaRef, (modifier) => modifier.unlock(val, ...args));
|
|
325
|
+
if ((0, kinds_1.isTwoWay)(modifier) && val !== undefined) {
|
|
326
|
+
return (0, records_1.withRef)(internal, id, modifier, metaRef, (modifier) => modifier.unlock(val, ...args));
|
|
353
327
|
}
|
|
354
328
|
}
|
|
355
329
|
return val === value;
|
|
@@ -359,12 +333,12 @@ function triggerEvent(object, event, ...args) {
|
|
|
359
333
|
if (!metaTable.events.has(event)) {
|
|
360
334
|
return;
|
|
361
335
|
}
|
|
362
|
-
const internal = getInternal(object);
|
|
336
|
+
const internal = (0, records_1.getInternal)(object);
|
|
363
337
|
const eventEntries = metaTable.events.get(event);
|
|
364
338
|
if (!eventEntries)
|
|
365
339
|
return;
|
|
366
340
|
for (const [field, { id, modifier, metaRef }] of eventEntries) {
|
|
367
|
-
withRef(internal, id, modifier, metaRef, (modifier) => modifier[event](object, field, ...args));
|
|
341
|
+
(0, records_1.withRef)(internal, id, modifier, metaRef, (modifier) => modifier[event](object, field, ...args));
|
|
368
342
|
}
|
|
369
343
|
}
|
|
370
344
|
//# sourceMappingURL=common.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/modifiers/common.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/modifiers/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,12 @@ function date_decoder(_key, value) {
|
|
|
22
22
|
? new Date(value.value)
|
|
23
23
|
: value;
|
|
24
24
|
}
|
|
25
|
+
function hasAuthTag(cipher) {
|
|
26
|
+
return "getAuthTag" in cipher;
|
|
27
|
+
}
|
|
28
|
+
function acceptsAuthTag(decipher) {
|
|
29
|
+
return "setAuthTag" in decipher;
|
|
30
|
+
}
|
|
25
31
|
/**
|
|
26
32
|
* Encryption modifier. enables the use of {@link Encrypted} on table fields.
|
|
27
33
|
*
|
|
@@ -38,28 +44,27 @@ class EncryptionModifier extends common_1.TwoWayModifier {
|
|
|
38
44
|
]).toString("base64");
|
|
39
45
|
let authTag;
|
|
40
46
|
try {
|
|
41
|
-
authTag =
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
: undefined;
|
|
45
|
-
}
|
|
46
|
-
catch {
|
|
47
|
-
// Ignore error if getAuthTag is not available
|
|
47
|
+
authTag = hasAuthTag(cipher)
|
|
48
|
+
? cipher.getAuthTag().toString("base64")
|
|
49
|
+
: undefined;
|
|
48
50
|
}
|
|
51
|
+
catch { }
|
|
49
52
|
return [encrypted, iv.toString("base64"), authTag];
|
|
50
53
|
}
|
|
51
54
|
autounlock = true;
|
|
52
55
|
unlock([locked_value, iv_str, authTag]) {
|
|
53
56
|
const decipher = (0, node_crypto_1.createDecipheriv)(this.options.algorithm || "aes-256-gcm", this.options.secretKey, Buffer.from(iv_str, "base64"));
|
|
54
|
-
if (
|
|
57
|
+
if (acceptsAuthTag(decipher) && authTag) {
|
|
55
58
|
decipher.setAuthTag(Buffer.from(authTag, "base64"));
|
|
56
59
|
}
|
|
57
|
-
|
|
60
|
+
const decoded = JSON.parse(Buffer.concat([
|
|
58
61
|
decipher.update(Buffer.from(locked_value, "base64")),
|
|
59
62
|
decipher.final(),
|
|
60
63
|
]).toString("utf8"), date_decoder);
|
|
64
|
+
return decoded;
|
|
61
65
|
}
|
|
62
66
|
unlockrequest(data) {
|
|
67
|
+
// SAFETY: the proxy is returned unchanged and unlockrequest performs no runtime check on LockedType; the cast only erases the static element type to unknown, which every stored value satisfies.
|
|
63
68
|
return data;
|
|
64
69
|
}
|
|
65
70
|
[common_1.MixinSymbol] = class {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../src/modifiers/encryption.ts"],"names":[],"mappings":";;;AACA,sEAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../src/modifiers/encryption.ts"],"names":[],"mappings":"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"}
|
package/dist/modifiers/hash.d.ts
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { MixinSymbol, OneWayModifier } from "./common";
|
|
2
2
|
type Options = {
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Digest to store instead of the default scrypt hash (for supported names
|
|
5
|
+
* refer to {@link createHash}). A digest is fast to guess: set this only for
|
|
6
|
+
* non-secret fingerprints, never for credentials.
|
|
7
|
+
*/
|
|
4
8
|
algorithm?: string;
|
|
5
9
|
};
|
|
10
|
+
type HashInput = Parameters<OneWayModifier<string | undefined>["test"]>[1];
|
|
6
11
|
/**
|
|
7
12
|
* Hash modifier. enables the use of {@link Hashed} on table fields.
|
|
8
13
|
*
|
|
9
|
-
* Hashed fields only contain a hash of the inserted value
|
|
14
|
+
* Hashed fields only contain a hash of the inserted value, by default a scrypt
|
|
15
|
+
* hash in the self-describing form `$scrypt$ln=15,r=8,p=3$<salt>$<key>`.
|
|
10
16
|
* Because of this, you lose the ability to query the information directly.
|
|
11
17
|
* You can test equality using {@link testHash}
|
|
12
18
|
*/
|
|
@@ -15,11 +21,28 @@ export declare class HashModifier extends OneWayModifier<string | undefined, [
|
|
|
15
21
|
salt?: string;
|
|
16
22
|
}, Options> {
|
|
17
23
|
readonly autolock = true;
|
|
18
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Hashes a new value. Assigning the stored hash back keeps it as it is.
|
|
26
|
+
* Blocks the event loop for one scrypt run: a setter and the conversions
|
|
27
|
+
* behind `insert` and `update` are synchronous.
|
|
28
|
+
*/
|
|
29
|
+
lock(locked_value: string | undefined, value: unknown): string | undefined;
|
|
30
|
+
test(locked_value: string | undefined, value: HashInput): boolean;
|
|
31
|
+
/** {@link test} on the thread pool, without blocking the event loop. */
|
|
32
|
+
testAsync(locked_value: string, value: HashInput): Promise<boolean>;
|
|
33
|
+
/**
|
|
34
|
+
* @returns Whether a stored hash differs from what this field writes today. A
|
|
35
|
+
* field with an explicit `algorithm` never reports one: hashing again would
|
|
36
|
+
* give the same digest, or weaken a scrypt hash.
|
|
37
|
+
*/
|
|
38
|
+
isOutdated(locked_value: string): boolean;
|
|
39
|
+
/** Reads the salt now: `this.meta` is bound to a row only synchronously. */
|
|
40
|
+
private plan;
|
|
19
41
|
[MixinSymbol]: {
|
|
20
42
|
new (): {
|
|
21
43
|
/**
|
|
22
|
-
* Test a value against the stored hash.
|
|
44
|
+
* Test a value against the stored hash. Blocks the event loop for one
|
|
45
|
+
* scrypt run: on a server, prefer {@link testHashAsync}.
|
|
23
46
|
*
|
|
24
47
|
* @param field - Name of the field to test against.
|
|
25
48
|
* @param value - Value to hash and test.
|
|
@@ -27,6 +50,25 @@ export declare class HashModifier extends OneWayModifier<string | undefined, [
|
|
|
27
50
|
* @returns Whether the new value is identical to the original or not.
|
|
28
51
|
*/
|
|
29
52
|
testHash<This extends {}, F extends keyof This>(this: This, field: F, value: This[F]): unknown;
|
|
53
|
+
/**
|
|
54
|
+
* Test a value against the stored hash on the thread pool.
|
|
55
|
+
*
|
|
56
|
+
* @param field - Name of the field to test against.
|
|
57
|
+
* @param value - Value to hash and test.
|
|
58
|
+
*
|
|
59
|
+
* @returns Whether the new value is identical to the original or not.
|
|
60
|
+
*/
|
|
61
|
+
testHashAsync<This extends {}, F extends keyof This>(this: This, field: F, value: This[F]): Promise<boolean>;
|
|
62
|
+
/**
|
|
63
|
+
* Tell whether a stored hash needs writing again: it uses an older format
|
|
64
|
+
* or cost. After a successful test, assign the tested value to the field
|
|
65
|
+
* and save the row.
|
|
66
|
+
*
|
|
67
|
+
* @param field - Name of the field to inspect.
|
|
68
|
+
*
|
|
69
|
+
* @returns Whether the stored hash is outdated. False when nothing is stored.
|
|
70
|
+
*/
|
|
71
|
+
isHashOutdated<This extends {}>(this: This, field: keyof This): boolean;
|
|
30
72
|
};
|
|
31
73
|
};
|
|
32
74
|
}
|