@isrd-isi-edu/ermrestjs 2.0.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.
- package/LICENSE +202 -0
- package/README.md +55 -0
- package/dist/ermrest.d.ts +3481 -0
- package/dist/ermrest.js +45 -0
- package/dist/ermrest.js.gz +0 -0
- package/dist/ermrest.js.map +1 -0
- package/dist/ermrest.min.js +45 -0
- package/dist/ermrest.min.js.gz +0 -0
- package/dist/ermrest.min.js.map +1 -0
- package/dist/ermrest.ver.txt +1 -0
- package/dist/stats.html +4949 -0
- package/js/ag_reference.js +1483 -0
- package/js/core.js +4931 -0
- package/js/datapath.js +336 -0
- package/js/export.js +956 -0
- package/js/filters.js +192 -0
- package/js/format.js +344 -0
- package/js/hatrac.js +1130 -0
- package/js/json_ld_validator.js +285 -0
- package/js/parser.js +2320 -0
- package/js/setup/node.js +27 -0
- package/js/utils/helpers.js +2300 -0
- package/js/utils/json_ld_schema.js +680 -0
- package/js/utils/pseudocolumn_helpers.js +2196 -0
- package/package.json +79 -0
- package/src/index.ts +204 -0
- package/src/models/comment.ts +14 -0
- package/src/models/deferred-promise.ts +16 -0
- package/src/models/display-name.ts +5 -0
- package/src/models/errors.ts +408 -0
- package/src/models/path-prefix-alias-mapping.ts +130 -0
- package/src/models/reference/bulk-create-foreign-key-object.ts +133 -0
- package/src/models/reference/citation.ts +98 -0
- package/src/models/reference/contextualize.ts +535 -0
- package/src/models/reference/google-dataset-metadata.ts +72 -0
- package/src/models/reference/index.ts +14 -0
- package/src/models/reference/page.ts +520 -0
- package/src/models/reference/reference-aggregate-fn.ts +37 -0
- package/src/models/reference/reference.ts +2813 -0
- package/src/models/reference/related-reference.ts +467 -0
- package/src/models/reference/tuple.ts +652 -0
- package/src/models/reference-column/asset-pseudo-column.ts +498 -0
- package/src/models/reference-column/column-aggregate.ts +313 -0
- package/src/models/reference-column/facet-column.ts +1380 -0
- package/src/models/reference-column/foreign-key-pseudo-column.ts +626 -0
- package/src/models/reference-column/inbound-foreign-key-pseudo-column.ts +131 -0
- package/src/models/reference-column/index.ts +13 -0
- package/src/models/reference-column/key-pseudo-column.ts +236 -0
- package/src/models/reference-column/pseudo-column.ts +850 -0
- package/src/models/reference-column/reference-column.ts +740 -0
- package/src/models/source-object-node.ts +156 -0
- package/src/models/source-object-wrapper.ts +694 -0
- package/src/models/table-source-definitions.ts +98 -0
- package/src/services/authn.ts +43 -0
- package/src/services/catalog.ts +37 -0
- package/src/services/config.ts +202 -0
- package/src/services/error.ts +247 -0
- package/src/services/handlebars.ts +607 -0
- package/src/services/history.ts +136 -0
- package/src/services/http.ts +536 -0
- package/src/services/logger.ts +70 -0
- package/src/services/mustache.ts +0 -0
- package/src/utils/column-utils.ts +308 -0
- package/src/utils/constants.ts +526 -0
- package/src/utils/markdown-utils.ts +855 -0
- package/src/utils/reference-utils.ts +1658 -0
- package/src/utils/template-utils.ts +0 -0
- package/src/utils/type-utils.ts +89 -0
- package/src/utils/value-utils.ts +127 -0
- package/tsconfig.json +30 -0
- package/vite.config.mts +104 -0
package/package.json
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@isrd-isi-edu/ermrestjs",
|
|
3
|
+
"description": "ERMrest client library in JavaScript",
|
|
4
|
+
"version": "2.0.0",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"engines": {
|
|
7
|
+
"node": ">= 20.0.0",
|
|
8
|
+
"npm": ">=6.0.0"
|
|
9
|
+
},
|
|
10
|
+
"main": "dist/ermrest.js",
|
|
11
|
+
"module": "dist/ermrest.min.js",
|
|
12
|
+
"types": "dist/ermrest.d.ts",
|
|
13
|
+
"files": [
|
|
14
|
+
"dist",
|
|
15
|
+
"js",
|
|
16
|
+
"src",
|
|
17
|
+
"tsconfig.json",
|
|
18
|
+
"vite.config.mts"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "tsc && vite build",
|
|
22
|
+
"pretest": "make deps-test && make dist-w-deps",
|
|
23
|
+
"deploy": "make deploy",
|
|
24
|
+
"test": "make test",
|
|
25
|
+
"lint": "eslint src js --quiet",
|
|
26
|
+
"lint-w-warn": "eslint src js",
|
|
27
|
+
"format": "prettier --write src"
|
|
28
|
+
},
|
|
29
|
+
"repository": {
|
|
30
|
+
"type": "git",
|
|
31
|
+
"url": "git+https://github.com/informatics-isi-edu/ermrestjs.git"
|
|
32
|
+
},
|
|
33
|
+
"bugs": {
|
|
34
|
+
"url": "https://github.com/informatics-isi-edu/ermrestjs/issues"
|
|
35
|
+
},
|
|
36
|
+
"homepage": "https://github.com/informatics-isi-edu/ermrestjs#readme",
|
|
37
|
+
"keywords": [
|
|
38
|
+
"database",
|
|
39
|
+
"rest",
|
|
40
|
+
"postgresql",
|
|
41
|
+
"library"
|
|
42
|
+
],
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"@types/markdown-it": "^14.1.2",
|
|
45
|
+
"@types/q": "^1.5.8",
|
|
46
|
+
"axios": "1.12.2",
|
|
47
|
+
"handlebars": "4.7.8",
|
|
48
|
+
"lz-string": "^1.5.0",
|
|
49
|
+
"markdown-it": "12.3.2",
|
|
50
|
+
"moment": "2.29.4",
|
|
51
|
+
"moment-timezone": "0.5.48",
|
|
52
|
+
"mustache": "x",
|
|
53
|
+
"q": "1.5.1",
|
|
54
|
+
"spark-md5": "^3.0.0",
|
|
55
|
+
"terser": "^5.43.1",
|
|
56
|
+
"typescript": "~5.8.3",
|
|
57
|
+
"vite": "^6.3.6",
|
|
58
|
+
"vite-plugin-compression2": "^2.2.1"
|
|
59
|
+
},
|
|
60
|
+
"devDependencies": {
|
|
61
|
+
"@eslint/js": "^9.36.0",
|
|
62
|
+
"@isrd-isi-edu/ermrest-data-utils": "0.0.5",
|
|
63
|
+
"@types/node": "^24.6.1",
|
|
64
|
+
"eslint": "^9.36.0",
|
|
65
|
+
"eslint-config-prettier": "^10.1.8",
|
|
66
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
67
|
+
"file-api": "^0.10.4",
|
|
68
|
+
"globals": "^16.4.0",
|
|
69
|
+
"jasmine": "2.5.3",
|
|
70
|
+
"jasmine-expect": "3.7.1",
|
|
71
|
+
"jasmine-spec-reporter": "2.5.0",
|
|
72
|
+
"nock": "13.5.4",
|
|
73
|
+
"prettier": "^3.6.2",
|
|
74
|
+
"require-reload": "^0.2.2",
|
|
75
|
+
"rollup-plugin-visualizer": "^6.0.3",
|
|
76
|
+
"typescript-eslint": "^8.45.0",
|
|
77
|
+
"vite-plugin-dts": "^4.5.4"
|
|
78
|
+
}
|
|
79
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file contains the functions and classes that we want to expose for standalone javascript ermrest bundle
|
|
3
|
+
* vite will attach these to 'ERMrest' namespace which will allow accessing them using `window.ERMrest`
|
|
4
|
+
*/
|
|
5
|
+
import moment from 'moment-timezone';
|
|
6
|
+
|
|
7
|
+
// model
|
|
8
|
+
import {
|
|
9
|
+
ERMrestError,
|
|
10
|
+
TimedOutError,
|
|
11
|
+
BadRequestError,
|
|
12
|
+
QueryTimeoutError,
|
|
13
|
+
UnauthorizedError,
|
|
14
|
+
ForbiddenError,
|
|
15
|
+
NotFoundError,
|
|
16
|
+
ConflictError,
|
|
17
|
+
IntegrityConflictError,
|
|
18
|
+
DuplicateConflictError,
|
|
19
|
+
PreconditionFailedError,
|
|
20
|
+
InternalServerError,
|
|
21
|
+
BadGatewayError,
|
|
22
|
+
ServiceUnavailableError,
|
|
23
|
+
NoConnectionError,
|
|
24
|
+
InvalidFacetOperatorError,
|
|
25
|
+
InvalidCustomFacetOperatorError,
|
|
26
|
+
InvalidFilterOperatorError,
|
|
27
|
+
InvalidSortCriteria,
|
|
28
|
+
InvalidPageCriteria,
|
|
29
|
+
InvalidInputError,
|
|
30
|
+
InvalidServerResponse,
|
|
31
|
+
MalformedURIError,
|
|
32
|
+
NoDataChangedError,
|
|
33
|
+
BatchUnlinkResponse,
|
|
34
|
+
BatchDeleteResponse,
|
|
35
|
+
UnsupportedFilters,
|
|
36
|
+
} from '@isrd-isi-edu/ermrestjs/src/models/errors';
|
|
37
|
+
|
|
38
|
+
// services
|
|
39
|
+
import CatalogService from '@isrd-isi-edu/ermrestjs/src/services/catalog';
|
|
40
|
+
import ConfigService from '@isrd-isi-edu/ermrestjs/src/services/config';
|
|
41
|
+
import ErrorService from '@isrd-isi-edu/ermrestjs/src/services/error';
|
|
42
|
+
import AuthnService from '@isrd-isi-edu/ermrestjs/src/services/authn';
|
|
43
|
+
import HTTPService from '@isrd-isi-edu/ermrestjs/src/services/http';
|
|
44
|
+
|
|
45
|
+
// utils
|
|
46
|
+
import { contextHeaderName, ENV_IS_NODE } from '@isrd-isi-edu/ermrestjs/src/utils/constants';
|
|
47
|
+
import { fixedEncodeURIComponent } from '@isrd-isi-edu/ermrestjs/src/utils/value-utils';
|
|
48
|
+
import { renderMarkdown } from '@isrd-isi-edu/ermrestjs/src/utils/markdown-utils';
|
|
49
|
+
|
|
50
|
+
// legacy imports
|
|
51
|
+
import { Checksum, Upload } from '@isrd-isi-edu/ermrestjs/js/hatrac';
|
|
52
|
+
import { onload, getElapsedTime } from '@isrd-isi-edu/ermrestjs/js/setup/node';
|
|
53
|
+
import printf from '@isrd-isi-edu/ermrestjs/js/format';
|
|
54
|
+
import { resolve, _createPage } from '@isrd-isi-edu/ermrestjs/src/models/reference';
|
|
55
|
+
import { ermrestFactory } from '@isrd-isi-edu/ermrestjs/js/core';
|
|
56
|
+
import { parse, createPath, createSearchPath, createLocation } from '@isrd-isi-edu/ermrestjs/js/parser';
|
|
57
|
+
import {
|
|
58
|
+
_currDate,
|
|
59
|
+
decodeFacet,
|
|
60
|
+
encodeFacet,
|
|
61
|
+
encodeFacetString,
|
|
62
|
+
_formatUtils,
|
|
63
|
+
processMarkdownPattern,
|
|
64
|
+
renderMustacheTemplate,
|
|
65
|
+
_validateMustacheTemplate,
|
|
66
|
+
} from '@isrd-isi-edu/ermrestjs/js/utils/helpers';
|
|
67
|
+
import {
|
|
68
|
+
AttributeGroupColumn,
|
|
69
|
+
AttributeGroupReference,
|
|
70
|
+
AttributeGroupLocation,
|
|
71
|
+
BucketAttributeGroupReference,
|
|
72
|
+
} from '@isrd-isi-edu/ermrestjs/js/ag_reference';
|
|
73
|
+
import { BinaryPredicate } from '@isrd-isi-edu/ermrestjs/js/filters';
|
|
74
|
+
import { DataPath } from '@isrd-isi-edu/ermrestjs/js/datapath';
|
|
75
|
+
import HandlebarsService from '@isrd-isi-edu/ermrestjs/src/services/handlebars';
|
|
76
|
+
import { Exporter } from '@isrd-isi-edu/ermrestjs/js/export';
|
|
77
|
+
import validateJSONLD from '@isrd-isi-edu/ermrestjs/js/json_ld_validator.js';
|
|
78
|
+
import HistoryService from '@isrd-isi-edu/ermrestjs/src/services/history';
|
|
79
|
+
|
|
80
|
+
const logError = ErrorService.logError;
|
|
81
|
+
const responseToError = ErrorService.responseToError;
|
|
82
|
+
|
|
83
|
+
const configure = ConfigService.configure;
|
|
84
|
+
const appLinkFn = ConfigService.setAppLinkFn;
|
|
85
|
+
const setClientConfig = ConfigService.setClientConfig;
|
|
86
|
+
const systemColumnsHeuristicsMode = ConfigService.setSystemColumnsHeuristicsMode;
|
|
87
|
+
const resetUserCookie = ConfigService.resetUserCookie;
|
|
88
|
+
const setUserCookie = ConfigService.setUserCookie;
|
|
89
|
+
|
|
90
|
+
const setClientSession = AuthnService.setClientSession;
|
|
91
|
+
|
|
92
|
+
const _certifyContextHeader = HTTPService.certifyContextHeader;
|
|
93
|
+
const setHTTP401Handler = HTTPService.setHTTP401Handler;
|
|
94
|
+
const onHTTPSuccess = HTTPService.setOnHTTPSuccess;
|
|
95
|
+
|
|
96
|
+
const renderHandlebarsTemplate = HandlebarsService.render;
|
|
97
|
+
|
|
98
|
+
const _clearConstraintNames = CatalogService.clearConstraintNames;
|
|
99
|
+
|
|
100
|
+
// chaise relies on moment
|
|
101
|
+
if (!ENV_IS_NODE) {
|
|
102
|
+
window.moment = moment;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export {
|
|
106
|
+
// services
|
|
107
|
+
// ConfigService,
|
|
108
|
+
// ErrorService,
|
|
109
|
+
// HTTPService,
|
|
110
|
+
AuthnService,
|
|
111
|
+
Exporter,
|
|
112
|
+
HistoryService,
|
|
113
|
+
|
|
114
|
+
// constants
|
|
115
|
+
contextHeaderName,
|
|
116
|
+
|
|
117
|
+
// functions
|
|
118
|
+
resolve,
|
|
119
|
+
configure,
|
|
120
|
+
appLinkFn,
|
|
121
|
+
_certifyContextHeader,
|
|
122
|
+
ermrestFactory,
|
|
123
|
+
fixedEncodeURIComponent,
|
|
124
|
+
decodeFacet,
|
|
125
|
+
encodeFacet,
|
|
126
|
+
setClientConfig,
|
|
127
|
+
/**
|
|
128
|
+
* @deprecated
|
|
129
|
+
* use `AuthnService.setClientSession` instead
|
|
130
|
+
*/
|
|
131
|
+
setClientSession,
|
|
132
|
+
systemColumnsHeuristicsMode,
|
|
133
|
+
onHTTPSuccess,
|
|
134
|
+
setHTTP401Handler,
|
|
135
|
+
getElapsedTime,
|
|
136
|
+
onload,
|
|
137
|
+
|
|
138
|
+
// markdown/template/print
|
|
139
|
+
processMarkdownPattern,
|
|
140
|
+
renderHandlebarsTemplate,
|
|
141
|
+
renderMarkdown,
|
|
142
|
+
renderMustacheTemplate,
|
|
143
|
+
|
|
144
|
+
// parser
|
|
145
|
+
parse,
|
|
146
|
+
createPath,
|
|
147
|
+
createSearchPath,
|
|
148
|
+
createLocation,
|
|
149
|
+
|
|
150
|
+
// attribute group
|
|
151
|
+
AttributeGroupColumn,
|
|
152
|
+
AttributeGroupReference,
|
|
153
|
+
AttributeGroupLocation,
|
|
154
|
+
BucketAttributeGroupReference,
|
|
155
|
+
|
|
156
|
+
// hatrac
|
|
157
|
+
Upload,
|
|
158
|
+
Checksum,
|
|
159
|
+
|
|
160
|
+
// error:
|
|
161
|
+
logError,
|
|
162
|
+
responseToError,
|
|
163
|
+
ERMrestError,
|
|
164
|
+
TimedOutError,
|
|
165
|
+
BadRequestError,
|
|
166
|
+
QueryTimeoutError,
|
|
167
|
+
UnauthorizedError,
|
|
168
|
+
ForbiddenError,
|
|
169
|
+
NotFoundError,
|
|
170
|
+
ConflictError,
|
|
171
|
+
IntegrityConflictError,
|
|
172
|
+
DuplicateConflictError,
|
|
173
|
+
PreconditionFailedError,
|
|
174
|
+
InternalServerError,
|
|
175
|
+
BadGatewayError,
|
|
176
|
+
ServiceUnavailableError,
|
|
177
|
+
NoConnectionError,
|
|
178
|
+
InvalidFacetOperatorError,
|
|
179
|
+
InvalidCustomFacetOperatorError,
|
|
180
|
+
InvalidFilterOperatorError,
|
|
181
|
+
InvalidSortCriteria,
|
|
182
|
+
InvalidPageCriteria,
|
|
183
|
+
InvalidInputError,
|
|
184
|
+
InvalidServerResponse,
|
|
185
|
+
MalformedURIError,
|
|
186
|
+
NoDataChangedError,
|
|
187
|
+
BatchUnlinkResponse,
|
|
188
|
+
BatchDeleteResponse,
|
|
189
|
+
UnsupportedFilters,
|
|
190
|
+
|
|
191
|
+
// used for testing
|
|
192
|
+
resetUserCookie,
|
|
193
|
+
setUserCookie,
|
|
194
|
+
printf,
|
|
195
|
+
_clearConstraintNames,
|
|
196
|
+
_createPage,
|
|
197
|
+
_formatUtils,
|
|
198
|
+
encodeFacetString,
|
|
199
|
+
_validateMustacheTemplate,
|
|
200
|
+
_currDate,
|
|
201
|
+
BinaryPredicate,
|
|
202
|
+
DataPath,
|
|
203
|
+
validateJSONLD,
|
|
204
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TODO I added this to replace the usage of Q.defer().
|
|
3
|
+
* But doing so broke the flow-control of chaise. We should investigate this later so we can remove Q.
|
|
4
|
+
*/
|
|
5
|
+
export default class DeferredPromise<T> {
|
|
6
|
+
promise: Promise<T>;
|
|
7
|
+
resolve!: (value: T | PromiseLike<T>) => void;
|
|
8
|
+
reject!: (reason?: any) => void;
|
|
9
|
+
|
|
10
|
+
constructor() {
|
|
11
|
+
this.promise = new Promise<T>((resolve, reject) => {
|
|
12
|
+
this.resolve = resolve;
|
|
13
|
+
this.reject = reject;
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|