@positronic/cloudflare 0.0.77 → 0.0.78

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 (41) hide show
  1. package/dist/src/api/brains.js +90 -195
  2. package/dist/src/api/files.js +178 -0
  3. package/dist/src/api/index.js +9 -0
  4. package/dist/src/api/webhooks/coordination.js +0 -2
  5. package/dist/src/api/webhooks/index.js +43 -36
  6. package/dist/src/api/webhooks/system.js +23 -21
  7. package/dist/src/brain-runner-do.js +110 -170
  8. package/dist/src/content-type.js +6 -0
  9. package/dist/src/dev-server.js +128 -18
  10. package/dist/src/file-utils.js +7 -0
  11. package/dist/src/files-service.js +465 -0
  12. package/dist/src/manifest.js +13 -8
  13. package/dist/src/monitor-do.js +17 -0
  14. package/dist/src/schedule-do.js +5 -19
  15. package/dist/src/zip-builder.js +507 -0
  16. package/dist/types/api/brains.d.ts.map +1 -1
  17. package/dist/types/api/files.d.ts +7 -0
  18. package/dist/types/api/files.d.ts.map +1 -0
  19. package/dist/types/api/index.d.ts.map +1 -1
  20. package/dist/types/api/webhooks/coordination.d.ts +0 -1
  21. package/dist/types/api/webhooks/coordination.d.ts.map +1 -1
  22. package/dist/types/api/webhooks/index.d.ts.map +1 -1
  23. package/dist/types/api/webhooks/system.d.ts.map +1 -1
  24. package/dist/types/brain-runner-do.d.ts +13 -7
  25. package/dist/types/brain-runner-do.d.ts.map +1 -1
  26. package/dist/types/content-type.d.ts +2 -0
  27. package/dist/types/content-type.d.ts.map +1 -0
  28. package/dist/types/dev-server.d.ts +1 -0
  29. package/dist/types/dev-server.d.ts.map +1 -1
  30. package/dist/types/file-utils.d.ts +3 -0
  31. package/dist/types/file-utils.d.ts.map +1 -0
  32. package/dist/types/files-service.d.ts +4 -0
  33. package/dist/types/files-service.d.ts.map +1 -0
  34. package/dist/types/manifest.d.ts.map +1 -1
  35. package/dist/types/monitor-do.d.ts +6 -0
  36. package/dist/types/monitor-do.d.ts.map +1 -1
  37. package/dist/types/schedule-do.d.ts +0 -1
  38. package/dist/types/schedule-do.d.ts.map +1 -1
  39. package/dist/types/zip-builder.d.ts +4 -0
  40. package/dist/types/zip-builder.d.ts.map +1 -0
  41. package/package.json +5 -4
