Skip to content

Instantly share code, notes, and snippets.

@suenot
Created November 17, 2023 11:22
Show Gist options
  • Save suenot/db4c7c16be9459660497d5702a5d38e1 to your computer and use it in GitHub Desktop.
Save suenot/db4c7c16be9459660497d5702a5d38e1 to your computer and use it in GitHub Desktop.
Log: js-docker-isolation-provider
age. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `graphql-extensions` API has been removed from Apollo Server 3. Use the plugin API instead: https://www.apollographql.com/docs/apollo-server/integrations/plugins/
npm WARN deprecated [email protected]: Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau
npm WARN deprecated [email protected]: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
npm WARN deprecated [email protected]: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
npm WARN deprecated [email protected]: The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details.
npm WARN deprecated [email protected]: The `apollo-server` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: This package is part of the legacy caching implementation used by Apollo Server v2 and v3, and is no longer maintained. We recommend you switch to the newer Keyv-based implementation (which is compatible with all versions of Apollo Server). See https://www.apollographql.com/docs/apollo-server/v3/performance/cache-backends#legacy-caching-implementation for more details.
npm WARN deprecated [email protected]: The `apollo-server-micro` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `apollo-server-express` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md
npm WARN deprecated [email protected]: This package has been deprecated and now it only exports makeExecutableSchema.
npm WARN deprecated And it will no longer receive updates.
npm WARN deprecated We recommend you to migrate to scoped packages such as @graphql-tools/schema, @graphql-tools/utils and etc.
npm WARN deprecated Check out https://www.graphql-tools.com to learn what package you should use instead
npm WARN deprecated [email protected]: The `apollo-server-core` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated [email protected]: The `apollo-server-core` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated @belivvr/[email protected]: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm WARN deprecated [email protected]: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
npm --prefix "/tmp/78bb7d0f-f220-43ad-aaea-359963869645" i @deep-foundation/finder
added 2318 packages in 1m
170 packages are looking for funding
run `npm fund` for details
find . -name deep.json
./@deep-foundation/npm-packager/deep.json
./@deep-foundation/tsx/deep.json
./@deep-foundation/deeplinks/node_modules/@deep-foundation/tsx/deep.json
./@deep-foundation/core/deep.json
./@deep-foundation/finder/deep.json
./@deep-foundation/deepcase/deep.json
packages [
[ '@deep-foundation/npm-packager' ],
[ '@deep-foundation/tsx' ],
[ '@deep-foundation/deeplinks', '@deep-foundation/tsx' ],
[ '@deep-foundation/core' ],
[ '@deep-foundation/finder' ],
[ '@deep-foundation/deepcase' ]
]
packagePath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/npm-packager
packageJsonPath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/npm-packager/package.json
packageJson {
name: '@deep-foundation/npm-packager',
version: '0.0.38',
license: 'Unlicense',
type: 'module',
keywords: [ 'deep-package' ],
scripts: {
build: 'tsc --project tsconfig.json; node automation/build.js',
'npm-pull': 'npm-pull',
'npm-release': 'npm run build; npm run test; npm-release',
'publish-next-version': 'npm run build; npm run test; export CURRENT_VERSION=$(node automation/set-next-version.js); npm i; git add .; git commit -m $CURRENT_VERSION; git push',
test: 'npm run build && cross-env NODE_OPTIONS=--experimental-vm-modules jest --config jest.config.js *.js --testTimeout=50000'
},
dependencies: { '@deep-foundation/core': '~0.0.1' },
devDependencies: {
'@deep-foundation/npm-automation': '^18.1.3',
'@types/jest': '^29.4.0',
jest: '^29.5.0',
'jest-environment-jsdom': '^29.5.0',
semver: '^7.3.8',
'ts-jest': '^29.0.5',
'ts-node': '^10.9.1',
typescript: '^4.9.4'
}
}
deepJsonPath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/npm-packager/deep.json
deepJson {
package: { name: '@deep-foundation/npm-packager', version: '0.0.38' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ package: [Object], id: 7 },
{ package: [Object], id: 8 },
{ package: [Object], id: 9 },
{ package: [Object], id: 10 },
{ id: 'Install', type: 1, from: 2, to: 3 },
{ id: 'installCode', type: 4, value: [Object] },
{ id: 'installCodeHandler', type: 5, from: 7, to: 'installCode' },
{
id: 'installCodeHandleInsert',
type: 6,
from: 'Install',
to: 'installCodeHandler'
},
{ id: 'Publish', type: 1, from: 8, to: 3 },
{ id: 'publishCode', type: 4, value: [Object] },
{ id: 'publishCodeHandler', type: 5, from: 7, to: 'publishCode' },
{
id: 'publishCodeHandleInsert',
type: 6,
from: 'Publish',
to: 'publishCodeHandler'
},
{ id: 'Token', type: 1 },
{ id: 'tokenValue', type: 9, from: 'Token', to: 10 },
{ id: 'Used', type: 1, from: 'Install', to: 8 },
{ id: 'Installed', type: 1, from: 'Install', to: 8 }
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.1' } ]
}
dependencies { '@deep-foundation/core': '~0.0.1' }
dependencyPackageName @deep-foundation/npm-packager
packagePath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/tsx
packageJsonPath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/tsx/package.json
packageJson {
name: '@deep-foundation/tsx',
keywords: [ 'deep-package' ],
version: '0.0.5',
dependencies: { '@deep-foundation/core': '^0.0.2' }
}
deepJsonPath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/tsx/deep.json
deepJson {
package: { name: '@deep-foundation/tsx', version: '0.0.5' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ package: [Object], id: 7 },
{ package: [Object], id: 8 },
{ id: 'TSX', type: 1, value: [Object] },
{ id: 'compiler', type: 2, value: [Object] },
{ id: 'handler', type: 3, from: 4, to: 'compiler' },
{ id: 'handleUpdate', type: 5, from: 'TSX', to: 'handler' },
{ id: 'tsxValue', type: 6, from: 'TSX', to: 7 },
{
id: 'tsxSymbol',
type: 8,
from: 'TSX',
to: 'TSX',
value: [Object]
}
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies { '@deep-foundation/core': '^0.0.2' }
dependencyPackageName @deep-foundation/tsx
packagePath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/deeplinks/node_modules/@deep-foundation/tsx
packageJsonPath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/deeplinks/node_modules/@deep-foundation/tsx/package.json
packageJson {
name: '@deep-foundation/tsx',
keywords: [ 'deep-package' ],
version: '0.0.4',
dependencies: { '@deep-foundation/core': '^0.0.2' }
}
deepJsonPath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/deeplinks/node_modules/@deep-foundation/tsx/deep.json
deepJson {
package: { name: '@deep-foundation/tsx', version: '0.0.4' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ package: [Object], id: 7 },
{ package: [Object], id: 8 },
{ id: 'compiler', type: 1, value: [Object] },
{ id: 'TSX', type: 2, value: [Object] },
{ id: 'tsxValue', type: 3, from: 'TSX', to: 4 },
{
id: 'tsxSymbol',
type: 5,
from: 'TSX',
to: 'TSX',
value: [Object]
},
{ id: 'handler', type: 6, from: 7, to: 'compiler' },
{ id: 'handleUpdate', type: 8, from: 'TSX', to: 'handler' }
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies { '@deep-foundation/core': '^0.0.2' }
dependencyPackageName @deep-foundation/tsx
packagePath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/core
packageJsonPath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/core/package.json
packageJson { name: '@deep-foundation/core', version: '0.0.2' }
deepJsonPath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/core/deep.json
deepJson {
package: { name: '@deep-foundation/core', version: '0.0.2' },
data: [
{ id: 'Type', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Package', type: 'Type' },
{ id: 'Contain', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Value', type: 'Type', from: 'Any', to: 'Type' },
{ id: 'String', type: 'Type' },
{ id: 'Number', type: 'Type' },
{ id: 'Object', type: 'Type' },
{ id: 'Any', type: 'Type' },
{ id: 'Promise', type: 'Type' },
{ id: 'Then', type: 'Type', from: 'Any', to: 'Promise' },
{ id: 'Resolved', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'Rejected', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'typeValue', type: 'Value', from: 'Type', to: 'String' },
{
id: 'packageValue',
type: 'Value',
from: 'Package',
to: 'String'
},
{ id: 'Selector', type: 'Type' },
{
id: 'SelectorInclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{ id: 'Rule', type: 'Type' },
{ id: 'RuleSubject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleObject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleAction', type: 'Type', from: 'Rule', to: 'Selector' },
{
id: 'containValue',
type: 'Value',
from: 'Contain',
to: 'String'
},
{ id: 'User', type: 'Type' },
{ id: 'Operation', type: 'Type' },
{
id: 'operationValue',
type: 'Value',
from: 'Operation',
to: 'String'
},
{ id: 'AllowInsert', type: 'Operation' },
{ id: 'AllowUpdate', type: 'Operation' },
{ id: 'AllowDelete', type: 'Operation' },
{ id: 'AllowSelect', type: 'Operation' },
{ id: 'File', type: 'Type' },
{ id: 'SyncTextFile', type: 'File' },
{
id: 'syncTextFileValue',
type: 'Value',
from: 'SyncTextFile',
to: 'String'
},
{ id: 'ExecutionProvider', type: 'Type' },
{ id: 'JSExecutionProvider', type: 'ExecutionProvider' },
{ id: 'TreeInclude', type: 'Type', from: 'Type', to: 'Any' },
{ id: 'Handler', type: 'Type', from: 'Supports', to: 'Any' },
{ id: 'Tree', type: 'Type' },
{
id: 'TreeIncludeDown',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeUp',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeNode',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{ id: 'containTree', type: 'Tree' },
{
id: 'containTreeContain',
type: 'TreeIncludeDown',
from: 'containTree',
to: 'Contain'
},
{
id: 'containTreeAny',
type: 'TreeIncludeNode',
from: 'containTree',
to: 'Any'
},
{ id: 'PackageNamespace', type: 'Type' },
{
id: 'packageNamespaceValue',
type: 'Value',
from: 'PackageNamespace',
to: 'String'
},
{
id: 'PackageActive',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'PackageVersion',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'packageVersionValue',
type: 'Value',
from: 'PackageVersion',
to: 'String'
},
{ id: 'HandleOperation', type: 'Type', from: 'Type', to: 'Type' },
{
id: 'HandleInsert',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleUpdate',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleDelete',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'PromiseResult', type: 'Type' },
{
id: 'promiseResultValueRelationTable',
type: 'Value',
from: 'PromiseResult',
to: 'Object'
},
{ id: 'PromiseReason', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Focus', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'focusValue', type: 'Value', from: 'Focus', to: 'Object' },
{ id: 'AsyncFile', type: 'File' },
{
id: 'handlersTreeHandler',
type: 'TreeIncludeUp',
from: 'handlersTree',
to: 'Handler'
},
{ id: 'Query', type: 'Type' },
{ id: 'queryValue', type: 'Value', from: 'Query', to: 'Object' },
{ id: 'Active', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Fixed', type: 'Type' },
{ id: 'fixedValue', type: 'Value', from: 'Fixed', to: 'Object' },
{ id: 'Space', type: 'Type' },
{ id: 'spaceValue', type: 'Value', from: 'Space', to: 'String' },
{ id: 'AllowLogin', type: 'Operation' },
{ id: 'guests', type: 'Any' },
{ id: 'Join', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'joinTree', type: 'Tree' },
{
id: 'joinTreeJoin',
type: 'TreeIncludeUp',
from: 'joinTree',
to: 'Join'
},
{
id: 'joinTreeAny',
type: 'TreeIncludeNode',
from: 'joinTree',
to: 'Any'
},
{ id: 'SelectorTree', type: 'Type', from: 'Any', to: 'Tree' },
{ id: 'AllowAdmin', type: 'Operation' },
{
id: 'SelectorExclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{
id: 'SelectorFilter',
type: 'Type',
from: 'Selector',
to: 'Query'
},
{
id: 'HandleSchedule',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'Schedule', type: 'Type' },
{
id: 'scheduleValue',
type: 'Value',
from: 'Schedule',
to: 'String'
},
{ id: 'Router', type: 'Type', value: [Object] },
{ id: 'IsolationProvider', type: 'Type' },
{ id: 'DockerIsolationProvider', type: 'IsolationProvider' },
{
id: 'dockerIsolationProviderValue',
type: 'Value',
from: 'DockerIsolationProvider',
to: 'String'
},
{
id: 'JSDockerIsolationProvider',
type: 'DockerIsolationProvider',
value: [Object]
},
{ id: 'Supports', type: 'Type', from: 'Any', to: 'Any' },
{
id: 'dockerSupportsJs',
type: 'Supports',
from: 'JSDockerIsolationProvider',
to: 'JSExecutionProvider'
},
{
id: 'PackageInstall',
type: 'Type',
from: 'Any',
to: 'PackageQuery'
},
{
id: 'PackagePublish',
type: 'Type',
from: 'Package',
to: 'PackageQuery'
},
{ id: 'packageInstallCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packageInstallCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packageInstallCode'
},
{
id: 'packageInstallCodeHandleInsert',
type: 'HandleInsert',
from: 'PackageInstall',
to: 'packageInstallCodeHandler'
},
{ id: 'packagePublishCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packagePublishCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packagePublishCode'
},
{
id: 'packagePublishCodeHandleInsert',
type: 'HandleInsert',
from: 'PackagePublish',
to: 'packagePublishCodeHandler'
},
{ id: 'AllowPackageInstall', type: 'Operation' },
{ id: 'portValue', type: 'Value', from: 'Port', to: 'Number' },
{
id: 'HandlePort',
type: 'HandleOperation',
from: 'Port',
to: 'Any'
},
{ id: 'Route', type: 'Type' },
{ id: 'RouterListening', type: 'Type', from: 'Router', to: 'Port' },
{
id: 'RouterStringUse',
type: 'Type',
from: 'Route',
to: 'Router'
},
{
id: 'routerStringUseValue',
type: 'Value',
from: 'RouterStringUse',
to: 'String'
},
... 74 more items
],
errors: [],
strict: true,
dependencies: []
}
dependencies {}
dependencyPackageName @deep-foundation/core
packagePath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/finder
packageJsonPath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/finder/package.json
packageJson {
name: '@deep-foundation/finder',
keywords: [ 'deep-package' ],
version: '0.0.6',
dependencies: {
'@deep-foundation/core': '^0.0.2',
'@deep-foundation/deepcase': '^0.0.96',
'@deep-foundation/tsx': '^0.0.5'
}
}
deepJsonPath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/finder/deep.json
deepJson {
package: { name: '@deep-foundation/finder', version: '0.0.6' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ package: [Object], id: 7 },
{ id: 'tsx', type: 1, value: [Object] },
{ id: 'Finder', type: 2 },
{ id: 'handler', type: 3, from: 4, to: 'tsx' },
{ id: 'context', type: 5, from: 'Finder', to: 'handler' },
{ id: 'handleClient', type: 6, from: 7, to: 'handler' }
],
errors: [],
dependencies: [
{ name: '@deep-foundation/tsx', version: '0.0.5' },
{ name: '@deep-foundation/deepcase', version: '0.0.96' },
{ name: '@deep-foundation/core', version: '0.0.2' }
]
}
dependencies {
'@deep-foundation/core': '^0.0.2',
'@deep-foundation/deepcase': '^0.0.96',
'@deep-foundation/tsx': '^0.0.5'
}
dependencyPackageName @deep-foundation/finder
packagePath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/deepcase
packageJsonPath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/deepcase/package.json
packageJson {
name: '@deep-foundation/deepcase',
version: '0.0.96',
license: 'Unlicense',
type: 'module',
keywords: [ 'deep-package' ],
scripts: {
'npm-pull': 'npm-pull',
'npm-release': 'npm-release',
'package:build': 'tsc --project tsconfig.json',
'package:publish': 'npm run build && npm publish --access public',
'package:unbuild': 'rimraf ./*.js && rimraf ./*.js.map && rimraf ./*.d.ts && (cd ./imports && rimraf ./*.js && rimraf ./*.js.map && rimraf ./*.d.ts && cd ../)',
'package:watch': 'tsc -w --project tsconfig.json'
},
dependencies: {
'@apollo/client': '^3.7.14',
'@belivvr/aframe-react': '^0.4.2',
'@capacitor/core': '^5.0.4',
'@chakra-ui/icons': '^2.0.19',
'@chakra-ui/react': '^2.6.1',
'@chakra-ui/theme-tools': '^2.0.16',
'@deep-foundation/core': '~0.0.2',
'@deep-foundation/deeplinks': '^0.0.302',
'@deep-foundation/tsx': '~0.0.3',
'@emotion/react': '^11.11.0',
'@emotion/styled': '^11.11.0',
'@monaco-editor/react': '^4.5.1',
'@react-hook/debounce': '^4.0.0',
'@rjsf/chakra-ui': '^5.8.1',
'@rjsf/core': '^5.8.1',
'@rjsf/validator-ajv8': '^5.8.1',
'@types/animejs': '^3.1.7',
'@types/react': '^18.2.15',
'@types/react-cytoscapejs': '^1.2.2',
'@types/stats.js': '^0.17.0',
'@types/three': '^0.156.0',
'@types/webxr': '^0.5.4',
aframe: '^1.4.2',
'aframe-environment-component': '^1.3.3',
'aframe-extras': '^7.0.0',
'aframe-forcegraph-component': '^3.0.8',
'aframe-react': '^4.4.0',
axios: '^1.4.0',
'axios-hooks': '^4.0.0',
classnames: '^2.3.2',
'copy-to-clipboard': '^3.3.3',
'css-select': '^5.1.0',
cytoscape: '^3.25.0',
'cytoscape-cola': '^2.5.1',
'cytoscape-cxtmenu': '^3.5.0',
'cytoscape-d3-force': '^1.1.4',
'cytoscape-dagre': '^2.5.0',
'cytoscape-deep-d3-force': '^1.2.3',
'cytoscape-edge-connections': '^0.5.0',
'cytoscape-edgehandles': '^4.0.1',
d3: '^7.8.5',
'd3-force-3d': '^3.0.5',
debug: '^4.3.4',
'emoji-picker-react': '^4.5.2',
fflate: '^0.6.10',
'framer-motion': '^10.12.16',
i18next: '^23.5.1',
'i18next-browser-languagedetector': '^7.1.0',
immutable: '^4.3.0',
'is-hotkey': '^0.2.0',
json5: '^2.2.3',
'markup-it': '^13.0.0',
md5: '^2.3.0',
meshoptimizer: '^0.18.1',
next: '13.3',
peerjs: '^1.4.7',
're-resizable': '^6.9.9',
react: '*',
'react-cytoscapejs': '^2.0.0',
'react-d3-cloud': '^1.0.6',
'react-device-detect': '^2.2.3',
'react-dom': '^18',
'react-dropzone': '^14.2.3',
'react-ga': '^3.3.1',
'react-hotkeys-hook': '^4.4.0',
'react-i18next': '^13.2.2',
'react-icons': '^4.8.0',
'react-linkify': '^1.0.0-alpha',
'react-resize-detector': '^9.1.0',
'react-yandex-metrika': '^2.6.0',
recharts: '^2.8.0',
slate: '^0.94.1',
'slate-history': '^0.93.0',
'slate-react': '^0.94.2',
'slate-serializers': '0.0.32',
'slate-soft-break': '^0.9.0',
'super-hands': '^3.0.4',
typescript: '^5.0.4',
'usehooks-ts': '^2.9.1',
uuid: '^9.0.0',
xterm: '^5.1.0'
},
engines: { node: '^18' },
peerDependencies: { react: '*' },
devDependencies: {
'@deep-foundation/npm-automation': '^18.1.10',
depcheck: '^1.4.3',
'ts-node': '^10.9.1'
}
}
deepJsonPath /tmp/78bb7d0f-f220-43ad-aaea-359963869645/node_modules/@deep-foundation/deepcase/deep.json
deepJson {
package: { name: '@deep-foundation/deepcase', version: '0.0.96' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ package: [Object], id: 7 },
{ package: [Object], id: 8 },
{ package: [Object], id: 9 },
{ package: [Object], id: 10 },
{ package: [Object], id: 11 },
{ package: [Object], id: 12 },
{ package: [Object], id: 13 },
{ package: [Object], id: 14 },
{
id: 'stringJoinHandleClient',
type: 1,
from: 2,
to: 'stringHandler',
value: [Object]
},
{
id: 'stringHandler',
type: 3,
from: 4,
to: 'stringClientHandlerGenerated',
value: [Object]
},
{
id: 'stringPackageQueryHandleClient',
type: 1,
from: 5,
to: 'stringHandler',
value: [Object]
},
{
id: 'stringContainHandleClient',
type: 1,
from: 6,
to: 'stringHandler',
value: [Object]
},
{ id: 'stringClientHandlerGenerated', type: 7, value: [Object] },
{ id: 'editorClientHandlerGenerated', type: 7, value: [Object] },
{
id: 'editorHandler',
type: 3,
from: 4,
to: 'editorClientHandlerGenerated',
value: [Object]
},
{
id: 'editorHandleClientTSX',
type: 1,
from: 7,
to: 'editorHandler',
value: [Object]
},
{ id: 'queryClientHandlerGenerated', type: 7, value: [Object] },
{
id: 'queryHandler',
type: 3,
from: 4,
to: 'queryClientHandlerGenerated',
value: [Object]
},
{
id: 'queryHandleClient',
type: 1,
from: 8,
to: 'queryHandler',
value: [Object]
},
{ id: 'Traveler', type: 9, from: 10, to: 8 },
{
id: 'travelerSymbol',
type: 11,
from: 'Traveler',
to: 'Traveler',
value: [Object]
},
{ id: 'stringClientHandler', type: 12, value: [Object] },
{
id: 'stringClientHandlerGeneratedFrom',
type: 13,
from: 'stringClientHandlerGenerated',
to: 'stringClientHandler'
},
{
id: 'editorHandleClientSyncTextFile',
type: 1,
from: 12,
to: 'editorHandler',
value: [Object]
},
{ id: 'queryClientHandler', type: 12, value: [Object] },
{
id: 'queryClientHandlerGeneratedFrom',
type: 13,
from: 'queryClientHandlerGenerated',
to: 'queryClientHandler'
},
{ id: 'editorClientHandler', type: 12, value: [Object] },
{
id: 'editorClientHandlerGeneratedFrom',
type: 13,
from: 'editorClientHandlerGenerated',
to: 'editorClientHandler'
},
{ id: 'asyncFileClientHandler', type: 12, value: [Object] },
{ id: 'ContextToken', type: 9 },
{ id: 'Context', type: 9, from: 'ContextToken', to: 3 },
{
id: 'asyncFileHandleClient',
type: 1,
from: 14,
to: 'asyncFileHandler'
},
{ id: 'asyncFileClientHandlerGenerated', type: 7, value: [Object] },
{
id: 'asyncFileClientHandlerGeneratedFrom',
type: 13,
from: 'asyncFileClientHandlerGenerated',
to: 'asyncFileClientHandler'
},
{
id: 'asyncFileHandler',
type: 3,
from: 4,
to: 'asyncFileClientHandlerGenerated'
}
],
errors: [],
dependencies: [
{ name: '@deep-foundation/core', version: '0.0.2' },
{ name: '@deep-foundation/tsx', version: '0.0.3' }
]
}
dependencies {
'@apollo/client': '^3.7.14',
'@belivvr/aframe-react': '^0.4.2',
'@capacitor/core': '^5.0.4',
'@chakra-ui/icons': '^2.0.19',
'@chakra-ui/react': '^2.6.1',
'@chakra-ui/theme-tools': '^2.0.16',
'@deep-foundation/core': '~0.0.2',
'@deep-foundation/deeplinks': '^0.0.302',
'@deep-foundation/tsx': '~0.0.3',
'@emotion/react': '^11.11.0',
'@emotion/styled': '^11.11.0',
'@monaco-editor/react': '^4.5.1',
'@react-hook/debounce': '^4.0.0',
'@rjsf/chakra-ui': '^5.8.1',
'@rjsf/core': '^5.8.1',
'@rjsf/validator-ajv8': '^5.8.1',
'@types/animejs': '^3.1.7',
'@types/react': '^18.2.15',
'@types/react-cytoscapejs': '^1.2.2',
'@types/stats.js': '^0.17.0',
'@types/three': '^0.156.0',
'@types/webxr': '^0.5.4',
aframe: '^1.4.2',
'aframe-environment-component': '^1.3.3',
'aframe-extras': '^7.0.0',
'aframe-forcegraph-component': '^3.0.8',
'aframe-react': '^4.4.0',
axios: '^1.4.0',
'axios-hooks': '^4.0.0',
classnames: '^2.3.2',
'copy-to-clipboard': '^3.3.3',
'css-select': '^5.1.0',
cytoscape: '^3.25.0',
'cytoscape-cola': '^2.5.1',
'cytoscape-cxtmenu': '^3.5.0',
'cytoscape-d3-force': '^1.1.4',
'cytoscape-dagre': '^2.5.0',
'cytoscape-deep-d3-force': '^1.2.3',
'cytoscape-edge-connections': '^0.5.0',
'cytoscape-edgehandles': '^4.0.1',
d3: '^7.8.5',
'd3-force-3d': '^3.0.5',
debug: '^4.3.4',
'emoji-picker-react': '^4.5.2',
fflate: '^0.6.10',
'framer-motion': '^10.12.16',
i18next: '^23.5.1',
'i18next-browser-languagedetector': '^7.1.0',
immutable: '^4.3.0',
'is-hotkey': '^0.2.0',
json5: '^2.2.3',
'markup-it': '^13.0.0',
md5: '^2.3.0',
meshoptimizer: '^0.18.1',
next: '13.3',
peerjs: '^1.4.7',
're-resizable': '^6.9.9',
react: '*',
'react-cytoscapejs': '^2.0.0',
'react-d3-cloud': '^1.0.6',
'react-device-detect': '^2.2.3',
'react-dom': '^18',
'react-dropzone': '^14.2.3',
'react-ga': '^3.3.1',
'react-hotkeys-hook': '^4.4.0',
'react-i18next': '^13.2.2',
'react-icons': '^4.8.0',
'react-linkify': '^1.0.0-alpha',
'react-resize-detector': '^9.1.0',
'react-yandex-metrika': '^2.6.0',
recharts: '^2.8.0',
slate: '^0.94.1',
'slate-history': '^0.93.0',
'slate-react': '^0.94.2',
'slate-serializers': '0.0.32',
'slate-soft-break': '^0.9.0',
'super-hands': '^3.0.4',
typescript: '^5.0.4',
'usehooks-ts': '^2.9.1',
uuid: '^9.0.0',
xterm: '^5.1.0'
}
dependencyPackageName @deep-foundation/deepcase
deepPackagesDependencies {
'@deep-foundation/npm-packager': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@deep-foundation/npm-packager',
version: '0.0.38',
license: 'Unlicense',
type: 'module',
keywords: [Array],
scripts: [Object],
dependencies: [Object],
devDependencies: [Object]
},
dependencies: [ '@deep-foundation/core' ]
},
'@deep-foundation/tsx': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@deep-foundation/tsx',
keywords: [Array],
version: '0.0.4',
dependencies: [Object]
},
dependencies: [ '@deep-foundation/core' ]
},
'@deep-foundation/core': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' },
dependencies: []
},
'@deep-foundation/deepcase': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@deep-foundation/deepcase',
version: '0.0.96',
license: 'Unlicense',
type: 'module',
keywords: [Array],
scripts: [Object],
dependencies: [Object],
engines: [Object],
peerDependencies: [Object],
devDependencies: [Object]
},
dependencies: [ '@deep-foundation/core', '@deep-foundation/tsx' ]
}
}
installationQueue [
{
name: '@deep-foundation/core',
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' }
},
{
name: '@deep-foundation/npm-packager',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@deep-foundation/npm-packager',
version: '0.0.38',
license: 'Unlicense',
type: 'module',
keywords: [Array],
scripts: [Object],
dependencies: [Object],
devDependencies: [Object]
}
},
{
name: '@deep-foundation/tsx',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@deep-foundation/tsx',
keywords: [Array],
version: '0.0.4',
dependencies: [Object]
}
},
{
name: '@deep-foundation/deepcase',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@deep-foundation/deepcase',
version: '0.0.96',
license: 'Unlicense',
type: 'module',
keywords: [Array],
scripts: [Object],
dependencies: [Object],
engines: [Object],
peerDependencies: [Object],
devDependencies: [Object]
}
}
]
installationSet {
'@deep-foundation/core': true,
'@deep-foundation/npm-packager': true,
'@deep-foundation/tsx': true,
'@deep-foundation/deepcase': true
}
packages [
{
id: 184,
name: { id: 6, value: '@deep-foundation/core', link_id: 184 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 719,
name: { id: 317, value: '@deep-foundation/tsx', link_id: 719 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 754,
name: { id: 328, value: '@deep-foundation/npm-packager', link_id: 754 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 821,
name: { id: 370, value: '@deep-foundation/deepcase', link_id: 821 },
versions: [ [Object] ],
__typename: 'links'
}
]
existingPackages {
'@deep-foundation/core': { id: 184, version: '0.0.2' },
'@deep-foundation/tsx': { id: 719, version: '0.0.5' },
'@deep-foundation/npm-packager': { id: 754, version: '0.0.39' },
'@deep-foundation/deepcase': { id: 821, version: '0.0.98' }
}
existingPackages {
'@deep-foundation/core': { id: 184, version: '0.0.2' },
'@deep-foundation/tsx': { id: 719, version: '0.0.5' },
'@deep-foundation/npm-packager': { id: 754, version: '0.0.39' },
'@deep-foundation/deepcase': { id: 821, version: '0.0.98' }
}
IGNORED ERROR: Call to DeepClient.resolveDependency is failed with Error [ERR_REQUIRE_ESM]: require() of ES Module /node_modules/@deep-foundation/deeplinks/imports/packager.js from /index.js not supported.
Instead change the require of packager.js in /index.js to a dynamic import() which is available in all CommonJS modules.
at DeepClient.requireWrapper [as resolveDependency] (file:///index.js:27:12)
at DeepClient.<anonymous> (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:721:45)
at Generator.next (<anonymous>)
at file:///node_modules/@deep-foundation/deeplinks/imports/client.js:7:71
at new Promise (<anonymous>)
at __awaiter (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:3:12)
at DeepClient.import (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:718:16)
at deepImport (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:64:44)
at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:266:26) {
code: 'ERR_REQUIRE_ESM'
}
call body params {
code: '\n' +
'async ({ deep, require, gql, data: { newLink } }) => {\n' +
" const ts = require('typescript');\n" +
' const { data: [generatedFrom] } = await deep.select({\n' +
" type_id: await deep.id('@deep-foundation/core', 'GeneratedFrom'),\n" +
' to_id: newLink.id, \n' +
' });\n' +
' const value = newLink?.value?.value;\n' +
" let compiledString = '';\n" +
' if (value) {\n' +
' const result = ts.transpileModule(value, {\n' +
' "compilerOptions": {\n' +
' "allowSyntheticDefaultImports": true,\n' +
' "experimentalDecorators": true,\n' +
' "inlineSourceMap": true,\n' +
' inlineSources: true,\n' +
' "noImplicitAny": false,\n' +
' "removeComments": true,\n' +
' "jsx": "react",\n' +
' "module": "ESNext",\n' +
' "moduleResolution": "node",\n' +
' "target": "ESNext",\n' +
' "skipLibCheck": true,\n' +
' "resolveJsonModule": true,\n' +
' "esModuleInterop": true,\n' +
' "isolatedModules": true\n' +
' }\n' +
' });\n' +
' if (!result.outputText) {\n' +
' throw result;\n' +
' }\n' +
" compiledString = result.outputText || '';\n" +
' }\n' +
' if (!generatedFrom) {\n' +
' await deep.insert({\n' +
" type_id: await deep.id('@deep-foundation/core', 'GeneratedFrom'),\n" +
' to_id: newLink.id,\n' +
' in: { data: {\n' +
" type_id: await deep.id('@deep-foundation/core', 'Contain'),\n" +
' from_id: newLink.id,\n' +
' } },\n' +
' from: { data: {\n' +
" type_id: await deep.id('@deep-foundation/core', 'SyncTextFile'),\n" +
' string: { data: { value: compiledString } },\n' +
' in: { data: {\n' +
" type_id: await deep.id('@deep-foundation/core', 'Contain'),\n" +
' from_id: newLink.id,\n' +
" string: { data: { value: 'generated' } },\n" +
' } },\n' +
' } },\n' +
' });\n' +
' } else {\n' +
' await deep.update({\n' +
' link_id: { _eq: generatedFrom.from_id },\n' +
' }, {\n' +
' value: compiledString,\n' +
" }, { table: 'strings' });\n" +
' }\n' +
'}\n',
container: {
name: 'deep-138d60d2a0fd040bfe13e80d143de80d',
host: 'deep-138d60d2a0fd040bfe13e80d143de80d',
port: 40317,
options: {
publish: false,
forceRestart: true,
handler: 'deepf/js-docker-isolation-provider:main'
}
},
jwt: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwczovL2hhc3VyYS5pby9qd3QvY2xhaW1zIjp7IngtaGFzdXJhLWFsbG93ZWQtcm9sZXMiOlsiYWRtaW4iXSwieC1oYXN1cmEtZGVmYXVsdC1yb2xlIjoiYWRtaW4iLCJ4LWhhc3VyYS11c2VyLWlkIjoiNzE5In0sImlhdCI6MTcwMDE3ODgwOH0.VuixA_9Xz68sb6y3GnfgSeH8gUtxQO6fq0j6qLuMA_U',
secret: '4459a8e24fec162fd9ff71b57abec189396cad50cf867871',
data: {
triggeredByLinkId: 754,
oldLink: {
id: 971,
from_id: 0,
type_id: 715,
to_id: 0,
__typename: 'links',
value: null
},
newLink: {
id: 971,
from_id: 0,
type_id: 715,
to_id: 0,
__typename: 'links',
value: [Object]
},
promiseId: 994
}
}
call result undefined
{
ids: [
967, 968, 969, 970, 971, 972,
973, 974, 975, 976, 977, 978,
979, 980, 981, 982, 983, 984,
985, 986, 987, 988, 989, 990,
991, 992, 993
],
errors: [],
namespaceId: 967,
packageId: 975
}
call result {
ids: [
967, 968, 969, 970, 971, 972,
973, 974, 975, 976, 977, 978,
979, 980, 981, 982, 983, 984,
985, 986, 987, 988, 989, 990,
991, 992, 993
],
errors: [],
namespaceId: 967,
packageId: 975
}
call body params {
code: 'async ({ deep, gql, data: { triggeredByLinkId, newLink } }) => {\n' +
" const deepFileName = 'deep.json';\n" +
" const fs = await deep.import('fs');\n" +
'\n' +
' const makeTempDirectory = async () => {\n' +
" const os = await deep.import('os');\n" +
" const { v4: uuid } = await deep.import('uuid');\n" +
' \n' +
' const baseTempDirectory = os.tmpdir();\n' +
' const randomId = uuid();\n' +
" const tempDirectory = [baseTempDirectory,randomId].join('/');\n" +
' fs.mkdirSync(tempDirectory);\n' +
' console.log(tempDirectory);\n' +
' return tempDirectory;\n' +
' };\n' +
' const npmInstall = async (packageName, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
' const command = `npm --prefix "${tempDirectory}" i ${packageName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
' const npmLogin = async (token, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
' \n' +
' const command = `npm set "//registry.npmjs.org/:_authToken" ${token}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
" const makePackagePath = (tempDirectory, packageName) => [tempDirectory, 'node_modules', packageName].join('/');\n" +
" const makeDeepJsonPath = (packagePath) => [packagePath, deepFileName].join('/');\n" +
" const makePackageJsonPath = (packagePath) => [packagePath, 'package.json'].join('/');\n" +
' const loadNpmToken = async () => {\n' +
" const containTreeId = await deep.id('@deep-foundation/core', 'containTree');\n" +
" const tokenTypeId = await deep.id('@deep-foundation/npm-packager', 'Token');\n" +
' const { data: [{ value: { value: npmToken = undefined } = {}} = {}] = []} = await deep.select({\n' +
' up: {\n' +
' tree_id: { _eq: containTreeId },\n' +
' parent: { id: { _eq: triggeredByLinkId } },\n' +
' link: { type_id: { _eq: tokenTypeId } }\n' +
' }\n' +
' });\n' +
' return npmToken;\n' +
' };\n' +
' const deepImport = async (deepJson, packageJson) => {\n' +
' if (deepJson.package.name !== packageJson.name) {\n' +
' throw new Error(`Package name is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package name: ${deepJson.package.name}.\n' +
' package.json package name: ${packageJson.name}.`);\n' +
' }\n' +
' if (deepJson.package.version !== packageJson.version) {\n' +
' throw new Error(`Package version is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package version: ${deepJson.package.version}.\n' +
' package.json package version: ${packageJson.version}.`);\n' +
' }\n' +
" const packager = new (await deep.import('@deep-foundation/deeplinks/imports/packager.js')).Packager(deep);\n" +
' const imported = await packager.import(deepJson);\n' +
' console.log(imported);\n' +
' if (imported?.errors?.length) throw imported;\n' +
' return imported;\n' +
' };\n' +
' const getDeepPackagesList = async (rootPath) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
" const deepFileName = 'deep.json';\n" +
' const deepFileNameLength = deepFileName.length;\n' +
'\n' +
' const command = `find . -name ${deepFileName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: rootPath\n' +
' });\n' +
" console.log('', `${command}\\n`, output);\n" +
'\n' +
' const packages = output\n' +
' .split(/\\r?\\n/)\n' +
' .filter(line => line.trim())\n' +
' .map(line => line.slice(2).slice(0, -deepFileNameLength - 1))\n' +
" .map(line => line.split('/node_modules/'));\n" +
' return packages;\n' +
' };\n' +
' const getDeepPackagesDependencies = async (rootPath, packages, packageName) => {\n' +
' const dictionary = {};\n' +
' for (const pkg of packages) {\n' +
" const packagePath = [rootPath, pkg.join('/node_modules/')].join('/');\n" +
" console.log('packagePath', packagePath);\n" +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
" console.log('packageJsonPath', packageJsonPath);\n" +
' if (!fs.existsSync(packageJsonPath)) {\n' +
' throw new Error(`package.json for dependency ${pkg} is not found at ${packageJsonPath}. Looks like ${packageName} does not contain ${pkg} dependency in package.json.`);\n' +
' }\n' +
' const packageJson = await deep.import(packageJsonPath);\n' +
" console.log('packageJson', packageJson);\n" +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
" console.log('deepJsonPath', deepJsonPath);\n" +
' if (!fs.existsSync(deepJsonPath)) {\n' +
' throw new Error(`deep.json for dependency ${pkg} is not found at ${deepJsonPath}. Looks like ${pkg} installed, but it does not contain deep.json. Make sure ${pkg} is a deep package.`);\n' +
' }\n' +
' const deepJson = await deep.import(deepJsonPath);\n' +
" console.log('deepJson', deepJson);\n" +
' const dependencies = packageJson.dependencies ?? {};\n' +
" console.log('dependencies', dependencies);\n" +
' const dependencyPackageName = pkg.at(-1);\n' +
" console.log('dependencyPackageName', dependencyPackageName);\n" +
' if (Array.isArray(dictionary[dependencyPackageName])) {\n' +
" throw new Error('Multiple versions of the same package are not supported yet.');\n" +
' }\n' +
' dictionary[dependencyPackageName] = { deepJson, packageJson, dependencies };\n' +
' }\n' +
' for (const pkg in dictionary) {\n' +
' const sourceDependencies = dictionary[pkg].dependencies;\n' +
' const targetDependencies = [];\n' +
' for (const dependency in sourceDependencies)\n' +
' {\n' +
' if (dictionary[dependency]) {\n' +
' targetDependencies.push(dependency);\n' +
' }\n' +
' }\n' +
' dictionary[pkg].dependencies = targetDependencies;\n' +
' }\n' +
' return dictionary;\n' +
' }\n' +
' const buildInstallationQueueCore = (deepPackagesDependencies, queue, set, packageName) => {\n' +
' const dependencies = deepPackagesDependencies[packageName].dependencies;\n' +
' for (const dependency of dependencies) {\n' +
' if (!set[dependency]) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, dependency);\n' +
' }\n' +
' }\n' +
' if(!set[packageName]) {\n' +
' const deepJson = deepPackagesDependencies[packageName].deepJson;\n' +
' const packageJson = deepPackagesDependencies[packageName].packageJson;\n' +
' queue.push({ name: packageName, deepJson, packageJson });\n' +
' set[packageName] = true;\n' +
' }\n' +
' }\n' +
' const buildInstallationQueue = (deepPackagesDependencies, queue, set) => {\n' +
' for (const packageName in deepPackagesDependencies) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, packageName);\n' +
' }\n' +
' }\n' +
' const getExistingPackages = async (packageNames) => {\n' +
" const packageTypeId = await deep.id('@deep-foundation/core', 'Package');\n" +
" const packageVersionTypeId = await deep.id('@deep-foundation/core', 'PackageVersion');\n" +
' const { data: packages } = await deep.select({\n' +
' type_id: { _eq: packageTypeId },\n' +
' string: { value: { _in: packageNames } }\n' +
' }, {\n' +
" name: 'GET_EXISTING_PACKAGES_WITH_VERSIONS',\n" +
' returning: `\n' +
' id\n' +
' name: value\n' +
' versions: in(where: {type_id: {_eq: ${packageVersionTypeId}}, string: {value: {_is_null: false}}}) {\n' +
' id\n' +
' version: value\n' +
' }\n' +
' `\n' +
' })\n' +
" console.log('packages', packages);\n" +
' const existingPackages = packages.reduce(\n' +
' (accumulator, currentValue) => {\n' +
' const packageId = currentValue?.id;\n' +
' const packageName = currentValue?.name?.value;\n' +
' if (currentValue?.versions.length !== 1) {\n' +
" throw new Error(`'${packageName}' package must have exactly one version. Now it has ${currentValue?.versions.length} versions.`);\n" +
' }\n' +
' if (accumulator[packageName]) {\n' +
" throw new Error(`Multiple packages with name '${packageName}' exist.`)\n" +
' }\n' +
' const packageVersion = currentValue?.versions?.[0]?.version?.value;\n' +
' accumulator[packageName] = { id: packageId, version: packageVersion };\n' +
' return accumulator;\n' +
' },\n' +
' {}\n' +
' );\n' +
" console.log('existingPackages', existingPackages);\n" +
' return existingPackages;\n' +
' };\n' +
'\n' +
' if (!triggeredByLinkId) {\n' +
" throw new Error('Install link should be inserted using JWT token (role link), it cannot be inserted using hasura secret (role admin).');\n" +
' }\n' +
'\n' +
' const { data: [{ value: { value: packageQuery } }] } = await deep.select({ id: newLink.to_id });\n' +
" const packageQueryParts = packageQuery.split('@');\n" +
' if (packageQueryParts.length === 3) {\n' +
' const packageVersion = packageQueryParts.pop();\n' +
' }\n' +
" const packageName = packageQueryParts.join('@');\n" +
' if (!packageName) {\n' +
" throw new Error('Package query value is empty.');\n" +
' }\n' +
' const tempDirectory = await makeTempDirectory();\n' +
' let deepJson;\n' +
' let packageJson;\n' +
' const installationQueue = [];\n' +
' const installationSet = {};\n' +
' try {\n' +
' const npmToken = await loadNpmToken();\n' +
' if (npmToken) {\n' +
' await npmLogin(npmToken, tempDirectory);\n' +
' }\n' +
" const nodeModulesPath = [tempDirectory, 'node_modules'].join('/');\n" +
' await npmInstall(packageQuery, tempDirectory);\n' +
' const packagePath = makePackagePath(tempDirectory, packageName);\n' +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
' deepJson = await deep.import(deepJsonPath);\n' +
' packageJson = await deep.import(packageJsonPath);\n' +
'\n' +
' const packages = await getDeepPackagesList(nodeModulesPath);\n' +
" console.log('packages', packages);\n" +
' \n' +
' const deepPackagesDependencies = await getDeepPackagesDependencies(nodeModulesPath, packages, packageName);\n' +
' delete deepPackagesDependencies[packageName];\n' +
" console.log('deepPackagesDependencies', deepPackagesDependencies);\n" +
' \n' +
' buildInstallationQueue(deepPackagesDependencies, installationQueue, installationSet);\n' +
' \n' +
" console.log('installationQueue', installationQueue);\n" +
" console.log('installationSet', installationSet);\n" +
' } finally {\n' +
' fs.rmSync(tempDirectory, { recursive: true, force: true });\n' +
' }\n' +
' \n' +
' const existingPackages = await getExistingPackages(installationQueue.map(e => e.name));\n' +
" console.log('existingPackages', existingPackages);\n" +
'\n' +
' for (const dependencyPackage of instal'... 1567 more characters,
container: {
name: 'deep-138d60d2a0fd040bfe13e80d143de80d',
host: 'deep-138d60d2a0fd040bfe13e80d143de80d',
port: 40317,
options: {
publish: false,
forceRestart: true,
handler: 'deepf/js-docker-isolation-provider:main'
}
},
jwt: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwczovL2hhc3VyYS5pby9qd3QvY2xhaW1zIjp7IngtaGFzdXJhLWFsbG93ZWQtcm9sZXMiOlsiYWRtaW4iXSwieC1oYXN1cmEtZGVmYXVsdC1yb2xlIjoiYWRtaW4iLCJ4LWhhc3VyYS11c2VyLWlkIjoiNzU0In0sImlhdCI6MTcwMDE3ODgxM30.zkKnU0HyNnzIAXwMX1tI9UfVtN81S32Wo5VUL4G0Gic',
secret: '4459a8e24fec162fd9ff71b57abec189396cad50cf867871',
data: {
triggeredByLinkId: 380,
oldLink: null,
newLink: { from_id: 380, type_id: 750, id: 1010, to_id: 1009, value: null },
promiseId: 1011
}
}
/tmp/bf5f4181-4dc2-486a-81cb-d8083f32b55f
npm --prefix "/tmp/bf5f4181-4dc2-486a-81cb-d8083f32b55f" i @deep-foundation/deepcase-opened
added 2 packages in 5s
find . -name deep.json
./@deep-foundation/core/deep.json
./@deep-foundation/deepcase-opened/deep.json
packages [ [ '@deep-foundation/core' ], [ '@deep-foundation/deepcase-opened' ] ]
packagePath /tmp/bf5f4181-4dc2-486a-81cb-d8083f32b55f/node_modules/@deep-foundation/core
packageJsonPath /tmp/bf5f4181-4dc2-486a-81cb-d8083f32b55f/node_modules/@deep-foundation/core/package.json
packageJson { name: '@deep-foundation/core', version: '0.0.2' }
deepJsonPath /tmp/bf5f4181-4dc2-486a-81cb-d8083f32b55f/node_modules/@deep-foundation/core/deep.json
deepJson {
package: { name: '@deep-foundation/core', version: '0.0.2' },
data: [
{ id: 'Type', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Package', type: 'Type' },
{ id: 'Contain', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Value', type: 'Type', from: 'Any', to: 'Type' },
{ id: 'String', type: 'Type' },
{ id: 'Number', type: 'Type' },
{ id: 'Object', type: 'Type' },
{ id: 'Any', type: 'Type' },
{ id: 'Promise', type: 'Type' },
{ id: 'Then', type: 'Type', from: 'Any', to: 'Promise' },
{ id: 'Resolved', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'Rejected', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'typeValue', type: 'Value', from: 'Type', to: 'String' },
{
id: 'packageValue',
type: 'Value',
from: 'Package',
to: 'String'
},
{ id: 'Selector', type: 'Type' },
{
id: 'SelectorInclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{ id: 'Rule', type: 'Type' },
{ id: 'RuleSubject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleObject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleAction', type: 'Type', from: 'Rule', to: 'Selector' },
{
id: 'containValue',
type: 'Value',
from: 'Contain',
to: 'String'
},
{ id: 'User', type: 'Type' },
{ id: 'Operation', type: 'Type' },
{
id: 'operationValue',
type: 'Value',
from: 'Operation',
to: 'String'
},
{ id: 'AllowInsert', type: 'Operation' },
{ id: 'AllowUpdate', type: 'Operation' },
{ id: 'AllowDelete', type: 'Operation' },
{ id: 'AllowSelect', type: 'Operation' },
{ id: 'File', type: 'Type' },
{ id: 'SyncTextFile', type: 'File' },
{
id: 'syncTextFileValue',
type: 'Value',
from: 'SyncTextFile',
to: 'String'
},
{ id: 'ExecutionProvider', type: 'Type' },
{ id: 'JSExecutionProvider', type: 'ExecutionProvider' },
{ id: 'TreeInclude', type: 'Type', from: 'Type', to: 'Any' },
{ id: 'Handler', type: 'Type', from: 'Supports', to: 'Any' },
{ id: 'Tree', type: 'Type' },
{
id: 'TreeIncludeDown',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeUp',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeNode',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{ id: 'containTree', type: 'Tree' },
{
id: 'containTreeContain',
type: 'TreeIncludeDown',
from: 'containTree',
to: 'Contain'
},
{
id: 'containTreeAny',
type: 'TreeIncludeNode',
from: 'containTree',
to: 'Any'
},
{ id: 'PackageNamespace', type: 'Type' },
{
id: 'packageNamespaceValue',
type: 'Value',
from: 'PackageNamespace',
to: 'String'
},
{
id: 'PackageActive',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'PackageVersion',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'packageVersionValue',
type: 'Value',
from: 'PackageVersion',
to: 'String'
},
{ id: 'HandleOperation', type: 'Type', from: 'Type', to: 'Type' },
{
id: 'HandleInsert',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleUpdate',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleDelete',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'PromiseResult', type: 'Type' },
{
id: 'promiseResultValueRelationTable',
type: 'Value',
from: 'PromiseResult',
to: 'Object'
},
{ id: 'PromiseReason', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Focus', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'focusValue', type: 'Value', from: 'Focus', to: 'Object' },
{ id: 'AsyncFile', type: 'File' },
{
id: 'handlersTreeHandler',
type: 'TreeIncludeUp',
from: 'handlersTree',
to: 'Handler'
},
{ id: 'Query', type: 'Type' },
{ id: 'queryValue', type: 'Value', from: 'Query', to: 'Object' },
{ id: 'Active', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Fixed', type: 'Type' },
{ id: 'fixedValue', type: 'Value', from: 'Fixed', to: 'Object' },
{ id: 'Space', type: 'Type' },
{ id: 'spaceValue', type: 'Value', from: 'Space', to: 'String' },
{ id: 'AllowLogin', type: 'Operation' },
{ id: 'guests', type: 'Any' },
{ id: 'Join', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'joinTree', type: 'Tree' },
{
id: 'joinTreeJoin',
type: 'TreeIncludeUp',
from: 'joinTree',
to: 'Join'
},
{
id: 'joinTreeAny',
type: 'TreeIncludeNode',
from: 'joinTree',
to: 'Any'
},
{ id: 'SelectorTree', type: 'Type', from: 'Any', to: 'Tree' },
{ id: 'AllowAdmin', type: 'Operation' },
{
id: 'SelectorExclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{
id: 'SelectorFilter',
type: 'Type',
from: 'Selector',
to: 'Query'
},
{
id: 'HandleSchedule',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'Schedule', type: 'Type' },
{
id: 'scheduleValue',
type: 'Value',
from: 'Schedule',
to: 'String'
},
{ id: 'Router', type: 'Type', value: [Object] },
{ id: 'IsolationProvider', type: 'Type' },
{ id: 'DockerIsolationProvider', type: 'IsolationProvider' },
{
id: 'dockerIsolationProviderValue',
type: 'Value',
from: 'DockerIsolationProvider',
to: 'String'
},
{
id: 'JSDockerIsolationProvider',
type: 'DockerIsolationProvider',
value: [Object]
},
{ id: 'Supports', type: 'Type', from: 'Any', to: 'Any' },
{
id: 'dockerSupportsJs',
type: 'Supports',
from: 'JSDockerIsolationProvider',
to: 'JSExecutionProvider'
},
{
id: 'PackageInstall',
type: 'Type',
from: 'Any',
to: 'PackageQuery'
},
{
id: 'PackagePublish',
type: 'Type',
from: 'Package',
to: 'PackageQuery'
},
{ id: 'packageInstallCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packageInstallCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packageInstallCode'
},
{
id: 'packageInstallCodeHandleInsert',
type: 'HandleInsert',
from: 'PackageInstall',
to: 'packageInstallCodeHandler'
},
{ id: 'packagePublishCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packagePublishCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packagePublishCode'
},
{
id: 'packagePublishCodeHandleInsert',
type: 'HandleInsert',
from: 'PackagePublish',
to: 'packagePublishCodeHandler'
},
{ id: 'AllowPackageInstall', type: 'Operation' },
{ id: 'portValue', type: 'Value', from: 'Port', to: 'Number' },
{
id: 'HandlePort',
type: 'HandleOperation',
from: 'Port',
to: 'Any'
},
{ id: 'Route', type: 'Type' },
{ id: 'RouterListening', type: 'Type', from: 'Router', to: 'Port' },
{
id: 'RouterStringUse',
type: 'Type',
from: 'Route',
to: 'Router'
},
{
id: 'routerStringUseValue',
type: 'Value',
from: 'RouterStringUse',
to: 'String'
},
... 74 more items
],
errors: [],
strict: true,
dependencies: []
}
dependencies {}
dependencyPackageName @deep-foundation/core
packagePath /tmp/bf5f4181-4dc2-486a-81cb-d8083f32b55f/node_modules/@deep-foundation/deepcase-opened
packageJsonPath /tmp/bf5f4181-4dc2-486a-81cb-d8083f32b55f/node_modules/@deep-foundation/deepcase-opened/package.json
packageJson {
name: '@deep-foundation/deepcase-opened',
keywords: [ 'deep-package' ],
version: '0.0.1',
dependencies: { '@deep-foundation/core': '^0.0.2' }
}
deepJsonPath /tmp/bf5f4181-4dc2-486a-81cb-d8083f32b55f/node_modules/@deep-foundation/deepcase-opened/deep.json
deepJson {
package: { name: '@deep-foundation/deepcase-opened', version: '0.0.1' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ id: 'Opened', type: 1, from: 2, to: 2 },
{ id: 'OpenedHandler', type: 1, from: 'Opened', to: 3 }
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies { '@deep-foundation/core': '^0.0.2' }
dependencyPackageName @deep-foundation/deepcase-opened
deepPackagesDependencies {
'@deep-foundation/core': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' },
dependencies: []
}
}
installationQueue [
{
name: '@deep-foundation/core',
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' }
}
]
installationSet { '@deep-foundation/core': true }
packages [
{
id: 184,
name: { id: 6, value: '@deep-foundation/core', link_id: 184 },
versions: [ [Object] ],
__typename: 'links'
}
]
existingPackages { '@deep-foundation/core': { id: 184, version: '0.0.2' } }
existingPackages { '@deep-foundation/core': { id: 184, version: '0.0.2' } }
IGNORED ERROR: Call to DeepClient.resolveDependency is failed with Error [ERR_REQUIRE_ESM]: require() of ES Module /node_modules/@deep-foundation/deeplinks/imports/packager.js from /index.js not supported.
Instead change the require of packager.js in /index.js to a dynamic import() which is available in all CommonJS modules.
at DeepClient.requireWrapper [as resolveDependency] (file:///index.js:27:12)
at DeepClient.<anonymous> (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:721:45)
at Generator.next (<anonymous>)
at file:///node_modules/@deep-foundation/deeplinks/imports/client.js:7:71
at new Promise (<anonymous>)
at __awaiter (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:3:12)
at DeepClient.import (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:718:16)
at deepImport (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:64:44)
at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:266:26) {
code: 'ERR_REQUIRE_ESM'
}
{
ids: [
1014, 1015, 1016, 1017,
1018, 1019, 1020, 1021,
1022, 1023, 1024, 1025,
1026, 1027, 1028, 1029,
1030
],
errors: [],
namespaceId: 1014,
packageId: 1019
}
call result {
ids: [
1014, 1015, 1016, 1017,
1018, 1019, 1020, 1021,
1022, 1023, 1024, 1025,
1026, 1027, 1028, 1029,
1030
],
errors: [],
namespaceId: 1014,
packageId: 1019
}
call body params {
code: 'async ({ deep, gql, data: { triggeredByLinkId, newLink } }) => {\n' +
" const deepFileName = 'deep.json';\n" +
" const fs = await deep.import('fs');\n" +
'\n' +
' const makeTempDirectory = async () => {\n' +
" const os = await deep.import('os');\n" +
" const { v4: uuid } = await deep.import('uuid');\n" +
' \n' +
' const baseTempDirectory = os.tmpdir();\n' +
' const randomId = uuid();\n' +
" const tempDirectory = [baseTempDirectory,randomId].join('/');\n" +
' fs.mkdirSync(tempDirectory);\n' +
' console.log(tempDirectory);\n' +
' return tempDirectory;\n' +
' };\n' +
' const npmInstall = async (packageName, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
' const command = `npm --prefix "${tempDirectory}" i ${packageName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
' const npmLogin = async (token, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
' \n' +
' const command = `npm set "//registry.npmjs.org/:_authToken" ${token}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
" const makePackagePath = (tempDirectory, packageName) => [tempDirectory, 'node_modules', packageName].join('/');\n" +
" const makeDeepJsonPath = (packagePath) => [packagePath, deepFileName].join('/');\n" +
" const makePackageJsonPath = (packagePath) => [packagePath, 'package.json'].join('/');\n" +
' const loadNpmToken = async () => {\n' +
" const containTreeId = await deep.id('@deep-foundation/core', 'containTree');\n" +
" const tokenTypeId = await deep.id('@deep-foundation/npm-packager', 'Token');\n" +
' const { data: [{ value: { value: npmToken = undefined } = {}} = {}] = []} = await deep.select({\n' +
' up: {\n' +
' tree_id: { _eq: containTreeId },\n' +
' parent: { id: { _eq: triggeredByLinkId } },\n' +
' link: { type_id: { _eq: tokenTypeId } }\n' +
' }\n' +
' });\n' +
' return npmToken;\n' +
' };\n' +
' const deepImport = async (deepJson, packageJson) => {\n' +
' if (deepJson.package.name !== packageJson.name) {\n' +
' throw new Error(`Package name is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package name: ${deepJson.package.name}.\n' +
' package.json package name: ${packageJson.name}.`);\n' +
' }\n' +
' if (deepJson.package.version !== packageJson.version) {\n' +
' throw new Error(`Package version is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package version: ${deepJson.package.version}.\n' +
' package.json package version: ${packageJson.version}.`);\n' +
' }\n' +
" const packager = new (await deep.import('@deep-foundation/deeplinks/imports/packager.js')).Packager(deep);\n" +
' const imported = await packager.import(deepJson);\n' +
' console.log(imported);\n' +
' if (imported?.errors?.length) throw imported;\n' +
' return imported;\n' +
' };\n' +
' const getDeepPackagesList = async (rootPath) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
" const deepFileName = 'deep.json';\n" +
' const deepFileNameLength = deepFileName.length;\n' +
'\n' +
' const command = `find . -name ${deepFileName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: rootPath\n' +
' });\n' +
" console.log('', `${command}\\n`, output);\n" +
'\n' +
' const packages = output\n' +
' .split(/\\r?\\n/)\n' +
' .filter(line => line.trim())\n' +
' .map(line => line.slice(2).slice(0, -deepFileNameLength - 1))\n' +
" .map(line => line.split('/node_modules/'));\n" +
' return packages;\n' +
' };\n' +
' const getDeepPackagesDependencies = async (rootPath, packages, packageName) => {\n' +
' const dictionary = {};\n' +
' for (const pkg of packages) {\n' +
" const packagePath = [rootPath, pkg.join('/node_modules/')].join('/');\n" +
" console.log('packagePath', packagePath);\n" +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
" console.log('packageJsonPath', packageJsonPath);\n" +
' if (!fs.existsSync(packageJsonPath)) {\n' +
' throw new Error(`package.json for dependency ${pkg} is not found at ${packageJsonPath}. Looks like ${packageName} does not contain ${pkg} dependency in package.json.`);\n' +
' }\n' +
' const packageJson = await deep.import(packageJsonPath);\n' +
" console.log('packageJson', packageJson);\n" +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
" console.log('deepJsonPath', deepJsonPath);\n" +
' if (!fs.existsSync(deepJsonPath)) {\n' +
' throw new Error(`deep.json for dependency ${pkg} is not found at ${deepJsonPath}. Looks like ${pkg} installed, but it does not contain deep.json. Make sure ${pkg} is a deep package.`);\n' +
' }\n' +
' const deepJson = await deep.import(deepJsonPath);\n' +
" console.log('deepJson', deepJson);\n" +
' const dependencies = packageJson.dependencies ?? {};\n' +
" console.log('dependencies', dependencies);\n" +
' const dependencyPackageName = pkg.at(-1);\n' +
" console.log('dependencyPackageName', dependencyPackageName);\n" +
' if (Array.isArray(dictionary[dependencyPackageName])) {\n' +
" throw new Error('Multiple versions of the same package are not supported yet.');\n" +
' }\n' +
' dictionary[dependencyPackageName] = { deepJson, packageJson, dependencies };\n' +
' }\n' +
' for (const pkg in dictionary) {\n' +
' const sourceDependencies = dictionary[pkg].dependencies;\n' +
' const targetDependencies = [];\n' +
' for (const dependency in sourceDependencies)\n' +
' {\n' +
' if (dictionary[dependency]) {\n' +
' targetDependencies.push(dependency);\n' +
' }\n' +
' }\n' +
' dictionary[pkg].dependencies = targetDependencies;\n' +
' }\n' +
' return dictionary;\n' +
' }\n' +
' const buildInstallationQueueCore = (deepPackagesDependencies, queue, set, packageName) => {\n' +
' const dependencies = deepPackagesDependencies[packageName].dependencies;\n' +
' for (const dependency of dependencies) {\n' +
' if (!set[dependency]) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, dependency);\n' +
' }\n' +
' }\n' +
' if(!set[packageName]) {\n' +
' const deepJson = deepPackagesDependencies[packageName].deepJson;\n' +
' const packageJson = deepPackagesDependencies[packageName].packageJson;\n' +
' queue.push({ name: packageName, deepJson, packageJson });\n' +
' set[packageName] = true;\n' +
' }\n' +
' }\n' +
' const buildInstallationQueue = (deepPackagesDependencies, queue, set) => {\n' +
' for (const packageName in deepPackagesDependencies) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, packageName);\n' +
' }\n' +
' }\n' +
' const getExistingPackages = async (packageNames) => {\n' +
" const packageTypeId = await deep.id('@deep-foundation/core', 'Package');\n" +
" const packageVersionTypeId = await deep.id('@deep-foundation/core', 'PackageVersion');\n" +
' const { data: packages } = await deep.select({\n' +
' type_id: { _eq: packageTypeId },\n' +
' string: { value: { _in: packageNames } }\n' +
' }, {\n' +
" name: 'GET_EXISTING_PACKAGES_WITH_VERSIONS',\n" +
' returning: `\n' +
' id\n' +
' name: value\n' +
' versions: in(where: {type_id: {_eq: ${packageVersionTypeId}}, string: {value: {_is_null: false}}}) {\n' +
' id\n' +
' version: value\n' +
' }\n' +
' `\n' +
' })\n' +
" console.log('packages', packages);\n" +
' const existingPackages = packages.reduce(\n' +
' (accumulator, currentValue) => {\n' +
' const packageId = currentValue?.id;\n' +
' const packageName = currentValue?.name?.value;\n' +
' if (currentValue?.versions.length !== 1) {\n' +
" throw new Error(`'${packageName}' package must have exactly one version. Now it has ${currentValue?.versions.length} versions.`);\n" +
' }\n' +
' if (accumulator[packageName]) {\n' +
" throw new Error(`Multiple packages with name '${packageName}' exist.`)\n" +
' }\n' +
' const packageVersion = currentValue?.versions?.[0]?.version?.value;\n' +
' accumulator[packageName] = { id: packageId, version: packageVersion };\n' +
' return accumulator;\n' +
' },\n' +
' {}\n' +
' );\n' +
" console.log('existingPackages', existingPackages);\n" +
' return existingPackages;\n' +
' };\n' +
'\n' +
' if (!triggeredByLinkId) {\n' +
" throw new Error('Install link should be inserted using JWT token (role link), it cannot be inserted using hasura secret (role admin).');\n" +
' }\n' +
'\n' +
' const { data: [{ value: { value: packageQuery } }] } = await deep.select({ id: newLink.to_id });\n' +
" const packageQueryParts = packageQuery.split('@');\n" +
' if (packageQueryParts.length === 3) {\n' +
' const packageVersion = packageQueryParts.pop();\n' +
' }\n' +
" const packageName = packageQueryParts.join('@');\n" +
' if (!packageName) {\n' +
" throw new Error('Package query value is empty.');\n" +
' }\n' +
' const tempDirectory = await makeTempDirectory();\n' +
' let deepJson;\n' +
' let packageJson;\n' +
' const installationQueue = [];\n' +
' const installationSet = {};\n' +
' try {\n' +
' const npmToken = await loadNpmToken();\n' +
' if (npmToken) {\n' +
' await npmLogin(npmToken, tempDirectory);\n' +
' }\n' +
" const nodeModulesPath = [tempDirectory, 'node_modules'].join('/');\n" +
' await npmInstall(packageQuery, tempDirectory);\n' +
' const packagePath = makePackagePath(tempDirectory, packageName);\n' +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
' deepJson = await deep.import(deepJsonPath);\n' +
' packageJson = await deep.import(packageJsonPath);\n' +
'\n' +
' const packages = await getDeepPackagesList(nodeModulesPath);\n' +
" console.log('packages', packages);\n" +
' \n' +
' const deepPackagesDependencies = await getDeepPackagesDependencies(nodeModulesPath, packages, packageName);\n' +
' delete deepPackagesDependencies[packageName];\n' +
" console.log('deepPackagesDependencies', deepPackagesDependencies);\n" +
' \n' +
' buildInstallationQueue(deepPackagesDependencies, installationQueue, installationSet);\n' +
' \n' +
" console.log('installationQueue', installationQueue);\n" +
" console.log('installationSet', installationSet);\n" +
' } finally {\n' +
' fs.rmSync(tempDirectory, { recursive: true, force: true });\n' +
' }\n' +
' \n' +
' const existingPackages = await getExistingPackages(installationQueue.map(e => e.name));\n' +
" console.log('existingPackages', existingPackages);\n" +
'\n' +
' for (const dependencyPackage of instal'... 1567 more characters,
container: {
name: 'deep-138d60d2a0fd040bfe13e80d143de80d',
host: 'deep-138d60d2a0fd040bfe13e80d143de80d',
port: 40317,
options: {
publish: false,
forceRestart: true,
handler: 'deepf/js-docker-isolation-provider:main'
}
},
jwt: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwczovL2hhc3VyYS5pby9qd3QvY2xhaW1zIjp7IngtaGFzdXJhLWFsbG93ZWQtcm9sZXMiOlsiYWRtaW4iXSwieC1oYXN1cmEtZGVmYXVsdC1yb2xlIjoiYWRtaW4iLCJ4LWhhc3VyYS11c2VyLWlkIjoiNzU0In0sImlhdCI6MTcwMDE3OTI2NH0.1VMuJwv00E-6d5ZPcinYRKyWm0fxIrzc7a08dpcQMss',
secret: '4459a8e24fec162fd9ff71b57abec189396cad50cf867871',
data: {
triggeredByLinkId: 380,
oldLink: null,
newLink: { from_id: 380, type_id: 750, id: 1080, to_id: 1078, value: null },
promiseId: 1081
}
}
call body params {
code: 'async ({ deep, gql, data: { triggeredByLinkId, newLink } }) => {\n' +
" const deepFileName = 'deep.json';\n" +
" const fs = await deep.import('fs');\n" +
'\n' +
' const makeTempDirectory = async () => {\n' +
" const os = await deep.import('os');\n" +
" const { v4: uuid } = await deep.import('uuid');\n" +
' \n' +
' const baseTempDirectory = os.tmpdir();\n' +
' const randomId = uuid();\n' +
" const tempDirectory = [baseTempDirectory,randomId].join('/');\n" +
' fs.mkdirSync(tempDirectory);\n' +
' console.log(tempDirectory);\n' +
' return tempDirectory;\n' +
' };\n' +
' const npmInstall = async (packageName, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
' const command = `npm --prefix "${tempDirectory}" i ${packageName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
' const npmLogin = async (token, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
' \n' +
' const command = `npm set "//registry.npmjs.org/:_authToken" ${token}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
" const makePackagePath = (tempDirectory, packageName) => [tempDirectory, 'node_modules', packageName].join('/');\n" +
" const makeDeepJsonPath = (packagePath) => [packagePath, deepFileName].join('/');\n" +
" const makePackageJsonPath = (packagePath) => [packagePath, 'package.json'].join('/');\n" +
' const loadNpmToken = async () => {\n' +
" const containTreeId = await deep.id('@deep-foundation/core', 'containTree');\n" +
" const tokenTypeId = await deep.id('@deep-foundation/npm-packager', 'Token');\n" +
' const { data: [{ value: { value: npmToken = undefined } = {}} = {}] = []} = await deep.select({\n' +
' up: {\n' +
' tree_id: { _eq: containTreeId },\n' +
' parent: { id: { _eq: triggeredByLinkId } },\n' +
' link: { type_id: { _eq: tokenTypeId } }\n' +
' }\n' +
' });\n' +
' return npmToken;\n' +
' };\n' +
' const deepImport = async (deepJson, packageJson) => {\n' +
' if (deepJson.package.name !== packageJson.name) {\n' +
' throw new Error(`Package name is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package name: ${deepJson.package.name}.\n' +
' package.json package name: ${packageJson.name}.`);\n' +
' }\n' +
' if (deepJson.package.version !== packageJson.version) {\n' +
' throw new Error(`Package version is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package version: ${deepJson.package.version}.\n' +
' package.json package version: ${packageJson.version}.`);\n' +
' }\n' +
" const packager = new (await deep.import('@deep-foundation/deeplinks/imports/packager.js')).Packager(deep);\n" +
' const imported = await packager.import(deepJson);\n' +
' console.log(imported);\n' +
' if (imported?.errors?.length) throw imported;\n' +
' return imported;\n' +
' };\n' +
' const getDeepPackagesList = async (rootPath) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
" const deepFileName = 'deep.json';\n" +
' const deepFileNameLength = deepFileName.length;\n' +
'\n' +
' const command = `find . -name ${deepFileName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: rootPath\n' +
' });\n' +
" console.log('', `${command}\\n`, output);\n" +
'\n' +
' const packages = output\n' +
' .split(/\\r?\\n/)\n' +
' .filter(line => line.trim())\n' +
' .map(line => line.slice(2).slice(0, -deepFileNameLength - 1))\n' +
" .map(line => line.split('/node_modules/'));\n" +
' return packages;\n' +
' };\n' +
' const getDeepPackagesDependencies = async (rootPath, packages, packageName) => {\n' +
' const dictionary = {};\n' +
' for (const pkg of packages) {\n' +
" const packagePath = [rootPath, pkg.join('/node_modules/')].join('/');\n" +
" console.log('packagePath', packagePath);\n" +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
" console.log('packageJsonPath', packageJsonPath);\n" +
' if (!fs.existsSync(packageJsonPath)) {\n' +
' throw new Error(`package.json for dependency ${pkg} is not found at ${packageJsonPath}. Looks like ${packageName} does not contain ${pkg} dependency in package.json.`);\n' +
' }\n' +
' const packageJson = await deep.import(packageJsonPath);\n' +
" console.log('packageJson', packageJson);\n" +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
" console.log('deepJsonPath', deepJsonPath);\n" +
' if (!fs.existsSync(deepJsonPath)) {\n' +
' throw new Error(`deep.json for dependency ${pkg} is not found at ${deepJsonPath}. Looks like ${pkg} installed, but it does not contain deep.json. Make sure ${pkg} is a deep package.`);\n' +
' }\n' +
' const deepJson = await deep.import(deepJsonPath);\n' +
" console.log('deepJson', deepJson);\n" +
' const dependencies = packageJson.dependencies ?? {};\n' +
" console.log('dependencies', dependencies);\n" +
' const dependencyPackageName = pkg.at(-1);\n' +
" console.log('dependencyPackageName', dependencyPackageName);\n" +
' if (Array.isArray(dictionary[dependencyPackageName])) {\n' +
" throw new Error('Multiple versions of the same package are not supported yet.');\n" +
' }\n' +
' dictionary[dependencyPackageName] = { deepJson, packageJson, dependencies };\n' +
' }\n' +
' for (const pkg in dictionary) {\n' +
' const sourceDependencies = dictionary[pkg].dependencies;\n' +
' const targetDependencies = [];\n' +
' for (const dependency in sourceDependencies)\n' +
' {\n' +
' if (dictionary[dependency]) {\n' +
' targetDependencies.push(dependency);\n' +
' }\n' +
' }\n' +
' dictionary[pkg].dependencies = targetDependencies;\n' +
' }\n' +
' return dictionary;\n' +
' }\n' +
' const buildInstallationQueueCore = (deepPackagesDependencies, queue, set, packageName) => {\n' +
' const dependencies = deepPackagesDependencies[packageName].dependencies;\n' +
' for (const dependency of dependencies) {\n' +
' if (!set[dependency]) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, dependency);\n' +
' }\n' +
' }\n' +
' if(!set[packageName]) {\n' +
' const deepJson = deepPackagesDependencies[packageName].deepJson;\n' +
' const packageJson = deepPackagesDependencies[packageName].packageJson;\n' +
' queue.push({ name: packageName, deepJson, packageJson });\n' +
' set[packageName] = true;\n' +
' }\n' +
' }\n' +
' const buildInstallationQueue = (deepPackagesDependencies, queue, set) => {\n' +
' for (const packageName in deepPackagesDependencies) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, packageName);\n' +
' }\n' +
' }\n' +
' const getExistingPackages = async (packageNames) => {\n' +
" const packageTypeId = await deep.id('@deep-foundation/core', 'Package');\n" +
" const packageVersionTypeId = await deep.id('@deep-foundation/core', 'PackageVersion');\n" +
' const { data: packages } = await deep.select({\n' +
' type_id: { _eq: packageTypeId },\n' +
' string: { value: { _in: packageNames } }\n' +
' }, {\n' +
" name: 'GET_EXISTING_PACKAGES_WITH_VERSIONS',\n" +
' returning: `\n' +
' id\n' +
' name: value\n' +
' versions: in(where: {type_id: {_eq: ${packageVersionTypeId}}, string: {value: {_is_null: false}}}) {\n' +
' id\n' +
' version: value\n' +
' }\n' +
' `\n' +
' })\n' +
" console.log('packages', packages);\n" +
' const existingPackages = packages.reduce(\n' +
' (accumulator, currentValue) => {\n' +
' const packageId = currentValue?.id;\n' +
' const packageName = currentValue?.name?.value;\n' +
' if (currentValue?.versions.length !== 1) {\n' +
" throw new Error(`'${packageName}' package must have exactly one version. Now it has ${currentValue?.versions.length} versions.`);\n" +
' }\n' +
' if (accumulator[packageName]) {\n' +
" throw new Error(`Multiple packages with name '${packageName}' exist.`)\n" +
' }\n' +
' const packageVersion = currentValue?.versions?.[0]?.version?.value;\n' +
' accumulator[packageName] = { id: packageId, version: packageVersion };\n' +
' return accumulator;\n' +
' },\n' +
' {}\n' +
' );\n' +
" console.log('existingPackages', existingPackages);\n" +
' return existingPackages;\n' +
' };\n' +
'\n' +
' if (!triggeredByLinkId) {\n' +
" throw new Error('Install link should be inserted using JWT token (role link), it cannot be inserted using hasura secret (role admin).');\n" +
' }\n' +
'\n' +
' const { data: [{ value: { value: packageQuery } }] } = await deep.select({ id: newLink.to_id });\n' +
" const packageQueryParts = packageQuery.split('@');\n" +
' if (packageQueryParts.length === 3) {\n' +
' const packageVersion = packageQueryParts.pop();\n' +
' }\n' +
" const packageName = packageQueryParts.join('@');\n" +
' if (!packageName) {\n' +
" throw new Error('Package query value is empty.');\n" +
' }\n' +
' const tempDirectory = await makeTempDirectory();\n' +
' let deepJson;\n' +
' let packageJson;\n' +
' const installationQueue = [];\n' +
' const installationSet = {};\n' +
' try {\n' +
' const npmToken = await loadNpmToken();\n' +
' if (npmToken) {\n' +
' await npmLogin(npmToken, tempDirectory);\n' +
' }\n' +
" const nodeModulesPath = [tempDirectory, 'node_modules'].join('/');\n" +
' await npmInstall(packageQuery, tempDirectory);\n' +
' const packagePath = makePackagePath(tempDirectory, packageName);\n' +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
' deepJson = await deep.import(deepJsonPath);\n' +
' packageJson = await deep.import(packageJsonPath);\n' +
'\n' +
' const packages = await getDeepPackagesList(nodeModulesPath);\n' +
" console.log('packages', packages);\n" +
' \n' +
' const deepPackagesDependencies = await getDeepPackagesDependencies(nodeModulesPath, packages, packageName);\n' +
' delete deepPackagesDependencies[packageName];\n' +
" console.log('deepPackagesDependencies', deepPackagesDependencies);\n" +
' \n' +
' buildInstallationQueue(deepPackagesDependencies, installationQueue, installationSet);\n' +
' \n' +
" console.log('installationQueue', installationQueue);\n" +
" console.log('installationSet', installationSet);\n" +
' } finally {\n' +
' fs.rmSync(tempDirectory, { recursive: true, force: true });\n' +
' }\n' +
' \n' +
' const existingPackages = await getExistingPackages(installationQueue.map(e => e.name));\n' +
" console.log('existingPackages', existingPackages);\n" +
'\n' +
' for (const dependencyPackage of instal'... 1567 more characters,
container: {
name: 'deep-138d60d2a0fd040bfe13e80d143de80d',
host: 'deep-138d60d2a0fd040bfe13e80d143de80d',
port: 40317,
options: {
publish: false,
forceRestart: true,
handler: 'deepf/js-docker-isolation-provider:main'
}
},
jwt: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwczovL2hhc3VyYS5pby9qd3QvY2xhaW1zIjp7IngtaGFzdXJhLWFsbG93ZWQtcm9sZXMiOlsiYWRtaW4iXSwieC1oYXN1cmEtZGVmYXVsdC1yb2xlIjoiYWRtaW4iLCJ4LWhhc3VyYS11c2VyLWlkIjoiNzU0In0sImlhdCI6MTcwMDE3OTI2NH0.1VMuJwv00E-6d5ZPcinYRKyWm0fxIrzc7a08dpcQMss',
secret: '4459a8e24fec162fd9ff71b57abec189396cad50cf867871',
data: {
triggeredByLinkId: 380,
oldLink: null,
newLink: { from_id: 380, type_id: 750, id: 1086, to_id: 1084, value: null },
promiseId: 1087
}
}
/tmp/90f9126f-6701-4a50-80ed-cc8a97e0823e
/tmp/3c9303c1-2599-4be8-bdbd-ba5d75f70c76
npm --prefix "/tmp/3c9303c1-2599-4be8-bdbd-ba5d75f70c76" i @suenot/[email protected]
added 5 packages in 8s
find . -name deep.json
./@deep-foundation/core/deep.json
./@suenot/transaction-tests/deep.json
./@suenot/unit/deep.json
./@suenot/asset/deep.json
./@suenot/wallet/deep.json
packages [
[ '@deep-foundation/core' ],
[ '@suenot/transaction-tests' ],
[ '@suenot/unit' ],
[ '@suenot/asset' ],
[ '@suenot/wallet' ]
]
packagePath /tmp/3c9303c1-2599-4be8-bdbd-ba5d75f70c76/node_modules/@deep-foundation/core
packageJsonPath /tmp/3c9303c1-2599-4be8-bdbd-ba5d75f70c76/node_modules/@deep-foundation/core/package.json
packageJson { name: '@deep-foundation/core', version: '0.0.2' }
deepJsonPath /tmp/3c9303c1-2599-4be8-bdbd-ba5d75f70c76/node_modules/@deep-foundation/core/deep.json
deepJson {
package: { name: '@deep-foundation/core', version: '0.0.2' },
data: [
{ id: 'Type', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Package', type: 'Type' },
{ id: 'Contain', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Value', type: 'Type', from: 'Any', to: 'Type' },
{ id: 'String', type: 'Type' },
{ id: 'Number', type: 'Type' },
{ id: 'Object', type: 'Type' },
{ id: 'Any', type: 'Type' },
{ id: 'Promise', type: 'Type' },
{ id: 'Then', type: 'Type', from: 'Any', to: 'Promise' },
{ id: 'Resolved', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'Rejected', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'typeValue', type: 'Value', from: 'Type', to: 'String' },
{
id: 'packageValue',
type: 'Value',
from: 'Package',
to: 'String'
},
{ id: 'Selector', type: 'Type' },
{
id: 'SelectorInclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{ id: 'Rule', type: 'Type' },
{ id: 'RuleSubject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleObject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleAction', type: 'Type', from: 'Rule', to: 'Selector' },
{
id: 'containValue',
type: 'Value',
from: 'Contain',
to: 'String'
},
{ id: 'User', type: 'Type' },
{ id: 'Operation', type: 'Type' },
{
id: 'operationValue',
type: 'Value',
from: 'Operation',
to: 'String'
},
{ id: 'AllowInsert', type: 'Operation' },
{ id: 'AllowUpdate', type: 'Operation' },
{ id: 'AllowDelete', type: 'Operation' },
{ id: 'AllowSelect', type: 'Operation' },
{ id: 'File', type: 'Type' },
{ id: 'SyncTextFile', type: 'File' },
{
id: 'syncTextFileValue',
type: 'Value',
from: 'SyncTextFile',
to: 'String'
},
{ id: 'ExecutionProvider', type: 'Type' },
{ id: 'JSExecutionProvider', type: 'ExecutionProvider' },
{ id: 'TreeInclude', type: 'Type', from: 'Type', to: 'Any' },
{ id: 'Handler', type: 'Type', from: 'Supports', to: 'Any' },
{ id: 'Tree', type: 'Type' },
{
id: 'TreeIncludeDown',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeUp',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeNode',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{ id: 'containTree', type: 'Tree' },
{
id: 'containTreeContain',
type: 'TreeIncludeDown',
from: 'containTree',
to: 'Contain'
},
{
id: 'containTreeAny',
type: 'TreeIncludeNode',
from: 'containTree',
to: 'Any'
},
{ id: 'PackageNamespace', type: 'Type' },
{
id: 'packageNamespaceValue',
type: 'Value',
from: 'PackageNamespace',
to: 'String'
},
{
id: 'PackageActive',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'PackageVersion',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'packageVersionValue',
type: 'Value',
from: 'PackageVersion',
to: 'String'
},
{ id: 'HandleOperation', type: 'Type', from: 'Type', to: 'Type' },
{
id: 'HandleInsert',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleUpdate',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleDelete',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'PromiseResult', type: 'Type' },
{
id: 'promiseResultValueRelationTable',
type: 'Value',
from: 'PromiseResult',
to: 'Object'
},
{ id: 'PromiseReason', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Focus', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'focusValue', type: 'Value', from: 'Focus', to: 'Object' },
{ id: 'AsyncFile', type: 'File' },
{
id: 'handlersTreeHandler',
type: 'TreeIncludeUp',
from: 'handlersTree',
to: 'Handler'
},
{ id: 'Query', type: 'Type' },
{ id: 'queryValue', type: 'Value', from: 'Query', to: 'Object' },
{ id: 'Active', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Fixed', type: 'Type' },
{ id: 'fixedValue', type: 'Value', from: 'Fixed', to: 'Object' },
{ id: 'Space', type: 'Type' },
{ id: 'spaceValue', type: 'Value', from: 'Space', to: 'String' },
{ id: 'AllowLogin', type: 'Operation' },
{ id: 'guests', type: 'Any' },
{ id: 'Join', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'joinTree', type: 'Tree' },
{
id: 'joinTreeJoin',
type: 'TreeIncludeUp',
from: 'joinTree',
to: 'Join'
},
{
id: 'joinTreeAny',
type: 'TreeIncludeNode',
from: 'joinTree',
to: 'Any'
},
{ id: 'SelectorTree', type: 'Type', from: 'Any', to: 'Tree' },
{ id: 'AllowAdmin', type: 'Operation' },
{
id: 'SelectorExclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{
id: 'SelectorFilter',
type: 'Type',
from: 'Selector',
to: 'Query'
},
{
id: 'HandleSchedule',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'Schedule', type: 'Type' },
{
id: 'scheduleValue',
type: 'Value',
from: 'Schedule',
to: 'String'
},
{ id: 'Router', type: 'Type', value: [Object] },
{ id: 'IsolationProvider', type: 'Type' },
{ id: 'DockerIsolationProvider', type: 'IsolationProvider' },
{
id: 'dockerIsolationProviderValue',
type: 'Value',
from: 'DockerIsolationProvider',
to: 'String'
},
{
id: 'JSDockerIsolationProvider',
type: 'DockerIsolationProvider',
value: [Object]
},
{ id: 'Supports', type: 'Type', from: 'Any', to: 'Any' },
{
id: 'dockerSupportsJs',
type: 'Supports',
from: 'JSDockerIsolationProvider',
to: 'JSExecutionProvider'
},
{
id: 'PackageInstall',
type: 'Type',
from: 'Any',
to: 'PackageQuery'
},
{
id: 'PackagePublish',
type: 'Type',
from: 'Package',
to: 'PackageQuery'
},
{ id: 'packageInstallCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packageInstallCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packageInstallCode'
},
{
id: 'packageInstallCodeHandleInsert',
type: 'HandleInsert',
from: 'PackageInstall',
to: 'packageInstallCodeHandler'
},
{ id: 'packagePublishCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packagePublishCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packagePublishCode'
},
{
id: 'packagePublishCodeHandleInsert',
type: 'HandleInsert',
from: 'PackagePublish',
to: 'packagePublishCodeHandler'
},
{ id: 'AllowPackageInstall', type: 'Operation' },
{ id: 'portValue', type: 'Value', from: 'Port', to: 'Number' },
{
id: 'HandlePort',
type: 'HandleOperation',
from: 'Port',
to: 'Any'
},
{ id: 'Route', type: 'Type' },
{ id: 'RouterListening', type: 'Type', from: 'Router', to: 'Port' },
{
id: 'RouterStringUse',
type: 'Type',
from: 'Route',
to: 'Router'
},
{
id: 'routerStringUseValue',
type: 'Value',
from: 'RouterStringUse',
to: 'String'
},
... 74 more items
],
errors: [],
strict: true,
dependencies: []
}
dependencies {}
dependencyPackageName @deep-foundation/core
packagePath /tmp/3c9303c1-2599-4be8-bdbd-ba5d75f70c76/node_modules/@suenot/transaction-tests
packageJsonPath /tmp/3c9303c1-2599-4be8-bdbd-ba5d75f70c76/node_modules/@suenot/transaction-tests/package.json
packageJson {
name: '@suenot/transaction-tests',
dependencies: { '@suenot/unit': '~0.0.2', '@suenot/wallet': '~0.0.3' },
version: '0.0.2',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/3c9303c1-2599-4be8-bdbd-ba5d75f70c76/node_modules/@suenot/transaction-tests/deep.json
deepJson {
package: { name: '@suenot/transaction-tests', version: '0.0.2' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ package: [Object], id: 7 },
{ id: 'wallet1', type: 1, value: [Object] },
{
id: 'wallet1Name',
type: 2,
from: 'wallet1',
to: 'wallet1',
value: [Object]
},
{ id: 'unit1', type: 3 },
{
id: 'unit1Description',
type: 4,
from: 'unit1',
to: 'unit1',
value: [Object]
},
{
id: 'unit1Avatar',
type: 5,
from: 'unit1',
to: 'unit1',
value: [Object]
},
{
id: 'unit1Ticker',
type: 6,
from: 'unit1',
to: 'unit1',
value: [Object]
},
{
id: 'unit1Name',
type: 7,
from: 'unit1',
to: 'unit1',
value: [Object]
}
],
errors: [],
dependencies: [
{ name: '@suenot/wallet', version: '0.0.3' },
{ name: '@suenot/unit', version: '0.0.2' }
]
}
dependencies { '@suenot/unit': '~0.0.2', '@suenot/wallet': '~0.0.3' }
dependencyPackageName @suenot/transaction-tests
packagePath /tmp/3c9303c1-2599-4be8-bdbd-ba5d75f70c76/node_modules/@suenot/unit
packageJsonPath /tmp/3c9303c1-2599-4be8-bdbd-ba5d75f70c76/node_modules/@suenot/unit/package.json
packageJson {
name: '@suenot/unit',
dependencies: { '@deep-foundation/core': '~0.0.2' },
version: '0.0.2',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/3c9303c1-2599-4be8-bdbd-ba5d75f70c76/node_modules/@suenot/unit/deep.json
deepJson {
package: { name: '@suenot/unit', version: '0.0.2' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ id: 'Unit', type: 1 },
{ id: 'Description', type: 1, from: 'Unit', to: 'Unit' },
{
id: 'descriptionSymbol',
type: 2,
from: 'Description',
to: 'Description',
value: [Object]
},
{ id: 'Avatar', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'avatarValue', type: 3, from: 'Avatar', to: 4 },
{
id: 'avatarSymbol',
type: 2,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'Ticker', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'tickerValue', type: 3, from: 'Ticker', to: 4 },
{
id: 'tickerSymbol',
type: 2,
from: 'Ticker',
to: 'Ticker',
value: [Object]
},
{ id: 'Name', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'nameValue', type: 3, from: 'Name', to: 4 },
{
id: 'nameSymbol',
type: 2,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 2,
from: 'Unit',
to: 'Unit',
value: [Object]
}
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies { '@deep-foundation/core': '~0.0.2' }
dependencyPackageName @suenot/unit
packagePath /tmp/3c9303c1-2599-4be8-bdbd-ba5d75f70c76/node_modules/@suenot/asset
packageJsonPath /tmp/3c9303c1-2599-4be8-bdbd-ba5d75f70c76/node_modules/@suenot/asset/package.json
packageJson {
name: '@suenot/asset',
dependencies: { '@deep-foundation/core': '~0.0.2' },
version: '0.0.8',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/3c9303c1-2599-4be8-bdbd-ba5d75f70c76/node_modules/@suenot/asset/deep.json
deepJson {
package: { name: '@suenot/asset', version: '0.0.8' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ id: 'Asset', type: 1 },
{ id: 'Description', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'Avatar', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'avatarValue', type: 2, from: 'Avatar', to: 3 },
{
id: 'avatarSymbol',
type: 4,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'Ticker', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'tickerValue', type: 2, from: 'Ticker', to: 3 },
{
id: 'tickerSymbol',
type: 4,
from: 'Ticker',
to: 'Ticker',
value: [Object]
},
{ id: 'Name', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'nameValue', type: 2, from: 'Name', to: 3 },
{
id: 'nameSymbol',
type: 4,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 4,
from: 'Asset',
to: 'Asset',
value: [Object]
}
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies { '@deep-foundation/core': '~0.0.2' }
dependencyPackageName @suenot/asset
packagePath /tmp/3c9303c1-2599-4be8-bdbd-ba5d75f70c76/node_modules/@suenot/wallet
packageJsonPath /tmp/3c9303c1-2599-4be8-bdbd-ba5d75f70c76/node_modules/@suenot/wallet/package.json
packageJson {
name: '@suenot/wallet',
dependencies: {
'@deep-foundation/core': '~0.0.2',
'@suenot/asset': '~0.0.2',
'@suenot/unit': '~0.0.2'
},
version: '0.0.3',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/3c9303c1-2599-4be8-bdbd-ba5d75f70c76/node_modules/@suenot/wallet/deep.json
deepJson {
package: { name: '@suenot/wallet', version: '0.0.3' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ id: 'Wallet', type: 1 },
{ id: 'Description', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'descriptionValue', type: 2, from: 'Description', to: 3 },
{
id: 'descriptionSymbol',
type: 4,
from: 'Description',
to: 'Description',
value: [Object]
},
{ id: 'Avatar', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'avatarValue', type: 2, from: 'Avatar', to: 3 },
{
id: 'avatarSymbol',
type: 4,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'ContainUnit', type: 1, from: 'Wallet', to: 5 },
{ id: 'Name', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'nameValue', type: 2, from: 'Name', to: 3 },
{
id: 'nameSymbol',
type: 4,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 4,
from: 'Wallet',
to: 'Wallet',
value: [Object]
},
{ id: 'waletValue', type: 2, from: 'Wallet', to: 6 }
],
errors: [],
dependencies: [
{ name: '@deep-foundation/core', version: '0.0.2' },
{ name: '@suenot/unit', version: '0.0.2' }
]
}
dependencies {
'@deep-foundation/core': '~0.0.2',
'@suenot/asset': '~0.0.2',
'@suenot/unit': '~0.0.2'
}
dependencyPackageName @suenot/wallet
deepPackagesDependencies {
'@deep-foundation/core': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' },
dependencies: []
},
'@suenot/unit': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/unit',
dependencies: [Object],
version: '0.0.2',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core' ]
},
'@suenot/asset': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/asset',
dependencies: [Object],
version: '0.0.8',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core' ]
},
'@suenot/wallet': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/wallet',
dependencies: [Object],
version: '0.0.3',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core', '@suenot/asset', '@suenot/unit' ]
}
}
installationQueue [
{
name: '@deep-foundation/core',
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' }
},
{
name: '@suenot/unit',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/unit',
dependencies: [Object],
version: '0.0.2',
keywords: [Array]
}
},
{
name: '@suenot/asset',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/asset',
dependencies: [Object],
version: '0.0.8',
keywords: [Array]
}
},
{
name: '@suenot/wallet',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/wallet',
dependencies: [Object],
version: '0.0.3',
keywords: [Array]
}
}
]
installationSet {
'@deep-foundation/core': true,
'@suenot/unit': true,
'@suenot/asset': true,
'@suenot/wallet': true
}
npm --prefix "/tmp/90f9126f-6701-4a50-80ed-cc8a97e0823e" i @suenot/[email protected]
added 5 packages in 458ms
find . -name deep.json
./@deep-foundation/core/deep.json
./@suenot/transaction-tests/deep.json
./@suenot/unit/deep.json
./@suenot/asset/deep.json
./@suenot/wallet/deep.json
packages [
[ '@deep-foundation/core' ],
[ '@suenot/transaction-tests' ],
[ '@suenot/unit' ],
[ '@suenot/asset' ],
[ '@suenot/wallet' ]
]
packagePath /tmp/90f9126f-6701-4a50-80ed-cc8a97e0823e/node_modules/@deep-foundation/core
packageJsonPath /tmp/90f9126f-6701-4a50-80ed-cc8a97e0823e/node_modules/@deep-foundation/core/package.json
packageJson { name: '@deep-foundation/core', version: '0.0.2' }
deepJsonPath /tmp/90f9126f-6701-4a50-80ed-cc8a97e0823e/node_modules/@deep-foundation/core/deep.json
deepJson {
package: { name: '@deep-foundation/core', version: '0.0.2' },
data: [
{ id: 'Type', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Package', type: 'Type' },
{ id: 'Contain', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Value', type: 'Type', from: 'Any', to: 'Type' },
{ id: 'String', type: 'Type' },
{ id: 'Number', type: 'Type' },
{ id: 'Object', type: 'Type' },
{ id: 'Any', type: 'Type' },
{ id: 'Promise', type: 'Type' },
{ id: 'Then', type: 'Type', from: 'Any', to: 'Promise' },
{ id: 'Resolved', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'Rejected', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'typeValue', type: 'Value', from: 'Type', to: 'String' },
{
id: 'packageValue',
type: 'Value',
from: 'Package',
to: 'String'
},
{ id: 'Selector', type: 'Type' },
{
id: 'SelectorInclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{ id: 'Rule', type: 'Type' },
{ id: 'RuleSubject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleObject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleAction', type: 'Type', from: 'Rule', to: 'Selector' },
{
id: 'containValue',
type: 'Value',
from: 'Contain',
to: 'String'
},
{ id: 'User', type: 'Type' },
{ id: 'Operation', type: 'Type' },
{
id: 'operationValue',
type: 'Value',
from: 'Operation',
to: 'String'
},
{ id: 'AllowInsert', type: 'Operation' },
{ id: 'AllowUpdate', type: 'Operation' },
{ id: 'AllowDelete', type: 'Operation' },
{ id: 'AllowSelect', type: 'Operation' },
{ id: 'File', type: 'Type' },
{ id: 'SyncTextFile', type: 'File' },
{
id: 'syncTextFileValue',
type: 'Value',
from: 'SyncTextFile',
to: 'String'
},
{ id: 'ExecutionProvider', type: 'Type' },
{ id: 'JSExecutionProvider', type: 'ExecutionProvider' },
{ id: 'TreeInclude', type: 'Type', from: 'Type', to: 'Any' },
{ id: 'Handler', type: 'Type', from: 'Supports', to: 'Any' },
{ id: 'Tree', type: 'Type' },
{
id: 'TreeIncludeDown',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeUp',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeNode',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{ id: 'containTree', type: 'Tree' },
{
id: 'containTreeContain',
type: 'TreeIncludeDown',
from: 'containTree',
to: 'Contain'
},
{
id: 'containTreeAny',
type: 'TreeIncludeNode',
from: 'containTree',
to: 'Any'
},
{ id: 'PackageNamespace', type: 'Type' },
{
id: 'packageNamespaceValue',
type: 'Value',
from: 'PackageNamespace',
to: 'String'
},
{
id: 'PackageActive',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'PackageVersion',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'packageVersionValue',
type: 'Value',
from: 'PackageVersion',
to: 'String'
},
{ id: 'HandleOperation', type: 'Type', from: 'Type', to: 'Type' },
{
id: 'HandleInsert',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleUpdate',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleDelete',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'PromiseResult', type: 'Type' },
{
id: 'promiseResultValueRelationTable',
type: 'Value',
from: 'PromiseResult',
to: 'Object'
},
{ id: 'PromiseReason', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Focus', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'focusValue', type: 'Value', from: 'Focus', to: 'Object' },
{ id: 'AsyncFile', type: 'File' },
{
id: 'handlersTreeHandler',
type: 'TreeIncludeUp',
from: 'handlersTree',
to: 'Handler'
},
{ id: 'Query', type: 'Type' },
{ id: 'queryValue', type: 'Value', from: 'Query', to: 'Object' },
{ id: 'Active', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Fixed', type: 'Type' },
{ id: 'fixedValue', type: 'Value', from: 'Fixed', to: 'Object' },
{ id: 'Space', type: 'Type' },
{ id: 'spaceValue', type: 'Value', from: 'Space', to: 'String' },
{ id: 'AllowLogin', type: 'Operation' },
{ id: 'guests', type: 'Any' },
{ id: 'Join', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'joinTree', type: 'Tree' },
{
id: 'joinTreeJoin',
type: 'TreeIncludeUp',
from: 'joinTree',
to: 'Join'
},
{
id: 'joinTreeAny',
type: 'TreeIncludeNode',
from: 'joinTree',
to: 'Any'
},
{ id: 'SelectorTree', type: 'Type', from: 'Any', to: 'Tree' },
{ id: 'AllowAdmin', type: 'Operation' },
{
id: 'SelectorExclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{
id: 'SelectorFilter',
type: 'Type',
from: 'Selector',
to: 'Query'
},
{
id: 'HandleSchedule',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'Schedule', type: 'Type' },
{
id: 'scheduleValue',
type: 'Value',
from: 'Schedule',
to: 'String'
},
{ id: 'Router', type: 'Type', value: [Object] },
{ id: 'IsolationProvider', type: 'Type' },
{ id: 'DockerIsolationProvider', type: 'IsolationProvider' },
{
id: 'dockerIsolationProviderValue',
type: 'Value',
from: 'DockerIsolationProvider',
to: 'String'
},
{
id: 'JSDockerIsolationProvider',
type: 'DockerIsolationProvider',
value: [Object]
},
{ id: 'Supports', type: 'Type', from: 'Any', to: 'Any' },
{
id: 'dockerSupportsJs',
type: 'Supports',
from: 'JSDockerIsolationProvider',
to: 'JSExecutionProvider'
},
{
id: 'PackageInstall',
type: 'Type',
from: 'Any',
to: 'PackageQuery'
},
{
id: 'PackagePublish',
type: 'Type',
from: 'Package',
to: 'PackageQuery'
},
{ id: 'packageInstallCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packageInstallCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packageInstallCode'
},
{
id: 'packageInstallCodeHandleInsert',
type: 'HandleInsert',
from: 'PackageInstall',
to: 'packageInstallCodeHandler'
},
{ id: 'packagePublishCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packagePublishCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packagePublishCode'
},
{
id: 'packagePublishCodeHandleInsert',
type: 'HandleInsert',
from: 'PackagePublish',
to: 'packagePublishCodeHandler'
},
{ id: 'AllowPackageInstall', type: 'Operation' },
{ id: 'portValue', type: 'Value', from: 'Port', to: 'Number' },
{
id: 'HandlePort',
type: 'HandleOperation',
from: 'Port',
to: 'Any'
},
{ id: 'Route', type: 'Type' },
{ id: 'RouterListening', type: 'Type', from: 'Router', to: 'Port' },
{
id: 'RouterStringUse',
type: 'Type',
from: 'Route',
to: 'Router'
},
{
id: 'routerStringUseValue',
type: 'Value',
from: 'RouterStringUse',
to: 'String'
},
... 74 more items
],
errors: [],
strict: true,
dependencies: []
}
dependencies {}
dependencyPackageName @deep-foundation/core
packagePath /tmp/90f9126f-6701-4a50-80ed-cc8a97e0823e/node_modules/@suenot/transaction-tests
packageJsonPath /tmp/90f9126f-6701-4a50-80ed-cc8a97e0823e/node_modules/@suenot/transaction-tests/package.json
packageJson {
name: '@suenot/transaction-tests',
dependencies: { '@suenot/unit': '~0.0.2', '@suenot/wallet': '~0.0.3' },
version: '0.0.2',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/90f9126f-6701-4a50-80ed-cc8a97e0823e/node_modules/@suenot/transaction-tests/deep.json
deepJson {
package: { name: '@suenot/transaction-tests', version: '0.0.2' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ package: [Object], id: 7 },
{ id: 'wallet1', type: 1, value: [Object] },
{
id: 'wallet1Name',
type: 2,
from: 'wallet1',
to: 'wallet1',
value: [Object]
},
{ id: 'unit1', type: 3 },
{
id: 'unit1Description',
type: 4,
from: 'unit1',
to: 'unit1',
value: [Object]
},
{
id: 'unit1Avatar',
type: 5,
from: 'unit1',
to: 'unit1',
value: [Object]
},
{
id: 'unit1Ticker',
type: 6,
from: 'unit1',
to: 'unit1',
value: [Object]
},
{
id: 'unit1Name',
type: 7,
from: 'unit1',
to: 'unit1',
value: [Object]
}
],
errors: [],
dependencies: [
{ name: '@suenot/wallet', version: '0.0.3' },
{ name: '@suenot/unit', version: '0.0.2' }
]
}
dependencies { '@suenot/unit': '~0.0.2', '@suenot/wallet': '~0.0.3' }
dependencyPackageName @suenot/transaction-tests
packagePath /tmp/90f9126f-6701-4a50-80ed-cc8a97e0823e/node_modules/@suenot/unit
packageJsonPath /tmp/90f9126f-6701-4a50-80ed-cc8a97e0823e/node_modules/@suenot/unit/package.json
packageJson {
name: '@suenot/unit',
dependencies: { '@deep-foundation/core': '~0.0.2' },
version: '0.0.2',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/90f9126f-6701-4a50-80ed-cc8a97e0823e/node_modules/@suenot/unit/deep.json
deepJson {
package: { name: '@suenot/unit', version: '0.0.2' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ id: 'Unit', type: 1 },
{ id: 'Description', type: 1, from: 'Unit', to: 'Unit' },
{
id: 'descriptionSymbol',
type: 2,
from: 'Description',
to: 'Description',
value: [Object]
},
{ id: 'Avatar', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'avatarValue', type: 3, from: 'Avatar', to: 4 },
{
id: 'avatarSymbol',
type: 2,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'Ticker', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'tickerValue', type: 3, from: 'Ticker', to: 4 },
{
id: 'tickerSymbol',
type: 2,
from: 'Ticker',
to: 'Ticker',
value: [Object]
},
{ id: 'Name', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'nameValue', type: 3, from: 'Name', to: 4 },
{
id: 'nameSymbol',
type: 2,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 2,
from: 'Unit',
to: 'Unit',
value: [Object]
}
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies { '@deep-foundation/core': '~0.0.2' }
dependencyPackageName @suenot/unit
packagePath /tmp/90f9126f-6701-4a50-80ed-cc8a97e0823e/node_modules/@suenot/asset
packageJsonPath /tmp/90f9126f-6701-4a50-80ed-cc8a97e0823e/node_modules/@suenot/asset/package.json
packageJson {
name: '@suenot/asset',
dependencies: { '@deep-foundation/core': '~0.0.2' },
version: '0.0.8',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/90f9126f-6701-4a50-80ed-cc8a97e0823e/node_modules/@suenot/asset/deep.json
deepJson {
package: { name: '@suenot/asset', version: '0.0.8' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ id: 'Asset', type: 1 },
{ id: 'Description', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'Avatar', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'avatarValue', type: 2, from: 'Avatar', to: 3 },
{
id: 'avatarSymbol',
type: 4,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'Ticker', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'tickerValue', type: 2, from: 'Ticker', to: 3 },
{
id: 'tickerSymbol',
type: 4,
from: 'Ticker',
to: 'Ticker',
value: [Object]
},
{ id: 'Name', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'nameValue', type: 2, from: 'Name', to: 3 },
{
id: 'nameSymbol',
type: 4,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 4,
from: 'Asset',
to: 'Asset',
value: [Object]
}
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies { '@deep-foundation/core': '~0.0.2' }
dependencyPackageName @suenot/asset
packagePath /tmp/90f9126f-6701-4a50-80ed-cc8a97e0823e/node_modules/@suenot/wallet
packageJsonPath /tmp/90f9126f-6701-4a50-80ed-cc8a97e0823e/node_modules/@suenot/wallet/package.json
packageJson {
name: '@suenot/wallet',
dependencies: {
'@deep-foundation/core': '~0.0.2',
'@suenot/asset': '~0.0.2',
'@suenot/unit': '~0.0.2'
},
version: '0.0.3',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/90f9126f-6701-4a50-80ed-cc8a97e0823e/node_modules/@suenot/wallet/deep.json
deepJson {
package: { name: '@suenot/wallet', version: '0.0.3' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ id: 'Wallet', type: 1 },
{ id: 'Description', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'descriptionValue', type: 2, from: 'Description', to: 3 },
{
id: 'descriptionSymbol',
type: 4,
from: 'Description',
to: 'Description',
value: [Object]
},
{ id: 'Avatar', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'avatarValue', type: 2, from: 'Avatar', to: 3 },
{
id: 'avatarSymbol',
type: 4,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'ContainUnit', type: 1, from: 'Wallet', to: 5 },
{ id: 'Name', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'nameValue', type: 2, from: 'Name', to: 3 },
{
id: 'nameSymbol',
type: 4,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 4,
from: 'Wallet',
to: 'Wallet',
value: [Object]
},
{ id: 'waletValue', type: 2, from: 'Wallet', to: 6 }
],
errors: [],
dependencies: [
{ name: '@deep-foundation/core', version: '0.0.2' },
{ name: '@suenot/unit', version: '0.0.2' }
]
}
dependencies {
'@deep-foundation/core': '~0.0.2',
'@suenot/asset': '~0.0.2',
'@suenot/unit': '~0.0.2'
}
dependencyPackageName @suenot/wallet
deepPackagesDependencies {
'@deep-foundation/core': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' },
dependencies: []
},
'@suenot/unit': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/unit',
dependencies: [Object],
version: '0.0.2',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core' ]
},
'@suenot/asset': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/asset',
dependencies: [Object],
version: '0.0.8',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core' ]
},
'@suenot/wallet': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/wallet',
dependencies: [Object],
version: '0.0.3',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core', '@suenot/asset', '@suenot/unit' ]
}
}
installationQueue [
{
name: '@deep-foundation/core',
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' }
},
{
name: '@suenot/unit',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/unit',
dependencies: [Object],
version: '0.0.2',
keywords: [Array]
}
},
{
name: '@suenot/asset',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/asset',
dependencies: [Object],
version: '0.0.8',
keywords: [Array]
}
},
{
name: '@suenot/wallet',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/wallet',
dependencies: [Object],
version: '0.0.3',
keywords: [Array]
}
}
]
installationSet {
'@deep-foundation/core': true,
'@suenot/unit': true,
'@suenot/asset': true,
'@suenot/wallet': true
}
packages [
{
id: 184,
name: { id: 6, value: '@deep-foundation/core', link_id: 184 },
versions: [ [Object] ],
__typename: 'links'
}
]
existingPackages { '@deep-foundation/core': { id: 184, version: '0.0.2' } }
existingPackages { '@deep-foundation/core': { id: 184, version: '0.0.2' } }
packages [
{
id: 184,
name: { id: 6, value: '@deep-foundation/core', link_id: 184 },
versions: [ [Object] ],
__typename: 'links'
}
]
existingPackages { '@deep-foundation/core': { id: 184, version: '0.0.2' } }
existingPackages { '@deep-foundation/core': { id: 184, version: '0.0.2' } }
IGNORED ERROR: Call to DeepClient.resolveDependency is failed with Error [ERR_REQUIRE_ESM]: require() of ES Module /node_modules/@deep-foundation/deeplinks/imports/packager.js from /index.js not supported.
Instead change the require of packager.js in /index.js to a dynamic import() which is available in all CommonJS modules.
at DeepClient.requireWrapper [as resolveDependency] (file:///index.js:27:12)
at DeepClient.<anonymous> (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:721:45)
at Generator.next (<anonymous>)
at file:///node_modules/@deep-foundation/deeplinks/imports/client.js:7:71
at new Promise (<anonymous>)
at __awaiter (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:3:12)
at DeepClient.import (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:718:16)
at deepImport (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:64:44)
at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:247:40) {
code: 'ERR_REQUIRE_ESM'
}
IGNORED ERROR: Call to DeepClient.resolveDependency is failed with Error [ERR_REQUIRE_ESM]: require() of ES Module /node_modules/@deep-foundation/deeplinks/imports/packager.js from /index.js not supported.
Instead change the require of packager.js in /index.js to a dynamic import() which is available in all CommonJS modules.
at DeepClient.requireWrapper [as resolveDependency] (file:///index.js:27:12)
at DeepClient.<anonymous> (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:721:45)
at Generator.next (<anonymous>)
at file:///node_modules/@deep-foundation/deeplinks/imports/client.js:7:71
at new Promise (<anonymous>)
at __awaiter (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:3:12)
at DeepClient.import (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:718:16)
at deepImport (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:64:44)
at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:247:40) {
code: 'ERR_REQUIRE_ESM'
}
{
ids: [
1092, 1093, 1094, 1095, 1096, 1097,
1098, 1099, 1100, 1101, 1102, 1103,
1104, 1105, 1106, 1107, 1108, 1109,
1110, 1111, 1112, 1113, 1114, 1115,
1116, 1117, 1118, 1119, 1120, 1121,
1122, 1123, 1124, 1125, 1126, 1127,
1128, 1129, 1130, 1131
],
errors: [],
namespaceId: 1092,
packageId: 1108
}
IGNORED ERROR: Call to DeepClient.resolveDependency is failed with Error [ERR_REQUIRE_ESM]: require() of ES Module /node_modules/@deep-foundation/deeplinks/imports/packager.js from /index.js not supported.
Instead change the require of packager.js in /index.js to a dynamic import() which is available in all CommonJS modules.
at DeepClient.requireWrapper [as resolveDependency] (file:///index.js:27:12)
at DeepClient.<anonymous> (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:721:45)
at Generator.next (<anonymous>)
at file:///node_modules/@deep-foundation/deeplinks/imports/client.js:7:71
at new Promise (<anonymous>)
at __awaiter (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:3:12)
at DeepClient.import (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:718:16)
at deepImport (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:64:44)
at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:247:40) {
code: 'ERR_REQUIRE_ESM'
}
{
ids: [
1132, 1133, 1134, 1135, 1136, 1137,
1138, 1139, 1140, 1141, 1142, 1143,
1144, 1145, 1146, 1147, 1148, 1149,
1150, 1151, 1152, 1153, 1154, 1155,
1156, 1157, 1158, 1159, 1160, 1161,
1162, 1163, 1164, 1165, 1166, 1167,
1168, 1169, 1170, 1171
],
errors: [],
namespaceId: 1132,
packageId: 1148
}
IGNORED ERROR: Call to DeepClient.resolveDependency is failed with Error [ERR_REQUIRE_ESM]: require() of ES Module /node_modules/@deep-foundation/deeplinks/imports/packager.js from /index.js not supported.
Instead change the require of packager.js in /index.js to a dynamic import() which is available in all CommonJS modules.
at DeepClient.requireWrapper [as resolveDependency] (file:///index.js:27:12)
at DeepClient.<anonymous> (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:721:45)
at Generator.next (<anonymous>)
at file:///node_modules/@deep-foundation/deeplinks/imports/client.js:7:71
at new Promise (<anonymous>)
at __awaiter (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:3:12)
at DeepClient.import (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:718:16)
at deepImport (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:64:44)
at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:247:40) {
code: 'ERR_REQUIRE_ESM'
}
{
ids: [
1173, 1174, 1175, 1176, 1177, 1178,
1179, 1180, 1181, 1182, 1183, 1184,
1185, 1186, 1187, 1188, 1189, 1190,
1191, 1192, 1193, 1194, 1195, 1196,
1197, 1198, 1199, 1200, 1201, 1202,
1203, 1204, 1205, 1206, 1207, 1208,
1209, 1210
],
errors: [],
namespaceId: 1173,
packageId: 1188
}
IGNORED ERROR: Call to DeepClient.resolveDependency is failed with Error [ERR_REQUIRE_ESM]: require() of ES Module /node_modules/@deep-foundation/deeplinks/imports/packager.js from /index.js not supported.
Instead change the require of packager.js in /index.js to a dynamic import() which is available in all CommonJS modules.
at DeepClient.requireWrapper [as resolveDependency] (file:///index.js:27:12)
at DeepClient.<anonymous> (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:721:45)
at Generator.next (<anonymous>)
at file:///node_modules/@deep-foundation/deeplinks/imports/client.js:7:71
at new Promise (<anonymous>)
at __awaiter (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:3:12)
at DeepClient.import (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:718:16)
at deepImport (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:64:44)
at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:247:40) {
code: 'ERR_REQUIRE_ESM'
}
{
ids: [
1212, 1213, 1214, 1215, 1216, 1217,
1218, 1219, 1220, 1221, 1222, 1223,
1224, 1225, 1226, 1227, 1228, 1229,
1230, 1231, 1232, 1233, 1234, 1235,
1236, 1237, 1238, 1239, 1240, 1241,
1242, 1243, 1244, 1245, 1246, 1247,
1248, 1249
],
errors: [],
namespaceId: 1212,
packageId: 1227
}
IGNORED ERROR: Call to DeepClient.resolveDependency is failed with Error [ERR_REQUIRE_ESM]: require() of ES Module /node_modules/@deep-foundation/deeplinks/imports/packager.js from /index.js not supported.
Instead change the require of packager.js in /index.js to a dynamic import() which is available in all CommonJS modules.
at DeepClient.requireWrapper [as resolveDependency] (file:///index.js:27:12)
at DeepClient.<anonymous> (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:721:45)
at Generator.next (<anonymous>)
at file:///node_modules/@deep-foundation/deeplinks/imports/client.js:7:71
at new Promise (<anonymous>)
at __awaiter (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:3:12)
at DeepClient.import (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:718:16)
at deepImport (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:64:44)
at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:247:40) {
code: 'ERR_REQUIRE_ESM'
}
{
ids: [
1251, 1252, 1253, 1254, 1255, 1256,
1257, 1258, 1259, 1260, 1261, 1262,
1263, 1264, 1265, 1266, 1267, 1268,
1269, 1270, 1271, 1272, 1273, 1274,
1275, 1276, 1277, 1278, 1279, 1280,
1281, 1282, 1283, 1284, 1285, 1286,
1287, 1288, 1289, 1290, 1291, 1292
],
errors: [],
namespaceId: 1251,
packageId: 1267
}
IGNORED ERROR: Call to DeepClient.resolveDependency is failed with Error [ERR_REQUIRE_ESM]: require() of ES Module /node_modules/@deep-foundation/deeplinks/imports/packager.js from /index.js not supported.
Instead change the require of packager.js in /index.js to a dynamic import() which is available in all CommonJS modules.
at DeepClient.requireWrapper [as resolveDependency] (file:///index.js:27:12)
at DeepClient.<anonymous> (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:721:45)
at Generator.next (<anonymous>)
at file:///node_modules/@deep-foundation/deeplinks/imports/client.js:7:71
at new Promise (<anonymous>)
at __awaiter (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:3:12)
at DeepClient.import (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:718:16)
at deepImport (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:64:44)
at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:266:26) {
code: 'ERR_REQUIRE_ESM'
}
{
ids: [
1294, 1295, 1296, 1297, 1298, 1299,
1300, 1301, 1302, 1303, 1304, 1305,
1306, 1307, 1308, 1309, 1310, 1311,
1312, 1313, 1314, 1315, 1316, 1317,
1318, 1319, 1320, 1321, 1322, 1323,
1324, 1325, 1326, 1327, 1328, 1329,
1330, 1331, 1332, 1333, 1334, 1335
],
errors: [],
namespaceId: 1294,
packageId: 1310
}
IGNORED ERROR: Call to DeepClient.resolveDependency is failed with Error [ERR_REQUIRE_ESM]: require() of ES Module /node_modules/@deep-foundation/deeplinks/imports/packager.js from /index.js not supported.
Instead change the require of packager.js in /index.js to a dynamic import() which is available in all CommonJS modules.
at DeepClient.requireWrapper [as resolveDependency] (file:///index.js:27:12)
at DeepClient.<anonymous> (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:721:45)
at Generator.next (<anonymous>)
at file:///node_modules/@deep-foundation/deeplinks/imports/client.js:7:71
at new Promise (<anonymous>)
at __awaiter (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:3:12)
at DeepClient.import (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:718:16)
at deepImport (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:64:44)
at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:266:26) {
code: 'ERR_REQUIRE_ESM'
}
{
errors: [
Error: DeepClient Serial Error: Type conflict link: { id: 1341, type: 1137, from: 1340, to: 1340 } expected type: { type: 1137, from: 1135, to: 1135 } received type: { type: 1137, from: 1095, to: 1095 }
at DeepClient.<anonymous> (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:533:27)
at Generator.throw (<anonymous>)
at rejected (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:5:65)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
[cause]: [ApolloError]
}
]
}
rejected { errors: [ {} ] }
{
errors: [
Error: DeepClient Serial Error: Type conflict link: { id: 1370, type: 1137, from: 1369, to: 1369 } expected type: { type: 1137, from: 1135, to: 1135 } received type: { type: 1137, from: 1095, to: 1095 }
at DeepClient.<anonymous> (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:533:27)
at Generator.throw (<anonymous>)
at rejected (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:5:65)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
[cause]: [ApolloError]
}
]
}
rejected { errors: [ {} ] }
call body params {
code: 'async ({ deep, gql, data: { triggeredByLinkId, newLink } }) => {\n' +
" const deepFileName = 'deep.json';\n" +
" const fs = await deep.import('fs');\n" +
'\n' +
' const makeTempDirectory = async () => {\n' +
" const os = await deep.import('os');\n" +
" const { v4: uuid } = await deep.import('uuid');\n" +
' \n' +
' const baseTempDirectory = os.tmpdir();\n' +
' const randomId = uuid();\n' +
" const tempDirectory = [baseTempDirectory,randomId].join('/');\n" +
' fs.mkdirSync(tempDirectory);\n' +
' console.log(tempDirectory);\n' +
' return tempDirectory;\n' +
' };\n' +
' const npmInstall = async (packageName, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
' const command = `npm --prefix "${tempDirectory}" i ${packageName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
' const npmLogin = async (token, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
' \n' +
' const command = `npm set "//registry.npmjs.org/:_authToken" ${token}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
" const makePackagePath = (tempDirectory, packageName) => [tempDirectory, 'node_modules', packageName].join('/');\n" +
" const makeDeepJsonPath = (packagePath) => [packagePath, deepFileName].join('/');\n" +
" const makePackageJsonPath = (packagePath) => [packagePath, 'package.json'].join('/');\n" +
' const loadNpmToken = async () => {\n' +
" const containTreeId = await deep.id('@deep-foundation/core', 'containTree');\n" +
" const tokenTypeId = await deep.id('@deep-foundation/npm-packager', 'Token');\n" +
' const { data: [{ value: { value: npmToken = undefined } = {}} = {}] = []} = await deep.select({\n' +
' up: {\n' +
' tree_id: { _eq: containTreeId },\n' +
' parent: { id: { _eq: triggeredByLinkId } },\n' +
' link: { type_id: { _eq: tokenTypeId } }\n' +
' }\n' +
' });\n' +
' return npmToken;\n' +
' };\n' +
' const deepImport = async (deepJson, packageJson) => {\n' +
' if (deepJson.package.name !== packageJson.name) {\n' +
' throw new Error(`Package name is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package name: ${deepJson.package.name}.\n' +
' package.json package name: ${packageJson.name}.`);\n' +
' }\n' +
' if (deepJson.package.version !== packageJson.version) {\n' +
' throw new Error(`Package version is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package version: ${deepJson.package.version}.\n' +
' package.json package version: ${packageJson.version}.`);\n' +
' }\n' +
" const packager = new (await deep.import('@deep-foundation/deeplinks/imports/packager.js')).Packager(deep);\n" +
' const imported = await packager.import(deepJson);\n' +
' console.log(imported);\n' +
' if (imported?.errors?.length) throw imported;\n' +
' return imported;\n' +
' };\n' +
' const getDeepPackagesList = async (rootPath) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
" const deepFileName = 'deep.json';\n" +
' const deepFileNameLength = deepFileName.length;\n' +
'\n' +
' const command = `find . -name ${deepFileName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: rootPath\n' +
' });\n' +
" console.log('', `${command}\\n`, output);\n" +
'\n' +
' const packages = output\n' +
' .split(/\\r?\\n/)\n' +
' .filter(line => line.trim())\n' +
' .map(line => line.slice(2).slice(0, -deepFileNameLength - 1))\n' +
" .map(line => line.split('/node_modules/'));\n" +
' return packages;\n' +
' };\n' +
' const getDeepPackagesDependencies = async (rootPath, packages, packageName) => {\n' +
' const dictionary = {};\n' +
' for (const pkg of packages) {\n' +
" const packagePath = [rootPath, pkg.join('/node_modules/')].join('/');\n" +
" console.log('packagePath', packagePath);\n" +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
" console.log('packageJsonPath', packageJsonPath);\n" +
' if (!fs.existsSync(packageJsonPath)) {\n' +
' throw new Error(`package.json for dependency ${pkg} is not found at ${packageJsonPath}. Looks like ${packageName} does not contain ${pkg} dependency in package.json.`);\n' +
' }\n' +
' const packageJson = await deep.import(packageJsonPath);\n' +
" console.log('packageJson', packageJson);\n" +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
" console.log('deepJsonPath', deepJsonPath);\n" +
' if (!fs.existsSync(deepJsonPath)) {\n' +
' throw new Error(`deep.json for dependency ${pkg} is not found at ${deepJsonPath}. Looks like ${pkg} installed, but it does not contain deep.json. Make sure ${pkg} is a deep package.`);\n' +
' }\n' +
' const deepJson = await deep.import(deepJsonPath);\n' +
" console.log('deepJson', deepJson);\n" +
' const dependencies = packageJson.dependencies ?? {};\n' +
" console.log('dependencies', dependencies);\n" +
' const dependencyPackageName = pkg.at(-1);\n' +
" console.log('dependencyPackageName', dependencyPackageName);\n" +
' if (Array.isArray(dictionary[dependencyPackageName])) {\n' +
" throw new Error('Multiple versions of the same package are not supported yet.');\n" +
' }\n' +
' dictionary[dependencyPackageName] = { deepJson, packageJson, dependencies };\n' +
' }\n' +
' for (const pkg in dictionary) {\n' +
' const sourceDependencies = dictionary[pkg].dependencies;\n' +
' const targetDependencies = [];\n' +
' for (const dependency in sourceDependencies)\n' +
' {\n' +
' if (dictionary[dependency]) {\n' +
' targetDependencies.push(dependency);\n' +
' }\n' +
' }\n' +
' dictionary[pkg].dependencies = targetDependencies;\n' +
' }\n' +
' return dictionary;\n' +
' }\n' +
' const buildInstallationQueueCore = (deepPackagesDependencies, queue, set, packageName) => {\n' +
' const dependencies = deepPackagesDependencies[packageName].dependencies;\n' +
' for (const dependency of dependencies) {\n' +
' if (!set[dependency]) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, dependency);\n' +
' }\n' +
' }\n' +
' if(!set[packageName]) {\n' +
' const deepJson = deepPackagesDependencies[packageName].deepJson;\n' +
' const packageJson = deepPackagesDependencies[packageName].packageJson;\n' +
' queue.push({ name: packageName, deepJson, packageJson });\n' +
' set[packageName] = true;\n' +
' }\n' +
' }\n' +
' const buildInstallationQueue = (deepPackagesDependencies, queue, set) => {\n' +
' for (const packageName in deepPackagesDependencies) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, packageName);\n' +
' }\n' +
' }\n' +
' const getExistingPackages = async (packageNames) => {\n' +
" const packageTypeId = await deep.id('@deep-foundation/core', 'Package');\n" +
" const packageVersionTypeId = await deep.id('@deep-foundation/core', 'PackageVersion');\n" +
' const { data: packages } = await deep.select({\n' +
' type_id: { _eq: packageTypeId },\n' +
' string: { value: { _in: packageNames } }\n' +
' }, {\n' +
" name: 'GET_EXISTING_PACKAGES_WITH_VERSIONS',\n" +
' returning: `\n' +
' id\n' +
' name: value\n' +
' versions: in(where: {type_id: {_eq: ${packageVersionTypeId}}, string: {value: {_is_null: false}}}) {\n' +
' id\n' +
' version: value\n' +
' }\n' +
' `\n' +
' })\n' +
" console.log('packages', packages);\n" +
' const existingPackages = packages.reduce(\n' +
' (accumulator, currentValue) => {\n' +
' const packageId = currentValue?.id;\n' +
' const packageName = currentValue?.name?.value;\n' +
' if (currentValue?.versions.length !== 1) {\n' +
" throw new Error(`'${packageName}' package must have exactly one version. Now it has ${currentValue?.versions.length} versions.`);\n" +
' }\n' +
' if (accumulator[packageName]) {\n' +
" throw new Error(`Multiple packages with name '${packageName}' exist.`)\n" +
' }\n' +
' const packageVersion = currentValue?.versions?.[0]?.version?.value;\n' +
' accumulator[packageName] = { id: packageId, version: packageVersion };\n' +
' return accumulator;\n' +
' },\n' +
' {}\n' +
' );\n' +
" console.log('existingPackages', existingPackages);\n" +
' return existingPackages;\n' +
' };\n' +
'\n' +
' if (!triggeredByLinkId) {\n' +
" throw new Error('Install link should be inserted using JWT token (role link), it cannot be inserted using hasura secret (role admin).');\n" +
' }\n' +
'\n' +
' const { data: [{ value: { value: packageQuery } }] } = await deep.select({ id: newLink.to_id });\n' +
" const packageQueryParts = packageQuery.split('@');\n" +
' if (packageQueryParts.length === 3) {\n' +
' const packageVersion = packageQueryParts.pop();\n' +
' }\n' +
" const packageName = packageQueryParts.join('@');\n" +
' if (!packageName) {\n' +
" throw new Error('Package query value is empty.');\n" +
' }\n' +
' const tempDirectory = await makeTempDirectory();\n' +
' let deepJson;\n' +
' let packageJson;\n' +
' const installationQueue = [];\n' +
' const installationSet = {};\n' +
' try {\n' +
' const npmToken = await loadNpmToken();\n' +
' if (npmToken) {\n' +
' await npmLogin(npmToken, tempDirectory);\n' +
' }\n' +
" const nodeModulesPath = [tempDirectory, 'node_modules'].join('/');\n" +
' await npmInstall(packageQuery, tempDirectory);\n' +
' const packagePath = makePackagePath(tempDirectory, packageName);\n' +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
' deepJson = await deep.import(deepJsonPath);\n' +
' packageJson = await deep.import(packageJsonPath);\n' +
'\n' +
' const packages = await getDeepPackagesList(nodeModulesPath);\n' +
" console.log('packages', packages);\n" +
' \n' +
' const deepPackagesDependencies = await getDeepPackagesDependencies(nodeModulesPath, packages, packageName);\n' +
' delete deepPackagesDependencies[packageName];\n' +
" console.log('deepPackagesDependencies', deepPackagesDependencies);\n" +
' \n' +
' buildInstallationQueue(deepPackagesDependencies, installationQueue, installationSet);\n' +
' \n' +
" console.log('installationQueue', installationQueue);\n" +
" console.log('installationSet', installationSet);\n" +
' } finally {\n' +
' fs.rmSync(tempDirectory, { recursive: true, force: true });\n' +
' }\n' +
' \n' +
' const existingPackages = await getExistingPackages(installationQueue.map(e => e.name));\n' +
" console.log('existingPackages', existingPackages);\n" +
'\n' +
' for (const dependencyPackage of instal'... 1567 more characters,
container: {
name: 'deep-138d60d2a0fd040bfe13e80d143de80d',
host: 'deep-138d60d2a0fd040bfe13e80d143de80d',
port: 40317,
options: {
publish: false,
forceRestart: true,
handler: 'deepf/js-docker-isolation-provider:main'
}
},
jwt: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwczovL2hhc3VyYS5pby9qd3QvY2xhaW1zIjp7IngtaGFzdXJhLWFsbG93ZWQtcm9sZXMiOlsiYWRtaW4iXSwieC1oYXN1cmEtZGVmYXVsdC1yb2xlIjoiYWRtaW4iLCJ4LWhhc3VyYS11c2VyLWlkIjoiNzU0In0sImlhdCI6MTcwMDE3OTM5OH0.nxnTNIxd7Py5KdVrPnFyyh6j_XnUpc5ls9xtjdtyPqg',
secret: '4459a8e24fec162fd9ff71b57abec189396cad50cf867871',
data: {
triggeredByLinkId: 380,
oldLink: null,
newLink: { from_id: 380, type_id: 750, id: 1410, to_id: 1408, value: null },
promiseId: 1411
}
}
/tmp/d8e9c934-72d9-4c20-84ab-929178c7310a
npm --prefix "/tmp/d8e9c934-72d9-4c20-84ab-929178c7310a" i @suenot/[email protected]
added 5 packages in 3s
find . -name deep.json
./@deep-foundation/core/deep.json
./@suenot/unit/deep.json
./@suenot/asset/deep.json
./@suenot/wallet/deep.json
./@suenot/portfolio/deep.json
packages [
[ '@deep-foundation/core' ],
[ '@suenot/unit' ],
[ '@suenot/asset' ],
[ '@suenot/wallet' ],
[ '@suenot/portfolio' ]
]
packagePath /tmp/d8e9c934-72d9-4c20-84ab-929178c7310a/node_modules/@deep-foundation/core
packageJsonPath /tmp/d8e9c934-72d9-4c20-84ab-929178c7310a/node_modules/@deep-foundation/core/package.json
packageJson { name: '@deep-foundation/core', version: '0.0.2' }
deepJsonPath /tmp/d8e9c934-72d9-4c20-84ab-929178c7310a/node_modules/@deep-foundation/core/deep.json
deepJson {
package: { name: '@deep-foundation/core', version: '0.0.2' },
data: [
{ id: 'Type', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Package', type: 'Type' },
{ id: 'Contain', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Value', type: 'Type', from: 'Any', to: 'Type' },
{ id: 'String', type: 'Type' },
{ id: 'Number', type: 'Type' },
{ id: 'Object', type: 'Type' },
{ id: 'Any', type: 'Type' },
{ id: 'Promise', type: 'Type' },
{ id: 'Then', type: 'Type', from: 'Any', to: 'Promise' },
{ id: 'Resolved', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'Rejected', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'typeValue', type: 'Value', from: 'Type', to: 'String' },
{
id: 'packageValue',
type: 'Value',
from: 'Package',
to: 'String'
},
{ id: 'Selector', type: 'Type' },
{
id: 'SelectorInclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{ id: 'Rule', type: 'Type' },
{ id: 'RuleSubject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleObject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleAction', type: 'Type', from: 'Rule', to: 'Selector' },
{
id: 'containValue',
type: 'Value',
from: 'Contain',
to: 'String'
},
{ id: 'User', type: 'Type' },
{ id: 'Operation', type: 'Type' },
{
id: 'operationValue',
type: 'Value',
from: 'Operation',
to: 'String'
},
{ id: 'AllowInsert', type: 'Operation' },
{ id: 'AllowUpdate', type: 'Operation' },
{ id: 'AllowDelete', type: 'Operation' },
{ id: 'AllowSelect', type: 'Operation' },
{ id: 'File', type: 'Type' },
{ id: 'SyncTextFile', type: 'File' },
{
id: 'syncTextFileValue',
type: 'Value',
from: 'SyncTextFile',
to: 'String'
},
{ id: 'ExecutionProvider', type: 'Type' },
{ id: 'JSExecutionProvider', type: 'ExecutionProvider' },
{ id: 'TreeInclude', type: 'Type', from: 'Type', to: 'Any' },
{ id: 'Handler', type: 'Type', from: 'Supports', to: 'Any' },
{ id: 'Tree', type: 'Type' },
{
id: 'TreeIncludeDown',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeUp',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeNode',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{ id: 'containTree', type: 'Tree' },
{
id: 'containTreeContain',
type: 'TreeIncludeDown',
from: 'containTree',
to: 'Contain'
},
{
id: 'containTreeAny',
type: 'TreeIncludeNode',
from: 'containTree',
to: 'Any'
},
{ id: 'PackageNamespace', type: 'Type' },
{
id: 'packageNamespaceValue',
type: 'Value',
from: 'PackageNamespace',
to: 'String'
},
{
id: 'PackageActive',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'PackageVersion',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'packageVersionValue',
type: 'Value',
from: 'PackageVersion',
to: 'String'
},
{ id: 'HandleOperation', type: 'Type', from: 'Type', to: 'Type' },
{
id: 'HandleInsert',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleUpdate',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleDelete',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'PromiseResult', type: 'Type' },
{
id: 'promiseResultValueRelationTable',
type: 'Value',
from: 'PromiseResult',
to: 'Object'
},
{ id: 'PromiseReason', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Focus', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'focusValue', type: 'Value', from: 'Focus', to: 'Object' },
{ id: 'AsyncFile', type: 'File' },
{
id: 'handlersTreeHandler',
type: 'TreeIncludeUp',
from: 'handlersTree',
to: 'Handler'
},
{ id: 'Query', type: 'Type' },
{ id: 'queryValue', type: 'Value', from: 'Query', to: 'Object' },
{ id: 'Active', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Fixed', type: 'Type' },
{ id: 'fixedValue', type: 'Value', from: 'Fixed', to: 'Object' },
{ id: 'Space', type: 'Type' },
{ id: 'spaceValue', type: 'Value', from: 'Space', to: 'String' },
{ id: 'AllowLogin', type: 'Operation' },
{ id: 'guests', type: 'Any' },
{ id: 'Join', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'joinTree', type: 'Tree' },
{
id: 'joinTreeJoin',
type: 'TreeIncludeUp',
from: 'joinTree',
to: 'Join'
},
{
id: 'joinTreeAny',
type: 'TreeIncludeNode',
from: 'joinTree',
to: 'Any'
},
{ id: 'SelectorTree', type: 'Type', from: 'Any', to: 'Tree' },
{ id: 'AllowAdmin', type: 'Operation' },
{
id: 'SelectorExclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{
id: 'SelectorFilter',
type: 'Type',
from: 'Selector',
to: 'Query'
},
{
id: 'HandleSchedule',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'Schedule', type: 'Type' },
{
id: 'scheduleValue',
type: 'Value',
from: 'Schedule',
to: 'String'
},
{ id: 'Router', type: 'Type', value: [Object] },
{ id: 'IsolationProvider', type: 'Type' },
{ id: 'DockerIsolationProvider', type: 'IsolationProvider' },
{
id: 'dockerIsolationProviderValue',
type: 'Value',
from: 'DockerIsolationProvider',
to: 'String'
},
{
id: 'JSDockerIsolationProvider',
type: 'DockerIsolationProvider',
value: [Object]
},
{ id: 'Supports', type: 'Type', from: 'Any', to: 'Any' },
{
id: 'dockerSupportsJs',
type: 'Supports',
from: 'JSDockerIsolationProvider',
to: 'JSExecutionProvider'
},
{
id: 'PackageInstall',
type: 'Type',
from: 'Any',
to: 'PackageQuery'
},
{
id: 'PackagePublish',
type: 'Type',
from: 'Package',
to: 'PackageQuery'
},
{ id: 'packageInstallCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packageInstallCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packageInstallCode'
},
{
id: 'packageInstallCodeHandleInsert',
type: 'HandleInsert',
from: 'PackageInstall',
to: 'packageInstallCodeHandler'
},
{ id: 'packagePublishCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packagePublishCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packagePublishCode'
},
{
id: 'packagePublishCodeHandleInsert',
type: 'HandleInsert',
from: 'PackagePublish',
to: 'packagePublishCodeHandler'
},
{ id: 'AllowPackageInstall', type: 'Operation' },
{ id: 'portValue', type: 'Value', from: 'Port', to: 'Number' },
{
id: 'HandlePort',
type: 'HandleOperation',
from: 'Port',
to: 'Any'
},
{ id: 'Route', type: 'Type' },
{ id: 'RouterListening', type: 'Type', from: 'Router', to: 'Port' },
{
id: 'RouterStringUse',
type: 'Type',
from: 'Route',
to: 'Router'
},
{
id: 'routerStringUseValue',
type: 'Value',
from: 'RouterStringUse',
to: 'String'
},
... 74 more items
],
errors: [],
strict: true,
dependencies: []
}
dependencies {}
dependencyPackageName @deep-foundation/core
packagePath /tmp/d8e9c934-72d9-4c20-84ab-929178c7310a/node_modules/@suenot/unit
packageJsonPath /tmp/d8e9c934-72d9-4c20-84ab-929178c7310a/node_modules/@suenot/unit/package.json
packageJson {
name: '@suenot/unit',
dependencies: { '@deep-foundation/core': '~0.0.2' },
version: '0.0.2',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/d8e9c934-72d9-4c20-84ab-929178c7310a/node_modules/@suenot/unit/deep.json
deepJson {
package: { name: '@suenot/unit', version: '0.0.2' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ id: 'Unit', type: 1 },
{ id: 'Description', type: 1, from: 'Unit', to: 'Unit' },
{
id: 'descriptionSymbol',
type: 2,
from: 'Description',
to: 'Description',
value: [Object]
},
{ id: 'Avatar', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'avatarValue', type: 3, from: 'Avatar', to: 4 },
{
id: 'avatarSymbol',
type: 2,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'Ticker', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'tickerValue', type: 3, from: 'Ticker', to: 4 },
{
id: 'tickerSymbol',
type: 2,
from: 'Ticker',
to: 'Ticker',
value: [Object]
},
{ id: 'Name', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'nameValue', type: 3, from: 'Name', to: 4 },
{
id: 'nameSymbol',
type: 2,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 2,
from: 'Unit',
to: 'Unit',
value: [Object]
}
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies { '@deep-foundation/core': '~0.0.2' }
dependencyPackageName @suenot/unit
packagePath /tmp/d8e9c934-72d9-4c20-84ab-929178c7310a/node_modules/@suenot/asset
packageJsonPath /tmp/d8e9c934-72d9-4c20-84ab-929178c7310a/node_modules/@suenot/asset/package.json
packageJson {
name: '@suenot/asset',
dependencies: { '@deep-foundation/core': '~0.0.2' },
version: '0.0.8',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/d8e9c934-72d9-4c20-84ab-929178c7310a/node_modules/@suenot/asset/deep.json
deepJson {
package: { name: '@suenot/asset', version: '0.0.8' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ id: 'Asset', type: 1 },
{ id: 'Description', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'Avatar', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'avatarValue', type: 2, from: 'Avatar', to: 3 },
{
id: 'avatarSymbol',
type: 4,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'Ticker', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'tickerValue', type: 2, from: 'Ticker', to: 3 },
{
id: 'tickerSymbol',
type: 4,
from: 'Ticker',
to: 'Ticker',
value: [Object]
},
{ id: 'Name', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'nameValue', type: 2, from: 'Name', to: 3 },
{
id: 'nameSymbol',
type: 4,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 4,
from: 'Asset',
to: 'Asset',
value: [Object]
}
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies { '@deep-foundation/core': '~0.0.2' }
dependencyPackageName @suenot/asset
packagePath /tmp/d8e9c934-72d9-4c20-84ab-929178c7310a/node_modules/@suenot/wallet
packageJsonPath /tmp/d8e9c934-72d9-4c20-84ab-929178c7310a/node_modules/@suenot/wallet/package.json
packageJson {
name: '@suenot/wallet',
dependencies: {
'@deep-foundation/core': '~0.0.2',
'@suenot/asset': '~0.0.2',
'@suenot/unit': '~0.0.2'
},
version: '0.0.3',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/d8e9c934-72d9-4c20-84ab-929178c7310a/node_modules/@suenot/wallet/deep.json
deepJson {
package: { name: '@suenot/wallet', version: '0.0.3' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ id: 'Wallet', type: 1 },
{ id: 'Description', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'descriptionValue', type: 2, from: 'Description', to: 3 },
{
id: 'descriptionSymbol',
type: 4,
from: 'Description',
to: 'Description',
value: [Object]
},
{ id: 'Avatar', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'avatarValue', type: 2, from: 'Avatar', to: 3 },
{
id: 'avatarSymbol',
type: 4,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'ContainUnit', type: 1, from: 'Wallet', to: 5 },
{ id: 'Name', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'nameValue', type: 2, from: 'Name', to: 3 },
{
id: 'nameSymbol',
type: 4,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 4,
from: 'Wallet',
to: 'Wallet',
value: [Object]
},
{ id: 'waletValue', type: 2, from: 'Wallet', to: 6 }
],
errors: [],
dependencies: [
{ name: '@deep-foundation/core', version: '0.0.2' },
{ name: '@suenot/unit', version: '0.0.2' }
]
}
dependencies {
'@deep-foundation/core': '~0.0.2',
'@suenot/asset': '~0.0.2',
'@suenot/unit': '~0.0.2'
}
dependencyPackageName @suenot/wallet
packagePath /tmp/d8e9c934-72d9-4c20-84ab-929178c7310a/node_modules/@suenot/portfolio
packageJsonPath /tmp/d8e9c934-72d9-4c20-84ab-929178c7310a/node_modules/@suenot/portfolio/package.json
packageJson {
name: '@suenot/portfolio',
dependencies: { '@deep-foundation/core': '~0.0.2', '@suenot/wallet': '~0.0.3' },
version: '0.0.3',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/d8e9c934-72d9-4c20-84ab-929178c7310a/node_modules/@suenot/portfolio/deep.json
deepJson {
package: { name: '@suenot/portfolio', version: '0.0.3' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ id: 'Portfolio', type: 1 },
{ id: 'Description', type: 1, from: 'Portfolio', to: 'Portfolio' },
{ id: 'descriptionValue', type: 2, from: 'Description', to: 3 },
{
id: 'descriptionSymbol',
type: 4,
from: 'Description',
to: 'Description',
value: [Object]
},
{ id: 'Avatar', type: 1, from: 'Portfolio', to: 'Portfolio' },
{ id: 'avatarValue', type: 2, from: 'Avatar', to: 3 },
{
id: 'avatarSymbol',
type: 4,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'ContainWallet', type: 1, from: 'Portfolio', to: 5 },
{ id: 'Name', type: 1, from: 'Portfolio', to: 'Portfolio' },
{ id: 'nameValue', type: 2, from: 'Name', to: 3 },
{
id: 'nameSymbol',
type: 4,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 4,
from: 'Portfolio',
to: 'Portfolio',
value: [Object]
},
{ id: 'portfolioValue', type: 2, from: 'Portfolio', to: 6 }
],
errors: [],
dependencies: [
{ name: '@deep-foundation/core', version: '0.0.2' },
{ name: '@suenot/wallet', version: '0.0.3' }
]
}
dependencies { '@deep-foundation/core': '~0.0.2', '@suenot/wallet': '~0.0.3' }
dependencyPackageName @suenot/portfolio
deepPackagesDependencies {
'@deep-foundation/core': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' },
dependencies: []
},
'@suenot/unit': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/unit',
dependencies: [Object],
version: '0.0.2',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core' ]
},
'@suenot/asset': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/asset',
dependencies: [Object],
version: '0.0.8',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core' ]
},
'@suenot/wallet': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/wallet',
dependencies: [Object],
version: '0.0.3',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core', '@suenot/asset', '@suenot/unit' ]
}
}
installationQueue [
{
name: '@deep-foundation/core',
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' }
},
{
name: '@suenot/unit',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/unit',
dependencies: [Object],
version: '0.0.2',
keywords: [Array]
}
},
{
name: '@suenot/asset',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/asset',
dependencies: [Object],
version: '0.0.8',
keywords: [Array]
}
},
{
name: '@suenot/wallet',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/wallet',
dependencies: [Object],
version: '0.0.3',
keywords: [Array]
}
}
]
installationSet {
'@deep-foundation/core': true,
'@suenot/unit': true,
'@suenot/asset': true,
'@suenot/wallet': true
}
call body params {
code: 'async ({ deep, gql, data: { triggeredByLinkId, newLink } }) => {\n' +
" const deepFileName = 'deep.json';\n" +
" const fs = await deep.import('fs');\n" +
'\n' +
' const makeTempDirectory = async () => {\n' +
" const os = await deep.import('os');\n" +
" const { v4: uuid } = await deep.import('uuid');\n" +
' \n' +
' const baseTempDirectory = os.tmpdir();\n' +
' const randomId = uuid();\n' +
" const tempDirectory = [baseTempDirectory,randomId].join('/');\n" +
' fs.mkdirSync(tempDirectory);\n' +
' console.log(tempDirectory);\n' +
' return tempDirectory;\n' +
' };\n' +
' const npmInstall = async (packageName, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
' const command = `npm --prefix "${tempDirectory}" i ${packageName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
' const npmLogin = async (token, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
' \n' +
' const command = `npm set "//registry.npmjs.org/:_authToken" ${token}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
" const makePackagePath = (tempDirectory, packageName) => [tempDirectory, 'node_modules', packageName].join('/');\n" +
" const makeDeepJsonPath = (packagePath) => [packagePath, deepFileName].join('/');\n" +
" const makePackageJsonPath = (packagePath) => [packagePath, 'package.json'].join('/');\n" +
' const loadNpmToken = async () => {\n' +
" const containTreeId = await deep.id('@deep-foundation/core', 'containTree');\n" +
" const tokenTypeId = await deep.id('@deep-foundation/npm-packager', 'Token');\n" +
' const { data: [{ value: { value: npmToken = undefined } = {}} = {}] = []} = await deep.select({\n' +
' up: {\n' +
' tree_id: { _eq: containTreeId },\n' +
' parent: { id: { _eq: triggeredByLinkId } },\n' +
' link: { type_id: { _eq: tokenTypeId } }\n' +
' }\n' +
' });\n' +
' return npmToken;\n' +
' };\n' +
' const deepImport = async (deepJson, packageJson) => {\n' +
' if (deepJson.package.name !== packageJson.name) {\n' +
' throw new Error(`Package name is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package name: ${deepJson.package.name}.\n' +
' package.json package name: ${packageJson.name}.`);\n' +
' }\n' +
' if (deepJson.package.version !== packageJson.version) {\n' +
' throw new Error(`Package version is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package version: ${deepJson.package.version}.\n' +
' package.json package version: ${packageJson.version}.`);\n' +
' }\n' +
" const packager = new (await deep.import('@deep-foundation/deeplinks/imports/packager.js')).Packager(deep);\n" +
' const imported = await packager.import(deepJson);\n' +
' console.log(imported);\n' +
' if (imported?.errors?.length) throw imported;\n' +
' return imported;\n' +
' };\n' +
' const getDeepPackagesList = async (rootPath) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
" const deepFileName = 'deep.json';\n" +
' const deepFileNameLength = deepFileName.length;\n' +
'\n' +
' const command = `find . -name ${deepFileName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: rootPath\n' +
' });\n' +
" console.log('', `${command}\\n`, output);\n" +
'\n' +
' const packages = output\n' +
' .split(/\\r?\\n/)\n' +
' .filter(line => line.trim())\n' +
' .map(line => line.slice(2).slice(0, -deepFileNameLength - 1))\n' +
" .map(line => line.split('/node_modules/'));\n" +
' return packages;\n' +
' };\n' +
' const getDeepPackagesDependencies = async (rootPath, packages, packageName) => {\n' +
' const dictionary = {};\n' +
' for (const pkg of packages) {\n' +
" const packagePath = [rootPath, pkg.join('/node_modules/')].join('/');\n" +
" console.log('packagePath', packagePath);\n" +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
" console.log('packageJsonPath', packageJsonPath);\n" +
' if (!fs.existsSync(packageJsonPath)) {\n' +
' throw new Error(`package.json for dependency ${pkg} is not found at ${packageJsonPath}. Looks like ${packageName} does not contain ${pkg} dependency in package.json.`);\n' +
' }\n' +
' const packageJson = await deep.import(packageJsonPath);\n' +
" console.log('packageJson', packageJson);\n" +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
" console.log('deepJsonPath', deepJsonPath);\n" +
' if (!fs.existsSync(deepJsonPath)) {\n' +
' throw new Error(`deep.json for dependency ${pkg} is not found at ${deepJsonPath}. Looks like ${pkg} installed, but it does not contain deep.json. Make sure ${pkg} is a deep package.`);\n' +
' }\n' +
' const deepJson = await deep.import(deepJsonPath);\n' +
" console.log('deepJson', deepJson);\n" +
' const dependencies = packageJson.dependencies ?? {};\n' +
" console.log('dependencies', dependencies);\n" +
' const dependencyPackageName = pkg.at(-1);\n' +
" console.log('dependencyPackageName', dependencyPackageName);\n" +
' if (Array.isArray(dictionary[dependencyPackageName])) {\n' +
" throw new Error('Multiple versions of the same package are not supported yet.');\n" +
' }\n' +
' dictionary[dependencyPackageName] = { deepJson, packageJson, dependencies };\n' +
' }\n' +
' for (const pkg in dictionary) {\n' +
' const sourceDependencies = dictionary[pkg].dependencies;\n' +
' const targetDependencies = [];\n' +
' for (const dependency in sourceDependencies)\n' +
' {\n' +
' if (dictionary[dependency]) {\n' +
' targetDependencies.push(dependency);\n' +
' }\n' +
' }\n' +
' dictionary[pkg].dependencies = targetDependencies;\n' +
' }\n' +
' return dictionary;\n' +
' }\n' +
' const buildInstallationQueueCore = (deepPackagesDependencies, queue, set, packageName) => {\n' +
' const dependencies = deepPackagesDependencies[packageName].dependencies;\n' +
' for (const dependency of dependencies) {\n' +
' if (!set[dependency]) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, dependency);\n' +
' }\n' +
' }\n' +
' if(!set[packageName]) {\n' +
' const deepJson = deepPackagesDependencies[packageName].deepJson;\n' +
' const packageJson = deepPackagesDependencies[packageName].packageJson;\n' +
' queue.push({ name: packageName, deepJson, packageJson });\n' +
' set[packageName] = true;\n' +
' }\n' +
' }\n' +
' const buildInstallationQueue = (deepPackagesDependencies, queue, set) => {\n' +
' for (const packageName in deepPackagesDependencies) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, packageName);\n' +
' }\n' +
' }\n' +
' const getExistingPackages = async (packageNames) => {\n' +
" const packageTypeId = await deep.id('@deep-foundation/core', 'Package');\n" +
" const packageVersionTypeId = await deep.id('@deep-foundation/core', 'PackageVersion');\n" +
' const { data: packages } = await deep.select({\n' +
' type_id: { _eq: packageTypeId },\n' +
' string: { value: { _in: packageNames } }\n' +
' }, {\n' +
" name: 'GET_EXISTING_PACKAGES_WITH_VERSIONS',\n" +
' returning: `\n' +
' id\n' +
' name: value\n' +
' versions: in(where: {type_id: {_eq: ${packageVersionTypeId}}, string: {value: {_is_null: false}}}) {\n' +
' id\n' +
' version: value\n' +
' }\n' +
' `\n' +
' })\n' +
" console.log('packages', packages);\n" +
' const existingPackages = packages.reduce(\n' +
' (accumulator, currentValue) => {\n' +
' const packageId = currentValue?.id;\n' +
' const packageName = currentValue?.name?.value;\n' +
' if (currentValue?.versions.length !== 1) {\n' +
" throw new Error(`'${packageName}' package must have exactly one version. Now it has ${currentValue?.versions.length} versions.`);\n" +
' }\n' +
' if (accumulator[packageName]) {\n' +
" throw new Error(`Multiple packages with name '${packageName}' exist.`)\n" +
' }\n' +
' const packageVersion = currentValue?.versions?.[0]?.version?.value;\n' +
' accumulator[packageName] = { id: packageId, version: packageVersion };\n' +
' return accumulator;\n' +
' },\n' +
' {}\n' +
' );\n' +
" console.log('existingPackages', existingPackages);\n" +
' return existingPackages;\n' +
' };\n' +
'\n' +
' if (!triggeredByLinkId) {\n' +
" throw new Error('Install link should be inserted using JWT token (role link), it cannot be inserted using hasura secret (role admin).');\n" +
' }\n' +
'\n' +
' const { data: [{ value: { value: packageQuery } }] } = await deep.select({ id: newLink.to_id });\n' +
" const packageQueryParts = packageQuery.split('@');\n" +
' if (packageQueryParts.length === 3) {\n' +
' const packageVersion = packageQueryParts.pop();\n' +
' }\n' +
" const packageName = packageQueryParts.join('@');\n" +
' if (!packageName) {\n' +
" throw new Error('Package query value is empty.');\n" +
' }\n' +
' const tempDirectory = await makeTempDirectory();\n' +
' let deepJson;\n' +
' let packageJson;\n' +
' const installationQueue = [];\n' +
' const installationSet = {};\n' +
' try {\n' +
' const npmToken = await loadNpmToken();\n' +
' if (npmToken) {\n' +
' await npmLogin(npmToken, tempDirectory);\n' +
' }\n' +
" const nodeModulesPath = [tempDirectory, 'node_modules'].join('/');\n" +
' await npmInstall(packageQuery, tempDirectory);\n' +
' const packagePath = makePackagePath(tempDirectory, packageName);\n' +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
' deepJson = await deep.import(deepJsonPath);\n' +
' packageJson = await deep.import(packageJsonPath);\n' +
'\n' +
' const packages = await getDeepPackagesList(nodeModulesPath);\n' +
" console.log('packages', packages);\n" +
' \n' +
' const deepPackagesDependencies = await getDeepPackagesDependencies(nodeModulesPath, packages, packageName);\n' +
' delete deepPackagesDependencies[packageName];\n' +
" console.log('deepPackagesDependencies', deepPackagesDependencies);\n" +
' \n' +
' buildInstallationQueue(deepPackagesDependencies, installationQueue, installationSet);\n' +
' \n' +
" console.log('installationQueue', installationQueue);\n" +
" console.log('installationSet', installationSet);\n" +
' } finally {\n' +
' fs.rmSync(tempDirectory, { recursive: true, force: true });\n' +
' }\n' +
' \n' +
' const existingPackages = await getExistingPackages(installationQueue.map(e => e.name));\n' +
" console.log('existingPackages', existingPackages);\n" +
'\n' +
' for (const dependencyPackage of instal'... 1567 more characters,
container: {
name: 'deep-138d60d2a0fd040bfe13e80d143de80d',
host: 'deep-138d60d2a0fd040bfe13e80d143de80d',
port: 40317,
options: {
publish: false,
forceRestart: true,
handler: 'deepf/js-docker-isolation-provider:main'
}
},
jwt: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwczovL2hhc3VyYS5pby9qd3QvY2xhaW1zIjp7IngtaGFzdXJhLWFsbG93ZWQtcm9sZXMiOlsiYWRtaW4iXSwieC1oYXN1cmEtZGVmYXVsdC1yb2xlIjoiYWRtaW4iLCJ4LWhhc3VyYS11c2VyLWlkIjoiNzU0In0sImlhdCI6MTcwMDE3OTM5OX0.k_lqxfOqPA8cqXXH7nmks3O_rYPoi21n3t5lX3tmsn0',
secret: '4459a8e24fec162fd9ff71b57abec189396cad50cf867871',
data: {
triggeredByLinkId: 380,
oldLink: null,
newLink: { from_id: 380, type_id: 750, id: 1416, to_id: 1414, value: null },
promiseId: 1417
}
}
packages [
{
id: 1108,
name: { id: 440, value: '@suenot/unit', link_id: 1108 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1267,
name: { id: 517, value: '@suenot/wallet', link_id: 1267 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1310,
name: { id: 522, value: '@suenot/wallet', link_id: 1310 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 184,
name: { id: 6, value: '@deep-foundation/core', link_id: 184 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1227,
name: { id: 483, value: '@suenot/asset', link_id: 1227 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1148,
name: { id: 442, value: '@suenot/unit', link_id: 1148 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1188,
name: { id: 480, value: '@suenot/asset', link_id: 1188 },
versions: [ [Object] ],
__typename: 'links'
}
]
rejected {
stack: "Error: Multiple packages with name '@suenot/wallet' exist.\n" +
' at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:176:17)\n' +
' at Array.reduce (<anonymous>)\n' +
' at getExistingPackages (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:168:39)\n' +
' at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n' +
' at async eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:234:28)',
message: "Multiple packages with name '@suenot/wallet' exist."
}
/tmp/382c57cb-e910-413b-84a1-bf69a2c161c4
npm --prefix "/tmp/382c57cb-e910-413b-84a1-bf69a2c161c4" i @suenot/[email protected]
added 5 packages in 497ms
find . -name deep.json
./@deep-foundation/core/deep.json
./@suenot/unit/deep.json
./@suenot/asset/deep.json
./@suenot/wallet/deep.json
./@suenot/portfolio/deep.json
packages [
[ '@deep-foundation/core' ],
[ '@suenot/unit' ],
[ '@suenot/asset' ],
[ '@suenot/wallet' ],
[ '@suenot/portfolio' ]
]
packagePath /tmp/382c57cb-e910-413b-84a1-bf69a2c161c4/node_modules/@deep-foundation/core
packageJsonPath /tmp/382c57cb-e910-413b-84a1-bf69a2c161c4/node_modules/@deep-foundation/core/package.json
packageJson { name: '@deep-foundation/core', version: '0.0.2' }
deepJsonPath /tmp/382c57cb-e910-413b-84a1-bf69a2c161c4/node_modules/@deep-foundation/core/deep.json
deepJson {
package: { name: '@deep-foundation/core', version: '0.0.2' },
data: [
{ id: 'Type', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Package', type: 'Type' },
{ id: 'Contain', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Value', type: 'Type', from: 'Any', to: 'Type' },
{ id: 'String', type: 'Type' },
{ id: 'Number', type: 'Type' },
{ id: 'Object', type: 'Type' },
{ id: 'Any', type: 'Type' },
{ id: 'Promise', type: 'Type' },
{ id: 'Then', type: 'Type', from: 'Any', to: 'Promise' },
{ id: 'Resolved', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'Rejected', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'typeValue', type: 'Value', from: 'Type', to: 'String' },
{
id: 'packageValue',
type: 'Value',
from: 'Package',
to: 'String'
},
{ id: 'Selector', type: 'Type' },
{
id: 'SelectorInclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{ id: 'Rule', type: 'Type' },
{ id: 'RuleSubject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleObject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleAction', type: 'Type', from: 'Rule', to: 'Selector' },
{
id: 'containValue',
type: 'Value',
from: 'Contain',
to: 'String'
},
{ id: 'User', type: 'Type' },
{ id: 'Operation', type: 'Type' },
{
id: 'operationValue',
type: 'Value',
from: 'Operation',
to: 'String'
},
{ id: 'AllowInsert', type: 'Operation' },
{ id: 'AllowUpdate', type: 'Operation' },
{ id: 'AllowDelete', type: 'Operation' },
{ id: 'AllowSelect', type: 'Operation' },
{ id: 'File', type: 'Type' },
{ id: 'SyncTextFile', type: 'File' },
{
id: 'syncTextFileValue',
type: 'Value',
from: 'SyncTextFile',
to: 'String'
},
{ id: 'ExecutionProvider', type: 'Type' },
{ id: 'JSExecutionProvider', type: 'ExecutionProvider' },
{ id: 'TreeInclude', type: 'Type', from: 'Type', to: 'Any' },
{ id: 'Handler', type: 'Type', from: 'Supports', to: 'Any' },
{ id: 'Tree', type: 'Type' },
{
id: 'TreeIncludeDown',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeUp',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeNode',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{ id: 'containTree', type: 'Tree' },
{
id: 'containTreeContain',
type: 'TreeIncludeDown',
from: 'containTree',
to: 'Contain'
},
{
id: 'containTreeAny',
type: 'TreeIncludeNode',
from: 'containTree',
to: 'Any'
},
{ id: 'PackageNamespace', type: 'Type' },
{
id: 'packageNamespaceValue',
type: 'Value',
from: 'PackageNamespace',
to: 'String'
},
{
id: 'PackageActive',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'PackageVersion',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'packageVersionValue',
type: 'Value',
from: 'PackageVersion',
to: 'String'
},
{ id: 'HandleOperation', type: 'Type', from: 'Type', to: 'Type' },
{
id: 'HandleInsert',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleUpdate',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleDelete',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'PromiseResult', type: 'Type' },
{
id: 'promiseResultValueRelationTable',
type: 'Value',
from: 'PromiseResult',
to: 'Object'
},
{ id: 'PromiseReason', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Focus', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'focusValue', type: 'Value', from: 'Focus', to: 'Object' },
{ id: 'AsyncFile', type: 'File' },
{
id: 'handlersTreeHandler',
type: 'TreeIncludeUp',
from: 'handlersTree',
to: 'Handler'
},
{ id: 'Query', type: 'Type' },
{ id: 'queryValue', type: 'Value', from: 'Query', to: 'Object' },
{ id: 'Active', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Fixed', type: 'Type' },
{ id: 'fixedValue', type: 'Value', from: 'Fixed', to: 'Object' },
{ id: 'Space', type: 'Type' },
{ id: 'spaceValue', type: 'Value', from: 'Space', to: 'String' },
{ id: 'AllowLogin', type: 'Operation' },
{ id: 'guests', type: 'Any' },
{ id: 'Join', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'joinTree', type: 'Tree' },
{
id: 'joinTreeJoin',
type: 'TreeIncludeUp',
from: 'joinTree',
to: 'Join'
},
{
id: 'joinTreeAny',
type: 'TreeIncludeNode',
from: 'joinTree',
to: 'Any'
},
{ id: 'SelectorTree', type: 'Type', from: 'Any', to: 'Tree' },
{ id: 'AllowAdmin', type: 'Operation' },
{
id: 'SelectorExclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{
id: 'SelectorFilter',
type: 'Type',
from: 'Selector',
to: 'Query'
},
{
id: 'HandleSchedule',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'Schedule', type: 'Type' },
{
id: 'scheduleValue',
type: 'Value',
from: 'Schedule',
to: 'String'
},
{ id: 'Router', type: 'Type', value: [Object] },
{ id: 'IsolationProvider', type: 'Type' },
{ id: 'DockerIsolationProvider', type: 'IsolationProvider' },
{
id: 'dockerIsolationProviderValue',
type: 'Value',
from: 'DockerIsolationProvider',
to: 'String'
},
{
id: 'JSDockerIsolationProvider',
type: 'DockerIsolationProvider',
value: [Object]
},
{ id: 'Supports', type: 'Type', from: 'Any', to: 'Any' },
{
id: 'dockerSupportsJs',
type: 'Supports',
from: 'JSDockerIsolationProvider',
to: 'JSExecutionProvider'
},
{
id: 'PackageInstall',
type: 'Type',
from: 'Any',
to: 'PackageQuery'
},
{
id: 'PackagePublish',
type: 'Type',
from: 'Package',
to: 'PackageQuery'
},
{ id: 'packageInstallCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packageInstallCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packageInstallCode'
},
{
id: 'packageInstallCodeHandleInsert',
type: 'HandleInsert',
from: 'PackageInstall',
to: 'packageInstallCodeHandler'
},
{ id: 'packagePublishCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packagePublishCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packagePublishCode'
},
{
id: 'packagePublishCodeHandleInsert',
type: 'HandleInsert',
from: 'PackagePublish',
to: 'packagePublishCodeHandler'
},
{ id: 'AllowPackageInstall', type: 'Operation' },
{ id: 'portValue', type: 'Value', from: 'Port', to: 'Number' },
{
id: 'HandlePort',
type: 'HandleOperation',
from: 'Port',
to: 'Any'
},
{ id: 'Route', type: 'Type' },
{ id: 'RouterListening', type: 'Type', from: 'Router', to: 'Port' },
{
id: 'RouterStringUse',
type: 'Type',
from: 'Route',
to: 'Router'
},
{
id: 'routerStringUseValue',
type: 'Value',
from: 'RouterStringUse',
to: 'String'
},
... 74 more items
],
errors: [],
strict: true,
dependencies: []
}
dependencies {}
dependencyPackageName @deep-foundation/core
packagePath /tmp/382c57cb-e910-413b-84a1-bf69a2c161c4/node_modules/@suenot/unit
packageJsonPath /tmp/382c57cb-e910-413b-84a1-bf69a2c161c4/node_modules/@suenot/unit/package.json
packageJson {
name: '@suenot/unit',
dependencies: { '@deep-foundation/core': '~0.0.2' },
version: '0.0.2',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/382c57cb-e910-413b-84a1-bf69a2c161c4/node_modules/@suenot/unit/deep.json
deepJson {
package: { name: '@suenot/unit', version: '0.0.2' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ id: 'Unit', type: 1 },
{ id: 'Description', type: 1, from: 'Unit', to: 'Unit' },
{
id: 'descriptionSymbol',
type: 2,
from: 'Description',
to: 'Description',
value: [Object]
},
{ id: 'Avatar', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'avatarValue', type: 3, from: 'Avatar', to: 4 },
{
id: 'avatarSymbol',
type: 2,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'Ticker', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'tickerValue', type: 3, from: 'Ticker', to: 4 },
{
id: 'tickerSymbol',
type: 2,
from: 'Ticker',
to: 'Ticker',
value: [Object]
},
{ id: 'Name', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'nameValue', type: 3, from: 'Name', to: 4 },
{
id: 'nameSymbol',
type: 2,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 2,
from: 'Unit',
to: 'Unit',
value: [Object]
}
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies { '@deep-foundation/core': '~0.0.2' }
dependencyPackageName @suenot/unit
packagePath /tmp/382c57cb-e910-413b-84a1-bf69a2c161c4/node_modules/@suenot/asset
packageJsonPath /tmp/382c57cb-e910-413b-84a1-bf69a2c161c4/node_modules/@suenot/asset/package.json
packageJson {
name: '@suenot/asset',
dependencies: { '@deep-foundation/core': '~0.0.2' },
version: '0.0.8',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/382c57cb-e910-413b-84a1-bf69a2c161c4/node_modules/@suenot/asset/deep.json
deepJson {
package: { name: '@suenot/asset', version: '0.0.8' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ id: 'Asset', type: 1 },
{ id: 'Description', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'Avatar', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'avatarValue', type: 2, from: 'Avatar', to: 3 },
{
id: 'avatarSymbol',
type: 4,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'Ticker', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'tickerValue', type: 2, from: 'Ticker', to: 3 },
{
id: 'tickerSymbol',
type: 4,
from: 'Ticker',
to: 'Ticker',
value: [Object]
},
{ id: 'Name', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'nameValue', type: 2, from: 'Name', to: 3 },
{
id: 'nameSymbol',
type: 4,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 4,
from: 'Asset',
to: 'Asset',
value: [Object]
}
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies { '@deep-foundation/core': '~0.0.2' }
dependencyPackageName @suenot/asset
packagePath /tmp/382c57cb-e910-413b-84a1-bf69a2c161c4/node_modules/@suenot/wallet
packageJsonPath /tmp/382c57cb-e910-413b-84a1-bf69a2c161c4/node_modules/@suenot/wallet/package.json
packageJson {
name: '@suenot/wallet',
dependencies: {
'@deep-foundation/core': '~0.0.2',
'@suenot/asset': '~0.0.2',
'@suenot/unit': '~0.0.2'
},
version: '0.0.3',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/382c57cb-e910-413b-84a1-bf69a2c161c4/node_modules/@suenot/wallet/deep.json
deepJson {
package: { name: '@suenot/wallet', version: '0.0.3' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ id: 'Wallet', type: 1 },
{ id: 'Description', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'descriptionValue', type: 2, from: 'Description', to: 3 },
{
id: 'descriptionSymbol',
type: 4,
from: 'Description',
to: 'Description',
value: [Object]
},
{ id: 'Avatar', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'avatarValue', type: 2, from: 'Avatar', to: 3 },
{
id: 'avatarSymbol',
type: 4,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'ContainUnit', type: 1, from: 'Wallet', to: 5 },
{ id: 'Name', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'nameValue', type: 2, from: 'Name', to: 3 },
{
id: 'nameSymbol',
type: 4,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 4,
from: 'Wallet',
to: 'Wallet',
value: [Object]
},
{ id: 'waletValue', type: 2, from: 'Wallet', to: 6 }
],
errors: [],
dependencies: [
{ name: '@deep-foundation/core', version: '0.0.2' },
{ name: '@suenot/unit', version: '0.0.2' }
]
}
dependencies {
'@deep-foundation/core': '~0.0.2',
'@suenot/asset': '~0.0.2',
'@suenot/unit': '~0.0.2'
}
dependencyPackageName @suenot/wallet
packagePath /tmp/382c57cb-e910-413b-84a1-bf69a2c161c4/node_modules/@suenot/portfolio
packageJsonPath /tmp/382c57cb-e910-413b-84a1-bf69a2c161c4/node_modules/@suenot/portfolio/package.json
packageJson {
name: '@suenot/portfolio',
dependencies: { '@deep-foundation/core': '~0.0.2', '@suenot/wallet': '~0.0.3' },
version: '0.0.3',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/382c57cb-e910-413b-84a1-bf69a2c161c4/node_modules/@suenot/portfolio/deep.json
deepJson {
package: { name: '@suenot/portfolio', version: '0.0.3' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ id: 'Portfolio', type: 1 },
{ id: 'Description', type: 1, from: 'Portfolio', to: 'Portfolio' },
{ id: 'descriptionValue', type: 2, from: 'Description', to: 3 },
{
id: 'descriptionSymbol',
type: 4,
from: 'Description',
to: 'Description',
value: [Object]
},
{ id: 'Avatar', type: 1, from: 'Portfolio', to: 'Portfolio' },
{ id: 'avatarValue', type: 2, from: 'Avatar', to: 3 },
{
id: 'avatarSymbol',
type: 4,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'ContainWallet', type: 1, from: 'Portfolio', to: 5 },
{ id: 'Name', type: 1, from: 'Portfolio', to: 'Portfolio' },
{ id: 'nameValue', type: 2, from: 'Name', to: 3 },
{
id: 'nameSymbol',
type: 4,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 4,
from: 'Portfolio',
to: 'Portfolio',
value: [Object]
},
{ id: 'portfolioValue', type: 2, from: 'Portfolio', to: 6 }
],
errors: [],
dependencies: [
{ name: '@deep-foundation/core', version: '0.0.2' },
{ name: '@suenot/wallet', version: '0.0.3' }
]
}
dependencies { '@deep-foundation/core': '~0.0.2', '@suenot/wallet': '~0.0.3' }
dependencyPackageName @suenot/portfolio
deepPackagesDependencies {
'@deep-foundation/core': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' },
dependencies: []
},
'@suenot/unit': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/unit',
dependencies: [Object],
version: '0.0.2',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core' ]
},
'@suenot/asset': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/asset',
dependencies: [Object],
version: '0.0.8',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core' ]
},
'@suenot/wallet': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/wallet',
dependencies: [Object],
version: '0.0.3',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core', '@suenot/asset', '@suenot/unit' ]
}
}
installationQueue [
{
name: '@deep-foundation/core',
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' }
},
{
name: '@suenot/unit',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/unit',
dependencies: [Object],
version: '0.0.2',
keywords: [Array]
}
},
{
name: '@suenot/asset',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/asset',
dependencies: [Object],
version: '0.0.8',
keywords: [Array]
}
},
{
name: '@suenot/wallet',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/wallet',
dependencies: [Object],
version: '0.0.3',
keywords: [Array]
}
}
]
installationSet {
'@deep-foundation/core': true,
'@suenot/unit': true,
'@suenot/asset': true,
'@suenot/wallet': true
}
packages [
{
id: 1108,
name: { id: 440, value: '@suenot/unit', link_id: 1108 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1267,
name: { id: 517, value: '@suenot/wallet', link_id: 1267 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1310,
name: { id: 522, value: '@suenot/wallet', link_id: 1310 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 184,
name: { id: 6, value: '@deep-foundation/core', link_id: 184 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1227,
name: { id: 483, value: '@suenot/asset', link_id: 1227 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1148,
name: { id: 442, value: '@suenot/unit', link_id: 1148 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1188,
name: { id: 480, value: '@suenot/asset', link_id: 1188 },
versions: [ [Object] ],
__typename: 'links'
}
]
rejected {
stack: "Error: Multiple packages with name '@suenot/wallet' exist.\n" +
' at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:176:17)\n' +
' at Array.reduce (<anonymous>)\n' +
' at getExistingPackages (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:168:39)\n' +
' at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n' +
' at async eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:234:28)',
message: "Multiple packages with name '@suenot/wallet' exist."
}
call body params {
code: 'async ({ deep, gql, data: { triggeredByLinkId, newLink } }) => {\n' +
" const deepFileName = 'deep.json';\n" +
" const fs = await deep.import('fs');\n" +
'\n' +
' const makeTempDirectory = async () => {\n' +
" const os = await deep.import('os');\n" +
" const { v4: uuid } = await deep.import('uuid');\n" +
' \n' +
' const baseTempDirectory = os.tmpdir();\n' +
' const randomId = uuid();\n' +
" const tempDirectory = [baseTempDirectory,randomId].join('/');\n" +
' fs.mkdirSync(tempDirectory);\n' +
' console.log(tempDirectory);\n' +
' return tempDirectory;\n' +
' };\n' +
' const npmInstall = async (packageName, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
' const command = `npm --prefix "${tempDirectory}" i ${packageName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
' const npmLogin = async (token, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
' \n' +
' const command = `npm set "//registry.npmjs.org/:_authToken" ${token}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
" const makePackagePath = (tempDirectory, packageName) => [tempDirectory, 'node_modules', packageName].join('/');\n" +
" const makeDeepJsonPath = (packagePath) => [packagePath, deepFileName].join('/');\n" +
" const makePackageJsonPath = (packagePath) => [packagePath, 'package.json'].join('/');\n" +
' const loadNpmToken = async () => {\n' +
" const containTreeId = await deep.id('@deep-foundation/core', 'containTree');\n" +
" const tokenTypeId = await deep.id('@deep-foundation/npm-packager', 'Token');\n" +
' const { data: [{ value: { value: npmToken = undefined } = {}} = {}] = []} = await deep.select({\n' +
' up: {\n' +
' tree_id: { _eq: containTreeId },\n' +
' parent: { id: { _eq: triggeredByLinkId } },\n' +
' link: { type_id: { _eq: tokenTypeId } }\n' +
' }\n' +
' });\n' +
' return npmToken;\n' +
' };\n' +
' const deepImport = async (deepJson, packageJson) => {\n' +
' if (deepJson.package.name !== packageJson.name) {\n' +
' throw new Error(`Package name is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package name: ${deepJson.package.name}.\n' +
' package.json package name: ${packageJson.name}.`);\n' +
' }\n' +
' if (deepJson.package.version !== packageJson.version) {\n' +
' throw new Error(`Package version is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package version: ${deepJson.package.version}.\n' +
' package.json package version: ${packageJson.version}.`);\n' +
' }\n' +
" const packager = new (await deep.import('@deep-foundation/deeplinks/imports/packager.js')).Packager(deep);\n" +
' const imported = await packager.import(deepJson);\n' +
' console.log(imported);\n' +
' if (imported?.errors?.length) throw imported;\n' +
' return imported;\n' +
' };\n' +
' const getDeepPackagesList = async (rootPath) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
" const deepFileName = 'deep.json';\n" +
' const deepFileNameLength = deepFileName.length;\n' +
'\n' +
' const command = `find . -name ${deepFileName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: rootPath\n' +
' });\n' +
" console.log('', `${command}\\n`, output);\n" +
'\n' +
' const packages = output\n' +
' .split(/\\r?\\n/)\n' +
' .filter(line => line.trim())\n' +
' .map(line => line.slice(2).slice(0, -deepFileNameLength - 1))\n' +
" .map(line => line.split('/node_modules/'));\n" +
' return packages;\n' +
' };\n' +
' const getDeepPackagesDependencies = async (rootPath, packages, packageName) => {\n' +
' const dictionary = {};\n' +
' for (const pkg of packages) {\n' +
" const packagePath = [rootPath, pkg.join('/node_modules/')].join('/');\n" +
" console.log('packagePath', packagePath);\n" +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
" console.log('packageJsonPath', packageJsonPath);\n" +
' if (!fs.existsSync(packageJsonPath)) {\n' +
' throw new Error(`package.json for dependency ${pkg} is not found at ${packageJsonPath}. Looks like ${packageName} does not contain ${pkg} dependency in package.json.`);\n' +
' }\n' +
' const packageJson = await deep.import(packageJsonPath);\n' +
" console.log('packageJson', packageJson);\n" +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
" console.log('deepJsonPath', deepJsonPath);\n" +
' if (!fs.existsSync(deepJsonPath)) {\n' +
' throw new Error(`deep.json for dependency ${pkg} is not found at ${deepJsonPath}. Looks like ${pkg} installed, but it does not contain deep.json. Make sure ${pkg} is a deep package.`);\n' +
' }\n' +
' const deepJson = await deep.import(deepJsonPath);\n' +
" console.log('deepJson', deepJson);\n" +
' const dependencies = packageJson.dependencies ?? {};\n' +
" console.log('dependencies', dependencies);\n" +
' const dependencyPackageName = pkg.at(-1);\n' +
" console.log('dependencyPackageName', dependencyPackageName);\n" +
' if (Array.isArray(dictionary[dependencyPackageName])) {\n' +
" throw new Error('Multiple versions of the same package are not supported yet.');\n" +
' }\n' +
' dictionary[dependencyPackageName] = { deepJson, packageJson, dependencies };\n' +
' }\n' +
' for (const pkg in dictionary) {\n' +
' const sourceDependencies = dictionary[pkg].dependencies;\n' +
' const targetDependencies = [];\n' +
' for (const dependency in sourceDependencies)\n' +
' {\n' +
' if (dictionary[dependency]) {\n' +
' targetDependencies.push(dependency);\n' +
' }\n' +
' }\n' +
' dictionary[pkg].dependencies = targetDependencies;\n' +
' }\n' +
' return dictionary;\n' +
' }\n' +
' const buildInstallationQueueCore = (deepPackagesDependencies, queue, set, packageName) => {\n' +
' const dependencies = deepPackagesDependencies[packageName].dependencies;\n' +
' for (const dependency of dependencies) {\n' +
' if (!set[dependency]) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, dependency);\n' +
' }\n' +
' }\n' +
' if(!set[packageName]) {\n' +
' const deepJson = deepPackagesDependencies[packageName].deepJson;\n' +
' const packageJson = deepPackagesDependencies[packageName].packageJson;\n' +
' queue.push({ name: packageName, deepJson, packageJson });\n' +
' set[packageName] = true;\n' +
' }\n' +
' }\n' +
' const buildInstallationQueue = (deepPackagesDependencies, queue, set) => {\n' +
' for (const packageName in deepPackagesDependencies) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, packageName);\n' +
' }\n' +
' }\n' +
' const getExistingPackages = async (packageNames) => {\n' +
" const packageTypeId = await deep.id('@deep-foundation/core', 'Package');\n" +
" const packageVersionTypeId = await deep.id('@deep-foundation/core', 'PackageVersion');\n" +
' const { data: packages } = await deep.select({\n' +
' type_id: { _eq: packageTypeId },\n' +
' string: { value: { _in: packageNames } }\n' +
' }, {\n' +
" name: 'GET_EXISTING_PACKAGES_WITH_VERSIONS',\n" +
' returning: `\n' +
' id\n' +
' name: value\n' +
' versions: in(where: {type_id: {_eq: ${packageVersionTypeId}}, string: {value: {_is_null: false}}}) {\n' +
' id\n' +
' version: value\n' +
' }\n' +
' `\n' +
' })\n' +
" console.log('packages', packages);\n" +
' const existingPackages = packages.reduce(\n' +
' (accumulator, currentValue) => {\n' +
' const packageId = currentValue?.id;\n' +
' const packageName = currentValue?.name?.value;\n' +
' if (currentValue?.versions.length !== 1) {\n' +
" throw new Error(`'${packageName}' package must have exactly one version. Now it has ${currentValue?.versions.length} versions.`);\n" +
' }\n' +
' if (accumulator[packageName]) {\n' +
" throw new Error(`Multiple packages with name '${packageName}' exist.`)\n" +
' }\n' +
' const packageVersion = currentValue?.versions?.[0]?.version?.value;\n' +
' accumulator[packageName] = { id: packageId, version: packageVersion };\n' +
' return accumulator;\n' +
' },\n' +
' {}\n' +
' );\n' +
" console.log('existingPackages', existingPackages);\n" +
' return existingPackages;\n' +
' };\n' +
'\n' +
' if (!triggeredByLinkId) {\n' +
" throw new Error('Install link should be inserted using JWT token (role link), it cannot be inserted using hasura secret (role admin).');\n" +
' }\n' +
'\n' +
' const { data: [{ value: { value: packageQuery } }] } = await deep.select({ id: newLink.to_id });\n' +
" const packageQueryParts = packageQuery.split('@');\n" +
' if (packageQueryParts.length === 3) {\n' +
' const packageVersion = packageQueryParts.pop();\n' +
' }\n' +
" const packageName = packageQueryParts.join('@');\n" +
' if (!packageName) {\n' +
" throw new Error('Package query value is empty.');\n" +
' }\n' +
' const tempDirectory = await makeTempDirectory();\n' +
' let deepJson;\n' +
' let packageJson;\n' +
' const installationQueue = [];\n' +
' const installationSet = {};\n' +
' try {\n' +
' const npmToken = await loadNpmToken();\n' +
' if (npmToken) {\n' +
' await npmLogin(npmToken, tempDirectory);\n' +
' }\n' +
" const nodeModulesPath = [tempDirectory, 'node_modules'].join('/');\n" +
' await npmInstall(packageQuery, tempDirectory);\n' +
' const packagePath = makePackagePath(tempDirectory, packageName);\n' +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
' deepJson = await deep.import(deepJsonPath);\n' +
' packageJson = await deep.import(packageJsonPath);\n' +
'\n' +
' const packages = await getDeepPackagesList(nodeModulesPath);\n' +
" console.log('packages', packages);\n" +
' \n' +
' const deepPackagesDependencies = await getDeepPackagesDependencies(nodeModulesPath, packages, packageName);\n' +
' delete deepPackagesDependencies[packageName];\n' +
" console.log('deepPackagesDependencies', deepPackagesDependencies);\n" +
' \n' +
' buildInstallationQueue(deepPackagesDependencies, installationQueue, installationSet);\n' +
' \n' +
" console.log('installationQueue', installationQueue);\n" +
" console.log('installationSet', installationSet);\n" +
' } finally {\n' +
' fs.rmSync(tempDirectory, { recursive: true, force: true });\n' +
' }\n' +
' \n' +
' const existingPackages = await getExistingPackages(installationQueue.map(e => e.name));\n' +
" console.log('existingPackages', existingPackages);\n" +
'\n' +
' for (const dependencyPackage of instal'... 1567 more characters,
container: {
name: 'deep-138d60d2a0fd040bfe13e80d143de80d',
host: 'deep-138d60d2a0fd040bfe13e80d143de80d',
port: 40317,
options: {
publish: false,
forceRestart: true,
handler: 'deepf/js-docker-isolation-provider:main'
}
},
jwt: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwczovL2hhc3VyYS5pby9qd3QvY2xhaW1zIjp7IngtaGFzdXJhLWFsbG93ZWQtcm9sZXMiOlsiYWRtaW4iXSwieC1oYXN1cmEtZGVmYXVsdC1yb2xlIjoiYWRtaW4iLCJ4LWhhc3VyYS11c2VyLWlkIjoiNzU0In0sImlhdCI6MTcwMDE3OTUyMn0.sXVO5AbCnH-zhuwn9j7ssbu0lptr_0rtsdike6OR4ic',
secret: '4459a8e24fec162fd9ff71b57abec189396cad50cf867871',
data: {
triggeredByLinkId: 380,
oldLink: null,
newLink: { from_id: 380, type_id: 750, id: 1440, to_id: 1438, value: null },
promiseId: 1441
}
}
call body params {
code: 'async ({ deep, gql, data: { triggeredByLinkId, newLink } }) => {\n' +
" const deepFileName = 'deep.json';\n" +
" const fs = await deep.import('fs');\n" +
'\n' +
' const makeTempDirectory = async () => {\n' +
" const os = await deep.import('os');\n" +
" const { v4: uuid } = await deep.import('uuid');\n" +
' \n' +
' const baseTempDirectory = os.tmpdir();\n' +
' const randomId = uuid();\n' +
" const tempDirectory = [baseTempDirectory,randomId].join('/');\n" +
' fs.mkdirSync(tempDirectory);\n' +
' console.log(tempDirectory);\n' +
' return tempDirectory;\n' +
' };\n' +
' const npmInstall = async (packageName, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
' const command = `npm --prefix "${tempDirectory}" i ${packageName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
' const npmLogin = async (token, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
' \n' +
' const command = `npm set "//registry.npmjs.org/:_authToken" ${token}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
" const makePackagePath = (tempDirectory, packageName) => [tempDirectory, 'node_modules', packageName].join('/');\n" +
" const makeDeepJsonPath = (packagePath) => [packagePath, deepFileName].join('/');\n" +
" const makePackageJsonPath = (packagePath) => [packagePath, 'package.json'].join('/');\n" +
' const loadNpmToken = async () => {\n' +
" const containTreeId = await deep.id('@deep-foundation/core', 'containTree');\n" +
" const tokenTypeId = await deep.id('@deep-foundation/npm-packager', 'Token');\n" +
' const { data: [{ value: { value: npmToken = undefined } = {}} = {}] = []} = await deep.select({\n' +
' up: {\n' +
' tree_id: { _eq: containTreeId },\n' +
' parent: { id: { _eq: triggeredByLinkId } },\n' +
' link: { type_id: { _eq: tokenTypeId } }\n' +
' }\n' +
' });\n' +
' return npmToken;\n' +
' };\n' +
' const deepImport = async (deepJson, packageJson) => {\n' +
' if (deepJson.package.name !== packageJson.name) {\n' +
' throw new Error(`Package name is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package name: ${deepJson.package.name}.\n' +
' package.json package name: ${packageJson.name}.`);\n' +
' }\n' +
' if (deepJson.package.version !== packageJson.version) {\n' +
' throw new Error(`Package version is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package version: ${deepJson.package.version}.\n' +
' package.json package version: ${packageJson.version}.`);\n' +
' }\n' +
" const packager = new (await deep.import('@deep-foundation/deeplinks/imports/packager.js')).Packager(deep);\n" +
' const imported = await packager.import(deepJson);\n' +
' console.log(imported);\n' +
' if (imported?.errors?.length) throw imported;\n' +
' return imported;\n' +
' };\n' +
' const getDeepPackagesList = async (rootPath) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
" const deepFileName = 'deep.json';\n" +
' const deepFileNameLength = deepFileName.length;\n' +
'\n' +
' const command = `find . -name ${deepFileName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: rootPath\n' +
' });\n' +
" console.log('', `${command}\\n`, output);\n" +
'\n' +
' const packages = output\n' +
' .split(/\\r?\\n/)\n' +
' .filter(line => line.trim())\n' +
' .map(line => line.slice(2).slice(0, -deepFileNameLength - 1))\n' +
" .map(line => line.split('/node_modules/'));\n" +
' return packages;\n' +
' };\n' +
' const getDeepPackagesDependencies = async (rootPath, packages, packageName) => {\n' +
' const dictionary = {};\n' +
' for (const pkg of packages) {\n' +
" const packagePath = [rootPath, pkg.join('/node_modules/')].join('/');\n" +
" console.log('packagePath', packagePath);\n" +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
" console.log('packageJsonPath', packageJsonPath);\n" +
' if (!fs.existsSync(packageJsonPath)) {\n' +
' throw new Error(`package.json for dependency ${pkg} is not found at ${packageJsonPath}. Looks like ${packageName} does not contain ${pkg} dependency in package.json.`);\n' +
' }\n' +
' const packageJson = await deep.import(packageJsonPath);\n' +
" console.log('packageJson', packageJson);\n" +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
" console.log('deepJsonPath', deepJsonPath);\n" +
' if (!fs.existsSync(deepJsonPath)) {\n' +
' throw new Error(`deep.json for dependency ${pkg} is not found at ${deepJsonPath}. Looks like ${pkg} installed, but it does not contain deep.json. Make sure ${pkg} is a deep package.`);\n' +
' }\n' +
' const deepJson = await deep.import(deepJsonPath);\n' +
" console.log('deepJson', deepJson);\n" +
' const dependencies = packageJson.dependencies ?? {};\n' +
" console.log('dependencies', dependencies);\n" +
' const dependencyPackageName = pkg.at(-1);\n' +
" console.log('dependencyPackageName', dependencyPackageName);\n" +
' if (Array.isArray(dictionary[dependencyPackageName])) {\n' +
" throw new Error('Multiple versions of the same package are not supported yet.');\n" +
' }\n' +
' dictionary[dependencyPackageName] = { deepJson, packageJson, dependencies };\n' +
' }\n' +
' for (const pkg in dictionary) {\n' +
' const sourceDependencies = dictionary[pkg].dependencies;\n' +
' const targetDependencies = [];\n' +
' for (const dependency in sourceDependencies)\n' +
' {\n' +
' if (dictionary[dependency]) {\n' +
' targetDependencies.push(dependency);\n' +
' }\n' +
' }\n' +
' dictionary[pkg].dependencies = targetDependencies;\n' +
' }\n' +
' return dictionary;\n' +
' }\n' +
' const buildInstallationQueueCore = (deepPackagesDependencies, queue, set, packageName) => {\n' +
' const dependencies = deepPackagesDependencies[packageName].dependencies;\n' +
' for (const dependency of dependencies) {\n' +
' if (!set[dependency]) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, dependency);\n' +
' }\n' +
' }\n' +
' if(!set[packageName]) {\n' +
' const deepJson = deepPackagesDependencies[packageName].deepJson;\n' +
' const packageJson = deepPackagesDependencies[packageName].packageJson;\n' +
' queue.push({ name: packageName, deepJson, packageJson });\n' +
' set[packageName] = true;\n' +
' }\n' +
' }\n' +
' const buildInstallationQueue = (deepPackagesDependencies, queue, set) => {\n' +
' for (const packageName in deepPackagesDependencies) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, packageName);\n' +
' }\n' +
' }\n' +
' const getExistingPackages = async (packageNames) => {\n' +
" const packageTypeId = await deep.id('@deep-foundation/core', 'Package');\n" +
" const packageVersionTypeId = await deep.id('@deep-foundation/core', 'PackageVersion');\n" +
' const { data: packages } = await deep.select({\n' +
' type_id: { _eq: packageTypeId },\n' +
' string: { value: { _in: packageNames } }\n' +
' }, {\n' +
" name: 'GET_EXISTING_PACKAGES_WITH_VERSIONS',\n" +
' returning: `\n' +
' id\n' +
' name: value\n' +
' versions: in(where: {type_id: {_eq: ${packageVersionTypeId}}, string: {value: {_is_null: false}}}) {\n' +
' id\n' +
' version: value\n' +
' }\n' +
' `\n' +
' })\n' +
" console.log('packages', packages);\n" +
' const existingPackages = packages.reduce(\n' +
' (accumulator, currentValue) => {\n' +
' const packageId = currentValue?.id;\n' +
' const packageName = currentValue?.name?.value;\n' +
' if (currentValue?.versions.length !== 1) {\n' +
" throw new Error(`'${packageName}' package must have exactly one version. Now it has ${currentValue?.versions.length} versions.`);\n" +
' }\n' +
' if (accumulator[packageName]) {\n' +
" throw new Error(`Multiple packages with name '${packageName}' exist.`)\n" +
' }\n' +
' const packageVersion = currentValue?.versions?.[0]?.version?.value;\n' +
' accumulator[packageName] = { id: packageId, version: packageVersion };\n' +
' return accumulator;\n' +
' },\n' +
' {}\n' +
' );\n' +
" console.log('existingPackages', existingPackages);\n" +
' return existingPackages;\n' +
' };\n' +
'\n' +
' if (!triggeredByLinkId) {\n' +
" throw new Error('Install link should be inserted using JWT token (role link), it cannot be inserted using hasura secret (role admin).');\n" +
' }\n' +
'\n' +
' const { data: [{ value: { value: packageQuery } }] } = await deep.select({ id: newLink.to_id });\n' +
" const packageQueryParts = packageQuery.split('@');\n" +
' if (packageQueryParts.length === 3) {\n' +
' const packageVersion = packageQueryParts.pop();\n' +
' }\n' +
" const packageName = packageQueryParts.join('@');\n" +
' if (!packageName) {\n' +
" throw new Error('Package query value is empty.');\n" +
' }\n' +
' const tempDirectory = await makeTempDirectory();\n' +
' let deepJson;\n' +
' let packageJson;\n' +
' const installationQueue = [];\n' +
' const installationSet = {};\n' +
' try {\n' +
' const npmToken = await loadNpmToken();\n' +
' if (npmToken) {\n' +
' await npmLogin(npmToken, tempDirectory);\n' +
' }\n' +
" const nodeModulesPath = [tempDirectory, 'node_modules'].join('/');\n" +
' await npmInstall(packageQuery, tempDirectory);\n' +
' const packagePath = makePackagePath(tempDirectory, packageName);\n' +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
' deepJson = await deep.import(deepJsonPath);\n' +
' packageJson = await deep.import(packageJsonPath);\n' +
'\n' +
' const packages = await getDeepPackagesList(nodeModulesPath);\n' +
" console.log('packages', packages);\n" +
' \n' +
' const deepPackagesDependencies = await getDeepPackagesDependencies(nodeModulesPath, packages, packageName);\n' +
' delete deepPackagesDependencies[packageName];\n' +
" console.log('deepPackagesDependencies', deepPackagesDependencies);\n" +
' \n' +
' buildInstallationQueue(deepPackagesDependencies, installationQueue, installationSet);\n' +
' \n' +
" console.log('installationQueue', installationQueue);\n" +
" console.log('installationSet', installationSet);\n" +
' } finally {\n' +
' fs.rmSync(tempDirectory, { recursive: true, force: true });\n' +
' }\n' +
' \n' +
' const existingPackages = await getExistingPackages(installationQueue.map(e => e.name));\n' +
" console.log('existingPackages', existingPackages);\n" +
'\n' +
' for (const dependencyPackage of instal'... 1567 more characters,
container: {
name: 'deep-138d60d2a0fd040bfe13e80d143de80d',
host: 'deep-138d60d2a0fd040bfe13e80d143de80d',
port: 40317,
options: {
publish: false,
forceRestart: true,
handler: 'deepf/js-docker-isolation-provider:main'
}
},
jwt: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwczovL2hhc3VyYS5pby9qd3QvY2xhaW1zIjp7IngtaGFzdXJhLWFsbG93ZWQtcm9sZXMiOlsiYWRtaW4iXSwieC1oYXN1cmEtZGVmYXVsdC1yb2xlIjoiYWRtaW4iLCJ4LWhhc3VyYS11c2VyLWlkIjoiNzU0In0sImlhdCI6MTcwMDE3OTUyMn0.sXVO5AbCnH-zhuwn9j7ssbu0lptr_0rtsdike6OR4ic',
secret: '4459a8e24fec162fd9ff71b57abec189396cad50cf867871',
data: {
triggeredByLinkId: 380,
oldLink: null,
newLink: { from_id: 380, type_id: 750, id: 1434, to_id: 1432, value: null },
promiseId: 1435
}
}
/tmp/e9e4dc32-cd3f-43b9-8bff-58b91a49b3b2
/tmp/489bef84-2aa6-40bd-b2d0-26eeb631de71
npm --prefix "/tmp/e9e4dc32-cd3f-43b9-8bff-58b91a49b3b2" i @trooper2003/[email protected]
added 4 packages in 7s
find . -name deep.json
./@deep-foundation/tsx/deep.json
./@deep-foundation/core/deep.json
./@trooper2003/units/deep.json
./@trooper2003/account-ui/deep.json
packages [
[ '@deep-foundation/tsx' ],
[ '@deep-foundation/core' ],
[ '@trooper2003/units' ],
[ '@trooper2003/account-ui' ]
]
packagePath /tmp/e9e4dc32-cd3f-43b9-8bff-58b91a49b3b2/node_modules/@deep-foundation/tsx
packageJsonPath /tmp/e9e4dc32-cd3f-43b9-8bff-58b91a49b3b2/node_modules/@deep-foundation/tsx/package.json
packageJson {
name: '@deep-foundation/tsx',
keywords: [ 'deep-package' ],
version: '0.0.5',
dependencies: { '@deep-foundation/core': '^0.0.2' }
}
deepJsonPath /tmp/e9e4dc32-cd3f-43b9-8bff-58b91a49b3b2/node_modules/@deep-foundation/tsx/deep.json
deepJson {
package: { name: '@deep-foundation/tsx', version: '0.0.5' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ package: [Object], id: 7 },
{ package: [Object], id: 8 },
{ id: 'TSX', type: 1, value: [Object] },
{ id: 'compiler', type: 2, value: [Object] },
{ id: 'handler', type: 3, from: 4, to: 'compiler' },
{ id: 'handleUpdate', type: 5, from: 'TSX', to: 'handler' },
{ id: 'tsxValue', type: 6, from: 'TSX', to: 7 },
{
id: 'tsxSymbol',
type: 8,
from: 'TSX',
to: 'TSX',
value: [Object]
}
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies { '@deep-foundation/core': '^0.0.2' }
dependencyPackageName @deep-foundation/tsx
packagePath /tmp/e9e4dc32-cd3f-43b9-8bff-58b91a49b3b2/node_modules/@deep-foundation/core
packageJsonPath /tmp/e9e4dc32-cd3f-43b9-8bff-58b91a49b3b2/node_modules/@deep-foundation/core/package.json
packageJson { name: '@deep-foundation/core', version: '0.0.2' }
deepJsonPath /tmp/e9e4dc32-cd3f-43b9-8bff-58b91a49b3b2/node_modules/@deep-foundation/core/deep.json
deepJson {
package: { name: '@deep-foundation/core', version: '0.0.2' },
data: [
{ id: 'Type', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Package', type: 'Type' },
{ id: 'Contain', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Value', type: 'Type', from: 'Any', to: 'Type' },
{ id: 'String', type: 'Type' },
{ id: 'Number', type: 'Type' },
{ id: 'Object', type: 'Type' },
{ id: 'Any', type: 'Type' },
{ id: 'Promise', type: 'Type' },
{ id: 'Then', type: 'Type', from: 'Any', to: 'Promise' },
{ id: 'Resolved', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'Rejected', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'typeValue', type: 'Value', from: 'Type', to: 'String' },
{
id: 'packageValue',
type: 'Value',
from: 'Package',
to: 'String'
},
{ id: 'Selector', type: 'Type' },
{
id: 'SelectorInclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{ id: 'Rule', type: 'Type' },
{ id: 'RuleSubject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleObject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleAction', type: 'Type', from: 'Rule', to: 'Selector' },
{
id: 'containValue',
type: 'Value',
from: 'Contain',
to: 'String'
},
{ id: 'User', type: 'Type' },
{ id: 'Operation', type: 'Type' },
{
id: 'operationValue',
type: 'Value',
from: 'Operation',
to: 'String'
},
{ id: 'AllowInsert', type: 'Operation' },
{ id: 'AllowUpdate', type: 'Operation' },
{ id: 'AllowDelete', type: 'Operation' },
{ id: 'AllowSelect', type: 'Operation' },
{ id: 'File', type: 'Type' },
{ id: 'SyncTextFile', type: 'File' },
{
id: 'syncTextFileValue',
type: 'Value',
from: 'SyncTextFile',
to: 'String'
},
{ id: 'ExecutionProvider', type: 'Type' },
{ id: 'JSExecutionProvider', type: 'ExecutionProvider' },
{ id: 'TreeInclude', type: 'Type', from: 'Type', to: 'Any' },
{ id: 'Handler', type: 'Type', from: 'Supports', to: 'Any' },
{ id: 'Tree', type: 'Type' },
{
id: 'TreeIncludeDown',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeUp',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeNode',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{ id: 'containTree', type: 'Tree' },
{
id: 'containTreeContain',
type: 'TreeIncludeDown',
from: 'containTree',
to: 'Contain'
},
{
id: 'containTreeAny',
type: 'TreeIncludeNode',
from: 'containTree',
to: 'Any'
},
{ id: 'PackageNamespace', type: 'Type' },
{
id: 'packageNamespaceValue',
type: 'Value',
from: 'PackageNamespace',
to: 'String'
},
{
id: 'PackageActive',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'PackageVersion',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'packageVersionValue',
type: 'Value',
from: 'PackageVersion',
to: 'String'
},
{ id: 'HandleOperation', type: 'Type', from: 'Type', to: 'Type' },
{
id: 'HandleInsert',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleUpdate',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleDelete',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'PromiseResult', type: 'Type' },
{
id: 'promiseResultValueRelationTable',
type: 'Value',
from: 'PromiseResult',
to: 'Object'
},
{ id: 'PromiseReason', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Focus', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'focusValue', type: 'Value', from: 'Focus', to: 'Object' },
{ id: 'AsyncFile', type: 'File' },
{
id: 'handlersTreeHandler',
type: 'TreeIncludeUp',
from: 'handlersTree',
to: 'Handler'
},
{ id: 'Query', type: 'Type' },
{ id: 'queryValue', type: 'Value', from: 'Query', to: 'Object' },
{ id: 'Active', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Fixed', type: 'Type' },
{ id: 'fixedValue', type: 'Value', from: 'Fixed', to: 'Object' },
{ id: 'Space', type: 'Type' },
{ id: 'spaceValue', type: 'Value', from: 'Space', to: 'String' },
{ id: 'AllowLogin', type: 'Operation' },
{ id: 'guests', type: 'Any' },
{ id: 'Join', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'joinTree', type: 'Tree' },
{
id: 'joinTreeJoin',
type: 'TreeIncludeUp',
from: 'joinTree',
to: 'Join'
},
{
id: 'joinTreeAny',
type: 'TreeIncludeNode',
from: 'joinTree',
to: 'Any'
},
{ id: 'SelectorTree', type: 'Type', from: 'Any', to: 'Tree' },
{ id: 'AllowAdmin', type: 'Operation' },
{
id: 'SelectorExclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{
id: 'SelectorFilter',
type: 'Type',
from: 'Selector',
to: 'Query'
},
{
id: 'HandleSchedule',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'Schedule', type: 'Type' },
{
id: 'scheduleValue',
type: 'Value',
from: 'Schedule',
to: 'String'
},
{ id: 'Router', type: 'Type', value: [Object] },
{ id: 'IsolationProvider', type: 'Type' },
{ id: 'DockerIsolationProvider', type: 'IsolationProvider' },
{
id: 'dockerIsolationProviderValue',
type: 'Value',
from: 'DockerIsolationProvider',
to: 'String'
},
{
id: 'JSDockerIsolationProvider',
type: 'DockerIsolationProvider',
value: [Object]
},
{ id: 'Supports', type: 'Type', from: 'Any', to: 'Any' },
{
id: 'dockerSupportsJs',
type: 'Supports',
from: 'JSDockerIsolationProvider',
to: 'JSExecutionProvider'
},
{
id: 'PackageInstall',
type: 'Type',
from: 'Any',
to: 'PackageQuery'
},
{
id: 'PackagePublish',
type: 'Type',
from: 'Package',
to: 'PackageQuery'
},
{ id: 'packageInstallCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packageInstallCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packageInstallCode'
},
{
id: 'packageInstallCodeHandleInsert',
type: 'HandleInsert',
from: 'PackageInstall',
to: 'packageInstallCodeHandler'
},
{ id: 'packagePublishCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packagePublishCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packagePublishCode'
},
{
id: 'packagePublishCodeHandleInsert',
type: 'HandleInsert',
from: 'PackagePublish',
to: 'packagePublishCodeHandler'
},
{ id: 'AllowPackageInstall', type: 'Operation' },
{ id: 'portValue', type: 'Value', from: 'Port', to: 'Number' },
{
id: 'HandlePort',
type: 'HandleOperation',
from: 'Port',
to: 'Any'
},
{ id: 'Route', type: 'Type' },
{ id: 'RouterListening', type: 'Type', from: 'Router', to: 'Port' },
{
id: 'RouterStringUse',
type: 'Type',
from: 'Route',
to: 'Router'
},
{
id: 'routerStringUseValue',
type: 'Value',
from: 'RouterStringUse',
to: 'String'
},
... 74 more items
],
errors: [],
strict: true,
dependencies: []
}
dependencies {}
dependencyPackageName @deep-foundation/core
packagePath /tmp/e9e4dc32-cd3f-43b9-8bff-58b91a49b3b2/node_modules/@trooper2003/units
packageJsonPath /tmp/e9e4dc32-cd3f-43b9-8bff-58b91a49b3b2/node_modules/@trooper2003/units/package.json
packageJson {
name: '@trooper2003/units',
dependencies: {
'@deep-foundation/core': '~0.0.2',
'@trooper2003/account-ui': '^0.0.5'
},
version: '0.0.3',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/e9e4dc32-cd3f-43b9-8bff-58b91a49b3b2/node_modules/@trooper2003/units/deep.json
deepJson {
package: { name: '@trooper2003/units', version: '0.0.3' },
data: [ { package: [Object], id: 1 }, { id: 'Unit', type: 1 } ],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies {
'@deep-foundation/core': '~0.0.2',
'@trooper2003/account-ui': '^0.0.5'
}
dependencyPackageName @trooper2003/units
packagePath /tmp/e9e4dc32-cd3f-43b9-8bff-58b91a49b3b2/node_modules/@trooper2003/account-ui
packageJsonPath /tmp/e9e4dc32-cd3f-43b9-8bff-58b91a49b3b2/node_modules/@trooper2003/account-ui/package.json
packageJson {
name: '@trooper2003/account-ui',
dependencies: {
'@deep-foundation/core': '^0.0.2',
'@deep-foundation/tsx': '^0.0.5'
},
version: '0.0.5',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/e9e4dc32-cd3f-43b9-8bff-58b91a49b3b2/node_modules/@trooper2003/account-ui/deep.json
deepJson {
package: { name: '@trooper2003/account-ui', version: '0.0.5' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ package: [Object], id: 7 },
{ id: 'accountClientHandler', type: 1, value: [Object] },
{ id: 'Account', type: 2 },
{ id: 'AccountCanContainNumbers', type: 3, from: 'Account', to: 4 },
{
id: 'accountHandler',
type: 5,
from: 6,
to: 'accountClientHandler'
},
{
id: 'accountHandleClient',
type: 7,
from: 'Account',
to: 'accountHandler'
}
],
errors: [],
dependencies: [
{ name: '@deep-foundation/tsx', version: '0.0.5' },
{ name: '@deep-foundation/core', version: '0.0.2' }
]
}
dependencies { '@deep-foundation/core': '^0.0.2', '@deep-foundation/tsx': '^0.0.5' }
dependencyPackageName @trooper2003/account-ui
deepPackagesDependencies {
'@deep-foundation/tsx': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@deep-foundation/tsx',
keywords: [Array],
version: '0.0.5',
dependencies: [Object]
},
dependencies: [ '@deep-foundation/core' ]
},
'@deep-foundation/core': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' },
dependencies: []
},
'@trooper2003/account-ui': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@trooper2003/account-ui',
dependencies: [Object],
version: '0.0.5',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core', '@deep-foundation/tsx' ]
}
}
installationQueue [
{
name: '@deep-foundation/core',
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' }
},
{
name: '@deep-foundation/tsx',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@deep-foundation/tsx',
keywords: [Array],
version: '0.0.5',
dependencies: [Object]
}
},
{
name: '@trooper2003/account-ui',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@trooper2003/account-ui',
dependencies: [Object],
version: '0.0.5',
keywords: [Array]
}
}
]
installationSet {
'@deep-foundation/core': true,
'@deep-foundation/tsx': true,
'@trooper2003/account-ui': true
}
npm --prefix "/tmp/489bef84-2aa6-40bd-b2d0-26eeb631de71" i @trooper2003/[email protected]
added 4 packages in 487ms
find . -name deep.json
./@deep-foundation/tsx/deep.json
./@deep-foundation/core/deep.json
./@trooper2003/units/deep.json
./@trooper2003/account-ui/deep.json
packages [
[ '@deep-foundation/tsx' ],
[ '@deep-foundation/core' ],
[ '@trooper2003/units' ],
[ '@trooper2003/account-ui' ]
]
packagePath /tmp/489bef84-2aa6-40bd-b2d0-26eeb631de71/node_modules/@deep-foundation/tsx
packageJsonPath /tmp/489bef84-2aa6-40bd-b2d0-26eeb631de71/node_modules/@deep-foundation/tsx/package.json
packageJson {
name: '@deep-foundation/tsx',
keywords: [ 'deep-package' ],
version: '0.0.5',
dependencies: { '@deep-foundation/core': '^0.0.2' }
}
deepJsonPath /tmp/489bef84-2aa6-40bd-b2d0-26eeb631de71/node_modules/@deep-foundation/tsx/deep.json
deepJson {
package: { name: '@deep-foundation/tsx', version: '0.0.5' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ package: [Object], id: 7 },
{ package: [Object], id: 8 },
{ id: 'TSX', type: 1, value: [Object] },
{ id: 'compiler', type: 2, value: [Object] },
{ id: 'handler', type: 3, from: 4, to: 'compiler' },
{ id: 'handleUpdate', type: 5, from: 'TSX', to: 'handler' },
{ id: 'tsxValue', type: 6, from: 'TSX', to: 7 },
{
id: 'tsxSymbol',
type: 8,
from: 'TSX',
to: 'TSX',
value: [Object]
}
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies { '@deep-foundation/core': '^0.0.2' }
dependencyPackageName @deep-foundation/tsx
packagePath /tmp/489bef84-2aa6-40bd-b2d0-26eeb631de71/node_modules/@deep-foundation/core
packageJsonPath /tmp/489bef84-2aa6-40bd-b2d0-26eeb631de71/node_modules/@deep-foundation/core/package.json
packageJson { name: '@deep-foundation/core', version: '0.0.2' }
deepJsonPath /tmp/489bef84-2aa6-40bd-b2d0-26eeb631de71/node_modules/@deep-foundation/core/deep.json
deepJson {
package: { name: '@deep-foundation/core', version: '0.0.2' },
data: [
{ id: 'Type', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Package', type: 'Type' },
{ id: 'Contain', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Value', type: 'Type', from: 'Any', to: 'Type' },
{ id: 'String', type: 'Type' },
{ id: 'Number', type: 'Type' },
{ id: 'Object', type: 'Type' },
{ id: 'Any', type: 'Type' },
{ id: 'Promise', type: 'Type' },
{ id: 'Then', type: 'Type', from: 'Any', to: 'Promise' },
{ id: 'Resolved', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'Rejected', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'typeValue', type: 'Value', from: 'Type', to: 'String' },
{
id: 'packageValue',
type: 'Value',
from: 'Package',
to: 'String'
},
{ id: 'Selector', type: 'Type' },
{
id: 'SelectorInclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{ id: 'Rule', type: 'Type' },
{ id: 'RuleSubject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleObject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleAction', type: 'Type', from: 'Rule', to: 'Selector' },
{
id: 'containValue',
type: 'Value',
from: 'Contain',
to: 'String'
},
{ id: 'User', type: 'Type' },
{ id: 'Operation', type: 'Type' },
{
id: 'operationValue',
type: 'Value',
from: 'Operation',
to: 'String'
},
{ id: 'AllowInsert', type: 'Operation' },
{ id: 'AllowUpdate', type: 'Operation' },
{ id: 'AllowDelete', type: 'Operation' },
{ id: 'AllowSelect', type: 'Operation' },
{ id: 'File', type: 'Type' },
{ id: 'SyncTextFile', type: 'File' },
{
id: 'syncTextFileValue',
type: 'Value',
from: 'SyncTextFile',
to: 'String'
},
{ id: 'ExecutionProvider', type: 'Type' },
{ id: 'JSExecutionProvider', type: 'ExecutionProvider' },
{ id: 'TreeInclude', type: 'Type', from: 'Type', to: 'Any' },
{ id: 'Handler', type: 'Type', from: 'Supports', to: 'Any' },
{ id: 'Tree', type: 'Type' },
{
id: 'TreeIncludeDown',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeUp',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeNode',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{ id: 'containTree', type: 'Tree' },
{
id: 'containTreeContain',
type: 'TreeIncludeDown',
from: 'containTree',
to: 'Contain'
},
{
id: 'containTreeAny',
type: 'TreeIncludeNode',
from: 'containTree',
to: 'Any'
},
{ id: 'PackageNamespace', type: 'Type' },
{
id: 'packageNamespaceValue',
type: 'Value',
from: 'PackageNamespace',
to: 'String'
},
{
id: 'PackageActive',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'PackageVersion',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'packageVersionValue',
type: 'Value',
from: 'PackageVersion',
to: 'String'
},
{ id: 'HandleOperation', type: 'Type', from: 'Type', to: 'Type' },
{
id: 'HandleInsert',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleUpdate',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleDelete',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'PromiseResult', type: 'Type' },
{
id: 'promiseResultValueRelationTable',
type: 'Value',
from: 'PromiseResult',
to: 'Object'
},
{ id: 'PromiseReason', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Focus', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'focusValue', type: 'Value', from: 'Focus', to: 'Object' },
{ id: 'AsyncFile', type: 'File' },
{
id: 'handlersTreeHandler',
type: 'TreeIncludeUp',
from: 'handlersTree',
to: 'Handler'
},
{ id: 'Query', type: 'Type' },
{ id: 'queryValue', type: 'Value', from: 'Query', to: 'Object' },
{ id: 'Active', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Fixed', type: 'Type' },
{ id: 'fixedValue', type: 'Value', from: 'Fixed', to: 'Object' },
{ id: 'Space', type: 'Type' },
{ id: 'spaceValue', type: 'Value', from: 'Space', to: 'String' },
{ id: 'AllowLogin', type: 'Operation' },
{ id: 'guests', type: 'Any' },
{ id: 'Join', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'joinTree', type: 'Tree' },
{
id: 'joinTreeJoin',
type: 'TreeIncludeUp',
from: 'joinTree',
to: 'Join'
},
{
id: 'joinTreeAny',
type: 'TreeIncludeNode',
from: 'joinTree',
to: 'Any'
},
{ id: 'SelectorTree', type: 'Type', from: 'Any', to: 'Tree' },
{ id: 'AllowAdmin', type: 'Operation' },
{
id: 'SelectorExclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{
id: 'SelectorFilter',
type: 'Type',
from: 'Selector',
to: 'Query'
},
{
id: 'HandleSchedule',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'Schedule', type: 'Type' },
{
id: 'scheduleValue',
type: 'Value',
from: 'Schedule',
to: 'String'
},
{ id: 'Router', type: 'Type', value: [Object] },
{ id: 'IsolationProvider', type: 'Type' },
{ id: 'DockerIsolationProvider', type: 'IsolationProvider' },
{
id: 'dockerIsolationProviderValue',
type: 'Value',
from: 'DockerIsolationProvider',
to: 'String'
},
{
id: 'JSDockerIsolationProvider',
type: 'DockerIsolationProvider',
value: [Object]
},
{ id: 'Supports', type: 'Type', from: 'Any', to: 'Any' },
{
id: 'dockerSupportsJs',
type: 'Supports',
from: 'JSDockerIsolationProvider',
to: 'JSExecutionProvider'
},
{
id: 'PackageInstall',
type: 'Type',
from: 'Any',
to: 'PackageQuery'
},
{
id: 'PackagePublish',
type: 'Type',
from: 'Package',
to: 'PackageQuery'
},
{ id: 'packageInstallCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packageInstallCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packageInstallCode'
},
{
id: 'packageInstallCodeHandleInsert',
type: 'HandleInsert',
from: 'PackageInstall',
to: 'packageInstallCodeHandler'
},
{ id: 'packagePublishCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packagePublishCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packagePublishCode'
},
{
id: 'packagePublishCodeHandleInsert',
type: 'HandleInsert',
from: 'PackagePublish',
to: 'packagePublishCodeHandler'
},
{ id: 'AllowPackageInstall', type: 'Operation' },
{ id: 'portValue', type: 'Value', from: 'Port', to: 'Number' },
{
id: 'HandlePort',
type: 'HandleOperation',
from: 'Port',
to: 'Any'
},
{ id: 'Route', type: 'Type' },
{ id: 'RouterListening', type: 'Type', from: 'Router', to: 'Port' },
{
id: 'RouterStringUse',
type: 'Type',
from: 'Route',
to: 'Router'
},
{
id: 'routerStringUseValue',
type: 'Value',
from: 'RouterStringUse',
to: 'String'
},
... 74 more items
],
errors: [],
strict: true,
dependencies: []
}
dependencies {}
dependencyPackageName @deep-foundation/core
packagePath /tmp/489bef84-2aa6-40bd-b2d0-26eeb631de71/node_modules/@trooper2003/units
packageJsonPath /tmp/489bef84-2aa6-40bd-b2d0-26eeb631de71/node_modules/@trooper2003/units/package.json
packageJson {
name: '@trooper2003/units',
dependencies: {
'@deep-foundation/core': '~0.0.2',
'@trooper2003/account-ui': '^0.0.5'
},
version: '0.0.3',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/489bef84-2aa6-40bd-b2d0-26eeb631de71/node_modules/@trooper2003/units/deep.json
deepJson {
package: { name: '@trooper2003/units', version: '0.0.3' },
data: [ { package: [Object], id: 1 }, { id: 'Unit', type: 1 } ],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies {
'@deep-foundation/core': '~0.0.2',
'@trooper2003/account-ui': '^0.0.5'
}
dependencyPackageName @trooper2003/units
packagePath /tmp/489bef84-2aa6-40bd-b2d0-26eeb631de71/node_modules/@trooper2003/account-ui
packageJsonPath /tmp/489bef84-2aa6-40bd-b2d0-26eeb631de71/node_modules/@trooper2003/account-ui/package.json
packageJson {
name: '@trooper2003/account-ui',
dependencies: {
'@deep-foundation/core': '^0.0.2',
'@deep-foundation/tsx': '^0.0.5'
},
version: '0.0.5',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/489bef84-2aa6-40bd-b2d0-26eeb631de71/node_modules/@trooper2003/account-ui/deep.json
deepJson {
package: { name: '@trooper2003/account-ui', version: '0.0.5' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ package: [Object], id: 7 },
{ id: 'accountClientHandler', type: 1, value: [Object] },
{ id: 'Account', type: 2 },
{ id: 'AccountCanContainNumbers', type: 3, from: 'Account', to: 4 },
{
id: 'accountHandler',
type: 5,
from: 6,
to: 'accountClientHandler'
},
{
id: 'accountHandleClient',
type: 7,
from: 'Account',
to: 'accountHandler'
}
],
errors: [],
dependencies: [
{ name: '@deep-foundation/tsx', version: '0.0.5' },
{ name: '@deep-foundation/core', version: '0.0.2' }
]
}
dependencies { '@deep-foundation/core': '^0.0.2', '@deep-foundation/tsx': '^0.0.5' }
dependencyPackageName @trooper2003/account-ui
deepPackagesDependencies {
'@deep-foundation/tsx': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@deep-foundation/tsx',
keywords: [Array],
version: '0.0.5',
dependencies: [Object]
},
dependencies: [ '@deep-foundation/core' ]
},
'@deep-foundation/core': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' },
dependencies: []
},
'@trooper2003/account-ui': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@trooper2003/account-ui',
dependencies: [Object],
version: '0.0.5',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core', '@deep-foundation/tsx' ]
}
}
installationQueue [
{
name: '@deep-foundation/core',
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' }
},
{
name: '@deep-foundation/tsx',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@deep-foundation/tsx',
keywords: [Array],
version: '0.0.5',
dependencies: [Object]
}
},
{
name: '@trooper2003/account-ui',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@trooper2003/account-ui',
dependencies: [Object],
version: '0.0.5',
keywords: [Array]
}
}
]
installationSet {
'@deep-foundation/core': true,
'@deep-foundation/tsx': true,
'@trooper2003/account-ui': true
}
packages [
{
id: 184,
name: { id: 6, value: '@deep-foundation/core', link_id: 184 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 719,
name: { id: 317, value: '@deep-foundation/tsx', link_id: 719 },
versions: [ [Object] ],
__typename: 'links'
}
]
existingPackages {
'@deep-foundation/core': { id: 184, version: '0.0.2' },
'@deep-foundation/tsx': { id: 719, version: '0.0.5' }
}
existingPackages {
'@deep-foundation/core': { id: 184, version: '0.0.2' },
'@deep-foundation/tsx': { id: 719, version: '0.0.5' }
}
packages [
{
id: 184,
name: { id: 6, value: '@deep-foundation/core', link_id: 184 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 719,
name: { id: 317, value: '@deep-foundation/tsx', link_id: 719 },
versions: [ [Object] ],
__typename: 'links'
}
]
existingPackages {
'@deep-foundation/core': { id: 184, version: '0.0.2' },
'@deep-foundation/tsx': { id: 719, version: '0.0.5' }
}
existingPackages {
'@deep-foundation/core': { id: 184, version: '0.0.2' },
'@deep-foundation/tsx': { id: 719, version: '0.0.5' }
}
IGNORED ERROR: Call to DeepClient.resolveDependency is failed with Error [ERR_REQUIRE_ESM]: require() of ES Module /node_modules/@deep-foundation/deeplinks/imports/packager.js from /index.js not supported.
Instead change the require of packager.js in /index.js to a dynamic import() which is available in all CommonJS modules.
at DeepClient.requireWrapper [as resolveDependency] (file:///index.js:27:12)
at DeepClient.<anonymous> (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:721:45)
at Generator.next (<anonymous>)
at file:///node_modules/@deep-foundation/deeplinks/imports/client.js:7:71
at new Promise (<anonymous>)
at __awaiter (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:3:12)
at DeepClient.import (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:718:16)
at deepImport (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:64:44)
at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:247:40) {
code: 'ERR_REQUIRE_ESM'
}
IGNORED ERROR: Call to DeepClient.resolveDependency is failed with Error [ERR_REQUIRE_ESM]: require() of ES Module /node_modules/@deep-foundation/deeplinks/imports/packager.js from /index.js not supported.
Instead change the require of packager.js in /index.js to a dynamic import() which is available in all CommonJS modules.
at DeepClient.requireWrapper [as resolveDependency] (file:///index.js:27:12)
at DeepClient.<anonymous> (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:721:45)
at Generator.next (<anonymous>)
at file:///node_modules/@deep-foundation/deeplinks/imports/client.js:7:71
at new Promise (<anonymous>)
at __awaiter (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:3:12)
at DeepClient.import (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:718:16)
at deepImport (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:64:44)
at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:247:40) {
code: 'ERR_REQUIRE_ESM'
}
call body params {
code: '\n' +
'async ({ deep, require, gql, data: { newLink } }) => {\n' +
" const ts = require('typescript');\n" +
' const { data: [generatedFrom] } = await deep.select({\n' +
" type_id: await deep.id('@deep-foundation/core', 'GeneratedFrom'),\n" +
' to_id: newLink.id, \n' +
' });\n' +
' const value = newLink?.value?.value;\n' +
" let compiledString = '';\n" +
' if (value) {\n' +
' const result = ts.transpileModule(value, {\n' +
' "compilerOptions": {\n' +
' "allowSyntheticDefaultImports": true,\n' +
' "experimentalDecorators": true,\n' +
' "inlineSourceMap": true,\n' +
' inlineSources: true,\n' +
' "noImplicitAny": false,\n' +
' "removeComments": true,\n' +
' "jsx": "react",\n' +
' "module": "ESNext",\n' +
' "moduleResolution": "node",\n' +
' "target": "ESNext",\n' +
' "skipLibCheck": true,\n' +
' "resolveJsonModule": true,\n' +
' "esModuleInterop": true,\n' +
' "isolatedModules": true\n' +
' }\n' +
' });\n' +
' if (!result.outputText) {\n' +
' throw result;\n' +
' }\n' +
" compiledString = result.outputText || '';\n" +
' }\n' +
' if (!generatedFrom) {\n' +
' await deep.insert({\n' +
" type_id: await deep.id('@deep-foundation/core', 'GeneratedFrom'),\n" +
' to_id: newLink.id,\n' +
' in: { data: {\n' +
" type_id: await deep.id('@deep-foundation/core', 'Contain'),\n" +
' from_id: newLink.id,\n' +
' } },\n' +
' from: { data: {\n' +
" type_id: await deep.id('@deep-foundation/core', 'SyncTextFile'),\n" +
' string: { data: { value: compiledString } },\n' +
' in: { data: {\n' +
" type_id: await deep.id('@deep-foundation/core', 'Contain'),\n" +
' from_id: newLink.id,\n' +
" string: { data: { value: 'generated' } },\n" +
' } },\n' +
' } },\n' +
' });\n' +
' } else {\n' +
' await deep.update({\n' +
' link_id: { _eq: generatedFrom.from_id },\n' +
' }, {\n' +
' value: compiledString,\n' +
" }, { table: 'strings' });\n" +
' }\n' +
'}\n',
container: {
name: 'deep-138d60d2a0fd040bfe13e80d143de80d',
host: 'deep-138d60d2a0fd040bfe13e80d143de80d',
port: 40317,
options: {
publish: false,
forceRestart: true,
handler: 'deepf/js-docker-isolation-provider:main'
}
},
jwt: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwczovL2hhc3VyYS5pby9qd3QvY2xhaW1zIjp7IngtaGFzdXJhLWFsbG93ZWQtcm9sZXMiOlsiYWRtaW4iXSwieC1oYXN1cmEtZGVmYXVsdC1yb2xlIjoiYWRtaW4iLCJ4LWhhc3VyYS11c2VyLWlkIjoiNzE5In0sImlhdCI6MTcwMDE3OTUzM30.sLgQDE3RqkN6HcUdAF_UQpr_LMV66LjXhj6MFHwUlpU',
secret: '4459a8e24fec162fd9ff71b57abec189396cad50cf867871',
data: {
triggeredByLinkId: 754,
oldLink: {
id: 1480,
from_id: 0,
type_id: 715,
to_id: 0,
__typename: 'links',
value: null
},
newLink: {
id: 1480,
from_id: 0,
type_id: 715,
to_id: 0,
__typename: 'links',
value: [Object]
},
promiseId: 1502
}
}
call body params {
code: '\n' +
'async ({ deep, require, gql, data: { newLink } }) => {\n' +
" const ts = require('typescript');\n" +
' const { data: [generatedFrom] } = await deep.select({\n' +
" type_id: await deep.id('@deep-foundation/core', 'GeneratedFrom'),\n" +
' to_id: newLink.id, \n' +
' });\n' +
' const value = newLink?.value?.value;\n' +
" let compiledString = '';\n" +
' if (value) {\n' +
' const result = ts.transpileModule(value, {\n' +
' "compilerOptions": {\n' +
' "allowSyntheticDefaultImports": true,\n' +
' "experimentalDecorators": true,\n' +
' "inlineSourceMap": true,\n' +
' inlineSources: true,\n' +
' "noImplicitAny": false,\n' +
' "removeComments": true,\n' +
' "jsx": "react",\n' +
' "module": "ESNext",\n' +
' "moduleResolution": "node",\n' +
' "target": "ESNext",\n' +
' "skipLibCheck": true,\n' +
' "resolveJsonModule": true,\n' +
' "esModuleInterop": true,\n' +
' "isolatedModules": true\n' +
' }\n' +
' });\n' +
' if (!result.outputText) {\n' +
' throw result;\n' +
' }\n' +
" compiledString = result.outputText || '';\n" +
' }\n' +
' if (!generatedFrom) {\n' +
' await deep.insert({\n' +
" type_id: await deep.id('@deep-foundation/core', 'GeneratedFrom'),\n" +
' to_id: newLink.id,\n' +
' in: { data: {\n' +
" type_id: await deep.id('@deep-foundation/core', 'Contain'),\n" +
' from_id: newLink.id,\n' +
' } },\n' +
' from: { data: {\n' +
" type_id: await deep.id('@deep-foundation/core', 'SyncTextFile'),\n" +
' string: { data: { value: compiledString } },\n' +
' in: { data: {\n' +
" type_id: await deep.id('@deep-foundation/core', 'Contain'),\n" +
' from_id: newLink.id,\n' +
" string: { data: { value: 'generated' } },\n" +
' } },\n' +
' } },\n' +
' });\n' +
' } else {\n' +
' await deep.update({\n' +
' link_id: { _eq: generatedFrom.from_id },\n' +
' }, {\n' +
' value: compiledString,\n' +
" }, { table: 'strings' });\n" +
' }\n' +
'}\n',
container: {
name: 'deep-138d60d2a0fd040bfe13e80d143de80d',
host: 'deep-138d60d2a0fd040bfe13e80d143de80d',
port: 40317,
options: {
publish: false,
forceRestart: true,
handler: 'deepf/js-docker-isolation-provider:main'
}
},
jwt: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwczovL2hhc3VyYS5pby9qd3QvY2xhaW1zIjp7IngtaGFzdXJhLWFsbG93ZWQtcm9sZXMiOlsiYWRtaW4iXSwieC1oYXN1cmEtZGVmYXVsdC1yb2xlIjoiYWRtaW4iLCJ4LWhhc3VyYS11c2VyLWlkIjoiNzE5In0sImlhdCI6MTcwMDE3OTUzM30.sLgQDE3RqkN6HcUdAF_UQpr_LMV66LjXhj6MFHwUlpU',
secret: '4459a8e24fec162fd9ff71b57abec189396cad50cf867871',
data: {
triggeredByLinkId: 754,
oldLink: {
id: 1453,
from_id: 0,
type_id: 715,
to_id: 0,
__typename: 'links',
value: null
},
newLink: {
id: 1453,
from_id: 0,
type_id: 715,
to_id: 0,
__typename: 'links',
value: [Object]
},
promiseId: 1504
}
}
call result undefined
call result undefined
{
ids: [
1462, 1471, 1473, 1475, 1478,
1480, 1481, 1482, 1483, 1484,
1485, 1486, 1487, 1488, 1489,
1490, 1491, 1492, 1493, 1494,
1495, 1496, 1497, 1498, 1499,
1500, 1501
],
errors: [],
namespaceId: 1462,
packageId: 1483
}
IGNORED ERROR: Call to DeepClient.resolveDependency is failed with Error [ERR_REQUIRE_ESM]: require() of ES Module /node_modules/@deep-foundation/deeplinks/imports/packager.js from /index.js not supported.
Instead change the require of packager.js in /index.js to a dynamic import() which is available in all CommonJS modules.
at DeepClient.requireWrapper [as resolveDependency] (file:///index.js:27:12)
at DeepClient.<anonymous> (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:721:45)
at Generator.next (<anonymous>)
at file:///node_modules/@deep-foundation/deeplinks/imports/client.js:7:71
at new Promise (<anonymous>)
at __awaiter (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:3:12)
at DeepClient.import (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:718:16)
at deepImport (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:64:44)
at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:266:26) {
code: 'ERR_REQUIRE_ESM'
}
{
ids: [
1448, 1449, 1450, 1451, 1452,
1453, 1454, 1455, 1456, 1457,
1458, 1459, 1460, 1461, 1463,
1464, 1465, 1466, 1467, 1468,
1469, 1470, 1472, 1474, 1476,
1477, 1479
],
errors: [],
namespaceId: 1448,
packageId: 1456
}
IGNORED ERROR: Call to DeepClient.resolveDependency is failed with Error [ERR_REQUIRE_ESM]: require() of ES Module /node_modules/@deep-foundation/deeplinks/imports/packager.js from /index.js not supported.
Instead change the require of packager.js in /index.js to a dynamic import() which is available in all CommonJS modules.
at DeepClient.requireWrapper [as resolveDependency] (file:///index.js:27:12)
at DeepClient.<anonymous> (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:721:45)
at Generator.next (<anonymous>)
at file:///node_modules/@deep-foundation/deeplinks/imports/client.js:7:71
at new Promise (<anonymous>)
at __awaiter (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:3:12)
at DeepClient.import (file:///node_modules/@deep-foundation/deeplinks/imports/client.js:718:16)
at deepImport (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:64:44)
at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:266:26) {
code: 'ERR_REQUIRE_ESM'
}
{
ids: [
1527, 1528, 1529,
1530, 1531, 1532,
1533, 1534, 1535,
1536, 1537, 1538,
1539
],
errors: [],
namespaceId: 1527,
packageId: 1531
}
call result {
ids: [
1527, 1528, 1529,
1530, 1531, 1532,
1533, 1534, 1535,
1536, 1537, 1538,
1539
],
errors: [],
namespaceId: 1527,
packageId: 1531
}
{
ids: [
1541, 1542, 1543,
1544, 1545, 1546,
1547, 1548, 1549,
1550, 1551, 1552,
1553
],
errors: [],
namespaceId: 1541,
packageId: 1545
}
call result {
ids: [
1541, 1542, 1543,
1544, 1545, 1546,
1547, 1548, 1549,
1550, 1551, 1552,
1553
],
errors: [],
namespaceId: 1541,
packageId: 1545
}
call body params {
code: 'async ({ deep, gql, data: { triggeredByLinkId, newLink } }) => {\n' +
" const deepFileName = 'deep.json';\n" +
" const fs = await deep.import('fs');\n" +
'\n' +
' const makeTempDirectory = async () => {\n' +
" const os = await deep.import('os');\n" +
" const { v4: uuid } = await deep.import('uuid');\n" +
' \n' +
' const baseTempDirectory = os.tmpdir();\n' +
' const randomId = uuid();\n' +
" const tempDirectory = [baseTempDirectory,randomId].join('/');\n" +
' fs.mkdirSync(tempDirectory);\n' +
' console.log(tempDirectory);\n' +
' return tempDirectory;\n' +
' };\n' +
' const npmInstall = async (packageName, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
' const command = `npm --prefix "${tempDirectory}" i ${packageName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
' const npmLogin = async (token, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
' \n' +
' const command = `npm set "//registry.npmjs.org/:_authToken" ${token}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
" const makePackagePath = (tempDirectory, packageName) => [tempDirectory, 'node_modules', packageName].join('/');\n" +
" const makeDeepJsonPath = (packagePath) => [packagePath, deepFileName].join('/');\n" +
" const makePackageJsonPath = (packagePath) => [packagePath, 'package.json'].join('/');\n" +
' const loadNpmToken = async () => {\n' +
" const containTreeId = await deep.id('@deep-foundation/core', 'containTree');\n" +
" const tokenTypeId = await deep.id('@deep-foundation/npm-packager', 'Token');\n" +
' const { data: [{ value: { value: npmToken = undefined } = {}} = {}] = []} = await deep.select({\n' +
' up: {\n' +
' tree_id: { _eq: containTreeId },\n' +
' parent: { id: { _eq: triggeredByLinkId } },\n' +
' link: { type_id: { _eq: tokenTypeId } }\n' +
' }\n' +
' });\n' +
' return npmToken;\n' +
' };\n' +
' const deepImport = async (deepJson, packageJson) => {\n' +
' if (deepJson.package.name !== packageJson.name) {\n' +
' throw new Error(`Package name is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package name: ${deepJson.package.name}.\n' +
' package.json package name: ${packageJson.name}.`);\n' +
' }\n' +
' if (deepJson.package.version !== packageJson.version) {\n' +
' throw new Error(`Package version is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package version: ${deepJson.package.version}.\n' +
' package.json package version: ${packageJson.version}.`);\n' +
' }\n' +
" const packager = new (await deep.import('@deep-foundation/deeplinks/imports/packager.js')).Packager(deep);\n" +
' const imported = await packager.import(deepJson);\n' +
' console.log(imported);\n' +
' if (imported?.errors?.length) throw imported;\n' +
' return imported;\n' +
' };\n' +
' const getDeepPackagesList = async (rootPath) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
" const deepFileName = 'deep.json';\n" +
' const deepFileNameLength = deepFileName.length;\n' +
'\n' +
' const command = `find . -name ${deepFileName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: rootPath\n' +
' });\n' +
" console.log('', `${command}\\n`, output);\n" +
'\n' +
' const packages = output\n' +
' .split(/\\r?\\n/)\n' +
' .filter(line => line.trim())\n' +
' .map(line => line.slice(2).slice(0, -deepFileNameLength - 1))\n' +
" .map(line => line.split('/node_modules/'));\n" +
' return packages;\n' +
' };\n' +
' const getDeepPackagesDependencies = async (rootPath, packages, packageName) => {\n' +
' const dictionary = {};\n' +
' for (const pkg of packages) {\n' +
" const packagePath = [rootPath, pkg.join('/node_modules/')].join('/');\n" +
" console.log('packagePath', packagePath);\n" +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
" console.log('packageJsonPath', packageJsonPath);\n" +
' if (!fs.existsSync(packageJsonPath)) {\n' +
' throw new Error(`package.json for dependency ${pkg} is not found at ${packageJsonPath}. Looks like ${packageName} does not contain ${pkg} dependency in package.json.`);\n' +
' }\n' +
' const packageJson = await deep.import(packageJsonPath);\n' +
" console.log('packageJson', packageJson);\n" +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
" console.log('deepJsonPath', deepJsonPath);\n" +
' if (!fs.existsSync(deepJsonPath)) {\n' +
' throw new Error(`deep.json for dependency ${pkg} is not found at ${deepJsonPath}. Looks like ${pkg} installed, but it does not contain deep.json. Make sure ${pkg} is a deep package.`);\n' +
' }\n' +
' const deepJson = await deep.import(deepJsonPath);\n' +
" console.log('deepJson', deepJson);\n" +
' const dependencies = packageJson.dependencies ?? {};\n' +
" console.log('dependencies', dependencies);\n" +
' const dependencyPackageName = pkg.at(-1);\n' +
" console.log('dependencyPackageName', dependencyPackageName);\n" +
' if (Array.isArray(dictionary[dependencyPackageName])) {\n' +
" throw new Error('Multiple versions of the same package are not supported yet.');\n" +
' }\n' +
' dictionary[dependencyPackageName] = { deepJson, packageJson, dependencies };\n' +
' }\n' +
' for (const pkg in dictionary) {\n' +
' const sourceDependencies = dictionary[pkg].dependencies;\n' +
' const targetDependencies = [];\n' +
' for (const dependency in sourceDependencies)\n' +
' {\n' +
' if (dictionary[dependency]) {\n' +
' targetDependencies.push(dependency);\n' +
' }\n' +
' }\n' +
' dictionary[pkg].dependencies = targetDependencies;\n' +
' }\n' +
' return dictionary;\n' +
' }\n' +
' const buildInstallationQueueCore = (deepPackagesDependencies, queue, set, packageName) => {\n' +
' const dependencies = deepPackagesDependencies[packageName].dependencies;\n' +
' for (const dependency of dependencies) {\n' +
' if (!set[dependency]) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, dependency);\n' +
' }\n' +
' }\n' +
' if(!set[packageName]) {\n' +
' const deepJson = deepPackagesDependencies[packageName].deepJson;\n' +
' const packageJson = deepPackagesDependencies[packageName].packageJson;\n' +
' queue.push({ name: packageName, deepJson, packageJson });\n' +
' set[packageName] = true;\n' +
' }\n' +
' }\n' +
' const buildInstallationQueue = (deepPackagesDependencies, queue, set) => {\n' +
' for (const packageName in deepPackagesDependencies) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, packageName);\n' +
' }\n' +
' }\n' +
' const getExistingPackages = async (packageNames) => {\n' +
" const packageTypeId = await deep.id('@deep-foundation/core', 'Package');\n" +
" const packageVersionTypeId = await deep.id('@deep-foundation/core', 'PackageVersion');\n" +
' const { data: packages } = await deep.select({\n' +
' type_id: { _eq: packageTypeId },\n' +
' string: { value: { _in: packageNames } }\n' +
' }, {\n' +
" name: 'GET_EXISTING_PACKAGES_WITH_VERSIONS',\n" +
' returning: `\n' +
' id\n' +
' name: value\n' +
' versions: in(where: {type_id: {_eq: ${packageVersionTypeId}}, string: {value: {_is_null: false}}}) {\n' +
' id\n' +
' version: value\n' +
' }\n' +
' `\n' +
' })\n' +
" console.log('packages', packages);\n" +
' const existingPackages = packages.reduce(\n' +
' (accumulator, currentValue) => {\n' +
' const packageId = currentValue?.id;\n' +
' const packageName = currentValue?.name?.value;\n' +
' if (currentValue?.versions.length !== 1) {\n' +
" throw new Error(`'${packageName}' package must have exactly one version. Now it has ${currentValue?.versions.length} versions.`);\n" +
' }\n' +
' if (accumulator[packageName]) {\n' +
" throw new Error(`Multiple packages with name '${packageName}' exist.`)\n" +
' }\n' +
' const packageVersion = currentValue?.versions?.[0]?.version?.value;\n' +
' accumulator[packageName] = { id: packageId, version: packageVersion };\n' +
' return accumulator;\n' +
' },\n' +
' {}\n' +
' );\n' +
" console.log('existingPackages', existingPackages);\n" +
' return existingPackages;\n' +
' };\n' +
'\n' +
' if (!triggeredByLinkId) {\n' +
" throw new Error('Install link should be inserted using JWT token (role link), it cannot be inserted using hasura secret (role admin).');\n" +
' }\n' +
'\n' +
' const { data: [{ value: { value: packageQuery } }] } = await deep.select({ id: newLink.to_id });\n' +
" const packageQueryParts = packageQuery.split('@');\n" +
' if (packageQueryParts.length === 3) {\n' +
' const packageVersion = packageQueryParts.pop();\n' +
' }\n' +
" const packageName = packageQueryParts.join('@');\n" +
' if (!packageName) {\n' +
" throw new Error('Package query value is empty.');\n" +
' }\n' +
' const tempDirectory = await makeTempDirectory();\n' +
' let deepJson;\n' +
' let packageJson;\n' +
' const installationQueue = [];\n' +
' const installationSet = {};\n' +
' try {\n' +
' const npmToken = await loadNpmToken();\n' +
' if (npmToken) {\n' +
' await npmLogin(npmToken, tempDirectory);\n' +
' }\n' +
" const nodeModulesPath = [tempDirectory, 'node_modules'].join('/');\n" +
' await npmInstall(packageQuery, tempDirectory);\n' +
' const packagePath = makePackagePath(tempDirectory, packageName);\n' +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
' deepJson = await deep.import(deepJsonPath);\n' +
' packageJson = await deep.import(packageJsonPath);\n' +
'\n' +
' const packages = await getDeepPackagesList(nodeModulesPath);\n' +
" console.log('packages', packages);\n" +
' \n' +
' const deepPackagesDependencies = await getDeepPackagesDependencies(nodeModulesPath, packages, packageName);\n' +
' delete deepPackagesDependencies[packageName];\n' +
" console.log('deepPackagesDependencies', deepPackagesDependencies);\n" +
' \n' +
' buildInstallationQueue(deepPackagesDependencies, installationQueue, installationSet);\n' +
' \n' +
" console.log('installationQueue', installationQueue);\n" +
" console.log('installationSet', installationSet);\n" +
' } finally {\n' +
' fs.rmSync(tempDirectory, { recursive: true, force: true });\n' +
' }\n' +
' \n' +
' const existingPackages = await getExistingPackages(installationQueue.map(e => e.name));\n' +
" console.log('existingPackages', existingPackages);\n" +
'\n' +
' for (const dependencyPackage of instal'... 1567 more characters,
container: {
name: 'deep-138d60d2a0fd040bfe13e80d143de80d',
host: 'deep-138d60d2a0fd040bfe13e80d143de80d',
port: 40317,
options: {
publish: false,
forceRestart: true,
handler: 'deepf/js-docker-isolation-provider:main'
}
},
jwt: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwczovL2hhc3VyYS5pby9qd3QvY2xhaW1zIjp7IngtaGFzdXJhLWFsbG93ZWQtcm9sZXMiOlsiYWRtaW4iXSwieC1oYXN1cmEtZGVmYXVsdC1yb2xlIjoiYWRtaW4iLCJ4LWhhc3VyYS11c2VyLWlkIjoiNzU0In0sImlhdCI6MTcwMDE4MDk3N30.nIb7xkf-eTCWDUjXslbgCnLWqfG0nUkI4zkJxgocBxY',
secret: '4459a8e24fec162fd9ff71b57abec189396cad50cf867871',
data: {
triggeredByLinkId: 380,
oldLink: null,
newLink: { from_id: 380, type_id: 750, id: 1567, to_id: 1564, value: null },
promiseId: 1568
}
}
call body params {
code: 'async ({ deep, gql, data: { triggeredByLinkId, newLink } }) => {\n' +
" const deepFileName = 'deep.json';\n" +
" const fs = await deep.import('fs');\n" +
'\n' +
' const makeTempDirectory = async () => {\n' +
" const os = await deep.import('os');\n" +
" const { v4: uuid } = await deep.import('uuid');\n" +
' \n' +
' const baseTempDirectory = os.tmpdir();\n' +
' const randomId = uuid();\n' +
" const tempDirectory = [baseTempDirectory,randomId].join('/');\n" +
' fs.mkdirSync(tempDirectory);\n' +
' console.log(tempDirectory);\n' +
' return tempDirectory;\n' +
' };\n' +
' const npmInstall = async (packageName, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
' const command = `npm --prefix "${tempDirectory}" i ${packageName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
' const npmLogin = async (token, tempDirectory) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
' \n' +
' const command = `npm set "//registry.npmjs.org/:_authToken" ${token}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: tempDirectory\n' +
' });\n' +
' console.log(`${command}\\n`, output);\n' +
' return output;\n' +
' };\n' +
" const makePackagePath = (tempDirectory, packageName) => [tempDirectory, 'node_modules', packageName].join('/');\n" +
" const makeDeepJsonPath = (packagePath) => [packagePath, deepFileName].join('/');\n" +
" const makePackageJsonPath = (packagePath) => [packagePath, 'package.json'].join('/');\n" +
' const loadNpmToken = async () => {\n' +
" const containTreeId = await deep.id('@deep-foundation/core', 'containTree');\n" +
" const tokenTypeId = await deep.id('@deep-foundation/npm-packager', 'Token');\n" +
' const { data: [{ value: { value: npmToken = undefined } = {}} = {}] = []} = await deep.select({\n' +
' up: {\n' +
' tree_id: { _eq: containTreeId },\n' +
' parent: { id: { _eq: triggeredByLinkId } },\n' +
' link: { type_id: { _eq: tokenTypeId } }\n' +
' }\n' +
' });\n' +
' return npmToken;\n' +
' };\n' +
' const deepImport = async (deepJson, packageJson) => {\n' +
' if (deepJson.package.name !== packageJson.name) {\n' +
' throw new Error(`Package name is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package name: ${deepJson.package.name}.\n' +
' package.json package name: ${packageJson.name}.`);\n' +
' }\n' +
' if (deepJson.package.version !== packageJson.version) {\n' +
' throw new Error(`Package version is not synchronized between ${deepFileName} and package.json files.\n' +
' ${deepFileName} package version: ${deepJson.package.version}.\n' +
' package.json package version: ${packageJson.version}.`);\n' +
' }\n' +
" const packager = new (await deep.import('@deep-foundation/deeplinks/imports/packager.js')).Packager(deep);\n" +
' const imported = await packager.import(deepJson);\n' +
' console.log(imported);\n' +
' if (imported?.errors?.length) throw imported;\n' +
' return imported;\n' +
' };\n' +
' const getDeepPackagesList = async (rootPath) => {\n' +
" const execSync = (await deep.import('child_process')).execSync;\n" +
'\n' +
" const deepFileName = 'deep.json';\n" +
' const deepFileNameLength = deepFileName.length;\n' +
'\n' +
' const command = `find . -name ${deepFileName}`;\n' +
' const output = execSync(command, { \n' +
" encoding: 'utf-8',\n" +
' cwd: rootPath\n' +
' });\n' +
" console.log('', `${command}\\n`, output);\n" +
'\n' +
' const packages = output\n' +
' .split(/\\r?\\n/)\n' +
' .filter(line => line.trim())\n' +
' .map(line => line.slice(2).slice(0, -deepFileNameLength - 1))\n' +
" .map(line => line.split('/node_modules/'));\n" +
' return packages;\n' +
' };\n' +
' const getDeepPackagesDependencies = async (rootPath, packages, packageName) => {\n' +
' const dictionary = {};\n' +
' for (const pkg of packages) {\n' +
" const packagePath = [rootPath, pkg.join('/node_modules/')].join('/');\n" +
" console.log('packagePath', packagePath);\n" +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
" console.log('packageJsonPath', packageJsonPath);\n" +
' if (!fs.existsSync(packageJsonPath)) {\n' +
' throw new Error(`package.json for dependency ${pkg} is not found at ${packageJsonPath}. Looks like ${packageName} does not contain ${pkg} dependency in package.json.`);\n' +
' }\n' +
' const packageJson = await deep.import(packageJsonPath);\n' +
" console.log('packageJson', packageJson);\n" +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
" console.log('deepJsonPath', deepJsonPath);\n" +
' if (!fs.existsSync(deepJsonPath)) {\n' +
' throw new Error(`deep.json for dependency ${pkg} is not found at ${deepJsonPath}. Looks like ${pkg} installed, but it does not contain deep.json. Make sure ${pkg} is a deep package.`);\n' +
' }\n' +
' const deepJson = await deep.import(deepJsonPath);\n' +
" console.log('deepJson', deepJson);\n" +
' const dependencies = packageJson.dependencies ?? {};\n' +
" console.log('dependencies', dependencies);\n" +
' const dependencyPackageName = pkg.at(-1);\n' +
" console.log('dependencyPackageName', dependencyPackageName);\n" +
' if (Array.isArray(dictionary[dependencyPackageName])) {\n' +
" throw new Error('Multiple versions of the same package are not supported yet.');\n" +
' }\n' +
' dictionary[dependencyPackageName] = { deepJson, packageJson, dependencies };\n' +
' }\n' +
' for (const pkg in dictionary) {\n' +
' const sourceDependencies = dictionary[pkg].dependencies;\n' +
' const targetDependencies = [];\n' +
' for (const dependency in sourceDependencies)\n' +
' {\n' +
' if (dictionary[dependency]) {\n' +
' targetDependencies.push(dependency);\n' +
' }\n' +
' }\n' +
' dictionary[pkg].dependencies = targetDependencies;\n' +
' }\n' +
' return dictionary;\n' +
' }\n' +
' const buildInstallationQueueCore = (deepPackagesDependencies, queue, set, packageName) => {\n' +
' const dependencies = deepPackagesDependencies[packageName].dependencies;\n' +
' for (const dependency of dependencies) {\n' +
' if (!set[dependency]) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, dependency);\n' +
' }\n' +
' }\n' +
' if(!set[packageName]) {\n' +
' const deepJson = deepPackagesDependencies[packageName].deepJson;\n' +
' const packageJson = deepPackagesDependencies[packageName].packageJson;\n' +
' queue.push({ name: packageName, deepJson, packageJson });\n' +
' set[packageName] = true;\n' +
' }\n' +
' }\n' +
' const buildInstallationQueue = (deepPackagesDependencies, queue, set) => {\n' +
' for (const packageName in deepPackagesDependencies) {\n' +
' buildInstallationQueueCore(deepPackagesDependencies, queue, set, packageName);\n' +
' }\n' +
' }\n' +
' const getExistingPackages = async (packageNames) => {\n' +
" const packageTypeId = await deep.id('@deep-foundation/core', 'Package');\n" +
" const packageVersionTypeId = await deep.id('@deep-foundation/core', 'PackageVersion');\n" +
' const { data: packages } = await deep.select({\n' +
' type_id: { _eq: packageTypeId },\n' +
' string: { value: { _in: packageNames } }\n' +
' }, {\n' +
" name: 'GET_EXISTING_PACKAGES_WITH_VERSIONS',\n" +
' returning: `\n' +
' id\n' +
' name: value\n' +
' versions: in(where: {type_id: {_eq: ${packageVersionTypeId}}, string: {value: {_is_null: false}}}) {\n' +
' id\n' +
' version: value\n' +
' }\n' +
' `\n' +
' })\n' +
" console.log('packages', packages);\n" +
' const existingPackages = packages.reduce(\n' +
' (accumulator, currentValue) => {\n' +
' const packageId = currentValue?.id;\n' +
' const packageName = currentValue?.name?.value;\n' +
' if (currentValue?.versions.length !== 1) {\n' +
" throw new Error(`'${packageName}' package must have exactly one version. Now it has ${currentValue?.versions.length} versions.`);\n" +
' }\n' +
' if (accumulator[packageName]) {\n' +
" throw new Error(`Multiple packages with name '${packageName}' exist.`)\n" +
' }\n' +
' const packageVersion = currentValue?.versions?.[0]?.version?.value;\n' +
' accumulator[packageName] = { id: packageId, version: packageVersion };\n' +
' return accumulator;\n' +
' },\n' +
' {}\n' +
' );\n' +
" console.log('existingPackages', existingPackages);\n" +
' return existingPackages;\n' +
' };\n' +
'\n' +
' if (!triggeredByLinkId) {\n' +
" throw new Error('Install link should be inserted using JWT token (role link), it cannot be inserted using hasura secret (role admin).');\n" +
' }\n' +
'\n' +
' const { data: [{ value: { value: packageQuery } }] } = await deep.select({ id: newLink.to_id });\n' +
" const packageQueryParts = packageQuery.split('@');\n" +
' if (packageQueryParts.length === 3) {\n' +
' const packageVersion = packageQueryParts.pop();\n' +
' }\n' +
" const packageName = packageQueryParts.join('@');\n" +
' if (!packageName) {\n' +
" throw new Error('Package query value is empty.');\n" +
' }\n' +
' const tempDirectory = await makeTempDirectory();\n' +
' let deepJson;\n' +
' let packageJson;\n' +
' const installationQueue = [];\n' +
' const installationSet = {};\n' +
' try {\n' +
' const npmToken = await loadNpmToken();\n' +
' if (npmToken) {\n' +
' await npmLogin(npmToken, tempDirectory);\n' +
' }\n' +
" const nodeModulesPath = [tempDirectory, 'node_modules'].join('/');\n" +
' await npmInstall(packageQuery, tempDirectory);\n' +
' const packagePath = makePackagePath(tempDirectory, packageName);\n' +
' const deepJsonPath = makeDeepJsonPath(packagePath);\n' +
' const packageJsonPath = makePackageJsonPath(packagePath);\n' +
' deepJson = await deep.import(deepJsonPath);\n' +
' packageJson = await deep.import(packageJsonPath);\n' +
'\n' +
' const packages = await getDeepPackagesList(nodeModulesPath);\n' +
" console.log('packages', packages);\n" +
' \n' +
' const deepPackagesDependencies = await getDeepPackagesDependencies(nodeModulesPath, packages, packageName);\n' +
' delete deepPackagesDependencies[packageName];\n' +
" console.log('deepPackagesDependencies', deepPackagesDependencies);\n" +
' \n' +
' buildInstallationQueue(deepPackagesDependencies, installationQueue, installationSet);\n' +
' \n' +
" console.log('installationQueue', installationQueue);\n" +
" console.log('installationSet', installationSet);\n" +
' } finally {\n' +
' fs.rmSync(tempDirectory, { recursive: true, force: true });\n' +
' }\n' +
' \n' +
' const existingPackages = await getExistingPackages(installationQueue.map(e => e.name));\n' +
" console.log('existingPackages', existingPackages);\n" +
'\n' +
' for (const dependencyPackage of instal'... 1567 more characters,
container: {
name: 'deep-138d60d2a0fd040bfe13e80d143de80d',
host: 'deep-138d60d2a0fd040bfe13e80d143de80d',
port: 40317,
options: {
publish: false,
forceRestart: true,
handler: 'deepf/js-docker-isolation-provider:main'
}
},
jwt: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwczovL2hhc3VyYS5pby9qd3QvY2xhaW1zIjp7IngtaGFzdXJhLWFsbG93ZWQtcm9sZXMiOlsiYWRtaW4iXSwieC1oYXN1cmEtZGVmYXVsdC1yb2xlIjoiYWRtaW4iLCJ4LWhhc3VyYS11c2VyLWlkIjoiNzU0In0sImlhdCI6MTcwMDE4MDk3N30.nIb7xkf-eTCWDUjXslbgCnLWqfG0nUkI4zkJxgocBxY',
secret: '4459a8e24fec162fd9ff71b57abec189396cad50cf867871',
data: {
triggeredByLinkId: 380,
oldLink: null,
newLink: { from_id: 380, type_id: 750, id: 1571, to_id: 1565, value: null },
promiseId: 1573
}
}
/tmp/ecb1d4ec-a5bd-4bd0-879b-fe94a26a7059
/tmp/9dda1f64-d03d-4a60-95f2-54d581e422f3
npm --prefix "/tmp/ecb1d4ec-a5bd-4bd0-879b-fe94a26a7059" i @suenot/[email protected]
added 5 packages in 5s
find . -name deep.json
./@deep-foundation/core/deep.json
./@suenot/transaction-tests/deep.json
./@suenot/unit/deep.json
./@suenot/asset/deep.json
./@suenot/wallet/deep.json
packages [
[ '@deep-foundation/core' ],
[ '@suenot/transaction-tests' ],
[ '@suenot/unit' ],
[ '@suenot/asset' ],
[ '@suenot/wallet' ]
]
packagePath /tmp/ecb1d4ec-a5bd-4bd0-879b-fe94a26a7059/node_modules/@deep-foundation/core
packageJsonPath /tmp/ecb1d4ec-a5bd-4bd0-879b-fe94a26a7059/node_modules/@deep-foundation/core/package.json
packageJson { name: '@deep-foundation/core', version: '0.0.2' }
deepJsonPath /tmp/ecb1d4ec-a5bd-4bd0-879b-fe94a26a7059/node_modules/@deep-foundation/core/deep.json
deepJson {
package: { name: '@deep-foundation/core', version: '0.0.2' },
data: [
{ id: 'Type', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Package', type: 'Type' },
{ id: 'Contain', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Value', type: 'Type', from: 'Any', to: 'Type' },
{ id: 'String', type: 'Type' },
{ id: 'Number', type: 'Type' },
{ id: 'Object', type: 'Type' },
{ id: 'Any', type: 'Type' },
{ id: 'Promise', type: 'Type' },
{ id: 'Then', type: 'Type', from: 'Any', to: 'Promise' },
{ id: 'Resolved', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'Rejected', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'typeValue', type: 'Value', from: 'Type', to: 'String' },
{
id: 'packageValue',
type: 'Value',
from: 'Package',
to: 'String'
},
{ id: 'Selector', type: 'Type' },
{
id: 'SelectorInclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{ id: 'Rule', type: 'Type' },
{ id: 'RuleSubject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleObject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleAction', type: 'Type', from: 'Rule', to: 'Selector' },
{
id: 'containValue',
type: 'Value',
from: 'Contain',
to: 'String'
},
{ id: 'User', type: 'Type' },
{ id: 'Operation', type: 'Type' },
{
id: 'operationValue',
type: 'Value',
from: 'Operation',
to: 'String'
},
{ id: 'AllowInsert', type: 'Operation' },
{ id: 'AllowUpdate', type: 'Operation' },
{ id: 'AllowDelete', type: 'Operation' },
{ id: 'AllowSelect', type: 'Operation' },
{ id: 'File', type: 'Type' },
{ id: 'SyncTextFile', type: 'File' },
{
id: 'syncTextFileValue',
type: 'Value',
from: 'SyncTextFile',
to: 'String'
},
{ id: 'ExecutionProvider', type: 'Type' },
{ id: 'JSExecutionProvider', type: 'ExecutionProvider' },
{ id: 'TreeInclude', type: 'Type', from: 'Type', to: 'Any' },
{ id: 'Handler', type: 'Type', from: 'Supports', to: 'Any' },
{ id: 'Tree', type: 'Type' },
{
id: 'TreeIncludeDown',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeUp',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeNode',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{ id: 'containTree', type: 'Tree' },
{
id: 'containTreeContain',
type: 'TreeIncludeDown',
from: 'containTree',
to: 'Contain'
},
{
id: 'containTreeAny',
type: 'TreeIncludeNode',
from: 'containTree',
to: 'Any'
},
{ id: 'PackageNamespace', type: 'Type' },
{
id: 'packageNamespaceValue',
type: 'Value',
from: 'PackageNamespace',
to: 'String'
},
{
id: 'PackageActive',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'PackageVersion',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'packageVersionValue',
type: 'Value',
from: 'PackageVersion',
to: 'String'
},
{ id: 'HandleOperation', type: 'Type', from: 'Type', to: 'Type' },
{
id: 'HandleInsert',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleUpdate',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleDelete',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'PromiseResult', type: 'Type' },
{
id: 'promiseResultValueRelationTable',
type: 'Value',
from: 'PromiseResult',
to: 'Object'
},
{ id: 'PromiseReason', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Focus', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'focusValue', type: 'Value', from: 'Focus', to: 'Object' },
{ id: 'AsyncFile', type: 'File' },
{
id: 'handlersTreeHandler',
type: 'TreeIncludeUp',
from: 'handlersTree',
to: 'Handler'
},
{ id: 'Query', type: 'Type' },
{ id: 'queryValue', type: 'Value', from: 'Query', to: 'Object' },
{ id: 'Active', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Fixed', type: 'Type' },
{ id: 'fixedValue', type: 'Value', from: 'Fixed', to: 'Object' },
{ id: 'Space', type: 'Type' },
{ id: 'spaceValue', type: 'Value', from: 'Space', to: 'String' },
{ id: 'AllowLogin', type: 'Operation' },
{ id: 'guests', type: 'Any' },
{ id: 'Join', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'joinTree', type: 'Tree' },
{
id: 'joinTreeJoin',
type: 'TreeIncludeUp',
from: 'joinTree',
to: 'Join'
},
{
id: 'joinTreeAny',
type: 'TreeIncludeNode',
from: 'joinTree',
to: 'Any'
},
{ id: 'SelectorTree', type: 'Type', from: 'Any', to: 'Tree' },
{ id: 'AllowAdmin', type: 'Operation' },
{
id: 'SelectorExclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{
id: 'SelectorFilter',
type: 'Type',
from: 'Selector',
to: 'Query'
},
{
id: 'HandleSchedule',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'Schedule', type: 'Type' },
{
id: 'scheduleValue',
type: 'Value',
from: 'Schedule',
to: 'String'
},
{ id: 'Router', type: 'Type', value: [Object] },
{ id: 'IsolationProvider', type: 'Type' },
{ id: 'DockerIsolationProvider', type: 'IsolationProvider' },
{
id: 'dockerIsolationProviderValue',
type: 'Value',
from: 'DockerIsolationProvider',
to: 'String'
},
{
id: 'JSDockerIsolationProvider',
type: 'DockerIsolationProvider',
value: [Object]
},
{ id: 'Supports', type: 'Type', from: 'Any', to: 'Any' },
{
id: 'dockerSupportsJs',
type: 'Supports',
from: 'JSDockerIsolationProvider',
to: 'JSExecutionProvider'
},
{
id: 'PackageInstall',
type: 'Type',
from: 'Any',
to: 'PackageQuery'
},
{
id: 'PackagePublish',
type: 'Type',
from: 'Package',
to: 'PackageQuery'
},
{ id: 'packageInstallCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packageInstallCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packageInstallCode'
},
{
id: 'packageInstallCodeHandleInsert',
type: 'HandleInsert',
from: 'PackageInstall',
to: 'packageInstallCodeHandler'
},
{ id: 'packagePublishCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packagePublishCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packagePublishCode'
},
{
id: 'packagePublishCodeHandleInsert',
type: 'HandleInsert',
from: 'PackagePublish',
to: 'packagePublishCodeHandler'
},
{ id: 'AllowPackageInstall', type: 'Operation' },
{ id: 'portValue', type: 'Value', from: 'Port', to: 'Number' },
{
id: 'HandlePort',
type: 'HandleOperation',
from: 'Port',
to: 'Any'
},
{ id: 'Route', type: 'Type' },
{ id: 'RouterListening', type: 'Type', from: 'Router', to: 'Port' },
{
id: 'RouterStringUse',
type: 'Type',
from: 'Route',
to: 'Router'
},
{
id: 'routerStringUseValue',
type: 'Value',
from: 'RouterStringUse',
to: 'String'
},
... 74 more items
],
errors: [],
strict: true,
dependencies: []
}
dependencies {}
dependencyPackageName @deep-foundation/core
packagePath /tmp/ecb1d4ec-a5bd-4bd0-879b-fe94a26a7059/node_modules/@suenot/transaction-tests
packageJsonPath /tmp/ecb1d4ec-a5bd-4bd0-879b-fe94a26a7059/node_modules/@suenot/transaction-tests/package.json
packageJson {
name: '@suenot/transaction-tests',
dependencies: { '@suenot/unit': '~0.0.2', '@suenot/wallet': '~0.0.3' },
version: '0.0.2',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/ecb1d4ec-a5bd-4bd0-879b-fe94a26a7059/node_modules/@suenot/transaction-tests/deep.json
deepJson {
package: { name: '@suenot/transaction-tests', version: '0.0.2' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ package: [Object], id: 7 },
{ id: 'wallet1', type: 1, value: [Object] },
{
id: 'wallet1Name',
type: 2,
from: 'wallet1',
to: 'wallet1',
value: [Object]
},
{ id: 'unit1', type: 3 },
{
id: 'unit1Description',
type: 4,
from: 'unit1',
to: 'unit1',
value: [Object]
},
{
id: 'unit1Avatar',
type: 5,
from: 'unit1',
to: 'unit1',
value: [Object]
},
{
id: 'unit1Ticker',
type: 6,
from: 'unit1',
to: 'unit1',
value: [Object]
},
{
id: 'unit1Name',
type: 7,
from: 'unit1',
to: 'unit1',
value: [Object]
}
],
errors: [],
dependencies: [
{ name: '@suenot/wallet', version: '0.0.3' },
{ name: '@suenot/unit', version: '0.0.2' }
]
}
dependencies { '@suenot/unit': '~0.0.2', '@suenot/wallet': '~0.0.3' }
dependencyPackageName @suenot/transaction-tests
packagePath /tmp/ecb1d4ec-a5bd-4bd0-879b-fe94a26a7059/node_modules/@suenot/unit
packageJsonPath /tmp/ecb1d4ec-a5bd-4bd0-879b-fe94a26a7059/node_modules/@suenot/unit/package.json
packageJson {
name: '@suenot/unit',
dependencies: { '@deep-foundation/core': '~0.0.2' },
version: '0.0.2',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/ecb1d4ec-a5bd-4bd0-879b-fe94a26a7059/node_modules/@suenot/unit/deep.json
deepJson {
package: { name: '@suenot/unit', version: '0.0.2' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ id: 'Unit', type: 1 },
{ id: 'Description', type: 1, from: 'Unit', to: 'Unit' },
{
id: 'descriptionSymbol',
type: 2,
from: 'Description',
to: 'Description',
value: [Object]
},
{ id: 'Avatar', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'avatarValue', type: 3, from: 'Avatar', to: 4 },
{
id: 'avatarSymbol',
type: 2,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'Ticker', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'tickerValue', type: 3, from: 'Ticker', to: 4 },
{
id: 'tickerSymbol',
type: 2,
from: 'Ticker',
to: 'Ticker',
value: [Object]
},
{ id: 'Name', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'nameValue', type: 3, from: 'Name', to: 4 },
{
id: 'nameSymbol',
type: 2,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 2,
from: 'Unit',
to: 'Unit',
value: [Object]
}
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies { '@deep-foundation/core': '~0.0.2' }
dependencyPackageName @suenot/unit
packagePath /tmp/ecb1d4ec-a5bd-4bd0-879b-fe94a26a7059/node_modules/@suenot/asset
packageJsonPath /tmp/ecb1d4ec-a5bd-4bd0-879b-fe94a26a7059/node_modules/@suenot/asset/package.json
packageJson {
name: '@suenot/asset',
dependencies: { '@deep-foundation/core': '~0.0.2' },
version: '0.0.8',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/ecb1d4ec-a5bd-4bd0-879b-fe94a26a7059/node_modules/@suenot/asset/deep.json
deepJson {
package: { name: '@suenot/asset', version: '0.0.8' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ id: 'Asset', type: 1 },
{ id: 'Description', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'Avatar', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'avatarValue', type: 2, from: 'Avatar', to: 3 },
{
id: 'avatarSymbol',
type: 4,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'Ticker', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'tickerValue', type: 2, from: 'Ticker', to: 3 },
{
id: 'tickerSymbol',
type: 4,
from: 'Ticker',
to: 'Ticker',
value: [Object]
},
{ id: 'Name', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'nameValue', type: 2, from: 'Name', to: 3 },
{
id: 'nameSymbol',
type: 4,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 4,
from: 'Asset',
to: 'Asset',
value: [Object]
}
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies { '@deep-foundation/core': '~0.0.2' }
dependencyPackageName @suenot/asset
packagePath /tmp/ecb1d4ec-a5bd-4bd0-879b-fe94a26a7059/node_modules/@suenot/wallet
packageJsonPath /tmp/ecb1d4ec-a5bd-4bd0-879b-fe94a26a7059/node_modules/@suenot/wallet/package.json
packageJson {
name: '@suenot/wallet',
dependencies: {
'@deep-foundation/core': '~0.0.2',
'@suenot/asset': '~0.0.2',
'@suenot/unit': '~0.0.2'
},
version: '0.0.3',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/ecb1d4ec-a5bd-4bd0-879b-fe94a26a7059/node_modules/@suenot/wallet/deep.json
deepJson {
package: { name: '@suenot/wallet', version: '0.0.3' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ id: 'Wallet', type: 1 },
{ id: 'Description', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'descriptionValue', type: 2, from: 'Description', to: 3 },
{
id: 'descriptionSymbol',
type: 4,
from: 'Description',
to: 'Description',
value: [Object]
},
{ id: 'Avatar', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'avatarValue', type: 2, from: 'Avatar', to: 3 },
{
id: 'avatarSymbol',
type: 4,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'ContainUnit', type: 1, from: 'Wallet', to: 5 },
{ id: 'Name', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'nameValue', type: 2, from: 'Name', to: 3 },
{
id: 'nameSymbol',
type: 4,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 4,
from: 'Wallet',
to: 'Wallet',
value: [Object]
},
{ id: 'waletValue', type: 2, from: 'Wallet', to: 6 }
],
errors: [],
dependencies: [
{ name: '@deep-foundation/core', version: '0.0.2' },
{ name: '@suenot/unit', version: '0.0.2' }
]
}
dependencies {
'@deep-foundation/core': '~0.0.2',
'@suenot/asset': '~0.0.2',
'@suenot/unit': '~0.0.2'
}
dependencyPackageName @suenot/wallet
deepPackagesDependencies {
'@deep-foundation/core': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' },
dependencies: []
},
'@suenot/unit': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/unit',
dependencies: [Object],
version: '0.0.2',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core' ]
},
'@suenot/asset': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/asset',
dependencies: [Object],
version: '0.0.8',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core' ]
},
'@suenot/wallet': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/wallet',
dependencies: [Object],
version: '0.0.3',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core', '@suenot/asset', '@suenot/unit' ]
}
}
installationQueue [
{
name: '@deep-foundation/core',
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' }
},
{
name: '@suenot/unit',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/unit',
dependencies: [Object],
version: '0.0.2',
keywords: [Array]
}
},
{
name: '@suenot/asset',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/asset',
dependencies: [Object],
version: '0.0.8',
keywords: [Array]
}
},
{
name: '@suenot/wallet',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/wallet',
dependencies: [Object],
version: '0.0.3',
keywords: [Array]
}
}
]
installationSet {
'@deep-foundation/core': true,
'@suenot/unit': true,
'@suenot/asset': true,
'@suenot/wallet': true
}
npm --prefix "/tmp/9dda1f64-d03d-4a60-95f2-54d581e422f3" i @suenot/[email protected]
added 5 packages in 594ms
find . -name deep.json
./@deep-foundation/core/deep.json
./@suenot/transaction-tests/deep.json
./@suenot/unit/deep.json
./@suenot/asset/deep.json
./@suenot/wallet/deep.json
packages [
[ '@deep-foundation/core' ],
[ '@suenot/transaction-tests' ],
[ '@suenot/unit' ],
[ '@suenot/asset' ],
[ '@suenot/wallet' ]
]
packagePath /tmp/9dda1f64-d03d-4a60-95f2-54d581e422f3/node_modules/@deep-foundation/core
packageJsonPath /tmp/9dda1f64-d03d-4a60-95f2-54d581e422f3/node_modules/@deep-foundation/core/package.json
packageJson { name: '@deep-foundation/core', version: '0.0.2' }
deepJsonPath /tmp/9dda1f64-d03d-4a60-95f2-54d581e422f3/node_modules/@deep-foundation/core/deep.json
deepJson {
package: { name: '@deep-foundation/core', version: '0.0.2' },
data: [
{ id: 'Type', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Package', type: 'Type' },
{ id: 'Contain', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Value', type: 'Type', from: 'Any', to: 'Type' },
{ id: 'String', type: 'Type' },
{ id: 'Number', type: 'Type' },
{ id: 'Object', type: 'Type' },
{ id: 'Any', type: 'Type' },
{ id: 'Promise', type: 'Type' },
{ id: 'Then', type: 'Type', from: 'Any', to: 'Promise' },
{ id: 'Resolved', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'Rejected', type: 'Type', from: 'Promise', to: 'Any' },
{ id: 'typeValue', type: 'Value', from: 'Type', to: 'String' },
{
id: 'packageValue',
type: 'Value',
from: 'Package',
to: 'String'
},
{ id: 'Selector', type: 'Type' },
{
id: 'SelectorInclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{ id: 'Rule', type: 'Type' },
{ id: 'RuleSubject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleObject', type: 'Type', from: 'Rule', to: 'Selector' },
{ id: 'RuleAction', type: 'Type', from: 'Rule', to: 'Selector' },
{
id: 'containValue',
type: 'Value',
from: 'Contain',
to: 'String'
},
{ id: 'User', type: 'Type' },
{ id: 'Operation', type: 'Type' },
{
id: 'operationValue',
type: 'Value',
from: 'Operation',
to: 'String'
},
{ id: 'AllowInsert', type: 'Operation' },
{ id: 'AllowUpdate', type: 'Operation' },
{ id: 'AllowDelete', type: 'Operation' },
{ id: 'AllowSelect', type: 'Operation' },
{ id: 'File', type: 'Type' },
{ id: 'SyncTextFile', type: 'File' },
{
id: 'syncTextFileValue',
type: 'Value',
from: 'SyncTextFile',
to: 'String'
},
{ id: 'ExecutionProvider', type: 'Type' },
{ id: 'JSExecutionProvider', type: 'ExecutionProvider' },
{ id: 'TreeInclude', type: 'Type', from: 'Type', to: 'Any' },
{ id: 'Handler', type: 'Type', from: 'Supports', to: 'Any' },
{ id: 'Tree', type: 'Type' },
{
id: 'TreeIncludeDown',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeUp',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{
id: 'TreeIncludeNode',
type: 'TreeInclude',
from: 'Tree',
to: 'Any'
},
{ id: 'containTree', type: 'Tree' },
{
id: 'containTreeContain',
type: 'TreeIncludeDown',
from: 'containTree',
to: 'Contain'
},
{
id: 'containTreeAny',
type: 'TreeIncludeNode',
from: 'containTree',
to: 'Any'
},
{ id: 'PackageNamespace', type: 'Type' },
{
id: 'packageNamespaceValue',
type: 'Value',
from: 'PackageNamespace',
to: 'String'
},
{
id: 'PackageActive',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'PackageVersion',
type: 'Type',
from: 'PackageNamespace',
to: 'Package'
},
{
id: 'packageVersionValue',
type: 'Value',
from: 'PackageVersion',
to: 'String'
},
{ id: 'HandleOperation', type: 'Type', from: 'Type', to: 'Type' },
{
id: 'HandleInsert',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleUpdate',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{
id: 'HandleDelete',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'PromiseResult', type: 'Type' },
{
id: 'promiseResultValueRelationTable',
type: 'Value',
from: 'PromiseResult',
to: 'Object'
},
{ id: 'PromiseReason', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Focus', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'focusValue', type: 'Value', from: 'Focus', to: 'Object' },
{ id: 'AsyncFile', type: 'File' },
{
id: 'handlersTreeHandler',
type: 'TreeIncludeUp',
from: 'handlersTree',
to: 'Handler'
},
{ id: 'Query', type: 'Type' },
{ id: 'queryValue', type: 'Value', from: 'Query', to: 'Object' },
{ id: 'Active', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'Fixed', type: 'Type' },
{ id: 'fixedValue', type: 'Value', from: 'Fixed', to: 'Object' },
{ id: 'Space', type: 'Type' },
{ id: 'spaceValue', type: 'Value', from: 'Space', to: 'String' },
{ id: 'AllowLogin', type: 'Operation' },
{ id: 'guests', type: 'Any' },
{ id: 'Join', type: 'Type', from: 'Any', to: 'Any' },
{ id: 'joinTree', type: 'Tree' },
{
id: 'joinTreeJoin',
type: 'TreeIncludeUp',
from: 'joinTree',
to: 'Join'
},
{
id: 'joinTreeAny',
type: 'TreeIncludeNode',
from: 'joinTree',
to: 'Any'
},
{ id: 'SelectorTree', type: 'Type', from: 'Any', to: 'Tree' },
{ id: 'AllowAdmin', type: 'Operation' },
{
id: 'SelectorExclude',
type: 'Type',
from: 'Selector',
to: 'Any'
},
{
id: 'SelectorFilter',
type: 'Type',
from: 'Selector',
to: 'Query'
},
{
id: 'HandleSchedule',
type: 'HandleOperation',
from: 'Any',
to: 'Handler'
},
{ id: 'Schedule', type: 'Type' },
{
id: 'scheduleValue',
type: 'Value',
from: 'Schedule',
to: 'String'
},
{ id: 'Router', type: 'Type', value: [Object] },
{ id: 'IsolationProvider', type: 'Type' },
{ id: 'DockerIsolationProvider', type: 'IsolationProvider' },
{
id: 'dockerIsolationProviderValue',
type: 'Value',
from: 'DockerIsolationProvider',
to: 'String'
},
{
id: 'JSDockerIsolationProvider',
type: 'DockerIsolationProvider',
value: [Object]
},
{ id: 'Supports', type: 'Type', from: 'Any', to: 'Any' },
{
id: 'dockerSupportsJs',
type: 'Supports',
from: 'JSDockerIsolationProvider',
to: 'JSExecutionProvider'
},
{
id: 'PackageInstall',
type: 'Type',
from: 'Any',
to: 'PackageQuery'
},
{
id: 'PackagePublish',
type: 'Type',
from: 'Package',
to: 'PackageQuery'
},
{ id: 'packageInstallCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packageInstallCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packageInstallCode'
},
{
id: 'packageInstallCodeHandleInsert',
type: 'HandleInsert',
from: 'PackageInstall',
to: 'packageInstallCodeHandler'
},
{ id: 'packagePublishCode', type: 'SyncTextFile', value: [Object] },
{
id: 'packagePublishCodeHandler',
type: 'Handler',
from: 'dockerSupportsJs',
to: 'packagePublishCode'
},
{
id: 'packagePublishCodeHandleInsert',
type: 'HandleInsert',
from: 'PackagePublish',
to: 'packagePublishCodeHandler'
},
{ id: 'AllowPackageInstall', type: 'Operation' },
{ id: 'portValue', type: 'Value', from: 'Port', to: 'Number' },
{
id: 'HandlePort',
type: 'HandleOperation',
from: 'Port',
to: 'Any'
},
{ id: 'Route', type: 'Type' },
{ id: 'RouterListening', type: 'Type', from: 'Router', to: 'Port' },
{
id: 'RouterStringUse',
type: 'Type',
from: 'Route',
to: 'Router'
},
{
id: 'routerStringUseValue',
type: 'Value',
from: 'RouterStringUse',
to: 'String'
},
... 74 more items
],
errors: [],
strict: true,
dependencies: []
}
dependencies {}
dependencyPackageName @deep-foundation/core
packagePath /tmp/9dda1f64-d03d-4a60-95f2-54d581e422f3/node_modules/@suenot/transaction-tests
packageJsonPath /tmp/9dda1f64-d03d-4a60-95f2-54d581e422f3/node_modules/@suenot/transaction-tests/package.json
packageJson {
name: '@suenot/transaction-tests',
dependencies: { '@suenot/unit': '~0.0.2', '@suenot/wallet': '~0.0.3' },
version: '0.0.2',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/9dda1f64-d03d-4a60-95f2-54d581e422f3/node_modules/@suenot/transaction-tests/deep.json
deepJson {
package: { name: '@suenot/transaction-tests', version: '0.0.2' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ package: [Object], id: 7 },
{ id: 'wallet1', type: 1, value: [Object] },
{
id: 'wallet1Name',
type: 2,
from: 'wallet1',
to: 'wallet1',
value: [Object]
},
{ id: 'unit1', type: 3 },
{
id: 'unit1Description',
type: 4,
from: 'unit1',
to: 'unit1',
value: [Object]
},
{
id: 'unit1Avatar',
type: 5,
from: 'unit1',
to: 'unit1',
value: [Object]
},
{
id: 'unit1Ticker',
type: 6,
from: 'unit1',
to: 'unit1',
value: [Object]
},
{
id: 'unit1Name',
type: 7,
from: 'unit1',
to: 'unit1',
value: [Object]
}
],
errors: [],
dependencies: [
{ name: '@suenot/wallet', version: '0.0.3' },
{ name: '@suenot/unit', version: '0.0.2' }
]
}
dependencies { '@suenot/unit': '~0.0.2', '@suenot/wallet': '~0.0.3' }
dependencyPackageName @suenot/transaction-tests
packagePath /tmp/9dda1f64-d03d-4a60-95f2-54d581e422f3/node_modules/@suenot/unit
packageJsonPath /tmp/9dda1f64-d03d-4a60-95f2-54d581e422f3/node_modules/@suenot/unit/package.json
packageJson {
name: '@suenot/unit',
dependencies: { '@deep-foundation/core': '~0.0.2' },
version: '0.0.2',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/9dda1f64-d03d-4a60-95f2-54d581e422f3/node_modules/@suenot/unit/deep.json
deepJson {
package: { name: '@suenot/unit', version: '0.0.2' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ id: 'Unit', type: 1 },
{ id: 'Description', type: 1, from: 'Unit', to: 'Unit' },
{
id: 'descriptionSymbol',
type: 2,
from: 'Description',
to: 'Description',
value: [Object]
},
{ id: 'Avatar', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'avatarValue', type: 3, from: 'Avatar', to: 4 },
{
id: 'avatarSymbol',
type: 2,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'Ticker', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'tickerValue', type: 3, from: 'Ticker', to: 4 },
{
id: 'tickerSymbol',
type: 2,
from: 'Ticker',
to: 'Ticker',
value: [Object]
},
{ id: 'Name', type: 1, from: 'Unit', to: 'Unit' },
{ id: 'nameValue', type: 3, from: 'Name', to: 4 },
{
id: 'nameSymbol',
type: 2,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 2,
from: 'Unit',
to: 'Unit',
value: [Object]
}
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies { '@deep-foundation/core': '~0.0.2' }
dependencyPackageName @suenot/unit
packagePath /tmp/9dda1f64-d03d-4a60-95f2-54d581e422f3/node_modules/@suenot/asset
packageJsonPath /tmp/9dda1f64-d03d-4a60-95f2-54d581e422f3/node_modules/@suenot/asset/package.json
packageJson {
name: '@suenot/asset',
dependencies: { '@deep-foundation/core': '~0.0.2' },
version: '0.0.8',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/9dda1f64-d03d-4a60-95f2-54d581e422f3/node_modules/@suenot/asset/deep.json
deepJson {
package: { name: '@suenot/asset', version: '0.0.8' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ id: 'Asset', type: 1 },
{ id: 'Description', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'Avatar', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'avatarValue', type: 2, from: 'Avatar', to: 3 },
{
id: 'avatarSymbol',
type: 4,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'Ticker', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'tickerValue', type: 2, from: 'Ticker', to: 3 },
{
id: 'tickerSymbol',
type: 4,
from: 'Ticker',
to: 'Ticker',
value: [Object]
},
{ id: 'Name', type: 1, from: 'Asset', to: 'Asset' },
{ id: 'nameValue', type: 2, from: 'Name', to: 3 },
{
id: 'nameSymbol',
type: 4,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 4,
from: 'Asset',
to: 'Asset',
value: [Object]
}
],
errors: [],
dependencies: [ { name: '@deep-foundation/core', version: '0.0.2' } ]
}
dependencies { '@deep-foundation/core': '~0.0.2' }
dependencyPackageName @suenot/asset
packagePath /tmp/9dda1f64-d03d-4a60-95f2-54d581e422f3/node_modules/@suenot/wallet
packageJsonPath /tmp/9dda1f64-d03d-4a60-95f2-54d581e422f3/node_modules/@suenot/wallet/package.json
packageJson {
name: '@suenot/wallet',
dependencies: {
'@deep-foundation/core': '~0.0.2',
'@suenot/asset': '~0.0.2',
'@suenot/unit': '~0.0.2'
},
version: '0.0.3',
keywords: [ 'deep-package' ]
}
deepJsonPath /tmp/9dda1f64-d03d-4a60-95f2-54d581e422f3/node_modules/@suenot/wallet/deep.json
deepJson {
package: { name: '@suenot/wallet', version: '0.0.3' },
data: [
{ package: [Object], id: 1 },
{ package: [Object], id: 2 },
{ package: [Object], id: 3 },
{ package: [Object], id: 4 },
{ package: [Object], id: 5 },
{ package: [Object], id: 6 },
{ id: 'Wallet', type: 1 },
{ id: 'Description', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'descriptionValue', type: 2, from: 'Description', to: 3 },
{
id: 'descriptionSymbol',
type: 4,
from: 'Description',
to: 'Description',
value: [Object]
},
{ id: 'Avatar', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'avatarValue', type: 2, from: 'Avatar', to: 3 },
{
id: 'avatarSymbol',
type: 4,
from: 'Avatar',
to: 'Avatar',
value: [Object]
},
{ id: 'ContainUnit', type: 1, from: 'Wallet', to: 5 },
{ id: 'Name', type: 1, from: 'Wallet', to: 'Wallet' },
{ id: 'nameValue', type: 2, from: 'Name', to: 3 },
{
id: 'nameSymbol',
type: 4,
from: 'Name',
to: 'Name',
value: [Object]
},
{
id: 'symbol',
type: 4,
from: 'Wallet',
to: 'Wallet',
value: [Object]
},
{ id: 'waletValue', type: 2, from: 'Wallet', to: 6 }
],
errors: [],
dependencies: [
{ name: '@deep-foundation/core', version: '0.0.2' },
{ name: '@suenot/unit', version: '0.0.2' }
]
}
dependencies {
'@deep-foundation/core': '~0.0.2',
'@suenot/asset': '~0.0.2',
'@suenot/unit': '~0.0.2'
}
dependencyPackageName @suenot/wallet
deepPackagesDependencies {
'@deep-foundation/core': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' },
dependencies: []
},
'@suenot/unit': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/unit',
dependencies: [Object],
version: '0.0.2',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core' ]
},
'@suenot/asset': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/asset',
dependencies: [Object],
version: '0.0.8',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core' ]
},
'@suenot/wallet': {
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/wallet',
dependencies: [Object],
version: '0.0.3',
keywords: [Array]
},
dependencies: [ '@deep-foundation/core', '@suenot/asset', '@suenot/unit' ]
}
}
installationQueue [
{
name: '@deep-foundation/core',
deepJson: {
package: [Object],
data: [Array],
errors: [],
strict: true,
dependencies: []
},
packageJson: { name: '@deep-foundation/core', version: '0.0.2' }
},
{
name: '@suenot/unit',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/unit',
dependencies: [Object],
version: '0.0.2',
keywords: [Array]
}
},
{
name: '@suenot/asset',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/asset',
dependencies: [Object],
version: '0.0.8',
keywords: [Array]
}
},
{
name: '@suenot/wallet',
deepJson: {
package: [Object],
data: [Array],
errors: [],
dependencies: [Array]
},
packageJson: {
name: '@suenot/wallet',
dependencies: [Object],
version: '0.0.3',
keywords: [Array]
}
}
]
installationSet {
'@deep-foundation/core': true,
'@suenot/unit': true,
'@suenot/asset': true,
'@suenot/wallet': true
}
packages [
{
id: 1108,
name: { id: 440, value: '@suenot/unit', link_id: 1108 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1267,
name: { id: 517, value: '@suenot/wallet', link_id: 1267 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1310,
name: { id: 522, value: '@suenot/wallet', link_id: 1310 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 184,
name: { id: 6, value: '@deep-foundation/core', link_id: 184 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1227,
name: { id: 483, value: '@suenot/asset', link_id: 1227 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1148,
name: { id: 442, value: '@suenot/unit', link_id: 1148 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1188,
name: { id: 480, value: '@suenot/asset', link_id: 1188 },
versions: [ [Object] ],
__typename: 'links'
}
]
rejected {
stack: "Error: Multiple packages with name '@suenot/wallet' exist.\n" +
' at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:176:17)\n' +
' at Array.reduce (<anonymous>)\n' +
' at getExistingPackages (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:168:39)\n' +
' at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n' +
' at async eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:234:28)',
message: "Multiple packages with name '@suenot/wallet' exist."
}
packages [
{
id: 1108,
name: { id: 440, value: '@suenot/unit', link_id: 1108 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1267,
name: { id: 517, value: '@suenot/wallet', link_id: 1267 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1310,
name: { id: 522, value: '@suenot/wallet', link_id: 1310 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 184,
name: { id: 6, value: '@deep-foundation/core', link_id: 184 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1227,
name: { id: 483, value: '@suenot/asset', link_id: 1227 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1148,
name: { id: 442, value: '@suenot/unit', link_id: 1148 },
versions: [ [Object] ],
__typename: 'links'
},
{
id: 1188,
name: { id: 480, value: '@suenot/asset', link_id: 1188 },
versions: [ [Object] ],
__typename: 'links'
}
]
rejected {
stack: "Error: Multiple packages with name '@suenot/wallet' exist.\n" +
' at eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:176:17)\n' +
' at Array.reduce (<anonymous>)\n' +
' at getExistingPackages (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:168:39)\n' +
' at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n' +
' at async eval (eval at memoized (/node_modules/lodash/memoize.js:62:23), <anonymous>:234:28)',
message: "Multiple packages with name '@suenot/wallet' exist."
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment