@pexip-engage-public/plugin 1.0.16 → 1.0.17

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 (58) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/configuration-parser/hash-parser.d.ts +1 -1
  3. package/dist/configuration-parser/hash-parser.d.ts.map +1 -1
  4. package/dist/configuration-parser/hash-parser.js +1 -1
  5. package/dist/configuration-parser/hash-parser.js.map +1 -1
  6. package/dist/configuration-parser/html-parser.d.ts +1 -1
  7. package/dist/configuration-parser/html-parser.d.ts.map +1 -1
  8. package/dist/configuration-parser/html-parser.js +2 -2
  9. package/dist/configuration-parser/html-parser.js.map +1 -1
  10. package/dist/configuration-parser/index.d.ts +5 -16
  11. package/dist/configuration-parser/index.d.ts.map +1 -1
  12. package/dist/configuration-parser/index.js +8 -52
  13. package/dist/configuration-parser/index.js.map +1 -1
  14. package/dist/configuration-parser/js-parser.d.ts +78 -30
  15. package/dist/configuration-parser/js-parser.d.ts.map +1 -1
  16. package/dist/configuration-parser/js-parser.js +143 -38
  17. package/dist/configuration-parser/js-parser.js.map +1 -1
  18. package/dist/configuration-parser/migrate-legacy-configuration.d.ts +15 -0
  19. package/dist/configuration-parser/migrate-legacy-configuration.d.ts.map +1 -0
  20. package/dist/configuration-parser/migrate-legacy-configuration.js +59 -0
  21. package/dist/configuration-parser/migrate-legacy-configuration.js.map +1 -0
  22. package/dist/configuration-parser-legacy/LegacyParser.utils.d.ts.map +1 -1
  23. package/dist/configuration-parser-legacy/LegacyParser.utils.js +6 -1
  24. package/dist/configuration-parser-legacy/LegacyParser.utils.js.map +1 -1
  25. package/dist/constants.d.ts +0 -5
  26. package/dist/constants.d.ts.map +1 -1
  27. package/dist/constants.js +0 -5
  28. package/dist/constants.js.map +1 -1
  29. package/dist/encoding.d.ts +1 -1
  30. package/dist/encoding.d.ts.map +1 -1
  31. package/dist/encoding.js +1 -1
  32. package/dist/encoding.js.map +1 -1
  33. package/dist/events/event-types.d.ts +1 -1
  34. package/dist/events/event-types.d.ts.map +1 -1
  35. package/dist/instance/PluginInstance.d.ts +42 -112
  36. package/dist/instance/PluginInstance.d.ts.map +1 -1
  37. package/dist/instance/PluginInstance.js +46 -78
  38. package/dist/instance/PluginInstance.js.map +1 -1
  39. package/dist/instance/dispatchEvent.d.ts.map +1 -1
  40. package/dist/instance/dispatchEvent.js +0 -3
  41. package/dist/instance/dispatchEvent.js.map +1 -1
  42. package/dist/instance/index.d.ts +21 -11
  43. package/dist/instance/index.d.ts.map +1 -1
  44. package/dist/instance/index.js +14 -14
  45. package/dist/instance/index.js.map +1 -1
  46. package/package.json +2 -1
  47. package/src/configuration-parser/hash-parser.ts +2 -2
  48. package/src/configuration-parser/html-parser.ts +3 -3
  49. package/src/configuration-parser/index.ts +13 -87
  50. package/src/configuration-parser/js-parser.ts +244 -76
  51. package/src/configuration-parser/migrate-legacy-configuration.ts +95 -0
  52. package/src/configuration-parser-legacy/LegacyParser.utils.ts +7 -1
  53. package/src/constants.ts +0 -6
  54. package/src/encoding.ts +1 -1
  55. package/src/events/event-types.ts +1 -9
  56. package/src/instance/PluginInstance.ts +52 -93
  57. package/src/instance/dispatchEvent.ts +0 -5
  58. package/src/instance/index.ts +40 -28
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @pexip-engage-public/plugin
2
2
 
3
+ ## 1.0.17
4
+
5
+ ### Patch Changes
6
+
7
+ - b7a5179: feat: cleanup plugin integration
8
+
3
9
  ## 1.0.16
4
10
 
5
11
  ### Patch Changes
@@ -2,6 +2,6 @@ import type { PluginConfiguration } from "../configuration/PluginConfiguration.c
2
2
  export declare const HASH_PREFIX = "#pexip-";
3
3
  export declare const hashParser: {
4
4
  encode(value: PluginConfiguration): string;
5
- decode(hash?: string | null): PluginConfiguration;
5
+ decode(hash?: string | null): PluginConfiguration | null;
6
6
  };
