@squadbase/vite-server 0.1.10-dev.5b0c0a8 → 0.1.10-dev.76cdcf5
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.
- package/dist/cli/index.js +7 -75
- package/dist/connectors/cosmosdb.js +6 -6
- package/dist/index.js +7 -75
- package/dist/main.js +7 -75
- package/dist/vite-plugin.js +7 -75
- package/package.json +1 -5
- package/dist/connectors/mongodb.d.ts +0 -5
- package/dist/connectors/mongodb.js +0 -879
package/dist/vite-plugin.js
CHANGED
|
@@ -14137,41 +14137,7 @@ var mongodbConnector = new ConnectorPlugin({
|
|
|
14137
14137
|
|
|
14138
14138
|
### Business Logic
|
|
14139
14139
|
|
|
14140
|
-
The business logic type for this connector is "typescript".
|
|
14141
|
-
|
|
14142
|
-
\u26A0\uFE0F **The client returned by \`connection(connectionId)\` is NOT a raw \`mongodb\` \`MongoClient\`.** It is a thin wrapper that opens a fresh connection per call, runs the requested operation against the database configured on the connection, and converts BSON \`ObjectId\` values to their hex string for JSON-safe responses. The methods are:
|
|
14143
|
-
|
|
14144
|
-
- \`client.aggregate<T>(collection, pipeline, options?) => Promise<T[]>\` \u2014 runs an aggregation pipeline and returns the document array. Always include a \`$limit\` stage.
|
|
14145
|
-
- \`client.find<T>(collection, filter?, options?) => Promise<T[]>\` \u2014 \`options\` accepts \`{ projection?, sort?, limit?, skip? }\`. Always pass \`limit\`.
|
|
14146
|
-
- \`client.findOne<T>(collection, filter?, options?) => Promise<T | null>\` \u2014 convenience wrapper around \`find\` with \`limit: 1\`.
|
|
14147
|
-
- \`client.countDocuments(collection, filter?) => Promise<number>\` \u2014 accurate count (not \`estimatedDocumentCount\`).
|
|
14148
|
-
- \`client.listCollections() => Promise<{ name: string; type: string }[]>\` \u2014 collections in the configured database.
|
|
14149
|
-
|
|
14150
|
-
There is **no** \`client.db(...)\`, \`client.connect()\`, or raw cursor / \`MongoClient\` API exposed through this client \u2014 those calls fail with \`X is not a function\`.
|
|
14151
|
-
|
|
14152
|
-
\`\`\`ts
|
|
14153
|
-
import type { Context } from "hono";
|
|
14154
|
-
import { connection } from "@squadbase/vite-server/connectors/mongodb";
|
|
14155
|
-
|
|
14156
|
-
const mongo = connection("<connectionId>");
|
|
14157
|
-
|
|
14158
|
-
export default async function handler(_c: Context) {
|
|
14159
|
-
const rows = await mongo.aggregate<{ country: string; count: number }>(
|
|
14160
|
-
"<collectionName>",
|
|
14161
|
-
[
|
|
14162
|
-
{ $match: { country: { $nin: [null, ""] } } },
|
|
14163
|
-
{ $group: { _id: "$country", count: { $sum: 1 } } },
|
|
14164
|
-
{ $sort: { count: -1 } },
|
|
14165
|
-
{ $limit: 20 },
|
|
14166
|
-
{ $project: { _id: 0, country: "$_id", count: 1 } },
|
|
14167
|
-
],
|
|
14168
|
-
);
|
|
14169
|
-
|
|
14170
|
-
return new Response(JSON.stringify(rows), {
|
|
14171
|
-
headers: { "Content-Type": "application/json" },
|
|
14172
|
-
});
|
|
14173
|
-
}
|
|
14174
|
-
\`\`\`
|
|
14140
|
+
The business logic type for this connector is "typescript".
|
|
14175
14141
|
|
|
14176
14142
|
### MongoDB Reference
|
|
14177
14143
|
- MongoDB stores data as flexible JSON-like documents (BSON)
|
|
@@ -14192,41 +14158,7 @@ export default async function handler(_c: Context) {
|
|
|
14192
14158
|
|
|
14193
14159
|
### Business Logic
|
|
14194
14160
|
|
|
14195
|
-
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002
|
|
14196
|
-
|
|
14197
|
-
\u26A0\uFE0F **\`connection(connectionId)\` \u304C\u8FD4\u3059\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u306F \`mongodb\` \u306E \`MongoClient\` \u305D\u306E\u3082\u306E\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002** \u547C\u3073\u51FA\u3057\u3054\u3068\u306B\u65B0\u3057\u3044\u63A5\u7D9A\u3092\u958B\u304D\u3001\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306B\u8A2D\u5B9A\u3055\u308C\u305F\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B\u5BFE\u3057\u3066\u64CD\u4F5C\u3092\u5B9F\u884C\u3057\u3001BSON \u306E \`ObjectId\` \u3092 JSON \u5316\u306B\u5B89\u5168\u306A hex \u6587\u5B57\u5217\u306B\u5909\u63DB\u3059\u308B\u8584\u3044\u30E9\u30C3\u30D1\u30FC\u3067\u3059\u3002\u516C\u958B\u30E1\u30BD\u30C3\u30C9\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059\uFF1A
|
|
14198
|
-
|
|
14199
|
-
- \`client.aggregate<T>(collection, pipeline, options?) => Promise<T[]>\` \u2014 \u96C6\u7D04\u30D1\u30A4\u30D7\u30E9\u30A4\u30F3\u3092\u5B9F\u884C\u3057\u3066\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u914D\u5217\u3092\u8FD4\u3059\u3002\`$limit\` \u30B9\u30C6\u30FC\u30B8\u3092\u5FC5\u305A\u542B\u3081\u308B\u3053\u3068\u3002
|
|
14200
|
-
- \`client.find<T>(collection, filter?, options?) => Promise<T[]>\` \u2014 \`options\` \u306F \`{ projection?, sort?, limit?, skip? }\`\u3002\`limit\` \u3092\u5FC5\u305A\u6307\u5B9A\u3059\u308B\u3053\u3068\u3002
|
|
14201
|
-
- \`client.findOne<T>(collection, filter?, options?) => Promise<T | null>\` \u2014 \`limit: 1\` \u3067\u306E \`find\` \u306E\u30E9\u30C3\u30D1\u30FC\u3002
|
|
14202
|
-
- \`client.countDocuments(collection, filter?) => Promise<number>\` \u2014 \u6B63\u78BA\u306A\u30AB\u30A6\u30F3\u30C8\uFF08\`estimatedDocumentCount\` \u3067\u306F\u306A\u3044\uFF09\u3002
|
|
14203
|
-
- \`client.listCollections() => Promise<{ name: string; type: string }[]>\` \u2014 \u8A2D\u5B9A\u3055\u308C\u305F\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u5185\u306E\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u4E00\u89A7\u3002
|
|
14204
|
-
|
|
14205
|
-
\`client.db(...)\`\u3001\`client.connect()\`\u3001\u751F\u306E\u30AB\u30FC\u30BD\u30EB\u3084 \`MongoClient\` API \u306F **\u5B58\u5728\u3057\u306A\u3044** \u2014 \`X is not a function\` \u3067\u5931\u6557\u3059\u308B\u3002
|
|
14206
|
-
|
|
14207
|
-
\`\`\`ts
|
|
14208
|
-
import type { Context } from "hono";
|
|
14209
|
-
import { connection } from "@squadbase/vite-server/connectors/mongodb";
|
|
14210
|
-
|
|
14211
|
-
const mongo = connection("<connectionId>");
|
|
14212
|
-
|
|
14213
|
-
export default async function handler(_c: Context) {
|
|
14214
|
-
const rows = await mongo.aggregate<{ country: string; count: number }>(
|
|
14215
|
-
"<collectionName>",
|
|
14216
|
-
[
|
|
14217
|
-
{ $match: { country: { $nin: [null, ""] } } },
|
|
14218
|
-
{ $group: { _id: "$country", count: { $sum: 1 } } },
|
|
14219
|
-
{ $sort: { count: -1 } },
|
|
14220
|
-
{ $limit: 20 },
|
|
14221
|
-
{ $project: { _id: 0, country: "$_id", count: 1 } },
|
|
14222
|
-
],
|
|
14223
|
-
);
|
|
14224
|
-
|
|
14225
|
-
return new Response(JSON.stringify(rows), {
|
|
14226
|
-
headers: { "Content-Type": "application/json" },
|
|
14227
|
-
});
|
|
14228
|
-
}
|
|
14229
|
-
\`\`\`
|
|
14161
|
+
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002
|
|
14230
14162
|
|
|
14231
14163
|
### MongoDB \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
14232
14164
|
- MongoDB\u306F\u30D5\u30EC\u30AD\u30B7\u30D6\u30EB\u306AJSON\u5F62\u5F0F\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\uFF08BSON\uFF09\u3068\u3057\u3066\u30C7\u30FC\u30BF\u3092\u683C\u7D0D\u3057\u307E\u3059
|
|
@@ -25719,7 +25651,7 @@ Use \`TOP n\` (not \`LIMIT n\`) to bound the result. Cross-partition queries are
|
|
|
25719
25651
|
}
|
|
25720
25652
|
}
|
|
25721
25653
|
const iterator = cont.items.query(sql, queryOptions);
|
|
25722
|
-
const { resources, requestCharge } = await iterator.
|
|
25654
|
+
const { resources, requestCharge } = await iterator.fetchNext();
|
|
25723
25655
|
const documents = resources ?? [];
|
|
25724
25656
|
const truncated = documents.length > MAX_DOCUMENTS3;
|
|
25725
25657
|
return {
|
|
@@ -25760,7 +25692,7 @@ var cosmosdbConnector = new ConnectorPlugin({
|
|
|
25760
25692
|
|
|
25761
25693
|
### Business Logic
|
|
25762
25694
|
|
|
25763
|
-
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables
|
|
25695
|
+
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables.
|
|
25764
25696
|
|
|
25765
25697
|
\u26A0\uFE0F **The client returned by \`connection(connectionId)\` is NOT the raw \`@azure/cosmos\` \`CosmosClient\`.** It is a thin wrapper exposing only two methods:
|
|
25766
25698
|
- \`client.query<T>(container, sql, options?) => Promise<T[]>\` \u2014 runs a Cosmos SQL query against the named container and returns the **already-unwrapped** items array (no \`{ resources }\` wrapper). \`options\` accepts \`{ maxItemCount?: number; partitionKey?: unknown }\`.
|
|
@@ -25796,7 +25728,7 @@ export default async function handler(_c: Context) {
|
|
|
25796
25728
|
- Queries always target a single container and reference items via the alias \`c\` (e.g. \`SELECT c.id, c.name FROM c WHERE c.status = 'active'\`).
|
|
25797
25729
|
- Row limiting: use \`TOP n\` (e.g. \`SELECT TOP 100 * FROM c\`). \`LIMIT\` is **not** supported. \`OFFSET m LIMIT n\` is supported on newer accounts but \`TOP\` is the safe default.
|
|
25798
25730
|
- System fields are prefixed with an underscore (\`c.id\`, \`c._ts\` for the modification timestamp, \`c._etag\`).
|
|
25799
|
-
- Aggregates: \`COUNT(1)\`, \`SUM\`, \`AVG\`, \`MIN\`, \`MAX\`, with \`GROUP BY\` (e.g. \`SELECT c.country, COUNT(1) AS n FROM c GROUP BY c.country\`).
|
|
25731
|
+
- Aggregates: \`COUNT(1)\`, \`SUM\`, \`AVG\`, \`MIN\`, \`MAX\`, with \`GROUP BY\` (e.g. \`SELECT c.country, COUNT(1) AS n FROM c GROUP BY c.country\`).
|
|
25800
25732
|
- Joins: only **intra-document** joins via \`JOIN\` over arrays inside the same item; there is no cross-container/cross-document join.
|
|
25801
25733
|
- Always bound results with \`TOP n\` and prefer scoped queries with a \`partitionKey\` value when possible \u2014 cross-partition queries cost more RUs.`,
|
|
25802
25734
|
ja: `### \u30C4\u30FC\u30EB
|
|
@@ -25806,7 +25738,7 @@ export default async function handler(_c: Context) {
|
|
|
25806
25738
|
|
|
25807
25739
|
### Business Logic
|
|
25808
25740
|
|
|
25809
|
-
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\u30BFSDK\u3092\u4F7F\u7528\u3057\u3066\u30CF\u30F3\u30C9\u30E9\u30B3\u30FC\u30C9\u3092\u8A18\u8FF0\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u74B0\u5883\u5909\u6570\u304B\u3089\u76F4\u63A5\u8A8D\u8A3C\u60C5\u5831\u306B\u30A2\u30AF\u30BB\u30B9\u3057\
|
|
25741
|
+
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\u30BFSDK\u3092\u4F7F\u7528\u3057\u3066\u30CF\u30F3\u30C9\u30E9\u30B3\u30FC\u30C9\u3092\u8A18\u8FF0\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u74B0\u5883\u5909\u6570\u304B\u3089\u76F4\u63A5\u8A8D\u8A3C\u60C5\u5831\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
|
|
25810
25742
|
|
|
25811
25743
|
\u26A0\uFE0F **\`connection(connectionId)\` \u304C\u8FD4\u3059\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u306F \`@azure/cosmos\` \u306E \`CosmosClient\` \u305D\u306E\u3082\u306E\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002** \u4EE5\u4E0B\u306E2\u30E1\u30BD\u30C3\u30C9\u306E\u307F\u3092\u516C\u958B\u3059\u308B\u8584\u3044\u30E9\u30C3\u30D1\u30FC\u3067\u3059\uFF1A
|
|
25812
25744
|
- \`client.query<T>(container, sql, options?) => Promise<T[]>\` \u2014 \u6307\u5B9A\u30B3\u30F3\u30C6\u30CA\u306B\u5BFE\u3057\u3066 Cosmos SQL \u3092\u5B9F\u884C\u3057\u3001**\u3059\u3067\u306B\u5C55\u958B\u6E08\u307F\u306E\u30A2\u30A4\u30C6\u30E0\u914D\u5217**\u3092\u8FD4\u3059\uFF08\`{ resources }\` \u3067\u30E9\u30C3\u30D7\u3055\u308C\u3066\u3044\u306A\u3044\uFF09\u3002\`options\` \u306F \`{ maxItemCount?: number; partitionKey?: unknown }\`\u3002
|
|
@@ -25842,7 +25774,7 @@ export default async function handler(_c: Context) {
|
|
|
25842
25774
|
- \u30AF\u30A8\u30EA\u306F\u5E38\u306B\u5358\u4E00\u30B3\u30F3\u30C6\u30CA\u3092\u5BFE\u8C61\u3068\u3057\u3001\u30A2\u30A4\u30C6\u30E0\u306F\u5225\u540D \`c\` \u3067\u53C2\u7167\u3057\u307E\u3059\uFF08\u4F8B: \`SELECT c.id, c.name FROM c WHERE c.status = 'active'\`\uFF09\u3002
|
|
25843
25775
|
- \u884C\u6570\u5236\u9650: \`TOP n\` \u3092\u4F7F\u7528\u3057\u307E\u3059\uFF08\u4F8B: \`SELECT TOP 100 * FROM c\`\uFF09\u3002\`LIMIT\` \u306F **\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093**\u3002\u65B0\u3057\u3044\u30A2\u30AB\u30A6\u30F3\u30C8\u3067\u306F \`OFFSET m LIMIT n\` \u304C\u4F7F\u3048\u307E\u3059\u304C\u3001\u5B89\u5168\u5074\u306E\u65E2\u5B9A\u306F \`TOP\` \u3067\u3059\u3002
|
|
25844
25776
|
- \u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9\u306F\u30A2\u30F3\u30C0\u30FC\u30B9\u30B3\u30A2\u59CB\u307E\u308A\uFF08\`c.id\`\u3001\u5909\u66F4\u6642\u523B\u306E \`c._ts\`\u3001\`c._etag\`\uFF09\u3002
|
|
25845
|
-
- \u96C6\u7D04: \`COUNT(1)\`\u3001\`SUM\`\u3001\`AVG\`\u3001\`MIN\`\u3001\`MAX\` \u3092 \`GROUP BY\` \u3068\u7D44\u307F\u5408\u308F\u305B\u307E\u3059\uFF08\u4F8B: \`SELECT c.country, COUNT(1) AS n FROM c GROUP BY c.country\`\uFF09\u3002
|
|
25777
|
+
- \u96C6\u7D04: \`COUNT(1)\`\u3001\`SUM\`\u3001\`AVG\`\u3001\`MIN\`\u3001\`MAX\` \u3092 \`GROUP BY\` \u3068\u7D44\u307F\u5408\u308F\u305B\u307E\u3059\uFF08\u4F8B: \`SELECT c.country, COUNT(1) AS n FROM c GROUP BY c.country\`\uFF09\u3002
|
|
25846
25778
|
- \u7D50\u5408: \u540C\u4E00\u30A2\u30A4\u30C6\u30E0\u5185\u306E\u914D\u5217\u306B\u5BFE\u3059\u308B **\u30A4\u30F3\u30C8\u30E9\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8** \`JOIN\` \u306E\u307F\u3067\u3001\u30B3\u30F3\u30C6\u30CA\u9593\uFF0F\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u9593\u306E\u7D50\u5408\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u307E\u305B\u3093\u3002
|
|
25847
25779
|
- \u7D50\u679C\u4EF6\u6570\u306F\u5FC5\u305A \`TOP n\` \u3067\u5236\u9650\u3057\u3001\u53EF\u80FD\u3067\u3042\u308C\u3070 \`partitionKey\` \u3067\u5358\u4E00\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u306B\u30B9\u30B3\u30FC\u30D7\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30AF\u30ED\u30B9\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u30AF\u30A8\u30EA\u306F RU \u3092\u591A\u304F\u6D88\u8CBB\u3057\u307E\u3059\uFF09\u3002`
|
|
25848
25780
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@squadbase/vite-server",
|
|
3
|
-
"version": "0.1.10-dev.
|
|
3
|
+
"version": "0.1.10-dev.76cdcf5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -298,10 +298,6 @@
|
|
|
298
298
|
"./connectors/cosmosdb": {
|
|
299
299
|
"import": "./dist/connectors/cosmosdb.js",
|
|
300
300
|
"types": "./dist/connectors/cosmosdb.d.ts"
|
|
301
|
-
},
|
|
302
|
-
"./connectors/mongodb": {
|
|
303
|
-
"import": "./dist/connectors/mongodb.js",
|
|
304
|
-
"types": "./dist/connectors/mongodb.d.ts"
|
|
305
301
|
}
|
|
306
302
|
},
|
|
307
303
|
"files": [
|