@farm.js/core 0.1.18 → 0.1.20
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/agent-runtime.d.mts +2 -3
- package/dist/agent-runtime.d.ts +2 -3
- package/dist/api/route-manager.cjs +5 -5
- package/dist/api/route-manager.d.mts +2 -3
- package/dist/api/route-manager.d.ts +2 -3
- package/dist/api/route-manager.mjs +4 -4
- package/dist/api.cjs +6 -6
- package/dist/api.d.mts +3 -4
- package/dist/api.d.ts +3 -4
- package/dist/api.mjs +5 -5
- package/dist/{app-BHY_10Lm.d.ts → app-DAyPE-gr.d.ts} +11 -4
- package/dist/{app-BMk0do23.d.mts → app-D_6nTit-.d.mts} +11 -4
- package/dist/app-markdown.cjs +4 -4
- package/dist/app-markdown.d.mts +3 -4
- package/dist/app-markdown.d.ts +3 -4
- package/dist/app-markdown.mjs +3 -3
- package/dist/{chunk-FS7FLPOG.mjs → chunk-2J7W2WND.mjs} +3 -2
- package/dist/{chunk-YS3TRKCG.mjs → chunk-2M435BUE.mjs} +6 -1
- package/dist/{chunk-WJ3HK3LJ.cjs → chunk-2QLBIPFT.cjs} +4 -4
- package/dist/{chunk-FJSWYIR7.cjs → chunk-3IL5UC5I.cjs} +2 -2
- package/dist/chunk-43FMW62B.mjs +67 -0
- package/dist/{chunk-A7T6345N.mjs → chunk-5UX4C5QI.mjs} +10 -7
- package/dist/{chunk-KPNVGRBL.mjs → chunk-5V37LKBG.mjs} +105 -41
- package/dist/chunk-75WGQVQA.cjs +46 -0
- package/dist/{chunk-ZCNJKLA2.mjs → chunk-7BC6GAL7.mjs} +1 -1
- package/dist/{chunk-J2OP5GG3.cjs → chunk-A777V5WU.cjs} +28 -28
- package/dist/{chunk-NWOD6NIT.cjs → chunk-A7T6JZNI.cjs} +1 -1
- package/dist/{chunk-E2BMSZ2W.cjs → chunk-AH7HOAQ3.cjs} +2 -2
- package/dist/{chunk-AFOD3LYZ.cjs → chunk-B3WK4DTX.cjs} +10 -9
- package/dist/{chunk-TWGMSEHX.cjs → chunk-BBVSJVBZ.cjs} +88 -13
- package/dist/{chunk-AORPIPNB.cjs → chunk-BHJUZ64B.cjs} +18 -14
- package/dist/chunk-BMWDEBXO.cjs +67 -0
- package/dist/{chunk-ATERBVHQ.mjs → chunk-CQHFU55R.mjs} +5 -4
- package/dist/{chunk-XSKZORAS.cjs → chunk-DX4VKYAJ.cjs} +5 -5
- package/dist/{chunk-AWRISO2H.cjs → chunk-E2ROOWQC.cjs} +30 -4
- package/dist/{chunk-3XG26Z3J.mjs → chunk-F7E2AZKQ.mjs} +1 -1
- package/dist/{chunk-7WPA7GBZ.mjs → chunk-GHFS7RUB.mjs} +1 -1
- package/dist/{chunk-UN5GHC5V.cjs → chunk-GQFSCBKJ.cjs} +249 -185
- package/dist/{chunk-NZ2JVBT2.mjs → chunk-GZ3ZPTQV.mjs} +2 -2
- package/dist/{chunk-DHDVMXYK.mjs → chunk-HALDNTIV.mjs} +30 -4
- package/dist/{chunk-5QOEPUYE.mjs → chunk-HSDL2AUR.mjs} +1 -1
- package/dist/{chunk-BSTRERPP.cjs → chunk-I5YBCWQ6.cjs} +2 -2
- package/dist/{chunk-TYQUSXUG.cjs → chunk-ISTFC3MZ.cjs} +4 -4
- package/dist/{chunk-RKQVJN2O.mjs → chunk-JIKGGIOL.mjs} +1 -1
- package/dist/{chunk-GYKJCFTS.mjs → chunk-K6MG3SEG.mjs} +124 -82
- package/dist/{chunk-OXSIH4D6.cjs → chunk-KNPRCKXK.cjs} +6 -1
- package/dist/{chunk-TNBAYAWO.mjs → chunk-L4DVIHOC.mjs} +1 -1
- package/dist/{chunk-XWAYMDLB.mjs → chunk-MVUREHPN.mjs} +1 -1
- package/dist/{chunk-6VQIKZZO.mjs → chunk-N255VYFP.mjs} +1 -1
- package/dist/{chunk-GNEO2XOF.cjs → chunk-NBAHDVOJ.cjs} +4 -4
- package/dist/{chunk-EN7WTEAY.mjs → chunk-NRS46D4L.mjs} +2 -2
- package/dist/{chunk-A72YEUZ3.mjs → chunk-OCE65DDM.mjs} +1 -1
- package/dist/{chunk-SXHV42UQ.mjs → chunk-OFEY6KHO.mjs} +88 -13
- package/dist/{chunk-OIEOCXKG.cjs → chunk-OYDRPBBV.cjs} +2 -2
- package/dist/{chunk-76DG3LF3.mjs → chunk-PGQBL5DN.mjs} +1 -1
- package/dist/{chunk-UDBJCUPA.mjs → chunk-PUCUVI7K.mjs} +11 -7
- package/dist/{chunk-IKNRN4VS.cjs → chunk-PZX6I4JW.cjs} +462 -420
- package/dist/{chunk-GDSHDTJ4.cjs → chunk-Q5B3KJBP.cjs} +2 -2
- package/dist/{chunk-TSWW5BVH.mjs → chunk-QMV4QELL.mjs} +1 -1
- package/dist/{chunk-QGVJVSNX.mjs → chunk-RMIJFZU3.mjs} +28 -4
- package/dist/{chunk-MKB2EGIR.cjs → chunk-SOR334EB.cjs} +3 -2
- package/dist/{chunk-57J3Y7Y3.mjs → chunk-TIKNUAU7.mjs} +3 -2
- package/dist/chunk-VVBO3QH7.mjs +46 -0
- package/dist/{chunk-UTBVHYS3.mjs → chunk-W7MZXRXM.mjs} +20 -5
- package/dist/{chunk-Y53ZSFN6.cjs → chunk-WM6HL7E7.cjs} +4 -3
- package/dist/{chunk-WZMNW2IW.cjs → chunk-XFFQSD2F.cjs} +4 -4
- package/dist/{chunk-62YJ2IEB.cjs → chunk-XI3GWPUS.cjs} +23 -20
- package/dist/{chunk-KVFPGF2M.cjs → chunk-YJJLXIIS.cjs} +7 -7
- package/dist/{chunk-NV3A5DXM.cjs → chunk-YP5JZ4LF.cjs} +42 -18
- package/dist/{chunk-B4CH33IG.cjs → chunk-ZE6ONQ5R.cjs} +39 -24
- package/dist/{client-plugins-JXXmZliS.d.mts → client-plugins-CWrhb1ir.d.mts} +26 -3
- package/dist/{client-plugins-C089bQhN.d.ts → client-plugins-DPf0qZey.d.ts} +26 -3
- package/dist/client-plugins.d.mts +2 -3
- package/dist/client-plugins.d.ts +2 -3
- package/dist/client.cjs +4 -4
- package/dist/client.d.mts +9 -38
- package/dist/client.d.ts +9 -38
- package/dist/client.mjs +3 -3
- package/dist/config.d.mts +2 -3
- package/dist/config.d.ts +2 -3
- package/dist/{devtools-UFVTMQX5.mjs → devtools-MTB5SA2B.mjs} +5 -5
- package/dist/{devtools-OUIPHVV6.cjs → devtools-R6MDDAZK.cjs} +9 -9
- package/dist/docs.cjs +9 -8
- package/dist/docs.d.mts +2 -2
- package/dist/docs.d.ts +2 -2
- package/dist/docs.mjs +8 -7
- package/dist/index.cjs +29 -28
- package/dist/index.d.mts +14 -14
- package/dist/index.d.ts +14 -14
- package/dist/index.mjs +28 -27
- package/dist/integrations.d.mts +2 -3
- package/dist/integrations.d.ts +2 -3
- package/dist/internal/app-markdown-runtime.cjs +3 -3
- package/dist/internal/app-markdown-runtime.d.mts +2 -3
- package/dist/internal/app-markdown-runtime.d.ts +2 -3
- package/dist/internal/app-markdown-runtime.mjs +2 -2
- package/dist/internal/build-runtime.cjs +22 -21
- package/dist/internal/build-runtime.d.mts +4 -5
- package/dist/internal/build-runtime.d.ts +4 -5
- package/dist/internal/build-runtime.mjs +21 -20
- package/dist/internal/cli-runtime.cjs +12 -12
- package/dist/internal/cli-runtime.mjs +11 -11
- package/dist/internal/client-error-overlay.cjs +4 -4
- package/dist/internal/client-error-overlay.mjs +1 -1
- package/dist/internal/compression-runtime.d.mts +2 -3
- package/dist/internal/compression-runtime.d.ts +2 -3
- package/dist/internal/config-runtime.cjs +6 -6
- package/dist/internal/config-runtime.d.mts +3 -4
- package/dist/internal/config-runtime.d.ts +3 -4
- package/dist/internal/config-runtime.mjs +5 -5
- package/dist/internal/product-telemetry-runtime.cjs +2 -2
- package/dist/internal/product-telemetry-runtime.mjs +1 -1
- package/dist/internal/production-runtime.cjs +5 -5
- package/dist/internal/production-runtime.d.mts +8 -9
- package/dist/internal/production-runtime.d.ts +8 -9
- package/dist/internal/production-runtime.mjs +4 -4
- package/dist/markdown.cjs +2 -2
- package/dist/markdown.mjs +1 -1
- package/dist/{metadata-C1Z9vLbb.d.mts → metadata-CO9fRyyJ.d.mts} +1 -1
- package/dist/{metadata-BcNJP4fq.d.ts → metadata-zY9wltwH.d.ts} +1 -1
- package/dist/middleware.cjs +4 -4
- package/dist/middleware.d.mts +4 -11
- package/dist/middleware.d.ts +4 -11
- package/dist/middleware.mjs +3 -3
- package/dist/navigation.cjs +5 -5
- package/dist/navigation.d.mts +42 -3
- package/dist/navigation.d.ts +42 -3
- package/dist/navigation.mjs +4 -4
- package/dist/{nitro-CVZ36JM5.mjs → nitro-4LFVTT24.mjs} +2 -2
- package/dist/{nitro-4I2MYLY2.cjs → nitro-TSGDUJMN.cjs} +3 -3
- package/dist/plugin.cjs +23 -17
- package/dist/plugin.d.mts +3 -4
- package/dist/plugin.d.ts +3 -4
- package/dist/plugin.mjs +23 -17
- package/dist/{production-runtime-jcrTlRTb.d.mts → production-runtime-CywsHwnG.d.mts} +1 -1
- package/dist/{production-runtime-oKmC0WU-.d.ts → production-runtime-lkfwujwK.d.ts} +1 -1
- package/dist/query/client.cjs +6 -6
- package/dist/query/client.mjs +2 -2
- package/dist/{render-plan-DOB9cV-h.d.ts → render-plan-DHF0GeWo.d.ts} +1 -1
- package/dist/{render-plan-BLIfc4jt.d.mts → render-plan-LVy6sGQe.d.mts} +1 -1
- package/dist/renderer-client.cjs +5 -5
- package/dist/renderer-client.d.mts +4 -5
- package/dist/renderer-client.d.ts +4 -5
- package/dist/renderer-client.mjs +2 -2
- package/dist/renderer.d.mts +3 -0
- package/dist/renderer.d.ts +3 -0
- package/dist/{request-Cr53NRHr.d.mts → request-6AkmhEYE.d.mts} +1 -1
- package/dist/{request-Dt2gNuQD.d.ts → request-BYxlRqA9.d.ts} +1 -1
- package/dist/request.d.mts +3 -4
- package/dist/request.d.ts +3 -4
- package/dist/{route-rendering-CWYd8Mv1.d.ts → route-rendering-CWaKiUbS.d.ts} +1 -1
- package/dist/{route-rendering-CeFBEAoZ.d.mts → route-rendering-Dd8Jmml7.d.mts} +1 -1
- package/dist/router-B2m4fvve.d.ts +50 -0
- package/dist/router-xwEE112q.d.mts +50 -0
- package/dist/routes.cjs +3 -3
- package/dist/routes.d.mts +2 -3
- package/dist/routes.d.ts +2 -3
- package/dist/routes.mjs +2 -2
- package/dist/{schema-dev-notice-2IE2F2XI.mjs → schema-dev-notice-O67CPXJ6.mjs} +1 -1
- package/dist/{schema-dev-notice-MXSZMVDG.cjs → schema-dev-notice-Y7MQEFGN.cjs} +3 -3
- package/dist/server-plugins.d.mts +3 -4
- package/dist/server-plugins.d.ts +3 -4
- package/dist/server.cjs +33 -32
- package/dist/server.d.mts +8 -9
- package/dist/server.d.ts +8 -9
- package/dist/server.mjs +19 -18
- package/dist/{spa-router-CQWiYGxS.d.mts → spa-router-DVEHQnWo.d.mts} +3 -3
- package/dist/{spa-router-Wjiw-8hB.d.ts → spa-router-Y8rrXTVK.d.ts} +3 -3
- package/dist/testing.cjs +6 -6
- package/dist/testing.d.mts +2 -3
- package/dist/testing.d.ts +2 -3
- package/dist/testing.mjs +5 -5
- package/dist/{types-D-1WTE72.d.mts → types-DFbjpjXX.d.mts} +8 -0
- package/dist/{types-D-1WTE72.d.ts → types-DFbjpjXX.d.ts} +8 -0
- package/dist/{utils-uUxF0K0P.d.mts → utils-DSPx34-A.d.mts} +1 -1
- package/dist/{utils-B0XJmG_b.d.ts → utils-Dvuny_08.d.ts} +1 -1
- package/dist/version.cjs +2 -2
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +18 -17
- package/dist/vite.d.mts +2 -3
- package/dist/vite.d.ts +2 -3
- package/dist/vite.mjs +17 -16
- package/package.json +3 -3
- package/dist/chunk-7GNWGLWB.mjs +0 -14
- package/dist/chunk-VQDBNVOO.cjs +0 -14
- package/dist/navigation-errors-Dvwpzaer.d.mts +0 -13
- package/dist/navigation-errors-Dvwpzaer.d.ts +0 -13
- /package/dist/{chunk-IAMRBF3Z.cjs → chunk-N4RLRSWW.cjs} +0 -0
- /package/dist/{chunk-BNGS6KJ6.mjs → chunk-YOYF2E4U.mjs} +0 -0
|
@@ -21,7 +21,7 @@ var _chunkD2ULAULScjs = require('./chunk-D2ULAULS.cjs');
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
var
|
|
24
|
+
var _chunkE2ROOWQCcjs = require('./chunk-E2ROOWQC.cjs');
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
var _chunkJSROZYYOcjs = require('./chunk-JSROZYYO.cjs');
|
|
@@ -41,7 +41,7 @@ function collectSchemaDependencies(owners) {
|
|
|
41
41
|
for (const owner of owners) {
|
|
42
42
|
try {
|
|
43
43
|
known.set(owner.name, _chunkJSROZYYOcjs.resolveSchemaModels.call(void 0, owner.name, owner.schema));
|
|
44
|
-
for (const model of
|
|
44
|
+
for (const model of _chunkE2ROOWQCcjs.collectSchemaModels.call(void 0, [[owner.name, owner.schema, owner.models]])) {
|
|
45
45
|
creators.set(model.modelName.toLowerCase(), owner.name);
|
|
46
46
|
claimedKeys.set(model.modelKey, owner.name);
|
|
47
47
|
}
|
|
@@ -65,12 +65,12 @@ function collectSchemaDependencies(owners) {
|
|
|
65
65
|
if (creator && creator !== owner.name) needs.add(creator);
|
|
66
66
|
}, "add");
|
|
67
67
|
try {
|
|
68
|
-
for (const model of
|
|
68
|
+
for (const model of _chunkE2ROOWQCcjs.collectSchemaModels.call(void 0, [[owner.name, owner.schema, owner.models]])) {
|
|
69
69
|
for (const field of Object.values(model.model.fields)) {
|
|
70
70
|
if (field.reference) add(referencedTable(owner.name, field.reference.model));
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
for (const extension of
|
|
73
|
+
for (const extension of _chunkE2ROOWQCcjs.collectSchemaExtensions.call(void 0, owner.name, owner.schema, owner.models)) {
|
|
74
74
|
add(extension.table);
|
|
75
75
|
}
|
|
76
76
|
} catch (e2) {
|
|
@@ -129,7 +129,7 @@ function collectSchemaOwners(config) {
|
|
|
129
129
|
resolveClient: /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (resolved) => _nullishCoalesce(integrationClient, () => ( (integrationClient = _chunkD2ULAULScjs.resolveIntegrationOrmRuntimeClient.call(void 0, { config: resolved })))), "resolveClient")
|
|
130
130
|
});
|
|
131
131
|
}
|
|
132
|
-
for (const declaration of
|
|
132
|
+
for (const declaration of _chunkE2ROOWQCcjs.findSchemaTableOwners.call(void 0, config)) {
|
|
133
133
|
if (owners.some((owner) => owner.name === declaration.name)) continue;
|
|
134
134
|
owners.push({
|
|
135
135
|
name: declaration.name,
|
|
@@ -159,7 +159,7 @@ function resolveSchemaExecutor(client, owner, timeoutMs) {
|
|
|
159
159
|
if (candidate === void 0 || candidate === null) continue;
|
|
160
160
|
let adapter;
|
|
161
161
|
try {
|
|
162
|
-
adapter =
|
|
162
|
+
adapter = _chunkE2ROOWQCcjs.createSchemaExecutor.call(void 0, candidate, owner);
|
|
163
163
|
} catch (e3) {
|
|
164
164
|
continue;
|
|
165
165
|
}
|
|
@@ -179,7 +179,7 @@ function resolveSchemaExecutor(client, owner, timeoutMs) {
|
|
|
179
179
|
return void 0;
|
|
180
180
|
}
|
|
181
181
|
_chunkS3JO3N4Hcjs.__name.call(void 0, resolveSchemaExecutor, "resolveSchemaExecutor");
|
|
182
|
-
var describeReferencedTable = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (database, table) =>
|
|
182
|
+
var describeReferencedTable = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (database, table) => _chunkE2ROOWQCcjs.describeSchemaTable.call(void 0, database.executor, database.dialect, table), "describeReferencedTable");
|
|
183
183
|
async function checkSchema(config, options = {}) {
|
|
184
184
|
const timeoutMs = _nullishCoalesce(options.timeoutMs, () => ( DEFAULT_TIMEOUT_MS));
|
|
185
185
|
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {
|
|
@@ -191,7 +191,7 @@ async function checkSchema(config, options = {}) {
|
|
|
191
191
|
const issues = [];
|
|
192
192
|
const declared = /* @__PURE__ */ new Map();
|
|
193
193
|
for (const candidate of _nullishCoalesce(config.plugins, () => ( []))) {
|
|
194
|
-
const declaration =
|
|
194
|
+
const declaration = _chunkE2ROOWQCcjs.readSchemaTables.call(void 0, candidate);
|
|
195
195
|
if (!declaration) continue;
|
|
196
196
|
const schemas = _nullishCoalesce(declared.get(declaration.name), () => ( []));
|
|
197
197
|
if (!schemas.includes(declaration.schema)) schemas.push(declaration.schema);
|
|
@@ -213,7 +213,7 @@ async function checkSchema(config, options = {}) {
|
|
|
213
213
|
for (const owner of owners) {
|
|
214
214
|
try {
|
|
215
215
|
knownModels.set(owner.name, _chunkJSROZYYOcjs.resolveSchemaModels.call(void 0, owner.name, owner.schema));
|
|
216
|
-
ownedModels.set(owner.name,
|
|
216
|
+
ownedModels.set(owner.name, _chunkE2ROOWQCcjs.collectSchemaModels.call(void 0, [[owner.name, owner.schema, owner.models]]));
|
|
217
217
|
} catch (error) {
|
|
218
218
|
issues.push({
|
|
219
219
|
severity: "error",
|
|
@@ -329,7 +329,7 @@ async function checkSchema(config, options = {}) {
|
|
|
329
329
|
for (const owner of owners) {
|
|
330
330
|
if (!ownedModels.has(owner.name)) continue;
|
|
331
331
|
try {
|
|
332
|
-
const owned =
|
|
332
|
+
const owned = _chunkE2ROOWQCcjs.collectSchemaExtensions.call(void 0, owner.name, owner.schema, owner.models);
|
|
333
333
|
extensions.set(owner.name, owned);
|
|
334
334
|
for (const extension of owned) {
|
|
335
335
|
for (const { field } of extension.fields) {
|
|
@@ -369,9 +369,9 @@ async function checkSchema(config, options = {}) {
|
|
|
369
369
|
const database = databases.get(owner.name);
|
|
370
370
|
if (!models || !database) continue;
|
|
371
371
|
try {
|
|
372
|
-
const crossOwner = await
|
|
372
|
+
const crossOwner = await _chunkE2ROOWQCcjs.planCrossOwnerReferences.call(void 0,
|
|
373
373
|
owner,
|
|
374
|
-
|
|
374
|
+
_chunkE2ROOWQCcjs.findSchemaTableOwners.call(void 0, config),
|
|
375
375
|
database.dialect,
|
|
376
376
|
database.executor
|
|
377
377
|
);
|
|
@@ -384,7 +384,7 @@ async function checkSchema(config, options = {}) {
|
|
|
384
384
|
onDelete: reference.onDelete
|
|
385
385
|
};
|
|
386
386
|
}
|
|
387
|
-
const stepPlan = _optionalChain([owner, 'access', _30 => _30.migrations, 'optionalAccess', _31 => _31.length]) ? await
|
|
387
|
+
const stepPlan = _optionalChain([owner, 'access', _30 => _30.migrations, 'optionalAccess', _31 => _31.length]) ? await _chunkE2ROOWQCcjs.planOwnerSchemaSteps.call(void 0, {
|
|
388
388
|
owner: owner.name,
|
|
389
389
|
schema: owner.schema,
|
|
390
390
|
steps: owner.migrations,
|
|
@@ -399,15 +399,15 @@ async function checkSchema(config, options = {}) {
|
|
|
399
399
|
const plan = await checkOwnerTables(
|
|
400
400
|
owner,
|
|
401
401
|
// What a pending rename will produce is not missing yet.
|
|
402
|
-
|
|
402
|
+
_chunkE2ROOWQCcjs.withoutRenameTargets.call(void 0, models, stepPlan),
|
|
403
403
|
database.dialect,
|
|
404
404
|
database.executor,
|
|
405
405
|
issues
|
|
406
406
|
);
|
|
407
407
|
const pending = plan.statements.length + (_nullishCoalesce(_optionalChain([plan, 'access', _32 => _32.upgrades, 'optionalAccess', _33 => _33.length]), () => ( 0)));
|
|
408
|
-
const state = pending > 0 ? await
|
|
409
|
-
const changes = state ?
|
|
410
|
-
if (state && changes &&
|
|
408
|
+
const state = pending > 0 ? await _chunkE2ROOWQCcjs.readSchemaState.call(void 0, database.executor, database.dialect, owner.name) : void 0;
|
|
409
|
+
const changes = state ? _chunkE2ROOWQCcjs.diffSchemaSnapshots.call(void 0, state.snapshot, _chunkE2ROOWQCcjs.createSchemaSnapshot.call(void 0, models)) : void 0;
|
|
410
|
+
if (state && changes && _chunkE2ROOWQCcjs.hasSchemaChanges.call(void 0, changes)) {
|
|
411
411
|
const versions = state.version && owner.version && state.version !== owner.version ? `upgraded ${state.version} \u2192 ${owner.version}` : "changed since it was last migrated";
|
|
412
412
|
issues.push({
|
|
413
413
|
severity: "warning",
|
|
@@ -444,7 +444,7 @@ async function checkSchema(config, options = {}) {
|
|
|
444
444
|
}
|
|
445
445
|
_chunkS3JO3N4Hcjs.__name.call(void 0, checkSchema, "checkSchema");
|
|
446
446
|
async function checkOwnerTables(owner, models, dialect, executor, issues) {
|
|
447
|
-
const plan = await
|
|
447
|
+
const plan = await _chunkE2ROOWQCcjs.planSchemaMigration.call(void 0, models, dialect, executor);
|
|
448
448
|
const present = /* @__PURE__ */ new Set([
|
|
449
449
|
...plan.upToDate,
|
|
450
450
|
...plan.drift.map((drift) => drift.table),
|
|
@@ -525,7 +525,7 @@ async function checkOwnerTables(owner, models, dialect, executor, issues) {
|
|
|
525
525
|
table: key.table,
|
|
526
526
|
column: key.column,
|
|
527
527
|
message: `"${key.table}.${key.column}" has no foreign key to "${key.referencedTable}.${key.referencedColumn}", which ${owner.name} could have.`,
|
|
528
|
-
hint: dialect === "sqlite" ? "SQLite can only add a foreign key when it creates the table." : `Allow it with \`${
|
|
528
|
+
hint: dialect === "sqlite" ? "SQLite can only add a foreign key when it creates the table." : `Allow it with \`${_chunkE2ROOWQCcjs.describeForeignKeyApproval.call(void 0, { owner: owner.name, modelKey: key.modelKey })}\` in farm.config, then run \`farm ${owner.name} migrate --apply\`. Rows that point at nothing are checked first.`
|
|
529
529
|
});
|
|
530
530
|
}
|
|
531
531
|
return plan;
|
|
@@ -609,9 +609,9 @@ async function checkReferences(owner, models, database, databases, resolveTarget
|
|
|
609
609
|
continue;
|
|
610
610
|
}
|
|
611
611
|
if (database.dialect === "sqlite" || dialect === "sqlite") continue;
|
|
612
|
-
const expected =
|
|
613
|
-
const mine =
|
|
614
|
-
const theirs =
|
|
612
|
+
const expected = _chunkE2ROOWQCcjs.getSqlColumnType.call(void 0, field, database.dialect);
|
|
613
|
+
const mine = _chunkE2ROOWQCcjs.columnTypeFamily.call(void 0, expected);
|
|
614
|
+
const theirs = _chunkE2ROOWQCcjs.columnTypeFamily.call(void 0, column.type);
|
|
615
615
|
if (mine && theirs && mine !== theirs) {
|
|
616
616
|
issues.push({
|
|
617
617
|
severity: "warning",
|
|
@@ -630,7 +630,7 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, checkReferences, "checkReferences");
|
|
|
630
630
|
async function checkExtensions(owner, extensions, databaseForTable, ownDatabase, allowExtend, issues) {
|
|
631
631
|
for (const extension of extensions) {
|
|
632
632
|
const database = _nullishCoalesce(databaseForTable(extension.table), () => ( ownDatabase));
|
|
633
|
-
const table = await
|
|
633
|
+
const table = await _chunkE2ROOWQCcjs.describeSchemaTable.call(void 0, database.executor, database.dialect, extension.table);
|
|
634
634
|
const columns = extension.fields.map(({ field }) => field.name);
|
|
635
635
|
if (!table) {
|
|
636
636
|
issues.push({
|
|
@@ -643,7 +643,7 @@ async function checkExtensions(owner, extensions, databaseForTable, ownDatabase,
|
|
|
643
643
|
});
|
|
644
644
|
continue;
|
|
645
645
|
}
|
|
646
|
-
const allowed =
|
|
646
|
+
const allowed = _chunkE2ROOWQCcjs.isSchemaExtensionAllowed.call(void 0, allowExtend, extension);
|
|
647
647
|
for (const { field } of extension.fields) {
|
|
648
648
|
const existing = table.columns.find(
|
|
649
649
|
(column) => database.dialect === "postgres" ? column.name === field.name : column.name.toLowerCase() === field.name.toLowerCase()
|
|
@@ -657,14 +657,14 @@ async function checkExtensions(owner, extensions, databaseForTable, ownDatabase,
|
|
|
657
657
|
table: extension.table,
|
|
658
658
|
column: field.name,
|
|
659
659
|
message: `${owner.name} needs "${extension.table}.${field.name}", which does not exist.`,
|
|
660
|
-
hint: allowed ? `Add it with ${command}. If your ORM owns "${extension.table}", add the column to its schema instead.` : `Allow it in farm.config with \`${
|
|
660
|
+
hint: allowed ? `Add it with ${command}. If your ORM owns "${extension.table}", add the column to its schema instead.` : `Allow it in farm.config with \`${_chunkE2ROOWQCcjs.describeSchemaExtensionApproval.call(void 0, extension)}\`, then add it with ${command}. If your ORM owns "${extension.table}", add the column to its schema instead.`
|
|
661
661
|
});
|
|
662
662
|
continue;
|
|
663
663
|
}
|
|
664
664
|
if (database.dialect === "sqlite") continue;
|
|
665
|
-
const expected =
|
|
666
|
-
const mine =
|
|
667
|
-
const theirs =
|
|
665
|
+
const expected = _chunkE2ROOWQCcjs.getSqlColumnType.call(void 0, field, database.dialect);
|
|
666
|
+
const mine = _chunkE2ROOWQCcjs.columnTypeFamily.call(void 0, expected);
|
|
667
|
+
const theirs = _chunkE2ROOWQCcjs.columnTypeFamily.call(void 0, existing.type);
|
|
668
668
|
if (mine && theirs && mine !== theirs) {
|
|
669
669
|
issues.push({
|
|
670
670
|
severity: "warning",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkBBVSJVBZcjs = require('./chunk-BBVSJVBZ.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
@@ -115,7 +115,7 @@ async function createFarmMarkdownSourceResponse(options) {
|
|
|
115
115
|
}
|
|
116
116
|
const url = new URL(options.request.url);
|
|
117
117
|
const hasMarkdownExtension = url.pathname.toLowerCase().endsWith(".md");
|
|
118
|
-
if (!hasMarkdownExtension && !
|
|
118
|
+
if (!hasMarkdownExtension && !_chunkBBVSJVBZcjs.requestAcceptsMarkdown.call(void 0, options.request.headers.get("accept"))) {
|
|
119
119
|
return null;
|
|
120
120
|
}
|
|
121
121
|
const targetPathname = normalizeFarmMarkdownRoutePath(url.pathname);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkN4RLRSWWcjs = require('./chunk-N4RLRSWW.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
var _chunk2CQ74SP6cjs = require('./chunk-2CQ74SP6.cjs');
|
|
@@ -24,10 +24,11 @@ var _chunk6V4TDWECcjs = require('./chunk-6V4TDWEC.cjs');
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
var
|
|
27
|
+
var _chunkSOR334EBcjs = require('./chunk-SOR334EB.cjs');
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
|
|
31
|
+
var _chunkBMWDEBXOcjs = require('./chunk-BMWDEBXO.cjs');
|
|
31
32
|
|
|
32
33
|
|
|
33
34
|
var _chunk5QIKR7RRcjs = require('./chunk-5QIKR7RR.cjs');
|
|
@@ -152,8 +153,8 @@ var _APIRouteManager = class _APIRouteManager {
|
|
|
152
153
|
}
|
|
153
154
|
}
|
|
154
155
|
}
|
|
155
|
-
const runtimeConfig =
|
|
156
|
-
|
|
156
|
+
const runtimeConfig = _chunkSOR334EBcjs.normalizeFarmRouteRuntimeConfig.call(void 0,
|
|
157
|
+
_chunkSOR334EBcjs.getFarmRouteRuntimeConfig.call(void 0, routeModule),
|
|
157
158
|
`API route "${routePath}"`
|
|
158
159
|
);
|
|
159
160
|
this.registerRouteShape(routePath, filePath, appDir);
|
|
@@ -206,7 +207,7 @@ var _APIRouteManager = class _APIRouteManager {
|
|
|
206
207
|
async loadProgrammaticApiRoutes(appDir) {
|
|
207
208
|
const candidateRoots = [path.dirname(appDir), appDir];
|
|
208
209
|
const routeFiles = Array.from(
|
|
209
|
-
new Set(candidateRoots.flatMap((srcRoot) =>
|
|
210
|
+
new Set(candidateRoots.flatMap((srcRoot) => _chunkN4RLRSWWcjs.findProgrammaticRouteFilesInDir.call(void 0, srcRoot)))
|
|
210
211
|
);
|
|
211
212
|
if (routeFiles.length === 0) return;
|
|
212
213
|
const { getProgrammaticRouteManifest } = await import("./routes.cjs");
|
|
@@ -251,11 +252,11 @@ var _APIRouteManager = class _APIRouteManager {
|
|
|
251
252
|
}
|
|
252
253
|
async loadModule(filePath) {
|
|
253
254
|
if (this.viteServer) {
|
|
254
|
-
return await this.viteServer
|
|
255
|
+
return await _chunkBMWDEBXOcjs.loadFarmDevModule.call(void 0, this.viteServer, filePath);
|
|
255
256
|
}
|
|
256
257
|
return await import(
|
|
257
258
|
/* @vite-ignore */
|
|
258
|
-
|
|
259
|
+
_chunkBMWDEBXOcjs.toFileModuleUrl.call(void 0, filePath)
|
|
259
260
|
);
|
|
260
261
|
}
|
|
261
262
|
addEndpoint(routePath, filePath, method, endpoint, appDir, runtimeConfig = {}) {
|
|
@@ -292,7 +293,7 @@ var _APIRouteManager = class _APIRouteManager {
|
|
|
292
293
|
}
|
|
293
294
|
addProgrammaticApiRoute(filePath, route, appDir) {
|
|
294
295
|
const modulePath = _chunk6V4TDWECcjs.createProgrammaticRouteModuleId.call(void 0, filePath, "api", route.path);
|
|
295
|
-
const runtimeConfig =
|
|
296
|
+
const runtimeConfig = _chunkSOR334EBcjs.normalizeFarmRouteRuntimeConfig.call(void 0, route, `API route "${route.path}"`);
|
|
296
297
|
for (const [method, endpoint] of Object.entries(route.methods)) {
|
|
297
298
|
if (endpoint) {
|
|
298
299
|
this.addEndpoint(route.path, modulePath, method, endpoint, appDir, runtimeConfig);
|
|
@@ -145,9 +145,13 @@ var BLOCK_TAGS = /<\/?(ul|ol|main|section|article|header|footer|nav|aside|div|fo
|
|
|
145
145
|
var BOX_TAGS = /<\/?(label|button|input|select|textarea|option|output|meter|progress|td|th)\b[^>]*>/gi;
|
|
146
146
|
function htmlToMarkdown(html, options = {}) {
|
|
147
147
|
const title = _nullishCoalesce(options.title, () => ( extractHtmlTitle(html)));
|
|
148
|
+
const streamed = readStreamedBoundaryInstructions(html);
|
|
148
149
|
let source = extractHtmlBody(
|
|
149
150
|
removeHiddenElements(
|
|
150
|
-
|
|
151
|
+
resolveStreamedBoundaries(
|
|
152
|
+
html.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi, "").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi, "").replace(/<noscript\b[^>]*>[\s\S]*?<\/noscript>/gi, ""),
|
|
153
|
+
streamed
|
|
154
|
+
).replace(/<!--[\s\S]*?-->/g, "")
|
|
151
155
|
)
|
|
152
156
|
);
|
|
153
157
|
const codeBlocks = [];
|
|
@@ -422,6 +426,7 @@ var VOID_TAGS = /* @__PURE__ */ new Set([
|
|
|
422
426
|
]);
|
|
423
427
|
function removeHiddenElements(html) {
|
|
424
428
|
const openingTag = /<([a-zA-Z][\w:-]*)((?:[^>"']|"[^"]*"|'[^']*')*)>/g;
|
|
429
|
+
let closingTags;
|
|
425
430
|
let result = "";
|
|
426
431
|
let cursor = 0;
|
|
427
432
|
let match;
|
|
@@ -431,7 +436,8 @@ function removeHiddenElements(html) {
|
|
|
431
436
|
const start = match.index;
|
|
432
437
|
let end = start + tag.length;
|
|
433
438
|
if (!VOID_TAGS.has(name.toLowerCase()) && !isSelfClosingTag(tag)) {
|
|
434
|
-
|
|
439
|
+
_nullishCoalesce(closingTags, () => ( (closingTags = matchClosingTags(html))));
|
|
440
|
+
const close = closingTags.get(start);
|
|
435
441
|
if (close === void 0) continue;
|
|
436
442
|
end = close;
|
|
437
443
|
}
|
|
@@ -458,24 +464,93 @@ function isSelfClosingTag(tag) {
|
|
|
458
464
|
return /(?:^<[a-zA-Z][\w:-]*|[\s"'])\/>$/.test(tag);
|
|
459
465
|
}
|
|
460
466
|
_chunkS3JO3N4Hcjs.__name.call(void 0, isSelfClosingTag, "isSelfClosingTag");
|
|
461
|
-
function
|
|
467
|
+
function matchClosingTags(html) {
|
|
462
468
|
const tags = /<(\/?)([a-zA-Z][\w:-]*)(?:[^>"']|"[^"]*"|'[^']*')*>/g;
|
|
463
|
-
|
|
464
|
-
const
|
|
465
|
-
let depth = 1;
|
|
469
|
+
const open = /* @__PURE__ */ new Map();
|
|
470
|
+
const closes = /* @__PURE__ */ new Map();
|
|
466
471
|
let match;
|
|
467
472
|
while (match = tags.exec(html)) {
|
|
468
|
-
|
|
473
|
+
const name = match[2].toLowerCase();
|
|
469
474
|
if (match[1]) {
|
|
470
|
-
|
|
471
|
-
if (
|
|
472
|
-
} else if (!isSelfClosingTag(match[0])) {
|
|
473
|
-
|
|
475
|
+
const start = _optionalChain([open, 'access', _19 => _19.get, 'call', _20 => _20(name), 'optionalAccess', _21 => _21.pop, 'call', _22 => _22()]);
|
|
476
|
+
if (start !== void 0) closes.set(start, match.index + match[0].length);
|
|
477
|
+
} else if (!VOID_TAGS.has(name) && !isSelfClosingTag(match[0])) {
|
|
478
|
+
let starts = open.get(name);
|
|
479
|
+
if (!starts) open.set(name, starts = []);
|
|
480
|
+
starts.push(match.index);
|
|
474
481
|
}
|
|
475
482
|
}
|
|
476
|
-
return
|
|
483
|
+
return closes;
|
|
484
|
+
}
|
|
485
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, matchClosingTags, "matchClosingTags");
|
|
486
|
+
function readStreamedBoundaryInstructions(html) {
|
|
487
|
+
const boundaries = /* @__PURE__ */ new Map();
|
|
488
|
+
const placeholders = /* @__PURE__ */ new Map();
|
|
489
|
+
for (const [, script] of html.matchAll(/<script\b[^>]*>([\s\S]*?)<\/script>/gi)) {
|
|
490
|
+
for (const [, kind, first, second] of script.matchAll(
|
|
491
|
+
/\$R([CRS])\("([^"\\]+)","([^"\\]+)"/g
|
|
492
|
+
)) {
|
|
493
|
+
if (kind === "S") placeholders.set(second, first);
|
|
494
|
+
else boundaries.set(first, second);
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
return { boundaries, placeholders };
|
|
498
|
+
}
|
|
499
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, readStreamedBoundaryInstructions, "readStreamedBoundaryInstructions");
|
|
500
|
+
function resolveStreamedBoundaries(html, { boundaries, placeholders }) {
|
|
501
|
+
if (boundaries.size === 0 && placeholders.size === 0) return html;
|
|
502
|
+
const wanted = /* @__PURE__ */ new Set([...boundaries.values(), ...placeholders.values()]);
|
|
503
|
+
const segments = /* @__PURE__ */ new Map();
|
|
504
|
+
const closingTags = matchClosingTags(html);
|
|
505
|
+
const openingTag = /<([a-zA-Z][\w:-]*)((?:[^>"']|"[^"]*"|'[^']*')*)>/g;
|
|
506
|
+
let page = "";
|
|
507
|
+
let cursor = 0;
|
|
508
|
+
let match;
|
|
509
|
+
while (match = openingTag.exec(html)) {
|
|
510
|
+
const id = _optionalChain([/\sid="([^"]*)"/, 'access', _23 => _23.exec, 'call', _24 => _24(match[2]), 'optionalAccess', _25 => _25[1]]);
|
|
511
|
+
if (!id || !wanted.has(id) || segments.has(id)) continue;
|
|
512
|
+
const close = closingTags.get(match.index);
|
|
513
|
+
if (close === void 0) continue;
|
|
514
|
+
const contentStart = match.index + match[0].length;
|
|
515
|
+
segments.set(id, html.slice(contentStart, html.lastIndexOf("<", close - 1)));
|
|
516
|
+
page += html.slice(cursor, match.index);
|
|
517
|
+
cursor = close;
|
|
518
|
+
openingTag.lastIndex = close;
|
|
519
|
+
}
|
|
520
|
+
page += html.slice(cursor);
|
|
521
|
+
const used = /* @__PURE__ */ new Set();
|
|
522
|
+
const expand = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (fragment) => {
|
|
523
|
+
const template = /<template\b[^>]*\sid="([^"]+)"[^>]*>\s*<\/template>/gi;
|
|
524
|
+
let output = "";
|
|
525
|
+
let position = 0;
|
|
526
|
+
let found;
|
|
527
|
+
while (found = template.exec(fragment)) {
|
|
528
|
+
const id = found[1];
|
|
529
|
+
const segmentId = _nullishCoalesce(boundaries.get(id), () => ( placeholders.get(id)));
|
|
530
|
+
const segment = segmentId === void 0 ? void 0 : segments.get(segmentId);
|
|
531
|
+
if (segment === void 0 || used.has(segmentId)) continue;
|
|
532
|
+
used.add(segmentId);
|
|
533
|
+
output += fragment.slice(position, found.index) + expand(segment);
|
|
534
|
+
position = found.index + found[0].length;
|
|
535
|
+
if (boundaries.has(id)) {
|
|
536
|
+
const marker = /<!--(\/?)(?:\$[?!~]?|&)-->/g;
|
|
537
|
+
marker.lastIndex = position;
|
|
538
|
+
let depth = 0;
|
|
539
|
+
let end;
|
|
540
|
+
while (end = marker.exec(fragment)) {
|
|
541
|
+
if (!end[1]) depth += 1;
|
|
542
|
+
else if (depth === 0) break;
|
|
543
|
+
else depth -= 1;
|
|
544
|
+
}
|
|
545
|
+
if (end) position = end.index;
|
|
546
|
+
}
|
|
547
|
+
template.lastIndex = position;
|
|
548
|
+
}
|
|
549
|
+
return output + fragment.slice(position);
|
|
550
|
+
}, "expand");
|
|
551
|
+
return expand(page);
|
|
477
552
|
}
|
|
478
|
-
_chunkS3JO3N4Hcjs.__name.call(void 0,
|
|
553
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, resolveStreamedBoundaries, "resolveStreamedBoundaries");
|
|
479
554
|
function stripTags(input) {
|
|
480
555
|
return input.replace(/<[^>]+>/g, "");
|
|
481
556
|
}
|
|
@@ -6,10 +6,10 @@ var _chunk4PPEPOZZcjs = require('./chunk-4PPEPOZZ.cjs');
|
|
|
6
6
|
var _chunkMQ3H6LT5cjs = require('./chunk-MQ3H6LT5.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkB3WK4DTXcjs = require('./chunk-B3WK4DTX.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _chunkN4RLRSWWcjs = require('./chunk-N4RLRSWW.cjs');
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
var _chunk2CQ74SP6cjs = require('./chunk-2CQ74SP6.cjs');
|
|
@@ -33,6 +33,9 @@ var _chunkEM6SBQKMcjs = require('./chunk-EM6SBQKM.cjs');
|
|
|
33
33
|
var _chunkM2L4MYDQcjs = require('./chunk-M2L4MYDQ.cjs');
|
|
34
34
|
|
|
35
35
|
|
|
36
|
+
var _chunkBMWDEBXOcjs = require('./chunk-BMWDEBXO.cjs');
|
|
37
|
+
|
|
38
|
+
|
|
36
39
|
|
|
37
40
|
var _chunk5QIKR7RRcjs = require('./chunk-5QIKR7RR.cjs');
|
|
38
41
|
|
|
@@ -102,7 +105,7 @@ function farmApiPlugin(options = {}) {
|
|
|
102
105
|
const existing = apiRoutesCache.get(routePath);
|
|
103
106
|
const existingFile = _optionalChain([endpointSources, 'access', _ => _.get, 'call', _2 => _2(routePath), 'optionalAccess', _3 => _3.get, 'call', _4 => _4(normalizedMethod)]);
|
|
104
107
|
if (existingFile) {
|
|
105
|
-
throw new (0,
|
|
108
|
+
throw new (0, _chunkB3WK4DTXcjs.APIRouteConflictError)(routePath, normalizedMethod, existingFile, filePath);
|
|
106
109
|
}
|
|
107
110
|
if (existing) {
|
|
108
111
|
if (!existing.methods.includes(normalizedMethod)) {
|
|
@@ -249,7 +252,7 @@ function farmApiPlugin(options = {}) {
|
|
|
249
252
|
try {
|
|
250
253
|
const relativePath = path.relative(apiDir, path.dirname(filePath));
|
|
251
254
|
const routePath = "/api/" + (relativePath === "." ? "" : relativePath.replace(/\\/g, "/"));
|
|
252
|
-
const routeModule = await
|
|
255
|
+
const routeModule = await _chunkBMWDEBXOcjs.loadFarmDevModule.call(void 0, server, filePath);
|
|
253
256
|
const endpoints = {};
|
|
254
257
|
const availableMethods = [];
|
|
255
258
|
for (const method of _chunk4PNUXIVUcjs.API_ROUTE_METHODS) {
|
|
@@ -265,7 +268,7 @@ function farmApiPlugin(options = {}) {
|
|
|
265
268
|
log(`API route discovered: ${availableMethods.join(", ")} ${routePath}`);
|
|
266
269
|
}
|
|
267
270
|
} catch (e) {
|
|
268
|
-
if (e instanceof
|
|
271
|
+
if (e instanceof _chunkB3WK4DTXcjs.APIRouteConflictError || e instanceof _chunkNO3WWW3Ncjs.AmbiguousRouteError) throw e;
|
|
269
272
|
log(`API route load failed at ${filePath}: ${e.message}`);
|
|
270
273
|
}
|
|
271
274
|
}
|
|
@@ -281,7 +284,7 @@ function farmApiPlugin(options = {}) {
|
|
|
281
284
|
for (const routesFile of routesFiles) {
|
|
282
285
|
if (fs.existsSync(routesFile)) {
|
|
283
286
|
try {
|
|
284
|
-
const routesModule = await
|
|
287
|
+
const routesModule = await _chunkBMWDEBXOcjs.loadFarmDevModule.call(void 0, server, routesFile);
|
|
285
288
|
for (const [exportName, exportValue] of Object.entries(routesModule)) {
|
|
286
289
|
const endpoint = exportValue;
|
|
287
290
|
if (endpoint && endpoint.__path) {
|
|
@@ -292,7 +295,7 @@ function farmApiPlugin(options = {}) {
|
|
|
292
295
|
}
|
|
293
296
|
}
|
|
294
297
|
} catch (e) {
|
|
295
|
-
if (e instanceof
|
|
298
|
+
if (e instanceof _chunkB3WK4DTXcjs.APIRouteConflictError || e instanceof _chunkNO3WWW3Ncjs.AmbiguousRouteError) throw e;
|
|
296
299
|
log(`Root routes.ts load failed: ${e.message}`);
|
|
297
300
|
}
|
|
298
301
|
break;
|
|
@@ -302,12 +305,13 @@ function farmApiPlugin(options = {}) {
|
|
|
302
305
|
const discoverProgrammaticRoutes = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, async () => {
|
|
303
306
|
const path = await import("path");
|
|
304
307
|
const srcRoot = path.join(server.config.root, srcDir);
|
|
305
|
-
const routeFiles =
|
|
308
|
+
const routeFiles = _chunkN4RLRSWWcjs.findProgrammaticRouteFilesInDir.call(void 0, srcRoot);
|
|
306
309
|
if (routeFiles.length === 0) return;
|
|
307
310
|
const { getProgrammaticRouteManifest } = await import("./routes.cjs");
|
|
308
311
|
for (const routeFile of routeFiles) {
|
|
309
312
|
try {
|
|
310
|
-
const routesModule = await
|
|
313
|
+
const routesModule = await _chunkBMWDEBXOcjs.loadFarmDevModule.call(void 0,
|
|
314
|
+
server,
|
|
311
315
|
_chunk5QIKR7RRcjs.toViteModuleId.call(void 0, routeFile, server.config.root)
|
|
312
316
|
);
|
|
313
317
|
const manifest = getProgrammaticRouteManifest(routesModule);
|
|
@@ -322,7 +326,7 @@ function farmApiPlugin(options = {}) {
|
|
|
322
326
|
}
|
|
323
327
|
}
|
|
324
328
|
} catch (e) {
|
|
325
|
-
if (e instanceof
|
|
329
|
+
if (e instanceof _chunkB3WK4DTXcjs.APIRouteConflictError || e instanceof _chunkNO3WWW3Ncjs.AmbiguousRouteError) throw e;
|
|
326
330
|
log(`Programmatic routes file load failed at ${routeFile}: ${e.message}`);
|
|
327
331
|
}
|
|
328
332
|
}
|
|
@@ -471,7 +475,7 @@ function farmApiPlugin(options = {}) {
|
|
|
471
475
|
if (await _optionalChain([recoverFailedDiscovery, 'optionalCall', _9 => _9()])) return [];
|
|
472
476
|
const previousState = snapshotRouteState();
|
|
473
477
|
try {
|
|
474
|
-
const routesModule = await
|
|
478
|
+
const routesModule = await _chunkBMWDEBXOcjs.loadFarmDevModule.call(void 0, server, file);
|
|
475
479
|
removeEndpointsFromFile(file);
|
|
476
480
|
for (const [exportName, exportValue] of Object.entries(routesModule)) {
|
|
477
481
|
const endpoint = exportValue;
|
|
@@ -499,7 +503,7 @@ function farmApiPlugin(options = {}) {
|
|
|
499
503
|
log(`API router recreated`);
|
|
500
504
|
} catch (e) {
|
|
501
505
|
restoreRouteState(previousState);
|
|
502
|
-
if (e instanceof
|
|
506
|
+
if (e instanceof _chunkB3WK4DTXcjs.APIRouteConflictError || e instanceof _chunkNO3WWW3Ncjs.AmbiguousRouteError) throw e;
|
|
503
507
|
log(`Root routes.ts HMR failed: ${e.message}`);
|
|
504
508
|
}
|
|
505
509
|
return [];
|
|
@@ -524,7 +528,7 @@ function farmApiPlugin(options = {}) {
|
|
|
524
528
|
log(`API route file removed: ${routePath}`);
|
|
525
529
|
return [];
|
|
526
530
|
}
|
|
527
|
-
const routeModule = await
|
|
531
|
+
const routeModule = await _chunkBMWDEBXOcjs.loadFarmDevModule.call(void 0, server, file);
|
|
528
532
|
removeEndpointsFromFile(file);
|
|
529
533
|
const availableMethods = [];
|
|
530
534
|
for (const method of _chunk4PNUXIVUcjs.API_ROUTE_METHODS) {
|
|
@@ -537,7 +541,7 @@ function farmApiPlugin(options = {}) {
|
|
|
537
541
|
log(`API router recreated`);
|
|
538
542
|
} catch (e) {
|
|
539
543
|
restoreRouteState(previousState);
|
|
540
|
-
if (e instanceof
|
|
544
|
+
if (e instanceof _chunkB3WK4DTXcjs.APIRouteConflictError || e instanceof _chunkNO3WWW3Ncjs.AmbiguousRouteError) throw e;
|
|
541
545
|
log(`API route HMR failed: ${e.message}`);
|
|
542
546
|
}
|
|
543
547
|
return [];
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
+
|
|
3
|
+
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
4
|
+
|
|
5
|
+
// src/dev-module.ts
|
|
6
|
+
var failedModules = /* @__PURE__ */ new WeakMap();
|
|
7
|
+
var _FarmDevEnvironmentError = class _FarmDevEnvironmentError extends Error {
|
|
8
|
+
};
|
|
9
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, _FarmDevEnvironmentError, "FarmDevEnvironmentError");
|
|
10
|
+
var FarmDevEnvironmentError = _FarmDevEnvironmentError;
|
|
11
|
+
async function loadFarmDevModule(server, id, environmentName = "ssr") {
|
|
12
|
+
const environment = server.environments[environmentName];
|
|
13
|
+
const runner = _optionalChain([environment, 'optionalAccess', _ => _.runner]);
|
|
14
|
+
if (!environment || !runner || typeof runner.import !== "function") {
|
|
15
|
+
throw new FarmDevEnvironmentError(
|
|
16
|
+
`[Farm.js] Cannot load ${JSON.stringify(id)}: the "${environmentName}" development environment must provide a module runner. Remote runtimes require a request/response adapter.`
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
return await runner.import(id);
|
|
21
|
+
} catch (error) {
|
|
22
|
+
const failures = _nullishCoalesce(failedModules.get(environment), () => ( /* @__PURE__ */ new Map()));
|
|
23
|
+
failedModules.set(environment, failures);
|
|
24
|
+
await Promise.all(
|
|
25
|
+
[..._nullishCoalesce(_optionalChain([runner, 'access', _2 => _2.evaluatedModules, 'optionalAccess', _3 => _3.idToModuleMap, 'access', _4 => _4.values, 'call', _5 => _5()]), () => ( []))].filter((module) => module.evaluated && module.promise).map(async (module) => {
|
|
26
|
+
try {
|
|
27
|
+
await module.promise;
|
|
28
|
+
} catch (e) {
|
|
29
|
+
failures.set(module.id, module.promise);
|
|
30
|
+
}
|
|
31
|
+
})
|
|
32
|
+
);
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, loadFarmDevModule, "loadFarmDevModule");
|
|
37
|
+
function invalidateFailedFarmDevModules(server) {
|
|
38
|
+
for (const entry of Object.values(server.environments)) {
|
|
39
|
+
const environment = entry;
|
|
40
|
+
const failures = failedModules.get(environment);
|
|
41
|
+
if (!_optionalChain([failures, 'optionalAccess', _6 => _6.size])) continue;
|
|
42
|
+
const runner = environment.runner;
|
|
43
|
+
for (const [id, failed] of failures) {
|
|
44
|
+
const evaluated = runner.evaluatedModules.getModuleById(id);
|
|
45
|
+
if (_optionalChain([evaluated, 'optionalAccess', _7 => _7.promise]) !== failed) continue;
|
|
46
|
+
const transformed = environment.moduleGraph.getModuleById(id);
|
|
47
|
+
if (transformed) environment.moduleGraph.invalidateModule(transformed);
|
|
48
|
+
if (evaluated) runner.evaluatedModules.invalidateModule(evaluated);
|
|
49
|
+
}
|
|
50
|
+
failures.clear();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, invalidateFailedFarmDevModules, "invalidateFailedFarmDevModules");
|
|
54
|
+
|
|
55
|
+
// src/utils/file-module.ts
|
|
56
|
+
var _url = require('url');
|
|
57
|
+
function toFileModuleUrl(filePath) {
|
|
58
|
+
return _url.pathToFileURL.call(void 0, filePath).href;
|
|
59
|
+
}
|
|
60
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, toFileModuleUrl, "toFileModuleUrl");
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
exports.FarmDevEnvironmentError = FarmDevEnvironmentError; exports.loadFarmDevModule = loadFarmDevModule; exports.invalidateFailedFarmDevModules = invalidateFailedFarmDevModules; exports.toFileModuleUrl = toFileModuleUrl;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
findProgrammaticRouteFilesInDir
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YOYF2E4U.mjs";
|
|
4
4
|
import {
|
|
5
5
|
isFarmAPIRouteFileName
|
|
6
6
|
} from "./chunk-CU625VAY.mjs";
|
|
@@ -24,10 +24,11 @@ import {
|
|
|
24
24
|
import {
|
|
25
25
|
getFarmRouteRuntimeConfig,
|
|
26
26
|
normalizeFarmRouteRuntimeConfig
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-2J7W2WND.mjs";
|
|
28
28
|
import {
|
|
29
|
+
loadFarmDevModule,
|
|
29
30
|
toFileModuleUrl
|
|
30
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-43FMW62B.mjs";
|
|
31
32
|
import {
|
|
32
33
|
logger
|
|
33
34
|
} from "./chunk-KI3MESHB.mjs";
|
|
@@ -251,7 +252,7 @@ var _APIRouteManager = class _APIRouteManager {
|
|
|
251
252
|
}
|
|
252
253
|
async loadModule(filePath) {
|
|
253
254
|
if (this.viteServer) {
|
|
254
|
-
return await this.viteServer
|
|
255
|
+
return await loadFarmDevModule(this.viteServer, filePath);
|
|
255
256
|
}
|
|
256
257
|
return await import(
|
|
257
258
|
/* @vite-ignore */
|