devflare 1.0.0-next.14 → 1.0.0-next.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/LLM.md +36 -1
  2. package/README.md +85 -0
  3. package/dist/{account-8psavtg6.js → account-spa7gzsn.js} +3 -2
  4. package/dist/bridge/miniflare.d.ts.map +1 -1
  5. package/dist/browser.d.ts +7 -0
  6. package/dist/browser.d.ts.map +1 -1
  7. package/dist/{build-n639efmn.js → build-zv25ke4s.js} +9 -8
  8. package/dist/cli/commands/build.d.ts.map +1 -1
  9. package/dist/cli/commands/config.d.ts +4 -0
  10. package/dist/cli/commands/config.d.ts.map +1 -0
  11. package/dist/cli/commands/deploy.d.ts.map +1 -1
  12. package/dist/cli/index.d.ts.map +1 -1
  13. package/dist/config/compiler.d.ts.map +1 -1
  14. package/dist/config/index.d.ts +3 -2
  15. package/dist/config/index.d.ts.map +1 -1
  16. package/dist/config/loader.d.ts +1 -0
  17. package/dist/config/loader.d.ts.map +1 -1
  18. package/dist/config/resource-resolution.d.ts +44 -0
  19. package/dist/config/resource-resolution.d.ts.map +1 -0
  20. package/dist/config/schema.d.ts +193 -28
  21. package/dist/config/schema.d.ts.map +1 -1
  22. package/dist/config-v9tr4rts.js +57 -0
  23. package/dist/{deploy-zvnq6xh7.js → deploy-6xmqvv06.js} +9 -8
  24. package/dist/dev-server/server.d.ts.map +1 -1
  25. package/dist/{dev-c1xc1gq9.js → dev-ymtphbkg.js} +10 -4
  26. package/dist/{doctor-z4ffybce.js → doctor-xv4gm1h4.js} +3 -2
  27. package/dist/{index-xxwbb2nt.js → index-0rsa2c1t.js} +5 -2
  28. package/dist/{index-0kzg8wed.js → index-3a4mmn57.js} +12 -6
  29. package/dist/{index-rfhx0yd5.js → index-5s1bz1e0.js} +12 -12
  30. package/dist/{index-n7rs26ft.js → index-6nb7w45m.js} +15 -13
  31. package/dist/index-7bq4xq84.js +197 -0
  32. package/dist/{index-dr6sbp8d.js → index-k8vh558d.js} +1 -1
  33. package/dist/{index-wyf3s77s.js → index-tksw7gpy.js} +162 -2
  34. package/dist/{index-f4q0jbnj.js → index-v43z02tr.js} +18 -8
  35. package/dist/{index-tfyxa77h.js → index-xdq9ery1.js} +1 -187
  36. package/dist/{index-zbvmtcn2.js → index-zvgc3e0c.js} +25 -19
  37. package/dist/index.d.ts +1 -1
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/src/browser.js +17 -0
  40. package/dist/src/cli/index.js +1 -1
  41. package/dist/src/cloudflare/index.js +3 -2
  42. package/dist/src/index.js +16 -7
  43. package/dist/src/sveltekit/index.js +4 -3
  44. package/dist/src/test/index.js +6 -5
  45. package/dist/src/vite/index.js +4 -3
  46. package/dist/test/simple-context.d.ts.map +1 -1
  47. package/dist/{types-sffr9681.js → types-158m16vd.js} +4 -3
  48. package/dist/vite/plugin.d.ts.map +1 -1
  49. package/package.json +1 -1
@@ -661,190 +661,4 @@ async function clearGlobalDefaultAccountId(anyAccountId) {
661
661
  } catch {}
662
662
  }
663
663
 
664
- // src/cloudflare/usage.ts
665
- var DEVFLARE_KV_NAMESPACE_TITLE2 = "devflare-usage";
666
- var USAGE_KEY_PREFIX = "usage:";
667
- var LIMITS_KEY = "limits";
668
- var DEFAULT_LIMITS = {
669
- aiTokensPerDay: 1e4,
670
- aiRequestsPerDay: 100,
671
- vectorizeOpsPerDay: 1000,
672
- enabled: true
673
- };
674
- async function getOrCreateUsageNamespace(accountId) {
675
- const namespaces = await apiGet(`/accounts/${accountId}/storage/kv/namespaces`);
676
- const existing = namespaces.find((ns) => ns.title === DEVFLARE_KV_NAMESPACE_TITLE2);
677
- if (existing) {
678
- return existing.id;
679
- }
680
- const created = await apiPost(`/accounts/${accountId}/storage/kv/namespaces`, { title: DEVFLARE_KV_NAMESPACE_TITLE2 });
681
- return created.id;
682
- }
683
- function getTodayDate() {
684
- return new Date().toISOString().split("T")[0];
685
- }
686
- function buildUsageKey(service, date) {
687
- return `${USAGE_KEY_PREFIX}${service}:${date}`;
688
- }
689
- async function getUsage(accountId, service, date) {
690
- const targetDate = date ?? getTodayDate();
691
- const namespaceId = await getOrCreateUsageNamespace(accountId);
692
- const key = buildUsageKey(service, targetDate);
693
- const value = await kvGet(accountId, namespaceId, key);
694
- if (value === null) {
695
- return null;
696
- }
697
- try {
698
- return JSON.parse(value);
699
- } catch {
700
- return null;
701
- }
702
- }
703
- async function recordUsage(accountId, service, count = 1) {
704
- const today = getTodayDate();
705
- const namespaceId = await getOrCreateUsageNamespace(accountId);
706
- const key = buildUsageKey(service, today);
707
- const existing = await getUsage(accountId, service, today);
708
- const currentCount = existing?.count ?? 0;
709
- const record = {
710
- service,
711
- date: today,
712
- count: currentCount + count,
713
- updatedAt: new Date().toISOString()
714
- };
715
- await kvPut(accountId, namespaceId, key, JSON.stringify(record));
716
- return record;
717
- }
718
- async function resetUsage(accountId, service) {
719
- const today = getTodayDate();
720
- const namespaceId = await getOrCreateUsageNamespace(accountId);
721
- const key = buildUsageKey(service, today);
722
- const record = {
723
- service,
724
- date: today,
725
- count: 0,
726
- updatedAt: new Date().toISOString()
727
- };
728
- await kvPut(accountId, namespaceId, key, JSON.stringify(record));
729
- }
730
- async function getLimits(accountId) {
731
- const namespaceId = await getOrCreateUsageNamespace(accountId);
732
- const value = await kvGet(accountId, namespaceId, LIMITS_KEY);
733
- if (value === null) {
734
- return DEFAULT_LIMITS;
735
- }
736
- try {
737
- return { ...DEFAULT_LIMITS, ...JSON.parse(value) };
738
- } catch {
739
- return DEFAULT_LIMITS;
740
- }
741
- }
742
- async function setLimits(accountId, limits) {
743
- const namespaceId = await getOrCreateUsageNamespace(accountId);
744
- const current = await getLimits(accountId);
745
- const updated = {
746
- ...current,
747
- ...limits
748
- };
749
- await kvPut(accountId, namespaceId, LIMITS_KEY, JSON.stringify(updated));
750
- return updated;
751
- }
752
- async function setLimitsEnabled(accountId, enabled) {
753
- return setLimits(accountId, { enabled });
754
- }
755
- async function isWithinLimits(accountId, service) {
756
- const limits = await getLimits(accountId);
757
- if (!limits.enabled) {
758
- return true;
759
- }
760
- const usage = await getUsage(accountId, service);
761
- const currentCount = usage?.count ?? 0;
762
- switch (service) {
763
- case "ai":
764
- if (limits.aiRequestsPerDay && currentCount >= limits.aiRequestsPerDay) {
765
- return false;
766
- }
767
- return true;
768
- case "vectorize":
769
- if (limits.vectorizeOpsPerDay && currentCount >= limits.vectorizeOpsPerDay) {
770
- return false;
771
- }
772
- return true;
773
- default:
774
- return true;
775
- }
776
- }
777
- async function getUsageSummary(accountId, service) {
778
- const limits = await getLimits(accountId);
779
- const usage = await getUsage(accountId, service);
780
- const currentCount = usage?.count ?? 0;
781
- let limit;
782
- switch (service) {
783
- case "ai":
784
- limit = limits.aiRequestsPerDay;
785
- break;
786
- case "vectorize":
787
- limit = limits.vectorizeOpsPerDay;
788
- break;
789
- }
790
- const withinLimit = limit === undefined || currentCount < limit;
791
- const percentUsed = limit ? currentCount / limit * 100 : undefined;
792
- return {
793
- service,
794
- today: currentCount,
795
- limit,
796
- withinLimit,
797
- percentUsed
798
- };
799
- }
800
- async function getAllUsageSummaries(accountId) {
801
- const trackedServices = ["ai", "vectorize"];
802
- return Promise.all(trackedServices.map((s) => getUsageSummary(accountId, s)));
803
- }
804
- async function canProceedWithTest(accountId, service) {
805
- const limits = await getLimits(accountId);
806
- if (!limits.enabled) {
807
- return { allowed: true };
808
- }
809
- const withinLimits = await isWithinLimits(accountId, service);
810
- if (!withinLimits) {
811
- const summary = await getUsageSummary(accountId, service);
812
- return {
813
- allowed: false,
814
- reason: `Daily limit exceeded for ${service}: ${summary.today}/${summary.limit} (${summary.percentUsed?.toFixed(1)}%)`
815
- };
816
- }
817
- return { allowed: true };
818
- }
819
- async function recordTestUsage(accountId, service, count = 1) {
820
- await recordUsage(accountId, service, count);
821
- }
822
- async function shouldSkip(service) {
823
- try {
824
- const isAuth = await isAuthenticated();
825
- if (!isAuth) {
826
- console.log(`⏭️ ${service.toUpperCase()} tests skipped: Not authenticated. Run: bunx wrangler login`);
827
- return true;
828
- }
829
- const primary = await getPrimaryAccount();
830
- if (!primary) {
831
- console.log(`⏭️ ${service.toUpperCase()} tests skipped: No Cloudflare account found`);
832
- return true;
833
- }
834
- const { accountId } = await getEffectiveAccountId(primary.id);
835
- try {
836
- const { allowed, reason } = await canProceedWithTest(accountId, service);
837
- if (!allowed) {
838
- console.log(`⏭️ ${service.toUpperCase()} tests skipped: ${reason}`);
839
- return true;
840
- }
841
- } catch {}
842
- return false;
843
- } catch (error) {
844
- const message = error instanceof Error ? error.message : "Unknown error";
845
- console.log(`⏭️ ${service.toUpperCase()} tests skipped: ${message}`);
846
- return true;
847
- }
848
- }
849
-
850
- export { hasWranglerConfig, getWranglerAuth, getApiToken, isAuthenticated, CloudflareAPIError, AuthenticationError, getAccounts, getPrimaryAccount, getAccountById, listWorkers, listKVNamespaces, listD1Databases, listR2Buckets, listVectorizeIndexes, listAIModels, getServiceStatus, getAllServiceStatus, hasService, getAccountSummary, getWorkspaceAccountId, setWorkspaceAccountId, getGlobalDefaultAccountId, setGlobalDefaultAccountId, getEffectiveAccountId, clearGlobalDefaultAccountId, getUsage, recordUsage, resetUsage, getLimits, setLimits, setLimitsEnabled, isWithinLimits, getUsageSummary, getAllUsageSummaries, canProceedWithTest, recordTestUsage, shouldSkip };
664
+ export { hasWranglerConfig, getWranglerAuth, getApiToken, isAuthenticated, CloudflareAPIError, AuthenticationError, apiGet, apiPost, kvGet, kvPut, getAccounts, getPrimaryAccount, getAccountById, listWorkers, listKVNamespaces, listD1Databases, listR2Buckets, listVectorizeIndexes, listAIModels, getServiceStatus, getAllServiceStatus, hasService, getAccountSummary, getWorkspaceAccountId, setWorkspaceAccountId, getGlobalDefaultAccountId, setGlobalDefaultAccountId, getEffectiveAccountId, clearGlobalDefaultAccountId };
@@ -11,13 +11,16 @@ import {
11
11
  import {
12
12
  compileConfig,
13
13
  compileToProgrammaticConfig,
14
- resolveConfigForEnvironment,
15
14
  writeWranglerConfig
16
- } from "./index-rfhx0yd5.js";
15
+ } from "./index-5s1bz1e0.js";
17
16
  import {
18
17
  loadConfig,
19
- resolveConfigPath
20
- } from "./index-wyf3s77s.js";
18
+ loadResolvedConfig,
19
+ resolveConfigForEnvironment,
20
+ resolveConfigForLocalRuntime,
21
+ resolveConfigPath,
22
+ resolveConfigResources
23
+ } from "./index-tksw7gpy.js";
21
24
  import {
22
25
  __require
23
26
  } from "./index-37x76zdn.js";
