@flusys/nestjs-entity-builder 9.2.0 → 9.2.1
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 +40 -22
- package/config/entity-builder.constants.d.ts +1 -0
- package/config/message-keys.d.ts +11 -2
- package/controllers/definition-bundle.controller.d.ts +2 -2
- package/controllers/entity-definition.controller.d.ts +0 -1
- package/controllers/field-definition.controller.d.ts +0 -1
- package/controllers/flow-definition.controller.d.ts +2 -1
- package/controllers/flow-runtime.controller.d.ts +4 -3
- package/fesm/21.js +13 -5
- package/fesm/{458.js → 28.js} +104 -62
- package/fesm/677.js +1234 -469
- package/fesm/794.js +1 -1
- package/fesm/857.js +1 -2
- package/fesm/870.js +415 -332
- package/fesm/897.js +23 -29
- package/fesm/946.js +67 -42
- package/fesm/config/index.js +10 -14
- package/fesm/docs/index.js +1 -1
- package/fesm/guards/index.js +15 -9
- package/fesm/index.js +25 -25
- package/fesm/modules/index.js +4 -3
- package/fesm/services/index.js +29 -58
- package/flow-engine/flow-code-runner.d.ts +16 -0
- package/flow-engine/flow-graph.validator.d.ts +1 -0
- package/flow-engine/flow-input.validator.d.ts +14 -0
- package/flow-engine/flow-run.types.d.ts +15 -0
- package/flow-engine/flow.types.d.ts +1 -1
- package/guards/designer-writable.interceptor.d.ts +1 -0
- package/interfaces/definition-bundle.interface.d.ts +2 -0
- package/interfaces/entity-builder-module.interface.d.ts +9 -0
- package/modules/entity-builder.module.d.ts +1 -0
- package/modules/index.d.ts +1 -0
- package/modules/tenant-context-id.strategy.d.ts +16 -0
- package/package.json +3 -4
- package/services/definition-bundle.diff.d.ts +0 -2
- package/services/definition-bundle.file.d.ts +2 -1
- package/services/definition-bundle.service.d.ts +0 -1
- package/services/entity-builder-config.service.d.ts +3 -0
- package/services/entity-builder-datasource.provider.d.ts +1 -0
- package/services/field-value-validator.d.ts +7 -0
- package/services/flow-definition.service.d.ts +10 -2
- package/services/flow-executor.service.d.ts +3 -0
- package/services/flow-runtime.service.d.ts +6 -1
- package/services/generic-entity-service.factory.d.ts +5 -1
- package/services/generic-entity.service.d.ts +24 -2
- package/services/identifier-rules.d.ts +0 -1
- package/services/save-loaded.d.ts +2 -0
- package/services/schema-columns.d.ts +7 -2
- package/services/schema-evolution.service.d.ts +8 -2
- package/services/schema-registry.service.d.ts +12 -0
- package/services/schema-sync.service.d.ts +3 -1
- package/flow-engine/flow-code-sandbox.d.ts +0 -5
package/fesm/{458.js → 28.js}
RENAMED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { SCOPE_OPTIONS_METADATA } from "@nestjs/common/constants.js";
|
|
2
|
+
import { DEFAULT_TENANT_HEADER } from "@flusys/nestjs-core";
|
|
3
|
+
export const __rspack_esm_id = 28;
|
|
4
|
+
export const __rspack_esm_ids = [28];
|
|
3
5
|
export const __webpack_modules__ = {
|
|
4
6
|
5460(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
5
7
|
/* import */ var _flow_access_guard_js__rspack_import_0 = __webpack_require__(4196);
|
|
@@ -9,23 +11,27 @@ export const __webpack_modules__ = {
|
|
|
9
11
|
|
|
10
12
|
__webpack_require__.d(__webpack_exports__, {
|
|
11
13
|
CA: () => (/* reexport safe */ _flow_access_guard_js__rspack_import_0.C),
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
H6: () => (/* reexport safe */ _designer_writable_interceptor_js__rspack_import_1.H6),
|
|
15
|
+
Wq: () => (/* reexport safe */ _designer_writable_interceptor_js__rspack_import_1.Wq),
|
|
16
|
+
Xg: () => (/* reexport safe */ _designer_writable_interceptor_js__rspack_import_1.Xg)
|
|
14
17
|
});
|
|
15
18
|
|
|
16
19
|
|
|
17
20
|
},
|
|
18
|
-
|
|
21
|
+
4735(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
19
22
|
|
|
20
23
|
// EXPORTS
|
|
21
24
|
__webpack_require__.d(__webpack_exports__, {
|
|
22
|
-
l: () => (/* reexport */ EntityBuilderModule)
|
|
25
|
+
l: () => (/* reexport */ EntityBuilderModule),
|
|
26
|
+
o: () => (/* reexport */ TenantContextIdStrategy)
|
|
23
27
|
});
|
|
24
28
|
|
|
25
29
|
// EXTERNAL MODULE: external "@flusys/nestjs-shared/modules"
|
|
26
30
|
var modules_ = __webpack_require__(1236);
|
|
27
31
|
// EXTERNAL MODULE: external "@nestjs/common"
|
|
28
32
|
var common_ = __webpack_require__(6157);
|
|
33
|
+
;// CONCATENATED MODULE: external "@nestjs/common/constants.js"
|
|
34
|
+
|
|
29
35
|
// EXTERNAL MODULE: ./projects/nestjs-entity-builder/src/config/entity-builder.constants.ts
|
|
30
36
|
var entity_builder_constants = __webpack_require__(6576);
|
|
31
37
|
// EXTERNAL MODULE: ./projects/nestjs-entity-builder/src/config/event-actions.ts
|
|
@@ -36,8 +42,8 @@ var controllers = __webpack_require__(729);
|
|
|
36
42
|
var reference_provider_interface = __webpack_require__(2492);
|
|
37
43
|
// EXTERNAL MODULE: ./projects/nestjs-entity-builder/src/rule-engine/index.ts + 2 modules
|
|
38
44
|
var rule_engine = __webpack_require__(8552);
|
|
39
|
-
// EXTERNAL MODULE: ./projects/nestjs-entity-builder/src/services/index.ts +
|
|
40
|
-
var services = __webpack_require__(
|
|
45
|
+
// EXTERNAL MODULE: ./projects/nestjs-entity-builder/src/services/index.ts + 2 modules
|
|
46
|
+
var services = __webpack_require__(712);
|
|
41
47
|
// EXTERNAL MODULE: ./projects/nestjs-entity-builder/src/guards/index.ts
|
|
42
48
|
var guards = __webpack_require__(5460);
|
|
43
49
|
;// CONCATENATED MODULE: ./projects/nestjs-entity-builder/src/modules/entity-builder.module.ts
|
|
@@ -63,6 +69,7 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
63
69
|
|
|
64
70
|
|
|
65
71
|
|
|
72
|
+
|
|
66
73
|
class EntityBuilderModule {
|
|
67
74
|
static CONTROLLERS = [
|
|
68
75
|
controllers/* .EntityDefinitionController */.hv,
|
|
@@ -102,7 +109,7 @@ class EntityBuilderModule {
|
|
|
102
109
|
],
|
|
103
110
|
controllers: options.includeController !== false ? this.CONTROLLERS : [],
|
|
104
111
|
providers: [
|
|
105
|
-
...this.buildProviders(options),
|
|
112
|
+
...this.tenantScoped(this.buildProviders(options), options.tenantScopedServices),
|
|
106
113
|
...options.providers ?? []
|
|
107
114
|
],
|
|
108
115
|
exports: this.EXPORTS
|
|
@@ -120,12 +127,24 @@ class EntityBuilderModule {
|
|
|
120
127
|
controllers: options.includeController !== false ? this.CONTROLLERS : [],
|
|
121
128
|
providers: [
|
|
122
129
|
...this.buildAsyncProviders(options),
|
|
123
|
-
...this.buildProviders(),
|
|
130
|
+
...this.tenantScoped(this.buildProviders(), options.tenantScopedServices),
|
|
124
131
|
...options.providers ?? []
|
|
125
132
|
],
|
|
126
133
|
exports: this.EXPORTS
|
|
127
134
|
};
|
|
128
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* `tenantScopedServices`: every request-scoped class becomes durable - one instance per tenant (TenantContextIdStrategy).
|
|
138
|
+
* Classes that are request-scoped only through a dependency follow it, so nothing else needs marking.
|
|
139
|
+
*/ static tenantScoped(providers, enabled = false) {
|
|
140
|
+
if (!enabled) return providers;
|
|
141
|
+
return providers.map((provider)=>typeof provider === 'function' && Reflect.getMetadata(SCOPE_OPTIONS_METADATA, provider)?.scope === common_.Scope.REQUEST ? {
|
|
142
|
+
provide: provider,
|
|
143
|
+
useClass: provider,
|
|
144
|
+
scope: common_.Scope.REQUEST,
|
|
145
|
+
durable: true
|
|
146
|
+
} : provider);
|
|
147
|
+
}
|
|
129
148
|
static buildProviders(options) {
|
|
130
149
|
const providers = [
|
|
131
150
|
services/* .EntityBuilderConfigService */.E,
|
|
@@ -215,12 +234,66 @@ EntityBuilderModule = _ts_decorate([
|
|
|
215
234
|
(0,common_.Module)({})
|
|
216
235
|
], EntityBuilderModule);
|
|
217
236
|
|
|
237
|
+
;// CONCATENATED MODULE: external "@flusys/nestjs-core"
|
|
238
|
+
|
|
239
|
+
// EXTERNAL MODULE: external "@flusys/nestjs-shared/constants"
|
|
240
|
+
var constants_ = __webpack_require__(9140);
|
|
241
|
+
// EXTERNAL MODULE: external "@nestjs/core"
|
|
242
|
+
var core_ = __webpack_require__(3075);
|
|
243
|
+
;// CONCATENATED MODULE: ./projects/nestjs-entity-builder/src/modules/tenant-context-id.strategy.ts
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Builds the services registered as durable (EntityBuilderModule `tenantScopedServices: true`) once per tenant and
|
|
249
|
+
* reuses them for every request of that tenant, instead of once per request; all other request-scoped providers stay
|
|
250
|
+
* per request. Enable it once, in `main.ts`: `ContextIdFactory.apply(new TenantContextIdStrategy({ tenants }))`.
|
|
251
|
+
*
|
|
252
|
+
* The tenant is read from `x-tenant-id` exactly as the datasource provider and the request context read it, so a
|
|
253
|
+
* shared set never serves another tenant's database. A shared service's `REQUEST` is `{ headers: { 'x-tenant-id' } }`:
|
|
254
|
+
* the tenant and nothing of any caller.
|
|
255
|
+
*/ class TenantContextIdStrategy {
|
|
256
|
+
tenantContexts = new Map();
|
|
257
|
+
isTenant;
|
|
258
|
+
maxTenants;
|
|
259
|
+
constructor(options = {}){
|
|
260
|
+
const { tenants } = options;
|
|
261
|
+
if (typeof tenants === 'function') this.isTenant = tenants;
|
|
262
|
+
else if (tenants) {
|
|
263
|
+
const known = new Set(tenants);
|
|
264
|
+
this.isTenant = (tenantId)=>known.has(tenantId);
|
|
265
|
+
} else this.isTenant = ()=>true;
|
|
266
|
+
this.maxTenants = options.maxTenants ?? 1000;
|
|
267
|
+
}
|
|
268
|
+
attach(contextId, request) {
|
|
269
|
+
const raw = request?.headers?.[DEFAULT_TENANT_HEADER];
|
|
270
|
+
if (raw !== undefined && (typeof raw !== 'string' || !constants_.TENANT_ID_PATTERN.test(raw) || !this.isTenant(raw))) return undefined;
|
|
271
|
+
const tenantId = raw ?? '';
|
|
272
|
+
let tenantContext = this.tenantContexts.get(tenantId);
|
|
273
|
+
if (!tenantContext) {
|
|
274
|
+
if (this.tenantContexts.size >= this.maxTenants) return undefined;
|
|
275
|
+
tenantContext = core_.ContextIdFactory.create();
|
|
276
|
+
this.tenantContexts.set(tenantId, tenantContext);
|
|
277
|
+
}
|
|
278
|
+
const shared = tenantContext;
|
|
279
|
+
return {
|
|
280
|
+
resolve: (info)=>info.isTreeDurable ? shared : contextId,
|
|
281
|
+
payload: {
|
|
282
|
+
headers: tenantId ? {
|
|
283
|
+
[DEFAULT_TENANT_HEADER]: tenantId
|
|
284
|
+
} : {}
|
|
285
|
+
}
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
|
|
218
290
|
;// CONCATENATED MODULE: ./projects/nestjs-entity-builder/src/modules/index.ts
|
|
219
291
|
|
|
220
292
|
|
|
221
293
|
|
|
294
|
+
|
|
222
295
|
},
|
|
223
|
-
|
|
296
|
+
712(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
224
297
|
|
|
225
298
|
// EXPORTS
|
|
226
299
|
__webpack_require__.d(__webpack_exports__, {
|
|
@@ -228,13 +301,11 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
228
301
|
Fz: () => (/* reexport */ (/* inlined export .DRAFT_TEST_RETAIN */200)),
|
|
229
302
|
P0: () => (/* reexport */ definition_bundle_service/* .DefinitionBundleService */.P),
|
|
230
303
|
Vo: () => (/* reexport */ definition_cache_service/* .DefinitionCacheService */.V),
|
|
231
|
-
$I: () => (/* reexport */ definition_bundle_diff/* .ENTITY_COMPARED_KEYS */.$I),
|
|
232
304
|
IP: () => (/* reexport */ entity_flow_scaffold/* .ENTITY_FLOW_PATHS */.IP),
|
|
233
305
|
E: () => (/* reexport */ entity_builder_config_service/* .EntityBuilderConfigService */.E),
|
|
234
306
|
DR: () => (/* reexport */ entity_builder_datasource_provider/* .EntityBuilderDataSourceProvider */.D),
|
|
235
307
|
oc: () => (/* reexport */ entity_definition_service/* .EntityDefinitionService */.o),
|
|
236
308
|
u4: () => (/* reexport */ entity_permission_service/* .EntityPermissionService */.u),
|
|
237
|
-
mT: () => (/* reexport */ definition_bundle_diff/* .FIELD_COMPARED_KEYS */.mT),
|
|
238
309
|
J: () => (/* reexport */ field_definition_service/* .FieldDefinitionService */.J),
|
|
239
310
|
Tk: () => (/* reexport */ flow_definition_service/* .FlowDefinitionService */.Tk),
|
|
240
311
|
AJ: () => (/* reexport */ flow_execution_service/* .FlowExecutionService */.A),
|
|
@@ -243,8 +314,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
243
314
|
a$: () => (/* reexport */ flow_runtime_service/* .FlowRuntimeService */.a),
|
|
244
315
|
GK: () => (/* reexport */ generic_entity_service/* .GenericEntityService */.GK),
|
|
245
316
|
GR: () => (/* reexport */ generic_entity_service_factory/* .GenericEntityServiceFactory */.G),
|
|
246
|
-
|
|
247
|
-
xJ: () => (/* reexport */ identifier_rules/* .RESERVED_WORDS */.xJ),
|
|
317
|
+
vx: () => (/* reexport */ schema_columns/* .LIVE_ROWS_WHERE */.vx),
|
|
248
318
|
tH: () => (/* reexport */ reference_scanner_service/* .ReferenceScannerService */.t),
|
|
249
319
|
mq: () => (/* reexport */ schema_columns/* .SYSTEM_COLUMN_NAMES */.mq),
|
|
250
320
|
TQ: () => (/* reexport */ schema_change_executor_service/* .SchemaChangeExecutor */.T),
|
|
@@ -256,8 +326,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
256
326
|
$6: () => (/* reexport */ schema_columns/* .addUnique */.$6),
|
|
257
327
|
gT: () => (/* reexport */ definition_bundle_diff/* .applyVariables */.gT),
|
|
258
328
|
b$: () => (/* reexport */ flow_definition_service/* .asksExecutePermission */.b$),
|
|
259
|
-
fY: () => (/* reexport */ identifier_rules/* .assertIndexableField */.
|
|
260
|
-
kV: () => (/* reexport */ identifier_rules/* .assertValidIdentifier */.
|
|
329
|
+
fY: () => (/* reexport */ identifier_rules/* .assertIndexableField */.f),
|
|
330
|
+
kV: () => (/* reexport */ identifier_rules/* .assertValidIdentifier */.k),
|
|
261
331
|
HK: () => (/* reexport */ schema_columns/* .auditColumns */.HK),
|
|
262
332
|
CO: () => (/* reexport */ entity_flow_scaffold/* .buildEntityFlow */.CO),
|
|
263
333
|
fu: () => (/* reexport */ schema_columns/* .buildFieldColumn */.fu),
|
|
@@ -279,8 +349,10 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
279
349
|
j4: () => (/* reexport */ flow_definition_service/* .flowPermissions */.j4),
|
|
280
350
|
gl: () => (/* reexport */ flow_executor_service/* .flowTimeout */.g),
|
|
281
351
|
mo: () => (/* reexport */ schema_columns/* .indexName */.mo),
|
|
352
|
+
w5: () => (/* reexport */ schema_columns/* .indexedByDefault */.w5),
|
|
282
353
|
C5: () => (/* reexport */ schema_evolution_service/* .isDestructiveSchemaAction */.C),
|
|
283
354
|
d4: () => (/* reexport */ schema_columns/* .isIndexableFieldType */.d4),
|
|
355
|
+
YS: () => (/* reexport */ schema_columns/* .isLiveRowsIndex */.YS),
|
|
284
356
|
HF: () => (/* reexport */ flow_definition_service/* .isPublished */.HF),
|
|
285
357
|
Eq: () => (/* reexport */ database_error_mapper/* .mapDatabaseError */.E),
|
|
286
358
|
iw: () => (/* reexport */ database_error_mapper/* .mapSchemaError */.i),
|
|
@@ -290,17 +362,20 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
290
362
|
v7: () => (/* reexport */ schema_columns/* .plainIndex */.v7),
|
|
291
363
|
IM: () => (/* reexport */ field_type_conversion/* .planTypeConversion */.I),
|
|
292
364
|
zi: () => (/* reexport */ definition_bundle_file/* .readBundleFile */.z),
|
|
365
|
+
KA: () => (/* reexport */ definition_bundle_file/* .readBundleFiles */.K),
|
|
293
366
|
e1: () => (/* reexport */ schema_change_executor_service/* .relationTargetCodes */.e),
|
|
294
367
|
Sd: () => (/* reexport */ flow_runtime_service/* .requestInfo */.S),
|
|
295
368
|
G7: () => (/* reexport */ schema_columns/* .sameColumns */.G7),
|
|
296
369
|
eY: () => (/* reexport */ flow_definition_service/* .snapshotOf */.eY),
|
|
297
370
|
OG: () => (/* reexport */ schema_columns/* .softDeleteColumn */.OG),
|
|
298
371
|
cg: () => (/* reexport */ schema_columns/* .sqlTypeFor */.cg),
|
|
372
|
+
xV: () => (/* reexport */ generic_entity_service/* .statementTimeoutSql */.xV),
|
|
299
373
|
dX: () => (/* reexport */ definition_bundle_diff/* .stripApiKeys */.dX),
|
|
300
374
|
uy: () => (/* reexport */ schema_columns/* .tableUnique */.uy),
|
|
301
375
|
RK: () => (/* reexport */ flow_definition_service/* .toFlowSettings */.RK),
|
|
302
376
|
jp: () => (/* reexport */ schema_columns/* .typeFamily */.jp),
|
|
303
377
|
eV: () => (/* reexport */ field_value_validator/* .validateRecord */.e),
|
|
378
|
+
CM: () => (/* reexport */ field_value_validator/* .valueRulesOf */.C),
|
|
304
379
|
lw: () => (/* reexport */ flow_definition_service/* .workingCopy */.lw),
|
|
305
380
|
l6: () => (/* reexport */ definition_bundle_diff/* .writtenSecrets */.l6)
|
|
306
381
|
});
|
|
@@ -319,8 +394,8 @@ var schema_sync_service = __webpack_require__(3474);
|
|
|
319
394
|
var entity_definition_service = __webpack_require__(1296);
|
|
320
395
|
// EXTERNAL MODULE: ./projects/nestjs-entity-builder/src/services/field-definition.service.ts
|
|
321
396
|
var field_definition_service = __webpack_require__(9487);
|
|
322
|
-
// EXTERNAL MODULE: ./projects/nestjs-entity-builder/src/services/generic-entity.service.ts
|
|
323
|
-
var generic_entity_service = __webpack_require__(
|
|
397
|
+
// EXTERNAL MODULE: ./projects/nestjs-entity-builder/src/services/generic-entity.service.ts + 3 modules
|
|
398
|
+
var generic_entity_service = __webpack_require__(3052);
|
|
324
399
|
// EXTERNAL MODULE: ./projects/nestjs-entity-builder/src/services/generic-entity-service.factory.ts
|
|
325
400
|
var generic_entity_service_factory = __webpack_require__(7705);
|
|
326
401
|
// EXTERNAL MODULE: ./projects/nestjs-entity-builder/src/services/entity-permission.service.ts
|
|
@@ -357,39 +432,14 @@ var flow_runtime_service = __webpack_require__(2300);
|
|
|
357
432
|
var utils_ = __webpack_require__(9216);
|
|
358
433
|
// EXTERNAL MODULE: external "@nestjs/common"
|
|
359
434
|
var common_ = __webpack_require__(6157);
|
|
360
|
-
// EXTERNAL MODULE: external "typeorm"
|
|
361
|
-
var external_typeorm_ = __webpack_require__(7158);
|
|
362
435
|
// EXTERNAL MODULE: ./projects/nestjs-entity-builder/src/config/message-keys.ts
|
|
363
436
|
var message_keys = __webpack_require__(5732);
|
|
364
437
|
// EXTERNAL MODULE: ./projects/nestjs-entity-builder/src/entities/flow-definition.entity.ts
|
|
365
438
|
var flow_definition_entity = __webpack_require__(3770);
|
|
366
439
|
// EXTERNAL MODULE: ./projects/nestjs-entity-builder/src/entities/flow-version.entity.ts
|
|
367
440
|
var flow_version_entity = __webpack_require__(2399);
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
if (typeof value === 'string') return fn(value);
|
|
371
|
-
if (Array.isArray(value)) return value.map((v)=>mapStrings(v, fn));
|
|
372
|
-
if (value && typeof value === 'object') {
|
|
373
|
-
return Object.fromEntries(Object.entries(value).map(([k, v])=>[
|
|
374
|
-
k,
|
|
375
|
-
mapStrings(v, fn)
|
|
376
|
-
]));
|
|
377
|
-
}
|
|
378
|
-
return value;
|
|
379
|
-
}
|
|
380
|
-
function anyString(value, test) {
|
|
381
|
-
if (typeof value === 'string') return test(value);
|
|
382
|
-
if (Array.isArray(value)) return value.some((v)=>anyString(v, test));
|
|
383
|
-
if (value && typeof value === 'object') return Object.values(value).some((v)=>anyString(v, test));
|
|
384
|
-
return false;
|
|
385
|
-
}
|
|
386
|
-
const escapeRe = (s)=>s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
387
|
-
/**
|
|
388
|
-
* `<prefix>.<field>`, `<prefix>.<field>.x` or `{{ <prefix>.<field> }}` inside a template - but not
|
|
389
|
-
* `<prefix>.<field>_2`. The prefix is a regex source (e.g. `context\.find\.items\.\d+`), captured so a rewrite keeps it.
|
|
390
|
-
*/ const referencePatternSource = (prefixSource, field, flags = '')=>new RegExp(`(^|\\{\\{\\s*)(${prefixSource})\\.${escapeRe(field)}(?!\\w)`, flags);
|
|
391
|
-
const replaceReferenceSource = (s, prefixSource, from, to)=>s.replace(referencePatternSource(prefixSource, from, 'g'), (_match, lead, prefix)=>`${lead}${prefix}.${to}`);
|
|
392
|
-
|
|
441
|
+
// EXTERNAL MODULE: ./projects/nestjs-entity-builder/src/services/reference-rewrite.ts
|
|
442
|
+
var reference_rewrite = __webpack_require__(3086);
|
|
393
443
|
;// CONCATENATED MODULE: ./projects/nestjs-entity-builder/src/flow-engine/flow-reference.ts
|
|
394
444
|
|
|
395
445
|
const entityOf = (node)=>node.config?.entityCode;
|
|
@@ -423,20 +473,20 @@ const ITEM = '\\.items\\.\\d+';
|
|
|
423
473
|
/** Regex sources of every output path that holds a record of the entity. */ function recordPrefixes(nodes, entityCode) {
|
|
424
474
|
const out = [];
|
|
425
475
|
for (const node of nodes){
|
|
426
|
-
const base = `context\\.${escapeRe(node.id)}`;
|
|
476
|
+
const base = `context\\.${(0,reference_rewrite/* .escapeRe */.NF)(node.id)}`;
|
|
427
477
|
if (entityOf(node) === entityCode) {
|
|
428
478
|
if (node.type === 'entity_get') out.push(base);
|
|
429
479
|
else if (node.type === 'entity_insert' || node.type === 'entity_update') out.push(`${base}(?:${ITEM})?`);
|
|
430
480
|
else if (node.type === 'entity_query') out.push(`${base}${ITEM}`);
|
|
431
481
|
}
|
|
432
482
|
for (const child of childrenOf(node)){
|
|
433
|
-
if (child.entityCode === entityCode && typeof child.as === 'string' && child.as) out.push(`${base}(?:${ITEM})?\\.${escapeRe(child.as)}\\.\\d+`);
|
|
483
|
+
if (child.entityCode === entityCode && typeof child.as === 'string' && child.as) out.push(`${base}(?:${ITEM})?\\.${(0,reference_rewrite/* .escapeRe */.NF)(child.as)}\\.\\d+`);
|
|
434
484
|
}
|
|
435
485
|
}
|
|
436
486
|
return out;
|
|
437
487
|
}
|
|
438
488
|
function flowRefersToField(nodes, entityCode, field) {
|
|
439
|
-
const patterns = recordPrefixes(nodes, entityCode).map((prefix)=>referencePatternSource(prefix, field));
|
|
489
|
+
const patterns = recordPrefixes(nodes, entityCode).map((prefix)=>(0,reference_rewrite/* .referencePatternSource */.LV)(prefix, field));
|
|
440
490
|
return nodes.some((node)=>{
|
|
441
491
|
if (entityOf(node) === entityCode) {
|
|
442
492
|
const c = node.config;
|
|
@@ -446,7 +496,7 @@ function flowRefersToField(nodes, entityCode, field) {
|
|
|
446
496
|
}
|
|
447
497
|
if (childrenOf(node).some((child)=>child.entityCode === entityCode && childUsesField(child, field))) return true;
|
|
448
498
|
if (anyLookup(node.config, entityCode, (lookup)=>lookupUsesField(lookup, field))) return true;
|
|
449
|
-
return patterns.length > 0 && anyString(node.config, (s)=>patterns.some((p)=>p.test(s)));
|
|
499
|
+
return patterns.length > 0 && (0,reference_rewrite/* .anyString */.gp)(node.config, (s)=>patterns.some((p)=>p.test(s)));
|
|
450
500
|
});
|
|
451
501
|
}
|
|
452
502
|
function rewriteFlowField(nodes, entityCode, from, to) {
|
|
@@ -518,8 +568,8 @@ function rewriteFlowField(nodes, entityCode, from, to) {
|
|
|
518
568
|
};
|
|
519
569
|
});
|
|
520
570
|
if (prefixes.length) {
|
|
521
|
-
config = mapStrings(config, (s)=>{
|
|
522
|
-
const out = prefixes.reduce((acc, prefix)=>replaceReferenceSource(acc, prefix, from, to), s);
|
|
571
|
+
config = (0,reference_rewrite/* .mapStrings */.to)(config, (s)=>{
|
|
572
|
+
const out = prefixes.reduce((acc, prefix)=>(0,reference_rewrite/* .replaceReferenceSource */.Ni)(acc, prefix, from, to), s);
|
|
523
573
|
if (out !== s) changed = true;
|
|
524
574
|
return out;
|
|
525
575
|
});
|
|
@@ -566,18 +616,13 @@ function _ts_param(paramIndex, decorator) {
|
|
|
566
616
|
|
|
567
617
|
|
|
568
618
|
|
|
569
|
-
|
|
570
619
|
class FlowReferenceProvider {
|
|
571
620
|
provider;
|
|
572
621
|
constructor(provider){
|
|
573
622
|
this.provider = provider;
|
|
574
623
|
}
|
|
575
624
|
async flows() {
|
|
576
|
-
return (await this.repo(flow_definition_entity/* .FlowDefinition */.G)).find(
|
|
577
|
-
where: {
|
|
578
|
-
deletedAt: (0,external_typeorm_.IsNull)()
|
|
579
|
-
}
|
|
580
|
-
});
|
|
625
|
+
return (await this.repo(flow_definition_entity/* .FlowDefinition */.G)).find();
|
|
581
626
|
}
|
|
582
627
|
async repo(entity, manager) {
|
|
583
628
|
return manager ? manager.getRepository(entity) : this.provider.getRepository(entity);
|
|
@@ -606,10 +651,7 @@ class FlowReferenceProvider {
|
|
|
606
651
|
async rewriteFieldReferences(entityCode, from, to, manager) {
|
|
607
652
|
let count = 0;
|
|
608
653
|
const flows = await this.repo(flow_definition_entity/* .FlowDefinition */.G, manager);
|
|
609
|
-
|
|
610
|
-
for (const flow of (await flows.find({
|
|
611
|
-
withDeleted: true
|
|
612
|
-
}))){
|
|
654
|
+
for (const flow of (await flows.find())){
|
|
613
655
|
// The published flow and its unpublished draft both keep working after the rename.
|
|
614
656
|
const live = rewriteFlowField(flow.nodes, entityCode, from, to);
|
|
615
657
|
const draft = flow.draft ? rewriteFlowField(flow.draft.nodes, entityCode, from, to) : null;
|