@cadenza.io/service 1.10.17 → 1.11.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/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +127 -563
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +127 -563
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -1
package/dist/index.js
CHANGED
|
@@ -338,36 +338,29 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
338
338
|
"Handle Instance Update",
|
|
339
339
|
(ctx, emit) => {
|
|
340
340
|
var _a2;
|
|
341
|
-
const {
|
|
342
|
-
const { uuid: uuid4, serviceName, address, port, exposed } =
|
|
341
|
+
const { serviceInstance } = ctx;
|
|
342
|
+
const { uuid: uuid4, serviceName, address, port, exposed } = serviceInstance;
|
|
343
|
+
if (uuid4 === this.serviceInstanceId) return;
|
|
343
344
|
if (!this.instances.has(serviceName))
|
|
344
345
|
this.instances.set(serviceName, []);
|
|
345
346
|
const instances = this.instances.get(serviceName);
|
|
346
347
|
const existing = instances.find((i) => i.uuid === uuid4);
|
|
347
348
|
if (existing) {
|
|
348
|
-
Object.assign(existing,
|
|
349
|
+
Object.assign(existing, serviceInstance);
|
|
349
350
|
} else {
|
|
350
351
|
if (this.deputies.has(serviceName) || this.remoteSignals.has(serviceName) || this.remoteSignals.has("*") && this.serviceName !== serviceName) {
|
|
351
|
-
const
|
|
352
|
-
|
|
353
|
-
(_a2 = this.deputies.get(serviceName).map((d) => d.communicationType)) != null ? _a2 : []
|
|
354
|
-
)
|
|
352
|
+
const clientCreated = instances == null ? void 0 : instances.some(
|
|
353
|
+
(i) => i.address === address && i.port === port && i.clientCreated && i.isActive
|
|
355
354
|
);
|
|
356
|
-
if (!
|
|
357
|
-
communicationTypes.
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
communicationTypes
|
|
366
|
-
});
|
|
367
|
-
service_instance.clientCreated = true;
|
|
368
|
-
for (const instance of this.instances.get(serviceName)) {
|
|
369
|
-
if (instance.clientCreated) continue;
|
|
370
|
-
instance.clientCreated = true;
|
|
355
|
+
if (!clientCreated) {
|
|
356
|
+
const communicationTypes = Array.from(
|
|
357
|
+
new Set(
|
|
358
|
+
(_a2 = this.deputies.get(serviceName).map((d) => d.communicationType)) != null ? _a2 : []
|
|
359
|
+
)
|
|
360
|
+
);
|
|
361
|
+
if (!communicationTypes.includes("signal") && (this.remoteSignals.has(serviceName) || this.remoteSignals.has("*"))) {
|
|
362
|
+
communicationTypes.push("signal");
|
|
363
|
+
}
|
|
371
364
|
emit("meta.service_registry.dependee_registered", {
|
|
372
365
|
serviceName,
|
|
373
366
|
serviceInstanceId: uuid4,
|
|
@@ -376,9 +369,22 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
376
369
|
protocol: exposed ? "https" : "http",
|
|
377
370
|
communicationTypes
|
|
378
371
|
});
|
|
372
|
+
serviceInstance.clientCreated = true;
|
|
373
|
+
for (const instance of this.instances.get(serviceName)) {
|
|
374
|
+
if (instance.clientCreated) continue;
|
|
375
|
+
instance.clientCreated = true;
|
|
376
|
+
emit("meta.service_registry.dependee_registered", {
|
|
377
|
+
serviceName,
|
|
378
|
+
serviceInstanceId: uuid4,
|
|
379
|
+
serviceAddress: address,
|
|
380
|
+
servicePort: port,
|
|
381
|
+
protocol: exposed ? "https" : "http",
|
|
382
|
+
communicationTypes
|
|
383
|
+
});
|
|
384
|
+
}
|
|
379
385
|
}
|
|
380
386
|
}
|
|
381
|
-
instances.push(
|
|
387
|
+
instances.push(serviceInstance);
|
|
382
388
|
}
|
|
383
389
|
return true;
|
|
384
390
|
},
|
|
@@ -459,16 +465,20 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
459
465
|
"is_non_responsive",
|
|
460
466
|
"is_blocked",
|
|
461
467
|
"health",
|
|
462
|
-
"exposed"
|
|
468
|
+
"exposed",
|
|
469
|
+
"created"
|
|
463
470
|
]
|
|
464
471
|
}).doOn("meta.service_registry_sync_requested").then(
|
|
465
|
-
CadenzaService.createMetaTask(
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
472
|
+
CadenzaService.createMetaTask(
|
|
473
|
+
"Split service instances",
|
|
474
|
+
function* (ctx) {
|
|
475
|
+
const { serviceInstances } = ctx;
|
|
476
|
+
if (!serviceInstances) return;
|
|
477
|
+
for (const serviceInstance of serviceInstances) {
|
|
478
|
+
yield { serviceInstance };
|
|
479
|
+
}
|
|
470
480
|
}
|
|
471
|
-
|
|
481
|
+
).then(this.handleInstanceUpdateTask)
|
|
472
482
|
// .emits("meta.process_signal_queue_requested"), // TODO Has to happen after the endpoints has been created...
|
|
473
483
|
);
|
|
474
484
|
this.updateInstanceId = CadenzaService.createMetaTask(
|
|
@@ -572,7 +582,7 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
572
582
|
if (instancesToTry.length === 0) {
|
|
573
583
|
if (this.useSocket) {
|
|
574
584
|
emit(
|
|
575
|
-
`meta.service_registry.socket_failed:${context.
|
|
585
|
+
`meta.service_registry.socket_failed:${context.__fetchId}`,
|
|
576
586
|
context
|
|
577
587
|
);
|
|
578
588
|
}
|
|
@@ -585,17 +595,18 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
585
595
|
selected = instancesToTry[Math.floor(Math.random() * instancesToTry.length)];
|
|
586
596
|
}
|
|
587
597
|
context.__instance = selected.uuid;
|
|
598
|
+
context.__fetchId = `${selected.address}_${selected.port}`;
|
|
588
599
|
context.__triedInstances = triedInstances;
|
|
589
600
|
context.__triedInstances.push(selected.uuid);
|
|
590
601
|
context.__retries = retries;
|
|
591
602
|
if (this.useSocket) {
|
|
592
603
|
emit(
|
|
593
|
-
`meta.service_registry.selected_instance_for_socket:${context.
|
|
604
|
+
`meta.service_registry.selected_instance_for_socket:${context.__fetchId}`,
|
|
594
605
|
context
|
|
595
606
|
);
|
|
596
607
|
} else {
|
|
597
608
|
emit(
|
|
598
|
-
`meta.service_registry.selected_instance_for_fetch:${context.
|
|
609
|
+
`meta.service_registry.selected_instance_for_fetch:${context.__fetchId}`,
|
|
599
610
|
context
|
|
600
611
|
);
|
|
601
612
|
}
|
|
@@ -625,12 +636,12 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
625
636
|
errored: true
|
|
626
637
|
};
|
|
627
638
|
}
|
|
628
|
-
const
|
|
639
|
+
const self = (_a2 = this.instances.get(this.serviceName)) == null ? void 0 : _a2.find((i) => i.uuid === this.serviceInstanceId);
|
|
629
640
|
return __spreadProps(__spreadValues({}, ctx), {
|
|
630
641
|
__status: "ok",
|
|
631
|
-
__numberOfRunningGraphs: (_b2 =
|
|
632
|
-
__health: (_c2 =
|
|
633
|
-
__active: (_d2 =
|
|
642
|
+
__numberOfRunningGraphs: (_b2 = self == null ? void 0 : self.numberOfRunningGraphs) != null ? _b2 : 0,
|
|
643
|
+
__health: (_c2 = self == null ? void 0 : self.health) != null ? _c2 : {},
|
|
644
|
+
__active: (_d2 = self == null ? void 0 : self.isActive) != null ? _d2 : false
|
|
634
645
|
});
|
|
635
646
|
}).doOn("meta.socket.status_check_requested");
|
|
636
647
|
this.insertServiceTask = CadenzaService.createCadenzaDBInsertTask(
|
|
@@ -759,11 +770,11 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
759
770
|
"Setup service",
|
|
760
771
|
(ctx) => {
|
|
761
772
|
var _a2, _b2;
|
|
762
|
-
const {
|
|
763
|
-
this.serviceInstanceId = (_a2 =
|
|
773
|
+
const { serviceInstance, data, __useSocket, __retryCount } = ctx;
|
|
774
|
+
this.serviceInstanceId = (_a2 = serviceInstance == null ? void 0 : serviceInstance.uuid) != null ? _a2 : data == null ? void 0 : data.uuid;
|
|
764
775
|
this.instances.set(
|
|
765
|
-
(_b2 = data == null ? void 0 : data.service_name) != null ? _b2 :
|
|
766
|
-
[__spreadValues({},
|
|
776
|
+
(_b2 = data == null ? void 0 : data.service_name) != null ? _b2 : serviceInstance == null ? void 0 : serviceInstance.service_name,
|
|
777
|
+
[__spreadValues({}, serviceInstance != null ? serviceInstance : data)]
|
|
767
778
|
);
|
|
768
779
|
this.useSocket = __useSocket;
|
|
769
780
|
this.retryCount = __retryCount;
|
|
@@ -1173,17 +1184,12 @@ var RestController = class _RestController {
|
|
|
1173
1184
|
CadenzaService.createMetaTask(
|
|
1174
1185
|
"Setup fetch client",
|
|
1175
1186
|
(ctx, emit) => {
|
|
1176
|
-
const {
|
|
1177
|
-
serviceName,
|
|
1178
|
-
serviceInstanceId,
|
|
1179
|
-
serviceAddress,
|
|
1180
|
-
servicePort,
|
|
1181
|
-
protocol
|
|
1182
|
-
} = ctx;
|
|
1187
|
+
const { serviceName, serviceAddress, servicePort, protocol } = ctx;
|
|
1183
1188
|
const port = protocol === "https" ? 443 : servicePort;
|
|
1184
1189
|
const URL = `${protocol}://${serviceAddress}:${port}`;
|
|
1190
|
+
const fetchId = `${serviceAddress}_${port}`;
|
|
1185
1191
|
CadenzaService.createMetaTask(
|
|
1186
|
-
|
|
1192
|
+
`Send Handshake to ${URL}`,
|
|
1187
1193
|
(ctx2, emit2) => __async(null, null, function* () {
|
|
1188
1194
|
var _a2;
|
|
1189
1195
|
console.log("Sending handshake", ctx2);
|
|
@@ -1201,10 +1207,7 @@ var RestController = class _RestController {
|
|
|
1201
1207
|
(_a2 = result.__error) != null ? _a2 : `Failed to connect to service ${serviceName} ${ctx2.serviceInstanceId}`
|
|
1202
1208
|
);
|
|
1203
1209
|
}
|
|
1204
|
-
console.log(
|
|
1205
|
-
`Connected to service ${serviceName} ${ctx2.serviceInstanceId}`,
|
|
1206
|
-
result
|
|
1207
|
-
);
|
|
1210
|
+
console.log(`Connected to service ${serviceName} ${URL}`, result);
|
|
1208
1211
|
for (const communicationType of ctx2.communicationTypes) {
|
|
1209
1212
|
emit2("meta.fetch.service_communication_established", {
|
|
1210
1213
|
data: {
|
|
@@ -1223,9 +1226,9 @@ var RestController = class _RestController {
|
|
|
1223
1226
|
retryDelayMax: 5e3,
|
|
1224
1227
|
retryDelayFactor: 1.5
|
|
1225
1228
|
}
|
|
1226
|
-
).doOn(`meta.fetch.handshake_requested:${
|
|
1229
|
+
).doOn(`meta.fetch.handshake_requested:${fetchId}`).emits("meta.fetch.handshake_complete").emitsOnFail("meta.fetch.handshake_failed");
|
|
1227
1230
|
CadenzaService.createMetaTask(
|
|
1228
|
-
|
|
1231
|
+
`Delegate flow to REST server ${URL}`,
|
|
1229
1232
|
(ctx2, emit2) => __async(null, null, function* () {
|
|
1230
1233
|
if (ctx2.__remoteRoutineName === void 0) {
|
|
1231
1234
|
return;
|
|
@@ -1256,11 +1259,11 @@ var RestController = class _RestController {
|
|
|
1256
1259
|
}),
|
|
1257
1260
|
"Sends delegation request"
|
|
1258
1261
|
).doOn(
|
|
1259
|
-
`meta.service_registry.selected_instance_for_fetch:${
|
|
1260
|
-
`meta.service_registry.socket_failed:${
|
|
1262
|
+
`meta.service_registry.selected_instance_for_fetch:${fetchId}`,
|
|
1263
|
+
`meta.service_registry.socket_failed:${fetchId}`
|
|
1261
1264
|
).emitsOnFail("meta.fetch.delegate_failed");
|
|
1262
1265
|
CadenzaService.createMetaTask(
|
|
1263
|
-
|
|
1266
|
+
`Transmit signal to server ${URL}`,
|
|
1264
1267
|
(ctx2, emit2) => __async(null, null, function* () {
|
|
1265
1268
|
if (ctx2.__signalName === void 0) {
|
|
1266
1269
|
return;
|
|
@@ -1288,12 +1291,12 @@ var RestController = class _RestController {
|
|
|
1288
1291
|
}),
|
|
1289
1292
|
"Sends signal request"
|
|
1290
1293
|
).doOn(
|
|
1291
|
-
`meta.service_registry.selected_instance_for_fetch:${
|
|
1294
|
+
`meta.service_registry.selected_instance_for_fetch:${fetchId}`,
|
|
1292
1295
|
`meta.signal_controller.remote_signal_registered:${serviceName}`,
|
|
1293
1296
|
"meta.signal_controller.wildcard_signal_registered"
|
|
1294
1297
|
).emitsOnFail("meta.fetch.signal_transmission_failed");
|
|
1295
1298
|
CadenzaService.createMetaTask(
|
|
1296
|
-
|
|
1299
|
+
`Request status from ${URL}`,
|
|
1297
1300
|
(ctx2) => __async(null, null, function* () {
|
|
1298
1301
|
let status;
|
|
1299
1302
|
try {
|
|
@@ -1316,12 +1319,20 @@ var RestController = class _RestController {
|
|
|
1316
1319
|
CadenzaService.createMetaTask(
|
|
1317
1320
|
"Prepare handshake",
|
|
1318
1321
|
(ctx, emit) => {
|
|
1319
|
-
const {
|
|
1320
|
-
|
|
1322
|
+
const {
|
|
1323
|
+
serviceName,
|
|
1324
|
+
serviceInstanceId,
|
|
1325
|
+
communicationTypes,
|
|
1326
|
+
serviceAddress,
|
|
1327
|
+
servicePort
|
|
1328
|
+
} = ctx;
|
|
1329
|
+
const fetchId = `${serviceAddress}_${servicePort}`;
|
|
1330
|
+
emit(`meta.fetch.handshake_requested:${fetchId}`, {
|
|
1321
1331
|
serviceInstanceId,
|
|
1322
1332
|
serviceName,
|
|
1323
1333
|
communicationTypes,
|
|
1324
1334
|
handshakeData: {
|
|
1335
|
+
instanceId: CadenzaService.serviceRegistry.serviceInstanceId
|
|
1325
1336
|
// JWT token...
|
|
1326
1337
|
}
|
|
1327
1338
|
});
|
|
@@ -1533,16 +1544,12 @@ var SocketController = class _SocketController {
|
|
|
1533
1544
|
CadenzaService.createMetaTask(
|
|
1534
1545
|
"Connect to socket server",
|
|
1535
1546
|
(ctx) => {
|
|
1536
|
-
const {
|
|
1537
|
-
serviceName,
|
|
1538
|
-
serviceInstanceId,
|
|
1539
|
-
serviceAddress,
|
|
1540
|
-
servicePort,
|
|
1541
|
-
protocol
|
|
1542
|
-
} = ctx;
|
|
1547
|
+
const { serviceName, serviceAddress, servicePort, protocol } = ctx;
|
|
1543
1548
|
const socketProtocol = protocol === "https" ? "wss" : "ws";
|
|
1544
1549
|
const port = protocol === "https" ? 443 : servicePort;
|
|
1545
|
-
const
|
|
1550
|
+
const URL = `${socketProtocol}://${serviceAddress}:${port}`;
|
|
1551
|
+
const fetchId = `${serviceAddress}_${port}`;
|
|
1552
|
+
const socket = (0, import_socket2.io)(URL, {
|
|
1546
1553
|
reconnection: true,
|
|
1547
1554
|
reconnectionAttempts: 20,
|
|
1548
1555
|
reconnectionDelay: 1e3,
|
|
@@ -1550,11 +1557,7 @@ var SocketController = class _SocketController {
|
|
|
1550
1557
|
randomizationFactor: 0.5,
|
|
1551
1558
|
retries: 5
|
|
1552
1559
|
});
|
|
1553
|
-
console.log(
|
|
1554
|
-
"SocketClient: Connecting to",
|
|
1555
|
-
`${socketProtocol}://${serviceAddress}:${port}`,
|
|
1556
|
-
socket
|
|
1557
|
-
);
|
|
1560
|
+
console.log("SocketClient: Connecting to", URL, socket);
|
|
1558
1561
|
socket.on("connect", () => {
|
|
1559
1562
|
console.log("SocketClient: CONNECTED");
|
|
1560
1563
|
CadenzaService.broker.emit("meta.socket_client.connected", ctx);
|
|
@@ -1566,7 +1569,7 @@ var SocketController = class _SocketController {
|
|
|
1566
1569
|
socket.on("delegation_progress", (ctx2) => {
|
|
1567
1570
|
CadenzaService.broker.emit(
|
|
1568
1571
|
`meta.socket_client.delegation_progress:${ctx2.__metadata.__deputyExecId}`,
|
|
1569
|
-
|
|
1572
|
+
ctx2
|
|
1570
1573
|
);
|
|
1571
1574
|
});
|
|
1572
1575
|
socket.on("status_update", (status) => {
|
|
@@ -1581,13 +1584,13 @@ var SocketController = class _SocketController {
|
|
|
1581
1584
|
CadenzaService.broker.emit("meta.socket_client.error", err);
|
|
1582
1585
|
});
|
|
1583
1586
|
socket.on("disconnect", () => {
|
|
1584
|
-
console.log("SocketClient: Disconnected",
|
|
1587
|
+
console.log("SocketClient: Disconnected", URL);
|
|
1585
1588
|
CadenzaService.broker.emit("meta.socket_client.disconnected", {
|
|
1586
|
-
|
|
1589
|
+
URL
|
|
1587
1590
|
});
|
|
1588
1591
|
});
|
|
1589
1592
|
CadenzaService.createMetaTask(
|
|
1590
|
-
`Delegate flow to ${
|
|
1593
|
+
`Delegate flow to ${URL}`,
|
|
1591
1594
|
(ctx2, emit) => __async(null, null, function* () {
|
|
1592
1595
|
if (ctx2.__remoteRoutineName === void 0) {
|
|
1593
1596
|
return;
|
|
@@ -1600,10 +1603,7 @@ var SocketController = class _SocketController {
|
|
|
1600
1603
|
__error: `Timeout error: ${err}`,
|
|
1601
1604
|
errored: true
|
|
1602
1605
|
}, ctx2), ctx2.__metadata);
|
|
1603
|
-
emit(
|
|
1604
|
-
`meta.socket_client.delegate_failed:${serviceInstanceId}`,
|
|
1605
|
-
resultContext
|
|
1606
|
-
);
|
|
1606
|
+
emit(`meta.socket_client.delegate_failed`, resultContext);
|
|
1607
1607
|
return;
|
|
1608
1608
|
}
|
|
1609
1609
|
const metadata = resultContext.__metadata;
|
|
@@ -1615,12 +1615,10 @@ var SocketController = class _SocketController {
|
|
|
1615
1615
|
);
|
|
1616
1616
|
});
|
|
1617
1617
|
}),
|
|
1618
|
-
`Delegate flow to
|
|
1619
|
-
).doOn(
|
|
1620
|
-
`meta.service_registry.selected_instance_for_socket:${serviceInstanceId}`
|
|
1621
|
-
);
|
|
1618
|
+
`Delegate flow to service ${serviceName} with address ${URL}`
|
|
1619
|
+
).doOn(`meta.service_registry.selected_instance_for_socket:${fetchId}`);
|
|
1622
1620
|
CadenzaService.createMetaTask(
|
|
1623
|
-
`Transmit signal to ${
|
|
1621
|
+
`Transmit signal to ${URL}`,
|
|
1624
1622
|
(ctx2, emit) => __async(null, null, function* () {
|
|
1625
1623
|
var _a2;
|
|
1626
1624
|
if (ctx2.__signalName === void 0) {
|
|
@@ -1634,7 +1632,7 @@ var SocketController = class _SocketController {
|
|
|
1634
1632
|
errored: true
|
|
1635
1633
|
}, ctx2), ctx2.__metadata);
|
|
1636
1634
|
emit(
|
|
1637
|
-
`meta.socket_client.signal_transmission_failed
|
|
1635
|
+
`meta.socket_client.signal_transmission_failed`,
|
|
1638
1636
|
response
|
|
1639
1637
|
);
|
|
1640
1638
|
return;
|
|
@@ -1647,15 +1645,13 @@ var SocketController = class _SocketController {
|
|
|
1647
1645
|
}
|
|
1648
1646
|
});
|
|
1649
1647
|
}),
|
|
1650
|
-
`Transmits signal to
|
|
1651
|
-
).doOn(
|
|
1652
|
-
`meta.service_registry.selected_instance_for_socket:${serviceInstanceId}`
|
|
1653
|
-
);
|
|
1648
|
+
`Transmits signal to service ${serviceName} with address ${URL}`
|
|
1649
|
+
).doOn(`meta.service_registry.selected_instance_for_socket:${fetchId}`);
|
|
1654
1650
|
CadenzaService.createMetaTask(
|
|
1655
|
-
|
|
1651
|
+
`Shutdown SocketClient ${URL}`,
|
|
1656
1652
|
() => socket.close(),
|
|
1657
1653
|
"Shuts down the socket client"
|
|
1658
|
-
).doOn(
|
|
1654
|
+
).doOn(`meta.socket_shutdown_requested:${fetchId}`).emits("meta.socket_client_shutdown_complete");
|
|
1659
1655
|
return true;
|
|
1660
1656
|
},
|
|
1661
1657
|
"Connects to a specified socket server"
|
|
@@ -2012,443 +2008,8 @@ var GraphMetadataController = class _GraphMetadataController {
|
|
|
2012
2008
|
}
|
|
2013
2009
|
};
|
|
2014
2010
|
|
|
2015
|
-
//
|
|
2016
|
-
var
|
|
2017
|
-
var freeGlobal_default = freeGlobal;
|
|
2018
|
-
|
|
2019
|
-
// node_modules/lodash-es/_root.js
|
|
2020
|
-
var freeSelf = typeof self == "object" && self && self.Object === Object && self;
|
|
2021
|
-
var root = freeGlobal_default || freeSelf || Function("return this")();
|
|
2022
|
-
var root_default = root;
|
|
2023
|
-
|
|
2024
|
-
// node_modules/lodash-es/_Symbol.js
|
|
2025
|
-
var Symbol2 = root_default.Symbol;
|
|
2026
|
-
var Symbol_default = Symbol2;
|
|
2027
|
-
|
|
2028
|
-
// node_modules/lodash-es/_getRawTag.js
|
|
2029
|
-
var objectProto = Object.prototype;
|
|
2030
|
-
var hasOwnProperty = objectProto.hasOwnProperty;
|
|
2031
|
-
var nativeObjectToString = objectProto.toString;
|
|
2032
|
-
var symToStringTag = Symbol_default ? Symbol_default.toStringTag : void 0;
|
|
2033
|
-
function getRawTag(value) {
|
|
2034
|
-
var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];
|
|
2035
|
-
try {
|
|
2036
|
-
value[symToStringTag] = void 0;
|
|
2037
|
-
var unmasked = true;
|
|
2038
|
-
} catch (e) {
|
|
2039
|
-
}
|
|
2040
|
-
var result = nativeObjectToString.call(value);
|
|
2041
|
-
if (unmasked) {
|
|
2042
|
-
if (isOwn) {
|
|
2043
|
-
value[symToStringTag] = tag;
|
|
2044
|
-
} else {
|
|
2045
|
-
delete value[symToStringTag];
|
|
2046
|
-
}
|
|
2047
|
-
}
|
|
2048
|
-
return result;
|
|
2049
|
-
}
|
|
2050
|
-
var getRawTag_default = getRawTag;
|
|
2051
|
-
|
|
2052
|
-
// node_modules/lodash-es/_objectToString.js
|
|
2053
|
-
var objectProto2 = Object.prototype;
|
|
2054
|
-
var nativeObjectToString2 = objectProto2.toString;
|
|
2055
|
-
function objectToString(value) {
|
|
2056
|
-
return nativeObjectToString2.call(value);
|
|
2057
|
-
}
|
|
2058
|
-
var objectToString_default = objectToString;
|
|
2059
|
-
|
|
2060
|
-
// node_modules/lodash-es/_baseGetTag.js
|
|
2061
|
-
var nullTag = "[object Null]";
|
|
2062
|
-
var undefinedTag = "[object Undefined]";
|
|
2063
|
-
var symToStringTag2 = Symbol_default ? Symbol_default.toStringTag : void 0;
|
|
2064
|
-
function baseGetTag(value) {
|
|
2065
|
-
if (value == null) {
|
|
2066
|
-
return value === void 0 ? undefinedTag : nullTag;
|
|
2067
|
-
}
|
|
2068
|
-
return symToStringTag2 && symToStringTag2 in Object(value) ? getRawTag_default(value) : objectToString_default(value);
|
|
2069
|
-
}
|
|
2070
|
-
var baseGetTag_default = baseGetTag;
|
|
2071
|
-
|
|
2072
|
-
// node_modules/lodash-es/isObjectLike.js
|
|
2073
|
-
function isObjectLike(value) {
|
|
2074
|
-
return value != null && typeof value == "object";
|
|
2075
|
-
}
|
|
2076
|
-
var isObjectLike_default = isObjectLike;
|
|
2077
|
-
|
|
2078
|
-
// node_modules/lodash-es/isSymbol.js
|
|
2079
|
-
var symbolTag = "[object Symbol]";
|
|
2080
|
-
function isSymbol(value) {
|
|
2081
|
-
return typeof value == "symbol" || isObjectLike_default(value) && baseGetTag_default(value) == symbolTag;
|
|
2082
|
-
}
|
|
2083
|
-
var isSymbol_default = isSymbol;
|
|
2084
|
-
|
|
2085
|
-
// node_modules/lodash-es/_arrayMap.js
|
|
2086
|
-
function arrayMap(array, iteratee) {
|
|
2087
|
-
var index = -1, length = array == null ? 0 : array.length, result = Array(length);
|
|
2088
|
-
while (++index < length) {
|
|
2089
|
-
result[index] = iteratee(array[index], index, array);
|
|
2090
|
-
}
|
|
2091
|
-
return result;
|
|
2092
|
-
}
|
|
2093
|
-
var arrayMap_default = arrayMap;
|
|
2094
|
-
|
|
2095
|
-
// node_modules/lodash-es/isArray.js
|
|
2096
|
-
var isArray = Array.isArray;
|
|
2097
|
-
var isArray_default = isArray;
|
|
2098
|
-
|
|
2099
|
-
// node_modules/lodash-es/_baseToString.js
|
|
2100
|
-
var INFINITY = 1 / 0;
|
|
2101
|
-
var symbolProto = Symbol_default ? Symbol_default.prototype : void 0;
|
|
2102
|
-
var symbolToString = symbolProto ? symbolProto.toString : void 0;
|
|
2103
|
-
function baseToString(value) {
|
|
2104
|
-
if (typeof value == "string") {
|
|
2105
|
-
return value;
|
|
2106
|
-
}
|
|
2107
|
-
if (isArray_default(value)) {
|
|
2108
|
-
return arrayMap_default(value, baseToString) + "";
|
|
2109
|
-
}
|
|
2110
|
-
if (isSymbol_default(value)) {
|
|
2111
|
-
return symbolToString ? symbolToString.call(value) : "";
|
|
2112
|
-
}
|
|
2113
|
-
var result = value + "";
|
|
2114
|
-
return result == "0" && 1 / value == -INFINITY ? "-0" : result;
|
|
2115
|
-
}
|
|
2116
|
-
var baseToString_default = baseToString;
|
|
2117
|
-
|
|
2118
|
-
// node_modules/lodash-es/toString.js
|
|
2119
|
-
function toString(value) {
|
|
2120
|
-
return value == null ? "" : baseToString_default(value);
|
|
2121
|
-
}
|
|
2122
|
-
var toString_default = toString;
|
|
2123
|
-
|
|
2124
|
-
// node_modules/lodash-es/_arrayReduce.js
|
|
2125
|
-
function arrayReduce(array, iteratee, accumulator, initAccum) {
|
|
2126
|
-
var index = -1, length = array == null ? 0 : array.length;
|
|
2127
|
-
if (initAccum && length) {
|
|
2128
|
-
accumulator = array[++index];
|
|
2129
|
-
}
|
|
2130
|
-
while (++index < length) {
|
|
2131
|
-
accumulator = iteratee(accumulator, array[index], index, array);
|
|
2132
|
-
}
|
|
2133
|
-
return accumulator;
|
|
2134
|
-
}
|
|
2135
|
-
var arrayReduce_default = arrayReduce;
|
|
2136
|
-
|
|
2137
|
-
// node_modules/lodash-es/_basePropertyOf.js
|
|
2138
|
-
function basePropertyOf(object) {
|
|
2139
|
-
return function(key) {
|
|
2140
|
-
return object == null ? void 0 : object[key];
|
|
2141
|
-
};
|
|
2142
|
-
}
|
|
2143
|
-
var basePropertyOf_default = basePropertyOf;
|
|
2144
|
-
|
|
2145
|
-
// node_modules/lodash-es/_deburrLetter.js
|
|
2146
|
-
var deburredLetters = {
|
|
2147
|
-
// Latin-1 Supplement block.
|
|
2148
|
-
"\xC0": "A",
|
|
2149
|
-
"\xC1": "A",
|
|
2150
|
-
"\xC2": "A",
|
|
2151
|
-
"\xC3": "A",
|
|
2152
|
-
"\xC4": "A",
|
|
2153
|
-
"\xC5": "A",
|
|
2154
|
-
"\xE0": "a",
|
|
2155
|
-
"\xE1": "a",
|
|
2156
|
-
"\xE2": "a",
|
|
2157
|
-
"\xE3": "a",
|
|
2158
|
-
"\xE4": "a",
|
|
2159
|
-
"\xE5": "a",
|
|
2160
|
-
"\xC7": "C",
|
|
2161
|
-
"\xE7": "c",
|
|
2162
|
-
"\xD0": "D",
|
|
2163
|
-
"\xF0": "d",
|
|
2164
|
-
"\xC8": "E",
|
|
2165
|
-
"\xC9": "E",
|
|
2166
|
-
"\xCA": "E",
|
|
2167
|
-
"\xCB": "E",
|
|
2168
|
-
"\xE8": "e",
|
|
2169
|
-
"\xE9": "e",
|
|
2170
|
-
"\xEA": "e",
|
|
2171
|
-
"\xEB": "e",
|
|
2172
|
-
"\xCC": "I",
|
|
2173
|
-
"\xCD": "I",
|
|
2174
|
-
"\xCE": "I",
|
|
2175
|
-
"\xCF": "I",
|
|
2176
|
-
"\xEC": "i",
|
|
2177
|
-
"\xED": "i",
|
|
2178
|
-
"\xEE": "i",
|
|
2179
|
-
"\xEF": "i",
|
|
2180
|
-
"\xD1": "N",
|
|
2181
|
-
"\xF1": "n",
|
|
2182
|
-
"\xD2": "O",
|
|
2183
|
-
"\xD3": "O",
|
|
2184
|
-
"\xD4": "O",
|
|
2185
|
-
"\xD5": "O",
|
|
2186
|
-
"\xD6": "O",
|
|
2187
|
-
"\xD8": "O",
|
|
2188
|
-
"\xF2": "o",
|
|
2189
|
-
"\xF3": "o",
|
|
2190
|
-
"\xF4": "o",
|
|
2191
|
-
"\xF5": "o",
|
|
2192
|
-
"\xF6": "o",
|
|
2193
|
-
"\xF8": "o",
|
|
2194
|
-
"\xD9": "U",
|
|
2195
|
-
"\xDA": "U",
|
|
2196
|
-
"\xDB": "U",
|
|
2197
|
-
"\xDC": "U",
|
|
2198
|
-
"\xF9": "u",
|
|
2199
|
-
"\xFA": "u",
|
|
2200
|
-
"\xFB": "u",
|
|
2201
|
-
"\xFC": "u",
|
|
2202
|
-
"\xDD": "Y",
|
|
2203
|
-
"\xFD": "y",
|
|
2204
|
-
"\xFF": "y",
|
|
2205
|
-
"\xC6": "Ae",
|
|
2206
|
-
"\xE6": "ae",
|
|
2207
|
-
"\xDE": "Th",
|
|
2208
|
-
"\xFE": "th",
|
|
2209
|
-
"\xDF": "ss",
|
|
2210
|
-
// Latin Extended-A block.
|
|
2211
|
-
"\u0100": "A",
|
|
2212
|
-
"\u0102": "A",
|
|
2213
|
-
"\u0104": "A",
|
|
2214
|
-
"\u0101": "a",
|
|
2215
|
-
"\u0103": "a",
|
|
2216
|
-
"\u0105": "a",
|
|
2217
|
-
"\u0106": "C",
|
|
2218
|
-
"\u0108": "C",
|
|
2219
|
-
"\u010A": "C",
|
|
2220
|
-
"\u010C": "C",
|
|
2221
|
-
"\u0107": "c",
|
|
2222
|
-
"\u0109": "c",
|
|
2223
|
-
"\u010B": "c",
|
|
2224
|
-
"\u010D": "c",
|
|
2225
|
-
"\u010E": "D",
|
|
2226
|
-
"\u0110": "D",
|
|
2227
|
-
"\u010F": "d",
|
|
2228
|
-
"\u0111": "d",
|
|
2229
|
-
"\u0112": "E",
|
|
2230
|
-
"\u0114": "E",
|
|
2231
|
-
"\u0116": "E",
|
|
2232
|
-
"\u0118": "E",
|
|
2233
|
-
"\u011A": "E",
|
|
2234
|
-
"\u0113": "e",
|
|
2235
|
-
"\u0115": "e",
|
|
2236
|
-
"\u0117": "e",
|
|
2237
|
-
"\u0119": "e",
|
|
2238
|
-
"\u011B": "e",
|
|
2239
|
-
"\u011C": "G",
|
|
2240
|
-
"\u011E": "G",
|
|
2241
|
-
"\u0120": "G",
|
|
2242
|
-
"\u0122": "G",
|
|
2243
|
-
"\u011D": "g",
|
|
2244
|
-
"\u011F": "g",
|
|
2245
|
-
"\u0121": "g",
|
|
2246
|
-
"\u0123": "g",
|
|
2247
|
-
"\u0124": "H",
|
|
2248
|
-
"\u0126": "H",
|
|
2249
|
-
"\u0125": "h",
|
|
2250
|
-
"\u0127": "h",
|
|
2251
|
-
"\u0128": "I",
|
|
2252
|
-
"\u012A": "I",
|
|
2253
|
-
"\u012C": "I",
|
|
2254
|
-
"\u012E": "I",
|
|
2255
|
-
"\u0130": "I",
|
|
2256
|
-
"\u0129": "i",
|
|
2257
|
-
"\u012B": "i",
|
|
2258
|
-
"\u012D": "i",
|
|
2259
|
-
"\u012F": "i",
|
|
2260
|
-
"\u0131": "i",
|
|
2261
|
-
"\u0134": "J",
|
|
2262
|
-
"\u0135": "j",
|
|
2263
|
-
"\u0136": "K",
|
|
2264
|
-
"\u0137": "k",
|
|
2265
|
-
"\u0138": "k",
|
|
2266
|
-
"\u0139": "L",
|
|
2267
|
-
"\u013B": "L",
|
|
2268
|
-
"\u013D": "L",
|
|
2269
|
-
"\u013F": "L",
|
|
2270
|
-
"\u0141": "L",
|
|
2271
|
-
"\u013A": "l",
|
|
2272
|
-
"\u013C": "l",
|
|
2273
|
-
"\u013E": "l",
|
|
2274
|
-
"\u0140": "l",
|
|
2275
|
-
"\u0142": "l",
|
|
2276
|
-
"\u0143": "N",
|
|
2277
|
-
"\u0145": "N",
|
|
2278
|
-
"\u0147": "N",
|
|
2279
|
-
"\u014A": "N",
|
|
2280
|
-
"\u0144": "n",
|
|
2281
|
-
"\u0146": "n",
|
|
2282
|
-
"\u0148": "n",
|
|
2283
|
-
"\u014B": "n",
|
|
2284
|
-
"\u014C": "O",
|
|
2285
|
-
"\u014E": "O",
|
|
2286
|
-
"\u0150": "O",
|
|
2287
|
-
"\u014D": "o",
|
|
2288
|
-
"\u014F": "o",
|
|
2289
|
-
"\u0151": "o",
|
|
2290
|
-
"\u0154": "R",
|
|
2291
|
-
"\u0156": "R",
|
|
2292
|
-
"\u0158": "R",
|
|
2293
|
-
"\u0155": "r",
|
|
2294
|
-
"\u0157": "r",
|
|
2295
|
-
"\u0159": "r",
|
|
2296
|
-
"\u015A": "S",
|
|
2297
|
-
"\u015C": "S",
|
|
2298
|
-
"\u015E": "S",
|
|
2299
|
-
"\u0160": "S",
|
|
2300
|
-
"\u015B": "s",
|
|
2301
|
-
"\u015D": "s",
|
|
2302
|
-
"\u015F": "s",
|
|
2303
|
-
"\u0161": "s",
|
|
2304
|
-
"\u0162": "T",
|
|
2305
|
-
"\u0164": "T",
|
|
2306
|
-
"\u0166": "T",
|
|
2307
|
-
"\u0163": "t",
|
|
2308
|
-
"\u0165": "t",
|
|
2309
|
-
"\u0167": "t",
|
|
2310
|
-
"\u0168": "U",
|
|
2311
|
-
"\u016A": "U",
|
|
2312
|
-
"\u016C": "U",
|
|
2313
|
-
"\u016E": "U",
|
|
2314
|
-
"\u0170": "U",
|
|
2315
|
-
"\u0172": "U",
|
|
2316
|
-
"\u0169": "u",
|
|
2317
|
-
"\u016B": "u",
|
|
2318
|
-
"\u016D": "u",
|
|
2319
|
-
"\u016F": "u",
|
|
2320
|
-
"\u0171": "u",
|
|
2321
|
-
"\u0173": "u",
|
|
2322
|
-
"\u0174": "W",
|
|
2323
|
-
"\u0175": "w",
|
|
2324
|
-
"\u0176": "Y",
|
|
2325
|
-
"\u0177": "y",
|
|
2326
|
-
"\u0178": "Y",
|
|
2327
|
-
"\u0179": "Z",
|
|
2328
|
-
"\u017B": "Z",
|
|
2329
|
-
"\u017D": "Z",
|
|
2330
|
-
"\u017A": "z",
|
|
2331
|
-
"\u017C": "z",
|
|
2332
|
-
"\u017E": "z",
|
|
2333
|
-
"\u0132": "IJ",
|
|
2334
|
-
"\u0133": "ij",
|
|
2335
|
-
"\u0152": "Oe",
|
|
2336
|
-
"\u0153": "oe",
|
|
2337
|
-
"\u0149": "'n",
|
|
2338
|
-
"\u017F": "s"
|
|
2339
|
-
};
|
|
2340
|
-
var deburrLetter = basePropertyOf_default(deburredLetters);
|
|
2341
|
-
var deburrLetter_default = deburrLetter;
|
|
2342
|
-
|
|
2343
|
-
// node_modules/lodash-es/deburr.js
|
|
2344
|
-
var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
|
|
2345
|
-
var rsComboMarksRange = "\\u0300-\\u036f";
|
|
2346
|
-
var reComboHalfMarksRange = "\\ufe20-\\ufe2f";
|
|
2347
|
-
var rsComboSymbolsRange = "\\u20d0-\\u20ff";
|
|
2348
|
-
var rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;
|
|
2349
|
-
var rsCombo = "[" + rsComboRange + "]";
|
|
2350
|
-
var reComboMark = RegExp(rsCombo, "g");
|
|
2351
|
-
function deburr(string) {
|
|
2352
|
-
string = toString_default(string);
|
|
2353
|
-
return string && string.replace(reLatin, deburrLetter_default).replace(reComboMark, "");
|
|
2354
|
-
}
|
|
2355
|
-
var deburr_default = deburr;
|
|
2356
|
-
|
|
2357
|
-
// node_modules/lodash-es/_asciiWords.js
|
|
2358
|
-
var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
|
|
2359
|
-
function asciiWords(string) {
|
|
2360
|
-
return string.match(reAsciiWord) || [];
|
|
2361
|
-
}
|
|
2362
|
-
var asciiWords_default = asciiWords;
|
|
2363
|
-
|
|
2364
|
-
// node_modules/lodash-es/_hasUnicodeWord.js
|
|
2365
|
-
var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;
|
|
2366
|
-
function hasUnicodeWord(string) {
|
|
2367
|
-
return reHasUnicodeWord.test(string);
|
|
2368
|
-
}
|
|
2369
|
-
var hasUnicodeWord_default = hasUnicodeWord;
|
|
2370
|
-
|
|
2371
|
-
// node_modules/lodash-es/_unicodeWords.js
|
|
2372
|
-
var rsAstralRange = "\\ud800-\\udfff";
|
|
2373
|
-
var rsComboMarksRange2 = "\\u0300-\\u036f";
|
|
2374
|
-
var reComboHalfMarksRange2 = "\\ufe20-\\ufe2f";
|
|
2375
|
-
var rsComboSymbolsRange2 = "\\u20d0-\\u20ff";
|
|
2376
|
-
var rsComboRange2 = rsComboMarksRange2 + reComboHalfMarksRange2 + rsComboSymbolsRange2;
|
|
2377
|
-
var rsDingbatRange = "\\u2700-\\u27bf";
|
|
2378
|
-
var rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff";
|
|
2379
|
-
var rsMathOpRange = "\\xac\\xb1\\xd7\\xf7";
|
|
2380
|
-
var rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf";
|
|
2381
|
-
var rsPunctuationRange = "\\u2000-\\u206f";
|
|
2382
|
-
var rsSpaceRange = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000";
|
|
2383
|
-
var rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde";
|
|
2384
|
-
var rsVarRange = "\\ufe0e\\ufe0f";
|
|
2385
|
-
var rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;
|
|
2386
|
-
var rsApos = "['\u2019]";
|
|
2387
|
-
var rsBreak = "[" + rsBreakRange + "]";
|
|
2388
|
-
var rsCombo2 = "[" + rsComboRange2 + "]";
|
|
2389
|
-
var rsDigits = "\\d+";
|
|
2390
|
-
var rsDingbat = "[" + rsDingbatRange + "]";
|
|
2391
|
-
var rsLower = "[" + rsLowerRange + "]";
|
|
2392
|
-
var rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]";
|
|
2393
|
-
var rsFitz = "\\ud83c[\\udffb-\\udfff]";
|
|
2394
|
-
var rsModifier = "(?:" + rsCombo2 + "|" + rsFitz + ")";
|
|
2395
|
-
var rsNonAstral = "[^" + rsAstralRange + "]";
|
|
2396
|
-
var rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}";
|
|
2397
|
-
var rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]";
|
|
2398
|
-
var rsUpper = "[" + rsUpperRange + "]";
|
|
2399
|
-
var rsZWJ = "\\u200d";
|
|
2400
|
-
var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")";
|
|
2401
|
-
var rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")";
|
|
2402
|
-
var rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?";
|
|
2403
|
-
var rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?";
|
|
2404
|
-
var reOptMod = rsModifier + "?";
|
|
2405
|
-
var rsOptVar = "[" + rsVarRange + "]?";
|
|
2406
|
-
var rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*";
|
|
2407
|
-
var rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])";
|
|
2408
|
-
var rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])";
|
|
2409
|
-
var rsSeq = rsOptVar + reOptMod + rsOptJoin;
|
|
2410
|
-
var rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq;
|
|
2411
|
-
var reUnicodeWord = RegExp([
|
|
2412
|
-
rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")",
|
|
2413
|
-
rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")",
|
|
2414
|
-
rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower,
|
|
2415
|
-
rsUpper + "+" + rsOptContrUpper,
|
|
2416
|
-
rsOrdUpper,
|
|
2417
|
-
rsOrdLower,
|
|
2418
|
-
rsDigits,
|
|
2419
|
-
rsEmoji
|
|
2420
|
-
].join("|"), "g");
|
|
2421
|
-
function unicodeWords(string) {
|
|
2422
|
-
return string.match(reUnicodeWord) || [];
|
|
2423
|
-
}
|
|
2424
|
-
var unicodeWords_default = unicodeWords;
|
|
2425
|
-
|
|
2426
|
-
// node_modules/lodash-es/words.js
|
|
2427
|
-
function words(string, pattern, guard) {
|
|
2428
|
-
string = toString_default(string);
|
|
2429
|
-
pattern = guard ? void 0 : pattern;
|
|
2430
|
-
if (pattern === void 0) {
|
|
2431
|
-
return hasUnicodeWord_default(string) ? unicodeWords_default(string) : asciiWords_default(string);
|
|
2432
|
-
}
|
|
2433
|
-
return string.match(pattern) || [];
|
|
2434
|
-
}
|
|
2435
|
-
var words_default = words;
|
|
2436
|
-
|
|
2437
|
-
// node_modules/lodash-es/_createCompounder.js
|
|
2438
|
-
var rsApos2 = "['\u2019]";
|
|
2439
|
-
var reApos = RegExp(rsApos2, "g");
|
|
2440
|
-
function createCompounder(callback) {
|
|
2441
|
-
return function(string) {
|
|
2442
|
-
return arrayReduce_default(words_default(deburr_default(string).replace(reApos, "")), callback, "");
|
|
2443
|
-
};
|
|
2444
|
-
}
|
|
2445
|
-
var createCompounder_default = createCompounder;
|
|
2446
|
-
|
|
2447
|
-
// node_modules/lodash-es/snakeCase.js
|
|
2448
|
-
var snakeCase = createCompounder_default(function(result, word, index) {
|
|
2449
|
-
return result + (index ? "_" : "") + word.toLowerCase();
|
|
2450
|
-
});
|
|
2451
|
-
var snakeCase_default = snakeCase;
|
|
2011
|
+
// src/Cadenza.ts
|
|
2012
|
+
var import_lodash_es2 = require("lodash-es");
|
|
2452
2013
|
|
|
2453
2014
|
// src/types/database.ts
|
|
2454
2015
|
var SCHEMA_TYPES = [
|
|
@@ -2471,6 +2032,7 @@ var SCHEMA_TYPES = [
|
|
|
2471
2032
|
|
|
2472
2033
|
// src/database/DatabaseController.ts
|
|
2473
2034
|
var import_pg = require("pg");
|
|
2035
|
+
var import_lodash_es = require("lodash-es");
|
|
2474
2036
|
var _a, _b, _c, _d;
|
|
2475
2037
|
var DatabaseController = class _DatabaseController {
|
|
2476
2038
|
constructor() {
|
|
@@ -3060,6 +2622,15 @@ var DatabaseController = class _DatabaseController {
|
|
|
3060
2622
|
}
|
|
3061
2623
|
});
|
|
3062
2624
|
}
|
|
2625
|
+
toCamelCase(rows) {
|
|
2626
|
+
return rows.map((row) => {
|
|
2627
|
+
const camelCasedRow = {};
|
|
2628
|
+
for (const [key, value] of Object.entries(row)) {
|
|
2629
|
+
camelCasedRow[(0, import_lodash_es.camelCase)(key)] = value;
|
|
2630
|
+
}
|
|
2631
|
+
return camelCasedRow;
|
|
2632
|
+
});
|
|
2633
|
+
}
|
|
3063
2634
|
queryFunction(tableName, context) {
|
|
3064
2635
|
return __async(this, null, function* () {
|
|
3065
2636
|
const {
|
|
@@ -3072,9 +2643,8 @@ var DatabaseController = class _DatabaseController {
|
|
|
3072
2643
|
} = context;
|
|
3073
2644
|
let sql = `SELECT ${fields.length ? fields.join(", ") : "*"} FROM ${tableName}`;
|
|
3074
2645
|
const params = [];
|
|
3075
|
-
const conditions = [];
|
|
3076
2646
|
if (Object.keys(filter).length > 0) {
|
|
3077
|
-
|
|
2647
|
+
sql += " " + this.buildWhereClause(filter, params);
|
|
3078
2648
|
}
|
|
3079
2649
|
if (Object.keys(joins).length > 0) {
|
|
3080
2650
|
sql += " " + this.buildJoinClause(joins);
|
|
@@ -3082,15 +2652,19 @@ var DatabaseController = class _DatabaseController {
|
|
|
3082
2652
|
if (Object.keys(sort).length > 0) {
|
|
3083
2653
|
sql += " ORDER BY " + Object.entries(sort).map(([field, direction]) => `${field} ${direction}`).join(", ");
|
|
3084
2654
|
}
|
|
3085
|
-
if (limit !== void 0)
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
2655
|
+
if (limit !== void 0) {
|
|
2656
|
+
sql += ` LIMIT $${params.length + 1}`;
|
|
2657
|
+
params.push(limit);
|
|
2658
|
+
}
|
|
2659
|
+
if (offset !== void 0) {
|
|
2660
|
+
sql += ` OFFSET $${params.length + 1}`;
|
|
2661
|
+
params.push(offset);
|
|
2662
|
+
}
|
|
3090
2663
|
try {
|
|
3091
2664
|
const result = yield this.dbClient.query(sql, params);
|
|
2665
|
+
const rows = this.toCamelCase(result.rows);
|
|
3092
2666
|
return __spreadValues({
|
|
3093
|
-
[`${tableName}s`]:
|
|
2667
|
+
[`${(0, import_lodash_es.camelCase)(tableName)}s`]: rows,
|
|
3094
2668
|
rowCount: result.rowCount,
|
|
3095
2669
|
__success: true
|
|
3096
2670
|
}, context);
|
|
@@ -3115,7 +2689,7 @@ var DatabaseController = class _DatabaseController {
|
|
|
3115
2689
|
const resolvedData = yield this.resolveNestedData(data, tableName);
|
|
3116
2690
|
const isBatch = Array.isArray(resolvedData);
|
|
3117
2691
|
const rows = isBatch ? resolvedData : [resolvedData];
|
|
3118
|
-
const sql = `INSERT INTO ${tableName} (${Object.keys(rows[0]).map(
|
|
2692
|
+
const sql = `INSERT INTO ${tableName} (${Object.keys(rows[0]).map(import_lodash_es.snakeCase).join(", ")}) VALUES `;
|
|
3119
2693
|
const values = rows.map(
|
|
3120
2694
|
(row) => `(${Object.values(row).map((value, i) => {
|
|
3121
2695
|
if (typeof value === "object" && (value == null ? void 0 : value.__effect)) {
|
|
@@ -3160,8 +2734,9 @@ var DatabaseController = class _DatabaseController {
|
|
|
3160
2734
|
params
|
|
3161
2735
|
);
|
|
3162
2736
|
if (transaction) yield client.query("COMMIT");
|
|
2737
|
+
const resultRows = this.toCamelCase(result.rows);
|
|
3163
2738
|
return {
|
|
3164
|
-
[`${tableName}${isBatch ? "s" : ""}`]: isBatch ?
|
|
2739
|
+
[`${(0, import_lodash_es.camelCase)(tableName)}${isBatch ? "s" : ""}`]: isBatch ? resultRows : resultRows[0],
|
|
3165
2740
|
rowCount: result.rowCount,
|
|
3166
2741
|
__inserted: true
|
|
3167
2742
|
};
|
|
@@ -3190,13 +2765,14 @@ var DatabaseController = class _DatabaseController {
|
|
|
3190
2765
|
if (transaction) yield client.query("BEGIN");
|
|
3191
2766
|
const resolvedData = yield this.resolveNestedData(data, tableName);
|
|
3192
2767
|
const params = Object.values(resolvedData);
|
|
3193
|
-
const setClause = Object.entries(Object.keys(resolvedData)).map(([i, key]) => `${
|
|
2768
|
+
const setClause = Object.entries(Object.keys(resolvedData)).map(([i, key]) => `${(0, import_lodash_es.snakeCase)(key)} = $${parseInt(i) + 1}`).join(", ");
|
|
3194
2769
|
const whereClause = this.buildWhereClause(filter, params);
|
|
3195
2770
|
const sql = `UPDATE ${tableName} SET ${setClause} ${whereClause} RETURNING *;`;
|
|
3196
2771
|
const result = yield client.query(sql, params);
|
|
3197
2772
|
if (transaction) yield client.query("COMMIT");
|
|
2773
|
+
const rows = this.toCamelCase(result.rows);
|
|
3198
2774
|
return {
|
|
3199
|
-
[`${tableName}`]:
|
|
2775
|
+
[`${(0, import_lodash_es.camelCase)(tableName)}`]: rows[0],
|
|
3200
2776
|
__updated: true
|
|
3201
2777
|
};
|
|
3202
2778
|
} catch (error) {
|
|
@@ -3227,8 +2803,9 @@ var DatabaseController = class _DatabaseController {
|
|
|
3227
2803
|
const sql = `DELETE FROM ${tableName} ${whereClause} RETURNING *`;
|
|
3228
2804
|
const result = yield client.query(sql, params);
|
|
3229
2805
|
if (transaction) yield client.query("COMMIT");
|
|
2806
|
+
const rows = this.toCamelCase(result.rows);
|
|
3230
2807
|
return {
|
|
3231
|
-
[`${tableName}`]:
|
|
2808
|
+
[`${(0, import_lodash_es.camelCase)(tableName)}`]: rows[0],
|
|
3232
2809
|
__deleted: true
|
|
3233
2810
|
};
|
|
3234
2811
|
} catch (error) {
|
|
@@ -3249,7 +2826,7 @@ var DatabaseController = class _DatabaseController {
|
|
|
3249
2826
|
const conditions = [];
|
|
3250
2827
|
for (const [key, value] of Object.entries(filter)) {
|
|
3251
2828
|
if (value !== void 0) {
|
|
3252
|
-
conditions.push(`${
|
|
2829
|
+
conditions.push(`${(0, import_lodash_es.snakeCase)(key)} = $${params.length + 1}`);
|
|
3253
2830
|
params.push(value);
|
|
3254
2831
|
}
|
|
3255
2832
|
}
|
|
@@ -3258,7 +2835,7 @@ var DatabaseController = class _DatabaseController {
|
|
|
3258
2835
|
buildJoinClause(joins) {
|
|
3259
2836
|
let joinSql = "";
|
|
3260
2837
|
for (const [table, join] of Object.entries(joins)) {
|
|
3261
|
-
joinSql += ` LEFT JOIN ${
|
|
2838
|
+
joinSql += ` LEFT JOIN ${(0, import_lodash_es.snakeCase)(table)} ${join.alias} ON ${join.on}`;
|
|
3262
2839
|
if (join.joins) joinSql += " " + this.buildJoinClause(join.joins);
|
|
3263
2840
|
}
|
|
3264
2841
|
return joinSql;
|
|
@@ -3682,7 +3259,7 @@ var CadenzaService = class {
|
|
|
3682
3259
|
if ((_g = options.cadenzaDB) == null ? void 0 : _g.connect) {
|
|
3683
3260
|
import_core3.default.broker.emit("meta.initializing_service", {
|
|
3684
3261
|
// Seed the CadenzaDB
|
|
3685
|
-
|
|
3262
|
+
serviceInstance: {
|
|
3686
3263
|
uuid: "cadenza-db",
|
|
3687
3264
|
serviceName: "CadenzaDB",
|
|
3688
3265
|
address: (_h = options.cadenzaDB) == null ? void 0 : _h.address,
|
|
@@ -3700,7 +3277,7 @@ var CadenzaService = class {
|
|
|
3700
3277
|
(_j = options.relatedServices) == null ? void 0 : _j.forEach((service) => {
|
|
3701
3278
|
var _a3;
|
|
3702
3279
|
import_core3.default.broker.emit("meta.initializing_service", {
|
|
3703
|
-
|
|
3280
|
+
serviceInstance: {
|
|
3704
3281
|
uuid: service[0],
|
|
3705
3282
|
serviceName: service[1],
|
|
3706
3283
|
address: service[2].split(":")[0],
|
|
@@ -3780,7 +3357,7 @@ var CadenzaService = class {
|
|
|
3780
3357
|
port: parseInt((_e = process.env.CADENZA_DB_PORT) != null ? _e : "5000")
|
|
3781
3358
|
},
|
|
3782
3359
|
databaseType: "postgres",
|
|
3783
|
-
databaseName:
|
|
3360
|
+
databaseName: (0, import_lodash_es2.snakeCase)(name),
|
|
3784
3361
|
poolSize: parseInt((_f = process.env.DATABASE_POOL_SIZE) != null ? _f : "10")
|
|
3785
3362
|
}, options);
|
|
3786
3363
|
import_core3.default.broker.emit("meta.database_init_requested", {
|
|
@@ -4010,17 +3587,4 @@ var index_default = CadenzaService;
|
|
|
4010
3587
|
TaskOptions,
|
|
4011
3588
|
ThrottleTagGetter
|
|
4012
3589
|
});
|
|
4013
|
-
/*! Bundled license information:
|
|
4014
|
-
|
|
4015
|
-
lodash-es/lodash.js:
|
|
4016
|
-
(**
|
|
4017
|
-
* @license
|
|
4018
|
-
* Lodash (Custom Build) <https://lodash.com/>
|
|
4019
|
-
* Build: `lodash modularize exports="es" -o ./`
|
|
4020
|
-
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
4021
|
-
* Released under MIT license <https://lodash.com/license>
|
|
4022
|
-
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
|
4023
|
-
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
4024
|
-
*)
|
|
4025
|
-
*/
|
|
4026
3590
|
//# sourceMappingURL=index.js.map
|