@positronic/cloudflare 0.0.27 → 0.0.29

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.
@@ -251,7 +251,7 @@ import * as path from 'path';
251
251
  import * as fsPromises from 'fs/promises';
252
252
  import * as fs from 'fs';
253
253
  import * as os from 'os';
254
- import { spawn, exec } from 'child_process';
254
+ import { spawn } from 'child_process';
255
255
  import * as dotenv from 'dotenv';
256
256
  import caz from 'caz';
257
257
  import { createRequire } from 'module';
@@ -1109,91 +1109,88 @@ export var CloudflareDevServer = /*#__PURE__*/ function() {
1109
1109
  key: "ensureR2BucketExists",
1110
1110
  value: function ensureR2BucketExists(bucketName) {
1111
1111
  return _async_to_generator(function() {
1112
- var serverDir, existingBuckets;
1112
+ var apiToken, accountId, apiBase, headers, listResponse, errorText, listData, existingBuckets, createResponse, errorText1;
1113
1113
  return _ts_generator(this, function(_state) {
1114
1114
  switch(_state.label){
1115
1115
  case 0:
1116
- serverDir = path.join(this.projectRootDir, '.positronic');
1116
+ apiToken = process.env.CLOUDFLARE_API_TOKEN;
1117
+ accountId = process.env.CLOUDFLARE_ACCOUNT_ID;
1118
+ if (!apiToken || !accountId) {
1119
+ throw new Error('Missing Cloudflare credentials for R2 bucket management.\n' + 'Please set CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID environment variables.');
1120
+ }
1121
+ apiBase = "https://api.cloudflare.com/client/v4/accounts/".concat(accountId, "/r2/buckets");
1122
+ headers = {
1123
+ Authorization: "Bearer ".concat(apiToken),
1124
+ 'Content-Type': 'application/json'
1125
+ };
1117
1126
  return [
1118
1127
  4,
1119
- new Promise(function(resolve, reject) {
1120
- exec('npx wrangler r2 bucket list --json', {
1121
- cwd: serverDir,
1122
- env: _object_spread_props(_object_spread({}, process.env), {
1123
- CLOUDFLARE_API_TOKEN: process.env.CLOUDFLARE_API_TOKEN,
1124
- CLOUDFLARE_ACCOUNT_ID: process.env.CLOUDFLARE_ACCOUNT_ID
1125
- })
1126
- }, function(error, stdout) {
1127
- if (error) {
1128
- reject(new Error("Failed to list R2 buckets: ".concat(error.message)));
1129
- return;
1130
- }
1131
- var buckets = JSON.parse(stdout);
1132
- resolve(buckets.map(function(b) {
1133
- return b.name;
1134
- }));
1135
- });
1128
+ fetch(apiBase, {
1129
+ headers: headers
1136
1130
  })
1137
1131
  ];
1138
1132
  case 1:
1139
- existingBuckets = _state.sent();
1133
+ listResponse = _state.sent();
1134
+ if (!!listResponse.ok) return [
1135
+ 3,
1136
+ 3
1137
+ ];
1138
+ return [
1139
+ 4,
1140
+ listResponse.text()
1141
+ ];
1142
+ case 2:
1143
+ errorText = _state.sent();
1144
+ throw new Error("Failed to list R2 buckets: ".concat(listResponse.status, " ").concat(listResponse.statusText, "\n").concat(errorText));
1145
+ case 3:
1146
+ return [
1147
+ 4,
1148
+ listResponse.json()
1149
+ ];
1150
+ case 4:
1151
+ listData = _state.sent();
1152
+ existingBuckets = listData.result.buckets.map(function(b) {
1153
+ return b.name;
1154
+ });
1140
1155
  if (existingBuckets.includes(bucketName)) {
1141
1156
  console.log("\uD83D\uDCE6 R2 bucket '".concat(bucketName, "' already exists"));
1142
1157
  return [
1143
1158
  2
1144
1159
  ];
1145
1160
  }
1146
- // Create the bucket
1161
+ // Create the bucket using Cloudflare API
1147
1162
  console.log("\uD83D\uDCE6 Creating R2 bucket '".concat(bucketName, "'..."));
1148
1163
  return [
1149
1164
  4,
1150
- new Promise(function(resolve, reject) {
1151
- var _createProcess_stdout, _createProcess_stderr;
1152
- var createProcess = spawn('npx', [
1153
- 'wrangler',
1154
- 'r2',
1155
- 'bucket',
1156
- 'create',
1157
- bucketName
1158
- ], {
1159
- cwd: serverDir,
1160
- stdio: [
1161
- 'inherit',
1162
- 'pipe',
1163
- 'pipe'
1164
- ],
1165
- env: _object_spread_props(_object_spread({}, process.env), {
1166
- CLOUDFLARE_API_TOKEN: process.env.CLOUDFLARE_API_TOKEN,
1167
- CLOUDFLARE_ACCOUNT_ID: process.env.CLOUDFLARE_ACCOUNT_ID
1168
- })
1169
- });
1170
- (_createProcess_stdout = createProcess.stdout) === null || _createProcess_stdout === void 0 ? void 0 : _createProcess_stdout.on('data', function(data) {
1171
- process.stdout.write(data);
1172
- });
1173
- (_createProcess_stderr = createProcess.stderr) === null || _createProcess_stderr === void 0 ? void 0 : _createProcess_stderr.on('data', function(data) {
1174
- process.stderr.write(data);
1175
- });
1176
- createProcess.on('error', function(err) {
1177
- reject(new Error("Failed to create R2 bucket: ".concat(err.message)));
1178
- });
1179
- createProcess.on('exit', function(code) {
1180
- if (code === 0) {
1181
- console.log("✅ R2 bucket '".concat(bucketName, "' created successfully"));
1182
- resolve();
1183
- } else {
1184
- reject(new Error("Failed to create R2 bucket (exit code ".concat(code, ")")));
1185
- }
1186
- });
1165
+ fetch(apiBase, {
1166
+ method: 'POST',
1167
+ headers: headers,
1168
+ body: JSON.stringify({
1169
+ name: bucketName
1170
+ })
1187
1171
  })
1188
1172
  ];
1189
- case 2:
1190
- _state.sent();
1173
+ case 5:
1174
+ createResponse = _state.sent();
1175
+ if (!!createResponse.ok) return [
1176
+ 3,
1177
+ 7
1178
+ ];
1179
+ return [
1180
+ 4,
1181
+ createResponse.text()
1182
+ ];
1183
+ case 6:
1184
+ errorText1 = _state.sent();
1185
+ throw new Error("Failed to create R2 bucket: ".concat(createResponse.status, " ").concat(createResponse.statusText, "\n").concat(errorText1));
1186
+ case 7:
1187
+ console.log("✅ R2 bucket '".concat(bucketName, "' created successfully"));
1191
1188
  return [
1192
1189
  2
1193
1190
  ];
1194
1191
  }
1195
1192
  });
1196
- }).call(this);
1193
+ })();
1197
1194
  }
1198
1195
  },
1199
1196
  {
@@ -1 +1 @@
1
- {"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../../src/dev-server.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAqJ1E,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAmBnD;AA8CD,qBAAa,mBAAoB,YAAW,mBAAmB;IAyB1C,cAAc,EAAE,MAAM;IAjBzC;;;;;;;;;;;OAWG;IAEH,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,cAAc,CAAwC;IAC9D,OAAO,CAAC,gBAAgB,CAAwC;gBAE7C,cAAc,EAAE,MAAM;IAEnC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAiB7B,qBAAqB;YA4DrB,wBAAwB;YAqBxB,yBAAyB;YAQzB,2BAA2B;IAuBzC,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,wBAAwB;YASlB,0BAA0B;IA4BxC,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,gBAAgB;IA4BlB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAkD3C,KAAK,CACT,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GACjC,OAAO,CAAC,IAAI,CAAC;YAUF,oBAAoB;IAuE5B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IA0F7B,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIhD,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIlD,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI9C,WAAW,IAAI,OAAO,CAC1B,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC,CAC5D;IAwCK,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CrD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuC5C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA0DnD"}
1
+ {"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../../src/dev-server.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAqJ1E,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAmBnD;AA8CD,qBAAa,mBAAoB,YAAW,mBAAmB;IAyB1C,cAAc,EAAE,MAAM;IAjBzC;;;;;;;;;;;OAWG;IAEH,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,cAAc,CAAwC;IAC9D,OAAO,CAAC,gBAAgB,CAAwC;gBAE7C,cAAc,EAAE,MAAM;IAEnC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAiB7B,qBAAqB;YA4DrB,wBAAwB;YAqBxB,yBAAyB;YAQzB,2BAA2B;IAuBzC,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,wBAAwB;YASlB,0BAA0B;IA4BxC,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,gBAAgB;IA4BlB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAkD3C,KAAK,CACT,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GACjC,OAAO,CAAC,IAAI,CAAC;YAUF,oBAAoB;IA0D5B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IA0F7B,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIhD,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIlD,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI9C,WAAW,IAAI,OAAO,CAC1B,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC,CAC5D;IAwCK,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CrD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuC5C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA0DnD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@positronic/cloudflare",
3
- "version": "0.0.27",
3
+ "version": "0.0.29",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -31,9 +31,9 @@
31
31
  "clean": "rm -rf tsconfig.tsbuildinfo dist"
32
32
  },
33
33
  "dependencies": {
34
- "@positronic/core": "^0.0.27",
35
- "@positronic/spec": "^0.0.27",
36
- "@positronic/template-new-project": "^0.0.27",
34
+ "@positronic/core": "^0.0.29",
35
+ "@positronic/spec": "^0.0.29",
36
+ "@positronic/template-new-project": "^0.0.29",
37
37
  "aws4fetch": "^1.0.18",
38
38
  "caz": "^2.0.0",
39
39
  "cron-schedule": "^5.0.4",