@tinacms/graphql 0.0.0-20230829134521 → 0.0.0-20230829134542

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,7 +10,7 @@ declare type IndexStatusEvent = {
10
10
  declare type IndexStatusCallback = (event: IndexStatusEvent) => Promise<void>;
11
11
  export declare type OnPutCallback = (key: string, value: any) => Promise<void>;
12
12
  export declare type OnDeleteCallback = (key: string) => Promise<void>;
13
- export declare type CreateDatabase = {
13
+ export interface DatabaseArgs {
14
14
  bridge?: Bridge;
15
15
  level: Level;
16
16
  onPut?: (key: string, value: any) => Promise<void>;
@@ -18,8 +18,34 @@ export declare type CreateDatabase = {
18
18
  tinaDirectory?: string;
19
19
  indexStatusCallback?: IndexStatusCallback;
20
20
  version?: boolean;
21
+ }
22
+ export interface GitProvider {
23
+ onPut: (key: string, value: string) => Promise<void>;
24
+ onDelete: (key: string) => Promise<void>;
25
+ }
26
+ export declare type CreateDatabase = Omit<DatabaseArgs, 'level' | 'onPut' | 'onDelete'> & {
27
+ databaseAdapter: Level;
28
+ gitProvider: GitProvider;
29
+ /**
30
+ * @deprecated Use databaseAdapter instead
31
+ */
32
+ level?: Level;
33
+ /**
34
+ * @deprecated Use gitProvider instead
35
+ */
36
+ onPut?: OnPutCallback;
37
+ /**
38
+ * @deprecated Use gitProvider instead
39
+ */
40
+ onDelete?: OnDeleteCallback;
41
+ };
42
+ export declare type CreateLocalDatabaseArgs = Omit<DatabaseArgs, 'level'> & {
43
+ port?: number;
44
+ rootPath?: string;
21
45
  };
46
+ export declare const createLocalDatabase: (config?: CreateLocalDatabaseArgs) => Database;
22
47
  export declare const createDatabase: (config: CreateDatabase) => Database;
48
+ export declare const createDatabaseInternal: (config: DatabaseArgs) => Database;
23
49
  /** Options for {@link Database.query} **/
24
50
  export declare type QueryOptions = {
25
51
  fileExtension?: string;
@@ -33,7 +59,7 @@ export declare type QueryOptions = {
33
59
  folder?: string;
34
60
  };
35
61
  export declare class Database {
36
- config: CreateDatabase;
62
+ config: DatabaseArgs;
37
63
  bridge?: Bridge;
38
64
  rootLevel: Level;
39
65
  level: Level | undefined;
@@ -44,7 +70,7 @@ export declare class Database {
44
70
  private tinaSchema;
45
71
  private collectionIndexDefinitions;
46
72
  private _lookup;
47
- constructor(config: CreateDatabase);
73
+ constructor(config: DatabaseArgs);
48
74
  private collectionForPath;
49
75
  private getGeneratedFolder;
50
76
  private updateDatabaseVersion;
package/dist/index.d.ts CHANGED
@@ -3,9 +3,10 @@ import { buildDotTinaFiles } from './build';
3
3
  export { resolve } from './resolve';
4
4
  export { transformDocumentIntoPayload } from './resolver';
5
5
  export * from './resolver/error';
6
- export { createDatabase } from './database';
7
6
  export { TinaLevelClient } from './level/tinaLevel';
8
- export type { QueryOptions, Database, OnDeleteCallback, OnPutCallback, CreateDatabase, } from './database';
7
+ export type { Level } from './database/level';
8
+ export type { QueryOptions, OnDeleteCallback, OnPutCallback, DatabaseArgs, GitProvider, CreateDatabase, } from './database';
9
+ export { Database, createDatabaseInternal, createDatabase, createLocalDatabase, } from './database';
9
10
  import type { Config } from '@tinacms/schema-tools';
10
11
  export { getChangedFiles, getSha, shaExists } from './git';
11
12
  export { sequential, assertShape } from './util';
package/dist/index.js CHANGED
@@ -26,6 +26,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
26
26
  var src_exports = {};
27
27
  __export(src_exports, {
28
28
  AuditFileSystemBridge: () => AuditFileSystemBridge,
29
+ Database: () => Database,
29
30
  FilesystemBridge: () => FilesystemBridge,
30
31
  IsomorphicBridge: () => IsomorphicBridge,
31
32
  TinaFetchError: () => TinaFetchError,
@@ -37,6 +38,8 @@ __export(src_exports, {
37
38
  buildDotTinaFiles: () => buildDotTinaFiles,
38
39
  buildSchema: () => buildSchema,
39
40
  createDatabase: () => createDatabase,
41
+ createDatabaseInternal: () => createDatabaseInternal,
42
+ createLocalDatabase: () => createLocalDatabase,
40
43
  createSchema: () => createSchema,
41
44
  getChangedFiles: () => getChangedFiles,
42
45
  getSha: () => getSha,
@@ -5060,12 +5063,76 @@ var resolve = async ({
5060
5063
  }
5061
5064
  };
5062
5065
 
5066
+ // src/level/tinaLevel.ts
5067
+ var import_many_level = require("many-level");
5068
+ var import_readable_stream = require("readable-stream");
5069
+ var import_net = require("net");
5070
+ var TinaLevelClient = class extends import_many_level.ManyLevelGuest {
5071
+ constructor(port) {
5072
+ super();
5073
+ this._connected = false;
5074
+ this.port = port || 9e3;
5075
+ }
5076
+ openConnection() {
5077
+ if (this._connected)
5078
+ return;
5079
+ const socket = (0, import_net.connect)(this.port);
5080
+ (0, import_readable_stream.pipeline)(socket, this.createRpcStream(), socket, () => {
5081
+ this._connected = false;
5082
+ });
5083
+ this._connected = true;
5084
+ }
5085
+ };
5086
+
5063
5087
  // src/database/index.ts
5064
5088
  var import_path4 = __toESM(require("path"));
5065
5089
  var import_graphql5 = require("graphql");
5066
5090
  var import_micromatch2 = __toESM(require("micromatch"));
5067
5091
  var import_js_sha12 = __toESM(require("js-sha1"));
5092
+ var createLocalDatabase = (config) => {
5093
+ const level = new TinaLevelClient(config == null ? void 0 : config.port);
5094
+ level.openConnection();
5095
+ const fsBridge = new FilesystemBridge((config == null ? void 0 : config.rootPath) || process.cwd());
5096
+ return new Database({
5097
+ bridge: fsBridge,
5098
+ ...config || {},
5099
+ level
5100
+ });
5101
+ };
5068
5102
  var createDatabase = (config) => {
5103
+ if (config.onPut && config.onDelete) {
5104
+ console.warn(
5105
+ "onPut and onDelete are deprecated. Please use gitProvider.onPut and gitProvider.onDelete instead."
5106
+ );
5107
+ }
5108
+ if (config.level) {
5109
+ console.warn("level is deprecated. Please use databaseAdapter instead.");
5110
+ }
5111
+ if (config.onPut && config.onDelete && config.level && !config.databaseAdapter && !config.gitProvider) {
5112
+ return new Database({
5113
+ ...config,
5114
+ level: config.level
5115
+ });
5116
+ }
5117
+ if (!config.gitProvider) {
5118
+ throw new Error(
5119
+ "createDatabase requires a gitProvider. Please provide a gitProvider."
5120
+ );
5121
+ }
5122
+ if (!config.databaseAdapter) {
5123
+ throw new Error(
5124
+ "createDatabase requires a databaseAdapter. Please provide a databaseAdapter."
5125
+ );
5126
+ }
5127
+ return new Database({
5128
+ ...config,
5129
+ bridge: config.bridge,
5130
+ level: config.databaseAdapter,
5131
+ onPut: config.gitProvider.onPut.bind(config.gitProvider),
5132
+ onDelete: config.gitProvider.onDelete.bind(config.gitProvider)
5133
+ });
5134
+ };
5135
+ var createDatabaseInternal = (config) => {
5069
5136
  return new Database({
5070
5137
  ...config,
5071
5138
  bridge: config.bridge,
@@ -6086,27 +6153,6 @@ var _deleteIndexContent = async (database, documentPaths, enqueueOps, collection
6086
6153
  }
6087
6154
  };
6088
6155
 
6089
- // src/level/tinaLevel.ts
6090
- var import_many_level = require("many-level");
6091
- var import_readable_stream = require("readable-stream");
6092
- var import_net = require("net");
6093
- var TinaLevelClient = class extends import_many_level.ManyLevelGuest {
6094
- constructor(port) {
6095
- super();
6096
- this._connected = false;
6097
- this.port = port || 9e3;
6098
- }
6099
- openConnection() {
6100
- if (this._connected)
6101
- return;
6102
- const socket = (0, import_net.connect)(this.port);
6103
- (0, import_readable_stream.pipeline)(socket, this.createRpcStream(), socket, () => {
6104
- this._connected = false;
6105
- });
6106
- this._connected = true;
6107
- }
6108
- };
6109
-
6110
6156
  // src/git/index.ts
6111
6157
  var import_isomorphic_git = __toESM(require("isomorphic-git"));
6112
6158
  var import_fs_extra = __toESM(require("fs-extra"));
@@ -6643,6 +6689,7 @@ var buildSchema = async (config, flags) => {
6643
6689
  // Annotate the CommonJS export names for ESM import in node:
6644
6690
  0 && (module.exports = {
6645
6691
  AuditFileSystemBridge,
6692
+ Database,
6646
6693
  FilesystemBridge,
6647
6694
  IsomorphicBridge,
6648
6695
  TinaFetchError,
@@ -6654,6 +6701,8 @@ var buildSchema = async (config, flags) => {
6654
6701
  buildDotTinaFiles,
6655
6702
  buildSchema,
6656
6703
  createDatabase,
6704
+ createDatabaseInternal,
6705
+ createLocalDatabase,
6657
6706
  createSchema,
6658
6707
  getChangedFiles,
6659
6708
  getSha,
package/dist/index.mjs CHANGED
@@ -4991,12 +4991,76 @@ var resolve = async ({
4991
4991
  }
4992
4992
  };
4993
4993
 
4994
+ // src/level/tinaLevel.ts
4995
+ import { ManyLevelGuest } from "many-level";
4996
+ import { pipeline } from "readable-stream";
4997
+ import { connect } from "net";
4998
+ var TinaLevelClient = class extends ManyLevelGuest {
4999
+ constructor(port) {
5000
+ super();
5001
+ this._connected = false;
5002
+ this.port = port || 9e3;
5003
+ }
5004
+ openConnection() {
5005
+ if (this._connected)
5006
+ return;
5007
+ const socket = connect(this.port);
5008
+ pipeline(socket, this.createRpcStream(), socket, () => {
5009
+ this._connected = false;
5010
+ });
5011
+ this._connected = true;
5012
+ }
5013
+ };
5014
+
4994
5015
  // src/database/index.ts
4995
5016
  import path4 from "path";
4996
5017
  import { GraphQLError as GraphQLError4 } from "graphql";
4997
5018
  import micromatch2 from "micromatch";
4998
5019
  import sha2 from "js-sha1";
5020
+ var createLocalDatabase = (config) => {
5021
+ const level = new TinaLevelClient(config?.port);
5022
+ level.openConnection();
5023
+ const fsBridge = new FilesystemBridge(config?.rootPath || process.cwd());
5024
+ return new Database({
5025
+ bridge: fsBridge,
5026
+ ...config || {},
5027
+ level
5028
+ });
5029
+ };
4999
5030
  var createDatabase = (config) => {
5031
+ if (config.onPut && config.onDelete) {
5032
+ console.warn(
5033
+ "onPut and onDelete are deprecated. Please use gitProvider.onPut and gitProvider.onDelete instead."
5034
+ );
5035
+ }
5036
+ if (config.level) {
5037
+ console.warn("level is deprecated. Please use databaseAdapter instead.");
5038
+ }
5039
+ if (config.onPut && config.onDelete && config.level && !config.databaseAdapter && !config.gitProvider) {
5040
+ return new Database({
5041
+ ...config,
5042
+ level: config.level
5043
+ });
5044
+ }
5045
+ if (!config.gitProvider) {
5046
+ throw new Error(
5047
+ "createDatabase requires a gitProvider. Please provide a gitProvider."
5048
+ );
5049
+ }
5050
+ if (!config.databaseAdapter) {
5051
+ throw new Error(
5052
+ "createDatabase requires a databaseAdapter. Please provide a databaseAdapter."
5053
+ );
5054
+ }
5055
+ return new Database({
5056
+ ...config,
5057
+ bridge: config.bridge,
5058
+ level: config.databaseAdapter,
5059
+ onPut: config.gitProvider.onPut.bind(config.gitProvider),
5060
+ onDelete: config.gitProvider.onDelete.bind(config.gitProvider)
5061
+ });
5062
+ };
5063
+ var createDatabaseInternal = (config) => {
5000
5064
  return new Database({
5001
5065
  ...config,
5002
5066
  bridge: config.bridge,
@@ -6015,27 +6079,6 @@ var _deleteIndexContent = async (database, documentPaths, enqueueOps, collection
6015
6079
  }
6016
6080
  };
6017
6081
 
6018
- // src/level/tinaLevel.ts
6019
- import { ManyLevelGuest } from "many-level";
6020
- import { pipeline } from "readable-stream";
6021
- import { connect } from "net";
6022
- var TinaLevelClient = class extends ManyLevelGuest {
6023
- constructor(port) {
6024
- super();
6025
- this._connected = false;
6026
- this.port = port || 9e3;
6027
- }
6028
- openConnection() {
6029
- if (this._connected)
6030
- return;
6031
- const socket = connect(this.port);
6032
- pipeline(socket, this.createRpcStream(), socket, () => {
6033
- this._connected = false;
6034
- });
6035
- this._connected = true;
6036
- }
6037
- };
6038
-
6039
6082
  // src/git/index.ts
6040
6083
  import git from "isomorphic-git";
6041
6084
  import fs from "fs-extra";
@@ -6571,6 +6614,7 @@ var buildSchema = async (config, flags) => {
6571
6614
  };
6572
6615
  export {
6573
6616
  AuditFileSystemBridge,
6617
+ Database,
6574
6618
  FilesystemBridge,
6575
6619
  IsomorphicBridge,
6576
6620
  TinaFetchError,
@@ -6582,6 +6626,8 @@ export {
6582
6626
  buildDotTinaFiles,
6583
6627
  buildSchema,
6584
6628
  createDatabase,
6629
+ createDatabaseInternal,
6630
+ createLocalDatabase,
6585
6631
  createSchema,
6586
6632
  getChangedFiles,
6587
6633
  getSha,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tinacms/graphql",
3
- "version": "0.0.0-20230829134521",
3
+ "version": "0.0.0-20230829134542",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.mjs",
6
6
  "typings": "dist/index.d.ts",
@@ -24,8 +24,6 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@iarna/toml": "^2.2.5",
27
- "@tinacms/mdx": "1.3.18",
28
- "@tinacms/schema-tools": "1.4.12",
29
27
  "abstract-level": "^1.0.3",
30
28
  "body-parser": "^1.19.0",
31
29
  "cors": "^2.8.5",
@@ -47,7 +45,9 @@
47
45
  "micromatch": "4.0.5",
48
46
  "normalize-path": "^3.0.0",
49
47
  "readable-stream": "^4.3.0",
50
- "yup": "^0.32.9"
48
+ "yup": "^0.32.9",
49
+ "@tinacms/mdx": "1.3.18",
50
+ "@tinacms/schema-tools": "1.4.12"
51
51
  },
52
52
  "publishConfig": {
53
53
  "registry": "https://registry.npmjs.org"
@@ -57,8 +57,6 @@
57
57
  "directory": "packages/tina-graphql"
58
58
  },
59
59
  "devDependencies": {
60
- "@tinacms/schema-tools": "1.4.12",
61
- "@tinacms/scripts": "1.1.2",
62
60
  "@types/cors": "^2.8.7",
63
61
  "@types/estree": "^0.0.50",
64
62
  "@types/express": "^4.17.8",
@@ -81,7 +79,9 @@
81
79
  "jest-matcher-utils": "^29.5.0",
82
80
  "memory-level": "^1.0.0",
83
81
  "nodemon": "2.0.19",
84
- "typescript": "4.3.5"
82
+ "typescript": "4.3.5",
83
+ "@tinacms/schema-tools": "1.4.12",
84
+ "@tinacms/scripts": "1.1.2"
85
85
  },
86
86
  "scripts": {
87
87
  "types": "pnpm tsc",