@semiont/graph 0.5.28 → 0.5.29
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/README.md +1 -1
- package/dist/{chunk-RUKYB5L4.js → chunk-SFMOIR7Y.js} +9 -9
- package/dist/{chunk-RUKYB5L4.js.map → chunk-SFMOIR7Y.js.map} +1 -1
- package/dist/{dist-es-C2VXNLLU.js → dist-es-DYVW35LB.js} +5 -5
- package/dist/{dist-es-AET2QNVA.js → dist-es-F44WH2AS.js} +13 -13
- package/dist/dist-es-F44WH2AS.js.map +1 -0
- package/dist/{dist-es-IS4IC3TZ.js → dist-es-RTE7BVXX.js} +2 -2
- package/dist/{dist-es-BSJRQ6XP.js → dist-es-WEW6PTSK.js} +12 -8
- package/dist/dist-es-WEW6PTSK.js.map +1 -0
- package/dist/{dist-es-RR4OU64S.js → dist-es-Z4NFJDXO.js} +2 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.js +22 -22
- package/dist/index.js.map +1 -1
- package/dist/{loadSso-SCNBGUAS.js → loadSso-2Y2JSLM2.js} +2 -2
- package/dist/{signin-6CO4ELBM.js → signin-3VN2CNSY.js} +2 -2
- package/dist/{sso-oidc-NYPIZEZ2.js → sso-oidc-76COL3D2.js} +2 -2
- package/dist/{sts-7LYERIMP.js → sts-BLFDXC4J.js} +2 -2
- package/package.json +9 -9
- package/dist/dist-es-AET2QNVA.js.map +0 -1
- package/dist/dist-es-BSJRQ6XP.js.map +0 -1
- /package/dist/{dist-es-C2VXNLLU.js.map → dist-es-DYVW35LB.js.map} +0 -0
- /package/dist/{dist-es-IS4IC3TZ.js.map → dist-es-RTE7BVXX.js.map} +0 -0
- /package/dist/{dist-es-RR4OU64S.js.map → dist-es-Z4NFJDXO.js.map} +0 -0
- /package/dist/{loadSso-SCNBGUAS.js.map → loadSso-2Y2JSLM2.js.map} +0 -0
- /package/dist/{signin-6CO4ELBM.js.map → signin-3VN2CNSY.js.map} +0 -0
- /package/dist/{sso-oidc-NYPIZEZ2.js.map → sso-oidc-76COL3D2.js.map} +0 -0
- /package/dist/{sts-7LYERIMP.js.map → sts-BLFDXC4J.js.map} +0 -0
|
@@ -64,7 +64,7 @@ var LoginCredentialsFetcher = class _LoginCredentialsFetcher {
|
|
|
64
64
|
if (freshExpiry - Date.now() > _LoginCredentialsFetcher.REFRESH_THRESHOLD) {
|
|
65
65
|
return this.toCredentials(freshToken.accessToken);
|
|
66
66
|
}
|
|
67
|
-
const { SigninClient, CreateOAuth2TokenCommand } = await import("./signin-
|
|
67
|
+
const { SigninClient, CreateOAuth2TokenCommand } = await import("./signin-3VN2CNSY.js");
|
|
68
68
|
const { logger, userAgentAppId } = this.callerClientConfig ?? {};
|
|
69
69
|
const isH2 = (requestHandler2) => {
|
|
70
70
|
return requestHandler2?.metadata?.handlerProtocol === "h2";
|
|
@@ -291,4 +291,4 @@ var fromLoginCredentials = (init) => async ({ callerClientConfig } = {}) => {
|
|
|
291
291
|
export {
|
|
292
292
|
fromLoginCredentials
|
|
293
293
|
};
|
|
294
|
-
//# sourceMappingURL=dist-es-
|
|
294
|
+
//# sourceMappingURL=dist-es-RTE7BVXX.js.map
|
|
@@ -21,7 +21,7 @@ var REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the
|
|
|
21
21
|
|
|
22
22
|
// ../../node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js
|
|
23
23
|
var getSsoOidcClient = async (ssoRegion, init = {}, callerClientConfig) => {
|
|
24
|
-
const { SSOOIDCClient } = await import("./sso-oidc-
|
|
24
|
+
const { SSOOIDCClient } = await import("./sso-oidc-76COL3D2.js");
|
|
25
25
|
const coalesce = (prop) => init.clientConfig?.[prop] ?? init.parentClientConfig?.[prop] ?? callerClientConfig?.[prop];
|
|
26
26
|
const ssoOidcClient = new SSOOIDCClient(Object.assign({}, init.clientConfig ?? {}, {
|
|
27
27
|
region: ssoRegion ?? init.clientConfig?.region,
|
|
@@ -33,7 +33,7 @@ var getSsoOidcClient = async (ssoRegion, init = {}, callerClientConfig) => {
|
|
|
33
33
|
|
|
34
34
|
// ../../node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js
|
|
35
35
|
var getNewSsoOidcToken = async (ssoToken, ssoRegion, init = {}, callerClientConfig) => {
|
|
36
|
-
const { CreateTokenCommand } = await import("./sso-oidc-
|
|
36
|
+
const { CreateTokenCommand } = await import("./sso-oidc-76COL3D2.js");
|
|
37
37
|
const ssoOidcClient = await getSsoOidcClient(ssoRegion, init, callerClientConfig);
|
|
38
38
|
return ssoOidcClient.send(new CreateTokenCommand({
|
|
39
39
|
clientId: ssoToken.clientId,
|
|
@@ -67,7 +67,7 @@ var writeSSOTokenToFile = (id, ssoToken) => {
|
|
|
67
67
|
};
|
|
68
68
|
|
|
69
69
|
// ../../node_modules/@aws-sdk/token-providers/dist-es/fromSso.js
|
|
70
|
-
var
|
|
70
|
+
var lastRefreshAttemptTimes = /* @__PURE__ */ new Map();
|
|
71
71
|
var fromSso = (init = {}) => async ({ callerClientConfig } = {}) => {
|
|
72
72
|
init.logger?.debug("@aws-sdk/token-providers - fromSso");
|
|
73
73
|
const profiles = await parseKnownFiles(init);
|
|
@@ -102,11 +102,15 @@ var fromSso = (init = {}) => async ({ callerClientConfig } = {}) => {
|
|
|
102
102
|
validateTokenKey("accessToken", ssoToken.accessToken);
|
|
103
103
|
validateTokenKey("expiresAt", ssoToken.expiresAt);
|
|
104
104
|
const { accessToken, expiresAt } = ssoToken;
|
|
105
|
-
const existingToken = {
|
|
105
|
+
const existingToken = {
|
|
106
|
+
token: accessToken,
|
|
107
|
+
expiration: new Date(expiresAt)
|
|
108
|
+
};
|
|
106
109
|
if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {
|
|
107
110
|
return existingToken;
|
|
108
111
|
}
|
|
109
|
-
|
|
112
|
+
const lastRefreshAttemptTime = lastRefreshAttemptTimes.get(ssoSessionName) ?? 0;
|
|
113
|
+
if (Date.now() - lastRefreshAttemptTime < 30 * 1e3) {
|
|
110
114
|
validateTokenExpiry(existingToken);
|
|
111
115
|
return existingToken;
|
|
112
116
|
}
|
|
@@ -114,7 +118,7 @@ var fromSso = (init = {}) => async ({ callerClientConfig } = {}) => {
|
|
|
114
118
|
validateTokenKey("clientSecret", ssoToken.clientSecret, true);
|
|
115
119
|
validateTokenKey("refreshToken", ssoToken.refreshToken, true);
|
|
116
120
|
try {
|
|
117
|
-
|
|
121
|
+
lastRefreshAttemptTimes.set(ssoSessionName, Date.now());
|
|
118
122
|
const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init, callerClientConfig);
|
|
119
123
|
validateTokenKey("accessToken", newSsoOidcToken.accessToken);
|
|
120
124
|
validateTokenKey("expiresIn", newSsoOidcToken.expiresIn);
|
|
@@ -181,7 +185,7 @@ var resolveSSOCredentials = async ({ ssoStartUrl, ssoSession, ssoAccountId, ssoR
|
|
|
181
185
|
});
|
|
182
186
|
}
|
|
183
187
|
const { accessToken } = token;
|
|
184
|
-
const { SSOClient, GetRoleCredentialsCommand } = await import("./loadSso-
|
|
188
|
+
const { SSOClient, GetRoleCredentialsCommand } = await import("./loadSso-2Y2JSLM2.js");
|
|
185
189
|
const sso = ssoClient || new SSOClient(Object.assign({}, clientConfig ?? {}, {
|
|
186
190
|
logger: clientConfig?.logger ?? callerClientConfig?.logger ?? parentClientConfig?.logger,
|
|
187
191
|
region: clientConfig?.region ?? ssoRegion,
|
|
@@ -314,4 +318,4 @@ export {
|
|
|
314
318
|
isSsoProfile,
|
|
315
319
|
validateSsoProfile
|
|
316
320
|
};
|
|
317
|
-
//# sourceMappingURL=dist-es-
|
|
321
|
+
//# sourceMappingURL=dist-es-WEW6PTSK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/@aws-sdk/credential-provider-sso/dist-es/isSsoProfile.js","../../../node_modules/@aws-sdk/token-providers/dist-es/constants.js","../../../node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js","../../../node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js","../../../node_modules/@aws-sdk/token-providers/dist-es/validateTokenExpiry.js","../../../node_modules/@aws-sdk/token-providers/dist-es/validateTokenKey.js","../../../node_modules/@aws-sdk/token-providers/dist-es/writeSSOTokenToFile.js","../../../node_modules/@aws-sdk/token-providers/dist-es/fromSso.js","../../../node_modules/@aws-sdk/credential-provider-sso/dist-es/resolveSSOCredentials.js","../../../node_modules/@aws-sdk/credential-provider-sso/dist-es/validateSsoProfile.js","../../../node_modules/@aws-sdk/credential-provider-sso/dist-es/fromSSO.js"],"sourcesContent":["export const isSsoProfile = (arg) => arg &&\n (typeof arg.sso_start_url === \"string\" ||\n typeof arg.sso_account_id === \"string\" ||\n typeof arg.sso_session === \"string\" ||\n typeof arg.sso_region === \"string\" ||\n typeof arg.sso_role_name === \"string\");\n","export const EXPIRE_WINDOW_MS = 5 * 60 * 1000;\nexport const REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n","export const getSsoOidcClient = async (ssoRegion, init = {}, callerClientConfig) => {\n const { SSOOIDCClient } = await import(\"@aws-sdk/nested-clients/sso-oidc\");\n const coalesce = (prop) => init.clientConfig?.[prop] ?? init.parentClientConfig?.[prop] ?? callerClientConfig?.[prop];\n const ssoOidcClient = new SSOOIDCClient(Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: coalesce(\"logger\"),\n userAgentAppId: coalesce(\"userAgentAppId\"),\n }));\n return ssoOidcClient;\n};\n","import { getSsoOidcClient } from \"./getSsoOidcClient\";\nexport const getNewSsoOidcToken = async (ssoToken, ssoRegion, init = {}, callerClientConfig) => {\n const { CreateTokenCommand } = await import(\"@aws-sdk/nested-clients/sso-oidc\");\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init, callerClientConfig);\n return ssoOidcClient.send(new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\",\n }));\n};\n","import { TokenProviderError } from \"@smithy/core/config\";\nimport { REFRESH_MESSAGE } from \"./constants\";\nexport const validateTokenExpiry = (token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n};\n","import { TokenProviderError } from \"@smithy/core/config\";\nimport { REFRESH_MESSAGE } from \"./constants\";\nexport const validateTokenKey = (key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new TokenProviderError(`Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`, false);\n }\n};\n","import { getSSOTokenFilepath } from \"@smithy/core/config\";\nimport { promises as fsPromises } from \"node:fs\";\nconst { writeFile } = fsPromises;\nexport const writeSSOTokenToFile = (id, ssoToken) => {\n const tokenFilepath = getSSOTokenFilepath(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n};\n","import { getProfileName, getSSOTokenFromFile, loadSsoSessionData, parseKnownFiles, TokenProviderError, } from \"@smithy/core/config\";\nimport { EXPIRE_WINDOW_MS, REFRESH_MESSAGE } from \"./constants\";\nimport { getNewSsoOidcToken } from \"./getNewSsoOidcToken\";\nimport { validateTokenExpiry } from \"./validateTokenExpiry\";\nimport { validateTokenKey } from \"./validateTokenKey\";\nimport { writeSSOTokenToFile } from \"./writeSSOTokenToFile\";\nconst lastRefreshAttemptTimes = new Map();\nexport const fromSso = (init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await parseKnownFiles(init);\n const profileName = getProfileName({\n profile: init.profile ?? callerClientConfig?.profile,\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n }\n else if (!profile[\"sso_session\"]) {\n throw new TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await loadSsoSessionData(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new TokenProviderError(`Sso session '${ssoSessionName}' could not be found in shared credentials file.`, false);\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new TokenProviderError(`Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`, false);\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await getSSOTokenFromFile(ssoSessionName);\n }\n catch (e) {\n throw new TokenProviderError(`The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`, false);\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = {\n token: accessToken,\n expiration: new Date(expiresAt),\n };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n const lastRefreshAttemptTime = lastRefreshAttemptTimes.get(ssoSessionName) ?? 0;\n if (Date.now() - lastRefreshAttemptTime < 30 * 1000) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTimes.set(ssoSessionName, Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init, callerClientConfig);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1000);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken,\n });\n }\n catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration,\n };\n }\n catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n};\n","import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { fromSso as getSsoTokenProvider } from \"@aws-sdk/token-providers\";\nimport { CredentialsProviderError, getSSOTokenFromFile } from \"@smithy/core/config\";\nconst SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nexport const resolveSSOCredentials = async ({ ssoStartUrl, ssoSession, ssoAccountId, ssoRegion, ssoRoleName, ssoClient, clientConfig, parentClientConfig, callerClientConfig, profile, filepath, configFilepath, ignoreCache, logger, }) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await getSsoTokenProvider({\n profile,\n filepath,\n configFilepath,\n ignoreCache,\n clientConfig,\n parentClientConfig,\n logger,\n })({ callerClientConfig });\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString(),\n };\n }\n catch (e) {\n throw new CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n }\n else {\n try {\n token = await getSSOTokenFromFile(ssoStartUrl);\n }\n catch (e) {\n throw new CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const { accessToken } = token;\n const { SSOClient, GetRoleCredentialsCommand } = await import(\"./loadSso.js\");\n const sso = ssoClient ||\n new SSOClient(Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? callerClientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion,\n userAgentAppId: clientConfig?.userAgentAppId ?? callerClientConfig?.userAgentAppId ?? parentClientConfig?.userAgentAppId,\n }));\n let ssoResp;\n try {\n ssoResp = await sso.send(new GetRoleCredentialsCommand({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken,\n }));\n }\n catch (e) {\n throw new CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const { roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}, } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...(credentialScope && { credentialScope }),\n ...(accountId && { accountId }),\n };\n if (ssoSession) {\n setCredentialFeature(credentials, \"CREDENTIALS_SSO\", \"s\");\n }\n else {\n setCredentialFeature(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n};\n","import { CredentialsProviderError } from \"@smithy/core/config\";\nexport const validateSsoProfile = (profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", ` +\n `\"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\", \")}\\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, { tryNextLink: false, logger });\n }\n return profile;\n};\n","import { CredentialsProviderError, getProfileName, loadSsoSessionData, parseKnownFiles } from \"@smithy/core/config\";\nimport { isSsoProfile } from \"./isSsoProfile\";\nimport { resolveSSOCredentials } from \"./resolveSSOCredentials\";\nimport { validateSsoProfile } from \"./validateSsoProfile\";\nexport const fromSSO = (init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = getProfileName({\n profile: init.profile ?? callerClientConfig?.profile,\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await parseKnownFiles(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger,\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await loadSsoSessionData(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger,\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger,\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(profile, init.logger);\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient: ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n callerClientConfig: init.callerClientConfig,\n profile: profileName,\n filepath: init.filepath,\n configFilepath: init.configFilepath,\n ignoreCache: init.ignoreCache,\n logger: init.logger,\n });\n }\n else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new CredentialsProviderError(\"Incomplete configuration. The fromSSO() argument hash must include \" +\n '\"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"', { tryNextLink: false, logger: init.logger });\n }\n else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n callerClientConfig: init.callerClientConfig,\n profile: profileName,\n filepath: init.filepath,\n configFilepath: init.configFilepath,\n ignoreCache: init.ignoreCache,\n logger: init.logger,\n });\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;AAAO,IAAM,eAAe,CAAC,QAAQ,QAChC,OAAO,IAAI,kBAAkB,YAC1B,OAAO,IAAI,mBAAmB,YAC9B,OAAO,IAAI,gBAAgB,YAC3B,OAAO,IAAI,eAAe,YAC1B,OAAO,IAAI,kBAAkB;;;ACL9B,IAAM,mBAAmB,IAAI,KAAK;AAClC,IAAM,kBAAkB;;;ACDxB,IAAM,mBAAmB,OAAO,WAAW,OAAO,CAAC,GAAG,uBAAuB;AAChF,QAAM,EAAE,cAAc,IAAI,MAAM,OAAO,wBAAkC;AACzE,QAAM,WAAW,CAAC,SAAS,KAAK,eAAe,IAAI,KAAK,KAAK,qBAAqB,IAAI,KAAK,qBAAqB,IAAI;AACpH,QAAM,gBAAgB,IAAI,cAAc,OAAO,OAAO,CAAC,GAAG,KAAK,gBAAgB,CAAC,GAAG;AAAA,IAC/E,QAAQ,aAAa,KAAK,cAAc;AAAA,IACxC,QAAQ,SAAS,QAAQ;AAAA,IACzB,gBAAgB,SAAS,gBAAgB;AAAA,EAC7C,CAAC,CAAC;AACF,SAAO;AACX;;;ACRO,IAAM,qBAAqB,OAAO,UAAU,WAAW,OAAO,CAAC,GAAG,uBAAuB;AAC5F,QAAM,EAAE,mBAAmB,IAAI,MAAM,OAAO,wBAAkC;AAC9E,QAAM,gBAAgB,MAAM,iBAAiB,WAAW,MAAM,kBAAkB;AAChF,SAAO,cAAc,KAAK,IAAI,mBAAmB;AAAA,IAC7C,UAAU,SAAS;AAAA,IACnB,cAAc,SAAS;AAAA,IACvB,cAAc,SAAS;AAAA,IACvB,WAAW;AAAA,EACf,CAAC,CAAC;AACN;;;ACRO,IAAM,sBAAsB,CAAC,UAAU;AAC1C,MAAI,MAAM,cAAc,MAAM,WAAW,QAAQ,IAAI,KAAK,IAAI,GAAG;AAC7D,UAAM,IAAI,mBAAmB,qBAAqB,eAAe,IAAI,KAAK;AAAA,EAC9E;AACJ;;;ACJO,IAAM,mBAAmB,CAAC,KAAK,OAAO,aAAa,UAAU;AAChE,MAAI,OAAO,UAAU,aAAa;AAC9B,UAAM,IAAI,mBAAmB,0BAA0B,GAAG,iBAAiB,aAAa,qBAAqB,EAAE,KAAK,eAAe,IAAI,KAAK;AAAA,EAChJ;AACJ;;;ACLA,SAAS,YAAY,kBAAkB;AACvC,IAAM,EAAE,UAAU,IAAI;AACf,IAAM,sBAAsB,CAAC,IAAI,aAAa;AACjD,QAAM,gBAAgB,oBAAoB,EAAE;AAC5C,QAAM,cAAc,KAAK,UAAU,UAAU,MAAM,CAAC;AACpD,SAAO,UAAU,eAAe,WAAW;AAC/C;;;ACDA,IAAM,0BAA0B,oBAAI,IAAI;AACjC,IAAM,UAAU,CAAC,OAAO,CAAC,MAAM,OAAO,EAAE,mBAAmB,IAAI,CAAC,MAAM;AACzE,OAAK,QAAQ,MAAM,oCAAoC;AACvD,QAAM,WAAW,MAAM,gBAAgB,IAAI;AAC3C,QAAM,cAAc,eAAe;AAAA,IAC/B,SAAS,KAAK,WAAW,oBAAoB;AAAA,EACjD,CAAC;AACD,QAAM,UAAU,SAAS,WAAW;AACpC,MAAI,CAAC,SAAS;AACV,UAAM,IAAI,mBAAmB,YAAY,WAAW,oDAAoD,KAAK;AAAA,EACjH,WACS,CAAC,QAAQ,aAAa,GAAG;AAC9B,UAAM,IAAI,mBAAmB,YAAY,WAAW,+CAA+C;AAAA,EACvG;AACA,QAAM,iBAAiB,QAAQ,aAAa;AAC5C,QAAM,cAAc,MAAM,mBAAmB,IAAI;AACjD,QAAM,aAAa,YAAY,cAAc;AAC7C,MAAI,CAAC,YAAY;AACb,UAAM,IAAI,mBAAmB,gBAAgB,cAAc,oDAAoD,KAAK;AAAA,EACxH;AACA,aAAW,yBAAyB,CAAC,iBAAiB,YAAY,GAAG;AACjE,QAAI,CAAC,WAAW,qBAAqB,GAAG;AACpC,YAAM,IAAI,mBAAmB,gBAAgB,cAAc,mCAAmC,qBAAqB,MAAM,KAAK;AAAA,IAClI;AAAA,EACJ;AACA,QAAM,cAAc,WAAW,eAAe;AAC9C,QAAM,YAAY,WAAW,YAAY;AACzC,MAAI;AACJ,MAAI;AACA,eAAW,MAAM,oBAAoB,cAAc;AAAA,EACvD,SACO,GAAG;AACN,UAAM,IAAI,mBAAmB,iDAAiD,WAAW,iCAAiC,eAAe,IAAI,KAAK;AAAA,EACtJ;AACA,mBAAiB,eAAe,SAAS,WAAW;AACpD,mBAAiB,aAAa,SAAS,SAAS;AAChD,QAAM,EAAE,aAAa,UAAU,IAAI;AACnC,QAAM,gBAAgB;AAAA,IAClB,OAAO;AAAA,IACP,YAAY,IAAI,KAAK,SAAS;AAAA,EAClC;AACA,MAAI,cAAc,WAAW,QAAQ,IAAI,KAAK,IAAI,IAAI,kBAAkB;AACpE,WAAO;AAAA,EACX;AACA,QAAM,yBAAyB,wBAAwB,IAAI,cAAc,KAAK;AAC9E,MAAI,KAAK,IAAI,IAAI,yBAAyB,KAAK,KAAM;AACjD,wBAAoB,aAAa;AACjC,WAAO;AAAA,EACX;AACA,mBAAiB,YAAY,SAAS,UAAU,IAAI;AACpD,mBAAiB,gBAAgB,SAAS,cAAc,IAAI;AAC5D,mBAAiB,gBAAgB,SAAS,cAAc,IAAI;AAC5D,MAAI;AACA,4BAAwB,IAAI,gBAAgB,KAAK,IAAI,CAAC;AACtD,UAAM,kBAAkB,MAAM,mBAAmB,UAAU,WAAW,MAAM,kBAAkB;AAC9F,qBAAiB,eAAe,gBAAgB,WAAW;AAC3D,qBAAiB,aAAa,gBAAgB,SAAS;AACvD,UAAM,qBAAqB,IAAI,KAAK,KAAK,IAAI,IAAI,gBAAgB,YAAY,GAAI;AACjF,QAAI;AACA,YAAM,oBAAoB,gBAAgB;AAAA,QACtC,GAAG;AAAA,QACH,aAAa,gBAAgB;AAAA,QAC7B,WAAW,mBAAmB,YAAY;AAAA,QAC1C,cAAc,gBAAgB;AAAA,MAClC,CAAC;AAAA,IACL,SACO,OAAO;AAAA,IACd;AACA,WAAO;AAAA,MACH,OAAO,gBAAgB;AAAA,MACvB,YAAY;AAAA,IAChB;AAAA,EACJ,SACO,OAAO;AACV,wBAAoB,aAAa;AACjC,WAAO;AAAA,EACX;AACJ;;;AChFA,IAAM,+BAA+B;AAC9B,IAAM,wBAAwB,OAAO,EAAE,aAAa,YAAY,cAAc,WAAW,aAAa,WAAW,cAAc,oBAAoB,oBAAoB,SAAS,UAAU,gBAAgB,aAAa,OAAQ,MAAM;AACxO,MAAI;AACJ,QAAM,iBAAiB;AACvB,MAAI,YAAY;AACZ,QAAI;AACA,YAAM,SAAS,MAAM,QAAoB;AAAA,QACrC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC,EAAE,EAAE,mBAAmB,CAAC;AACzB,cAAQ;AAAA,QACJ,aAAa,OAAO;AAAA,QACpB,WAAW,IAAI,KAAK,OAAO,UAAU,EAAE,YAAY;AAAA,MACvD;AAAA,IACJ,SACO,GAAG;AACN,YAAM,IAAI,yBAAyB,EAAE,SAAS;AAAA,QAC1C,aAAa;AAAA,QACb;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ,OACK;AACD,QAAI;AACA,cAAQ,MAAM,oBAAoB,WAAW;AAAA,IACjD,SACO,GAAG;AACN,YAAM,IAAI,yBAAyB,4DAA4D,cAAc,IAAI;AAAA,QAC7G,aAAa;AAAA,QACb;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AACA,MAAI,IAAI,KAAK,MAAM,SAAS,EAAE,QAAQ,IAAI,KAAK,IAAI,KAAK,GAAG;AACvD,UAAM,IAAI,yBAAyB,6DAA6D,cAAc,IAAI;AAAA,MAC9G,aAAa;AAAA,MACb;AAAA,IACJ,CAAC;AAAA,EACL;AACA,QAAM,EAAE,YAAY,IAAI;AACxB,QAAM,EAAE,WAAW,0BAA0B,IAAI,MAAM,OAAO,uBAAc;AAC5E,QAAM,MAAM,aACR,IAAI,UAAU,OAAO,OAAO,CAAC,GAAG,gBAAgB,CAAC,GAAG;AAAA,IAChD,QAAQ,cAAc,UAAU,oBAAoB,UAAU,oBAAoB;AAAA,IAClF,QAAQ,cAAc,UAAU;AAAA,IAChC,gBAAgB,cAAc,kBAAkB,oBAAoB,kBAAkB,oBAAoB;AAAA,EAC9G,CAAC,CAAC;AACN,MAAI;AACJ,MAAI;AACA,cAAU,MAAM,IAAI,KAAK,IAAI,0BAA0B;AAAA,MACnD,WAAW;AAAA,MACX,UAAU;AAAA,MACV;AAAA,IACJ,CAAC,CAAC;AAAA,EACN,SACO,GAAG;AACN,UAAM,IAAI,yBAAyB,GAAG;AAAA,MAClC,aAAa;AAAA,MACb;AAAA,IACJ,CAAC;AAAA,EACL;AACA,QAAM,EAAE,iBAAiB,EAAE,aAAa,iBAAiB,cAAc,YAAY,iBAAiB,UAAU,IAAI,CAAC,EAAG,IAAI;AAC1H,MAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,YAAY;AAClE,UAAM,IAAI,yBAAyB,gDAAgD;AAAA,MAC/E,aAAa;AAAA,MACb;AAAA,IACJ,CAAC;AAAA,EACL;AACA,QAAM,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY,IAAI,KAAK,UAAU;AAAA,IAC/B,GAAI,mBAAmB,EAAE,gBAAgB;AAAA,IACzC,GAAI,aAAa,EAAE,UAAU;AAAA,EACjC;AACA,MAAI,YAAY;AACZ,yBAAqB,aAAa,mBAAmB,GAAG;AAAA,EAC5D,OACK;AACD,yBAAqB,aAAa,0BAA0B,GAAG;AAAA,EACnE;AACA,SAAO;AACX;;;AC1FO,IAAM,qBAAqB,CAAC,SAAS,WAAW;AACnD,QAAM,EAAE,eAAe,gBAAgB,YAAY,cAAc,IAAI;AACrE,MAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,cAAc,CAAC,eAAe;AACpE,UAAM,IAAI,yBAAyB,iJACwB,OAAO,KAAK,OAAO,EAAE,KAAK,IAAI,CAAC;AAAA,qFAAwF,EAAE,aAAa,OAAO,OAAO,CAAC;AAAA,EACpN;AACA,SAAO;AACX;;;ACJO,IAAM,UAAU,CAAC,OAAO,CAAC,MAAM,OAAO,EAAE,mBAAmB,IAAI,CAAC,MAAM;AACzE,OAAK,QAAQ,MAAM,4CAA4C;AAC/D,QAAM,EAAE,aAAa,cAAc,WAAW,aAAa,WAAW,IAAI;AAC1E,QAAM,EAAE,UAAU,IAAI;AACtB,QAAM,cAAc,eAAe;AAAA,IAC/B,SAAS,KAAK,WAAW,oBAAoB;AAAA,EACjD,CAAC;AACD,MAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,aAAa,CAAC,eAAe,CAAC,YAAY;AAC5E,UAAM,WAAW,MAAM,gBAAgB,IAAI;AAC3C,UAAM,UAAU,SAAS,WAAW;AACpC,QAAI,CAAC,SAAS;AACV,YAAM,IAAI,yBAAyB,WAAW,WAAW,mBAAmB,EAAE,QAAQ,KAAK,OAAO,CAAC;AAAA,IACvG;AACA,QAAI,CAAC,aAAa,OAAO,GAAG;AACxB,YAAM,IAAI,yBAAyB,WAAW,WAAW,4CAA4C;AAAA,QACjG,QAAQ,KAAK;AAAA,MACjB,CAAC;AAAA,IACL;AACA,QAAI,SAAS,aAAa;AACtB,YAAM,cAAc,MAAM,mBAAmB,IAAI;AACjD,YAAM,UAAU,YAAY,QAAQ,WAAW;AAC/C,YAAM,cAAc,8BAA8B,WAAW,oBAAoB,QAAQ,WAAW;AACpG,UAAI,aAAa,cAAc,QAAQ,YAAY;AAC/C,cAAM,IAAI,yBAAyB,2BAA2B,aAAa;AAAA,UACvE,aAAa;AAAA,UACb,QAAQ,KAAK;AAAA,QACjB,CAAC;AAAA,MACL;AACA,UAAI,eAAe,gBAAgB,QAAQ,eAAe;AACtD,cAAM,IAAI,yBAAyB,8BAA8B,aAAa;AAAA,UAC1E,aAAa;AAAA,UACb,QAAQ,KAAK;AAAA,QACjB,CAAC;AAAA,MACL;AACA,cAAQ,aAAa,QAAQ;AAC7B,cAAQ,gBAAgB,QAAQ;AAAA,IACpC;AACA,UAAM,EAAE,eAAe,gBAAgB,YAAY,eAAe,YAAY,IAAI,mBAAmB,SAAS,KAAK,MAAM;AACzH,WAAO,sBAAsB;AAAA,MACzB,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,WAAW;AAAA,MACX,aAAa;AAAA,MACb;AAAA,MACA,cAAc,KAAK;AAAA,MACnB,oBAAoB,KAAK;AAAA,MACzB,oBAAoB,KAAK;AAAA,MACzB,SAAS;AAAA,MACT,UAAU,KAAK;AAAA,MACf,gBAAgB,KAAK;AAAA,MACrB,aAAa,KAAK;AAAA,MAClB,QAAQ,KAAK;AAAA,IACjB,CAAC;AAAA,EACL,WACS,CAAC,eAAe,CAAC,gBAAgB,CAAC,aAAa,CAAC,aAAa;AAClE,UAAM,IAAI,yBAAyB,gIAC8B,EAAE,aAAa,OAAO,QAAQ,KAAK,OAAO,CAAC;AAAA,EAChH,OACK;AACD,WAAO,sBAAsB;AAAA,MACzB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc,KAAK;AAAA,MACnB,oBAAoB,KAAK;AAAA,MACzB,oBAAoB,KAAK;AAAA,MACzB,SAAS;AAAA,MACT,UAAU,KAAK;AAAA,MACf,gBAAgB,KAAK;AAAA,MACrB,aAAa,KAAK;AAAA,MAClB,QAAQ,KAAK;AAAA,IACjB,CAAC;AAAA,EACL;AACJ;","names":[]}
|
|
@@ -16,7 +16,7 @@ var fromWebToken = (init) => async (awsIdentityProperties) => {
|
|
|
16
16
|
const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;
|
|
17
17
|
let { roleAssumerWithWebIdentity } = init;
|
|
18
18
|
if (!roleAssumerWithWebIdentity) {
|
|
19
|
-
const { getDefaultRoleAssumerWithWebIdentity } = await import("./sts-
|
|
19
|
+
const { getDefaultRoleAssumerWithWebIdentity } = await import("./sts-BLFDXC4J.js");
|
|
20
20
|
roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({
|
|
21
21
|
...init.clientConfig,
|
|
22
22
|
credentialProviderLogger: init.logger,
|
|
@@ -66,4 +66,4 @@ export {
|
|
|
66
66
|
fromTokenFile,
|
|
67
67
|
fromWebToken
|
|
68
68
|
};
|
|
69
|
-
//# sourceMappingURL=dist-es-
|
|
69
|
+
//# sourceMappingURL=dist-es-Z4NFJDXO.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { ResourceDescriptor, ResourceId, UpdateResourceInput, ResourceFilter, Cr
|
|
|
6
6
|
*
|
|
7
7
|
* The tiebreak is not cosmetic: browse pages these results with offset/limit,
|
|
8
8
|
* and a partial order lets two pages repeat or drop rows. Ids compare by code
|
|
9
|
-
* point rather than locale so the JS
|
|
9
|
+
* point rather than locale so the JS gateways agree with the engines, whose
|
|
10
10
|
* `ORDER BY` is codepoint-ordered.
|
|
11
11
|
*/
|
|
12
12
|
declare function compareByRecencyThenId(a: ResourceDescriptor, b: ResourceDescriptor): number;
|
|
@@ -188,7 +188,7 @@ declare class NeptuneGraphDatabase implements GraphDatabase {
|
|
|
188
188
|
* `range()` would order one page instead of the match set. JanusGraph
|
|
189
189
|
* post-filters for the same reason. Both share `queryResources` with the
|
|
190
190
|
* memory backend so search cannot mean three different things across three
|
|
191
|
-
*
|
|
191
|
+
* gateways.
|
|
192
192
|
*
|
|
193
193
|
* The cost is explicit and accepted: this materializes every `Resource`
|
|
194
194
|
* vertex per call, so it is O(N) in the size of the KB rather than in the
|
|
@@ -196,7 +196,7 @@ declare class NeptuneGraphDatabase implements GraphDatabase {
|
|
|
196
196
|
* query — filter, rank, page — into Cypher; Neptune and JanusGraph are not
|
|
197
197
|
* deployment targets today. If either becomes one at scale, the fix is a
|
|
198
198
|
* Gremlin rank expression (`choose` over `toLower`, engine-version
|
|
199
|
-
* permitting), not a return to per-
|
|
199
|
+
* permitting), not a return to per-gateway search semantics.
|
|
200
200
|
*/
|
|
201
201
|
listResources(filter: ResourceFilter): Promise<{
|
|
202
202
|
resources: ResourceDescriptor[];
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@ function compareByRecencyThenId(a, b) {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
// src/resource-query.ts
|
|
19
|
-
import { getResourceEntityTypes } from "@semiont/core";
|
|
19
|
+
import { getResourceEntityTypes, getStorageUri } from "@semiont/core";
|
|
20
20
|
function searchTerms(query) {
|
|
21
21
|
return query.toLowerCase().split(/\s+/).filter(Boolean);
|
|
22
22
|
}
|
|
@@ -30,7 +30,7 @@ function searchRank(resource, query) {
|
|
|
30
30
|
}
|
|
31
31
|
function matchesSearch(resource, terms) {
|
|
32
32
|
const name = (resource.name ?? "").toLowerCase();
|
|
33
|
-
const uri = resource
|
|
33
|
+
const uri = getStorageUri(resource)?.toLowerCase() ?? "";
|
|
34
34
|
const types = getResourceEntityTypes(resource).map((t) => t.toLowerCase());
|
|
35
35
|
return terms.every((term) => name.includes(term) || uri.includes(term) || types.some((t) => t.includes(term)));
|
|
36
36
|
}
|
|
@@ -157,7 +157,7 @@ function decodeSelector(raw) {
|
|
|
157
157
|
|
|
158
158
|
// src/implementations/neptune.ts
|
|
159
159
|
import { v4 as uuidv4 } from "uuid";
|
|
160
|
-
import { getBodySource as getBodySource2, getTargetSource as getTargetSource2, getPrimaryRepresentation, getResourceId } from "@semiont/core";
|
|
160
|
+
import { getBodySource as getBodySource2, getTargetSource as getTargetSource2, getPrimaryRepresentation, getResourceId, getStorageUri as getStorageUri2 } from "@semiont/core";
|
|
161
161
|
var NeptuneClient;
|
|
162
162
|
var DescribeDBClustersCommand;
|
|
163
163
|
var gremlin;
|
|
@@ -167,7 +167,7 @@ var cardinality;
|
|
|
167
167
|
var __;
|
|
168
168
|
async function loadDependencies() {
|
|
169
169
|
if (!NeptuneClient) {
|
|
170
|
-
const neptuneModule = await import("./dist-es-
|
|
170
|
+
const neptuneModule = await import("./dist-es-F44WH2AS.js");
|
|
171
171
|
NeptuneClient = neptuneModule.NeptuneClient;
|
|
172
172
|
DescribeDBClustersCommand = neptuneModule.DescribeDBClustersCommand;
|
|
173
173
|
}
|
|
@@ -210,7 +210,8 @@ function vertexToResource(vertex) {
|
|
|
210
210
|
representations: [{
|
|
211
211
|
mediaType,
|
|
212
212
|
checksum,
|
|
213
|
-
rel: "original"
|
|
213
|
+
rel: "original",
|
|
214
|
+
storageUri: getValue("storageUri") || void 0
|
|
214
215
|
}],
|
|
215
216
|
archived: archived === "true" || archived === true,
|
|
216
217
|
dateCreated,
|
|
@@ -218,8 +219,6 @@ function vertexToResource(vertex) {
|
|
|
218
219
|
};
|
|
219
220
|
const sourceResourceId = getValue("sourceResourceId");
|
|
220
221
|
if (sourceResourceId) resource.sourceResourceId = sourceResourceId;
|
|
221
|
-
const storageUri = getValue("storageUri");
|
|
222
|
-
if (storageUri) resource.storageUri = storageUri;
|
|
223
222
|
return resource;
|
|
224
223
|
}
|
|
225
224
|
function vertexToAnnotation(vertex, entityTypes = []) {
|
|
@@ -355,8 +354,9 @@ var NeptuneGraphDatabase = class {
|
|
|
355
354
|
if (resource.sourceResourceId) {
|
|
356
355
|
vertex.property("sourceResourceId", resource.sourceResourceId);
|
|
357
356
|
}
|
|
358
|
-
|
|
359
|
-
|
|
357
|
+
const storageUri = getStorageUri2(resource);
|
|
358
|
+
if (storageUri) {
|
|
359
|
+
vertex.property("storageUri", storageUri);
|
|
360
360
|
}
|
|
361
361
|
await vertex.next();
|
|
362
362
|
this.logger?.info("Created resource vertex in Neptune", { id });
|
|
@@ -415,7 +415,7 @@ var NeptuneGraphDatabase = class {
|
|
|
415
415
|
* `range()` would order one page instead of the match set. JanusGraph
|
|
416
416
|
* post-filters for the same reason. Both share `queryResources` with the
|
|
417
417
|
* memory backend so search cannot mean three different things across three
|
|
418
|
-
*
|
|
418
|
+
* gateways.
|
|
419
419
|
*
|
|
420
420
|
* The cost is explicit and accepted: this materializes every `Resource`
|
|
421
421
|
* vertex per call, so it is O(N) in the size of the KB rather than in the
|
|
@@ -423,7 +423,7 @@ var NeptuneGraphDatabase = class {
|
|
|
423
423
|
* query — filter, rank, page — into Cypher; Neptune and JanusGraph are not
|
|
424
424
|
* deployment targets today. If either becomes one at scale, the fix is a
|
|
425
425
|
* Gremlin rank expression (`choose` over `toLower`, engine-version
|
|
426
|
-
* permitting), not a return to per-
|
|
426
|
+
* permitting), not a return to per-gateway search semantics.
|
|
427
427
|
*/
|
|
428
428
|
async listResources(filter) {
|
|
429
429
|
try {
|
|
@@ -862,7 +862,7 @@ var NeptuneGraphDatabase = class {
|
|
|
862
862
|
|
|
863
863
|
// src/implementations/neo4j.ts
|
|
864
864
|
import { v4 as uuidv42 } from "uuid";
|
|
865
|
-
import { getPrimaryRepresentation as getPrimaryRepresentation2 } from "@semiont/core";
|
|
865
|
+
import { getPrimaryRepresentation as getPrimaryRepresentation2, getStorageUri as getStorageUri3 } from "@semiont/core";
|
|
866
866
|
import { getEntityTypes as getEntityTypes2 } from "@semiont/ontology";
|
|
867
867
|
function motivationToLabel(motivation) {
|
|
868
868
|
return motivation.charAt(0).toUpperCase() + motivation.slice(1);
|
|
@@ -1008,7 +1008,7 @@ var Neo4jGraphDatabase = class {
|
|
|
1008
1008
|
contentChecksum: primaryRep.checksum,
|
|
1009
1009
|
sourceAnnotationId: resource.sourceAnnotationId ?? null,
|
|
1010
1010
|
sourceResourceId: resource.sourceResourceId ?? null,
|
|
1011
|
-
storageUri: resource
|
|
1011
|
+
storageUri: getStorageUri3(resource) ?? null
|
|
1012
1012
|
}
|
|
1013
1013
|
);
|
|
1014
1014
|
this.logger?.info("Resource created/enriched", { id });
|
|
@@ -1636,7 +1636,7 @@ var Neo4jGraphDatabase = class {
|
|
|
1636
1636
|
contentChecksum: primaryRep.checksum,
|
|
1637
1637
|
sourceAnnotationId: resource.sourceAnnotationId ?? null,
|
|
1638
1638
|
sourceResourceId: resource.sourceResourceId ?? null,
|
|
1639
|
-
storageUri: resource
|
|
1639
|
+
storageUri: getStorageUri3(resource) ?? null
|
|
1640
1640
|
};
|
|
1641
1641
|
});
|
|
1642
1642
|
const result = await session.run(
|
|
@@ -1763,14 +1763,14 @@ var Neo4jGraphDatabase = class {
|
|
|
1763
1763
|
representations: [{
|
|
1764
1764
|
mediaType: props.format,
|
|
1765
1765
|
checksum: props.contentChecksum,
|
|
1766
|
-
rel: "original"
|
|
1766
|
+
rel: "original",
|
|
1767
|
+
storageUri: props.storageUri ?? void 0
|
|
1767
1768
|
}],
|
|
1768
1769
|
archived: props.archived,
|
|
1769
1770
|
dateCreated: props.created.toString(),
|
|
1770
1771
|
wasAttributedTo: typeof props.creator === "string" ? JSON.parse(props.creator) : props.creator
|
|
1771
1772
|
};
|
|
1772
1773
|
if (props.sourceResourceId) resource.sourceResourceId = props.sourceResourceId;
|
|
1773
|
-
if (props.storageUri) resource.storageUri = props.storageUri;
|
|
1774
1774
|
return resource;
|
|
1775
1775
|
}
|
|
1776
1776
|
};
|
|
@@ -1788,7 +1788,7 @@ function normalizeProperties2(props) {
|
|
|
1788
1788
|
|
|
1789
1789
|
// src/implementations/janusgraph.ts
|
|
1790
1790
|
import { resourceId as makeResourceId } from "@semiont/core";
|
|
1791
|
-
import { getBodySource as getBodySource3, getPrimaryRepresentation as getPrimaryRepresentation3, getResourceId as getResourceId2 } from "@semiont/core";
|
|
1791
|
+
import { getBodySource as getBodySource3, getPrimaryRepresentation as getPrimaryRepresentation3, getResourceId as getResourceId2, getStorageUri as getStorageUri4 } from "@semiont/core";
|
|
1792
1792
|
import { getEntityTypes as getEntityTypes3 } from "@semiont/ontology";
|
|
1793
1793
|
import { v4 as uuidv43 } from "uuid";
|
|
1794
1794
|
function getPropertyValue(props, key) {
|
|
@@ -1872,7 +1872,8 @@ var JanusGraphDatabase = class {
|
|
|
1872
1872
|
representations: [{
|
|
1873
1873
|
mediaType,
|
|
1874
1874
|
checksum: contentChecksum,
|
|
1875
|
-
rel: "original"
|
|
1875
|
+
rel: "original",
|
|
1876
|
+
storageUri: getPropertyValue(props, "storageUri") || void 0
|
|
1876
1877
|
}],
|
|
1877
1878
|
archived: getPropertyValue(props, "archived") === "true",
|
|
1878
1879
|
dateCreated: getPropertyValue(props, "created"),
|
|
@@ -1880,10 +1881,8 @@ var JanusGraphDatabase = class {
|
|
|
1880
1881
|
};
|
|
1881
1882
|
const sourceAnnotationId = getPropertyValue(props, "sourceAnnotationId");
|
|
1882
1883
|
const sourceResourceId = getPropertyValue(props, "sourceResourceId");
|
|
1883
|
-
const storageUri = getPropertyValue(props, "storageUri");
|
|
1884
1884
|
if (sourceAnnotationId) resource.sourceAnnotationId = sourceAnnotationId;
|
|
1885
1885
|
if (sourceResourceId) resource.sourceResourceId = sourceResourceId;
|
|
1886
|
-
if (storageUri) resource.storageUri = storageUri;
|
|
1887
1886
|
return resource;
|
|
1888
1887
|
}
|
|
1889
1888
|
// Helper method to fetch annotations with their entity types
|
|
@@ -1912,8 +1911,9 @@ var JanusGraphDatabase = class {
|
|
|
1912
1911
|
if (resource.sourceResourceId) {
|
|
1913
1912
|
vertex.property("sourceResourceId", resource.sourceResourceId);
|
|
1914
1913
|
}
|
|
1915
|
-
|
|
1916
|
-
|
|
1914
|
+
const storageUri = getStorageUri4(resource);
|
|
1915
|
+
if (storageUri) {
|
|
1916
|
+
vertex.property("storageUri", storageUri);
|
|
1917
1917
|
}
|
|
1918
1918
|
await vertex.next();
|
|
1919
1919
|
this.logger?.info("Created resource vertex in JanusGraph", { id });
|