@teleporthq/teleport-plugin-next-data-source 0.44.7 → 0.44.11

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 (34) hide show
  1. package/__tests__/items-path.test.ts +3 -2
  2. package/dist/cjs/fetchers/csv-file.js +1 -1
  3. package/dist/cjs/fetchers/csv-file.js.map +1 -1
  4. package/dist/cjs/fetchers/firestore.js +1 -1
  5. package/dist/cjs/fetchers/firestore.js.map +1 -1
  6. package/dist/cjs/fetchers/google-sheets.js +1 -1
  7. package/dist/cjs/fetchers/google-sheets.js.map +1 -1
  8. package/dist/cjs/fetchers/javascript.js +1 -1
  9. package/dist/cjs/fetchers/javascript.js.map +1 -1
  10. package/dist/cjs/fetchers/rest-api.js +1 -1
  11. package/dist/cjs/fetchers/rest-api.js.map +1 -1
  12. package/dist/cjs/fetchers/turso.js +1 -1
  13. package/dist/cjs/fetchers/turso.js.map +1 -1
  14. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  15. package/dist/esm/fetchers/csv-file.js +1 -1
  16. package/dist/esm/fetchers/csv-file.js.map +1 -1
  17. package/dist/esm/fetchers/firestore.js +1 -1
  18. package/dist/esm/fetchers/firestore.js.map +1 -1
  19. package/dist/esm/fetchers/google-sheets.js +1 -1
  20. package/dist/esm/fetchers/google-sheets.js.map +1 -1
  21. package/dist/esm/fetchers/javascript.js +1 -1
  22. package/dist/esm/fetchers/javascript.js.map +1 -1
  23. package/dist/esm/fetchers/rest-api.js +1 -1
  24. package/dist/esm/fetchers/rest-api.js.map +1 -1
  25. package/dist/esm/fetchers/turso.js +1 -1
  26. package/dist/esm/fetchers/turso.js.map +1 -1
  27. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  28. package/package.json +5 -5
  29. package/src/fetchers/csv-file.ts +5 -5
  30. package/src/fetchers/firestore.ts +2 -2
  31. package/src/fetchers/google-sheets.ts +5 -5
  32. package/src/fetchers/javascript.ts +5 -5
  33. package/src/fetchers/rest-api.ts +5 -5
  34. package/src/fetchers/turso.ts +2 -2
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../teleport-types/dist/cjs/helper.d.ts","../../../teleport-types/dist/cjs/uidl.d.ts","../../../../node_modules/@babel/types/lib/index.d.ts","../../../teleport-types/dist/cjs/generators.d.ts","../../../teleport-types/dist/cjs/errors.d.ts","../../../teleport-types/dist/cjs/vuidl.d.ts","../../../teleport-types/dist/cjs/index.d.ts","../../../teleport-shared/dist/cjs/constants/index.d.ts","../../../teleport-shared/dist/cjs/utils/string-utils.d.ts","../../../teleport-shared/dist/cjs/utils/uidl-utils.d.ts","../../../teleport-shared/dist/cjs/utils/generic.d.ts","../../../teleport-shared/dist/cjs/utils/local-imports.d.ts","../../../teleport-shared/dist/cjs/utils/js-identifiers.d.ts","../../../teleport-shared/dist/cjs/utils/ast-scope.d.ts","../../../teleport-shared/dist/cjs/utils/ast-statement-order.d.ts","../../../teleport-shared/dist/cjs/utils/ast-effect-cleanup.d.ts","../../../teleport-shared/dist/cjs/utils/route-paths.d.ts","../../../teleport-shared/dist/cjs/utils/layout-topology.d.ts","../../../teleport-shared/dist/cjs/utils/html-content-model.d.ts","../../../teleport-shared/dist/cjs/utils/style-declarations.d.ts","../../../teleport-shared/dist/cjs/utils/storefront-tax.d.ts","../../../teleport-shared/dist/cjs/utils/product-discounts.d.ts","../../../teleport-shared/dist/cjs/utils/product-ratings.d.ts","../../../teleport-shared/dist/cjs/utils/regional-pricing.d.ts","../../../teleport-shared/dist/cjs/utils/discount-engine.d.ts","../../../teleport-shared/dist/cjs/utils/product-options.d.ts","../../../teleport-shared/dist/cjs/utils/cart-line-pricing.d.ts","../../../teleport-shared/dist/cjs/utils/cart-currency.d.ts","../../../teleport-shared/dist/cjs/utils/table-access.d.ts","../../../teleport-shared/dist/cjs/utils/content-tables.d.ts","../../../teleport-shared/dist/cjs/utils/session-cookie-resolver.d.ts","../../../teleport-shared/dist/cjs/utils/subscription-access.d.ts","../../../teleport-shared/dist/cjs/utils/font-preconnect.d.ts","../../../teleport-shared/dist/cjs/utils/email-date.d.ts","../../../teleport-shared/dist/cjs/utils/email-sender.d.ts","../../../teleport-shared/dist/cjs/utils/rich-text-embeds.d.ts","../../../teleport-shared/dist/cjs/utils/rich-text-embeds-codegen.d.ts","../../../teleport-shared/dist/cjs/utils/rich-text-content.d.ts","../../../teleport-shared/dist/cjs/utils/rich-text-content-codegen.d.ts","../../../teleport-shared/dist/cjs/cache/constants.d.ts","../../../teleport-shared/dist/cjs/cache/client-runtime.d.ts","../../../teleport-shared/dist/cjs/cache/server-runtime.d.ts","../../../teleport-shared/dist/cjs/cache/version-store.d.ts","../../../teleport-shared/dist/cjs/cache/api-routes.d.ts","../../../teleport-shared/dist/cjs/cache/index.d.ts","../../../teleport-shared/dist/cjs/page-revalidate/constants.d.ts","../../../teleport-shared/dist/cjs/page-revalidate/api-route.d.ts","../../../teleport-shared/dist/cjs/page-revalidate/index.d.ts","../../../teleport-shared/dist/cjs/page-arrival/constants.d.ts","../../../teleport-shared/dist/cjs/page-arrival/runtime.d.ts","../../../teleport-shared/dist/cjs/page-arrival/page-export.d.ts","../../../teleport-shared/dist/cjs/page-arrival/index.d.ts","../../../teleport-shared/dist/cjs/scroll-scene/moment.d.ts","../../../teleport-shared/dist/cjs/scroll-scene/chapter-index.d.ts","../../../teleport-shared/dist/cjs/scroll-scene/points.d.ts","../../../teleport-shared/dist/cjs/scroll-scene/unclip.d.ts","../../../teleport-shared/dist/cjs/scroll-scene/helper-sources.generated.d.ts","../../../teleport-shared/dist/cjs/scroll-scene/engine-source.d.ts","../../../teleport-shared/dist/cjs/scroll-scene/controller-source.d.ts","../../../teleport-shared/dist/cjs/scroll-scene/index.d.ts","../../../teleport-shared/dist/cjs/motion-runtime/motion-engine-source.d.ts","../../../teleport-shared/dist/cjs/motion-runtime/scroll-video-engine-source.d.ts","../../../teleport-shared/dist/cjs/motion-runtime/index.d.ts","../../../teleport-shared/dist/cjs/page-transition/variants.d.ts","../../../teleport-shared/dist/cjs/page-transition/variant-sources.generated.d.ts","../../../teleport-shared/dist/cjs/page-transition/view-transition-css.d.ts","../../../teleport-shared/dist/cjs/page-transition/morph-source.d.ts","../../../teleport-shared/dist/cjs/page-transition/index.d.ts","../../../teleport-shared/dist/cjs/state-bindings/index.d.ts","../../../teleport-shared/dist/cjs/utils/web-push.d.ts","../../../teleport-shared/dist/cjs/utils/inline-script-error-guard.d.ts","../../../teleport-shared/dist/cjs/utils/owner-columns-sources.generated.d.ts","../../../teleport-shared/dist/cjs/utils/owner-columns.d.ts","../../../teleport-shared/dist/cjs/index.d.ts","../../src/array-mapper-pagination.ts","../../src/array-overlap-sql.ts","../../src/content-localization.ts","../../src/count-effect.ts","../../../teleport-plugin-common/dist/cjs/builders/ast-builders.d.ts","../../../teleport-plugin-common/dist/cjs/utils/parsed-ast.d.ts","../../../teleport-plugin-common/dist/cjs/builders/style-builders.d.ts","../../../teleport-plugin-common/dist/cjs/builders/hast-builders.d.ts","../../../teleport-plugin-common/dist/cjs/utils/types.d.ts","../../../teleport-plugin-common/dist/cjs/utils/ast-utils.d.ts","../../../teleport-plugin-common/dist/cjs/utils/style-utils.d.ts","../../../teleport-plugin-common/dist/cjs/utils/hast-utils.d.ts","../../../teleport-plugin-common/dist/cjs/utils/url-search-param-sync.d.ts","../../../teleport-plugin-common/dist/cjs/utils/url-query-writer.d.ts","../../../teleport-plugin-common/dist/cjs/utils/route-utils.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-jsx/types.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-jsx/utils.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-html/types.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-html/index.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-jsx/index.d.ts","../../../teleport-plugin-common/dist/cjs/index.d.ts","../../src/transformations/shared-utils.ts","../../src/transformations/category-taxonomy.ts","../../src/transformations/blog-adjacent-posts.ts","../../src/transformations/blog-comments.ts","../../src/transformations/heading-anchors.ts","../../src/transformations/blog-post.ts","../../src/transformations/custom-page.ts","../../src/transformations/booking-item.ts","../../src/transformations/ecommerce-product.ts","../../src/request-locale.ts","../../src/transformations/index.ts","../../src/isr.ts","../../src/sort-utils.ts","../../src/utils.ts","../../src/product-price-sort.ts","../../src/list-sort-order.ts","../../src/row-order.ts","../../src/product-filter-fields.ts","../../src/fetchers/utils/browser-row-policy.ts","../../src/fetchers/utils/table-access-guard.ts","../../src/fetchers/utils/request-sql-guards.ts","../../src/fetchers/pg-client-import.ts","../../src/fetchers/postgresql.ts","../../src/fetchers/mysql.ts","../../src/fetchers/mariadb.ts","../../src/fetchers/redshift.ts","../../src/fetchers/mongodb.ts","../../src/fetchers/redis.ts","../../src/fetchers/firestore.ts","../../src/fetchers/clickhouse.ts","../../src/fetchers/airtable.ts","../../src/fetchers/supabase.ts","../../src/fetchers/turso.ts","../../src/fetchers/utils/rest-api-response-cache.ts","../../src/fetchers/rest-api.ts","../../src/fetchers/javascript.ts","../../src/fetchers/utils/header-detection.ts","../../src/fetchers/csv-file.ts","../../src/fetchers/google-sheets.ts","../../src/localized-columns.ts","../../src/fetchers/teleport.ts","../../src/fetchers/raw-query.ts","../../src/fetchers/index.ts","../../src/validation.ts","../../src/cache/types.ts","../../src/data-source-fetchers.ts","../../src/count-fetchers.ts","../../src/filter-utils.ts","../../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../src/items-path.ts","../../src/repeater-page-size.ts","../../src/cache/ast.ts","../../src/loading-state.ts","../../src/cache/config.ts","../../src/pagination-controls.ts","../../src/range-control.ts","../../src/search-input.ts","../../src/search-clear.ts","../../src/numbered-pagination.ts","../../src/infinite-scroll.ts","../../src/page-reset.ts","../../src/page-url-sync.ts","../../src/pagination-plugin.ts","../../src/index.ts","../../../../node_modules/@types/node/assert.d.ts","../../../../node_modules/@types/node/assert/strict.d.ts","../../../../node_modules/buffer/index.d.ts","../../../../node_modules/undici-types/header.d.ts","../../../../node_modules/undici-types/readable.d.ts","../../../../node_modules/undici-types/file.d.ts","../../../../node_modules/undici-types/fetch.d.ts","../../../../node_modules/undici-types/formdata.d.ts","../../../../node_modules/undici-types/connector.d.ts","../../../../node_modules/undici-types/client.d.ts","../../../../node_modules/undici-types/errors.d.ts","../../../../node_modules/undici-types/dispatcher.d.ts","../../../../node_modules/undici-types/global-dispatcher.d.ts","../../../../node_modules/undici-types/global-origin.d.ts","../../../../node_modules/undici-types/pool-stats.d.ts","../../../../node_modules/undici-types/pool.d.ts","../../../../node_modules/undici-types/handlers.d.ts","../../../../node_modules/undici-types/balanced-pool.d.ts","../../../../node_modules/undici-types/agent.d.ts","../../../../node_modules/undici-types/mock-interceptor.d.ts","../../../../node_modules/undici-types/mock-agent.d.ts","../../../../node_modules/undici-types/mock-client.d.ts","../../../../node_modules/undici-types/mock-pool.d.ts","../../../../node_modules/undici-types/mock-errors.d.ts","../../../../node_modules/undici-types/proxy-agent.d.ts","../../../../node_modules/undici-types/api.d.ts","../../../../node_modules/undici-types/cookies.d.ts","../../../../node_modules/undici-types/patch.d.ts","../../../../node_modules/undici-types/filereader.d.ts","../../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../../node_modules/undici-types/websocket.d.ts","../../../../node_modules/undici-types/content-type.d.ts","../../../../node_modules/undici-types/cache.d.ts","../../../../node_modules/undici-types/interceptors.d.ts","../../../../node_modules/undici-types/index.d.ts","../../../../node_modules/@types/node/globals.d.ts","../../../../node_modules/@types/node/async_hooks.d.ts","../../../../node_modules/@types/node/buffer.d.ts","../../../../node_modules/@types/node/child_process.d.ts","../../../../node_modules/@types/node/cluster.d.ts","../../../../node_modules/@types/node/console.d.ts","../../../../node_modules/@types/node/constants.d.ts","../../../../node_modules/@types/node/crypto.d.ts","../../../../node_modules/@types/node/dgram.d.ts","../../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../../node_modules/@types/node/dns.d.ts","../../../../node_modules/@types/node/dns/promises.d.ts","../../../../node_modules/@types/node/domain.d.ts","../../../../node_modules/@types/node/dom-events.d.ts","../../../../node_modules/@types/node/events.d.ts","../../../../node_modules/@types/node/fs.d.ts","../../../../node_modules/@types/node/fs/promises.d.ts","../../../../node_modules/@types/node/http.d.ts","../../../../node_modules/@types/node/http2.d.ts","../../../../node_modules/@types/node/https.d.ts","../../../../node_modules/@types/node/inspector.d.ts","../../../../node_modules/@types/node/module.d.ts","../../../../node_modules/@types/node/net.d.ts","../../../../node_modules/@types/node/os.d.ts","../../../../node_modules/@types/node/path.d.ts","../../../../node_modules/@types/node/perf_hooks.d.ts","../../../../node_modules/@types/node/process.d.ts","../../../../node_modules/@types/node/punycode.d.ts","../../../../node_modules/@types/node/querystring.d.ts","../../../../node_modules/@types/node/readline.d.ts","../../../../node_modules/@types/node/readline/promises.d.ts","../../../../node_modules/@types/node/repl.d.ts","../../../../node_modules/@types/node/stream.d.ts","../../../../node_modules/@types/node/stream/promises.d.ts","../../../../node_modules/@types/node/stream/consumers.d.ts","../../../../node_modules/@types/node/stream/web.d.ts","../../../../node_modules/@types/node/string_decoder.d.ts","../../../../node_modules/@types/node/test.d.ts","../../../../node_modules/@types/node/timers.d.ts","../../../../node_modules/@types/node/timers/promises.d.ts","../../../../node_modules/@types/node/tls.d.ts","../../../../node_modules/@types/node/trace_events.d.ts","../../../../node_modules/@types/node/tty.d.ts","../../../../node_modules/@types/node/url.d.ts","../../../../node_modules/@types/node/util.d.ts","../../../../node_modules/@types/node/v8.d.ts","../../../../node_modules/@types/node/vm.d.ts","../../../../node_modules/@types/node/wasi.d.ts","../../../../node_modules/@types/node/worker_threads.d.ts","../../../../node_modules/@types/node/zlib.d.ts","../../../../node_modules/@types/node/globals.global.d.ts","../../../../node_modules/@types/node/index.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/cleanupSemantic.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/types.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/diffLines.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/printDiffs.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/index.d.ts","../../../../node_modules/@types/jest/node_modules/pretty-format/build/types.d.ts","../../../../node_modules/@types/jest/node_modules/pretty-format/build/index.d.ts","../../../../node_modules/@types/jest/index.d.ts","../../../../node_modules/@types/jest/ts3.2/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"14fc7efae8b184b18019a5906c6f6de752823b44ff1acf7924bbdc8877ded21b","17d04c93fda1b99d8d44e1b9a85926350810d43e7f18d682930f75cfdf76561d","8d27e5f73b75340198b2df36f39326f693743e64006bd7b88a925a5f285df628","dc263a1a1e08672548a9cbef9d7d5e0ff1dd8eac0c84f85164c32d9a038bf4c1","71a689048584cde03cb508408ae7c3b04ad8f10af887865e8b65c27ed9d91488","ea15aa0f31b82087b000902760cc275080f3461d7b54f4690c47e833c5c7c72c","6ba1631f84ef4507073189c4ada06d6de8bac89375ea3b49e34e49006cc44a3f","afa9397f3aa80897cec3ddec1dd6f7c8741106ce96090f74df790a474b114ed6","92191b36553596b13797dcb16cc740073eedba6c39ed67919091c6a662cc9e2b","016e13cb6b202723f41294ea8028ae51ab987e847808c6f637d5a890954a943c","03eba7f46dd2b83498cad321b675dbeb75aaaf905e142dfa200e396cc2bb34b6","9700893324b247e73746e2ad65cd540f34d25221beca55e2bfe3cc441c1b9331","ef444c3abed06ad312847e29b4ba4432f7c195314c4bb82a25ce95f95c778a5b","1b162486fa280dbee48fc4c144654d5f55efcc37b7fee14d797abfbdad9a949c","ac38f9ccc10049dd76ddfb68a4ac6647d36656d62d4c01cd32ce1386e6e56758","210a682e78eed1c7aae6824de615032daaf3fc60c2b0cd3720200b6d61f9fd19","3e39c53f8d84f8cab50817a177664b09180a2d7eebac4583789268f9fd589b84","ab05daec0e36402aa878f9e6bce5bbb4ca1766771a40287cc253744045349777","ecfca193bd5f4c5a96cdca608fcc5bdec30439d0648bc90795cabbe07927b777","26b70c898ac9086bfb061fa451c96bf0e67e0281cb8404c72bc4b8bed45670af","f4f8fcca308739066984c0c88307f10dfe0acf6c4865bf4650a3c1497b653e9b","50d566d584d04608d6e06d8c544c234253af732c73f998363ddb3a04a2df4e05","c5d4917e7d140434d0bdc89fe47a55cf9afbd86cdb8e9f477d9b34334cb3cb61","2aa114a2b67f4146383f941771223fe98dcc041c3698e220407d1f9365106427","b17a5fd5e005d7252375eff1a1cb52dcbe47824ba93f4fe3db7353e4751d9bca","ec767cf070c1d42b1991c36f0111a2dd8febd85b26619724f3fbf74fd2b79c63","dfab9272374142bbe65c81c4ec78d2481e92082ed1346f2c098a77698aa8af50","eff39c66a112b6f3acf3b454f335716c9bb53f740e9b9e744f5f0086a460621b","1a6e14b4b36c26f1703a572401beb92e70bb1b9c64024cc1580c0d592797466f","4ca57e6e96b8f1b434f5ec768437ac2e26a0b4aae1fcc7fce6cc53e5326dacb7","4d4186bbe2133dab5b49b318622268210d1c300bbe396e841184143c2074ed93","2f589957d4137051710d2490617788c42e8d942aee68a7f7748eedbece3ece3f","06b5e5cc740d5f6a42bfa15b647d03f1d265c237274e3ae240fa735467fe3773","85c1a4cf9f573ed7cb65596d82d315157ac03ff6914f578e6f0fdbca356557c7","b732caec6a9739b2081e32fea79b9421fd2952640c0ad8f51c5bf0dd43b68a5a","e07cc59642b0f0355143ba30ec2b85aac0c4fa001d44518d749a847b5637102b","6491b44a7c2062e8ab07ecc594d135455b613da78f45747cdc8910bb6895b703","936d2829924aee7935896c5f2aa7dc020b5717b3db1f32937dd268360fca8e59","b4cd9aa3470d00ef6b735fe588fb042c022167b8ae467b17b21b9ca3959966e2","a38a716bf00f98c44b63ea11a8f02dd1d7cc33deb445db79dd48f6ea50a93faf","2c010aad4ced0c836ea0c5d8b0465afe128c6dfab0fc0486df89e01d831128bf","4e6ff96a2db4fd3831ff16dc907e51fa41c417c57771712ab528db763eefc30d","e421033924a00045db6c0f30c05c1c008077828a39530fb5c742179eb56c28ed","33cae5e413c0ce1edeffeb0657a12b37e123a0eac472717561412d262f01f796","7864d42f488cf277d879b29b952dec989e11b02b4c04cf99595cbfafaf4a3775","9e3175e934351ab697ce308ec3d17814753ef7b5d6353d9ddccad2717fb2d6c1","b759b887b371b187d895e327f123947fe3eb06c84b2d44ec5b78d3c1414db867","ffc0b613a409eef6b3b31e2d62de2d2ac02af9d069873cf8d1e00523fde77953","c883b2e0b435636064fcb7b310e8f17634714f1a493d37c0db8cb6406af70e0e","008478ab03dd866b77d1cf78e3a53e245df296a1e84a40ea6cdc1c3c6730afb2","aa5f6ef69c09d67eee3474e774a65781621a713acc2d35cfea0fbfaa55d0b8b9","d3c3ec702c20d49d994f487dbe21b7d2122e2d9a9b66723f583c4a40907a20e9","f9a7de5bccb70d0d9b8ee3f4b5ecec5e7e4c24e3eafdb00465477a79f5d5368e","12d7e4e90100d13c67751a88603b2d2b9b76553a511b3d7e80abbb026b02fff3","f543917c15e23b15d59645189eb71d3b90bcd032a12b9a9cf021cb6f4d98870f","dddf0b1c71bb80048080fd367605b539e90d2abba950dec19edde226806da49e","398e086ea9212cef83a9578767d8f3b4c80d0cae9b3868a3e566937a8ddd8d13","efee42c8c03f4c8a4956bd707b7850707eb422452a1930dd94f7f5aee23f2f3e","0e6ba33fb789c880311fbff5c2eb465e9a8de7ad0e44be9da3f94e23baaed9d7","4c1bea47949bef5e0da753cdefbbd3d4c6b860ff76f52c0ea4d04413591f755e","5d8ec169397e42a7a7b7a7a40fd569bf6dacd48ad300a85846a1d0721e9091d5","4d4a5da3290bf9d162fb4bbe4c11b04f765e7ce9fe4df002e58379f40989149f","9321ea7e9b2e0429b902e2c6c55c0000f1f818738e0528390c173f69d1e18d14","fd264c72df27e7f742c9eae27e550770021b0a19faa223141326664f983b3e18","eb0e568ef4959ceeadcb7bf5894b27a4dc51819d1b9f036193e63dc566381667","298a6de293ca280de905c4aaeaf77667be56aa2e7021ce5828b241a2320b06f9","7ca739a3478e9b64c92da3ed910baa74a20bb3df241049f40e68be66fe42f5d8","8cea2126dad822c43da5a76ce4bd7609a0bf23e4862f1397461ec77b0e5d6b81","f8ca6c4f8fcaea5d3a0c045c733eca2847105b167b0aa90268019c13e8562224","bf3969bdd2ab34b12fb54067b9b1f8b81001fe63b613b8e0c6eed7763c8d3cfc","86cfa3fee635ad9bbb52616c83cd2b2406601ef12bfa58e715722109c8690094","a0a99773baa9798cf39798118868d865ba75d335c2847cab5627a016a865747b","5a1c7698c9d72d39874e161ff0e215a3c72d56535d5489fc3fd8455108283857","9c492137739134b5e4947dac0d15c6af617e2f3518d1c5e41d66cc74f082018e",{"version":"6cdbee86dee84fb542031c68129cc8f8efbf0008a8b56fc6b591046210abfbd1","signature":"268cc264987659f1004c96042c9c43c20aab8f07862bb9c5d2b981103eb1457c"},{"version":"4dcac0386a73d36085c5da1bce5768a677049eefdcc085bb9511d1da72e89fa4","signature":"60e80581bfcdd229875b0caa9cd8cf13eb00fa380772f0ce21af6b6c544a81e0"},{"version":"cba981588e9ba9f22ce1a1a00cf52e785f2eb03f7decfd1e634d45d40375a8b1","signature":"353f78ff1d46089f5e7883536a14ab23b14024e62d4f74e9ac6fb9a3c66c9056"},{"version":"684667231745a273ae7e756858dd06eeeb2aecbcdff44d45c8cb9a3c28ffb0bc","signature":"35832e0a54349055d83fa34253a38401053ab992d8377eb595e04f2134a97044"},"b7f5a08a542459965e03364a10ce321d28eb5dc96c7cef00a48cb89e455f8532","7d69ac79c9de7620a1bdd926fd4b20b8e968d6467a220eac2a836988ab47c933","d350fc146b46550e424850ab9f7e7d8951156584dbd27bf493e37d7d2300af87","51df45d44f1a2052bd14063736f385bfbdcfee3759fa5597c89f62b3bbdb02e5","10b2bb0a74b12ecbab5003ff91aa8b3da674f81a5d72fdd6f998bfaf664948c8","8707398fc0fe5cbb6fe5cd787c14539bdf86e498463de52c2a36c0b34f3e4593","3f4fe2fe5f1425cb3e04f5c898d990a1925a7c8a84548a4804f831cfaa2194cb","6ff754e93a1ef94f7a92e7f6f9b67357f3b25836ab36d66202d1d07343186ab7","1856c3bd0403423d30edce78e853b2af882bd2c66875cc9018e9c55384d86bb3","2ead83b6c419298ed2162580de49d95ea821f323ce5c9ea852b5d48c24b213a3","b94c5598c64ff8c5aa60f0aca1bf8d0f44ae7114ad9ad11c1d40fab0dd9e14c1","c5a688cd5edf1ae69f5c8f00b4ff311e10b68292fbe0adce6c1c95e961071faf","727d55976417f93cfc46d5e4b0dbd1f0127983595b02282c1a7879187d6b222c","48533e135178c91d9abe0789d1c09802696a42985217396ccfcfd1034a099a0e","dcaef7f7c1f0cb2dba19a1a70cc8d5276faa68e50bc69d6a006d3aaaaa9f7aa7","ffd67adf9464cf9bcddc3954fcd27d59b60e85acb02101fefe8b0eb642a2be2f","fc5a1e87e350e2e8be13fb933ab2b992b1191adaa9e7c5c5cbeb324ddf735130",{"version":"4f78bf92a42043c5e418011a170a17c85c68951ed4dd1771569491acb4ce5fce","signature":"79f979b9f84ca0e46aacfc04dc7849991e46425604a62d539eb00a0fb9bb0dac"},{"version":"02d94008b22a903c362c10911547a960278d4d6d877821fd82d3244e8711f8b2","signature":"219bf85fd8127a0bd9dbe162bfc07e96bb677111b36d14ef60336f668aa81c5a"},{"version":"62f34144d21aa3c2acbfdae482c107648f6ab5228a9080f0372c1552fa82ae17","signature":"0ad67c4e28d74d38fc8ff8fa2d46e9c1c7a855ecd22d97dc03a32a1fff851011"},{"version":"cd050b5b8bb22fcba2ba56e447d7b0d8a0001767ab3a80f7b32ca8df1ff4d4d3","signature":"4489b7d6532105c09ab95ed5f689a6b1f8eb34f65c2904ab4e494e1db2f359da"},{"version":"0d395bfb3a56f35f20fd7c2656628c07a19864fa649127b724da88ba54e84af1","signature":"7a7b661c375ed82a4ad47dd8eb2521081c92b02a9f75ac42bebae0bd9adf9827"},{"version":"0d2c650fe72965f1f8e8eeb3e49b0aed7caab032f98c1ca46ed078a53eb63ecb","signature":"015b6d535ea38e91577e89036fb7d1303061bb8d33fc77f34b91f0b2ddcbbeea"},{"version":"1a7c644a849da492c8f98ba40809933c7c698081b63f88223f8e0e670317a494","signature":"8ea6acd8a18024a6a29ae1fc5bcd54b06b4d0e6f2df2b271e358fc4e0a0b03e9"},{"version":"7034b221d1de43a5d736f7df267a99b649026be6b6f9cafe891da39f81b7230e","signature":"70466953c158166fefb4103325199d7f958de25086d05a7d5800c33dc53f548c"},{"version":"34a62972ba8e64c69983634a1e41f393b903064ebe28baa6531e232246c9ccd8","signature":"79c7630a7ab40c2f1928d649d49f289034007f555ec6209d42e63ecbb377fc5f"},{"version":"cdde4a7411afa725b7dfe69d1e447ae3747f74432c43116378fc6d008764d601","signature":"1c009fb97fbb380e41bd21ac5c0c0d838306b08291aad07e8bafcb38dd90ceef"},{"version":"6bfe187d4b49ac4be3b7adfbc6f9a29b0d00b21fd1d360a48fffccf74aba0c7e","signature":"95763bd7fb392cfc5cce8bc36b34e716cd4ed58e79748cd74d7cf506bbedbe29"},{"version":"089156ee8c662fc7994e505bb92f51e2ee3d35320c86c06881aaa451546dc7a6","signature":"5544c2af7ff781b56ab78a636432e0c005cfe2358409e1e30c9f2e95b06199e2"},{"version":"47283e940650c2c50dd1cbaebf9d733917a9535299c872b0ec12a1ff21c472f8","signature":"5558caa6c844039e0416746840265c2e6e8cce6131966f370cf5b8953ed6e26f"},{"version":"3d39ef297abf2aec1dc33c8524cd70e1672ac8789af10bab4dbbd893aedeab0f","signature":"51f86e02d981ace85b2891d60a582a198e9d8763774b627a24c73aac1d78518c"},{"version":"6e61130a7af393bafacd86bab3c3fac4ef023d4ce1e3558938f7cdfc95aa3773","signature":"90e0166a94af561e924ab900c27c7e9369a0c1cb8ee5bbc77d445fd12ba64ac3"},{"version":"666eb97e44416df90f746a7101906634b787af11f07763f0442478db0726f22b","signature":"494f1582341aa3b7be1baa798f65740c0483f9f14affc44e2001ea064672da08"},{"version":"a334f58eca8cab7c749e822b1408096f8c145c5c76422db83fca79f588346963","signature":"1dcde4675ac2bd31aa97d9dd7936467450bb3380d8029fa643d6bfd0fa6bcc91"},{"version":"025cd8d7a286a804dd32ea70c6d2c288b856b43e4488d16f93fe33f6bc5feb1b","signature":"ee367600ff6944f7801f5753e250464eb56b6c5c082e3c24644cee4506934967"},{"version":"d3e4526cb3a4eaed0bcbe222b3e8b17aba975ab7bd742124d0530c78a0302080","signature":"d99ea84ec64a6aad4e2bc073dfb906a9711e89254ec5a1fe461e60ab19a098c5"},{"version":"b16e5e4202c83ed6ee3cb8e89df938acce04875eea65ce04d449f657ea541c07","signature":"d05f310d205b987de01aff7ea98d5e61ab994b712e3411386c3ddc03fd8c2f34"},{"version":"cb81cfdf0f3862c556d15f3bcbe637663785061a31d8fc52beac41eaca3db9fa","signature":"1cdf8a91d50baabd675c881d797f7b8e389e242aebfabc2fac74942b72d57ef0"},{"version":"1cddd243ca7bb703596dcb372b36834276dc0c5bed90af2fcb20fae55811b666","signature":"8886b10bf66f142695dc07cc2336c562b16dfa1953d0da7fdbee75adde72f137"},{"version":"f39b470bad177e3021777fb6a2419f08fe4d26f3ce6563af7b82d638697da7aa","signature":"1a5b9b13364583e631cc535d831a71b0283ee157ee977bed83213115992e0e9f"},{"version":"131da3cf4eb281cc3254d1613bed2d0ab481f416c67eaa7b6e1636aaa86cefdf","signature":"d00193c90510e72ce2388a023e353fe46b5cdf19422f5161b9850335a986da2a"},{"version":"273814b2a2a0315af4bf28cc878ba6e9893bcb8f353b4cb82a3e0234fa8997f4","signature":"49f95af249a13fe4d6a4e010f6c962a3ad0b8c04b8239776860d739a6c7aebec"},{"version":"575180acae1ac7395b2fc273a4a3593faccfa5e198551a855d74f15d9e3577e1","signature":"0c15c7a95261653c1d169de2acd460951fd2da86797be3d66bae181229913028"},{"version":"8387af94540692dac1adeab0faab75a4c451c53303ac0ace44e026bad6edf6b5","signature":"42fd47b89f4fd4d1182b4dabb6cf21a207aecc9f18b9c64375a905f71ba7e27e"},{"version":"31e205165c2ba0b28905d1232bd63a3850d1c14f0528e9536dbe60c07af413e0","signature":"1435e8f6c5c4a872b7ccdd524445c2c0a3841c514f278e9f7fe89dd27f51e22c"},{"version":"bc7a8fae823c039e9b5b2367d9274437e6e4fbe8f935cdb8182a17024d621388","signature":"9252525bdbffa14530825b1742cc1dbac04dd14d6da54858b1e0f10b13d9486a"},{"version":"3d9d6c5233fa8ce56622de5332c2b4969f965311e0a795493562a509addb64cd","signature":"086cba5e2c20c4c1bd96751364704784fc769c874f961d49511e8a71eb455635"},{"version":"2ae8a324b65e121a64cbd4a5326e0cc5aeb9bb9fce0a05d5e3d556c8fec1965d","signature":"2a7fa42ab3eea43bd9ea8b87a44d66dd187e6b9bd3a92dfac9b94456cd3ee542"},{"version":"6c9f4e9501e9845ac63cda79d837a65d2962747902eeb8b3a4c208c33829f54f","signature":"05129746e5b08d401ebb1d0286ea7446ac7c867a003dc9c1e4f6ea8e546b4024"},{"version":"b454efed4d2c26d85095f234f8b37712dacfed962e4172ae0d62959602bce9a5","signature":"57800819a8bf58defe43f6529d610a62678fc94f0df6dd9c463a68fa795d8a5e"},{"version":"69ebeaf5e24e6b734c3711f4f0d3771b796126cfa47037503f4b74abf025f6e6","signature":"b8f0df5323b347434e1c9d8eb153e6266c9a26097c336d0da98aa20d074a4ab2"},{"version":"9f517c4cf2713cb9a77b7838001379485ce130a949bd6f6790a4d12f2cc296cc","signature":"e174a43044ea557509070815d09a9bad989b1360808b43ca3451ee44391ec49e"},{"version":"d1dddaa8499e38c672433cd70601d25bbcce0c4fe62534d01fd2a19cd92cc495","signature":"37791c8e17a2d09885af3ae90cbf37cfc007d054422efca32fde77600aae2a56"},{"version":"b4f81c99b4783307322c0dda97fa6b295e53ca5c3749bb46dd46ff65114c7939","signature":"19bb513d1d82c0c13dfae8bd4609fdd77d257b213bb6286e2873abac15599b22"},{"version":"1ae098fa58d04662b8b960fa9f76ee06a494246709a0298c34978fa78e343528","signature":"b3a57d9eea1fff68e106cc6489a3853c0402bd014eb827967e684953192d3907"},{"version":"cf0e97e53cf056a0f449732bb8d45f3a5669e31d68ccbaaf0558fb8e611916e1","signature":"7a5c1f79f55d6cfaf4adc1943e71e323072a0225ba261d2d8ba3a7eaec79205f"},{"version":"78270e8a30258b5c041f4737df6c2da86a2f44e13696f360b1fc94a96996b0c2","signature":"d0b6aee4a3cf4af1a3f8cf6405a5a22a75f3997267a34118a2302d4a707c2207"},{"version":"aa90cdf704cb07b7d2d535a55ce6b5b03559400337ee5e7d1c1e5d6263e0e95f","signature":"523fe17f8510a1d4d0ad40ad85e275bbf55770b517a98902f51841b92373c6ff"},{"version":"0ecb14560919c40fecfe557f8bfcafb1024101f6f25162a77e32a08d0a0ae97d","signature":"2cae52bb6c224e3876a820ba8458383890316cda2a3450b30313e77f21e79765"},{"version":"35a1eb1c55a2d086ba888a0a535a0939f44b123933a812a1b8e8bb3843762827","signature":"8e75557ea51b03d65950ff837701891eb1b6a6d8d3047d67c288daa208de8cc9"},{"version":"4fb8c0cc9c3c0f02789eb46932de57ff337f279eed83405ab60c7fabbffd2479","signature":"dc8beebd62666f0f499f3d19afcd511268409762b733344538c18dd9d269102e"},{"version":"475c1c69558ea9267615a81295d7a68a80a50406c1bedab5bad2a717dc172ac7","signature":"d61c99152b49569aa8f1fb7f987505ac3729c61921dbbf8e2f56c8c5240fa1d1"},{"version":"5e9772b844e25c9c2b2d999c0c4fd8faae905d2bf69906d80cbfe4f0bdaf7d9e","signature":"f7d9c6dec3275577fd23467e961720a323dc971e0b49a1e3d990ae9ed3cd0fdc"},{"version":"d297242c3eb9d49dd3008a49791a1c0171dbf5e12ef6c088494a8c5af7b2cc15","signature":"b7e105389681fd52ac69f81882168ec249a2b06b1462734e47e8e8d72d8aa702"},{"version":"9a464d4934232ee7b46076c9527f1528e4063a382339a75d19ce6f811baefa45","signature":"68eac89965a2870d954cb902c06857bac55743d257b00b4e8b87e1e1d4ae534a"},"1c2cd862994b1fbed3cde0d1e8de47835ff112d197a3debfddf7b2ee3b2c52bc",{"version":"e8ef8d06fa5aac8857b67097feebaf9891aec3dd866407d831fc5add210f6400","signature":"fb8c328fc39a5305574b44bfd661af1f60c8ad518b31ca89744a94833e69a5ea"},{"version":"c13feb2d79a36bc141fa284dad0bae2296646fa8c27e72c11df334d6a3f7d59a","signature":"439059312e2d5bee157c5f5574d47878ff95375f68f7afec7df9035b6d332f62"},{"version":"12eeb37c401688294b28fc79ff80358ffd9464859058b58dac3d1ea558ab46a4","signature":"4360a3f5135853b70eb174bddcca32ad1659259199ba38bd02500f5c61232b93"},{"version":"62f2f9d74155cdc229285c0f32309a14a0f88cacae05ac0d710d52f63d79d66a","signature":"f893712b80f33464781c24aa316ee7c4001fb72c29308b8cf4d00eedec35983a"},{"version":"9aa8a1d15fb1eb78be9fc60e652ac7388ac2d9373b65f68b91d01b73a900d1e9","signature":"e7dcdfa55263d1e25ec069f2a5961820ef5adfa15a872df7db2c681c0eb8b7fc"},{"version":"731c8ffb641e9045788602ebbc68055d54b4bf480012f383858ed1a4ca5d1dc0","signature":"85c68802d35d9de622dab5a439741d5dc02224f8402db33045030f50327dea5a"},{"version":"9c86e8231618d3bfd8914197259827ae0a1d7c680d6841f65903c4c276beff21","signature":"b132e30240b3815c8d5f01df6019ab90210b01058f80ea5f61a12caba9385c3c"},{"version":"57a879856970e845b6a0d33f3a0195b6e9e41d87e74ce677a87bb09ce3d0df2c","signature":"7eac4ac9c9102815fc7d7f945936e6385dcdd02f08431fd51502746ea14cd6a1"},{"version":"9d4c876c3b41f1e847111468b026de8ab6fd76f6a83a006b74ae4486bfb17d8d","signature":"a8877ed5d5f1c82b698f0955f52b886444d4032000f99c7974db12c762a9ac3c"},{"version":"f040b03e287f16c159aaa7ced52f6f698d6f553f2a09420b2c982cfba9cf36fe","signature":"62cfd6415b218eb3b90df0478f308a7cf0a2cf6786297f9554f69d97a60fb8ed"},{"version":"ead51a01a4ea31fb330cc2db0b08eb35e8e1c66817b33eac0bf8b2186ffcd97c","signature":"0d4784a61e0314a09ecdb2eec0b20b8f6a3dce6a16b4bfcc8da2c8f05449e8de"},{"version":"412fd0eadc97e066a549ff62f47b483d46f4129e30f73232c7e8b08e9115c2ab","signature":"c4c88392a90c5f81574222e3d3b04616bbe5b33629df1aa6575ed97f8c0ce025"},{"version":"7650de377ba0cccdfaba9b01da4697b87be6103bd362827b35f014feceb61bde","signature":"e03f059fea2a127ec145b680750d40578b15493e13e24604fca4b77c383b5b7d"},{"version":"567fd9525e2a94327ba2d3276bfbeee4bc6814ad99bcb7efcd14cc9b09ba920b","signature":"81edd44b1cc80a705e38f13a4c9238f25ff8181147f1c729f28c00b5ae539eec"},{"version":"743c1f333d238304b35dca3064cdd81106503b018a391869f3c44721a83a1a37","signature":"f29857ae6d99b956cb463e1e359802b2ab5b747f0712a5f243e9358b573d0b5f"},"0b4bc32128fda7bb0752cf284730dd3a817aae04a3d7f92e3b2d54bd61362fe1","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"5f290ea7efbe9d8431e10df12c0d5672b67988e7c171c2d356749fac70347a55","affectsGlobalScope":true},"39b1a50d543770780b0409a4caacb87f3ff1d510aedfeb7dc06ed44188256f89",{"version":"49c89f8fa09d21c161e6a367448639e032f42d77cc2ec8ab54ecb8fa9a3ad59f","affectsGlobalScope":true},"e4b50850c2a62c7750428e452ee24b167180104d514d5e5c0ca691753365f610","304504c854c47a55ab4a89111a27a2daf8a3614740bd787cc1f2c51e5574239c",{"version":"95f9129a37dcace36e17b061a8484952586ecfe928c9c8ce526de1a2f4aaefa7","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","0f9061846236850a872cb44097d071631e93c8749a8b16c191fe3c2a48faede4","e46fa644658c2d6e5c85e954ea76b92c97d63f0851d3ccdab8c2a80d5962aaa9","1c611ff373ce1958aafc40b328048ac2540ba5c7f373cf2897e0d9aeaabe90a0","a307d22a0130ac94c1a17fffa6d57ac272deb5838cb966a9420911d259cdf1be","d2e415abf6cb81ac9e2700b4db5ea7be76b997e812285b8e5e1e414eb2750b6e","09d6cebdced6aa1181ac1523c8f22a133f5ed80589678b64051f0602f0518374",{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true},{"version":"7c35691dc3972ff1507d8dd279d833f540973d0917bde22e191cf7a8feaac29f","affectsGlobalScope":true},"62662d7a886e5cfa870685720fd27b763743ca4d2cf29326f75d76606a64eadd","b8c670688bd228d3cc9c169690b09b687188c50ff263a94df63b207701105ad9","d8e16905907111390d5a943816306ae997dfe56476f14142166f8b13ee322eea","8068c911a1c40bc6c5ffc58c625b21d807778f6aa6d63a73e6f04f88bcac5b79","a1dbce56ad5f3a37caafb9033c9d190a199217d673f5fa099c8968d471a2fdaa","c6f77efcc19f51c8759779b6b6ee0d88046c15c15dadac8ffed729a6620daf39",{"version":"089867511b37a534ae71f3d9bc97acc0b925b7f5dbec113f98c4b49224c694eb","affectsGlobalScope":true},"269d0ea3202820c29a32c1f2a357837a4f1918426844f7e7c90af15ec40d1dc1","66432f885e30cf471573de22a5af5eca9ab46b37b122aec98beadf77e9b7df24","323506ce173f7f865f42f493885ee3dacd18db6359ea1141d57676d3781ce10c",{"version":"034e635df3c014df1d6b1110b724ca0c4d2d324b45a84974c7d6931f9cf95ea7","affectsGlobalScope":true},{"version":"87f9456115554cb0f78f098ddbd585096871c19d2d05274c1b1b4ade3151da78","affectsGlobalScope":true},"ea3ab3727cd6c222d94003ecafa30e8550c61eadcdabbf59514aee76e86211a5","d3cdd41693c5ed6bec4f1a1c399d9501372b14bd341bc46eedacf2854c5df5a7","2de7a21c92226fb8abbeed7a0a9bd8aa6d37e4c68a8c7ff7938c644267e9fcc1","6d6070c5c81ba0bfe58988c69e3ba3149fc86421fd383f253aeb071cbf29cd41","da618f0ea09d95c3b51514de43bf97dab008c85bede58aa57cf95e4984c7c957","48a35b181ecf47dbbc0a7ab4b5ba778d91eaa838ba42bf4aaaead42be77ef39a","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","5195aeb0de306d1c5ca8033457fbcab5987657112fa6d4971cfeb7644493a369","c5dbf0003bc9f0f643e54cd00a3868d1afe85497fecb56be6f2373dc85102924",{"version":"ce73eb199c4bf96c015f069aac161488ed73ebeaea3d87b6d5aa9a968a7b38d4","affectsGlobalScope":true},{"version":"300f8e9de0b0c3482be3e749462b6ebc3dab8a316801f1da0def94aed0cd2018","affectsGlobalScope":true},"4e228e78c1e9b0a75c70588d59288f63a6258e8b1fe4a67b0c53fe03461421d9","962f105729d5b888c8b70e193f6020ee92c6c8144c827de40f80d65dd188ad7f","ac74e2b754fba690036f8221d978f6debb867462b87af254f24e924b677395d0","80858f6de9af22e53aff221fe3590215ea544c2aeb2cc60cf8e08a9c785c8fef",{"version":"068b8ee5c2cd90d7a50f2efadbbe353cb10196a41189a48bf4b2a867363012b4","affectsGlobalScope":true},{"version":"340659b96782f5813aad6c1f89ea1b83b2f3fa993115c7b30366375d9bae5a4e","affectsGlobalScope":true},"6f44a190351ab5e1811abebe007cf60518044772ccc08244f9f241706afa767f","fecdf44bec4ee9c5188e5f2f58c292c9689c02520900dceaaa6e76594de6da90","cf45d0510b661f1da461479851ff902f188edb111777c37055eff12fa986a23a",{"version":"895ca532c15c77cbb6a871af1870b57bcd0ca4f38a1bd69669dd0e95bb58565a","affectsGlobalScope":true},"f2b9440f98d6f94c8105883a2b65aee2fce0248f71f41beafd0a80636f3a565d",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","e222104af6cb9415238ad358488b74d76eceeff238c1268ec6e85655b05341da","69da61a7b5093dac77fa3bec8be95dcf9a74c95a0e9161edb98bb24e30e439d2","eba230221317c985ab1953ccc3edc517f248b37db4fef7875cb2c8d08aff7be7","b83e796810e475da3564c6515bc0ae9577070596a33d89299b7d99f94ecfd921","b4439890c168d646357928431100daac5cbdee1d345a34e6bf6eca9f3abe22bc","5d72971a459517c44c1379dab9ed248e87a61ba0a1e0f25c9d67e1e640cd9a09","02d734976af36f4273d930bea88b3e62adf6b078cf120c1c63d49aa8d8427c5c",{"version":"f624e578325b8c58e55b30c998b1f4c3ec1b61a9fa66373da4250c89b7880d44","affectsGlobalScope":true},{"version":"d3002f620eab4bf6476c9da5c0efb2041d46f7df8b3032a5631bd206abef2c75","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"declarationMap":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"noImplicitAny":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","sourceMap":true,"target":1},"fileIdsList":[[45],[293,295],[289,290],[289,290,291,292],[294],[296],[202],[238],[239,244,272],[240,251,252,259,269,280],[240,241,251,259],[242,281],[243,244,252,260],[244,269,277],[245,247,251,259],[238,246],[247,248],[251],[249,251],[238,251],[251,252,253,269,280],[251,252,253,266,269,272],[236,285],[247,251,254,259,269,280],[251,252,254,255,259,269,277,280],[254,256,269,277,280],[202,203,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287],[251,257],[258,280,285],[247,251,259,269],[260],[261],[238,262],[263,279,285],[264],[265],[251,266,267],[266,268,281,283],[239,251,269,270,271,272],[239,269,271],[269,270],[272],[273],[238,269],[251,275,276],[275,276],[244,259,269,277],[278],[259,279],[239,254,265,280],[244,281],[269,282],[258,283],[284],[239,244,251,253,262,269,280,283,285],[269,286],[213,217,280],[213,269,280],[208],[210,213,277,280],[259,277],[288],[208,288],[210,213,259,280],[205,206,209,212,239,251,269,280],[205,211],[209,213,239,272,280,288],[239,288],[229,239,288],[207,208,288],[213],[207,208,209,210,211,212,213,214,215,217,218,219,220,221,222,223,224,225,226,227,228,230,231,232,233,234,235],[213,220,221],[211,213,221,222],[212],[205,208,213],[213,217,221,222],[217],[211,213,216,280],[205,210,211,213,217,220],[239,269],[208,213,229,239,285,288],[45,49],[49],[45,49,122],[121,122,123,124,126,127,128,129,130,131,132,133,134,135,136],[49,134],[45,49,132],[45,49,122,125],[49,116],[45,49,116,182],[49,116,182],[49,160,161,162,164,169,173,175,178,183],[49,116,148,156,180,181,182,184],[151],[151,174],[160,161,162,163,164,165,166,167,168,169,170,172,173,175,176,178,179],[118,151,152,153,154,155,157,158,159],[116,151,159],[151,171],[118,147,148,151,152,153,154,155,157,158,159,177],[116],[116,156],[45,49,116,117,119,137,147,148,149,151,152,155,183,184,188,200],[152],[45,189],[119],[45,192],[45,137],[45,49,116,119,120,137,147,148,150,151,182,183,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199],[153],[45,49,116,137],[49,116,139,140,141,142],[49,139],[49,116,139],[49,116,119,138,143,144,145,146,147],[45,49,116,137,147,148,149,150,183],[82,83,84,85,86],[50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,87,90,94,102,105,110,111,112,113,115],[103,104],[91,92,93],[88,89],[106,107,108,109],[106],[95,96,97,98,99,100,101],[114],[44,45],[44,46,47,48],[43],[43,44],[45,49,182],[49,182],[49,160,161,162,164,169,173,175,178],[49,148,180,182],[148],[49,117,119,147,148,151,152,155,183,184,200],[49,116,119,146],[45,49,148]],"referencedMap":[[186,1],[296,2],[291,3],[293,4],[292,3],[295,5],[297,6],[202,7],[203,7],[238,8],[239,9],[240,10],[241,11],[242,12],[243,13],[244,14],[245,15],[246,16],[247,17],[248,17],[250,18],[249,19],[251,20],[252,21],[253,22],[237,23],[254,24],[255,25],[256,26],[288,27],[257,28],[258,29],[259,30],[260,31],[261,32],[262,33],[263,34],[264,35],[265,36],[266,37],[267,37],[268,38],[269,39],[271,40],[270,41],[272,42],[273,43],[274,44],[275,45],[276,46],[277,47],[278,48],[279,49],[280,50],[281,51],[282,52],[283,53],[284,54],[285,55],[286,56],[220,57],[227,58],[219,57],[234,59],[211,60],[210,61],[233,62],[228,63],[231,64],[213,65],[212,66],[208,67],[207,68],[230,69],[209,70],[214,71],[218,71],[236,72],[235,71],[222,73],[223,74],[225,75],[221,76],[224,77],[229,62],[216,78],[217,79],[226,80],[206,81],[232,82],[121,83],[124,84],[123,85],[137,86],[135,87],[134,84],[136,88],[132,83],[133,88],[126,89],[128,83],[131,83],[127,84],[130,1],[129,1],[117,90],[189,91],[191,92],[119,84],[120,1],[184,93],[183,94],[168,95],[167,95],[175,96],[166,95],[176,96],[180,97],[173,95],[162,95],[164,95],[161,95],[160,98],[179,99],[165,95],[163,95],[172,100],[169,95],[178,101],[170,95],[156,102],[171,102],[157,103],[185,1],[201,104],[197,1],[187,1],[153,105],[190,106],[177,107],[196,108],[198,1],[199,109],[192,1],[200,110],[155,105],[193,108],[147,83],[154,111],[195,108],[194,108],[150,112],[143,113],[145,114],[139,84],[146,115],[148,116],[151,117],[87,118],[50,84],[116,119],[105,120],[94,121],[93,84],[90,122],[110,123],[108,124],[102,125],[58,1],[56,1],[57,1],[53,84],[113,84],[60,84],[54,84],[115,126],[63,84],[62,84],[71,84],[52,84],[46,127],[49,128],[44,129],[48,130]],"exportedModulesMap":[[186,1],[296,2],[291,3],[293,4],[292,3],[295,5],[297,6],[202,7],[203,7],[238,8],[239,9],[240,10],[241,11],[242,12],[243,13],[244,14],[245,15],[246,16],[247,17],[248,17],[250,18],[249,19],[251,20],[252,21],[253,22],[237,23],[254,24],[255,25],[256,26],[288,27],[257,28],[258,29],[259,30],[260,31],[261,32],[262,33],[263,34],[264,35],[265,36],[266,37],[267,37],[268,38],[269,39],[271,40],[270,41],[272,42],[273,43],[274,44],[275,45],[276,46],[277,47],[278,48],[279,49],[280,50],[281,51],[282,52],[283,53],[284,54],[285,55],[286,56],[220,57],[227,58],[219,57],[234,59],[211,60],[210,61],[233,62],[228,63],[231,64],[213,65],[212,66],[208,67],[207,68],[230,69],[209,70],[214,71],[218,71],[236,72],[235,71],[222,73],[223,74],[225,75],[221,76],[224,77],[229,62],[216,78],[217,79],[226,80],[206,81],[232,82],[121,83],[124,84],[123,85],[137,86],[135,87],[134,84],[136,88],[132,83],[133,88],[126,89],[128,83],[131,83],[127,84],[130,1],[129,1],[117,84],[189,131],[191,132],[119,84],[120,1],[184,133],[183,134],[180,97],[178,135],[156,102],[185,1],[201,136],[197,1],[187,1],[190,1],[177,107],[196,1],[198,1],[199,1],[192,1],[200,84],[193,1],[147,83],[150,83],[143,90],[145,84],[139,84],[146,84],[148,137],[151,138],[87,118],[50,84],[116,119],[105,120],[94,121],[93,84],[90,122],[110,123],[108,124],[102,125],[58,1],[56,1],[57,1],[53,84],[113,84],[60,84],[54,84],[115,126],[63,84],[62,84],[71,84],[52,84],[46,127],[49,128],[44,129],[48,130]],"semanticDiagnosticsPerFile":[186,45,296,289,291,293,292,290,295,294,297,202,203,238,239,240,241,242,243,244,245,246,247,248,250,249,251,252,253,237,287,254,255,256,288,257,258,259,260,261,262,263,264,265,266,267,268,269,271,270,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,204,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,33,30,31,32,34,7,35,40,41,36,37,38,39,1,42,220,227,219,234,211,210,233,228,231,213,212,208,207,230,209,214,215,218,205,236,235,222,223,225,221,224,229,216,217,226,206,232,121,124,123,137,135,134,136,132,133,126,128,122,131,127,125,130,129,117,118,189,191,182,119,120,184,183,168,167,175,166,176,180,173,162,164,161,159,160,179,165,163,172,169,178,170,156,174,158,171,157,185,201,197,149,187,153,190,177,196,198,199,192,200,155,152,193,188,147,154,195,194,150,140,141,143,145,139,144,146,142,148,138,151,181,86,83,82,87,84,85,50,116,105,103,104,91,94,93,92,89,88,90,110,109,107,106,108,96,101,100,99,102,95,97,98,111,58,56,57,70,69,72,67,76,77,75,53,61,113,55,60,54,114,115,64,68,65,66,81,80,79,78,59,73,63,51,62,74,71,52,112,47,46,43,49,44,48]},"version":"4.9.5"}
1
+ {"program":{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../teleport-types/dist/cjs/helper.d.ts","../../../teleport-types/dist/cjs/uidl.d.ts","../../../../node_modules/@babel/types/lib/index.d.ts","../../../teleport-types/dist/cjs/generators.d.ts","../../../teleport-types/dist/cjs/errors.d.ts","../../../teleport-types/dist/cjs/vuidl.d.ts","../../../teleport-types/dist/cjs/index.d.ts","../../../teleport-shared/dist/cjs/constants/index.d.ts","../../../teleport-shared/dist/cjs/utils/string-utils.d.ts","../../../teleport-shared/dist/cjs/utils/uidl-utils.d.ts","../../../teleport-shared/dist/cjs/utils/generic.d.ts","../../../teleport-shared/dist/cjs/utils/local-imports.d.ts","../../../teleport-shared/dist/cjs/utils/js-identifiers.d.ts","../../../teleport-shared/dist/cjs/utils/ast-scope.d.ts","../../../teleport-shared/dist/cjs/utils/ast-statement-order.d.ts","../../../teleport-shared/dist/cjs/utils/ast-effect-cleanup.d.ts","../../../teleport-shared/dist/cjs/utils/route-paths.d.ts","../../../teleport-shared/dist/cjs/utils/layout-topology.d.ts","../../../teleport-shared/dist/cjs/utils/html-content-model.d.ts","../../../teleport-shared/dist/cjs/utils/style-declarations.d.ts","../../../teleport-shared/dist/cjs/utils/storefront-tax.d.ts","../../../teleport-shared/dist/cjs/utils/product-discounts.d.ts","../../../teleport-shared/dist/cjs/utils/product-ratings.d.ts","../../../teleport-shared/dist/cjs/utils/regional-pricing.d.ts","../../../teleport-shared/dist/cjs/utils/discount-engine.d.ts","../../../teleport-shared/dist/cjs/utils/product-options.d.ts","../../../teleport-shared/dist/cjs/utils/cart-line-pricing.d.ts","../../../teleport-shared/dist/cjs/utils/cart-currency.d.ts","../../../teleport-shared/dist/cjs/utils/table-access.d.ts","../../../teleport-shared/dist/cjs/utils/content-tables.d.ts","../../../teleport-shared/dist/cjs/utils/session-cookie-resolver.d.ts","../../../teleport-shared/dist/cjs/utils/subscription-access.d.ts","../../../teleport-shared/dist/cjs/utils/font-preconnect.d.ts","../../../teleport-shared/dist/cjs/utils/email-date.d.ts","../../../teleport-shared/dist/cjs/utils/email-sender.d.ts","../../../teleport-shared/dist/cjs/utils/rich-text-embeds.d.ts","../../../teleport-shared/dist/cjs/utils/rich-text-embeds-codegen.d.ts","../../../teleport-shared/dist/cjs/utils/rich-text-content.d.ts","../../../teleport-shared/dist/cjs/utils/rich-text-content-codegen.d.ts","../../../teleport-shared/dist/cjs/cache/constants.d.ts","../../../teleport-shared/dist/cjs/cache/client-runtime.d.ts","../../../teleport-shared/dist/cjs/cache/server-runtime.d.ts","../../../teleport-shared/dist/cjs/cache/version-store.d.ts","../../../teleport-shared/dist/cjs/cache/api-routes.d.ts","../../../teleport-shared/dist/cjs/cache/index.d.ts","../../../teleport-shared/dist/cjs/page-revalidate/constants.d.ts","../../../teleport-shared/dist/cjs/page-revalidate/api-route.d.ts","../../../teleport-shared/dist/cjs/page-revalidate/index.d.ts","../../../teleport-shared/dist/cjs/page-arrival/constants.d.ts","../../../teleport-shared/dist/cjs/page-arrival/runtime.d.ts","../../../teleport-shared/dist/cjs/page-arrival/page-export.d.ts","../../../teleport-shared/dist/cjs/page-arrival/index.d.ts","../../../teleport-shared/dist/cjs/scroll-scene/moment.d.ts","../../../teleport-shared/dist/cjs/scroll-scene/chapter-index.d.ts","../../../teleport-shared/dist/cjs/scroll-scene/points.d.ts","../../../teleport-shared/dist/cjs/scroll-scene/unclip.d.ts","../../../teleport-shared/dist/cjs/scroll-scene/helper-sources.generated.d.ts","../../../teleport-shared/dist/cjs/scroll-scene/engine-source.d.ts","../../../teleport-shared/dist/cjs/scroll-scene/controller-source.d.ts","../../../teleport-shared/dist/cjs/scroll-scene/index.d.ts","../../../teleport-shared/dist/cjs/motion-runtime/motion-engine-source.d.ts","../../../teleport-shared/dist/cjs/motion-runtime/scroll-video-engine-source.d.ts","../../../teleport-shared/dist/cjs/motion-runtime/index.d.ts","../../../teleport-shared/dist/cjs/page-transition/variants.d.ts","../../../teleport-shared/dist/cjs/page-transition/variant-sources.generated.d.ts","../../../teleport-shared/dist/cjs/page-transition/view-transition-css.d.ts","../../../teleport-shared/dist/cjs/page-transition/morph-source.d.ts","../../../teleport-shared/dist/cjs/page-transition/index.d.ts","../../../teleport-shared/dist/cjs/state-bindings/index.d.ts","../../../teleport-shared/dist/cjs/utils/web-push.d.ts","../../../teleport-shared/dist/cjs/utils/inline-script-error-guard.d.ts","../../../teleport-shared/dist/cjs/utils/owner-columns-sources.generated.d.ts","../../../teleport-shared/dist/cjs/utils/owner-columns.d.ts","../../../teleport-shared/dist/cjs/index.d.ts","../../src/array-mapper-pagination.ts","../../src/array-overlap-sql.ts","../../src/content-localization.ts","../../src/count-effect.ts","../../../teleport-plugin-common/dist/cjs/builders/ast-builders.d.ts","../../../teleport-plugin-common/dist/cjs/utils/parsed-ast.d.ts","../../../teleport-plugin-common/dist/cjs/builders/style-builders.d.ts","../../../teleport-plugin-common/dist/cjs/builders/hast-builders.d.ts","../../../teleport-plugin-common/dist/cjs/utils/types.d.ts","../../../teleport-plugin-common/dist/cjs/utils/ast-utils.d.ts","../../../teleport-plugin-common/dist/cjs/utils/style-utils.d.ts","../../../teleport-plugin-common/dist/cjs/utils/hast-utils.d.ts","../../../teleport-plugin-common/dist/cjs/utils/url-search-param-sync.d.ts","../../../teleport-plugin-common/dist/cjs/utils/url-query-writer.d.ts","../../../teleport-plugin-common/dist/cjs/utils/route-utils.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-jsx/types.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-jsx/utils.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-html/types.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-html/index.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-jsx/index.d.ts","../../../teleport-plugin-common/dist/cjs/index.d.ts","../../src/transformations/shared-utils.ts","../../src/transformations/category-taxonomy.ts","../../src/transformations/blog-adjacent-posts.ts","../../src/transformations/blog-comments.ts","../../src/transformations/heading-anchors.ts","../../src/transformations/blog-post.ts","../../src/transformations/custom-page.ts","../../src/transformations/booking-item.ts","../../src/transformations/ecommerce-product.ts","../../src/request-locale.ts","../../src/transformations/index.ts","../../src/isr.ts","../../src/sort-utils.ts","../../src/utils.ts","../../src/product-price-sort.ts","../../src/list-sort-order.ts","../../src/row-order.ts","../../src/product-filter-fields.ts","../../src/fetchers/utils/browser-row-policy.ts","../../src/fetchers/utils/table-access-guard.ts","../../src/fetchers/utils/request-sql-guards.ts","../../src/fetchers/pg-client-import.ts","../../src/fetchers/postgresql.ts","../../src/fetchers/mysql.ts","../../src/fetchers/mariadb.ts","../../src/fetchers/redshift.ts","../../src/fetchers/mongodb.ts","../../src/fetchers/redis.ts","../../src/fetchers/firestore.ts","../../src/fetchers/clickhouse.ts","../../src/fetchers/airtable.ts","../../src/fetchers/supabase.ts","../../src/fetchers/turso.ts","../../src/fetchers/utils/rest-api-response-cache.ts","../../src/fetchers/rest-api.ts","../../src/fetchers/javascript.ts","../../src/fetchers/utils/header-detection.ts","../../src/fetchers/csv-file.ts","../../src/fetchers/google-sheets.ts","../../src/localized-columns.ts","../../src/fetchers/teleport.ts","../../src/fetchers/raw-query.ts","../../src/fetchers/index.ts","../../src/validation.ts","../../src/cache/types.ts","../../src/data-source-fetchers.ts","../../src/count-fetchers.ts","../../src/filter-utils.ts","../../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../src/items-path.ts","../../src/repeater-page-size.ts","../../src/cache/ast.ts","../../src/loading-state.ts","../../src/cache/config.ts","../../src/pagination-controls.ts","../../src/range-control.ts","../../src/search-input.ts","../../src/search-clear.ts","../../src/numbered-pagination.ts","../../src/infinite-scroll.ts","../../src/page-reset.ts","../../src/page-url-sync.ts","../../src/pagination-plugin.ts","../../src/index.ts","../../../../node_modules/@types/node/assert.d.ts","../../../../node_modules/@types/node/assert/strict.d.ts","../../../../node_modules/buffer/index.d.ts","../../../../node_modules/undici-types/header.d.ts","../../../../node_modules/undici-types/readable.d.ts","../../../../node_modules/undici-types/file.d.ts","../../../../node_modules/undici-types/fetch.d.ts","../../../../node_modules/undici-types/formdata.d.ts","../../../../node_modules/undici-types/connector.d.ts","../../../../node_modules/undici-types/client.d.ts","../../../../node_modules/undici-types/errors.d.ts","../../../../node_modules/undici-types/dispatcher.d.ts","../../../../node_modules/undici-types/global-dispatcher.d.ts","../../../../node_modules/undici-types/global-origin.d.ts","../../../../node_modules/undici-types/pool-stats.d.ts","../../../../node_modules/undici-types/pool.d.ts","../../../../node_modules/undici-types/handlers.d.ts","../../../../node_modules/undici-types/balanced-pool.d.ts","../../../../node_modules/undici-types/agent.d.ts","../../../../node_modules/undici-types/mock-interceptor.d.ts","../../../../node_modules/undici-types/mock-agent.d.ts","../../../../node_modules/undici-types/mock-client.d.ts","../../../../node_modules/undici-types/mock-pool.d.ts","../../../../node_modules/undici-types/mock-errors.d.ts","../../../../node_modules/undici-types/proxy-agent.d.ts","../../../../node_modules/undici-types/api.d.ts","../../../../node_modules/undici-types/cookies.d.ts","../../../../node_modules/undici-types/patch.d.ts","../../../../node_modules/undici-types/filereader.d.ts","../../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../../node_modules/undici-types/websocket.d.ts","../../../../node_modules/undici-types/content-type.d.ts","../../../../node_modules/undici-types/cache.d.ts","../../../../node_modules/undici-types/interceptors.d.ts","../../../../node_modules/undici-types/index.d.ts","../../../../node_modules/@types/node/globals.d.ts","../../../../node_modules/@types/node/async_hooks.d.ts","../../../../node_modules/@types/node/buffer.d.ts","../../../../node_modules/@types/node/child_process.d.ts","../../../../node_modules/@types/node/cluster.d.ts","../../../../node_modules/@types/node/console.d.ts","../../../../node_modules/@types/node/constants.d.ts","../../../../node_modules/@types/node/crypto.d.ts","../../../../node_modules/@types/node/dgram.d.ts","../../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../../node_modules/@types/node/dns.d.ts","../../../../node_modules/@types/node/dns/promises.d.ts","../../../../node_modules/@types/node/domain.d.ts","../../../../node_modules/@types/node/dom-events.d.ts","../../../../node_modules/@types/node/events.d.ts","../../../../node_modules/@types/node/fs.d.ts","../../../../node_modules/@types/node/fs/promises.d.ts","../../../../node_modules/@types/node/http.d.ts","../../../../node_modules/@types/node/http2.d.ts","../../../../node_modules/@types/node/https.d.ts","../../../../node_modules/@types/node/inspector.d.ts","../../../../node_modules/@types/node/module.d.ts","../../../../node_modules/@types/node/net.d.ts","../../../../node_modules/@types/node/os.d.ts","../../../../node_modules/@types/node/path.d.ts","../../../../node_modules/@types/node/perf_hooks.d.ts","../../../../node_modules/@types/node/process.d.ts","../../../../node_modules/@types/node/punycode.d.ts","../../../../node_modules/@types/node/querystring.d.ts","../../../../node_modules/@types/node/readline.d.ts","../../../../node_modules/@types/node/readline/promises.d.ts","../../../../node_modules/@types/node/repl.d.ts","../../../../node_modules/@types/node/stream.d.ts","../../../../node_modules/@types/node/stream/promises.d.ts","../../../../node_modules/@types/node/stream/consumers.d.ts","../../../../node_modules/@types/node/stream/web.d.ts","../../../../node_modules/@types/node/string_decoder.d.ts","../../../../node_modules/@types/node/test.d.ts","../../../../node_modules/@types/node/timers.d.ts","../../../../node_modules/@types/node/timers/promises.d.ts","../../../../node_modules/@types/node/tls.d.ts","../../../../node_modules/@types/node/trace_events.d.ts","../../../../node_modules/@types/node/tty.d.ts","../../../../node_modules/@types/node/url.d.ts","../../../../node_modules/@types/node/util.d.ts","../../../../node_modules/@types/node/v8.d.ts","../../../../node_modules/@types/node/vm.d.ts","../../../../node_modules/@types/node/wasi.d.ts","../../../../node_modules/@types/node/worker_threads.d.ts","../../../../node_modules/@types/node/zlib.d.ts","../../../../node_modules/@types/node/globals.global.d.ts","../../../../node_modules/@types/node/index.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/cleanupSemantic.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/types.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/diffLines.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/printDiffs.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/index.d.ts","../../../../node_modules/@types/jest/node_modules/pretty-format/build/types.d.ts","../../../../node_modules/@types/jest/node_modules/pretty-format/build/index.d.ts","../../../../node_modules/@types/jest/index.d.ts","../../../../node_modules/@types/jest/ts3.2/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"14fc7efae8b184b18019a5906c6f6de752823b44ff1acf7924bbdc8877ded21b","0cd973ec76c11f38fbee521accd774d94e647a5ecdfcd37fd2215a2c1eab2fd0","8d27e5f73b75340198b2df36f39326f693743e64006bd7b88a925a5f285df628","dc263a1a1e08672548a9cbef9d7d5e0ff1dd8eac0c84f85164c32d9a038bf4c1","71a689048584cde03cb508408ae7c3b04ad8f10af887865e8b65c27ed9d91488","ea15aa0f31b82087b000902760cc275080f3461d7b54f4690c47e833c5c7c72c","6ba1631f84ef4507073189c4ada06d6de8bac89375ea3b49e34e49006cc44a3f","afa9397f3aa80897cec3ddec1dd6f7c8741106ce96090f74df790a474b114ed6","92191b36553596b13797dcb16cc740073eedba6c39ed67919091c6a662cc9e2b","016e13cb6b202723f41294ea8028ae51ab987e847808c6f637d5a890954a943c","03eba7f46dd2b83498cad321b675dbeb75aaaf905e142dfa200e396cc2bb34b6","9700893324b247e73746e2ad65cd540f34d25221beca55e2bfe3cc441c1b9331","ef444c3abed06ad312847e29b4ba4432f7c195314c4bb82a25ce95f95c778a5b","1b162486fa280dbee48fc4c144654d5f55efcc37b7fee14d797abfbdad9a949c","ac38f9ccc10049dd76ddfb68a4ac6647d36656d62d4c01cd32ce1386e6e56758","210a682e78eed1c7aae6824de615032daaf3fc60c2b0cd3720200b6d61f9fd19","3e39c53f8d84f8cab50817a177664b09180a2d7eebac4583789268f9fd589b84","ab05daec0e36402aa878f9e6bce5bbb4ca1766771a40287cc253744045349777","ecfca193bd5f4c5a96cdca608fcc5bdec30439d0648bc90795cabbe07927b777","26b70c898ac9086bfb061fa451c96bf0e67e0281cb8404c72bc4b8bed45670af","f4f8fcca308739066984c0c88307f10dfe0acf6c4865bf4650a3c1497b653e9b","50d566d584d04608d6e06d8c544c234253af732c73f998363ddb3a04a2df4e05","c5d4917e7d140434d0bdc89fe47a55cf9afbd86cdb8e9f477d9b34334cb3cb61","2aa114a2b67f4146383f941771223fe98dcc041c3698e220407d1f9365106427","b17a5fd5e005d7252375eff1a1cb52dcbe47824ba93f4fe3db7353e4751d9bca","ec767cf070c1d42b1991c36f0111a2dd8febd85b26619724f3fbf74fd2b79c63","dfab9272374142bbe65c81c4ec78d2481e92082ed1346f2c098a77698aa8af50","eff39c66a112b6f3acf3b454f335716c9bb53f740e9b9e744f5f0086a460621b","1a6e14b4b36c26f1703a572401beb92e70bb1b9c64024cc1580c0d592797466f","4ca57e6e96b8f1b434f5ec768437ac2e26a0b4aae1fcc7fce6cc53e5326dacb7","4d4186bbe2133dab5b49b318622268210d1c300bbe396e841184143c2074ed93","2f589957d4137051710d2490617788c42e8d942aee68a7f7748eedbece3ece3f","06b5e5cc740d5f6a42bfa15b647d03f1d265c237274e3ae240fa735467fe3773","85c1a4cf9f573ed7cb65596d82d315157ac03ff6914f578e6f0fdbca356557c7","b732caec6a9739b2081e32fea79b9421fd2952640c0ad8f51c5bf0dd43b68a5a","e07cc59642b0f0355143ba30ec2b85aac0c4fa001d44518d749a847b5637102b","6491b44a7c2062e8ab07ecc594d135455b613da78f45747cdc8910bb6895b703","936d2829924aee7935896c5f2aa7dc020b5717b3db1f32937dd268360fca8e59","b4cd9aa3470d00ef6b735fe588fb042c022167b8ae467b17b21b9ca3959966e2","a38a716bf00f98c44b63ea11a8f02dd1d7cc33deb445db79dd48f6ea50a93faf","2c010aad4ced0c836ea0c5d8b0465afe128c6dfab0fc0486df89e01d831128bf","4e6ff96a2db4fd3831ff16dc907e51fa41c417c57771712ab528db763eefc30d","e421033924a00045db6c0f30c05c1c008077828a39530fb5c742179eb56c28ed","33cae5e413c0ce1edeffeb0657a12b37e123a0eac472717561412d262f01f796","7864d42f488cf277d879b29b952dec989e11b02b4c04cf99595cbfafaf4a3775","9e3175e934351ab697ce308ec3d17814753ef7b5d6353d9ddccad2717fb2d6c1","b759b887b371b187d895e327f123947fe3eb06c84b2d44ec5b78d3c1414db867","ffc0b613a409eef6b3b31e2d62de2d2ac02af9d069873cf8d1e00523fde77953","c883b2e0b435636064fcb7b310e8f17634714f1a493d37c0db8cb6406af70e0e","008478ab03dd866b77d1cf78e3a53e245df296a1e84a40ea6cdc1c3c6730afb2","aa5f6ef69c09d67eee3474e774a65781621a713acc2d35cfea0fbfaa55d0b8b9","d3c3ec702c20d49d994f487dbe21b7d2122e2d9a9b66723f583c4a40907a20e9","f9a7de5bccb70d0d9b8ee3f4b5ecec5e7e4c24e3eafdb00465477a79f5d5368e","12d7e4e90100d13c67751a88603b2d2b9b76553a511b3d7e80abbb026b02fff3","f543917c15e23b15d59645189eb71d3b90bcd032a12b9a9cf021cb6f4d98870f","dddf0b1c71bb80048080fd367605b539e90d2abba950dec19edde226806da49e","398e086ea9212cef83a9578767d8f3b4c80d0cae9b3868a3e566937a8ddd8d13","efee42c8c03f4c8a4956bd707b7850707eb422452a1930dd94f7f5aee23f2f3e","0e6ba33fb789c880311fbff5c2eb465e9a8de7ad0e44be9da3f94e23baaed9d7","4c1bea47949bef5e0da753cdefbbd3d4c6b860ff76f52c0ea4d04413591f755e","5d8ec169397e42a7a7b7a7a40fd569bf6dacd48ad300a85846a1d0721e9091d5","4d4a5da3290bf9d162fb4bbe4c11b04f765e7ce9fe4df002e58379f40989149f","9321ea7e9b2e0429b902e2c6c55c0000f1f818738e0528390c173f69d1e18d14","fd264c72df27e7f742c9eae27e550770021b0a19faa223141326664f983b3e18","eb0e568ef4959ceeadcb7bf5894b27a4dc51819d1b9f036193e63dc566381667","298a6de293ca280de905c4aaeaf77667be56aa2e7021ce5828b241a2320b06f9","7ca739a3478e9b64c92da3ed910baa74a20bb3df241049f40e68be66fe42f5d8","8cea2126dad822c43da5a76ce4bd7609a0bf23e4862f1397461ec77b0e5d6b81","f8ca6c4f8fcaea5d3a0c045c733eca2847105b167b0aa90268019c13e8562224","bf3969bdd2ab34b12fb54067b9b1f8b81001fe63b613b8e0c6eed7763c8d3cfc","86cfa3fee635ad9bbb52616c83cd2b2406601ef12bfa58e715722109c8690094","a0a99773baa9798cf39798118868d865ba75d335c2847cab5627a016a865747b","5a1c7698c9d72d39874e161ff0e215a3c72d56535d5489fc3fd8455108283857","9c492137739134b5e4947dac0d15c6af617e2f3518d1c5e41d66cc74f082018e",{"version":"6cdbee86dee84fb542031c68129cc8f8efbf0008a8b56fc6b591046210abfbd1","signature":"268cc264987659f1004c96042c9c43c20aab8f07862bb9c5d2b981103eb1457c"},{"version":"4dcac0386a73d36085c5da1bce5768a677049eefdcc085bb9511d1da72e89fa4","signature":"60e80581bfcdd229875b0caa9cd8cf13eb00fa380772f0ce21af6b6c544a81e0"},{"version":"cba981588e9ba9f22ce1a1a00cf52e785f2eb03f7decfd1e634d45d40375a8b1","signature":"353f78ff1d46089f5e7883536a14ab23b14024e62d4f74e9ac6fb9a3c66c9056"},{"version":"684667231745a273ae7e756858dd06eeeb2aecbcdff44d45c8cb9a3c28ffb0bc","signature":"35832e0a54349055d83fa34253a38401053ab992d8377eb595e04f2134a97044"},"b7f5a08a542459965e03364a10ce321d28eb5dc96c7cef00a48cb89e455f8532","7d69ac79c9de7620a1bdd926fd4b20b8e968d6467a220eac2a836988ab47c933","d350fc146b46550e424850ab9f7e7d8951156584dbd27bf493e37d7d2300af87","51df45d44f1a2052bd14063736f385bfbdcfee3759fa5597c89f62b3bbdb02e5","10b2bb0a74b12ecbab5003ff91aa8b3da674f81a5d72fdd6f998bfaf664948c8","8707398fc0fe5cbb6fe5cd787c14539bdf86e498463de52c2a36c0b34f3e4593","3f4fe2fe5f1425cb3e04f5c898d990a1925a7c8a84548a4804f831cfaa2194cb","6ff754e93a1ef94f7a92e7f6f9b67357f3b25836ab36d66202d1d07343186ab7","1856c3bd0403423d30edce78e853b2af882bd2c66875cc9018e9c55384d86bb3","2ead83b6c419298ed2162580de49d95ea821f323ce5c9ea852b5d48c24b213a3","b94c5598c64ff8c5aa60f0aca1bf8d0f44ae7114ad9ad11c1d40fab0dd9e14c1","c5a688cd5edf1ae69f5c8f00b4ff311e10b68292fbe0adce6c1c95e961071faf","727d55976417f93cfc46d5e4b0dbd1f0127983595b02282c1a7879187d6b222c","48533e135178c91d9abe0789d1c09802696a42985217396ccfcfd1034a099a0e","dcaef7f7c1f0cb2dba19a1a70cc8d5276faa68e50bc69d6a006d3aaaaa9f7aa7","ffd67adf9464cf9bcddc3954fcd27d59b60e85acb02101fefe8b0eb642a2be2f","fc5a1e87e350e2e8be13fb933ab2b992b1191adaa9e7c5c5cbeb324ddf735130",{"version":"4f78bf92a42043c5e418011a170a17c85c68951ed4dd1771569491acb4ce5fce","signature":"79f979b9f84ca0e46aacfc04dc7849991e46425604a62d539eb00a0fb9bb0dac"},{"version":"02d94008b22a903c362c10911547a960278d4d6d877821fd82d3244e8711f8b2","signature":"219bf85fd8127a0bd9dbe162bfc07e96bb677111b36d14ef60336f668aa81c5a"},{"version":"62f34144d21aa3c2acbfdae482c107648f6ab5228a9080f0372c1552fa82ae17","signature":"0ad67c4e28d74d38fc8ff8fa2d46e9c1c7a855ecd22d97dc03a32a1fff851011"},{"version":"cd050b5b8bb22fcba2ba56e447d7b0d8a0001767ab3a80f7b32ca8df1ff4d4d3","signature":"4489b7d6532105c09ab95ed5f689a6b1f8eb34f65c2904ab4e494e1db2f359da"},{"version":"0d395bfb3a56f35f20fd7c2656628c07a19864fa649127b724da88ba54e84af1","signature":"7a7b661c375ed82a4ad47dd8eb2521081c92b02a9f75ac42bebae0bd9adf9827"},{"version":"0d2c650fe72965f1f8e8eeb3e49b0aed7caab032f98c1ca46ed078a53eb63ecb","signature":"015b6d535ea38e91577e89036fb7d1303061bb8d33fc77f34b91f0b2ddcbbeea"},{"version":"1a7c644a849da492c8f98ba40809933c7c698081b63f88223f8e0e670317a494","signature":"8ea6acd8a18024a6a29ae1fc5bcd54b06b4d0e6f2df2b271e358fc4e0a0b03e9"},{"version":"7034b221d1de43a5d736f7df267a99b649026be6b6f9cafe891da39f81b7230e","signature":"70466953c158166fefb4103325199d7f958de25086d05a7d5800c33dc53f548c"},{"version":"34a62972ba8e64c69983634a1e41f393b903064ebe28baa6531e232246c9ccd8","signature":"79c7630a7ab40c2f1928d649d49f289034007f555ec6209d42e63ecbb377fc5f"},{"version":"cdde4a7411afa725b7dfe69d1e447ae3747f74432c43116378fc6d008764d601","signature":"1c009fb97fbb380e41bd21ac5c0c0d838306b08291aad07e8bafcb38dd90ceef"},{"version":"6bfe187d4b49ac4be3b7adfbc6f9a29b0d00b21fd1d360a48fffccf74aba0c7e","signature":"95763bd7fb392cfc5cce8bc36b34e716cd4ed58e79748cd74d7cf506bbedbe29"},{"version":"089156ee8c662fc7994e505bb92f51e2ee3d35320c86c06881aaa451546dc7a6","signature":"5544c2af7ff781b56ab78a636432e0c005cfe2358409e1e30c9f2e95b06199e2"},{"version":"47283e940650c2c50dd1cbaebf9d733917a9535299c872b0ec12a1ff21c472f8","signature":"5558caa6c844039e0416746840265c2e6e8cce6131966f370cf5b8953ed6e26f"},{"version":"3d39ef297abf2aec1dc33c8524cd70e1672ac8789af10bab4dbbd893aedeab0f","signature":"51f86e02d981ace85b2891d60a582a198e9d8763774b627a24c73aac1d78518c"},{"version":"6e61130a7af393bafacd86bab3c3fac4ef023d4ce1e3558938f7cdfc95aa3773","signature":"90e0166a94af561e924ab900c27c7e9369a0c1cb8ee5bbc77d445fd12ba64ac3"},{"version":"666eb97e44416df90f746a7101906634b787af11f07763f0442478db0726f22b","signature":"494f1582341aa3b7be1baa798f65740c0483f9f14affc44e2001ea064672da08"},{"version":"a334f58eca8cab7c749e822b1408096f8c145c5c76422db83fca79f588346963","signature":"1dcde4675ac2bd31aa97d9dd7936467450bb3380d8029fa643d6bfd0fa6bcc91"},{"version":"025cd8d7a286a804dd32ea70c6d2c288b856b43e4488d16f93fe33f6bc5feb1b","signature":"ee367600ff6944f7801f5753e250464eb56b6c5c082e3c24644cee4506934967"},{"version":"d3e4526cb3a4eaed0bcbe222b3e8b17aba975ab7bd742124d0530c78a0302080","signature":"d99ea84ec64a6aad4e2bc073dfb906a9711e89254ec5a1fe461e60ab19a098c5"},{"version":"b16e5e4202c83ed6ee3cb8e89df938acce04875eea65ce04d449f657ea541c07","signature":"d05f310d205b987de01aff7ea98d5e61ab994b712e3411386c3ddc03fd8c2f34"},{"version":"cb81cfdf0f3862c556d15f3bcbe637663785061a31d8fc52beac41eaca3db9fa","signature":"1cdf8a91d50baabd675c881d797f7b8e389e242aebfabc2fac74942b72d57ef0"},{"version":"1cddd243ca7bb703596dcb372b36834276dc0c5bed90af2fcb20fae55811b666","signature":"8886b10bf66f142695dc07cc2336c562b16dfa1953d0da7fdbee75adde72f137"},{"version":"f39b470bad177e3021777fb6a2419f08fe4d26f3ce6563af7b82d638697da7aa","signature":"1a5b9b13364583e631cc535d831a71b0283ee157ee977bed83213115992e0e9f"},{"version":"131da3cf4eb281cc3254d1613bed2d0ab481f416c67eaa7b6e1636aaa86cefdf","signature":"d00193c90510e72ce2388a023e353fe46b5cdf19422f5161b9850335a986da2a"},{"version":"273814b2a2a0315af4bf28cc878ba6e9893bcb8f353b4cb82a3e0234fa8997f4","signature":"49f95af249a13fe4d6a4e010f6c962a3ad0b8c04b8239776860d739a6c7aebec"},{"version":"575180acae1ac7395b2fc273a4a3593faccfa5e198551a855d74f15d9e3577e1","signature":"0c15c7a95261653c1d169de2acd460951fd2da86797be3d66bae181229913028"},{"version":"8387af94540692dac1adeab0faab75a4c451c53303ac0ace44e026bad6edf6b5","signature":"42fd47b89f4fd4d1182b4dabb6cf21a207aecc9f18b9c64375a905f71ba7e27e"},{"version":"31e205165c2ba0b28905d1232bd63a3850d1c14f0528e9536dbe60c07af413e0","signature":"1435e8f6c5c4a872b7ccdd524445c2c0a3841c514f278e9f7fe89dd27f51e22c"},{"version":"7af8c5535a0af1e407b45e999495cebbbb2de3f0ea44b7697ca2b2593f4770b8","signature":"9252525bdbffa14530825b1742cc1dbac04dd14d6da54858b1e0f10b13d9486a"},{"version":"3d9d6c5233fa8ce56622de5332c2b4969f965311e0a795493562a509addb64cd","signature":"086cba5e2c20c4c1bd96751364704784fc769c874f961d49511e8a71eb455635"},{"version":"2ae8a324b65e121a64cbd4a5326e0cc5aeb9bb9fce0a05d5e3d556c8fec1965d","signature":"2a7fa42ab3eea43bd9ea8b87a44d66dd187e6b9bd3a92dfac9b94456cd3ee542"},{"version":"6c9f4e9501e9845ac63cda79d837a65d2962747902eeb8b3a4c208c33829f54f","signature":"05129746e5b08d401ebb1d0286ea7446ac7c867a003dc9c1e4f6ea8e546b4024"},{"version":"f2206981a7e6f43b96dfcd1c98a772e258922263c14684169f4de60d6e41215d","signature":"57800819a8bf58defe43f6529d610a62678fc94f0df6dd9c463a68fa795d8a5e"},{"version":"69ebeaf5e24e6b734c3711f4f0d3771b796126cfa47037503f4b74abf025f6e6","signature":"b8f0df5323b347434e1c9d8eb153e6266c9a26097c336d0da98aa20d074a4ab2"},{"version":"3edc5b4e334497c308bd7dbea3af45623911b17b810de230559e07bb2766a149","signature":"e174a43044ea557509070815d09a9bad989b1360808b43ca3451ee44391ec49e"},{"version":"3073c0701752e9928ee673b533c604d600b3990a99ee23dffb16a7c4b186aceb","signature":"37791c8e17a2d09885af3ae90cbf37cfc007d054422efca32fde77600aae2a56"},{"version":"b4f81c99b4783307322c0dda97fa6b295e53ca5c3749bb46dd46ff65114c7939","signature":"19bb513d1d82c0c13dfae8bd4609fdd77d257b213bb6286e2873abac15599b22"},{"version":"13a9433334635a2baa6ef8eb4e2ebb80b3c36fe56e5cd8e973679c6b837e0ebb","signature":"b3a57d9eea1fff68e106cc6489a3853c0402bd014eb827967e684953192d3907"},{"version":"ef9b66d853d9659603ed69e362ebe4bd1eac42a8b307c4cee1bc9515a219d147","signature":"7a5c1f79f55d6cfaf4adc1943e71e323072a0225ba261d2d8ba3a7eaec79205f"},{"version":"78270e8a30258b5c041f4737df6c2da86a2f44e13696f360b1fc94a96996b0c2","signature":"d0b6aee4a3cf4af1a3f8cf6405a5a22a75f3997267a34118a2302d4a707c2207"},{"version":"aa90cdf704cb07b7d2d535a55ce6b5b03559400337ee5e7d1c1e5d6263e0e95f","signature":"523fe17f8510a1d4d0ad40ad85e275bbf55770b517a98902f51841b92373c6ff"},{"version":"0ecb14560919c40fecfe557f8bfcafb1024101f6f25162a77e32a08d0a0ae97d","signature":"2cae52bb6c224e3876a820ba8458383890316cda2a3450b30313e77f21e79765"},{"version":"35a1eb1c55a2d086ba888a0a535a0939f44b123933a812a1b8e8bb3843762827","signature":"8e75557ea51b03d65950ff837701891eb1b6a6d8d3047d67c288daa208de8cc9"},{"version":"4fb8c0cc9c3c0f02789eb46932de57ff337f279eed83405ab60c7fabbffd2479","signature":"dc8beebd62666f0f499f3d19afcd511268409762b733344538c18dd9d269102e"},{"version":"475c1c69558ea9267615a81295d7a68a80a50406c1bedab5bad2a717dc172ac7","signature":"d61c99152b49569aa8f1fb7f987505ac3729c61921dbbf8e2f56c8c5240fa1d1"},{"version":"5e9772b844e25c9c2b2d999c0c4fd8faae905d2bf69906d80cbfe4f0bdaf7d9e","signature":"f7d9c6dec3275577fd23467e961720a323dc971e0b49a1e3d990ae9ed3cd0fdc"},{"version":"d297242c3eb9d49dd3008a49791a1c0171dbf5e12ef6c088494a8c5af7b2cc15","signature":"b7e105389681fd52ac69f81882168ec249a2b06b1462734e47e8e8d72d8aa702"},{"version":"9a464d4934232ee7b46076c9527f1528e4063a382339a75d19ce6f811baefa45","signature":"68eac89965a2870d954cb902c06857bac55743d257b00b4e8b87e1e1d4ae534a"},"1c2cd862994b1fbed3cde0d1e8de47835ff112d197a3debfddf7b2ee3b2c52bc",{"version":"e8ef8d06fa5aac8857b67097feebaf9891aec3dd866407d831fc5add210f6400","signature":"fb8c328fc39a5305574b44bfd661af1f60c8ad518b31ca89744a94833e69a5ea"},{"version":"c13feb2d79a36bc141fa284dad0bae2296646fa8c27e72c11df334d6a3f7d59a","signature":"439059312e2d5bee157c5f5574d47878ff95375f68f7afec7df9035b6d332f62"},{"version":"12eeb37c401688294b28fc79ff80358ffd9464859058b58dac3d1ea558ab46a4","signature":"4360a3f5135853b70eb174bddcca32ad1659259199ba38bd02500f5c61232b93"},{"version":"62f2f9d74155cdc229285c0f32309a14a0f88cacae05ac0d710d52f63d79d66a","signature":"f893712b80f33464781c24aa316ee7c4001fb72c29308b8cf4d00eedec35983a"},{"version":"9aa8a1d15fb1eb78be9fc60e652ac7388ac2d9373b65f68b91d01b73a900d1e9","signature":"e7dcdfa55263d1e25ec069f2a5961820ef5adfa15a872df7db2c681c0eb8b7fc"},{"version":"731c8ffb641e9045788602ebbc68055d54b4bf480012f383858ed1a4ca5d1dc0","signature":"85c68802d35d9de622dab5a439741d5dc02224f8402db33045030f50327dea5a"},{"version":"9c86e8231618d3bfd8914197259827ae0a1d7c680d6841f65903c4c276beff21","signature":"b132e30240b3815c8d5f01df6019ab90210b01058f80ea5f61a12caba9385c3c"},{"version":"57a879856970e845b6a0d33f3a0195b6e9e41d87e74ce677a87bb09ce3d0df2c","signature":"7eac4ac9c9102815fc7d7f945936e6385dcdd02f08431fd51502746ea14cd6a1"},{"version":"9d4c876c3b41f1e847111468b026de8ab6fd76f6a83a006b74ae4486bfb17d8d","signature":"a8877ed5d5f1c82b698f0955f52b886444d4032000f99c7974db12c762a9ac3c"},{"version":"f040b03e287f16c159aaa7ced52f6f698d6f553f2a09420b2c982cfba9cf36fe","signature":"62cfd6415b218eb3b90df0478f308a7cf0a2cf6786297f9554f69d97a60fb8ed"},{"version":"ead51a01a4ea31fb330cc2db0b08eb35e8e1c66817b33eac0bf8b2186ffcd97c","signature":"0d4784a61e0314a09ecdb2eec0b20b8f6a3dce6a16b4bfcc8da2c8f05449e8de"},{"version":"412fd0eadc97e066a549ff62f47b483d46f4129e30f73232c7e8b08e9115c2ab","signature":"c4c88392a90c5f81574222e3d3b04616bbe5b33629df1aa6575ed97f8c0ce025"},{"version":"7650de377ba0cccdfaba9b01da4697b87be6103bd362827b35f014feceb61bde","signature":"e03f059fea2a127ec145b680750d40578b15493e13e24604fca4b77c383b5b7d"},{"version":"567fd9525e2a94327ba2d3276bfbeee4bc6814ad99bcb7efcd14cc9b09ba920b","signature":"81edd44b1cc80a705e38f13a4c9238f25ff8181147f1c729f28c00b5ae539eec"},{"version":"743c1f333d238304b35dca3064cdd81106503b018a391869f3c44721a83a1a37","signature":"f29857ae6d99b956cb463e1e359802b2ab5b747f0712a5f243e9358b573d0b5f"},"0b4bc32128fda7bb0752cf284730dd3a817aae04a3d7f92e3b2d54bd61362fe1","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"5f290ea7efbe9d8431e10df12c0d5672b67988e7c171c2d356749fac70347a55","affectsGlobalScope":true},"39b1a50d543770780b0409a4caacb87f3ff1d510aedfeb7dc06ed44188256f89",{"version":"49c89f8fa09d21c161e6a367448639e032f42d77cc2ec8ab54ecb8fa9a3ad59f","affectsGlobalScope":true},"e4b50850c2a62c7750428e452ee24b167180104d514d5e5c0ca691753365f610","304504c854c47a55ab4a89111a27a2daf8a3614740bd787cc1f2c51e5574239c",{"version":"95f9129a37dcace36e17b061a8484952586ecfe928c9c8ce526de1a2f4aaefa7","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","0f9061846236850a872cb44097d071631e93c8749a8b16c191fe3c2a48faede4","e46fa644658c2d6e5c85e954ea76b92c97d63f0851d3ccdab8c2a80d5962aaa9","1c611ff373ce1958aafc40b328048ac2540ba5c7f373cf2897e0d9aeaabe90a0","a307d22a0130ac94c1a17fffa6d57ac272deb5838cb966a9420911d259cdf1be","d2e415abf6cb81ac9e2700b4db5ea7be76b997e812285b8e5e1e414eb2750b6e","09d6cebdced6aa1181ac1523c8f22a133f5ed80589678b64051f0602f0518374",{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true},{"version":"7c35691dc3972ff1507d8dd279d833f540973d0917bde22e191cf7a8feaac29f","affectsGlobalScope":true},"62662d7a886e5cfa870685720fd27b763743ca4d2cf29326f75d76606a64eadd","b8c670688bd228d3cc9c169690b09b687188c50ff263a94df63b207701105ad9","d8e16905907111390d5a943816306ae997dfe56476f14142166f8b13ee322eea","8068c911a1c40bc6c5ffc58c625b21d807778f6aa6d63a73e6f04f88bcac5b79","a1dbce56ad5f3a37caafb9033c9d190a199217d673f5fa099c8968d471a2fdaa","c6f77efcc19f51c8759779b6b6ee0d88046c15c15dadac8ffed729a6620daf39",{"version":"089867511b37a534ae71f3d9bc97acc0b925b7f5dbec113f98c4b49224c694eb","affectsGlobalScope":true},"269d0ea3202820c29a32c1f2a357837a4f1918426844f7e7c90af15ec40d1dc1","66432f885e30cf471573de22a5af5eca9ab46b37b122aec98beadf77e9b7df24","323506ce173f7f865f42f493885ee3dacd18db6359ea1141d57676d3781ce10c",{"version":"034e635df3c014df1d6b1110b724ca0c4d2d324b45a84974c7d6931f9cf95ea7","affectsGlobalScope":true},{"version":"87f9456115554cb0f78f098ddbd585096871c19d2d05274c1b1b4ade3151da78","affectsGlobalScope":true},"ea3ab3727cd6c222d94003ecafa30e8550c61eadcdabbf59514aee76e86211a5","d3cdd41693c5ed6bec4f1a1c399d9501372b14bd341bc46eedacf2854c5df5a7","2de7a21c92226fb8abbeed7a0a9bd8aa6d37e4c68a8c7ff7938c644267e9fcc1","6d6070c5c81ba0bfe58988c69e3ba3149fc86421fd383f253aeb071cbf29cd41","da618f0ea09d95c3b51514de43bf97dab008c85bede58aa57cf95e4984c7c957","48a35b181ecf47dbbc0a7ab4b5ba778d91eaa838ba42bf4aaaead42be77ef39a","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","5195aeb0de306d1c5ca8033457fbcab5987657112fa6d4971cfeb7644493a369","c5dbf0003bc9f0f643e54cd00a3868d1afe85497fecb56be6f2373dc85102924",{"version":"ce73eb199c4bf96c015f069aac161488ed73ebeaea3d87b6d5aa9a968a7b38d4","affectsGlobalScope":true},{"version":"300f8e9de0b0c3482be3e749462b6ebc3dab8a316801f1da0def94aed0cd2018","affectsGlobalScope":true},"4e228e78c1e9b0a75c70588d59288f63a6258e8b1fe4a67b0c53fe03461421d9","962f105729d5b888c8b70e193f6020ee92c6c8144c827de40f80d65dd188ad7f","ac74e2b754fba690036f8221d978f6debb867462b87af254f24e924b677395d0","80858f6de9af22e53aff221fe3590215ea544c2aeb2cc60cf8e08a9c785c8fef",{"version":"068b8ee5c2cd90d7a50f2efadbbe353cb10196a41189a48bf4b2a867363012b4","affectsGlobalScope":true},{"version":"340659b96782f5813aad6c1f89ea1b83b2f3fa993115c7b30366375d9bae5a4e","affectsGlobalScope":true},"6f44a190351ab5e1811abebe007cf60518044772ccc08244f9f241706afa767f","fecdf44bec4ee9c5188e5f2f58c292c9689c02520900dceaaa6e76594de6da90","cf45d0510b661f1da461479851ff902f188edb111777c37055eff12fa986a23a",{"version":"895ca532c15c77cbb6a871af1870b57bcd0ca4f38a1bd69669dd0e95bb58565a","affectsGlobalScope":true},"f2b9440f98d6f94c8105883a2b65aee2fce0248f71f41beafd0a80636f3a565d",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","e222104af6cb9415238ad358488b74d76eceeff238c1268ec6e85655b05341da","69da61a7b5093dac77fa3bec8be95dcf9a74c95a0e9161edb98bb24e30e439d2","eba230221317c985ab1953ccc3edc517f248b37db4fef7875cb2c8d08aff7be7","b83e796810e475da3564c6515bc0ae9577070596a33d89299b7d99f94ecfd921","b4439890c168d646357928431100daac5cbdee1d345a34e6bf6eca9f3abe22bc","5d72971a459517c44c1379dab9ed248e87a61ba0a1e0f25c9d67e1e640cd9a09","02d734976af36f4273d930bea88b3e62adf6b078cf120c1c63d49aa8d8427c5c",{"version":"f624e578325b8c58e55b30c998b1f4c3ec1b61a9fa66373da4250c89b7880d44","affectsGlobalScope":true},{"version":"d3002f620eab4bf6476c9da5c0efb2041d46f7df8b3032a5631bd206abef2c75","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"declarationMap":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"noImplicitAny":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","sourceMap":true,"target":1},"fileIdsList":[[45],[293,295],[289,290],[289,290,291,292],[294],[296],[202],[238],[239,244,272],[240,251,252,259,269,280],[240,241,251,259],[242,281],[243,244,252,260],[244,269,277],[245,247,251,259],[238,246],[247,248],[251],[249,251],[238,251],[251,252,253,269,280],[251,252,253,266,269,272],[236,285],[247,251,254,259,269,280],[251,252,254,255,259,269,277,280],[254,256,269,277,280],[202,203,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287],[251,257],[258,280,285],[247,251,259,269],[260],[261],[238,262],[263,279,285],[264],[265],[251,266,267],[266,268,281,283],[239,251,269,270,271,272],[239,269,271],[269,270],[272],[273],[238,269],[251,275,276],[275,276],[244,259,269,277],[278],[259,279],[239,254,265,280],[244,281],[269,282],[258,283],[284],[239,244,251,253,262,269,280,283,285],[269,286],[213,217,280],[213,269,280],[208],[210,213,277,280],[259,277],[288],[208,288],[210,213,259,280],[205,206,209,212,239,251,269,280],[205,211],[209,213,239,272,280,288],[239,288],[229,239,288],[207,208,288],[213],[207,208,209,210,211,212,213,214,215,217,218,219,220,221,222,223,224,225,226,227,228,230,231,232,233,234,235],[213,220,221],[211,213,221,222],[212],[205,208,213],[213,217,221,222],[217],[211,213,216,280],[205,210,211,213,217,220],[239,269],[208,213,229,239,285,288],[45,49],[49],[45,49,122],[121,122,123,124,126,127,128,129,130,131,132,133,134,135,136],[49,134],[45,49,132],[45,49,122,125],[49,116],[45,49,116,182],[49,116,182],[49,160,161,162,164,169,173,175,178,183],[49,116,148,156,180,181,182,184],[151],[151,174],[160,161,162,163,164,165,166,167,168,169,170,172,173,175,176,178,179],[118,151,152,153,154,155,157,158,159],[116,151,159],[151,171],[118,147,148,151,152,153,154,155,157,158,159,177],[116],[116,156],[45,49,116,117,119,137,147,148,149,151,152,155,183,184,188,200],[152],[45,189],[119],[45,192],[45,137],[45,49,116,119,120,137,147,148,150,151,182,183,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199],[153],[45,49,116,137],[49,116,139,140,141,142],[49,139],[49,116,139],[49,116,119,138,143,144,145,146,147],[45,49,116,137,147,148,149,150,183],[82,83,84,85,86],[50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,87,90,94,102,105,110,111,112,113,115],[103,104],[91,92,93],[88,89],[106,107,108,109],[106],[95,96,97,98,99,100,101],[114],[44,45],[44,46,47,48],[43],[43,44],[45,49,182],[49,182],[49,160,161,162,164,169,173,175,178],[49,148,180,182],[148],[49,117,119,147,148,151,152,155,183,184,200],[49,116,119,146],[45,49,148]],"referencedMap":[[186,1],[296,2],[291,3],[293,4],[292,3],[295,5],[297,6],[202,7],[203,7],[238,8],[239,9],[240,10],[241,11],[242,12],[243,13],[244,14],[245,15],[246,16],[247,17],[248,17],[250,18],[249,19],[251,20],[252,21],[253,22],[237,23],[254,24],[255,25],[256,26],[288,27],[257,28],[258,29],[259,30],[260,31],[261,32],[262,33],[263,34],[264,35],[265,36],[266,37],[267,37],[268,38],[269,39],[271,40],[270,41],[272,42],[273,43],[274,44],[275,45],[276,46],[277,47],[278,48],[279,49],[280,50],[281,51],[282,52],[283,53],[284,54],[285,55],[286,56],[220,57],[227,58],[219,57],[234,59],[211,60],[210,61],[233,62],[228,63],[231,64],[213,65],[212,66],[208,67],[207,68],[230,69],[209,70],[214,71],[218,71],[236,72],[235,71],[222,73],[223,74],[225,75],[221,76],[224,77],[229,62],[216,78],[217,79],[226,80],[206,81],[232,82],[121,83],[124,84],[123,85],[137,86],[135,87],[134,84],[136,88],[132,83],[133,88],[126,89],[128,83],[131,83],[127,84],[130,1],[129,1],[117,90],[189,91],[191,92],[119,84],[120,1],[184,93],[183,94],[168,95],[167,95],[175,96],[166,95],[176,96],[180,97],[173,95],[162,95],[164,95],[161,95],[160,98],[179,99],[165,95],[163,95],[172,100],[169,95],[178,101],[170,95],[156,102],[171,102],[157,103],[185,1],[201,104],[197,1],[187,1],[153,105],[190,106],[177,107],[196,108],[198,1],[199,109],[192,1],[200,110],[155,105],[193,108],[147,83],[154,111],[195,108],[194,108],[150,112],[143,113],[145,114],[139,84],[146,115],[148,116],[151,117],[87,118],[50,84],[116,119],[105,120],[94,121],[93,84],[90,122],[110,123],[108,124],[102,125],[58,1],[56,1],[57,1],[53,84],[113,84],[60,84],[54,84],[115,126],[63,84],[62,84],[71,84],[52,84],[46,127],[49,128],[44,129],[48,130]],"exportedModulesMap":[[186,1],[296,2],[291,3],[293,4],[292,3],[295,5],[297,6],[202,7],[203,7],[238,8],[239,9],[240,10],[241,11],[242,12],[243,13],[244,14],[245,15],[246,16],[247,17],[248,17],[250,18],[249,19],[251,20],[252,21],[253,22],[237,23],[254,24],[255,25],[256,26],[288,27],[257,28],[258,29],[259,30],[260,31],[261,32],[262,33],[263,34],[264,35],[265,36],[266,37],[267,37],[268,38],[269,39],[271,40],[270,41],[272,42],[273,43],[274,44],[275,45],[276,46],[277,47],[278,48],[279,49],[280,50],[281,51],[282,52],[283,53],[284,54],[285,55],[286,56],[220,57],[227,58],[219,57],[234,59],[211,60],[210,61],[233,62],[228,63],[231,64],[213,65],[212,66],[208,67],[207,68],[230,69],[209,70],[214,71],[218,71],[236,72],[235,71],[222,73],[223,74],[225,75],[221,76],[224,77],[229,62],[216,78],[217,79],[226,80],[206,81],[232,82],[121,83],[124,84],[123,85],[137,86],[135,87],[134,84],[136,88],[132,83],[133,88],[126,89],[128,83],[131,83],[127,84],[130,1],[129,1],[117,84],[189,131],[191,132],[119,84],[120,1],[184,133],[183,134],[180,97],[178,135],[156,102],[185,1],[201,136],[197,1],[187,1],[190,1],[177,107],[196,1],[198,1],[199,1],[192,1],[200,84],[193,1],[147,83],[150,83],[143,90],[145,84],[139,84],[146,84],[148,137],[151,138],[87,118],[50,84],[116,119],[105,120],[94,121],[93,84],[90,122],[110,123],[108,124],[102,125],[58,1],[56,1],[57,1],[53,84],[113,84],[60,84],[54,84],[115,126],[63,84],[62,84],[71,84],[52,84],[46,127],[49,128],[44,129],[48,130]],"semanticDiagnosticsPerFile":[186,45,296,289,291,293,292,290,295,294,297,202,203,238,239,240,241,242,243,244,245,246,247,248,250,249,251,252,253,237,287,254,255,256,288,257,258,259,260,261,262,263,264,265,266,267,268,269,271,270,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,204,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,33,30,31,32,34,7,35,40,41,36,37,38,39,1,42,220,227,219,234,211,210,233,228,231,213,212,208,207,230,209,214,215,218,205,236,235,222,223,225,221,224,229,216,217,226,206,232,121,124,123,137,135,134,136,132,133,126,128,122,131,127,125,130,129,117,118,189,191,182,119,120,184,183,168,167,175,166,176,180,173,162,164,161,159,160,179,165,163,172,169,178,170,156,174,158,171,157,185,201,197,149,187,153,190,177,196,198,199,192,200,155,152,193,188,147,154,195,194,150,140,141,143,145,139,144,146,142,148,138,151,181,86,83,82,87,84,85,50,116,105,103,104,91,94,93,92,89,88,90,110,109,107,106,108,96,101,100,99,102,95,97,98,111,58,56,57,70,69,72,67,76,77,75,53,61,113,55,60,54,114,115,64,68,65,66,81,80,79,78,59,73,63,51,62,74,71,52,112,47,46,43,49,44,48]},"version":"4.9.5"}
@@ -27,7 +27,7 @@ export var validateCSVConfig = function (config) {
27
27
  return { isValid: true };
28
28
  };
