@dolthub/proto-resource-utils 0.1.0

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.
@@ -0,0 +1,93 @@
1
+ type FromResourceOptions = {
2
+ validate?: boolean;
3
+ throwValidationError?: boolean;
4
+ };
5
+ type ToResourceOptions = FromResourceOptions;
6
+ type ResourceNameConverter<T> = {
7
+ toParams: (resourceName: string, opts?: Partial<FromResourceOptions>) => T;
8
+ fromParams: (resourceParams: T, opts?: Partial<ToResourceOptions>) => string;
9
+ validate: (resourceName: string) => boolean;
10
+ getValidationRegex: () => RegExp;
11
+ getValidationPattern: () => string;
12
+ };
13
+
14
+ type NamedResource$3 = {
15
+ name: string;
16
+ displayName?: string;
17
+ };
18
+ type Comparator<O extends NamedResource$3> = (t1: O, t2: O) => number;
19
+ type Comparators<O extends NamedResource$3> = {
20
+ byName: Comparator<O>;
21
+ byResourceName: Comparator<O>;
22
+ [fnName: string]: Comparator<O>;
23
+ };
24
+ type Sorter<O extends NamedResource$3> = (ts: O[], desc?: boolean) => O[];
25
+ type Sorters<O extends NamedResource$3> = {
26
+ [K in keyof Comparators<O>]: Sorter<O>;
27
+ };
28
+ type Objectable<O> = {
29
+ toObject: () => O;
30
+ };
31
+ type NamedObjectable<O extends NamedResource$3> = {
32
+ getDisplayName?: () => string;
33
+ getName: () => string;
34
+ } & Objectable<O>;
35
+ type ResourceUtils<O extends NamedResource$3, T extends NamedObjectable<O>, P extends object, U extends object = object> = {
36
+ cmp: Comparators<O>;
37
+ rn: ResourceNameConverter<P>;
38
+ sort: Sorters<O>;
39
+ displayName: (r: T | O) => string;
40
+ fromObject: (o: Partial<O>) => T;
41
+ } & U;
42
+
43
+ type NamedResource$2 = {
44
+ name: string;
45
+ };
46
+ declare function byHash(o1: NamedResource$2, o2: NamedResource$2): number;
47
+
48
+ type NamedResource$1 = {
49
+ name: string;
50
+ };
51
+ declare function byName(o1: NamedResource$1, o2: NamedResource$1): number;
52
+
53
+ type NamedResource = {
54
+ name: string;
55
+ };
56
+ declare function byResourceName(o1: NamedResource, o2: NamedResource): number;
57
+
58
+ declare function comparatorsToSorters<T extends NamedResource$3>(cmps: Comparators<T>): Sorters<T>;
59
+
60
+ declare function displayName<O extends NamedObjectable<NamedResource$3>>(r: O | NamedResource$3): string;
61
+
62
+ declare function doNameValidation<T>(resourceName: string, resourceTypeName: string, converter: ResourceNameConverter<T>, o?: Partial<FromResourceOptions>): void;
63
+
64
+ declare function doParamValidation(obj: {
65
+ [paramName: string]: string;
66
+ }, resourceTypeName: string, getValidator: (paramName: string) => (value: string) => boolean, o?: Partial<ToResourceOptions>): void;
67
+ declare class ResourceParamValidationError extends Error {
68
+ }
69
+
70
+ declare const validResourceSegmentPattern = "[-a-zA-Z0-9_]{3,32}";
71
+ declare const validClientCredentialIdPattern = "[0-9a-v]{45}";
72
+ declare const validEmailPattern = "[a-zA-Z0-9.!#$%&\u2019*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*";
73
+ declare const validEmailOrResourcePattern = "([a-zA-Z0-9.!#$%&\u2019*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*|[-a-zA-Z0-9_]{3,32})";
74
+ declare const validNumberPattern = "[1-9][0-9]*";
75
+ declare const validLongResourcePattern = "[-a-zA-Z0-9_]{3,36}";
76
+ declare const validUuidPattern = "[a-f0-9-]{36}";
77
+ declare const validBackupIdPattern = "[0-9]{8}T[0-9]{6}.[0-9]{3}";
78
+ declare const validBranchNamePattern: string;
79
+
80
+ declare const validResourceSegmentPattern_d_validBackupIdPattern: typeof validBackupIdPattern;
81
+ declare const validResourceSegmentPattern_d_validBranchNamePattern: typeof validBranchNamePattern;
82
+ declare const validResourceSegmentPattern_d_validClientCredentialIdPattern: typeof validClientCredentialIdPattern;
83
+ declare const validResourceSegmentPattern_d_validEmailOrResourcePattern: typeof validEmailOrResourcePattern;
84
+ declare const validResourceSegmentPattern_d_validEmailPattern: typeof validEmailPattern;
85
+ declare const validResourceSegmentPattern_d_validLongResourcePattern: typeof validLongResourcePattern;
86
+ declare const validResourceSegmentPattern_d_validNumberPattern: typeof validNumberPattern;
87
+ declare const validResourceSegmentPattern_d_validResourceSegmentPattern: typeof validResourceSegmentPattern;
88
+ declare const validResourceSegmentPattern_d_validUuidPattern: typeof validUuidPattern;
89
+ declare namespace validResourceSegmentPattern_d {
90
+ export { validResourceSegmentPattern_d_validBackupIdPattern as validBackupIdPattern, validResourceSegmentPattern_d_validBranchNamePattern as validBranchNamePattern, validResourceSegmentPattern_d_validClientCredentialIdPattern as validClientCredentialIdPattern, validResourceSegmentPattern_d_validEmailOrResourcePattern as validEmailOrResourcePattern, validResourceSegmentPattern_d_validEmailPattern as validEmailPattern, validResourceSegmentPattern_d_validLongResourcePattern as validLongResourcePattern, validResourceSegmentPattern_d_validNumberPattern as validNumberPattern, validResourceSegmentPattern_d_validResourceSegmentPattern as validResourceSegmentPattern, validResourceSegmentPattern_d_validUuidPattern as validUuidPattern };
91
+ }
92
+
93
+ export { type Comparators, type NamedResource$3 as NamedResource, type ResourceNameConverter, ResourceParamValidationError, type ResourceUtils, type Sorter, type Sorters, type ToResourceOptions, byHash, byName, byResourceName, comparatorsToSorters, displayName, doNameValidation, doParamValidation, validResourceSegmentPattern_d as validResourceSegmentPattern };
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@dolthub/proto-resource-utils",
3
+ "author": "DoltHub",
4
+ "description": "Utilities for handling Google protobuf resources and names",
5
+ "version": "0.1.0",
6
+ "main": "dist/cjs/index.js",
7
+ "module": "dist/esm/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "keywords": [
13
+ "web",
14
+ "utils",
15
+ "frontend"
16
+ ],
17
+ "packageManager": "yarn@4.0.2",
18
+ "scripts": {
19
+ "compile": "tsc -b",
20
+ "build": "rollup -c --bundleConfigAsCjs",
21
+ "dbuild": "yarn compile && yarn build",
22
+ "lint": "eslint --cache --ext .ts,.js,.tsx,.jsx src",
23
+ "prettier": "prettier --check 'src/**/*.{js,ts}'",
24
+ "prettier-fix": "prettier --write 'src/**/*.{js,ts}'",
25
+ "npm:publish": "yarn dbuild && npm publish",
26
+ "test": "jest",
27
+ "yalc:publish": "yarn dbuild && yalc publish",
28
+ "yalc:push": "yarn dbuild && yalc push"
29
+ },
30
+ "devDependencies": {
31
+ "@babel/core": "^7.23.7",
32
+ "@babel/preset-env": "^7.23.8",
33
+ "@babel/preset-typescript": "^7.23.3",
34
+ "@rollup/plugin-commonjs": "^25.0.7",
35
+ "@rollup/plugin-node-resolve": "^15.2.3",
36
+ "@rollup/plugin-typescript": "^11.1.5",
37
+ "@types/eslint": "^8",
38
+ "@types/jest": "^29.5.11",
39
+ "@types/lodash": "^4",
40
+ "@types/rollup-plugin-peer-deps-external": "^2",
41
+ "@typescript-eslint/eslint-plugin": "^6.18.1",
42
+ "@typescript-eslint/parser": "^6.18.1",
43
+ "babel-jest": "^29.7.0",
44
+ "eslint": "^8.56.0",
45
+ "jest": "^29.7.0",
46
+ "prettier": "^3.1.0",
47
+ "rollup": "^4.9.4",
48
+ "rollup-plugin-dts": "^6.1.0",
49
+ "rollup-plugin-peer-deps-external": "^2.2.4",
50
+ "rollup-plugin-terser": "^7.0.2",
51
+ "typescript": "^5.3.3",
52
+ "yalc": "^1.0.0-pre.53"
53
+ },
54
+ "repository": {
55
+ "type": "git",
56
+ "url": "git+https://github.com/dolthub/react-library.git"
57
+ },
58
+ "bugs": {
59
+ "url": "https://github.com/dolthub/react-library/issues"
60
+ },
61
+ "dependencies": {
62
+ "lodash": "^4.17.21"
63
+ }
64
+ }