@droz-js/sdk 0.9.78 → 0.9.80

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@droz-js/sdk",
3
3
  "description": "Droz SDK",
4
- "version": "0.9.78",
4
+ "version": "0.9.80",
5
5
  "private": false,
6
6
  "exports": {
7
7
  ".": "./src/index.js",
package/src/nucleus.d.ts CHANGED
@@ -137,12 +137,16 @@ declare const Nucleus_base: new (options?: import("./client/http").HttpClientOpt
137
137
  getCustomer(variables: import("./sdks/nucleus").Exact<{
138
138
  identifier: import("./sdks/nucleus").Scalars["ID"]["input"];
139
139
  }>, options?: unknown): Promise<import("./sdks/nucleus").GetCustomerQuery>;
140
- listCustomers(variables?: import("./sdks/nucleus").Exact<{
141
- next?: import("./sdks/nucleus").InputMaybe<import("./sdks/nucleus").Scalars["Base64"]["input"]>;
142
- }>, options?: unknown): Promise<import("./sdks/nucleus").ListCustomersQuery>;
143
140
  batchGetCustomersById(variables: import("./sdks/nucleus").Exact<{
144
141
  ids: Array<import("./sdks/nucleus").Scalars["ID"]["input"]> | import("./sdks/nucleus").Scalars["ID"]["input"];
145
142
  }>, options?: unknown): Promise<import("./sdks/nucleus").BatchGetCustomersByIdQuery>;
143
+ listCustomers(variables?: import("./sdks/nucleus").Exact<{
144
+ next?: import("./sdks/nucleus").InputMaybe<import("./sdks/nucleus").Scalars["Base64"]["input"]>;
145
+ }>, options?: unknown): Promise<import("./sdks/nucleus").ListCustomersQuery>;
146
+ searchCustomers(variables?: import("./sdks/nucleus").Exact<{
147
+ query?: import("./sdks/nucleus").InputMaybe<import("./sdks/nucleus").Scalars["String"]["input"]>;
148
+ page?: import("./sdks/nucleus").InputMaybe<import("./sdks/nucleus").Scalars["Number"]["input"]>;
149
+ }>, options?: unknown): Promise<import("./sdks/nucleus").SearchCustomersQuery>;
146
150
  createCustomer(variables?: import("./sdks/nucleus").Exact<{
147
151
  input?: import("./sdks/nucleus").InputMaybe<import("./sdks/nucleus").CreateCustomerInput>;
148
152
  }>, options?: unknown): Promise<import("./sdks/nucleus").CreateCustomerMutation>;
@@ -656,7 +656,7 @@ export type Ticket = {
656
656
  channelId: Scalars['ID']['output'];
657
657
  closedAt?: Maybe<Scalars['DateTime']['output']>;
658
658
  createdAt: Scalars['DateTime']['output'];
659
- customer?: Maybe<DrozChatCustomer>;
659
+ customer: DrozChatCustomer;
660
660
  customerId: Scalars['ID']['output'];
661
661
  externalId?: Maybe<Scalars['String']['output']>;
662
662
  externalProviderId?: Maybe<Scalars['String']['output']>;
@@ -1080,7 +1080,7 @@ export type TicketTriggerAppFragment = (Pick<TicketTriggerApp, 'drn' | 'name' |
1080
1080
  });
1081
1081
  export type TicketFragment = (Pick<Ticket, 'channelId' | 'id' | 'subject' | 'state' | 'status' | 'priority' | 'tags' | 'externalProviderId' | 'externalId' | 'protocol' | 'createdAt' | 'updatedAt' | 'assignedAt' | 'closedAt' | 'lastMessageAt' | 'firstAgentResponseAt' | 'timeToFirstAgentResponseInMs' | 'timeToCloseInMs' | 'messagesCount' | 'lastMessage' | 'unreadMessagesCount'> & {
1082
1082
  assignee?: Maybe<DrozChatAgentFragment>;
1083
- customer?: Maybe<CustomerFragment>;
1083
+ customer: CustomerFragment;
1084
1084
  triggerApp?: Maybe<TicketTriggerAppFragment>;
1085
1085
  channel: DrozChatChannelFragment;
1086
1086
  });
@@ -345,6 +345,7 @@ export type Customer = {
345
345
  externalId?: Maybe<Scalars['ID']['output']>;
346
346
  externalIds?: Maybe<Array<Scalars['ID']['output']>>;
347
347
  id: Scalars['ID']['output'];
348
+ mergedIntoCustomerId?: Maybe<Scalars['ID']['output']>;
348
349
  name: Scalars['String']['output'];
349
350
  /** @deprecated Use phones instead */
350
351
  phone?: Maybe<Scalars['String']['output']>;
@@ -436,6 +437,10 @@ export type MercadoLivreCredentialsType = ICredentials & {
436
437
  type: CredentialsType;
437
438
  updatedAt: Scalars['DateTime']['output'];
438
439
  };
440
+ export type MergeCustomersInput = {
441
+ mainId: Scalars['ID']['input'];
442
+ mergeWithIds: Array<Scalars['ID']['input']>;
443
+ };
439
444
  export type MetaAuthInfo = {
440
445
  configurationId: Scalars['String']['output'];
441
446
  metaAppId: Scalars['String']['output'];
@@ -473,6 +478,7 @@ export type Mutation = {
473
478
  getOrCreateCustomer: Customer;
474
479
  joinAsSuperAdmin?: Maybe<Scalars['String']['output']>;
475
480
  leaveOrganization?: Maybe<Scalars['Void']['output']>;
481
+ mergeCustomers: Customer;
476
482
  patchSessionAttributes?: Maybe<Scalars['JSON']['output']>;
477
483
  publishStateMachineConfig?: Maybe<StateMachineConfig>;
478
484
  registerAppInstance: AppInstance;
@@ -550,6 +556,9 @@ export type MutationJoinAsSuperAdminArgs = {
550
556
  export type MutationLeaveOrganizationArgs = {
551
557
  input: LeaveOrganizationInput;
552
558
  };
559
+ export type MutationMergeCustomersArgs = {
560
+ input: MergeCustomersInput;
561
+ };
553
562
  export type MutationPatchSessionAttributesArgs = {
554
563
  input: PatchSessionAttributesInput;
555
564
  };
@@ -731,6 +740,7 @@ export type Query = {
731
740
  listStateMachineConfigsByStatus: StateMachineConfigConnection;
732
741
  listSystemRoles: Array<Role>;
733
742
  searchAgents: AgentConnection;
743
+ searchCustomers: CustomersConnection;
734
744
  searchSessions: Array<IndexedSession>;
735
745
  version?: Maybe<Scalars['String']['output']>;
736
746
  };
@@ -844,6 +854,10 @@ export type QuerySearchAgentsArgs = {
844
854
  page?: InputMaybe<Scalars['Number']['input']>;
845
855
  query?: InputMaybe<Scalars['String']['input']>;
846
856
  };
857
+ export type QuerySearchCustomersArgs = {
858
+ page?: InputMaybe<Scalars['Number']['input']>;
859
+ query?: InputMaybe<Scalars['String']['input']>;
860
+ };
847
861
  export type QuerySearchSessionsArgs = {
848
862
  q?: InputMaybe<Scalars['String']['input']>;
849
863
  };
@@ -1425,6 +1439,12 @@ export type GetCustomerQueryVariables = Exact<{
1425
1439
  export type GetCustomerQuery = {
1426
1440
  getCustomer?: Maybe<CustomerFragment>;
1427
1441
  };
1442
+ export type BatchGetCustomersByIdQueryVariables = Exact<{
1443
+ ids: Array<Scalars['ID']['input']> | Scalars['ID']['input'];
1444
+ }>;
1445
+ export type BatchGetCustomersByIdQuery = {
1446
+ batchGetCustomersById?: Maybe<Array<Maybe<CustomerFragment>>>;
1447
+ };
1428
1448
  export type ListCustomersQueryVariables = Exact<{
1429
1449
  next?: InputMaybe<Scalars['Base64']['input']>;
1430
1450
  }>;
@@ -1434,11 +1454,15 @@ export type ListCustomersQuery = {
1434
1454
  pageInfo: Pick<PageInfo, 'hasNext' | 'next'>;
1435
1455
  }>;
1436
1456
  };
1437
- export type BatchGetCustomersByIdQueryVariables = Exact<{
1438
- ids: Array<Scalars['ID']['input']> | Scalars['ID']['input'];
1457
+ export type SearchCustomersQueryVariables = Exact<{
1458
+ query?: InputMaybe<Scalars['String']['input']>;
1459
+ page?: InputMaybe<Scalars['Number']['input']>;
1439
1460
  }>;
1440
- export type BatchGetCustomersByIdQuery = {
1441
- batchGetCustomersById?: Maybe<Array<Maybe<CustomerFragment>>>;
1461
+ export type SearchCustomersQuery = {
1462
+ searchCustomers: {
1463
+ nodes: Array<CustomerFragment>;
1464
+ pageInfo: Pick<PageInfo, 'hasNext' | 'next'>;
1465
+ };
1442
1466
  };
1443
1467
  export type CreateCustomerMutationVariables = Exact<{
1444
1468
  input?: InputMaybe<CreateCustomerInput>;
@@ -1773,8 +1797,9 @@ export declare const UpdateCredentialsDocument = "\n mutation updateCredentia
1773
1797
  export declare const RemoveCredentialsDocument = "\n mutation removeCredentials($input: RemoveCredentialsInput!) {\n removeCredentials(input: $input) {\n ...safeCredentials\n }\n}\n \n fragment safeCredentials on SafeCredentials {\n id\n type\n description\n systemCredentials\n createdAt\n updatedAt\n}\n ";
1774
1798
  export declare const RemoveSystemCredentialsDocument = "\n mutation removeSystemCredentials($input: RemoveCredentialsInput!) {\n removeSystemCredentials(input: $input) {\n ...safeCredentials\n }\n}\n \n fragment safeCredentials on SafeCredentials {\n id\n type\n description\n systemCredentials\n createdAt\n updatedAt\n}\n ";
1775
1799
  export declare const GetCustomerDocument = "\n query getCustomer($identifier: ID!) {\n getCustomer(identifier: $identifier) {\n ...customer\n }\n}\n \n fragment customer on Customer {\n id\n name\n alternateName\n email\n phone\n document\n externalId\n emails\n phones\n documents\n externalIds\n apps {\n id\n name\n }\n status\n createdAt\n updatedAt\n}\n ";
1776
- export declare const ListCustomersDocument = "\n query listCustomers($next: Base64) {\n listCustomers(next: $next) {\n nodes {\n ...customer\n }\n pageInfo {\n hasNext\n next\n }\n }\n}\n \n fragment customer on Customer {\n id\n name\n alternateName\n email\n phone\n document\n externalId\n emails\n phones\n documents\n externalIds\n apps {\n id\n name\n }\n status\n createdAt\n updatedAt\n}\n ";
1777
1800
  export declare const BatchGetCustomersByIdDocument = "\n query batchGetCustomersById($ids: [ID!]!) {\n batchGetCustomersById(ids: $ids) {\n ...customer\n }\n}\n \n fragment customer on Customer {\n id\n name\n alternateName\n email\n phone\n document\n externalId\n emails\n phones\n documents\n externalIds\n apps {\n id\n name\n }\n status\n createdAt\n updatedAt\n}\n ";
1801
+ export declare const ListCustomersDocument = "\n query listCustomers($next: Base64) {\n listCustomers(next: $next) {\n nodes {\n ...customer\n }\n pageInfo {\n hasNext\n next\n }\n }\n}\n \n fragment customer on Customer {\n id\n name\n alternateName\n email\n phone\n document\n externalId\n emails\n phones\n documents\n externalIds\n apps {\n id\n name\n }\n status\n createdAt\n updatedAt\n}\n ";
1802
+ export declare const SearchCustomersDocument = "\n query searchCustomers($query: String, $page: Number) {\n searchCustomers(query: $query, page: $page) {\n nodes {\n ...customer\n }\n pageInfo {\n hasNext\n next\n }\n }\n}\n \n fragment customer on Customer {\n id\n name\n alternateName\n email\n phone\n document\n externalId\n emails\n phones\n documents\n externalIds\n apps {\n id\n name\n }\n status\n createdAt\n updatedAt\n}\n ";
1778
1803
  export declare const CreateCustomerDocument = "\n mutation createCustomer($input: CreateCustomerInput) {\n createCustomer(input: $input) {\n ...customer\n }\n}\n \n fragment customer on Customer {\n id\n name\n alternateName\n email\n phone\n document\n externalId\n emails\n phones\n documents\n externalIds\n apps {\n id\n name\n }\n status\n createdAt\n updatedAt\n}\n ";
1779
1804
  export declare const GetOrCreateCustomerDocument = "\n mutation getOrCreateCustomer($input: GetOrCreateCustomerInput!) {\n getOrCreateCustomer(input: $input) {\n ...customer\n }\n}\n \n fragment customer on Customer {\n id\n name\n alternateName\n email\n phone\n document\n externalId\n emails\n phones\n documents\n externalIds\n apps {\n id\n name\n }\n status\n createdAt\n updatedAt\n}\n ";
1780
1805
  export declare const UpdateCustomerDocument = "\n mutation updateCustomer($input: UpdateCustomerInput!) {\n updateCustomer(input: $input) {\n ...customer\n }\n}\n \n fragment customer on Customer {\n id\n name\n alternateName\n email\n phone\n document\n externalId\n emails\n phones\n documents\n externalIds\n apps {\n id\n name\n }\n status\n createdAt\n updatedAt\n}\n ";
@@ -1860,8 +1885,9 @@ export declare function getSdk<C>(requester: Requester<C>): {
1860
1885
  removeCredentials(variables: RemoveCredentialsMutationVariables, options?: C): Promise<RemoveCredentialsMutation>;
1861
1886
  removeSystemCredentials(variables: RemoveSystemCredentialsMutationVariables, options?: C): Promise<RemoveSystemCredentialsMutation>;
1862
1887
  getCustomer(variables: GetCustomerQueryVariables, options?: C): Promise<GetCustomerQuery>;
1863
- listCustomers(variables?: ListCustomersQueryVariables, options?: C): Promise<ListCustomersQuery>;
1864
1888
  batchGetCustomersById(variables: BatchGetCustomersByIdQueryVariables, options?: C): Promise<BatchGetCustomersByIdQuery>;
1889
+ listCustomers(variables?: ListCustomersQueryVariables, options?: C): Promise<ListCustomersQuery>;
1890
+ searchCustomers(variables?: SearchCustomersQueryVariables, options?: C): Promise<SearchCustomersQuery>;
1865
1891
  createCustomer(variables?: CreateCustomerMutationVariables, options?: C): Promise<CreateCustomerMutation>;
1866
1892
  getOrCreateCustomer(variables: GetOrCreateCustomerMutationVariables, options?: C): Promise<GetOrCreateCustomerMutation>;
1867
1893
  updateCustomer(variables: UpdateCustomerMutationVariables, options?: C): Promise<UpdateCustomerMutation>;
@@ -2,8 +2,8 @@
2
2
  /* istanbul ignore file */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.GetAppInstanceDocument = exports.ListAppsDocument = exports.GetAppDocument = exports.LeaveOrganizationDocument = exports.JoinAsSuperAdminDocument = exports.RemoveRoleFromAgentDocument = exports.AddRoleToAgentDocument = exports.RemoveSystemApiKeyAgentDocument = exports.RemoveAgentDocument = exports.UpdateAgentDocument = exports.CreateSystemApiKeyAgentDocument = exports.CreateApiKeyAgentDocument = exports.CreateAgentDocument = exports.UpdateMyProfileDocument = exports.SearchAgentsDocument = exports.ListApiKeyAgentsDocument = exports.ListAgentsDocument = exports.GetAgentsDocument = exports.GetAgentByEmailDocument = exports.GetAgentDocument = exports.GetMeDocument = exports.StorageFragmentDoc = exports.StateMachineConfigConnectionFragmentDoc = exports.StateMachineConfigFragmentDoc = exports.StateMachineConfigStateFragmentDoc = exports.StateMachineConfigStateOnFragmentDoc = exports.SettingsFragmentDoc = exports.SessionSchemaFragmentDoc = exports.SessionFragmentDoc = exports.RoleFragmentDoc = exports.PolicyFragmentDoc = exports.CronJobFragmentDoc = exports.CustomerFragmentDoc = exports.CredentialsWithSecretFragmentDoc = exports.SafeCredentialsFragmentDoc = exports.AppWithInstancesFragmentDoc = exports.AppInstanceFragmentDoc = exports.AppFragmentDoc = exports.ApiKeyFragmentDoc = exports.AgentFragmentDoc = exports.Typenames = exports.StateMachineConfigStatus = exports.SessionStatus = exports.PatchOperation = exports.CustomerStatus = exports.CustomerIndex = exports.CredentialsType = exports.Can = exports.AppType = exports.AppInstanceStatus = void 0;
5
- exports.ListDraftStateMachineConfigsDocument = exports.ListLiveStateMachineConfigsDocument = exports.CountLiveStateMachineConfigsDocument = exports.GetStateMachineDocument = exports.UpdateSettingsDocument = exports.GetSettingsDocument = exports.RemoveTagsFromSessionAttributesDocument = exports.AddTagsToSessionAttributesDocument = exports.PatchSessionAttributesDocument = exports.SetSessionAttributeDocument = exports.SearchSessionsDocument = exports.GetSessionSchemaForAppIdDocument = exports.GetSessionSchemaDocument = exports.GetSessionDocument = exports.StartCustomSessionDocument = exports.StartSessionDocument = exports.CheckPermissionsDocument = exports.GetSystemRoleDocument = exports.ListSystemRolesDocument = exports.RemoveCronJobDocument = exports.UpdateCronJobDocument = exports.CreateCronJobDocument = exports.ListCronJobsDocument = exports.GetCronJobDocument = exports.DeleteCustomerDocument = exports.UpdateCustomerDocument = exports.GetOrCreateCustomerDocument = exports.CreateCustomerDocument = exports.BatchGetCustomersByIdDocument = exports.ListCustomersDocument = exports.GetCustomerDocument = exports.RemoveSystemCredentialsDocument = exports.RemoveCredentialsDocument = exports.UpdateCredentialsDocument = exports.CreateSystemCredentialsDocument = exports.CreateCredentialsDocument = exports.GetMercadoLivreAuthInfoDocument = exports.CountCredentialsDocument = exports.ListCredentialsDocument = exports.GetMetaAuthInfoDocument = exports.GetCredentialsSecretDocument = exports.GetCredentialsDocument = exports.GetAuthInfoDocument = exports.GetAmplifyConfigDocument = exports.GetFederationMetadataDocument = exports.UnregisterAppInstanceDocument = exports.RegisterAppInstanceDocument = exports.CountAppInstancesDocument = exports.ListAppInstancesDocument = exports.GetAppInstancesDocument = void 0;
6
- exports.serviceName = exports.CreatePresignedUploadUrlDocument = exports.GetStorageDocument = exports.RemoveStateMachineConfigStateDocument = exports.UpdateStateMachineConfigStateDocument = exports.CreateStateMachineConfigStateDocument = exports.PublishStateMachineConfigDocument = exports.EditStateMachineConfigDocument = exports.RemoveStateMachineConfigDocument = exports.UpdateStateMachineConfigDocument = exports.CreateStateMachineConfigDocument = exports.IsAppInstanceInUseDocument = exports.GetXStateMachineConfigDocument = exports.ListStateMachineConfigVersionsDocument = exports.ListStateMachineConfigsByStatusDocument = void 0;
5
+ exports.ListLiveStateMachineConfigsDocument = exports.CountLiveStateMachineConfigsDocument = exports.GetStateMachineDocument = exports.UpdateSettingsDocument = exports.GetSettingsDocument = exports.RemoveTagsFromSessionAttributesDocument = exports.AddTagsToSessionAttributesDocument = exports.PatchSessionAttributesDocument = exports.SetSessionAttributeDocument = exports.SearchSessionsDocument = exports.GetSessionSchemaForAppIdDocument = exports.GetSessionSchemaDocument = exports.GetSessionDocument = exports.StartCustomSessionDocument = exports.StartSessionDocument = exports.CheckPermissionsDocument = exports.GetSystemRoleDocument = exports.ListSystemRolesDocument = exports.RemoveCronJobDocument = exports.UpdateCronJobDocument = exports.CreateCronJobDocument = exports.ListCronJobsDocument = exports.GetCronJobDocument = exports.DeleteCustomerDocument = exports.UpdateCustomerDocument = exports.GetOrCreateCustomerDocument = exports.CreateCustomerDocument = exports.SearchCustomersDocument = exports.ListCustomersDocument = exports.BatchGetCustomersByIdDocument = exports.GetCustomerDocument = exports.RemoveSystemCredentialsDocument = exports.RemoveCredentialsDocument = exports.UpdateCredentialsDocument = exports.CreateSystemCredentialsDocument = exports.CreateCredentialsDocument = exports.GetMercadoLivreAuthInfoDocument = exports.CountCredentialsDocument = exports.ListCredentialsDocument = exports.GetMetaAuthInfoDocument = exports.GetCredentialsSecretDocument = exports.GetCredentialsDocument = exports.GetAuthInfoDocument = exports.GetAmplifyConfigDocument = exports.GetFederationMetadataDocument = exports.UnregisterAppInstanceDocument = exports.RegisterAppInstanceDocument = exports.CountAppInstancesDocument = exports.ListAppInstancesDocument = exports.GetAppInstancesDocument = void 0;
6
+ exports.serviceName = exports.CreatePresignedUploadUrlDocument = exports.GetStorageDocument = exports.RemoveStateMachineConfigStateDocument = exports.UpdateStateMachineConfigStateDocument = exports.CreateStateMachineConfigStateDocument = exports.PublishStateMachineConfigDocument = exports.EditStateMachineConfigDocument = exports.RemoveStateMachineConfigDocument = exports.UpdateStateMachineConfigDocument = exports.CreateStateMachineConfigDocument = exports.IsAppInstanceInUseDocument = exports.GetXStateMachineConfigDocument = exports.ListStateMachineConfigVersionsDocument = exports.ListStateMachineConfigsByStatusDocument = exports.ListDraftStateMachineConfigsDocument = void 0;
7
7
  exports.getSdk = getSdk;
8
8
  var AppInstanceStatus;
9
9
  (function (AppInstanceStatus) {
@@ -666,6 +666,13 @@ exports.GetCustomerDocument = `
666
666
  }
667
667
  }
668
668
  ${exports.CustomerFragmentDoc}`;
669
+ exports.BatchGetCustomersByIdDocument = `
670
+ query batchGetCustomersById($ids: [ID!]!) {
671
+ batchGetCustomersById(ids: $ids) {
672
+ ...customer
673
+ }
674
+ }
675
+ ${exports.CustomerFragmentDoc}`;
669
676
  exports.ListCustomersDocument = `
670
677
  query listCustomers($next: Base64) {
671
678
  listCustomers(next: $next) {
@@ -679,10 +686,16 @@ exports.ListCustomersDocument = `
679
686
  }
680
687
  }
681
688
  ${exports.CustomerFragmentDoc}`;
682
- exports.BatchGetCustomersByIdDocument = `
683
- query batchGetCustomersById($ids: [ID!]!) {
684
- batchGetCustomersById(ids: $ids) {
685
- ...customer
689
+ exports.SearchCustomersDocument = `
690
+ query searchCustomers($query: String, $page: Number) {
691
+ searchCustomers(query: $query, page: $page) {
692
+ nodes {
693
+ ...customer
694
+ }
695
+ pageInfo {
696
+ hasNext
697
+ next
698
+ }
686
699
  }
687
700
  }
688
701
  ${exports.CustomerFragmentDoc}`;
@@ -1142,11 +1155,14 @@ function getSdk(requester) {
1142
1155
  getCustomer(variables, options) {
1143
1156
  return requester(exports.GetCustomerDocument, variables, options);
1144
1157
  },
1158
+ batchGetCustomersById(variables, options) {
1159
+ return requester(exports.BatchGetCustomersByIdDocument, variables, options);
1160
+ },
1145
1161
  listCustomers(variables, options) {
1146
1162
  return requester(exports.ListCustomersDocument, variables, options);
1147
1163
  },
1148
- batchGetCustomersById(variables, options) {
1149
- return requester(exports.BatchGetCustomersByIdDocument, variables, options);
1164
+ searchCustomers(variables, options) {
1165
+ return requester(exports.SearchCustomersDocument, variables, options);
1150
1166
  },
1151
1167
  createCustomer(variables, options) {
1152
1168
  return requester(exports.CreateCustomerDocument, variables, options);