Compare commits

...

77 Commits

Author SHA1 Message Date
standardci
2d9b3578b6 chore(release): publish new version
- @standardnotes/analytics@2.26.23
 - @standardnotes/api-gateway@1.75.3
 - @standardnotes/auth-server@1.146.3
 - @standardnotes/domain-core@1.33.1
 - @standardnotes/event-store@1.11.51
 - @standardnotes/files-server@1.23.1
 - @standardnotes/home-server@1.16.5
 - @standardnotes/revisions-server@1.37.2
 - @standardnotes/scheduler-server@1.20.55
 - @standardnotes/settings@1.21.38
 - @standardnotes/syncing-server@1.108.1
 - @standardnotes/websockets-server@1.10.52
2023-09-25 15:28:21 +00:00
Karol Sójko
3d5e747590 fix(syncing-server): another spec 2023-09-25 17:10:30 +02:00
Karol Sójko
94467747ac fix(syncing-server): specs 2023-09-25 15:52:35 +02:00
Karol Sójko
cebab59a02 fix: refactor the structure of notifications (#853) 2023-09-25 15:40:51 +02:00
standardci
09e1a892ca chore(release): publish new version
- @standardnotes/analytics@2.26.22
 - @standardnotes/api-gateway@1.75.2
 - @standardnotes/auth-server@1.146.2
 - @standardnotes/domain-events-infra@1.12.34
 - @standardnotes/domain-events@2.130.0
 - @standardnotes/event-store@1.11.50
 - @standardnotes/files-server@1.23.0
 - @standardnotes/home-server@1.16.4
 - @standardnotes/revisions-server@1.37.1
 - @standardnotes/scheduler-server@1.20.54
 - @standardnotes/syncing-server@1.108.0
 - @standardnotes/websockets-server@1.10.51
2023-09-25 11:53:52 +00:00
Karol Sójko
7b1eec21e5 feat: remove shared vault files upon shared vault removal (#852)
* feat: remove shared vault files upon shared vault removal

* fix: link files queue with syncing-server-js topic
2023-09-25 12:56:31 +02:00
standardci
a58262d584 chore(release): publish new version
- @standardnotes/home-server@1.16.3
 - @standardnotes/syncing-server@1.107.0
2023-09-25 09:43:23 +00:00
Karol Sójko
a8f03e157b feat(syncing-server): transfer shared vault items (#851) 2023-09-25 11:09:33 +02:00
standardci
a401962bcd chore(release): publish new version
- @standardnotes/home-server@1.16.2
 - @standardnotes/revisions-server@1.37.0
 - @standardnotes/syncing-server@1.106.0
2023-09-25 08:15:14 +00:00
Karol Sójko
9759814f63 feat: add storing paging progress in redis 2023-09-25 09:40:49 +02:00
standardci
c7cf53722c chore(release): publish new version
- @standardnotes/analytics@2.26.21
 - @standardnotes/api-gateway@1.75.1
 - @standardnotes/auth-server@1.146.1
 - @standardnotes/domain-events-infra@1.12.33
 - @standardnotes/domain-events@2.129.1
 - @standardnotes/event-store@1.11.49
 - @standardnotes/files-server@1.22.28
 - @standardnotes/home-server@1.16.1
 - @standardnotes/revisions-server@1.36.7
 - @standardnotes/scheduler-server@1.20.53
 - @standardnotes/syncing-server@1.105.1
 - @standardnotes/websockets-server@1.10.50
2023-09-25 07:30:06 +00:00
Karol Sójko
8cb33dc906 fix: add paging progress log 2023-09-25 08:51:33 +02:00
Karol Sójko
1d73e4f072 fix: remember paging progress on transitioning 2023-09-25 08:50:59 +02:00
standardci
0a0f82ea3d chore(release): publish new version
- @standardnotes/auth-server@1.146.0
 - @standardnotes/home-server@1.16.0
 - @standardnotes/revisions-server@1.36.6
 - @standardnotes/syncing-server@1.105.0
2023-09-22 12:43:13 +00:00
Karol Sójko
f9b1f40ddf fix(auth): register specs 2023-09-22 14:23:21 +02:00
Karol Sójko
0562b0a621 fix: add more logs to transition process 2023-09-22 14:19:14 +02:00
Karol Sójko
15ed1fd789 fix: remove excessive logs 2023-09-22 14:16:51 +02:00
Karol Sójko
5001496c7b feat: remove transition mode from code 2023-09-22 14:13:32 +02:00
Karol Sójko
0a1080ce2a feat(syncing-server): transfer shared vault ownership to designated survivor upon account deletion (#845) 2023-09-22 14:11:01 +02:00
standardci
4802d7e876 chore(release): publish new version
- @standardnotes/home-server@1.15.80
 - @standardnotes/syncing-server@1.104.0
2023-09-22 11:33:45 +00:00
Karol Sójko
bcd95cdbe9 feat(syncing-server): add designated survivors in fetching shared vaults response (#844) 2023-09-22 13:15:11 +02:00
standardci
d50c4440c2 chore(release): publish new version
- @standardnotes/home-server@1.15.79
 - @standardnotes/revisions-server@1.36.5
 - @standardnotes/syncing-server@1.103.1
2023-09-22 09:57:54 +00:00
Karol Sójko
921c30f641 fix: integrity check during transition 2023-09-22 11:27:54 +02:00
Karol Sójko
22540ee834 fix: processing migration optimization 2023-09-22 11:17:03 +02:00
Karol Sójko
4f4443a882 fix: disable cleaning secondary database on transition 2023-09-22 11:17:02 +02:00
standardci
80dbacf933 chore(release): publish new version
- @standardnotes/auth-server@1.145.0
 - @standardnotes/home-server@1.15.78
 - @standardnotes/syncing-server@1.103.0
2023-09-22 09:07:07 +00:00
Karol Sójko
dc77ff3e45 feat: remove user from all shared vaults upon account deletion (#843) 2023-09-22 10:49:53 +02:00
standardci
6515dcf487 chore(release): publish new version
- @standardnotes/home-server@1.15.77
 - @standardnotes/syncing-server@1.102.2
2023-09-22 07:54:08 +00:00
Karol Sójko
d0fd6b98df fix(syncing-server): error message 2023-09-22 09:35:37 +02:00
standardci
345efacb44 chore(release): publish new version
- @standardnotes/home-server@1.15.76
 - @standardnotes/revisions-server@1.36.4
2023-09-21 13:20:19 +00:00
Karol Sójko
d0dba1b66d fix(revisions): add log info about skipping already existing revision 2023-09-21 15:00:05 +02:00
standardci
da119af8b2 chore(release): publish new version
- @standardnotes/home-server@1.15.75
 - @standardnotes/syncing-server@1.102.1
2023-09-21 12:46:35 +00:00
Karol Sójko
a5da42bddd fix(syncing-server): add missing binding 2023-09-21 14:28:36 +02:00
standardci
12767237d2 chore(release): publish new version
- @standardnotes/analytics@2.26.20
 - @standardnotes/api-gateway@1.75.0
 - @standardnotes/auth-server@1.144.0
 - @standardnotes/domain-core@1.33.0
 - @standardnotes/domain-events-infra@1.12.32
 - @standardnotes/domain-events@2.129.0
 - @standardnotes/event-store@1.11.48
 - @standardnotes/files-server@1.22.27
 - @standardnotes/home-server@1.15.74
 - @standardnotes/revisions-server@1.36.3
 - @standardnotes/scheduler-server@1.20.52
 - @standardnotes/settings@1.21.37
 - @standardnotes/syncing-server@1.102.0
 - @standardnotes/websockets-server@1.10.49
2023-09-21 11:12:44 +00:00
Karol Sójko
230c96dcf1 feat: add designating a survivor in shared vault (#841)
* feat: add designating a survivor in shared vault

* add designated survivor property to http representation

* fix: specs

* fix: more specs

* fix: another spec fix

* fix: yet another spec fix
2023-09-21 12:26:08 +02:00
standardci
e2696fcd1a chore(release): publish new version
- @standardnotes/home-server@1.15.73
 - @standardnotes/revisions-server@1.36.2
2023-09-21 10:13:33 +00:00
Karol Sójko
a621cf1e3b fix(revisions): rename revisions table to all users stuck mid-migration process - fixes #836 (#842) 2023-09-21 11:55:55 +02:00
standardci
db35b9fcab chore(release): publish new version
- @standardnotes/home-server@1.15.72
 - @standardnotes/revisions-server@1.36.1
 - @standardnotes/syncing-server@1.101.1
2023-09-21 07:34:07 +00:00
Karol Sójko
880db1038a fix: secondary database catch up time 2023-09-21 09:17:00 +02:00
standardci
414b090efb chore(release): publish new version
- @standardnotes/analytics@2.26.19
 - @standardnotes/api-gateway@1.74.17
 - @standardnotes/auth-server@1.143.9
 - @standardnotes/domain-core@1.32.0
 - @standardnotes/domain-events-infra@1.12.31
 - @standardnotes/domain-events@2.128.0
 - @standardnotes/event-store@1.11.47
 - @standardnotes/files-server@1.22.26
 - @standardnotes/home-server@1.15.71
 - @standardnotes/revisions-server@1.36.0
 - @standardnotes/scheduler-server@1.20.51
 - @standardnotes/settings@1.21.36
 - @standardnotes/syncing-server@1.101.0
 - @standardnotes/websockets-server@1.10.48
2023-09-20 14:13:03 +00:00
Karol Sójko
41e2136bc0 feat(syncing-server): distinct notifications upon user removal from shared vault (#840) 2023-09-20 15:31:57 +02:00
Karol Sójko
378ecedfcc feat: add unassigning items and revisions upon shared vault removal (#839)
* feat: add unassigning items and revisions upon shared vault removal

* fix(syncing-server): update event payload creation
2023-09-20 15:03:17 +02:00
standardci
06d4200909 chore(release): publish new version
- @standardnotes/home-server@1.15.70
 - @standardnotes/syncing-server@1.100.0
2023-09-20 11:17:47 +00:00
Karol Sójko
22a8cc90f1 feat(syncing-server): remove owned shared vaults upon account deletion (#838) 2023-09-20 12:59:03 +02:00
standardci
5cf84e31b0 chore(release): publish new version
- @standardnotes/analytics@2.26.18
 - @standardnotes/api-gateway@1.74.16
 - @standardnotes/auth-server@1.143.8
 - @standardnotes/domain-core@1.31.0
 - @standardnotes/event-store@1.11.46
 - @standardnotes/files-server@1.22.25
 - @standardnotes/home-server@1.15.69
 - @standardnotes/revisions-server@1.35.8
 - @standardnotes/scheduler-server@1.20.50
 - @standardnotes/settings@1.21.35
 - @standardnotes/syncing-server@1.99.0
 - @standardnotes/websockets-server@1.10.47
2023-09-20 09:04:29 +00:00
Karol Sójko
31e7aaf253 feat(syncing-server): add notification for user upon declined shared vault invitation (#837) 2023-09-20 10:47:19 +02:00
standardci
8ec3d37c18 chore(release): publish new version
- @standardnotes/analytics@2.26.17
 - @standardnotes/api-gateway@1.74.15
 - @standardnotes/auth-server@1.143.7
 - @standardnotes/domain-core@1.30.1
 - @standardnotes/event-store@1.11.45
 - @standardnotes/files-server@1.22.24
 - @standardnotes/home-server@1.15.68
 - @standardnotes/revisions-server@1.35.7
 - @standardnotes/scheduler-server@1.20.49
 - @standardnotes/settings@1.21.34
 - @standardnotes/syncing-server@1.98.6
 - @standardnotes/websockets-server@1.10.46
2023-09-19 13:25:30 +00:00
Karol Sójko
857c6af946 fix: skip removing already existing content in secondary to pick up where the transition left of 2023-09-19 14:55:40 +02:00
Karol Sójko
de081fe786 fix(domain-core): allow any version and variant of the UUID format 2023-09-19 14:42:19 +02:00
standardci
0aeeb2d1cf chore(release): publish new version
- @standardnotes/home-server@1.15.67
 - @standardnotes/revisions-server@1.35.6
 - @standardnotes/syncing-server@1.98.5
2023-09-19 11:23:30 +00:00
Karol Sójko
e589029722 fix: logs verbosity during transitions 2023-09-19 13:04:43 +02:00
Karol Sójko
b265a39b63 fix: increase timeout for secondary database to catch up for indexes to be rebuilt 2023-09-19 13:04:43 +02:00
standardci
ed5cfd86db chore(release): publish new version
- @standardnotes/home-server@1.15.66
 - @standardnotes/revisions-server@1.35.5
 - @standardnotes/syncing-server@1.98.4
2023-09-19 11:04:14 +00:00
Karol Sójko
a1a3e9f586 fix: add checking for secondary items logs 2023-09-19 12:45:08 +02:00
Karol Sójko
a40b17b141 fix: logs for removing already existing content and paging through diff of the content 2023-09-19 12:43:09 +02:00
standardci
18181ed9df chore(release): publish new version
- @standardnotes/home-server@1.15.65
 - @standardnotes/revisions-server@1.35.4
 - @standardnotes/syncing-server@1.98.3
2023-09-19 08:46:37 +00:00
Karol Sójko
0ae028db73 fix: logs formatting during transition for better readability 2023-09-19 10:27:21 +02:00
standardci
79971be672 chore(release): publish new version
- @standardnotes/home-server@1.15.64
 - @standardnotes/revisions-server@1.35.3
 - @standardnotes/syncing-server@1.98.2
2023-09-19 08:18:11 +00:00
Karol Sójko
e4fcd738c3 fix(syncing-server): paging through already existing items 2023-09-19 09:59:03 +02:00
standardci
6827e5e218 chore(release): publish new version
- @standardnotes/auth-server@1.143.6
 - @standardnotes/home-server@1.15.63
2023-09-19 06:54:31 +00:00
Karol Sójko
b91cd7e232 fix(auth): bump version 2023-09-19 08:36:33 +02:00
Karol Sójko
735d89cdaa fix: building docker image 2023-09-19 08:36:13 +02:00
standardci
e8db412bc2 chore(release): publish new version
- @standardnotes/auth-server@1.143.4
 - @standardnotes/home-server@1.15.62
2023-09-19 06:20:59 +00:00
Karol Sójko
bf855bb26e fix(auth): add debug logs to transition 2023-09-19 08:02:27 +02:00
Karol Sójko
41cd377145 fix: missing workspace name input param 2023-09-18 14:34:26 +02:00
Karol Sójko
d798864caf fix: strip workflows of bundling 2023-09-18 14:18:17 +02:00
standardci
cef1998f0e chore(release): publish new version
- @standardnotes/analytics@2.26.16
 - @standardnotes/api-gateway@1.74.14
 - @standardnotes/auth-server@1.143.3
 - @standardnotes/event-store@1.11.44
 - @standardnotes/files-server@1.22.23
 - @standardnotes/home-server@1.15.61
 - @standardnotes/revisions-server@1.35.2
 - @standardnotes/scheduler-server@1.20.48
 - @standardnotes/syncing-server@1.98.1
 - @standardnotes/websockets-server@1.10.45
2023-09-18 11:49:29 +00:00
Karol Sójko
c2cbf44594 chore: upgrade node version (#835)
* chore: upgrade node version

* chore: upgrade yarn

* fix: yarn setup:

* remove bundle plugin

* fix bundling

* fix env path for files
2023-09-18 13:32:49 +02:00
standardci
de2e167582 chore(release): publish new version
- @standardnotes/analytics@2.26.15
 - @standardnotes/api-gateway@1.74.13
 - @standardnotes/auth-server@1.143.2
 - @standardnotes/domain-core@1.30.0
 - @standardnotes/event-store@1.11.43
 - @standardnotes/files-server@1.22.22
 - @standardnotes/home-server@1.15.60
 - @standardnotes/revisions-server@1.35.1
 - @standardnotes/scheduler-server@1.20.47
 - @standardnotes/settings@1.21.33
 - @standardnotes/syncing-server@1.98.0
 - @standardnotes/websockets-server@1.10.44
2023-09-18 08:44:10 +00:00
Karol Sójko
547a79e231 feat: add publishing notifications for users when a user is added to vault (#834) 2023-09-18 10:27:24 +02:00
standardci
5a3afb3b17 chore(release): publish new version
- @standardnotes/auth-server@1.143.1
 - @standardnotes/home-server@1.15.59
2023-09-15 15:42:29 +00:00
Karol Sójko
66ef4be656 fix(auth): retrieving transition status 2023-09-15 17:23:49 +02:00
standardci
c5d0d63ddd chore(release): publish new version
- @standardnotes/analytics@2.26.14
 - @standardnotes/api-gateway@1.74.12
 - @standardnotes/auth-server@1.143.0
 - @standardnotes/domain-core@1.29.0
 - @standardnotes/domain-events-infra@1.12.30
 - @standardnotes/domain-events@2.127.0
 - @standardnotes/event-store@1.11.42
 - @standardnotes/files-server@1.22.21
 - @standardnotes/home-server@1.15.58
 - @standardnotes/revisions-server@1.35.0
 - @standardnotes/scheduler-server@1.20.46
 - @standardnotes/settings@1.21.32
 - @standardnotes/syncing-server@1.97.0
 - @standardnotes/websockets-server@1.10.43
2023-09-15 15:13:07 +00:00
Karol Sójko
36f07c691a feat: refactor transition to minimize status changes (#828) 2023-09-15 16:56:08 +02:00
standardci
ac0390e7c3 chore(release): publish new version
- @standardnotes/auth-server@1.142.1
 - @standardnotes/home-server@1.15.57
 - @standardnotes/revisions-server@1.34.1
 - @standardnotes/syncing-server@1.96.1
2023-09-15 11:15:32 +00:00
Karol Sójko
0477507a6a fix: add debug logs for updating transition status on auth 2023-09-15 12:57:43 +02:00
Karol Sójko
3e7856c895 fix: add debug logs for transition status updates 2023-09-15 12:55:04 +02:00
3017 changed files with 8481 additions and 7436 deletions

View File

@@ -33,17 +33,12 @@ jobs:
with:
python-version: '3.11'
- name: Create Bundle Dir
id: bundle-dir
run: echo "temp_dir=$(mktemp -d -t ${{ inputs.service_name }}-${{ github.sha }}-XXXXXXX)" >> $GITHUB_OUTPUT
- name: Cache build
id: cache-build
uses: actions/cache@v3
with:
path: |
packages/**/dist
${{ steps.bundle-dir.outputs.temp_dir }}
key: ${{ runner.os }}-${{ inputs.service_name }}-build-${{ github.sha }}
- name: Set up Node
@@ -57,11 +52,7 @@ jobs:
- name: Build
if: steps.cache-build.outputs.cache-hit != 'true'
run: yarn build ${{ inputs.package_path }}
- name: Bundle
if: steps.cache-build.outputs.cache-hit != 'true'
run: yarn workspace ${{ inputs.workspace_name }} bundle --no-compress --output-directory ${{ steps.bundle-dir.outputs.temp_dir }}
run: yarn build
- name: Login to Docker Hub
uses: docker/login-action@v2
@@ -93,8 +84,8 @@ jobs:
uses: docker/build-push-action@v4
with:
builder: ${{ steps.buildx.outputs.name }}
context: ${{ steps.bundle-dir.outputs.temp_dir }}
file: ${{ steps.bundle-dir.outputs.temp_dir }}/${{ inputs.package_path }}/Dockerfile
context: .
file: ${{ inputs.package_path }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |

View File

@@ -24,7 +24,6 @@ jobs:
fail-fast: false
matrix:
secondary_db_enabled: [true, false]
transition_mode_enabled: [true, false]
runs-on: ubuntu-latest
services:
@@ -51,7 +50,6 @@ jobs:
DB_TYPE: mysql
CACHE_TYPE: redis
SECONDARY_DB_ENABLED: ${{ matrix.secondary_db_enabled }}
TRANSITION_MODE_ENABLED: ${{ matrix.transition_mode_enabled }}
- name: Wait for server to start
run: docker/is-available.sh http://localhost:3123 $(pwd)/logs
@@ -75,7 +73,6 @@ jobs:
db_type: [mysql, sqlite]
cache_type: [redis, memory]
secondary_db_enabled: [true, false]
transition_mode_enabled: [true, false]
runs-on: ubuntu-latest
@@ -145,7 +142,6 @@ jobs:
echo "REDIS_URL=redis://localhost:6379" >> packages/home-server/.env
echo "CACHE_TYPE=${{ matrix.cache_type }}" >> packages/home-server/.env
echo "SECONDARY_DB_ENABLED=${{ matrix.secondary_db_enabled }}" >> packages/home-server/.env
echo "TRANSITION_MODE_ENABLED=${{ matrix.transition_mode_enabled }}" >> packages/home-server/.env
echo "MONGO_HOST=localhost" >> packages/home-server/.env
echo "MONGO_PORT=27017" >> packages/home-server/.env
echo "MONGO_DATABASE=standardnotes" >> packages/home-server/.env

2
.gitignore vendored
View File

@@ -14,6 +14,8 @@ newrelic_agent.log
!.yarn/sdks
!.yarn/versions
yarn.build-error.log
packages/files/uploads/*
!packages/files/uploads/.gitkeep

2
.nvmrc
View File

@@ -1 +1 @@
20.2.0
20.6.1

4016
.pnp.cjs generated

File diff suppressed because one or more lines are too long

98
.pnp.loader.mjs generated
View File

@@ -1,5 +1,5 @@
import { URL as URL$1, fileURLToPath, pathToFileURL } from 'url';
import fs from 'fs';
import { URL as URL$1, fileURLToPath, pathToFileURL } from 'url';
import path from 'path';
import moduleExports, { Module } from 'module';
import { createHash } from 'crypto';
@@ -89,7 +89,6 @@ async function copyPromise(destinationFs, destination, sourceFs, source, opts) {
}));
}
async function copyImpl(prelayout, postlayout, destinationFs, destination, sourceFs, source, opts) {
var _a, _b, _c;
const destinationStat = opts.didParentExist ? await maybeLStat(destinationFs, destination) : null;
const sourceStat = await sourceFs.lstatPromise(source);
const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : sourceStat;
@@ -115,8 +114,8 @@ async function copyImpl(prelayout, postlayout, destinationFs, destination, sourc
throw new Error(`Unsupported file type (${sourceStat.mode})`);
}
}
if (((_a = opts.linkStrategy) == null ? void 0 : _a.type) !== `HardlinkFromIndex` || !sourceStat.isFile()) {
if (updated || ((_b = destinationStat == null ? void 0 : destinationStat.mtime) == null ? void 0 : _b.getTime()) !== mtime.getTime() || ((_c = destinationStat == null ? void 0 : destinationStat.atime) == null ? void 0 : _c.getTime()) !== atime.getTime()) {
if (opts.linkStrategy?.type !== `HardlinkFromIndex` || !sourceStat.isFile()) {
if (updated || destinationStat?.mtime?.getTime() !== mtime.getTime() || destinationStat?.atime?.getTime() !== atime.getTime()) {
postlayout.push(() => destinationFs.lutimesPromise(destination, atime, mtime));
updated = true;
}
@@ -186,7 +185,7 @@ async function copyFileViaIndex(prelayout, postlayout, destinationFs, destinatio
let indexStat = await maybeLStat(destinationFs, indexPath);
if (destinationStat) {
const isDestinationHardlinkedFromIndex = indexStat && destinationStat.dev === indexStat.dev && destinationStat.ino === indexStat.ino;
const isIndexModified = (indexStat == null ? void 0 : indexStat.mtimeMs) !== defaultTimeMs;
const isIndexModified = indexStat?.mtimeMs !== defaultTimeMs;
if (isDestinationHardlinkedFromIndex) {
if (isIndexModified && linkStrategy.autoRepair) {
atomicBehavior = 0 /* Lock */;
@@ -256,8 +255,7 @@ async function copyFileDirect(prelayout, postlayout, destinationFs, destination,
return true;
}
async function copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) {
var _a;
if (((_a = opts.linkStrategy) == null ? void 0 : _a.type) === `HardlinkFromIndex`) {
if (opts.linkStrategy?.type === `HardlinkFromIndex`) {
return copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, opts.linkStrategy);
} else {
return copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts);
@@ -387,7 +385,7 @@ class FakeFS {
throw error;
}
}
createdDirectory ?? (createdDirectory = subPath);
createdDirectory ??= subPath;
if (chmod != null)
await this.chmodPromise(subPath, chmod);
if (utimes != null) {
@@ -418,7 +416,7 @@ class FakeFS {
throw error;
}
}
createdDirectory ?? (createdDirectory = subPath);
createdDirectory ??= subPath;
if (chmod != null)
this.chmodSync(subPath, chmod);
if (utimes != null) {
@@ -613,12 +611,14 @@ class FakeFS {
throw error;
}
}
async writeJsonPromise(p, data) {
return await this.writeFilePromise(p, `${JSON.stringify(data, null, 2)}
async writeJsonPromise(p, data, { compact = false } = {}) {
const space = compact ? 0 : 2;
return await this.writeFilePromise(p, `${JSON.stringify(data, null, space)}
`);
}
writeJsonSync(p, data) {
return this.writeFileSync(p, `${JSON.stringify(data, null, 2)}
writeJsonSync(p, data, { compact = false } = {}) {
const space = compact ? 0 : 2;
return this.writeFileSync(p, `${JSON.stringify(data, null, space)}
`);
}
async preserveTimePromise(p, cb) {
@@ -852,7 +852,7 @@ class ProxiedFS extends FakeFS {
readFileSync(p, encoding) {
return this.baseFs.readFileSync(this.fsMapToBase(p), encoding);
}
async readdirPromise(p, opts) {
readdirPromise(p, opts) {
return this.baseFs.readdirPromise(this.mapToBase(p), opts);
}
readdirSync(p, opts) {
@@ -932,12 +932,24 @@ class NodeFS extends BasePortableFakeFS {
this.realFs.opendir(npath.fromPortablePath(p), this.makeCallback(resolve, reject));
}
}).then((dir) => {
return Object.defineProperty(dir, `path`, { value: p, configurable: true, writable: true });
const dirWithFixedPath = dir;
Object.defineProperty(dirWithFixedPath, `path`, {
value: p,
configurable: true,
writable: true
});
return dirWithFixedPath;
});
}
opendirSync(p, opts) {
const dir = typeof opts !== `undefined` ? this.realFs.opendirSync(npath.fromPortablePath(p), opts) : this.realFs.opendirSync(npath.fromPortablePath(p));
return Object.defineProperty(dir, `path`, { value: p, configurable: true, writable: true });
const dirWithFixedPath = dir;
Object.defineProperty(dirWithFixedPath, `path`, {
value: p,
configurable: true,
writable: true
});
return dirWithFixedPath;
}
async readPromise(fd, buffer, offset = 0, length = 0, position = -1) {
return await new Promise((resolve, reject) => {
@@ -1215,16 +1227,16 @@ class NodeFS extends BasePortableFakeFS {
}
async readdirPromise(p, opts) {
return await new Promise((resolve, reject) => {
if (opts == null ? void 0 : opts.withFileTypes) {
this.realFs.readdir(npath.fromPortablePath(p), { withFileTypes: true }, this.makeCallback(resolve, reject));
if (opts) {
this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject));
} else {
this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback((value) => resolve(value), reject));
}
});
}
readdirSync(p, opts) {
if (opts == null ? void 0 : opts.withFileTypes) {
return this.realFs.readdirSync(npath.fromPortablePath(p), { withFileTypes: true });
if (opts) {
return this.realFs.readdirSync(npath.fromPortablePath(p), opts);
} else {
return this.realFs.readdirSync(npath.fromPortablePath(p));
}
@@ -1359,9 +1371,6 @@ class VirtualFS extends ProxiedFS {
}
const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10));
const HAS_CONSOLIDATED_HOOKS = major > 16 || major === 16 && minor >= 12;
const HAS_UNFLAGGED_JSON_MODULES = major > 17 || major === 17 && minor >= 5 || major === 16 && minor >= 15;
const HAS_JSON_IMPORT_ASSERTION_REQUIREMENT = major > 17 || major === 17 && minor >= 1 || major === 16 && minor > 14;
const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13;
const HAS_LAZY_LOADED_TRANSLATORS = major > 19 || major === 19 && minor >= 3;
@@ -1427,11 +1436,7 @@ function getFileFormat(filepath) {
);
}
case `.json`: {
if (HAS_UNFLAGGED_JSON_MODULES)
return `json`;
throw new Error(
`Unknown file extension ".json" for ${filepath}`
);
return `json`;
}
case `.js`: {
const pkg = readPackageScope(filepath);
@@ -1452,38 +1457,15 @@ function getFileFormat(filepath) {
}
}
async function getFormat$1(resolved, context, defaultGetFormat) {
const url = tryParseURL(resolved);
if ((url == null ? void 0 : url.protocol) !== `file:`)
return defaultGetFormat(resolved, context, defaultGetFormat);
const format = getFileFormat(fileURLToPath(url));
if (format) {
return {
format
};
}
return defaultGetFormat(resolved, context, defaultGetFormat);
}
async function getSource$1(urlString, context, defaultGetSource) {
const url = tryParseURL(urlString);
if ((url == null ? void 0 : url.protocol) !== `file:`)
return defaultGetSource(urlString, context, defaultGetSource);
return {
source: await fs.promises.readFile(fileURLToPath(url), `utf8`)
};
}
async function load$1(urlString, context, nextLoad) {
var _a;
const url = tryParseURL(urlString);
if ((url == null ? void 0 : url.protocol) !== `file:`)
if (url?.protocol !== `file:`)
return nextLoad(urlString, context, nextLoad);
const filePath = fileURLToPath(url);
const format = getFileFormat(filePath);
if (!format)
return nextLoad(urlString, context, nextLoad);
if (HAS_JSON_IMPORT_ASSERTION_REQUIREMENT && format === `json` && ((_a = context.importAssertions) == null ? void 0 : _a.type) !== `json`) {
if (format === `json` && context.importAssertions?.type !== `json`) {
const err = new TypeError(`[ERR_IMPORT_ASSERTION_TYPE_MISSING]: Module "${urlString}" needs an import assertion of type "json"`);
err.code = `ERR_IMPORT_ASSERTION_TYPE_MISSING`;
throw err;
@@ -1500,7 +1482,7 @@ async function load$1(urlString, context, nextLoad) {
}
return {
format,
source: await fs.promises.readFile(filePath, `utf8`),
source: format === `commonjs` ? void 0 : await fs.promises.readFile(filePath, `utf8`),
shortCircuit: true
};
}
@@ -1991,7 +1973,7 @@ async function resolve$1(originalSpecifier, context, nextResolve) {
specifier = fileURLToPath(url);
}
const { parentURL, conditions = [] } = context;
const issuer = parentURL ? fileURLToPath(parentURL) : process.cwd();
const issuer = parentURL && tryParseURL(parentURL)?.protocol === `file:` ? fileURLToPath(parentURL) : process.cwd();
const pnpapi = findPnpApi(issuer) ?? (url ? findPnpApi(specifier) : null);
if (!pnpapi)
return nextResolve(originalSpecifier, context, nextResolve);
@@ -2068,8 +2050,6 @@ if (!HAS_LAZY_LOADED_TRANSLATORS) {
}
const resolve = resolve$1;
const getFormat = HAS_CONSOLIDATED_HOOKS ? void 0 : getFormat$1;
const getSource = HAS_CONSOLIDATED_HOOKS ? void 0 : getSource$1;
const load = HAS_CONSOLIDATED_HOOKS ? load$1 : void 0;
const load = load$1;
export { getFormat, getSource, load, resolve };
export { load, resolve };

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More