New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@integration-app/sdk

Package Overview
Dependencies
Maintainers
4
Versions
445
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@integration-app/sdk - npm Package Compare versions

Comparing version 0.16.4 to 0.16.5

data-locations/accessors.d.ts

3

client.d.ts

@@ -20,2 +20,4 @@ import Pusher from 'pusher-js';

import { SelfAccessor } from './auth/accessors';
import { DataLocationSelector } from './data-locations/api';
import { DataLocationAccessor } from './data-locations/accessors';
export declare class IntegrationAppClient {

@@ -54,2 +56,3 @@ private apiUri?;

connection(selector: string | ConnectionSelector): ConnectionAccessor;
dataLocation(selector: DataLocationSelector): DataLocationAccessor;
get appEventTypes(): AppEventTypesAccessor;

@@ -56,0 +59,0 @@ appEventType(idOrKey: string): AppEventTypeAccessor;

@@ -21,2 +21,3 @@ "use strict";

const accessors_10 = require("./auth/accessors");
const accessors_11 = require("./data-locations/accessors");
const DEFAULT_API_URI = 'https://engine-api.integration.app';

@@ -110,2 +111,5 @@ const DEFAULT_UI_URI = 'https://ui.integration.app';

}
dataLocation(selector) {
return new accessors_11.DataLocationAccessor(this, selector);
}
get appEventTypes() {

@@ -112,0 +116,0 @@ return new accessors_7.AppEventTypesAccessor(this);

import { User } from '../users';
import { Integration } from '../integrations';
import { ConnectionMode, Integration } from '../integrations';
import { DataLocationSpec } from '../data-locations';
export declare class Connection {

@@ -15,1 +16,25 @@ id: string;

}
export interface ConnectionSpec {
name: string;
logoUri: string;
auth: {
authorizeUri: string;
tokenUri: string;
};
ui?: {
description: string;
schema: any;
helpUri?: string;
test: boolean;
};
parametersSchema?: any;
connectionMode?: ConnectionMode;
data?: ConnectionDataSpec;
}
export declare class ConnectionSpec {
constructor(opts: ConnectionSpec);
}
export interface ConnectionDataSpec {
root: DataLocationSpec;
[key: string]: DataLocationSpec;
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Connection = void 0;
exports.ConnectionSpec = exports.Connection = void 0;
class Connection {
}
exports.Connection = Connection;
class ConnectionSpec {
constructor(opts) {
Object.assign(this, opts);
}
}
exports.ConnectionSpec = ConnectionSpec;
//# sourceMappingURL=index.js.map

165

connector-api/index.d.ts

@@ -1,163 +0,2 @@

import { ConnectionMode } from '../integrations';
import { DataCollectionEvent, DataRecord } from '../data-collections';
export interface ConnectorSpec {
name: string;
logoUri: string;
auth: {
authorizeUri: string;
tokenUri: string;
};
ui?: {
description: string;
schema: any;
helpUri?: string;
test: boolean;
};
parametersSchema?: any;
connectionMode?: ConnectionMode;
data?: ConnectorDataSpec;
}
export declare class ConnectorSpec {
constructor(opts: ConnectorSpec);
}
export declare enum DataLocationType {
directory = "directory",
collection = "collection"
}
export interface DataLocationSpec {
path?: string;
name?: string;
type?: DataLocationType;
isDefault?: boolean;
read?: boolean;
write?: boolean;
uri?: string;
}
export declare type DataLocation = DataLocationSpec;
export interface ConnectorDataSpec {
root: DataLocationSpec;
[key: string]: DataLocationSpec;
}
export interface DataCollectionSpec {
type: DataLocationType.collection;
name: string;
fieldsSchema?: any;
find?: DataCollectionFindSpec;
findById?: DataCollectionFindByIdSpec;
create?: DataCollectionCreateSpec;
update?: DataCollectionUpdateSpec;
delete?: DataCollectionDeleteSpec;
udm?: DataCollectionUdmSpec;
}
export declare type DataCollection = DataCollectionSpec;
export interface DataDirectorySpec {
type: DataLocationType.directory;
name?: string;
}
interface DataCollectionOperationResponse {
logs?: any[];
}
export interface DataCollectionFindSpec {
queryFields?: string[];
}
export interface DataCollectionFindByIdSpec {
}
export interface DataCollectionCreateSpec {
fields?: string[];
requiredFields?: string[];
excludedFields?: string[];
excludeFields?: string[];
}
export interface DataCollectionUpdateSpec {
fields?: string[];
excludedFields?: string[];
excludeFields?: string[];
}
export interface DataCollectionDeleteSpec {
}
export declare type DataCollectionUdmSpec = Record<string, Record<string, any>>;
export interface DataCollectionFindRequest {
query?: any;
cursor?: string;
udm?: string;
}
export interface DataCollectionFindResponse extends DataCollectionOperationResponse {
records: DataRecord[];
cursor?: string;
}
export interface DataCollectionFindByIdRequest {
id: string;
udm?: string;
}
export interface DataCollectionFindByIdResponse extends DataCollectionOperationResponse {
record: DataRecord;
}
export interface DataCollectionCreateRequest {
fields: Record<string, any>;
}
export interface DataCollectionCreateResponse extends DataCollectionOperationResponse, DataRecord {
}
export interface DataCollectionUpdateRequest {
id: string;
fields: Record<string, any>;
}
export interface DataCollectionUpdateResponse extends DataCollectionOperationResponse, DataRecord {
}
export interface DataCollectionDeleteRequest {
id: string;
}
export interface DataCollectionDeleteResponse extends DataCollectionOperationResponse {
}
export interface DataCollectionSubscribeRequest {
events?: {
created?: boolean;
updated?: boolean;
deleted?: boolean;
};
udm?: string;
webhookUri: string;
}
export interface DataCollectionSubscribeResponse {
subscriptionId: string;
pullIntervalSeconds?: number;
cursor?: string;
}
export interface DataCollectionUpdateSubscriptionRequest extends DataCollectionSubscribeRequest {
subscriptionId: string;
cursor?: string;
}
export interface DataCollectionUpdateSubscriptionResponse extends Omit<DataCollectionSubscribeResponse, 'subscriptionId'> {
}
export interface DataCollectionUnsubscribeRequest {
subscriptionId: string;
}
export interface DataCollectionUnsubscribeResponse {
}
export interface DataCollectionEventsRequest {
subscriptionId: string;
cursor: string;
}
export interface DataCollectionEventsResponse {
events: DataCollectionEvent[];
cursor: string;
}
export interface DataEventWebhookPayload {
subscriptionId: string;
events: DataCollectionEvent[];
}
export interface DataCollectionParseUnifiedFieldsRequest {
udm: string;
unifiedFields: Record<string, any>;
}
export interface DataCollectionParseUnifiedFieldsResponse {
fields: any;
}
export interface DataDirectoryListRequest {
cursor?: string;
}
export interface DataDirectoryListResponse {
locations: DataLocationSpec[];
cursor?: string;
}
export declare function makeCollectionOperationPath(collectionPath: string, operation: string): any;
export {};
export { ConnectionSpec as ConnectorSpec, ConnectionDataSpec as ConnectorDataSpec, } from '../connections';
export { DataLocationType, DataLocationSpec, DataLocation, DataCollectionSpec, DataDirectorySpec, DataCollectionSpec as DataCollection, DataCollectionUdmSpec, DataCollectionFindSpec, DataCollectionFindByIdSpec, DataCollectionCreateSpec, DataCollectionUpdateSpec, DataCollectionDeleteSpec, DataCollectionFindRequest, DataCollectionFindResponse, DataCollectionFindByIdRequest, DataCollectionFindByIdResponse, DataCollectionCreateRequest, DataCollectionCreateResponse, DataCollectionUpdateRequest, DataCollectionUpdateResponse, DataCollectionDeleteRequest, DataCollectionDeleteResponse, DataCollectionSubscribeRequest, DataCollectionSubscribeResponse, DataCollectionUpdateSubscriptionRequest, DataCollectionUpdateSubscriptionResponse, DataCollectionUnsubscribeRequest, DataCollectionUnsubscribeResponse, DataCollectionEventsRequest, DataCollectionEventsResponse, DataEventWebhookPayload, DataCollectionParseUnifiedFieldsRequest, DataCollectionParseUnifiedFieldsResponse, DataDirectoryListRequest, DataDirectoryListResponse, makeCollectionOperationPath, } from '../data-locations';
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeCollectionOperationPath = exports.DataLocationType = exports.ConnectorSpec = void 0;
const tslib_1 = require("tslib");
const url_join_1 = (0, tslib_1.__importDefault)(require("url-join"));
class ConnectorSpec {
constructor(opts) {
Object.assign(this, opts);
}
}
exports.ConnectorSpec = ConnectorSpec;
var DataLocationType;
(function (DataLocationType) {
DataLocationType["directory"] = "directory";
DataLocationType["collection"] = "collection";
})(DataLocationType = exports.DataLocationType || (exports.DataLocationType = {}));
function makeCollectionOperationPath(collectionPath, operation) {
const [path, query] = (collectionPath !== null && collectionPath !== void 0 ? collectionPath : '').split('?');
return (0, url_join_1.default)(path, operation, query ? `?${query}` : '');
}
exports.makeCollectionOperationPath = makeCollectionOperationPath;
var connections_1 = require("../connections");
Object.defineProperty(exports, "ConnectorSpec", { enumerable: true, get: function () { return connections_1.ConnectionSpec; } });
var data_locations_1 = require("../data-locations");
Object.defineProperty(exports, "DataLocationType", { enumerable: true, get: function () { return data_locations_1.DataLocationType; } });
Object.defineProperty(exports, "makeCollectionOperationPath", { enumerable: true, get: function () { return data_locations_1.makeCollectionOperationPath; } });
//# sourceMappingURL=index.js.map

@@ -1,9 +0,49 @@

export declare function schemaIsScalar(schema: any): boolean;
export declare function schemaHasFixedValues(schema: any): any;
export declare function schemaAllowsCustomValue(schema: any): any;
export declare function schemaIsNumber(schema: any): boolean;
export declare function schemaWithTitle(schema: any, title: any): any;
export declare function pickFieldsFromSchema(schema: any, fields: string[]): any;
export declare function excludeFieldsFromSchema(schema: any, fields: string[]): any;
export declare function findSchemaOption(schema: any, key: string): any;
import { DataRecord } from '../data-collections';
export declare type DataSchemaType = 'object' | 'array' | 'string' | 'number' | 'integer' | 'boolean' | 'null';
export interface DataSchema {
key?: string;
type?: string;
format?: string;
properties?: {
[key: string]: DataSchema;
};
items?: DataSchema;
additionalProperties?: boolean;
enum?: string[];
referenceRecords?: DataRecord[];
referenceCollectionPath?: string;
referenceUdm?: string;
default?: any;
allowCustom?: boolean;
oneOf?: DataSchema[];
anyOf?: DataSchema[];
referenceCollectionUri?: string;
}
export declare function schemaIsScalar(schema: DataSchema): boolean;
export declare function schemaHasFixedValues(schema: DataSchema): string | boolean | string[] | DataRecord[];
export declare function schemaAllowsCustomValue(schema: DataSchema): boolean;
export declare function schemaIsNumber(schema: DataSchema): boolean;
export declare function schemaWithTitle(schema: DataSchema, title: string): {
title: string;
key?: string;
type?: string;
format?: string;
properties?: {
[key: string]: DataSchema;
};
items?: DataSchema;
additionalProperties?: boolean;
enum?: string[];
referenceRecords?: DataRecord[];
referenceCollectionPath?: string;
referenceUdm?: string;
default?: any;
allowCustom?: boolean;
oneOf?: DataSchema[];
anyOf?: DataSchema[];
referenceCollectionUri?: string;
};
export declare function pickFieldsFromSchema(schema: DataSchema, fields: string[]): any;
export declare function excludeFieldsFromSchema(schema: DataSchema, fields: string[]): any;
export declare function findSchemaOption(schema: DataSchema, key: string): DataSchema;
export declare function populateSchemaTitles(schema: any): void;

@@ -16,3 +16,4 @@ "use strict";

schema.referenceCollectionPath ||
schema.referenceRecords);
schema.referenceRecords ||
schema.type === 'boolean');
}

