@venizia/ignis-kernel 0.2.0-44 → 0.2.0-45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/base/repositories/core/abstract.d.ts.map +1 -1
- package/dist/cjs/base/repositories/core/abstract.js +6 -4
- package/dist/cjs/base/repositories/core/abstract.js.map +1 -1
- package/dist/cjs/base/repositories/index.d.ts +0 -1
- package/dist/cjs/base/repositories/index.d.ts.map +1 -1
- package/dist/cjs/base/repositories/index.js +0 -1
- package/dist/cjs/base/repositories/index.js.map +1 -1
- package/dist/cjs/repository.d.ts +4 -0
- package/dist/cjs/repository.d.ts.map +1 -1
- package/dist/cjs/repository.js +14 -1
- package/dist/cjs/repository.js.map +1 -1
- package/dist/cjs/utilities/error.utility.js +4 -4
- package/dist/cjs/utilities/error.utility.js.map +1 -1
- package/dist/esm/base/repositories/core/abstract.d.ts.map +1 -1
- package/dist/esm/base/repositories/core/abstract.js +3 -1
- package/dist/esm/base/repositories/core/abstract.js.map +1 -1
- package/dist/esm/base/repositories/index.d.ts +0 -1
- package/dist/esm/base/repositories/index.d.ts.map +1 -1
- package/dist/esm/base/repositories/index.js +0 -1
- package/dist/esm/base/repositories/index.js.map +1 -1
- package/dist/esm/package.json +6 -0
- package/dist/esm/repository.d.ts +4 -0
- package/dist/esm/repository.d.ts.map +1 -1
- package/dist/esm/repository.js +6 -0
- package/dist/esm/repository.js.map +1 -1
- package/dist/esm/utilities/error.utility.js +1 -1
- package/dist/esm/utilities/error.utility.js.map +1 -1
- package/package.json +4 -4
- package/dist/cjs/base/repositories/sqls/index.d.ts +0 -2
- package/dist/cjs/base/repositories/sqls/index.d.ts.map +0 -1
- package/dist/cjs/base/repositories/sqls/index.js +0 -18
- package/dist/cjs/base/repositories/sqls/index.js.map +0 -1
- package/dist/cjs/base/repositories/sqls/recursive-tree.d.ts +0 -56
- package/dist/cjs/base/repositories/sqls/recursive-tree.d.ts.map +0 -1
- package/dist/cjs/base/repositories/sqls/recursive-tree.js +0 -148
- package/dist/cjs/base/repositories/sqls/recursive-tree.js.map +0 -1
- package/dist/esm/base/repositories/sqls/index.d.ts +0 -2
- package/dist/esm/base/repositories/sqls/index.d.ts.map +0 -1
- package/dist/esm/base/repositories/sqls/index.js +0 -2
- package/dist/esm/base/repositories/sqls/index.js.map +0 -1
- package/dist/esm/base/repositories/sqls/recursive-tree.d.ts +0 -56
- package/dist/esm/base/repositories/sqls/recursive-tree.d.ts.map +0 -1
- package/dist/esm/base/repositories/sqls/recursive-tree.js +0 -143
- package/dist/esm/base/repositories/sqls/recursive-tree.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAY,MAAM,6BAA6B,CAAC;AAGnE,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,EACtB,cAAc,EACd,MAAM,EACN,cAAc,EACd,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,9 @@ const inversion_1 = require("../../../helpers/inversion");
|
|
|
5
5
|
const core_1 = require("@venizia/ignis-helpers/core");
|
|
6
6
|
const common_1 = require("@venizia/ignis-helpers/common");
|
|
7
7
|
const core_2 = require("@venizia/ignis-helpers/core");
|
|
8
|
-
|
|
8
|
+
// The file, not the `../common` barrel: the barrel re-exports the OpenAPI schemas, and this module is
|
|
9
|
+
// on the `./repository` entry, which must load without `@hono/zod-openapi` installed.
|
|
10
|
+
const constants_1 = require("../common/constants");
|
|
9
11
|
/**
|
|
10
12
|
* Engine-neutral repository plumbing - lazy dataSource/entity resolution, class-keyed `@model`
|
|
11
13
|
* settings, operation scope. `TOptions` defaults to `IExtraOptions` so connectors can narrow it
|
|
@@ -21,7 +23,7 @@ class AbstractRepository extends core_1.BaseHelper {
|
|
|
21
23
|
* is itself a valid resolved value: the model declares no settings.
|
|
22
24
|
*/
|
|
23
25
|
this._modelSettings = null;
|
|
24
|
-
this._operationScope = opts?.operationScope ??
|
|
26
|
+
this._operationScope = opts?.operationScope ?? constants_1.RepositoryOperationScopes.READ_ONLY;
|
|
25
27
|
if (dataSource) {
|
|
26
28
|
this._dataSource = dataSource;
|
|
27
29
|
}
|
|
@@ -113,7 +115,7 @@ class AbstractRepository extends core_1.BaseHelper {
|
|
|
113
115
|
// never touched it either, because `??` short-circuits when a limit is given. So the ceiling is
|
|
114
116
|
// consulted only when the binding that makes it resolvable is actually present.
|
|
115
117
|
const hasModelBinding = Boolean(inversion_1.MetadataRegistry.getInstance().getRepositoryBinding({ name: this.constructor.name })?.model);
|
|
116
|
-
const ceiling = (hasModelBinding ? this.maxLimit : undefined) ??
|
|
118
|
+
const ceiling = (hasModelBinding ? this.maxLimit : undefined) ?? constants_1.DEFAULT_MAX_LIMIT;
|
|
117
119
|
if (limit > ceiling) {
|
|
118
120
|
throw (0, core_1.getError)({
|
|
119
121
|
message: `[${this.constructor.name}][${scope}] Requested page exceeds this model's limit | requested: ${limit} | maximum: ${ceiling} | raise it with @model settings.maxLimit if larger pages are genuinely needed`,
|
|
@@ -172,7 +174,7 @@ class AbstractRepository extends core_1.BaseHelper {
|
|
|
172
174
|
/** Rejects a verb the current operation scope does not permit. */
|
|
173
175
|
denyOperation(opts) {
|
|
174
176
|
throw (0, core_1.getError)({
|
|
175
|
-
messageCode:
|
|
177
|
+
messageCode: constants_1.RepositoryErrorCodes.OPERATION_NOT_ALLOWED,
|
|
176
178
|
message: `[${opts.methodName}] Repository operation is NOT ALLOWED | scope: ${this.operationScope}`,
|
|
177
179
|
});
|
|
178
180
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":";;;AAGA,mDAAuD;AAEvD,sDAAmE;AACnE,0DAA6D;AAC7D,sDAAoG;AAYpG,
|
|
1
|
+
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC"}
|
|
@@ -17,5 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./common"), exports);
|
|
18
18
|
__exportStar(require("./core"), exports);
|
|
19
19
|
__exportStar(require("./query-schemas"), exports);
|
|
20
|
-
__exportStar(require("./sqls"), exports);
|
|
21
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/base/repositories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,yCAAuB;AACvB,kDAAgC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/base/repositories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,yCAAuB;AACvB,kDAAgC"}
|
package/dist/cjs/repository.d.ts
CHANGED
|
@@ -16,9 +16,13 @@ export { AbstractRepository } from './base/repositories/core/abstract';
|
|
|
16
16
|
export { AbstractDataSource } from './base/datasources/abstract';
|
|
17
17
|
export type { ICreatableRepository, ICrudRepository, IDeletableRepository, IPersistableRepository, IReadableRepository, IRepository, IUpdatableRepository, } from './base/repositories/common/types/contracts';
|
|
18
18
|
export { buildDataRange } from './base/repositories/common/types/results';
|
|
19
|
+
export { DEFAULT_LIMIT, DEFAULT_MAX_LIMIT, RepositoryOperationScopes, } from './base/repositories/common/constants';
|
|
20
|
+
export { CoreErrorCodes, SearchErrorCodes } from './common/error-codes';
|
|
21
|
+
export { throwNotSupported } from './utilities/error.utility';
|
|
19
22
|
export type { TCount, TDataRange, TDataWithRange } from './base/repositories/common/types/results';
|
|
20
23
|
export type { IDataSource } from './base/datasources/common/types';
|
|
21
24
|
export { AbstractEntity } from './base/models/base';
|
|
25
|
+
export { SchemaTypes } from './base/models/common/constants';
|
|
22
26
|
export type { TIdSchemaType, TSchemaType } from './base/models/common';
|
|
23
27
|
export type { TFilter, TInclusion, TWhere } from '@venizia/ignis-filter';
|
|
24
28
|
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACX,oBAAoB,GACrB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACX,oBAAoB,GACrB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAI1E,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAEnG,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAInE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGvE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/cjs/repository.js
CHANGED
|
@@ -14,15 +14,28 @@
|
|
|
14
14
|
* Weight is a contract, checked by `src/__tests__/bundle/browser-weight.test.ts`.
|
|
15
15
|
*/
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.AbstractEntity = exports.buildDataRange = exports.AbstractDataSource = exports.AbstractRepository = void 0;
|
|
17
|
+
exports.SchemaTypes = exports.AbstractEntity = exports.throwNotSupported = exports.SearchErrorCodes = exports.CoreErrorCodes = exports.RepositoryOperationScopes = exports.DEFAULT_MAX_LIMIT = exports.DEFAULT_LIMIT = exports.buildDataRange = exports.AbstractDataSource = exports.AbstractRepository = void 0;
|
|
18
18
|
var abstract_1 = require("./base/repositories/core/abstract");
|
|
19
19
|
Object.defineProperty(exports, "AbstractRepository", { enumerable: true, get: function () { return abstract_1.AbstractRepository; } });
|
|
20
20
|
var abstract_2 = require("./base/datasources/abstract");
|
|
21
21
|
Object.defineProperty(exports, "AbstractDataSource", { enumerable: true, get: function () { return abstract_2.AbstractDataSource; } });
|
|
22
22
|
var results_1 = require("./base/repositories/common/types/results");
|
|
23
23
|
Object.defineProperty(exports, "buildDataRange", { enumerable: true, get: function () { return results_1.buildDataRange; } });
|
|
24
|
+
// What a repository on any transport raises and bounds itself by - the constants, the error codes,
|
|
25
|
+
// and the helper an engine that lacks an operation throws through.
|
|
26
|
+
var constants_1 = require("./base/repositories/common/constants");
|
|
27
|
+
Object.defineProperty(exports, "DEFAULT_LIMIT", { enumerable: true, get: function () { return constants_1.DEFAULT_LIMIT; } });
|
|
28
|
+
Object.defineProperty(exports, "DEFAULT_MAX_LIMIT", { enumerable: true, get: function () { return constants_1.DEFAULT_MAX_LIMIT; } });
|
|
29
|
+
Object.defineProperty(exports, "RepositoryOperationScopes", { enumerable: true, get: function () { return constants_1.RepositoryOperationScopes; } });
|
|
30
|
+
var error_codes_1 = require("./common/error-codes");
|
|
31
|
+
Object.defineProperty(exports, "CoreErrorCodes", { enumerable: true, get: function () { return error_codes_1.CoreErrorCodes; } });
|
|
32
|
+
Object.defineProperty(exports, "SearchErrorCodes", { enumerable: true, get: function () { return error_codes_1.SearchErrorCodes; } });
|
|
33
|
+
var error_utility_1 = require("./utilities/error.utility");
|
|
34
|
+
Object.defineProperty(exports, "throwNotSupported", { enumerable: true, get: function () { return error_utility_1.throwNotSupported; } });
|
|
24
35
|
// `IRepository` names an entity, so a consumer implementing the contract needs the base to extend.
|
|
25
36
|
// Engine-neutral like the datasource: a name, `getSchema({ type })`, and an id type.
|
|
26
37
|
var base_1 = require("./base/models/base");
|
|
27
38
|
Object.defineProperty(exports, "AbstractEntity", { enumerable: true, get: function () { return base_1.AbstractEntity; } });
|
|
39
|
+
var constants_2 = require("./base/models/common/constants");
|
|
40
|
+
Object.defineProperty(exports, "SchemaTypes", { enumerable: true, get: function () { return constants_2.SchemaTypes; } });
|
|
28
41
|
//# sourceMappingURL=repository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAEH,8DAAuE;AAA9D,8GAAA,kBAAkB,OAAA;AAC3B,wDAAiE;AAAxD,8GAAA,kBAAkB,OAAA;AAY3B,oEAA0E;AAAjE,yGAAA,cAAc,OAAA;
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAEH,8DAAuE;AAA9D,8GAAA,kBAAkB,OAAA;AAC3B,wDAAiE;AAAxD,8GAAA,kBAAkB,OAAA;AAY3B,oEAA0E;AAAjE,yGAAA,cAAc,OAAA;AAEvB,mGAAmG;AACnG,mEAAmE;AACnE,kEAI8C;AAH5C,0GAAA,aAAa,OAAA;AACb,8GAAA,iBAAiB,OAAA;AACjB,sHAAA,yBAAyB,OAAA;AAE3B,oDAAwE;AAA/D,6GAAA,cAAc,OAAA;AAAE,+GAAA,gBAAgB,OAAA;AACzC,2DAA8D;AAArD,kHAAA,iBAAiB,OAAA;AAK1B,mGAAmG;AACnG,qFAAqF;AACrF,2CAAoD;AAA3C,sGAAA,cAAc,OAAA;AACvB,4DAA6D;AAApD,wGAAA,WAAW,OAAA"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.throwNotSupported = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const error_codes_1 = require("../common/error-codes");
|
|
5
|
+
const common_1 = require("@venizia/ignis-helpers/common");
|
|
6
6
|
const core_1 = require("@venizia/ignis-helpers/core");
|
|
7
7
|
/** Standardized NotSupported error (HTTP 501) for a capability an implementation deliberately does not provide - logs a warning before throwing so the gap shows in operational logs, not just to the caller. */
|
|
8
8
|
const throwNotSupported = (opts) => {
|
|
9
9
|
const { scope, feature, logger } = opts;
|
|
10
10
|
logger.for(exports.throwNotSupported.name).warn('%s is not supported | Scope: %s', feature, scope);
|
|
11
11
|
throw (0, core_1.getError)({
|
|
12
|
-
statusCode:
|
|
13
|
-
messageCode:
|
|
12
|
+
statusCode: common_1.HTTP.ResultCodes.RS_5.NotImplemented,
|
|
13
|
+
messageCode: error_codes_1.CoreErrorCodes.NOT_SUPPORTED,
|
|
14
14
|
message: `[${scope}] ${feature} is not supported.`,
|
|
15
15
|
});
|
|
16
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.utility.js","sourceRoot":"","sources":["../../../src/utilities/error.utility.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"error.utility.js","sourceRoot":"","sources":["../../../src/utilities/error.utility.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,0DAAqD;AAErD,sDAAuD;AAEvD,iNAAiN;AAC1M,MAAM,iBAAiB,GAAG,CAAC,IAIjC,EAAS,EAAE;IACV,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAExC,MAAM,CAAC,GAAG,CAAC,yBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iCAAiC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAE3F,MAAM,IAAA,eAAQ,EAAC;QACb,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc;QAChD,WAAW,EAAE,4BAAc,CAAC,aAAa;QACzC,OAAO,EAAE,IAAI,KAAK,KAAK,OAAO,oBAAoB;KACnD,CAAC,CAAC;AACL,CAAC,CAAC;AAdW,QAAA,iBAAiB,qBAc5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAY,MAAM,6BAA6B,CAAC;AAGnE,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,EACtB,cAAc,EACd,MAAM,EACN,cAAc,EACd,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,9 @@ import { MetadataRegistry } from '../../../helpers/inversion/index.js';
|
|
|
2
2
|
import { BaseHelper, getError } from '@venizia/ignis-helpers/core';
|
|
3
3
|
import { resolveValue } from '@venizia/ignis-helpers/common';
|
|
4
4
|
import { RetryBackoffStrategies, RetryHelper, RetryJitterModes } from '@venizia/ignis-helpers/core';
|
|
5
|
-
|
|
5
|
+
// The file, not the `../common` barrel: the barrel re-exports the OpenAPI schemas, and this module is
|
|
6
|
+
// on the `./repository` entry, which must load without `@hono/zod-openapi` installed.
|
|
7
|
+
import { DEFAULT_MAX_LIMIT, RepositoryErrorCodes, RepositoryOperationScopes, } from '../common/constants.js';
|
|
6
8
|
/**
|
|
7
9
|
* Engine-neutral repository plumbing - lazy dataSource/entity resolution, class-keyed `@model`
|
|
8
10
|
* settings, operation scope. `TOptions` defaults to `IExtraOptions` so connectors can narrow it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAYpG,OAAO,
|
|
1
|
+
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/base/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/base/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC"}
|
package/dist/esm/repository.d.ts
CHANGED
|
@@ -16,9 +16,13 @@ export { AbstractRepository } from './base/repositories/core/abstract.js';
|
|
|
16
16
|
export { AbstractDataSource } from './base/datasources/abstract.js';
|
|
17
17
|
export type { ICreatableRepository, ICrudRepository, IDeletableRepository, IPersistableRepository, IReadableRepository, IRepository, IUpdatableRepository, } from './base/repositories/common/types/contracts.js';
|
|
18
18
|
export { buildDataRange } from './base/repositories/common/types/results.js';
|
|
19
|
+
export { DEFAULT_LIMIT, DEFAULT_MAX_LIMIT, RepositoryOperationScopes, } from './base/repositories/common/constants.js';
|
|
20
|
+
export { CoreErrorCodes, SearchErrorCodes } from './common/error-codes.js';
|
|
21
|
+
export { throwNotSupported } from './utilities/error.utility.js';
|
|
19
22
|
export type { TCount, TDataRange, TDataWithRange } from './base/repositories/common/types/results.js';
|
|
20
23
|
export type { IDataSource } from './base/datasources/common/types.js';
|
|
21
24
|
export { AbstractEntity } from './base/models/base.js';
|
|
25
|
+
export { SchemaTypes } from './base/models/common/constants.js';
|
|
22
26
|
export type { TIdSchemaType, TSchemaType } from './base/models/common/index.js';
|
|
23
27
|
export type { TFilter, TInclusion, TWhere } from '@venizia/ignis-filter';
|
|
24
28
|
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACX,oBAAoB,GACrB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACX,oBAAoB,GACrB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAI1E,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAEnG,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAInE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGvE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/esm/repository.js
CHANGED
|
@@ -15,7 +15,13 @@
|
|
|
15
15
|
export { AbstractRepository } from './base/repositories/core/abstract.js';
|
|
16
16
|
export { AbstractDataSource } from './base/datasources/abstract.js';
|
|
17
17
|
export { buildDataRange } from './base/repositories/common/types/results.js';
|
|
18
|
+
// What a repository on any transport raises and bounds itself by - the constants, the error codes,
|
|
19
|
+
// and the helper an engine that lacks an operation throws through.
|
|
20
|
+
export { DEFAULT_LIMIT, DEFAULT_MAX_LIMIT, RepositoryOperationScopes, } from './base/repositories/common/constants.js';
|
|
21
|
+
export { CoreErrorCodes, SearchErrorCodes } from './common/error-codes.js';
|
|
22
|
+
export { throwNotSupported } from './utilities/error.utility.js';
|
|
18
23
|
// `IRepository` names an entity, so a consumer implementing the contract needs the base to extend.
|
|
19
24
|
// Engine-neutral like the datasource: a name, `getSchema({ type })`, and an id type.
|
|
20
25
|
export { AbstractEntity } from './base/models/base.js';
|
|
26
|
+
export { SchemaTypes } from './base/models/common/constants.js';
|
|
21
27
|
//# sourceMappingURL=repository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAYjE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAYjE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E,mGAAmG;AACnG,mEAAmE;AACnE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAK9D,mGAAmG;AACnG,qFAAqF;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CoreErrorCodes } from '../common/
|
|
1
|
+
import { CoreErrorCodes } from '../common/error-codes.js';
|
|
2
2
|
import { HTTP } from '@venizia/ignis-helpers/common';
|
|
3
3
|
import { getError } from '@venizia/ignis-helpers/core';
|
|
4
4
|
/** Standardized NotSupported error (HTTP 501) for a capability an implementation deliberately does not provide - logs a warning before throwing so the gap shows in operational logs, not just to the caller. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.utility.js","sourceRoot":"","sources":["../../../src/utilities/error.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"error.utility.js","sourceRoot":"","sources":["../../../src/utilities/error.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,iNAAiN;AACjN,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAIjC,EAAS,EAAE;IACV,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAExC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iCAAiC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAE3F,MAAM,QAAQ,CAAC;QACb,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc;QAChD,WAAW,EAAE,cAAc,CAAC,aAAa;QACzC,OAAO,EAAE,IAAI,KAAK,KAAK,OAAO,oBAAoB;KACnD,CAAC,CAAC;AACL,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venizia/ignis-kernel",
|
|
3
|
-
"version": "0.2.0-
|
|
3
|
+
"version": "0.2.0-45",
|
|
4
4
|
"description": "Browser-pure kernel of the IGNIS framework: dependency injection, lifecycle, REST controllers, repository and datasource abstractions, and the authentication and authorization seams. No node builtin and no server-only peer, so the same kernel serves a Bun server and a browser Worker.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"authentication",
|
|
@@ -91,9 +91,9 @@
|
|
|
91
91
|
"prepublishOnly": "bun run rebuild"
|
|
92
92
|
},
|
|
93
93
|
"dependencies": {
|
|
94
|
-
"@venizia/ignis-filter": "^0.2.0-
|
|
95
|
-
"@venizia/ignis-helpers": "^0.2.0-
|
|
96
|
-
"@venizia/ignis-inversion": "^0.2.0-
|
|
94
|
+
"@venizia/ignis-filter": "^0.2.0-22",
|
|
95
|
+
"@venizia/ignis-helpers": "^0.2.0-40",
|
|
96
|
+
"@venizia/ignis-inversion": "^0.2.0-23",
|
|
97
97
|
"reflect-metadata": "^0.2.2",
|
|
98
98
|
"zod": "^4.5.4"
|
|
99
99
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/base/repositories/sqls/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
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("./recursive-tree"), exports);
|
|
18
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/repositories/sqls/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import type { TConstValue } from '@venizia/ignis-helpers/common';
|
|
2
|
-
import type { SQL } from 'drizzle-orm';
|
|
3
|
-
/** Walk direction relative to `rootId`: DOWN follows `parentColumn -> idColumn` (descendants), UP follows the reverse (ancestors). */
|
|
4
|
-
export declare class RecursiveTreeDirections {
|
|
5
|
-
static readonly UP = "UP";
|
|
6
|
-
static readonly DOWN = "DOWN";
|
|
7
|
-
static readonly SCHEME_SET: Set<string>;
|
|
8
|
-
static isValid(direction: string): boolean;
|
|
9
|
-
}
|
|
10
|
-
export type TRecursiveTreeDirection = TConstValue<typeof RecursiveTreeDirections>;
|
|
11
|
-
export interface IRecursiveTreeOptions {
|
|
12
|
-
/** CTE name the caller references in the SELECT it writes around this fragment. */
|
|
13
|
-
name: string;
|
|
14
|
-
/** Runtime-checked with `is(table, Table)`; also the sole dialect selector (Postgres vs SQLite) - see {@link RecursiveTreeSql}. */
|
|
15
|
-
table: unknown;
|
|
16
|
-
rootId: string;
|
|
17
|
-
direction: TRecursiveTreeDirection;
|
|
18
|
-
/**
|
|
19
|
-
* Counts EDGES, not rows: the root is at depth 0, so `N` returns up to `N+1` rows.
|
|
20
|
-
* No default - `0` type-checks but silently produces an empty result, so `walk` throws at
|
|
21
|
-
* runtime for `maxDepth <= 0`.
|
|
22
|
-
*/
|
|
23
|
-
maxDepth: number;
|
|
24
|
-
idColumn?: string;
|
|
25
|
-
parentColumn?: string;
|
|
26
|
-
/** Extra columns, beyond `idColumn`/`parentColumn`, carried into every row of the walk. */
|
|
27
|
-
columns?: string[];
|
|
28
|
-
/** ANDed into the recursive term's WHERE clause - build it with Drizzle's own `sql` tag. */
|
|
29
|
-
recursiveFilter?: SQL;
|
|
30
|
-
/**
|
|
31
|
-
* Emits `path`/`is_cycle` and stops expanding once a row re-visits an id in its own path. Row
|
|
32
|
-
* shape differs per engine and nothing in this signature shows it: Postgres returns a real array
|
|
33
|
-
* and boolean; SQLite returns delimited text and `1`/`0` - so `row.path.length` throws on SQLite
|
|
34
|
-
* and `row.is_cycle === true` is always false there.
|
|
35
|
-
*/
|
|
36
|
-
trackPath?: boolean;
|
|
37
|
-
startDepth?: number;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Returns the CTE definition only - the caller writes its own `SELECT ... FROM <name>` around it.
|
|
41
|
-
* Engine is read off `table`, never asked of the caller, so no option can disagree with the schema.
|
|
42
|
-
* SQLite's `path` is `char(31)`-delimited text, not an array: exact unless an id contains that byte,
|
|
43
|
-
* which this class does not reject. Identifiers cannot be parameterized, so `name`/`idColumn`/
|
|
44
|
-
* `parentColumn`/`columns` are allowlist-checked before reaching a template.
|
|
45
|
-
*/
|
|
46
|
-
export declare class RecursiveTreeSql {
|
|
47
|
-
private static assertValidIdentifier;
|
|
48
|
-
static walk(opts: IRecursiveTreeOptions): SQL;
|
|
49
|
-
/** See {@link RecursiveTreeSql} for why there is no separate `engine` option. */
|
|
50
|
-
private static detectEngine;
|
|
51
|
-
/** Postgres needs an explicit cast so the base and recursive terms agree on the `depth` column's type; SQLite's looser typing does not, but casts anyway for parity and to fail loudly on a non-numeric `startDepth`. */
|
|
52
|
-
private static compileDepthCast;
|
|
53
|
-
/** See {@link RecursiveTreeSql} for why Postgres and SQLite need different `path`/`is_cycle` shapes. */
|
|
54
|
-
private static compileCycleGuardFragments;
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=recursive-tree.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"recursive-tree.d.ts","sourceRoot":"","sources":["../../../../../src/base/repositories/sqls/recursive-tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,KAAK,EAAQ,GAAG,EAAE,MAAM,aAAa,CAAC;AAK7C,sIAAsI;AACtI,qBAAa,uBAAuB;IAClC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAC9B,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAiC;IAE3D,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAG3C;AAED,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAoBlF,MAAM,WAAW,qBAAqB;IACpC,mFAAmF;IACnF,IAAI,EAAE,MAAM,CAAC;IAEb,mIAAmI;IACnI,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,uBAAuB,CAAC;IAEnC;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,4FAA4F;IAC5F,eAAe,CAAC,EAAE,GAAG,CAAC;IAEtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAUpC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,GAAG,GAAG;IAgF7C,iFAAiF;IACjF,OAAO,CAAC,MAAM,CAAC,YAAY;IAc3B,yNAAyN;IACzN,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAkB/B,wGAAwG;IACxG,OAAO,CAAC,MAAM,CAAC,0BAA0B;CA0B1C"}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RecursiveTreeSql = exports.RecursiveTreeDirections = void 0;
|
|
4
|
-
const core_1 = require("@venizia/ignis-helpers/core");
|
|
5
|
-
const drizzle_orm_1 = require("drizzle-orm");
|
|
6
|
-
const pg_core_1 = require("drizzle-orm/pg-core");
|
|
7
|
-
const sqlite_core_1 = require("drizzle-orm/sqlite-core");
|
|
8
|
-
/** Walk direction relative to `rootId`: DOWN follows `parentColumn -> idColumn` (descendants), UP follows the reverse (ancestors). */
|
|
9
|
-
class RecursiveTreeDirections {
|
|
10
|
-
static { this.UP = 'UP'; }
|
|
11
|
-
static { this.DOWN = 'DOWN'; }
|
|
12
|
-
static { this.SCHEME_SET = new Set([this.UP, this.DOWN]); }
|
|
13
|
-
static isValid(direction) {
|
|
14
|
-
return this.SCHEME_SET.has(direction);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.RecursiveTreeDirections = RecursiveTreeDirections;
|
|
18
|
-
/** Internal only - not part of {@link IRecursiveTreeOptions}. Derived from `table`, never accepted as an option. */
|
|
19
|
-
class RecursiveTreeEngines {
|
|
20
|
-
static { this.POSTGRES = 'POSTGRES'; }
|
|
21
|
-
static { this.SQLITE = 'SQLITE'; }
|
|
22
|
-
static { this.SCHEME_SET = new Set([this.POSTGRES, this.SQLITE]); }
|
|
23
|
-
}
|
|
24
|
-
/** A SQL identifier is safe to splice only after it matches this allowlist - see {@link RecursiveTreeSql.assertValidIdentifier}. */
|
|
25
|
-
const IDENTIFIER_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
26
|
-
/**
|
|
27
|
-
* ASCII Unit Separator (0x1F) - chosen because it does not occur in real ids, unlike `/` or `,`.
|
|
28
|
-
* See {@link RecursiveTreeSql} for the exactness limitation this relies on.
|
|
29
|
-
*/
|
|
30
|
-
const SQLITE_PATH_DELIMITER = drizzle_orm_1.sql.raw('char(31)');
|
|
31
|
-
/**
|
|
32
|
-
* Returns the CTE definition only - the caller writes its own `SELECT ... FROM <name>` around it.
|
|
33
|
-
* Engine is read off `table`, never asked of the caller, so no option can disagree with the schema.
|
|
34
|
-
* SQLite's `path` is `char(31)`-delimited text, not an array: exact unless an id contains that byte,
|
|
35
|
-
* which this class does not reject. Identifiers cannot be parameterized, so `name`/`idColumn`/
|
|
36
|
-
* `parentColumn`/`columns` are allowlist-checked before reaching a template.
|
|
37
|
-
*/
|
|
38
|
-
class RecursiveTreeSql {
|
|
39
|
-
static assertValidIdentifier(opts) {
|
|
40
|
-
const { field, value } = opts;
|
|
41
|
-
if (!IDENTIFIER_PATTERN.test(value)) {
|
|
42
|
-
throw (0, core_1.getError)({
|
|
43
|
-
message: `[RecursiveTreeSql.walk] Invalid '${field}' | Expected letters, digits and underscores only, not starting with a digit | Got: ${value}`,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
static walk(opts) {
|
|
48
|
-
const { name, table, rootId, direction, maxDepth, idColumn = 'id', parentColumn = 'parent_id', columns = [], recursiveFilter, trackPath = false, startDepth = 0, } = opts;
|
|
49
|
-
RecursiveTreeSql.assertValidIdentifier({ field: 'name', value: name });
|
|
50
|
-
RecursiveTreeSql.assertValidIdentifier({ field: 'idColumn', value: idColumn });
|
|
51
|
-
RecursiveTreeSql.assertValidIdentifier({ field: 'parentColumn', value: parentColumn });
|
|
52
|
-
columns.forEach(column => RecursiveTreeSql.assertValidIdentifier({ field: 'columns', value: column }));
|
|
53
|
-
if (!RecursiveTreeDirections.isValid(direction)) {
|
|
54
|
-
throw (0, core_1.getError)({
|
|
55
|
-
message: `[RecursiveTreeSql.walk] Invalid 'direction' | Expected ${RecursiveTreeDirections.UP} or ${RecursiveTreeDirections.DOWN} | Got: ${direction}`,
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
if (!Number.isInteger(maxDepth) || maxDepth <= 0) {
|
|
59
|
-
throw (0, core_1.getError)({
|
|
60
|
-
message: `[RecursiveTreeSql.walk] Invalid 'maxDepth' | Expected a positive integer | Got: ${maxDepth}`,
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
if (!(0, drizzle_orm_1.is)(table, drizzle_orm_1.Table)) {
|
|
64
|
-
throw (0, core_1.getError)({
|
|
65
|
-
message: `[RecursiveTreeSql.walk] Invalid 'table' | Expected a Drizzle table | Got: ${typeof table}`,
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
const engine = RecursiveTreeSql.detectEngine(table);
|
|
69
|
-
const tableName = (0, drizzle_orm_1.getTableName)(table);
|
|
70
|
-
RecursiveTreeSql.assertValidIdentifier({ field: 'table', value: tableName });
|
|
71
|
-
const tableIdentifier = drizzle_orm_1.sql.identifier(tableName);
|
|
72
|
-
const cteIdentifier = drizzle_orm_1.sql.identifier(name);
|
|
73
|
-
const idIdentifier = drizzle_orm_1.sql.identifier(idColumn);
|
|
74
|
-
const parentIdentifier = drizzle_orm_1.sql.identifier(parentColumn);
|
|
75
|
-
const extraIdentifiers = columns.map(column => drizzle_orm_1.sql.identifier(column));
|
|
76
|
-
const baseColumnList = drizzle_orm_1.sql.join([idIdentifier, parentIdentifier, ...extraIdentifiers], (0, drizzle_orm_1.sql) `, `);
|
|
77
|
-
const recursiveColumnList = drizzle_orm_1.sql.join([idIdentifier, parentIdentifier, ...extraIdentifiers].map(identifier => (0, drizzle_orm_1.sql) `t.${identifier}`), (0, drizzle_orm_1.sql) `, `);
|
|
78
|
-
const depthCast = RecursiveTreeSql.compileDepthCast({ engine, depth: startDepth });
|
|
79
|
-
const { basePathColumns, recursivePathColumns } = trackPath
|
|
80
|
-
? RecursiveTreeSql.compileCycleGuardFragments({ engine, idIdentifier })
|
|
81
|
-
: { basePathColumns: (0, drizzle_orm_1.sql) ``, recursivePathColumns: (0, drizzle_orm_1.sql) `` };
|
|
82
|
-
const baseCase = (0, drizzle_orm_1.sql) `SELECT ${baseColumnList}, ${depthCast} AS depth${basePathColumns} FROM ${tableIdentifier} WHERE ${idIdentifier} = ${rootId}`;
|
|
83
|
-
// DOWN walks parent -> children (t.parentColumn = r.idColumn); UP walks child -> parent (t.idColumn = r.parentColumn).
|
|
84
|
-
const joinCondition = direction === RecursiveTreeDirections.DOWN
|
|
85
|
-
? (0, drizzle_orm_1.sql) `t.${parentIdentifier} = r.${idIdentifier}`
|
|
86
|
-
: (0, drizzle_orm_1.sql) `t.${idIdentifier} = r.${parentIdentifier}`;
|
|
87
|
-
// `NOT r.is_cycle` stops expanding a row already flagged cyclic - the row itself stays in the
|
|
88
|
-
// result set with is_cycle = true, only its own children are cut off.
|
|
89
|
-
const cycleGuard = trackPath ? (0, drizzle_orm_1.sql) ` AND NOT r.is_cycle` : (0, drizzle_orm_1.sql) ``;
|
|
90
|
-
const extraFilter = recursiveFilter ? (0, drizzle_orm_1.sql) ` AND (${recursiveFilter})` : (0, drizzle_orm_1.sql) ``;
|
|
91
|
-
const recursiveCase = (0, drizzle_orm_1.sql) `SELECT ${recursiveColumnList}, r.depth + 1${recursivePathColumns} FROM ${tableIdentifier} t JOIN ${cteIdentifier} r ON ${joinCondition} WHERE r.depth + 1 <= ${maxDepth}${cycleGuard}${extraFilter}`;
|
|
92
|
-
return (0, drizzle_orm_1.sql) `WITH RECURSIVE ${cteIdentifier} AS (${baseCase} UNION ALL ${recursiveCase})`;
|
|
93
|
-
}
|
|
94
|
-
/** See {@link RecursiveTreeSql} for why there is no separate `engine` option. */
|
|
95
|
-
static detectEngine(table) {
|
|
96
|
-
if ((0, drizzle_orm_1.is)(table, pg_core_1.PgTable)) {
|
|
97
|
-
return RecursiveTreeEngines.POSTGRES;
|
|
98
|
-
}
|
|
99
|
-
if ((0, drizzle_orm_1.is)(table, sqlite_core_1.SQLiteTable)) {
|
|
100
|
-
return RecursiveTreeEngines.SQLITE;
|
|
101
|
-
}
|
|
102
|
-
throw (0, core_1.getError)({
|
|
103
|
-
message: `[RecursiveTreeSql.walk] Invalid 'table' | Expected a Postgres or SQLite Drizzle table | Got: ${(0, drizzle_orm_1.getTableName)(table)}`,
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
/** Postgres needs an explicit cast so the base and recursive terms agree on the `depth` column's type; SQLite's looser typing does not, but casts anyway for parity and to fail loudly on a non-numeric `startDepth`. */
|
|
107
|
-
static compileDepthCast(opts) {
|
|
108
|
-
const { engine, depth } = opts;
|
|
109
|
-
switch (engine) {
|
|
110
|
-
case RecursiveTreeEngines.POSTGRES: {
|
|
111
|
-
return (0, drizzle_orm_1.sql) `${depth}::int`;
|
|
112
|
-
}
|
|
113
|
-
case RecursiveTreeEngines.SQLITE: {
|
|
114
|
-
return (0, drizzle_orm_1.sql) `CAST(${depth} AS INTEGER)`;
|
|
115
|
-
}
|
|
116
|
-
default: {
|
|
117
|
-
throw (0, core_1.getError)({
|
|
118
|
-
message: `[RecursiveTreeSql.walk] Invalid 'engine' | Got: ${engine}`,
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
/** See {@link RecursiveTreeSql} for why Postgres and SQLite need different `path`/`is_cycle` shapes. */
|
|
124
|
-
static compileCycleGuardFragments(opts) {
|
|
125
|
-
const { engine, idIdentifier } = opts;
|
|
126
|
-
switch (engine) {
|
|
127
|
-
case RecursiveTreeEngines.POSTGRES: {
|
|
128
|
-
return {
|
|
129
|
-
basePathColumns: (0, drizzle_orm_1.sql) `, ARRAY[${idIdentifier}] AS path, false AS is_cycle`,
|
|
130
|
-
recursivePathColumns: (0, drizzle_orm_1.sql) `, r.path || t.${idIdentifier} AS path, t.${idIdentifier} = ANY(r.path) AS is_cycle`,
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
case RecursiveTreeEngines.SQLITE: {
|
|
134
|
-
return {
|
|
135
|
-
basePathColumns: (0, drizzle_orm_1.sql) `, ${SQLITE_PATH_DELIMITER} || ${idIdentifier} || ${SQLITE_PATH_DELIMITER} AS path, 0 AS is_cycle`,
|
|
136
|
-
recursivePathColumns: (0, drizzle_orm_1.sql) `, r.path || t.${idIdentifier} || ${SQLITE_PATH_DELIMITER} AS path, instr(r.path, ${SQLITE_PATH_DELIMITER} || t.${idIdentifier} || ${SQLITE_PATH_DELIMITER}) > 0 AS is_cycle`,
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
default: {
|
|
140
|
-
throw (0, core_1.getError)({
|
|
141
|
-
message: `[RecursiveTreeSql.walk] Invalid 'engine' | Got: ${engine}`,
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
exports.RecursiveTreeSql = RecursiveTreeSql;
|
|
148
|
-
//# sourceMappingURL=recursive-tree.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"recursive-tree.js","sourceRoot":"","sources":["../../../../../src/base/repositories/sqls/recursive-tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/base/repositories/sqls/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/repositories/sqls/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import type { TConstValue } from '@venizia/ignis-helpers/common';
|
|
2
|
-
import type { SQL } from 'drizzle-orm';
|
|
3
|
-
/** Walk direction relative to `rootId`: DOWN follows `parentColumn -> idColumn` (descendants), UP follows the reverse (ancestors). */
|
|
4
|
-
export declare class RecursiveTreeDirections {
|
|
5
|
-
static readonly UP = "UP";
|
|
6
|
-
static readonly DOWN = "DOWN";
|
|
7
|
-
static readonly SCHEME_SET: Set<string>;
|
|
8
|
-
static isValid(direction: string): boolean;
|
|
9
|
-
}
|
|
10
|
-
export type TRecursiveTreeDirection = TConstValue<typeof RecursiveTreeDirections>;
|
|
11
|
-
export interface IRecursiveTreeOptions {
|
|
12
|
-
/** CTE name the caller references in the SELECT it writes around this fragment. */
|
|
13
|
-
name: string;
|
|
14
|
-
/** Runtime-checked with `is(table, Table)`; also the sole dialect selector (Postgres vs SQLite) - see {@link RecursiveTreeSql}. */
|
|
15
|
-
table: unknown;
|
|
16
|
-
rootId: string;
|
|
17
|
-
direction: TRecursiveTreeDirection;
|
|
18
|
-
/**
|
|
19
|
-
* Counts EDGES, not rows: the root is at depth 0, so `N` returns up to `N+1` rows.
|
|
20
|
-
* No default - `0` type-checks but silently produces an empty result, so `walk` throws at
|
|
21
|
-
* runtime for `maxDepth <= 0`.
|
|
22
|
-
*/
|
|
23
|
-
maxDepth: number;
|
|
24
|
-
idColumn?: string;
|
|
25
|
-
parentColumn?: string;
|
|
26
|
-
/** Extra columns, beyond `idColumn`/`parentColumn`, carried into every row of the walk. */
|
|
27
|
-
columns?: string[];
|
|
28
|
-
/** ANDed into the recursive term's WHERE clause - build it with Drizzle's own `sql` tag. */
|
|
29
|
-
recursiveFilter?: SQL;
|
|
30
|
-
/**
|
|
31
|
-
* Emits `path`/`is_cycle` and stops expanding once a row re-visits an id in its own path. Row
|
|
32
|
-
* shape differs per engine and nothing in this signature shows it: Postgres returns a real array
|
|
33
|
-
* and boolean; SQLite returns delimited text and `1`/`0` - so `row.path.length` throws on SQLite
|
|
34
|
-
* and `row.is_cycle === true` is always false there.
|
|
35
|
-
*/
|
|
36
|
-
trackPath?: boolean;
|
|
37
|
-
startDepth?: number;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Returns the CTE definition only - the caller writes its own `SELECT ... FROM <name>` around it.
|
|
41
|
-
* Engine is read off `table`, never asked of the caller, so no option can disagree with the schema.
|
|
42
|
-
* SQLite's `path` is `char(31)`-delimited text, not an array: exact unless an id contains that byte,
|
|
43
|
-
* which this class does not reject. Identifiers cannot be parameterized, so `name`/`idColumn`/
|
|
44
|
-
* `parentColumn`/`columns` are allowlist-checked before reaching a template.
|
|
45
|
-
*/
|
|
46
|
-
export declare class RecursiveTreeSql {
|
|
47
|
-
private static assertValidIdentifier;
|
|
48
|
-
static walk(opts: IRecursiveTreeOptions): SQL;
|
|
49
|
-
/** See {@link RecursiveTreeSql} for why there is no separate `engine` option. */
|
|
50
|
-
private static detectEngine;
|
|
51
|
-
/** Postgres needs an explicit cast so the base and recursive terms agree on the `depth` column's type; SQLite's looser typing does not, but casts anyway for parity and to fail loudly on a non-numeric `startDepth`. */
|
|
52
|
-
private static compileDepthCast;
|
|
53
|
-
/** See {@link RecursiveTreeSql} for why Postgres and SQLite need different `path`/`is_cycle` shapes. */
|
|
54
|
-
private static compileCycleGuardFragments;
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=recursive-tree.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"recursive-tree.d.ts","sourceRoot":"","sources":["../../../../../src/base/repositories/sqls/recursive-tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,KAAK,EAAQ,GAAG,EAAE,MAAM,aAAa,CAAC;AAK7C,sIAAsI;AACtI,qBAAa,uBAAuB;IAClC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAC9B,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAiC;IAE3D,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAG3C;AAED,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAoBlF,MAAM,WAAW,qBAAqB;IACpC,mFAAmF;IACnF,IAAI,EAAE,MAAM,CAAC;IAEb,mIAAmI;IACnI,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,uBAAuB,CAAC;IAEnC;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,4FAA4F;IAC5F,eAAe,CAAC,EAAE,GAAG,CAAC;IAEtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAUpC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,GAAG,GAAG;IAgF7C,iFAAiF;IACjF,OAAO,CAAC,MAAM,CAAC,YAAY;IAc3B,yNAAyN;IACzN,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAkB/B,wGAAwG;IACxG,OAAO,CAAC,MAAM,CAAC,0BAA0B;CA0B1C"}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { getError } from '@venizia/ignis-helpers/core';
|
|
2
|
-
import { getTableName, is, sql, Table } from 'drizzle-orm';
|
|
3
|
-
import { PgTable } from 'drizzle-orm/pg-core';
|
|
4
|
-
import { SQLiteTable } from 'drizzle-orm/sqlite-core';
|
|
5
|
-
/** Walk direction relative to `rootId`: DOWN follows `parentColumn -> idColumn` (descendants), UP follows the reverse (ancestors). */
|
|
6
|
-
export class RecursiveTreeDirections {
|
|
7
|
-
static { this.UP = 'UP'; }
|
|
8
|
-
static { this.DOWN = 'DOWN'; }
|
|
9
|
-
static { this.SCHEME_SET = new Set([this.UP, this.DOWN]); }
|
|
10
|
-
static isValid(direction) {
|
|
11
|
-
return this.SCHEME_SET.has(direction);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
/** Internal only - not part of {@link IRecursiveTreeOptions}. Derived from `table`, never accepted as an option. */
|
|
15
|
-
class RecursiveTreeEngines {
|
|
16
|
-
static { this.POSTGRES = 'POSTGRES'; }
|
|
17
|
-
static { this.SQLITE = 'SQLITE'; }
|
|
18
|
-
static { this.SCHEME_SET = new Set([this.POSTGRES, this.SQLITE]); }
|
|
19
|
-
}
|
|
20
|
-
/** A SQL identifier is safe to splice only after it matches this allowlist - see {@link RecursiveTreeSql.assertValidIdentifier}. */
|
|
21
|
-
const IDENTIFIER_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
22
|
-
/**
|
|
23
|
-
* ASCII Unit Separator (0x1F) - chosen because it does not occur in real ids, unlike `/` or `,`.
|
|
24
|
-
* See {@link RecursiveTreeSql} for the exactness limitation this relies on.
|
|
25
|
-
*/
|
|
26
|
-
const SQLITE_PATH_DELIMITER = sql.raw('char(31)');
|
|
27
|
-
/**
|
|
28
|
-
* Returns the CTE definition only - the caller writes its own `SELECT ... FROM <name>` around it.
|
|
29
|
-
* Engine is read off `table`, never asked of the caller, so no option can disagree with the schema.
|
|
30
|
-
* SQLite's `path` is `char(31)`-delimited text, not an array: exact unless an id contains that byte,
|
|
31
|
-
* which this class does not reject. Identifiers cannot be parameterized, so `name`/`idColumn`/
|
|
32
|
-
* `parentColumn`/`columns` are allowlist-checked before reaching a template.
|
|
33
|
-
*/
|
|
34
|
-
export class RecursiveTreeSql {
|
|
35
|
-
static assertValidIdentifier(opts) {
|
|
36
|
-
const { field, value } = opts;
|
|
37
|
-
if (!IDENTIFIER_PATTERN.test(value)) {
|
|
38
|
-
throw getError({
|
|
39
|
-
message: `[RecursiveTreeSql.walk] Invalid '${field}' | Expected letters, digits and underscores only, not starting with a digit | Got: ${value}`,
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
static walk(opts) {
|
|
44
|
-
const { name, table, rootId, direction, maxDepth, idColumn = 'id', parentColumn = 'parent_id', columns = [], recursiveFilter, trackPath = false, startDepth = 0, } = opts;
|
|
45
|
-
RecursiveTreeSql.assertValidIdentifier({ field: 'name', value: name });
|
|
46
|
-
RecursiveTreeSql.assertValidIdentifier({ field: 'idColumn', value: idColumn });
|
|
47
|
-
RecursiveTreeSql.assertValidIdentifier({ field: 'parentColumn', value: parentColumn });
|
|
48
|
-
columns.forEach(column => RecursiveTreeSql.assertValidIdentifier({ field: 'columns', value: column }));
|
|
49
|
-
if (!RecursiveTreeDirections.isValid(direction)) {
|
|
50
|
-
throw getError({
|
|
51
|
-
message: `[RecursiveTreeSql.walk] Invalid 'direction' | Expected ${RecursiveTreeDirections.UP} or ${RecursiveTreeDirections.DOWN} | Got: ${direction}`,
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
if (!Number.isInteger(maxDepth) || maxDepth <= 0) {
|
|
55
|
-
throw getError({
|
|
56
|
-
message: `[RecursiveTreeSql.walk] Invalid 'maxDepth' | Expected a positive integer | Got: ${maxDepth}`,
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
if (!is(table, Table)) {
|
|
60
|
-
throw getError({
|
|
61
|
-
message: `[RecursiveTreeSql.walk] Invalid 'table' | Expected a Drizzle table | Got: ${typeof table}`,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
const engine = RecursiveTreeSql.detectEngine(table);
|
|
65
|
-
const tableName = getTableName(table);
|
|
66
|
-
RecursiveTreeSql.assertValidIdentifier({ field: 'table', value: tableName });
|
|
67
|
-
const tableIdentifier = sql.identifier(tableName);
|
|
68
|
-
const cteIdentifier = sql.identifier(name);
|
|
69
|
-
const idIdentifier = sql.identifier(idColumn);
|
|
70
|
-
const parentIdentifier = sql.identifier(parentColumn);
|
|
71
|
-
const extraIdentifiers = columns.map(column => sql.identifier(column));
|
|
72
|
-
const baseColumnList = sql.join([idIdentifier, parentIdentifier, ...extraIdentifiers], sql `, `);
|
|
73
|
-
const recursiveColumnList = sql.join([idIdentifier, parentIdentifier, ...extraIdentifiers].map(identifier => sql `t.${identifier}`), sql `, `);
|
|
74
|
-
const depthCast = RecursiveTreeSql.compileDepthCast({ engine, depth: startDepth });
|
|
75
|
-
const { basePathColumns, recursivePathColumns } = trackPath
|
|
76
|
-
? RecursiveTreeSql.compileCycleGuardFragments({ engine, idIdentifier })
|
|
77
|
-
: { basePathColumns: sql ``, recursivePathColumns: sql `` };
|
|
78
|
-
const baseCase = sql `SELECT ${baseColumnList}, ${depthCast} AS depth${basePathColumns} FROM ${tableIdentifier} WHERE ${idIdentifier} = ${rootId}`;
|
|
79
|
-
// DOWN walks parent -> children (t.parentColumn = r.idColumn); UP walks child -> parent (t.idColumn = r.parentColumn).
|
|
80
|
-
const joinCondition = direction === RecursiveTreeDirections.DOWN
|
|
81
|
-
? sql `t.${parentIdentifier} = r.${idIdentifier}`
|
|
82
|
-
: sql `t.${idIdentifier} = r.${parentIdentifier}`;
|
|
83
|
-
// `NOT r.is_cycle` stops expanding a row already flagged cyclic - the row itself stays in the
|
|
84
|
-
// result set with is_cycle = true, only its own children are cut off.
|
|
85
|
-
const cycleGuard = trackPath ? sql ` AND NOT r.is_cycle` : sql ``;
|
|
86
|
-
const extraFilter = recursiveFilter ? sql ` AND (${recursiveFilter})` : sql ``;
|
|
87
|
-
const recursiveCase = sql `SELECT ${recursiveColumnList}, r.depth + 1${recursivePathColumns} FROM ${tableIdentifier} t JOIN ${cteIdentifier} r ON ${joinCondition} WHERE r.depth + 1 <= ${maxDepth}${cycleGuard}${extraFilter}`;
|
|
88
|
-
return sql `WITH RECURSIVE ${cteIdentifier} AS (${baseCase} UNION ALL ${recursiveCase})`;
|
|
89
|
-
}
|
|
90
|
-
/** See {@link RecursiveTreeSql} for why there is no separate `engine` option. */
|
|
91
|
-
static detectEngine(table) {
|
|
92
|
-
if (is(table, PgTable)) {
|
|
93
|
-
return RecursiveTreeEngines.POSTGRES;
|
|
94
|
-
}
|
|
95
|
-
if (is(table, SQLiteTable)) {
|
|
96
|
-
return RecursiveTreeEngines.SQLITE;
|
|
97
|
-
}
|
|
98
|
-
throw getError({
|
|
99
|
-
message: `[RecursiveTreeSql.walk] Invalid 'table' | Expected a Postgres or SQLite Drizzle table | Got: ${getTableName(table)}`,
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
/** Postgres needs an explicit cast so the base and recursive terms agree on the `depth` column's type; SQLite's looser typing does not, but casts anyway for parity and to fail loudly on a non-numeric `startDepth`. */
|
|
103
|
-
static compileDepthCast(opts) {
|
|
104
|
-
const { engine, depth } = opts;
|
|
105
|
-
switch (engine) {
|
|
106
|
-
case RecursiveTreeEngines.POSTGRES: {
|
|
107
|
-
return sql `${depth}::int`;
|
|
108
|
-
}
|
|
109
|
-
case RecursiveTreeEngines.SQLITE: {
|
|
110
|
-
return sql `CAST(${depth} AS INTEGER)`;
|
|
111
|
-
}
|
|
112
|
-
default: {
|
|
113
|
-
throw getError({
|
|
114
|
-
message: `[RecursiveTreeSql.walk] Invalid 'engine' | Got: ${engine}`,
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
/** See {@link RecursiveTreeSql} for why Postgres and SQLite need different `path`/`is_cycle` shapes. */
|
|
120
|
-
static compileCycleGuardFragments(opts) {
|
|
121
|
-
const { engine, idIdentifier } = opts;
|
|
122
|
-
switch (engine) {
|
|
123
|
-
case RecursiveTreeEngines.POSTGRES: {
|
|
124
|
-
return {
|
|
125
|
-
basePathColumns: sql `, ARRAY[${idIdentifier}] AS path, false AS is_cycle`,
|
|
126
|
-
recursivePathColumns: sql `, r.path || t.${idIdentifier} AS path, t.${idIdentifier} = ANY(r.path) AS is_cycle`,
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
case RecursiveTreeEngines.SQLITE: {
|
|
130
|
-
return {
|
|
131
|
-
basePathColumns: sql `, ${SQLITE_PATH_DELIMITER} || ${idIdentifier} || ${SQLITE_PATH_DELIMITER} AS path, 0 AS is_cycle`,
|
|
132
|
-
recursivePathColumns: sql `, r.path || t.${idIdentifier} || ${SQLITE_PATH_DELIMITER} AS path, instr(r.path, ${SQLITE_PATH_DELIMITER} || t.${idIdentifier} || ${SQLITE_PATH_DELIMITER}) > 0 AS is_cycle`,
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
default: {
|
|
136
|
-
throw getError({
|
|
137
|
-
message: `[RecursiveTreeSql.walk] Invalid 'engine' | Got: ${engine}`,
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=recursive-tree.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"recursive-tree.js","sourceRoot":"","sources":["../../../../../src/base/repositories/sqls/recursive-tree.ts"],"names":[],"mappings":"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"}
|