@hostwebhook/node-types 1.52.14 → 1.52.15
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.ts +2 -0
- package/dist/index.js +5 -1
- package/dist/mongo-operations.d.ts +61 -0
- package/dist/mongo-operations.js +124 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -33,5 +33,7 @@ export { GOOGLE_CONTACTS_OPERATIONS, GOOGLE_CONTACTS_OPERATIONS_V1, GOOGLE_CONTA
|
|
|
33
33
|
export type { GoogleContactsOperation, GoogleContactsParamSpec, GoogleContactsOperationSpec, GoogleContactsOperationGroup, } from './google-contacts-operations';
|
|
34
34
|
export { POSTGRES_OPERATIONS, POSTGRES_MODES, POSTGRES_OPERATION_SPECS, isPostgresOperation, } from './postgres-operations';
|
|
35
35
|
export type { PostgresOperation, PostgresMode, PostgresOperationSpec, } from './postgres-operations';
|
|
36
|
+
export { MONGO_OPERATIONS, MONGO_OPERATION_SPECS, isMongoOperation, } from './mongo-operations';
|
|
37
|
+
export type { MongoOperation, MongoParamType, MongoParamSpec, MongoOperationSpec, } from './mongo-operations';
|
|
36
38
|
export type { CredentialTypeRegistration, CredentialType } from './credentials';
|
|
37
39
|
export { CREDENTIAL_TYPES, CREDENTIAL_TYPE_VALUES, credentialTypeValues, getCredentialType, isCredentialType, } from './credentials';
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isSheetsOperation = exports.SHEETS_OPERATION_SPECS = exports.SHEETS_OPERATIONS = exports.isSlackOperation = exports.SLACK_OPERATION_SPECS = exports.SLACK_OPERATIONS = exports.isDiscordOperation = exports.DISCORD_OPERATION_SPECS = exports.DISCORD_OPERATIONS = exports.isWhatsAppOperation = exports.WHATSAPP_OPERATIONS = exports.TELEGRAM_TOOLKIT_BY_TOOL_NAME = exports.TELEGRAM_TOOLKIT_SPECS = exports.isTelegramOperation = exports.TELEGRAM_OPERATION_SPECS = exports.TELEGRAM_OPERATIONS = exports.DRIVE_TOOLKIT_BY_TOOL_NAME = exports.DRIVE_TOOLKIT_SPECS = exports.isDriveOperation = exports.DRIVE_OPERATION_SPECS = exports.DRIVE_OPERATIONS = exports.GOOGLE_CALENDAR_TOOLKIT_BY_TOOL_NAME = exports.GOOGLE_CALENDAR_TOOLKIT_SPECS = exports.isGoogleCalendarOperation = exports.GOOGLE_CALENDAR_OPERATION_SPECS = exports.GOOGLE_CALENDAR_OPERATIONS = exports.isGmailOperation = exports.GMAIL_OPERATIONS = exports.NODE_TYPE_TO_PREFIX = exports.PREFIX_TO_NODE_TYPE = exports.NODE_STATE_KEYS = exports.NODE_COLORS = exports.NODE_DETAIL_PATHS = exports.getNodeRegistryEntry = exports.NODE_REGISTRY = exports.getNodeDispatchConfig = exports.getAllNodeCollections = exports.NODE_DISPATCH = exports.resolveNodeId = exports.PREFIX_TO_TYPE = exports.NODE_UI = exports.ALL_NODE_TYPES = exports.isNodeType = exports.isTerminal = exports.canSendToNodes = exports.canReceiveFromNodes = exports.canReceiveFrom = exports.NODE_CONNECTIONS = exports.iterableMeta = exports.singleMeta = void 0;
|
|
4
|
-
exports.isCredentialType = exports.getCredentialType = exports.credentialTypeValues = exports.CREDENTIAL_TYPE_VALUES = exports.CREDENTIAL_TYPES = exports.isPostgresOperation = exports.POSTGRES_OPERATION_SPECS = exports.POSTGRES_MODES = exports.POSTGRES_OPERATIONS = exports.isGoogleContactsOperation = exports.GOOGLE_CONTACTS_DEFAULT_PERSON_FIELDS = exports.GOOGLE_CONTACTS_OPERATION_GROUPS = exports.GOOGLE_CONTACTS_OPERATION_SPECS = exports.GOOGLE_CONTACTS_OPERATIONS_V2 = exports.GOOGLE_CONTACTS_OPERATIONS_V1 = exports.GOOGLE_CONTACTS_OPERATIONS = exports.SHEETS_TOOLKIT_DEFAULTABLE = exports.SHEETS_TOOLKIT_BY_TOOL_NAME = exports.SHEETS_TOOLKIT_SPECS = void 0;
|
|
4
|
+
exports.isCredentialType = exports.getCredentialType = exports.credentialTypeValues = exports.CREDENTIAL_TYPE_VALUES = exports.CREDENTIAL_TYPES = exports.isMongoOperation = exports.MONGO_OPERATION_SPECS = exports.MONGO_OPERATIONS = exports.isPostgresOperation = exports.POSTGRES_OPERATION_SPECS = exports.POSTGRES_MODES = exports.POSTGRES_OPERATIONS = exports.isGoogleContactsOperation = exports.GOOGLE_CONTACTS_DEFAULT_PERSON_FIELDS = exports.GOOGLE_CONTACTS_OPERATION_GROUPS = exports.GOOGLE_CONTACTS_OPERATION_SPECS = exports.GOOGLE_CONTACTS_OPERATIONS_V2 = exports.GOOGLE_CONTACTS_OPERATIONS_V1 = exports.GOOGLE_CONTACTS_OPERATIONS = exports.SHEETS_TOOLKIT_DEFAULTABLE = exports.SHEETS_TOOLKIT_BY_TOOL_NAME = exports.SHEETS_TOOLKIT_SPECS = void 0;
|
|
5
5
|
var types_1 = require("./types");
|
|
6
6
|
Object.defineProperty(exports, "singleMeta", { enumerable: true, get: function () { return types_1.singleMeta; } });
|
|
7
7
|
Object.defineProperty(exports, "iterableMeta", { enumerable: true, get: function () { return types_1.iterableMeta; } });
|
|
@@ -89,6 +89,10 @@ Object.defineProperty(exports, "POSTGRES_OPERATIONS", { enumerable: true, get: f
|
|
|
89
89
|
Object.defineProperty(exports, "POSTGRES_MODES", { enumerable: true, get: function () { return postgres_operations_1.POSTGRES_MODES; } });
|
|
90
90
|
Object.defineProperty(exports, "POSTGRES_OPERATION_SPECS", { enumerable: true, get: function () { return postgres_operations_1.POSTGRES_OPERATION_SPECS; } });
|
|
91
91
|
Object.defineProperty(exports, "isPostgresOperation", { enumerable: true, get: function () { return postgres_operations_1.isPostgresOperation; } });
|
|
92
|
+
var mongo_operations_1 = require("./mongo-operations");
|
|
93
|
+
Object.defineProperty(exports, "MONGO_OPERATIONS", { enumerable: true, get: function () { return mongo_operations_1.MONGO_OPERATIONS; } });
|
|
94
|
+
Object.defineProperty(exports, "MONGO_OPERATION_SPECS", { enumerable: true, get: function () { return mongo_operations_1.MONGO_OPERATION_SPECS; } });
|
|
95
|
+
Object.defineProperty(exports, "isMongoOperation", { enumerable: true, get: function () { return mongo_operations_1.isMongoOperation; } });
|
|
92
96
|
var credentials_1 = require("./credentials");
|
|
93
97
|
Object.defineProperty(exports, "CREDENTIAL_TYPES", { enumerable: true, get: function () { return credentials_1.CREDENTIAL_TYPES; } });
|
|
94
98
|
Object.defineProperty(exports, "CREDENTIAL_TYPE_VALUES", { enumerable: true, get: function () { return credentials_1.CREDENTIAL_TYPE_VALUES; } });
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MongoDB operation enum + esquema del formulario — una sola copia para la api,
|
|
3
|
+
* el Dashboard y el broker.
|
|
4
|
+
*
|
|
5
|
+
* ── Lo que quita ──
|
|
6
|
+
* La lista estaba escrita a mano **cinco veces sólo en la api** (tres en el DTO,
|
|
7
|
+
* dos en la entidad) y otras tantas en el dashboard. Y de los siete valores,
|
|
8
|
+
* el lienzo sólo conocía **cinco**: `findAll` y `findOneAndUpdate` no estaban en
|
|
9
|
+
* sus mapas de etiqueta y color, así que se pintaban grises y con el nombre
|
|
10
|
+
* crudo en camelCase mientras el panel sí les daba azul y ámbar.
|
|
11
|
+
*
|
|
12
|
+
* ── Lo fácil de Mongo ──
|
|
13
|
+
* Al contrario que Drive o Calendar, aquí **no hay capa de renombrado**: el
|
|
14
|
+
* `name` de cada param es la prop de la entidad tal cual, y el `apiUpdate` de la
|
|
15
|
+
* página es un passthrough de una línea. Es la forma de guardado más simple de
|
|
16
|
+
* la tanda.
|
|
17
|
+
*/
|
|
18
|
+
export declare const MONGO_OPERATIONS: readonly ["insertOne", "findOne", "findAll", "updateOne", "findOneAndUpdate", "deleteOne", "aggregate"];
|
|
19
|
+
export type MongoOperation = (typeof MONGO_OPERATIONS)[number];
|
|
20
|
+
/** Type guard — útil al validar entrada que no controlas (DTOs, tool calls). */
|
|
21
|
+
export declare function isMongoOperation(value: unknown): value is MongoOperation;
|
|
22
|
+
export type MongoParamType =
|
|
23
|
+
/** El `TemplateEditor` de JSON, con autocompletado de `{{payload.*}}`. */
|
|
24
|
+
'jsonTemplate'
|
|
25
|
+
/** El componente `UpdateBuilder` (arma `$set`, `$inc`… sin escribir JSON). */
|
|
26
|
+
| 'updateBuilder'
|
|
27
|
+
/**
|
|
28
|
+
* Un `Switch` que se guarda **al instante** (`updateFieldInstant`) y se lee de
|
|
29
|
+
* la entidad, no de los locales. Se conserva así porque es como estaba.
|
|
30
|
+
*/
|
|
31
|
+
| 'booleanInstant';
|
|
32
|
+
export interface MongoParamSpec {
|
|
33
|
+
/** La prop de la entidad. Sin renombrado: es también la clave del cable. */
|
|
34
|
+
name: string;
|
|
35
|
+
label: string;
|
|
36
|
+
type: MongoParamType;
|
|
37
|
+
/** Texto de ayuda. Llano: el paquete no lleva React. */
|
|
38
|
+
description?: string;
|
|
39
|
+
placeholder?: string;
|
|
40
|
+
/** Sólo para `jsonTemplate`: la altura del editor. */
|
|
41
|
+
minHeight?: number;
|
|
42
|
+
maxHeight?: number;
|
|
43
|
+
}
|
|
44
|
+
export interface MongoOperationSpec {
|
|
45
|
+
/** La del desplegable de la página de detalle: «Insert One». */
|
|
46
|
+
label: string;
|
|
47
|
+
/**
|
|
48
|
+
* La de la píldora estrecha del lienzo y del panel: «INSERT».
|
|
49
|
+
*
|
|
50
|
+
* **Son dos etiquetas a propósito**, como en Calendar: dos anchos distintos y
|
|
51
|
+
* las dos se ven. Antes había una TERCERA convención, porque el panel pintaba
|
|
52
|
+
* `operation.toUpperCase()` y decía «FINDONEANDUPDATE» donde el lienzo decía
|
|
53
|
+
* «UPDATE». Ahora los dos leen esta.
|
|
54
|
+
*/
|
|
55
|
+
labelShort: string;
|
|
56
|
+
/** Sub-línea del desplegable. */
|
|
57
|
+
description: string;
|
|
58
|
+
/** Orden de pantalla. */
|
|
59
|
+
params: MongoParamSpec[];
|
|
60
|
+
}
|
|
61
|
+
export declare const MONGO_OPERATION_SPECS: Record<MongoOperation, MongoOperationSpec>;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MongoDB operation enum + esquema del formulario — una sola copia para la api,
|
|
4
|
+
* el Dashboard y el broker.
|
|
5
|
+
*
|
|
6
|
+
* ── Lo que quita ──
|
|
7
|
+
* La lista estaba escrita a mano **cinco veces sólo en la api** (tres en el DTO,
|
|
8
|
+
* dos en la entidad) y otras tantas en el dashboard. Y de los siete valores,
|
|
9
|
+
* el lienzo sólo conocía **cinco**: `findAll` y `findOneAndUpdate` no estaban en
|
|
10
|
+
* sus mapas de etiqueta y color, así que se pintaban grises y con el nombre
|
|
11
|
+
* crudo en camelCase mientras el panel sí les daba azul y ámbar.
|
|
12
|
+
*
|
|
13
|
+
* ── Lo fácil de Mongo ──
|
|
14
|
+
* Al contrario que Drive o Calendar, aquí **no hay capa de renombrado**: el
|
|
15
|
+
* `name` de cada param es la prop de la entidad tal cual, y el `apiUpdate` de la
|
|
16
|
+
* página es un passthrough de una línea. Es la forma de guardado más simple de
|
|
17
|
+
* la tanda.
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.MONGO_OPERATION_SPECS = exports.MONGO_OPERATIONS = void 0;
|
|
21
|
+
exports.isMongoOperation = isMongoOperation;
|
|
22
|
+
exports.MONGO_OPERATIONS = [
|
|
23
|
+
'insertOne', // inserta un documento
|
|
24
|
+
'findOne', // devuelve el primero que casa
|
|
25
|
+
'findAll', // devuelve todos los que casan (tope 1000)
|
|
26
|
+
'updateOne', // actualiza el primero que casa
|
|
27
|
+
'findOneAndUpdate', // actualiza y devuelve el documento
|
|
28
|
+
'deleteOne', // borra el primero que casa
|
|
29
|
+
'aggregate', // pipeline de agregación
|
|
30
|
+
];
|
|
31
|
+
/** Type guard — útil al validar entrada que no controlas (DTOs, tool calls). */
|
|
32
|
+
function isMongoOperation(value) {
|
|
33
|
+
return typeof value === 'string' && exports.MONGO_OPERATIONS.includes(value);
|
|
34
|
+
}
|
|
35
|
+
/* Los campos que comparten varias operaciones. */
|
|
36
|
+
const queryTemplate = () => ({
|
|
37
|
+
name: 'queryTemplate',
|
|
38
|
+
label: 'Query Template',
|
|
39
|
+
type: 'jsonTemplate',
|
|
40
|
+
placeholder: '{"email": "{{payload.email}}"}',
|
|
41
|
+
minHeight: 100,
|
|
42
|
+
maxHeight: 200,
|
|
43
|
+
});
|
|
44
|
+
const updateTemplate = () => ({
|
|
45
|
+
name: 'updateTemplate',
|
|
46
|
+
label: 'Update Operations',
|
|
47
|
+
type: 'updateBuilder',
|
|
48
|
+
});
|
|
49
|
+
exports.MONGO_OPERATION_SPECS = {
|
|
50
|
+
insertOne: {
|
|
51
|
+
label: 'Insert One',
|
|
52
|
+
labelShort: 'INSERT',
|
|
53
|
+
description: 'Insert a single document',
|
|
54
|
+
params: [
|
|
55
|
+
{
|
|
56
|
+
name: 'documentTemplate',
|
|
57
|
+
label: 'Document Template',
|
|
58
|
+
type: 'jsonTemplate',
|
|
59
|
+
placeholder: '{"name": "{{payload.name}}", "email": "{{payload.email}}"}',
|
|
60
|
+
minHeight: 100,
|
|
61
|
+
maxHeight: 200,
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
findOne: {
|
|
66
|
+
label: 'Find One',
|
|
67
|
+
labelShort: 'FIND',
|
|
68
|
+
description: 'Find a single matching document',
|
|
69
|
+
params: [queryTemplate()],
|
|
70
|
+
},
|
|
71
|
+
findAll: {
|
|
72
|
+
label: 'Find All',
|
|
73
|
+
/* Antes no estaba en el mapa del lienzo y salía el crudo `findAll`. */
|
|
74
|
+
labelShort: 'FIND ALL',
|
|
75
|
+
description: 'Find all matching documents (limit 1000)',
|
|
76
|
+
params: [
|
|
77
|
+
/* El interruptor va ANTES del query, que es el orden en que se pintaba. */
|
|
78
|
+
{
|
|
79
|
+
name: 'includeCount',
|
|
80
|
+
label: 'Include Count',
|
|
81
|
+
type: 'booleanInstant',
|
|
82
|
+
description: 'Return total count of matching documents alongside results',
|
|
83
|
+
},
|
|
84
|
+
queryTemplate(),
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
updateOne: {
|
|
88
|
+
label: 'Update One',
|
|
89
|
+
labelShort: 'UPDATE',
|
|
90
|
+
description: 'Update a single matching document',
|
|
91
|
+
params: [queryTemplate(), updateTemplate()],
|
|
92
|
+
},
|
|
93
|
+
findOneAndUpdate: {
|
|
94
|
+
label: 'Find & Update',
|
|
95
|
+
/* Tampoco estaba: salía el crudo `findOneAndUpdate` en el lienzo y
|
|
96
|
+
`FINDONEANDUPDATE` en el panel. */
|
|
97
|
+
labelShort: 'FIND & UPDATE',
|
|
98
|
+
description: 'Find, update, and return the document',
|
|
99
|
+
params: [queryTemplate(), updateTemplate()],
|
|
100
|
+
},
|
|
101
|
+
deleteOne: {
|
|
102
|
+
label: 'Delete One',
|
|
103
|
+
labelShort: 'DELETE',
|
|
104
|
+
description: 'Delete a single matching document',
|
|
105
|
+
params: [queryTemplate()],
|
|
106
|
+
},
|
|
107
|
+
aggregate: {
|
|
108
|
+
label: 'Aggregate',
|
|
109
|
+
labelShort: 'AGGREGATE',
|
|
110
|
+
description: 'Run aggregation pipeline ($match, $group, $sort...)',
|
|
111
|
+
params: [
|
|
112
|
+
{
|
|
113
|
+
/* Mismo campo que en las demás, con otro título y otro ejemplo: por eso
|
|
114
|
+
los params se declaran por operación y no en un registro global. */
|
|
115
|
+
name: 'queryTemplate',
|
|
116
|
+
label: 'Pipeline Template',
|
|
117
|
+
type: 'jsonTemplate',
|
|
118
|
+
placeholder: '[{"$match": {"status": "active"}}, {"$group": {"_id": "$category"}}]',
|
|
119
|
+
minHeight: 100,
|
|
120
|
+
maxHeight: 200,
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
},
|
|
124
|
+
};
|
package/package.json
CHANGED