@@ -408,17 +411,18 @@ function logDiscoveredDurableObjects(projectRoot, discovery) {
408
411
  console.log(` • ${filePath.replace(projectRoot, ".")} → ${classes.join(", ")}`);
409
412
  }
410
413
  }
411
- async function buildPluginContextState(projectRoot, devflareConfig, environment) {
412
- const wranglerConfig = compileConfig(devflareConfig, environment);
413
- const cloudflareConfig = compileToProgrammaticConfig(devflareConfig, environment);
414
- const composedMainEntry = await prepareComposedWorkerEntrypoint(projectRoot, devflareConfig, environment);
414
+ async function buildPluginContextState(projectRoot, devflareConfig, environment, mode = "serve") {
415
+ const effectiveConfig = mode === "build" ? await resolveConfigResources(devflareConfig, { environment }) : resolveConfigForLocalRuntime(devflareConfig, environment);
416
+ const wranglerConfig = compileConfig(effectiveConfig);
417
+ const cloudflareConfig = compileToProgrammaticConfig(effectiveConfig);
418
+ const composedMainEntry = await prepareComposedWorkerEntrypoint(projectRoot, effectiveConfig);
415
419
  if (composedMainEntry) {
416
420
  wranglerConfig.main = composedMainEntry;
417
421
  cloudflareConfig.main = composedMainEntry;
418
422
  }
419
423
  let durableObjects = null;
420
424
  let auxiliaryWorkerConfig = null;
421
- const doPatternConfig = devflareConfig.files?.durableObjects;
425
+ const doPatternConfig = effectiveConfig.files?.durableObjects;
422
426
  const doPattern = typeof doPatternConfig === "string" ? doPatternConfig : DEFAULT_DO_PATTERN;
423
427
  if (doPatternConfig !== false) {
424
428
  const doWorkerName = `${wranglerConfig.name}-do`;
@@ -568,7 +572,7 @@ export default { fetch: () => new Response("No DOs") }`;
568
572
  cwd: projectRoot,
569
573
  configFile: configPath
570
574
  });
571
- const pluginState = await buildPluginContextState(projectRoot, devflareConfig, environment);
575
+ const pluginState = await buildPluginContextState(projectRoot, devflareConfig, environment, config.command === "build" ? "build" : "serve");
572
576
  Object.assign(pluginContext, {
573
577
  projectRoot,
574
578
  ...pluginState
@@ -604,7 +608,7 @@ export default { fetch: () => new Response("No DOs") }`;
604
608
  cwd: projectRoot,
605
609
  configFile: configPath
606
610
  });
607
- const pluginState = await buildPluginContextState(projectRoot, devflareConfig, environment);
611
+ const pluginState = await buildPluginContextState(projectRoot, devflareConfig, environment, "serve");
608
612
  Object.assign(pluginContext, {
609
613
  projectRoot,
610
614
  ...pluginState
@@ -655,12 +659,13 @@ export default { fetch: () => new Response("No DOs") }`;
655
659
  }
656
660
  async function getCloudflareConfig(options = {}) {
657
661
  const cwd = options.cwd ?? process.cwd();
658
- const devflareConfig = await loadConfig({
662
+ const devflareConfig = await loadResolvedConfig({
659
663
  cwd,
660
- configFile: options.configPath
664
+ configFile: options.configPath,
665
+ environment: options.environment
661
666
  });
662
- const composedMainEntry = await prepareComposedWorkerEntrypoint(cwd, devflareConfig, options.environment);
663
- const cloudflareConfig = compileToProgrammaticConfig(devflareConfig, options.environment);
667
+ const composedMainEntry = await prepareComposedWorkerEntrypoint(cwd, devflareConfig);
668
+ const cloudflareConfig = compileToProgrammaticConfig(devflareConfig);
664
669
  if (composedMainEntry) {
665
670
  cloudflareConfig.main = composedMainEntry;
666
671
  }
@@ -668,12 +673,13 @@ async function getCloudflareConfig(options = {}) {
668
673
  }
669
674
  async function getDevflareConfigs(options = {}) {
670
675
  const cwd = options.cwd ?? process.cwd();
671
- const devflareConfig = await loadConfig({
676
+ const devflareConfig = await loadResolvedConfig({
672
677
  cwd,
673
- configFile: options.configPath
678
+ configFile: options.configPath,
679
+ environment: options.environment
674
680
  });
675
- const composedMainEntry = await prepareComposedWorkerEntrypoint(cwd, devflareConfig, options.environment);
676
- const wranglerConfig = compileConfig(devflareConfig, options.environment);
681
+ const composedMainEntry = await prepareComposedWorkerEntrypoint(cwd, devflareConfig);
682
+ const wranglerConfig = compileConfig(devflareConfig);
677
683
  const cloudflareConfig = { ...wranglerConfig };
678
684
  if (composedMainEntry) {
679
685
  wranglerConfig.main = composedMainEntry;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { defineConfig, loadConfig, compileConfig, stringifyConfig, configSchema, ConfigNotFoundError, ConfigValidationError, type DevflareConfig, type DevflareConfigInput } from './config';
1
+ export { defineConfig, loadConfig, loadResolvedConfig, compileConfig, stringifyConfig, configSchema, ConfigNotFoundError, ConfigValidationError, ConfigResourceResolutionError, resolveConfigForLocalRuntime, resolveConfigResources, type DevflareConfig, type DevflareConfigInput, type LoadResolvedConfigOptions, type ResolveConfigResourcesOptions } from './config';
2
2
  export { ref, resolveRef, serviceBinding, type RefResult, type WorkerBinding, type WorkerBindingAccessor } from './config';
3
3
  export { workerName } from './workerName';
4
4
  export { durableObject, getDurableObjectOptions, type DurableObjectOptions } from './decorators';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACN,YAAY,EACZ,UAAU,EACV,aAAa,EACb,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,MAAM,UAAU,CAAA;AAGjB,OAAO,EACN,GAAG,EACH,UAAU,EACV,cAAc,EACd,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,OAAO,EACN,aAAa,EACb,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,MAAM,cAAc,CAAA;AAGrB,OAAO,EACN,wBAAwB,EACxB,gCAAgC,EAChC,eAAe,EACf,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EACN,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACzC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAG9D,OAAO,EAEN,eAAe,EACf,cAAc,EACd,OAAO,EACP,KAAK,eAAe,EACpB,KAAK,YAAY,EAGjB,YAAY,EACZ,SAAS,EACT,KAAK,mBAAmB,EAGxB,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAGrB,OAAO,EACP,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAG3B,OAAO,EACN,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EAGnB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,OAAO,EACP,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,MAAM,QAAQ,CAAA;AAGf,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACN,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,MAAM,UAAU,CAAA;AAGjB,OAAO,EACN,GAAG,EACH,UAAU,EACV,cAAc,EACd,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,OAAO,EACN,aAAa,EACb,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,MAAM,cAAc,CAAA;AAGrB,OAAO,EACN,wBAAwB,EACxB,gCAAgC,EAChC,eAAe,EACf,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EACN,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACzC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAG9D,OAAO,EAEN,eAAe,EACf,cAAc,EACd,OAAO,EACP,KAAK,eAAe,EACpB,KAAK,YAAY,EAGjB,YAAY,EACZ,SAAS,EACT,KAAK,mBAAmB,EAGxB,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAGrB,OAAO,EACP,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAG3B,OAAO,EACN,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EAGnB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,OAAO,EACP,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,MAAM,QAAQ,CAAA;AAGf,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,MAAM,UAAU,CAAA"}
@@ -53,9 +53,14 @@ function createUnsupportedObject(name) {
53
53
  async function loadConfig(..._args) {
54
54
  throw createUnsupportedApiError("loadConfig");
55
55
  }
56
+ async function loadResolvedConfig(..._args) {
57
+ throw createUnsupportedApiError("loadResolvedConfig");
58
+ }
56
59
  var compileConfig = unsupportedFunction("compileConfig");
57
60
  var stringifyConfig = unsupportedFunction("stringifyConfig");
58
61
  var configSchema = createUnsupportedObject("configSchema");
62
+ var resolveConfigForLocalRuntime = unsupportedFunction("resolveConfigForLocalRuntime");
63
+ var resolveConfigResources = unsupportedFunction("resolveConfigResources");
59
64
 
60
65
  class ConfigNotFoundError extends Error {
61
66
  code = "CONFIG_NOT_FOUND";
@@ -72,6 +77,14 @@ class ConfigValidationError extends Error {
72
77
  this.name = "ConfigValidationError";
73
78
  }
74
79
  }
80
+
81
+ class ConfigResourceResolutionError extends Error {
82
+ code = "CONFIG_RESOURCE_RESOLUTION_ERROR";
83
+ constructor(..._args) {
84
+ super(createUnsupportedApiError("ConfigResourceResolutionError").message);
85
+ this.name = "ConfigResourceResolutionError";
86
+ }
87
+ }
75
88
  var runCli = unsupportedFunction("runCli");
76
89
  var parseArgs = unsupportedFunction("parseArgs");
77
90
  var findDurableObjectClasses = unsupportedFunction("findDurableObjectClasses");
@@ -115,8 +128,11 @@ export {
115
128
  serviceBinding,
116
129
  runCli,
117
130
  resolveRef,
131
+ resolveConfigResources,
132
+ resolveConfigForLocalRuntime,
118
133
  ref,
119
134
  parseArgs,
135
+ loadResolvedConfig,
120
136
  loadConfig,
121
137
  initEnv,
122
138
  getMiniflare,
@@ -145,6 +161,7 @@ export {
145
161
  configSchema,
146
162
  compileConfig,
147
163
  ConfigValidationError,
164
+ ConfigResourceResolutionError,
148
165
  ConfigNotFoundError,
149
166
  BridgeClient
150
167
  };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  parseArgs,
3
3
  runCli
4
- } from "../../index-f4q0jbnj.js";
4
+ } from "../../index-v43z02tr.js";
5
5
  import"../../index-6h8xbs75.js";
6
6
  import"../../index-37x76zdn.js";
7
7
  export {
@@ -1,10 +1,11 @@
1
1
  import {
2
2
  account
3
- } from "../../index-n7rs26ft.js";
3
+ } from "../../index-6nb7w45m.js";
4
+ import"../../index-7bq4xq84.js";
4
5
  import {
5
6
  AuthenticationError,
6
7
  CloudflareAPIError
7
- } from "../../index-tfyxa77h.js";
8
+ } from "../../index-xdq9ery1.js";
8
9
  import"../../index-37x76zdn.js";
9
10
  export {
10
11
  account,
package/dist/src/index.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  parseArgs,
6
6
  runCli
7
- } from "../index-f4q0jbnj.js";
7
+ } from "../index-v43z02tr.js";
8
8
  import"../index-6h8xbs75.js";
9
9
  import {
10
10
  createBridgeTestContext,
@@ -19,7 +19,7 @@ import {
19
19
  stopBridgeTestContext,
20
20
  testEnv,
21
21
  withTestContext
22
- } from "../index-0kzg8wed.js";
22
+ } from "../index-3a4mmn57.js";
23
23
  import"../index-d8bdkx2h.js";
24
24
  import {
25
25
  findExportedFunctions,
@@ -53,7 +53,7 @@ import {
53
53
  startMiniflare,
54
54
  startMiniflareFromConfig,
55
55
  stopMiniflare
56
- } from "../index-xxwbb2nt.js";
56
+ } from "../index-0rsa2c1t.js";
57
57
  import {
58
58
  BridgeClient,
59
59
  createEnvProxy,
@@ -65,20 +65,25 @@ import"../index-fef08w43.js";
65
65
  import {
66
66
  compileConfig,
67
67
  stringifyConfig
68
- } from "../index-rfhx0yd5.js";
68
+ } from "../index-5s1bz1e0.js";
69
69
  import {
70
70
  ConfigNotFoundError,
71
+ ConfigResourceResolutionError,
71
72
  ConfigValidationError,
72
73
  configSchema,
73
- loadConfig
74
- } from "../index-wyf3s77s.js";
74
+ loadConfig,
75
+ loadResolvedConfig,
76
+ resolveConfigForLocalRuntime,
77
+ resolveConfigResources
78
+ } from "../index-tksw7gpy.js";
75
79
  import {
76
80
  defineConfig,
77
81
  ref,
78
82
  resolveRef,
79
83
  serviceBinding
80
84
  } from "../index-v8vvsn9x.js";
81
- import"../index-tfyxa77h.js";
85
+ import"../index-7bq4xq84.js";
86
+ import"../index-xdq9ery1.js";
82
87
  import"../index-37x76zdn.js";
83
88
  export {
84
89
  workerName,
@@ -96,8 +101,11 @@ export {
96
101
  serviceBinding,
97
102
  runCli,
98
103
  resolveRef,
104
+ resolveConfigResources,
105
+ resolveConfigForLocalRuntime,
99
106
  ref,
100
107
  parseArgs,
108
+ loadResolvedConfig,
101
109
  loadConfig,
102
110
  initEnv,
103
111
  getMiniflare,
@@ -126,6 +134,7 @@ export {
126
134
  configSchema,
127
135
  compileConfig,
128
136
  ConfigValidationError,
137
+ ConfigResourceResolutionError,
129
138
  ConfigNotFoundError,
130
139
  BridgeClient
131
140
  };
@@ -1,15 +1,16 @@
1
1
  import"../../index-n932ytmq.js";
2
- import"../../index-xxwbb2nt.js";
2
+ import"../../index-0rsa2c1t.js";
3
3
  import {
4
4
  createEnvProxy,
5
5
  getClient
6
6
  } from "../../index-59df49vn.js";
7
7
  import"../../index-fef08w43.js";
8
- import"../../index-rfhx0yd5.js";
8
+ import"../../index-5s1bz1e0.js";
9
9
  import {
10
10
  loadConfig
11
- } from "../../index-wyf3s77s.js";
11
+ } from "../../index-tksw7gpy.js";
12
12
  import"../../index-v8vvsn9x.js";
13
+ import"../../index-xdq9ery1.js";
13
14
  import"../../index-37x76zdn.js";
14
15
 
15
16
  // src/sveltekit/platform.ts
@@ -26,7 +26,7 @@ import {
26
26
  testEnv,
27
27
  withTestContext,
28
28
  worker
29
- } from "../../index-0kzg8wed.js";
29
+ } from "../../index-3a4mmn57.js";
30
30
  import"../../index-d8bdkx2h.js";
31
31
  import"../../index-wfbfz02q.js";
32
32
  import"../../index-2q3pmzrx.js";
@@ -39,13 +39,14 @@ import"../../index-a855bdsx.js";
39
39
  import"../../index-1p814k7s.js";
40
40
  import"../../index-rbht7m9r.js";
41
41
  import"../../index-9wt9x09k.js";
42
- import"../../index-xxwbb2nt.js";
42
+ import"../../index-0rsa2c1t.js";
43
43
  import"../../index-59df49vn.js";
44
44
  import"../../index-fef08w43.js";
45
- import"../../index-rfhx0yd5.js";
46
- import"../../index-wyf3s77s.js";
45
+ import"../../index-5s1bz1e0.js";
46
+ import"../../index-tksw7gpy.js";
47
47
  import"../../index-v8vvsn9x.js";
48
- import"../../index-tfyxa77h.js";
48
+ import"../../index-7bq4xq84.js";
49
+ import"../../index-xdq9ery1.js";
49
50
  import"../../index-37x76zdn.js";
50
51
  export {
51
52
  worker,
@@ -7,13 +7,14 @@ import {
7
7
  resolveEffectiveViteProject,
8
8
  resolveViteUserConfig,
9
9
  writeGeneratedViteConfig
10
- } from "../../index-zbvmtcn2.js";
10
+ } from "../../index-zvgc3e0c.js";
11
11
  import"../../index-1p814k7s.js";
12
12
  import"../../index-rbht7m9r.js";
13
13
  import"../../index-9wt9x09k.js";
14
- import"../../index-rfhx0yd5.js";
15
- import"../../index-wyf3s77s.js";
14
+ import"../../index-5s1bz1e0.js";
15
+ import"../../index-tksw7gpy.js";
16
16
  import"../../index-v8vvsn9x.js";
17
+ import"../../index-xdq9ery1.js";
17
18
  import"../../index-37x76zdn.js";
18
19
  export {
19
20
  writeGeneratedViteConfig,
@@ -1 +1 @@
1
- {"version":3,"file":"simple-context.d.ts","sourceRoot":"","sources":["../../src/test/simple-context.ts"],"names":[],"mappings":"AAyLA;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8iB1E;AA+BD;;;GAGG;AACH,MAAM,WAAW,OAAO;IACvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACxB;AAED;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,WAAW;CAAI;AAEhC;;;;;;;;GAQG;AACH,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA"}
1
+ {"version":3,"file":"simple-context.d.ts","sourceRoot":"","sources":["../../src/test/simple-context.ts"],"names":[],"mappings":"AA+LA;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAojB1E;AA+BD;;;GAGG;AACH,MAAM,WAAW,OAAO;IACvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACxB;AAED;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,WAAW;CAAI;AAEhC;;;;;;;;GAQG;AACH,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveConfigCandidatePath
3
- } from "./index-dr6sbp8d.js";
3
+ } from "./index-k8vh558d.js";
4
4
  import {
5
5
  getDependencies
6
6
  } from "./index-1xpj0m4r.js";
@@ -16,12 +16,13 @@ import {
16
16
  import {
17
17
  findDurableObjectClasses
18
18
  } from "./index-9wt9x09k.js";
19
- import"./index-rfhx0yd5.js";
19
+ import"./index-5s1bz1e0.js";
20
20
  import {
21
21
  loadConfig,
22
22
  normalizeDOBinding
23
- } from "./index-wyf3s77s.js";
23
+ } from "./index-tksw7gpy.js";
24
24
  import"./index-v8vvsn9x.js";
25
+ import"./index-xdq9ery1.js";
25
26
  import {
26
27
  __require
27
28
  } from "./index-37x76zdn.js";
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/vite/plugin.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,MAAM,EAAiC,MAAM,MAAM,CAAA;AAGjE,OAAO,EAIN,KAAK,cAAc,EACnB,MAAM,oBAAoB,CAAA;AAY3B,MAAM,WAAW,qBAAqB;IACrC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACrC;;OAEG;IACH,cAAc,EAAE,cAAc,GAAG,IAAI,CAAA;IAErC;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAEhD;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;;OAGG;IACH,qBAAqB,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAEnD;;OAEG;IACH,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAA;CACxC;AAED,MAAM,WAAW,iBAAiB;IACjC,gDAA8C;IAC9C,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAC5B,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,qBAAqB;IACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAkBD;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,qBAAqB,CAExD;AAwND;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,MAAM,CAuO1E;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,GAAE;IAClD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAaxC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,GAAE;IACjD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,gBAAgB,EAAE,qBAAqB,EAAE,CAAA;CACzC,CAAC,CAsCD;AAGD,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/vite/plugin.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,MAAM,EAAiC,MAAM,MAAM,CAAA;AAQjE,OAAO,EAIN,KAAK,cAAc,EACnB,MAAM,oBAAoB,CAAA;AAY3B,MAAM,WAAW,qBAAqB;IACrC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACrC;;OAEG;IACH,cAAc,EAAE,cAAc,GAAG,IAAI,CAAA;IAErC;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAEhD;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;;OAGG;IACH,qBAAqB,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAEnD;;OAEG;IACH,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAA;CACxC;AAED,MAAM,WAAW,iBAAiB;IACjC,gDAA8C;IAC9C,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAC5B,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,qBAAqB;IACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAkBD;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,qBAAqB,CAExD;AA4ND;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,MAAM,CA4O1E;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,GAAE;IAClD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAcxC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,GAAE;IACjD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,gBAAgB,EAAE,qBAAqB,EAAE,CAAA;CACzC,CAAC,CAuCD;AAGD,eAAe,cAAc,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devflare",
3
- "version": "1.0.0-next.14",
3
+ "version": "1.0.0-next.15",
4
4
  "description": "Devflare is a developer-first toolkit for Cloudflare Workers that sits on top of Miniflare and Wrangler-compatible config",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",