@microblink/blinkid-core 7.4.1 → 7.4.3

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 (40) hide show
  1. package/dist/blinkid-core.js +656 -599
  2. package/dist/resources/blinkid-worker.js +517 -707
  3. package/dist/resources/full/advanced/BlinkIdModule.js +4 -4
  4. package/dist/resources/full/advanced/BlinkIdModule.wasm +0 -0
  5. package/dist/resources/full/advanced-threads/BlinkIdModule.js +12 -13
  6. package/dist/resources/full/advanced-threads/BlinkIdModule.wasm +0 -0
  7. package/dist/resources/full/basic/BlinkIdModule.js +8 -8
  8. package/dist/resources/full/basic/BlinkIdModule.wasm +0 -0
  9. package/dist/resources/lightweight/advanced/BlinkIdModule.js +3 -3
  10. package/dist/resources/lightweight/advanced/BlinkIdModule.wasm +0 -0
  11. package/dist/resources/lightweight/advanced-threads/BlinkIdModule.js +5 -5
  12. package/dist/resources/lightweight/advanced-threads/BlinkIdModule.wasm +0 -0
  13. package/dist/resources/lightweight/basic/BlinkIdModule.js +4 -4
  14. package/dist/resources/lightweight/basic/BlinkIdModule.wasm +0 -0
  15. package/dist/resources/size-manifest.json +30 -0
  16. package/package.json +1 -1
  17. package/types/deviceInfo/createDerivedDeviceInfo.d.ts +7 -0
  18. package/types/deviceInfo/createDerivedDeviceInfo.d.ts.map +1 -0
  19. package/types/deviceInfo/createDerivedDeviceInfo.test.d.ts +5 -0
  20. package/types/deviceInfo/createDerivedDeviceInfo.test.d.ts.map +1 -0
  21. package/types/deviceInfo/deviceInfo.d.ts +54 -0
  22. package/types/deviceInfo/deviceInfo.d.ts.map +1 -0
  23. package/types/deviceInfo/getAppleDeviceModel.d.ts +13 -0
  24. package/types/deviceInfo/getAppleDeviceModel.d.ts.map +1 -0
  25. package/types/deviceInfo/getAppleDeviceModel.test.d.ts +5 -0
  26. package/types/deviceInfo/getAppleDeviceModel.test.d.ts.map +1 -0
  27. package/types/deviceInfo/getBrowserFromUserAgent.d.ts +18 -0
  28. package/types/deviceInfo/getBrowserFromUserAgent.d.ts.map +1 -0
  29. package/types/deviceInfo/getBrowserFromUserAgent.test.d.ts +5 -0
  30. package/types/deviceInfo/getBrowserFromUserAgent.test.d.ts.map +1 -0
  31. package/types/deviceInfo/getOsFromUserAgent.d.ts +18 -0
  32. package/types/deviceInfo/getOsFromUserAgent.d.ts.map +1 -0
  33. package/types/deviceInfo/getOsFromUserAgent.test.d.ts +5 -0
  34. package/types/deviceInfo/getOsFromUserAgent.test.d.ts.map +1 -0
  35. package/types/deviceInfo/navigator-types.d.ts +79 -0
  36. package/types/deviceInfo/navigator-types.d.ts.map +1 -0
  37. package/types/index.d.ts +1 -0
  38. package/types/index.d.ts.map +1 -1
  39. package/types/index.rollup.d.ts +140 -22
  40. package/dist/blinkid-core.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AAExB,mBAAmB,0BAA0B,CAAC;AAC9C,mBAAmB,4BAA4B,CAAC;AAEhD,4CAA4C;AAC5C,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAIlE,QAAA,MAAM,UAAU,eAAW,CAAC;AAE5B,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,gBAAgB,EAAE,OAAO,UAAU,CAAC;CACzC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AAGxB,cAAc,yBAAyB,CAAC;AAExC,mBAAmB,0BAA0B,CAAC;AAC9C,mBAAmB,4BAA4B,CAAC;AAEhD,4CAA4C;AAC5C,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAIlE,QAAA,MAAM,UAAU,eAAW,CAAC;AAE5B,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,gBAAgB,EAAE,OAAO,UAAU,CAAC;CACzC"}
@@ -1148,11 +1148,8 @@ export declare type BlinkIdSessionErrorType = "document-scanned" | "result-retri
1148
1148
  * The settings control various aspects of the scanning process including:
1149
1149
  *
1150
1150
  * - Input source (video stream or single photo)
1151
- *
1152
1151
  * - Scanning mode (single or multiple sides)
1153
- *
1154
1152
  * - Document detection and quality analysis
1155
- *
1156
1153
  * - Image processing and result extraction
1157
1154
  *
1158
1155
  * @public
