@gen3/core 0.12.23 → 0.12.25
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/dist/cjs/constants.js +1 -0
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/index.js +1117 -891
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/server.js +1 -0
- package/dist/cjs/server.js.map +1 -1
- package/dist/constants.d.ts +2 -1
- package/dist/dts/constants.d.ts +1 -0
- package/dist/dts/constants.d.ts.map +1 -1
- package/dist/dts/features/cohortComparison/cohortFacetSlice.d.ts +201 -0
- package/dist/dts/features/cohortComparison/cohortFacetSlice.d.ts.map +1 -0
- package/dist/dts/features/cohortComparison/index.d.ts +7 -0
- package/dist/dts/features/cohortComparison/index.d.ts.map +1 -0
- package/dist/dts/features/cohortComparison/pValueApi.d.ts +186 -0
- package/dist/dts/features/cohortComparison/pValueApi.d.ts.map +1 -0
- package/dist/dts/features/cohortComparison/types.d.ts +74 -0
- package/dist/dts/features/cohortComparison/types.d.ts.map +1 -0
- package/dist/dts/features/cohortComparison/vennDiagramSlice.d.ts +198 -0
- package/dist/dts/features/cohortComparison/vennDiagramSlice.d.ts.map +1 -0
- package/dist/dts/features/filters/index.d.ts +1 -0
- package/dist/dts/features/filters/index.d.ts.map +1 -1
- package/dist/dts/features/filters/nestedFilters.d.ts +0 -2
- package/dist/dts/features/filters/nestedFilters.d.ts.map +1 -1
- package/dist/dts/features/filters/utils.d.ts +2 -2
- package/dist/dts/features/guppy/guppySlice.d.ts +566 -0
- package/dist/dts/features/guppy/guppySlice.d.ts.map +1 -1
- package/dist/dts/index.d.ts +1 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/types/types.d.ts +15 -13
- package/dist/dts/types/types.d.ts.map +1 -1
- package/dist/esm/constants.js +1 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/index.js +1103 -890
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/server.js +1 -0
- package/dist/esm/server.js.map +1 -1
- package/dist/index.d.ts +7633 -6431
- package/package.json +3 -3
- package/LICENSE +0 -201
package/dist/esm/server.js
CHANGED
|
@@ -20,6 +20,7 @@ const GEN3_CROSSWALK_API = process.env.NEXT_PUBLIC_GEN3_CROSSWALK_API || `${GEN3
|
|
|
20
20
|
const GEN3_SOWER_API = process.env.NEXT_PUBLIC_GEN3_SOWER_API || `${GEN3_API}/jobs`;
|
|
21
21
|
const GEN3_MANIFEST_API = process.env.NEXT_PUBLIC_GEN3_MANIFEST_API || `${GEN3_API}/manifests`;
|
|
22
22
|
process.env.NEXT_PUBLIC_GEN3_REQUESTOR_API || `${GEN3_API}/requestor`;
|
|
23
|
+
process.env.NEXT_PUBLIC_GEN3_ANALYSIS_API || `${GEN3_API}/analysis/v0`;
|
|
23
24
|
|
|
24
25
|
/**
|
|
25
26
|
* Low-level helper to fetch Arborist resources for the current user.
|
package/dist/esm/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sources":["../../src/constants.ts","../../src/features/authz/fetchAuthz.ts","../../src/features/fence/utils.ts","../../src/features/fence/fetchFence.ts"],"sourcesContent":["export const GEN3_COMMONS_NAME =\n process.env.NEXT_PUBLIC_GEN3_COMMONS_NAME || 'gen3';\nexport const GEN3_API = process.env.NEXT_PUBLIC_GEN3_API || '';\nexport const GEN3_DOMAIN = process.env.NEXT_PUBLIC_GEN3_DOMAIN || '';\nexport const GUID_PREFIX_PATTERN = /^dg.[a-zA-Z0-9]+\\//;\n\n/**\n * Service Specific Constants\n */\nexport const GEN3_GUPPY_API =\n process.env.NEXT_PUBLIC_GEN3_GUPPY_API || `${GEN3_API}/guppy`;\nexport const GEN3_MDS_API =\n process.env.NEXT_PUBLIC_GEN3_MDS_API || `${GEN3_API}/mds`;\nexport const GEN3_DOWNLOADS_ENDPOINT =\n process.env.NEXT_PUBLIC_GEN3_DOWNLOADS_ENDPOINT || 'downloads';\nexport const GEN3_FENCE_API =\n process.env.NEXT_PUBLIC_GEN3_FENCE_API || `${GEN3_API}/user`;\nexport const GEN3_FENCE_SERVICE =\n process.env.GEN3_FENCE_SERVICE || 'http://fence-service';\nexport const GEN3_AI_SEARCH_API =\n process.env.NEXT_PUBLIC_GEN3_AI_SEARCH_API || `${GEN3_API}/ai-search`;\nexport const GEN3_AUTHZ_API =\n process.env.NEXT_PUBLIC_GEN3_AUTHZ_API || `${GEN3_API}/authz`;\nexport const GEN3_AUTHZ_SERVICE =\n process.env.GEN3_AUTHZ_SERVICE || 'http://arborist-service';\nexport const GEN3_REDIRECT_URL =\n process.env.NEXT_PUBLIC_GEN3_REDIRECT_URL || GEN3_API;\nexport const GEN3_WORKSPACE_API =\n process.env.NEXT_PUBLIC_GEN3_WORKSPACE_STATUS_API ||\n `${GEN3_API}/lw-workspace`;\nexport const GEN3_SUBMISSION_API =\n process.env.NEXT_PUBLIC_GEN3_SUBMISSION_API ||\n `${GEN3_API}/api/v0/submission`;\nexport const GEN3_WTS_API =\n process.env.NEXT_PUBLIC_GEN3_WTS_API || `${GEN3_API}/wts`;\nexport const GEN3_DATA_LIBRARY_API =\n process.env.NEXT_PUBLIC_GEN3_DATA_LIBRARY_API || `${GEN3_API}/library/lists`;\nexport const GEN3_CROSSWALK_API =\n process.env.NEXT_PUBLIC_GEN3_CROSSWALK_API || `${GEN3_API}/mds`;\nexport const GEN3_SOWER_API =\n process.env.NEXT_PUBLIC_GEN3_SOWER_API || `${GEN3_API}/jobs`;\nexport const GEN3_MANIFEST_API =\n process.env.NEXT_PUBLIC_GEN3_MANIFEST_API || `${GEN3_API}/manifests`;\nexport const GEN3_REQUESTOR_API =\n process.env.NEXT_PUBLIC_GEN3_REQUESTOR_API || `${GEN3_API}/requestor`;\n\nexport enum Accessibility {\n ACCESSIBLE = 'accessible',\n UNACCESSIBLE = 'unaccessible',\n ALL = 'all',\n}\n\nexport const FILE_FORMATS = {\n JSON: 'json',\n TSV: 'tsv',\n CSV: 'csv',\n};\n\nexport const FILE_DELIMITERS = {\n tsv: '\\t',\n csv: ',',\n};\n\nexport const CART_LIMIT = 80000;\n","import { GEN3_AUTHZ_API, GEN3_AUTHZ_SERVICE } from '../../constants';\nimport { AuthzResourceResponse } from './types';\n\n/**\n * Low-level helper to fetch Arborist resources for the current user.\n * Adds an Authorization header when a token is provided and normalizes the response\n * to a simple string[] of resource paths.\n *\n * token { string | null } - access token to use for authorization\n * useService { boolean } - use the arborist service endpoint instead of the public arborist API\n */\nexport async function fetchArboristResources(\n token: string | null,\n useService: boolean = false,\n): Promise<string[]> {\n const headers: Record<string, string> = {};\n\n if (token) {\n headers.Authorization = `Bearer ${token}`;\n }\n\n const url = useService\n ? `${GEN3_AUTHZ_SERVICE}/resource`\n : `${GEN3_AUTHZ_API}/resources`;\n const res = await fetch(url, { headers });\n\n if (!res.ok) {\n console.error(\n '@gen3/core:fetchArboristResources /resource failed:',\n res.status,\n await res.text(),\n );\n return [];\n }\n\n const data = (await res.json()) as AuthzResourceResponse;\n return data.resources ?? [];\n}\n","import { FetchError } from './types';\n\nexport const isFetchError = <T>(obj: unknown): obj is FetchError<T> => {\n if (typeof obj !== 'object' || obj === null) {\n return false;\n }\n\n const { url, status, statusText, text } = obj as Partial<FetchError<T>>;\n\n return (\n typeof url === 'string' &&\n typeof status === 'number' &&\n typeof statusText === 'string' &&\n typeof text === 'string'\n );\n};\n\n/**\n * Template for fence error response dict\n * @returns: An error dict response from a RESTFUL API request\n */\nexport const buildFetchError = async <T>(\n res: Response,\n request?: T,\n): Promise<FetchError<T>> => {\n return {\n url: res.url,\n status: res.status,\n statusText: res.statusText,\n text: await res.text(),\n request: request,\n };\n};\n","import { type FetchRequest, type Gen3FenceResponse } from './types';\nimport { GEN3_FENCE_API, GEN3_FENCE_SERVICE } from '../../constants';\nimport { buildFetchError } from './utils';\n\n/**\n * Performs an asynchronous HTTP request to the Gen3 Fence API and processes the response.\n *\n * @template T The expected type of the response data.\n * @param {FetchRequest} options The options for the fetch request.\n * @param {string} options.endpoint The API endpoint to which the request will be sent.\n * @param {Record<string, string>} options.headers An object representing the HTTP headers to include in the request.\n * @param {Record<string, any>} [options.body={}] The request body to send with the fetch, used if the HTTP method is POST.\n * @param {string} [options.method='GET'] The HTTP method for the request (e.g., 'GET', 'POST').\n * @param {boolean} [options.isJSON=true] Determines if the response should be parsed as JSON or returned as plain text.\n * @param useService { boolean } Uses fence_service instead of public fence API\n * @returns {Promise<Gen3FenceResponse<T>>} A promise that resolves to the parsed data and response status\n * or rejects with an error if the request fails.\n * @throws {Error} Throws an error if the fetch request fails or the response is not successful.\n */\nexport const fetchFence = async <T>(\n { endpoint, headers, body = {}, method = 'GET', isJSON = true }: FetchRequest,\n useService: boolean = false,\n): Promise<Gen3FenceResponse<T>> => {\n let url = `${GEN3_FENCE_API}${endpoint}`;\n if (useService) {\n url = `${GEN3_FENCE_SERVICE}/${endpoint}`;\n }\n\n const res = await fetch(url, {\n method: method,\n credentials: 'include',\n headers: {\n // Ensure Content-Type is set for JSON POSTs, but allow overrides via 'headers'\n ...(method === 'POST' ? { 'Content-Type': 'application/json' } : {}),\n ...headers,\n },\n body: 'POST' === method ? JSON.stringify(body) : null,\n // REMOVED: next: { revalidate: 360 } - Auth requests should not be cached by default\n });\n\n if (res.ok)\n return {\n data: isJSON ? await res.json() : await res.text(),\n status: res.status,\n };\n throw await buildFetchError(res, {\n endpoint,\n method,\n headers,\n body,\n });\n};\n"],"names":["GEN3_COMMONS_NAME","process","env","NEXT_PUBLIC_GEN3_COMMONS_NAME","GEN3_API","NEXT_PUBLIC_GEN3_API","GEN3_DOMAIN","NEXT_PUBLIC_GEN3_DOMAIN","GEN3_GUPPY_API","NEXT_PUBLIC_GEN3_GUPPY_API","GEN3_MDS_API","NEXT_PUBLIC_GEN3_MDS_API","GEN3_DOWNLOADS_ENDPOINT","NEXT_PUBLIC_GEN3_DOWNLOADS_ENDPOINT","GEN3_FENCE_API","NEXT_PUBLIC_GEN3_FENCE_API","GEN3_FENCE_SERVICE","NEXT_PUBLIC_GEN3_AI_SEARCH_API","GEN3_AUTHZ_API","NEXT_PUBLIC_GEN3_AUTHZ_API","GEN3_AUTHZ_SERVICE","GEN3_REDIRECT_URL","NEXT_PUBLIC_GEN3_REDIRECT_URL","GEN3_WORKSPACE_API","NEXT_PUBLIC_GEN3_WORKSPACE_STATUS_API","GEN3_SUBMISSION_API","NEXT_PUBLIC_GEN3_SUBMISSION_API","NEXT_PUBLIC_GEN3_WTS_API","NEXT_PUBLIC_GEN3_DATA_LIBRARY_API","GEN3_CROSSWALK_API","NEXT_PUBLIC_GEN3_CROSSWALK_API","GEN3_SOWER_API","NEXT_PUBLIC_GEN3_SOWER_API","GEN3_MANIFEST_API","NEXT_PUBLIC_GEN3_MANIFEST_API","NEXT_PUBLIC_GEN3_REQUESTOR_API","fetchArboristResources","token","useService","headers","Authorization","url","res","fetch","ok","console","error","status","text","data","json","resources","isFetchError","obj","statusText","buildFetchError","request","fetchFence","endpoint","body","method","isJSON","credentials","JSON","stringify"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sources":["../../src/constants.ts","../../src/features/authz/fetchAuthz.ts","../../src/features/fence/utils.ts","../../src/features/fence/fetchFence.ts"],"sourcesContent":["export const GEN3_COMMONS_NAME =\n process.env.NEXT_PUBLIC_GEN3_COMMONS_NAME || 'gen3';\nexport const GEN3_API = process.env.NEXT_PUBLIC_GEN3_API || '';\nexport const GEN3_DOMAIN = process.env.NEXT_PUBLIC_GEN3_DOMAIN || '';\nexport const GUID_PREFIX_PATTERN = /^dg.[a-zA-Z0-9]+\\//;\n\n/**\n * Service Specific Constants\n */\nexport const GEN3_GUPPY_API =\n process.env.NEXT_PUBLIC_GEN3_GUPPY_API || `${GEN3_API}/guppy`;\nexport const GEN3_MDS_API =\n process.env.NEXT_PUBLIC_GEN3_MDS_API || `${GEN3_API}/mds`;\nexport const GEN3_DOWNLOADS_ENDPOINT =\n process.env.NEXT_PUBLIC_GEN3_DOWNLOADS_ENDPOINT || 'downloads';\nexport const GEN3_FENCE_API =\n process.env.NEXT_PUBLIC_GEN3_FENCE_API || `${GEN3_API}/user`;\nexport const GEN3_FENCE_SERVICE =\n process.env.GEN3_FENCE_SERVICE || 'http://fence-service';\nexport const GEN3_AI_SEARCH_API =\n process.env.NEXT_PUBLIC_GEN3_AI_SEARCH_API || `${GEN3_API}/ai-search`;\nexport const GEN3_AUTHZ_API =\n process.env.NEXT_PUBLIC_GEN3_AUTHZ_API || `${GEN3_API}/authz`;\nexport const GEN3_AUTHZ_SERVICE =\n process.env.GEN3_AUTHZ_SERVICE || 'http://arborist-service';\nexport const GEN3_REDIRECT_URL =\n process.env.NEXT_PUBLIC_GEN3_REDIRECT_URL || GEN3_API;\nexport const GEN3_WORKSPACE_API =\n process.env.NEXT_PUBLIC_GEN3_WORKSPACE_STATUS_API ||\n `${GEN3_API}/lw-workspace`;\nexport const GEN3_SUBMISSION_API =\n process.env.NEXT_PUBLIC_GEN3_SUBMISSION_API ||\n `${GEN3_API}/api/v0/submission`;\nexport const GEN3_WTS_API =\n process.env.NEXT_PUBLIC_GEN3_WTS_API || `${GEN3_API}/wts`;\nexport const GEN3_DATA_LIBRARY_API =\n process.env.NEXT_PUBLIC_GEN3_DATA_LIBRARY_API || `${GEN3_API}/library/lists`;\nexport const GEN3_CROSSWALK_API =\n process.env.NEXT_PUBLIC_GEN3_CROSSWALK_API || `${GEN3_API}/mds`;\nexport const GEN3_SOWER_API =\n process.env.NEXT_PUBLIC_GEN3_SOWER_API || `${GEN3_API}/jobs`;\nexport const GEN3_MANIFEST_API =\n process.env.NEXT_PUBLIC_GEN3_MANIFEST_API || `${GEN3_API}/manifests`;\nexport const GEN3_REQUESTOR_API =\n process.env.NEXT_PUBLIC_GEN3_REQUESTOR_API || `${GEN3_API}/requestor`;\nexport const GEN3_ANALYSIS_API =\n process.env.NEXT_PUBLIC_GEN3_ANALYSIS_API || `${GEN3_API}/analysis/v0`;\n\nexport enum Accessibility {\n ACCESSIBLE = 'accessible',\n UNACCESSIBLE = 'unaccessible',\n ALL = 'all',\n}\n\nexport const FILE_FORMATS = {\n JSON: 'json',\n TSV: 'tsv',\n CSV: 'csv',\n};\n\nexport const FILE_DELIMITERS = {\n tsv: '\\t',\n csv: ',',\n};\n\nexport const CART_LIMIT = 80000;\n","import { GEN3_AUTHZ_API, GEN3_AUTHZ_SERVICE } from '../../constants';\nimport { AuthzResourceResponse } from './types';\n\n/**\n * Low-level helper to fetch Arborist resources for the current user.\n * Adds an Authorization header when a token is provided and normalizes the response\n * to a simple string[] of resource paths.\n *\n * token { string | null } - access token to use for authorization\n * useService { boolean } - use the arborist service endpoint instead of the public arborist API\n */\nexport async function fetchArboristResources(\n token: string | null,\n useService: boolean = false,\n): Promise<string[]> {\n const headers: Record<string, string> = {};\n\n if (token) {\n headers.Authorization = `Bearer ${token}`;\n }\n\n const url = useService\n ? `${GEN3_AUTHZ_SERVICE}/resource`\n : `${GEN3_AUTHZ_API}/resources`;\n const res = await fetch(url, { headers });\n\n if (!res.ok) {\n console.error(\n '@gen3/core:fetchArboristResources /resource failed:',\n res.status,\n await res.text(),\n );\n return [];\n }\n\n const data = (await res.json()) as AuthzResourceResponse;\n return data.resources ?? [];\n}\n","import { FetchError } from './types';\n\nexport const isFetchError = <T>(obj: unknown): obj is FetchError<T> => {\n if (typeof obj !== 'object' || obj === null) {\n return false;\n }\n\n const { url, status, statusText, text } = obj as Partial<FetchError<T>>;\n\n return (\n typeof url === 'string' &&\n typeof status === 'number' &&\n typeof statusText === 'string' &&\n typeof text === 'string'\n );\n};\n\n/**\n * Template for fence error response dict\n * @returns: An error dict response from a RESTFUL API request\n */\nexport const buildFetchError = async <T>(\n res: Response,\n request?: T,\n): Promise<FetchError<T>> => {\n return {\n url: res.url,\n status: res.status,\n statusText: res.statusText,\n text: await res.text(),\n request: request,\n };\n};\n","import { type FetchRequest, type Gen3FenceResponse } from './types';\nimport { GEN3_FENCE_API, GEN3_FENCE_SERVICE } from '../../constants';\nimport { buildFetchError } from './utils';\n\n/**\n * Performs an asynchronous HTTP request to the Gen3 Fence API and processes the response.\n *\n * @template T The expected type of the response data.\n * @param {FetchRequest} options The options for the fetch request.\n * @param {string} options.endpoint The API endpoint to which the request will be sent.\n * @param {Record<string, string>} options.headers An object representing the HTTP headers to include in the request.\n * @param {Record<string, any>} [options.body={}] The request body to send with the fetch, used if the HTTP method is POST.\n * @param {string} [options.method='GET'] The HTTP method for the request (e.g., 'GET', 'POST').\n * @param {boolean} [options.isJSON=true] Determines if the response should be parsed as JSON or returned as plain text.\n * @param useService { boolean } Uses fence_service instead of public fence API\n * @returns {Promise<Gen3FenceResponse<T>>} A promise that resolves to the parsed data and response status\n * or rejects with an error if the request fails.\n * @throws {Error} Throws an error if the fetch request fails or the response is not successful.\n */\nexport const fetchFence = async <T>(\n { endpoint, headers, body = {}, method = 'GET', isJSON = true }: FetchRequest,\n useService: boolean = false,\n): Promise<Gen3FenceResponse<T>> => {\n let url = `${GEN3_FENCE_API}${endpoint}`;\n if (useService) {\n url = `${GEN3_FENCE_SERVICE}/${endpoint}`;\n }\n\n const res = await fetch(url, {\n method: method,\n credentials: 'include',\n headers: {\n // Ensure Content-Type is set for JSON POSTs, but allow overrides via 'headers'\n ...(method === 'POST' ? { 'Content-Type': 'application/json' } : {}),\n ...headers,\n },\n body: 'POST' === method ? JSON.stringify(body) : null,\n // REMOVED: next: { revalidate: 360 } - Auth requests should not be cached by default\n });\n\n if (res.ok)\n return {\n data: isJSON ? await res.json() : await res.text(),\n status: res.status,\n };\n throw await buildFetchError(res, {\n endpoint,\n method,\n headers,\n body,\n });\n};\n"],"names":["GEN3_COMMONS_NAME","process","env","NEXT_PUBLIC_GEN3_COMMONS_NAME","GEN3_API","NEXT_PUBLIC_GEN3_API","GEN3_DOMAIN","NEXT_PUBLIC_GEN3_DOMAIN","GEN3_GUPPY_API","NEXT_PUBLIC_GEN3_GUPPY_API","GEN3_MDS_API","NEXT_PUBLIC_GEN3_MDS_API","GEN3_DOWNLOADS_ENDPOINT","NEXT_PUBLIC_GEN3_DOWNLOADS_ENDPOINT","GEN3_FENCE_API","NEXT_PUBLIC_GEN3_FENCE_API","GEN3_FENCE_SERVICE","NEXT_PUBLIC_GEN3_AI_SEARCH_API","GEN3_AUTHZ_API","NEXT_PUBLIC_GEN3_AUTHZ_API","GEN3_AUTHZ_SERVICE","GEN3_REDIRECT_URL","NEXT_PUBLIC_GEN3_REDIRECT_URL","GEN3_WORKSPACE_API","NEXT_PUBLIC_GEN3_WORKSPACE_STATUS_API","GEN3_SUBMISSION_API","NEXT_PUBLIC_GEN3_SUBMISSION_API","NEXT_PUBLIC_GEN3_WTS_API","NEXT_PUBLIC_GEN3_DATA_LIBRARY_API","GEN3_CROSSWALK_API","NEXT_PUBLIC_GEN3_CROSSWALK_API","GEN3_SOWER_API","NEXT_PUBLIC_GEN3_SOWER_API","GEN3_MANIFEST_API","NEXT_PUBLIC_GEN3_MANIFEST_API","NEXT_PUBLIC_GEN3_REQUESTOR_API","NEXT_PUBLIC_GEN3_ANALYSIS_API","fetchArboristResources","token","useService","headers","Authorization","url","res","fetch","ok","console","error","status","text","data","json","resources","isFetchError","obj","statusText","buildFetchError","request","fetchFence","endpoint","body","method","isJSON","credentials","JSON","stringify"],"mappings":"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"}
|