Merge pull request #84 from o-development/feat/svelte

Feat/svelte
main
jaxoncreed 4 months ago committed by GitHub
commit ad8a8042a4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 29
      jest.config.js
  2. 31
      jest.esm.config.js
  3. 2
      lerna.json
  4. 37302
      package-lock.json
  5. 7
      package.json
  6. 7
      packages/cli/jest.config.js
  7. 19
      packages/cli/package.json
  8. 2
      packages/cli/src/build.ts
  9. 6
      packages/cli/src/create.ts
  10. 4
      packages/cli/src/generateReadme.ts
  11. 8
      packages/cli/src/index.ts
  12. 2
      packages/cli/src/init.ts
  13. 0
      packages/cli/tsconfig.cjs.json
  14. 4
      packages/connected-nextgraph/README.md
  15. 1
      packages/connected-nextgraph/babel.config.js
  16. 10
      packages/connected-nextgraph/jest.config.js
  17. 43
      packages/connected-nextgraph/package.json
  18. 6
      packages/connected-nextgraph/src/NextGraphConnectedPlugin.ts
  19. 2
      packages/connected-nextgraph/src/createNextGraphLdoDataset.ts
  20. 12
      packages/connected-nextgraph/src/index.ts
  21. 4
      packages/connected-nextgraph/src/notifications/NextGraphNotificationSubscription.ts
  22. 10
      packages/connected-nextgraph/src/resources/NextGraphResource.ts
  23. 2
      packages/connected-nextgraph/src/results/NextGraphReadSuccess.ts
  24. 2
      packages/connected-nextgraph/src/util/isNextGraphUri.ts
  25. 7
      packages/connected-nextgraph/test/integration.test.ts
  26. 7
      packages/connected-nextgraph/tsconfig.build.json
  27. 10
      packages/connected-nextgraph/tsconfig.cjs.json
  28. 11
      packages/connected-nextgraph/tsconfig.esm.json
  29. 9
      packages/connected-nextgraph/vitest.config.js
  30. 4
      packages/connected-solid/README.md
  31. 0
      packages/connected-solid/babel.config.cjs
  32. 1
      packages/connected-solid/babel.config.js
  33. 9
      packages/connected-solid/jest.config.cjs
  34. 10
      packages/connected-solid/jest.config.js
  35. 45
      packages/connected-solid/package.json
  36. 6
      packages/connected-solid/src/.ldo/solid.shapeTypes.ts
  37. 6
      packages/connected-solid/src/.ldo/wac.shapeTypes.ts
  38. 8
      packages/connected-solid/src/SolidConnectedPlugin.ts
  39. 2
      packages/connected-solid/src/createSolidLdoDataset.ts
  40. 18
      packages/connected-solid/src/getStorageFromWebId.ts
  41. 100
      packages/connected-solid/src/index.ts
  42. 12
      packages/connected-solid/src/notifications/Websocket2023NotificationSubscription.ts
  43. 22
      packages/connected-solid/src/requester/BatchedRequester.ts
  44. 16
      packages/connected-solid/src/requester/ContainerBatchedRequester.ts
  45. 16
      packages/connected-solid/src/requester/LeafBatchedRequester.ts
  46. 12
      packages/connected-solid/src/requester/requests/checkRootContainer.ts
  47. 32
      packages/connected-solid/src/requester/requests/createDataResource.ts
  48. 18
      packages/connected-solid/src/requester/requests/deleteResource.ts
  49. 28
      packages/connected-solid/src/requester/requests/readResource.ts
  50. 12
      packages/connected-solid/src/requester/requests/updateDataResource.ts
  51. 26
      packages/connected-solid/src/requester/requests/uploadResource.ts
  52. 2
      packages/connected-solid/src/requester/results/success/CheckRootContainerSuccess.ts
  53. 4
      packages/connected-solid/src/requester/results/success/SolidReadSuccess.ts
  54. 2
      packages/connected-solid/src/requester/util/modifyQueueFuntions.ts
  55. 30
      packages/connected-solid/src/resources/SolidContainer.ts
  56. 32
      packages/connected-solid/src/resources/SolidLeaf.ts
  57. 52
      packages/connected-solid/src/resources/SolidResource.ts
  58. 2
      packages/connected-solid/src/util/isSolidUri.ts
  59. 4
      packages/connected-solid/src/util/rdfUtils.ts
  60. 24
      packages/connected-solid/src/wac/getWacRule.ts
  61. 18
      packages/connected-solid/src/wac/getWacUri.ts
  62. 6
      packages/connected-solid/src/wac/results/GetWacRuleSuccess.ts
  63. 6
      packages/connected-solid/src/wac/results/GetWacUriSuccess.ts
  64. 6
      packages/connected-solid/src/wac/results/SetWacRuleSuccess.ts
  65. 4
      packages/connected-solid/src/wac/results/WacRuleAbsent.ts
  66. 22
      packages/connected-solid/src/wac/setWacRule.ts
  67. 6
      packages/connected-solid/test/.ldo/post.shapeTypes.ts
  68. 43
      packages/connected-solid/test/Integration.test.ts
  69. 9
      packages/connected-solid/test/LeafRequester.test.ts
  70. 15
      packages/connected-solid/test/RequestBatcher.test.ts
  71. 8
      packages/connected-solid/test/Websocket2023NotificationSubscription.test.ts
  72. 3
      packages/connected-solid/test/guaranteeFetch.test.ts
  73. 3
      packages/connected-solid/test/uriTypes.test.ts
  74. 7
      packages/connected-solid/tsconfig.build.json
  75. 10
      packages/connected-solid/tsconfig.cjs.json
  76. 14
      packages/connected-solid/tsconfig.esm.json
  77. 9
      packages/connected-solid/vitest.config.js
  78. 4
      packages/connected/README.md
  79. 10
      packages/connected/jest.config.js
  80. 45
      packages/connected/package.json
  81. 10
      packages/connected/src/ConnectedLdoBuilder.ts
  82. 12
      packages/connected/src/ConnectedLdoDataset.ts
  83. 20
      packages/connected/src/ConnectedLdoTransactionDataset.ts
  84. 4
      packages/connected/src/InvalidIdentifierResource.ts
  85. 12
      packages/connected/src/Resource.ts
  86. 4
      packages/connected/src/createConntectedLdoDataset.ts
  87. 58
      packages/connected/src/index.ts
  88. 10
      packages/connected/src/linkTraversal/ResourceLinkQuery.ts
  89. 8
      packages/connected/src/linkTraversal/exploreLinks.ts
  90. 11
      packages/connected/src/methods.ts
  91. 8
      packages/connected/src/notifications/NotificationSubscription.ts
  92. 4
      packages/connected/src/results/error/ErrorResult.ts
  93. 4
      packages/connected/src/results/error/InvalidUriError.ts
  94. 6
      packages/connected/src/results/error/NotificationErrors.ts
  95. 4
      packages/connected/src/results/success/ReadSuccess.ts
  96. 4
      packages/connected/src/results/success/SuccessResult.ts
  97. 4
      packages/connected/src/results/success/Unfetched.ts
  98. 4
      packages/connected/src/results/success/UpdateSuccess.ts
  99. 4
      packages/connected/src/trackingProxy/TrackingProxyContext.ts
  100. 2
      packages/connected/src/trackingProxy/TrackingSetProxy.ts
  101. Some files were not shown because too many files have changed in this diff Show More

@ -1,5 +1,30 @@
/* eslint-disable @typescript-eslint/no-var-requires */
const path = require("path");
const monorepoRoot = path.resolve(__dirname);
module.exports = { module.exports = {
preset: "ts-jest", preset: "ts-jest/presets/js-with-ts",
testEnvironment: "node", testEnvironment: "node",
coveragePathIgnorePatterns: ["/test/"], moduleNameMapper: {
"^(\\.{1,2}/.*)\\.js$": "$1",
"^@ldo/([^/]+)$": `${monorepoRoot}/packages/$1/src/index.ts`,
"^@ldo/([^/]+)/(.*)$": `${monorepoRoot}/packages/$1/$2`,
},
coveragePathIgnorePatterns: [
"/node_modules/",
"/dist/",
"/coverage/",
"/test/",
],
transform: {
"^.+\\.ts$": [
"ts-jest",
{
tsconfig: "<rootDir>/tsconfig.cjs.json",
},
],
},
testPathIgnorePatterns: ["/node_modules/", "/dist/"],
transformIgnorePatterns: ["/node_modules/", "/dist/"],
modulePathIgnorePatterns: ["/dist/"],
}; };

@ -0,0 +1,31 @@
/* eslint-disable @typescript-eslint/no-var-requires */
// jest.esm.config.js
const path = require("path");
const monorepoRoot = path.resolve(__dirname);
module.exports = {
preset: "ts-jest/presets/default-esm",
testEnvironment: "node",
extensionsToTreatAsEsm: [".ts"],
transform: {
"^.+\\.ts$": [
"ts-jest",
{
useESM: true,
tsconfig: "<rootDir>/tsconfig.esm.json",
},
],
},
moduleNameMapper: {
"^(\\.{1,2}/.*)\\.js$": "$1",
},
transformIgnorePatterns: ["/node_modules/", "/dist/"],
modulePathIgnorePatterns: ["/dist/"],
testPathIgnorePatterns: ["/node_modules/", "/dist/"],
coveragePathIgnorePatterns: [
"/node_modules/",
"/dist/",
"/coverage/",
"/test/",
],
};

@ -1,4 +1,4 @@
{ {
"$schema": "node_modules/lerna/schemas/lerna-schema.json", "$schema": "node_modules/lerna/schemas/lerna-schema.json",
"version": "1.0.0-alpha.9" "version": "1.0.0-alpha.12"
} }

37302
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -13,18 +13,23 @@
}, },
"devDependencies": { "devDependencies": {
"@babel/preset-env": "^7.26.9", "@babel/preset-env": "^7.26.9",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^14.6.1",
"@types/jest": "^27.5.2", "@types/jest": "^27.5.2",
"@types/node": "^20.5.7", "@types/node": "^20.5.7",
"@typescript-eslint/eslint-plugin": "^6.5.0", "@typescript-eslint/eslint-plugin": "^6.5.0",
"@typescript-eslint/parser": "^6.5.0", "@typescript-eslint/parser": "^6.5.0",
"@vitejs/plugin-react": "^4.4.1",
"eslint": "^8.48.0", "eslint": "^8.48.0",
"eslint-config-prettier": "^9.0.0", "eslint-config-prettier": "^9.0.0",
"eslint-plugin-prettier": "^5.0.0", "eslint-plugin-prettier": "^5.0.0",
"eslint-plugin-react": "^7.33.2", "eslint-plugin-react": "^7.33.2",
"jest": "^29.7.0", "jest": "^29.7.0",
"jsdom": "^26.1.0",
"lerna": "^7.2.0", "lerna": "^7.2.0",
"prettier": "3.0.3", "prettier": "3.0.3",
"ts-jest": "^29.3.0", "ts-jest": "^29.3.0",
"typescript": "^5.2.2" "typescript": "^5.2.2",
"vitest": "^3.1.3"
} }
} }

@ -1,5 +1,6 @@
const sharedConfig = require('../../jest.config.js'); /* eslint-disable @typescript-eslint/no-var-requires */
const sharedConfig = require("../../jest.config.js");
module.exports = { module.exports = {
...sharedConfig, ...sharedConfig,
'rootDir': './', rootDir: "./",
} };

@ -1,6 +1,6 @@
{ {
"name": "@ldo/cli", "name": "@ldo/cli",
"version": "1.0.0-alpha.9", "version": "1.0.0-alpha.11",
"description": "A Command Line Interface for Linked Data Objects", "description": "A Command Line Interface for Linked Data Objects",
"main": "./dist/index.js", "main": "./dist/index.js",
"bin": { "bin": {
@ -8,28 +8,27 @@
}, },
"scripts": { "scripts": {
"build": "npm run clean && npm run build:ts && npm run copy-files && npm run update-permission", "build": "npm run clean && npm run build:ts && npm run copy-files && npm run update-permission",
"build:ts": "tsc --project tsconfig.build.json", "build:ts": "tsc --project tsconfig.cjs.json",
"clean": "rimraf dist/", "clean": "rimraf dist/",
"copy-files": "copyfiles -u 1 \"./src/**/*.ejs\" dist/", "copy-files": "copyfiles -u 1 \"./src/**/*.ejs\" dist/",
"update-permission": "chmod +x ./dist/index.js", "update-permission": "chmod +x ./dist/index.js",
"test": "jest --coverage", "test": "jest --coverage",
"prepublishOnly": "npm run test && npm run build", "prepublishOnly": " npm run build",
"lint": "eslint src/** --fix --no-error-on-unmatched-pattern", "lint": "eslint src/** --fix --no-error-on-unmatched-pattern",
"test:init": "rm -rf ./example-init && cp -R ./example-init-placeholder ./example-init && cd ./example-init && ../dist/index.js init", "test:init": "rm -rf ./example-init && cp -R ./example-init-placeholder ./example-init && cd ./example-init && ../dist/index.js init",
"test:create": "rm -rf ./example-create && ./dist/index.js create ./example-create" "test:create": "rm -rf ./example-create && ./dist/index.js create ./example-create"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/o-development/ldobjects.git" "url": "git+https://github.com/o-development/ldo.git"
}, },
"author": "Jackson Morgan", "author": "Jackson Morgan",
"license": "MIT", "license": "MIT",
"bugs": { "bugs": {
"url": "https://github.com/o-development/ldobjects/issues" "url": "https://github.com/o-development/ldo/issues"
}, },
"homepage": "https://github.com/o-development/ldobjects/tree/main/packages/cli#readme", "homepage": "https://github.com/o-development/ldo/tree/main/packages/cli#readme",
"devDependencies": { "devDependencies": {
"@ldo/cli": "^0.0.1-alpha.28",
"@types/child-process-promise": "^2.2.2", "@types/child-process-promise": "^2.2.2",
"@types/ejs": "^3.1.1", "@types/ejs": "^3.1.1",
"@types/fs-extra": "^9.0.13", "@types/fs-extra": "^9.0.13",
@ -40,8 +39,8 @@
"rimraf": "^3.0.2" "rimraf": "^3.0.2"
}, },
"dependencies": { "dependencies": {
"@ldo/ldo": "^1.0.0-alpha.9", "@ldo/ldo": "^1.0.0-alpha.11",
"@ldo/schema-converter-shex": "^1.0.0-alpha.9", "@ldo/schema-converter-shex": "^1.0.0-alpha.11",
"@shexjs/parser": "^1.0.0-alpha.24", "@shexjs/parser": "^1.0.0-alpha.24",
"child-process-promise": "^2.2.1", "child-process-promise": "^2.2.1",
"commander": "^9.3.0", "commander": "^9.3.0",
@ -60,5 +59,5 @@
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
}, },
"gitHead": "0287cd6371f06630763568dec5e41653f7b8583e" "gitHead": "840910c56ec3f61416f031cc76771a5673af6757"
} }