29
29
  var generateHandlerBody = function () {
30
- return "\n try {\n const { query, queryColumns, limit, page, perPage, sortBy, sortOrder, filters, sorts, offset: offsetParam } = req.query\n \n const labelToIdMap = {}\n columns.forEach((col) => {\n if (col.label && col.id) {\n labelToIdMap[col.label] = col.id\n }\n })\n \n let filteredData = [...data]\n \n if (query) {\n const searchQuery = query.toLowerCase()\n \n if (queryColumns) {\n const searchColumns = safeJSONParse(queryColumns)\n filteredData = filteredData.filter((item) => {\n return searchColumns.some((col) => {\n const field = labelToIdMap[col] || col\n const value = getNestedValue(item, field)\n return value && String(value).toLowerCase().includes(searchQuery)\n })\n })\n } else {\n filteredData = filteredData.filter((item) => {\n try {\n const stringified = JSON.stringify(item).toLowerCase()\n return stringified.includes(searchQuery)\n } catch {\n return false\n }\n })\n }\n }\n \n if (filters) {\n const filterTree = normalizeFilterTree(safeJSONParse(filters))\n \n if (filterTree) {\n filteredData = filteredData.filter((item) =>\n evaluateFilterTree(filterTree, (condition) => {\n const field = labelToIdMap[condition.source] || condition.source\n const value = getNestedValue(item, field)\n const target = condition.destination\n const operand = condition.operand\n \n if (Array.isArray(target)) {\n if (operand === '!=') {\n return !target.includes(value)\n }\n return target.includes(value)\n }\n \n return compareValues(value, target, operand)\n })\n )\n }\n }\n \n if (sorts) {\n const parsedSorts = safeJSONParse(sorts)\n if (Array.isArray(parsedSorts) && parsedSorts.length > 0) {\n filteredData.sort((a, b) => {\n for (const sort of parsedSorts) {\n if (!sort.field) continue\n const field = labelToIdMap[sort.field] || sort.field\n const aVal = getNestedValue(a, field)\n const bVal = getNestedValue(b, field)\n const sortOrderValue = (sort.order || '').toLowerCase().startsWith('desc') ? -1 : 1\n \n let comparison = 0\n if (aVal === null || aVal === undefined) {\n comparison = bVal === null || bVal === undefined ? 0 : -1\n } else if (bVal === null || bVal === undefined) {\n comparison = 1\n } else if (typeof aVal === 'number' && typeof bVal === 'number') {\n comparison = aVal - bVal\n } else if (aVal instanceof Date && bVal instanceof Date) {\n comparison = aVal.getTime() - bVal.getTime()\n } else {\n const aStr = String(aVal)\n const bStr = String(bVal)\n if (aStr < bStr) comparison = -1\n else if (aStr > bStr) comparison = 1\n }\n \n if (comparison !== 0) return comparison * sortOrderValue\n }\n return 0\n })\n }\n } else if (sortBy) {\n const field = labelToIdMap[sortBy] || sortBy\n filteredData.sort((a, b) => {\n const aVal = getNestedValue(a, field)\n const bVal = getNestedValue(b, field)\n const sortOrderValue = (sortOrder || '').toLowerCase().startsWith('desc') ? -1 : 1\n \n let comparison = 0\n if (aVal === null || aVal === undefined) {\n comparison = bVal === null || bVal === undefined ? 0 : -1\n } else if (bVal === null || bVal === undefined) {\n comparison = 1\n } else if (typeof aVal === 'number' && typeof bVal === 'number') {\n comparison = aVal - bVal\n } else if (aVal instanceof Date && bVal instanceof Date) {\n comparison = aVal.getTime() - bVal.getTime()\n } else {\n const aStr = String(aVal)\n const bStr = String(bVal)\n if (aStr < bStr) comparison = -1\n else if (aStr > bStr) comparison = 1\n }\n \n return comparison * sortOrderValue\n })\n }\n \n const limitValue = limit || perPage\n const offsetValue = offsetParam !== undefined ? parseInt(offsetParam) : (page && perPage ? (parseInt(page) - 1) * parseInt(perPage) : 0)\n \n if (limitValue) {\n filteredData = filteredData.slice(offsetValue, offsetValue + parseInt(limitValue))\n }\n \n const safeData = JSON.parse(JSON.stringify(filteredData, dateReplacer))\n \n return res.status(200).json({\n success: true,\n data: safeData,\n timestamp: Date.now()\n })\n } catch (error) {\n console.error('CSV fetch error:', error)\n return res.status(500).json({\n success: false,\n error: error.message || 'Failed to fetch data',\n timestamp: Date.now()\n })\n }\n";
30
+ return "\n try {\n const { query, queryColumns, limit, page, perPage, sortBy, sortOrder, filters, sorts, offset: offsetParam } = req.query\n \n const labelToIdMap = {}\n columns.forEach((col) => {\n if (col.label && col.id) {\n labelToIdMap[col.label] = col.id\n }\n })\n \n let filteredData = [...data]\n \n if (query) {\n const searchTerms = query.toLowerCase().split(' ').filter(Boolean)\n \n if (queryColumns) {\n const searchColumns = safeJSONParse(queryColumns)\n filteredData = filteredData.filter((item) => {\n return searchTerms.every((term) => searchColumns.some((col) => {\n const field = labelToIdMap[col] || col\n const value = getNestedValue(item, field)\n return value && String(value).toLowerCase().includes(term)\n }))\n })\n } else {\n filteredData = filteredData.filter((item) => {\n try {\n const stringified = JSON.stringify(item).toLowerCase()\n return searchTerms.every((term) => stringified.includes(term))\n } catch {\n return false\n }\n })\n }\n }\n \n if (filters) {\n const filterTree = normalizeFilterTree(safeJSONParse(filters))\n \n if (filterTree) {\n filteredData = filteredData.filter((item) =>\n evaluateFilterTree(filterTree, (condition) => {\n const field = labelToIdMap[condition.source] || condition.source\n const value = getNestedValue(item, field)\n const target = condition.destination\n const operand = condition.operand\n \n if (Array.isArray(target)) {\n if (operand === '!=') {\n return !target.includes(value)\n }\n return target.includes(value)\n }\n \n return compareValues(value, target, operand)\n })\n )\n }\n }\n \n if (sorts) {\n const parsedSorts = safeJSONParse(sorts)\n if (Array.isArray(parsedSorts) && parsedSorts.length > 0) {\n filteredData.sort((a, b) => {\n for (const sort of parsedSorts) {\n if (!sort.field) continue\n const field = labelToIdMap[sort.field] || sort.field\n const aVal = getNestedValue(a, field)\n const bVal = getNestedValue(b, field)\n const sortOrderValue = (sort.order || '').toLowerCase().startsWith('desc') ? -1 : 1\n \n let comparison = 0\n if (aVal === null || aVal === undefined) {\n comparison = bVal === null || bVal === undefined ? 0 : -1\n } else if (bVal === null || bVal === undefined) {\n comparison = 1\n } else if (typeof aVal === 'number' && typeof bVal === 'number') {\n comparison = aVal - bVal\n } else if (aVal instanceof Date && bVal instanceof Date) {\n comparison = aVal.getTime() - bVal.getTime()\n } else {\n const aStr = String(aVal)\n const bStr = String(bVal)\n if (aStr < bStr) comparison = -1\n else if (aStr > bStr) comparison = 1\n }\n \n if (comparison !== 0) return comparison * sortOrderValue\n }\n return 0\n })\n }\n } else if (sortBy) {\n const field = labelToIdMap[sortBy] || sortBy\n filteredData.sort((a, b) => {\n const aVal = getNestedValue(a, field)\n const bVal = getNestedValue(b, field)\n const sortOrderValue = (sortOrder || '').toLowerCase().startsWith('desc') ? -1 : 1\n \n let comparison = 0\n if (aVal === null || aVal === undefined) {\n comparison = bVal === null || bVal === undefined ? 0 : -1\n } else if (bVal === null || bVal === undefined) {\n comparison = 1\n } else if (typeof aVal === 'number' && typeof bVal === 'number') {\n comparison = aVal - bVal\n } else if (aVal instanceof Date && bVal instanceof Date) {\n comparison = aVal.getTime() - bVal.getTime()\n } else {\n const aStr = String(aVal)\n const bStr = String(bVal)\n if (aStr < bStr) comparison = -1\n else if (aStr > bStr) comparison = 1\n }\n \n return comparison * sortOrderValue\n })\n }\n \n const limitValue = limit || perPage\n const offsetValue = offsetParam !== undefined ? parseInt(offsetParam) : (page && perPage ? (parseInt(page) - 1) * parseInt(perPage) : 0)\n \n if (limitValue) {\n filteredData = filteredData.slice(offsetValue, offsetValue + parseInt(limitValue))\n }\n \n const safeData = JSON.parse(JSON.stringify(filteredData, dateReplacer))\n \n return res.status(200).json({\n success: true,\n data: safeData,\n timestamp: Date.now()\n })\n } catch (error) {\n console.error('CSV fetch error:', error)\n return res.status(500).json({\n success: false,\n error: error.message || 'Failed to fetch data',\n timestamp: Date.now()\n })\n }\n";
31
31
  };