7
7
  //# sourceMappingURL=hash-parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hash-parser.d.ts","sourceRoot":"","sources":["../../src/configuration-parser/hash-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAG3F,eAAO,MAAM,WAAW,YAAY,CAAC;AACrC,eAAO,MAAM,UAAU;kBACP,mBAAmB,GAAG,MAAM;kBAG5B,MAAM,GAAG,IAAI,GAAG,mBAAmB;CASlD,CAAC"}
1
+ {"version":3,"file":"hash-parser.d.ts","sourceRoot":"","sources":["../../src/configuration-parser/hash-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAG3F,eAAO,MAAM,WAAW,YAAY,CAAC;AACrC,eAAO,MAAM,UAAU;kBACP,mBAAmB,GAAG,MAAM;kBAG5B,MAAM,GAAG,IAAI,GAAG,mBAAmB,GAAG,IAAI;CASzD,CAAC"}
@@ -6,7 +6,7 @@ export const hashParser = {
6
6
  },
7
7
  decode(hash) {
8
8
  if (!hash || !hash.startsWith(HASH_PREFIX))
9
- return {};
9
+ return null;
10
10
  const value = hash.slice(HASH_PREFIX.length);
11
11
  const configuration = decodeURIParameters(value);
12
12
  return configuration;
@@ -1 +1 @@
1
- {"version":3,"file":"hash-parser.js","sourceRoot":"","sources":["../../src/configuration-parser/hash-parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1E,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AACrC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,CAAC,KAA0B;QAC/B,OAAO,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,CAAC,IAAoB;QACzB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,EAAE,CAAC;QAEtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE7C,MAAM,aAAa,GAAG,mBAAmB,CAAsB,KAAK,CAAC,CAAC;QAEtE,OAAO,aAAa,CAAC;IACvB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"hash-parser.js","sourceRoot":"","sources":["../../src/configuration-parser/hash-parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1E,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AACrC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,CAAC,KAA0B;QAC/B,OAAO,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,CAAC,IAAoB;QACzB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC;QAExD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE7C,MAAM,aAAa,GAAG,mBAAmB,CAAsB,KAAK,CAAC,CAAC;QAEtE,OAAO,aAAa,CAAC;IACvB,CAAC;CACF,CAAC"}
@@ -5,6 +5,6 @@ export type HTMLConfig = {
5
5
  };
6
6
  export declare const htmlParser: {
7
7
  encode(config: PluginConfiguration): string[];
8
- decode(element?: HTMLElement | null): PluginConfiguration;
8
+ decode(element?: HTMLElement | null): PluginConfiguration | null;
9
9
  };
10
10
  //# sourceMappingURL=html-parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"html-parser.d.ts","sourceRoot":"","sources":["../../src/configuration-parser/html-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAG3F,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,MAAM,MAAM,UAAU,GAAG;KACtB,GAAG,IAAI,MAAM,mBAAmB,IAAI,GAAG,OAAO,WAAW,GAAG,GAAG,EAAE,GAAG,OAAO,CAC1E,mBAAmB,CAAC,GAAG,CAAC,EACxB,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAC1B;CACF,CAAC;AAEF,eAAO,MAAM,UAAU;mBACN,mBAAmB,GAAG,MAAM,EAAE;qBAG5B,WAAW,GAAG,IAAI,GAAG,mBAAmB;CAoB1D,CAAC"}
1
+ {"version":3,"file":"html-parser.d.ts","sourceRoot":"","sources":["../../src/configuration-parser/html-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAG3F,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,MAAM,MAAM,UAAU,GAAG;KACtB,GAAG,IAAI,MAAM,mBAAmB,IAAI,GAAG,OAAO,WAAW,GAAG,GAAG,EAAE,GAAG,OAAO,CAC1E,mBAAmB,CAAC,GAAG,CAAC,EACxB,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAC1B;CACF,CAAC;AAEF,eAAO,MAAM,UAAU;mBACN,mBAAmB,GAAG,MAAM,EAAE;qBAG5B,WAAW,GAAG,IAAI,GAAG,mBAAmB,GAAG,IAAI;CAoBjE,CAAC"}
@@ -7,7 +7,7 @@ export const htmlParser = {
7
7
  decode(element) {
8
8
  try {
9
9
  if (!element)
10
- return {};
10
+ return null;
11
11
  const attributes = element.getAttributeNames().filter((name) => name.startsWith(ATTR_PREFIX));
12
12
  const object = {};
13
13
  for (const attribute of attributes) {
@@ -19,7 +19,7 @@ export const htmlParser = {
19
19
  }
20
20
  catch (err) {
21
21
  logger.error("Failed to parse HTML attributes", err);
22
- return {};
22
+ return null;
23
23
  }
24
24
  },
25
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"html-parser.js","sourceRoot":"","sources":["../../src/configuration-parser/html-parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AAQzC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,CAAC,MAA2B;QAChC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,GAAG,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,CAAC,OAA4B;QACjC,IAAI,CAAC;YACH,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;YAC9F,MAAM,MAAM,GAAwB,EAAE,CAAC;YAEvC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAE/C,8CAA8C;gBAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;YACrE,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;YAErD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"html-parser.js","sourceRoot":"","sources":["../../src/configuration-parser/html-parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AAQzC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,CAAC,MAA2B;QAChC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,GAAG,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,CAAC,OAA4B;QACjC,IAAI,CAAC;YACH,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;YAC9F,MAAM,MAAM,GAAwB,EAAE,CAAC;YAEvC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAE/C,8CAA8C;gBAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;YACrE,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;YAErD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -1,24 +1,23 @@
1
1
  import type { PluginConfiguration } from "../configuration/PluginConfiguration.current.js";
2
- import { type JSConfig } from "./js-parser.js";
3
2
  export declare const CONFIG_VERSION: Exclude<PluginConfiguration["version"], undefined>;
4
3
  export declare const parser: {
5
4
  js: {
6
- encode(config: PluginConfiguration): JSConfig;
7
- decode(jsConfig?: unknown): PluginConfiguration;
5
+ encode(config: PluginConfiguration): import("./js-parser.js").JSConfig;
6
+ decode(jsConfig?: unknown): PluginConfiguration | null;
8
7
  };
9
8
  hash: {
10
9
  encode(value: PluginConfiguration): string;
11
- decode(hash?: string | null | undefined): PluginConfiguration;
10
+ decode(hash?: string | null | undefined): PluginConfiguration | null;
12
11
  };
13
12
  html: {
14
13
  encode(config: PluginConfiguration): string[];
15
- decode(element?: HTMLElement | null | undefined): PluginConfiguration;
14
+ decode(element?: HTMLElement | null | undefined): PluginConfiguration | null;
16
15
  };
17
16
  };
18
17
  export { HASH_PREFIX } from "./hash-parser.js";
19
18
  export { ATTR_PREFIX } from "./html-parser.js";
20
19
  export type { JSConfig } from "./js-parser.js";
21
- interface ConfigurationProps {
20
+ export interface ConfigurationProps {
22
21
  element?: HTMLElement;
23
22
  hash?: string;
24
23
  options?: unknown;
@@ -28,16 +27,6 @@ interface ConfigurationProps {
28
27
  };
29
28
  }
30
29
  export declare function parsePluginConfiguration(args: ConfigurationProps): {
31
- config: PluginConfiguration;
32
- domConfig: PluginConfiguration;
33
- hashConfig: PluginConfiguration;
34
- jsConfig: PluginConfiguration;
35
- } | {
36
- migrationInstructions: {
37
- dom: string | null;
38
- hash: string | null;
39
- js: JSConfig | null;
40
- };
41
30
  config: PluginConfiguration;
42
31
  domConfig: PluginConfiguration | null;
43
32
  hashConfig: PluginConfiguration | null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configuration-parser/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAM3F,OAAO,EAAE,KAAK,QAAQ,EAAY,MAAM,gBAAgB,CAAC;AAEzD,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAW,CAAC;AAC1F,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAAuD,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,kBAAkB;;;;;;;;;;;;;;;EAqBhE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configuration-parser/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAQ3F,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAW,CAAC;AAC1F,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAAuD,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,kBAAkB;;;;;EAoBhE"}
@@ -1,9 +1,8 @@
1
- import { migrateConfiguration } from "../configuration/migration.js";
2
- import { parsePluginConfigurationV1 } from "../configuration-parser-legacy/Parser.js";
3
1
  import { logger } from "../logger.js";
4
2
  import { hashParser } from "./hash-parser.js";
5
3
  import { htmlParser } from "./html-parser.js";
6
4
  import { jsParser } from "./js-parser.js";
5
+ // import { migrateLegacyConfiguration } from './migrate-legacy-configuration.js';
7
6
  export const CONFIG_VERSION = "1.0.0";
8
7
  export const parser = { js: jsParser, hash: hashParser, html: htmlParser };
9
8
  export { HASH_PREFIX } from "./hash-parser.js";
@@ -11,20 +10,17 @@ export { ATTR_PREFIX } from "./html-parser.js";
11
10
  export function parsePluginConfiguration(args) {
12
11
  const result = parse(args);
13
12
  const version = result.config.version;
13
+ if (!version) {
14
+ logger.warn(`Failed to detect config version, assuming latest version.
15
+ Please add a version to your config to avoid breaking it in the future.
16
+ Current version: ${CONFIG_VERSION}`);
17
+ }
14
18
  // only one version for now, can just return it.
15
19
  if (version === CONFIG_VERSION) {
16
20
  return result;
17
21
  }
18
- const v1Config = parsePluginConfigurationV1({
19
- element: args.element,
20
- hash: args.hash,
21
- href: args.browser.href,
22
- browserTimeZone: args.browser.timeZone,
23
- options: args.options,
24
- });
25
- const migrated = createMigration(v1Config);
26
- // migrated.
27
- return migrated;
22
+ return result;
23
+ // return migrateLegacyConfiguration(args);
28
24
  }
29
25
  function parse({ browser, element, hash, options }) {
30
26
  const domConfig = parser.html.decode(element);
@@ -39,44 +35,4 @@ function parse({ browser, element, hash, options }) {
39
35
  };
40
36
  return { config, domConfig, hashConfig, jsConfig };
41
37
  }
42
- function createMigration(result) {
43
- const data = {
44
- config: migrateConfiguration(result.config) ?? { version: "1.0.0" },
45
- domConfig: migrateConfiguration(result.domConfig),
46
- hashConfig: migrateConfiguration(result.hashConfig),
47
- jsConfig: migrateConfiguration(result.jsConfig),
48
- };
49
- const migrationInstructions = {
50
- dom: data.domConfig
51
- ? `<div class="pexip-engage-plugin"\n ${parser.html
52
- .encode(data.domConfig)
53
- .join("\n ")}\n></div>`
54
- : null,
55
- hash: data.hashConfig ? parser.hash.encode(data.hashConfig) : null,
56
- js: data.jsConfig ? parser.js.encode(data.jsConfig) : null,
57
- };
58
- logDeprecationWarning(migrationInstructions);
59
- return {
60
- ...data,
61
- migrationInstructions,
62
- };
63
- }
64
- function logDeprecationWarning({ dom, hash, js, }) {
65
- if (dom || hash || js) {
66
- logger.group("DEPRECATED CONFIGURATION");
67
- if (dom) {
68
- try {
69
- logger.warn("Detected unsupported DOM config. Please update your DOM element to:\n", dom.replaceAll("\n ", ""));
70
- }
71
- catch (err) { }
72
- }
73
- if (hash) {
74
- logger.warn("Detected deprecated hash config. Please update your hash to:\n%o", hash);
75
- }
76
- if (js) {
77
- logger.warn("Detected deprecated JS config. Please update your JS to:\n%o", `PexipEngage.Plugin(element, ${JSON.stringify(js)})`);
78
- }
79
- logger.groupEnd();
80
- }
81
- }
82
38
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/configuration-parser/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/configuration-parser/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAuD,OAAO,CAAC;AAC1F,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAa/C,MAAM,UAAU,wBAAwB,CAAC,IAAwB;IAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;IAEtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CACT;;mBAEa,cAAc,EAAE,CAC9B,CAAC;IACJ,CAAC;IAED,gDAAgD;IAChD,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC;IAEd,2CAA2C;AAC7C,CAAC;AAED,SAAS,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAsB;IACpE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE3C,MAAM,MAAM,GAAwB;QAClC,GAAG,SAAS;QACZ,GAAG,UAAU;QACb,GAAG,QAAQ;QACX,cAAc,EAAE,OAAO,CAAC,IAAI;QAC5B,mBAAmB,EAAE,OAAO,CAAC,QAAQ;KACtC,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AACrD,CAAC"}
@@ -1,82 +1,130 @@
1
+ import type { MeetingType } from "@pexip-engage-public/graphql";
1
2
  import type { PluginConfiguration } from "../configuration/PluginConfiguration.current.js";
2
3
  export declare const jsParser: {
3
4
  encode(config: PluginConfiguration): JSConfig;
4
- decode(jsConfig?: unknown): PluginConfiguration;
5
+ decode(jsConfig?: unknown): PluginConfiguration | null;
5
6
  };
6
7
  type StringConfig = string | null;
7
8
  type StringArrayConfig = StringConfig | string[];
8
9
  type BooleanConfig = StringConfig | boolean;
9
10
  export interface JSConfig {
10
11
  config?: {
11
- version: "1.0.0";
12
+ version?: "1.0.0";
13
+ /**
14
+ * A sequence of characters that indicates the order of steps to be shown. The following characters are supported:
15
+ * - `S`: Subject. The step that allows the customer to pick a subject.
16
+ * - `O`: Office. The step that allows the customer to pick an office.
17
+ * - `M`: Meeting type. The step that allows the customer to pick a meeting type.
18
+ * - `E`: Employee. The step that allows the customer to pick an employee.
19
+ * - `T`: Timetable. The step that allows the customer to suggest one or more time slots for their appointment.
20
+ * - `Q`: Questions. The step that allows the customer to answer any addition questions specific to the chosen subject.
21
+ * - `C`: Customer. The step that allows the customer to provide his/her contact information.
22
+ * - `*`: [locked]. Indicate that the step is locked and can not be edited. This means that a value must be provided.
23
+ *
24
+ * Currently, the following constraints must always be met:
25
+ * - The following characters must always be present: `T`, `Q`, `C`.
26
+ * - No other characters than those listed above may be used.
27
+ * - When `S` is not present, it is mandatory that an external mechanism will provide the `config.subject.id` + `config.subject.type` configuration option instead.
28
+ * - When `O` is not present, it is mandatory that an external mechanism will provide the `config.office.id` + `config.office.type`configuration option instead.
29
+ * - If `S` or `O` are present, they can never occur at a position after `T`.
30
+ * - If `S` is present, it can never occur at a position after `Q`.
31
+ *
32
+ * By default the value `SMOTQC` will be assumed. This will be the case if no value was provided or if the provided value fails these constraints.
33
+ * @default "SMOTQC"
34
+ */
12
35
  flow?: StringConfig;
13
- intent?: StringConfig;
14
- language?: StringConfig;
36
+ intent?: "schedule" | "reschedule" | "invite" | "edit" | "cancel" | "complete" | null;
37
+ /**
38
+ * An RFC 5646-compatible language tag.
39
+ *
40
+ * This will cause the plugin to be displayed in the specified language, unless the language is unavailable.
41
+ *
42
+ * In that case, a best-effort fallback will be performed with increasingly more generic variants of the specified language or finally 'en' if no variants of the specified language are available.
43
+ */
44
+ language?: "da" | "de" | "el" | "en" | "en-GB" | "en-US" | "es" | "fr" | "no" | "nl" | "pl" | null;
15
45
  employee?: {
16
46
  ids?: StringArrayConfig;
17
- type?: StringConfig;
47
+ type?: "id" | "externalId" | null;
18
48
  };
19
49
  application?: {
50
+ /**
51
+ * Used to set scroll top value when navigating steps
52
+ * @default -90
53
+ */
20
54
  scroll?: "disabled" | number | null;
21
- timezoneSelection?: StringConfig;
55
+ /**
56
+ * Used to enable timezone selection when the meeting type is video or phone.
57
+ * @default "enable"
58
+ */
59
+ timeZoneSelection?: "enable" | "disable" | null;
22
60
  theme?: string | null;
23
61
  };
24
62
  customer?: {
25
63
  company?: StringConfig;
26
- customer_number?: StringConfig;
27
- date_of_birth?: StringConfig;
64
+ customerNumber?: StringConfig;
28
65
  email?: StringConfig;
29
- external_id?: StringConfig;
30
- first_name?: StringConfig;
31
- gender?: StringConfig;
66
+ existing?: BooleanConfig;
67
+ externalId?: StringConfig;
68
+ firstName?: StringConfig;
32
69
  id?: StringConfig;
33
- is_existing?: BooleanConfig;
34
70
  language?: StringConfig;
35
- last_name?: StringConfig;
71
+ lastName?: StringConfig;
36
72
  location?: {
37
73
  city?: StringConfig;
38
- country?: StringConfig;
39
- geolocation?: StringConfig;
40
- postal_code?: StringConfig;
74
+ countryCode?: StringConfig;
75
+ geolocation?: {
76
+ latitude: StringConfig;
77
+ longitude: StringConfig;
78
+ };
79
+ postalCode?: StringConfig;
80
+ timeZone?: StringConfig;
41
81
  state?: StringConfig;
42
- street_1?: StringConfig;
82
+ street1?: StringConfig;
83
+ street2?: StringConfig;
43
84
  };
44
- phone_number?: StringConfig;
45
- preferred_contact_id?: StringConfig;
46
- preferred_office_id?: StringConfig;
47
- timezone?: StringConfig;
85
+ phoneNumber?: StringConfig;
86
+ timeZone?: StringConfig;
48
87
  };
49
88
  leadSegment?: {
50
89
  id?: StringConfig;
51
- type?: StringConfig;
90
+ type?: "id" | "code" | null;
52
91
  };
53
92
  listing?: {
54
93
  id?: StringConfig;
55
- type?: StringConfig;
94
+ type?: "id" | "externalId" | null;
56
95
  };
57
96
  location?: {
58
- initialSearch?: StringConfig;
97
+ formattedAddress?: StringConfig;
59
98
  };
60
- meetingTypes?: StringArrayConfig;
99
+ meetingTypes?: MeetingType[] | MeetingType | null;
61
100
  oauth?: {
101
+ /** A resource_code of an existing appointment. This will allow you to complete or change an appointment. This parameter is mostly used by redirects from external sources (e.g. e-mails) and should usually not be provided manually. */
62
102
  resourceCode?: StringConfig;
63
103
  };
64
104
  office?: {
65
105
  ids?: StringArrayConfig;
66
- type?: StringConfig;
106
+ type?: "id" | "externalId" | null;
67
107
  };
108
+ /**
109
+ * The country that should be used for searching locations. Should be a two letter ISO 3166-1 country code.
110
+ *
111
+ * You can provide a maximum of 5 comma-separated countries.
112
+ */
68
113
  searchCountries?: StringArrayConfig;
69
114
  session?: {
70
115
  id?: StringConfig;
116
+ /** Pass source tags seperated with a semi-colon. */
71
117
  sourceTags?: StringArrayConfig;
72
- status?: StringConfig;
118
+ /** Used to enable/disable tracking of events in the plugin for insights about conversion. @default "default" */
119
+ status?: "default" | "disabled" | null;
73
120
  };
74
121
  subject?: {
75
122
  ids?: StringArrayConfig;
76
- type?: StringConfig;
123
+ type?: "id" | "externalId" | null;
77
124
  };
78
- timetable?: {
79
- startDate?: StringConfig;
125
+ subjectGroup?: {
126
+ ids?: StringArrayConfig;
127
+ type?: "id" | "externalId" | null;
80
128
  };
81
129
  };
82
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"js-parser.d.ts","sourceRoot":"","sources":["../../src/configuration-parser/js-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAI3F,eAAO,MAAM,QAAQ;mBACJ,mBAAmB,GAAG,QAAQ;sBAc3B,OAAO,GAAG,mBAAmB;CAmBhD,CAAC;AAuBF,KAAK,YAAY,GAAG,MAAM,GAAG,IAAI,CAAC;AAClC,KAAK,iBAAiB,GAAG,YAAY,GAAG,MAAM,EAAE,CAAC;AACjD,KAAK,aAAa,GAAG,YAAY,GAAG,OAAO,CAAC;AAE5C,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,YAAY,CAAC;QACpB,MAAM,CAAC,EAAE,YAAY,CAAC;QACtB,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,QAAQ,CAAC,EAAE;YACT,GAAG,CAAC,EAAE,iBAAiB,CAAC;YACxB,IAAI,CAAC,EAAE,YAAY,CAAC;SACrB,CAAC;QACF,WAAW,CAAC,EAAE;YACZ,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;YACpC,iBAAiB,CAAC,EAAE,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;SACvB,CAAC;QACF,QAAQ,CAAC,EAAE;YAET,OAAO,CAAC,EAAE,YAAY,CAAC;YACvB,eAAe,CAAC,EAAE,YAAY,CAAC;YAC/B,aAAa,CAAC,EAAE,YAAY,CAAC;YAC7B,KAAK,CAAC,EAAE,YAAY,CAAC;YACrB,WAAW,CAAC,EAAE,YAAY,CAAC;YAC3B,UAAU,CAAC,EAAE,YAAY,CAAC;YAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;YACtB,EAAE,CAAC,EAAE,YAAY,CAAC;YAClB,WAAW,CAAC,EAAE,aAAa,CAAC;YAC5B,QAAQ,CAAC,EAAE,YAAY,CAAC;YACxB,SAAS,CAAC,EAAE,YAAY,CAAC;YACzB,QAAQ,CAAC,EAAE;gBACT,IAAI,CAAC,EAAE,YAAY,CAAC;gBACpB,OAAO,CAAC,EAAE,YAAY,CAAC;gBACvB,WAAW,CAAC,EAAE,YAAY,CAAC;gBAC3B,WAAW,CAAC,EAAE,YAAY,CAAC;gBAC3B,KAAK,CAAC,EAAE,YAAY,CAAC;gBACrB,QAAQ,CAAC,EAAE,YAAY,CAAC;aACzB,CAAC;YACF,YAAY,CAAC,EAAE,YAAY,CAAC;YAC5B,oBAAoB,CAAC,EAAE,YAAY,CAAC;YACpC,mBAAmB,CAAC,EAAE,YAAY,CAAC;YACnC,QAAQ,CAAC,EAAE,YAAY,CAAC;SACzB,CAAC;QACF,WAAW,CAAC,EAAE;YACZ,EAAE,CAAC,EAAE,YAAY,CAAC;YAClB,IAAI,CAAC,EAAE,YAAY,CAAC;SACrB,CAAC;QACF,OAAO,CAAC,EAAE;YACR,EAAE,CAAC,EAAE,YAAY,CAAC;YAClB,IAAI,CAAC,EAAE,YAAY,CAAC;SACrB,CAAC;QACF,QAAQ,CAAC,EAAE;YACT,aAAa,CAAC,EAAE,YAAY,CAAC;SAC9B,CAAC;QACF,YAAY,CAAC,EAAE,iBAAiB,CAAC;QACjC,KAAK,CAAC,EAAE;YACN,YAAY,CAAC,EAAE,YAAY,CAAC;SAC7B,CAAC;QACF,MAAM,CAAC,EAAE;YACP,GAAG,CAAC,EAAE,iBAAiB,CAAC;YACxB,IAAI,CAAC,EAAE,YAAY,CAAC;SACrB,CAAC;QACF,eAAe,CAAC,EAAE,iBAAiB,CAAC;QACpC,OAAO,CAAC,EAAE;YACR,EAAE,CAAC,EAAE,YAAY,CAAC;YAClB,UAAU,CAAC,EAAE,iBAAiB,CAAC;YAC/B,MAAM,CAAC,EAAE,YAAY,CAAC;SACvB,CAAC;QACF,OAAO,CAAC,EAAE;YACR,GAAG,CAAC,EAAE,iBAAiB,CAAC;YACxB,IAAI,CAAC,EAAE,YAAY,CAAC;SACrB,CAAC;QACF,SAAS,CAAC,EAAE;YACV,SAAS,CAAC,EAAE,YAAY,CAAC;SAC1B,CAAC;KACH,CAAC;CACH"}
1
+ {"version":3,"file":"js-parser.d.ts","sourceRoot":"","sources":["../../src/configuration-parser/js-parser.ts"],"names":[],"mappings":"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"}
@@ -1,63 +1,168 @@
1
- import { isValidConfiguration } from "../configuration-parser-legacy/utils.js";
2
1
  import { logger } from "../logger.js";
2
+ function isValidConfiguration(configuration) {
3
+ return typeof configuration === "object" && configuration !== null;
4
+ }
3
5
  export const jsParser = {
4
6
  encode(config) {
5
- //@ts-ignore
6
- const result = {};
7
- for (let key in config) {
8
- const value = config[key];
9
- const keys = key.split("-");
10
- //@ts-ignore
11
- setValue(result, keys, value);
12
- }
13
- return { config: result };
7
+ const result = {
8
+ version: config.version,
9
+ flow: config.flow,
10
+ intent: config.intent,
11
+ language: config.language,
12
+ employee: {
13
+ ids: config["employee-ids"],
14
+ type: config["employee-type"],
15
+ },
16
+ application: {
17
+ scroll: config["application-scroll"],
18
+ timeZoneSelection: config["application-time_zone_selection"],
19
+ // timetable_ui: config["application-timetable_ui"],
20
+ theme: config["application-theme"],
21
+ },
22
+ customer: {
23
+ company: config["customer-company"],
24
+ customerNumber: config["customer-customer_number"],
25
+ email: config["customer-email"],
26
+ existing: config["customer-existing"],
27
+ externalId: config["customer-external_id"],
28
+ firstName: config["customer-first_name"],
29
+ id: config["customer-id"],
30
+ language: config["customer-language"],
31
+ lastName: config["customer-last_name"],
32
+ location: {
33
+ city: config["customer-location-city"],
34
+ countryCode: config["customer-location-country_code"],
35
+ geolocation: {
36
+ latitude: config["customer-location-geolocation-latitude"],
37
+ longitude: config["customer-location-geolocation-longitude"],
38
+ },
39
+ postalCode: config["customer-location-postal_code"],
40
+ timeZone: config["customer-location-time_zone"],
41
+ state: config["customer-location-state"],
42
+ street1: config["customer-location-street1"],
43
+ street2: config["customer-location-street2"],
44
+ },
45
+ phoneNumber: config["customer-phone_number"],
46
+ timeZone: config["customer-time_zone"],
47
+ },
48
+ leadSegment: {
49
+ id: config["lead_segment-id"],
50
+ type: config["lead_segment-type"],
51
+ },
52
+ listing: {
53
+ id: config["listing-id"],
54
+ type: config["listing-type"],
55
+ },
56
+ location: {
57
+ formattedAddress: config["location-formatted_address"],
58
+ },
59
+ meetingTypes: config["meeting_types"],
60
+ oauth: {
61
+ resourceCode: config["oauth-resource_code"],
62
+ },
63
+ office: {
64
+ ids: config["office-ids"],
65
+ type: config["office-type"],
66
+ },
67
+ searchCountries: config["search_countries"],
68
+ session: {
69
+ id: config["session-id"],
70
+ sourceTags: config["session-source_tags"],
71
+ status: config["session-status"],
72
+ },
73
+ subject: {
74
+ ids: config["subject-ids"],
75
+ type: config["subject-type"],
76
+ },
77
+ subjectGroup: {
78
+ ids: config["subject_group-ids"],
79
+ type: config["subject_group-type"],
80
+ },
81
+ };
82
+ return { config: prune(result) };
14
83
  },
15
84
  decode(jsConfig) {
16
85
  if (!jsConfig)
17
- return {};
86
+ return null;
18
87
  try {
19
88
  if (!isValidConfiguration(jsConfig))
20
89
  throw new Error("Invalid configuration passed, expected an object.");
21
90
  if (jsConfig && "config" in jsConfig && isValidConfiguration(jsConfig.config)) {
22
- return objectToDashConfig(jsConfig.config);
91
+ const config = jsConfig.config;
92
+ const result = {
93
+ version: config.version,
94
+ flow: config.flow,
95
+ intent: config.intent,
96
+ language: config.language,
97
+ "employee-ids": config.employee?.ids,
98
+ "employee-type": config.employee?.type,
99
+ "application-scroll": config.application?.scroll,
100
+ "application-time_zone_selection": config.application?.timeZoneSelection,
101
+ // "application-timetable_ui": config.application?.timetableUI,
102
+ "application-theme": config.application?.theme,
103
+ "customer-company": config.customer?.company,
104
+ "customer-customer_number": config.customer?.customerNumber,
105
+ "customer-email": config.customer?.email,
106
+ "customer-existing": config.customer?.existing,
107
+ "customer-external_id": config.customer?.externalId,
108
+ "customer-first_name": config.customer?.firstName,
109
+ "customer-id": config.customer?.id,
110
+ "customer-language": config.customer?.language,
111
+ "customer-last_name": config.customer?.lastName,
112
+ "customer-location-city": config.customer?.location?.city,
113
+ "customer-location-country_code": config.customer?.location?.countryCode,
114
+ "customer-location-geolocation-latitude": config.customer?.location?.geolocation?.latitude,
115
+ "customer-location-geolocation-longitude": config.customer?.location?.geolocation?.longitude,
116
+ "customer-location-postal_code": config.customer?.location?.postalCode,
117
+ "customer-location-time_zone": config.customer?.location?.timeZone,
118
+ "customer-location-state": config.customer?.location?.state,
119
+ "customer-location-street1": config.customer?.location?.street1,
120
+ "customer-location-street2": config.customer?.location?.street2,
121
+ "customer-phone_number": config.customer?.phoneNumber,
122
+ "customer-time_zone": config.customer?.timeZone,
123
+ "lead_segment-id": config.leadSegment?.id,
124
+ "lead_segment-type": config.leadSegment?.type,
125
+ "listing-id": config.listing?.id,
126
+ "listing-type": config.listing?.type,
127
+ "location-formatted_address": config.location?.formattedAddress,
128
+ meeting_types: config.meetingTypes,
129
+ "oauth-resource_code": config.oauth?.resourceCode,
130
+ "office-ids": config.office?.ids,
131
+ "office-type": config.office?.type,
132
+ search_countries: config.searchCountries,
133
+ "session-id": config.session?.id,
134
+ "session-source_tags": config.session?.sourceTags,
135
+ "session-status": config.session?.status,
136
+ "subject-ids": config.subject?.ids,
137
+ "subject-type": config.subject?.type,
138
+ "subject_group-ids": config.subjectGroup?.ids,
139
+ "subject_group-type": config.subjectGroup?.type,
140
+ };
141
+ return prune(result);
23
142
  }
24
143
  else {
25
- return {};
144
+ return null;
26
145
  }
27
146
  }
28
147
  catch (err) {
29
148
  logger.error("Failed to parse JS config:", jsConfig);
30
149
  logger.error("JS ERROR:", err);
31
- return {};
150
+ return null;
32
151
  }
33
152
  },
34
153
  };
35
- function objectToDashConfig(inputObject, current, result = {}) {
36
- for (let key in inputObject) {
37
- let value = inputObject[key];
38
- let newKey = current ? `${current}-${key}` : key;
39
- if (Array.isArray(value)) {
40
- result[newKey] = value;
41
- }
42
- else if (value && typeof value === "object") {
43
- objectToDashConfig(value, newKey, result);
154
+ function prune(obj) {
155
+ for (let key in obj) {
156
+ const value = obj[key];
157
+ if (value === null || value === undefined) {
158
+ delete obj[key];
44
159
  }
45
- else {
46
- result[newKey] = value;
47
- }
48
- }
49
- return result;
50
- }
51
- function setValue(target, keys, value) {
52
- let targetObj = target;
53
- const [lastKey] = keys.splice(-1, 1);
54
- for (const key of keys) {
55
- if (!targetObj[key]) {
56
- targetObj[key] = {};
160
+ else if (typeof value === "object") {
161
+ prune(value);
162
+ if (Object.keys(value).length === 0)
163
+ delete obj[key];
57
164
  }
58
- targetObj = targetObj[key];
59
165
  }
60
- //@ts-expect-error
61
- targetObj[lastKey] = value;
166
+ return obj;
62
167
  }
63
168
  //# sourceMappingURL=js-parser.js.map