@@ -1166,7 +1163,6 @@ export declare type BlinkIdSessionSettings = {
1166
1163
  * real-time scanning through a camera feed.
1167
1164
  *
1168
1165
  * - `video` - Uses continuous camera feed for scanning
1169
- *
1170
1166
  * - `photo` - Uses a single captured photo for scanning
1171
1167
  *
1172
1168
  * @defaultValue `video`
@@ -1181,7 +1177,6 @@ export declare type BlinkIdSessionSettings = {
1181
1177
  * based on the detected document type.
1182
1178
  *
1183
1179
  * - `automatic` - Automatically determines required sides
1184
- *
1185
1180
  * - `single` - Scans only one side
1186
1181
  *
1187
1182
  * @defaultValue `automatic`
@@ -1340,6 +1335,11 @@ export declare type BlinkIdWorkerInitSettings = {
1340
1335
  */
1341
1336
  export declare type BlinkIdWorkerProxy = Omit<BlinkIdWorker, typeof finalizer>;
1342
1337
 
1338
+ export declare type BrowserStorageSupport = {
1339
+ cookieEnabled: boolean;
1340
+ localStorageEnabled: boolean;
1341
+ };
1342
+
1343
1343
  /**
1344
1344
  * Options for a C call.
1345
1345
  *
@@ -1486,6 +1486,16 @@ export declare type DependentInfo = {
1486
1486
  fullName?: StringResult;
1487
1487
  };
1488
1488
 
1489
+ export declare type DerivedDeviceInfo = {
1490
+ model: string;
1491
+ formFactor: FormFactor[];
1492
+ platform: OperatingSystem | "";
1493
+ browser: {
1494
+ brand: string;
1495
+ version: string;
1496
+ };
1497
+ };
1498
+
1489
1499
  /**
1490
1500
  * Represents the result of the image crop transformation with additional
1491
1501
  * details.
@@ -1525,31 +1535,53 @@ export declare type DetectionLevel = "off" | "low" | "mid" | "high";
1525
1535
  /**
1526
1536
  * Represents the status of the document detection process.
1527
1537
  *
1528
- * This type represents all possible states that can occur during document detection:
1538
+ * This type represents all possible states that can occur during document
1539
+ * detection:
1529
1540
  *
1530
1541
  * - `failed`
1531
- * - Detection has failed
1532
1542
  *
1543
+ * - Detection has failed
1533
1544
  * - `success`
1534
- * - Document has been successfully detected
1535
1545
  *
1546
+ * - Document has been successfully detected
1536
1547
  * - `camera-too-far`
1537
- * - Camera is positioned too far from the document
1538
1548
  *
1549
+ * - Camera is positioned too far from the document
1539
1550
  * - `camera-too-close`
1540
- * - Camera is positioned too close to the document
1541
1551
  *
1552
+ * - Camera is positioned too close to the document
1542
1553
  * - `camera-angle-too-steep`
1543
- * - Camera angle relative to the document is too steep
1544
1554
  *
1555
+ * - Camera angle relative to the document is too steep
1545
1556
  * - `document-too-close-to-camera-edge`
1546
- * - Document is positioned too close to the edge of camera view
1547
1557
  *
1558
+ * - Document is positioned too close to the edge of camera view
1548
1559
  * - `document-partially-visible`
1560
+ *
1549
1561
  * - Only part of the document is visible in camera view
1550
1562
  */
1551
1563
  export declare type DetectionStatus = "failed" | "success" | "camera-too-far" | "camera-too-close" | "camera-angle-too-steep" | "document-too-close-to-camera-edge" | "document-partially-visible";
1552
1564
 
1565
+ export declare type DeviceInfo = {
1566
+ userAgentData?: UADataValues;
1567
+ userAgent: string;
1568
+ threads: number;
1569
+ memory?: number;
1570
+ gpu?: GpuInfo;
1571
+ screen: DeviceScreenInfo;
1572
+ browserStorageSupport: BrowserStorageSupport;
1573
+ derivedDeviceInfo: DerivedDeviceInfo;
1574
+ };
1575
+
1576
+ export declare type DeviceScreenInfo = {
1577
+ screenWidth: number;
1578
+ screenHeight: number;
1579
+ devicePixelRatio: number;
1580
+ physicalScreenWidth: number;
1581
+ physicalScreenHeight: number;
1582
+ maxTouchPoints: number;
1583
+ };
1584
+
1553
1585
  /** Represents the document anonymization settings. */
1554
1586
  export declare type DocumentAnonymizationSettings = {
1555
1587
  /** Specified fields will be anonymized if filter conditions are met. */
@@ -1669,6 +1701,7 @@ declare type DownloadProgress = {
1669
1701
  loaded: number;
1670
1702
  contentLength: number;
1671
1703
  progress: number;
1704
+ finished: boolean;
1672
1705
  };
1673
1706
 
1674
1707
  /**
@@ -1698,9 +1731,8 @@ export declare type DriverLicenceDetailedInfo<S extends string | StringResult> =
1698
1731
  * JavaScript engine. The memory used by the object must be cleaned up manually
1699
1732
  * by calling the delete() method.
1700
1733
  *
1701
- * @see https://emscripten.org/docs/porting/connecting_cpp_and_javascript/embind.html#memory-management for more details.
1702
- *
1703
1734
  * @ignore
1735
+ * @see https://emscripten.org/docs/porting/connecting_cpp_and_javascript/embind.html#memory-management for more details.
1704
1736
  */
1705
1737
  export declare type EmbindObject<T extends {}> = T & {
1706
1738
  delete: () => void;
@@ -1794,9 +1826,8 @@ export declare interface EmscriptenModule {
1794
1826
  * option. It's left to you to declare any global variables as needed in your
1795
1827
  * application's types.
1796
1828
  *
1797
- * @param moduleOverrides Default properties for the initialized module.
1798
- *
1799
1829
  * @ignore
1830
+ * @param moduleOverrides Default properties for the initialized module.
1800
1831
  */
1801
1832
  export declare type EmscriptenModuleFactory<T extends EmscriptenModule = EmscriptenModule> = (moduleOverrides?: Partial<T>) => Promise<T>;
1802
1833
 
@@ -1852,6 +1883,13 @@ export declare function extractSignatureImage(blinkIdScanningResult: BlinkIdScan
1852
1883
  /** Represents all possible field types that can be extracted from the document. */
1853
1884
  export declare type FieldType = Simplify<keyof VizResult | "mrz">;
1854
1885
 
1886
+ /**
1887
+ * Common form-factor values as per spec.
1888
+ *
1889
+ * @see https://wicg.github.io/ua-client-hints/#sec-ch-ua-form-factors
1890
+ */
1891
+ export declare type FormFactor = "Desktop" | "Automotive" | "Mobile" | "Tablet" | "XR" | "EInk" | "Watch";
1892
+
1855
1893
  /**
1856
1894
  * Gets a cross-origin worker URL as a data URL or blob URL. If the URL is same-origin, it will return the original URL.
1857
1895
  *
@@ -1861,6 +1899,14 @@ export declare type FieldType = Simplify<keyof VizResult | "mrz">;
1861
1899
  */
1862
1900
  export declare const getCrossOriginWorkerURL: (originalWorkerUrl: string, _options?: Options) => Promise<string>;
1863
1901
 
1902
+ export declare function getDeviceInfo(): Promise<DeviceInfo>;
1903
+
1904
+ /**
1905
+ * Get granular device info from `navigator.userAgentData.getHighEntropyValues`
1906
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/NavigatorUAData/getHighEntropyValues
1907
+ */
1908
+ export declare function getUserAgentData(): Promise<UADataValues | undefined>;
1909
+
1864
1910
  /**
1865
1911
  * Copyright (c) 2025 Microblink Ltd. All rights reserved.
1866
1912
  */
@@ -1873,6 +1919,21 @@ export declare const getCrossOriginWorkerURL: (originalWorkerUrl: string, _optio
1873
1919
  */
1874
1920
  export declare function getUserId(): string;
1875
1921
 
1922
+ /**
1923
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/getParameter
1924
+ */
1925
+ export declare type GpuInfo = {
1926
+ renderer: string;
1927
+ shadingLanguageVersion: string;
1928
+ vendor: string;
1929
+ version: string;
1930
+ };
1931
+
1932
+ /**
1933
+ * Allows for type-safe parameter passing while still conforming to spec.
1934
+ */
1935
+ export declare type Hints = keyof UADataValues;
1936
+
1876
1937
  /**
1877
1938
  * Copyright (c) 2025 Microblink Ltd. All rights reserved.
1878
1939
  */
@@ -2113,6 +2174,27 @@ export declare type MrzResult = {
2113
2174
  sanitizedDocumentNumber: string;
2114
2175
  };
2115
2176
 
2177
+ /**
2178
+ * @see https://wicg.github.io/ua-client-hints/#dictdef-navigatoruabrandversion
2179
+ */
2180
+ export declare interface NavigatorUABrandVersion {
2181
+ readonly brand: string;
2182
+ readonly version: string;
2183
+ }
2184
+
2185
+ /**
2186
+ * @see https://wicg.github.io/ua-client-hints/#navigatoruadata
2187
+ */
2188
+ export declare interface NavigatorUAData extends UALowEntropyJSON {
2189
+ getHighEntropyValues(hints: Hints[] | string[]): Promise<UADataValues>;
2190
+ toJSON(): UALowEntropyJSON;
2191
+ }
2192
+
2193
+ /**
2194
+ * Copyright (c) 2025 Microblink Ltd. All rights reserved.
2195
+ */
2196
+ declare type OperatingSystem = "Windows" | "macOS" | "iOS" | "iPadOS" | "Android" | "Linux" | (string & {});
2197
+
2116
2198
  /**
2117
2199
  * Copyright (c) 2025 Microblink Ltd. All rights reserved.
2118
2200
  */
@@ -2335,13 +2417,19 @@ export declare type RemoteWorker = ReturnType<typeof createProxyWorker>;
2335
2417
  /**
2336
2418
  * Removes the internals of an Embind object.
2337
2419
  *
2420
+ * @ignore
2338
2421
  * @param T - The type of the object to remove the internals from.
2339
2422
  * @returns The object with the internals removed.
2340
- *
2341
- * @ignore
2342
2423
  */
2343
2424
  export declare type RemoveEmbindInternals<T> = Omit<T, "delete" | "isDeleted" | "deleteLater" | "isAliasOf">;
2344
2425
 
2426
+ export declare type ResourceFileType = (typeof resourceFileTypes)[number];
2427
+
2428
+ /**
2429
+ * Copyright (c) 2025 Microblink Ltd. All rights reserved.
2430
+ */
2431
+ export declare const resourceFileTypes: readonly ["wasm", "data"];
2432
+
2345
2433
  /**
2346
2434
  * Represents the completeness of the extraction process for a scanned document.
2347
2435
  *
@@ -2722,6 +2810,33 @@ export declare type StringResult = {
2722
2810
  */
2723
2811
  export declare function testLocalStorage(): boolean;
2724
2812
 
2813
+ /**
2814
+ * @see https://wicg.github.io/ua-client-hints/#dictdef-uadatavalues
2815
+ */
2816
+ export declare interface UADataValues {
2817
+ readonly brands?: NavigatorUABrandVersion[];
2818
+ readonly mobile?: boolean;
2819
+ readonly platform?: string;
2820
+ readonly architecture?: string;
2821
+ readonly bitness?: string;
2822
+ readonly formFactors?: FormFactor[];
2823
+ readonly model?: string;
2824
+ readonly platformVersion?: string;
2825
+ /** @deprecated in favour of fullVersionList */
2826
+ readonly uaFullVersion?: string;
2827
+ readonly fullVersionList?: NavigatorUABrandVersion[];
2828
+ readonly wow64?: boolean;
2829
+ }
2830
+
2831
+ /**
2832
+ * @see https://wicg.github.io/ua-client-hints/#dictdef-ualowentropyjson
2833
+ */
2834
+ export declare interface UALowEntropyJSON {
2835
+ readonly brands: NavigatorUABrandVersion[];
2836
+ readonly mobile: boolean;
2837
+ readonly platform: string;
2838
+ }
2839
+
2725
2840
  /**
2726
2841
  * Represents the information about the vehicle class.
2727
2842
  *
@@ -2832,10 +2947,13 @@ export declare type VizResult = {
2832
2947
  nationalInsuranceNumber?: StringResult;
2833
2948
  };
2834
2949
 
2835
- /**
2836
- * The WASM variant.
2837
- */
2838
- declare type WasmVariant = "basic" | "advanced" | "advanced-threads";
2950
+ export declare type WasmBuildType = (typeof wasmBuildTypes)[number];
2951
+
2952
+ export declare const wasmBuildTypes: readonly ["full", "lightweight"];
2953
+
2954
+ export declare type WasmVariant = (typeof wasmVariants)[number];
2955
+
2956
+ export declare const wasmVariants: readonly ["basic", "advanced", "advanced-threads"];
2839
2957
 
2840
2958
  /**
2841
2959
  * Copyright (c) 2025 Microblink Ltd. All rights reserved.
@@ -1 +0,0 @@
1
- {"version":3,"file":"blinkid-core.js","sources":["../../../node_modules/.pnpm/comlink@4.4.2/node_modules/comlink/dist/esm/comlink.mjs","../src/getCrossOriginWorkerURL.ts","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/TemplateTag/TemplateTag.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/commaLists/commaLists.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/commaListsAnd/commaListsAnd.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/commaListsOr/commaListsOr.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/html/html.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/safeHtml/safeHtml.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/oneLine/oneLine.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/oneLineTrim/oneLineTrim.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/oneLineCommaLists/oneLineCommaLists.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/inlineLists/inlineLists.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/oneLineInlineLists/oneLineInlineLists.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/stripIndent/stripIndent.js","../../../node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/stripIndents/stripIndents.js","../src/createProxyWorker.ts","../../../node_modules/.pnpm/nanoid@5.0.2/node_modules/nanoid/index.browser.js","../src/getUserId.ts","../src/defaultSessionSettings.ts","../src/BlinkIdCore.ts","../src/createCustomImageData.ts","../src/utils.ts","../src/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst proxyMarker = Symbol(\"Comlink.proxy\");\nconst createEndpoint = Symbol(\"Comlink.endpoint\");\nconst releaseProxy = Symbol(\"Comlink.releaseProxy\");\nconst finalizer = Symbol(\"Comlink.finalizer\");\nconst throwMarker = Symbol(\"Comlink.thrown\");\nconst isObject = (val) => (typeof val === \"object\" && val !== null) || typeof val === \"function\";\n/**\n * Internal transfer handle to handle objects marked to proxy.\n */\nconst proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n },\n};\n/**\n * Internal transfer handler to handle thrown exceptions.\n */\nconst throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack,\n },\n };\n }\n else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n },\n};\n/**\n * Allows customizing the serialization of certain values.\n */\nconst transferHandlers = new Map([\n [\"proxy\", proxyTransferHandler],\n [\"throw\", throwTransferHandler],\n]);\nfunction isAllowedOrigin(allowedOrigins, origin) {\n for (const allowedOrigin of allowedOrigins) {\n if (origin === allowedOrigin || allowedOrigin === \"*\") {\n return true;\n }\n if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {\n return true;\n }\n }\n return false;\n}\nfunction expose(obj, ep = globalThis, allowedOrigins = [\"*\"]) {\n ep.addEventListener(\"message\", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n if (!isAllowedOrigin(allowedOrigins, ev.origin)) {\n console.warn(`Invalid origin '${ev.origin}' for comlink proxy`);\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj);\n const rawValue = path.reduce((obj, prop) => obj[prop], obj);\n switch (type) {\n case \"GET\" /* MessageType.GET */:\n {\n returnValue = rawValue;\n }\n break;\n case \"SET\" /* MessageType.SET */:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case \"APPLY\" /* MessageType.APPLY */:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case \"CONSTRUCT\" /* MessageType.CONSTRUCT */:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case \"ENDPOINT\" /* MessageType.ENDPOINT */:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case \"RELEASE\" /* MessageType.RELEASE */:\n {\n returnValue = undefined;\n }\n break;\n default:\n return;\n }\n }\n catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue)\n .catch((value) => {\n return { value, [throwMarker]: 0 };\n })\n .then((returnValue) => {\n const [wireValue, transferables] = toWireValue(returnValue);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === \"RELEASE\" /* MessageType.RELEASE */) {\n // detach and deactive after sending release response above.\n ep.removeEventListener(\"message\", callback);\n closeEndPoint(ep);\n if (finalizer in obj && typeof obj[finalizer] === \"function\") {\n obj[finalizer]();\n }\n }\n })\n .catch((error) => {\n // Send Serialization Error To Caller\n const [wireValue, transferables] = toWireValue({\n value: new TypeError(\"Unserializable return value\"),\n [throwMarker]: 0,\n });\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n });\n });\n if (ep.start) {\n ep.start();\n }\n}\nfunction isMessagePort(endpoint) {\n return endpoint.constructor.name === \"MessagePort\";\n}\nfunction closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n}\nfunction wrap(ep, target) {\n const pendingListeners = new Map();\n ep.addEventListener(\"message\", function handleMessage(ev) {\n const { data } = ev;\n if (!data || !data.id) {\n return;\n }\n const resolver = pendingListeners.get(data.id);\n if (!resolver) {\n return;\n }\n try {\n resolver(data);\n }\n finally {\n pendingListeners.delete(data.id);\n }\n });\n return createProxy(ep, pendingListeners, [], target);\n}\nfunction throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error(\"Proxy has been released and is not useable\");\n }\n}\nfunction releaseEndpoint(ep) {\n return requestResponseMessage(ep, new Map(), {\n type: \"RELEASE\" /* MessageType.RELEASE */,\n }).then(() => {\n closeEndPoint(ep);\n });\n}\nconst proxyCounter = new WeakMap();\nconst proxyFinalizers = \"FinalizationRegistry\" in globalThis &&\n new FinalizationRegistry((ep) => {\n const newCount = (proxyCounter.get(ep) || 0) - 1;\n proxyCounter.set(ep, newCount);\n if (newCount === 0) {\n releaseEndpoint(ep);\n }\n });\nfunction registerProxy(proxy, ep) {\n const newCount = (proxyCounter.get(ep) || 0) + 1;\n proxyCounter.set(ep, newCount);\n if (proxyFinalizers) {\n proxyFinalizers.register(proxy, ep, proxy);\n }\n}\nfunction unregisterProxy(proxy) {\n if (proxyFinalizers) {\n proxyFinalizers.unregister(proxy);\n }\n}\nfunction createProxy(ep, pendingListeners, path = [], target = function () { }) {\n let isProxyReleased = false;\n const proxy = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n unregisterProxy(proxy);\n releaseEndpoint(ep);\n pendingListeners.clear();\n isProxyReleased = true;\n };\n }\n if (prop === \"then\") {\n if (path.length === 0) {\n return { then: () => proxy };\n }\n const r = requestResponseMessage(ep, pendingListeners, {\n type: \"GET\" /* MessageType.GET */,\n path: path.map((p) => p.toString()),\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, pendingListeners, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n // FIXME: ES6 Proxy Handler `set` methods are supposed to return a\n // boolean. To show good will, we return true asynchronously ¯\\_(ツ)_/¯\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"SET\" /* MessageType.SET */,\n path: [...path, prop].map((p) => p.toString()),\n value,\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, pendingListeners, {\n type: \"ENDPOINT\" /* MessageType.ENDPOINT */,\n }).then(fromWireValue);\n }\n // We just pretend that `bind()` didn’t happen.\n if (last === \"bind\") {\n return createProxy(ep, pendingListeners, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"APPLY\" /* MessageType.APPLY */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"CONSTRUCT\" /* MessageType.CONSTRUCT */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n });\n registerProxy(proxy, ep);\n return proxy;\n}\nfunction myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n}\nfunction processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n}\nconst transferCache = new WeakMap();\nfunction transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n}\nfunction proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n}\nfunction windowEndpoint(w, context = globalThis, targetOrigin = \"*\") {\n return {\n postMessage: (msg, transferables) => w.postMessage(msg, targetOrigin, transferables),\n addEventListener: context.addEventListener.bind(context),\n removeEventListener: context.removeEventListener.bind(context),\n };\n}\nfunction toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: \"HANDLER\" /* WireValueType.HANDLER */,\n name,\n value: serializedValue,\n },\n transferables,\n ];\n }\n }\n return [\n {\n type: \"RAW\" /* WireValueType.RAW */,\n value,\n },\n transferCache.get(value) || [],\n ];\n}\nfunction fromWireValue(value) {\n switch (value.type) {\n case \"HANDLER\" /* WireValueType.HANDLER */:\n return transferHandlers.get(value.name).deserialize(value.value);\n case \"RAW\" /* WireValueType.RAW */:\n return value.value;\n }\n}\nfunction requestResponseMessage(ep, pendingListeners, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n pendingListeners.set(id, resolve);\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n}\nfunction generateUUID() {\n return new Array(4)\n .fill(0)\n .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))\n .join(\"-\");\n}\n\nexport { createEndpoint, expose, finalizer, proxy, proxyMarker, releaseProxy, transfer, transferHandlers, windowEndpoint, wrap };\n//# sourceMappingURL=comlink.mjs.map\n","/**\n * Copyright (c) 2025 Microblink Ltd. All rights reserved.\n */\n\nconst type = \"application/javascript\";\n\n/**\n * Options for the getCrossOriginWorkerURL function.\n *\n * @param skipSameOrigin - If true, the function will return the original URL if it is same-origin.\n * @param useBlob - If true, the function will return a blob URL.\n */\ntype Options = {\n /** If true, the function will return the original URL if it is same-origin. */\n skipSameOrigin?: boolean;\n /** If true, the function will return a blob URL if not same-origin. */\n useBlob?: boolean;\n};\n\n/**\n * Gets a cross-origin worker URL as a data URL or blob URL. If the URL is same-origin, it will return the original URL.\n *\n * @param originalWorkerUrl - The original worker URL.\n * @param _options - The options for the worker.\n * @returns A promise that resolves with the cross-origin worker URL.\n */\nexport const getCrossOriginWorkerURL = (\n originalWorkerUrl: string,\n _options: Options = {},\n) => {\n const options = {\n skipSameOrigin: true,\n useBlob: true,\n\n ..._options,\n };\n\n if (\n options.skipSameOrigin &&\n new URL(originalWorkerUrl).origin === self.location.origin\n ) {\n // The same origin - Worker will run fine\n return Promise.resolve(originalWorkerUrl);\n }\n\n let signal: AbortSignal;\n\n try {\n // Setup the abort controller\n const controller = new AbortController();\n signal = controller.signal;\n\n const timeout = setTimeout(() => {\n controller.abort();\n }, 3000);\n\n const cleanup = () => {\n clearTimeout(timeout);\n controller.abort();\n };\n\n signal.addEventListener(\"abort\", cleanup);\n } catch (error) {\n // just swallow the error\n }\n\n return new Promise<string>(\n (resolve, reject) =>\n void fetch(originalWorkerUrl, {\n // abort if the worker is not fetched in a reasonable time\n signal,\n })\n .then((res) => res.text())\n .then((codeString) => {\n let finalURL = \"\";\n\n if (options.useBlob) {\n const blob = new Blob([codeString], { type });\n finalURL = URL.createObjectURL(blob);\n } else {\n finalURL = `data:${type},` + encodeURIComponent(codeString);\n }\n resolve(finalURL);\n })\n .catch(() => {\n reject(new Error(`Failed to fetch worker from ${originalWorkerUrl}`));\n }),\n );\n};\n","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['', ''], ['', '']);\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @class TemplateTag\n * @classdesc Consumes a pipeline of composable transformer plugins and produces a template tag.\n */\nvar TemplateTag = function () {\n /**\n * constructs a template tag\n * @constructs TemplateTag\n * @param {...Object} [...transformers] - an array or arguments list of transformers\n * @return {Function} - a template tag\n */\n function TemplateTag() {\n var _this = this;\n\n for (var _len = arguments.length, transformers = Array(_len), _key = 0; _key < _len; _key++) {\n transformers[_key] = arguments[_key];\n }\n\n _classCallCheck(this, TemplateTag);\n\n this.tag = function (strings) {\n for (var _len2 = arguments.length, expressions = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n expressions[_key2 - 1] = arguments[_key2];\n }\n\n if (typeof strings === 'function') {\n // if the first argument passed is a function, assume it is a template tag and return\n // an intermediary tag that processes the template using the aforementioned tag, passing the\n // result to our tag\n return _this.interimTag.bind(_this, strings);\n }\n\n if (typeof strings === 'string') {\n // if the first argument passed is a string, just transform it\n return _this.transformEndResult(strings);\n }\n\n // else, return a transformed end result of processing the template with our tag\n strings = strings.map(_this.transformString.bind(_this));\n return _this.transformEndResult(strings.reduce(_this.processSubstitutions.bind(_this, expressions)));\n };\n\n // if first argument is an array, extrude it as a list of transformers\n if (transformers.length > 0 && Array.isArray(transformers[0])) {\n transformers = transformers[0];\n }\n\n // if any transformers are functions, this means they are not initiated - automatically initiate them\n this.transformers = transformers.map(function (transformer) {\n return typeof transformer === 'function' ? transformer() : transformer;\n });\n\n // return an ES2015 template tag\n return this.tag;\n }\n\n /**\n * Applies all transformers to a template literal tagged with this method.\n * If a function is passed as the first argument, assumes the function is a template tag\n * and applies it to the template, returning a template tag.\n * @param {(Function|String|Array<String>)} strings - Either a template tag or an array containing template strings separated by identifier\n * @param {...*} ...expressions - Optional list of substitution values.\n * @return {(String|Function)} - Either an intermediary tag function or the results of processing the template.\n */\n\n\n _createClass(TemplateTag, [{\n key: 'interimTag',\n\n\n /**\n * An intermediary template tag that receives a template tag and passes the result of calling the template with the received\n * template tag to our own template tag.\n * @param {Function} nextTag - the received template tag\n * @param {Array<String>} template - the template to process\n * @param {...*} ...substitutions - `substitutions` is an array of all substitutions in the template\n * @return {*} - the final processed value\n */\n value: function interimTag(previousTag, template) {\n for (var _len3 = arguments.length, substitutions = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n substitutions[_key3 - 2] = arguments[_key3];\n }\n\n return this.tag(_templateObject, previousTag.apply(undefined, [template].concat(substitutions)));\n }\n\n /**\n * Performs bulk processing on the tagged template, transforming each substitution and then\n * concatenating the resulting values into a string.\n * @param {Array<*>} substitutions - an array of all remaining substitutions present in this template\n * @param {String} resultSoFar - this iteration's result string so far\n * @param {String} remainingPart - the template chunk after the current substitution\n * @return {String} - the result of joining this iteration's processed substitution with the result\n */\n\n }, {\n key: 'processSubstitutions',\n value: function processSubstitutions(substitutions, resultSoFar, remainingPart) {\n var substitution = this.transformSubstitution(substitutions.shift(), resultSoFar);\n return ''.concat(resultSoFar, substitution, remainingPart);\n }\n\n /**\n * Iterate through each transformer, applying the transformer's `onString` method to the template\n * strings before all substitutions are processed.\n * @param {String} str - The input string\n * @return {String} - The final results of processing each transformer\n */\n\n }, {\n key: 'transformString',\n value: function transformString(str) {\n var cb = function cb(res, transform) {\n return transform.onString ? transform.onString(res) : res;\n };\n return this.transformers.reduce(cb, str);\n }\n\n /**\n * When a substitution is encountered, iterates through each transformer and applies the transformer's\n * `onSubstitution` method to the substitution.\n * @param {*} substitution - The current substitution\n * @param {String} resultSoFar - The result up to and excluding this substitution.\n * @return {*} - The final result of applying all substitution transformations.\n */\n\n }, {\n key: 'transformSubstitution',\n value: function transformSubstitution(substitution, resultSoFar) {\n var cb = function cb(res, transform) {\n return transform.onSubstitution ? transform.onSubstitution(res, resultSoFar) : res;\n };\n return this.transformers.reduce(cb, substitution);\n }\n\n /**\n * Iterates through each transformer, applying the transformer's `onEndResult` method to the\n * template literal after all substitutions have finished processing.\n * @param {String} endResult - The processed template, just before it is returned from the tag\n * @return {String} - The final results of processing each transformer\n */\n\n }, {\n key: 'transformEndResult',\n value: function transformEndResult(endResult) {\n var cb = function cb(res, transform) {\n return transform.onEndResult ? transform.onEndResult(res) : res;\n };\n return this.transformers.reduce(cb, endResult);\n }\n }]);\n\n return TemplateTag;\n}();\n\nexport default TemplateTag;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZW1wbGF0ZVRhZy9UZW1wbGF0ZVRhZy5qcyJdLCJuYW1lcyI6WyJUZW1wbGF0ZVRhZyIsInRyYW5zZm9ybWVycyIsInRhZyIsInN0cmluZ3MiLCJleHByZXNzaW9ucyIsImludGVyaW1UYWciLCJiaW5kIiwidHJhbnNmb3JtRW5kUmVzdWx0IiwibWFwIiwidHJhbnNmb3JtU3RyaW5nIiwicmVkdWNlIiwicHJvY2Vzc1N1YnN0aXR1dGlvbnMiLCJsZW5ndGgiLCJBcnJheSIsImlzQXJyYXkiLCJ0cmFuc2Zvcm1lciIsInByZXZpb3VzVGFnIiwidGVtcGxhdGUiLCJzdWJzdGl0dXRpb25zIiwicmVzdWx0U29GYXIiLCJyZW1haW5pbmdQYXJ0Iiwic3Vic3RpdHV0aW9uIiwidHJhbnNmb3JtU3Vic3RpdHV0aW9uIiwic2hpZnQiLCJjb25jYXQiLCJzdHIiLCJjYiIsInJlcyIsInRyYW5zZm9ybSIsIm9uU3RyaW5nIiwib25TdWJzdGl0dXRpb24iLCJlbmRSZXN1bHQiLCJvbkVuZFJlc3VsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztJQUlxQkEsVztBQUNuQjs7Ozs7O0FBTUEseUJBQTZCO0FBQUE7O0FBQUEsc0NBQWRDLFlBQWM7QUFBZEEsa0JBQWM7QUFBQTs7QUFBQTs7QUFBQSxTQXVCN0JDLEdBdkI2QixHQXVCdkIsVUFBQ0MsT0FBRCxFQUE2QjtBQUFBLHlDQUFoQkMsV0FBZ0I7QUFBaEJBLG1CQUFnQjtBQUFBOztBQUNqQyxVQUFJLE9BQU9ELE9BQVAsS0FBbUIsVUFBdkIsRUFBbUM7QUFDakM7QUFDQTtBQUNBO0FBQ0EsZUFBTyxNQUFLRSxVQUFMLENBQWdCQyxJQUFoQixDQUFxQixLQUFyQixFQUEyQkgsT0FBM0IsQ0FBUDtBQUNEOztBQUVELFVBQUksT0FBT0EsT0FBUCxLQUFtQixRQUF2QixFQUFpQztBQUMvQjtBQUNBLGVBQU8sTUFBS0ksa0JBQUwsQ0FBd0JKLE9BQXhCLENBQVA7QUFDRDs7QUFFRDtBQUNBQSxnQkFBVUEsUUFBUUssR0FBUixDQUFZLE1BQUtDLGVBQUwsQ0FBcUJILElBQXJCLENBQTBCLEtBQTFCLENBQVosQ0FBVjtBQUNBLGFBQU8sTUFBS0Msa0JBQUwsQ0FDTEosUUFBUU8sTUFBUixDQUFlLE1BQUtDLG9CQUFMLENBQTBCTCxJQUExQixDQUErQixLQUEvQixFQUFxQ0YsV0FBckMsQ0FBZixDQURLLENBQVA7QUFHRCxLQXpDNEI7O0FBQzNCO0FBQ0EsUUFBSUgsYUFBYVcsTUFBYixHQUFzQixDQUF0QixJQUEyQkMsTUFBTUMsT0FBTixDQUFjYixhQUFhLENBQWIsQ0FBZCxDQUEvQixFQUErRDtBQUM3REEscUJBQWVBLGFBQWEsQ0FBYixDQUFmO0FBQ0Q7O0FBRUQ7QUFDQSxTQUFLQSxZQUFMLEdBQW9CQSxhQUFhTyxHQUFiLENBQWlCLHVCQUFlO0FBQ2xELGFBQU8sT0FBT08sV0FBUCxLQUF1QixVQUF2QixHQUFvQ0EsYUFBcEMsR0FBb0RBLFdBQTNEO0FBQ0QsS0FGbUIsQ0FBcEI7O0FBSUE7QUFDQSxXQUFPLEtBQUtiLEdBQVo7QUFDRDs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7QUE0QkE7Ozs7Ozs7OytCQVFXYyxXLEVBQWFDLFEsRUFBNEI7QUFBQSx5Q0FBZkMsYUFBZTtBQUFmQSxxQkFBZTtBQUFBOztBQUNsRCxhQUFPLEtBQUtoQixHQUFaLGtCQUFrQmMsOEJBQVlDLFFBQVosU0FBeUJDLGFBQXpCLEVBQWxCO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7O3lDQVFxQkEsYSxFQUFlQyxXLEVBQWFDLGEsRUFBZTtBQUM5RCxVQUFNQyxlQUFlLEtBQUtDLHFCQUFMLENBQ25CSixjQUFjSyxLQUFkLEVBRG1CLEVBRW5CSixXQUZtQixDQUFyQjtBQUlBLGFBQU8sR0FBR0ssTUFBSCxDQUFVTCxXQUFWLEVBQXVCRSxZQUF2QixFQUFxQ0QsYUFBckMsQ0FBUDtBQUNEOztBQUVEOzs7Ozs7Ozs7b0NBTWdCSyxHLEVBQUs7QUFDbkIsVUFBTUMsS0FBSyxTQUFMQSxFQUFLLENBQUNDLEdBQUQsRUFBTUMsU0FBTjtBQUFBLGVBQ1RBLFVBQVVDLFFBQVYsR0FBcUJELFVBQVVDLFFBQVYsQ0FBbUJGLEdBQW5CLENBQXJCLEdBQStDQSxHQUR0QztBQUFBLE9BQVg7QUFFQSxhQUFPLEtBQUsxQixZQUFMLENBQWtCUyxNQUFsQixDQUF5QmdCLEVBQXpCLEVBQTZCRCxHQUE3QixDQUFQO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7MENBT3NCSixZLEVBQWNGLFcsRUFBYTtBQUMvQyxVQUFNTyxLQUFLLFNBQUxBLEVBQUssQ0FBQ0MsR0FBRCxFQUFNQyxTQUFOO0FBQUEsZUFDVEEsVUFBVUUsY0FBVixHQUNJRixVQUFVRSxjQUFWLENBQXlCSCxHQUF6QixFQUE4QlIsV0FBOUIsQ0FESixHQUVJUSxHQUhLO0FBQUEsT0FBWDtBQUlBLGFBQU8sS0FBSzFCLFlBQUwsQ0FBa0JTLE1BQWxCLENBQXlCZ0IsRUFBekIsRUFBNkJMLFlBQTdCLENBQVA7QUFDRDs7QUFFRDs7Ozs7Ozs7O3VDQU1tQlUsUyxFQUFXO0FBQzVCLFVBQU1MLEtBQUssU0FBTEEsRUFBSyxDQUFDQyxHQUFELEVBQU1DLFNBQU47QUFBQSxlQUNUQSxVQUFVSSxXQUFWLEdBQXdCSixVQUFVSSxXQUFWLENBQXNCTCxHQUF0QixDQUF4QixHQUFxREEsR0FENUM7QUFBQSxPQUFYO0FBRUEsYUFBTyxLQUFLMUIsWUFBTCxDQUFrQlMsTUFBbEIsQ0FBeUJnQixFQUF6QixFQUE2QkssU0FBN0IsQ0FBUDtBQUNEOzs7Ozs7ZUFuSGtCL0IsVyIsImZpbGUiOiJUZW1wbGF0ZVRhZy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGNsYXNzIFRlbXBsYXRlVGFnXG4gKiBAY2xhc3NkZXNjIENvbnN1bWVzIGEgcGlwZWxpbmUgb2YgY29tcG9zYWJsZSB0cmFuc2Zvcm1lciBwbHVnaW5zIGFuZCBwcm9kdWNlcyBhIHRlbXBsYXRlIHRhZy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVtcGxhdGVUYWcge1xuICAvKipcbiAgICogY29uc3RydWN0cyBhIHRlbXBsYXRlIHRhZ1xuICAgKiBAY29uc3RydWN0cyBUZW1wbGF0ZVRhZ1xuICAgKiBAcGFyYW0gIHsuLi5PYmplY3R9IFsuLi50cmFuc2Zvcm1lcnNdIC0gYW4gYXJyYXkgb3IgYXJndW1lbnRzIGxpc3Qgb2YgdHJhbnNmb3JtZXJzXG4gICAqIEByZXR1cm4ge0Z1bmN0aW9ufSAgICAgICAgICAgICAgICAgICAgLSBhIHRlbXBsYXRlIHRhZ1xuICAgKi9cbiAgY29uc3RydWN0b3IoLi4udHJhbnNmb3JtZXJzKSB7XG4gICAgLy8gaWYgZmlyc3QgYXJndW1lbnQgaXMgYW4gYXJyYXksIGV4dHJ1ZGUgaXQgYXMgYSBsaXN0IG9mIHRyYW5zZm9ybWVyc1xuICAgIGlmICh0cmFuc2Zvcm1lcnMubGVuZ3RoID4gMCAmJiBBcnJheS5pc0FycmF5KHRyYW5zZm9ybWVyc1swXSkpIHtcbiAgICAgIHRyYW5zZm9ybWVycyA9IHRyYW5zZm9ybWVyc1swXTtcbiAgICB9XG5cbiAgICAvLyBpZiBhbnkgdHJhbnNmb3JtZXJzIGFyZSBmdW5jdGlvbnMsIHRoaXMgbWVhbnMgdGhleSBhcmUgbm90IGluaXRpYXRlZCAtIGF1dG9tYXRpY2FsbHkgaW5pdGlhdGUgdGhlbVxuICAgIHRoaXMudHJhbnNmb3JtZXJzID0gdHJhbnNmb3JtZXJzLm1hcCh0cmFuc2Zvcm1lciA9PiB7XG4gICAgICByZXR1cm4gdHlwZW9mIHRyYW5zZm9ybWVyID09PSAnZnVuY3Rpb24nID8gdHJhbnNmb3JtZXIoKSA6IHRyYW5zZm9ybWVyO1xuICAgIH0pO1xuXG4gICAgLy8gcmV0dXJuIGFuIEVTMjAxNSB0ZW1wbGF0ZSB0YWdcbiAgICByZXR1cm4gdGhpcy50YWc7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyBhbGwgdHJhbnNmb3JtZXJzIHRvIGEgdGVtcGxhdGUgbGl0ZXJhbCB0YWdnZWQgd2l0aCB0aGlzIG1ldGhvZC5cbiAgICogSWYgYSBmdW5jdGlvbiBpcyBwYXNzZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LCBhc3N1bWVzIHRoZSBmdW5jdGlvbiBpcyBhIHRlbXBsYXRlIHRhZ1xuICAgKiBhbmQgYXBwbGllcyBpdCB0byB0aGUgdGVtcGxhdGUsIHJldHVybmluZyBhIHRlbXBsYXRlIHRhZy5cbiAgICogQHBhcmFtICB7KEZ1bmN0aW9ufFN0cmluZ3xBcnJheTxTdHJpbmc+KX0gc3RyaW5ncyAgICAgICAgLSBFaXRoZXIgYSB0ZW1wbGF0ZSB0YWcgb3IgYW4gYXJyYXkgY29udGFpbmluZyB0ZW1wbGF0ZSBzdHJpbmdzIHNlcGFyYXRlZCBieSBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSAgey4uLip9ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmV4cHJlc3Npb25zIC0gT3B0aW9uYWwgbGlzdCBvZiBzdWJzdGl0dXRpb24gdmFsdWVzLlxuICAgKiBAcmV0dXJuIHsoU3RyaW5nfEZ1bmN0aW9uKX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIEVpdGhlciBhbiBpbnRlcm1lZGlhcnkgdGFnIGZ1bmN0aW9uIG9yIHRoZSByZXN1bHRzIG9mIHByb2Nlc3NpbmcgdGhlIHRlbXBsYXRlLlxuICAgKi9cbiAgdGFnID0gKHN0cmluZ3MsIC4uLmV4cHJlc3Npb25zKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBzdHJpbmdzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBpZiB0aGUgZmlyc3QgYXJndW1lbnQgcGFzc2VkIGlzIGEgZnVuY3Rpb24sIGFzc3VtZSBpdCBpcyBhIHRlbXBsYXRlIHRhZyBhbmQgcmV0dXJuXG4gICAgICAvLyBhbiBpbnRlcm1lZGlhcnkgdGFnIHRoYXQgcHJvY2Vzc2VzIHRoZSB0ZW1wbGF0ZSB1c2luZyB0aGUgYWZvcmVtZW50aW9uZWQgdGFnLCBwYXNzaW5nIHRoZVxuICAgICAgLy8gcmVzdWx0IHRvIG91ciB0YWdcbiAgICAgIHJldHVybiB0aGlzLmludGVyaW1UYWcuYmluZCh0aGlzLCBzdHJpbmdzKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHN0cmluZ3MgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBpZiB0aGUgZmlyc3QgYXJndW1lbnQgcGFzc2VkIGlzIGEgc3RyaW5nLCBqdXN0IHRyYW5zZm9ybSBpdFxuICAgICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtRW5kUmVzdWx0KHN0cmluZ3MpO1xuICAgIH1cblxuICAgIC8vIGVsc2UsIHJldHVybiBhIHRyYW5zZm9ybWVkIGVuZCByZXN1bHQgb2YgcHJvY2Vzc2luZyB0aGUgdGVtcGxhdGUgd2l0aCBvdXIgdGFnXG4gICAgc3RyaW5ncyA9IHN0cmluZ3MubWFwKHRoaXMudHJhbnNmb3JtU3RyaW5nLmJpbmQodGhpcykpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybUVuZFJlc3VsdChcbiAgICAgIHN0cmluZ3MucmVkdWNlKHRoaXMucHJvY2Vzc1N1YnN0aXR1dGlvbnMuYmluZCh0aGlzLCBleHByZXNzaW9ucykpLFxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEFuIGludGVybWVkaWFyeSB0ZW1wbGF0ZSB0YWcgdGhhdCByZWNlaXZlcyBhIHRlbXBsYXRlIHRhZyBhbmQgcGFzc2VzIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgdGVtcGxhdGUgd2l0aCB0aGUgcmVjZWl2ZWRcbiAgICogdGVtcGxhdGUgdGFnIHRvIG91ciBvd24gdGVtcGxhdGUgdGFnLlxuICAgKiBAcGFyYW0gIHtGdW5jdGlvbn0gICAgICAgIG5leHRUYWcgICAgICAgICAgLSB0aGUgcmVjZWl2ZWQgdGVtcGxhdGUgdGFnXG4gICAqIEBwYXJhbSAge0FycmF5PFN0cmluZz59ICAgdGVtcGxhdGUgICAgICAgICAtIHRoZSB0ZW1wbGF0ZSB0byBwcm9jZXNzXG4gICAqIEBwYXJhbSAgey4uLip9ICAgICAgICAgICAgLi4uc3Vic3RpdHV0aW9ucyAtIGBzdWJzdGl0dXRpb25zYCBpcyBhbiBhcnJheSBvZiBhbGwgc3Vic3RpdHV0aW9ucyBpbiB0aGUgdGVtcGxhdGVcbiAgICogQHJldHVybiB7Kn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gdGhlIGZpbmFsIHByb2Nlc3NlZCB2YWx1ZVxuICAgKi9cbiAgaW50ZXJpbVRhZyhwcmV2aW91c1RhZywgdGVtcGxhdGUsIC4uLnN1YnN0aXR1dGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy50YWdgJHtwcmV2aW91c1RhZyh0ZW1wbGF0ZSwgLi4uc3Vic3RpdHV0aW9ucyl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBidWxrIHByb2Nlc3Npbmcgb24gdGhlIHRhZ2dlZCB0ZW1wbGF0ZSwgdHJhbnNmb3JtaW5nIGVhY2ggc3Vic3RpdHV0aW9uIGFuZCB0aGVuXG4gICAqIGNvbmNhdGVuYXRpbmcgdGhlIHJlc3VsdGluZyB2YWx1ZXMgaW50byBhIHN0cmluZy5cbiAgICogQHBhcmFtICB7QXJyYXk8Kj59IHN1YnN0aXR1dGlvbnMgLSBhbiBhcnJheSBvZiBhbGwgcmVtYWluaW5nIHN1YnN0aXR1dGlvbnMgcHJlc2VudCBpbiB0aGlzIHRlbXBsYXRlXG4gICAqIEBwYXJhbSAge1N0cmluZ30gICByZXN1bHRTb0ZhciAgIC0gdGhpcyBpdGVyYXRpb24ncyByZXN1bHQgc3RyaW5nIHNvIGZhclxuICAgKiBAcGFyYW0gIHtTdHJpbmd9ICAgcmVtYWluaW5nUGFydCAtIHRoZSB0ZW1wbGF0ZSBjaHVuayBhZnRlciB0aGUgY3VycmVudCBzdWJzdGl0dXRpb25cbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgICAgICAgICAgICAgLSB0aGUgcmVzdWx0IG9mIGpvaW5pbmcgdGhpcyBpdGVyYXRpb24ncyBwcm9jZXNzZWQgc3Vic3RpdHV0aW9uIHdpdGggdGhlIHJlc3VsdFxuICAgKi9cbiAgcHJvY2Vzc1N1YnN0aXR1dGlvbnMoc3Vic3RpdHV0aW9ucywgcmVzdWx0U29GYXIsIHJlbWFpbmluZ1BhcnQpIHtcbiAgICBjb25zdCBzdWJzdGl0dXRpb24gPSB0aGlzLnRyYW5zZm9ybVN1YnN0aXR1dGlvbihcbiAgICAgIHN1YnN0aXR1dGlvbnMuc2hpZnQoKSxcbiAgICAgIHJlc3VsdFNvRmFyLFxuICAgICk7XG4gICAgcmV0dXJuICcnLmNvbmNhdChyZXN1bHRTb0Zhciwgc3Vic3RpdHV0aW9uLCByZW1haW5pbmdQYXJ0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdGVyYXRlIHRocm91Z2ggZWFjaCB0cmFuc2Zvcm1lciwgYXBwbHlpbmcgdGhlIHRyYW5zZm9ybWVyJ3MgYG9uU3RyaW5nYCBtZXRob2QgdG8gdGhlIHRlbXBsYXRlXG4gICAqIHN0cmluZ3MgYmVmb3JlIGFsbCBzdWJzdGl0dXRpb25zIGFyZSBwcm9jZXNzZWQuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSAgc3RyIC0gVGhlIGlucHV0IHN0cmluZ1xuICAgKiBAcmV0dXJuIHtTdHJpbmd9ICAgICAtIFRoZSBmaW5hbCByZXN1bHRzIG9mIHByb2Nlc3NpbmcgZWFjaCB0cmFuc2Zvcm1lclxuICAgKi9cbiAgdHJhbnNmb3JtU3RyaW5nKHN0cikge1xuICAgIGNvbnN0IGNiID0gKHJlcywgdHJhbnNmb3JtKSA9PlxuICAgICAgdHJhbnNmb3JtLm9uU3RyaW5nID8gdHJhbnNmb3JtLm9uU3RyaW5nKHJlcykgOiByZXM7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtZXJzLnJlZHVjZShjYiwgc3RyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIGEgc3Vic3RpdHV0aW9uIGlzIGVuY291bnRlcmVkLCBpdGVyYXRlcyB0aHJvdWdoIGVhY2ggdHJhbnNmb3JtZXIgYW5kIGFwcGxpZXMgdGhlIHRyYW5zZm9ybWVyJ3NcbiAgICogYG9uU3Vic3RpdHV0aW9uYCBtZXRob2QgdG8gdGhlIHN1YnN0aXR1dGlvbi5cbiAgICogQHBhcmFtICB7Kn0gICAgICBzdWJzdGl0dXRpb24gLSBUaGUgY3VycmVudCBzdWJzdGl0dXRpb25cbiAgICogQHBhcmFtICB7U3RyaW5nfSByZXN1bHRTb0ZhciAgLSBUaGUgcmVzdWx0IHVwIHRvIGFuZCBleGNsdWRpbmcgdGhpcyBzdWJzdGl0dXRpb24uXG4gICAqIEByZXR1cm4geyp9ICAgICAgICAgICAgICAgICAgIC0gVGhlIGZpbmFsIHJlc3VsdCBvZiBhcHBseWluZyBhbGwgc3Vic3RpdHV0aW9uIHRyYW5zZm9ybWF0aW9ucy5cbiAgICovXG4gIHRyYW5zZm9ybVN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIHJlc3VsdFNvRmFyKSB7XG4gICAgY29uc3QgY2IgPSAocmVzLCB0cmFuc2Zvcm0pID0+XG4gICAgICB0cmFuc2Zvcm0ub25TdWJzdGl0dXRpb25cbiAgICAgICAgPyB0cmFuc2Zvcm0ub25TdWJzdGl0dXRpb24ocmVzLCByZXN1bHRTb0ZhcilcbiAgICAgICAgOiByZXM7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtZXJzLnJlZHVjZShjYiwgc3Vic3RpdHV0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdGVyYXRlcyB0aHJvdWdoIGVhY2ggdHJhbnNmb3JtZXIsIGFwcGx5aW5nIHRoZSB0cmFuc2Zvcm1lcidzIGBvbkVuZFJlc3VsdGAgbWV0aG9kIHRvIHRoZVxuICAgKiB0ZW1wbGF0ZSBsaXRlcmFsIGFmdGVyIGFsbCBzdWJzdGl0dXRpb25zIGhhdmUgZmluaXNoZWQgcHJvY2Vzc2luZy5cbiAgICogQHBhcmFtICB7U3RyaW5nfSBlbmRSZXN1bHQgLSBUaGUgcHJvY2Vzc2VkIHRlbXBsYXRlLCBqdXN0IGJlZm9yZSBpdCBpcyByZXR1cm5lZCBmcm9tIHRoZSB0YWdcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgICAgICAgLSBUaGUgZmluYWwgcmVzdWx0cyBvZiBwcm9jZXNzaW5nIGVhY2ggdHJhbnNmb3JtZXJcbiAgICovXG4gIHRyYW5zZm9ybUVuZFJlc3VsdChlbmRSZXN1bHQpIHtcbiAgICBjb25zdCBjYiA9IChyZXMsIHRyYW5zZm9ybSkgPT5cbiAgICAgIHRyYW5zZm9ybS5vbkVuZFJlc3VsdCA/IHRyYW5zZm9ybS5vbkVuZFJlc3VsdChyZXMpIDogcmVzO1xuICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybWVycy5yZWR1Y2UoY2IsIGVuZFJlc3VsdCk7XG4gIH1cbn1cbiJdfQ==","/**\n * TemplateTag transformer that trims whitespace on the end result of a tagged template\n * @param {String} side = '' - The side of the string to trim. Can be 'start' or 'end' (alternatively 'left' or 'right')\n * @return {Object} - a TemplateTag transformer\n */\nvar trimResultTransformer = function trimResultTransformer() {\n var side = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return {\n onEndResult: function onEndResult(endResult) {\n if (side === '') {\n return endResult.trim();\n }\n\n side = side.toLowerCase();\n\n if (side === 'start' || side === 'left') {\n return endResult.replace(/^\\s*/, '');\n }\n\n if (side === 'end' || side === 'right') {\n return endResult.replace(/\\s*$/, '');\n }\n\n throw new Error('Side not supported: ' + side);\n }\n };\n};\n\nexport default trimResultTransformer;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmltUmVzdWx0VHJhbnNmb3JtZXIvdHJpbVJlc3VsdFRyYW5zZm9ybWVyLmpzIl0sIm5hbWVzIjpbInRyaW1SZXN1bHRUcmFuc2Zvcm1lciIsInNpZGUiLCJvbkVuZFJlc3VsdCIsImVuZFJlc3VsdCIsInRyaW0iLCJ0b0xvd2VyQ2FzZSIsInJlcGxhY2UiLCJFcnJvciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0FBS0EsSUFBTUEsd0JBQXdCLFNBQXhCQSxxQkFBd0I7QUFBQSxNQUFDQyxJQUFELHVFQUFRLEVBQVI7QUFBQSxTQUFnQjtBQUM1Q0MsZUFENEMsdUJBQ2hDQyxTQURnQyxFQUNyQjtBQUNyQixVQUFJRixTQUFTLEVBQWIsRUFBaUI7QUFDZixlQUFPRSxVQUFVQyxJQUFWLEVBQVA7QUFDRDs7QUFFREgsYUFBT0EsS0FBS0ksV0FBTCxFQUFQOztBQUVBLFVBQUlKLFNBQVMsT0FBVCxJQUFvQkEsU0FBUyxNQUFqQyxFQUF5QztBQUN2QyxlQUFPRSxVQUFVRyxPQUFWLENBQWtCLE1BQWxCLEVBQTBCLEVBQTFCLENBQVA7QUFDRDs7QUFFRCxVQUFJTCxTQUFTLEtBQVQsSUFBa0JBLFNBQVMsT0FBL0IsRUFBd0M7QUFDdEMsZUFBT0UsVUFBVUcsT0FBVixDQUFrQixNQUFsQixFQUEwQixFQUExQixDQUFQO0FBQ0Q7O0FBRUQsWUFBTSxJQUFJQyxLQUFKLDBCQUFpQ04sSUFBakMsQ0FBTjtBQUNEO0FBakIyQyxHQUFoQjtBQUFBLENBQTlCOztBQW9CQSxlQUFlRCxxQkFBZiIsImZpbGUiOiJ0cmltUmVzdWx0VHJhbnNmb3JtZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRlbXBsYXRlVGFnIHRyYW5zZm9ybWVyIHRoYXQgdHJpbXMgd2hpdGVzcGFjZSBvbiB0aGUgZW5kIHJlc3VsdCBvZiBhIHRhZ2dlZCB0ZW1wbGF0ZVxuICogQHBhcmFtICB7U3RyaW5nfSBzaWRlID0gJycgLSBUaGUgc2lkZSBvZiB0aGUgc3RyaW5nIHRvIHRyaW0uIENhbiBiZSAnc3RhcnQnIG9yICdlbmQnIChhbHRlcm5hdGl2ZWx5ICdsZWZ0JyBvciAncmlnaHQnKVxuICogQHJldHVybiB7T2JqZWN0fSAgICAgICAgICAgLSBhIFRlbXBsYXRlVGFnIHRyYW5zZm9ybWVyXG4gKi9cbmNvbnN0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciA9IChzaWRlID0gJycpID0+ICh7XG4gIG9uRW5kUmVzdWx0KGVuZFJlc3VsdCkge1xuICAgIGlmIChzaWRlID09PSAnJykge1xuICAgICAgcmV0dXJuIGVuZFJlc3VsdC50cmltKCk7XG4gICAgfVxuXG4gICAgc2lkZSA9IHNpZGUudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChzaWRlID09PSAnc3RhcnQnIHx8IHNpZGUgPT09ICdsZWZ0Jykge1xuICAgICAgcmV0dXJuIGVuZFJlc3VsdC5yZXBsYWNlKC9eXFxzKi8sICcnKTtcbiAgICB9XG5cbiAgICBpZiAoc2lkZSA9PT0gJ2VuZCcgfHwgc2lkZSA9PT0gJ3JpZ2h0Jykge1xuICAgICAgcmV0dXJuIGVuZFJlc3VsdC5yZXBsYWNlKC9cXHMqJC8sICcnKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFNpZGUgbm90IHN1cHBvcnRlZDogJHtzaWRlfWApO1xuICB9LFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lcjtcbiJdfQ==","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * strips indentation from a template literal\n * @param {String} type = 'initial' - whether to remove all indentation or just leading indentation. can be 'all' or 'initial'\n * @return {Object} - a TemplateTag transformer\n */\nvar stripIndentTransformer = function stripIndentTransformer() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initial';\n return {\n onEndResult: function onEndResult(endResult) {\n if (type === 'initial') {\n // remove the shortest leading indentation from each line\n var match = endResult.match(/^[^\\S\\n]*(?=\\S)/gm);\n var indent = match && Math.min.apply(Math, _toConsumableArray(match.map(function (el) {\n return el.length;\n })));\n if (indent) {\n var regexp = new RegExp('^.{' + indent + '}', 'gm');\n return endResult.replace(regexp, '');\n }\n return endResult;\n }\n if (type === 'all') {\n // remove all indentation from each line\n return endResult.replace(/^[^\\S\\n]+/gm, '');\n }\n throw new Error('Unknown type: ' + type);\n }\n };\n};\n\nexport default stripIndentTransformer;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJpcEluZGVudFRyYW5zZm9ybWVyL3N0cmlwSW5kZW50VHJhbnNmb3JtZXIuanMiXSwibmFtZXMiOlsic3RyaXBJbmRlbnRUcmFuc2Zvcm1lciIsInR5cGUiLCJvbkVuZFJlc3VsdCIsImVuZFJlc3VsdCIsIm1hdGNoIiwiaW5kZW50IiwiTWF0aCIsIm1pbiIsIm1hcCIsImVsIiwibGVuZ3RoIiwicmVnZXhwIiwiUmVnRXhwIiwicmVwbGFjZSIsIkVycm9yIl0sIm1hcHBpbmdzIjoiOztBQUFBOzs7OztBQUtBLElBQU1BLHlCQUF5QixTQUF6QkEsc0JBQXlCO0FBQUEsTUFBQ0MsSUFBRCx1RUFBUSxTQUFSO0FBQUEsU0FBdUI7QUFDcERDLGVBRG9ELHVCQUN4Q0MsU0FEd0MsRUFDN0I7QUFDckIsVUFBSUYsU0FBUyxTQUFiLEVBQXdCO0FBQ3RCO0FBQ0EsWUFBTUcsUUFBUUQsVUFBVUMsS0FBVixDQUFnQixtQkFBaEIsQ0FBZDtBQUNBLFlBQU1DLFNBQVNELFNBQVNFLEtBQUtDLEdBQUwsZ0NBQVlILE1BQU1JLEdBQU4sQ0FBVTtBQUFBLGlCQUFNQyxHQUFHQyxNQUFUO0FBQUEsU0FBVixDQUFaLEVBQXhCO0FBQ0EsWUFBSUwsTUFBSixFQUFZO0FBQ1YsY0FBTU0sU0FBUyxJQUFJQyxNQUFKLFNBQWlCUCxNQUFqQixRQUE0QixJQUE1QixDQUFmO0FBQ0EsaUJBQU9GLFVBQVVVLE9BQVYsQ0FBa0JGLE1BQWxCLEVBQTBCLEVBQTFCLENBQVA7QUFDRDtBQUNELGVBQU9SLFNBQVA7QUFDRDtBQUNELFVBQUlGLFNBQVMsS0FBYixFQUFvQjtBQUNsQjtBQUNBLGVBQU9FLFVBQVVVLE9BQVYsQ0FBa0IsYUFBbEIsRUFBaUMsRUFBakMsQ0FBUDtBQUNEO0FBQ0QsWUFBTSxJQUFJQyxLQUFKLG9CQUEyQmIsSUFBM0IsQ0FBTjtBQUNEO0FBakJtRCxHQUF2QjtBQUFBLENBQS9COztBQW9CQSxlQUFlRCxzQkFBZiIsImZpbGUiOiJzdHJpcEluZGVudFRyYW5zZm9ybWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBzdHJpcHMgaW5kZW50YXRpb24gZnJvbSBhIHRlbXBsYXRlIGxpdGVyYWxcbiAqIEBwYXJhbSAge1N0cmluZ30gdHlwZSA9ICdpbml0aWFsJyAtIHdoZXRoZXIgdG8gcmVtb3ZlIGFsbCBpbmRlbnRhdGlvbiBvciBqdXN0IGxlYWRpbmcgaW5kZW50YXRpb24uIGNhbiBiZSAnYWxsJyBvciAnaW5pdGlhbCdcbiAqIEByZXR1cm4ge09iamVjdH0gICAgICAgICAgICAgICAgICAtIGEgVGVtcGxhdGVUYWcgdHJhbnNmb3JtZXJcbiAqL1xuY29uc3Qgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lciA9ICh0eXBlID0gJ2luaXRpYWwnKSA9PiAoe1xuICBvbkVuZFJlc3VsdChlbmRSZXN1bHQpIHtcbiAgICBpZiAodHlwZSA9PT0gJ2luaXRpYWwnKSB7XG4gICAgICAvLyByZW1vdmUgdGhlIHNob3J0ZXN0IGxlYWRpbmcgaW5kZW50YXRpb24gZnJvbSBlYWNoIGxpbmVcbiAgICAgIGNvbnN0IG1hdGNoID0gZW5kUmVzdWx0Lm1hdGNoKC9eW15cXFNcXG5dKig/PVxcUykvZ20pO1xuICAgICAgY29uc3QgaW5kZW50ID0gbWF0Y2ggJiYgTWF0aC5taW4oLi4ubWF0Y2gubWFwKGVsID0+IGVsLmxlbmd0aCkpO1xuICAgICAgaWYgKGluZGVudCkge1xuICAgICAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKGBeLnske2luZGVudH19YCwgJ2dtJyk7XG4gICAgICAgIHJldHVybiBlbmRSZXN1bHQucmVwbGFjZShyZWdleHAsICcnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlbmRSZXN1bHQ7XG4gICAgfVxuICAgIGlmICh0eXBlID09PSAnYWxsJykge1xuICAgICAgLy8gcmVtb3ZlIGFsbCBpbmRlbnRhdGlvbiBmcm9tIGVhY2ggbGluZVxuICAgICAgcmV0dXJuIGVuZFJlc3VsdC5yZXBsYWNlKC9eW15cXFNcXG5dKy9nbSwgJycpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdHlwZTogJHt0eXBlfWApO1xuICB9LFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHN0cmlwSW5kZW50VHJhbnNmb3JtZXI7XG4iXX0=","/**\n * Replaces tabs, newlines and spaces with the chosen value when they occur in sequences\n * @param {(String|RegExp)} replaceWhat - the value or pattern that should be replaced\n * @param {*} replaceWith - the replacement value\n * @return {Object} - a TemplateTag transformer\n */\nvar replaceResultTransformer = function replaceResultTransformer(replaceWhat, replaceWith) {\n return {\n onEndResult: function onEndResult(endResult) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceResultTransformer requires at least 2 arguments.');\n }\n return endResult.replace(replaceWhat, replaceWith);\n }\n };\n};\n\nexport default replaceResultTransformer;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIvcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyLmpzIl0sIm5hbWVzIjpbInJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciIsInJlcGxhY2VXaGF0IiwicmVwbGFjZVdpdGgiLCJvbkVuZFJlc3VsdCIsImVuZFJlc3VsdCIsIkVycm9yIiwicmVwbGFjZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztBQU1BLElBQU1BLDJCQUEyQixTQUEzQkEsd0JBQTJCLENBQUNDLFdBQUQsRUFBY0MsV0FBZDtBQUFBLFNBQStCO0FBQzlEQyxlQUQ4RCx1QkFDbERDLFNBRGtELEVBQ3ZDO0FBQ3JCLFVBQUlILGVBQWUsSUFBZixJQUF1QkMsZUFBZSxJQUExQyxFQUFnRDtBQUM5QyxjQUFNLElBQUlHLEtBQUosQ0FDSix5REFESSxDQUFOO0FBR0Q7QUFDRCxhQUFPRCxVQUFVRSxPQUFWLENBQWtCTCxXQUFsQixFQUErQkMsV0FBL0IsQ0FBUDtBQUNEO0FBUjZELEdBQS9CO0FBQUEsQ0FBakM7O0FBV0EsZUFBZUYsd0JBQWYiLCJmaWxlIjoicmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXBsYWNlcyB0YWJzLCBuZXdsaW5lcyBhbmQgc3BhY2VzIHdpdGggdGhlIGNob3NlbiB2YWx1ZSB3aGVuIHRoZXkgb2NjdXIgaW4gc2VxdWVuY2VzXG4gKiBAcGFyYW0gIHsoU3RyaW5nfFJlZ0V4cCl9IHJlcGxhY2VXaGF0IC0gdGhlIHZhbHVlIG9yIHBhdHRlcm4gdGhhdCBzaG91bGQgYmUgcmVwbGFjZWRcbiAqIEBwYXJhbSAgeyp9ICAgICAgICAgICAgICAgcmVwbGFjZVdpdGggLSB0aGUgcmVwbGFjZW1lbnQgdmFsdWVcbiAqIEByZXR1cm4ge09iamVjdH0gICAgICAgICAgICAgICAgICAgICAgLSBhIFRlbXBsYXRlVGFnIHRyYW5zZm9ybWVyXG4gKi9cbmNvbnN0IHJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciA9IChyZXBsYWNlV2hhdCwgcmVwbGFjZVdpdGgpID0+ICh7XG4gIG9uRW5kUmVzdWx0KGVuZFJlc3VsdCkge1xuICAgIGlmIChyZXBsYWNlV2hhdCA9PSBudWxsIHx8IHJlcGxhY2VXaXRoID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ3JlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciByZXF1aXJlcyBhdCBsZWFzdCAyIGFyZ3VtZW50cy4nLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGVuZFJlc3VsdC5yZXBsYWNlKHJlcGxhY2VXaGF0LCByZXBsYWNlV2l0aCk7XG4gIH0sXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyO1xuIl19","var replaceSubstitutionTransformer = function replaceSubstitutionTransformer(replaceWhat, replaceWith) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceSubstitutionTransformer requires at least 2 arguments.');\n }\n\n // Do not touch if null or undefined\n if (substitution == null) {\n return substitution;\n } else {\n return substitution.toString().replace(replaceWhat, replaceWith);\n }\n }\n };\n};\n\nexport default replaceSubstitutionTransformer;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXIvcmVwbGFjZVN1YnN0aXR1dGlvblRyYW5zZm9ybWVyLmpzIl0sIm5hbWVzIjpbInJlcGxhY2VTdWJzdGl0dXRpb25UcmFuc2Zvcm1lciIsInJlcGxhY2VXaGF0IiwicmVwbGFjZVdpdGgiLCJvblN1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvbiIsInJlc3VsdFNvRmFyIiwiRXJyb3IiLCJ0b1N0cmluZyIsInJlcGxhY2UiXSwibWFwcGluZ3MiOiJBQUFBLElBQU1BLGlDQUFpQyxTQUFqQ0EsOEJBQWlDLENBQUNDLFdBQUQsRUFBY0MsV0FBZDtBQUFBLFNBQStCO0FBQ3BFQyxrQkFEb0UsMEJBQ3JEQyxZQURxRCxFQUN2Q0MsV0FEdUMsRUFDMUI7QUFDeEMsVUFBSUosZUFBZSxJQUFmLElBQXVCQyxlQUFlLElBQTFDLEVBQWdEO0FBQzlDLGNBQU0sSUFBSUksS0FBSixDQUNKLCtEQURJLENBQU47QUFHRDs7QUFFRDtBQUNBLFVBQUlGLGdCQUFnQixJQUFwQixFQUEwQjtBQUN4QixlQUFPQSxZQUFQO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsZUFBT0EsYUFBYUcsUUFBYixHQUF3QkMsT0FBeEIsQ0FBZ0NQLFdBQWhDLEVBQTZDQyxXQUE3QyxDQUFQO0FBQ0Q7QUFDRjtBQWRtRSxHQUEvQjtBQUFBLENBQXZDOztBQWlCQSxlQUFlRiw4QkFBZiIsImZpbGUiOiJyZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCByZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXIgPSAocmVwbGFjZVdoYXQsIHJlcGxhY2VXaXRoKSA9PiAoe1xuICBvblN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIHJlc3VsdFNvRmFyKSB7XG4gICAgaWYgKHJlcGxhY2VXaGF0ID09IG51bGwgfHwgcmVwbGFjZVdpdGggPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAncmVwbGFjZVN1YnN0aXR1dGlvblRyYW5zZm9ybWVyIHJlcXVpcmVzIGF0IGxlYXN0IDIgYXJndW1lbnRzLicsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIERvIG5vdCB0b3VjaCBpZiBudWxsIG9yIHVuZGVmaW5lZFxuICAgIGlmIChzdWJzdGl0dXRpb24gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHN1YnN0aXR1dGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHN1YnN0aXR1dGlvbi50b1N0cmluZygpLnJlcGxhY2UocmVwbGFjZVdoYXQsIHJlcGxhY2VXaXRoKTtcbiAgICB9XG4gIH0sXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgcmVwbGFjZVN1YnN0aXR1dGlvblRyYW5zZm9ybWVyO1xuIl19","var defaults = {\n separator: '',\n conjunction: '',\n serial: false\n};\n\n/**\n * Converts an array substitution to a string containing a list\n * @param {String} [opts.separator = ''] - the character that separates each item\n * @param {String} [opts.conjunction = ''] - replace the last separator with this\n * @param {Boolean} [opts.serial = false] - include the separator before the conjunction? (Oxford comma use-case)\n *\n * @return {Object} - a TemplateTag transformer\n */\nvar inlineArrayTransformer = function inlineArrayTransformer() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults;\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n // only operate on arrays\n if (Array.isArray(substitution)) {\n var arrayLength = substitution.length;\n var separator = opts.separator;\n var conjunction = opts.conjunction;\n var serial = opts.serial;\n // join each item in the array into a string where each item is separated by separator\n // be sure to maintain indentation\n var indent = resultSoFar.match(/(\\n?[^\\S\\n]+)$/);\n if (indent) {\n substitution = substitution.join(separator + indent[1]);\n } else {\n substitution = substitution.join(separator + ' ');\n }\n // if conjunction is set, replace the last separator with conjunction, but only if there is more than one substitution\n if (conjunction && arrayLength > 1) {\n var separatorIndex = substitution.lastIndexOf(separator);\n substitution = substitution.slice(0, separatorIndex) + (serial ? separator : '') + ' ' + conjunction + substitution.slice(separatorIndex + 1);\n }\n }\n return substitution;\n }\n };\n};\n\nexport default inlineArrayTransformer;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmxpbmVBcnJheVRyYW5zZm9ybWVyL2lubGluZUFycmF5VHJhbnNmb3JtZXIuanMiXSwibmFtZXMiOlsiZGVmYXVsdHMiLCJzZXBhcmF0b3IiLCJjb25qdW5jdGlvbiIsInNlcmlhbCIsImlubGluZUFycmF5VHJhbnNmb3JtZXIiLCJvcHRzIiwib25TdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb24iLCJyZXN1bHRTb0ZhciIsIkFycmF5IiwiaXNBcnJheSIsImFycmF5TGVuZ3RoIiwibGVuZ3RoIiwiaW5kZW50IiwibWF0Y2giLCJqb2luIiwic2VwYXJhdG9ySW5kZXgiLCJsYXN0SW5kZXhPZiIsInNsaWNlIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFNQSxXQUFXO0FBQ2ZDLGFBQVcsRUFESTtBQUVmQyxlQUFhLEVBRkU7QUFHZkMsVUFBUTtBQUhPLENBQWpCOztBQU1BOzs7Ozs7OztBQVFBLElBQU1DLHlCQUF5QixTQUF6QkEsc0JBQXlCO0FBQUEsTUFBQ0MsSUFBRCx1RUFBUUwsUUFBUjtBQUFBLFNBQXNCO0FBQ25ETSxrQkFEbUQsMEJBQ3BDQyxZQURvQyxFQUN0QkMsV0FEc0IsRUFDVDtBQUN4QztBQUNBLFVBQUlDLE1BQU1DLE9BQU4sQ0FBY0gsWUFBZCxDQUFKLEVBQWlDO0FBQy9CLFlBQU1JLGNBQWNKLGFBQWFLLE1BQWpDO0FBQ0EsWUFBTVgsWUFBWUksS0FBS0osU0FBdkI7QUFDQSxZQUFNQyxjQUFjRyxLQUFLSCxXQUF6QjtBQUNBLFlBQU1DLFNBQVNFLEtBQUtGLE1BQXBCO0FBQ0E7QUFDQTtBQUNBLFlBQU1VLFNBQVNMLFlBQVlNLEtBQVosQ0FBa0IsZ0JBQWxCLENBQWY7QUFDQSxZQUFJRCxNQUFKLEVBQVk7QUFDVk4seUJBQWVBLGFBQWFRLElBQWIsQ0FBa0JkLFlBQVlZLE9BQU8sQ0FBUCxDQUE5QixDQUFmO0FBQ0QsU0FGRCxNQUVPO0FBQ0xOLHlCQUFlQSxhQUFhUSxJQUFiLENBQWtCZCxZQUFZLEdBQTlCLENBQWY7QUFDRDtBQUNEO0FBQ0EsWUFBSUMsZUFBZVMsY0FBYyxDQUFqQyxFQUFvQztBQUNsQyxjQUFNSyxpQkFBaUJULGFBQWFVLFdBQWIsQ0FBeUJoQixTQUF6QixDQUF2QjtBQUNBTSx5QkFDRUEsYUFBYVcsS0FBYixDQUFtQixDQUFuQixFQUFzQkYsY0FBdEIsS0FDQ2IsU0FBU0YsU0FBVCxHQUFxQixFQUR0QixJQUVBLEdBRkEsR0FHQUMsV0FIQSxHQUlBSyxhQUFhVyxLQUFiLENBQW1CRixpQkFBaUIsQ0FBcEMsQ0FMRjtBQU1EO0FBQ0Y7QUFDRCxhQUFPVCxZQUFQO0FBQ0Q7QUE1QmtELEdBQXRCO0FBQUEsQ0FBL0I7O0FBK0JBLGVBQWVILHNCQUFmIiwiZmlsZSI6ImlubGluZUFycmF5VHJhbnNmb3JtZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBkZWZhdWx0cyA9IHtcbiAgc2VwYXJhdG9yOiAnJyxcbiAgY29uanVuY3Rpb246ICcnLFxuICBzZXJpYWw6IGZhbHNlLFxufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBhcnJheSBzdWJzdGl0dXRpb24gdG8gYSBzdHJpbmcgY29udGFpbmluZyBhIGxpc3RcbiAqIEBwYXJhbSAge1N0cmluZ30gW29wdHMuc2VwYXJhdG9yID0gJyddIC0gdGhlIGNoYXJhY3RlciB0aGF0IHNlcGFyYXRlcyBlYWNoIGl0ZW1cbiAqIEBwYXJhbSAge1N0cmluZ30gW29wdHMuY29uanVuY3Rpb24gPSAnJ10gIC0gcmVwbGFjZSB0aGUgbGFzdCBzZXBhcmF0b3Igd2l0aCB0aGlzXG4gKiBAcGFyYW0gIHtCb29sZWFufSBbb3B0cy5zZXJpYWwgPSBmYWxzZV0gLSBpbmNsdWRlIHRoZSBzZXBhcmF0b3IgYmVmb3JlIHRoZSBjb25qdW5jdGlvbj8gKE94Zm9yZCBjb21tYSB1c2UtY2FzZSlcbiAqXG4gKiBAcmV0dXJuIHtPYmplY3R9ICAgICAgICAgICAgICAgICAgICAgLSBhIFRlbXBsYXRlVGFnIHRyYW5zZm9ybWVyXG4gKi9cbmNvbnN0IGlubGluZUFycmF5VHJhbnNmb3JtZXIgPSAob3B0cyA9IGRlZmF1bHRzKSA9PiAoe1xuICBvblN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIHJlc3VsdFNvRmFyKSB7XG4gICAgLy8gb25seSBvcGVyYXRlIG9uIGFycmF5c1xuICAgIGlmIChBcnJheS5pc0FycmF5KHN1YnN0aXR1dGlvbikpIHtcbiAgICAgIGNvbnN0IGFycmF5TGVuZ3RoID0gc3Vic3RpdHV0aW9uLmxlbmd0aDtcbiAgICAgIGNvbnN0IHNlcGFyYXRvciA9IG9wdHMuc2VwYXJhdG9yO1xuICAgICAgY29uc3QgY29uanVuY3Rpb24gPSBvcHRzLmNvbmp1bmN0aW9uO1xuICAgICAgY29uc3Qgc2VyaWFsID0gb3B0cy5zZXJpYWw7XG4gICAgICAvLyBqb2luIGVhY2ggaXRlbSBpbiB0aGUgYXJyYXkgaW50byBhIHN0cmluZyB3aGVyZSBlYWNoIGl0ZW0gaXMgc2VwYXJhdGVkIGJ5IHNlcGFyYXRvclxuICAgICAgLy8gYmUgc3VyZSB0byBtYWludGFpbiBpbmRlbnRhdGlvblxuICAgICAgY29uc3QgaW5kZW50ID0gcmVzdWx0U29GYXIubWF0Y2goLyhcXG4/W15cXFNcXG5dKykkLyk7XG4gICAgICBpZiAoaW5kZW50KSB7XG4gICAgICAgIHN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbi5qb2luKHNlcGFyYXRvciArIGluZGVudFsxXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb24uam9pbihzZXBhcmF0b3IgKyAnICcpO1xuICAgICAgfVxuICAgICAgLy8gaWYgY29uanVuY3Rpb24gaXMgc2V0LCByZXBsYWNlIHRoZSBsYXN0IHNlcGFyYXRvciB3aXRoIGNvbmp1bmN0aW9uLCBidXQgb25seSBpZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHN1YnN0aXR1dGlvblxuICAgICAgaWYgKGNvbmp1bmN0aW9uICYmIGFycmF5TGVuZ3RoID4gMSkge1xuICAgICAgICBjb25zdCBzZXBhcmF0b3JJbmRleCA9IHN1YnN0aXR1dGlvbi5sYXN0SW5kZXhPZihzZXBhcmF0b3IpO1xuICAgICAgICBzdWJzdGl0dXRpb24gPVxuICAgICAgICAgIHN1YnN0aXR1dGlvbi5zbGljZSgwLCBzZXBhcmF0b3JJbmRleCkgK1xuICAgICAgICAgIChzZXJpYWwgPyBzZXBhcmF0b3IgOiAnJykgK1xuICAgICAgICAgICcgJyArXG4gICAgICAgICAgY29uanVuY3Rpb24gK1xuICAgICAgICAgIHN1YnN0aXR1dGlvbi5zbGljZShzZXBhcmF0b3JJbmRleCArIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uO1xuICB9LFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGlubGluZUFycmF5VHJhbnNmb3JtZXI7XG4iXX0=","var splitStringTransformer = function splitStringTransformer(splitBy) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (splitBy != null && typeof splitBy === 'string') {\n if (typeof substitution === 'string' && substitution.includes(splitBy)) {\n substitution = substitution.split(splitBy);\n }\n } else {\n throw new Error('You need to specify a string character to split by.');\n }\n return substitution;\n }\n };\n};\n\nexport default splitStringTransformer;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGxpdFN0cmluZ1RyYW5zZm9ybWVyL3NwbGl0U3RyaW5nVHJhbnNmb3JtZXIuanMiXSwibmFtZXMiOlsic3BsaXRTdHJpbmdUcmFuc2Zvcm1lciIsIm9uU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uIiwicmVzdWx0U29GYXIiLCJzcGxpdEJ5IiwiaW5jbHVkZXMiLCJzcGxpdCIsIkVycm9yIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFNQSx5QkFBeUIsU0FBekJBLHNCQUF5QjtBQUFBLFNBQVk7QUFDekNDLGtCQUR5QywwQkFDMUJDLFlBRDBCLEVBQ1pDLFdBRFksRUFDQztBQUN4QyxVQUFJQyxXQUFXLElBQVgsSUFBbUIsT0FBT0EsT0FBUCxLQUFtQixRQUExQyxFQUFvRDtBQUNsRCxZQUFJLE9BQU9GLFlBQVAsS0FBd0IsUUFBeEIsSUFBb0NBLGFBQWFHLFFBQWIsQ0FBc0JELE9BQXRCLENBQXhDLEVBQXdFO0FBQ3RFRix5QkFBZUEsYUFBYUksS0FBYixDQUFtQkYsT0FBbkIsQ0FBZjtBQUNEO0FBQ0YsT0FKRCxNQUlPO0FBQ0wsY0FBTSxJQUFJRyxLQUFKLENBQVUscURBQVYsQ0FBTjtBQUNEO0FBQ0QsYUFBT0wsWUFBUDtBQUNEO0FBVndDLEdBQVo7QUFBQSxDQUEvQjs7QUFhQSxlQUFlRixzQkFBZiIsImZpbGUiOiJzcGxpdFN0cmluZ1RyYW5zZm9ybWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgc3BsaXRTdHJpbmdUcmFuc2Zvcm1lciA9IHNwbGl0QnkgPT4gKHtcbiAgb25TdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCByZXN1bHRTb0Zhcikge1xuICAgIGlmIChzcGxpdEJ5ICE9IG51bGwgJiYgdHlwZW9mIHNwbGl0QnkgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAodHlwZW9mIHN1YnN0aXR1dGlvbiA9PT0gJ3N0cmluZycgJiYgc3Vic3RpdHV0aW9uLmluY2x1ZGVzKHNwbGl0QnkpKSB7XG4gICAgICAgIHN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbi5zcGxpdChzcGxpdEJ5KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbmVlZCB0byBzcGVjaWZ5IGEgc3RyaW5nIGNoYXJhY3RlciB0byBzcGxpdCBieS4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbjtcbiAgfSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBzcGxpdFN0cmluZ1RyYW5zZm9ybWVyO1xuIl19","var isValidValue = function isValidValue(x) {\n return x != null && !Number.isNaN(x) && typeof x !== 'boolean';\n};\n\nvar removeNonPrintingValuesTransformer = function removeNonPrintingValuesTransformer() {\n return {\n onSubstitution: function onSubstitution(substitution) {\n if (Array.isArray(substitution)) {\n return substitution.filter(isValidValue);\n }\n if (isValidValue(substitution)) {\n return substitution;\n }\n return '';\n }\n };\n};\n\nexport default removeNonPrintingValuesTransformer;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZW1vdmVOb25QcmludGluZ1ZhbHVlc1RyYW5zZm9ybWVyL3JlbW92ZU5vblByaW50aW5nVmFsdWVzVHJhbnNmb3JtZXIuanMiXSwibmFtZXMiOlsiaXNWYWxpZFZhbHVlIiwieCIsIk51bWJlciIsImlzTmFOIiwicmVtb3ZlTm9uUHJpbnRpbmdWYWx1ZXNUcmFuc2Zvcm1lciIsIm9uU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwiZmlsdGVyIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFNQSxlQUFlLFNBQWZBLFlBQWU7QUFBQSxTQUNuQkMsS0FBSyxJQUFMLElBQWEsQ0FBQ0MsT0FBT0MsS0FBUCxDQUFhRixDQUFiLENBQWQsSUFBaUMsT0FBT0EsQ0FBUCxLQUFhLFNBRDNCO0FBQUEsQ0FBckI7O0FBR0EsSUFBTUcscUNBQXFDLFNBQXJDQSxrQ0FBcUM7QUFBQSxTQUFPO0FBQ2hEQyxrQkFEZ0QsMEJBQ2pDQyxZQURpQyxFQUNuQjtBQUMzQixVQUFJQyxNQUFNQyxPQUFOLENBQWNGLFlBQWQsQ0FBSixFQUFpQztBQUMvQixlQUFPQSxhQUFhRyxNQUFiLENBQW9CVCxZQUFwQixDQUFQO0FBQ0Q7QUFDRCxVQUFJQSxhQUFhTSxZQUFiLENBQUosRUFBZ0M7QUFDOUIsZUFBT0EsWUFBUDtBQUNEO0FBQ0QsYUFBTyxFQUFQO0FBQ0Q7QUFUK0MsR0FBUDtBQUFBLENBQTNDOztBQVlBLGVBQWVGLGtDQUFmIiwiZmlsZSI6InJlbW92ZU5vblByaW50aW5nVmFsdWVzVHJhbnNmb3JtZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc1ZhbGlkVmFsdWUgPSB4ID0+XG4gIHggIT0gbnVsbCAmJiAhTnVtYmVyLmlzTmFOKHgpICYmIHR5cGVvZiB4ICE9PSAnYm9vbGVhbic7XG5cbmNvbnN0IHJlbW92ZU5vblByaW50aW5nVmFsdWVzVHJhbnNmb3JtZXIgPSAoKSA9PiAoe1xuICBvblN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24pIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShzdWJzdGl0dXRpb24pKSB7XG4gICAgICByZXR1cm4gc3Vic3RpdHV0aW9uLmZpbHRlcihpc1ZhbGlkVmFsdWUpO1xuICAgIH1cbiAgICBpZiAoaXNWYWxpZFZhbHVlKHN1YnN0aXR1dGlvbikpIHtcbiAgICAgIHJldHVybiBzdWJzdGl0dXRpb247XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCByZW1vdmVOb25QcmludGluZ1ZhbHVlc1RyYW5zZm9ybWVyO1xuIl19","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\n\nvar commaLists = new TemplateTag(inlineArrayTransformer({ separator: ',' }), stripIndentTransformer, trimResultTransformer);\n\nexport default commaLists;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYUxpc3RzL2NvbW1hTGlzdHMuanMiXSwibmFtZXMiOlsiVGVtcGxhdGVUYWciLCJzdHJpcEluZGVudFRyYW5zZm9ybWVyIiwiaW5saW5lQXJyYXlUcmFuc2Zvcm1lciIsInRyaW1SZXN1bHRUcmFuc2Zvcm1lciIsImNvbW1hTGlzdHMiLCJzZXBhcmF0b3IiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFdBQVAsTUFBd0IsZ0JBQXhCO0FBQ0EsT0FBT0Msc0JBQVAsTUFBbUMsMkJBQW5DO0FBQ0EsT0FBT0Msc0JBQVAsTUFBbUMsMkJBQW5DO0FBQ0EsT0FBT0MscUJBQVAsTUFBa0MsMEJBQWxDOztBQUVBLElBQU1DLGFBQWEsSUFBSUosV0FBSixDQUNqQkUsdUJBQXVCLEVBQUVHLFdBQVcsR0FBYixFQUF2QixDQURpQixFQUVqQkosc0JBRmlCLEVBR2pCRSxxQkFIaUIsQ0FBbkI7O0FBTUEsZUFBZUMsVUFBZiIsImZpbGUiOiJjb21tYUxpc3RzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRlbXBsYXRlVGFnIGZyb20gJy4uL1RlbXBsYXRlVGFnJztcbmltcG9ydCBzdHJpcEluZGVudFRyYW5zZm9ybWVyIGZyb20gJy4uL3N0cmlwSW5kZW50VHJhbnNmb3JtZXInO1xuaW1wb3J0IGlubGluZUFycmF5VHJhbnNmb3JtZXIgZnJvbSAnLi4vaW5saW5lQXJyYXlUcmFuc2Zvcm1lcic7XG5pbXBvcnQgdHJpbVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3RyaW1SZXN1bHRUcmFuc2Zvcm1lcic7XG5cbmNvbnN0IGNvbW1hTGlzdHMgPSBuZXcgVGVtcGxhdGVUYWcoXG4gIGlubGluZUFycmF5VHJhbnNmb3JtZXIoeyBzZXBhcmF0b3I6ICcsJyB9KSxcbiAgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcixcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFMaXN0cztcbiJdfQ==","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\n\nvar commaListsAnd = new TemplateTag(inlineArrayTransformer({ separator: ',', conjunction: 'and' }), stripIndentTransformer, trimResultTransformer);\n\nexport default commaListsAnd;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYUxpc3RzQW5kL2NvbW1hTGlzdHNBbmQuanMiXSwibmFtZXMiOlsiVGVtcGxhdGVUYWciLCJzdHJpcEluZGVudFRyYW5zZm9ybWVyIiwiaW5saW5lQXJyYXlUcmFuc2Zvcm1lciIsInRyaW1SZXN1bHRUcmFuc2Zvcm1lciIsImNvbW1hTGlzdHNBbmQiLCJzZXBhcmF0b3IiLCJjb25qdW5jdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBUCxNQUF3QixnQkFBeEI7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxxQkFBUCxNQUFrQywwQkFBbEM7O0FBRUEsSUFBTUMsZ0JBQWdCLElBQUlKLFdBQUosQ0FDcEJFLHVCQUF1QixFQUFFRyxXQUFXLEdBQWIsRUFBa0JDLGFBQWEsS0FBL0IsRUFBdkIsQ0FEb0IsRUFFcEJMLHNCQUZvQixFQUdwQkUscUJBSG9CLENBQXRCOztBQU1BLGVBQWVDLGFBQWYiLCJmaWxlIjoiY29tbWFMaXN0c0FuZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lciBmcm9tICcuLi9zdHJpcEluZGVudFRyYW5zZm9ybWVyJztcbmltcG9ydCBpbmxpbmVBcnJheVRyYW5zZm9ybWVyIGZyb20gJy4uL2lubGluZUFycmF5VHJhbnNmb3JtZXInO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuXG5jb25zdCBjb21tYUxpc3RzQW5kID0gbmV3IFRlbXBsYXRlVGFnKFxuICBpbmxpbmVBcnJheVRyYW5zZm9ybWVyKHsgc2VwYXJhdG9yOiAnLCcsIGNvbmp1bmN0aW9uOiAnYW5kJyB9KSxcbiAgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcixcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFMaXN0c0FuZDtcbiJdfQ==","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\n\nvar commaListsOr = new TemplateTag(inlineArrayTransformer({ separator: ',', conjunction: 'or' }), stripIndentTransformer, trimResultTransformer);\n\nexport default commaListsOr;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYUxpc3RzT3IvY29tbWFMaXN0c09yLmpzIl0sIm5hbWVzIjpbIlRlbXBsYXRlVGFnIiwic3RyaXBJbmRlbnRUcmFuc2Zvcm1lciIsImlubGluZUFycmF5VHJhbnNmb3JtZXIiLCJ0cmltUmVzdWx0VHJhbnNmb3JtZXIiLCJjb21tYUxpc3RzT3IiLCJzZXBhcmF0b3IiLCJjb25qdW5jdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBUCxNQUF3QixnQkFBeEI7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxxQkFBUCxNQUFrQywwQkFBbEM7O0FBRUEsSUFBTUMsZUFBZSxJQUFJSixXQUFKLENBQ25CRSx1QkFBdUIsRUFBRUcsV0FBVyxHQUFiLEVBQWtCQyxhQUFhLElBQS9CLEVBQXZCLENBRG1CLEVBRW5CTCxzQkFGbUIsRUFHbkJFLHFCQUhtQixDQUFyQjs7QUFNQSxlQUFlQyxZQUFmIiwiZmlsZSI6ImNvbW1hTGlzdHNPci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lciBmcm9tICcuLi9zdHJpcEluZGVudFRyYW5zZm9ybWVyJztcbmltcG9ydCBpbmxpbmVBcnJheVRyYW5zZm9ybWVyIGZyb20gJy4uL2lubGluZUFycmF5VHJhbnNmb3JtZXInO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuXG5jb25zdCBjb21tYUxpc3RzT3IgPSBuZXcgVGVtcGxhdGVUYWcoXG4gIGlubGluZUFycmF5VHJhbnNmb3JtZXIoeyBzZXBhcmF0b3I6ICcsJywgY29uanVuY3Rpb246ICdvcicgfSksXG4gIHN0cmlwSW5kZW50VHJhbnNmb3JtZXIsXG4gIHRyaW1SZXN1bHRUcmFuc2Zvcm1lcixcbik7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hTGlzdHNPcjtcbiJdfQ==","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport splitStringTransformer from '../splitStringTransformer';\nimport removeNonPrintingValuesTransformer from '../removeNonPrintingValuesTransformer';\n\nvar html = new TemplateTag(splitStringTransformer('\\n'), removeNonPrintingValuesTransformer, inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);\n\nexport default html;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL2h0bWwuanMiXSwibmFtZXMiOlsiVGVtcGxhdGVUYWciLCJzdHJpcEluZGVudFRyYW5zZm9ybWVyIiwiaW5saW5lQXJyYXlUcmFuc2Zvcm1lciIsInRyaW1SZXN1bHRUcmFuc2Zvcm1lciIsInNwbGl0U3RyaW5nVHJhbnNmb3JtZXIiLCJyZW1vdmVOb25QcmludGluZ1ZhbHVlc1RyYW5zZm9ybWVyIiwiaHRtbCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBUCxNQUF3QixnQkFBeEI7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxxQkFBUCxNQUFrQywwQkFBbEM7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxrQ0FBUCxNQUErQyx1Q0FBL0M7O0FBRUEsSUFBTUMsT0FBTyxJQUFJTixXQUFKLENBQ1hJLHVCQUF1QixJQUF2QixDQURXLEVBRVhDLGtDQUZXLEVBR1hILHNCQUhXLEVBSVhELHNCQUpXLEVBS1hFLHFCQUxXLENBQWI7O0FBUUEsZUFBZUcsSUFBZiIsImZpbGUiOiJodG1sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRlbXBsYXRlVGFnIGZyb20gJy4uL1RlbXBsYXRlVGFnJztcbmltcG9ydCBzdHJpcEluZGVudFRyYW5zZm9ybWVyIGZyb20gJy4uL3N0cmlwSW5kZW50VHJhbnNmb3JtZXInO1xuaW1wb3J0IGlubGluZUFycmF5VHJhbnNmb3JtZXIgZnJvbSAnLi4vaW5saW5lQXJyYXlUcmFuc2Zvcm1lcic7XG5pbXBvcnQgdHJpbVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3RyaW1SZXN1bHRUcmFuc2Zvcm1lcic7XG5pbXBvcnQgc3BsaXRTdHJpbmdUcmFuc2Zvcm1lciBmcm9tICcuLi9zcGxpdFN0cmluZ1RyYW5zZm9ybWVyJztcbmltcG9ydCByZW1vdmVOb25QcmludGluZ1ZhbHVlc1RyYW5zZm9ybWVyIGZyb20gJy4uL3JlbW92ZU5vblByaW50aW5nVmFsdWVzVHJhbnNmb3JtZXInO1xuXG5jb25zdCBodG1sID0gbmV3IFRlbXBsYXRlVGFnKFxuICBzcGxpdFN0cmluZ1RyYW5zZm9ybWVyKCdcXG4nKSxcbiAgcmVtb3ZlTm9uUHJpbnRpbmdWYWx1ZXNUcmFuc2Zvcm1lcixcbiAgaW5saW5lQXJyYXlUcmFuc2Zvcm1lcixcbiAgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcixcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgaHRtbDtcbiJdfQ==","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport splitStringTransformer from '../splitStringTransformer';\nimport replaceSubstitutionTransformer from '../replaceSubstitutionTransformer';\n\nvar safeHtml = new TemplateTag(splitStringTransformer('\\n'), inlineArrayTransformer, stripIndentTransformer, trimResultTransformer, replaceSubstitutionTransformer(/&/g, '&amp;'), replaceSubstitutionTransformer(/</g, '&lt;'), replaceSubstitutionTransformer(/>/g, '&gt;'), replaceSubstitutionTransformer(/\"/g, '&quot;'), replaceSubstitutionTransformer(/'/g, '&#x27;'), replaceSubstitutionTransformer(/`/g, '&#x60;'));\n\nexport default safeHtml;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYWZlSHRtbC9zYWZlSHRtbC5qcyJdLCJuYW1lcyI6WyJUZW1wbGF0ZVRhZyIsInN0cmlwSW5kZW50VHJhbnNmb3JtZXIiLCJpbmxpbmVBcnJheVRyYW5zZm9ybWVyIiwidHJpbVJlc3VsdFRyYW5zZm9ybWVyIiwic3BsaXRTdHJpbmdUcmFuc2Zvcm1lciIsInJlcGxhY2VTdWJzdGl0dXRpb25UcmFuc2Zvcm1lciIsInNhZmVIdG1sIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFQLE1BQXdCLGdCQUF4QjtBQUNBLE9BQU9DLHNCQUFQLE1BQW1DLDJCQUFuQztBQUNBLE9BQU9DLHNCQUFQLE1BQW1DLDJCQUFuQztBQUNBLE9BQU9DLHFCQUFQLE1BQWtDLDBCQUFsQztBQUNBLE9BQU9DLHNCQUFQLE1BQW1DLDJCQUFuQztBQUNBLE9BQU9DLDhCQUFQLE1BQTJDLG1DQUEzQzs7QUFFQSxJQUFNQyxXQUFXLElBQUlOLFdBQUosQ0FDZkksdUJBQXVCLElBQXZCLENBRGUsRUFFZkYsc0JBRmUsRUFHZkQsc0JBSGUsRUFJZkUscUJBSmUsRUFLZkUsK0JBQStCLElBQS9CLEVBQXFDLE9BQXJDLENBTGUsRUFNZkEsK0JBQStCLElBQS9CLEVBQXFDLE1BQXJDLENBTmUsRUFPZkEsK0JBQStCLElBQS9CLEVBQXFDLE1BQXJDLENBUGUsRUFRZkEsK0JBQStCLElBQS9CLEVBQXFDLFFBQXJDLENBUmUsRUFTZkEsK0JBQStCLElBQS9CLEVBQXFDLFFBQXJDLENBVGUsRUFVZkEsK0JBQStCLElBQS9CLEVBQXFDLFFBQXJDLENBVmUsQ0FBakI7O0FBYUEsZUFBZUMsUUFBZiIsImZpbGUiOiJzYWZlSHRtbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lciBmcm9tICcuLi9zdHJpcEluZGVudFRyYW5zZm9ybWVyJztcbmltcG9ydCBpbmxpbmVBcnJheVRyYW5zZm9ybWVyIGZyb20gJy4uL2lubGluZUFycmF5VHJhbnNmb3JtZXInO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuaW1wb3J0IHNwbGl0U3RyaW5nVHJhbnNmb3JtZXIgZnJvbSAnLi4vc3BsaXRTdHJpbmdUcmFuc2Zvcm1lcic7XG5pbXBvcnQgcmVwbGFjZVN1YnN0aXR1dGlvblRyYW5zZm9ybWVyIGZyb20gJy4uL3JlcGxhY2VTdWJzdGl0dXRpb25UcmFuc2Zvcm1lcic7XG5cbmNvbnN0IHNhZmVIdG1sID0gbmV3IFRlbXBsYXRlVGFnKFxuICBzcGxpdFN0cmluZ1RyYW5zZm9ybWVyKCdcXG4nKSxcbiAgaW5saW5lQXJyYXlUcmFuc2Zvcm1lcixcbiAgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcixcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuICByZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXIoLyYvZywgJyZhbXA7JyksXG4gIHJlcGxhY2VTdWJzdGl0dXRpb25UcmFuc2Zvcm1lcigvPC9nLCAnJmx0OycpLFxuICByZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXIoLz4vZywgJyZndDsnKSxcbiAgcmVwbGFjZVN1YnN0aXR1dGlvblRyYW5zZm9ybWVyKC9cIi9nLCAnJnF1b3Q7JyksXG4gIHJlcGxhY2VTdWJzdGl0dXRpb25UcmFuc2Zvcm1lcigvJy9nLCAnJiN4Mjc7JyksXG4gIHJlcGxhY2VTdWJzdGl0dXRpb25UcmFuc2Zvcm1lcigvYC9nLCAnJiN4NjA7JyksXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBzYWZlSHRtbDtcbiJdfQ==","import TemplateTag from '../TemplateTag';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\n\nvar oneLine = new TemplateTag(replaceResultTransformer(/(?:\\n(?:\\s*))+/g, ' '), trimResultTransformer);\n\nexport default oneLine;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lL29uZUxpbmUuanMiXSwibmFtZXMiOlsiVGVtcGxhdGVUYWciLCJ0cmltUmVzdWx0VHJhbnNmb3JtZXIiLCJyZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIiLCJvbmVMaW5lIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFQLE1BQXdCLGdCQUF4QjtBQUNBLE9BQU9DLHFCQUFQLE1BQWtDLDBCQUFsQztBQUNBLE9BQU9DLHdCQUFQLE1BQXFDLDZCQUFyQzs7QUFFQSxJQUFNQyxVQUFVLElBQUlILFdBQUosQ0FDZEUseUJBQXlCLGlCQUF6QixFQUE0QyxHQUE1QyxDQURjLEVBRWRELHFCQUZjLENBQWhCOztBQUtBLGVBQWVFLE9BQWYiLCJmaWxlIjoib25lTGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgdHJpbVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3RyaW1SZXN1bHRUcmFuc2Zvcm1lcic7XG5pbXBvcnQgcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3JlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lcic7XG5cbmNvbnN0IG9uZUxpbmUgPSBuZXcgVGVtcGxhdGVUYWcoXG4gIHJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lcigvKD86XFxuKD86XFxzKikpKy9nLCAnICcpLFxuICB0cmltUmVzdWx0VHJhbnNmb3JtZXIsXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBvbmVMaW5lO1xuIl19","import TemplateTag from '../TemplateTag';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\n\nvar oneLineTrim = new TemplateTag(replaceResultTransformer(/(?:\\n\\s*)/g, ''), trimResultTransformer);\n\nexport default oneLineTrim;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lVHJpbS9vbmVMaW5lVHJpbS5qcyJdLCJuYW1lcyI6WyJUZW1wbGF0ZVRhZyIsInRyaW1SZXN1bHRUcmFuc2Zvcm1lciIsInJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciIsIm9uZUxpbmVUcmltIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFQLE1BQXdCLGdCQUF4QjtBQUNBLE9BQU9DLHFCQUFQLE1BQWtDLDBCQUFsQztBQUNBLE9BQU9DLHdCQUFQLE1BQXFDLDZCQUFyQzs7QUFFQSxJQUFNQyxjQUFjLElBQUlILFdBQUosQ0FDbEJFLHlCQUF5QixZQUF6QixFQUF1QyxFQUF2QyxDQURrQixFQUVsQkQscUJBRmtCLENBQXBCOztBQUtBLGVBQWVFLFdBQWYiLCJmaWxlIjoib25lTGluZVRyaW0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVGVtcGxhdGVUYWcgZnJvbSAnLi4vVGVtcGxhdGVUYWcnO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuaW1wb3J0IHJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi9yZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXInO1xuXG5jb25zdCBvbmVMaW5lVHJpbSA9IG5ldyBUZW1wbGF0ZVRhZyhcbiAgcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyKC8oPzpcXG5cXHMqKS9nLCAnJyksXG4gIHRyaW1SZXN1bHRUcmFuc2Zvcm1lcixcbik7XG5cbmV4cG9ydCBkZWZhdWx0IG9uZUxpbmVUcmltO1xuIl19","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\n\nvar oneLineCommaLists = new TemplateTag(inlineArrayTransformer({ separator: ',' }), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\n\nexport default oneLineCommaLists;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lQ29tbWFMaXN0cy9vbmVMaW5lQ29tbWFMaXN0cy5qcyJdLCJuYW1lcyI6WyJUZW1wbGF0ZVRhZyIsImlubGluZUFycmF5VHJhbnNmb3JtZXIiLCJ0cmltUmVzdWx0VHJhbnNmb3JtZXIiLCJyZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIiLCJvbmVMaW5lQ29tbWFMaXN0cyIsInNlcGFyYXRvciJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBUCxNQUF3QixnQkFBeEI7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxxQkFBUCxNQUFrQywwQkFBbEM7QUFDQSxPQUFPQyx3QkFBUCxNQUFxQyw2QkFBckM7O0FBRUEsSUFBTUMsb0JBQW9CLElBQUlKLFdBQUosQ0FDeEJDLHVCQUF1QixFQUFFSSxXQUFXLEdBQWIsRUFBdkIsQ0FEd0IsRUFFeEJGLHlCQUF5QixVQUF6QixFQUFxQyxHQUFyQyxDQUZ3QixFQUd4QkQscUJBSHdCLENBQTFCOztBQU1BLGVBQWVFLGlCQUFmIiwiZmlsZSI6Im9uZUxpbmVDb21tYUxpc3RzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRlbXBsYXRlVGFnIGZyb20gJy4uL1RlbXBsYXRlVGFnJztcbmltcG9ydCBpbmxpbmVBcnJheVRyYW5zZm9ybWVyIGZyb20gJy4uL2lubGluZUFycmF5VHJhbnNmb3JtZXInO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuaW1wb3J0IHJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi9yZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXInO1xuXG5jb25zdCBvbmVMaW5lQ29tbWFMaXN0cyA9IG5ldyBUZW1wbGF0ZVRhZyhcbiAgaW5saW5lQXJyYXlUcmFuc2Zvcm1lcih7IHNlcGFyYXRvcjogJywnIH0pLFxuICByZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIoLyg/OlxccyspL2csICcgJyksXG4gIHRyaW1SZXN1bHRUcmFuc2Zvcm1lcixcbik7XG5cbmV4cG9ydCBkZWZhdWx0IG9uZUxpbmVDb21tYUxpc3RzO1xuIl19","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\n\nvar oneLineCommaListsOr = new TemplateTag(inlineArrayTransformer({ separator: ',', conjunction: 'or' }), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\n\nexport default oneLineCommaListsOr;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lQ29tbWFMaXN0c09yL29uZUxpbmVDb21tYUxpc3RzT3IuanMiXSwibmFtZXMiOlsiVGVtcGxhdGVUYWciLCJpbmxpbmVBcnJheVRyYW5zZm9ybWVyIiwidHJpbVJlc3VsdFRyYW5zZm9ybWVyIiwicmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyIiwib25lTGluZUNvbW1hTGlzdHNPciIsInNlcGFyYXRvciIsImNvbmp1bmN0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFQLE1BQXdCLGdCQUF4QjtBQUNBLE9BQU9DLHNCQUFQLE1BQW1DLDJCQUFuQztBQUNBLE9BQU9DLHFCQUFQLE1BQWtDLDBCQUFsQztBQUNBLE9BQU9DLHdCQUFQLE1BQXFDLDZCQUFyQzs7QUFFQSxJQUFNQyxzQkFBc0IsSUFBSUosV0FBSixDQUMxQkMsdUJBQXVCLEVBQUVJLFdBQVcsR0FBYixFQUFrQkMsYUFBYSxJQUEvQixFQUF2QixDQUQwQixFQUUxQkgseUJBQXlCLFVBQXpCLEVBQXFDLEdBQXJDLENBRjBCLEVBRzFCRCxxQkFIMEIsQ0FBNUI7O0FBTUEsZUFBZUUsbUJBQWYiLCJmaWxlIjoib25lTGluZUNvbW1hTGlzdHNPci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgaW5saW5lQXJyYXlUcmFuc2Zvcm1lciBmcm9tICcuLi9pbmxpbmVBcnJheVRyYW5zZm9ybWVyJztcbmltcG9ydCB0cmltUmVzdWx0VHJhbnNmb3JtZXIgZnJvbSAnLi4vdHJpbVJlc3VsdFRyYW5zZm9ybWVyJztcbmltcG9ydCByZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIgZnJvbSAnLi4vcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyJztcblxuY29uc3Qgb25lTGluZUNvbW1hTGlzdHNPciA9IG5ldyBUZW1wbGF0ZVRhZyhcbiAgaW5saW5lQXJyYXlUcmFuc2Zvcm1lcih7IHNlcGFyYXRvcjogJywnLCBjb25qdW5jdGlvbjogJ29yJyB9KSxcbiAgcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyKC8oPzpcXHMrKS9nLCAnICcpLFxuICB0cmltUmVzdWx0VHJhbnNmb3JtZXIsXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBvbmVMaW5lQ29tbWFMaXN0c09yO1xuIl19","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\n\nvar oneLineCommaListsAnd = new TemplateTag(inlineArrayTransformer({ separator: ',', conjunction: 'and' }), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\n\nexport default oneLineCommaListsAnd;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lQ29tbWFMaXN0c0FuZC9vbmVMaW5lQ29tbWFMaXN0c0FuZC5qcyJdLCJuYW1lcyI6WyJUZW1wbGF0ZVRhZyIsImlubGluZUFycmF5VHJhbnNmb3JtZXIiLCJ0cmltUmVzdWx0VHJhbnNmb3JtZXIiLCJyZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIiLCJvbmVMaW5lQ29tbWFMaXN0c0FuZCIsInNlcGFyYXRvciIsImNvbmp1bmN0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFQLE1BQXdCLGdCQUF4QjtBQUNBLE9BQU9DLHNCQUFQLE1BQW1DLDJCQUFuQztBQUNBLE9BQU9DLHFCQUFQLE1BQWtDLDBCQUFsQztBQUNBLE9BQU9DLHdCQUFQLE1BQXFDLDZCQUFyQzs7QUFFQSxJQUFNQyx1QkFBdUIsSUFBSUosV0FBSixDQUMzQkMsdUJBQXVCLEVBQUVJLFdBQVcsR0FBYixFQUFrQkMsYUFBYSxLQUEvQixFQUF2QixDQUQyQixFQUUzQkgseUJBQXlCLFVBQXpCLEVBQXFDLEdBQXJDLENBRjJCLEVBRzNCRCxxQkFIMkIsQ0FBN0I7O0FBTUEsZUFBZUUsb0JBQWYiLCJmaWxlIjoib25lTGluZUNvbW1hTGlzdHNBbmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVGVtcGxhdGVUYWcgZnJvbSAnLi4vVGVtcGxhdGVUYWcnO1xuaW1wb3J0IGlubGluZUFycmF5VHJhbnNmb3JtZXIgZnJvbSAnLi4vaW5saW5lQXJyYXlUcmFuc2Zvcm1lcic7XG5pbXBvcnQgdHJpbVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3RyaW1SZXN1bHRUcmFuc2Zvcm1lcic7XG5pbXBvcnQgcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3JlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lcic7XG5cbmNvbnN0IG9uZUxpbmVDb21tYUxpc3RzQW5kID0gbmV3IFRlbXBsYXRlVGFnKFxuICBpbmxpbmVBcnJheVRyYW5zZm9ybWVyKHsgc2VwYXJhdG9yOiAnLCcsIGNvbmp1bmN0aW9uOiAnYW5kJyB9KSxcbiAgcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyKC8oPzpcXHMrKS9nLCAnICcpLFxuICB0cmltUmVzdWx0VHJhbnNmb3JtZXIsXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBvbmVMaW5lQ29tbWFMaXN0c0FuZDtcbiJdfQ==","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\n\nvar inlineLists = new TemplateTag(inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);\n\nexport default inlineLists;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmxpbmVMaXN0cy9pbmxpbmVMaXN0cy5qcyJdLCJuYW1lcyI6WyJUZW1wbGF0ZVRhZyIsInN0cmlwSW5kZW50VHJhbnNmb3JtZXIiLCJpbmxpbmVBcnJheVRyYW5zZm9ybWVyIiwidHJpbVJlc3VsdFRyYW5zZm9ybWVyIiwiaW5saW5lTGlzdHMiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFdBQVAsTUFBd0IsZ0JBQXhCO0FBQ0EsT0FBT0Msc0JBQVAsTUFBbUMsMkJBQW5DO0FBQ0EsT0FBT0Msc0JBQVAsTUFBbUMsMkJBQW5DO0FBQ0EsT0FBT0MscUJBQVAsTUFBa0MsMEJBQWxDOztBQUVBLElBQU1DLGNBQWMsSUFBSUosV0FBSixDQUNsQkUsc0JBRGtCLEVBRWxCRCxzQkFGa0IsRUFHbEJFLHFCQUhrQixDQUFwQjs7QUFNQSxlQUFlQyxXQUFmIiwiZmlsZSI6ImlubGluZUxpc3RzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRlbXBsYXRlVGFnIGZyb20gJy4uL1RlbXBsYXRlVGFnJztcbmltcG9ydCBzdHJpcEluZGVudFRyYW5zZm9ybWVyIGZyb20gJy4uL3N0cmlwSW5kZW50VHJhbnNmb3JtZXInO1xuaW1wb3J0IGlubGluZUFycmF5VHJhbnNmb3JtZXIgZnJvbSAnLi4vaW5saW5lQXJyYXlUcmFuc2Zvcm1lcic7XG5pbXBvcnQgdHJpbVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3RyaW1SZXN1bHRUcmFuc2Zvcm1lcic7XG5cbmNvbnN0IGlubGluZUxpc3RzID0gbmV3IFRlbXBsYXRlVGFnKFxuICBpbmxpbmVBcnJheVRyYW5zZm9ybWVyLFxuICBzdHJpcEluZGVudFRyYW5zZm9ybWVyLFxuICB0cmltUmVzdWx0VHJhbnNmb3JtZXIsXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBpbmxpbmVMaXN0cztcbiJdfQ==","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\n\nvar oneLineInlineLists = new TemplateTag(inlineArrayTransformer, replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\n\nexport default oneLineInlineLists;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lSW5saW5lTGlzdHMvb25lTGluZUlubGluZUxpc3RzLmpzIl0sIm5hbWVzIjpbIlRlbXBsYXRlVGFnIiwiaW5saW5lQXJyYXlUcmFuc2Zvcm1lciIsInRyaW1SZXN1bHRUcmFuc2Zvcm1lciIsInJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciIsIm9uZUxpbmVJbmxpbmVMaXN0cyJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBUCxNQUF3QixnQkFBeEI7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxxQkFBUCxNQUFrQywwQkFBbEM7QUFDQSxPQUFPQyx3QkFBUCxNQUFxQyw2QkFBckM7O0FBRUEsSUFBTUMscUJBQXFCLElBQUlKLFdBQUosQ0FDekJDLHNCQUR5QixFQUV6QkUseUJBQXlCLFVBQXpCLEVBQXFDLEdBQXJDLENBRnlCLEVBR3pCRCxxQkFIeUIsQ0FBM0I7O0FBTUEsZUFBZUUsa0JBQWYiLCJmaWxlIjoib25lTGluZUlubGluZUxpc3RzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRlbXBsYXRlVGFnIGZyb20gJy4uL1RlbXBsYXRlVGFnJztcbmltcG9ydCBpbmxpbmVBcnJheVRyYW5zZm9ybWVyIGZyb20gJy4uL2lubGluZUFycmF5VHJhbnNmb3JtZXInO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuaW1wb3J0IHJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi9yZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXInO1xuXG5jb25zdCBvbmVMaW5lSW5saW5lTGlzdHMgPSBuZXcgVGVtcGxhdGVUYWcoXG4gIGlubGluZUFycmF5VHJhbnNmb3JtZXIsXG4gIHJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lcigvKD86XFxzKykvZywgJyAnKSxcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgb25lTGluZUlubGluZUxpc3RzO1xuIl19","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\n\nvar stripIndent = new TemplateTag(stripIndentTransformer, trimResultTransformer);\n\nexport default stripIndent;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJpcEluZGVudC9zdHJpcEluZGVudC5qcyJdLCJuYW1lcyI6WyJUZW1wbGF0ZVRhZyIsInN0cmlwSW5kZW50VHJhbnNmb3JtZXIiLCJ0cmltUmVzdWx0VHJhbnNmb3JtZXIiLCJzdHJpcEluZGVudCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBUCxNQUF3QixnQkFBeEI7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxxQkFBUCxNQUFrQywwQkFBbEM7O0FBRUEsSUFBTUMsY0FBYyxJQUFJSCxXQUFKLENBQ2xCQyxzQkFEa0IsRUFFbEJDLHFCQUZrQixDQUFwQjs7QUFLQSxlQUFlQyxXQUFmIiwiZmlsZSI6InN0cmlwSW5kZW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRlbXBsYXRlVGFnIGZyb20gJy4uL1RlbXBsYXRlVGFnJztcbmltcG9ydCBzdHJpcEluZGVudFRyYW5zZm9ybWVyIGZyb20gJy4uL3N0cmlwSW5kZW50VHJhbnNmb3JtZXInO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuXG5jb25zdCBzdHJpcEluZGVudCA9IG5ldyBUZW1wbGF0ZVRhZyhcbiAgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcixcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgc3RyaXBJbmRlbnQ7XG4iXX0=","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\n\nvar stripIndents = new TemplateTag(stripIndentTransformer('all'), trimResultTransformer);\n\nexport default stripIndents;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJpcEluZGVudHMvc3RyaXBJbmRlbnRzLmpzIl0sIm5hbWVzIjpbIlRlbXBsYXRlVGFnIiwic3RyaXBJbmRlbnRUcmFuc2Zvcm1lciIsInRyaW1SZXN1bHRUcmFuc2Zvcm1lciIsInN0cmlwSW5kZW50cyJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBUCxNQUF3QixnQkFBeEI7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxxQkFBUCxNQUFrQywwQkFBbEM7O0FBRUEsSUFBTUMsZUFBZSxJQUFJSCxXQUFKLENBQ25CQyx1QkFBdUIsS0FBdkIsQ0FEbUIsRUFFbkJDLHFCQUZtQixDQUFyQjs7QUFLQSxlQUFlQyxZQUFmIiwiZmlsZSI6InN0cmlwSW5kZW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lciBmcm9tICcuLi9zdHJpcEluZGVudFRyYW5zZm9ybWVyJztcbmltcG9ydCB0cmltUmVzdWx0VHJhbnNmb3JtZXIgZnJvbSAnLi4vdHJpbVJlc3VsdFRyYW5zZm9ybWVyJztcblxuY29uc3Qgc3RyaXBJbmRlbnRzID0gbmV3IFRlbXBsYXRlVGFnKFxuICBzdHJpcEluZGVudFRyYW5zZm9ybWVyKCdhbGwnKSxcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgc3RyaXBJbmRlbnRzO1xuIl19","/**\n * Copyright (c) 2025 Microblink Ltd. All rights reserved.\n */\n\nimport { releaseProxy, wrap } from \"comlink\";\nimport type { BlinkIdWorkerProxy } from \"@microblink/blinkid-worker\";\nimport { getCrossOriginWorkerURL } from \"./getCrossOriginWorkerURL\";\nimport { oneLineTrim } from \"common-tags\";\n\n/**\n * Checks if a URL is a data URL\n * @param url URL to check\n * @returns boolean indicating if it's a data URL\n */\nconst isDataUrl = (url: string): boolean => {\n return url.startsWith(\"data:\");\n};\n\n/**\n * Checks if a URL is a blob URL\n * @param url URL to check\n * @returns boolean indicating if it's a blob URL\n */\nconst isBlobUrl = (url: string): boolean => {\n return url.startsWith(\"blob:\");\n};\n\n/**\n * Checks if a URL needs HTTP validation\n * @param url URL to check\n * @returns boolean indicating if HTTP validation is needed\n */\nconst needsHttpValidation = (url: string): boolean => {\n return !isDataUrl(url) && !isBlobUrl(url);\n};\n\n/**\n * Validates a worker file via HTTP request\n * @param workerUrl URL of the worker file\n * @throws Error if the worker file is not valid\n */\nconst validateHttpWorkerFile = async (workerUrl: string): Promise<void> => {\n const response = await fetch(workerUrl, { method: \"HEAD\" });\n const contentType = response.headers.get(\"content-type\");\n\n const isJavascript = contentType?.includes(\"javascript\");\n const isHtml = contentType?.includes(\"html\");\n\n if (isHtml) {\n throw new Error(\n oneLineTrim`${workerUrl} resolved to a resource with the content type ${contentType}.\n This is likely an issue with the server configuration redirecting to an index.html file.\n Check that your resources are properly hosted`,\n );\n }\n\n if (!isJavascript) {\n throw new Error(`Worker file is not a JavaScript file: ${contentType}`);\n }\n\n if (!response.ok) {\n throw new Error(\n `Worker file not found or inaccessible: ${response.status} ${response.statusText}`,\n );\n }\n};\n\n/**\n * Creates a Comlink-proxied Web Worker\n *\n * @param resourcesLocation where the \"resources\" directory is placed, default\n * is `window.location.href`\n * @returns a Comlink-proxied instance of the Web Worker\n */\nexport const createProxyWorker = async (\n resourcesLocation: string = window.location.href,\n) => {\n const workerUrl = await getCrossOriginWorkerURL(\n new URL(\"resources/blinkid-worker.js\", resourcesLocation).toString(),\n );\n\n // Only validate HTTP URLs, skip data: and blob: URLs\n if (needsHttpValidation(workerUrl)) {\n await validateHttpWorkerFile(workerUrl);\n }\n\n const worker = new Worker(workerUrl, {\n type: \"module\",\n });\n\n worker.onerror = (e) => {\n console.error(\"Worker error:\", e);\n proxyWorker[releaseProxy]();\n };\n\n const proxyWorker = wrap<BlinkIdWorkerProxy>(worker);\n\n return proxyWorker;\n};\n\n/**\n * Represents a remote worker instance.\n *\n * This type is the return type of the createProxyWorker function, which creates a Comlink-proxied Web Worker.\n * It simplifies the type to remove unnecessary complexity.\n */\nexport type RemoteWorker = ReturnType<typeof createProxyWorker>;\n","export { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nexport let nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\n","/**\n * Copyright (c) 2025 Microblink Ltd. All rights reserved.\n */\n\nimport { nanoid } from \"nanoid\";\n\nconst key = \"blinkid-userid\";\n\n/**\n * Gets the user id from local storage, or generates a new one.\n *\n * This is a workaround for the lack of a user id in the worker scope.\n *\n * @returns a unique user id\n */\nexport function getUserId() {\n // Users can block localStorage or other storage mechanisms\n const hasLocalStorage = testLocalStorage();\n\n if (!hasLocalStorage) {\n return nanoid();\n }\n\n const previousId = localStorage.getItem(key);\n if (previousId) {\n return previousId;\n }\n\n const randomId = nanoid();\n localStorage.setItem(key, randomId);\n return randomId;\n}\n\n/**\n * Tests if local storage is available in the browser\n */\nexport function testLocalStorage() {\n try {\n localStorage.setItem(\"test\", \"test\");\n localStorage.removeItem(\"test\");\n return true;\n } catch {\n return false;\n }\n}\n","/**\n * Copyright (c) 2025 Microblink Ltd. All rights reserved.\n */\n\nimport { BlinkIdSessionSettings } from \"@microblink/blinkid-wasm\";\n\n/**\n * Default session settings for BlinkID core.\n *\n * This is the default session settings for BlinkID core.\n * It is used to initialize the BlinkID core instance, unless overridden by the user.\n *\n * @see BlinkIdSessionSettings for more details.\n */\nexport const defaultSessionSettings: BlinkIdSessionSettings = {\n inputImageSource: \"video\",\n scanningMode: \"automatic\",\n scanningSettings: {\n allowUncertainFrontSideScan: false,\n blurDetectionLevel: \"mid\",\n glareDetectionLevel: \"mid\",\n tiltDetectionLevel: \"mid\",\n skipImagesWithBlur: true,\n skipImagesWithGlare: true,\n skipImagesOccludedByHand: true,\n skipImagesWithInadequateLightingConditions: true,\n combineResultsFromMultipleInputImages: true,\n croppedImageSettings: {\n dotsPerInch: 250,\n extensionFactor: 0,\n returnDocumentImage: false,\n returnFaceImage: false,\n returnSignatureImage: false,\n },\n customDocumentAnonymizationSettings: [],\n customDocumentRules: [],\n enableBarcodeScanOnly: false,\n enableCharacterValidation: true,\n inputImageMargin: 0.02,\n maxAllowedMismatchesPerField: 0,\n recognitionModeFilter: {\n enableBarcodeId: true,\n enableFullDocumentRecognition: true,\n enableMrzId: true,\n enableMrzPassport: true,\n enableMrzVisa: true,\n enablePhotoId: true,\n },\n returnInputImages: false,\n scanCroppedDocumentImage: false,\n scanPassportDataPageOnly: true,\n scanUnsupportedBack: false,\n anonymizationMode: \"full-result\",\n },\n};\n","/**\n * Copyright (c) 2025 Microblink Ltd. All rights reserved.\n */\n\nimport type {\n BlinkIdWorkerInitSettings,\n BlinkIdWorkerProxy,\n ProgressStatusCallback,\n} from \"@microblink/blinkid-worker\";\nimport type { SetOptional, Simplify } from \"type-fest\";\nimport { createProxyWorker } from \"./createProxyWorker\";\nimport { getUserId } from \"./getUserId\";\nimport { proxy, Remote } from \"comlink\";\nimport { defaultSessionSettings } from \"./defaultSessionSettings\";\n\n/**\n * Configuration options for initializing the BlinkID core.\n *\n * This type extends the BlinkIdWorkerInitSettings type by making the userId and useLightweightBuild properties optional.\n * It allows for partial configuration of the initialization settings.\n */\nexport type BlinkIdInitSettings = SetOptional<\n BlinkIdWorkerInitSettings,\n // User ID is optional outside the worker scope\n \"userId\" | \"useLightweightBuild\"\n>;\n\n/**\n * Represents the BlinkID core instance.\n *\n * This type extends the Remote type from Comlink, which is used to proxy calls to the BlinkID worker.\n * It simplifies the type to remove unnecessary complexity.\n */\nexport type BlinkIdCore = Simplify<Remote<BlinkIdWorkerProxy>>;\n\n/**\n * Creates and initializes a BlinkID core instance.\n *\n * @param settings - Configuration for BlinkID initialization including license key and resources location\n * @param progressCallback - Optional callback for tracking resource download progress (WASM, data files)\n * @returns Promise that resolves with initialized BlinkID core instance\n * @throws Error if initialization fails\n */\nexport async function loadBlinkIdCore(\n settings: BlinkIdInitSettings,\n progressCallback?: ProgressStatusCallback,\n): Promise<BlinkIdCore> {\n const remoteWorker = await createProxyWorker(settings.resourcesLocation);\n\n if (!settings.userId) {\n settings.userId = getUserId();\n }\n\n if (!settings.resourcesLocation) {\n settings.resourcesLocation = window.location.href;\n }\n\n if (settings.useLightweightBuild === undefined) {\n // use only on desktop devices\n settings.useLightweightBuild =\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent,\n );\n }\n\n const proxyProgressCallback = progressCallback\n ? proxy(progressCallback)\n : undefined;\n\n try {\n // we added the `userid` to the settings if not provided, so this assertion is safe\n await remoteWorker.initBlinkId(\n settings as BlinkIdWorkerInitSettings,\n defaultSessionSettings,\n proxyProgressCallback,\n );\n\n return remoteWorker;\n } catch (error) {\n throw new Error(\"Failed to initialize BlinkID\", {\n cause: error,\n });\n }\n}\n","/**\n * Copyright (c) 2025 Microblink Ltd. All rights reserved.\n */\n\n/**\n * Creates a custom ImageData object with the same properties as the original ImageData.\n * This is a workaround for the performance issue in Chromium browsers.\n *\n * @param imageData - The original ImageData object to be wrapped.\n * @returns A custom ImageData object with the same properties.\n */\nexport function createCustomImageData(imageData: ImageData): ImageData {\n // fix for postmessage performance\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1439768&q=&can=4\n const customImageData = {\n /**\n * Returns the one-dimensional array containing the data in RGBA order, as integers in the range 0 to 255.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/data)\n */\n data: imageData.data,\n /**\n * Returns the actual dimensions of the data in the ImageData object, in pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/width)\n */\n width: imageData.width,\n /**\n * Returns the actual dimensions of the data in the ImageData object, in pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/height)\n */\n height: imageData.height,\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/colorSpace) */\n colorSpace: imageData.colorSpace,\n } satisfies ImageData;\n\n return customImageData;\n}\n","/**\n * Copyright (c) 2025 Microblink Ltd. All rights reserved.\n */\n\nimport { BlinkIdScanningResult, ScanningSide } from \"@microblink/blinkid-wasm\";\n\n/**\n * Extracts the input image for a given side from the scanning result.\n *\n * @param blinkIdScanningResult - The scanning result.\n * @param side - The side to extract the input image for.\n * @returns The input image for the given side.\n */\nexport function extractSideInputImage(\n blinkIdScanningResult: BlinkIdScanningResult,\n side: ScanningSide,\n): ImageData | null {\n const sideIndex = side === \"first\" ? 0 : 1;\n return blinkIdScanningResult.subResults[sideIndex]?.inputImage ?? null;\n}\n\n/**\n * Extracts the barcode input image from the scanning result.\n *\n * @param blinkIdScanningResult - The scanning result.\n * @returns The barcode input image.\n */\nexport function extractBarcodeImage(\n blinkIdScanningResult: BlinkIdScanningResult,\n): ImageData | null {\n return (\n blinkIdScanningResult.subResults.find(\n (subResult) => subResult.barcodeInputImage,\n )?.barcodeInputImage ?? null\n );\n}\n\n/**\n * Extracts the document image for a given side from the scanning result.\n *\n * @param blinkIdScanningResult - The scanning result.\n * @param side - The side to extract the document image for.\n * @returns The document image for the given side.\n */\nexport function extractSideDocumentImage(\n blinkIdScanningResult: BlinkIdScanningResult,\n side: ScanningSide,\n): ImageData | null {\n const sideIndex = side === \"first\" ? 0 : 1;\n return blinkIdScanningResult.subResults[sideIndex]?.documentImage ?? null;\n}\n\n/**\n * Extracts the face image from the scanning result.\n *\n * @param blinkIdScanningResult - The scanning result.\n * @returns The face image.\n */\nexport function extractFaceImage(\n blinkIdScanningResult: BlinkIdScanningResult,\n): ImageData | null {\n return (\n blinkIdScanningResult.subResults.find((subResult) => subResult.faceImage)\n ?.faceImage?.image ?? null\n );\n}\n\n/**\n * Extracts the signature image from the scanning result.\n *\n * @param blinkIdScanningResult - The scanning result.\n * @returns The signature image.\n */\nexport function extractSignatureImage(\n blinkIdScanningResult: BlinkIdScanningResult,\n): ImageData | null {\n return (\n blinkIdScanningResult.subResults.find(\n (subResult) => subResult.signatureImage,\n )?.signatureImage?.image ?? null\n );\n}\n","/**\n * Copyright (c) 2025 Microblink Ltd. All rights reserved.\n */\n\n/**\n * @packageDocumentation\n * Core functionality of BlinkID SDK - provides essential document scanning capabilities and worker management.\n * This package serves as the foundation for document scanning, handling WASM initialization, worker communication,\n * and core scanning operations.\n */\n\nimport { WorkerScanningSession } from \"@microblink/blinkid-worker\";\nimport { Remote } from \"comlink\";\n\nexport * from \"./BlinkIdCore\";\nexport * from \"./createCustomImageData\";\nexport * from \"./createProxyWorker\";\nexport * from \"./defaultSessionSettings\";\nexport * from \"./getCrossOriginWorkerURL\";\nexport * from \"./getUserId\";\nexport * from \"./utils\";\n\nexport type * from \"@microblink/blinkid-wasm\";\nexport type * from \"@microblink/blinkid-worker\";\n\n/** Represents a remote scanning session. */\nexport type RemoteScanningSession = Remote<WorkerScanningSession>;\n\n// https://newsletter.daishikato.com/p/detecting-dual-module-issues-in-jotai\n\nconst testSymbol = Symbol();\n\ndeclare global {\n /* eslint-disable no-var */\n var __BLINKID_CORE__: typeof testSymbol;\n}\n\nglobalThis.__BLINKID_CORE__ ||= testSymbol;\nif (globalThis.__BLINKID_CORE__ !== testSymbol) {\n console.warn(\n \"Detected multiple instances of @microblink/blinkid-core. This can lead to unexpected behavior.\",\n );\n}\n"],"names":["type","obj","returnValue","proxy","TemplateTag","cb","trimResultTransformer","stripIndentTransformer","replaceResultTransformer","replaceSubstitutionTransformer","inlineArrayTransformer","splitStringTransformer","isValidValue","removeNonPrintingValuesTransformer"],"mappings":"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","x_google_ignoreList":[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,25]}