@@ -75,2 +76,5 @@ exports.schemaHasFixedValues = schemaHasFixedValues;

function populateSchemaTitles(schema) {
if (!schema || typeof schema !== 'object') {
return;
}
const fields = (0, locators_1.getLocatorsFromSchema)(schema);

@@ -77,0 +81,0 @@ for (const field of fields) {

@@ -84,2 +84,2 @@ import { JSONSchema } from '../json-schema';

}
export { getFlowNode, getChildNodeKeys, getDownstreamNodeKeys, getParentNodeKeys, getUpstreamNodeKeys, } from './utils';
export { getFlowNode, getChildNodeKeys, getDownstreamNodeKeys, getParentNodeKeys, getUpstreamNodeKeys, getRootNodeKeys, getOrderedNodeKeys, } from './utils';
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getUpstreamNodeKeys = exports.getParentNodeKeys = exports.getDownstreamNodeKeys = exports.getChildNodeKeys = exports.getFlowNode = exports.FlowInstanceNodeState = exports.FlowInstanceState = exports.FLOW_INSTANCE_CHANNEL_PREFIX = exports.FLOW_CHANNEL_PREFIX = void 0;
exports.getOrderedNodeKeys = exports.getRootNodeKeys = exports.getUpstreamNodeKeys = exports.getParentNodeKeys = exports.getDownstreamNodeKeys = exports.getChildNodeKeys = exports.getFlowNode = exports.FlowInstanceNodeState = exports.FlowInstanceState = exports.FLOW_INSTANCE_CHANNEL_PREFIX = exports.FLOW_CHANNEL_PREFIX = void 0;
exports.FLOW_CHANNEL_PREFIX = 'private-flows-';

@@ -24,2 +24,4 @@ exports.FLOW_INSTANCE_CHANNEL_PREFIX = 'private-flow-instances-';

Object.defineProperty(exports, "getUpstreamNodeKeys", { enumerable: true, get: function () { return utils_1.getUpstreamNodeKeys; } });
Object.defineProperty(exports, "getRootNodeKeys", { enumerable: true, get: function () { return utils_1.getRootNodeKeys; } });
Object.defineProperty(exports, "getOrderedNodeKeys", { enumerable: true, get: function () { return utils_1.getOrderedNodeKeys; } });
//# sourceMappingURL=index.js.map

@@ -1,8 +0,10 @@

import { Flow, FlowNode } from '.';
import { Flow, FlowInstance, FlowNode } from '.';
import { FlowNodeSpec } from './nodes';
export declare function getFlowNode(flow: Flow, nodeKey: string): FlowNode;
export declare function getFlowNode(flow: Flow | FlowInstance, nodeKey: string): FlowNode;
export declare function getFlowNodeSpec(node: FlowNode): FlowNodeSpec;
export declare function getChildNodeKeys(flow: Flow, nodeKey: string): string[];
export declare function getDownstreamNodeKeys(flow: Flow, nodeKey: string): string[];
export declare function getParentNodeKeys(flow: Flow, nodeKey: string): string[];
export declare function getRootNodeKeys(flow: Flow | FlowInstance): string[];
export declare function getChildNodeKeys(flow: Flow | FlowInstance, nodeKey: string): string[];
export declare function getDownstreamNodeKeys(flow: Flow | FlowInstance, nodeKey: string): string[];
export declare function getParentNodeKeys(flow: Flow | FlowInstance, nodeKey: string): string[];
export declare function getUpstreamNodeKeys(flow: Flow, nodeKey: string): string[];
export declare function getOrderedNodeKeys(flow: Flow | FlowInstance): string[];
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getUpstreamNodeKeys = exports.getParentNodeKeys = exports.getDownstreamNodeKeys = exports.getChildNodeKeys = exports.getFlowNodeSpec = exports.getFlowNode = void 0;
exports.getOrderedNodeKeys = exports.getUpstreamNodeKeys = exports.getParentNodeKeys = exports.getDownstreamNodeKeys = exports.getChildNodeKeys = exports.getRootNodeKeys = exports.getFlowNodeSpec = exports.getFlowNode = void 0;
const nodes_1 = require("./nodes");

@@ -21,6 +21,15 @@ function getFlowNode(flow, nodeKey) {

exports.getFlowNodeSpec = getFlowNodeSpec;
function getRootNodeKeys(flow) {
var _a, _b;
const allNodeKeys = Object.keys((_a = flow.nodes) !== null && _a !== void 0 ? _a : {});
const allLinkKeys = Object.values((_b = flow.nodes) !== null && _b !== void 0 ? _b : {})
.flatMap((n) => { var _a, _b; return (_b = (_a = n.links) === null || _a === void 0 ? void 0 : _a.map((l) => l.key)) !== null && _b !== void 0 ? _b : []; })
.filter(Boolean);
return allNodeKeys.filter((k) => !allLinkKeys.includes(k));
}
exports.getRootNodeKeys = getRootNodeKeys;
function getChildNodeKeys(flow, nodeKey) {
const node = getFlowNode(flow, nodeKey);
const nodeLinks = (node === null || node === void 0 ? void 0 : node.links) || [];
return nodeLinks.map((nodeLink) => nodeLink.key);
return nodeLinks.map((nodeLink) => nodeLink.key).filter(Boolean);
}

@@ -46,2 +55,20 @@ exports.getChildNodeKeys = getChildNodeKeys;

exports.getUpstreamNodeKeys = getUpstreamNodeKeys;
function getOrderedNodeKeys(flow) {
const rootNodeKeys = getRootNodeKeys(flow);
const orderedNodeKeys = rootNodeKeys;
let hasMore = true;
while (hasMore) {
hasMore = false;
for (const nodeKey of orderedNodeKeys) {
for (const childNodeKey of getChildNodeKeys(flow, nodeKey)) {
if (!orderedNodeKeys.includes(childNodeKey)) {
orderedNodeKeys.push(childNodeKey);
hasMore = true;
}
}
}
}
return orderedNodeKeys;
}
exports.getOrderedNodeKeys = getOrderedNodeKeys;
//# sourceMappingURL=utils.js.map

@@ -11,2 +11,3 @@ "use strict";

let handshakeTimeout = null;
const HANDSHAKE_TIMEOUT_MS = 10000;
async function openIframe(uri, callbacks = {}) {

@@ -26,3 +27,3 @@ if (!initialized) {

complete(callbacks.onClose);
}, 10000);
}, HANDSHAKE_TIMEOUT_MS);
function handshake() {

@@ -29,0 +30,0 @@ clearHandshakeTimeout();

{
"name": "@integration-app/sdk",
"version": "0.16.4",
"version": "0.16.5",
"description": "JavaScript SDK for Integration.app",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -64,2 +64,4 @@ import Pusher, { Channel } from 'pusher-js'

import { SelfAccessor } from './auth/accessors'
import { DataLocationSelector } from './data-locations/api'
import { DataLocationAccessor } from './data-locations/accessors'

@@ -193,2 +195,6 @@ const DEFAULT_API_URI = 'https://engine-api.integration.app'

dataLocation(selector: DataLocationSelector): DataLocationAccessor {
return new DataLocationAccessor(this, selector)
}
get appEventTypes(): AppEventTypesAccessor {

@@ -195,0 +201,0 @@ return new AppEventTypesAccessor(this)

import { User } from '../users'
import { Integration } from '../integrations'
import { ConnectionMode, Integration } from '../integrations'
import { DataLocationSpec } from '../data-locations'

@@ -34,1 +35,37 @@ export class Connection {

}
export interface ConnectionSpec {
name: string
logoUri: string
auth: {
authorizeUri: string
tokenUri: string
}
ui?: {
description: string
schema: any
helpUri?: string
test: boolean
}
parametersSchema?: any
connectionMode?: ConnectionMode
data?: ConnectionDataSpec
}
export class ConnectionSpec {
constructor(opts: ConnectionSpec) {
Object.assign(this, opts)
}
}
export interface ConnectionDataSpec {
root: DataLocationSpec
[key: string]: DataLocationSpec
}

@@ -1,249 +0,44 @@

import { ConnectionMode } from '../integrations'
import { DataCollectionEvent, DataRecord } from '../data-collections'
import urljoin from 'url-join'
export {
ConnectionSpec as ConnectorSpec,
ConnectionDataSpec as ConnectorDataSpec,
} from '../connections'
export interface ConnectorSpec {
name: string
logoUri: string
auth: {
authorizeUri: string
tokenUri: string
}
ui?: {
description: string
schema: any
helpUri?: string
test: boolean
}
parametersSchema?: any
connectionMode?: ConnectionMode
data?: ConnectorDataSpec
}
export class ConnectorSpec {
constructor(opts: ConnectorSpec) {
Object.assign(this, opts)
}
}
export enum DataLocationType {
directory = 'directory',
collection = 'collection',
}
export interface DataLocationSpec {
path?: string
name?: string
type?: DataLocationType
isDefault?: boolean
read?: boolean
write?: boolean
/**
* @deprecated - replaced by path
*/
uri?: string
}
/**
* @deprecated
*/
export type DataLocation = DataLocationSpec
export interface ConnectorDataSpec {
root: DataLocationSpec
[key: string]: DataLocationSpec
}
export interface DataCollectionSpec {
type: DataLocationType.collection
name: string
fieldsSchema?: any
find?: DataCollectionFindSpec
findById?: DataCollectionFindByIdSpec
create?: DataCollectionCreateSpec
update?: DataCollectionUpdateSpec
delete?: DataCollectionDeleteSpec
udm?: DataCollectionUdmSpec
}
/**
* @deprecated
*/
export type DataCollection = DataCollectionSpec
export interface DataDirectorySpec {
type: DataLocationType.directory
name?: string
}
interface DataCollectionOperationResponse {
logs?: any[]
}
export interface DataCollectionFindSpec {
queryFields?: string[]
}
export interface DataCollectionFindByIdSpec {}
export interface DataCollectionCreateSpec {
fields?: string[]
requiredFields?: string[]
excludedFields?: string[]
/**
* @deprecated
*/
excludeFields?: string[]
}
export interface DataCollectionUpdateSpec {
fields?: string[]
excludedFields?: string[]
/**
* @deprecated
*/
excludeFields?: string[]
}
export interface DataCollectionDeleteSpec {}
export type DataCollectionUdmSpec = Record<string, Record<string, any>>
export interface DataCollectionFindRequest {
query?: any
cursor?: string
udm?: string
}
export interface DataCollectionFindResponse
extends DataCollectionOperationResponse {
records: DataRecord[]
cursor?: string
}
export interface DataCollectionFindByIdRequest {
id: string
udm?: string
}
export interface DataCollectionFindByIdResponse
extends DataCollectionOperationResponse {
record: DataRecord
}
export interface DataCollectionCreateRequest {
fields: Record<string, any>
}
export interface DataCollectionCreateResponse
extends DataCollectionOperationResponse,
DataRecord {}
export interface DataCollectionUpdateRequest {
id: string
fields: Record<string, any>
}
export interface DataCollectionUpdateResponse
extends DataCollectionOperationResponse,
DataRecord {}
export interface DataCollectionDeleteRequest {
id: string
}
export interface DataCollectionDeleteResponse
extends DataCollectionOperationResponse {}
export interface DataCollectionSubscribeRequest {
events?: {
created?: boolean
updated?: boolean
deleted?: boolean
}
udm?: string
webhookUri: string
}
export interface DataCollectionSubscribeResponse {
subscriptionId: string
pullIntervalSeconds?: number
cursor?: string
}
export interface DataCollectionUpdateSubscriptionRequest
extends DataCollectionSubscribeRequest {
subscriptionId: string
cursor?: string
}
export interface DataCollectionUpdateSubscriptionResponse
extends Omit<DataCollectionSubscribeResponse, 'subscriptionId'> {}
export interface DataCollectionUnsubscribeRequest {
subscriptionId: string
}
export interface DataCollectionUnsubscribeResponse {}
export interface DataCollectionEventsRequest {
subscriptionId: string
cursor: string
}
export interface DataCollectionEventsResponse {
events: DataCollectionEvent[]
cursor: string
}
export interface DataEventWebhookPayload {
subscriptionId: string
events: DataCollectionEvent[]
}
export interface DataCollectionParseUnifiedFieldsRequest {
udm: string
unifiedFields: Record<string, any>
}
export interface DataCollectionParseUnifiedFieldsResponse {
fields: any
}
export interface DataDirectoryListRequest {
cursor?: string
}
export interface DataDirectoryListResponse {
locations: DataLocationSpec[]
cursor?: string
}
export function makeCollectionOperationPath(
collectionPath: string,
operation: string,
) {
const [path, query] = (collectionPath ?? '').split('?')
return urljoin(path, operation, query ? `?${query}` : '')
}
// Backward compatibility
export {
DataLocationType,
DataLocationSpec,
DataLocation,
DataCollectionSpec,
DataDirectorySpec,
DataCollectionSpec as DataCollection,
DataCollectionUdmSpec,
DataCollectionFindSpec,
DataCollectionFindByIdSpec,
DataCollectionCreateSpec,
DataCollectionUpdateSpec,
DataCollectionDeleteSpec,
DataCollectionFindRequest,
DataCollectionFindResponse,
DataCollectionFindByIdRequest,
DataCollectionFindByIdResponse,
DataCollectionCreateRequest,
DataCollectionCreateResponse,
DataCollectionUpdateRequest,
DataCollectionUpdateResponse,
DataCollectionDeleteRequest,
DataCollectionDeleteResponse,
DataCollectionSubscribeRequest,
DataCollectionSubscribeResponse,
DataCollectionUpdateSubscriptionRequest,
DataCollectionUpdateSubscriptionResponse,
DataCollectionUnsubscribeRequest,
DataCollectionUnsubscribeResponse,
DataCollectionEventsRequest,
DataCollectionEventsResponse,
DataEventWebhookPayload,
DataCollectionParseUnifiedFieldsRequest,
DataCollectionParseUnifiedFieldsResponse,
DataDirectoryListRequest,
DataDirectoryListResponse,
makeCollectionOperationPath,
} from '../data-locations'

@@ -7,4 +7,81 @@ import {

} from '../data-builder/locators'
import { DataRecord } from '../data-collections'
export function schemaIsScalar(schema) {
export type DataSchemaType =
| 'object'
| 'array'
| 'string'
| 'number'
| 'integer'
| 'boolean'
| 'null'
export interface DataSchema {
/**
* Key used to identify this schema.
* Used, for example, in anyOf / oneOf schemas.
*/
key?: string
/**
* Schema type.
*
* It is `string` instead of DataSchemaType because Typescript
* interpreter type auto-detection identifies type values as `string` type
* and can't math it to DataSchemaType
*/
type?: string
/**
* Format for strings.
*/
format?: string
/**
* Properties for `object` schema
*/
properties?: { [key: string]: DataSchema }
/**
* Schema for array items
*/
items?: DataSchema
/**
* For `object` schemas - whether value can contain properties besides
* ones listed in `properties`.
*/
additionalProperties?: boolean
/**
* List of possible values for `string` schema.
*/
enum?: string[]
/**
* List of Data Records that can be used as possible values.
*/
referenceRecords?: DataRecord[]
/**
* Path of a Data Collection containing possible values.
*/
referenceCollectionPath?: string
/**
* For UDM schemas - reference to another UDM
*/
referenceUdm?: string
/**
* Default value that will be used if none is provided.
*/
default?: any
/**
* If `true`, schema allows custom values besides ones in
* `enum`, `referenceRecords`, or `refrenceCollectionPath`.
*/
allowCustom?: boolean
/**
* Schema that may be one of the listed schemas.
*/
oneOf?: DataSchema[]
anyOf?: DataSchema[]
/**
* @deprecated - use referenceCollectionPath instead
*/
referenceCollectionUri?: string
}
export function schemaIsScalar(schema: DataSchema) {
return (

@@ -15,3 +92,3 @@ schema.type != 'array' && schema.type != 'object' && schema.type != 'null'

export function schemaHasFixedValues(schema) {
export function schemaHasFixedValues(schema: DataSchema) {
if (!schema) {

@@ -25,15 +102,16 @@ return false

schema.referenceCollectionPath ||
schema.referenceRecords
schema.referenceRecords ||
schema.type === 'boolean'
)
}
export function schemaAllowsCustomValue(schema) {
export function schemaAllowsCustomValue(schema: DataSchema) {
return !schemaHasFixedValues(schema) || schema.allowCustom
}
export function schemaIsNumber(schema) {
export function schemaIsNumber(schema: DataSchema) {
return schema && (schema.type === 'number' || schema.type === 'integer')
}
export function schemaWithTitle(schema, title) {
export function schemaWithTitle(schema: DataSchema, title: string) {
return typeof schema === 'object'

@@ -50,3 +128,6 @@ ? {

*/
export function pickFieldsFromSchema(schema: any, fields: string[]): any {
export function pickFieldsFromSchema(
schema: DataSchema,
fields: string[],
): any {
const result = {

@@ -67,3 +148,6 @@ type: 'object',

*/
export function excludeFieldsFromSchema(schema: any, fields: string[]): any {
export function excludeFieldsFromSchema(
schema: DataSchema,
fields: string[],
): any {
let result = JSON.parse(JSON.stringify(schema))

@@ -76,3 +160,3 @@ for (const field of fields ?? []) {

export function findSchemaOption(schema: any, key: string) {
export function findSchemaOption(schema: DataSchema, key: string) {
const options = schema?.anyOf ?? schema?.oneOf

@@ -95,3 +179,6 @@ if (!Array.isArray(options)) {

*/
export function populateSchemaTitles(schema: any) {
export function populateSchemaTitles(schema: any): void {
if (!schema || typeof schema !== 'object') {
return
}
const fields = getLocatorsFromSchema(schema)

@@ -98,0 +185,0 @@ for (const field of fields) {

@@ -231,2 +231,4 @@ import { JSONSchema } from '../json-schema'

getUpstreamNodeKeys,
getRootNodeKeys,
getOrderedNodeKeys,
} from './utils'

@@ -1,5 +0,8 @@

import { Flow, FlowNode } from '.'
import { Flow, FlowInstance, FlowNode } from '.'
import { FlowNodeSpec, FLOW_NODE_SPECS } from './nodes'
export function getFlowNode(flow: Flow, nodeKey: string): FlowNode {
export function getFlowNode(
flow: Flow | FlowInstance,
nodeKey: string,
): FlowNode {
return flow.nodes?.[nodeKey]

@@ -20,8 +23,22 @@ }

/**
* Returns keys of nodes that don't have any parents.
*/
export function getRootNodeKeys(flow: Flow | FlowInstance): string[] {
const allNodeKeys = Object.keys(flow.nodes ?? {})
const allLinkKeys = Object.values(flow.nodes ?? {})
.flatMap((n) => n.links?.map((l) => l.key) ?? [])
.filter(Boolean)
return allNodeKeys.filter((k) => !allLinkKeys.includes(k))
}
/**
* Returns nodes of a given flow linked from the given node via `node.links`
*/
export function getChildNodeKeys(flow: Flow, nodeKey: string): string[] {
export function getChildNodeKeys(
flow: Flow | FlowInstance,
nodeKey: string,
): string[] {
const node = getFlowNode(flow, nodeKey)
const nodeLinks = node?.links || []
return nodeLinks.map((nodeLink) => nodeLink.key)
return nodeLinks.map((nodeLink) => nodeLink.key).filter(Boolean)
}

@@ -32,3 +49,6 @@

*/
export function getDownstreamNodeKeys(flow: Flow, nodeKey: string): string[] {
export function getDownstreamNodeKeys(
flow: Flow | FlowInstance,
nodeKey: string,
): string[] {
const linkedKeys = getChildNodeKeys(flow, nodeKey)

@@ -44,3 +64,6 @@ // Recursively find linked nodes for each linked node

*/
export function getParentNodeKeys(flow: Flow, nodeKey: string): string[] {
export function getParentNodeKeys(
flow: Flow | FlowInstance,
nodeKey: string,
): string[] {
return Object.keys(flow.nodes || {}).filter((key) => {

@@ -62,1 +85,30 @@ const node = getFlowNode(flow, key)

}
/**
* Returns keys of flow nodes in order of execution.
* If order of execution is not possible to determine (i.e. two triggers) - the returned order is arbitrary.
*
* This function allows executing operations on nodes that require upstream nodes to be processed first,
* such as node setup.
*/
export function getOrderedNodeKeys(flow: Flow | FlowInstance): string[] {
const rootNodeKeys = getRootNodeKeys(flow)
const orderedNodeKeys = rootNodeKeys
let hasMore = true
// Going layer after layer
while (hasMore) {
hasMore = false
for (const nodeKey of orderedNodeKeys) {
for (const childNodeKey of getChildNodeKeys(flow, nodeKey)) {
if (!orderedNodeKeys.includes(childNodeKey)) {
orderedNodeKeys.push(childNodeKey)
hasMore = true
}
}
}
}
return orderedNodeKeys
}

@@ -25,2 +25,5 @@ import { connectToChild } from 'penpal'

*/
const HANDSHAKE_TIMEOUT_MS = 10000
export async function openIframe(

@@ -49,3 +52,3 @@ uri: string,

complete(callbacks.onClose)
}, 10000)
}, HANDSHAKE_TIMEOUT_MS)

@@ -52,0 +55,0 @@ function handshake() {

@@ -30,2 +30,3 @@ import { Type } from '@sinclair/typebox'

export const AddressSchema = Type.Object({
type: Type.String(),
full: Type.String(),

@@ -32,0 +33,0 @@ street: Type.String(),

@@ -100,3 +100,5 @@ import { Static, Type } from '@sinclair/typebox'

result.phones.forEach((phone) => {
phone.value = normalizePhone(phone.value)
if (phone && typeof phone === 'object') {
phone.value = normalizePhone(phone.value)
}
})

@@ -103,0 +105,0 @@ }

import activities from './activities'
import { UnifiedDataModel } from './base'
import campaignMembers from './campaign-members'
import campaigns from './campaigns'

@@ -18,3 +17,2 @@ import companies from './companies'

LEADS = 'leads',
CAMPAIGN_MEMBERS = 'campaign-members',
USERS = 'users',

@@ -30,4 +28,3 @@ }

leads,
'campaign-members': campaignMembers,
users,
}

@@ -14,2 +14,3 @@ import { DataCollectionCreateSpec, DataCollectionDeleteSpec, DataCollectionFindSpec, DataCollectionUpdateSpec } from '../connector-api';

export declare const AddressSchema: import("@sinclair/typebox").TObject<{
type: import("@sinclair/typebox").TString;
full: import("@sinclair/typebox").TString;

@@ -16,0 +17,0 @@ street: import("@sinclair/typebox").TString;

@@ -8,2 +8,3 @@ "use strict";

exports.AddressSchema = typebox_1.Type.Object({
type: typebox_1.Type.String(),
full: typebox_1.Type.String(),

@@ -10,0 +11,0 @@ street: typebox_1.Type.String(),

@@ -16,2 +16,3 @@ import { Static } from '@sinclair/typebox';

primaryAddress: import("@sinclair/typebox").TObject<{
type: import("@sinclair/typebox").TString;
full: import("@sinclair/typebox").TString;

@@ -25,2 +26,3 @@ street: import("@sinclair/typebox").TString;

addresses: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
type: import("@sinclair/typebox").TString;
full: import("@sinclair/typebox").TString;

@@ -27,0 +29,0 @@ street: import("@sinclair/typebox").TString;

@@ -18,2 +18,3 @@ import { Static } from '@sinclair/typebox';

primaryAddress: import("@sinclair/typebox").TObject<{
type: import("@sinclair/typebox").TString;
full: import("@sinclair/typebox").TString;

@@ -27,2 +28,3 @@ street: import("@sinclair/typebox").TString;

addresses: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
type: import("@sinclair/typebox").TString;
full: import("@sinclair/typebox").TString;

@@ -29,0 +31,0 @@ street: import("@sinclair/typebox").TString;

@@ -87,3 +87,5 @@ "use strict";

result.phones.forEach((phone) => {
phone.value = (0, base_1.normalizePhone)(phone.value);
if (phone && typeof phone === 'object') {
phone.value = (0, base_1.normalizePhone)(phone.value);
}
});

@@ -90,0 +92,0 @@ }

@@ -9,5 +9,4 @@ import { UnifiedDataModel } from './base';

LEADS = "leads",
CAMPAIGN_MEMBERS = "campaign-members",
USERS = "users"
}
export declare const UNIFIED_DATA_MODELS: Record<string, UnifiedDataModel>;

@@ -6,3 +6,2 @@ "use strict";

const activities_1 = (0, tslib_1.__importDefault)(require("./activities"));
const campaign_members_1 = (0, tslib_1.__importDefault)(require("./campaign-members"));
const campaigns_1 = (0, tslib_1.__importDefault)(require("./campaigns"));

@@ -22,3 +21,2 @@ const companies_1 = (0, tslib_1.__importDefault)(require("./companies"));

UDM["LEADS"] = "leads";
UDM["CAMPAIGN_MEMBERS"] = "campaign-members";
UDM["USERS"] = "users";

@@ -33,5 +31,4 @@ })(UDM = exports.UDM || (exports.UDM = {}));

leads: leads_1.default,
'campaign-members': campaign_members_1.default,
users: users_1.default,
};
//# sourceMappingURL=index.js.map

@@ -18,2 +18,3 @@ import { Static } from '@sinclair/typebox';

primaryAddress: import("@sinclair/typebox").TObject<{
type: import("@sinclair/typebox").TString;
full: import("@sinclair/typebox").TString;

@@ -27,2 +28,3 @@ street: import("@sinclair/typebox").TString;

addresses: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
type: import("@sinclair/typebox").TString;
full: import("@sinclair/typebox").TString;

@@ -29,0 +31,0 @@ street: import("@sinclair/typebox").TString;

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc