lucid-extension-sdk 0.0.319 → 0.0.320

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/commandtypes.d.ts CHANGED
@@ -730,6 +730,10 @@ export type AddCardIntegrationQuery = {
730
730
  /** Field name -> callback name tuples for searching for legal field values in an enum */
731
731
  'fvsc'?: [string, string][] | undefined;
732
732
  };
733
+ /** If we can only search for user by their name (and not email) in the card integration. */
734
+ 'subn'?: boolean | undefined;
735
+ /** Callback to search for a user in the card integration */
736
+ 'usc'?: string | undefined;
733
737
  /** Show intro if user has not yet authorized this integration
734
738
  * String, not function; this is the name of the client's registered action hook
735
739
  */
@@ -30,6 +30,30 @@ export interface ExtensionCardFieldDefinition extends FieldDefinition {
30
30
  */
31
31
  search?: string | undefined;
32
32
  }
33
+ export type ExtensionCardUserData = ExtensionCardFieldOption & {
34
+ email: string | undefined;
35
+ };
36
+ /** @ignore */
37
+ export type SerializedExtensionCardUserData = SerializedCardFieldOption & {
38
+ 'e'?: string | undefined;
39
+ };
40
+ /** @ignore */
41
+ export declare function serializeCardUserData(userData: ExtensionCardUserData): SerializedExtensionCardUserData;
42
+ /** @ignore */
43
+ export declare function deserializeCardUserData(userData: SerializedExtensionCardUserData): ExtensionCardUserData;
44
+ export declare const isSerializedCardUserData: (subject: unknown) => subject is import("../guards").DestructureGuardedTypeObj<{
45
+ e: (x: unknown) => x is string | undefined;
46
+ l: typeof isString;
47
+ v: typeof isSerializedFieldType;
48
+ i: (x: unknown) => x is string | undefined;
49
+ }>;
50
+ export declare const isSerializedCardUserDataArray: (p1: unknown) => p1 is import("../guards").DestructureGuardedTypeObj<{
51
+ e: (x: unknown) => x is string | undefined;
52
+ l: typeof isString;
53
+ v: typeof isSerializedFieldType;
54
+ i: (x: unknown) => x is string | undefined;
55
+ }>[];
56
+ export type ExtensionCardUserDataSearch = ((searchText: string, inputSoFar: Map<string, SerializedFieldType>) => Promise<ExtensionCardUserData[]>) | undefined;
33
57
  /** @ignore */
34
58
  export type SerializedCardFieldOption = {
35
59
  'l': string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserializeCardFieldArrayDefinition = exports.deserializeCardFieldDefinition = exports.isSerializedExtensionCardFieldDefinition = exports.isSerializedFieldOptions = exports.isSerializedFieldOption = exports.deserializeFieldOption = exports.serializeCardFieldArrayDefinition = exports.serializeCardFieldDefinition = exports.serializeCardFieldOption = void 0;
3
+ exports.deserializeCardFieldArrayDefinition = exports.deserializeCardFieldDefinition = exports.isSerializedExtensionCardFieldDefinition = exports.isSerializedFieldOptions = exports.isSerializedFieldOption = exports.deserializeFieldOption = exports.serializeCardFieldArrayDefinition = exports.serializeCardFieldDefinition = exports.serializeCardFieldOption = exports.isSerializedCardUserDataArray = exports.isSerializedCardUserData = exports.deserializeCardUserData = exports.serializeCardUserData = void 0;
4
4
  const schemadefinition_1 = require("../../data/schemadefinition");
5
5
  const checks_1 = require("../checks");
6
6
  const fieldtypedefinition_1 = require("../data/fieldtypedefinition/fieldtypedefinition");
@@ -8,6 +8,23 @@ const serializedfielddefinition_1 = require("../data/serializedfield/serializedf
8
8
  const serializedfields_1 = require("../data/serializedfield/serializedfields");
9
9
  const validators_1 = require("../validators/validators");
10
10
  /** @ignore */
11
+ function serializeCardUserData(userData) {
12
+ return Object.assign({ 'e': userData.email }, serializeCardFieldOption(userData));
13
+ }
14
+ exports.serializeCardUserData = serializeCardUserData;
15
+ /** @ignore */
16
+ function deserializeCardUserData(userData) {
17
+ return Object.assign({ email: userData['e'] }, deserializeFieldOption(userData));
18
+ }
19
+ exports.deserializeCardUserData = deserializeCardUserData;
20
+ exports.isSerializedCardUserData = (0, validators_1.objectValidator)({
21
+ 'e': (0, validators_1.option)(checks_1.isString),
22
+ 'l': checks_1.isString,
23
+ 'v': serializedfields_1.isSerializedFieldType,
24
+ 'i': (0, validators_1.option)(checks_1.isString),
25
+ });
26
+ exports.isSerializedCardUserDataArray = (0, validators_1.arrayValidator)(exports.isSerializedCardUserData);
27
+ /** @ignore */
11
28
  function serializeCardFieldOption(option) {
12
29
  return {
13
30
  'l': option.label,
@@ -76,6 +76,10 @@ export declare abstract class LucidCardIntegration {
76
76
  */
77
77
  lightIconUrl?: string;
78
78
  };
79
+ /** If we are only able to search by name and not email in the card integration (ex: for JDC) */
80
+ searchUserByName?: boolean;
81
+ /** This is used to search for users in the card integration. It returns an additional email field of the user if available.*/
82
+ userSearchCallback?: string;
79
83
  /**
80
84
  * @deprecated Use AuthorizationFlowHandlerRegistry.registerAuthorizationFlowHandler.
81
85
  * WARNING: Currently unused and does nothing.
@@ -1,12 +1,13 @@
1
1
  import { EditorClient } from '../../editorclient';
2
2
  import { SerializedFieldType } from '../data/serializedfield/serializedfields';
3
- import { ExtensionCardFieldOption } from './cardintegrationdefinitions';
3
+ import { ExtensionCardFieldOption, ExtensionCardUserData } from './cardintegrationdefinitions';
4
4
  import { LucidCardIntegration } from './lucidcardintegration';
5
5
  export declare class LucidCardIntegrationRegistry {
6
6
  private static nextHookId;
7
7
  private static nextHookName;
8
8
  static registerFieldOptionsCallback(client: EditorClient, callback: (inputSoFar: Map<string, SerializedFieldType>) => Promise<ExtensionCardFieldOption[]>): string;
9
9
  static registerFieldSearchCallback(client: EditorClient, callback: (searchText: string, inputSoFar: Map<string, SerializedFieldType>) => Promise<ExtensionCardFieldOption[]>): string;
10
+ static registerUserSearchCallback(client: EditorClient, callback: (searchText: string, inputSoFar: Map<string, SerializedFieldType>) => Promise<ExtensionCardUserData[]>): string;
10
11
  private static registerDependencyMapping;
11
12
  /**
12
13
  * Register a card integration.
@@ -26,6 +26,14 @@ class LucidCardIntegrationRegistry {
26
26
  });
27
27
  return name;
28
28
  }
29
+ static registerUserSearchCallback(client, callback) {
30
+ const name = LucidCardIntegrationRegistry.nextHookName();
31
+ client.registerAction(name, async ({ 'i': inputSoFar, 's': searchText }) => {
32
+ const result = await callback(searchText, new Map(inputSoFar));
33
+ return result.map((userData) => (0, cardintegrationdefinitions_1.serializeCardUserData)(userData));
34
+ });
35
+ return name;
36
+ }
29
37
  static registerDependencyMapping(client, cardIntegration, serialized) {
30
38
  if (cardIntegration.showDependencyMapping) {
31
39
  serialized['sdm'] = true;
@@ -140,6 +148,8 @@ class LucidCardIntegrationRegistry {
140
148
  ? [...cardIntegration.fieldConfiguration.fieldValueSearchCallbacks.entries()]
141
149
  : undefined,
142
150
  },
151
+ 'subn': cardIntegration.searchUserByName,
152
+ 'usc': cardIntegration.userSearchCallback,
143
153
  'gdc': getDefaultConfigActionName,
144
154
  'i': showIntroActionName,
145
155
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lucid-extension-sdk",
3
- "version": "0.0.319",
3
+ "version": "0.0.320",
4
4
  "description": "Utility classes for writing Lucid Software editor extensions",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",