braidfs 0.0.102 → 0.0.104

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 (2) hide show
  1. package/index.js +44 -53
  2. package/package.json +3 -3
package/index.js CHANGED
@@ -396,12 +396,9 @@ async function sync_url(url) {
396
396
  return p
397
397
  }
398
398
  var get_fullpath = async () => {
399
- if (freed) return
400
399
  var p = fullpath
401
- while (await wait_on(is_dir(p))) {
402
- if (freed) return
400
+ while (await is_dir(p))
403
401
  p = require("path").join(p, 'index')
404
- }
405
402
  return p
406
403
  }
407
404
  if (!unsync_url.cache) unsync_url.cache = {}
@@ -412,12 +409,21 @@ async function sync_url(url) {
412
409
 
413
410
  delete braid_text.cache[url]
414
411
  for (let f of await braid_text.get_files_for_key(url)) {
415
- console.log(`trying to delete ${f}`)
416
- try { await require('fs').promises.unlink(f) } catch (e) {}
412
+ try {
413
+ console.log(`trying to delete: ${f}`)
414
+ await require('fs').promises.unlink(f)
415
+ } catch (e) {}
417
416
  }
418
417
 
419
- try { await require('fs').promises.unlink(meta_path) } catch (e) {}
420
- try { await require('fs').promises.unlink(await get_fullpath()) } catch (e) {}
418
+ try {
419
+ console.log(`trying to delete: ${meta_path}`)
420
+ await require('fs').promises.unlink(meta_path)
421
+ } catch (e) {}
422
+ try {
423
+ var fp = await get_fullpath()
424
+ console.log(`trying to delete: ${fp}`)
425
+ await require('fs').promises.unlink(fp)
426
+ } catch (e) {}
421
427
  }
422
428
  sync_url.cache[path] = sync_url.chain = sync_url.chain.then(init)
423
429
  }
@@ -878,57 +884,13 @@ async function sync_url(url) {
878
884
  await send_new_stuff()
879
885
  if (freed || closed) return
880
886
 
881
- // attempt to download the initial stuff in one go,
882
- // using transfer-encoding dt
883
- //
884
- // first check for support..
885
- //
886
- var res = await my_fetch({
887
- method: 'HEAD',
888
- headers: { 'accept-transfer-encoding': 'dt' },
889
- })
890
- if (freed || closed) return
891
-
892
- if (res.ok && res.headers.get('x-transfer-encoding') === 'dt') {
893
- var res = await my_fetch({
894
- headers: { 'accept-transfer-encoding': 'dt' },
895
- parents: self.fork_point,
896
- })
897
- if (freed || closed) return
898
- console.log(`got external updates about ${url}`)
899
-
900
- // manually apply the dt bytes..
901
- // ..code bits taken from braid-text put..
902
- var bytes = new Uint8Array(await res.arrayBuffer())
903
- if (freed || closed) return
904
-
905
- var start_i = 1 + resource.doc.getLocalVersion().reduce((a, b) => Math.max(a, b), -1)
906
- resource.doc.mergeBytes(bytes)
907
-
908
- // update resource.actor_seqs
909
- var end_i = resource.doc.getLocalVersion().reduce((a, b) => Math.max(a, b), -1)
910
- for (var i = start_i; i <= end_i; i++) {
911
- var v = resource.doc.localToRemoteVersion([i])[0]
912
- if (!resource.actor_seqs[v[0]]) resource.actor_seqs[v[0]] = new braid_text.RangeSet()
913
- resource.actor_seqs[v[0]].add_range(v[1], v[1])
914
- }
915
-
916
- resource.val = resource.doc.get()
917
- resource.need_defrag = true
918
- await resource.db_delta(bytes)
919
- if (freed || closed) return
920
-
921
- // ..do the things we do when getting subscribe updates..
922
- self.update_fork_point(JSON.parse(`[${res.headers.get('current-version')}]`), self.fork_point)
923
- self.signal_file_needs_writing()
924
- }
925
-
926
887
  var a = new AbortController()
927
888
  aborts.add(a)
928
889
  var res = await braid_fetch(url, {
929
890
  signal: a.signal,
930
891
  headers: {
931
892
  "Merge-Type": "dt",
893
+ 'accept-encoding': 'updates(dt)',
932
894
  Accept: 'text/plain',
933
895
  ...(x => x && {Cookie: x})(config.cookies?.[new URL(url).hostname]),
934
896
  },
@@ -955,6 +917,35 @@ async function sync_url(url) {
955
917
  initial_connect_done()
956
918
  res.subscribe(async update => {
957
919
  if (freed || closed) return
920
+
921
+ if (!update.status) {
922
+ console.log(`got initial update about ${url}`)
923
+
924
+ // manually apply the dt bytes..
925
+ // ..code bits taken from braid-text put..
926
+ var bytes = update.body
927
+
928
+ var start_i = 1 + resource.doc.getLocalVersion().reduce((a, b) => Math.max(a, b), -1)
929
+ resource.doc.mergeBytes(bytes)
930
+
931
+ // update resource.actor_seqs
932
+ var end_i = resource.doc.getLocalVersion().reduce((a, b) => Math.max(a, b), -1)
933
+ for (var i = start_i; i <= end_i; i++) {
934
+ var v = resource.doc.localToRemoteVersion([i])[0]
935
+ if (!resource.actor_seqs[v[0]]) resource.actor_seqs[v[0]] = new braid_text.RangeSet()
936
+ resource.actor_seqs[v[0]].add_range(v[1], v[1])
937
+ }
938
+
939
+ resource.val = resource.doc.get()
940
+ resource.need_defrag = true
941
+ await resource.db_delta(bytes)
942
+ if (freed || closed) return
943
+
944
+ self.update_fork_point(JSON.parse(`[${res.headers.get('current-version')}]`), self.fork_point)
945
+ self.signal_file_needs_writing()
946
+ return
947
+ }
948
+
958
949
  console.log(`got external update about ${url}`)
959
950
 
960
951
  if (update.body) update.body = update.body_text
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "braidfs",
3
- "version": "0.0.102",
3
+ "version": "0.0.104",
4
4
  "description": "braid technology synchronizing files and webpages",
5
5
  "author": "Braid Working Group",
6
6
  "repository": "braid-org/braidfs",
7
7
  "homepage": "https://braid.org",
8
8
  "dependencies": {
9
- "braid-http": "^1.3.76",
10
- "braid-text": "^0.2.40",
9
+ "braid-http": "~1.3.79",
10
+ "braid-text": "~0.2.44",
11
11
  "chokidar": "^3.6.0"
12
12
  },
13
13
  "bin": {