@ -6,7 +6,7 @@ import schemaConverterShex from "@ldo/schema-converter-shex";
import { renderFile } from "ejs"; import { renderFile } from "ejs";
import prettier from "prettier"; import prettier from "prettier";
import loading from "loading-cli"; import loading from "loading-cli";
import { forAllShapes } from "./util/forAllShapes"; import { forAllShapes } from "./util/forAllShapes.js";
interface BuildOptions { interface BuildOptions {
input: string; input: string;

@ -1,6 +1,6 @@
import { init } from "./init"; import { init } from "./init.js";
import { modifyPackageJson, savePackageJson } from "./util/modifyPackageJson"; import { modifyPackageJson, savePackageJson } from "./util/modifyPackageJson.js";
import { generateReadme } from "./generateReadme"; import { generateReadme } from "./generateReadme.js";
import path from "path"; import path from "path";
import prompts from "prompts"; import prompts from "prompts";
import type { PackageJson } from "type-fest"; import type { PackageJson } from "type-fest";

@ -1,5 +1,5 @@
import { getPackageJson } from "./util/modifyPackageJson"; import { getPackageJson } from "./util/modifyPackageJson.js";
import { forAllShapes } from "./util/forAllShapes"; import { forAllShapes } from "./util/forAllShapes.js";
import { promises as fs } from "fs"; import { promises as fs } from "fs";
import path from "path"; import path from "path";
import { Project } from "ts-morph"; import { Project } from "ts-morph";

@ -1,10 +1,10 @@
#!/usr/bin/env node #!/usr/bin/env node
import { program } from "commander"; import { program } from "commander";
import { build } from "./build"; import { build } from "./build.js";
import { init } from "./init"; import { init } from "./init.js";
import { create } from "./create"; import { create } from "./create.js";
import { generateReadme } from "./generateReadme"; import { generateReadme } from "./generateReadme.js";
program program
.name("LDO-CLI") .name("LDO-CLI")

@ -2,7 +2,7 @@ import { exec } from "child-process-promise";
import fs from "fs-extra"; import fs from "fs-extra";
import path from "path"; import path from "path";
import { renderFile } from "ejs"; import { renderFile } from "ejs";
import { modifyPackageJson } from "./util/modifyPackageJson"; import { modifyPackageJson } from "./util/modifyPackageJson.js";
const DEFAULT_SHAPES_FOLDER = "./.shapes"; const DEFAULT_SHAPES_FOLDER = "./.shapes";
const DEFAULT_LDO_FOLDER = "./.ldo"; const DEFAULT_LDO_FOLDER = "./.ldo";

@ -164,8 +164,8 @@ library.
```typescript ```typescript
import { FunctionComponent } from "react"; import { FunctionComponent } from "react";
import { PostShShapeType } from "./.ldo/post.shapeTypes"; import { PostShShapeType } from "./.ldo/post.shapeTypes.js";
import { useResource, useSubject } from "./reactMethods"; import { useResource, useSubject } from "./reactMethods.js";
export const UseSubjectTest: FunctionComponent = () => { export const UseSubjectTest: FunctionComponent = () => {
useResource("did:ng:SOME_URI"); useResource("did:ng:SOME_URI");

@ -1 +0,0 @@
module.exports = { presets: ["@babel/preset-env"] };

@ -1,10 +0,0 @@
// eslint-disable-next-line @typescript-eslint/no-var-requires
const sharedConfig = require("../../jest.config.js");
module.exports = {
...sharedConfig,
rootDir: "./",
transform: {
"^.+\\.(ts|tsx)?$": "ts-jest",
"^.+\\.(js|jsx)$": "babel-jest",
},
};

@ -1,32 +1,44 @@
{ {
"name": "@ldo/connected-nextgraph", "name": "@ldo/connected-nextgraph",
"version": "1.0.0-alpha.9", "version": "1.0.0-alpha.12",
"description": "A plugin for @ldo/connected to work with the Solid ecosystem.", "description": "A plugin for @ldo/connected to work with the Solid ecosystem.",
"main": "dist/index.js", "type": "module",
"main": "./dist/cjs/index.js",
"module": "./dist/esm/index.js",
"types": "./dist/types/index.d.ts",
"exports": {
".": {
"types": "./dist/types/index.d.ts",
"import": "./dist/esm/index.js",
"require": "./dist/cjs/index.js"
},
"./package.json": "./package.json"
},
"scripts": { "scripts": {
"build": "tsc --project tsconfig.build.json", "build": "rimraf dist && npm run build:cjs && npm run build:esm",
"watch": "tsc --watch", "build:cjs": "tsc --project tsconfig.cjs.json",
"build:esm": "tsc --project tsconfig.esm.json",
"test": "npm run test:integration", "test": "npm run test:integration",
"prepublishOnly": "npm run test && npm run build", "prepublishOnly": " npm run build",
"lint": "eslint src/** --fix --no-error-on-unmatched-pattern", "lint": "eslint src/** --fix --no-error-on-unmatched-pattern",
"docs": "typedoc --plugin typedoc-plugin-markdown", "docs": "typedoc --plugin typedoc-plugin-markdown",
"start-test-server": "./test/ngd -vv --save-key -l 14400 --base ./test/nextgraph-data", "start-test-server": "./test/ngd -vv --save-key -l 14400 --base ./test/nextgraph-data",
"start-integration-test": "jest --coverage", "start-integration-test": "vitest run --coverage",
"test:integration": "start-server-and-test start-test-server http-get://localhost:14400 start-integration-test" "test:integration": "start-server-and-test start-test-server http-get://localhost:14400 start-integration-test"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/o-development/ldobjects.git" "url": "git+https://github.com/o-development/ldo.git"
}, },
"author": "Jackson Morgan", "author": "Jackson Morgan",
"license": "MIT", "license": "MIT",
"bugs": { "bugs": {
"url": "https://github.com/o-development/ldobjects/issues" "url": "https://github.com/o-development/ldo/issues"
}, },
"homepage": "https://github.com/o-development/ldobjects/tree/main/packages/solid#readme", "homepage": "https://github.com/o-development/ldo/tree/main/packages/solid#readme",
"devDependencies": { "devDependencies": {
"@inrupt/solid-client-authn-core": "^2.2.6", "@inrupt/solid-client-authn-core": "^2.2.6",
"@ldo/cli": "^1.0.0-alpha.9", "@ldo/cli": "^1.0.0-alpha.11",
"@rdfjs/data-model": "^1.2.0", "@rdfjs/data-model": "^1.2.0",
"@rdfjs/types": "^1.0.1", "@rdfjs/types": "^1.0.1",
"@solid-notifications/types": "^0.1.2", "@solid-notifications/types": "^0.1.2",
@ -42,10 +54,10 @@
"typedoc-plugin-markdown": "^3.17.1" "typedoc-plugin-markdown": "^3.17.1"
}, },
"dependencies": { "dependencies": {
"@ldo/connected": "^1.0.0-alpha.9", "@ldo/connected": "^1.0.0-alpha.12",
"@ldo/dataset": "^1.0.0-alpha.9", "@ldo/dataset": "^1.0.0-alpha.11",
"@ldo/ldo": "^1.0.0-alpha.9", "@ldo/ldo": "^1.0.0-alpha.11",
"@ldo/rdf-utils": "^1.0.0-alpha.9", "@ldo/rdf-utils": "^1.0.0-alpha.11",
"@solid-notifications/subscription": "^0.1.2", "@solid-notifications/subscription": "^0.1.2",
"cross-fetch": "^3.1.6", "cross-fetch": "^3.1.6",
"http-link-header": "^1.1.1", "http-link-header": "^1.1.1",
@ -57,5 +69,6 @@
], ],
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
} },
"gitHead": "840910c56ec3f61416f031cc76771a5673af6757"
} }

@ -1,7 +1,7 @@
import type { ConnectedContext, ConnectedPlugin } from "@ldo/connected"; import type { ConnectedContext, ConnectedPlugin } from "@ldo/connected";
import type { NextGraphUri } from "./types"; import type { NextGraphUri } from "./types.js";
import { NextGraphResource } from "./resources/NextGraphResource"; import { NextGraphResource } from "./resources/NextGraphResource.js";
import { isNextGraphUri } from "./util/isNextGraphUri"; import { isNextGraphUri } from "./util/isNextGraphUri.js";
export interface NextGraphConnectedContext { export interface NextGraphConnectedContext {
// NG does not have a type definition // NG does not have a type definition

@ -1,5 +1,5 @@
import { ConnectedLdoDataset } from "@ldo/connected"; import { ConnectedLdoDataset } from "@ldo/connected";
import { nextGraphConnectedPlugin } from "./NextGraphConnectedPlugin"; import { nextGraphConnectedPlugin } from "./NextGraphConnectedPlugin.js";
import { createDatasetFactory } from "@ldo/dataset"; import { createDatasetFactory } from "@ldo/dataset";
import { createTransactionDatasetFactory } from "@ldo/subscribable-dataset"; import { createTransactionDatasetFactory } from "@ldo/subscribable-dataset";

@ -1,10 +1,10 @@
export * from "./types"; export * from "./types.js";
export * from "./NextGraphConnectedPlugin"; export * from "./NextGraphConnectedPlugin.js";
export * from "./resources/NextGraphResource"; export * from "./resources/NextGraphResource.js";
export * from "./util/isNextGraphUri"; export * from "./util/isNextGraphUri.js";
export * from "./results/NextGraphReadSuccess"; export * from "./results/NextGraphReadSuccess.js";
export * from "./createNextGraphLdoDataset"; export * from "./createNextGraphLdoDataset.js";

@ -1,6 +1,6 @@
import { NotificationSubscription } from "@ldo/connected"; import { NotificationSubscription } from "@ldo/connected";
import type { NextGraphConnectedPlugin } from "../NextGraphConnectedPlugin"; import type { NextGraphConnectedPlugin } from "../NextGraphConnectedPlugin.js";
import type { NextGraphNotificationMessage } from "./NextGraphNotificationMessage"; import type { NextGraphNotificationMessage } from "./NextGraphNotificationMessage.js";
export class NextGraphNotificationSubscription extends NotificationSubscription< export class NextGraphNotificationSubscription extends NotificationSubscription<
NextGraphConnectedPlugin, NextGraphConnectedPlugin,

@ -10,15 +10,15 @@ import {
type Resource, type Resource,
type ResourceEventEmitter, type ResourceEventEmitter,
} from "@ldo/connected"; } from "@ldo/connected";
import type { NextGraphUri } from "../types"; import type { NextGraphUri } from "../types.js";
import EventEmitter from "events"; import EventEmitter from "events";
import type { NextGraphConnectedPlugin } from "../NextGraphConnectedPlugin"; import type { NextGraphConnectedPlugin } from "../NextGraphConnectedPlugin.js";
import { changesToSparqlUpdate, type DatasetChanges } from "@ldo/rdf-utils"; import { changesToSparqlUpdate, type DatasetChanges } from "@ldo/rdf-utils";
import type { NextGraphNotificationMessage } from "../notifications/NextGraphNotificationMessage"; import type { NextGraphNotificationMessage } from "../notifications/NextGraphNotificationMessage.js";
import type { Dataset, Quad } from "@rdfjs/types"; import type { Dataset, Quad } from "@rdfjs/types";
import { namedNode, quad as createQuad } from "@rdfjs/data-model"; import { namedNode, quad as createQuad } from "@rdfjs/data-model";
import { NextGraphReadSuccess } from "../results/NextGraphReadSuccess"; import { NextGraphReadSuccess } from "../results/NextGraphReadSuccess.js";
import { NextGraphNotificationSubscription } from "../notifications/NextGraphNotificationSubscription"; import { NextGraphNotificationSubscription } from "../notifications/NextGraphNotificationSubscription.js";
import { parseRdf } from "@ldo/ldo"; import { parseRdf } from "@ldo/ldo";
import type { LdoDataset } from "@ldo/ldo"; import type { LdoDataset } from "@ldo/ldo";
import { createDataset } from "@ldo/dataset"; import { createDataset } from "@ldo/dataset";

@ -1,5 +1,5 @@
import { ReadSuccess } from "@ldo/connected"; import { ReadSuccess } from "@ldo/connected";
import type { NextGraphResource } from "../resources/NextGraphResource"; import type { NextGraphResource } from "../resources/NextGraphResource.js";
export class NextGraphReadSuccess extends ReadSuccess<NextGraphResource> { export class NextGraphReadSuccess extends ReadSuccess<NextGraphResource> {
type = "nextGraphReadSuccess" as const; type = "nextGraphReadSuccess" as const;

@ -1,4 +1,4 @@
import type { NextGraphUri } from "../types"; import type { NextGraphUri } from "../types.js";
/** /**
* Checks if a provided string is a leaf URI * Checks if a provided string is a leaf URI

@ -4,13 +4,14 @@ import type {
NextGraphConnectedPlugin, NextGraphConnectedPlugin,
NextGraphResource, NextGraphResource,
NextGraphUri, NextGraphUri,
} from "../src"; } from "../src/index.js";
import { createNextGraphLdoDataset } from "../src/createNextGraphLdoDataset"; import { createNextGraphLdoDataset } from "../src/createNextGraphLdoDataset.js";
import { parseRdf } from "@ldo/ldo"; import { parseRdf } from "@ldo/ldo";
import { namedNode } from "@rdfjs/data-model"; import { namedNode } from "@rdfjs/data-model";
import type { NextGraphReadSuccess } from "../src/results/NextGraphReadSuccess"; import type { NextGraphReadSuccess } from "../src/results/NextGraphReadSuccess.js";
import { rm, cp } from "fs/promises"; import { rm, cp } from "fs/promises";
import path from "path"; import path from "path";
import { describe, it, expect, beforeEach, afterAll } from "vitest";
const SAMPLE_TTL = `@base <http://example.org/> . const SAMPLE_TTL = `@base <http://example.org/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

@ -1,7 +0,0 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"outDir": "./dist",
},
"include": ["./src"]
}

@ -0,0 +1,10 @@
{
"extends": "../../tsconfig.cjs.json",
"compilerOptions": {
"outDir": "./dist/cjs",
"rootDir": "./src"
},
"include": [
"src"
]
}

@ -0,0 +1,11 @@
{
"extends": "../../tsconfig.esm.json",
"compilerOptions": {
"outDir": "./dist/esm",
"rootDir": "./src",
"declarationDir": "./dist/types"
},
"include": [
"src"
]
}

@ -0,0 +1,9 @@
import { defineConfig } from "vitest/config";
export default defineConfig({
test: {
coverage: {
provider: "istanbul",
},
},
});

@ -36,8 +36,8 @@ Below is a simple example of @ldo/solid. Assume that a ShapeType was previously
import { changeData, commitData } from "@ldo/connected"; import { changeData, commitData } from "@ldo/connected";
import { createSolidLdoDataset } from "@ldo/solid"; import { createSolidLdoDataset } from "@ldo/solid";
import { fetch, getDefaultSession } from "@inrupt/solid-client-authn-browser"; import { fetch, getDefaultSession } from "@inrupt/solid-client-authn-browser";
import { FoafProfileShapeType } from "./.ldo/foafProfile.shapeTypes"; import { FoafProfileShapeType } from "./.ldo/foafProfile.shapeTypes.js";
import { SocialMediaPostShapeType } from "./.ldo/socialMediaPost.shapeTypes"; import { SocialMediaPostShapeType } from "./.ldo/socialMediaPost.shapeTypes.js";
async function main() { async function main() {
/** /**

@ -1 +0,0 @@
module.exports = { presets: ["@babel/preset-env"] };

@ -0,0 +1,9 @@
/* eslint-disable @typescript-eslint/no-var-requires */
// packages/connected-solid/jest.config.cjs
const sharedConfig = require("../../jest.esm.config.js");
module.exports = {
...sharedConfig,
rootDir: "./",
collectCoverageFrom: ["src/**/*.ts", "!src/**/*.d.ts"],
};

@ -1,10 +0,0 @@
// eslint-disable-next-line @typescript-eslint/no-var-requires
const sharedConfig = require("../../jest.config.js");
module.exports = {
...sharedConfig,
rootDir: "./",
transform: {
"^.+\\.(ts|tsx)?$": "ts-jest",
"^.+\\.(js|jsx)$": "babel-jest",
},
};

@ -1,47 +1,57 @@
{ {
"name": "@ldo/connected-solid", "name": "@ldo/connected-solid",
"version": "1.0.0-alpha.9", "version": "1.0.0-alpha.12",
"description": "A plugin for @ldo/connected to work with the Solid ecosystem.", "description": "A plugin for @ldo/connected to work with the Solid ecosystem.",
"main": "dist/index.js", "type": "module",
"main": "./dist/cjs/index.js",
"module": "./dist/esm/index.js",
"types": "./dist/types/index.d.ts",
"exports": {
".": {
"types": "./dist/types/index.d.ts",
"import": "./dist/esm/index.js",
"require": "./dist/cjs/index.js"
},
"./package.json": "./package.json"
},
"scripts": { "scripts": {
"build": "tsc --project tsconfig.build.json", "build": "rimraf dist && npm run build:cjs && npm run build:esm",
"watch": "tsc --project tsconfig.build.json --watch", "build:cjs": "tsc --project tsconfig.cjs.json",
"test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --coverage", "build:esm": "tsc --project tsconfig.esm.json",
"test:watch": "jest --watch", "test": "vitest run --coverage",
"prepublishOnly": "npm run test && npm run build", "prepublishOnly": " npm run build",
"build:ldo": "ldo build --input src/.shapes --output src/.ldo", "build:ldo": "ldo build --input src/.shapes --output src/.ldo",
"lint": "eslint src/** --fix --no-error-on-unmatched-pattern", "lint": "eslint src/** --fix --no-error-on-unmatched-pattern",
"docs": "typedoc --plugin typedoc-plugin-markdown" "docs": "typedoc --plugin typedoc-plugin-markdown"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/o-development/ldobjects.git" "url": "git+https://github.com/o-development/ldo.git"
}, },
"author": "Jackson Morgan", "author": "Jackson Morgan",
"license": "MIT", "license": "MIT",
"bugs": { "bugs": {
"url": "https://github.com/o-development/ldobjects/issues" "url": "https://github.com/o-development/ldo/issues"
}, },
"homepage": "https://github.com/o-development/ldobjects/tree/main/packages/solid#readme", "homepage": "https://github.com/o-development/ldo/tree/main/packages/solid#readme",
"devDependencies": { "devDependencies": {
"@inrupt/solid-client-authn-core": "^2.2.6", "@inrupt/solid-client-authn-core": "^2.2.6",
"@ldo/cli": "^1.0.0-alpha.9", "@ldo/cli": "^1.0.0-alpha.11",
"@ldo/test-solid-server": "^1.0.0-alpha.9", "@ldo/test-solid-server": "^1.0.0-alpha.12",
"@rdfjs/data-model": "^1.2.0", "@rdfjs/data-model": "^1.2.0",
"@rdfjs/types": "^1.0.1", "@rdfjs/types": "^1.0.1",
"@solid-notifications/types": "^0.1.2", "@solid-notifications/types": "^0.1.2",
"@solid/community-server": "^7.1.3", "@solid/community-server": "^7.1.3",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"jest-rdf": "^1.8.0",
"ts-node": "^10.9.1", "ts-node": "^10.9.1",
"typed-emitter": "^2.1.0", "typed-emitter": "^2.1.0",
"typedoc": "^0.25.4", "typedoc": "^0.25.4",
"typedoc-plugin-markdown": "^3.17.1" "typedoc-plugin-markdown": "^3.17.1"
}, },
"dependencies": { "dependencies": {
"@ldo/dataset": "^1.0.0-alpha.9", "@ldo/dataset": "^1.0.0-alpha.11",
"@ldo/ldo": "^1.0.0-alpha.9", "@ldo/ldo": "^1.0.0-alpha.11",
"@ldo/rdf-utils": "^1.0.0-alpha.9", "@ldo/rdf-utils": "^1.0.0-alpha.11",
"@solid-notifications/subscription": "^0.1.2", "@solid-notifications/subscription": "^0.1.2",
"cross-fetch": "^3.1.6", "cross-fetch": "^3.1.6",
"http-link-header": "^1.1.1", "http-link-header": "^1.1.1",
@ -53,5 +63,6 @@
], ],
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
} },
"gitHead": "840910c56ec3f61416f031cc76771a5673af6757"
} }

@ -1,7 +1,7 @@
import { ShapeType } from "@ldo/ldo"; import { ShapeType } from "@ldo/ldo";
import { solidSchema } from "./solid.schema"; import { solidSchema } from "./solid.schema.js";
import { solidContext } from "./solid.context"; import { solidContext } from "./solid.context.js";
import { Container, Resource, ProfileWithStorage } from "./solid.typings"; import { Container, Resource, ProfileWithStorage } from "./solid.typings.js";
/** /**
* ============================================================================= * =============================================================================

@ -1,7 +1,7 @@
import { ShapeType } from "@ldo/ldo"; import { ShapeType } from "@ldo/ldo";
import { wacSchema } from "./wac.schema"; import { wacSchema } from "./wac.schema.js";
import { wacContext } from "./wac.context"; import { wacContext } from "./wac.context.js";
import { Authorization } from "./wac.typings"; import { Authorization } from "./wac.typings.js";
/** /**
* ============================================================================= * =============================================================================

@ -1,8 +1,8 @@
import type { ConnectedContext, ConnectedPlugin } from "@ldo/connected"; import type { ConnectedContext, ConnectedPlugin } from "@ldo/connected";
import type { SolidContainerUri, SolidLeafUri, SolidUri } from "./types"; import type { SolidContainerUri, SolidLeafUri, SolidUri } from "./types.js";
import { SolidLeaf } from "./resources/SolidLeaf"; import { SolidLeaf } from "./resources/SolidLeaf.js";
import { SolidContainer } from "./resources/SolidContainer"; import { SolidContainer } from "./resources/SolidContainer.js";
import { isSolidContainerUri, isSolidUri } from "./util/isSolidUri"; import { isSolidContainerUri, isSolidUri } from "./util/isSolidUri.js";
/** /**
* The Type of the SolidConnectedContext * The Type of the SolidConnectedContext

@ -1,5 +1,5 @@
import { ConnectedLdoDataset } from "@ldo/connected"; import { ConnectedLdoDataset } from "@ldo/connected";
import { solidConnectedPlugin } from "./SolidConnectedPlugin"; import { solidConnectedPlugin } from "./SolidConnectedPlugin.js";
import { createDatasetFactory } from "@ldo/dataset"; import { createDatasetFactory } from "@ldo/dataset";
import { createTransactionDatasetFactory } from "@ldo/subscribable-dataset"; import { createTransactionDatasetFactory } from "@ldo/subscribable-dataset";

@ -1,14 +1,14 @@
/* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-explicit-any */
import type { ConnectedLdoDataset, ConnectedPlugin } from "@ldo/connected"; import type { ConnectedLdoDataset, ConnectedPlugin } from "@ldo/connected";
import type { SolidContainerUri, SolidLeafUri } from "./types"; import type { SolidContainerUri, SolidLeafUri } from "./types.js";
import { GetStorageContainerFromWebIdSuccess } from "./requester/results/success/CheckRootContainerSuccess"; import { GetStorageContainerFromWebIdSuccess } from "./requester/results/success/CheckRootContainerSuccess.js";
import type { CheckRootResultError } from "./requester/requests/checkRootContainer"; import type { CheckRootResultError } from "./requester/requests/checkRootContainer.js";
import type { ReadResultError } from "./requester/requests/readResource"; import type { ReadResultError } from "./requester/requests/readResource.js";
import type { NoRootContainerError } from "./requester/results/error/NoRootContainerError"; import type { NoRootContainerError } from "./requester/results/error/NoRootContainerError.js";
import type { SolidLeaf } from "./resources/SolidLeaf"; import type { SolidLeaf } from "./resources/SolidLeaf.js";
import type { SolidContainer } from "./resources/SolidContainer"; import type { SolidContainer } from "./resources/SolidContainer.js";
import type { SolidConnectedPlugin } from "./SolidConnectedPlugin"; import type { SolidConnectedPlugin } from "./SolidConnectedPlugin.js";
import { ProfileWithStorageShapeType } from "./.ldo/solid.shapeTypes"; import { ProfileWithStorageShapeType } from "./.ldo/solid.shapeTypes.js";
/** /**
* Gets a list of root storage containers for a user given their WebId * Gets a list of root storage containers for a user given their WebId

@ -1,50 +1,50 @@
export * from "./types"; export * from "./types.js";
export * from "./SolidConnectedPlugin"; export * from "./SolidConnectedPlugin.js";
export * from "./createSolidLdoDataset"; export * from "./createSolidLdoDataset.js";
export * from "./getStorageFromWebId"; export * from "./getStorageFromWebId.js";
export * from "./resources/SolidResource"; export * from "./resources/SolidResource.js";
export * from "./resources/SolidContainer"; export * from "./resources/SolidContainer.js";
export * from "./resources/SolidLeaf"; export * from "./resources/SolidLeaf.js";
export * from "./requester/BatchedRequester"; export * from "./requester/BatchedRequester.js";
export * from "./requester/ContainerBatchedRequester"; export * from "./requester/ContainerBatchedRequester.js";
export * from "./requester/LeafBatchedRequester"; export * from "./requester/LeafBatchedRequester.js";
export * from "./requester/requests/checkRootContainer"; export * from "./requester/requests/checkRootContainer.js";
export * from "./requester/requests/createDataResource"; export * from "./requester/requests/createDataResource.js";
export * from "./requester/requests/deleteResource"; export * from "./requester/requests/deleteResource.js";
export * from "./requester/requests/readResource"; export * from "./requester/requests/readResource.js";
export * from "./requester/requests/requestOptions"; export * from "./requester/requests/requestOptions.js";
export * from "./requester/requests/updateDataResource"; export * from "./requester/requests/updateDataResource.js";
export * from "./requester/requests/uploadResource"; export * from "./requester/requests/uploadResource.js";
export * from "./requester/results/success/CheckRootContainerSuccess"; export * from "./requester/results/success/CheckRootContainerSuccess.js";
export * from "./requester/results/success/CreateSuccess"; export * from "./requester/results/success/CreateSuccess.js";
export * from "./requester/results/success/DeleteSuccess"; export * from "./requester/results/success/DeleteSuccess.js";
export * from "./requester/results/success/SolidReadSuccess"; export * from "./requester/results/success/SolidReadSuccess.js";
export * from "./requester/results/error/AccessControlError"; export * from "./requester/results/error/AccessControlError.js";
export * from "./requester/results/error/HttpErrorResult"; export * from "./requester/results/error/HttpErrorResult.js";
export * from "./requester/results/error/NoRootContainerError"; export * from "./requester/results/error/NoRootContainerError.js";
export * from "./requester/results/error/NoncompliantPodError"; export * from "./requester/results/error/NoncompliantPodError.js";
export * from "./requester/util/modifyQueueFuntions"; export * from "./requester/util/modifyQueueFuntions.js";
export * from "./util/isSolidUri"; export * from "./util/isSolidUri.js";
export * from "./util/guaranteeFetch"; export * from "./util/guaranteeFetch.js";
export * from "./util/rdfUtils"; export * from "./util/rdfUtils.js";
export * from "./util/RequestBatcher"; export * from "./util/RequestBatcher.js";
export * from "./wac/getWacRule"; export * from "./wac/getWacRule.js";
export * from "./wac/getWacUri"; export * from "./wac/getWacUri.js";
export * from "./wac/setWacRule"; export * from "./wac/setWacRule.js";
export * from "./wac/WacRule"; export * from "./wac/WacRule.js";
export * from "./wac/results/GetWacRuleSuccess"; export * from "./wac/results/GetWacRuleSuccess.js";
export * from "./wac/results/GetWacUriSuccess"; export * from "./wac/results/GetWacUriSuccess.js";
export * from "./wac/results/SetWacRuleSuccess"; export * from "./wac/results/SetWacRuleSuccess.js";
export * from "./wac/results/WacRuleAbsent"; export * from "./wac/results/WacRuleAbsent.js";
export * from "./notifications/SolidNotificationMessage"; export * from "./notifications/SolidNotificationMessage.js";
export * from "./notifications/Websocket2023NotificationSubscription"; export * from "./notifications/Websocket2023NotificationSubscription.js";
export * from "./notifications/results/NotificationErrors"; export * from "./notifications/results/NotificationErrors.js";

@ -4,18 +4,18 @@ import {
DisconnectedAttemptingReconnectError, DisconnectedAttemptingReconnectError,
DisconnectedNotAttemptingReconnectError, DisconnectedNotAttemptingReconnectError,
UnsupportedNotificationError, UnsupportedNotificationError,
} from "./results/NotificationErrors"; } from "./results/NotificationErrors.js";
import type { SolidNotificationMessage } from "./SolidNotificationMessage"; import type { SolidNotificationMessage } from "./SolidNotificationMessage.js";
import { UnexpectedResourceError, type ConnectedContext } from "@ldo/connected"; import { UnexpectedResourceError, type ConnectedContext } from "@ldo/connected";
import type { import type {
ChannelType, ChannelType,
NotificationChannel, NotificationChannel,
} from "@solid-notifications/types"; } from "@solid-notifications/types";
import { NotificationSubscription } from "@ldo/connected"; import { NotificationSubscription } from "@ldo/connected";
import type { SolidConnectedPlugin } from "../SolidConnectedPlugin"; import type { SolidConnectedPlugin } from "../SolidConnectedPlugin.js";
import type { SolidLeaf } from "../resources/SolidLeaf"; import type { SolidLeaf } from "../resources/SolidLeaf.js";
import type { SolidContainer } from "../resources/SolidContainer"; import type { SolidContainer } from "../resources/SolidContainer.js";
import { guaranteeFetch } from "../util/guaranteeFetch"; import { guaranteeFetch } from "../util/guaranteeFetch.js";
const CHANNEL_TYPE = const CHANNEL_TYPE =
"http://www.w3.org/ns/solid/notifications#WebSocketChannel2023"; "http://www.w3.org/ns/solid/notifications#WebSocketChannel2023";

@ -1,23 +1,23 @@
import { ANY_KEY, RequestBatcher } from "../util/RequestBatcher"; import { ANY_KEY, RequestBatcher } from "../util/RequestBatcher.js";
import type { ConnectedContext } from "@ldo/connected"; import type { ConnectedContext } from "@ldo/connected";
import type { import type {
ContainerCreateAndOverwriteResult, ContainerCreateAndOverwriteResult,
ContainerCreateIfAbsentResult, ContainerCreateIfAbsentResult,
LeafCreateAndOverwriteResult, LeafCreateAndOverwriteResult,
LeafCreateIfAbsentResult, LeafCreateIfAbsentResult,
} from "./requests/createDataResource"; } from "./requests/createDataResource.js";
import { createDataResource } from "./requests/createDataResource"; import { createDataResource } from "./requests/createDataResource.js";
import type { import type {
ReadContainerResult, ReadContainerResult,
ReadLeafResult, ReadLeafResult,
} from "./requests/readResource"; } from "./requests/readResource.js";
import { readResource } from "./requests/readResource"; import { readResource } from "./requests/readResource.js";
import type { DeleteResult } from "./requests/deleteResource"; import type { DeleteResult } from "./requests/deleteResource.js";
import { deleteResource } from "./requests/deleteResource"; import { deleteResource } from "./requests/deleteResource.js";
import { modifyQueueByMergingEventsWithTheSameKeys } from "./util/modifyQueueFuntions"; import { modifyQueueByMergingEventsWithTheSameKeys } from "./util/modifyQueueFuntions.js";
import type { SolidConnectedPlugin } from "../SolidConnectedPlugin"; import type { SolidConnectedPlugin } from "../SolidConnectedPlugin.js";
import type { SolidContainer } from "../resources/SolidContainer"; import type { SolidContainer } from "../resources/SolidContainer.js";
import type { SolidLeaf } from "../resources/SolidLeaf"; import type { SolidLeaf } from "../resources/SolidLeaf.js";
const READ_KEY = "read"; const READ_KEY = "read";
const CREATE_KEY = "createDataResource"; const CREATE_KEY = "createDataResource";

@ -1,15 +1,15 @@
import type { ConnectedContext } from "@ldo/connected"; import type { ConnectedContext } from "@ldo/connected";
import type { SolidContainer } from "../resources/SolidContainer"; import type { SolidContainer } from "../resources/SolidContainer.js";
import { BatchedRequester } from "./BatchedRequester"; import { BatchedRequester } from "./BatchedRequester.js";
import type { CheckRootResult } from "./requests/checkRootContainer"; import type { CheckRootResult } from "./requests/checkRootContainer.js";
import { checkRootContainer } from "./requests/checkRootContainer"; import { checkRootContainer } from "./requests/checkRootContainer.js";
import type { import type {
ContainerCreateAndOverwriteResult, ContainerCreateAndOverwriteResult,
ContainerCreateIfAbsentResult, ContainerCreateIfAbsentResult,
} from "./requests/createDataResource"; } from "./requests/createDataResource.js";
import type { ReadContainerResult } from "./requests/readResource"; import type { ReadContainerResult } from "./requests/readResource.js";
import { modifyQueueByMergingEventsWithTheSameKeys } from "./util/modifyQueueFuntions"; import { modifyQueueByMergingEventsWithTheSameKeys } from "./util/modifyQueueFuntions.js";
import type { SolidConnectedPlugin } from "../SolidConnectedPlugin"; import type { SolidConnectedPlugin } from "../SolidConnectedPlugin.js";
export const IS_ROOT_CONTAINER_KEY = "isRootContainer"; export const IS_ROOT_CONTAINER_KEY = "isRootContainer";

@ -1,18 +1,18 @@
import type { DatasetChanges } from "@ldo/rdf-utils"; import type { DatasetChanges } from "@ldo/rdf-utils";
import { mergeDatasetChanges } from "@ldo/subscribable-dataset"; import { mergeDatasetChanges } from "@ldo/subscribable-dataset";
import type { Quad } from "@rdfjs/types"; import type { Quad } from "@rdfjs/types";
import { BatchedRequester } from "./BatchedRequester"; import { BatchedRequester } from "./BatchedRequester.js";
import type { import type {
LeafCreateAndOverwriteResult, LeafCreateAndOverwriteResult,
LeafCreateIfAbsentResult, LeafCreateIfAbsentResult,
} from "./requests/createDataResource"; } from "./requests/createDataResource.js";
import type { ReadLeafResult } from "./requests/readResource"; import type { ReadLeafResult } from "./requests/readResource.js";
import type { UpdateResult } from "./requests/updateDataResource"; import type { UpdateResult } from "./requests/updateDataResource.js";
import { updateDataResource } from "./requests/updateDataResource"; import { updateDataResource } from "./requests/updateDataResource.js";
import { uploadResource } from "./requests/uploadResource"; import { uploadResource } from "./requests/uploadResource.js";
import type { SolidLeaf } from "../resources/SolidLeaf"; import type { SolidLeaf } from "../resources/SolidLeaf.js";
import type { ConnectedContext } from "@ldo/connected"; import type { ConnectedContext } from "@ldo/connected";
import type { SolidConnectedPlugin } from "../SolidConnectedPlugin"; import type { SolidConnectedPlugin } from "../SolidConnectedPlugin.js";
export const UPDATE_KEY = "update"; export const UPDATE_KEY = "update";
export const UPLOAD_KEY = "upload"; export const UPLOAD_KEY = "upload";

@ -1,14 +1,14 @@
import type { BasicRequestOptions } from "./requestOptions"; import type { BasicRequestOptions } from "./requestOptions.js";
import { parse as parseLinkHeader } from "http-link-header"; import { parse as parseLinkHeader } from "http-link-header";
import { CheckRootContainerSuccess } from "../results/success/CheckRootContainerSuccess"; import { CheckRootContainerSuccess } from "../results/success/CheckRootContainerSuccess.js";
import type { import type {
HttpErrorResultType, HttpErrorResultType,
UnexpectedHttpError, UnexpectedHttpError,
} from "../results/error/HttpErrorResult"; } from "../results/error/HttpErrorResult.js";
import { HttpErrorResult } from "../results/error/HttpErrorResult"; import { HttpErrorResult } from "../results/error/HttpErrorResult.js";
import { UnexpectedResourceError } from "@ldo/connected"; import { UnexpectedResourceError } from "@ldo/connected";
import type { SolidContainer } from "../../resources/SolidContainer"; import type { SolidContainer } from "../../resources/SolidContainer.js";
import { guaranteeFetch } from "../../util/guaranteeFetch"; import { guaranteeFetch } from "../../util/guaranteeFetch.js";
/** /**
* checkRootContainer result * checkRootContainer result

@ -1,26 +1,26 @@
/* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-explicit-any */
import { guaranteeFetch } from "../../util/guaranteeFetch"; import { guaranteeFetch } from "../../util/guaranteeFetch.js";
import {
addResourceRdfToContainer,
getParentUri,
getSlug,
} from "../../util/rdfUtils";
import type { AbsentReadSuccess, Resource } from "@ldo/connected"; import type { AbsentReadSuccess, Resource } from "@ldo/connected";
import { UnexpectedResourceError } from "@ldo/connected"; import { UnexpectedResourceError } from "@ldo/connected";
import type { HttpErrorResultType } from "../results/error/HttpErrorResult"; import type { HttpErrorResultType } from "../results/error/HttpErrorResult.js";
import { HttpErrorResult } from "../results/error/HttpErrorResult"; import { HttpErrorResult } from "../results/error/HttpErrorResult.js";
import { CreateSuccess } from "../results/success/CreateSuccess"; import { CreateSuccess } from "../results/success/CreateSuccess.js";
import type { DeleteResultError } from "./deleteResource"; import type { DeleteResultError } from "./deleteResource.js";
import { deleteResource } from "./deleteResource"; import { deleteResource } from "./deleteResource.js";
import type { import type {
ReadContainerResult, ReadContainerResult,
ReadLeafResult, ReadLeafResult,
ReadResultError, ReadResultError,
} from "./readResource"; } from "./readResource.js";
import { readResource } from "./readResource"; import { readResource } from "./readResource.js";
import type { DatasetRequestOptions } from "./requestOptions"; import type { DatasetRequestOptions } from "./requestOptions.js";
import type { SolidLeaf } from "../../resources/SolidLeaf"; import type { SolidLeaf } from "../../resources/SolidLeaf.js";
import type { SolidContainer } from "../../resources/SolidContainer"; import type { SolidContainer } from "../../resources/SolidContainer.js";
import {
addResourceRdfToContainer,
getParentUri,
getSlug,
} from "../../util/rdfUtils.js";
/** /**
* All possible return values when creating and overwriting a container * All possible return values when creating and overwriting a container

@ -1,17 +1,17 @@
import { namedNode } from "@rdfjs/data-model"; import { namedNode } from "@rdfjs/data-model";
import { guaranteeFetch } from "../../util/guaranteeFetch"; import { guaranteeFetch } from "../../util/guaranteeFetch.js";
import { deleteResourceRdfFromContainer } from "../../util/rdfUtils"; import { deleteResourceRdfFromContainer } from "../../util/rdfUtils.js";
import type { Resource } from "@ldo/connected"; import type { Resource } from "@ldo/connected";
import { UnexpectedResourceError } from "@ldo/connected"; import { UnexpectedResourceError } from "@ldo/connected";
import type { HttpErrorResultType } from "../results/error/HttpErrorResult"; import type { HttpErrorResultType } from "../results/error/HttpErrorResult.js";
import { UnexpectedHttpError } from "../results/error/HttpErrorResult"; import { UnexpectedHttpError } from "../results/error/HttpErrorResult.js";
import { HttpErrorResult } from "../results/error/HttpErrorResult"; import { HttpErrorResult } from "../results/error/HttpErrorResult.js";
import { DeleteSuccess } from "../results/success/DeleteSuccess"; import { DeleteSuccess } from "../results/success/DeleteSuccess.js";
import type { DatasetRequestOptions } from "./requestOptions"; import type { DatasetRequestOptions } from "./requestOptions.js";
import type { IBulkEditableDataset } from "@ldo/subscribable-dataset"; import type { IBulkEditableDataset } from "@ldo/subscribable-dataset";
import type { Quad } from "@rdfjs/types"; import type { Quad } from "@rdfjs/types";
import type { SolidContainer } from "../../resources/SolidContainer"; import type { SolidContainer } from "../../resources/SolidContainer.js";
import type { SolidLeaf } from "../../resources/SolidLeaf"; import type { SolidLeaf } from "../../resources/SolidLeaf.js";
/** /**
* All possible return values for deleteResource * All possible return values for deleteResource

@ -1,26 +1,26 @@
import type { UnexpectedHttpError } from "../results/error/HttpErrorResult"; import type { UnexpectedHttpError } from "../results/error/HttpErrorResult.js";
import { import {
HttpErrorResult, HttpErrorResult,
type HttpErrorResultType, type HttpErrorResultType,
} from "../results/error/HttpErrorResult"; } from "../results/error/HttpErrorResult.js";
import { import type { DatasetRequestOptions } from "./requestOptions.js";
addRawTurtleToDataset,
addResourceRdfToContainer,
} from "../../util/rdfUtils";
import type { DatasetRequestOptions } from "./requestOptions";
import { import {
BinaryReadSuccess, BinaryReadSuccess,
DataReadSuccess, DataReadSuccess,
} from "../results/success/SolidReadSuccess"; } from "../results/success/SolidReadSuccess.js";
import { ContainerReadSuccess } from "../results/success/SolidReadSuccess"; import { ContainerReadSuccess } from "../results/success/SolidReadSuccess.js";
import { NoncompliantPodError } from "../results/error/NoncompliantPodError"; import { NoncompliantPodError } from "../results/error/NoncompliantPodError.js";
import { guaranteeFetch } from "../../util/guaranteeFetch"; import { guaranteeFetch } from "../../util/guaranteeFetch.js";
import type { Resource } from "@ldo/connected"; import type { Resource } from "@ldo/connected";
import { UnexpectedResourceError, AbsentReadSuccess } from "@ldo/connected"; import { UnexpectedResourceError, AbsentReadSuccess } from "@ldo/connected";
import { checkHeadersForRootContainer } from "./checkRootContainer"; import { checkHeadersForRootContainer } from "./checkRootContainer.js";
import { namedNode } from "@rdfjs/data-model"; import { namedNode } from "@rdfjs/data-model";
import type { SolidLeaf } from "../../resources/SolidLeaf"; import type { SolidLeaf } from "../../resources/SolidLeaf.js";
import type { SolidContainer } from "../../resources/SolidContainer"; import type { SolidContainer } from "../../resources/SolidContainer.js";
import {
addRawTurtleToDataset,
addResourceRdfToContainer,
} from "../../util/rdfUtils.js";
/** /**
* All possible return values for reading a leaf * All possible return values for reading a leaf

@ -1,14 +1,14 @@
import type { DatasetChanges } from "@ldo/rdf-utils"; import type { DatasetChanges } from "@ldo/rdf-utils";
import { changesToSparqlUpdate } from "@ldo/rdf-utils"; import { changesToSparqlUpdate } from "@ldo/rdf-utils";
import type { Quad } from "@rdfjs/types"; import type { Quad } from "@rdfjs/types";
import { guaranteeFetch } from "../../util/guaranteeFetch"; import { guaranteeFetch } from "../../util/guaranteeFetch.js";
import type { Resource } from "@ldo/connected"; import type { Resource } from "@ldo/connected";
import { UnexpectedResourceError, UpdateSuccess } from "@ldo/connected"; import { UnexpectedResourceError, UpdateSuccess } from "@ldo/connected";
import type { HttpErrorResultType } from "../results/error/HttpErrorResult"; import type { HttpErrorResultType } from "../results/error/HttpErrorResult.js";
import { HttpErrorResult } from "../results/error/HttpErrorResult"; import { HttpErrorResult } from "../results/error/HttpErrorResult.js";
import type { DatasetRequestOptions } from "./requestOptions"; import type { DatasetRequestOptions } from "./requestOptions.js";
import type { SolidContainer } from "../../resources/SolidContainer"; import type { SolidContainer } from "../../resources/SolidContainer.js";
import type { SolidLeaf } from "../../resources/SolidLeaf"; import type { SolidLeaf } from "../../resources/SolidLeaf.js";
/** /**
* All return values for updateDataResource * All return values for updateDataResource

@ -1,20 +1,20 @@
import { guaranteeFetch } from "../../util/guaranteeFetch"; import { guaranteeFetch } from "../../util/guaranteeFetch.js";
import {
addResourceRdfToContainer,
getParentUri,
getSlug,
} from "../../util/rdfUtils";
import { UnexpectedResourceError } from "@ldo/connected"; import { UnexpectedResourceError } from "@ldo/connected";
import { HttpErrorResult } from "../results/error/HttpErrorResult"; import { HttpErrorResult } from "../results/error/HttpErrorResult.js";
import type { import type {
LeafCreateAndOverwriteResult, LeafCreateAndOverwriteResult,
LeafCreateIfAbsentResult, LeafCreateIfAbsentResult,
} from "./createDataResource"; } from "./createDataResource.js";
import { deleteResource } from "./deleteResource"; import { deleteResource } from "./deleteResource.js";
import { readResource } from "./readResource"; import { readResource } from "./readResource.js";
import type { DatasetRequestOptions } from "./requestOptions"; import type { DatasetRequestOptions } from "./requestOptions.js";
import type { SolidLeaf } from "../../resources/SolidLeaf"; import type { SolidLeaf } from "../../resources/SolidLeaf.js";
import { CreateSuccess } from "../results/success/CreateSuccess"; import { CreateSuccess } from "../results/success/CreateSuccess.js";
import {
addResourceRdfToContainer,
getParentUri,
getSlug,
} from "../../util/rdfUtils.js";
/** /**
* @internal * @internal

@ -1,4 +1,4 @@
import type { SolidContainer } from "../../../resources/SolidContainer"; import type { SolidContainer } from "../../../resources/SolidContainer.js";
import { ResourceSuccess, SuccessResult } from "@ldo/connected"; import { ResourceSuccess, SuccessResult } from "@ldo/connected";
/** /**

@ -1,7 +1,7 @@
import type { ConnectedResult } from "@ldo/connected"; import type { ConnectedResult } from "@ldo/connected";
import { ReadSuccess, type Resource } from "@ldo/connected"; import { ReadSuccess, type Resource } from "@ldo/connected";
import type { SolidLeaf } from "../../../resources/SolidLeaf"; import type { SolidLeaf } from "../../../resources/SolidLeaf.js";
import type { SolidContainer } from "../../../resources/SolidContainer"; import type { SolidContainer } from "../../../resources/SolidContainer.js";
/** /**
* Indicates that the read request was successful and that the resource * Indicates that the read request was successful and that the resource

@ -1,5 +1,5 @@
/* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-explicit-any */
import type { WaitingProcess } from "../../util/RequestBatcher"; import type { WaitingProcess } from "../../util/RequestBatcher.js";
/** /**
* @internal * @internal

@ -1,34 +1,34 @@
import { namedNode } from "@rdfjs/data-model"; import { namedNode } from "@rdfjs/data-model";
import { ContainerBatchedRequester } from "../requester/ContainerBatchedRequester"; import { ContainerBatchedRequester } from "../requester/ContainerBatchedRequester.js";
import type { import type {
CheckRootResult, CheckRootResult,
CheckRootResultError, CheckRootResultError,
} from "../requester/requests/checkRootContainer"; } from "../requester/requests/checkRootContainer.js";
import type { import type {
ContainerCreateAndOverwriteResult, ContainerCreateAndOverwriteResult,
ContainerCreateIfAbsentResult, ContainerCreateIfAbsentResult,
LeafCreateAndOverwriteResult, LeafCreateAndOverwriteResult,
LeafCreateIfAbsentResult, LeafCreateIfAbsentResult,
} from "../requester/requests/createDataResource"; } from "../requester/requests/createDataResource.js";
import type { import type {
DeleteResult, DeleteResult,
DeleteResultError, DeleteResultError,
} from "../requester/requests/deleteResource"; } from "../requester/requests/deleteResource.js";
import type { import type {
ReadContainerResult, ReadContainerResult,
ReadResultError, ReadResultError,
} from "../requester/requests/readResource"; } from "../requester/requests/readResource.js";
import type { DeleteSuccess } from "../requester/results/success/DeleteSuccess"; import type { DeleteSuccess } from "../requester/results/success/DeleteSuccess.js";
import type { ContainerReadSuccess } from "../requester/results/success/SolidReadSuccess"; import type { ContainerReadSuccess } from "../requester/results/success/SolidReadSuccess.js";
import { getParentUri, ldpContains } from "../util/rdfUtils"; import { getParentUri, ldpContains } from "../util/rdfUtils.js";
import { NoRootContainerError } from "../requester/results/error/NoRootContainerError"; import { NoRootContainerError } from "../requester/results/error/NoRootContainerError.js";
import type { SharedStatuses } from "./SolidResource"; import type { SharedStatuses } from "./SolidResource.js";
import { SolidResource } from "./SolidResource"; import { SolidResource } from "./SolidResource.js";
import type { import type {
SolidContainerSlug, SolidContainerSlug,
SolidContainerUri, SolidContainerUri,
SolidLeafSlug, SolidLeafSlug,
} from "../types"; } from "../types.js";
import type { ReadSuccess } from "@ldo/connected"; import type { ReadSuccess } from "@ldo/connected";
import { AggregateSuccess, IgnoredInvalidUpdateSuccess } from "@ldo/connected"; import { AggregateSuccess, IgnoredInvalidUpdateSuccess } from "@ldo/connected";
import { import {
@ -36,9 +36,9 @@ import {
type ConnectedContext, type ConnectedContext,
AggregateError, AggregateError,
} from "@ldo/connected"; } from "@ldo/connected";
import type { SolidConnectedPlugin } from "../SolidConnectedPlugin"; import type { SolidConnectedPlugin } from "../SolidConnectedPlugin.js";
import type { SolidLeaf } from "./SolidLeaf"; import type { SolidLeaf } from "./SolidLeaf.js";
import type { HttpErrorResultType } from "../requester/results/error/HttpErrorResult"; import type { HttpErrorResultType } from "../requester/results/error/HttpErrorResult.js";
import type { DatasetChanges } from "@ldo/rdf-utils"; import type { DatasetChanges } from "@ldo/rdf-utils";
/** /**

@ -1,30 +1,30 @@
import type { DatasetChanges } from "@ldo/rdf-utils"; import type { DatasetChanges } from "@ldo/rdf-utils";
import type { Quad } from "@rdfjs/types"; import type { Quad } from "@rdfjs/types";
import { LeafBatchedRequester } from "../requester/LeafBatchedRequester"; import { LeafBatchedRequester } from "../requester/LeafBatchedRequester.js";
import type { CheckRootResultError } from "../requester/requests/checkRootContainer"; import type { CheckRootResultError } from "../requester/requests/checkRootContainer.js";
import type { import type {
LeafCreateAndOverwriteResult, LeafCreateAndOverwriteResult,
LeafCreateIfAbsentResult, LeafCreateIfAbsentResult,
} from "../requester/requests/createDataResource"; } from "../requester/requests/createDataResource.js";
import type { DeleteResult } from "../requester/requests/deleteResource"; import type { DeleteResult } from "../requester/requests/deleteResource.js";
import type { ReadLeafResult } from "../requester/requests/readResource"; import type { ReadLeafResult } from "../requester/requests/readResource.js";
import type { UpdateResult } from "../requester/requests/updateDataResource"; import type { UpdateResult } from "../requester/requests/updateDataResource.js";
import type { DeleteSuccess } from "../requester/results/success/DeleteSuccess"; import type { DeleteSuccess } from "../requester/results/success/DeleteSuccess.js";
import { DataReadSuccess } from "../requester/results/success/SolidReadSuccess"; import { DataReadSuccess } from "../requester/results/success/SolidReadSuccess.js";
import { BinaryReadSuccess } from "../requester/results/success/SolidReadSuccess"; import { BinaryReadSuccess } from "../requester/results/success/SolidReadSuccess.js";
import { getParentUri } from "../util/rdfUtils"; import { getParentUri } from "../util/rdfUtils.js";
import type { NoRootContainerError } from "../requester/results/error/NoRootContainerError"; import type { NoRootContainerError } from "../requester/results/error/NoRootContainerError.js";
import type { SharedStatuses } from "./SolidResource"; import type { SharedStatuses } from "./SolidResource.js";
import { SolidResource } from "./SolidResource"; import { SolidResource } from "./SolidResource.js";
import type { SolidLeafUri } from "../types"; import type { SolidLeafUri } from "../types.js";
import type { ResourceSuccess } from "@ldo/connected"; import type { ResourceSuccess } from "@ldo/connected";
import { import {
AbsentReadSuccess, AbsentReadSuccess,
Unfetched, Unfetched,
type ConnectedContext, type ConnectedContext,
} from "@ldo/connected"; } from "@ldo/connected";
import type { SolidConnectedPlugin } from "../SolidConnectedPlugin"; import type { SolidConnectedPlugin } from "../SolidConnectedPlugin.js";
import type { SolidContainer } from "./SolidContainer"; import type { SolidContainer } from "./SolidContainer.js";
/** /**
* Represents the current status of a specific Leaf on a Pod as known by LDO. * Represents the current status of a specific Leaf on a Pod as known by LDO.

@ -9,46 +9,46 @@ import type {
SubscriptionCallbacks, SubscriptionCallbacks,
Unfetched, Unfetched,
} from "@ldo/connected"; } from "@ldo/connected";
import type { SolidContainerUri, SolidLeafUri } from "../types"; import type { SolidContainerUri, SolidLeafUri } from "../types.js";
import EventEmitter from "events"; import EventEmitter from "events";
import type { SolidConnectedPlugin } from "../SolidConnectedPlugin"; import type { SolidConnectedPlugin } from "../SolidConnectedPlugin.js";
import type { BatchedRequester } from "../requester/BatchedRequester"; import type { BatchedRequester } from "../requester/BatchedRequester.js";
import type { WacRule } from "../wac/WacRule"; import type { WacRule } from "../wac/WacRule.js";
import type { NotificationSubscription } from "@ldo/connected"; import type { NotificationSubscription } from "@ldo/connected";
import { Websocket2023NotificationSubscription } from "../notifications/Websocket2023NotificationSubscription"; import { Websocket2023NotificationSubscription } from "../notifications/Websocket2023NotificationSubscription.js";
import { getParentUri } from "../util/rdfUtils"; import { getParentUri } from "../util/rdfUtils.js";
import { isReadSuccess } from "../requester/results/success/SolidReadSuccess"; import { isReadSuccess } from "../requester/results/success/SolidReadSuccess.js";
import type { import type {
ReadContainerResult, ReadContainerResult,
ReadLeafResult, ReadLeafResult,
} from "../requester/requests/readResource"; } from "../requester/requests/readResource.js";
import { DeleteSuccess } from "../requester/results/success/DeleteSuccess"; import { DeleteSuccess } from "../requester/results/success/DeleteSuccess.js";
import { import {
updateDatasetOnSuccessfulDelete, updateDatasetOnSuccessfulDelete,
type DeleteResult, type DeleteResult,
} from "../requester/requests/deleteResource"; } from "../requester/requests/deleteResource.js";
import type { import type {
ContainerCreateAndOverwriteResult, ContainerCreateAndOverwriteResult,
ContainerCreateIfAbsentResult, ContainerCreateIfAbsentResult,
LeafCreateAndOverwriteResult, LeafCreateAndOverwriteResult,
LeafCreateIfAbsentResult, LeafCreateIfAbsentResult,
} from "../requester/requests/createDataResource"; } from "../requester/requests/createDataResource.js";
import type { SolidContainer } from "./SolidContainer"; import type { SolidContainer } from "./SolidContainer.js";
import type { CheckRootResultError } from "../requester/requests/checkRootContainer"; import type { CheckRootResultError } from "../requester/requests/checkRootContainer.js";
import type { NoRootContainerError } from "../requester/results/error/NoRootContainerError"; import type { NoRootContainerError } from "../requester/results/error/NoRootContainerError.js";
import type { SolidLeaf } from "./SolidLeaf"; import type { SolidLeaf } from "./SolidLeaf.js";
import type { GetWacUriError } from "../wac/getWacUri"; import type { GetWacUriError } from "../wac/getWacUri.js";
import { getWacUri, type GetWacUriResult } from "../wac/getWacUri"; import { getWacUri, type GetWacUriResult } from "../wac/getWacUri.js";
import { getWacRuleWithAclUri, type GetWacRuleResult } from "../wac/getWacRule"; import { getWacRuleWithAclUri, type GetWacRuleResult } from "../wac/getWacRule.js";
import type { SetWacRuleResult } from "../wac/setWacRule"; import type { SetWacRuleResult } from "../wac/setWacRule.js";
import { setWacRuleForAclUri } from "../wac/setWacRule"; import { setWacRuleForAclUri } from "../wac/setWacRule.js";
import { NoncompliantPodError } from "../requester/results/error/NoncompliantPodError"; import { NoncompliantPodError } from "../requester/results/error/NoncompliantPodError.js";
import type { SolidNotificationMessage } from "../notifications/SolidNotificationMessage"; import type { SolidNotificationMessage } from "../notifications/SolidNotificationMessage.js";
import type { CreateSuccess } from "../requester/results/success/CreateSuccess"; import type { CreateSuccess } from "../requester/results/success/CreateSuccess.js";
import { GetWacUriSuccess } from "../wac/results/GetWacUriSuccess"; import { GetWacUriSuccess } from "../wac/results/GetWacUriSuccess.js";
import { GetWacRuleSuccess } from "../wac/results/GetWacRuleSuccess"; import { GetWacRuleSuccess } from "../wac/results/GetWacRuleSuccess.js";
import type { DatasetChanges } from "@ldo/rdf-utils"; import type { DatasetChanges } from "@ldo/rdf-utils";
import type { UpdateResult } from "../requester/requests/updateDataResource"; import type { UpdateResult } from "../requester/requests/updateDataResource.js";
/** /**
* Statuses shared between both Leaf and Container * Statuses shared between both Leaf and Container

@ -1,4 +1,4 @@
import type { SolidContainerUri, SolidLeafUri, SolidUri } from "../types"; import type { SolidContainerUri, SolidLeafUri, SolidUri } from "../types.js";
/** /**
* Checks if a provided string is a leaf URI * Checks if a provided string is a leaf URI

@ -2,8 +2,8 @@ import type { LdoDataset } from "@ldo/ldo";
import { parseRdf } from "@ldo/ldo"; import { parseRdf } from "@ldo/ldo";
import { namedNode, quad as createQuad } from "@rdfjs/data-model"; import { namedNode, quad as createQuad } from "@rdfjs/data-model";
import type { Dataset } from "@rdfjs/types"; import type { Dataset } from "@rdfjs/types";
import type { SolidContainerUri } from "../types"; import type { SolidContainerUri } from "../types.js";
import { isSolidContainerUri } from "./isSolidUri"; import { isSolidContainerUri } from "./isSolidUri.js";
export const ldpContains = namedNode("http://www.w3.org/ns/ldp#contains"); export const ldpContains = namedNode("http://www.w3.org/ns/ldp#contains");
export const rdfType = namedNode( export const rdfType = namedNode(

@ -1,19 +1,19 @@
import { GetWacRuleSuccess } from "./results/GetWacRuleSuccess"; import { GetWacRuleSuccess } from "./results/GetWacRuleSuccess.js";
import { AuthorizationShapeType } from "../.ldo/wac.shapeTypes"; import { AuthorizationShapeType } from "../.ldo/wac.shapeTypes.js";
import type { AccessModeList, WacRule } from "./WacRule"; import type { AccessModeList, WacRule } from "./WacRule.js";
import type { Authorization } from "../.ldo/wac.typings"; import type { Authorization } from "../.ldo/wac.typings.js";
import { WacRuleAbsent } from "./results/WacRuleAbsent"; import { WacRuleAbsent } from "./results/WacRuleAbsent.js";
import { import {
HttpErrorResult, HttpErrorResult,
type HttpErrorResultType, type HttpErrorResultType,
} from "../requester/results/error/HttpErrorResult"; } from "../requester/results/error/HttpErrorResult.js";
import { NoncompliantPodError } from "../requester/results/error/NoncompliantPodError"; import { NoncompliantPodError } from "../requester/results/error/NoncompliantPodError.js";
import type { UnexpectedResourceError } from "@ldo/connected"; import type { UnexpectedResourceError } from "@ldo/connected";
import type { SolidLeaf } from "../resources/SolidLeaf"; import type { SolidLeaf } from "../resources/SolidLeaf.js";
import type { SolidContainer } from "../resources/SolidContainer"; import type { SolidContainer } from "../resources/SolidContainer.js";
import { guaranteeFetch } from "../util/guaranteeFetch"; import { guaranteeFetch } from "../util/guaranteeFetch.js";
import type { BasicRequestOptions } from "../requester/requests/requestOptions"; import type { BasicRequestOptions } from "../requester/requests/requestOptions.js";
import { rawTurtleToDataset } from "../util/rdfUtils"; import { rawTurtleToDataset } from "../util/rdfUtils.js";
export type GetWacRuleError<ResourceType extends SolidContainer | SolidLeaf> = export type GetWacRuleError<ResourceType extends SolidContainer | SolidLeaf> =
| HttpErrorResultType<ResourceType> | HttpErrorResultType<ResourceType>

@ -1,17 +1,17 @@
import { import {
HttpErrorResult, HttpErrorResult,
NotFoundHttpError, NotFoundHttpError,
} from "../requester/results/error/HttpErrorResult"; } from "../requester/results/error/HttpErrorResult.js";
import type { HttpErrorResultType } from "../requester/results/error/HttpErrorResult"; import type { HttpErrorResultType } from "../requester/results/error/HttpErrorResult.js";
import { GetWacUriSuccess } from "./results/GetWacUriSuccess"; import { GetWacUriSuccess } from "./results/GetWacUriSuccess.js";
import { parse as parseLinkHeader } from "http-link-header"; import { parse as parseLinkHeader } from "http-link-header";
import { UnexpectedResourceError } from "@ldo/connected"; import { UnexpectedResourceError } from "@ldo/connected";
import { NoncompliantPodError } from "../requester/results/error/NoncompliantPodError"; import { NoncompliantPodError } from "../requester/results/error/NoncompliantPodError.js";
import type { SolidContainer } from "../resources/SolidContainer"; import type { SolidContainer } from "../resources/SolidContainer.js";
import type { SolidLeaf } from "../resources/SolidLeaf"; import type { SolidLeaf } from "../resources/SolidLeaf.js";
import type { BasicRequestOptions } from "../requester/requests/requestOptions"; import type { BasicRequestOptions } from "../requester/requests/requestOptions.js";
import { guaranteeFetch } from "../util/guaranteeFetch"; import { guaranteeFetch } from "../util/guaranteeFetch.js";
import type { SolidLeafUri } from "../types"; import type { SolidLeafUri } from "../types.js";
export type GetWacUriError<ResourceType extends SolidContainer | SolidLeaf> = export type GetWacUriError<ResourceType extends SolidContainer | SolidLeaf> =
| HttpErrorResultType<ResourceType> | HttpErrorResultType<ResourceType>

@ -1,7 +1,7 @@
import { ResourceSuccess } from "@ldo/connected"; import { ResourceSuccess } from "@ldo/connected";
import type { WacRule } from "../WacRule"; import type { WacRule } from "../WacRule.js";
import type { SolidLeaf } from "../../resources/SolidLeaf"; import type { SolidLeaf } from "../../resources/SolidLeaf.js";
import type { SolidContainer } from "../../resources/SolidContainer"; import type { SolidContainer } from "../../resources/SolidContainer.js";
/** /**
* Returned when a WAC rule is successfully retrieved * Returned when a WAC rule is successfully retrieved

@ -1,7 +1,7 @@
import { ResourceSuccess } from "@ldo/connected"; import { ResourceSuccess } from "@ldo/connected";
import type { SolidLeafUri } from "../../types"; import type { SolidLeafUri } from "../../types.js";
import type { SolidContainer } from "../../resources/SolidContainer"; import type { SolidContainer } from "../../resources/SolidContainer.js";
import type { SolidLeaf } from "../../resources/SolidLeaf"; import type { SolidLeaf } from "../../resources/SolidLeaf.js";
/** /**
* Returned when the URI for a resources ACL document was successfully retried * Returned when the URI for a resources ACL document was successfully retried

@ -1,7 +1,7 @@
import { ResourceSuccess } from "@ldo/connected"; import { ResourceSuccess } from "@ldo/connected";
import type { WacRule } from "../WacRule"; import type { WacRule } from "../WacRule.js";
import type { SolidContainer } from "../../resources/SolidContainer"; import type { SolidContainer } from "../../resources/SolidContainer.js";
import type { SolidLeaf } from "../../resources/SolidLeaf"; import type { SolidLeaf } from "../../resources/SolidLeaf.js";
/** /**
* Returned when rules were successfully written * Returned when rules were successfully written

@ -1,6 +1,6 @@
import { ResourceSuccess } from "@ldo/connected"; import { ResourceSuccess } from "@ldo/connected";
import type { SolidLeaf } from "../../resources/SolidLeaf"; import type { SolidLeaf } from "../../resources/SolidLeaf.js";
import type { SolidContainer } from "../../resources/SolidContainer"; import type { SolidContainer } from "../../resources/SolidContainer.js";
/** /**
* Returned if no WAC rule was returned from the server * Returned if no WAC rule was returned from the server

@ -1,20 +1,20 @@
import { createLdoDataset } from "@ldo/ldo"; import { createLdoDataset } from "@ldo/ldo";
import type { AccessModeList, WacRule } from "./WacRule"; import type { AccessModeList, WacRule } from "./WacRule.js";
import { SetWacRuleSuccess } from "./results/SetWacRuleSuccess"; import { SetWacRuleSuccess } from "./results/SetWacRuleSuccess.js";
import type { Authorization } from "../.ldo/wac.typings"; import type { Authorization } from "../.ldo/wac.typings.js";
import { AuthorizationShapeType } from "../.ldo/wac.shapeTypes"; import { AuthorizationShapeType } from "../.ldo/wac.shapeTypes.js";
import { v4 } from "uuid"; import { v4 } from "uuid";
import { guaranteeFetch } from "../util/guaranteeFetch"; import { guaranteeFetch } from "../util/guaranteeFetch.js";
import type { SolidLeafUri } from "../types"; import type { SolidLeafUri } from "../types.js";
import type { SolidLeaf } from "../resources/SolidLeaf"; import type { SolidLeaf } from "../resources/SolidLeaf.js";
import type { SolidContainer } from "../resources/SolidContainer"; import type { SolidContainer } from "../resources/SolidContainer.js";
import { import {
HttpErrorResult, HttpErrorResult,
type HttpErrorResultType, type HttpErrorResultType,
} from "../requester/results/error/HttpErrorResult"; } from "../requester/results/error/HttpErrorResult.js";
import type { UnexpectedResourceError } from "@ldo/connected"; import type { UnexpectedResourceError } from "@ldo/connected";
import type { BasicRequestOptions } from "../requester/requests/requestOptions"; import type { BasicRequestOptions } from "../requester/requests/requestOptions.js";
import { isSolidContainerUri } from "../util/isSolidUri"; import { isSolidContainerUri } from "../util/isSolidUri.js";
export type SetWacRuleError<ResourceType extends SolidContainer | SolidLeaf> = export type SetWacRuleError<ResourceType extends SolidContainer | SolidLeaf> =
| HttpErrorResultType<ResourceType> | HttpErrorResultType<ResourceType>

@ -1,7 +1,7 @@
import { ShapeType } from "@ldo/ldo"; import { ShapeType } from "@ldo/ldo";
import { postSchema } from "./post.schema"; import { postSchema } from "./post.schema.js";
import { postContext } from "./post.context"; import { postContext } from "./post.context.js";
import { PostSh } from "./post.typings"; import { PostSh } from "./post.typings.js";
/** /**
* ============================================================================= * =============================================================================

@ -4,19 +4,23 @@ import {
literal, literal,
defaultGraph, defaultGraph,
} from "@rdfjs/data-model"; } from "@rdfjs/data-model";
import type { CreateSuccess } from "../src/requester/results/success/CreateSuccess"; import type { CreateSuccess } from "../src/requester/results/success/CreateSuccess.js";
import { Buffer } from "buffer"; import { Buffer } from "buffer";
import { PostShShapeType } from "./.ldo/post.shapeTypes"; import { PostShShapeType } from "./.ldo/post.shapeTypes.js";
import type { import type {
ServerHttpError, ServerHttpError,
UnauthenticatedHttpError, UnauthenticatedHttpError,
UnexpectedHttpError, UnexpectedHttpError,
} from "../src/requester/results/error/HttpErrorResult"; } from "../src/requester/results/error/HttpErrorResult.js";
import type { NoncompliantPodError } from "../src/requester/results/error/NoncompliantPodError"; import type { NoncompliantPodError } from "../src/requester/results/error/NoncompliantPodError.js";
import type { GetStorageContainerFromWebIdSuccess } from "../src/requester/results/success/CheckRootContainerSuccess"; import type { GetStorageContainerFromWebIdSuccess } from "../src/requester/results/success/CheckRootContainerSuccess.js";
import { wait } from "./utils.helper"; import { wait } from "./utils.helper.js";
import path from "path"; import path from "path";
import type { GetWacRuleSuccess, UpdateResultError, WacRule } from "../src"; import type {
GetWacRuleSuccess,
UpdateResultError,
WacRule,
} from "../src/index.js";
import { import {
createSolidLdoDataset, createSolidLdoDataset,
type SolidConnectedPlugin, type SolidConnectedPlugin,
@ -24,7 +28,7 @@ import {
type SolidContainerUri, type SolidContainerUri,
type SolidLeaf, type SolidLeaf,
type SolidLeafUri, type SolidLeafUri,
} from "../src"; } from "../src/index.js";
import type { import type {
AggregateError, AggregateError,
AggregateSuccess, AggregateSuccess,
@ -40,9 +44,10 @@ import {
commitData, commitData,
ConnectedLdoTransactionDataset, ConnectedLdoTransactionDataset,
} from "@ldo/connected"; } from "@ldo/connected";
import { getStorageFromWebId } from "../src/getStorageFromWebId"; import { getStorageFromWebId } from "../src/getStorageFromWebId.js";
import type { ResourceInfo } from "@ldo/test-solid-server"; import type { ResourceInfo } from "@ldo/test-solid-server";
import { createApp, setupServer } from "@ldo/test-solid-server"; import { createApp, setupServer } from "@ldo/test-solid-server";
import { describe, it, expect, vi, beforeEach } from "vitest";
const ROOT_CONTAINER = "http://localhost:3001/"; const ROOT_CONTAINER = "http://localhost:3001/";
const WEB_ID = "http://localhost:3001/example/profile/card#me"; const WEB_ID = "http://localhost:3001/example/profile/card#me";
@ -2039,7 +2044,7 @@ describe("Integration", () => {
const resource = solidLdoDataset.getResource(SAMPLE_DATA_URI); const resource = solidLdoDataset.getResource(SAMPLE_DATA_URI);
await resource.read(); await resource.read();
const spidermanCallback = jest.fn(); const spidermanCallback = vi.fn();
solidLdoDataset.addListener( solidLdoDataset.addListener(
[spidermanNode, null, null, null], [spidermanNode, null, null, null],
spidermanCallback, spidermanCallback,
@ -2095,13 +2100,13 @@ describe("Integration", () => {
const testContainer = solidLdoDataset.getResource(TEST_CONTAINER_URI); const testContainer = solidLdoDataset.getResource(TEST_CONTAINER_URI);
await resource.read(); await resource.read();
const spidermanCallback = jest.fn(); const spidermanCallback = vi.fn();
solidLdoDataset.addListener( solidLdoDataset.addListener(
[spidermanNode, null, null, null], [spidermanNode, null, null, null],
spidermanCallback, spidermanCallback,
); );
const containerCallback = jest.fn(); const containerCallback = vi.fn();
solidLdoDataset.addListener( solidLdoDataset.addListener(
[namedNode(TEST_CONTAINER_URI), null, null, null], [namedNode(TEST_CONTAINER_URI), null, null, null],
containerCallback, containerCallback,
@ -2129,13 +2134,13 @@ describe("Integration", () => {
const testContainer = solidLdoDataset.getResource(TEST_CONTAINER_URI); const testContainer = solidLdoDataset.getResource(TEST_CONTAINER_URI);
await resource.read(); await resource.read();
const spidermanCallback = jest.fn(); const spidermanCallback = vi.fn();
solidLdoDataset.addListener( solidLdoDataset.addListener(
[spidermanNode, null, null, null], [spidermanNode, null, null, null],
spidermanCallback, spidermanCallback,
); );
const containerCallback = jest.fn(); const containerCallback = vi.fn();
solidLdoDataset.addListener( solidLdoDataset.addListener(
[namedNode(TEST_CONTAINER_URI), null, null, null], [namedNode(TEST_CONTAINER_URI), null, null, null],
containerCallback, containerCallback,
@ -2163,13 +2168,13 @@ describe("Integration", () => {
const testContainer = solidLdoDataset.getResource(TEST_CONTAINER_URI); const testContainer = solidLdoDataset.getResource(TEST_CONTAINER_URI);
await resource.read(); await resource.read();
const spidermanCallback = jest.fn(); const spidermanCallback = vi.fn();
solidLdoDataset.addListener( solidLdoDataset.addListener(
[spidermanNode, null, null, null], [spidermanNode, null, null, null],
spidermanCallback, spidermanCallback,
); );
const containerCallback = jest.fn(); const containerCallback = vi.fn();
solidLdoDataset.addListener( solidLdoDataset.addListener(
[namedNode(TEST_CONTAINER_URI), null, null, null], [namedNode(TEST_CONTAINER_URI), null, null, null],
containerCallback, containerCallback,
@ -2198,7 +2203,7 @@ describe("Integration", () => {
it.skip("returns an error when it cannot subscribe to a notification", async () => { it.skip("returns an error when it cannot subscribe to a notification", async () => {
const resource = solidLdoDataset.getResource(SAMPLE_DATA_URI); const resource = solidLdoDataset.getResource(SAMPLE_DATA_URI);
const onError = jest.fn(); const onError = vi.fn();
await s.app.stop(); await s.app.stop();
await resource.subscribeToNotifications({ await resource.subscribeToNotifications({
@ -2210,7 +2215,7 @@ describe("Integration", () => {
it.skip("returns an error when the server doesnt support websockets", async () => { it.skip("returns an error when the server doesnt support websockets", async () => {
const resource = solidLdoDataset.getResource(SAMPLE_DATA_URI); const resource = solidLdoDataset.getResource(SAMPLE_DATA_URI);
const onError = jest.fn(); const onError = vi.fn();
await s.app.stop(); await s.app.stop();
const disabledWebsocketsApp = await createApp( const disabledWebsocketsApp = await createApp(
@ -2228,7 +2233,7 @@ describe("Integration", () => {
it.skip("attempts to reconnect multiple times before giving up.", async () => { it.skip("attempts to reconnect multiple times before giving up.", async () => {
const resource = solidLdoDataset.getResource(SAMPLE_DATA_URI); const resource = solidLdoDataset.getResource(SAMPLE_DATA_URI);
const onError = jest.fn(); const onError = vi.fn();
await s.app.stop(); await s.app.stop();
const disabledWebsocketsApp = await createApp( const disabledWebsocketsApp = await createApp(

@ -1,9 +1,10 @@
// import type { App } from "@solid/community-server"; // import type { App } from "@solid/community-server";
// import { getAuthenticatedFetch, ROOT_COONTAINER } from "./solidServer.helper"; // import { getAuthenticatedFetch, ROOT_COONTAINER } from "./solidServer.helper.js";
// import type { SolidLdoDataset } from "../src/SolidLdoDataset"; // import type { SolidLdoDataset } from "../src/SolidLdoDataset.js";
// import { createSolidLdoDataset } from "../src/createSolidLdoDataset"; // import { createSolidLdoDataset } from "../src/createSolidLdoDataset.js";
// import { LeafRequester } from "../src/requester/LeafRequester"; // import { LeafRequester } from "../src/requester/LeafRequester.js";
// import { namedNode, quad as createQuad } from "@rdfjs/data-model"; // import { namedNode, quad as createQuad } from "@rdfjs/data-model";
import { describe, it, expect } from "vitest";
describe("Leaf Requester", () => { describe("Leaf Requester", () => {
it("trivial", () => { it("trivial", () => {

@ -1,5 +1,6 @@
import type { WaitingProcess } from "../src/util/RequestBatcher"; import type { WaitingProcess } from "../src/util/RequestBatcher.js";
import { RequestBatcher } from "../src/util/RequestBatcher"; import { RequestBatcher } from "../src/util/RequestBatcher.js";
import { describe, it, expect, vi } from "vitest";
describe("RequestBatcher", () => { describe("RequestBatcher", () => {
type ReadWaitingProcess = WaitingProcess<[string], string>; type ReadWaitingProcess = WaitingProcess<[string], string>;
@ -10,13 +11,13 @@ describe("RequestBatcher", () => {
await wait(100); await wait(100);
return `Hello ${input}`; return `Hello ${input}`;
}; };
const perform1 = jest.fn(perform); const perform1 = vi.fn(perform);
const perform2 = jest.fn(perform); const perform2 = vi.fn(perform);
const perform3 = jest.fn((input: string): Promise<string> => { const perform3 = vi.fn((input: string): Promise<string> => {
expect(requestBatcher.isLoading("read")).toBe(true); expect(requestBatcher.isLoading("read")).toBe(true);
return perform(input); return perform(input);
}); });
const perform4 = jest.fn(perform); const perform4 = vi.fn(perform);
const modifyQueue = (queue, currentlyProcessing, input: [string]) => { const modifyQueue = (queue, currentlyProcessing, input: [string]) => {
const last = queue[queue.length - 1]; const last = queue[queue.length - 1];
@ -95,7 +96,7 @@ describe("RequestBatcher", () => {
const perform = async (_input: string): Promise<string> => { const perform = async (_input: string): Promise<string> => {
throw new Error("Test Error"); throw new Error("Test Error");
}; };
const perform1 = jest.fn(perform); const perform1 = vi.fn(perform);
expect(() => expect(() =>
requestBatcher.queueProcess<[string], string>({ requestBatcher.queueProcess<[string], string>({
name: "read", name: "read",

@ -1,3 +1,5 @@
import { describe, it, expect } from "vitest";
describe("Websocket Trivial", () => { describe("Websocket Trivial", () => {
it("is trivial", () => { it("is trivial", () => {
expect(true).toBe(true); expect(true).toBe(true);
@ -5,9 +7,9 @@ describe("Websocket Trivial", () => {
}); });
// import type { WebSocket, Event, ErrorEvent } from "ws"; // import type { WebSocket, Event, ErrorEvent } from "ws";
// import { Websocket2023NotificationSubscription } from "../src/notifications/Websocket2023NotificationSubscription"; // import { Websocket2023NotificationSubscription } from "../src/notifications/Websocket2023NotificationSubscription.js";
// import type { SolidLdoDatasetContext } from "../src"; // import type { SolidLdoDatasetContext } from "../src/index.js";
// import { Leaf } from "../src"; // import { Leaf } from "../src/index.js";
// import type { NotificationChannel } from "@solid-notifications/types"; // import type { NotificationChannel } from "@solid-notifications/types";
// describe("Websocket2023NotificationSubscription", () => { // describe("Websocket2023NotificationSubscription", () => {

@ -1,5 +1,6 @@
import { guaranteeFetch } from "../src/util/guaranteeFetch"; import { guaranteeFetch } from "../src/util/guaranteeFetch.js";
import crossFetch from "cross-fetch"; import crossFetch from "cross-fetch";
import { describe, it, expect } from "vitest";
describe("guaranteeFetch", () => { describe("guaranteeFetch", () => {
it("returns crossfetch when no fetch is provided", () => { it("returns crossfetch when no fetch is provided", () => {

@ -1,4 +1,5 @@
import { isSolidLeafUri } from "../src"; import { isSolidLeafUri } from "../src/util/isSolidUri";
import { describe, it, expect } from "vitest";
describe("isLeafUri", () => { describe("isLeafUri", () => {
it("returns true if the given value is a leaf URI", () => { it("returns true if the given value is a leaf URI", () => {

@ -1,7 +0,0 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"outDir": "./dist",
},
"include": ["./src"]
}

@ -0,0 +1,10 @@
{
"extends": "../../tsconfig.cjs.json",
"compilerOptions": {
"outDir": "./dist/cjs",
"rootDir": "./src"
},
"include": [
"src"
]
}

@ -0,0 +1,14 @@
{
"extends": "../../tsconfig.esm.json",
"compilerOptions": {
"outDir": "./dist/esm",
"rootDir": "./src",
"declarationDir": "./dist/types",
"types": [
"jest"
]
},
"include": [
"src"
]
}

@ -0,0 +1,9 @@
import { defineConfig } from "vitest/config";
export default defineConfig({
test: {
coverage: {
provider: "istanbul",
},
},
});

@ -49,8 +49,8 @@ import { nextGraphConnectedPlugin } from "@ldo/connected-nextgraph";
// Shape Types // Shape Types
import { FoafProfileShapeType } from "./.ldo/foafProfile.shapeTypes"; import { FoafProfileShapeType } from "./.ldo/foafProfile.shapeTypes.js";
import { SocialMediaPostShapeType } from "./.ldo/socialMediaPost.shapeTypes"; import { SocialMediaPostShapeType } from "./.ldo/socialMediaPost.shapeTypes.js";
// These are tools for Solid and NextGraph outside of the LDO ecosystem // These are tools for Solid and NextGraph outside of the LDO ecosystem
import { fetch, getDefaultSession } from "@inrupt/solid-client-authn-browser"; import { fetch, getDefaultSession } from "@inrupt/solid-client-authn-browser";

@ -1,10 +0,0 @@
// eslint-disable-next-line @typescript-eslint/no-var-requires
const sharedConfig = require("../../jest.config.js");
module.exports = {
...sharedConfig,
rootDir: "./",
transform: {
"^.+\\.(ts|tsx)?$": "ts-jest",
},
coveragePathIgnorePatterns: ["/node_modules/", "/dist/"],
};

@ -1,35 +1,47 @@
{ {
"name": "@ldo/connected", "name": "@ldo/connected",
"version": "1.0.0-alpha.9", "version": "1.0.0-alpha.12",
"description": "A library for connecting LDO to resources outside the LDO environment", "description": "A library for connecting LDO to resources outside the LDO environment",
"main": "dist/index.js", "type": "module",
"main": "./dist/cjs/index.js",
"module": "./dist/esm/index.js",
"types": "./dist/types/index.d.ts",
"exports": {
".": {
"types": "./dist/types/index.d.ts",
"import": "./dist/esm/index.js",
"require": "./dist/cjs/index.js"
},
"./package.json": "./package.json"
},
"scripts": { "scripts": {
"build": "tsc --project tsconfig.build.json", "build": "rimraf dist && npm run build:cjs && npm run build:esm",
"watch": "tsc --watch", "build:cjs": "tsc --project tsconfig.cjs.json",
"test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --coverage", "build:esm": "tsc --project tsconfig.esm.json",
"test:watch": "jest --watch", "test": "vitest run --coverage",
"prepublishOnly": "npm run test && npm run build", "prepublishOnly": " npm run build",
"lint": "eslint src/** --fix --no-error-on-unmatched-pattern", "lint": "eslint src/** --fix --no-error-on-unmatched-pattern",
"docs": "typedoc --plugin typedoc-plugin-markdown", "docs": "typedoc --plugin typedoc-plugin-markdown",
"build:ldo": "ldo build --input test/.shapes --output test/.ldo" "build:ldo": "ldo build --input test/.shapes --output test/.ldo"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/o-development/ldobjects.git" "url": "git+https://github.com/o-development/ldo.git"
}, },
"author": "Jackson Morgan", "author": "Jackson Morgan",
"license": "MIT", "license": "MIT",
"bugs": { "bugs": {
"url": "https://github.com/o-development/ldobjects/issues" "url": "https://github.com/o-development/ldo/issues"
}, },
"homepage": "https://github.com/o-development/ldobjects/tree/main/packages/solid#readme", "homepage": "https://github.com/o-development/ldo/tree/main/packages/solid#readme",
"devDependencies": { "devDependencies": {
"@ldo/connected-solid": "^1.0.0-alpha.9", "@ldo/connected-solid": "^1.0.0-alpha.12",
"@ldo/test-solid-server": "^1.0.0-alpha.9", "@ldo/test-solid-server": "^1.0.0-alpha.12",
"@rdfjs/data-model": "^1.2.0", "@rdfjs/data-model": "^1.2.0",
"@rdfjs/types": "^1.0.1", "@rdfjs/types": "^1.0.1",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"jest-rdf": "^1.8.0", "jest-rdf": "^1.8.0",
"rimraf": "^6.0.1",
"ts-jest": "^29.3.2", "ts-jest": "^29.3.2",
"ts-node": "^10.9.1", "ts-node": "^10.9.1",
"typed-emitter": "^2.1.0", "typed-emitter": "^2.1.0",
@ -38,9 +50,9 @@
"uuid": "^11.1.0" "uuid": "^11.1.0"
}, },
"dependencies": { "dependencies": {
"@ldo/dataset": "^1.0.0-alpha.9", "@ldo/dataset": "^1.0.0-alpha.11",
"@ldo/ldo": "^1.0.0-alpha.9", "@ldo/ldo": "^1.0.0-alpha.11",
"@ldo/rdf-utils": "^1.0.0-alpha.9" "@ldo/rdf-utils": "^1.0.0-alpha.11"
}, },
"files": [ "files": [
"dist", "dist",
@ -48,5 +60,6 @@
], ],
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
} },
"gitHead": "840910c56ec3f61416f031cc76771a5673af6757"
} }

@ -1,12 +1,12 @@
import type { LdoBase, ShapeType } from "@ldo/ldo"; import type { LdoBase, ShapeType } from "@ldo/ldo";
import { LdoBuilder } from "@ldo/ldo"; import { LdoBuilder } from "@ldo/ldo";
import type { IConnectedLdoBuilder } from "./types/IConnectedLdoBuilder"; import type { IConnectedLdoBuilder } from "./types/IConnectedLdoBuilder.js";
import type { JsonldDatasetProxyBuilder } from "@ldo/jsonld-dataset-proxy"; import type { JsonldDatasetProxyBuilder } from "@ldo/jsonld-dataset-proxy";
import type { SubjectNode } from "@ldo/rdf-utils"; import type { SubjectNode } from "@ldo/rdf-utils";
import type { LQInput } from "./types/ILinkQuery"; import type { LQInput } from "./types/ILinkQuery.js";
import { ResourceLinkQuery } from "./linkTraversal/ResourceLinkQuery"; import { ResourceLinkQuery } from "./linkTraversal/ResourceLinkQuery.js";
import type { ConnectedPlugin } from "./types/ConnectedPlugin"; import type { ConnectedPlugin } from "./types/ConnectedPlugin.js";
import type { IConnectedLdoDataset } from "./types/IConnectedLdoDataset"; import type { IConnectedLdoDataset } from "./types/IConnectedLdoDataset.js";
export class ConnectedLdoBuilder< export class ConnectedLdoBuilder<
Type extends LdoBase, Type extends LdoBase,

@ -1,18 +1,18 @@
/* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-explicit-any */
import type { LdoBase, ShapeType } from "@ldo/ldo"; import type { LdoBase, ShapeType } from "@ldo/ldo";
import { LdoDataset, startTransaction } from "@ldo/ldo"; import { LdoDataset, startTransaction } from "@ldo/ldo";
import type { ConnectedPlugin } from "./types/ConnectedPlugin"; import type { ConnectedPlugin } from "./types/ConnectedPlugin.js";
import type { Dataset, DatasetFactory, Quad } from "@rdfjs/types"; import type { Dataset, DatasetFactory, Quad } from "@rdfjs/types";
import type { ITransactionDatasetFactory } from "@ldo/subscribable-dataset"; import type { ITransactionDatasetFactory } from "@ldo/subscribable-dataset";
import { InvalidIdentifierResource } from "./InvalidIdentifierResource"; import { InvalidIdentifierResource } from "./InvalidIdentifierResource.js";
import type { ConnectedContext } from "./types/ConnectedContext"; import type { ConnectedContext } from "./types/ConnectedContext.js";
import type { import type {
GetResourceReturnType, GetResourceReturnType,
IConnectedLdoDataset, IConnectedLdoDataset,
} from "./types/IConnectedLdoDataset"; } from "./types/IConnectedLdoDataset.js";
import { ConnectedLdoTransactionDataset } from "./ConnectedLdoTransactionDataset"; import { ConnectedLdoTransactionDataset } from "./ConnectedLdoTransactionDataset.js";
import type { SubjectNode } from "@ldo/rdf-utils"; import type { SubjectNode } from "@ldo/rdf-utils";
import { ConnectedLdoBuilder } from "./ConnectedLdoBuilder"; import { ConnectedLdoBuilder } from "./ConnectedLdoBuilder.js";
import jsonldDatasetProxy from "@ldo/jsonld-dataset-proxy"; import jsonldDatasetProxy from "@ldo/jsonld-dataset-proxy";
/** /**

@ -7,22 +7,22 @@ import {
type ITransactionDatasetFactory, type ITransactionDatasetFactory,
} from "@ldo/subscribable-dataset"; } from "@ldo/subscribable-dataset";
import type { DatasetChanges, GraphNode } from "@ldo/rdf-utils"; import type { DatasetChanges, GraphNode } from "@ldo/rdf-utils";
import type { ConnectedPlugin } from "./types/ConnectedPlugin"; import type { ConnectedPlugin } from "./types/ConnectedPlugin.js";
import type { ConnectedContext } from "./types/ConnectedContext"; import type { ConnectedContext } from "./types/ConnectedContext.js";
import type { import type {
GetResourceReturnType, GetResourceReturnType,
IConnectedLdoDataset, IConnectedLdoDataset,
} from "./types/IConnectedLdoDataset"; } from "./types/IConnectedLdoDataset.js";
import { splitChangesByGraph } from "./util/splitChangesByGraph"; import { splitChangesByGraph } from "./util/splitChangesByGraph.js";
import type { IgnoredInvalidUpdateSuccess } from "./results/success/UpdateSuccess"; import type { IgnoredInvalidUpdateSuccess } from "./results/success/UpdateSuccess.js";
import { UpdateDefaultGraphSuccess } from "./results/success/UpdateSuccess"; import { UpdateDefaultGraphSuccess } from "./results/success/UpdateSuccess.js";
import type { ErrorResult } from "./results/error/ErrorResult"; import type { ErrorResult } from "./results/error/ErrorResult.js";
import { AggregateError } from "./results/error/ErrorResult"; import { AggregateError } from "./results/error/ErrorResult.js";
import type { import type {
AggregateSuccess, AggregateSuccess,
SuccessResult, SuccessResult,
} from "./results/success/SuccessResult"; } from "./results/success/SuccessResult.js";
import { ConnectedLdoBuilder } from "./ConnectedLdoBuilder"; import { ConnectedLdoBuilder } from "./ConnectedLdoBuilder.js";
import jsonldDatasetProxy from "@ldo/jsonld-dataset-proxy"; import jsonldDatasetProxy from "@ldo/jsonld-dataset-proxy";
/** /**

@ -1,6 +1,6 @@
import EventEmitter from "events"; import EventEmitter from "events";
import type { Resource, ResourceEventEmitter } from "./Resource"; import type { Resource, ResourceEventEmitter } from "./Resource.js";
import { InvalidUriError } from "./results/error/InvalidUriError"; import { InvalidUriError } from "./results/error/InvalidUriError.js";
/** /**
* A resource that represents a URI that does not have a valid URI given the * A resource that represents a URI that does not have a valid URI given the

@ -1,15 +1,15 @@
/* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-explicit-any */
import type TypedEmitter from "typed-emitter"; import type { ConnectedResult } from "./results/ConnectedResult.js";
import type { ConnectedResult } from "./results/ConnectedResult";
import type { DatasetChanges } from "@ldo/rdf-utils"; import type { DatasetChanges } from "@ldo/rdf-utils";
import type { import type {
IgnoredInvalidUpdateSuccess, IgnoredInvalidUpdateSuccess,
UpdateSuccess, UpdateSuccess,
} from "./results/success/UpdateSuccess"; } from "./results/success/UpdateSuccess.js";
import type { ResourceError } from "./results/error/ErrorResult"; import type { ResourceError } from "./results/error/ErrorResult.js";
import type { ReadSuccess } from "./results/success/ReadSuccess"; import type { ReadSuccess } from "./results/success/ReadSuccess.js";
export type ResourceEventEmitter = TypedEmitter<{ // eslint-disable-next-line @typescript-eslint/consistent-type-imports
export type ResourceEventEmitter = import("typed-emitter").default<{
update: () => void; update: () => void;
notification: () => void; notification: () => void;
}>; }>;

@ -1,6 +1,6 @@
import { createDatasetFactory } from "@ldo/dataset"; import { createDatasetFactory } from "@ldo/dataset";
import { ConnectedLdoDataset } from "./ConnectedLdoDataset"; import { ConnectedLdoDataset } from "./ConnectedLdoDataset.js";
import type { ConnectedPlugin } from "./types/ConnectedPlugin"; import type { ConnectedPlugin } from "./types/ConnectedPlugin.js";
import { createTransactionDatasetFactory } from "@ldo/subscribable-dataset"; import { createTransactionDatasetFactory } from "@ldo/subscribable-dataset";
/** /**

@ -1,36 +1,36 @@
export * from "./ConnectedLdoBuilder"; export * from "./ConnectedLdoBuilder.js";
export * from "./ConnectedLdoDataset"; export * from "./ConnectedLdoDataset.js";
export * from "./ConnectedLdoTransactionDataset"; export * from "./ConnectedLdoTransactionDataset.js";
export * from "./Resource"; export * from "./Resource.js";
export * from "./InvalidIdentifierResource"; export * from "./InvalidIdentifierResource.js";
export * from "./methods"; export * from "./methods.js";
export * from "./createConntectedLdoDataset"; export * from "./createConntectedLdoDataset.js";
export * from "./types/ConnectedContext"; export * from "./types/ConnectedContext.js";
export * from "./types/ConnectedPlugin"; export * from "./types/ConnectedPlugin.js";
export * from "./types/IConnectedLdoDataset"; export * from "./types/IConnectedLdoDataset.js";
export * from "./types/IConnectedLdoBuilder"; export * from "./types/IConnectedLdoBuilder.js";
export * from "./types/ILinkQuery"; export * from "./types/ILinkQuery.js";
export * from "./util/splitChangesByGraph"; export * from "./util/splitChangesByGraph.js";
export * from "./results/ConnectedResult"; export * from "./results/ConnectedResult.js";
export * from "./results/error/ErrorResult"; export * from "./results/error/ErrorResult.js";
export * from "./results/error/InvalidUriError"; export * from "./results/error/InvalidUriError.js";
export * from "./results/error/NotificationErrors"; export * from "./results/error/NotificationErrors.js";
export * from "./results/success/SuccessResult"; export * from "./results/success/SuccessResult.js";
export * from "./results/success/Unfetched"; export * from "./results/success/Unfetched.js";
export * from "./results/success/ReadSuccess"; export * from "./results/success/ReadSuccess.js";
export * from "./results/success/UpdateSuccess"; export * from "./results/success/UpdateSuccess.js";
export * from "./notifications/NotificationSubscription"; export * from "./notifications/NotificationSubscription.js";
export * from "./notifications/SubscriptionCallbacks"; export * from "./notifications/SubscriptionCallbacks.js";
export * from "./trackingProxy/TrackingProxyContext"; export * from "./trackingProxy/TrackingProxyContext.js";
export * from "./trackingProxy/TrackingSetProxy"; export * from "./trackingProxy/TrackingSetProxy.js";
export * from "./trackingProxy/TrackingSubjectProxy"; export * from "./trackingProxy/TrackingSubjectProxy.js";
export * from "./trackingProxy/createTrackingProxy"; export * from "./trackingProxy/createTrackingProxy.js";
export * from "./linkTraversal/ResourceLinkQuery"; export * from "./linkTraversal/ResourceLinkQuery.js";
export * from "./linkTraversal/exploreLinks"; export * from "./linkTraversal/exploreLinks.js";

@ -4,12 +4,12 @@ import type {
ILinkQuery, ILinkQuery,
LQInput, LQInput,
LQReturn, LQReturn,
} from "../types/ILinkQuery"; } from "../types/ILinkQuery.js";
import type { ConnectedPlugin } from "../types/ConnectedPlugin"; import type { ConnectedPlugin } from "../types/ConnectedPlugin.js";
import type { SubjectNode } from "@ldo/rdf-utils"; import type { SubjectNode } from "@ldo/rdf-utils";
import { exploreLinks } from "./exploreLinks"; import { exploreLinks } from "./exploreLinks.js";
import type { IConnectedLdoDataset } from "../types/IConnectedLdoDataset"; import type { IConnectedLdoDataset } from "../types/IConnectedLdoDataset.js";
import type { IConnectedLdoBuilder } from "../types/IConnectedLdoBuilder"; import type { IConnectedLdoBuilder } from "../types/IConnectedLdoBuilder.js";
import { v4 } from "uuid"; import { v4 } from "uuid";
import type { nodeEventListener } from "@ldo/subscribable-dataset"; import type { nodeEventListener } from "@ldo/subscribable-dataset";
import type { Quad } from "@rdfjs/types"; import type { Quad } from "@rdfjs/types";

@ -1,10 +1,10 @@
import type { LdoBase, ShapeType } from "@ldo/ldo"; import type { LdoBase, ShapeType } from "@ldo/ldo";
import type { ConnectedPlugin } from "../types/ConnectedPlugin"; import type { ConnectedPlugin } from "../types/ConnectedPlugin.js";
import type { SubjectNode } from "@ldo/rdf-utils"; import type { SubjectNode } from "@ldo/rdf-utils";
import type { LQInput } from "../types/ILinkQuery"; import type { LQInput } from "../types/ILinkQuery.js";
import { BasicLdSet } from "@ldo/jsonld-dataset-proxy"; import { BasicLdSet } from "@ldo/jsonld-dataset-proxy";
import type { IConnectedLdoDataset } from "../types/IConnectedLdoDataset"; import type { IConnectedLdoDataset } from "../types/IConnectedLdoDataset.js";
import { createTrackingProxyBuilder } from "../trackingProxy/createTrackingProxy"; import { createTrackingProxyBuilder } from "../trackingProxy/createTrackingProxy.js";
import type { nodeEventListener } from "@ldo/subscribable-dataset"; import type { nodeEventListener } from "@ldo/subscribable-dataset";
import type { Quad } from "@rdfjs/types"; import type { Quad } from "@rdfjs/types";

@ -2,13 +2,16 @@ import { startTransaction, type LdoBase, write, getDataset } from "@ldo/ldo";
import type { Quad } from "@rdfjs/types"; import type { Quad } from "@rdfjs/types";
import { _proxyContext, getProxyFromObject } from "@ldo/jsonld-dataset-proxy"; import { _proxyContext, getProxyFromObject } from "@ldo/jsonld-dataset-proxy";
import type { SubscribableDataset } from "@ldo/subscribable-dataset"; import type { SubscribableDataset } from "@ldo/subscribable-dataset";
import type { Resource } from "./Resource"; import type { Resource } from "./Resource.js";
import type { ConnectedLdoTransactionDataset } from "./ConnectedLdoTransactionDataset"; import type { ConnectedLdoTransactionDataset } from "./ConnectedLdoTransactionDataset.js";
import type { import type {
AggregateSuccess, AggregateSuccess,
SuccessResult, SuccessResult,
} from "./results/success/SuccessResult"; } from "./results/success/SuccessResult.js";
import type { AggregateError, ErrorResult } from "./results/error/ErrorResult"; import type {
AggregateError,
ErrorResult,
} from "./results/error/ErrorResult.js";
/** /**
* Begins tracking changes to eventually commit. * Begins tracking changes to eventually commit.

@ -1,8 +1,8 @@
import { v4 } from "uuid"; import { v4 } from "uuid";
import type { ConnectedPlugin } from "../types/ConnectedPlugin"; import type { ConnectedPlugin } from "../types/ConnectedPlugin.js";
import type { ConnectedContext } from "../types/ConnectedContext"; import type { ConnectedContext } from "../types/ConnectedContext.js";
import type { SubscriptionCallbacks } from "./SubscriptionCallbacks"; import type { SubscriptionCallbacks } from "./SubscriptionCallbacks.js";
import type { NotificationCallbackError } from "../results/error/NotificationErrors"; import type { NotificationCallbackError } from "../results/error/NotificationErrors.js";
/** /**
* @internal * @internal

@ -1,5 +1,5 @@
import type { Resource } from "../../Resource"; import type { Resource } from "../../Resource.js";
import type { ConnectedResult } from "../ConnectedResult"; import type { ConnectedResult } from "../ConnectedResult.js";
/** /**
* A result indicating that the request failed in some kind of way * A result indicating that the request failed in some kind of way

@ -1,5 +1,5 @@
import type { Resource } from "../../Resource"; import type { Resource } from "../../Resource.js";
import { ResourceError } from "./ErrorResult"; import { ResourceError } from "./ErrorResult.js";
/** /**
* An InvalidUriError is returned when a URI was provided that is not a valid * An InvalidUriError is returned when a URI was provided that is not a valid

@ -1,6 +1,6 @@
import type { Resource } from "../../Resource"; import type { Resource } from "../../Resource.js";
import type { UnexpectedResourceError } from "./ErrorResult"; import type { UnexpectedResourceError } from "./ErrorResult.js";
import { ResourceError } from "./ErrorResult"; import { ResourceError } from "./ErrorResult.js";
export type NotificationCallbackError<ResourceType extends Resource> = export type NotificationCallbackError<ResourceType extends Resource> =
| DisconnectedAttemptingReconnectError<ResourceType> | DisconnectedAttemptingReconnectError<ResourceType>

@ -1,5 +1,5 @@
import type { Resource } from "../../Resource"; import type { Resource } from "../../Resource.js";
import { ResourceSuccess } from "./SuccessResult"; import { ResourceSuccess } from "./SuccessResult.js";
/** /**
* Indicates that the request to read a resource was a success * Indicates that the request to read a resource was a success

@ -1,5 +1,5 @@
import type { Resource } from "../../Resource"; import type { Resource } from "../../Resource.js";
import type { ConnectedResult } from "../ConnectedResult"; import type { ConnectedResult } from "../ConnectedResult.js";
/** /**
* Indicates that some action taken by LDO was a success * Indicates that some action taken by LDO was a success

@ -1,5 +1,5 @@
import type { Resource } from "../../Resource"; import type { Resource } from "../../Resource.js";
import { ResourceSuccess } from "./SuccessResult"; import { ResourceSuccess } from "./SuccessResult.js";
/** /**
* Indicates that a specific resource is unfetched * Indicates that a specific resource is unfetched

@ -1,5 +1,5 @@
import type { Resource } from "../../Resource"; import type { Resource } from "../../Resource.js";
import { ResourceSuccess, SuccessResult } from "./SuccessResult"; import { ResourceSuccess, SuccessResult } from "./SuccessResult.js";
/** /**
* Indicates that an update request to a resource was successful * Indicates that an update request to a resource was successful

@ -10,8 +10,8 @@ import type {
SubscribableDataset, SubscribableDataset,
} from "@ldo/subscribable-dataset"; } from "@ldo/subscribable-dataset";
import type { BlankNode, NamedNode, Quad } from "@rdfjs/types"; import type { BlankNode, NamedNode, Quad } from "@rdfjs/types";
import { createTrackingSubjectProxy } from "./TrackingSubjectProxy"; import { createTrackingSubjectProxy } from "./TrackingSubjectProxy.js";
import { createTrackingSetProxy } from "./TrackingSetProxy"; import { createTrackingSetProxy } from "./TrackingSetProxy.js";
/** /**
* @internal * @internal

@ -1,5 +1,5 @@
import { createNewSetProxy, type SetProxy } from "@ldo/jsonld-dataset-proxy"; import { createNewSetProxy, type SetProxy } from "@ldo/jsonld-dataset-proxy";
import type { TrackingProxyContext } from "./TrackingProxyContext"; import type { TrackingProxyContext } from "./TrackingProxyContext.js";
import type { QuadMatch } from "@ldo/rdf-utils"; import type { QuadMatch } from "@ldo/rdf-utils";
/** /**

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

Loading…
Cancel
Save