@@ -546,11 +546,11 @@ export function discoverBrains(brainsDir) {
546
546
  return _ts_generator(this, function(_state) {
547
547
  switch(_state.label){
548
548
  case 0:
549
- if (entry.isFile() && entry.name.endsWith('.ts')) {
549
+ if (entry.isFile() && (entry.name.endsWith('.ts') || entry.name.endsWith('.tsx'))) {
550
550
  return [
551
551
  2,
552
552
  {
553
- name: entry.name.replace(/\.ts$/, ''),
553
+ name: entry.name.replace(/\.tsx?$/, ''),
554
554
  relativePath: entry.name
555
555
  }
556
556
  ];
@@ -624,12 +624,12 @@ export function discoverWebhooks(webhooksDir) {
624
624
  }
625
625
  function regenerateManifestFile(projectRootPath, targetSrcDir) {
626
626
  return _async_to_generator(function() {
627
- var runnerPath, brainsDir, manifestPath, importStatements, manifestEntries, brains, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, brain, importPath, importAlias, manifestContent, runnerContent;
627
+ var runnerPath, brainsDir, manifestPath, importStatements, manifestEntries, brains, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, brain, jsFile, importPath, importAlias, manifestContent, runnerContent;
628
628
  return _ts_generator(this, function(_state) {
629
629
  switch(_state.label){
630
630
  case 0:
631
- runnerPath = path.join(projectRootPath, 'runner.ts');
632
- brainsDir = path.join(projectRootPath, 'brains');
631
+ runnerPath = path.join(projectRootPath, 'src', 'runner.ts');
632
+ brainsDir = path.join(projectRootPath, 'src', 'brains');
633
633
  manifestPath = path.join(targetSrcDir, '_manifest.ts');
634
634
  importStatements = "import type { Brain } from '@positronic/core';\n";
635
635
  manifestEntries = '';
@@ -643,7 +643,9 @@ function regenerateManifestFile(projectRootPath, targetSrcDir) {
643
643
  try {
644
644
  for(_iterator = brains[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
645
645
  brain = _step.value;
646
- importPath = "../../brains/".concat(brain.relativePath.replace(/\.ts$/, '.js'));
646
+ // All brains are compiled to .positronic/brains/ by build-brains.mjs
647
+ jsFile = brain.relativePath.replace(/\.tsx?$/, '.js');
648
+ importPath = "../brains/".concat(jsFile);
647
649
  importAlias = "brain_".concat(brain.name.replace(/[^a-zA-Z0-9_]/g, '_'));
648
650
  importStatements += "import * as ".concat(importAlias, " from '").concat(importPath, "';\n");
649
651
  manifestEntries += " ".concat(JSON.stringify(brain.name), ": {\n");
@@ -706,7 +708,7 @@ function regenerateWebhookManifestFile(projectRootPath, targetSrcDir) {
706
708
  return _ts_generator(this, function(_state) {
707
709
  switch(_state.label){
708
710
  case 0:
709
- webhooksDir = path.join(projectRootPath, 'webhooks');
711
+ webhooksDir = path.join(projectRootPath, 'src', 'webhooks');
710
712
  manifestPath = path.join(targetSrcDir, '_webhookManifest.ts');
711
713
  return [
712
714
  4,
@@ -720,7 +722,8 @@ function regenerateWebhookManifestFile(projectRootPath, targetSrcDir) {
720
722
  try {
721
723
  for(_iterator = webhooks[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
722
724
  webhook = _step.value;
723
- importPath = "../../webhooks/".concat(webhook.relativePath.replace(/\.ts$/, '.js'));
725
+ // Webhooks are imported through symlink: .positronic/webhooks -> ../src/webhooks
726
+ importPath = "../webhooks/".concat(webhook.relativePath.replace(/\.ts$/, '.js'));
724
727
  importAlias = "webhook_".concat(webhook.name.replace(/[^a-zA-Z0-9_]/g, '_'));
725
728
  importStatements += "import ".concat(importAlias, " from '").concat(importPath, "';\n");
726
729
  manifestEntries += " ".concat(JSON.stringify(webhook.name), ": ").concat(importAlias, ",\n");
@@ -808,34 +811,42 @@ export var CloudflareDevServer = /*#__PURE__*/ function() {
808
811
  this.ensureServerDirectory(projectRoot, serverDir, force)
809
812
  ];
810
813
  case 1:
814
+ _state.sent();
815
+ // Create symlinks from .positronic/ to src/* (except brains/)
816
+ // so compiled brains' relative imports resolve correctly
817
+ return [
818
+ 4,
819
+ this.createSrcSymlinks(projectRoot, serverDir)
820
+ ];
821
+ case 2:
811
822
  _state.sent();
812
823
  // Sync environment variables to .dev.vars
813
824
  return [
814
825
  4,
815
826
  this.syncEnvironmentVariables(projectRoot, serverDir)
816
827
  ];
817
- case 2:
828
+ case 3:
818
829
  _state.sent();
819
830
  // Regenerate manifest based on actual project state
820
831
  return [
821
832
  4,
822
833
  this.regenerateProjectManifest(projectRoot, serverDir)
823
834
  ];
824
- case 3:
835
+ case 4:
825
836
  _state.sent();
826
837
  // Update wrangler config based on environment
827
838
  return [
828
839
  4,
829
840
  this.updateWranglerConfiguration(projectRoot, serverDir)
830
841
  ];
831
- case 4:
842
+ case 5:
832
843
  _state.sent();
833
844
  // Build and upload component bundle
834
845
  return [
835
846
  4,
836
847
  this.buildAndUploadBundle(projectRoot)
837
848
  ];
838
- case 5:
849
+ case 6:
839
850
  _state.sent();
840
851
  // Write origin URL to local R2 for dev server
841
852
  return [
@@ -844,7 +855,7 @@ export var CloudflareDevServer = /*#__PURE__*/ function() {
844
855
  local: true
845
856
  })
846
857
  ];
847
- case 6:
858
+ case 7:
848
859
  _state.sent();
849
860
  return [
850
861
  2
@@ -969,6 +980,105 @@ export var CloudflareDevServer = /*#__PURE__*/ function() {
969
980
  })();
970
981
  }
971
982
  },
983
+ {
984
+ key: "createSrcSymlinks",
985
+ value: function createSrcSymlinks(projectRoot, serverDir) {
986
+ return _async_to_generator(function() {
987
+ var srcDir, entries, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, entry, symlinkPath, target, err;
988
+ return _ts_generator(this, function(_state) {
989
+ switch(_state.label){
990
+ case 0:
991
+ srcDir = path.join(projectRoot, 'src');
992
+ return [
993
+ 4,
994
+ fsPromises.readdir(srcDir, {
995
+ withFileTypes: true
996
+ }).catch(function() {
997
+ return [];
998
+ })
999
+ ];
1000
+ case 1:
1001
+ entries = _state.sent();
1002
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
1003
+ _state.label = 2;
1004
+ case 2:
1005
+ _state.trys.push([
1006
+ 2,
1007
+ 8,
1008
+ 9,
1009
+ 10
1010
+ ]);
1011
+ _iterator = entries[Symbol.iterator]();
1012
+ _state.label = 3;
1013
+ case 3:
1014
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
1015
+ 3,
1016
+ 7
1017
+ ];
1018
+ entry = _step.value;
1019
+ if (entry.name === 'brains') return [
1020
+ 3,
1021
+ 6
1022
+ ];
1023
+ symlinkPath = path.join(serverDir, entry.name);
1024
+ target = path.join('..', 'src', entry.name);
1025
+ return [
1026
+ 4,
1027
+ fsPromises.rm(symlinkPath, {
1028
+ recursive: true,
1029
+ force: true
1030
+ })
1031
+ ];
1032
+ case 4:
1033
+ _state.sent();
1034
+ return [
1035
+ 4,
1036
+ fsPromises.symlink(target, symlinkPath)
1037
+ ];
1038
+ case 5:
1039
+ _state.sent();
1040
+ _state.label = 6;
1041
+ case 6:
1042
+ _iteratorNormalCompletion = true;
1043
+ return [
1044
+ 3,
1045
+ 3
1046
+ ];
1047
+ case 7:
1048
+ return [
1049
+ 3,
1050
+ 10
1051
+ ];
1052
+ case 8:
1053
+ err = _state.sent();
1054
+ _didIteratorError = true;
1055
+ _iteratorError = err;
1056
+ return [
1057
+ 3,
1058
+ 10
1059
+ ];
1060
+ case 9:
1061
+ try {
1062
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1063
+ _iterator.return();
1064
+ }
1065
+ } finally{
1066
+ if (_didIteratorError) {
1067
+ throw _iteratorError;
1068
+ }
1069
+ }
1070
+ return [
1071
+ 7
1072
+ ];
1073
+ case 10:
1074
+ return [
1075
+ 2
1076
+ ];
1077
+ }
1078
+ });
1079
+ })();
1080
+ }
1081
+ },
972
1082
  {
973
1083
  key: "syncEnvironmentVariables",
974
1084
  value: function syncEnvironmentVariables(projectRoot, serverDir) {
@@ -1182,7 +1292,7 @@ export var CloudflareDevServer = /*#__PURE__*/ function() {
1182
1292
  distDir = path.join(serverDir, 'dist');
1183
1293
  bundleOutputPath = path.join(distDir, 'components.js');
1184
1294
  // Check if components directory exists
1185
- componentsDir = path.join(projectRoot, 'components');
1295
+ componentsDir = path.join(projectRoot, 'src', 'components');
1186
1296
  return [
1187
1297
  4,
1188
1298
  fsPromises.access(componentsDir).then(function() {
@@ -1194,7 +1304,7 @@ export var CloudflareDevServer = /*#__PURE__*/ function() {
1194
1304
  case 1:
1195
1305
  hasComponents = _state.sent();
1196
1306
  if (!hasComponents) {
1197
- console.log('📦 No components/ directory found, skipping bundle build');
1307
+ console.log('📦 No src/components/ directory found, skipping bundle build');
1198
1308
  return [
1199
1309
  2
1200
1310
  ];
@@ -1470,7 +1580,7 @@ export var CloudflareDevServer = /*#__PURE__*/ function() {
1470
1580
  serverDir = path.join(projectRoot, '.positronic');
1471
1581
  srcDir = path.join(serverDir, 'src');
1472
1582
  relativePath = path.relative(projectRoot, filePath);
1473
- if (!(relativePath.startsWith('brains/') || relativePath.startsWith('brains\\'))) return [
1583
+ if (!(relativePath.startsWith('src/brains/') || relativePath.startsWith('src\\brains\\'))) return [
1474
1584
  3,
1475
1585
  2
1476
1586
  ];
@@ -1486,7 +1596,7 @@ export var CloudflareDevServer = /*#__PURE__*/ function() {
1486
1596
  6
1487
1597
  ];
1488
1598
  case 2:
1489
- if (!(relativePath.startsWith('webhooks/') || relativePath.startsWith('webhooks\\'))) return [
1599
+ if (!(relativePath.startsWith('src/webhooks/') || relativePath.startsWith('src\\webhooks\\'))) return [
1490
1600
  3,
1491
1601
  4
1492
1602
  ];
@@ -1502,7 +1612,7 @@ export var CloudflareDevServer = /*#__PURE__*/ function() {
1502
1612
  6
1503
1613
  ];
1504
1614
  case 4:
1505
- if (!(relativePath.startsWith('components/') || relativePath.startsWith('components\\'))) return [
1615
+ if (!(relativePath.startsWith('src/components/') || relativePath.startsWith('src\\components\\'))) return [
1506
1616
  3,
1507
1617
  6
1508
1618
  ];
@@ -0,0 +1,7 @@
1
+ function _type_of(obj) {
2
+ "@swc/helpers - typeof";
3
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
4
+ }
5
+ export function isFileHandle(value) {
6
+ return value !== null && (typeof value === "undefined" ? "undefined" : _type_of(value)) === 'object' && 'name' in value && 'url' in value && 'read' in value && typeof value.read === 'function';
7
+ }