react-native-persona 1.2.11 → 1.3.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.
Files changed (51) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/android/README.md +14 -0
  3. package/android/build.gradle +21 -100
  4. package/lib/commonjs/index.js +477 -0
  5. package/lib/commonjs/index.js.map +1 -0
  6. package/lib/commonjs/util.js +36 -0
  7. package/lib/commonjs/util.js.map +1 -0
  8. package/lib/commonjs/util.spec.js +31 -0
  9. package/lib/commonjs/util.spec.js.map +1 -0
  10. package/lib/module/index.js +452 -0
  11. package/lib/module/index.js.map +1 -0
  12. package/lib/module/util.js +29 -0
  13. package/lib/module/util.js.map +1 -0
  14. package/lib/module/util.spec.js +28 -0
  15. package/lib/module/util.spec.js.map +1 -0
  16. package/lib/typescript/persona-tools/Config.d.ts +15 -0
  17. package/lib/typescript/persona-tools/Theme.d.ts +124 -0
  18. package/lib/typescript/persona-tools/index.d.ts +1 -0
  19. package/lib/typescript/persona-tools/lib/AndroidResourcePrinter.d.ts +40 -0
  20. package/lib/typescript/persona-tools/lib/AndroidResourcePrinter.spec.d.ts +1 -0
  21. package/lib/typescript/persona-tools/lib/prompts.d.ts +8 -0
  22. package/lib/typescript/persona-tools/tools/AndroidThemeGenerator.d.ts +5 -0
  23. package/lib/typescript/persona-tools/tools/IosThemeInstructions.d.ts +5 -0
  24. package/{generatedTypes → lib/typescript/src}/index.d.ts +67 -3
  25. package/lib/typescript/src/util.d.ts +3 -0
  26. package/lib/typescript/src/util.spec.d.ts +1 -0
  27. package/package.json +78 -20
  28. package/persona-tools/{config.ts → Config.ts} +7 -7
  29. package/persona-tools/Theme.ts +140 -138
  30. package/persona-tools/index.ts +9 -9
  31. package/persona-tools/lib/AndroidResourcePrinter.spec.ts +100 -101
  32. package/persona-tools/lib/AndroidResourcePrinter.ts +314 -278
  33. package/persona-tools/lib/prompts.ts +11 -11
  34. package/persona-tools/tools/AndroidThemeGenerator.ts +31 -32
  35. package/persona-tools/tools/IosThemeInstructions.ts +8 -8
  36. package/src/index.ts +17 -18
  37. package/src/util.spec.ts +14 -8
  38. package/src/util.ts +3 -3
  39. package/jest.config.js +0 -10
  40. package/persona-tools/Theme.js +0 -213
  41. package/persona-tools/config.js +0 -72
  42. package/persona-tools/index.js +0 -30
  43. package/persona-tools/lib/AndroidResourcePrinter.js +0 -832
  44. package/persona-tools/lib/AndroidResourcePrinter.spec.js +0 -1135
  45. package/persona-tools/lib/prompts.js +0 -39
  46. package/persona-tools/tools/AndroidThemeGenerator.js +0 -59
  47. package/persona-tools/tools/IosThemeInstructions.js +0 -34
  48. package/src/index.js +0 -307
  49. package/src/util.js +0 -29
  50. package/src/util.spec.js +0 -15
  51. package/tsconfig.json +0 -29
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"names":["PersonaInquiry","NativeModules","InvalidTemplateId","Error","InvalidInquiryId","InvalidAccountId","makeInquiryId","candidate","startsWith","makeTemplateId","makeAccountId","Builder","name","_name","address","_address","birthdate","date","_birthdate","emailAddress","email","_emailAddress","phoneNumber","_phoneNumber","field","fieldKey","value","_fields","build","toISOString","additionalFields","builder","Fields","Environment","eventEmitter","NativeEventEmitter","Inquiry","constructor","options","templateId","inquiryId","referenceId","accountId","environment","accessToken","fields","onSuccess","onCancelled","onFailed","onError","iosThemeObject","clearListeners","onSuccessListener","remove","onCancelledListener","onFailedListener","onErrorListener","start","addListener","attributes","Date","error","errorMessage","startInquiry","iosTheme","InquiryBuilder","_inquiryId","_accessToken","callback","_onSuccess","_onCancelled","_onFailed","_onError","themeObject","_iosThemeObject","TemplateBuilder","_templateId","_accountId","undefined","_referenceId","_environment","fromInquiry","fromTemplate","InquiryBuilders"],"mappings":"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","sourcesContent":["import {\n NativeModules,\n NativeEventEmitter,\n EventSubscription,\n} from 'react-native';\nimport { processThemeValues } from './util';\n\nconst { PersonaInquiry } = NativeModules;\n\n// Using Opaque types + Smart Constructor enforces validation at\n// instantiation time for IDS\ndeclare const Unique: unique symbol;\nexport type Opaque<T, Tag> = T & { [Unique]: Tag };\n\ntype TemplateId = Opaque<string, 'TemplateId'>;\ntype InquiryId = Opaque<string, 'InquiryId'>;\ntype AccountId = Opaque<string, 'AccountId'>;\n\nexport class InvalidTemplateId extends Error {}\nexport class InvalidInquiryId extends Error {}\nexport class InvalidAccountId extends Error {}\n\n/**\n * Run validations that the string is in proper Inquiry token format\n * and do a type conversion to InquiryId.\n *\n * @param candidate\n */\nfunction makeInquiryId(candidate: string): InquiryId {\n if (candidate.startsWith('inq_')) return candidate as InquiryId;\n\n throw new InvalidInquiryId(\n `Valid template IDs start with \"inq_\". Received: ${candidate} `\n );\n}\n\n/**\n * Run validations that the string is in proper Template token format\n * and do a type conversion to TemplateId.\n *\n * @param candidate\n */\nfunction makeTemplateId(candidate: string): TemplateId {\n if (candidate.startsWith('tmpl_') || candidate.startsWith('blu_')) {\n return candidate as TemplateId;\n }\n\n throw new InvalidTemplateId(\n `Valid template IDs start with \"tmpl_\". Received: ${candidate} `\n );\n}\n\n/**\n * Run validations that the string is in proper Template token format\n * and do a type conversion to AccountId.\n *\n * @param candidate\n */\nfunction makeAccountId(candidate: string): AccountId {\n if (candidate.startsWith('act_')) {\n return candidate as AccountId;\n }\n\n throw new InvalidAccountId(\n `Valid account IDs start with \"act_\". Received: ${candidate} `\n );\n}\nexport namespace Fields {\n class Builder {\n private _name?: NameField | null = null;\n private _address?: AddressField | null = null;\n private _birthdate?: Date | null = null;\n private _emailAddress?: string | null = null;\n private _phoneNumber?: string | null = null;\n private _fields: { [fieldKey: string]: number | string | boolean } = {};\n\n name(name: NameField) {\n this._name = name;\n\n return this;\n }\n\n /**\n * Returns the Field.Builder instance\n *\n * @param address - The address object\n */\n address(address: AddressField) {\n this._address = address;\n\n return this;\n }\n\n /**\n * @param date {Date}\n */\n birthdate(date: Date) {\n this._birthdate = date;\n\n return this;\n }\n\n /**\n * @param date {string}\n */\n emailAddress(email: string) {\n this._emailAddress = email;\n\n return this;\n }\n\n phoneNumber(phoneNumber: string) {\n this._phoneNumber = phoneNumber;\n\n return this;\n }\n\n field(fieldKey: string, value: number | string | boolean) {\n this._fields = {\n ...this._fields,\n [fieldKey]: value,\n };\n\n return this;\n }\n\n build(): FieldsPayload {\n return {\n name: this._name,\n address: this._address,\n emailAddress: this._emailAddress,\n phoneNumber: this._phoneNumber,\n birthdate: this._birthdate?.toISOString(),\n additionalFields: this._fields,\n };\n }\n }\n\n export function builder() {\n return new Builder();\n }\n}\n\n/**\n * String enum for environments. These strings will be parsed\n * on the native side bridge into Kotlin / Swift enums.\n */\nexport enum Environment {\n SANDBOX = 'sandbox',\n PRODUCTION = 'production',\n}\n\nexport interface InquiryOptions {\n templateId?: TemplateId;\n inquiryId?: InquiryId;\n referenceId?: string;\n accountId?: AccountId;\n environment?: Environment;\n accessToken?: string;\n\n // Fields\n fields?: FieldsPayload;\n\n // Callbacks\n onSuccess?: OnSuccessCallback;\n onCancelled?: OnCancelledCallback;\n onFailed?: OnFailedCallback;\n onError?: OnErrorCallback;\n\n // Customization\n iosThemeObject?: Object | null;\n}\nexport interface InquiryAttributes {\n birthdate: Date | null;\n name: {\n first: string | null;\n middle: string | null;\n last: string | null;\n } | null;\n address: {\n street1: string | null;\n street2: string | null;\n city: string | null;\n subdivision: string | null;\n subdivisionAbbr: string | null;\n postalCode: string | null;\n countryCode: string | null;\n } | null;\n}\n\nexport interface BridgeInquiryAttributes {\n birthdate: string | null;\n name: {\n first: string | null;\n middle: string | null;\n last: string | null;\n } | null;\n address: {\n street1: string | null;\n street2: string | null;\n city: string | null;\n subdivision: string | null;\n subdivisionAbbr: string | null;\n postalCode: string | null;\n countryCode: string | null;\n } | null;\n}\n\ninterface BridgeOnSuccessCallbackParams {\n inquiryId: string;\n attributes: InquiryAttributes;\n}\n\ninterface BridgeOnFailedCallbackParams {\n inquiryId: string;\n}\n\ninterface BridgeOnErrorCallbackParams {\n error: string;\n}\n\ntype OnSuccessCallback = (\n inquiryId: string,\n attributes: InquiryAttributes\n) => void;\ntype OnCancelledCallback = () => void;\ntype OnFailedCallback = (inquiryId: string) => void;\ntype OnErrorCallback = (error: Error) => void;\n\nconst eventEmitter = new NativeEventEmitter(PersonaInquiry);\n\nexport class Inquiry {\n templateId?: TemplateId;\n inquiryId?: InquiryId;\n referenceId?: string;\n accountId?: AccountId;\n environment?: Environment;\n accessToken?: string;\n\n iosThemeObject?: Object | null;\n fields?: FieldsPayload | null;\n\n private onSuccess?: OnSuccessCallback;\n private onCancelled?: OnCancelledCallback;\n private onFailed?: OnFailedCallback;\n private onError?: OnErrorCallback;\n\n private onSuccessListener?: EventSubscription;\n private onCancelledListener?: EventSubscription;\n private onFailedListener?: EventSubscription;\n private onErrorListener?: EventSubscription;\n\n constructor(options: InquiryOptions) {\n this.templateId = options.templateId;\n this.inquiryId = options.inquiryId;\n this.referenceId = options.referenceId;\n this.accountId = options.accountId;\n this.environment = options.environment;\n this.accessToken = options.accessToken;\n this.fields = options.fields;\n\n // Callbacks\n this.onSuccess = options.onSuccess;\n this.onCancelled = options.onCancelled;\n this.onFailed = options.onFailed;\n this.onError = options.onError;\n\n // Theme object\n this.iosThemeObject = options.iosThemeObject;\n }\n\n private clearListeners() {\n if (this.onSuccessListener) this.onSuccessListener.remove();\n if (this.onCancelledListener) this.onCancelledListener.remove();\n if (this.onFailedListener) this.onFailedListener.remove();\n if (this.onErrorListener) this.onErrorListener.remove();\n }\n\n start() {\n this.onSuccessListener = eventEmitter.addListener(\n 'onSuccess',\n ({\n inquiryId: inquiryId,\n attributes: attributes,\n }: BridgeOnSuccessCallbackParams) => {\n // Native Brige sends an ISO 8601 Date. Convert this to a JS Date\n if (typeof attributes.birthdate === 'string') {\n attributes.birthdate = new Date(attributes.birthdate);\n }\n if (this.onSuccess) this.onSuccess(inquiryId, attributes);\n this.clearListeners();\n }\n );\n\n this.onCancelledListener = eventEmitter.addListener('onCancelled', () => {\n if (this.onCancelled) this.onCancelled();\n this.clearListeners();\n });\n\n this.onFailedListener = eventEmitter.addListener(\n 'onFailed',\n ({ inquiryId: inquiryId }: BridgeOnFailedCallbackParams) => {\n if (this.onFailed) this.onFailed(inquiryId);\n this.clearListeners();\n }\n );\n\n this.onErrorListener = eventEmitter.addListener(\n 'onError',\n ({ error: errorMessage }: BridgeOnErrorCallbackParams) => {\n if (this.onError) this.onError(new Error(errorMessage));\n this.clearListeners();\n }\n );\n\n PersonaInquiry.startInquiry({\n templateId: this.templateId,\n inquiryId: this.inquiryId,\n referenceId: this.referenceId,\n accountId: this.accountId,\n environment: this.environment,\n accessToken: this.accessToken,\n fields: this.fields,\n iosTheme: processThemeValues(this.iosThemeObject || {}),\n });\n }\n}\n\ninterface NameField {\n first?: string;\n middle?: string;\n last?: string;\n}\n\ninterface AddressField {\n street1?: string;\n street2?: string;\n city?: string;\n subdivision?: string;\n postalCode?: string;\n countryCode?: string;\n}\n\ninterface FieldsPayload {\n name?: NameField | null;\n address?: AddressField | null;\n birthdate?: string | null;\n emailAddress?: string | null;\n phoneNumber?: string | null;\n additionalFields?: Object | null;\n}\n\nclass InquiryBuilder {\n private _inquiryId: InquiryId;\n private _accessToken?: string;\n\n // Callbacks\n private _onSuccess?: OnSuccessCallback;\n private _onCancelled?: OnCancelledCallback;\n private _onFailed?: OnFailedCallback;\n private _onError?: OnErrorCallback;\n private _iosThemeObject?: Object;\n private _fields?: FieldsPayload;\n\n constructor(inquiryId: InquiryId) {\n this._inquiryId = inquiryId;\n }\n\n accessToken(accessToken: string): InquiryBuilder {\n this._accessToken = accessToken;\n\n return this;\n }\n\n onSuccess(callback: OnSuccessCallback): InquiryBuilder {\n this._onSuccess = callback;\n\n return this;\n }\n\n onCancelled(callback: OnCancelledCallback): InquiryBuilder {\n this._onCancelled = callback;\n\n return this;\n }\n\n onFailed(callback: OnFailedCallback): InquiryBuilder {\n this._onFailed = callback;\n\n return this;\n }\n\n onError(callback: OnErrorCallback): InquiryBuilder {\n this._onError = callback;\n\n return this;\n }\n\n iosTheme(themeObject: Object): InquiryBuilder {\n this._iosThemeObject = themeObject;\n\n return this;\n }\n\n build(): Inquiry {\n return new Inquiry({\n inquiryId: this._inquiryId,\n accessToken: this._accessToken,\n onSuccess: this._onSuccess,\n onCancelled: this._onCancelled,\n onFailed: this._onFailed,\n onError: this._onError,\n iosThemeObject: this._iosThemeObject,\n fields: this._fields,\n });\n }\n}\n\nclass TemplateBuilder {\n private _templateId: TemplateId;\n private _accountId?: AccountId;\n private _referenceId?: string;\n private _environment?: Environment;\n private _fields?: FieldsPayload;\n private _accessToken?: string;\n\n // Callbacks\n private _onSuccess?: OnSuccessCallback;\n private _onCancelled?: OnCancelledCallback;\n private _onFailed?: OnFailedCallback;\n private _onError?: OnErrorCallback;\n\n // Customization\n private _iosThemeObject?: Object;\n\n constructor(templateId: TemplateId) {\n this._templateId = templateId;\n\n return this;\n }\n\n referenceId(referenceId: string): TemplateBuilder {\n this._accountId = undefined;\n this._referenceId = referenceId;\n\n return this;\n }\n\n accountId(accountId: string): TemplateBuilder {\n this._referenceId = undefined;\n this._accountId = makeAccountId(accountId);\n\n return this;\n }\n\n environment(environment: Environment): TemplateBuilder {\n this._environment = environment;\n\n return this;\n }\n\n accessToken(accessToken: string): TemplateBuilder {\n this._accessToken = accessToken;\n\n return this;\n }\n\n fields(fields: FieldsPayload): TemplateBuilder {\n this._fields = fields;\n\n return this;\n }\n\n onSuccess(callback: OnSuccessCallback): TemplateBuilder {\n this._onSuccess = callback;\n\n return this;\n }\n\n onCancelled(callback: OnCancelledCallback): TemplateBuilder {\n this._onCancelled = callback;\n\n return this;\n }\n\n onFailed(callback: OnFailedCallback): TemplateBuilder {\n this._onFailed = callback;\n\n return this;\n }\n\n onError(callback: OnErrorCallback): TemplateBuilder {\n this._onError = callback;\n\n return this;\n }\n\n iosTheme(themeObject: Object): TemplateBuilder {\n this._iosThemeObject = themeObject;\n\n return this;\n }\n\n build(): Inquiry {\n return new Inquiry({\n templateId: this._templateId,\n accountId: this._accountId,\n referenceId: this._referenceId,\n environment: this._environment,\n accessToken: this._accessToken,\n fields: this._fields,\n onSuccess: this._onSuccess,\n onCancelled: this._onCancelled,\n onFailed: this._onFailed,\n onError: this._onError,\n iosThemeObject: this._iosThemeObject,\n });\n }\n}\n\nnamespace InquiryBuilders {\n export function fromInquiry(inquiryId: string) {\n return new InquiryBuilder(makeInquiryId(inquiryId));\n }\n\n export function fromTemplate(templateId: string) {\n return new TemplateBuilder(makeTemplateId(templateId));\n }\n}\n\nexport default InquiryBuilders;\n"]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.processThemeValues = processThemeValues;
7
+ const HEX_REGEX = /^[a-fA-F0-9]{6}$/;
8
+
9
+ function processThemeValues(themeObject) {
10
+ const result = {};
11
+
12
+ for (const [key, value] of Object.entries(themeObject)) {
13
+ if (value === null) {
14
+ continue;
15
+ }
16
+
17
+ if (key.includes('Color')) {
18
+ let colorValue = value;
19
+
20
+ if (value[0] === '#') {
21
+ colorValue = value.slice(1);
22
+ }
23
+
24
+ if (HEX_REGEX.test(colorValue)) {
25
+ result[key] = `#${colorValue}`;
26
+ } else {
27
+ continue;
28
+ }
29
+ } else {
30
+ result[key] = value.toString();
31
+ }
32
+ }
33
+
34
+ return result;
35
+ }
36
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["util.ts"],"names":["HEX_REGEX","processThemeValues","themeObject","result","key","value","Object","entries","includes","colorValue","slice","test","toString"],"mappings":";;;;;;AAAA,MAAMA,SAAS,GAAG,kBAAlB;;AACO,SAASC,kBAAT,CAA4BC,WAA5B,EAAiD;AACtD,QAAMC,MAAiC,GAAG,EAA1C;;AACA,OAAK,MAAM,CAACC,GAAD,EAAMC,KAAN,CAAX,IAA2BC,MAAM,CAACC,OAAP,CAAeL,WAAf,CAA3B,EAAwD;AACtD,QAAIG,KAAK,KAAK,IAAd,EAAoB;AAClB;AACD;;AAED,QAAID,GAAG,CAACI,QAAJ,CAAa,OAAb,CAAJ,EAA2B;AACzB,UAAIC,UAAU,GAAGJ,KAAjB;;AACA,UAAIA,KAAK,CAAC,CAAD,CAAL,KAAa,GAAjB,EAAsB;AACpBI,QAAAA,UAAU,GAAGJ,KAAK,CAACK,KAAN,CAAY,CAAZ,CAAb;AACD;;AAED,UAAIV,SAAS,CAACW,IAAV,CAAeF,UAAf,CAAJ,EAAgC;AAC9BN,QAAAA,MAAM,CAACC,GAAD,CAAN,GAAe,IAAGK,UAAW,EAA7B;AACD,OAFD,MAEO;AACL;AACD;AACF,KAXD,MAWO;AACLN,MAAAA,MAAM,CAACC,GAAD,CAAN,GAAcC,KAAK,CAACO,QAAN,EAAd;AACD;AACF;;AAED,SAAOT,MAAP;AACD","sourcesContent":["const HEX_REGEX = /^[a-fA-F0-9]{6}$/;\nexport function processThemeValues(themeObject: Object) {\n const result: { [key: string]: string } = {};\n for (const [key, value] of Object.entries(themeObject)) {\n if (value === null) {\n continue;\n }\n\n if (key.includes('Color')) {\n let colorValue = value;\n if (value[0] === '#') {\n colorValue = value.slice(1);\n }\n\n if (HEX_REGEX.test(colorValue)) {\n result[key] = `#${colorValue}`;\n } else {\n continue;\n }\n } else {\n result[key] = value.toString();\n }\n }\n\n return result;\n}\n"]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _util = require("./util");
4
+
5
+ describe('processThemeValues', () => {
6
+ it('works', () => {
7
+ expect((0, _util.processThemeValues)({
8
+ testColorA: '#FFFFFF',
9
+ testColorB: '#zzzzzz'
10
+ })).toEqual({
11
+ testColorA: '#FFFFFF'
12
+ });
13
+ });
14
+ it('filters out non 6 character codes', () => {
15
+ expect((0, _util.processThemeValues)({
16
+ testColorA: '#FFFFFF',
17
+ testColorB: '#FFF'
18
+ })).toEqual({
19
+ testColorA: '#FFFFFF'
20
+ });
21
+ });
22
+ it('does not do anything with non colors', () => {
23
+ // Values are expected to be strings on the iOS side of the bridge.
24
+ expect((0, _util.processThemeValues)({
25
+ buttonCornerRadius: '20'
26
+ })).toEqual({
27
+ buttonCornerRadius: '20'
28
+ });
29
+ });
30
+ });
31
+ //# sourceMappingURL=util.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["util.spec.ts"],"names":["describe","it","expect","testColorA","testColorB","toEqual","buttonCornerRadius"],"mappings":";;AAAA;;AAEAA,QAAQ,CAAC,oBAAD,EAAuB,MAAM;AACnCC,EAAAA,EAAE,CAAC,OAAD,EAAU,MAAM;AAChBC,IAAAA,MAAM,CACJ,8BAAmB;AAAEC,MAAAA,UAAU,EAAE,SAAd;AAAyBC,MAAAA,UAAU,EAAE;AAArC,KAAnB,CADI,CAAN,CAEEC,OAFF,CAEU;AAAEF,MAAAA,UAAU,EAAE;AAAd,KAFV;AAGD,GAJC,CAAF;AAMAF,EAAAA,EAAE,CAAC,mCAAD,EAAsC,MAAM;AAC5CC,IAAAA,MAAM,CACJ,8BAAmB;AAAEC,MAAAA,UAAU,EAAE,SAAd;AAAyBC,MAAAA,UAAU,EAAE;AAArC,KAAnB,CADI,CAAN,CAEEC,OAFF,CAEU;AAAEF,MAAAA,UAAU,EAAE;AAAd,KAFV;AAGD,GAJC,CAAF;AAMAF,EAAAA,EAAE,CAAC,sCAAD,EAAyC,MAAM;AAC/C;AACAC,IAAAA,MAAM,CAAC,8BAAmB;AAAEI,MAAAA,kBAAkB,EAAE;AAAtB,KAAnB,CAAD,CAAN,CAAyDD,OAAzD,CAAiE;AAC/DC,MAAAA,kBAAkB,EAAE;AAD2C,KAAjE;AAGD,GALC,CAAF;AAMD,CAnBO,CAAR","sourcesContent":["import { processThemeValues } from './util';\n\ndescribe('processThemeValues', () => {\n it('works', () => {\n expect(\n processThemeValues({ testColorA: '#FFFFFF', testColorB: '#zzzzzz' })\n ).toEqual({ testColorA: '#FFFFFF' });\n });\n\n it('filters out non 6 character codes', () => {\n expect(\n processThemeValues({ testColorA: '#FFFFFF', testColorB: '#FFF' })\n ).toEqual({ testColorA: '#FFFFFF' });\n });\n\n it('does not do anything with non colors', () => {\n // Values are expected to be strings on the iOS side of the bridge.\n expect(processThemeValues({ buttonCornerRadius: '20' })).toEqual({\n buttonCornerRadius: '20',\n });\n });\n});\n"]}
@@ -0,0 +1,452 @@
1
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+
3
+ import { NativeModules, NativeEventEmitter } from 'react-native';
4
+ import { processThemeValues } from './util';
5
+ const {
6
+ PersonaInquiry
7
+ } = NativeModules; // Using Opaque types + Smart Constructor enforces validation at
8
+ // instantiation time for IDS
9
+
10
+ export class InvalidTemplateId extends Error {}
11
+ export class InvalidInquiryId extends Error {}
12
+ export class InvalidAccountId extends Error {}
13
+ /**
14
+ * Run validations that the string is in proper Inquiry token format
15
+ * and do a type conversion to InquiryId.
16
+ *
17
+ * @param candidate
18
+ */
19
+
20
+ function makeInquiryId(candidate) {
21
+ if (candidate.startsWith('inq_')) return candidate;
22
+ throw new InvalidInquiryId(`Valid template IDs start with "inq_". Received: ${candidate} `);
23
+ }
24
+ /**
25
+ * Run validations that the string is in proper Template token format
26
+ * and do a type conversion to TemplateId.
27
+ *
28
+ * @param candidate
29
+ */
30
+
31
+
32
+ function makeTemplateId(candidate) {
33
+ if (candidate.startsWith('tmpl_') || candidate.startsWith('blu_')) {
34
+ return candidate;
35
+ }
36
+
37
+ throw new InvalidTemplateId(`Valid template IDs start with "tmpl_". Received: ${candidate} `);
38
+ }
39
+ /**
40
+ * Run validations that the string is in proper Template token format
41
+ * and do a type conversion to AccountId.
42
+ *
43
+ * @param candidate
44
+ */
45
+
46
+
47
+ function makeAccountId(candidate) {
48
+ if (candidate.startsWith('act_')) {
49
+ return candidate;
50
+ }
51
+
52
+ throw new InvalidAccountId(`Valid account IDs start with "act_". Received: ${candidate} `);
53
+ }
54
+
55
+ export let Fields;
56
+ /**
57
+ * String enum for environments. These strings will be parsed
58
+ * on the native side bridge into Kotlin / Swift enums.
59
+ */
60
+
61
+ (function (_Fields) {
62
+ class Builder {
63
+ constructor() {
64
+ _defineProperty(this, "_name", null);
65
+
66
+ _defineProperty(this, "_address", null);
67
+
68
+ _defineProperty(this, "_birthdate", null);
69
+
70
+ _defineProperty(this, "_emailAddress", null);
71
+
72
+ _defineProperty(this, "_phoneNumber", null);
73
+
74
+ _defineProperty(this, "_fields", {});
75
+ }
76
+
77
+ name(name) {
78
+ this._name = name;
79
+ return this;
80
+ }
81
+ /**
82
+ * Returns the Field.Builder instance
83
+ *
84
+ * @param address - The address object
85
+ */
86
+
87
+
88
+ /**
89
+ * Returns the Field.Builder instance
90
+ *
91
+ * @param address - The address object
92
+ */
93
+ address(address) {
94
+ this._address = address;
95
+ return this;
96
+ }
97
+ /**
98
+ * @param date {Date}
99
+ */
100
+
101
+
102
+ /**
103
+ * @param date {Date}
104
+ */
105
+ birthdate(date) {
106
+ this._birthdate = date;
107
+ return this;
108
+ }
109
+ /**
110
+ * @param date {string}
111
+ */
112
+
113
+
114
+ /**
115
+ * @param date {string}
116
+ */
117
+ emailAddress(email) {
118
+ this._emailAddress = email;
119
+ return this;
120
+ }
121
+
122
+ phoneNumber(phoneNumber) {
123
+ this._phoneNumber = phoneNumber;
124
+ return this;
125
+ }
126
+
127
+ field(fieldKey, value) {
128
+ this._fields = { ...this._fields,
129
+ [fieldKey]: value
130
+ };
131
+ return this;
132
+ }
133
+
134
+ build() {
135
+ var _this$_birthdate;
136
+
137
+ return {
138
+ name: this._name,
139
+ address: this._address,
140
+ emailAddress: this._emailAddress,
141
+ phoneNumber: this._phoneNumber,
142
+ birthdate: (_this$_birthdate = this._birthdate) === null || _this$_birthdate === void 0 ? void 0 : _this$_birthdate.toISOString(),
143
+ additionalFields: this._fields
144
+ };
145
+ }
146
+
147
+ }
148
+
149
+ function builder() {
150
+ return new Builder();
151
+ }
152
+
153
+ _Fields.builder = builder;
154
+ })(Fields || (Fields = {}));
155
+
156
+ export let Environment;
157
+
158
+ (function (Environment) {
159
+ Environment["SANDBOX"] = "sandbox";
160
+ Environment["PRODUCTION"] = "production";
161
+ })(Environment || (Environment = {}));
162
+
163
+ const eventEmitter = new NativeEventEmitter(PersonaInquiry);
164
+ export class Inquiry {
165
+ constructor(options) {
166
+ _defineProperty(this, "templateId", void 0);
167
+
168
+ _defineProperty(this, "inquiryId", void 0);
169
+
170
+ _defineProperty(this, "referenceId", void 0);
171
+
172
+ _defineProperty(this, "accountId", void 0);
173
+
174
+ _defineProperty(this, "environment", void 0);
175
+
176
+ _defineProperty(this, "accessToken", void 0);
177
+
178
+ _defineProperty(this, "iosThemeObject", void 0);
179
+
180
+ _defineProperty(this, "fields", void 0);
181
+
182
+ _defineProperty(this, "onSuccess", void 0);
183
+
184
+ _defineProperty(this, "onCancelled", void 0);
185
+
186
+ _defineProperty(this, "onFailed", void 0);
187
+
188
+ _defineProperty(this, "onError", void 0);
189
+
190
+ _defineProperty(this, "onSuccessListener", void 0);
191
+
192
+ _defineProperty(this, "onCancelledListener", void 0);
193
+
194
+ _defineProperty(this, "onFailedListener", void 0);
195
+
196
+ _defineProperty(this, "onErrorListener", void 0);
197
+
198
+ this.templateId = options.templateId;
199
+ this.inquiryId = options.inquiryId;
200
+ this.referenceId = options.referenceId;
201
+ this.accountId = options.accountId;
202
+ this.environment = options.environment;
203
+ this.accessToken = options.accessToken;
204
+ this.fields = options.fields; // Callbacks
205
+
206
+ this.onSuccess = options.onSuccess;
207
+ this.onCancelled = options.onCancelled;
208
+ this.onFailed = options.onFailed;
209
+ this.onError = options.onError; // Theme object
210
+
211
+ this.iosThemeObject = options.iosThemeObject;
212
+ }
213
+
214
+ clearListeners() {
215
+ if (this.onSuccessListener) this.onSuccessListener.remove();
216
+ if (this.onCancelledListener) this.onCancelledListener.remove();
217
+ if (this.onFailedListener) this.onFailedListener.remove();
218
+ if (this.onErrorListener) this.onErrorListener.remove();
219
+ }
220
+
221
+ start() {
222
+ this.onSuccessListener = eventEmitter.addListener('onSuccess', _ref => {
223
+ let {
224
+ inquiryId: inquiryId,
225
+ attributes: attributes
226
+ } = _ref;
227
+
228
+ // Native Brige sends an ISO 8601 Date. Convert this to a JS Date
229
+ if (typeof attributes.birthdate === 'string') {
230
+ attributes.birthdate = new Date(attributes.birthdate);
231
+ }
232
+
233
+ if (this.onSuccess) this.onSuccess(inquiryId, attributes);
234
+ this.clearListeners();
235
+ });
236
+ this.onCancelledListener = eventEmitter.addListener('onCancelled', () => {
237
+ if (this.onCancelled) this.onCancelled();
238
+ this.clearListeners();
239
+ });
240
+ this.onFailedListener = eventEmitter.addListener('onFailed', _ref2 => {
241
+ let {
242
+ inquiryId: inquiryId
243
+ } = _ref2;
244
+ if (this.onFailed) this.onFailed(inquiryId);
245
+ this.clearListeners();
246
+ });
247
+ this.onErrorListener = eventEmitter.addListener('onError', _ref3 => {
248
+ let {
249
+ error: errorMessage
250
+ } = _ref3;
251
+ if (this.onError) this.onError(new Error(errorMessage));
252
+ this.clearListeners();
253
+ });
254
+ PersonaInquiry.startInquiry({
255
+ templateId: this.templateId,
256
+ inquiryId: this.inquiryId,
257
+ referenceId: this.referenceId,
258
+ accountId: this.accountId,
259
+ environment: this.environment,
260
+ accessToken: this.accessToken,
261
+ fields: this.fields,
262
+ iosTheme: processThemeValues(this.iosThemeObject || {})
263
+ });
264
+ }
265
+
266
+ }
267
+
268
+ class InquiryBuilder {
269
+ // Callbacks
270
+ constructor(inquiryId) {
271
+ _defineProperty(this, "_inquiryId", void 0);
272
+
273
+ _defineProperty(this, "_accessToken", void 0);
274
+
275
+ _defineProperty(this, "_onSuccess", void 0);
276
+
277
+ _defineProperty(this, "_onCancelled", void 0);
278
+
279
+ _defineProperty(this, "_onFailed", void 0);
280
+
281
+ _defineProperty(this, "_onError", void 0);
282
+
283
+ _defineProperty(this, "_iosThemeObject", void 0);
284
+
285
+ _defineProperty(this, "_fields", void 0);
286
+
287
+ this._inquiryId = inquiryId;
288
+ }
289
+
290
+ accessToken(accessToken) {
291
+ this._accessToken = accessToken;
292
+ return this;
293
+ }
294
+
295
+ onSuccess(callback) {
296
+ this._onSuccess = callback;
297
+ return this;
298
+ }
299
+
300
+ onCancelled(callback) {
301
+ this._onCancelled = callback;
302
+ return this;
303
+ }
304
+
305
+ onFailed(callback) {
306
+ this._onFailed = callback;
307
+ return this;
308
+ }
309
+
310
+ onError(callback) {
311
+ this._onError = callback;
312
+ return this;
313
+ }
314
+
315
+ iosTheme(themeObject) {
316
+ this._iosThemeObject = themeObject;
317
+ return this;
318
+ }
319
+
320
+ build() {
321
+ return new Inquiry({
322
+ inquiryId: this._inquiryId,
323
+ accessToken: this._accessToken,
324
+ onSuccess: this._onSuccess,
325
+ onCancelled: this._onCancelled,
326
+ onFailed: this._onFailed,
327
+ onError: this._onError,
328
+ iosThemeObject: this._iosThemeObject,
329
+ fields: this._fields
330
+ });
331
+ }
332
+
333
+ }
334
+
335
+ class TemplateBuilder {
336
+ // Callbacks
337
+ // Customization
338
+ constructor(templateId) {
339
+ _defineProperty(this, "_templateId", void 0);
340
+
341
+ _defineProperty(this, "_accountId", void 0);
342
+
343
+ _defineProperty(this, "_referenceId", void 0);
344
+
345
+ _defineProperty(this, "_environment", void 0);
346
+
347
+ _defineProperty(this, "_fields", void 0);
348
+
349
+ _defineProperty(this, "_accessToken", void 0);
350
+
351
+ _defineProperty(this, "_onSuccess", void 0);
352
+
353
+ _defineProperty(this, "_onCancelled", void 0);
354
+
355
+ _defineProperty(this, "_onFailed", void 0);
356
+
357
+ _defineProperty(this, "_onError", void 0);
358
+
359
+ _defineProperty(this, "_iosThemeObject", void 0);
360
+
361
+ this._templateId = templateId;
362
+ return this;
363
+ }
364
+
365
+ referenceId(referenceId) {
366
+ this._accountId = undefined;
367
+ this._referenceId = referenceId;
368
+ return this;
369
+ }
370
+
371
+ accountId(accountId) {
372
+ this._referenceId = undefined;
373
+ this._accountId = makeAccountId(accountId);
374
+ return this;
375
+ }
376
+
377
+ environment(environment) {
378
+ this._environment = environment;
379
+ return this;
380
+ }
381
+
382
+ accessToken(accessToken) {
383
+ this._accessToken = accessToken;
384
+ return this;
385
+ }
386
+
387
+ fields(fields) {
388
+ this._fields = fields;
389
+ return this;
390
+ }
391
+
392
+ onSuccess(callback) {
393
+ this._onSuccess = callback;
394
+ return this;
395
+ }
396
+
397
+ onCancelled(callback) {
398
+ this._onCancelled = callback;
399
+ return this;
400
+ }
401
+
402
+ onFailed(callback) {
403
+ this._onFailed = callback;
404
+ return this;
405
+ }
406
+
407
+ onError(callback) {
408
+ this._onError = callback;
409
+ return this;
410
+ }
411
+
412
+ iosTheme(themeObject) {
413
+ this._iosThemeObject = themeObject;
414
+ return this;
415
+ }
416
+
417
+ build() {
418
+ return new Inquiry({
419
+ templateId: this._templateId,
420
+ accountId: this._accountId,
421
+ referenceId: this._referenceId,
422
+ environment: this._environment,
423
+ accessToken: this._accessToken,
424
+ fields: this._fields,
425
+ onSuccess: this._onSuccess,
426
+ onCancelled: this._onCancelled,
427
+ onFailed: this._onFailed,
428
+ onError: this._onError,
429
+ iosThemeObject: this._iosThemeObject
430
+ });
431
+ }
432
+
433
+ }
434
+
435
+ let InquiryBuilders;
436
+
437
+ (function (_InquiryBuilders) {
438
+ function fromInquiry(inquiryId) {
439
+ return new InquiryBuilder(makeInquiryId(inquiryId));
440
+ }
441
+
442
+ _InquiryBuilders.fromInquiry = fromInquiry;
443
+
444
+ function fromTemplate(templateId) {
445
+ return new TemplateBuilder(makeTemplateId(templateId));
446
+ }
447
+
448
+ _InquiryBuilders.fromTemplate = fromTemplate;
449
+ })(InquiryBuilders || (InquiryBuilders = {}));
450
+
451
+ export default InquiryBuilders;
452
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"names":["NativeModules","NativeEventEmitter","processThemeValues","PersonaInquiry","InvalidTemplateId","Error","InvalidInquiryId","InvalidAccountId","makeInquiryId","candidate","startsWith","makeTemplateId","makeAccountId","Builder","name","_name","address","_address","birthdate","date","_birthdate","emailAddress","email","_emailAddress","phoneNumber","_phoneNumber","field","fieldKey","value","_fields","build","toISOString","additionalFields","builder","Fields","Environment","eventEmitter","Inquiry","constructor","options","templateId","inquiryId","referenceId","accountId","environment","accessToken","fields","onSuccess","onCancelled","onFailed","onError","iosThemeObject","clearListeners","onSuccessListener","remove","onCancelledListener","onFailedListener","onErrorListener","start","addListener","attributes","Date","error","errorMessage","startInquiry","iosTheme","InquiryBuilder","_inquiryId","_accessToken","callback","_onSuccess","_onCancelled","_onFailed","_onError","themeObject","_iosThemeObject","TemplateBuilder","_templateId","_accountId","undefined","_referenceId","_environment","fromInquiry","fromTemplate","InquiryBuilders"],"mappings":"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","sourcesContent":["import {\n NativeModules,\n NativeEventEmitter,\n EventSubscription,\n} from 'react-native';\nimport { processThemeValues } from './util';\n\nconst { PersonaInquiry } = NativeModules;\n\n// Using Opaque types + Smart Constructor enforces validation at\n// instantiation time for IDS\ndeclare const Unique: unique symbol;\nexport type Opaque<T, Tag> = T & { [Unique]: Tag };\n\ntype TemplateId = Opaque<string, 'TemplateId'>;\ntype InquiryId = Opaque<string, 'InquiryId'>;\ntype AccountId = Opaque<string, 'AccountId'>;\n\nexport class InvalidTemplateId extends Error {}\nexport class InvalidInquiryId extends Error {}\nexport class InvalidAccountId extends Error {}\n\n/**\n * Run validations that the string is in proper Inquiry token format\n * and do a type conversion to InquiryId.\n *\n * @param candidate\n */\nfunction makeInquiryId(candidate: string): InquiryId {\n if (candidate.startsWith('inq_')) return candidate as InquiryId;\n\n throw new InvalidInquiryId(\n `Valid template IDs start with \"inq_\". Received: ${candidate} `\n );\n}\n\n/**\n * Run validations that the string is in proper Template token format\n * and do a type conversion to TemplateId.\n *\n * @param candidate\n */\nfunction makeTemplateId(candidate: string): TemplateId {\n if (candidate.startsWith('tmpl_') || candidate.startsWith('blu_')) {\n return candidate as TemplateId;\n }\n\n throw new InvalidTemplateId(\n `Valid template IDs start with \"tmpl_\". Received: ${candidate} `\n );\n}\n\n/**\n * Run validations that the string is in proper Template token format\n * and do a type conversion to AccountId.\n *\n * @param candidate\n */\nfunction makeAccountId(candidate: string): AccountId {\n if (candidate.startsWith('act_')) {\n return candidate as AccountId;\n }\n\n throw new InvalidAccountId(\n `Valid account IDs start with \"act_\". Received: ${candidate} `\n );\n}\nexport namespace Fields {\n class Builder {\n private _name?: NameField | null = null;\n private _address?: AddressField | null = null;\n private _birthdate?: Date | null = null;\n private _emailAddress?: string | null = null;\n private _phoneNumber?: string | null = null;\n private _fields: { [fieldKey: string]: number | string | boolean } = {};\n\n name(name: NameField) {\n this._name = name;\n\n return this;\n }\n\n /**\n * Returns the Field.Builder instance\n *\n * @param address - The address object\n */\n address(address: AddressField) {\n this._address = address;\n\n return this;\n }\n\n /**\n * @param date {Date}\n */\n birthdate(date: Date) {\n this._birthdate = date;\n\n return this;\n }\n\n /**\n * @param date {string}\n */\n emailAddress(email: string) {\n this._emailAddress = email;\n\n return this;\n }\n\n phoneNumber(phoneNumber: string) {\n this._phoneNumber = phoneNumber;\n\n return this;\n }\n\n field(fieldKey: string, value: number | string | boolean) {\n this._fields = {\n ...this._fields,\n [fieldKey]: value,\n };\n\n return this;\n }\n\n build(): FieldsPayload {\n return {\n name: this._name,\n address: this._address,\n emailAddress: this._emailAddress,\n phoneNumber: this._phoneNumber,\n birthdate: this._birthdate?.toISOString(),\n additionalFields: this._fields,\n };\n }\n }\n\n export function builder() {\n return new Builder();\n }\n}\n\n/**\n * String enum for environments. These strings will be parsed\n * on the native side bridge into Kotlin / Swift enums.\n */\nexport enum Environment {\n SANDBOX = 'sandbox',\n PRODUCTION = 'production',\n}\n\nexport interface InquiryOptions {\n templateId?: TemplateId;\n inquiryId?: InquiryId;\n referenceId?: string;\n accountId?: AccountId;\n environment?: Environment;\n accessToken?: string;\n\n // Fields\n fields?: FieldsPayload;\n\n // Callbacks\n onSuccess?: OnSuccessCallback;\n onCancelled?: OnCancelledCallback;\n onFailed?: OnFailedCallback;\n onError?: OnErrorCallback;\n\n // Customization\n iosThemeObject?: Object | null;\n}\nexport interface InquiryAttributes {\n birthdate: Date | null;\n name: {\n first: string | null;\n middle: string | null;\n last: string | null;\n } | null;\n address: {\n street1: string | null;\n street2: string | null;\n city: string | null;\n subdivision: string | null;\n subdivisionAbbr: string | null;\n postalCode: string | null;\n countryCode: string | null;\n } | null;\n}\n\nexport interface BridgeInquiryAttributes {\n birthdate: string | null;\n name: {\n first: string | null;\n middle: string | null;\n last: string | null;\n } | null;\n address: {\n street1: string | null;\n street2: string | null;\n city: string | null;\n subdivision: string | null;\n subdivisionAbbr: string | null;\n postalCode: string | null;\n countryCode: string | null;\n } | null;\n}\n\ninterface BridgeOnSuccessCallbackParams {\n inquiryId: string;\n attributes: InquiryAttributes;\n}\n\ninterface BridgeOnFailedCallbackParams {\n inquiryId: string;\n}\n\ninterface BridgeOnErrorCallbackParams {\n error: string;\n}\n\ntype OnSuccessCallback = (\n inquiryId: string,\n attributes: InquiryAttributes\n) => void;\ntype OnCancelledCallback = () => void;\ntype OnFailedCallback = (inquiryId: string) => void;\ntype OnErrorCallback = (error: Error) => void;\n\nconst eventEmitter = new NativeEventEmitter(PersonaInquiry);\n\nexport class Inquiry {\n templateId?: TemplateId;\n inquiryId?: InquiryId;\n referenceId?: string;\n accountId?: AccountId;\n environment?: Environment;\n accessToken?: string;\n\n iosThemeObject?: Object | null;\n fields?: FieldsPayload | null;\n\n private onSuccess?: OnSuccessCallback;\n private onCancelled?: OnCancelledCallback;\n private onFailed?: OnFailedCallback;\n private onError?: OnErrorCallback;\n\n private onSuccessListener?: EventSubscription;\n private onCancelledListener?: EventSubscription;\n private onFailedListener?: EventSubscription;\n private onErrorListener?: EventSubscription;\n\n constructor(options: InquiryOptions) {\n this.templateId = options.templateId;\n this.inquiryId = options.inquiryId;\n this.referenceId = options.referenceId;\n this.accountId = options.accountId;\n this.environment = options.environment;\n this.accessToken = options.accessToken;\n this.fields = options.fields;\n\n // Callbacks\n this.onSuccess = options.onSuccess;\n this.onCancelled = options.onCancelled;\n this.onFailed = options.onFailed;\n this.onError = options.onError;\n\n // Theme object\n this.iosThemeObject = options.iosThemeObject;\n }\n\n private clearListeners() {\n if (this.onSuccessListener) this.onSuccessListener.remove();\n if (this.onCancelledListener) this.onCancelledListener.remove();\n if (this.onFailedListener) this.onFailedListener.remove();\n if (this.onErrorListener) this.onErrorListener.remove();\n }\n\n start() {\n this.onSuccessListener = eventEmitter.addListener(\n 'onSuccess',\n ({\n inquiryId: inquiryId,\n attributes: attributes,\n }: BridgeOnSuccessCallbackParams) => {\n // Native Brige sends an ISO 8601 Date. Convert this to a JS Date\n if (typeof attributes.birthdate === 'string') {\n attributes.birthdate = new Date(attributes.birthdate);\n }\n if (this.onSuccess) this.onSuccess(inquiryId, attributes);\n this.clearListeners();\n }\n );\n\n this.onCancelledListener = eventEmitter.addListener('onCancelled', () => {\n if (this.onCancelled) this.onCancelled();\n this.clearListeners();\n });\n\n this.onFailedListener = eventEmitter.addListener(\n 'onFailed',\n ({ inquiryId: inquiryId }: BridgeOnFailedCallbackParams) => {\n if (this.onFailed) this.onFailed(inquiryId);\n this.clearListeners();\n }\n );\n\n this.onErrorListener = eventEmitter.addListener(\n 'onError',\n ({ error: errorMessage }: BridgeOnErrorCallbackParams) => {\n if (this.onError) this.onError(new Error(errorMessage));\n this.clearListeners();\n }\n );\n\n PersonaInquiry.startInquiry({\n templateId: this.templateId,\n inquiryId: this.inquiryId,\n referenceId: this.referenceId,\n accountId: this.accountId,\n environment: this.environment,\n accessToken: this.accessToken,\n fields: this.fields,\n iosTheme: processThemeValues(this.iosThemeObject || {}),\n });\n }\n}\n\ninterface NameField {\n first?: string;\n middle?: string;\n last?: string;\n}\n\ninterface AddressField {\n street1?: string;\n street2?: string;\n city?: string;\n subdivision?: string;\n postalCode?: string;\n countryCode?: string;\n}\n\ninterface FieldsPayload {\n name?: NameField | null;\n address?: AddressField | null;\n birthdate?: string | null;\n emailAddress?: string | null;\n phoneNumber?: string | null;\n additionalFields?: Object | null;\n}\n\nclass InquiryBuilder {\n private _inquiryId: InquiryId;\n private _accessToken?: string;\n\n // Callbacks\n private _onSuccess?: OnSuccessCallback;\n private _onCancelled?: OnCancelledCallback;\n private _onFailed?: OnFailedCallback;\n private _onError?: OnErrorCallback;\n private _iosThemeObject?: Object;\n private _fields?: FieldsPayload;\n\n constructor(inquiryId: InquiryId) {\n this._inquiryId = inquiryId;\n }\n\n accessToken(accessToken: string): InquiryBuilder {\n this._accessToken = accessToken;\n\n return this;\n }\n\n onSuccess(callback: OnSuccessCallback): InquiryBuilder {\n this._onSuccess = callback;\n\n return this;\n }\n\n onCancelled(callback: OnCancelledCallback): InquiryBuilder {\n this._onCancelled = callback;\n\n return this;\n }\n\n onFailed(callback: OnFailedCallback): InquiryBuilder {\n this._onFailed = callback;\n\n return this;\n }\n\n onError(callback: OnErrorCallback): InquiryBuilder {\n this._onError = callback;\n\n return this;\n }\n\n iosTheme(themeObject: Object): InquiryBuilder {\n this._iosThemeObject = themeObject;\n\n return this;\n }\n\n build(): Inquiry {\n return new Inquiry({\n inquiryId: this._inquiryId,\n accessToken: this._accessToken,\n onSuccess: this._onSuccess,\n onCancelled: this._onCancelled,\n onFailed: this._onFailed,\n onError: this._onError,\n iosThemeObject: this._iosThemeObject,\n fields: this._fields,\n });\n }\n}\n\nclass TemplateBuilder {\n private _templateId: TemplateId;\n private _accountId?: AccountId;\n private _referenceId?: string;\n private _environment?: Environment;\n private _fields?: FieldsPayload;\n private _accessToken?: string;\n\n // Callbacks\n private _onSuccess?: OnSuccessCallback;\n private _onCancelled?: OnCancelledCallback;\n private _onFailed?: OnFailedCallback;\n private _onError?: OnErrorCallback;\n\n // Customization\n private _iosThemeObject?: Object;\n\n constructor(templateId: TemplateId) {\n this._templateId = templateId;\n\n return this;\n }\n\n referenceId(referenceId: string): TemplateBuilder {\n this._accountId = undefined;\n this._referenceId = referenceId;\n\n return this;\n }\n\n accountId(accountId: string): TemplateBuilder {\n this._referenceId = undefined;\n this._accountId = makeAccountId(accountId);\n\n return this;\n }\n\n environment(environment: Environment): TemplateBuilder {\n this._environment = environment;\n\n return this;\n }\n\n accessToken(accessToken: string): TemplateBuilder {\n this._accessToken = accessToken;\n\n return this;\n }\n\n fields(fields: FieldsPayload): TemplateBuilder {\n this._fields = fields;\n\n return this;\n }\n\n onSuccess(callback: OnSuccessCallback): TemplateBuilder {\n this._onSuccess = callback;\n\n return this;\n }\n\n onCancelled(callback: OnCancelledCallback): TemplateBuilder {\n this._onCancelled = callback;\n\n return this;\n }\n\n onFailed(callback: OnFailedCallback): TemplateBuilder {\n this._onFailed = callback;\n\n return this;\n }\n\n onError(callback: OnErrorCallback): TemplateBuilder {\n this._onError = callback;\n\n return this;\n }\n\n iosTheme(themeObject: Object): TemplateBuilder {\n this._iosThemeObject = themeObject;\n\n return this;\n }\n\n build(): Inquiry {\n return new Inquiry({\n templateId: this._templateId,\n accountId: this._accountId,\n referenceId: this._referenceId,\n environment: this._environment,\n accessToken: this._accessToken,\n fields: this._fields,\n onSuccess: this._onSuccess,\n onCancelled: this._onCancelled,\n onFailed: this._onFailed,\n onError: this._onError,\n iosThemeObject: this._iosThemeObject,\n });\n }\n}\n\nnamespace InquiryBuilders {\n export function fromInquiry(inquiryId: string) {\n return new InquiryBuilder(makeInquiryId(inquiryId));\n }\n\n export function fromTemplate(templateId: string) {\n return new TemplateBuilder(makeTemplateId(templateId));\n }\n}\n\nexport default InquiryBuilders;\n"]}
@@ -0,0 +1,29 @@
1
+ const HEX_REGEX = /^[a-fA-F0-9]{6}$/;
2
+ export function processThemeValues(themeObject) {
3
+ const result = {};
4
+
5
+ for (const [key, value] of Object.entries(themeObject)) {
6
+ if (value === null) {
7
+ continue;
8
+ }
9
+
10
+ if (key.includes('Color')) {
11
+ let colorValue = value;
12
+
13
+ if (value[0] === '#') {
14
+ colorValue = value.slice(1);
15
+ }
16
+
17
+ if (HEX_REGEX.test(colorValue)) {
18
+ result[key] = `#${colorValue}`;
19
+ } else {
20
+ continue;
21
+ }
22
+ } else {
23
+ result[key] = value.toString();
24
+ }
25
+ }
26
+
27
+ return result;
28
+ }
29
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["util.ts"],"names":["HEX_REGEX","processThemeValues","themeObject","result","key","value","Object","entries","includes","colorValue","slice","test","toString"],"mappings":"AAAA,MAAMA,SAAS,GAAG,kBAAlB;AACA,OAAO,SAASC,kBAAT,CAA4BC,WAA5B,EAAiD;AACtD,QAAMC,MAAiC,GAAG,EAA1C;;AACA,OAAK,MAAM,CAACC,GAAD,EAAMC,KAAN,CAAX,IAA2BC,MAAM,CAACC,OAAP,CAAeL,WAAf,CAA3B,EAAwD;AACtD,QAAIG,KAAK,KAAK,IAAd,EAAoB;AAClB;AACD;;AAED,QAAID,GAAG,CAACI,QAAJ,CAAa,OAAb,CAAJ,EAA2B;AACzB,UAAIC,UAAU,GAAGJ,KAAjB;;AACA,UAAIA,KAAK,CAAC,CAAD,CAAL,KAAa,GAAjB,EAAsB;AACpBI,QAAAA,UAAU,GAAGJ,KAAK,CAACK,KAAN,CAAY,CAAZ,CAAb;AACD;;AAED,UAAIV,SAAS,CAACW,IAAV,CAAeF,UAAf,CAAJ,EAAgC;AAC9BN,QAAAA,MAAM,CAACC,GAAD,CAAN,GAAe,IAAGK,UAAW,EAA7B;AACD,OAFD,MAEO;AACL;AACD;AACF,KAXD,MAWO;AACLN,MAAAA,MAAM,CAACC,GAAD,CAAN,GAAcC,KAAK,CAACO,QAAN,EAAd;AACD;AACF;;AAED,SAAOT,MAAP;AACD","sourcesContent":["const HEX_REGEX = /^[a-fA-F0-9]{6}$/;\nexport function processThemeValues(themeObject: Object) {\n const result: { [key: string]: string } = {};\n for (const [key, value] of Object.entries(themeObject)) {\n if (value === null) {\n continue;\n }\n\n if (key.includes('Color')) {\n let colorValue = value;\n if (value[0] === '#') {\n colorValue = value.slice(1);\n }\n\n if (HEX_REGEX.test(colorValue)) {\n result[key] = `#${colorValue}`;\n } else {\n continue;\n }\n } else {\n result[key] = value.toString();\n }\n }\n\n return result;\n}\n"]}