@decaf-ts/core 0.1.2 → 0.2.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 +4 -4
- package/dist/core.bundle.min.js +1 -1
- package/dist/esm/core.bundle.min.esm.js +1 -1
- package/lib/esm/identity/decorators.d.ts +4 -10
- package/lib/esm/identity/decorators.js +57 -1
- package/lib/esm/identity/index.js +3 -1
- package/lib/esm/identity/utils.d.ts +2 -0
- package/lib/esm/identity/utils.js +6 -0
- package/lib/esm/index.d.ts +3 -1
- package/lib/esm/index.js +30 -1
- package/lib/esm/interfaces/Builder.js +3 -0
- package/lib/esm/interfaces/Executor.d.ts +3 -1
- package/lib/esm/interfaces/Executor.js +3 -0
- package/lib/esm/interfaces/Observable.js +3 -0
- package/lib/esm/interfaces/Observer.js +3 -0
- package/lib/esm/interfaces/Queriable.d.ts +6 -0
- package/lib/esm/interfaces/Queriable.js +3 -0
- package/lib/esm/interfaces/RawExecutor.d.ts +4 -3
- package/lib/esm/interfaces/RawExecutor.js +3 -0
- package/lib/esm/interfaces/Sequence.d.ts +3 -2
- package/lib/esm/interfaces/Sequence.js +10 -0
- package/lib/esm/interfaces/SequenceOptions.d.ts +9 -1
- package/lib/esm/interfaces/SequenceOptions.js +20 -0
- package/lib/esm/interfaces/index.d.ts +1 -0
- package/lib/esm/interfaces/index.js +10 -1
- package/lib/esm/model/BaseModel.d.ts +2 -3
- package/lib/esm/model/BaseModel.js +28 -1
- package/lib/esm/model/decorators.d.ts +6 -5
- package/lib/esm/model/decorators.js +55 -1
- package/lib/esm/model/index.js +4 -1
- package/lib/esm/persistence/Adapter.d.ts +43 -14
- package/lib/esm/persistence/Adapter.js +153 -1
- package/lib/esm/persistence/constants.d.ts +11 -1
- package/lib/esm/persistence/constants.js +14 -1
- package/lib/esm/persistence/decorators.d.ts +1 -2
- package/lib/esm/persistence/decorators.js +10 -1
- package/lib/esm/persistence/errors.d.ts +4 -0
- package/lib/esm/persistence/errors.js +8 -0
- package/lib/esm/persistence/index.d.ts +1 -0
- package/lib/esm/persistence/index.js +7 -1
- package/lib/esm/persistence/utils.d.ts +2 -2
- package/lib/esm/persistence/utils.js +12 -1
- package/lib/esm/query/Clause.d.ts +43 -0
- package/lib/esm/query/Clause.js +76 -0
- package/lib/esm/query/ClauseFactory.d.ts +71 -0
- package/lib/esm/query/ClauseFactory.js +7 -0
- package/lib/esm/query/Condition.d.ts +75 -0
- package/lib/esm/query/Condition.js +248 -0
- package/lib/esm/query/Query.d.ts +43 -0
- package/lib/esm/query/Query.js +55 -0
- package/lib/esm/query/Statement.d.ts +49 -0
- package/lib/esm/query/Statement.js +163 -0
- package/lib/esm/query/clauses/FromClause.d.ts +45 -0
- package/lib/esm/query/clauses/FromClause.js +60 -0
- package/lib/esm/query/clauses/GroupByClause.d.ts +21 -0
- package/lib/esm/query/clauses/GroupByClause.js +20 -0
- package/lib/esm/query/clauses/InsertClause.d.ts +37 -0
- package/lib/esm/query/clauses/InsertClause.js +56 -0
- package/lib/esm/query/clauses/LimitClause.d.ts +29 -0
- package/lib/esm/query/clauses/LimitClause.js +28 -0
- package/lib/esm/query/clauses/OffsetClause.d.ts +21 -0
- package/lib/esm/query/clauses/OffsetClause.js +20 -0
- package/lib/esm/query/clauses/OrderByClause.d.ts +37 -0
- package/lib/esm/query/clauses/OrderByClause.js +40 -0
- package/lib/esm/query/clauses/SelectClause.d.ts +47 -0
- package/lib/esm/query/clauses/SelectClause.js +63 -0
- package/lib/esm/query/clauses/SelectorBasedClause.d.ts +25 -0
- package/lib/esm/query/clauses/SelectorBasedClause.js +45 -0
- package/lib/esm/query/clauses/ValuesClause.d.ts +21 -0
- package/lib/esm/query/clauses/ValuesClause.js +37 -0
- package/lib/esm/query/clauses/WhereClause.d.ts +46 -0
- package/lib/esm/query/clauses/WhereClause.js +72 -0
- package/lib/esm/query/clauses/index.d.ts +10 -0
- package/lib/esm/query/clauses/index.js +12 -0
- package/lib/esm/query/constants.d.ts +79 -0
- package/lib/esm/query/constants.js +88 -0
- package/lib/esm/query/errors.d.ts +4 -0
- package/lib/esm/query/errors.js +8 -0
- package/lib/esm/query/index.d.ts +11 -0
- package/lib/esm/query/index.js +13 -0
- package/lib/esm/query/options.d.ts +371 -0
- package/lib/esm/query/options.js +3 -0
- package/lib/esm/query/selectors.d.ts +38 -0
- package/lib/esm/query/selectors.js +3 -0
- package/lib/esm/query/types.d.ts +2 -0
- package/lib/esm/query/types.js +3 -0
- package/lib/esm/repository/Repository.d.ts +27 -11
- package/lib/esm/repository/Repository.js +246 -1
- package/lib/esm/repository/constants.js +31 -1
- package/lib/esm/repository/decorators.d.ts +2 -3
- package/lib/esm/repository/decorators.js +27 -1
- package/lib/esm/repository/errors.js +16 -1
- package/lib/esm/repository/index.d.ts +1 -0
- package/lib/esm/repository/index.js +9 -1
- package/lib/esm/repository/injectables.d.ts +5 -0
- package/lib/esm/repository/injectables.js +32 -0
- package/lib/esm/repository/types.js +3 -0
- package/lib/esm/repository/utils.d.ts +4 -3
- package/lib/esm/repository/utils.js +45 -1
- package/lib/esm/validators/ClauseSequenceValidator.d.ts +28 -0
- package/lib/esm/validators/ClauseSequenceValidator.js +95 -0
- package/lib/esm/validators/decorators.d.ts +10 -0
- package/lib/esm/validators/decorators.js +25 -0
- package/lib/esm/validators/index.d.ts +2 -0
- package/lib/esm/validators/index.js +4 -0
- package/lib/identity/decorators.cjs +61 -1
- package/lib/identity/decorators.d.ts +4 -10
- package/lib/identity/index.cjs +19 -1
- package/lib/identity/utils.cjs +9 -0
- package/lib/identity/utils.d.ts +2 -0
- package/lib/index.cjs +47 -1
- package/lib/index.d.ts +3 -1
- package/lib/interfaces/Builder.cjs +4 -1
- package/lib/interfaces/Executor.cjs +4 -1
- package/lib/interfaces/Executor.d.ts +3 -1
- package/lib/interfaces/Observable.cjs +4 -1
- package/lib/interfaces/Observer.cjs +4 -1
- package/lib/interfaces/Queriable.cjs +4 -0
- package/lib/interfaces/Queriable.d.ts +6 -0
- package/lib/interfaces/RawExecutor.cjs +4 -1
- package/lib/interfaces/RawExecutor.d.ts +4 -3
- package/lib/interfaces/Sequence.cjs +11 -1
- package/lib/interfaces/Sequence.d.ts +3 -2
- package/lib/interfaces/SequenceOptions.cjs +23 -1
- package/lib/interfaces/SequenceOptions.d.ts +9 -1
- package/lib/interfaces/index.cjs +26 -1
- package/lib/interfaces/index.d.ts +1 -0
- package/lib/model/BaseModel.cjs +32 -1
- package/lib/model/BaseModel.d.ts +2 -3
- package/lib/model/decorators.cjs +62 -1
- package/lib/model/decorators.d.ts +6 -5
- package/lib/model/index.cjs +20 -1
- package/lib/persistence/Adapter.cjs +157 -1
- package/lib/persistence/Adapter.d.ts +43 -14
- package/lib/persistence/constants.cjs +17 -1
- package/lib/persistence/constants.d.ts +11 -1
- package/lib/persistence/decorators.cjs +13 -1
- package/lib/persistence/decorators.d.ts +1 -2
- package/lib/persistence/errors.cjs +12 -0
- package/lib/persistence/errors.d.ts +4 -0
- package/lib/persistence/index.cjs +23 -1
- package/lib/persistence/index.d.ts +1 -0
- package/lib/persistence/utils.cjs +16 -1
- package/lib/persistence/utils.d.ts +2 -2
- package/lib/query/Clause.cjs +80 -0
- package/lib/query/Clause.d.ts +43 -0
- package/lib/query/ClauseFactory.cjs +11 -0
- package/lib/query/ClauseFactory.d.ts +71 -0
- package/lib/query/Condition.cjs +252 -0
- package/lib/query/Condition.d.ts +75 -0
- package/lib/query/Query.cjs +59 -0
- package/lib/query/Query.d.ts +43 -0
- package/lib/query/Statement.cjs +167 -0
- package/lib/query/Statement.d.ts +49 -0
- package/lib/query/clauses/FromClause.cjs +64 -0
- package/lib/query/clauses/FromClause.d.ts +45 -0
- package/lib/query/clauses/GroupByClause.cjs +24 -0
- package/lib/query/clauses/GroupByClause.d.ts +21 -0
- package/lib/query/clauses/InsertClause.cjs +60 -0
- package/lib/query/clauses/InsertClause.d.ts +37 -0
- package/lib/query/clauses/LimitClause.cjs +32 -0
- package/lib/query/clauses/LimitClause.d.ts +29 -0
- package/lib/query/clauses/OffsetClause.cjs +24 -0
- package/lib/query/clauses/OffsetClause.d.ts +21 -0
- package/lib/query/clauses/OrderByClause.cjs +44 -0
- package/lib/query/clauses/OrderByClause.d.ts +37 -0
- package/lib/query/clauses/SelectClause.cjs +67 -0
- package/lib/query/clauses/SelectClause.d.ts +47 -0
- package/lib/query/clauses/SelectorBasedClause.cjs +49 -0
- package/lib/query/clauses/SelectorBasedClause.d.ts +25 -0
- package/lib/query/clauses/ValuesClause.cjs +41 -0
- package/lib/query/clauses/ValuesClause.d.ts +21 -0
- package/lib/query/clauses/WhereClause.cjs +76 -0
- package/lib/query/clauses/WhereClause.d.ts +46 -0
- package/lib/query/clauses/index.cjs +28 -0
- package/lib/query/clauses/index.d.ts +10 -0
- package/lib/query/constants.cjs +91 -0
- package/lib/query/constants.d.ts +79 -0
- package/lib/query/errors.cjs +12 -0
- package/lib/query/errors.d.ts +4 -0
- package/lib/query/index.cjs +29 -0
- package/lib/query/index.d.ts +11 -0
- package/lib/query/options.cjs +4 -0
- package/lib/query/options.d.ts +371 -0
- package/lib/query/selectors.cjs +4 -0
- package/lib/query/selectors.d.ts +38 -0
- package/lib/query/types.cjs +4 -0
- package/lib/query/types.d.ts +2 -0
- package/lib/repository/Repository.cjs +250 -1
- package/lib/repository/Repository.d.ts +27 -11
- package/lib/repository/constants.cjs +34 -1
- package/lib/repository/decorators.cjs +30 -1
- package/lib/repository/decorators.d.ts +2 -3
- package/lib/repository/errors.cjs +20 -1
- package/lib/repository/index.cjs +25 -1
- package/lib/repository/index.d.ts +1 -0
- package/lib/repository/injectables.cjs +36 -0
- package/lib/repository/injectables.d.ts +5 -0
- package/lib/repository/types.cjs +4 -1
- package/lib/repository/utils.cjs +50 -1
- package/lib/repository/utils.d.ts +6 -0
- package/lib/validators/ClauseSequenceValidator.cjs +98 -0
- package/lib/validators/ClauseSequenceValidator.d.ts +28 -0
- package/lib/validators/decorators.cjs +28 -0
- package/lib/validators/decorators.d.ts +10 -0
- package/lib/validators/index.cjs +20 -0
- package/lib/validators/index.d.ts +2 -0
- package/package.json +14 -11
package/lib/repository/utils.cjs
CHANGED
|
@@ -1 +1,50 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bootRepository = bootRepository;
|
|
4
|
+
exports.getTableName = getTableName;
|
|
5
|
+
exports.generateInjectableNameForRepository = generateInjectableNameForRepository;
|
|
6
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
7
|
+
const injectable_decorators_1 = require("@decaf-ts/injectable-decorators");
|
|
8
|
+
const Repository_1 = require("./Repository.cjs");
|
|
9
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
10
|
+
const Adapter_1 = require("../persistence/Adapter.cjs");
|
|
11
|
+
const constants_1 = require("../persistence/constants.cjs");
|
|
12
|
+
const decorator_validation_2 = require("@decaf-ts/decorator-validation");
|
|
13
|
+
function bootRepository(model, original) {
|
|
14
|
+
const repo = Repository_1.Repository.forModel(model);
|
|
15
|
+
console.log(repo);
|
|
16
|
+
const injectableName = Reflect.getMetadata(Repository_1.Repository.key(db_decorators_1.DBKeys.REPOSITORY), model);
|
|
17
|
+
if (!injectableName)
|
|
18
|
+
throw new db_decorators_1.InternalError(`No Repository defined for model ${model.constructor.name}`);
|
|
19
|
+
const flavour = Reflect.getMetadata(Adapter_1.Adapter.key(constants_1.PersistenceKeys.ADAPTER), original);
|
|
20
|
+
if (!flavour)
|
|
21
|
+
throw new db_decorators_1.InternalError(`Could not find persistence adapter definition for repository ${original.name}`);
|
|
22
|
+
try {
|
|
23
|
+
const adapter = Adapter_1.Adapter.get(flavour);
|
|
24
|
+
return injectable_decorators_1.Injectables.get(injectableName, adapter);
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
throw new db_decorators_1.InternalError(e);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function getTableName(model) {
|
|
31
|
+
const metadata = Reflect.getMetadata(Adapter_1.Adapter.key(constants_1.PersistenceKeys.TABLE), model instanceof decorator_validation_2.Model ? model.constructor : model);
|
|
32
|
+
if (metadata) {
|
|
33
|
+
return metadata;
|
|
34
|
+
}
|
|
35
|
+
if (model instanceof decorator_validation_2.Model) {
|
|
36
|
+
return model.constructor.name;
|
|
37
|
+
}
|
|
38
|
+
return model.name;
|
|
39
|
+
}
|
|
40
|
+
function generateInjectableNameForRepository(model, flavour) {
|
|
41
|
+
if (!flavour) {
|
|
42
|
+
const key = Adapter_1.Adapter.key(constants_1.PersistenceKeys.ADAPTER);
|
|
43
|
+
flavour = Reflect.getMetadata(key, model instanceof decorator_validation_2.Model ? model.constructor : model);
|
|
44
|
+
if (!flavour)
|
|
45
|
+
throw new db_decorators_1.InternalError(`Could not retrieve flavour from model ${model instanceof decorator_validation_2.Model ? model.constructor.name : model.name}`);
|
|
46
|
+
}
|
|
47
|
+
return (0, decorator_validation_1.sf)(constants_1.PersistenceKeys.INJECTABLE, flavour, getTableName(model));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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ZSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDdEUsQ0FBQyIsImZpbGUiOiJyZXBvc2l0b3J5L3V0aWxzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREJLZXlzLCBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlcyB9IGZyb20gXCJAZGVjYWYtdHMvaW5qZWN0YWJsZS1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIi4vUmVwb3NpdG9yeVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IsIHNmIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQWRhcHRlciB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZS9BZGFwdGVyXCI7XG5pbXBvcnQgeyBQZXJzaXN0ZW5jZUtleXMgfSBmcm9tIFwiLi4vcGVyc2lzdGVuY2UvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGJvb3RSZXBvc2l0b3J5PFQgZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBDb25zdHJ1Y3RvcjxUPixcbiAgb3JpZ2luYWw6IENvbnN0cnVjdG9yPFJlcG9zaXRvcnk8VD4+XG4pOiBSZXBvc2l0b3J5PFQ+IHtcbiAgY29uc3QgcmVwbyA9IFJlcG9zaXRvcnkuZm9yTW9kZWwobW9kZWwpO1xuICBjb25zb2xlLmxvZyhyZXBvKTtcbiAgY29uc3QgaW5qZWN0YWJsZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXG4gICAgUmVwb3NpdG9yeS5rZXkoREJLZXlzLlJFUE9TSVRPUlkpLFxuICAgIG1vZGVsXG4gICk7XG4gIGlmICghaW5qZWN0YWJsZU5hbWUpXG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICBgTm8gUmVwb3NpdG9yeSBkZWZpbmVkIGZvciBtb2RlbCAke21vZGVsLmNvbnN0cnVjdG9yLm5hbWV9YFxuICAgICk7XG4gIGNvbnN0IGZsYXZvdXIgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFxuICAgIEFkYXB0ZXIua2V5KFBlcnNpc3RlbmNlS2V5cy5BREFQVEVSKSxcbiAgICBvcmlnaW5hbFxuICApO1xuICBpZiAoIWZsYXZvdXIpXG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICBgQ291bGQgbm90IGZpbmQgcGVyc2lzdGVuY2UgYWRhcHRlciBkZWZpbml0aW9uIGZvciByZXBvc2l0b3J5ICR7b3JpZ2luYWwubmFtZX1gXG4gICAgKTtcbiAgdHJ5IHtcbiAgICBjb25zdCBhZGFwdGVyID0gQWRhcHRlci5nZXQoZmxhdm91cik7XG4gICAgcmV0dXJuIEluamVjdGFibGVzLmdldChpbmplY3RhYmxlTmFtZSwgYWRhcHRlcikgYXMgUmVwb3NpdG9yeTxUPjtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRhYmxlTmFtZTxUIGV4dGVuZHMgTW9kZWw+KG1vZGVsOiBUIHwgQ29uc3RydWN0b3I8VD4pIHtcbiAgY29uc3QgbWV0YWRhdGEgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFxuICAgIEFkYXB0ZXIua2V5KFBlcnNpc3RlbmNlS2V5cy5UQUJMRSksXG4gICAgbW9kZWwgaW5zdGFuY2VvZiBNb2RlbCA/IG1vZGVsLmNvbnN0cnVjdG9yIDogbW9kZWxcbiAgKTtcbiAgaWYgKG1ldGFkYXRhKSB7XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xuICB9XG4gIGlmIChtb2RlbCBpbnN0YW5jZW9mIE1vZGVsKSB7XG4gICAgcmV0dXJuIG1vZGVsLmNvbnN0cnVjdG9yLm5hbWU7XG4gIH1cbiAgcmV0dXJuIG1vZGVsLm5hbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUluamVjdGFibGVOYW1lRm9yUmVwb3NpdG9yeTxUIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogQ29uc3RydWN0b3I8VD4gfCBULFxuICBmbGF2b3VyPzogc3RyaW5nXG4pIHtcbiAgaWYgKCFmbGF2b3VyKSB7XG4gICAgY29uc3Qga2V5ID0gQWRhcHRlci5rZXkoUGVyc2lzdGVuY2VLZXlzLkFEQVBURVIpO1xuICAgIGZsYXZvdXIgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFxuICAgICAga2V5LFxuICAgICAgbW9kZWwgaW5zdGFuY2VvZiBNb2RlbCA/IG1vZGVsLmNvbnN0cnVjdG9yIDogbW9kZWxcbiAgICApO1xuICAgIGlmICghZmxhdm91cilcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgQ291bGQgbm90IHJldHJpZXZlIGZsYXZvdXIgZnJvbSBtb2RlbCAke21vZGVsIGluc3RhbmNlb2YgTW9kZWwgPyBtb2RlbC5jb25zdHJ1Y3Rvci5uYW1lIDogbW9kZWwubmFtZX1gXG4gICAgICApO1xuICB9XG4gIHJldHVybiBzZihQZXJzaXN0ZW5jZUtleXMuSU5KRUNUQUJMRSwgZmxhdm91ciwgZ2V0VGFibGVOYW1lKG1vZGVsKSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Repository } from "./Repository";
|
|
2
|
+
import { Constructor } from "@decaf-ts/decorator-validation";
|
|
3
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
4
|
+
export declare function bootRepository<T extends Model>(model: Constructor<T>, original: Constructor<Repository<T>>): Repository<T>;
|
|
5
|
+
export declare function getTableName<T extends Model>(model: T | Constructor<T>): any;
|
|
6
|
+
export declare function generateInjectableNameForRepository<T extends Model>(model: Constructor<T> | T, flavour?: string): string;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ClauseSequenceValidator = void 0;
|
|
13
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
14
|
+
const reflection_1 = require("@decaf-ts/reflection");
|
|
15
|
+
const Clause_1 = require("../query/Clause.cjs");
|
|
16
|
+
const query_1 = require("../query/index.cjs");
|
|
17
|
+
const persistence_1 = require("../persistence/index.cjs");
|
|
18
|
+
/**
|
|
19
|
+
* @summary Validates a {@link Sequence}'s {@link Clause}s
|
|
20
|
+
*
|
|
21
|
+
* @param {string} [message]
|
|
22
|
+
*
|
|
23
|
+
* @class ClauseSequenceValidator
|
|
24
|
+
* @extends Validator
|
|
25
|
+
*
|
|
26
|
+
* @category Validation
|
|
27
|
+
* @subcategory Validators
|
|
28
|
+
*/
|
|
29
|
+
let ClauseSequenceValidator = class ClauseSequenceValidator extends decorator_validation_1.Validator {
|
|
30
|
+
constructor(message = decorator_validation_1.DEFAULT_ERROR_MESSAGES[persistence_1.PersistenceKeys.CLAUSE_SEQUENCE]) {
|
|
31
|
+
super(message);
|
|
32
|
+
}
|
|
33
|
+
validateSequence(clauses, message) {
|
|
34
|
+
return query_1.MandatoryPriorities.every((p) => !!clauses.find((c) => c.getPriority() === p))
|
|
35
|
+
? undefined
|
|
36
|
+
: this.getMessage((0, decorator_validation_1.sf)(message || this.message, "Missing required Clause Priorities"));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @summary Verifies the model for errors
|
|
40
|
+
* @param {string} value
|
|
41
|
+
* @param {string} [message]
|
|
42
|
+
*
|
|
43
|
+
* @return Errors
|
|
44
|
+
*
|
|
45
|
+
* @override
|
|
46
|
+
*
|
|
47
|
+
* @see Validator
|
|
48
|
+
*/
|
|
49
|
+
hasErrors(value, message) {
|
|
50
|
+
try {
|
|
51
|
+
if (!value ||
|
|
52
|
+
!Array.isArray(value) ||
|
|
53
|
+
!value.length ||
|
|
54
|
+
!value.every((e) => e instanceof Clause_1.Clause))
|
|
55
|
+
return this.getMessage((0, decorator_validation_1.sf)(message || this.message, "No or invalid Clauses found"));
|
|
56
|
+
const clauses = value;
|
|
57
|
+
const clauseErrors = clauses.reduce((accum, c) => {
|
|
58
|
+
const errs = c.hasErrors();
|
|
59
|
+
if (errs)
|
|
60
|
+
if (accum)
|
|
61
|
+
accum += (0, decorator_validation_1.sf)("\nClause {0}: {1}", c.constructor.name, errs.toString());
|
|
62
|
+
else
|
|
63
|
+
accum = (0, decorator_validation_1.sf)("Clause {0}: {1}", c.constructor.name, errs.toString());
|
|
64
|
+
return accum;
|
|
65
|
+
}, undefined);
|
|
66
|
+
if (clauseErrors)
|
|
67
|
+
return this.getMessage((0, decorator_validation_1.sf)(message || this.message, clauseErrors.toString()));
|
|
68
|
+
const verifyPriority = () => {
|
|
69
|
+
const priorities = clauses.map((c) => c.getPriority());
|
|
70
|
+
const allUnique = new Set(priorities).size === priorities.length;
|
|
71
|
+
if (!allUnique)
|
|
72
|
+
return "Not all clauses have unique priorities";
|
|
73
|
+
const sorted = priorities.sort((a, b) => {
|
|
74
|
+
return b - a;
|
|
75
|
+
});
|
|
76
|
+
return (0, reflection_1.isEqual)(priorities, sorted)
|
|
77
|
+
? true
|
|
78
|
+
: "Clauses are not properly sorted";
|
|
79
|
+
};
|
|
80
|
+
const priorityCheck = verifyPriority();
|
|
81
|
+
if (priorityCheck !== true)
|
|
82
|
+
return this.getMessage((0, decorator_validation_1.sf)(message || this.message, "Invalid prioritization"));
|
|
83
|
+
const sequenceCheck = this.validateSequence(clauses, message);
|
|
84
|
+
if (sequenceCheck)
|
|
85
|
+
return this.getMessage((0, decorator_validation_1.sf)(message || this.message, "Invalid sequence"));
|
|
86
|
+
}
|
|
87
|
+
catch (e) {
|
|
88
|
+
throw new query_1.QueryError((0, decorator_validation_1.sf)("Failed to verify clause sequence {0}: {1}", value, e));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
exports.ClauseSequenceValidator = ClauseSequenceValidator;
|
|
93
|
+
exports.ClauseSequenceValidator = ClauseSequenceValidator = __decorate([
|
|
94
|
+
(0, decorator_validation_1.validator)(persistence_1.PersistenceKeys.CLAUSE_SEQUENCE),
|
|
95
|
+
__metadata("design:paramtypes", [String])
|
|
96
|
+
], ClauseSequenceValidator);
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0b3JzL0NsYXVzZVNlcXVlbmNlVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHlFQUt3QztBQUN4QyxxREFBK0M7QUFDL0MsNENBQXlDO0FBQ3pDLG9DQUEyRDtBQUMzRCxnREFBaUQ7QUFFakQ7Ozs7Ozs7Ozs7R0FVRztBQUVJLElBQU0sdUJBQXVCLEdBQTdCLE1BQU0sdUJBQXdCLFNBQVEsZ0NBQVM7SUFDcEQsWUFDRSxVQUFrQiw2Q0FBc0IsQ0FBQyw2QkFBZSxDQUFDLGVBQWUsQ0FBQztRQUV6RSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVPLGdCQUFnQixDQUN0QixPQUFzQixFQUN0QixPQUFnQjtRQUVoQixPQUFPLDJCQUFtQixDQUFDLEtBQUssQ0FDOUIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQ3BEO1lBQ0MsQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FDYixJQUFBLHlCQUFFLEVBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsb0NBQW9DLENBQUMsQ0FDbEUsQ0FBQztJQUNSLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksU0FBUyxDQUFDLEtBQVUsRUFBRSxPQUFnQjtRQUMzQyxJQUFJLENBQUM7WUFDSCxJQUNFLENBQUMsS0FBSztnQkFDTixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUNyQixDQUFDLEtBQUssQ0FBQyxNQUFNO2dCQUNiLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLGVBQU0sQ0FBQztnQkFFeEMsT0FBTyxJQUFJLENB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Q29udGVudCI6WyJpbXBvcnQge1xuICBERUZBVUxUX0VSUk9SX01FU1NBR0VTLFxuICBzZixcbiAgdmFsaWRhdG9yLFxuICBWYWxpZGF0b3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB7IENsYXVzZSB9IGZyb20gXCIuLi9xdWVyeS9DbGF1c2VcIjtcbmltcG9ydCB7IE1hbmRhdG9yeVByaW9yaXRpZXMsIFF1ZXJ5RXJyb3IgfSBmcm9tIFwiLi4vcXVlcnlcIjtcbmltcG9ydCB7IFBlcnNpc3RlbmNlS2V5cyB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZVwiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBhIHtAbGluayBTZXF1ZW5jZX0ncyB7QGxpbmsgQ2xhdXNlfXNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdXG4gKlxuICogQGNsYXNzIENsYXVzZVNlcXVlbmNlVmFsaWRhdG9yXG4gKiBAZXh0ZW5kcyBWYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICogQHN1YmNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihQZXJzaXN0ZW5jZUtleXMuQ0xBVVNFX1NFUVVFTkNFKVxuZXhwb3J0IGNsYXNzIENsYXVzZVNlcXVlbmNlVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgbWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFU1tQZXJzaXN0ZW5jZUtleXMuQ0xBVVNFX1NFUVVFTkNFXSxcbiAgKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlU2VxdWVuY2UoXG4gICAgY2xhdXNlczogQ2xhdXNlPGFueT5bXSxcbiAgICBtZXNzYWdlPzogc3RyaW5nLFxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBNYW5kYXRvcnlQcmlvcml0aWVzLmV2ZXJ5KFxuICAgICAgKHApID0+ICEhY2xhdXNlcy5maW5kKChjKSA9PiBjLmdldFByaW9yaXR5KCkgPT09IHApLFxuICAgIClcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IHRoaXMuZ2V0TWVzc2FnZShcbiAgICAgICAgICBzZihtZXNzYWdlIHx8IHRoaXMubWVzc2FnZSwgXCJNaXNzaW5nIHJlcXVpcmVkIENsYXVzZSBQcmlvcml0aWVzXCIpLFxuICAgICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZlcmlmaWVzIHRoZSBtb2RlbCBmb3IgZXJyb3JzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdXG4gICAqXG4gICAqIEByZXR1cm4gRXJyb3JzXG4gICAqXG4gICAqIEBvdmVycmlkZVxuICAgKlxuICAgKiBAc2VlIFZhbGlkYXRvclxuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyh2YWx1ZTogYW55LCBtZXNzYWdlPzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICB0cnkge1xuICAgICAgaWYgKFxuICAgICAgICAhdmFsdWUgfHxcbiAgICAgICAgIUFycmF5LmlzQXJyYXkodmFsdWUpIHx8XG4gICAgICAgICF2YWx1ZS5sZW5ndGggfHxcbiAgICAgICAgIXZhbHVlLmV2ZXJ5KChlKSA9PiBlIGluc3RhbmNlb2YgQ2xhdXNlKVxuICAgICAgKVxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKFxuICAgICAgICAgIHNmKG1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlLCBcIk5vIG9yIGludmFsaWQgQ2xhdXNlcyBmb3VuZFwiKSxcbiAgICAgICAgKTtcblxuICAgICAgY29uc3QgY2xhdXNlczogQ2xhdXNlPGFueT5bXSA9IHZhbHVlIGFzIENsYXVzZTxhbnk+W107XG5cbiAgICAgIGNvbnN0IGNsYXVzZUVycm9ycyA9IGNsYXVzZXMucmVkdWNlKFxuICAgICAgICAoYWNjdW06IHN0cmluZyB8IHVuZGVmaW5lZCwgYzogQ2xhdXNlPGFueT4pID0+IHtcbiAgICAgICAgICBjb25zdCBlcnJzID0gYy5oYXNFcnJvcnMoKTtcbiAgICAgICAgICBpZiAoZXJycylcbiAgICAgICAgICAgIGlmIChhY2N1bSlcbiAgICAgICAgICAgICAgYWNjdW0gKz0gc2YoXG4gICAgICAgICAgICAgICAgXCJcXG5DbGF1c2UgezB9OiB7MX1cIixcbiAgICAgICAgICAgICAgICBjLmNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICAgICAgICAgICAgZXJycy50b1N0cmluZygpLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICBhY2N1bSA9IHNmKFxuICAgICAgICAgICAgICAgIFwiQ2xhdXNlIHswfTogezF9XCIsXG4gICAgICAgICAgICAgICAgYy5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgICAgICAgICAgICAgIGVycnMudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICAgIH0sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChjbGF1c2VFcnJvcnMpXG4gICAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UoXG4gICAgICAgICAgc2YobWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UsIGNsYXVzZUVycm9ycy50b1N0cmluZygpKSxcbiAgICAgICAgKTtcblxuICAgICAgY29uc3QgdmVyaWZ5UHJpb3JpdHkgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHByaW9yaXRpZXMgPSBjbGF1c2VzLm1hcCgoYykgPT4gYy5nZXRQcmlvcml0eSgpKTtcbiAgICAgICAgY29uc3QgYWxsVW5pcXVlID0gbmV3IFNldChwcmlvcml0aWVzKS5zaXplID09PSBwcmlvcml0aWVzLmxlbmd0aDtcbiAgICAgICAgaWYgKCFhbGxVbmlxdWUpIHJldHVybiBcIk5vdCBhbGwgY2xhdXNlcyAgaGF2ZSB1bmlxdWUgcHJpb3JpdGllc1wiO1xuICAgICAgICBjb25zdCBzb3J0ZWQgPSBwcmlvcml0aWVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICByZXR1cm4gYiAtIGE7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBpc0VxdWFsKHByaW9yaXRpZXMsIHNvcnRlZClcbiAgICAgICAgICA/IHRydWVcbiAgICAgICAgICA6IFwiQ2xhdXNlcyAgYXJlIG5vdCBwcm9wZXJseSBzb3J0ZWRcIjtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHByaW9yaXR5Q2hlY2sgPSB2ZXJpZnlQcmlvcml0eSgpO1xuICAgICAgaWYgKHByaW9yaXR5Q2hlY2sgIT09IHRydWUpXG4gICAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UoXG4gICAgICAgICAgc2YobWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UsIFwiSW52YWxpZCBwcmlvcml0aXphdGlvblwiKSxcbiAgICAgICAgKTtcblxuICAgICAgY29uc3Qgc2VxdWVuY2VDaGVjayA9IHRoaXMudmFsaWRhdGVTZXF1ZW5jZShjbGF1c2VzLCBtZXNzYWdlKTtcbiAgICAgIGlmIChzZXF1ZW5jZUNoZWNrKVxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKHNmKG1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlLCBcIkludmFsaWQgc2VxdWVuY2VcIikpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXG4gICAgICAgIHNmKFwiRmFpbGVkIHRvIHZlcmlmeSBjbGF1c2Ugc2VxdWVuY2UgezB9OiB7MX1cIiwgdmFsdWUsIGUpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Validator } from "@decaf-ts/decorator-validation";
|
|
2
|
+
/**
|
|
3
|
+
* @summary Validates a {@link Sequence}'s {@link Clause}s
|
|
4
|
+
*
|
|
5
|
+
* @param {string} [message]
|
|
6
|
+
*
|
|
7
|
+
* @class ClauseSequenceValidator
|
|
8
|
+
* @extends Validator
|
|
9
|
+
*
|
|
10
|
+
* @category Validation
|
|
11
|
+
* @subcategory Validators
|
|
12
|
+
*/
|
|
13
|
+
export declare class ClauseSequenceValidator extends Validator {
|
|
14
|
+
constructor(message?: string);
|
|
15
|
+
private validateSequence;
|
|
16
|
+
/**
|
|
17
|
+
* @summary Verifies the model for errors
|
|
18
|
+
* @param {string} value
|
|
19
|
+
* @param {string} [message]
|
|
20
|
+
*
|
|
21
|
+
* @return Errors
|
|
22
|
+
*
|
|
23
|
+
* @override
|
|
24
|
+
*
|
|
25
|
+
* @see Validator
|
|
26
|
+
*/
|
|
27
|
+
hasErrors(value: any, message?: string): string | undefined;
|
|
28
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clauseSequence = clauseSequence;
|
|
4
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
5
|
+
const persistence_1 = require("../persistence/index.cjs");
|
|
6
|
+
Object.defineProperty(decorator_validation_1.DEFAULT_ERROR_MESSAGES, persistence_1.PersistenceKeys.CLAUSE_SEQUENCE, {
|
|
7
|
+
value: "Invalid clause sequence: {0}",
|
|
8
|
+
});
|
|
9
|
+
Object.defineProperty(decorator_validation_1.ValidationKeys, "CLAUSE_SEQUENCE", {
|
|
10
|
+
value: persistence_1.PersistenceKeys.CLAUSE_SEQUENCE,
|
|
11
|
+
});
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
* @param {string} [message]
|
|
15
|
+
*
|
|
16
|
+
* @function clauseSequence
|
|
17
|
+
*
|
|
18
|
+
* @category Decorators
|
|
19
|
+
* @subcategory Validation
|
|
20
|
+
*/
|
|
21
|
+
function clauseSequence(message) {
|
|
22
|
+
return (0, decorator_validation_1.propMetadata)(decorator_validation_1.Validation.key(decorator_validation_1.ValidationKeys.REQUIRED), {
|
|
23
|
+
message: message ||
|
|
24
|
+
decorator_validation_1.DEFAULT_ERROR_MESSAGES[persistence_1.PersistenceKeys.CLAUSE_SEQUENCE],
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0b3JzL2RlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEwQkEsd0NBV0M7QUFyQ0QseUVBTXdDO0FBQ3hDLGdEQUFpRDtBQUVqRCxNQUFNLENBQUMsY0FBYyxDQUFDLDZDQUFzQixFQUFFLDZCQUFlLENBQUMsZUFBZSxFQUFFO0lBQzdFLEtBQUssRUFBRSw4QkFBOEI7Q0FDdEMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLGNBQWMsQ0FBQyxxQ0FBYyxFQUFFLGlCQUFpQixFQUFFO0lBQ3ZELEtBQUssRUFBRSw2QkFBZSxDQUFDLGVBQWU7Q0FDdkMsQ0FBQyxDQUFDO0FBRUg7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixjQUFjLENBQUMsT0FBZ0I7SUFDN0MsT0FBTyxJQUFBLG1DQUFZLEVBQ2pCLGlDQUFVLENBQUMsR0FBRyxDQUFDLHFDQUFjLENBQUMsUUFBUSxDQUFDLEVBQ3ZDO1FBQ0UsT0FBTyxFQUNMLE9BQU87WUFDTCw2Q0FBOEIsQ0FDOUIsNkJBQWUsQ0FBQyxlQUFzQixDQUM1QjtLQUNmLENBQ0YsQ0FBQztBQUNKLENBQUMiLCJmaWxlIjoidmFsaWRhdG9ycy9kZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyxcbiAgcHJvcE1ldGFkYXRhLFxuICBWYWxpZGF0aW9uLFxuICBWYWxpZGF0aW9uS2V5cyxcbiAgVmFsaWRhdGlvbk1ldGFkYXRhLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBQZXJzaXN0ZW5jZUtleXMgfSBmcm9tIFwiLi4vcGVyc2lzdGVuY2VcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KERFRkFVTFRfRVJST1JfTUVTU0FHRVMsIFBlcnNpc3RlbmNlS2V5cy5DTEFVU0VfU0VRVUVOQ0UsIHtcbiAgdmFsdWU6IFwiSW52YWxpZCBjbGF1c2Ugc2VxdWVuY2U6IHswfVwiLFxufSk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShWYWxpZGF0aW9uS2V5cywgXCJDTEFVU0VfU0VRVUVOQ0VcIiwge1xuICB2YWx1ZTogUGVyc2lzdGVuY2VLZXlzLkNMQVVTRV9TRVFVRU5DRSxcbn0pO1xuXG4vKipcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdXG4gKlxuICogQGZ1bmN0aW9uIGNsYXVzZVNlcXVlbmNlXG4gKlxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqIEBzdWJjYXRlZ29yeSBWYWxpZGF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGF1c2VTZXF1ZW5jZShtZXNzYWdlPzogc3RyaW5nKSB7XG4gIHJldHVybiBwcm9wTWV0YWRhdGE8VmFsaWRhdGlvbk1ldGFkYXRhPihcbiAgICBWYWxpZGF0aW9uLmtleShWYWxpZGF0aW9uS2V5cy5SRVFVSVJFRCksXG4gICAge1xuICAgICAgbWVzc2FnZTpcbiAgICAgICAgbWVzc2FnZSB8fFxuICAgICAgICAoKERFRkFVTFRfRVJST1JfTUVTU0FHRVMgYXMgYW55KVtcbiAgICAgICAgICBQZXJzaXN0ZW5jZUtleXMuQ0xBVVNFX1NFUVVFTkNFIGFzIGFueVxuICAgICAgICBdIGFzIHN0cmluZyksXG4gICAgfVxuICApO1xufVxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./decorators.cjs"), exports);
|
|
18
|
+
__exportStar(require("./ClauseSequenceValidator.cjs"), exports);
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBNEI7QUFDNUIsNERBQXlDIiwiZmlsZSI6InZhbGlkYXRvcnMvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0NsYXVzZVNlcXVlbmNlVmFsaWRhdG9yXCIiXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "template for ts projects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
"lint": "eslint .",
|
|
22
22
|
"lint-fix": "eslint --fix ./src/*",
|
|
23
23
|
"test:circular": "dpdm -T --no-warning --no-tree ./src/index.ts",
|
|
24
|
-
"prepare-release": "npm run lint-fix && npm run build:prod && npm run
|
|
24
|
+
"prepare-release": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
|
|
25
25
|
"release": "./bin/tag-release.sh",
|
|
26
26
|
"clean-publish": "npx clean-publish",
|
|
27
|
-
"coverage": "npm run test:all && jest-coverage-badges
|
|
27
|
+
"coverage": "npm run test:all && cd workdocs && jest-coverage-badges",
|
|
28
28
|
"docs": "npx rimraf ./docs && mkdir docs && npm run do-install -- better-docs taffydb && gulp docs; npm remove better-docs taffydb"
|
|
29
29
|
},
|
|
30
30
|
"repository": {
|
|
@@ -65,36 +65,39 @@
|
|
|
65
65
|
"homepage": "https://github.com/decaf-ts/ts-workspace#readme",
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@decaf-ts/transactional-decorators": "latest",
|
|
68
|
+
"@eslint/js": "^9.13.0",
|
|
68
69
|
"@types/jest": "^29.5.13",
|
|
69
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
70
|
+
"@typescript-eslint/eslint-plugin": "^8.10.0",
|
|
70
71
|
"clean-publish": "^5.0.0",
|
|
71
72
|
"dpdm": "^3.14.0",
|
|
72
|
-
"eslint": "^
|
|
73
|
+
"eslint": "^9.13.0",
|
|
73
74
|
"eslint-config-prettier": "^9.1.0",
|
|
74
|
-
"eslint-plugin-prettier": "^5.1
|
|
75
|
+
"eslint-plugin-prettier": "^5.2.1",
|
|
76
|
+
"globals": "^15.11.0",
|
|
75
77
|
"gulp": "^5.0.0",
|
|
76
78
|
"gulp-if": "^3.0.0",
|
|
77
79
|
"gulp-rename": "^2.0.0",
|
|
78
80
|
"gulp-replace": "^1.1.4",
|
|
79
81
|
"gulp-run-command": "^0.0.10",
|
|
80
|
-
"gulp-sourcemaps": "^
|
|
82
|
+
"gulp-sourcemaps": "^2.6.5",
|
|
81
83
|
"gulp-typescript": "^6.0.0-alpha.1",
|
|
82
84
|
"gulp-uglify": "^3.0.2",
|
|
83
85
|
"jest": "^29.7.0",
|
|
84
|
-
"jest-coverage-badges": "^1.
|
|
86
|
+
"jest-coverage-badges": "^1.0.0",
|
|
85
87
|
"jest-junit": "^16.0.0",
|
|
86
|
-
"jsdoc": "^4.0.
|
|
88
|
+
"jsdoc": "^4.0.4",
|
|
87
89
|
"jsdoc-mermaid": "^1.0.0",
|
|
88
90
|
"markdown-include": "^0.4.3",
|
|
89
91
|
"merge-stream": "^2.0.0",
|
|
90
92
|
"nodemon": "^3.1.7",
|
|
91
|
-
"npm-check-updates": "^17.1.
|
|
93
|
+
"npm-check-updates": "^17.1.4",
|
|
92
94
|
"prettier": "^3.3.3",
|
|
93
95
|
"rimraf": "^6.0.1",
|
|
94
96
|
"ts-jest": "^29.2.5",
|
|
95
97
|
"ts-loader": "^9.5.1",
|
|
96
98
|
"ts-node": "^10.9.2",
|
|
97
|
-
"typescript": "^5.6.
|
|
99
|
+
"typescript": "^5.6.3",
|
|
100
|
+
"typescript-eslint": "^8.10.0",
|
|
98
101
|
"vinyl-named": "^1.1.0",
|
|
99
102
|
"webpack-stream": "^7.0.0"
|
|
100
103
|
},
|