32
32
  export var generateCSVFileFetcher = function (config) {
33
33
  var csvConfig = config;
@@ -1 +1 @@
1
- {"version":3,"file":"csv-file.js","sourceRoot":"","sources":["../../../src/fetchers/csv-file.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AAEtE,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAC/B,MAA+B;IAE/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;KAClE;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;QAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,mDAAmD,EAAE,CAAA;KACtF;IAED,IAAI,MAAM,CAAC,WAAW,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE;QAChE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;KAClE;IAED,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QAC1D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAA;KACjE;IAED,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,qCAAqC,EAAE,CAAA;SACxE;QAED,KAAqB,UAAc,EAAd,KAAA,MAAM,CAAC,OAAO,EAAd,cAAc,EAAd,IAAc,EAAE;YAAhC,IAAM,MAAM,SAAA;YACf,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE;gBACxF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAA;aACrE;SACF;KACF;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC,CAAA;AAUD,IAAM,mBAAmB,GAAG;IAC1B,OAAO,6/JA8IR,CAAA;AACD,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,sBAAsB,GAAG,UAAC,MAA+B;IACpE,IAAM,SAAS,GAAG,MAAuB,CAAA;IAEzC,0EAA0E;IAC1E,IAAM,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,KAAK,KAAK,CAAA;IAC7D,IAAM,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,KAAK,KAAK,CAAA;IAC7D,IAAM,aAAa,GAAG,SAAS,CAAC,OAAO,IAAI,EAAE,CAAA;IAE7C,IAAI,SAAS,CAAC,WAAW,EAAE;QACzB,IAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAA;QACzC,OAAO,6BAAsB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,wCACjC,gBAAgB,wCAChB,gBAAgB,qCACnB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,iBAEnD,yBAAyB,EAAE,iBAE3B,yBAAyB,EAAE,iBAE3B,4BAA4B,EAAE,iBAE9B,6BAA6B,EAAE,iBAE/B,2BAA2B,EAAE,iiFA+FoB,mBAAmB,EAAE,UAEvE,CAAA;KACE;SAAM;QACL,OAAO,uBAAgB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,+BACnD,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,iBAE7C,yBAAyB,EAAE,iBAE3B,yBAAyB,EAAE,iBAE3B,4BAA4B,EAAE,iBAE9B,6BAA6B,EAAE,kEAEkB,mBAAmB,EAAE,UAEvE,CAAA;KACE;AACH,CAAC,CAAA;AAED,yCAAyC;AACzC,MAAM,CAAC,IAAM,uBAAuB,GAAG,UAAC,OAAY;IAClD,OAAO,knCA6CR,CAAA;AACD,CAAC,CAAA"}
1
+ {"version":3,"file":"csv-file.js","sourceRoot":"","sources":["../../../src/fetchers/csv-file.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AAEtE,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAC/B,MAA+B;IAE/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;KAClE;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;QAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,mDAAmD,EAAE,CAAA;KACtF;IAED,IAAI,MAAM,CAAC,WAAW,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE;QAChE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;KAClE;IAED,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QAC1D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAA;KACjE;IAED,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,qCAAqC,EAAE,CAAA;SACxE;QAED,KAAqB,UAAc,EAAd,KAAA,MAAM,CAAC,OAAO,EAAd,cAAc,EAAd,IAAc,EAAE;YAAhC,IAAM,MAAM,SAAA;YACf,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE;gBACxF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAA;aACrE;SACF;KACF;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC,CAAA;AAUD,IAAM,mBAAmB,GAAG;IAC1B,OAAO,okKA8IR,CAAA;AACD,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,sBAAsB,GAAG,UAAC,MAA+B;IACpE,IAAM,SAAS,GAAG,MAAuB,CAAA;IAEzC,0EAA0E;IAC1E,IAAM,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,KAAK,KAAK,CAAA;IAC7D,IAAM,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,KAAK,KAAK,CAAA;IAC7D,IAAM,aAAa,GAAG,SAAS,CAAC,OAAO,IAAI,EAAE,CAAA;IAE7C,IAAI,SAAS,CAAC,WAAW,EAAE;QACzB,IAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAA;QACzC,OAAO,6BAAsB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,wCACjC,gBAAgB,wCAChB,gBAAgB,qCACnB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,iBAEnD,yBAAyB,EAAE,iBAE3B,yBAAyB,EAAE,iBAE3B,4BAA4B,EAAE,iBAE9B,6BAA6B,EAAE,iBAE/B,2BAA2B,EAAE,iiFA+FoB,mBAAmB,EAAE,UAEvE,CAAA;KACE;SAAM;QACL,OAAO,uBAAgB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,+BACnD,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,iBAE7C,yBAAyB,EAAE,iBAE3B,yBAAyB,EAAE,iBAE3B,4BAA4B,EAAE,iBAE9B,6BAA6B,EAAE,kEAEkB,mBAAmB,EAAE,UAEvE,CAAA;KACE;AACH,CAAC,CAAA;AAED,yCAAyC;AACzC,MAAM,CAAC,IAAM,uBAAuB,GAAG,UAAC,OAAY;IAClD,OAAO,knCA6CR,CAAA;AACD,CAAC,CAAA"}
@@ -25,6 +25,6 @@ export var validateFirestoreConfig = function (config) {
25
25
  export var generateFirestoreFetcher = function (config, tableName) {
26
26
  var firestoreConfig = config;
27
27
  var serviceAccount = firestoreConfig.serviceAccount;
28
- return "import * as admin from 'firebase-admin'\n\nlet firestore = null\n\nconst getFirestore = () => {\n if (firestore) return firestore\n \n const rawServiceAccount = ".concat(replaceSecretReference(serviceAccount), "\n let serviceAccount\n\n try {\n serviceAccount = JSON.parse(rawServiceAccount)\n } catch (error) {\n throw new Error('Invalid Firestore service account JSON: ' + error.message)\n }\n \n if (!admin.apps.length) {\n admin.initializeApp({\n credential: admin.credential.cert(serviceAccount)\n })\n }\n \n firestore = admin.firestore()\n return firestore\n}\n\n").concat(generateSafeJSONParseCode(), "\n\n").concat(generateFilterTreeHelpersCode(), "\n\n").concat(generateDateFormatterCode(), "\n\nexport default async function handler(req, res) {\n try {\n const firestore = getFirestore()\n const { query, queryColumns, limit, page, perPage, sortBy, sortOrder, filters, sorts, offset } = req.query\n \n let queryRef = firestore.collection('").concat(tableName, "')\n \n if (filters) {\n const filterTree = normalizeFilterTree(safeJSONParse(filters))\n \n if (filterTree) {\n // Chained .where() calls are ANDed, so an OR group is built with\n // Firestore's composite Filter API instead.\n const operatorMap = {\n '=': '==',\n '!=': '!=',\n '>': '>',\n '<': '<',\n '>=': '>=',\n '<=': '<=',\n }\n \n const buildCondition = (condition) => {\n const field = condition.source\n const normalizedCondition = normalizeInOperand(condition.operand, condition.destination)\n if (normalizedCondition === null) return null\n const value = normalizedCondition.value\n const operand = normalizedCondition.operand\n \n if (Array.isArray(value)) {\n if (value.length === 0) return null\n return admin.firestore.Filter.where(field, operand === '!=' ? 'not-in' : 'in', value)\n }\n \n return admin.firestore.Filter.where(field, operatorMap[operand] || '==', value)\n }\n \n const buildNode = (node) => {\n if (node.type === 'group') {\n const parts = node.children.map(buildNode).filter(Boolean)\n if (parts.length === 0) return null\n if (parts.length === 1) return parts[0]\n return node.operator === 'or'\n ? admin.firestore.Filter.or(...parts)\n : admin.firestore.Filter.and(...parts)\n }\n return buildCondition(node)\n }\n \n const filterExpression = buildNode(filterTree)\n if (filterExpression) {\n queryRef = queryRef.where(filterExpression)\n }\n }\n }\n \n let usePostFiltering = false\n \n if (query) {\n if (queryColumns) {\n const parsed = safeJSONParse(queryColumns)\n const columns = Array.isArray(parsed) ? parsed : [parsed]\n for (const column of columns) {\n queryRef = queryRef\n .where(column, '>=', query)\n .where(column, '<=', query + '\\uf8ff')\n }\n } else {\n // Firestore doesn't support full-text search without queryColumns\n // We'll fetch all data and filter in JavaScript\n usePostFiltering = true\n }\n }\n \n // Handle sorts - new array format\n if (sorts) {\n const parsedSorts = safeJSONParse(sorts)\n if (Array.isArray(parsedSorts) && parsedSorts.length > 0) {\n parsedSorts.forEach((sort) => {\n if (!sort.field) return\n const order = (sort.order || '').toLowerCase().startsWith('desc') ? 'desc' : 'asc'\n queryRef = queryRef.orderBy(sort.field, order)\n })\n }\n } else if (sortBy) {\n const sortOrderValue = (sortOrder || '').toLowerCase().startsWith('desc') ? 'desc' : 'asc'\n queryRef = queryRef.orderBy(sortBy, sortOrderValue)\n }\n \n const limitValue = limit || perPage\n const offsetValue = offset !== undefined ? parseInt(offset) : (page && perPage && parseInt(page) > 1 ? (parseInt(page) - 1) * parseInt(perPage) : undefined)\n \n // Only apply pagination at query level if not post-filtering\n if (!usePostFiltering) {\n if (limitValue) {\n queryRef = queryRef.limit(parseInt(limitValue))\n }\n if (offsetValue !== undefined) {\n queryRef = queryRef.offset(offsetValue)\n }\n }\n \n const snapshot = await queryRef.get()\n let documents = []\n snapshot.forEach((doc) => {\n documents.push({\n id: doc.id,\n ...doc.data()\n })\n })\n \n // Apply post-filtering if needed\n if (usePostFiltering && query) {\n const searchQuery = query.toLowerCase()\n documents = documents.filter((item) => {\n try {\n const stringified = JSON.stringify(item).toLowerCase()\n return stringified.includes(searchQuery)\n } catch {\n return false\n }\n })\n \n // Apply pagination after filtering\n if (limitValue) {\n const start = offsetValue || 0\n documents = documents.slice(start, start + parseInt(limitValue))\n } else if (offsetValue) {\n documents = documents.slice(offsetValue)\n }\n }\n \n const safeData = JSON.parse(JSON.stringify(documents, dateReplacer))\n \n return res.status(200).json({\n success: true,\n data: safeData,\n timestamp: Date.now()\n })\n } catch (error) {\n console.error('Firestore fetch error:', error)\n return res.status(500).json({\n success: false,\n error: error.message || 'Failed to fetch data',\n timestamp: Date.now()\n })\n }\n}\n");
28
+ return "import * as admin from 'firebase-admin'\n\nlet firestore = null\n\nconst getFirestore = () => {\n if (firestore) return firestore\n \n const rawServiceAccount = ".concat(replaceSecretReference(serviceAccount), "\n let serviceAccount\n\n try {\n serviceAccount = JSON.parse(rawServiceAccount)\n } catch (error) {\n throw new Error('Invalid Firestore service account JSON: ' + error.message)\n }\n \n if (!admin.apps.length) {\n admin.initializeApp({\n credential: admin.credential.cert(serviceAccount)\n })\n }\n \n firestore = admin.firestore()\n return firestore\n}\n\n").concat(generateSafeJSONParseCode(), "\n\n").concat(generateFilterTreeHelpersCode(), "\n\n").concat(generateDateFormatterCode(), "\n\nexport default async function handler(req, res) {\n try {\n const firestore = getFirestore()\n const { query, queryColumns, limit, page, perPage, sortBy, sortOrder, filters, sorts, offset } = req.query\n \n let queryRef = firestore.collection('").concat(tableName, "')\n \n if (filters) {\n const filterTree = normalizeFilterTree(safeJSONParse(filters))\n \n if (filterTree) {\n // Chained .where() calls are ANDed, so an OR group is built with\n // Firestore's composite Filter API instead.\n const operatorMap = {\n '=': '==',\n '!=': '!=',\n '>': '>',\n '<': '<',\n '>=': '>=',\n '<=': '<=',\n }\n \n const buildCondition = (condition) => {\n const field = condition.source\n const normalizedCondition = normalizeInOperand(condition.operand, condition.destination)\n if (normalizedCondition === null) return null\n const value = normalizedCondition.value\n const operand = normalizedCondition.operand\n \n if (Array.isArray(value)) {\n if (value.length === 0) return null\n return admin.firestore.Filter.where(field, operand === '!=' ? 'not-in' : 'in', value)\n }\n \n return admin.firestore.Filter.where(field, operatorMap[operand] || '==', value)\n }\n \n const buildNode = (node) => {\n if (node.type === 'group') {\n const parts = node.children.map(buildNode).filter(Boolean)\n if (parts.length === 0) return null\n if (parts.length === 1) return parts[0]\n return node.operator === 'or'\n ? admin.firestore.Filter.or(...parts)\n : admin.firestore.Filter.and(...parts)\n }\n return buildCondition(node)\n }\n \n const filterExpression = buildNode(filterTree)\n if (filterExpression) {\n queryRef = queryRef.where(filterExpression)\n }\n }\n }\n \n let usePostFiltering = false\n \n if (query) {\n if (queryColumns) {\n const parsed = safeJSONParse(queryColumns)\n const columns = Array.isArray(parsed) ? parsed : [parsed]\n for (const column of columns) {\n queryRef = queryRef\n .where(column, '>=', query)\n .where(column, '<=', query + '\\uf8ff')\n }\n } else {\n // Firestore doesn't support full-text search without queryColumns\n // We'll fetch all data and filter in JavaScript\n usePostFiltering = true\n }\n }\n \n // Handle sorts - new array format\n if (sorts) {\n const parsedSorts = safeJSONParse(sorts)\n if (Array.isArray(parsedSorts) && parsedSorts.length > 0) {\n parsedSorts.forEach((sort) => {\n if (!sort.field) return\n const order = (sort.order || '').toLowerCase().startsWith('desc') ? 'desc' : 'asc'\n queryRef = queryRef.orderBy(sort.field, order)\n })\n }\n } else if (sortBy) {\n const sortOrderValue = (sortOrder || '').toLowerCase().startsWith('desc') ? 'desc' : 'asc'\n queryRef = queryRef.orderBy(sortBy, sortOrderValue)\n }\n \n const limitValue = limit || perPage\n const offsetValue = offset !== undefined ? parseInt(offset) : (page && perPage && parseInt(page) > 1 ? (parseInt(page) - 1) * parseInt(perPage) : undefined)\n \n // Only apply pagination at query level if not post-filtering\n if (!usePostFiltering) {\n if (limitValue) {\n queryRef = queryRef.limit(parseInt(limitValue))\n }\n if (offsetValue !== undefined) {\n queryRef = queryRef.offset(offsetValue)\n }\n }\n \n const snapshot = await queryRef.get()\n let documents = []\n snapshot.forEach((doc) => {\n documents.push({\n id: doc.id,\n ...doc.data()\n })\n })\n \n // Apply post-filtering if needed\n if (usePostFiltering && query) {\n const searchTerms = query.toLowerCase().split(' ').filter(Boolean)\n documents = documents.filter((item) => {\n try {\n const stringified = JSON.stringify(item).toLowerCase()\n return searchTerms.every((term) => stringified.includes(term))\n } catch {\n return false\n }\n })\n \n // Apply pagination after filtering\n if (limitValue) {\n const start = offsetValue || 0\n documents = documents.slice(start, start + parseInt(limitValue))\n } else if (offsetValue) {\n documents = documents.slice(offsetValue)\n }\n }\n \n const safeData = JSON.parse(JSON.stringify(documents, dateReplacer))\n \n return res.status(200).json({\n success: true,\n data: safeData,\n timestamp: Date.now()\n })\n } catch (error) {\n console.error('Firestore fetch error:', error)\n return res.status(500).json({\n success: false,\n error: error.message || 'Failed to fetch data',\n timestamp: Date.now()\n })\n }\n}\n");
29
29
  };
30
30
  //# sourceMappingURL=firestore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"firestore.js","sourceRoot":"","sources":["../../../src/fetchers/firestore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,UAAU,CAAA;AAEjB,MAAM,CAAC,IAAM,uBAAuB,GAAG,UACrC,MAA+B;IAE/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;KAClE;IAED,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,EAAE;QACvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAA;KAC/E;IAED,IAAM,cAAc,GAAG,MAAM,CAAC,cAAwB,CAAA;IAEtD,iGAAiG;IACjG,sEAAsE;IACtE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE;QACrD,IAAI;YACF,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;YACzC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;gBACrE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kDAAkD,EAAE,CAAA;aACrF;SACF;QAAC,WAAM;YACN,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAA;SACvE;KACF;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC,CAAA;AAOD,MAAM,CAAC,IAAM,wBAAwB,GAAG,UACtC,MAA+B,EAC/B,SAAiB;IAEjB,IAAM,eAAe,GAAG,MAAyB,CAAA;IACjD,IAAM,cAAc,GAAG,eAAe,CAAC,cAAc,CAAA;IAErD,OAAO,8KAOqB,sBAAsB,CAAC,cAAc,CAAC,+YAmBlE,yBAAyB,EAAE,iBAE3B,6BAA6B,EAAE,iBAE/B,yBAAyB,EAAE,kRAOc,SAAS,urJA+InD,CAAA;AACD,CAAC,CAAA"}
1
+ {"version":3,"file":"firestore.js","sourceRoot":"","sources":["../../../src/fetchers/firestore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,UAAU,CAAA;AAEjB,MAAM,CAAC,IAAM,uBAAuB,GAAG,UACrC,MAA+B;IAE/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;KAClE;IAED,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,EAAE;QACvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAA;KAC/E;IAED,IAAM,cAAc,GAAG,MAAM,CAAC,cAAwB,CAAA;IAEtD,iGAAiG;IACjG,sEAAsE;IACtE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE;QACrD,IAAI;YACF,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;YACzC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;gBACrE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kDAAkD,EAAE,CAAA;aACrF;SACF;QAAC,WAAM;YACN,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAA;SACvE;KACF;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC,CAAA;AAOD,MAAM,CAAC,IAAM,wBAAwB,GAAG,UACtC,MAA+B,EAC/B,SAAiB;IAEjB,IAAM,eAAe,GAAG,MAAyB,CAAA;IACjD,IAAM,cAAc,GAAG,eAAe,CAAC,cAAc,CAAA;IAErD,OAAO,8KAOqB,sBAAsB,CAAC,cAAc,CAAC,+YAmBlE,yBAAyB,EAAE,iBAE3B,6BAA6B,EAAE,iBAE/B,yBAAyB,EAAE,kRAOc,SAAS,wuJA+InD,CAAA;AACD,CAAC,CAAA"}
@@ -25,6 +25,6 @@ export var generateGoogleSheetsFetcher = function (config) {
25
25
  var autoDetectHeader = sheetsConfig.autoDetectHeader;
26
26
  var firstRowIsHeader = sheetsConfig.firstRowIsHeader;
27
27
  var configColumns = sheetsConfig.columns || [];
28
- return "import fetch from 'node-fetch'\n\n".concat(generateSafeJSONParseCode(), "\n\n").concat(generateSortFilterHelperCode(), "\n\n").concat(generateFilterTreeHelpersCode(), "\n\n").concat(generateHeaderDetectionCode(), "\n\nexport default async function handler(req, res) {\n try {\n const sheetUrl = ").concat(JSON.stringify(sheetsConfig.sheetUrl), "\n let sheetId = ").concat(JSON.stringify(sheetsConfig.sheetId), "\n const range = ").concat(JSON.stringify(sheetsConfig.range || 'A1:Z1000'), "\n const maxRows = ").concat(sheetsConfig.maxRows || 0, "\n const autoDetectHeader = ").concat(autoDetectHeader !== undefined ? autoDetectHeader : true, "\n const firstRowIsHeader = ").concat(firstRowIsHeader !== undefined ? firstRowIsHeader : true, "\n \n if (!sheetId && sheetUrl) {\n const match = sheetUrl.match(/\\/d\\/([a-zA-Z0-9-_]+)/)\n sheetId = match ? match[1] : undefined\n }\n \n if (!sheetId) {\n return res.status(400).json({\n success: false,\n error: 'Invalid Google Sheets URL or Sheet ID',\n timestamp: Date.now()\n })\n }\n \n let gid = undefined\n if (sheetUrl) {\n const gidMatch = sheetUrl.match(/[#&]gid=([0-9]+)/)\n gid = gidMatch ? gidMatch[1] : undefined\n }\n \n let url = `https://docs.google.com/spreadsheets/d/${sheetId}/gviz/tq?tqx=out:json&range=${range}`\n \n if (gid) {\n url += `&gid=${gid}`\n }\n \n if (maxRows && maxRows > 0) {\n url += `&tq=limit ${maxRows}`\n }\n \n const response = await fetch(url)\n \n if (!response.ok) {\n return res.status(response.status).json({\n success: false,\n error: `HTTP ${response.status}: ${response.statusText}`,\n timestamp: Date.now()\n })\n }\n \n const text = await response.text()\n const jsonMatch = text.match(/google\\.visualization\\.Query\\.setResponse\\((.*)\\);/)\n \n if (!jsonMatch) {\n return res.status(500).json({\n success: false,\n error: 'Unable to parse Google Sheets response',\n timestamp: Date.now()\n })\n }\n \n const data = JSON.parse(jsonMatch[1])\n \n if (data.status === 'error') {\n return res.status(500).json({\n success: false,\n error: data.errors?.[0]?.detailed_message || 'Failed to fetch Google Sheets data',\n timestamp: Date.now()\n })\n }\n \n const formatDateValue = (date) => {\n const options = {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n }\n \n const timeOptions = {\n hour: '2-digit',\n minute: '2-digit',\n }\n \n const hasTime = date.getHours() !== 0 || date.getMinutes() !== 0 || date.getSeconds() !== 0\n \n if (hasTime) {\n return date.toLocaleString('en-US', { ...options, ...timeOptions })\n }\n \n return date.toLocaleDateString('en-US', options)\n }\n \n const parseGoogleSheetsValue = (value) => {\n if (typeof value === 'string') {\n const dateMatch = value.match(/^Date\\((\\d+),(\\d+),(\\d+)(?:,(\\d+),(\\d+),(\\d+))?\\)$/)\n if (dateMatch) {\n const year = parseInt(dateMatch[1], 10)\n const month = parseInt(dateMatch[2], 10)\n const day = parseInt(dateMatch[3], 10)\n const hour = dateMatch[4] ? parseInt(dateMatch[4], 10) : 0\n const minute = dateMatch[5] ? parseInt(dateMatch[5], 10) : 0\n const second = dateMatch[6] ? parseInt(dateMatch[6], 10) : 0\n const date = new Date(year, month, day, hour, minute, second)\n return formatDateValue(date)\n }\n }\n return value\n }\n \n const table = data.table\n const rawRows = table.rows || []\n \n if (rawRows.length === 0) {\n return res.status(200).json({\n success: true,\n data: [],\n timestamp: Date.now()\n })\n }\n \n const firstRow = rawRows[0]\n const firstRowValues = firstRow.c.map((cell) => cell?.v ?? cell?.f ?? null)\n \n const shouldAutoDetect = autoDetectHeader !== false\n let hasHeaderRow = false\n \n if (shouldAutoDetect) {\n hasHeaderRow = detectHeaderRow(firstRowValues, rawRows)\n } else {\n hasHeaderRow = firstRowIsHeader !== false\n }\n \n const configColumns = ").concat(JSON.stringify(configColumns), "\n const useConfigColumns = configColumns && configColumns.length > 0\n \n let columns\n let dataRows\n \n if (hasHeaderRow && rawRows.length > 1) {\n columns = table.cols.map((col, index) => {\n const configCol = useConfigColumns ? configColumns[index] : null\n return {\n id: configCol?.id || col.id || `col_${index}`,\n label: String(firstRowValues[index] || col.label || configCol?.label || `Column ${index + 1}`),\n type: configCol?.type || col.type || 'string'\n }\n })\n dataRows = rawRows.slice(1)\n } else {\n columns = table.cols.map((col, index) => {\n const configCol = useConfigColumns ? configColumns[index] : null\n return {\n id: configCol?.id || col.id || `col_${index}`,\n label: configCol?.label || col.label || `Column ${index + 1}`,\n type: configCol?.type || col.type || 'string'\n }\n })\n dataRows = rawRows\n }\n \n if (maxRows && dataRows.length > maxRows) {\n dataRows = dataRows.slice(0, maxRows)\n }\n \n const rows = dataRows.map((row) => {\n const rowData = {}\n row.c.forEach((cell, index) => {\n const columnId = columns[index]?.id || `col_${index}`\n const rawValue = cell?.v ?? cell?.f ?? null\n rowData[columnId] = parseGoogleSheetsValue(rawValue)\n })\n return rowData\n })\n \n const columnsWithData = columns.filter((col, index) => {\n const hasHeaderData = col.label && col.label !== `Column ${index + 1}`\n const hasDataInColumn = rows.some((row) => {\n const value = row[col.id]\n return value !== null && value !== undefined && value !== ''\n })\n return hasHeaderData || hasDataInColumn\n })\n \n const filteredRows = rows.map((row) => {\n const filteredRow = {}\n columnsWithData.forEach((col) => {\n filteredRow[col.id] = row[col.id]\n })\n return filteredRow\n })\n \n const { query, queryColumns, limit, page, perPage, sortBy, sortOrder, filters, sorts, offset: offsetParam } = req.query\n \n // Create label-to-ID mapping for filters and sorts\n const labelToIdMap = {}\n columnsWithData.forEach((col) => {\n labelToIdMap[col.label] = col.id\n })\n \n let filteredData = [...filteredRows]\n \n if (query) {\n const searchQuery = query.toLowerCase()\n \n if (queryColumns) {\n const searchColumns = safeJSONParse(queryColumns)\n filteredData = filteredData.filter((item) => {\n return searchColumns.some((col) => {\n // Map label to column ID\n const field = labelToIdMap[col] || col\n const value = getNestedValue(item, field)\n return value && String(value).toLowerCase().includes(searchQuery)\n })\n })\n } else {\n filteredData = filteredData.filter((item) => {\n try {\n const stringified = JSON.stringify(item).toLowerCase()\n return stringified.includes(searchQuery)\n } catch {\n return false\n }\n })\n }\n }\n \n if (filters) {\n const filterTree = normalizeFilterTree(safeJSONParse(filters))\n \n if (filterTree) {\n filteredData = filteredData.filter((item) =>\n evaluateFilterTree(filterTree, (condition) => {\n // Map label to column ID\n const field = labelToIdMap[condition.source] || condition.source\n const value = getNestedValue(item, field)\n const target = condition.destination\n const operand = condition.operand\n \n if (Array.isArray(target)) {\n if (operand === '!=') {\n return !target.includes(value)\n }\n return target.includes(value)\n }\n \n return compareValues(value, target, operand)\n })\n )\n }\n }\n \n if (sorts) {\n const parsedSorts = safeJSONParse(sorts)\n if (Array.isArray(parsedSorts) && parsedSorts.length > 0) {\n filteredData.sort((a, b) => {\n for (const sort of parsedSorts) {\n if (!sort.field) continue\n // Map label to column ID\n const field = labelToIdMap[sort.field] || sort.field\n const aVal = getNestedValue(a, field)\n const bVal = getNestedValue(b, field)\n const sortOrderValue = (sort.order || '').toLowerCase().startsWith('desc') ? -1 : 1\n \n let comparison = 0\n if (aVal === null || aVal === undefined) {\n comparison = bVal === null || bVal === undefined ? 0 : -1\n } else if (bVal === null || bVal === undefined) {\n comparison = 1\n } else if (typeof aVal === 'number' && typeof bVal === 'number') {\n comparison = aVal - bVal\n } else if (aVal instanceof Date && bVal instanceof Date) {\n comparison = aVal.getTime() - bVal.getTime()\n } else {\n const aStr = String(aVal)\n const bStr = String(bVal)\n if (aStr < bStr) comparison = -1\n else if (aStr > bStr) comparison = 1\n }\n \n if (comparison !== 0) return comparison * sortOrderValue\n }\n return 0\n })\n }\n } else if (sortBy) {\n filteredData.sort((a, b) => {\n // Map label to column ID\n const field = labelToIdMap[sortBy] || sortBy\n const aVal = getNestedValue(a, field)\n const bVal = getNestedValue(b, field)\n const sortOrderValue = (sortOrder || '').toLowerCase().startsWith('desc') ? -1 : 1\n \n let comparison = 0\n if (aVal === null || aVal === undefined) {\n comparison = bVal === null || bVal === undefined ? 0 : -1\n } else if (bVal === null || bVal === undefined) {\n comparison = 1\n } else if (typeof aVal === 'number' && typeof bVal === 'number') {\n comparison = aVal - bVal\n } else if (aVal instanceof Date && bVal instanceof Date) {\n comparison = aVal.getTime() - bVal.getTime()\n } else {\n const aStr = String(aVal)\n const bStr = String(bVal)\n if (aStr < bStr) comparison = -1\n else if (aStr > bStr) comparison = 1\n }\n \n return comparison * sortOrderValue\n })\n }\n \n const limitValue = limit || perPage\n const offsetValue = offsetParam !== undefined ? parseInt(offsetParam) : (page && perPage ? (parseInt(page) - 1) * parseInt(perPage) : 0)\n \n if (limitValue) {\n filteredData = filteredData.slice(offsetValue, offsetValue + parseInt(limitValue))\n }\n \n const safeData = JSON.parse(JSON.stringify(filteredData))\n \n return res.status(200).json({\n success: true,\n data: safeData,\n timestamp: Date.now()\n })\n } catch (error) {\n console.error('Google Sheets fetch error:', error)\n return res.status(500).json({\n success: false,\n error: error.message || 'Failed to fetch data',\n timestamp: Date.now()\n })\n }\n}\n");
28
+ return "import fetch from 'node-fetch'\n\n".concat(generateSafeJSONParseCode(), "\n\n").concat(generateSortFilterHelperCode(), "\n\n").concat(generateFilterTreeHelpersCode(), "\n\n").concat(generateHeaderDetectionCode(), "\n\nexport default async function handler(req, res) {\n try {\n const sheetUrl = ").concat(JSON.stringify(sheetsConfig.sheetUrl), "\n let sheetId = ").concat(JSON.stringify(sheetsConfig.sheetId), "\n const range = ").concat(JSON.stringify(sheetsConfig.range || 'A1:Z1000'), "\n const maxRows = ").concat(sheetsConfig.maxRows || 0, "\n const autoDetectHeader = ").concat(autoDetectHeader !== undefined ? autoDetectHeader : true, "\n const firstRowIsHeader = ").concat(firstRowIsHeader !== undefined ? firstRowIsHeader : true, "\n \n if (!sheetId && sheetUrl) {\n const match = sheetUrl.match(/\\/d\\/([a-zA-Z0-9-_]+)/)\n sheetId = match ? match[1] : undefined\n }\n \n if (!sheetId) {\n return res.status(400).json({\n success: false,\n error: 'Invalid Google Sheets URL or Sheet ID',\n timestamp: Date.now()\n })\n }\n \n let gid = undefined\n if (sheetUrl) {\n const gidMatch = sheetUrl.match(/[#&]gid=([0-9]+)/)\n gid = gidMatch ? gidMatch[1] : undefined\n }\n \n let url = `https://docs.google.com/spreadsheets/d/${sheetId}/gviz/tq?tqx=out:json&range=${range}`\n \n if (gid) {\n url += `&gid=${gid}`\n }\n \n if (maxRows && maxRows > 0) {\n url += `&tq=limit ${maxRows}`\n }\n \n const response = await fetch(url)\n \n if (!response.ok) {\n return res.status(response.status).json({\n success: false,\n error: `HTTP ${response.status}: ${response.statusText}`,\n timestamp: Date.now()\n })\n }\n \n const text = await response.text()\n const jsonMatch = text.match(/google\\.visualization\\.Query\\.setResponse\\((.*)\\);/)\n \n if (!jsonMatch) {\n return res.status(500).json({\n success: false,\n error: 'Unable to parse Google Sheets response',\n timestamp: Date.now()\n })\n }\n \n const data = JSON.parse(jsonMatch[1])\n \n if (data.status === 'error') {\n return res.status(500).json({\n success: false,\n error: data.errors?.[0]?.detailed_message || 'Failed to fetch Google Sheets data',\n timestamp: Date.now()\n })\n }\n \n const formatDateValue = (date) => {\n const options = {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n }\n \n const timeOptions = {\n hour: '2-digit',\n minute: '2-digit',\n }\n \n const hasTime = date.getHours() !== 0 || date.getMinutes() !== 0 || date.getSeconds() !== 0\n \n if (hasTime) {\n return date.toLocaleString('en-US', { ...options, ...timeOptions })\n }\n \n return date.toLocaleDateString('en-US', options)\n }\n \n const parseGoogleSheetsValue = (value) => {\n if (typeof value === 'string') {\n const dateMatch = value.match(/^Date\\((\\d+),(\\d+),(\\d+)(?:,(\\d+),(\\d+),(\\d+))?\\)$/)\n if (dateMatch) {\n const year = parseInt(dateMatch[1], 10)\n const month = parseInt(dateMatch[2], 10)\n const day = parseInt(dateMatch[3], 10)\n const hour = dateMatch[4] ? parseInt(dateMatch[4], 10) : 0\n const minute = dateMatch[5] ? parseInt(dateMatch[5], 10) : 0\n const second = dateMatch[6] ? parseInt(dateMatch[6], 10) : 0\n const date = new Date(year, month, day, hour, minute, second)\n return formatDateValue(date)\n }\n }\n return value\n }\n \n const table = data.table\n const rawRows = table.rows || []\n \n if (rawRows.length === 0) {\n return res.status(200).json({\n success: true,\n data: [],\n timestamp: Date.now()\n })\n }\n \n const firstRow = rawRows[0]\n const firstRowValues = firstRow.c.map((cell) => cell?.v ?? cell?.f ?? null)\n \n const shouldAutoDetect = autoDetectHeader !== false\n let hasHeaderRow = false\n \n if (shouldAutoDetect) {\n hasHeaderRow = detectHeaderRow(firstRowValues, rawRows)\n } else {\n hasHeaderRow = firstRowIsHeader !== false\n }\n \n const configColumns = ").concat(JSON.stringify(configColumns), "\n const useConfigColumns = configColumns && configColumns.length > 0\n \n let columns\n let dataRows\n \n if (hasHeaderRow && rawRows.length > 1) {\n columns = table.cols.map((col, index) => {\n const configCol = useConfigColumns ? configColumns[index] : null\n return {\n id: configCol?.id || col.id || `col_${index}`,\n label: String(firstRowValues[index] || col.label || configCol?.label || `Column ${index + 1}`),\n type: configCol?.type || col.type || 'string'\n }\n })\n dataRows = rawRows.slice(1)\n } else {\n columns = table.cols.map((col, index) => {\n const configCol = useConfigColumns ? configColumns[index] : null\n return {\n id: configCol?.id || col.id || `col_${index}`,\n label: configCol?.label || col.label || `Column ${index + 1}`,\n type: configCol?.type || col.type || 'string'\n }\n })\n dataRows = rawRows\n }\n \n if (maxRows && dataRows.length > maxRows) {\n dataRows = dataRows.slice(0, maxRows)\n }\n \n const rows = dataRows.map((row) => {\n const rowData = {}\n row.c.forEach((cell, index) => {\n const columnId = columns[index]?.id || `col_${index}`\n const rawValue = cell?.v ?? cell?.f ?? null\n rowData[columnId] = parseGoogleSheetsValue(rawValue)\n })\n return rowData\n })\n \n const columnsWithData = columns.filter((col, index) => {\n const hasHeaderData = col.label && col.label !== `Column ${index + 1}`\n const hasDataInColumn = rows.some((row) => {\n const value = row[col.id]\n return value !== null && value !== undefined && value !== ''\n })\n return hasHeaderData || hasDataInColumn\n })\n \n const filteredRows = rows.map((row) => {\n const filteredRow = {}\n columnsWithData.forEach((col) => {\n filteredRow[col.id] = row[col.id]\n })\n return filteredRow\n })\n \n const { query, queryColumns, limit, page, perPage, sortBy, sortOrder, filters, sorts, offset: offsetParam } = req.query\n \n // Create label-to-ID mapping for filters and sorts\n const labelToIdMap = {}\n columnsWithData.forEach((col) => {\n labelToIdMap[col.label] = col.id\n })\n \n let filteredData = [...filteredRows]\n \n if (query) {\n const searchTerms = query.toLowerCase().split(' ').filter(Boolean)\n \n if (queryColumns) {\n const searchColumns = safeJSONParse(queryColumns)\n filteredData = filteredData.filter((item) => {\n return searchTerms.every((term) => searchColumns.some((col) => {\n // Map label to column ID\n const field = labelToIdMap[col] || col\n const value = getNestedValue(item, field)\n return value && String(value).toLowerCase().includes(term)\n }))\n })\n } else {\n filteredData = filteredData.filter((item) => {\n try {\n const stringified = JSON.stringify(item).toLowerCase()\n return searchTerms.every((term) => stringified.includes(term))\n } catch {\n return false\n }\n })\n }\n }\n \n if (filters) {\n const filterTree = normalizeFilterTree(safeJSONParse(filters))\n \n if (filterTree) {\n filteredData = filteredData.filter((item) =>\n evaluateFilterTree(filterTree, (condition) => {\n // Map label to column ID\n const field = labelToIdMap[condition.source] || condition.source\n const value = getNestedValue(item, field)\n const target = condition.destination\n const operand = condition.operand\n \n if (Array.isArray(target)) {\n if (operand === '!=') {\n return !target.includes(value)\n }\n return target.includes(value)\n }\n \n return compareValues(value, target, operand)\n })\n )\n }\n }\n \n if (sorts) {\n const parsedSorts = safeJSONParse(sorts)\n if (Array.isArray(parsedSorts) && parsedSorts.length > 0) {\n filteredData.sort((a, b) => {\n for (const sort of parsedSorts) {\n if (!sort.field) continue\n // Map label to column ID\n const field = labelToIdMap[sort.field] || sort.field\n const aVal = getNestedValue(a, field)\n const bVal = getNestedValue(b, field)\n const sortOrderValue = (sort.order || '').toLowerCase().startsWith('desc') ? -1 : 1\n \n let comparison = 0\n if (aVal === null || aVal === undefined) {\n comparison = bVal === null || bVal === undefined ? 0 : -1\n } else if (bVal === null || bVal === undefined) {\n comparison = 1\n } else if (typeof aVal === 'number' && typeof bVal === 'number') {\n comparison = aVal - bVal\n } else if (aVal instanceof Date && bVal instanceof Date) {\n comparison = aVal.getTime() - bVal.getTime()\n } else {\n const aStr = String(aVal)\n const bStr = String(bVal)\n if (aStr < bStr) comparison = -1\n else if (aStr > bStr) comparison = 1\n }\n \n if (comparison !== 0) return comparison * sortOrderValue\n }\n return 0\n })\n }\n } else if (sortBy) {\n filteredData.sort((a, b) => {\n // Map label to column ID\n const field = labelToIdMap[sortBy] || sortBy\n const aVal = getNestedValue(a, field)\n const bVal = getNestedValue(b, field)\n const sortOrderValue = (sortOrder || '').toLowerCase().startsWith('desc') ? -1 : 1\n \n let comparison = 0\n if (aVal === null || aVal === undefined) {\n comparison = bVal === null || bVal === undefined ? 0 : -1\n } else if (bVal === null || bVal === undefined) {\n comparison = 1\n } else if (typeof aVal === 'number' && typeof bVal === 'number') {\n comparison = aVal - bVal\n } else if (aVal instanceof Date && bVal instanceof Date) {\n comparison = aVal.getTime() - bVal.getTime()\n } else {\n const aStr = String(aVal)\n const bStr = String(bVal)\n if (aStr < bStr) comparison = -1\n else if (aStr > bStr) comparison = 1\n }\n \n return comparison * sortOrderValue\n })\n }\n \n const limitValue = limit || perPage\n const offsetValue = offsetParam !== undefined ? parseInt(offsetParam) : (page && perPage ? (parseInt(page) - 1) * parseInt(perPage) : 0)\n \n if (limitValue) {\n filteredData = filteredData.slice(offsetValue, offsetValue + parseInt(limitValue))\n }\n \n const safeData = JSON.parse(JSON.stringify(filteredData))\n \n return res.status(200).json({\n success: true,\n data: safeData,\n timestamp: Date.now()\n })\n } catch (error) {\n console.error('Google Sheets fetch error:', error)\n return res.status(500).json({\n success: false,\n error: error.message || 'Failed to fetch data',\n timestamp: Date.now()\n })\n }\n}\n");
29
29
  };
30
30
  //# sourceMappingURL=google-sheets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"google-sheets.js","sourceRoot":"","sources":["../../../src/fetchers/google-sheets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AAEtE,MAAM,CAAC,IAAM,0BAA0B,GAAG,UACxC,MAA+B;IAE/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;KAClE;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,qCAAqC,EAAE,CAAA;KACxE;IAED,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE;QACxD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAA;KAC9D;IAED,IAAI,MAAM,CAAC,QAAQ,EAAE;QACnB,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACvC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAA;SAC/D;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE;YAC7D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAA;SACrE;KACF;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC,CAAA;AAcD,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAAC,MAA+B;IACzE,IAAM,YAAY,GAAG,MAA4B,CAAA;IACjD,IAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAA;IACtD,IAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAA;IACtD,IAAM,aAAa,GAAG,YAAY,CAAC,OAAO,IAAI,EAAE,CAAA;IAEhD,OAAO,4CAEP,yBAAyB,EAAE,iBAE3B,4BAA4B,EAAE,iBAE9B,6BAA6B,EAAE,iBAE/B,2BAA2B,EAAE,kGAIR,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,iCACxC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,iCACpC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,UAAU,CAAC,mCAC9C,YAAY,CAAC,OAAO,IAAI,CAAC,4CAChB,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,4CACxD,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,6iHA2H3D,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,qoOA2MxD,CAAA;AACD,CAAC,CAAA"}
1
+ {"version":3,"file":"google-sheets.js","sourceRoot":"","sources":["../../../src/fetchers/google-sheets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AAEtE,MAAM,CAAC,IAAM,0BAA0B,GAAG,UACxC,MAA+B;IAE/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;KAClE;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,qCAAqC,EAAE,CAAA;KACxE;IAED,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE;QACxD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAA;KAC9D;IAED,IAAI,MAAM,CAAC,QAAQ,EAAE;QACnB,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACvC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAA;SAC/D;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE;YAC7D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAA;SACrE;KACF;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC,CAAA;AAcD,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAAC,MAA+B;IACzE,IAAM,YAAY,GAAG,MAA4B,CAAA;IACjD,IAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAA;IACtD,IAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAA;IACtD,IAAM,aAAa,GAAG,YAAY,CAAC,OAAO,IAAI,EAAE,CAAA;IAEhD,OAAO,4CAEP,yBAAyB,EAAE,iBAE3B,4BAA4B,EAAE,iBAE9B,6BAA6B,EAAE,iBAE/B,2BAA2B,EAAE,kGAIR,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,iCACxC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,iCACpC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,UAAU,CAAC,mCAC9C,YAAY,CAAC,OAAO,IAAI,CAAC,4CAChB,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,4CACxD,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,6iHA2H3D,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,4sOA2MxD,CAAA;AACD,CAAC,CAAA"}
@@ -26,7 +26,7 @@ export var validateJavaScriptConfig = function (config) {
26
26
  };
27
27
  export var generateJavaScriptFetcher = function (config) {
28
28
  var jsConfig = config;
29
- return "".concat(generateSafeJSONParseCode(), "\n\n").concat(generateDateFormatterCode(), "\n\n").concat(generateSortFilterHelperCode(), "\n\n").concat(generateFilterTreeHelpersCode(), "\n\n").concat(generateCollectionPathHelperCode(), "\n\nexport default async function handler(req, res) {\n try {\n const { limit, offset, page, perPage, query, queryColumns, sortBy, sortOrder, filters, sorts, collectionPath, itemsPath } = req.query\n \n const code = ").concat(JSON.stringify(jsConfig.code), "\n const executeCode = new Function('return ' + code)\n let data = resolveCollectionPath(executeCode(), collectionPath)\n const itemsEnvelope = openItemsEnvelope(data, itemsPath)\n if (itemsEnvelope) {\n data = itemsEnvelope.items\n }\n \n if (Array.isArray(data)) {\n if (query && query.trim()) {\n const searchQuery = query.toLowerCase()\n \n if (queryColumns) {\n try {\n const parsed = safeJSONParse(queryColumns)\n const columns = Array.isArray(parsed) ? parsed : [parsed]\n data = data.filter(item => {\n return columns.some(col => {\n const value = getNestedValue(item, col)\n if (value === null || value === undefined) return false\n return String(value).toLowerCase().includes(searchQuery)\n })\n })\n } catch (err) {\n console.error('Error parsing queryColumns:', err)\n }\n } else {\n data = data.filter(item => {\n try {\n const stringified = JSON.stringify(item).toLowerCase()\n return stringified.includes(searchQuery)\n } catch {\n return false\n }\n })\n }\n }\n \n if (filters) {\n try {\n const filterTree = normalizeFilterTree(safeJSONParse(filters))\n \n if (filterTree) {\n data = data.filter((item) =>\n evaluateFilterTree(filterTree, (condition) => {\n const value = getNestedValue(item, condition.source)\n const target = condition.destination\n const operand = condition.operand\n \n if (Array.isArray(target)) {\n if (operand === '!=') {\n return !target.includes(value)\n }\n return target.includes(value)\n }\n \n return compareValues(value, target, operand)\n })\n )\n }\n } catch (err) {\n console.error('Error parsing filters:', err)\n }\n }\n \n if (sorts) {\n try {\n const parsedSorts = safeJSONParse(sorts)\n if (Array.isArray(parsedSorts) && parsedSorts.length > 0) {\n data.sort((a, b) => {\n for (const sort of parsedSorts) {\n if (!sort.field) continue\n const aVal = getNestedValue(a, sort.field)\n const bVal = getNestedValue(b, sort.field)\n const sortOrderValue = (sort.order || '').toLowerCase().startsWith('desc') ? -1 : 1\n \n let comparison = 0\n if (aVal === null || aVal === undefined) {\n comparison = bVal === null || bVal === undefined ? 0 : -1\n } else if (bVal === null || bVal === undefined) {\n comparison = 1\n } else if (typeof aVal === 'number' && typeof bVal === 'number') {\n comparison = aVal - bVal\n } else if (aVal instanceof Date && bVal instanceof Date) {\n comparison = aVal.getTime() - bVal.getTime()\n } else {\n const aStr = String(aVal)\n const bStr = String(bVal)\n if (aStr < bStr) comparison = -1\n else if (aStr > bStr) comparison = 1\n }\n \n if (comparison !== 0) return comparison * sortOrderValue\n }\n return 0\n })\n }\n } catch (err) {\n console.error('Error parsing sorts:', err)\n }\n } else if (sortBy && sortBy.trim()) {\n data.sort((a, b) => {\n const aVal = getNestedValue(a, sortBy)\n const bVal = getNestedValue(b, sortBy)\n const sortOrderValue = (sortOrder || '').toLowerCase().startsWith('desc') ? -1 : 1\n \n let comparison = 0\n if (aVal === null || aVal === undefined) {\n comparison = bVal === null || bVal === undefined ? 0 : -1\n } else if (bVal === null || bVal === undefined) {\n comparison = 1\n } else if (typeof aVal === 'number' && typeof bVal === 'number') {\n comparison = aVal - bVal\n } else if (aVal instanceof Date && bVal instanceof Date) {\n comparison = aVal.getTime() - bVal.getTime()\n } else {\n const aStr = String(aVal)\n const bStr = String(bVal)\n if (aStr < bStr) comparison = -1\n else if (aStr > bStr) comparison = 1\n }\n \n return comparison * sortOrderValue\n })\n }\n \n const limitValue = limit || perPage\n const pageValue = page ? Math.max(1, parseInt(page)) : undefined\n const offsetValue = offset !== undefined ? Math.max(0, parseInt(offset)) : (pageValue && perPage ? (pageValue - 1) * Math.max(1, parseInt(perPage)) : 0)\n \n if (limitValue) {\n const limitInt = Math.max(1, parseInt(limitValue))\n data = data.slice(offsetValue, offsetValue + limitInt)\n } else if (offsetValue > 0) {\n data = data.slice(offsetValue)\n }\n }\n \n if (itemsEnvelope) {\n data = itemsEnvelope.close(data)\n }\n \n const safeData = JSON.parse(JSON.stringify(data, dateReplacer))\n \n return res.status(200).json({\n success: true,\n data: safeData,\n timestamp: Date.now()\n })\n } catch (error) {\n console.error('JavaScript execution error:', error)\n return res.status(500).json({\n success: false,\n error: error.message || 'Failed to execute code',\n timestamp: Date.now()\n })\n }\n}\n");
29
+ return "".concat(generateSafeJSONParseCode(), "\n\n").concat(generateDateFormatterCode(), "\n\n").concat(generateSortFilterHelperCode(), "\n\n").concat(generateFilterTreeHelpersCode(), "\n\n").concat(generateCollectionPathHelperCode(), "\n\nexport default async function handler(req, res) {\n try {\n const { limit, offset, page, perPage, query, queryColumns, sortBy, sortOrder, filters, sorts, collectionPath, itemsPath } = req.query\n \n const code = ").concat(JSON.stringify(jsConfig.code), "\n const executeCode = new Function('return ' + code)\n let data = resolveCollectionPath(executeCode(), collectionPath)\n const itemsEnvelope = openItemsEnvelope(data, itemsPath)\n if (itemsEnvelope) {\n data = itemsEnvelope.items\n }\n \n if (Array.isArray(data)) {\n if (query && query.trim()) {\n const searchTerms = query.toLowerCase().split(' ').filter(Boolean)\n \n if (queryColumns) {\n try {\n const parsed = safeJSONParse(queryColumns)\n const columns = Array.isArray(parsed) ? parsed : [parsed]\n data = data.filter(item => {\n return searchTerms.every((term) => columns.some(col => {\n const value = getNestedValue(item, col)\n if (value === null || value === undefined) return false\n return String(value).toLowerCase().includes(term)\n }))\n })\n } catch (err) {\n console.error('Error parsing queryColumns:', err)\n }\n } else {\n data = data.filter(item => {\n try {\n const stringified = JSON.stringify(item).toLowerCase()\n return searchTerms.every((term) => stringified.includes(term))\n } catch {\n return false\n }\n })\n }\n }\n \n if (filters) {\n try {\n const filterTree = normalizeFilterTree(safeJSONParse(filters))\n \n if (filterTree) {\n data = data.filter((item) =>\n evaluateFilterTree(filterTree, (condition) => {\n const value = getNestedValue(item, condition.source)\n const target = condition.destination\n const operand = condition.operand\n \n if (Array.isArray(target)) {\n if (operand === '!=') {\n return !target.includes(value)\n }\n return target.includes(value)\n }\n \n return compareValues(value, target, operand)\n })\n )\n }\n } catch (err) {\n console.error('Error parsing filters:', err)\n }\n }\n \n if (sorts) {\n try {\n const parsedSorts = safeJSONParse(sorts)\n if (Array.isArray(parsedSorts) && parsedSorts.length > 0) {\n data.sort((a, b) => {\n for (const sort of parsedSorts) {\n if (!sort.field) continue\n const aVal = getNestedValue(a, sort.field)\n const bVal = getNestedValue(b, sort.field)\n const sortOrderValue = (sort.order || '').toLowerCase().startsWith('desc') ? -1 : 1\n \n let comparison = 0\n if (aVal === null || aVal === undefined) {\n comparison = bVal === null || bVal === undefined ? 0 : -1\n } else if (bVal === null || bVal === undefined) {\n comparison = 1\n } else if (typeof aVal === 'number' && typeof bVal === 'number') {\n comparison = aVal - bVal\n } else if (aVal instanceof Date && bVal instanceof Date) {\n comparison = aVal.getTime() - bVal.getTime()\n } else {\n const aStr = String(aVal)\n const bStr = String(bVal)\n if (aStr < bStr) comparison = -1\n else if (aStr > bStr) comparison = 1\n }\n \n if (comparison !== 0) return comparison * sortOrderValue\n }\n return 0\n })\n }\n } catch (err) {\n console.error('Error parsing sorts:', err)\n }\n } else if (sortBy && sortBy.trim()) {\n data.sort((a, b) => {\n const aVal = getNestedValue(a, sortBy)\n const bVal = getNestedValue(b, sortBy)\n const sortOrderValue = (sortOrder || '').toLowerCase().startsWith('desc') ? -1 : 1\n \n let comparison = 0\n if (aVal === null || aVal === undefined) {\n comparison = bVal === null || bVal === undefined ? 0 : -1\n } else if (bVal === null || bVal === undefined) {\n comparison = 1\n } else if (typeof aVal === 'number' && typeof bVal === 'number') {\n comparison = aVal - bVal\n } else if (aVal instanceof Date && bVal instanceof Date) {\n comparison = aVal.getTime() - bVal.getTime()\n } else {\n const aStr = String(aVal)\n const bStr = String(bVal)\n if (aStr < bStr) comparison = -1\n else if (aStr > bStr) comparison = 1\n }\n \n return comparison * sortOrderValue\n })\n }\n \n const limitValue = limit || perPage\n const pageValue = page ? Math.max(1, parseInt(page)) : undefined\n const offsetValue = offset !== undefined ? Math.max(0, parseInt(offset)) : (pageValue && perPage ? (pageValue - 1) * Math.max(1, parseInt(perPage)) : 0)\n \n if (limitValue) {\n const limitInt = Math.max(1, parseInt(limitValue))\n data = data.slice(offsetValue, offsetValue + limitInt)\n } else if (offsetValue > 0) {\n data = data.slice(offsetValue)\n }\n }\n \n if (itemsEnvelope) {\n data = itemsEnvelope.close(data)\n }\n \n const safeData = JSON.parse(JSON.stringify(data, dateReplacer))\n \n return res.status(200).json({\n success: true,\n data: safeData,\n timestamp: Date.now()\n })\n } catch (error) {\n console.error('JavaScript execution error:', error)\n return res.status(500).json({\n success: false,\n error: error.message || 'Failed to execute code',\n timestamp: Date.now()\n })\n }\n}\n");
30
30
  };
31
31
  // tslint:disable-next-line:variable-name
32
32
  export var generateJavaScriptCountFetcher = function (_config) {
@@ -1 +1 @@
1
- {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/fetchers/javascript.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAChC,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,UAAU,CAAA;AAEjB,MAAM,CAAC,IAAM,wBAAwB,GAAG,UACtC,MAA+B;IAE/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;KAClE;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAChF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAA;KAChE;IAED,IAAM,iBAAiB,GAAG;QACxB,eAAe;QACf,YAAY;QACZ,YAAY;QACZ,gBAAgB;QAChB,YAAY;QACZ,WAAW;QACX,cAAc;KACf,CAAA;IAED,KAAsB,UAAiB,EAAjB,uCAAiB,EAAjB,+BAAiB,EAAjB,IAAiB,EAAE;QAApC,IAAM,OAAO,0BAAA;QAChB,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAC7B,OAAO,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAA;YAC9F,MAAK;SACN;KACF;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC,CAAA;AAMD,MAAM,CAAC,IAAM,yBAAyB,GAAG,UAAC,MAA+B;IACvE,IAAM,QAAQ,GAAG,MAA0B,CAAA;IAE3C,OAAO,UAAG,yBAAyB,EAAE,iBAErC,yBAAyB,EAAE,iBAE3B,4BAA4B,EAAE,iBAE9B,6BAA6B,EAAE,iBAE/B,gCAAgC,EAAE,+OAMjB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,6vLA8J/C,CAAA;AACD,CAAC,CAAA;AAED,yCAAyC;AACzC,MAAM,CAAC,IAAM,8BAA8B,GAAG,UAAC,OAAY;IACzD,OAAO,m2CAgDR,CAAA;AACD,CAAC,CAAA"}
1
+ {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/fetchers/javascript.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAChC,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,UAAU,CAAA;AAEjB,MAAM,CAAC,IAAM,wBAAwB,GAAG,UACtC,MAA+B;IAE/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;KAClE;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAChF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAA;KAChE;IAED,IAAM,iBAAiB,GAAG;QACxB,eAAe;QACf,YAAY;QACZ,YAAY;QACZ,gBAAgB;QAChB,YAAY;QACZ,WAAW;QACX,cAAc;KACf,CAAA;IAED,KAAsB,UAAiB,EAAjB,uCAAiB,EAAjB,+BAAiB,EAAjB,IAAiB,EAAE;QAApC,IAAM,OAAO,0BAAA;QAChB,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAC7B,OAAO,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAA;YAC9F,MAAK;SACN;KACF;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC,CAAA;AAMD,MAAM,CAAC,IAAM,yBAAyB,GAAG,UAAC,MAA+B;IACvE,IAAM,QAAQ,GAAG,MAA0B,CAAA;IAE3C,OAAO,UAAG,yBAAyB,EAAE,iBAErC,yBAAyB,EAAE,iBAE3B,4BAA4B,EAAE,iBAE9B,6BAA6B,EAAE,iBAE/B,gCAAgC,EAAE,+OAMjB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,o0LA8J/C,CAAA;AACD,CAAC,CAAA;AAED,yCAAyC;AACzC,MAAM,CAAC,IAAM,8BAA8B,GAAG,UAAC,OAAY;IACzD,OAAO,m2CAgDR,CAAA;AACD,CAAC,CAAA"}
@@ -88,6 +88,6 @@ export var generateRESTAPIFetcher = function (config) {
88
88
  restConfig.body
89
89
  ? " else {\n options.body = ".concat(JSON.stringify(restConfig.body), "\n }")
90
90
  : '', "\n ")
91
- : '', "\n \n const response = await ").concat(cached ? 'fetchRestApiWithCache' : 'fetch', "(url, options)\n \n if (!response.ok) {\n return res.status(response.status).json({\n success: false,\n error: `HTTP ${response.status}: ${response.statusText}`,\n timestamp: Date.now()\n })\n }\n \n let data = ").concat(cached ? 'JSON.parse(response.bodyText)' : 'await response.json()', "\n \n data = resolveCollectionPath(data, collectionPath)\n const itemsEnvelope = openItemsEnvelope(data, itemsPath)\n if (itemsEnvelope) {\n data = itemsEnvelope.items\n }\n \n if (Array.isArray(data)) {\n if (query && query.trim()) {\n const searchQuery = query.toLowerCase()\n \n if (queryColumns) {\n try {\n const parsed = safeJSONParse(queryColumns)\n const columns = Array.isArray(parsed) ? parsed : [parsed]\n data = data.filter((item) => {\n return columns.some((col) => {\n const value = getNestedValue(item, col)\n if (value === null || value === undefined) return false\n return String(value).toLowerCase().includes(searchQuery)\n })\n })\n } catch (err) {\n console.error('Error parsing queryColumns:', err)\n }\n } else {\n data = data.filter((item) => {\n try {\n const stringified = JSON.stringify(item).toLowerCase()\n return stringified.includes(searchQuery)\n } catch {\n return false\n }\n })\n }\n }\n \n if (filters) {\n try {\n const filterTree = normalizeFilterTree(safeJSONParse(filters))\n \n if (filterTree) {\n data = data.filter((item) =>\n evaluateFilterTree(filterTree, (condition) => {\n const value = getNestedValue(item, condition.source)\n const target = condition.destination\n const operand = condition.operand\n \n if (Array.isArray(target)) {\n if (operand === '!=') {\n return !target.includes(value)\n }\n return target.includes(value)\n }\n \n return compareValues(value, target, operand)\n })\n )\n }\n } catch (err) {\n console.error('Error parsing filters:', err)\n }\n }\n \n if (sorts) {\n try {\n const parsedSorts = safeJSONParse(sorts)\n if (Array.isArray(parsedSorts) && parsedSorts.length > 0) {\n data.sort((a, b) => {\n for (const sort of parsedSorts) {\n if (!sort.field) continue\n const aVal = getNestedValue(a, sort.field)\n const bVal = getNestedValue(b, sort.field)\n const sortOrderValue = (sort.order || '').toLowerCase().startsWith('desc') ? -1 : 1\n \n let comparison = 0\n if (aVal === null || aVal === undefined) {\n comparison = bVal === null || bVal === undefined ? 0 : -1\n } else if (bVal === null || bVal === undefined) {\n comparison = 1\n } else if (typeof aVal === 'number' && typeof bVal === 'number') {\n comparison = aVal - bVal\n } else if (aVal instanceof Date && bVal instanceof Date) {\n comparison = aVal.getTime() - bVal.getTime()\n } else {\n const aStr = String(aVal)\n const bStr = String(bVal)\n if (aStr < bStr) comparison = -1\n else if (aStr > bStr) comparison = 1\n }\n \n if (comparison !== 0) return comparison * sortOrderValue\n }\n return 0\n })\n }\n } catch (err) {\n console.error('Error parsing sorts:', err)\n }\n } else if (sortBy && sortBy.trim()) {\n data.sort((a, b) => {\n const aVal = getNestedValue(a, sortBy)\n const bVal = getNestedValue(b, sortBy)\n const sortOrderValue = (sortOrder || '').toLowerCase().startsWith('desc') ? -1 : 1\n \n let comparison = 0\n if (aVal === null || aVal === undefined) {\n comparison = bVal === null || bVal === undefined ? 0 : -1\n } else if (bVal === null || bVal === undefined) {\n comparison = 1\n } else if (typeof aVal === 'number' && typeof bVal === 'number') {\n comparison = aVal - bVal\n } else if (aVal instanceof Date && bVal instanceof Date) {\n comparison = aVal.getTime() - bVal.getTime()\n } else {\n const aStr = String(aVal)\n const bStr = String(bVal)\n if (aStr < bStr) comparison = -1\n else if (aStr > bStr) comparison = 1\n }\n \n return comparison * sortOrderValue\n })\n }\n \n const limitValue = limit || perPage\n const pageValue = page ? Math.max(1, parseInt(page)) : undefined\n const offsetValue = offset !== undefined ? Math.max(0, parseInt(offset)) : (pageValue && perPage ? (pageValue - 1) * Math.max(1, parseInt(perPage)) : 0)\n \n if (limitValue) {\n const limitInt = Math.max(1, parseInt(limitValue))\n data = data.slice(offsetValue, offsetValue + limitInt)\n } else if (offsetValue > 0) {\n data = data.slice(offsetValue)\n }\n }\n \n if (itemsEnvelope) {\n data = itemsEnvelope.close(data)\n }\n \n const safeData = JSON.parse(JSON.stringify(data, dateReplacer))\n \n ").concat(cached ? 'applyRestApiCacheHeaders(req, res, response.fetchedAt)\n \n ' : '', "return res.status(200).json({\n success: true,\n data: safeData,\n timestamp: Date.now()\n })\n } catch (error) {\n console.error('REST API fetch error:', error)\n return res.status(500).json({\n success: false,\n error: error.message || 'Failed to fetch data',\n timestamp: Date.now()\n })\n }\n}\n");
91
+ : '', "\n \n const response = await ").concat(cached ? 'fetchRestApiWithCache' : 'fetch', "(url, options)\n \n if (!response.ok) {\n return res.status(response.status).json({\n success: false,\n error: `HTTP ${response.status}: ${response.statusText}`,\n timestamp: Date.now()\n })\n }\n \n let data = ").concat(cached ? 'JSON.parse(response.bodyText)' : 'await response.json()', "\n \n data = resolveCollectionPath(data, collectionPath)\n const itemsEnvelope = openItemsEnvelope(data, itemsPath)\n if (itemsEnvelope) {\n data = itemsEnvelope.items\n }\n \n if (Array.isArray(data)) {\n if (query && query.trim()) {\n const searchTerms = query.toLowerCase().split(' ').filter(Boolean)\n \n if (queryColumns) {\n try {\n const parsed = safeJSONParse(queryColumns)\n const columns = Array.isArray(parsed) ? parsed : [parsed]\n data = data.filter((item) => {\n return searchTerms.every((term) => columns.some((col) => {\n const value = getNestedValue(item, col)\n if (value === null || value === undefined) return false\n return String(value).toLowerCase().includes(term)\n }))\n })\n } catch (err) {\n console.error('Error parsing queryColumns:', err)\n }\n } else {\n data = data.filter((item) => {\n try {\n const stringified = JSON.stringify(item).toLowerCase()\n return searchTerms.every((term) => stringified.includes(term))\n } catch {\n return false\n }\n })\n }\n }\n \n if (filters) {\n try {\n const filterTree = normalizeFilterTree(safeJSONParse(filters))\n \n if (filterTree) {\n data = data.filter((item) =>\n evaluateFilterTree(filterTree, (condition) => {\n const value = getNestedValue(item, condition.source)\n const target = condition.destination\n const operand = condition.operand\n \n if (Array.isArray(target)) {\n if (operand === '!=') {\n return !target.includes(value)\n }\n return target.includes(value)\n }\n \n return compareValues(value, target, operand)\n })\n )\n }\n } catch (err) {\n console.error('Error parsing filters:', err)\n }\n }\n \n if (sorts) {\n try {\n const parsedSorts = safeJSONParse(sorts)\n if (Array.isArray(parsedSorts) && parsedSorts.length > 0) {\n data.sort((a, b) => {\n for (const sort of parsedSorts) {\n if (!sort.field) continue\n const aVal = getNestedValue(a, sort.field)\n const bVal = getNestedValue(b, sort.field)\n const sortOrderValue = (sort.order || '').toLowerCase().startsWith('desc') ? -1 : 1\n \n let comparison = 0\n if (aVal === null || aVal === undefined) {\n comparison = bVal === null || bVal === undefined ? 0 : -1\n } else if (bVal === null || bVal === undefined) {\n comparison = 1\n } else if (typeof aVal === 'number' && typeof bVal === 'number') {\n comparison = aVal - bVal\n } else if (aVal instanceof Date && bVal instanceof Date) {\n comparison = aVal.getTime() - bVal.getTime()\n } else {\n const aStr = String(aVal)\n const bStr = String(bVal)\n if (aStr < bStr) comparison = -1\n else if (aStr > bStr) comparison = 1\n }\n \n if (comparison !== 0) return comparison * sortOrderValue\n }\n return 0\n })\n }\n } catch (err) {\n console.error('Error parsing sorts:', err)\n }\n } else if (sortBy && sortBy.trim()) {\n data.sort((a, b) => {\n const aVal = getNestedValue(a, sortBy)\n const bVal = getNestedValue(b, sortBy)\n const sortOrderValue = (sortOrder || '').toLowerCase().startsWith('desc') ? -1 : 1\n \n let comparison = 0\n if (aVal === null || aVal === undefined) {\n comparison = bVal === null || bVal === undefined ? 0 : -1\n } else if (bVal === null || bVal === undefined) {\n comparison = 1\n } else if (typeof aVal === 'number' && typeof bVal === 'number') {\n comparison = aVal - bVal\n } else if (aVal instanceof Date && bVal instanceof Date) {\n comparison = aVal.getTime() - bVal.getTime()\n } else {\n const aStr = String(aVal)\n const bStr = String(bVal)\n if (aStr < bStr) comparison = -1\n else if (aStr > bStr) comparison = 1\n }\n \n return comparison * sortOrderValue\n })\n }\n \n const limitValue = limit || perPage\n const pageValue = page ? Math.max(1, parseInt(page)) : undefined\n const offsetValue = offset !== undefined ? Math.max(0, parseInt(offset)) : (pageValue && perPage ? (pageValue - 1) * Math.max(1, parseInt(perPage)) : 0)\n \n if (limitValue) {\n const limitInt = Math.max(1, parseInt(limitValue))\n data = data.slice(offsetValue, offsetValue + limitInt)\n } else if (offsetValue > 0) {\n data = data.slice(offsetValue)\n }\n }\n \n if (itemsEnvelope) {\n data = itemsEnvelope.close(data)\n }\n \n const safeData = JSON.parse(JSON.stringify(data, dateReplacer))\n \n ").concat(cached ? 'applyRestApiCacheHeaders(req, res, response.fetchedAt)\n \n ' : '', "return res.status(200).json({\n success: true,\n data: safeData,\n timestamp: Date.now()\n })\n } catch (error) {\n console.error('REST API fetch error:', error)\n return res.status(500).json({\n success: false,\n error: error.message || 'Failed to fetch data',\n timestamp: Date.now()\n })\n }\n}\n");
92
92
  };
93
93
  //# sourceMappingURL=rest-api.js.map