From 44638751016598aecc59fd1839c32a0d0ffb3656 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mi=C5=A1ko=20Hevery?= Date: Wed, 1 Nov 2023 18:46:50 -0700 Subject: [PATCH] feat(insights): Add new route visibility --- packages/docs/package.json | 6 +- .../insights/drizzle/0013_brave_venus.sql | 2 + .../insights/drizzle/meta/0013_snapshot.json | 1615 +++++++++++++++++ packages/insights/drizzle/meta/_journal.json | 7 + packages/insights/package.json | 9 +- .../insights/src/components/icons/routes.tsx | 34 + packages/insights/src/db/schema.ts | 2 - packages/insights/src/db/sql-routes.ts | 69 + packages/insights/src/routes.config.tsx | 2 +- packages/insights/src/routes.gen.d.ts | 14 + .../api/v1/[publicApiKey]/post/index.tsx | 10 +- .../src/routes/app/[publicApiKey]/layout.tsx | 9 + .../[publicApiKey]/routes/[route]/index.tsx | 60 + .../app/[publicApiKey]/routes/index.tsx | 76 +- packages/insights/src/styles/index.tsx | 4 + packages/qwik-labs/src/insights/index.tsx | 22 +- pnpm-lock.yaml | 122 +- 17 files changed, 1929 insertions(+), 134 deletions(-) create mode 100644 packages/insights/drizzle/0013_brave_venus.sql create mode 100644 packages/insights/drizzle/meta/0013_snapshot.json create mode 100644 packages/insights/src/components/icons/routes.tsx create mode 100644 packages/insights/src/routes/app/[publicApiKey]/routes/[route]/index.tsx create mode 100644 packages/insights/src/styles/index.tsx diff --git a/packages/docs/package.json b/packages/docs/package.json index 6cbba36b5e1..b62272b50bd 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -8,9 +8,9 @@ "@algolia/autocomplete-core": "1.7.4", "@algolia/client-search": "4.14.3", "@builder.io/partytown": "^0.8.1", - "@builder.io/qwik": "github:BuilderIo/qwik-build#d3722d228e541225f75068160287811ee900a29c", - "@builder.io/qwik-city": "github:BuilderIo/qwik-city-build#86e0034604ef6ecb2e50e7b3c2c2b8f3a36b0118", - "@builder.io/qwik-labs": "github:BuilderIo/qwik-labs-build#f93ef76256c988d57acd24cc5d59ebf2e39c3d02", + "@builder.io/qwik": "github:BuilderIo/qwik-build#7521f8e9157e643e7948fa4ae99234e41b56cf95", + "@builder.io/qwik-city": "github:BuilderIo/qwik-city-build#bc4e963e1243fd2a6d74dcc5fe5d12fd69a8ac96", + "@builder.io/qwik-labs": "github:BuilderIo/qwik-labs-build#5f672e948330926b348cbac8692d9aba6f8f41b2", "@builder.io/qwik-react": "0.5.0", "@builder.io/sdk-qwik": "^0.6.2", "@docsearch/css": "^3.5.2", diff --git a/packages/insights/drizzle/0013_brave_venus.sql b/packages/insights/drizzle/0013_brave_venus.sql new file mode 100644 index 00000000000..b12b5cbadce --- /dev/null +++ b/packages/insights/drizzle/0013_brave_venus.sql @@ -0,0 +1,2 @@ +ALTER TABLE `errors` DROP COLUMN `session_id`;--> statement-breakpoint +ALTER TABLE `symbols` DROP COLUMN `session_id`; \ No newline at end of file diff --git a/packages/insights/drizzle/meta/0013_snapshot.json b/packages/insights/drizzle/meta/0013_snapshot.json new file mode 100644 index 00000000000..4fa82e955f0 --- /dev/null +++ b/packages/insights/drizzle/meta/0013_snapshot.json @@ -0,0 +1,1615 @@ +{ + "version": "5", + "dialect": "sqlite", + "id": "a990fdef-a597-4283-bfd7-0487cacda31c", + "prevId": "b433e33c-f6e2-4ade-b42c-b899ce0ab208", + "tables": { + "applications": { + "name": "applications", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "public_api_key": { + "name": "public_api_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "publicApiKeyIndex": { + "name": "publicApiKeyIndex", + "columns": [ + "public_api_key" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "edges": { + "name": "edges", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "public_api_key": { + "name": "public_api_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "manifest_hash": { + "name": "manifest_hash", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "from": { + "name": "from", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "to": { + "name": "to", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "interaction": { + "name": "interaction", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_00": { + "name": "delay_count_00", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_01": { + "name": "delay_count_01", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_02": { + "name": "delay_count_02", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_03": { + "name": "delay_count_03", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_04": { + "name": "delay_count_04", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_05": { + "name": "delay_count_05", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_06": { + "name": "delay_count_06", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_07": { + "name": "delay_count_07", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_08": { + "name": "delay_count_08", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_09": { + "name": "delay_count_09", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_10": { + "name": "delay_count_10", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_11": { + "name": "delay_count_11", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_12": { + "name": "delay_count_12", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_13": { + "name": "delay_count_13", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_14": { + "name": "delay_count_14", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_15": { + "name": "delay_count_15", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_16": { + "name": "delay_count_16", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_17": { + "name": "delay_count_17", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_18": { + "name": "delay_count_18", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_19": { + "name": "delay_count_19", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_20": { + "name": "delay_count_20", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_21": { + "name": "delay_count_21", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_22": { + "name": "delay_count_22", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_23": { + "name": "delay_count_23", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_24": { + "name": "delay_count_24", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_25": { + "name": "delay_count_25", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_26": { + "name": "delay_count_26", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_27": { + "name": "delay_count_27", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_28": { + "name": "delay_count_28", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_29": { + "name": "delay_count_29", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_30": { + "name": "delay_count_30", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_31": { + "name": "delay_count_31", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_32": { + "name": "delay_count_32", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_33": { + "name": "delay_count_33", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_34": { + "name": "delay_count_34", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_35": { + "name": "delay_count_35", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_36": { + "name": "delay_count_36", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_37": { + "name": "delay_count_37", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_38": { + "name": "delay_count_38", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_39": { + "name": "delay_count_39", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_40": { + "name": "delay_count_40", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_41": { + "name": "delay_count_41", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_42": { + "name": "delay_count_42", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_43": { + "name": "delay_count_43", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_44": { + "name": "delay_count_44", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_45": { + "name": "delay_count_45", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_46": { + "name": "delay_count_46", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_47": { + "name": "delay_count_47", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_48": { + "name": "delay_count_48", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "delay_count_49": { + "name": "delay_count_49", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_00": { + "name": "latency_count_00", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_01": { + "name": "latency_count_01", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_02": { + "name": "latency_count_02", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_03": { + "name": "latency_count_03", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_04": { + "name": "latency_count_04", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_05": { + "name": "latency_count_05", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_06": { + "name": "latency_count_06", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_07": { + "name": "latency_count_07", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_08": { + "name": "latency_count_08", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_09": { + "name": "latency_count_09", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_10": { + "name": "latency_count_10", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_11": { + "name": "latency_count_11", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_12": { + "name": "latency_count_12", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_13": { + "name": "latency_count_13", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_14": { + "name": "latency_count_14", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_15": { + "name": "latency_count_15", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_16": { + "name": "latency_count_16", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_17": { + "name": "latency_count_17", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_18": { + "name": "latency_count_18", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_19": { + "name": "latency_count_19", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_20": { + "name": "latency_count_20", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_21": { + "name": "latency_count_21", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_22": { + "name": "latency_count_22", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_23": { + "name": "latency_count_23", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_24": { + "name": "latency_count_24", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_25": { + "name": "latency_count_25", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_26": { + "name": "latency_count_26", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_27": { + "name": "latency_count_27", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_28": { + "name": "latency_count_28", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_29": { + "name": "latency_count_29", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_30": { + "name": "latency_count_30", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_31": { + "name": "latency_count_31", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_32": { + "name": "latency_count_32", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_33": { + "name": "latency_count_33", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_34": { + "name": "latency_count_34", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_35": { + "name": "latency_count_35", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_36": { + "name": "latency_count_36", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_37": { + "name": "latency_count_37", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_38": { + "name": "latency_count_38", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_39": { + "name": "latency_count_39", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_40": { + "name": "latency_count_40", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_41": { + "name": "latency_count_41", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_42": { + "name": "latency_count_42", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_43": { + "name": "latency_count_43", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_44": { + "name": "latency_count_44", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_45": { + "name": "latency_count_45", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_46": { + "name": "latency_count_46", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_47": { + "name": "latency_count_47", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_48": { + "name": "latency_count_48", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "latency_count_49": { + "name": "latency_count_49", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "edgeIndex_PublicApiKey": { + "name": "edgeIndex_PublicApiKey", + "columns": [ + "public_api_key" + ], + "isUnique": false + }, + "edgeIndex_PublicApiKey_manifestHash": { + "name": "edgeIndex_PublicApiKey_manifestHash", + "columns": [ + "public_api_key", + "manifest_hash" + ], + "isUnique": false + }, + "edgeIndex": { + "name": "edgeIndex", + "columns": [ + "public_api_key", + "manifest_hash", + "from", + "to" + ], + "isUnique": true + } + }, + "foreignKeys": { + "edges_public_api_key_applications_public_api_key_fk": { + "name": "edges_public_api_key_applications_public_api_key_fk", + "tableFrom": "edges", + "tableTo": "applications", + "columnsFrom": [ + "public_api_key" + ], + "columnsTo": [ + "public_api_key" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "errors": { + "name": "errors", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "public_api_key": { + "name": "public_api_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "manifest_hash": { + "name": "manifest_hash", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "timestamp": { + "name": "timestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "source": { + "name": "source", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "line": { + "name": "line", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "column": { + "name": "column", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "message": { + "name": "message", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "error": { + "name": "error", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "stack": { + "name": "stack", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "errors_public_api_key_applications_public_api_key_fk": { + "name": "errors_public_api_key_applications_public_api_key_fk", + "tableFrom": "errors", + "tableTo": "applications", + "columnsFrom": [ + "public_api_key" + ], + "columnsTo": [ + "public_api_key" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "errors_manifest_hash_manifests_hash_fk": { + "name": "errors_manifest_hash_manifests_hash_fk", + "tableFrom": "errors", + "tableTo": "manifests", + "columnsFrom": [ + "manifest_hash" + ], + "columnsTo": [ + "hash" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "manifests": { + "name": "manifests", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "public_api_key": { + "name": "public_api_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "hash": { + "name": "hash", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timestamp": { + "name": "timestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "hashIndex": { + "name": "hashIndex", + "columns": [ + "hash", + "public_api_key" + ], + "isUnique": true + } + }, + "foreignKeys": { + "manifests_public_api_key_applications_public_api_key_fk": { + "name": "manifests_public_api_key_applications_public_api_key_fk", + "tableFrom": "manifests", + "tableTo": "applications", + "columnsFrom": [ + "public_api_key" + ], + "columnsTo": [ + "public_api_key" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "routes": { + "name": "routes", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "public_api_key": { + "name": "public_api_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "manifest_hash": { + "name": "manifest_hash", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "route": { + "name": "route", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "symbol": { + "name": "symbol", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_00": { + "name": "timeline_00", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_01": { + "name": "timeline_01", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_02": { + "name": "timeline_02", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_03": { + "name": "timeline_03", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_04": { + "name": "timeline_04", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_05": { + "name": "timeline_05", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_06": { + "name": "timeline_06", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_07": { + "name": "timeline_07", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_08": { + "name": "timeline_08", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_09": { + "name": "timeline_09", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_10": { + "name": "timeline_10", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_11": { + "name": "timeline_11", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_12": { + "name": "timeline_12", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_13": { + "name": "timeline_13", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_14": { + "name": "timeline_14", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_15": { + "name": "timeline_15", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_16": { + "name": "timeline_16", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_17": { + "name": "timeline_17", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_18": { + "name": "timeline_18", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_19": { + "name": "timeline_19", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_20": { + "name": "timeline_20", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_21": { + "name": "timeline_21", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_22": { + "name": "timeline_22", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_23": { + "name": "timeline_23", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_24": { + "name": "timeline_24", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_25": { + "name": "timeline_25", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_26": { + "name": "timeline_26", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_27": { + "name": "timeline_27", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_28": { + "name": "timeline_28", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_29": { + "name": "timeline_29", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_30": { + "name": "timeline_30", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_31": { + "name": "timeline_31", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_32": { + "name": "timeline_32", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_33": { + "name": "timeline_33", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_34": { + "name": "timeline_34", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_35": { + "name": "timeline_35", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_36": { + "name": "timeline_36", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_37": { + "name": "timeline_37", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_38": { + "name": "timeline_38", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_39": { + "name": "timeline_39", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_40": { + "name": "timeline_40", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_41": { + "name": "timeline_41", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_42": { + "name": "timeline_42", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_43": { + "name": "timeline_43", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_44": { + "name": "timeline_44", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_45": { + "name": "timeline_45", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_46": { + "name": "timeline_46", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_47": { + "name": "timeline_47", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_48": { + "name": "timeline_48", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timeline_49": { + "name": "timeline_49", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "routeIndex_Symbol": { + "name": "routeIndex_Symbol", + "columns": [ + "public_api_key", + "manifest_hash", + "route", + "symbol" + ], + "isUnique": true + } + }, + "foreignKeys": { + "routes_public_api_key_applications_public_api_key_fk": { + "name": "routes_public_api_key_applications_public_api_key_fk", + "tableFrom": "routes", + "tableTo": "applications", + "columnsFrom": [ + "public_api_key" + ], + "columnsTo": [ + "public_api_key" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "symbolDetail": { + "name": "symbolDetail", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "hash": { + "name": "hash", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "public_api_key": { + "name": "public_api_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "manifest_hash": { + "name": "manifest_hash", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "full_name": { + "name": "full_name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "origin": { + "name": "origin", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "lo": { + "name": "lo", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "hi": { + "name": "hi", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "symbolDetail_public_api_key_applications_public_api_key_fk": { + "name": "symbolDetail_public_api_key_applications_public_api_key_fk", + "tableFrom": "symbolDetail", + "tableTo": "applications", + "columnsFrom": [ + "public_api_key" + ], + "columnsTo": [ + "public_api_key" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "symbolDetail_public_api_key_manifest_hash_manifests_public_api_key_hash_fk": { + "name": "symbolDetail_public_api_key_manifest_hash_manifests_public_api_key_hash_fk", + "tableFrom": "symbolDetail", + "tableTo": "manifests", + "columnsFrom": [ + "public_api_key", + "manifest_hash" + ], + "columnsTo": [ + "public_api_key", + "hash" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "symbols": { + "name": "symbols", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "public_api_key": { + "name": "public_api_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "pathname": { + "name": "pathname", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "interaction": { + "name": "interaction", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "symbol": { + "name": "symbol", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "prev_symbol": { + "name": "prev_symbol", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "time_delta_ms": { + "name": "time_delta_ms", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "load_delay_ms": { + "name": "load_delay_ms", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "symbols_public_api_key_applications_public_api_key_fk": { + "name": "symbols_public_api_key_applications_public_api_key_fk", + "tableFrom": "symbols", + "tableTo": "applications", + "columnsFrom": [ + "public_api_key" + ], + "columnsTo": [ + "public_api_key" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + } + }, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + } +} \ No newline at end of file diff --git a/packages/insights/drizzle/meta/_journal.json b/packages/insights/drizzle/meta/_journal.json index 68b57a6d452..87675201207 100644 --- a/packages/insights/drizzle/meta/_journal.json +++ b/packages/insights/drizzle/meta/_journal.json @@ -92,6 +92,13 @@ "when": 1692906645372, "tag": "0012_omniscient_leader", "breakpoints": true + }, + { + "idx": 13, + "version": "5", + "when": 1698882288491, + "tag": "0013_brave_venus", + "breakpoints": true } ] } \ No newline at end of file diff --git a/packages/insights/package.json b/packages/insights/package.json index 50473fd90a7..4899aac1715 100644 --- a/packages/insights/package.json +++ b/packages/insights/package.json @@ -14,8 +14,8 @@ "install": "^0.13.0" }, "devDependencies": { - "@builder.io/qwik": "github:BuilderIo/qwik-build#d3722d228e541225f75068160287811ee900a29c", - "@builder.io/qwik-city": "github:BuilderIo/qwik-city-build#86e0034604ef6ecb2e50e7b3c2c2b8f3a36b0118", + "@builder.io/qwik": "github:BuilderIo/qwik-build#7521f8e9157e643e7948fa4ae99234e41b56cf95", + "@builder.io/qwik-city": "github:BuilderIo/qwik-city-build#bc4e963e1243fd2a6d74dcc5fe5d12fd69a8ac96", "@builder.io/qwik-labs": "workspace:*", "@builder.io/vite-plugin-macro": "~0.0.7", "@netlify/edge-functions": "^2.2.0", @@ -25,6 +25,7 @@ "@types/node": "^20.8.4", "@typescript-eslint/eslint-plugin": "^6.7.5", "@typescript-eslint/parser": "^6.7.5", + "better-sqlite3": "^9.0.0", "eslint": "^8.51.0", "eslint-plugin-qwik": "^1.2.13", "netlify-cli": "^15.9.1", @@ -59,10 +60,10 @@ "preview": "qwik build preview && vite preview --open", "qManifest.post": "curl -X POST -H 'Content-Type: application/json' -d @./dist/q-manifest.json https://qwik-insights.builder.io/api/v1/221smyuj5gl/post/manifest/", "qManifest.post.local": "curl -X POST -H 'Content-Type: application/json' -d @./dist/q-manifest.json http://localhost:5173/api/v1/221smyuj5gl/post/manifest/", - "qwik": "qwik", "start": "vite --open --mode ssr", "test.cluster": "tsm src/cluster.ts", "test.unit": "vitest", - "test.watch": "vitest --watch" + "test.watch": "vitest --watch", + "qwik": "qwik" } } diff --git a/packages/insights/src/components/icons/routes.tsx b/packages/insights/src/components/icons/routes.tsx new file mode 100644 index 00000000000..f10e21f343d --- /dev/null +++ b/packages/insights/src/components/icons/routes.tsx @@ -0,0 +1,34 @@ +import { type QwikIntrinsicElements } from '@builder.io/qwik'; + +export function RoutesIcon(props: QwikIntrinsicElements['svg'], key: string) { + return ( + + + + + + + + + + ); +} diff --git a/packages/insights/src/db/schema.ts b/packages/insights/src/db/schema.ts index bfdc2297b74..244321002f4 100644 --- a/packages/insights/src/db/schema.ts +++ b/packages/insights/src/db/schema.ts @@ -38,7 +38,6 @@ export const symbolTable = sqliteTable('symbols', { pathname: text('pathname').notNull(), interaction: integer('interaction').notNull(), symbol: text('symbol').notNull(), - sessionID: text('session_id').notNull(), previousSymbol: text('prev_symbol'), timeDelta: integer('time_delta_ms').notNull(), loadDelay: integer('load_delay_ms').notNull(), @@ -53,7 +52,6 @@ export const errorTable = sqliteTable('errors', { publicApiKey: text('public_api_key').references(() => applicationTable.publicApiKey), manifestHash: text('manifest_hash').references(() => manifestTable.hash), timestamp: integer('timestamp', { mode: 'timestamp_ms' }).notNull(), - sessionID: text('session_id').notNull(), url: text('url').notNull(), source: text('source').notNull(), line: integer('line').notNull(), diff --git a/packages/insights/src/db/sql-routes.ts b/packages/insights/src/db/sql-routes.ts index aa0253bbc04..565cd15c068 100644 --- a/packages/insights/src/db/sql-routes.ts +++ b/packages/insights/src/db/sql-routes.ts @@ -38,3 +38,72 @@ export async function getRoutes( })); }); } + +export interface RouteRow { + route: string; + // timeline: number[]; +} + +export async function getRouteNames( + db: AppDatabase, + publicApiKey: string, + manifests: string[] | undefined +): Promise { + let where = eq(routesTable.publicApiKey, publicApiKey); + if (manifests && manifests.length) { + where = and(where, inArray(routesTable.manifestHash, manifests))!; + } + + return time('routesTable.getRoutes', async () => { + const query = await db + .select({ + route: routesTable.route, + }) + .from(routesTable) + .where(where) + .groupBy(routesTable.route) + .orderBy(sql`${routesTable.route}`) + .all(); + return query.map((row) => ({ + route: row.route, + // timeline: listToVector(row.timelineDelays), + })); + }); +} + +export interface RouteSymbolRow { + route: string; + symbol: string; + timeline: number[]; +} + +export async function getRouteTimeline( + db: AppDatabase, + publicApiKey: string, + route: string, + manifests: string[] | undefined +): Promise { + let where = and(eq(routesTable.publicApiKey, publicApiKey), eq(routesTable.route, route)); + if (manifests && manifests.length) { + where = and(where, inArray(routesTable.manifestHash, manifests))!; + } + + return time(`routesTable.getRouteTimeline("${publicApiKey}", "${route}")`, async () => { + const query = await db + .select({ + route: routesTable.route, + symbol: routesTable.symbol, + timelineDelays: timelineDelayAsList, + }) + .from(routesTable) + .where(where) + .groupBy(routesTable.route, routesTable.symbol) + .orderBy(sql`${routesTable.route}`, desc(sumTimelineCount)) + .all(); + return query.map((row) => ({ + route: row.route, + symbol: row.symbol, + timeline: listToVector(row.timelineDelays), + })); + }); +} diff --git a/packages/insights/src/routes.config.tsx b/packages/insights/src/routes.config.tsx index 11379c6dcbd..7f859f46033 100644 --- a/packages/insights/src/routes.config.tsx +++ b/packages/insights/src/routes.config.tsx @@ -24,7 +24,7 @@ export function AppLink(props: AppLinkProps & QwikIntrinsicElements['a']) { props, 'param:' )} - {...omitProps(props, ['href'])} + {...(omitProps as Function)(props, ['href'])} > {props.children} diff --git a/packages/insights/src/routes.gen.d.ts b/packages/insights/src/routes.gen.d.ts index 48dcfccf63f..7da80cf035c 100644 --- a/packages/insights/src/routes.gen.d.ts +++ b/packages/insights/src/routes.gen.d.ts @@ -15,6 +15,7 @@ export type AppRoutes = | "/app/[publicApiKey]/errors/" | "/app/[publicApiKey]/manifests/" | "/app/[publicApiKey]/routes/" + | "/app/[publicApiKey]/routes/[route]/" | "/app/[publicApiKey]/symbols/" | "/app/[publicApiKey]/symbols/bundles/" | "/app/[publicApiKey]/symbols/edge/" @@ -38,6 +39,10 @@ export interface AppRouteMap { "/app/[publicApiKey]/errors/": { publicApiKey: string }; "/app/[publicApiKey]/manifests/": { publicApiKey: string }; "/app/[publicApiKey]/routes/": { publicApiKey: string }; + "/app/[publicApiKey]/routes/[route]/": { + publicApiKey: string; + route: string; + }; "/app/[publicApiKey]/symbols/": { publicApiKey: string }; "/app/[publicApiKey]/symbols/bundles/": { publicApiKey: string }; "/app/[publicApiKey]/symbols/edge/": { publicApiKey: string }; @@ -89,6 +94,10 @@ export interface AppRouteParamsFunction { route: "/app/[publicApiKey]/routes/", params: { publicApiKey: string }, ): string; + ( + route: "/app/[publicApiKey]/routes/[route]/", + params: { publicApiKey: string; route: string }, + ): string; ( route: "/app/[publicApiKey]/symbols/", params: { publicApiKey: string }, @@ -137,6 +146,11 @@ export type AppLinkProps = | { route: "/app/[publicApiKey]/errors/"; "param:publicApiKey": string } | { route: "/app/[publicApiKey]/manifests/"; "param:publicApiKey": string } | { route: "/app/[publicApiKey]/routes/"; "param:publicApiKey": string } + | { + route: "/app/[publicApiKey]/routes/[route]/"; + "param:publicApiKey": string; + "param:route": string; + } | { route: "/app/[publicApiKey]/symbols/"; "param:publicApiKey": string } | { route: "/app/[publicApiKey]/symbols/bundles/"; diff --git a/packages/insights/src/routes/api/v1/[publicApiKey]/post/index.tsx b/packages/insights/src/routes/api/v1/[publicApiKey]/post/index.tsx index 40c33c2c170..6a6e55b8e3f 100644 --- a/packages/insights/src/routes/api/v1/[publicApiKey]/post/index.tsx +++ b/packages/insights/src/routes/api/v1/[publicApiKey]/post/index.tsx @@ -6,7 +6,9 @@ import { dbGetManifestInfo } from '~/db/sql-manifest'; import { toBucket, toBucketTimeline } from '~/stats/vector'; export const onPost: RequestHandler = async ({ exit, json, request }) => { - const payload = InsightsPayload.parse(await request.json()); + const payloadJson = await request.json(); + migrate1(payloadJson); + const payload = InsightsPayload.parse(payloadJson); // console.log('API: POST: symbol', payload); exit(); json(200, { code: 200, message: 'OK' }); @@ -47,3 +49,9 @@ function cleanupSymbolName(symbolName: string | null): string | null { if (shortName == 'hW') return null; return shortName; } +function migrate1(payloadJson: any) { + // delete payloadJson.sessionID; + if (!('qVersion' in payloadJson)) { + payloadJson.qVersion = 'unknown'; + } +} diff --git a/packages/insights/src/routes/app/[publicApiKey]/layout.tsx b/packages/insights/src/routes/app/[publicApiKey]/layout.tsx index f42602d5d08..b8c7c28e045 100644 --- a/packages/insights/src/routes/app/[publicApiKey]/layout.tsx +++ b/packages/insights/src/routes/app/[publicApiKey]/layout.tsx @@ -12,6 +12,7 @@ import { ErrorIcon } from '~/components/icons/error'; import { DashboardIcon } from '~/components/icons/dashboard'; import { ManifestIcon } from '~/components/icons/manifest'; import { AppLink } from '~/routes.config'; +import { RoutesIcon } from '~/components/icons/routes'; export default component$(() => { const location = useLocation(); @@ -42,6 +43,14 @@ export default component$(() => { Manifests + + + Routes + { + const db = getDB(); + const publicApiKey = params.publicApiKey; + const route = decodeURIComponent(params.route); + const manifestHashes = await dbGetManifestHashes(db, publicApiKey); + const routes = await getRouteTimeline(db, publicApiKey, route, manifestHashes); + return routeRowsToRouteTree(routes); +}); + +export default component$(() => { + const symbolData: ReadonlySignal = useRouteData(); + const route = decodeURIComponent(useLocation().params.route); + return ( +
+

+ Route: {route} +

+
    + {symbolData.value.map((symbol) => ( +
  • + + + {' - '} + {symbol.timelineCount.toLocaleString()} + {' / '} + {Math.round(symbol.timelineDelay / 1000).toLocaleString()} seconds +
  • + ))} +
+
+ ); +}); + +interface SymbolData { + symbolName: string; + timelineDelay: number; + timelineCount: number; + timeline: number[]; +} + +function routeRowsToRouteTree(routes: RouteSymbolRow[]): SymbolData[] { + return routes.map((route) => { + return { + symbolName: route.symbol, + timelineDelay: vectorAvg(route.timeline, TIMELINE_BUCKETS), + timelineCount: vectorSum(route.timeline), + timeline: route.timeline, + }; + }); +} diff --git a/packages/insights/src/routes/app/[publicApiKey]/routes/index.tsx b/packages/insights/src/routes/app/[publicApiKey]/routes/index.tsx index 66bb1885f57..cbef2b3cd38 100644 --- a/packages/insights/src/routes/app/[publicApiKey]/routes/index.tsx +++ b/packages/insights/src/routes/app/[publicApiKey]/routes/index.tsx @@ -1,81 +1,39 @@ import { component$, type ReadonlySignal } from '@builder.io/qwik'; -import { routeLoader$ } from '@builder.io/qwik-city'; -import Histogram from '~/components/histogram'; -import { SymbolTile } from '~/components/symbol-tile'; +import { routeLoader$, useLocation } from '@builder.io/qwik-city'; import { getDB } from '~/db'; import { dbGetManifestHashes } from '~/db/sql-manifest'; -import { getRoutes, type RouteSymbolRow } from '~/db/sql-routes'; -import { TIMELINE_BUCKETS, vectorAvg, vectorSum } from '~/stats/vector'; -import { css } from '~/styled-system/css'; +import { getRouteNames, type RouteRow } from '~/db/sql-routes'; +import { AppLink } from '~/routes.config'; +import { heading, link } from '~/styles'; export const useRouteData = routeLoader$(async ({ params }) => { const db = getDB(); const publicApiKey = params.publicApiKey; const manifestHashes = await dbGetManifestHashes(db, publicApiKey); - const routes = await getRoutes(db, publicApiKey, manifestHashes); - return routeRowsToRouteTree(routes); + const routes = await getRouteNames(db, publicApiKey, manifestHashes); + return routes; }); export default component$(() => { - const routeData: ReadonlySignal = useRouteData(); + const location = useLocation(); + const routesData: ReadonlySignal = useRouteData(); return (
+

Routes

    - {routeData.value.map((route) => ( + {routesData.value.map((route) => (
  • - {route.route} -
      - {route.symbols.map((symbol) => ( -
    1. - - - {' - '} - {symbol.timelineCount.toLocaleString()} - {' / '} - {Math.round(symbol.timelineDelay / 1000).toLocaleString()} seconds -
    2. - ))} -
    + {route.route} +
  • ))}
); }); - -interface RouteData { - route: string; - symbols: { - symbolName: string; - timelineDelay: number; - timelineCount: number; - timeline: number[]; - }[]; -} - -function routeRowsToRouteTree(routes: RouteSymbolRow[]): RouteData[] { - const routeMap = new Map(); - routes.forEach((route) => { - const routeData = getRoute(route.route); - routeData.symbols.push({ - symbolName: route.symbol, - timelineDelay: vectorAvg(route.timeline, TIMELINE_BUCKETS), - timelineCount: vectorSum(route.timeline), - timeline: route.timeline, - }); - }); - return Array.from(routeMap.values()); - /////////// - - function getRoute(route: string): RouteData { - let routeData = routeMap.get(route); - if (routeData == undefined) { - routeMap.set(route, (routeData = { route, symbols: [] })); - } - return routeData; - } -} diff --git a/packages/insights/src/styles/index.tsx b/packages/insights/src/styles/index.tsx new file mode 100644 index 00000000000..5e101a1d3d5 --- /dev/null +++ b/packages/insights/src/styles/index.tsx @@ -0,0 +1,4 @@ +import { css } from '~/styled-system/css'; + +export const heading = css({ fontSize: '20px' }); +export const link = css({ color: 'blue', textDecoration: 'underline' }); diff --git a/packages/qwik-labs/src/insights/index.tsx b/packages/qwik-labs/src/insights/index.tsx index 0f636d27d0a..5a141617210 100644 --- a/packages/qwik-labs/src/insights/index.tsx +++ b/packages/qwik-labs/src/insights/index.tsx @@ -2,15 +2,8 @@ import { component$ } from '@builder.io/qwik'; import { z } from 'zod'; export interface InsightsPayload { - /** - * Unique ID per user session. - * - * Every page refresh constitutes a new SessionID. An SPA navigation will generate a new - * SessionID. - * - * NOTE: A user session implies same route URL. - */ - sessionID: string; + /** Qwik version */ + qVersion: string; /** Manifest Hash of the container. */ manifestHash: string; @@ -59,7 +52,6 @@ export interface InsightSymbol { } export interface InsightsError { - sessionID: string; /** Manifest Hash of the container. */ manifestHash: string; timestamp: number; @@ -74,7 +66,6 @@ export interface InsightsError { export const InsightsError = z.object({ manifestHash: z.string(), - sessionID: z.string(), url: z.string(), timestamp: z.number(), source: z.string(), @@ -95,7 +86,7 @@ export const InsightSymbol = z.object({ }); export const InsightsPayload = z.object({ - sessionID: z.string(), + qVersion: z.string(), manifestHash: z.string(), publicApiKey: z.string(), previousSymbol: z.string().nullable(), @@ -126,7 +117,6 @@ export const Insights = component$<{ publicApiKey: string; postUrl?: string }>( interface QwikSymbolTrackerWindow extends Window { qSymbolTracker: { symbols: InsightSymbol[]; - sessionID: string; publicApiKey: string; }; } @@ -145,7 +135,7 @@ function symbolTracker( publicApiKey: string, postUrl: string ) { - const sessionID = Math.random().toString(36).slice(2); + const qVersion = document.querySelector('[q\\:version]')?.getAttribute('q:version') || 'unknown'; const manifestHash = document.querySelector('[q\\:manifest-hash]')?.getAttribute('q:manifest-hash') || 'dev'; const qSymbols: InsightSymbol[] = []; @@ -155,7 +145,6 @@ function symbolTracker( window.qSymbolTracker = { symbols: qSymbols, publicApiKey, - sessionID, }; let timeoutID: ReturnType | null; let qRouteChangeTime = performance.now(); @@ -173,7 +162,7 @@ function symbolTracker( timeoutID = null; if (qSymbols.length > flushSymbolIndex) { const payload = { - sessionID, + qVersion, publicApiKey, manifestHash, previousSymbol: flushSymbolIndex == 0 ? null : qSymbols[flushSymbolIndex - 1].symbol, @@ -219,7 +208,6 @@ function symbolTracker( const error = event.error; const payload = { url: location.toString(), - sessionID: sessionID, manifestHash, timestamp: new Date().getTime(), source: event.filename, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0132bc30540..f52504d4974 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -220,20 +220,20 @@ importers: specifier: ^0.8.1 version: 0.8.1 '@builder.io/qwik': - specifier: github:BuilderIo/qwik-build#d3722d228e541225f75068160287811ee900a29c - version: github.com/BuilderIo/qwik-build/d3722d228e541225f75068160287811ee900a29c(undici@5.26.0) + specifier: github:BuilderIo/qwik-build#7521f8e9157e643e7948fa4ae99234e41b56cf95 + version: github.com/BuilderIo/qwik-build/7521f8e9157e643e7948fa4ae99234e41b56cf95(@types/node@20.8.4)(terser@5.21.0)(undici@5.26.0) '@builder.io/qwik-city': - specifier: github:BuilderIo/qwik-city-build#86e0034604ef6ecb2e50e7b3c2c2b8f3a36b0118 - version: github.com/BuilderIo/qwik-city-build/86e0034604ef6ecb2e50e7b3c2c2b8f3a36b0118(rollup@3.26.3) + specifier: github:BuilderIo/qwik-city-build#bc4e963e1243fd2a6d74dcc5fe5d12fd69a8ac96 + version: github.com/BuilderIo/qwik-city-build/bc4e963e1243fd2a6d74dcc5fe5d12fd69a8ac96(@types/node@20.8.4)(rollup@3.26.3)(terser@5.21.0) '@builder.io/qwik-labs': - specifier: github:BuilderIo/qwik-labs-build#f93ef76256c988d57acd24cc5d59ebf2e39c3d02 - version: github.com/BuilderIo/qwik-labs-build/f93ef76256c988d57acd24cc5d59ebf2e39c3d02 + specifier: github:BuilderIo/qwik-labs-build#5f672e948330926b348cbac8692d9aba6f8f41b2 + version: github.com/BuilderIo/qwik-labs-build/5f672e948330926b348cbac8692d9aba6f8f41b2 '@builder.io/qwik-react': specifier: 0.5.0 - version: 0.5.0(@builder.io/qwik@1.2.13)(@types/react-dom@18.2.13)(@types/react@18.2.28)(react-dom@18.2.0)(react@18.2.0) + version: 0.5.0(@builder.io/qwik@1.2.16)(@types/react-dom@18.2.13)(@types/react@18.2.28)(react-dom@18.2.0)(react@18.2.0) '@builder.io/sdk-qwik': specifier: ^0.6.2 - version: 0.6.2(@builder.io/qwik@1.2.13)(undici@5.26.0) + version: 0.6.2(@builder.io/qwik@1.2.16)(undici@5.26.0) '@docsearch/css': specifier: ^3.5.2 version: 3.5.2 @@ -245,7 +245,7 @@ importers: version: 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.28)(react@18.2.0) '@modular-forms/qwik': specifier: ^0.21.0 - version: 0.21.0(@builder.io/qwik-city@1.2.13-dev20231011195702)(@builder.io/qwik@1.2.13) + version: 0.21.0(@builder.io/qwik-city@1.2.16-dev20231101222729)(@builder.io/qwik@1.2.16) '@mui/material': specifier: ^5.14.13 version: 5.14.13(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.28)(react-dom@18.2.0)(react@18.2.0) @@ -269,7 +269,7 @@ importers: version: 0.0.31 '@unpic/qwik': specifier: ^0.0.27 - version: 0.0.27(@builder.io/qwik@1.2.13) + version: 0.0.27(@builder.io/qwik@1.2.16) algoliasearch: specifier: 4.16.0 version: 4.16.0 @@ -372,13 +372,13 @@ importers: version: 0.7.1 '@builder.io/qwik-auth': specifier: 0.1.0 - version: 0.1.0(@auth/core@0.7.1)(@builder.io/qwik-city@1.2.13-dev20231011195702)(@builder.io/qwik@1.2.13) + version: 0.1.0(@auth/core@0.7.1)(@builder.io/qwik-city@1.2.16-dev20231101222729)(@builder.io/qwik@1.2.16) '@libsql/client': specifier: ^0.3.5 version: 0.3.5 '@modular-forms/qwik': specifier: ^0.12.0 - version: 0.12.0(@builder.io/qwik-city@1.2.13-dev20231011195702)(@builder.io/qwik@1.2.13) + version: 0.12.0(@builder.io/qwik-city@1.2.16-dev20231101222729)(@builder.io/qwik@1.2.16) '@typescript/analyze-trace': specifier: ^0.10.1 version: 0.10.1 @@ -393,17 +393,17 @@ importers: version: 0.19.13 drizzle-orm: specifier: 0.28.3 - version: 0.28.3(@libsql/client@0.3.5) + version: 0.28.3(@libsql/client@0.3.5)(better-sqlite3@9.0.0) install: specifier: ^0.13.0 version: 0.13.0 devDependencies: '@builder.io/qwik': - specifier: github:BuilderIo/qwik-build#d3722d228e541225f75068160287811ee900a29c - version: github.com/BuilderIo/qwik-build/d3722d228e541225f75068160287811ee900a29c(undici@5.26.0) + specifier: github:BuilderIo/qwik-build#7521f8e9157e643e7948fa4ae99234e41b56cf95 + version: github.com/BuilderIo/qwik-build/7521f8e9157e643e7948fa4ae99234e41b56cf95(@types/node@20.8.4)(terser@5.21.0)(undici@5.26.0) '@builder.io/qwik-city': - specifier: github:BuilderIo/qwik-city-build#86e0034604ef6ecb2e50e7b3c2c2b8f3a36b0118 - version: github.com/BuilderIo/qwik-city-build/86e0034604ef6ecb2e50e7b3c2c2b8f3a36b0118(rollup@3.26.3) + specifier: github:BuilderIo/qwik-city-build#bc4e963e1243fd2a6d74dcc5fe5d12fd69a8ac96 + version: github.com/BuilderIo/qwik-city-build/bc4e963e1243fd2a6d74dcc5fe5d12fd69a8ac96(@types/node@20.8.4)(rollup@3.26.3)(terser@5.21.0) '@builder.io/qwik-labs': specifier: workspace:* version: link:../qwik-labs @@ -431,6 +431,9 @@ importers: '@typescript-eslint/parser': specifier: ^6.7.5 version: 6.7.5(eslint@8.51.0)(typescript@5.2.2) + better-sqlite3: + specifier: ^9.0.0 + version: 9.0.0 eslint: specifier: ^8.51.0 version: 8.51.0 @@ -1339,7 +1342,7 @@ packages: hasBin: true dev: true - /@builder.io/qwik-auth@0.1.0(@auth/core@0.7.1)(@builder.io/qwik-city@1.2.13-dev20231011195702)(@builder.io/qwik@1.2.13): + /@builder.io/qwik-auth@0.1.0(@auth/core@0.7.1)(@builder.io/qwik-city@1.2.16-dev20231101222729)(@builder.io/qwik@1.2.16): resolution: {integrity: sha512-uwwVbam6yQs9evtmof/+SpRT7DzoxD+2DSwsndGcm9JBU4Sh1xMyzll6F9QbivKVboglx+4X05OzJG7QTttWMQ==} engines: {node: '>=16.8.0 <18.0.0 || >=18.11'} peerDependencies: @@ -1348,8 +1351,8 @@ packages: '@builder.io/qwik-city': '>=0.6.0' dependencies: '@auth/core': 0.7.1 - '@builder.io/qwik': github.com/BuilderIo/qwik-build/d3722d228e541225f75068160287811ee900a29c(undici@5.26.0) - '@builder.io/qwik-city': github.com/BuilderIo/qwik-city-build/86e0034604ef6ecb2e50e7b3c2c2b8f3a36b0118(rollup@3.26.3) + '@builder.io/qwik': github.com/BuilderIo/qwik-build/7521f8e9157e643e7948fa4ae99234e41b56cf95(@types/node@20.8.4)(terser@5.21.0)(undici@5.26.0) + '@builder.io/qwik-city': github.com/BuilderIo/qwik-city-build/bc4e963e1243fd2a6d74dcc5fe5d12fd69a8ac96(@types/node@20.8.4)(rollup@3.26.3)(terser@5.21.0) dev: false /@builder.io/qwik-city@1.2.13(rollup@3.26.3): @@ -1368,7 +1371,7 @@ packages: - supports-color dev: true - /@builder.io/qwik-react@0.5.0(@builder.io/qwik@1.2.13)(@types/react-dom@18.2.13)(@types/react@18.2.28)(react-dom@18.2.0)(react@18.2.0): + /@builder.io/qwik-react@0.5.0(@builder.io/qwik@1.2.16)(@types/react-dom@18.2.13)(@types/react@18.2.28)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-JdJWQWOJGv7ddQqEZwzR8wPh0IoCQZwD9qo75+reiQaLp6eH+Pjsm/kn1LaMQt6u72pCCNjnj5kEn/bnbfnIjQ==} engines: {node: '>=16'} peerDependencies: @@ -1378,7 +1381,7 @@ packages: react: '>=18.0.0' react-dom: '>=18.0.0' dependencies: - '@builder.io/qwik': github.com/BuilderIo/qwik-build/d3722d228e541225f75068160287811ee900a29c(undici@5.26.0) + '@builder.io/qwik': github.com/BuilderIo/qwik-build/7521f8e9157e643e7948fa4ae99234e41b56cf95(@types/node@20.8.4)(terser@5.21.0)(undici@5.26.0) '@types/react': 18.2.28 '@types/react-dom': 18.2.13 react: 18.2.0 @@ -1396,13 +1399,13 @@ packages: undici: 5.26.0 dev: true - /@builder.io/sdk-qwik@0.6.2(@builder.io/qwik@1.2.13)(undici@5.26.0): + /@builder.io/sdk-qwik@0.6.2(@builder.io/qwik@1.2.16)(undici@5.26.0): resolution: {integrity: sha512-xBnFD1r//uoVgMiwmyOuwE289b5khtlGrtQBFJnBSTgnN3f1J84tW1xGKc2YllbjSdGdCvnEzfHZXJVM0F8jlg==} peerDependencies: '@builder.io/qwik': '>=1.0.0' undici: ^5.14.0 dependencies: - '@builder.io/qwik': github.com/BuilderIo/qwik-build/d3722d228e541225f75068160287811ee900a29c(undici@5.26.0) + '@builder.io/qwik': github.com/BuilderIo/qwik-build/7521f8e9157e643e7948fa4ae99234e41b56cf95(@types/node@20.8.4)(terser@5.21.0)(undici@5.26.0) undici: 5.26.0 dev: true @@ -2814,24 +2817,24 @@ packages: resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} dev: true - /@modular-forms/qwik@0.12.0(@builder.io/qwik-city@1.2.13-dev20231011195702)(@builder.io/qwik@1.2.13): + /@modular-forms/qwik@0.12.0(@builder.io/qwik-city@1.2.16-dev20231101222729)(@builder.io/qwik@1.2.16): resolution: {integrity: sha512-IJi5Uvm1Z1tJZLOpYM8jWza40Viac6tblnMre0pdrslVv7tW3MnXFgQgO539YksooOsn1Jn1KjVUVmhiMuXXuA==} peerDependencies: '@builder.io/qwik': ^1.0.0 '@builder.io/qwik-city': ^1.0.0 dependencies: - '@builder.io/qwik': github.com/BuilderIo/qwik-build/d3722d228e541225f75068160287811ee900a29c(undici@5.26.0) - '@builder.io/qwik-city': github.com/BuilderIo/qwik-city-build/86e0034604ef6ecb2e50e7b3c2c2b8f3a36b0118(rollup@3.26.3) + '@builder.io/qwik': github.com/BuilderIo/qwik-build/7521f8e9157e643e7948fa4ae99234e41b56cf95(@types/node@20.8.4)(terser@5.21.0)(undici@5.26.0) + '@builder.io/qwik-city': github.com/BuilderIo/qwik-city-build/bc4e963e1243fd2a6d74dcc5fe5d12fd69a8ac96(@types/node@20.8.4)(rollup@3.26.3)(terser@5.21.0) dev: false - /@modular-forms/qwik@0.21.0(@builder.io/qwik-city@1.2.13-dev20231011195702)(@builder.io/qwik@1.2.13): + /@modular-forms/qwik@0.21.0(@builder.io/qwik-city@1.2.16-dev20231101222729)(@builder.io/qwik@1.2.16): resolution: {integrity: sha512-PJnGnXfAI9JStXZbgAByGOsTTuSkVhjb8FRDgrdHa33zoHOvC5PkA2ymxN7JK1LodKd4FC3c7ZlFv5goYFCKDA==} peerDependencies: '@builder.io/qwik': ^1.2.4 '@builder.io/qwik-city': ^1.2.4 dependencies: - '@builder.io/qwik': github.com/BuilderIo/qwik-build/d3722d228e541225f75068160287811ee900a29c(undici@5.26.0) - '@builder.io/qwik-city': github.com/BuilderIo/qwik-city-build/86e0034604ef6ecb2e50e7b3c2c2b8f3a36b0118(rollup@3.26.3) + '@builder.io/qwik': github.com/BuilderIo/qwik-build/7521f8e9157e643e7948fa4ae99234e41b56cf95(@types/node@20.8.4)(terser@5.21.0)(undici@5.26.0) + '@builder.io/qwik-city': github.com/BuilderIo/qwik-city-build/bc4e963e1243fd2a6d74dcc5fe5d12fd69a8ac96(@types/node@20.8.4)(rollup@3.26.3)(terser@5.21.0) dev: true /@mui/base@5.0.0-beta.19(@types/react@18.2.28)(react-dom@18.2.0)(react@18.2.0): @@ -5136,6 +5139,7 @@ packages: /@types/mdx@2.0.5: resolution: {integrity: sha512-76CqzuD6Q7LC+AtbPqrvD9AqsN0k8bsYo2bM2J8pmNldP1aIPAbzUQ7QbobyXL4eLr1wK5x8FZFe8eF/ubRuBg==} + dev: true /@types/mdx@2.0.8: resolution: {integrity: sha512-r7/zWe+f9x+zjXqGxf821qz++ld8tp6Z4jUS6qmPZUXH6tfh4riXOhAqb12tWGWAevCFtMt1goLWkQMqIJKpsA==} @@ -5552,13 +5556,13 @@ packages: unpic: 3.10.1 dev: true - /@unpic/qwik@0.0.27(@builder.io/qwik@1.2.13): + /@unpic/qwik@0.0.27(@builder.io/qwik@1.2.16): resolution: {integrity: sha512-g2qMgGY9RTfNj0gZE7BjuotrdKYRZWVjYc5h6dURFJjjAw/Gw2UvgNdRPG4miST9nvGawgmJNnQs1gshzLt10w==} engines: {node: '>=15.0.0'} peerDependencies: '@builder.io/qwik': '*' dependencies: - '@builder.io/qwik': github.com/BuilderIo/qwik-build/d3722d228e541225f75068160287811ee900a29c(undici@5.26.0) + '@builder.io/qwik': github.com/BuilderIo/qwik-build/7521f8e9157e643e7948fa4ae99234e41b56cf95(@types/node@20.8.4)(terser@5.21.0)(undici@5.26.0) dev: true /@vercel/nft@0.22.6(supports-color@9.4.0): @@ -7035,6 +7039,13 @@ packages: open: 8.4.2 dev: true + /better-sqlite3@9.0.0: + resolution: {integrity: sha512-lDxQ9qg/XuUHZG6xzrQaMHkNWl37t35/LPB/VJGV8DdScSuGFNfFSqgscXEd8UIuyk/d9wU8iaMxQa4If5Wqog==} + requiresBuild: true + dependencies: + bindings: 1.5.0 + prebuild-install: 7.1.1 + /big-integer@1.6.51: resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} engines: {node: '>=0.6'} @@ -7053,7 +7064,6 @@ packages: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} dependencies: file-uri-to-path: 1.0.0 - dev: true /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -8659,7 +8669,7 @@ packages: - supports-color dev: false - /drizzle-orm@0.28.3(@libsql/client@0.3.5): + /drizzle-orm@0.28.3(@libsql/client@0.3.5)(better-sqlite3@9.0.0): resolution: {integrity: sha512-7LwNEBJH5EFvkD0vm7RdKWDZsFP9CYR4AWN2fMwns/ezexoX3+UNoVOWGRPJf1qsj357SESldrNEueFvUDfZxA==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' @@ -8722,6 +8732,7 @@ packages: optional: true dependencies: '@libsql/client': 0.3.5 + better-sqlite3: 9.0.0 dev: false /dset@3.1.2: @@ -9955,7 +9966,6 @@ packages: /file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - dev: true /file-uri-to-path@2.0.0: resolution: {integrity: sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==} @@ -10436,7 +10446,7 @@ packages: dev: true /github-from-package@0.0.0: - resolution: {integrity: sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=} + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} /github-slugger@1.5.0: resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} @@ -18823,11 +18833,11 @@ packages: /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - github.com/BuilderIo/qwik-build/d3722d228e541225f75068160287811ee900a29c(undici@5.26.0): - resolution: {tarball: https://codeload.github.com/BuilderIo/qwik-build/tar.gz/d3722d228e541225f75068160287811ee900a29c} - id: github.com/BuilderIo/qwik-build/d3722d228e541225f75068160287811ee900a29c + github.com/BuilderIo/qwik-build/7521f8e9157e643e7948fa4ae99234e41b56cf95(@types/node@20.8.4)(terser@5.21.0)(undici@5.26.0): + resolution: {tarball: https://codeload.github.com/BuilderIo/qwik-build/tar.gz/7521f8e9157e643e7948fa4ae99234e41b56cf95} + id: github.com/BuilderIo/qwik-build/7521f8e9157e643e7948fa4ae99234e41b56cf95 name: '@builder.io/qwik' - version: 1.2.13 + version: 1.2.16 engines: {node: '>=16.8.0 <18.0.0 || >=18.11'} hasBin: true peerDependencies: @@ -18835,27 +18845,45 @@ packages: dependencies: csstype: 3.1.2 undici: 5.26.0 + vite: 4.4.11(@types/node@20.8.4)(terser@5.21.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - terser - github.com/BuilderIo/qwik-city-build/86e0034604ef6ecb2e50e7b3c2c2b8f3a36b0118(rollup@3.26.3): - resolution: {tarball: https://codeload.github.com/BuilderIo/qwik-city-build/tar.gz/86e0034604ef6ecb2e50e7b3c2c2b8f3a36b0118} - id: github.com/BuilderIo/qwik-city-build/86e0034604ef6ecb2e50e7b3c2c2b8f3a36b0118 + github.com/BuilderIo/qwik-city-build/bc4e963e1243fd2a6d74dcc5fe5d12fd69a8ac96(@types/node@20.8.4)(rollup@3.26.3)(terser@5.21.0): + resolution: {tarball: https://codeload.github.com/BuilderIo/qwik-city-build/tar.gz/bc4e963e1243fd2a6d74dcc5fe5d12fd69a8ac96} + id: github.com/BuilderIo/qwik-city-build/bc4e963e1243fd2a6d74dcc5fe5d12fd69a8ac96 name: '@builder.io/qwik-city' - version: 1.2.13-dev20231011195702 + version: 1.2.16-dev20231101222729 engines: {node: '>=16.8.0 <18.0.0 || >=18.11'} dependencies: '@mdx-js/mdx': 2.3.0 - '@types/mdx': 2.0.5 + '@types/mdx': 2.0.8 source-map: 0.7.4 svgo: 3.0.2 + undici: 5.26.0 vfile: 6.0.1 + vite: 4.4.11(@types/node@20.8.4)(terser@5.21.0) vite-imagetools: 5.0.9(rollup@3.26.3) zod: 3.22.4 transitivePeerDependencies: + - '@types/node' + - less + - lightningcss - rollup + - sass + - stylus + - sugarss - supports-color + - terser - github.com/BuilderIo/qwik-labs-build/f93ef76256c988d57acd24cc5d59ebf2e39c3d02: - resolution: {tarball: https://codeload.github.com/BuilderIo/qwik-labs-build/tar.gz/f93ef76256c988d57acd24cc5d59ebf2e39c3d02} + github.com/BuilderIo/qwik-labs-build/5f672e948330926b348cbac8692d9aba6f8f41b2: + resolution: {tarball: https://codeload.github.com/BuilderIo/qwik-labs-build/tar.gz/5f672e948330926b348cbac8692d9aba6f8f41b2} name: '@builder.io/qwik-labs' version: 0.0.1 engines: {node: '>=16.8.0 <18.0.0 || >=18.11'}