From a32b4023d5d61305f9da0d3fc1d539f0f91b328a Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Tue, 12 Jul 2022 17:21:44 +0200 Subject: [PATCH 01/53] fix: ESM by using import with file extensions --- packages/angular-universal/index.ts | 4 +- packages/angular-universal/package-lock.json | 2 +- packages/angular-universal/src/listener.ts | 4 +- packages/angular-universal/src/module.ts | 4 +- packages/api-console-api/index.ts | 2 +- packages/api-console-gui/index.ts | 2 +- .../src/app/api-console.module.ts | 40 +++--- .../api-console-gui/src/app/app.component.ts | 2 +- .../api-console-gui/src/app/app.module.ts | 4 +- .../environment-dialog.component.ts | 2 +- .../inputs/array-input.component.ts | 4 +- .../inputs/class-input.component.ts | 4 +- .../components/inputs/date-input.component.ts | 2 +- .../components/inputs/enum-input.component.ts | 2 +- .../app/components/inputs/input.component.ts | 6 +- .../components/inputs/json-input.component.ts | 2 +- .../components/inputs/map-input.component.ts | 4 +- .../src/app/components/inputs/registry.ts | 18 +-- .../inputs/string-input.component.ts | 4 +- .../inputs/union-input.component.ts | 4 +- .../src/app/views/console.component.ts | 14 +- .../src/app/views/http/results.component.ts | 6 +- .../app/views/http/route-detail.component.ts | 6 +- .../src/app/views/overview.component.ts | 6 +- .../src/app/views/rpc/rpc-detail.component.ts | 6 +- .../rpc/rpc-inspect-message.component.ts | 2 +- packages/api-console-gui/src/main.ts | 4 +- packages/api-console-gui/src/polyfills.ts | 2 +- packages/api-console-module/index.ts | 2 +- packages/api-console-module/package-lock.json | 2 +- packages/api-console-module/src/controller.ts | 2 +- packages/api-console-module/src/module.ts | 4 +- .../api-console-module/tests/module.spec.ts | 2 +- packages/app/index.ts | 12 +- packages/app/package-lock.json | 2 +- packages/app/src/app.ts | 8 +- packages/app/src/service-container.ts | 4 +- packages/app/tests/application.spec.ts | 10 +- packages/app/tests/command.spec.ts | 6 +- packages/app/tests/docs.spec.ts | 4 +- packages/app/tests/module-basics.spec.ts | 4 +- packages/app/tests/module.spec.ts | 6 +- packages/app/tests/service-container.spec.ts | 4 +- packages/benchmark/index.ts | 2 +- .../src/broker/broker-get-set.bench.ts | 2 +- .../benchmark/src/broker/broker-lock.bench.ts | 2 +- .../src/broker/broker-pub-sub.bench.ts | 2 +- .../benchmark/src/broker/node-redis.bench.ts | 4 +- .../benchmark/src/broker/tcp-broker.bench.ts | 2 +- .../benchmark/src/bson/hydration.bench.ts | 2 +- packages/benchmark/src/bson/parser.bench.ts | 2 +- .../benchmark/src/bson/serializer.bench.ts | 2 +- packages/benchmark/src/bson/utf8.bench.ts | 4 +- .../benchmark/src/framework/core.bench.ts | 2 +- .../benchmark/src/framework/event.bench.ts | 2 +- .../benchmark/src/framework/http.bench.ts | 2 +- .../benchmark/src/framework/injector.bench.ts | 2 +- .../src/framework/injector2.bench.ts | 4 +- .../src/framework/router/resolve.bench.ts | 2 +- packages/benchmark/src/jsperf.spec.ts | 2 +- .../benchmark/src/language/bigint.bench.ts | 2 +- .../benchmark/src/language/crypto.bench.ts | 2 +- .../benchmark/src/language/is-array.bench.ts | 2 +- packages/benchmark/src/language/map.bench.ts | 2 +- .../benchmark/src/language/pass-args.bench.ts | 2 +- .../benchmark/src/language/prototype.bench.ts | 2 +- .../benchmark/src/language/string.bench.ts | 2 +- .../src/orm/change-detection.bench.ts | 2 +- packages/benchmark/src/orm/converter.benc.ts | 2 +- .../orm/end-to-end/mongo/deepkit-10k.bench.ts | 2 +- .../end-to-end/mongo/mikro-orm-10k.bench.ts | 2 +- .../orm/end-to-end/mongo/mongo-10k.bench.ts | 2 +- .../end-to-end/mongo/mongoose-10k.bench.ts | 2 +- .../orm/end-to-end/mongo/prisma-10k.bench.ts | 4 +- .../end-to-end/mongo/type-orm-10k.bench.ts | 2 +- .../orm/end-to-end/mysql/deepkit-10k.bench.ts | 2 +- .../end-to-end/mysql/mikro-orm-10k.bench.ts | 2 +- .../orm/end-to-end/mysql/prisma-10k.bench.ts | 4 +- .../mysql/sequelize-orm-10k.bench.ts | 2 +- .../end-to-end/mysql/type-orm-10k.bench.ts | 2 +- .../postgresql/deepkit-10k.bench.ts | 4 +- .../postgresql/mikro-orm-10k.bench.ts | 2 +- .../end-to-end/postgresql/prisma-10k.bench.ts | 4 +- .../postgresql/sequelize-orm-10k.bench.ts | 2 +- .../postgresql/type-orm-10k.bench.ts | 2 +- .../end-to-end/sqlite/deepkit-10k.bench.ts | 2 +- .../end-to-end/sqlite/mikro-orm-10k.bench.ts | 2 +- .../orm/end-to-end/sqlite/prisma-10k.bench.ts | 4 +- .../sqlite/sequelize-orm-10k.bench.ts | 2 +- .../end-to-end/sqlite/type-orm-10k.bench.ts | 2 +- .../benchmark/src/rpc/grpc/grpc-js.bench.ts | 2 +- packages/benchmark/src/rpc/parser.bench.ts | 4 +- .../benchmark/src/rpc/rpc-roundtrip.bench.ts | 2 +- .../src/rpc/rpc-rountrtip-peer.bench.ts | 2 +- .../benchmark/src/rpc/rpc-tcp-server.bench.ts | 2 +- packages/benchmark/src/type/memoize.bench.ts | 2 +- .../src/type/reflection/processor.bench.ts | 2 +- .../medium-class-transformer.bench.ts | 2 +- .../serialization/medium-deepkit.bench.ts | 2 +- .../serialization/small-cerialize.bench.ts | 2 +- .../small-class-transformer.bench.ts | 2 +- .../type/serialization/small-deepkit.bench.ts | 2 +- .../type/serialization/small-io-ts.bench.ts | 2 +- .../src/type/validation/small-avj.bench.ts | 4 +- .../validation/small-class-validator.bench.ts | 4 +- .../type/validation/small-deepkit.bench.ts | 4 +- .../src/type/validation/small-io-ts.bench.ts | 4 +- .../type/validation/small-quartet.bench.ts | 4 +- packages/broker/index.ts | 6 +- packages/broker/src/client.ts | 4 +- packages/broker/src/kernel.ts | 2 +- packages/broker/tests/kernel.spec.ts | 4 +- packages/bson/index.ts | 8 +- packages/bson/package-lock.json | 2 +- .../bson/src/bson-deserializer-templates.ts | 4 +- packages/bson/src/bson-deserializer.ts | 6 +- packages/bson/src/bson-parser.ts | 6 +- packages/bson/src/bson-serializer.ts | 8 +- packages/bson/src/continuation.ts | 6 +- packages/bson/src/strings.ts | 2 +- packages/bson/tests/bson-parser.spec.ts | 4 +- packages/bson/tests/bson-serialize.spec.ts | 8 +- packages/bson/tests/type-spec.spec.ts | 6 +- packages/core-rxjs/index.ts | 4 +- packages/core-rxjs/package-lock.json | 2 +- packages/core-rxjs/tests/index.spec.ts | 2 +- packages/core/package-lock.json | 2 +- packages/core/tests/array.spec.ts | 2 +- packages/core/tests/compiler.spec.ts | 2 +- packages/core/tests/core.spec.ts | 2 +- packages/core/tests/decorators.spec.ts | 4 +- packages/core/tests/enum.spec.ts | 2 +- packages/core/tests/iterator.spec.ts | 2 +- packages/core/tests/lock.spec.ts | 8 +- packages/core/tests/network.spec.ts | 2 +- packages/core/tests/reflection.spec.ts | 2 +- packages/core/tests/utils.spec.ts | 2 +- .../src/components/app/dui-view.directive.ts | 2 +- .../desktop-ui/src/components/app/index.ts | 34 ++--- .../src/components/app/menu.component.ts | 4 +- .../desktop-ui/src/components/app/pipes.ts | 4 +- .../desktop-ui/src/components/app/utils.ts | 2 +- .../src/components/button/button.component.ts | 8 +- .../components/button/dropdown.component.ts | 8 +- .../desktop-ui/src/components/button/index.ts | 14 +- .../components/checkbox/checkbox.component.ts | 2 +- .../src/components/checkbox/index.ts | 6 +- .../desktop-ui/src/components/core/index.ts | 4 +- .../src/components/dialog/dialog.component.ts | 12 +- .../src/components/dialog/dialog.ts | 8 +- .../desktop-ui/src/components/dialog/index.ts | 20 +-- .../dialog/progress-dialog.component.ts | 2 +- .../emoji/emoji-dropdown.component.ts | 6 +- .../src/components/emoji/emoji.component.ts | 2 +- .../desktop-ui/src/components/emoji/index.ts | 12 +- .../src/components/form/form.component.ts | 2 +- .../desktop-ui/src/components/form/index.ts | 4 +- .../desktop-ui/src/components/icon/index.ts | 4 +- .../src/components/indicator/index.ts | 4 +- .../desktop-ui/src/components/input/index.ts | 6 +- .../src/components/input/input.component.ts | 4 +- .../desktop-ui/src/components/list/index.ts | 4 +- .../src/components/list/list.component.ts | 2 +- .../src/components/radiobox/index.ts | 4 +- .../components/radiobox/radiobox.component.ts | 2 +- .../desktop-ui/src/components/select/index.ts | 8 +- .../components/select/selectbox.component.ts | 6 +- .../desktop-ui/src/components/slider/index.ts | 8 +- .../src/components/slider/slider.component.ts | 2 +- .../src/components/splitter/index.ts | 4 +- .../desktop-ui/src/components/table/index.ts | 10 +- .../src/components/table/table.component.ts | 6 +- .../desktop-ui/src/components/tabs/index.ts | 6 +- .../window/external-window.component.ts | 14 +- .../src/components/window/external-window.ts | 2 +- .../desktop-ui/src/components/window/index.ts | 38 +++--- .../window/window-content.component.ts | 6 +- .../window/window-header.component.ts | 4 +- .../src/components/window/window-menu.ts | 4 +- .../src/components/window/window-state.ts | 10 +- .../src/components/window/window.component.ts | 12 +- packages/desktop-ui/src/core/form.ts | 4 +- packages/desktop-ui/src/index.ts | 44 +++---- packages/event/index.ts | 2 +- packages/example-app/app.ts | 10 +- .../example-app/src/controller/users.cli.ts | 2 +- packages/example-app/src/database.ts | 2 +- packages/framework-debug-api/index.ts | 6 +- .../framework-debug-api/package-lock.json | 2 +- packages/framework-debug-api/src/api.ts | 2 +- .../e2e/src/app.e2e-spec.ts | 2 +- .../src/app/app-routing.module.ts | 14 +- .../src/app/app.component.spec.ts | 2 +- .../src/app/app.component.ts | 2 +- .../framework-debug-gui/src/app/app.module.ts | 26 ++-- .../configuration/configuration.component.ts | 2 +- .../src/app/views/events/events.component.ts | 2 +- .../src/app/views/http/http.component.ts | 2 +- .../http/request/http-request.component.ts | 2 +- .../views/modules/module-detail.component.ts | 2 +- .../app/views/modules/modules.component.ts | 2 +- .../src/app/views/profile/frame-container.ts | 2 +- .../app/views/profile/profile.component.ts | 6 +- .../app/views/profile/timeline.component.ts | 6 +- .../src/app/views/rpc/rpc.component.ts | 2 +- packages/framework-debug-gui/src/main.ts | 4 +- packages/framework-debug-gui/src/polyfills.ts | 2 +- .../tests/controller-basic.spec.ts | 2 +- .../framework-integration/tests/file.spec.ts | 2 +- .../tests/peer2peer.spec.ts | 2 +- packages/framework/index.ts | 26 ++-- packages/framework/loader.ts | 2 +- packages/framework/src/application-server.ts | 6 +- packages/framework/src/broker/app-locker.ts | 2 +- .../framework/src/broker/broker.module.ts | 8 +- packages/framework/src/broker/broker.ts | 2 +- packages/framework/src/cli/app-config.ts | 2 +- .../framework/src/cli/debug-debug-frames.ts | 2 +- packages/framework/src/cli/server-start.ts | 4 +- .../src/database/database-listener.ts | 2 +- packages/framework/src/debug/broker.ts | 6 +- .../framework/src/debug/debug.controller.ts | 6 +- .../framework/src/debug/stopwatch/store.ts | 6 +- packages/framework/src/module.ts | 38 +++--- packages/framework/src/testing.ts | 8 +- packages/framework/src/worker.ts | 2 +- .../tests/application-server.spec.ts | 10 +- packages/framework/tests/broker.spec.ts | 2 +- packages/framework/tests/http.spec.ts | 2 +- packages/framework/tests/router.spec.ts | 2 +- packages/framework/tests/rpc.spec.ts | 2 +- .../framework/tests/service-container.spec.ts | 2 +- packages/framework/tests/zone.spec.ts | 2 +- packages/fs/index.ts | 2 +- packages/fs/package-lock.json | 2 +- packages/fs/src/fs.module.ts | 2 +- packages/fs/tests/fs.spec.ts | 10 +- packages/http/index.ts | 26 ++-- packages/http/package-lock.json | 2 +- packages/http/src/decorator.ts | 4 +- packages/http/src/filter.ts | 2 +- packages/http/src/http.ts | 4 +- packages/http/src/kernel.ts | 6 +- packages/http/src/logger.ts | 2 +- packages/http/src/middleware.ts | 2 +- packages/http/src/model.ts | 2 +- packages/http/src/module.ts | 16 +-- packages/http/src/router.ts | 8 +- packages/http/src/static-serving.ts | 10 +- packages/http/tests/filter.spec.ts | 6 +- packages/http/tests/middleware.spec.ts | 8 +- packages/http/tests/model.spec.ts | 2 +- packages/http/tests/module.spec.ts | 8 +- .../http/tests/parameter-resolver.spec.ts | 8 +- packages/http/tests/router.spec.ts | 10 +- packages/http/tests/utils.ts | 4 +- packages/injector/package-lock.json | 2 +- packages/injector/tests/injector.spec.ts | 8 +- packages/injector/tests/injector2.spec.ts | 8 +- packages/logger/index.ts | 4 +- packages/logger/package-lock.json | 2 +- packages/logger/src/memory-logger.ts | 2 +- packages/logger/tests/logger.spec.ts | 4 +- packages/mongo/index.ts | 14 +- packages/mongo/package-lock.json | 120 +++++++----------- packages/mongo/src/adapter.ts | 18 +-- packages/mongo/src/client/client.ts | 12 +- .../src/client/command/abortTransaction.ts | 6 +- .../mongo/src/client/command/aggregate.ts | 4 +- .../mongo/src/client/command/auth/auth.ts | 4 +- .../mongo/src/client/command/auth/scram.ts | 8 +- .../mongo/src/client/command/auth/x509.ts | 6 +- packages/mongo/src/client/command/command.ts | 10 +- .../src/client/command/commitTransaction.ts | 6 +- packages/mongo/src/client/command/count.ts | 2 +- .../src/client/command/createCollection.ts | 2 +- .../mongo/src/client/command/createIndexes.ts | 4 +- packages/mongo/src/client/command/delete.ts | 2 +- .../mongo/src/client/command/dropDatabase.ts | 2 +- .../mongo/src/client/command/dropIndexes.ts | 2 +- packages/mongo/src/client/command/empty.ts | 2 +- packages/mongo/src/client/command/find.ts | 6 +- .../mongo/src/client/command/findAndModify.ts | 2 +- .../mongo/src/client/command/handshake.ts | 16 +-- packages/mongo/src/client/command/insert.ts | 2 +- packages/mongo/src/client/command/ismaster.ts | 6 +- .../mongo/src/client/command/startSession.ts | 6 +- packages/mongo/src/client/command/update.ts | 2 +- packages/mongo/src/client/config.ts | 8 +- packages/mongo/src/client/connection.ts | 14 +- packages/mongo/src/client/error.ts | 2 +- packages/mongo/src/mapping.ts | 6 +- packages/mongo/src/persistence.ts | 20 +-- packages/mongo/src/query.resolver.ts | 24 ++-- packages/mongo/src/query.ts | 2 +- packages/mongo/tests/client/client.spec.ts | 8 +- .../tests/client/connection-string.spec.ts | 2 +- packages/mongo/tests/client/mong-env.spec.ts | 2 +- packages/mongo/tests/database.spec.ts | 2 +- .../tests/document-scenario/DocumentClass.ts | 4 +- .../tests/document-scenario/PageClass.ts | 4 +- .../tests/document-scenario/PageCollection.ts | 2 +- packages/mongo/tests/factory.ts | 2 +- packages/mongo/tests/integration.spec.ts | 2 +- packages/mongo/tests/mongo-query.spec.ts | 2 +- packages/mongo/tests/mongo-testcase-a.spec.ts | 2 +- packages/mongo/tests/mongo-testcase-b.spec.ts | 4 +- packages/mongo/tests/mongo.spec.ts | 4 +- packages/mongo/tests/references.spec.ts | 2 +- .../mongo/tests/testcase-b/credentials.ts | 2 +- packages/mongo/tests/testcase-b/user.ts | 2 +- packages/mongo/tests/utils.ts | 2 +- packages/mysql/index.ts | 2 +- packages/mysql/package-lock.json | 2 +- packages/mysql/src/mysql-adapter.ts | 2 +- packages/mysql/src/mysql-platform.ts | 4 +- packages/mysql/tests/factory.ts | 2 +- packages/mysql/tests/integration.spec.ts | 2 +- packages/mysql/tests/migration.spec.ts | 2 +- packages/mysql/tests/mysql.spec.ts | 2 +- packages/mysql/tests/transaction.spec.ts | 2 +- packages/orm-browser-api/index.ts | 4 +- packages/orm-browser-api/src/api.ts | 2 +- .../bookstore/user-credentials.ts | 2 +- .../orm-browser-example/bookstore/user.ts | 4 +- packages/orm-browser-example/database.ts | 6 +- .../orm-browser-gui/e2e/src/app.e2e-spec.ts | 2 +- packages/orm-browser-gui/index.ts | 2 +- .../orm-browser-gui/src/app/app.component.ts | 4 +- .../orm-browser-gui/src/app/app.module.ts | 4 +- .../orm-browser-gui/src/app/browser-state.ts | 2 +- .../app/components/browser-cell.component.ts | 4 +- .../components/cell/array-cell.component.ts | 2 +- .../components/cell/binary-cell.component.ts | 2 +- .../src/app/components/cell/cell.component.ts | 4 +- .../components/cell/class-cell.component.ts | 4 +- .../components/cell/json-cell.component.ts | 4 +- .../components/database-graph.component.ts | 2 +- .../database-seed-properties.component.ts | 4 +- .../database-seed-property.component.ts | 2 +- .../app/components/database-seed.component.ts | 8 +- .../components/edit/array-input.component.ts | 2 +- .../components/edit/class-input.component.ts | 4 +- .../app/components/edit/input.component.ts | 4 +- .../src/app/components/filter.compoment.ts | 4 +- .../src/app/components/list.component.ts | 6 +- .../src/app/components/property.component.ts | 2 +- .../src/app/orm-browser.module.ts | 62 ++++----- packages/orm-browser-gui/src/app/registry.ts | 28 ++-- .../app/views/database-browser.component.ts | 6 +- .../app/views/database-commit.component.ts | 4 +- .../src/app/views/database.component.ts | 6 +- packages/orm-browser-gui/src/main.ts | 4 +- packages/orm-browser-gui/src/polyfills.ts | 2 +- packages/orm-browser/package-lock.json | 2 +- packages/orm-integration/index.ts | 44 +++---- packages/orm-integration/src/active-record.ts | 12 +- .../src/active-record/book-tag.ts | 4 +- .../orm-integration/src/active-record/book.ts | 6 +- packages/orm-integration/src/aggregate.ts | 2 +- packages/orm-integration/src/bookstore.ts | 8 +- .../src/bookstore/user-credentials.ts | 2 +- .../orm-integration/src/bookstore/user.ts | 4 +- packages/orm-integration/src/company.ts | 2 +- packages/orm-integration/src/soft-delete.ts | 2 +- packages/orm-integration/src/users.ts | 2 +- packages/orm-integration/src/various.ts | 2 +- packages/orm/browser.ts | 28 ++-- packages/orm/index.ts | 30 ++--- packages/orm/package-lock.json | 2 +- packages/orm/src/database-adapter.ts | 6 +- packages/orm/src/database-registry.ts | 2 +- packages/orm/src/database-session.ts | 18 +-- packages/orm/src/database.ts | 16 +-- packages/orm/src/event.ts | 8 +- packages/orm/src/formatter.ts | 6 +- packages/orm/src/identity-map.ts | 2 +- packages/orm/src/memory-db.ts | 14 +- packages/orm/src/plugin/soft-delete.ts | 10 +- packages/orm/src/query-filter.ts | 2 +- packages/orm/src/query.ts | 10 +- packages/orm/src/reference.ts | 2 +- packages/orm/src/utils.ts | 6 +- .../orm/src/virtual-foreign-key-constraint.ts | 4 +- packages/orm/tests/change-detection.spec.ts | 12 +- packages/orm/tests/database.spec.ts | 4 +- packages/orm/tests/events.spec.ts | 4 +- packages/orm/tests/identity-map.spec.ts | 4 +- packages/orm/tests/query.spec.ts | 8 +- packages/orm/tests/receive-type.spec.ts | 4 +- packages/orm/tests/soft-delete.spec.ts | 10 +- packages/orm/tests/transaction.spec.ts | 4 +- packages/postgres/index.ts | 2 +- packages/postgres/src/postgres-adapter.ts | 2 +- packages/postgres/src/postgres-platform.ts | 6 +- packages/postgres/tests/factory.ts | 2 +- packages/postgres/tests/integration.spec.ts | 2 +- packages/postgres/tests/migration.spec.ts | 2 +- packages/rpc-tcp/index.ts | 4 +- packages/rpc-tcp/package-lock.json | 103 ++++++++------- packages/rpc/index.ts | 28 ++-- packages/rpc/package-lock.json | 2 +- packages/rpc/src/client/action.ts | 12 +- packages/rpc/src/client/client-direct.ts | 4 +- packages/rpc/src/client/client-websocket.ts | 2 +- packages/rpc/src/client/client.ts | 12 +- packages/rpc/src/client/entity-state.ts | 4 +- packages/rpc/src/client/message-subject.ts | 4 +- packages/rpc/src/collection.ts | 2 +- packages/rpc/src/decorators.ts | 2 +- packages/rpc/src/protocol.ts | 4 +- packages/rpc/src/server/action.ts | 12 +- packages/rpc/src/server/kernel.ts | 18 +-- packages/rpc/src/writer.ts | 6 +- packages/rpc/tests/back-controller.spec.ts | 6 +- packages/rpc/tests/case/crud.spec.ts | 6 +- packages/rpc/tests/chunks.spec.ts | 8 +- packages/rpc/tests/collection.spec.ts | 8 +- packages/rpc/tests/controller.spec.ts | 8 +- packages/rpc/tests/entity-state.spec.ts | 10 +- packages/rpc/tests/model.spec.ts | 2 +- packages/rpc/tests/observable.spec.ts | 6 +- packages/rpc/tests/rpc.spec.ts | 12 +- packages/rpc/tests/security.spec.ts | 12 +- packages/skeleton/index.ts | 2 +- packages/skeleton/tests/foo.spec.ts | 2 +- packages/sql/browser.ts | 14 +- packages/sql/commands.ts | 10 +- packages/sql/index.ts | 20 +-- packages/sql/main.ts | 2 +- packages/sql/package-lock.json | 2 +- packages/sql/src/app.module.ts | 10 +- .../sql/src/cli/migration-create-command.ts | 8 +- .../sql/src/cli/migration-down-command.ts | 6 +- .../sql/src/cli/migration-pending-command.ts | 6 +- packages/sql/src/cli/migration-up-command.ts | 6 +- .../sql/src/migration/migration-provider.ts | 2 +- packages/sql/src/platform/default-platform.ts | 10 +- packages/sql/src/reverse/schema-parser.ts | 6 +- packages/sql/src/schema/table.ts | 2 +- packages/sql/src/sql-adapter.ts | 10 +- packages/sql/src/sql-builder.ts | 6 +- packages/sql/src/sql-filter-builder.ts | 2 +- packages/sql/src/test.ts | 4 +- packages/sql/tests/inheritance.spec.ts | 6 +- packages/sql/tests/migration.spec.ts | 6 +- packages/sql/tests/setup.ts | 2 +- packages/sql/tests/sql-query.spec.ts | 12 +- packages/sqlite/index.ts | 6 +- packages/sqlite/package-lock.json | 2 +- packages/sqlite/src/sqlite-adapter.ts | 2 +- packages/sqlite/src/sqlite-platform.ts | 6 +- packages/sqlite/src/sqlite-schema-parser.ts | 2 +- packages/sqlite/tests/factory.ts | 2 +- packages/sqlite/tests/integration.spec.ts | 2 +- packages/sqlite/tests/migration.spec.ts | 2 +- packages/sqlite/tests/sqlite.spec.ts | 6 +- packages/stopwatch/index.ts | 4 +- packages/stopwatch/src/stopwatch.ts | 2 +- packages/stopwatch/tests/stopwatch.spec.ts | 4 +- packages/template/index.ts | 4 +- packages/template/jsx-runtime.ts | 10 +- packages/template/package-lock.json | 2 +- packages/template/src/optimize-tsx.ts | 4 +- packages/template/src/template.ts | 4 +- packages/topsort/index.ts | 6 +- packages/topsort/src/array-sort.ts | 2 +- packages/topsort/src/group-array-sort.ts | 2 +- packages/topsort/tests/group-sort.spec.ts | 6 +- packages/topsort/tests/sort.spec.ts | 6 +- packages/type-angular/index.ts | 2 +- packages/type-angular/package-lock.json | 2 +- packages/type-compiler/index.ts | 4 +- packages/type-compiler/package-lock.json | 2 +- packages/type-compiler/src/compiler.ts | 2 +- packages/type-compiler/src/reflection-ast.ts | 2 +- .../type-compiler/tests/transform.spec.ts | 10 +- .../type-compiler/tests/transpile.spec.ts | 6 +- packages/type-compiler/tests/utils.ts | 2 +- packages/type/package-lock.json | 2 +- packages/type/src/inheritance.ts | 2 +- packages/type/tests/advanced.spec.ts | 8 +- packages/type/tests/change-detection.spec.ts | 12 +- packages/type/tests/compiler.spec.ts | 62 ++++----- packages/type/tests/complex-filter.spec.ts | 4 +- packages/type/tests/conditional-type.spec.ts | 6 +- packages/type/tests/decorator-builder.spec.ts | 2 +- packages/type/tests/default.spec.ts | 4 +- .../type/tests/document-scenario/document.ts | 2 +- packages/type/tests/generics.spec.ts | 8 +- packages/type/tests/integration.spec.ts | 18 +-- packages/type/tests/mixin.spec.ts | 10 +- packages/type/tests/pack.spec.ts | 2 +- packages/type/tests/path.spec.ts | 4 +- .../type/tests/performance-issue1.spec.ts | 10 +- packages/type/tests/processor.spec.ts | 8 +- packages/type/tests/receive-type.spec.ts | 4 +- packages/type/tests/serializer-api.spec.ts | 6 +- packages/type/tests/serializer.spec.ts | 12 +- packages/type/tests/simple-decorator.spec.ts | 4 +- packages/type/tests/snapshot.spec.ts | 6 +- .../type/tests/standard-functions.spec.ts | 4 +- packages/type/tests/stringify.spec.ts | 6 +- .../type/tests/type-infer-runtime.spec.ts | 8 +- .../type/tests/type-serialization.spec.ts | 10 +- packages/type/tests/type-spec.spec.ts | 10 +- packages/type/tests/type.spec.ts | 12 +- packages/type/tests/typedarray.spec.ts | 8 +- packages/type/tests/typeguard.spec.ts | 4 +- packages/type/tests/utils.ts | 4 +- packages/type/tests/validation.spec.ts | 10 +- packages/ui-library/index.ts | 8 +- packages/ui-library/src/angular-module.ts | 10 +- .../components/code-highlight.component.ts | 2 +- packages/workflow/index.ts | 2 +- packages/workflow/tests/workflow.spec.ts | 2 +- 516 files changed, 1538 insertions(+), 1575 deletions(-) diff --git a/packages/angular-universal/index.ts b/packages/angular-universal/index.ts index 24b9d7d28..a869a74d5 100644 --- a/packages/angular-universal/index.ts +++ b/packages/angular-universal/index.ts @@ -8,6 +8,6 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/listener'; -export * from './src/module'; +export * from './src/listener.js'; +export * from './src/module.js'; export { HttpResponse, HttpRequest } from '@deepkit/http'; diff --git a/packages/angular-universal/package-lock.json b/packages/angular-universal/package-lock.json index 3289cd57b..b7c36ed9b 100644 --- a/packages/angular-universal/package-lock.json +++ b/packages/angular-universal/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/angular-universal", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.73", "license": "MIT", "dependencies": { "domino": "^2.0.0" diff --git a/packages/angular-universal/src/listener.ts b/packages/angular-universal/src/listener.ts index b8fd0532e..2adc6baa4 100644 --- a/packages/angular-universal/src/listener.ts +++ b/packages/angular-universal/src/listener.ts @@ -11,11 +11,11 @@ import { HtmlResponse, httpWorkflow, RouteConfig } from '@deepkit/http'; import { eventDispatcher } from '@deepkit/event'; import { Logger } from '@deepkit/logger'; -import { Config } from './config'; +import { Config } from './config.js'; import { join } from 'path'; import { readFileSync } from 'fs'; import type { Router } from '@angular/router'; -import { AngularUniversalModule } from './module'; +import { AngularUniversalModule } from './module.js'; export class AngularUniversalListener { protected serverModule: any; diff --git a/packages/angular-universal/src/module.ts b/packages/angular-universal/src/module.ts index f4a483893..87344e6c3 100644 --- a/packages/angular-universal/src/module.ts +++ b/packages/angular-universal/src/module.ts @@ -9,8 +9,8 @@ */ import { createModule } from '@deepkit/app'; -import { AngularUniversalListener } from './listener'; -import { Config } from './config'; +import { AngularUniversalListener } from './listener.js'; +import { Config } from './config.js'; export class AngularUniversalModule extends createModule({ config: Config, diff --git a/packages/api-console-api/index.ts b/packages/api-console-api/index.ts index 263171971..e06e47edc 100644 --- a/packages/api-console-api/index.ts +++ b/packages/api-console-api/index.ts @@ -8,4 +8,4 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/api'; +export * from './src/api.js'; diff --git a/packages/api-console-gui/index.ts b/packages/api-console-gui/index.ts index 58ea86e98..7f349a004 100644 --- a/packages/api-console-gui/index.ts +++ b/packages/api-console-gui/index.ts @@ -1 +1 @@ -export * from './src/app/api-console.module'; +export * from './src/app/api-console.module.js'; diff --git a/packages/api-console-gui/src/app/api-console.module.ts b/packages/api-console-gui/src/app/api-console.module.ts index 0db4358cf..942df9897 100644 --- a/packages/api-console-gui/src/app/api-console.module.ts +++ b/packages/api-console-gui/src/app/api-console.module.ts @@ -18,30 +18,30 @@ import { DuiWindowModule } from '@deepkit/desktop-ui'; import { FormsModule } from '@angular/forms'; -import { ConsoleComponent } from './views/console.component'; +import { ConsoleComponent } from './views/console.component.js'; import { DeepkitClient } from '@deepkit/rpc'; -import { ControllerClient } from './client'; -import { Store } from './store'; -import { StringInputComponent } from './components/inputs/string-input.component'; -import { InputComponent } from './components/inputs/input.component'; -import { ArrayInputComponent } from './components/inputs/array-input.component'; -import { BinaryInputComponent } from './components/inputs/binary-input.component'; -import { DateInputComponent } from './components/inputs/date-input.component'; -import { EnumInputComponent } from './components/inputs/enum-input.component'; -import { JsonInputComponent } from './components/inputs/json-input.component'; -import { ClassInputComponent } from './components/inputs/class-input.component'; -import { HeadersComponent } from './components/headers.component'; -import { MapInputComponent } from './components/inputs/map-input.component'; -import { UnionInputComponent } from './components/inputs/union-input.component'; -import { EnvironmentDialogComponent } from './components/environment-dialog.component'; +import { ControllerClient } from './client.js'; +import { Store } from './store.js'; +import { StringInputComponent } from './components/inputs/string-input.component.js'; +import { InputComponent } from './components/inputs/input.component.js'; +import { ArrayInputComponent } from './components/inputs/array-input.component.js'; +import { BinaryInputComponent } from './components/inputs/binary-input.component.js'; +import { DateInputComponent } from './components/inputs/date-input.component.js'; +import { EnumInputComponent } from './components/inputs/enum-input.component.js'; +import { JsonInputComponent } from './components/inputs/json-input.component.js'; +import { ClassInputComponent } from './components/inputs/class-input.component.js'; +import { HeadersComponent } from './components/headers.component.js'; +import { MapInputComponent } from './components/inputs/map-input.component.js'; +import { UnionInputComponent } from './components/inputs/union-input.component.js'; +import { EnvironmentDialogComponent } from './components/environment-dialog.component.js'; import { RouterModule } from '@angular/router'; -import { OverviewComponent } from './views/overview.component'; +import { OverviewComponent } from './views/overview.component.js'; import { MarkdownModule } from 'ngx-markdown'; import { DeepkitUIModule } from '@deepkit/ui-library'; -import { HttpRouteDetailComponent } from './views/http/route-detail.component'; -import { HttpRequestsComponent } from './views/http/results.component'; -import { RpcDetailComponent } from './views/rpc/rpc-detail.component'; -import { RpcInspectMessageComponent } from './views/rpc/rpc-inspect-message.component'; +import { HttpRouteDetailComponent } from './views/http/route-detail.component.js'; +import { HttpRequestsComponent } from './views/http/results.component.js'; +import { RpcDetailComponent } from './views/rpc/rpc-detail.component.js'; +import { RpcInspectMessageComponent } from './views/rpc/rpc-inspect-message.component.js'; @NgModule({ declarations: [ diff --git a/packages/api-console-gui/src/app/app.component.ts b/packages/api-console-gui/src/app/app.component.ts index d8828c539..f5bc66b37 100644 --- a/packages/api-console-gui/src/app/app.component.ts +++ b/packages/api-console-gui/src/app/app.component.ts @@ -1,6 +1,6 @@ import { Component, ElementRef } from '@angular/core'; import { DuiApp } from '@deepkit/desktop-ui'; -import { ControllerClient } from './client'; +import { ControllerClient } from './client.js'; @Component({ selector: 'app-root', diff --git a/packages/api-console-gui/src/app/app.module.ts b/packages/api-console-gui/src/app/app.module.ts index 633f0ac8e..7d453eb31 100644 --- a/packages/api-console-gui/src/app/app.module.ts +++ b/packages/api-console-gui/src/app/app.module.ts @@ -1,8 +1,8 @@ import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; -import { AppComponent } from './app.component'; +import { AppComponent } from './app.component.js'; import { RouterModule } from '@angular/router'; -import { ApiConsoleModule } from './api-console.module'; +import { ApiConsoleModule } from './api-console.module.js'; import { DuiAppModule, DuiButtonModule, DuiIconModule, DuiWindowModule } from '@deepkit/desktop-ui'; import { DeepkitUIModule } from '@deepkit/ui-library'; diff --git a/packages/api-console-gui/src/app/components/environment-dialog.component.ts b/packages/api-console-gui/src/app/components/environment-dialog.component.ts index 743db4b3c..6f118975e 100644 --- a/packages/api-console-gui/src/app/components/environment-dialog.component.ts +++ b/packages/api-console-gui/src/app/components/environment-dialog.component.ts @@ -1,5 +1,5 @@ import { Component, Input } from '@angular/core'; -import { Environment, Store } from '../store'; +import { Environment, Store } from '../store.js'; import { arrayRemoveItem, copy } from '@deepkit/core'; import { DialogComponent } from '@deepkit/desktop-ui'; diff --git a/packages/api-console-gui/src/app/components/inputs/array-input.component.ts b/packages/api-console-gui/src/app/components/inputs/array-input.component.ts index 218068fba..5b2dd7801 100644 --- a/packages/api-console-gui/src/app/components/inputs/array-input.component.ts +++ b/packages/api-console-gui/src/app/components/inputs/array-input.component.ts @@ -1,7 +1,7 @@ import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core'; import { arrayMoveItem } from '@deepkit/core'; -import { trackByIndex } from '../../utils'; -import { DataStructure } from '../../store'; +import { trackByIndex } from '../../utils.js'; +import { DataStructure } from '../../store.js'; import { TypeArray } from '@deepkit/type'; @Component({ diff --git a/packages/api-console-gui/src/app/components/inputs/class-input.component.ts b/packages/api-console-gui/src/app/components/inputs/class-input.component.ts index 5381eef66..47338f5d8 100644 --- a/packages/api-console-gui/src/app/components/inputs/class-input.component.ts +++ b/packages/api-console-gui/src/app/components/inputs/class-input.component.ts @@ -1,7 +1,7 @@ import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core'; import { isBackReferenceType, isReferenceType, ReflectionClass, TypeClass, TypeObjectLiteral } from '@deepkit/type'; -import { isReferenceLike, trackByIndex } from '../../utils'; -import { DataStructure } from '../../store'; +import { isReferenceLike, trackByIndex } from '../../utils.js'; +import { DataStructure } from '../../store.js'; @Component({ template: ` diff --git a/packages/api-console-gui/src/app/components/inputs/date-input.component.ts b/packages/api-console-gui/src/app/components/inputs/date-input.component.ts index 224e4359d..752920d4d 100644 --- a/packages/api-console-gui/src/app/components/inputs/date-input.component.ts +++ b/packages/api-console-gui/src/app/components/inputs/date-input.component.ts @@ -1,6 +1,6 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; import { TypeClass } from '@deepkit/type'; -import { DataStructure } from '../../store'; +import { DataStructure } from '../../store.js'; @Component({ template: ` diff --git a/packages/api-console-gui/src/app/components/inputs/enum-input.component.ts b/packages/api-console-gui/src/app/components/inputs/enum-input.component.ts index 4cc8bc8a8..152abe371 100644 --- a/packages/api-console-gui/src/app/components/inputs/enum-input.component.ts +++ b/packages/api-console-gui/src/app/components/inputs/enum-input.component.ts @@ -2,7 +2,7 @@ import { AfterViewInit, Component, EventEmitter, Input, OnChanges, OnDestroy, On import { SelectboxComponent, unsubscribe } from '@deepkit/desktop-ui'; import { TypeEnum } from '@deepkit/type'; import { Subscription } from 'rxjs'; -import { DataStructure } from '../../store'; +import { DataStructure } from '../../store.js'; @Component({ template: ` diff --git a/packages/api-console-gui/src/app/components/inputs/input.component.ts b/packages/api-console-gui/src/app/components/inputs/input.component.ts index eb603ef82..f12786e4c 100644 --- a/packages/api-console-gui/src/app/components/inputs/input.component.ts +++ b/packages/api-console-gui/src/app/components/inputs/input.component.ts @@ -15,9 +15,9 @@ import { import { unsubscribe } from '@deepkit/desktop-ui'; import { hasDefaultValue, isOptional, ReflectionKind, Type } from '@deepkit/type'; import { Subscription } from 'rxjs'; -import { DataStructure } from '../../store'; -import { TypeDecoration, typeToTSJSONInterface } from '../../utils'; -import { inputRegistry } from './registry'; +import { DataStructure } from '../../store.js'; +import { TypeDecoration, typeToTSJSONInterface } from '../../utils.js'; +import { inputRegistry } from './registry.js'; @Component({ selector: 'api-console-input', diff --git a/packages/api-console-gui/src/app/components/inputs/json-input.component.ts b/packages/api-console-gui/src/app/components/inputs/json-input.component.ts index db339e84a..ca9a194ce 100644 --- a/packages/api-console-gui/src/app/components/inputs/json-input.component.ts +++ b/packages/api-console-gui/src/app/components/inputs/json-input.component.ts @@ -1,6 +1,6 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; import { getSerializeFunction, ReflectionKind, serializer, Type } from '@deepkit/type'; -import { DataStructure } from '../../store'; +import { DataStructure } from '../../store.js'; @Component({ template: ` diff --git a/packages/api-console-gui/src/app/components/inputs/map-input.component.ts b/packages/api-console-gui/src/app/components/inputs/map-input.component.ts index d3d883643..a150cc85f 100644 --- a/packages/api-console-gui/src/app/components/inputs/map-input.component.ts +++ b/packages/api-console-gui/src/app/components/inputs/map-input.component.ts @@ -1,7 +1,7 @@ import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core'; import { getKeyType, getValueType, Type, TypeClass, TypeObjectLiteral } from '@deepkit/type'; -import { trackByIndex } from '../../utils'; -import { DataStructure } from '../../store'; +import { trackByIndex } from '../../utils.js'; +import { DataStructure } from '../../store.js'; import { arrayMoveItem } from '@deepkit/core'; @Component({ diff --git a/packages/api-console-gui/src/app/components/inputs/registry.ts b/packages/api-console-gui/src/app/components/inputs/registry.ts index d16d5ea70..19d0636c3 100644 --- a/packages/api-console-gui/src/app/components/inputs/registry.ts +++ b/packages/api-console-gui/src/app/components/inputs/registry.ts @@ -1,14 +1,14 @@ import { isMapType, isMongoIdType, isSetType, isUUIDType, ReflectionKind, TypeRegistry } from '@deepkit/type'; import { ClassType, getClassName } from '@deepkit/core'; -import { StringInputComponent } from './string-input.component'; -import { ArrayInputComponent } from './array-input.component'; -import { EnumInputComponent } from './enum-input.component'; -import { DateInputComponent } from './date-input.component'; -import { JsonInputComponent } from './json-input.component'; -import { BinaryInputComponent } from './binary-input.component'; -import { ClassInputComponent } from './class-input.component'; -import { MapInputComponent } from './map-input.component'; -import { UnionInputComponent } from './union-input.component'; +import { StringInputComponent } from './string-input.component.js'; +import { ArrayInputComponent } from './array-input.component.js'; +import { EnumInputComponent } from './enum-input.component.js'; +import { DateInputComponent } from './date-input.component.js'; +import { JsonInputComponent } from './json-input.component.js'; +import { BinaryInputComponent } from './binary-input.component.js'; +import { ClassInputComponent } from './class-input.component.js'; +import { MapInputComponent } from './map-input.component.js'; +import { UnionInputComponent } from './union-input.component.js'; export const inputRegistry = new TypeRegistry(); diff --git a/packages/api-console-gui/src/app/components/inputs/string-input.component.ts b/packages/api-console-gui/src/app/components/inputs/string-input.component.ts index eda7cbd8e..a8bbd8d9f 100644 --- a/packages/api-console-gui/src/app/components/inputs/string-input.component.ts +++ b/packages/api-console-gui/src/app/components/inputs/string-input.component.ts @@ -1,7 +1,7 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; import { ReflectionKind, Type } from '@deepkit/type'; -import { DataStructure } from '../../store'; -import { TypeDecoration } from '../../utils'; +import { DataStructure } from '../../store.js'; +import { TypeDecoration } from '../../utils.js'; @Component({ template: ` diff --git a/packages/api-console-gui/src/app/components/inputs/union-input.component.ts b/packages/api-console-gui/src/app/components/inputs/union-input.component.ts index 6dedb64fe..86dac91d8 100644 --- a/packages/api-console-gui/src/app/components/inputs/union-input.component.ts +++ b/packages/api-console-gui/src/app/components/inputs/union-input.component.ts @@ -1,7 +1,7 @@ import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core'; import { isType, ReflectionKind, stringifyType, Type, TypeUnion } from '@deepkit/type'; -import { DataStructure } from '../../store'; -import { trackByIndex } from '../../utils'; +import { DataStructure } from '../../store.js'; +import { trackByIndex } from '../../utils.js'; interface Entry { type?: Type; diff --git a/packages/api-console-gui/src/app/views/console.component.ts b/packages/api-console-gui/src/app/views/console.component.ts index edb8985cb..fbf787031 100644 --- a/packages/api-console-gui/src/app/views/console.component.ts +++ b/packages/api-console-gui/src/app/views/console.component.ts @@ -1,16 +1,16 @@ import { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core'; -import { ControllerClient } from '../client'; +import { ControllerClient } from '../client.js'; import { ApiAction, ApiEntryPoints, ApiRoute } from '@deepkit/api-console-api'; -import { methods, trackByIndex } from '../utils'; -import { Environment, RouteState, Store } from '../store'; +import { methods, trackByIndex } from '../utils.js'; +import { Environment, RouteState, Store } from '../store.js'; import { copy } from '@deepkit/core'; import { Subscription } from 'rxjs'; import { DuiDialog } from '@deepkit/desktop-ui'; -import { EnvironmentDialogComponent } from '../components/environment-dialog.component'; -import { filterAndSortActions, filterAndSortRoutes } from './view-helper'; +import { EnvironmentDialogComponent } from '../components/environment-dialog.component.js'; +import { filterAndSortActions, filterAndSortRoutes } from './view-helper.js'; import { ActivatedRoute, Router } from '@angular/router'; -import { HttpRouteDetailComponent } from './http/route-detail.component'; -import { HttpRequestsComponent } from './http/results.component'; +import { HttpRouteDetailComponent } from './http/route-detail.component.js'; +import { HttpRequestsComponent } from './http/results.component.js'; import { ReflectionKind, stringifyType } from '@deepkit/type'; @Component({ diff --git a/packages/api-console-gui/src/app/views/http/results.component.ts b/packages/api-console-gui/src/app/views/http/results.component.ts index 94d13ac77..8be3e688a 100644 --- a/packages/api-console-gui/src/app/views/http/results.component.ts +++ b/packages/api-console-gui/src/app/views/http/results.component.ts @@ -1,9 +1,9 @@ import { ChangeDetectorRef, Component, EventEmitter, Output } from '@angular/core'; -import { ControllerClient } from '../../client'; -import { Request, Store } from '../../store'; +import { ControllerClient } from '../../client.js'; +import { Request, Store } from '../../store.js'; import { DuiDialog } from '@deepkit/desktop-ui'; import { Router } from '@angular/router'; -import { trackByIndex } from '../../utils'; +import { trackByIndex } from '../../utils.js'; import { ApiRoute } from '@deepkit/api-console-api'; @Component({ diff --git a/packages/api-console-gui/src/app/views/http/route-detail.component.ts b/packages/api-console-gui/src/app/views/http/route-detail.component.ts index fb2ba3104..2107ee6ba 100644 --- a/packages/api-console-gui/src/app/views/http/route-detail.component.ts +++ b/packages/api-console-gui/src/app/views/http/route-detail.component.ts @@ -1,11 +1,11 @@ import { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, Output } from '@angular/core'; import { ApiRoute } from '@deepkit/api-console-api'; import { isArray, isObject } from '@deepkit/core'; -import { extractDataStructure, extractDataStructureFromSchema, Request, RouteState, Store } from '../../store'; -import { ControllerClient } from '../../client'; +import { extractDataStructure, extractDataStructureFromSchema, Request, RouteState, Store } from '../../store.js'; +import { ControllerClient } from '../../client.js'; import { Router } from '@angular/router'; import { DuiDialog } from '@deepkit/desktop-ui/src/index'; -import { headerStatusCodes, methods, trackByIndex, typeToTSJSONInterface } from '../../utils'; +import { headerStatusCodes, methods, trackByIndex, typeToTSJSONInterface } from '../../utils.js'; import { getTypeJitContainer } from '@deepkit/type'; @Component({ diff --git a/packages/api-console-gui/src/app/views/overview.component.ts b/packages/api-console-gui/src/app/views/overview.component.ts index 60fcc82d6..36cefa30c 100644 --- a/packages/api-console-gui/src/app/views/overview.component.ts +++ b/packages/api-console-gui/src/app/views/overview.component.ts @@ -1,8 +1,8 @@ import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; -import { ControllerClient } from '../client'; +import { ControllerClient } from '../client.js'; import { ApiDocument, ApiRoute } from '@deepkit/api-console-api'; -import { filterAndSortRoutes } from './view-helper'; -import { headerStatusCodes, trackByIndex, typeToTSJSONInterface } from '../utils'; +import { filterAndSortRoutes } from './view-helper.js'; +import { headerStatusCodes, trackByIndex, typeToTSJSONInterface } from '../utils.js'; import { Subscriptions } from '@deepkit/core-rxjs'; import { typeSettings } from '@deepkit/type'; diff --git a/packages/api-console-gui/src/app/views/rpc/rpc-detail.component.ts b/packages/api-console-gui/src/app/views/rpc/rpc-detail.component.ts index 5faae7561..f285f764f 100644 --- a/packages/api-console-gui/src/app/views/rpc/rpc-detail.component.ts +++ b/packages/api-console-gui/src/app/views/rpc/rpc-detail.component.ts @@ -1,12 +1,12 @@ import { ChangeDetectorRef, Component, Input, OnChanges } from '@angular/core'; import { trackByIndex } from '@deepkit/ui-library'; import { ApiAction } from '@deepkit/api-console-api'; -import { extractDataStructureFromParameters, RpcActionState, RpcClientConfiguration, RpcExecution, RpcExecutionSubscription, Store } from '../../store'; +import { extractDataStructureFromParameters, RpcActionState, RpcClientConfiguration, RpcExecution, RpcExecutionSubscription, Store } from '../../store.js'; import { DuiDialog } from '@deepkit/desktop-ui'; import { DisconnectableObservable, RpcWebSocketClient } from '@deepkit/rpc'; -import { ControllerClient } from '../../client'; +import { ControllerClient } from '../../client.js'; import { Observable, Subject } from 'rxjs'; -import { inspect, typeToTSJSONInterface } from '../../utils'; +import { inspect, typeToTSJSONInterface } from '../../utils.js'; import { isSubject } from '@deepkit/core-rxjs'; @Component({ diff --git a/packages/api-console-gui/src/app/views/rpc/rpc-inspect-message.component.ts b/packages/api-console-gui/src/app/views/rpc/rpc-inspect-message.component.ts index c03f0c3db..4985ff5e7 100644 --- a/packages/api-console-gui/src/app/views/rpc/rpc-inspect-message.component.ts +++ b/packages/api-console-gui/src/app/views/rpc/rpc-inspect-message.component.ts @@ -1,7 +1,7 @@ import { RpcClientEventIncomingMessage, RpcClientEventOutgoingMessage, RpcTypes } from '@deepkit/rpc'; import { Component, Input, OnChanges } from '@angular/core'; import { trackByIndex } from '@deepkit/ui-library'; -import { inspect } from '../../utils'; +import { inspect } from '../../utils.js'; @Component({ selector: 'rpc-inspect-message', diff --git a/packages/api-console-gui/src/main.ts b/packages/api-console-gui/src/main.ts index 938583c38..c9bdc8d0b 100644 --- a/packages/api-console-gui/src/main.ts +++ b/packages/api-console-gui/src/main.ts @@ -1,8 +1,8 @@ import { enableProdMode } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; -import { AppModule } from './app/app.module'; -import { environment } from './environments/environment'; +import { AppModule } from './app/app.module.js'; +import { environment } from './environments/environment.js'; if (environment.production) { enableProdMode(); diff --git a/packages/api-console-gui/src/polyfills.ts b/packages/api-console-gui/src/polyfills.ts index bed9fada2..d1b369621 100644 --- a/packages/api-console-gui/src/polyfills.ts +++ b/packages/api-console-gui/src/polyfills.ts @@ -37,7 +37,7 @@ * will put import in the top of bundle, so user need to create a separate file * in this directory (for example: zone-flags.ts), and put the following flags * into that file, and then add the following code before importing zone.js. - * import './zone-flags'; + * import './zone-flags.js'; * * The flags allowed in zone-flags.ts are listed here. * diff --git a/packages/api-console-module/index.ts b/packages/api-console-module/index.ts index 0f51f1dc6..7b732405e 100644 --- a/packages/api-console-module/index.ts +++ b/packages/api-console-module/index.ts @@ -1 +1 @@ -export * from './src/module'; +export * from './src/module.js'; diff --git a/packages/api-console-module/package-lock.json b/packages/api-console-module/package-lock.json index dd001fa34..21c2b000c 100644 --- a/packages/api-console-module/package-lock.json +++ b/packages/api-console-module/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/api-console-module", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.73", "license": "MIT", "devDependencies": { "rxjs": "~6.6.0" diff --git a/packages/api-console-module/src/controller.ts b/packages/api-console-module/src/controller.ts index 3a3866733..40957b2f1 100644 --- a/packages/api-console-module/src/controller.ts +++ b/packages/api-console-module/src/controller.ts @@ -2,7 +2,7 @@ import { ApiAction, ApiConsoleApi, ApiDocument, ApiEntryPoints, ApiRoute, ApiRou import { getActions, rpc, RpcKernel } from '@deepkit/rpc'; import { HttpRouteFilter, HttpRouterFilterResolver, parseRouteControllerAction } from '@deepkit/http'; import { ClassType, getClassName, isClass } from '@deepkit/core'; -import { Config } from './module.config'; +import { Config } from './module.config.js'; import { readFile } from 'fs/promises'; import { ReflectionClass, ReflectionKind, serializeType, Type, TypeClass, TypeObjectLiteral, TypePropertySignature } from '@deepkit/type'; diff --git a/packages/api-console-module/src/module.ts b/packages/api-console-module/src/module.ts index 2056a6287..7da17e961 100644 --- a/packages/api-console-module/src/module.ts +++ b/packages/api-console-module/src/module.ts @@ -1,9 +1,9 @@ import { createModule, findParentPath } from '@deepkit/app'; import { HttpRouteFilter, normalizeDirectory, registerStaticHttpController } from '@deepkit/http'; import { ApiConsoleApi } from '@deepkit/api-console-api'; -import { Config } from './module.config'; +import { Config } from './module.config.js'; import { rpc } from '@deepkit/rpc'; -import { ApiConsoleController } from './controller'; +import { ApiConsoleController } from './controller.js'; import { dirname } from 'path'; import { getCurrentFileName } from '@deepkit/core'; diff --git a/packages/api-console-module/tests/module.spec.ts b/packages/api-console-module/tests/module.spec.ts index 3b1279ff6..de8b6477f 100644 --- a/packages/api-console-module/tests/module.spec.ts +++ b/packages/api-console-module/tests/module.spec.ts @@ -1,6 +1,6 @@ import { App } from '@deepkit/app'; import { expect, test } from '@jest/globals'; -import { ApiConsoleModule } from '../src/module'; +import { ApiConsoleModule } from '../src/module.js'; import { HttpKernel, HttpModule, HttpRequest } from '@deepkit/http'; import { ApiEntryPoints } from '@deepkit/api-console-gui/src/api'; import { reflect, ReflectionKind, TypeObjectLiteral } from '@deepkit/type'; diff --git a/packages/app/index.ts b/packages/app/index.ts index c04b1cbe1..e054cbd9c 100644 --- a/packages/app/index.ts +++ b/packages/app/index.ts @@ -1,6 +1,6 @@ -export * from './src/app'; -export * from './src/command'; -export * from './src/configuration'; -export * from './src/module'; -export * from './src/service-container'; -export * from './src/utils'; +export * from './src/app.js'; +export * from './src/command.js'; +export * from './src/configuration.js'; +export * from './src/module.js'; +export * from './src/service-container.js'; +export * from './src/utils.js'; diff --git a/packages/app/package-lock.json b/packages/app/package-lock.json index cec65abee..fd8769314 100644 --- a/packages/app/package-lock.json +++ b/packages/app/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/app", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "dependencies": { "@oclif/command": "^1.8.16", diff --git a/packages/app/src/app.ts b/packages/app/src/app.ts index 69ef813f6..10df71433 100644 --- a/packages/app/src/app.ts +++ b/packages/app/src/app.ts @@ -9,15 +9,15 @@ */ import { ClassType, ExtractClassType, getCurrentFileName, isFunction, isObject, setPathValue } from '@deepkit/core'; -import { ConfigLoader, ServiceContainer } from './service-container'; +import { ConfigLoader, ServiceContainer } from './service-container.js'; import { InjectorContext, ResolveToken, Token } from '@deepkit/injector'; -import { AppModule, RootModuleDefinition } from './module'; +import { AppModule, RootModuleDefinition } from './module.js'; import { Command, Config, Options } from '@oclif/config'; import { basename, dirname, relative } from 'path'; import { Main } from '@oclif/command'; import { ExitError } from '@oclif/errors'; -import { buildOclifCommand } from './command'; -import { EnvConfiguration } from './configuration'; +import { buildOclifCommand } from './command.js'; +import { EnvConfiguration } from './configuration.js'; import { EventDispatcher, EventListener, EventListenerCallback, EventOfEventToken, EventToken } from '@deepkit/event'; import { ReceiveType, ReflectionClass, ReflectionKind } from '@deepkit/type'; diff --git a/packages/app/src/service-container.ts b/packages/app/src/service-container.ts index 9c8e83456..057fa795d 100644 --- a/packages/app/src/service-container.ts +++ b/packages/app/src/service-container.ts @@ -10,9 +10,9 @@ import { ClassType, getClassName, isClass, isFunction } from '@deepkit/core'; import { EventDispatcher } from '@deepkit/event'; -import { AppModule, ConfigurationInvalidError, MiddlewareConfig, ModuleDefinition } from './module'; +import { AppModule, ConfigurationInvalidError, MiddlewareConfig, ModuleDefinition } from './module.js'; import { Injector, InjectorContext, InjectorModule, isProvided, ProviderWithScope, resolveToken, Token } from '@deepkit/injector'; -import { cli } from './command'; +import { cli } from './command.js'; import { WorkflowDefinition } from '@deepkit/workflow'; import { deserialize, ReflectionClass, validate } from '@deepkit/type'; diff --git a/packages/app/tests/application.spec.ts b/packages/app/tests/application.spec.ts index fac820b4a..bd78bc5c8 100644 --- a/packages/app/tests/application.spec.ts +++ b/packages/app/tests/application.spec.ts @@ -1,12 +1,12 @@ import { beforeEach, expect, test } from '@jest/globals'; -import { App } from '../src/app'; +import { App } from '../src/app.js'; import { Inject, ProviderWithScope, Token } from '@deepkit/injector'; -import { AppModule, createModule } from '../src/module'; +import { AppModule, createModule } from '../src/module.js'; import { BaseEvent, EventDispatcher, eventDispatcher, EventToken, DataEventToken } from '@deepkit/event'; -import { cli, Command } from '../src/command'; -import { ClassType } from '../../core'; +import { cli, Command } from '../src/command.js'; +import { ClassType } from '../../core/index.js'; import { isClass } from '@deepkit/core'; -import { ServiceContainer } from '../src/service-container'; +import { ServiceContainer } from '../src/service-container.js'; import { DataEvent } from '@deepkit/event'; Error.stackTraceLimit = 100; diff --git a/packages/app/tests/command.spec.ts b/packages/app/tests/command.spec.ts index 9a4ab5cc8..a20862fad 100644 --- a/packages/app/tests/command.spec.ts +++ b/packages/app/tests/command.spec.ts @@ -1,7 +1,7 @@ import { expect, test } from '@jest/globals'; -import { App } from '../src/app'; -import { arg, cli, Command } from '../src/command'; -import { ServiceContainer } from '../src/service-container'; +import { App } from '../src/app.js'; +import { arg, cli, Command } from '../src/command.js'; +import { ServiceContainer } from '../src/service-container.js'; @cli.controller('my') class MyCli implements Command { diff --git a/packages/app/tests/docs.spec.ts b/packages/app/tests/docs.spec.ts index e6251730a..0c5829b74 100644 --- a/packages/app/tests/docs.spec.ts +++ b/packages/app/tests/docs.spec.ts @@ -1,7 +1,7 @@ import { expect, test } from '@jest/globals'; import { ClassType } from '@deepkit/core'; -import { App } from '../src/app'; -import { AppModule, createModule } from '../src/module'; +import { App } from '../src/app.js'; +import { AppModule, createModule } from '../src/module.js'; import { InjectorContext } from '@deepkit/injector'; test('controller instantiation', () => { diff --git a/packages/app/tests/module-basics.spec.ts b/packages/app/tests/module-basics.spec.ts index 9e89dd4d2..10f925a20 100644 --- a/packages/app/tests/module-basics.spec.ts +++ b/packages/app/tests/module-basics.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; -import { createModule } from '../src/module'; -import { ServiceContainer } from '../src/service-container'; +import { createModule } from '../src/module.js'; +import { ServiceContainer } from '../src/service-container.js'; import { assert, IsExact } from 'conditional-type-checks'; test('strict types config', () => { diff --git a/packages/app/tests/module.spec.ts b/packages/app/tests/module.spec.ts index 81a75ced3..d33512ad9 100644 --- a/packages/app/tests/module.spec.ts +++ b/packages/app/tests/module.spec.ts @@ -1,9 +1,9 @@ import { expect, test } from '@jest/globals'; import { Minimum, MinLength } from '@deepkit/type'; import { injectorReference } from '@deepkit/injector'; -import { ServiceContainer } from '../src/service-container'; -import { ClassType } from '@deepkit/core'; -import { AppModule, createModule, FunctionalModuleFactory } from '../src/module'; +import { ServiceContainer } from '../src/service-container.js'; +import { ClassType } from '@deepkit/core.js'; +import { AppModule, createModule, FunctionalModuleFactory } from '../src/module.js'; class MyModuleConfig { param1!: string & MinLength<5>; diff --git a/packages/app/tests/service-container.spec.ts b/packages/app/tests/service-container.spec.ts index 61e92feba..56298f21e 100644 --- a/packages/app/tests/service-container.spec.ts +++ b/packages/app/tests/service-container.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; -import { AppModule, createModule } from '../src/module'; -import { ServiceContainer } from '../src/service-container'; +import { AppModule, createModule } from '../src/module.js'; +import { ServiceContainer } from '../src/service-container.js'; test('simple setup with import and overwrite', () => { class Connection { diff --git a/packages/benchmark/index.ts b/packages/benchmark/index.ts index e491b5b51..e06703e8c 100644 --- a/packages/benchmark/index.ts +++ b/packages/benchmark/index.ts @@ -1,7 +1,7 @@ import { mkdirSync, writeFileSync } from 'fs'; import { join } from 'path'; import * as vm from 'vm'; -import { BenchmarkRun } from './model'; +import { BenchmarkRun } from './model.js'; import * as si from 'systeminformation'; import { execSync } from 'child_process'; import { serialize } from '@deepkit/type'; diff --git a/packages/benchmark/src/broker/broker-get-set.bench.ts b/packages/benchmark/src/broker/broker-get-set.bench.ts index 770eedc54..feddbc8ea 100644 --- a/packages/benchmark/src/broker/broker-get-set.bench.ts +++ b/packages/benchmark/src/broker/broker-get-set.bench.ts @@ -10,7 +10,7 @@ import { BrokerDirectClient, BrokerKernel } from '@deepkit/broker'; import { t } from '@deepkit/type'; -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; export async function main() { const kernel = new BrokerKernel(); diff --git a/packages/benchmark/src/broker/broker-lock.bench.ts b/packages/benchmark/src/broker/broker-lock.bench.ts index c3ecfc504..97ebef552 100644 --- a/packages/benchmark/src/broker/broker-lock.bench.ts +++ b/packages/benchmark/src/broker/broker-lock.bench.ts @@ -9,7 +9,7 @@ */ import { BrokerDirectClient, BrokerKernel } from '@deepkit/broker'; -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; export async function main() { const kernel = new BrokerKernel(); diff --git a/packages/benchmark/src/broker/broker-pub-sub.bench.ts b/packages/benchmark/src/broker/broker-pub-sub.bench.ts index bf089fee8..e6819c970 100644 --- a/packages/benchmark/src/broker/broker-pub-sub.bench.ts +++ b/packages/benchmark/src/broker/broker-pub-sub.bench.ts @@ -11,7 +11,7 @@ import { BrokerDirectClient, BrokerKernel } from "@deepkit/broker"; import { t } from "@deepkit/type"; import 'reflect-metadata'; -import { BenchSuite } from "../bench"; +import { BenchSuite } from "../bench.js"; export async function main() { const kernel = new BrokerKernel(); diff --git a/packages/benchmark/src/broker/node-redis.bench.ts b/packages/benchmark/src/broker/node-redis.bench.ts index 5d289e976..5a75b3db7 100644 --- a/packages/benchmark/src/broker/node-redis.bench.ts +++ b/packages/benchmark/src/broker/node-redis.bench.ts @@ -1,4 +1,4 @@ -import { BenchSuite } from "../bench"; +import { BenchSuite } from "../bench.js"; const redis = require("redis"); const client = redis.createClient(); @@ -37,4 +37,4 @@ export async function main() { await suite.runAsync(); client.end(); -} \ No newline at end of file +} diff --git a/packages/benchmark/src/broker/tcp-broker.bench.ts b/packages/benchmark/src/broker/tcp-broker.bench.ts index 2e979ad9d..709dfefb9 100644 --- a/packages/benchmark/src/broker/tcp-broker.bench.ts +++ b/packages/benchmark/src/broker/tcp-broker.bench.ts @@ -1,7 +1,7 @@ import { BrokerClient } from "@deepkit/broker"; import { TcpRpcClientAdapter } from "@deepkit/rpc-tcp"; import { t } from "@deepkit/type"; -import { BenchSuite } from "../bench"; +import { BenchSuite } from "../bench.js"; class Model { @t ready?: boolean; diff --git a/packages/benchmark/src/bson/hydration.bench.ts b/packages/benchmark/src/bson/hydration.bench.ts index 7e2e77c92..a0706e9fb 100644 --- a/packages/benchmark/src/bson/hydration.bench.ts +++ b/packages/benchmark/src/bson/hydration.bench.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; export async function main() { const suite = new BenchSuite(`Object hydration`); diff --git a/packages/benchmark/src/bson/parser.bench.ts b/packages/benchmark/src/bson/parser.bench.ts index f3ffae2b9..024a7dddd 100644 --- a/packages/benchmark/src/bson/parser.bench.ts +++ b/packages/benchmark/src/bson/parser.bench.ts @@ -10,7 +10,7 @@ import * as bson from 'bson'; import * as bsonExt from 'bson-ext'; -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; import { MongoId, t } from '@deepkit/type'; import { getBSONDeserializer, Parser } from '@deepkit/bson'; diff --git a/packages/benchmark/src/bson/serializer.bench.ts b/packages/benchmark/src/bson/serializer.bench.ts index 69d1903e0..f5c9c51da 100644 --- a/packages/benchmark/src/bson/serializer.bench.ts +++ b/packages/benchmark/src/bson/serializer.bench.ts @@ -10,7 +10,7 @@ import * as bson from 'bson'; import * as bsonExt from 'bson-ext'; -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; import { t } from '@deepkit/type'; import { createBSONSizer, getBSONSerializer } from '@deepkit/bson'; diff --git a/packages/benchmark/src/bson/utf8.bench.ts b/packages/benchmark/src/bson/utf8.bench.ts index 86c65f7fe..8416b02fc 100644 --- a/packages/benchmark/src/bson/utf8.bench.ts +++ b/packages/benchmark/src/bson/utf8.bench.ts @@ -9,9 +9,9 @@ */ import { buildStringDecoder, decodeUTF8, decodeUTF8Short, Writer } from '@deepkit/bson'; -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; import { performance } from 'perf_hooks'; -import { GetOptimizationStatus } from '../utils'; +import { GetOptimizationStatus } from '../utils.js'; function parseUtf8(buffer: Uint8Array, size: number): string { const coded = new Uint16Array(size); diff --git a/packages/benchmark/src/framework/core.bench.ts b/packages/benchmark/src/framework/core.bench.ts index 1f15384d1..3fab0aaac 100644 --- a/packages/benchmark/src/framework/core.bench.ts +++ b/packages/benchmark/src/framework/core.bench.ts @@ -9,7 +9,7 @@ */ import { asyncOperation } from '@deepkit/core'; -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; export async function main() { diff --git a/packages/benchmark/src/framework/event.bench.ts b/packages/benchmark/src/framework/event.bench.ts index b86364a9b..d77760902 100644 --- a/packages/benchmark/src/framework/event.bench.ts +++ b/packages/benchmark/src/framework/event.bench.ts @@ -9,7 +9,7 @@ */ import { BaseEvent, eventDispatcher, EventDispatcher, EventToken, InjectorContext } from '@deepkit/framework'; -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; export async function main() { const bench = new BenchSuite('event'); diff --git a/packages/benchmark/src/framework/http.bench.ts b/packages/benchmark/src/framework/http.bench.ts index 43790a576..03b7b83fd 100644 --- a/packages/benchmark/src/framework/http.bench.ts +++ b/packages/benchmark/src/framework/http.bench.ts @@ -10,7 +10,7 @@ import 'reflect-metadata'; import { FrameworkModule } from '@deepkit/framework'; -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; import { Socket } from 'net'; import { AppModule, ServiceContainer } from '@deepkit/app'; import { http, HttpKernel, HttpRequest, HttpResponse } from '@deepkit/http'; diff --git a/packages/benchmark/src/framework/injector.bench.ts b/packages/benchmark/src/framework/injector.bench.ts index 4c9c7a929..f2a59107e 100644 --- a/packages/benchmark/src/framework/injector.bench.ts +++ b/packages/benchmark/src/framework/injector.bench.ts @@ -9,7 +9,7 @@ */ import { injectable, Injector, InjectorContext } from '@deepkit/injector'; -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; export async function main() { class Database { } diff --git a/packages/benchmark/src/framework/injector2.bench.ts b/packages/benchmark/src/framework/injector2.bench.ts index a89fc34b0..5855a4cb5 100644 --- a/packages/benchmark/src/framework/injector2.bench.ts +++ b/packages/benchmark/src/framework/injector2.bench.ts @@ -9,8 +9,8 @@ */ import { InjectorContext, InjectorModule } from '@deepkit/injector'; -import { BenchSuite } from '../bench'; -import { GetOptimizationStatus } from '../utils'; +import { BenchSuite } from '../bench.js'; +import { GetOptimizationStatus } from '../utils.js'; export async function main() { const bench = new BenchSuite('injector2', 1); diff --git a/packages/benchmark/src/framework/router/resolve.bench.ts b/packages/benchmark/src/framework/router/resolve.bench.ts index 0a4fd92c0..8e8b1b5a0 100644 --- a/packages/benchmark/src/framework/router/resolve.bench.ts +++ b/packages/benchmark/src/framework/router/resolve.bench.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ import { http, Router } from '@deepkit/http'; -import { BenchSuite } from '../../bench'; +import { BenchSuite } from '../../bench.js'; export async function main() { diff --git a/packages/benchmark/src/jsperf.spec.ts b/packages/benchmark/src/jsperf.spec.ts index 20d48fcf5..86dda21e9 100644 --- a/packages/benchmark/src/jsperf.spec.ts +++ b/packages/benchmark/src/jsperf.spec.ts @@ -10,7 +10,7 @@ import { expect, test } from '@jest/globals'; import { f, getClassSchema, jsonSerializer, Patcher } from '@deepkit/type'; -import { BenchSuite } from './bench'; +import { BenchSuite } from './bench.js'; test.only('nope', () => { }); diff --git a/packages/benchmark/src/language/bigint.bench.ts b/packages/benchmark/src/language/bigint.bench.ts index adb0a4d44..59a8a0f84 100644 --- a/packages/benchmark/src/language/bigint.bench.ts +++ b/packages/benchmark/src/language/bigint.bench.ts @@ -1,4 +1,4 @@ -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; import { createHash } from 'crypto'; function bufToBigint(buf: Buffer): bigint { diff --git a/packages/benchmark/src/language/crypto.bench.ts b/packages/benchmark/src/language/crypto.bench.ts index f49378b63..aee0ad2db 100644 --- a/packages/benchmark/src/language/crypto.bench.ts +++ b/packages/benchmark/src/language/crypto.bench.ts @@ -9,7 +9,7 @@ */ import { randomBytes } from 'crypto'; -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; export function main() { const bench = new BenchSuite('crypto'); diff --git a/packages/benchmark/src/language/is-array.bench.ts b/packages/benchmark/src/language/is-array.bench.ts index fa94d506e..da854f54b 100644 --- a/packages/benchmark/src/language/is-array.bench.ts +++ b/packages/benchmark/src/language/is-array.bench.ts @@ -9,7 +9,7 @@ */ import { isArray } from '@deepkit/core'; -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; export async function main() { const suite = new BenchSuite('isArray', 3); diff --git a/packages/benchmark/src/language/map.bench.ts b/packages/benchmark/src/language/map.bench.ts index 4ebea5a11..752a08e95 100644 --- a/packages/benchmark/src/language/map.bench.ts +++ b/packages/benchmark/src/language/map.bench.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { BenchSuite } from "../bench"; +import { BenchSuite } from "../bench.js"; export function main() { diff --git a/packages/benchmark/src/language/pass-args.bench.ts b/packages/benchmark/src/language/pass-args.bench.ts index ac584108f..963cd7503 100644 --- a/packages/benchmark/src/language/pass-args.bench.ts +++ b/packages/benchmark/src/language/pass-args.bench.ts @@ -1,4 +1,4 @@ -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; export function main() { const bench = new BenchSuite('map'); diff --git a/packages/benchmark/src/language/prototype.bench.ts b/packages/benchmark/src/language/prototype.bench.ts index e87bbaec1..7de65a936 100644 --- a/packages/benchmark/src/language/prototype.bench.ts +++ b/packages/benchmark/src/language/prototype.bench.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; export function main() { const bench = new BenchSuite('prototype'); diff --git a/packages/benchmark/src/language/string.bench.ts b/packages/benchmark/src/language/string.bench.ts index 3721fabfa..6497e85a1 100644 --- a/packages/benchmark/src/language/string.bench.ts +++ b/packages/benchmark/src/language/string.bench.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; export function main() { const bench = new BenchSuite('string'); diff --git a/packages/benchmark/src/orm/change-detection.bench.ts b/packages/benchmark/src/orm/change-detection.bench.ts index 7880ae81b..a454acb12 100644 --- a/packages/benchmark/src/orm/change-detection.bench.ts +++ b/packages/benchmark/src/orm/change-detection.bench.ts @@ -10,7 +10,7 @@ import { plainToClass, t } from '@deepkit/type'; import { buildChanges, getClassState, getInstanceState, getJITConverterForSnapshot } from '@deepkit/orm'; -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; export async function main() { const schema = t.schema({ diff --git a/packages/benchmark/src/orm/converter.benc.ts b/packages/benchmark/src/orm/converter.benc.ts index 41a65a836..8f64bf2f1 100644 --- a/packages/benchmark/src/orm/converter.benc.ts +++ b/packages/benchmark/src/orm/converter.benc.ts @@ -10,7 +10,7 @@ import { getClassSchema, jsonSerializer, t } from '@deepkit/type'; import { getJITConverterForSnapshot, getPrimaryKeyExtractor, getPrimaryKeyHashGenerator } from '@deepkit/orm'; -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; class Image { @t title: string = ''; diff --git a/packages/benchmark/src/orm/end-to-end/mongo/deepkit-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/mongo/deepkit-10k.bench.ts index befb6cd20..803e0de97 100644 --- a/packages/benchmark/src/orm/end-to-end/mongo/deepkit-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/mongo/deepkit-10k.bench.ts @@ -11,7 +11,7 @@ import { MongoId, PrimaryKey } from '@deepkit/type'; import { Database } from '@deepkit/orm'; import { MongoDatabaseAdapter } from '@deepkit/mongo'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; export class Model { public _id: MongoId & PrimaryKey = ''; diff --git a/packages/benchmark/src/orm/end-to-end/mongo/mikro-orm-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/mongo/mikro-orm-10k.bench.ts index a3a4f1f70..9d6b6ea70 100644 --- a/packages/benchmark/src/orm/end-to-end/mongo/mikro-orm-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/mongo/mikro-orm-10k.bench.ts @@ -10,7 +10,7 @@ import 'reflect-metadata'; import { Entity as MikroEntity, MikroORM, PrimaryKey, Property, ReflectMetadataProvider } from 'mikro-orm'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; @MikroEntity({ collection: 'mikro' }) export class MikroModel { diff --git a/packages/benchmark/src/orm/end-to-end/mongo/mongo-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/mongo/mongo-10k.bench.ts index 2b0b36b8e..44862fb4e 100644 --- a/packages/benchmark/src/orm/end-to-end/mongo/mongo-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/mongo/mongo-10k.bench.ts @@ -9,7 +9,7 @@ */ import 'reflect-metadata'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; import { MongoClient } from 'mongodb'; diff --git a/packages/benchmark/src/orm/end-to-end/mongo/mongoose-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/mongo/mongoose-10k.bench.ts index b1a403191..dc63cc269 100644 --- a/packages/benchmark/src/orm/end-to-end/mongo/mongoose-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/mongo/mongoose-10k.bench.ts @@ -9,7 +9,7 @@ */ import 'reflect-metadata'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; import mongoose from 'mongoose'; const { Schema } = mongoose; diff --git a/packages/benchmark/src/orm/end-to-end/mongo/prisma-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/mongo/prisma-10k.bench.ts index 2292778a3..c03e75fdf 100644 --- a/packages/benchmark/src/orm/end-to-end/mongo/prisma-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/mongo/prisma-10k.bench.ts @@ -9,7 +9,7 @@ */ import 'reflect-metadata'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; import { spawnSync } from 'child_process'; export async function main() { @@ -20,7 +20,7 @@ export async function main() { spawnSync(`./node_modules/.bin/prisma generate --schema src/orm/end-to-end/mongo/model.prisma`, { stdio: 'inherit', shell: true }); // spawnSync(`./node_modules/.bin/prisma db push --schema=src/orm/end-to-end/mongo/model.prisma --force-reset`, {stdio: 'inherit', shell: true}); - const {PrismaClient} = await import('@prisma/client'); + const {PrismaClient} = await import('@prisma/client.js'); const prisma = new PrismaClient(); const bench = new BenchSuite('prisma'); diff --git a/packages/benchmark/src/orm/end-to-end/mongo/type-orm-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/mongo/type-orm-10k.bench.ts index 818dedd4d..b80ae7c4c 100644 --- a/packages/benchmark/src/orm/end-to-end/mongo/type-orm-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/mongo/type-orm-10k.bench.ts @@ -10,7 +10,7 @@ import 'reflect-metadata'; import { Column, createConnection, Entity as TypeOrmEntity, ObjectIdColumn } from 'typeorm'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; @TypeOrmEntity() export class TypeOrmModel { diff --git a/packages/benchmark/src/orm/end-to-end/mysql/deepkit-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/mysql/deepkit-10k.bench.ts index 05369b7f4..bdbb0e86f 100644 --- a/packages/benchmark/src/orm/end-to-end/mysql/deepkit-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/mysql/deepkit-10k.bench.ts @@ -11,7 +11,7 @@ import { PrimaryKey, entity } from '@deepkit/type'; import { Database } from '@deepkit/orm'; import { MySQLDatabaseAdapter } from '@deepkit/mysql'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; @entity.name('deepkit') export class DeepkitModel { diff --git a/packages/benchmark/src/orm/end-to-end/mysql/mikro-orm-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/mysql/mikro-orm-10k.bench.ts index b9a3a80c2..a7f5bce81 100644 --- a/packages/benchmark/src/orm/end-to-end/mysql/mikro-orm-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/mysql/mikro-orm-10k.bench.ts @@ -10,7 +10,7 @@ import 'reflect-metadata'; import { Entity as MikroEntity, MikroORM, PrimaryKey, Property, ReflectMetadataProvider } from 'mikro-orm'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; @MikroEntity({ collection: 'mikro' }) export class MikroModel { diff --git a/packages/benchmark/src/orm/end-to-end/mysql/prisma-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/mysql/prisma-10k.bench.ts index 4989b65a1..594fc000e 100644 --- a/packages/benchmark/src/orm/end-to-end/mysql/prisma-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/mysql/prisma-10k.bench.ts @@ -9,7 +9,7 @@ */ import 'reflect-metadata'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; import { spawnSync } from 'child_process'; @@ -19,7 +19,7 @@ export async function main() { spawnSync(`./node_modules/.bin/prisma generate --schema src/orm/end-to-end/mysql/model.prisma`, {stdio: 'inherit', shell: true}); spawnSync(`./node_modules/.bin/prisma db push --schema=src/orm/end-to-end/mysql/model.prisma --force-reset`, {stdio: 'inherit', shell: true}); - const {PrismaClient} = await import('@prisma/client'); + const {PrismaClient} = await import('@prisma/client.js'); const prisma = new PrismaClient(); const bench = new BenchSuite('prisma'); diff --git a/packages/benchmark/src/orm/end-to-end/mysql/sequelize-orm-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/mysql/sequelize-orm-10k.bench.ts index 0454499d2..4a73ded50 100644 --- a/packages/benchmark/src/orm/end-to-end/mysql/sequelize-orm-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/mysql/sequelize-orm-10k.bench.ts @@ -9,7 +9,7 @@ */ import 'reflect-metadata'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; import { DataTypes, Model, Sequelize } from 'sequelize'; const sequelize = new Sequelize('mysql://root@localhost/default', { diff --git a/packages/benchmark/src/orm/end-to-end/mysql/type-orm-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/mysql/type-orm-10k.bench.ts index 655009b8c..8432747a8 100644 --- a/packages/benchmark/src/orm/end-to-end/mysql/type-orm-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/mysql/type-orm-10k.bench.ts @@ -10,7 +10,7 @@ import 'reflect-metadata'; import { Column, createConnection, Entity as TypeOrmEntity, PrimaryGeneratedColumn } from 'typeorm'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; @TypeOrmEntity() export class TypeOrmModel { diff --git a/packages/benchmark/src/orm/end-to-end/postgresql/deepkit-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/postgresql/deepkit-10k.bench.ts index 5074b8247..94b3871e0 100644 --- a/packages/benchmark/src/orm/end-to-end/postgresql/deepkit-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/postgresql/deepkit-10k.bench.ts @@ -11,8 +11,8 @@ import { PrimaryKey, entity } from '@deepkit/type'; import { Database } from '@deepkit/orm'; import { PostgresDatabaseAdapter } from '@deepkit/postgres'; -import { BenchSuite } from '../../../bench'; -import { Model } from '../mongo/deepkit-10k.bench'; +import { BenchSuite } from '../../../bench.js'; +import { Model } from '../mongo/deepkit-10k.bench.js'; @entity.name('deepkit') export class DeepkitModel { diff --git a/packages/benchmark/src/orm/end-to-end/postgresql/mikro-orm-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/postgresql/mikro-orm-10k.bench.ts index d30a24097..bbd12a8fb 100644 --- a/packages/benchmark/src/orm/end-to-end/postgresql/mikro-orm-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/postgresql/mikro-orm-10k.bench.ts @@ -10,7 +10,7 @@ import 'reflect-metadata'; import { Entity as MikroEntity, MikroORM, PrimaryKey, Property, ReflectMetadataProvider } from 'mikro-orm'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; @MikroEntity({ collection: 'mikro' }) export class MikroModel { diff --git a/packages/benchmark/src/orm/end-to-end/postgresql/prisma-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/postgresql/prisma-10k.bench.ts index 6e238c62f..dcf20d202 100644 --- a/packages/benchmark/src/orm/end-to-end/postgresql/prisma-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/postgresql/prisma-10k.bench.ts @@ -9,7 +9,7 @@ */ import 'reflect-metadata'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; import { spawnSync } from 'child_process'; export async function main() { @@ -18,7 +18,7 @@ export async function main() { spawnSync(`./node_modules/.bin/prisma generate --schema src/orm/end-to-end/postgresql/model.prisma`, {stdio: 'inherit', shell: true}); spawnSync(`./node_modules/.bin/prisma db push --schema=src/orm/end-to-end/postgresql/model.prisma --force-reset`, {stdio: 'inherit', shell: true}); - const {PrismaClient} = await import('@prisma/client'); + const {PrismaClient} = await import('@prisma/client.js'); const prisma = new PrismaClient(); const bench = new BenchSuite('prisma'); diff --git a/packages/benchmark/src/orm/end-to-end/postgresql/sequelize-orm-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/postgresql/sequelize-orm-10k.bench.ts index f50263b95..b78621920 100644 --- a/packages/benchmark/src/orm/end-to-end/postgresql/sequelize-orm-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/postgresql/sequelize-orm-10k.bench.ts @@ -9,7 +9,7 @@ */ import 'reflect-metadata'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; import { DataTypes, Model, Sequelize } from 'sequelize'; const sequelize = new Sequelize('postgres://postgres@localhost/postgres', { diff --git a/packages/benchmark/src/orm/end-to-end/postgresql/type-orm-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/postgresql/type-orm-10k.bench.ts index 52939a471..0aead2de8 100644 --- a/packages/benchmark/src/orm/end-to-end/postgresql/type-orm-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/postgresql/type-orm-10k.bench.ts @@ -10,7 +10,7 @@ import 'reflect-metadata'; import { Column, createConnection, Entity as TypeOrmEntity, PrimaryGeneratedColumn } from 'typeorm'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; @TypeOrmEntity() export class TypeOrmModel { diff --git a/packages/benchmark/src/orm/end-to-end/sqlite/deepkit-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/sqlite/deepkit-10k.bench.ts index fe115f591..5fbb8000e 100644 --- a/packages/benchmark/src/orm/end-to-end/sqlite/deepkit-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/sqlite/deepkit-10k.bench.ts @@ -11,7 +11,7 @@ import { AutoIncrement, PrimaryKey } from '@deepkit/type'; import { Database } from '@deepkit/orm'; import { SQLiteDatabaseAdapter } from '@deepkit/sqlite'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; // @entity.name('deepkit') export class DeepkitModel { diff --git a/packages/benchmark/src/orm/end-to-end/sqlite/mikro-orm-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/sqlite/mikro-orm-10k.bench.ts index c54f8818b..9f4b3c362 100644 --- a/packages/benchmark/src/orm/end-to-end/sqlite/mikro-orm-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/sqlite/mikro-orm-10k.bench.ts @@ -10,7 +10,7 @@ import 'reflect-metadata'; import { Entity as MikroEntity, MikroORM, PrimaryKey, Property, ReflectMetadataProvider } from 'mikro-orm'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; @MikroEntity({ collection: 'mikro' }) export class MikroModel { diff --git a/packages/benchmark/src/orm/end-to-end/sqlite/prisma-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/sqlite/prisma-10k.bench.ts index 39e7864a3..be90942ff 100644 --- a/packages/benchmark/src/orm/end-to-end/sqlite/prisma-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/sqlite/prisma-10k.bench.ts @@ -9,7 +9,7 @@ */ import 'reflect-metadata'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; import { spawnSync } from 'child_process'; export async function main() { @@ -18,7 +18,7 @@ export async function main() { spawnSync(`./node_modules/.bin/prisma generate --schema src/orm/end-to-end/sqlite/model.prisma`, {stdio: 'inherit', shell: true}); spawnSync(`./node_modules/.bin/prisma db push --schema=src/orm/end-to-end/sqlite/model.prisma --force-reset`, {stdio: 'inherit', shell: true}); - const {PrismaClient} = await import('@prisma/client'); + const {PrismaClient} = await import('@prisma/client.js'); const prisma = new PrismaClient(); const bench = new BenchSuite('prisma'); let created = false; diff --git a/packages/benchmark/src/orm/end-to-end/sqlite/sequelize-orm-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/sqlite/sequelize-orm-10k.bench.ts index 40ffb0b96..b2f5384b8 100644 --- a/packages/benchmark/src/orm/end-to-end/sqlite/sequelize-orm-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/sqlite/sequelize-orm-10k.bench.ts @@ -9,7 +9,7 @@ */ import 'reflect-metadata'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; import { DataTypes, Model, Sequelize } from 'sequelize'; const sequelize = new Sequelize('sqlite::memory:', { diff --git a/packages/benchmark/src/orm/end-to-end/sqlite/type-orm-10k.bench.ts b/packages/benchmark/src/orm/end-to-end/sqlite/type-orm-10k.bench.ts index 5fc75c361..5a1ccf781 100644 --- a/packages/benchmark/src/orm/end-to-end/sqlite/type-orm-10k.bench.ts +++ b/packages/benchmark/src/orm/end-to-end/sqlite/type-orm-10k.bench.ts @@ -10,7 +10,7 @@ import 'reflect-metadata'; import { Column, createConnection, Entity as TypeOrmEntity, PrimaryGeneratedColumn } from 'typeorm'; -import { BenchSuite } from '../../../bench'; +import { BenchSuite } from '../../../bench.js'; @TypeOrmEntity() export class TypeOrmModel { diff --git a/packages/benchmark/src/rpc/grpc/grpc-js.bench.ts b/packages/benchmark/src/rpc/grpc/grpc-js.bench.ts index 749522b85..10ff2690e 100644 --- a/packages/benchmark/src/rpc/grpc/grpc-js.bench.ts +++ b/packages/benchmark/src/rpc/grpc/grpc-js.bench.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { BenchSuite } from '../../bench'; +import { BenchSuite } from '../../bench.js'; const grpc = require('@grpc/grpc-js'); const protoLoader = require('@grpc/proto-loader'); diff --git a/packages/benchmark/src/rpc/parser.bench.ts b/packages/benchmark/src/rpc/parser.bench.ts index 91e427e9b..608b0d13a 100644 --- a/packages/benchmark/src/rpc/parser.bench.ts +++ b/packages/benchmark/src/rpc/parser.bench.ts @@ -1,4 +1,4 @@ -import { BenchSuite } from "../bench"; +import { BenchSuite } from "../bench.js"; export async function main() { @@ -17,4 +17,4 @@ export async function main() { }); suite.run(); -} \ No newline at end of file +} diff --git a/packages/benchmark/src/rpc/rpc-roundtrip.bench.ts b/packages/benchmark/src/rpc/rpc-roundtrip.bench.ts index 67eb6415c..b62e7b4bd 100644 --- a/packages/benchmark/src/rpc/rpc-roundtrip.bench.ts +++ b/packages/benchmark/src/rpc/rpc-roundtrip.bench.ts @@ -9,7 +9,7 @@ */ import { createRpcMessage, DirectClient, readRpcMessage, rpc, rpcAction, RpcKernel } from '@deepkit/rpc'; -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; export async function main() { const bench1 = new BenchSuite('protocol'); diff --git a/packages/benchmark/src/rpc/rpc-rountrtip-peer.bench.ts b/packages/benchmark/src/rpc/rpc-rountrtip-peer.bench.ts index ac04d59f0..db46033c1 100644 --- a/packages/benchmark/src/rpc/rpc-rountrtip-peer.bench.ts +++ b/packages/benchmark/src/rpc/rpc-rountrtip-peer.bench.ts @@ -10,7 +10,7 @@ import { ClassType } from '@deepkit/core'; import { DirectClient, rpc, RpcKernel } from '@deepkit/rpc'; -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; class SimpleInjector { get(classType: ClassType) { diff --git a/packages/benchmark/src/rpc/rpc-tcp-server.bench.ts b/packages/benchmark/src/rpc/rpc-tcp-server.bench.ts index 53fdbe477..94a8d6698 100644 --- a/packages/benchmark/src/rpc/rpc-tcp-server.bench.ts +++ b/packages/benchmark/src/rpc/rpc-tcp-server.bench.ts @@ -10,7 +10,7 @@ import { rpc, RpcClient, RpcKernel } from '@deepkit/rpc'; import { TcpRpcClientAdapter, TcpRpcServer } from '@deepkit/rpc-tcp'; -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; export async function main() { interface ControllerInterface { diff --git a/packages/benchmark/src/type/memoize.bench.ts b/packages/benchmark/src/type/memoize.bench.ts index 13d4a4772..b823b60e5 100644 --- a/packages/benchmark/src/type/memoize.bench.ts +++ b/packages/benchmark/src/type/memoize.bench.ts @@ -1,4 +1,4 @@ -import { BenchSuite } from '../bench'; +import { BenchSuite } from '../bench.js'; const memoize = require('memoizee'); diff --git a/packages/benchmark/src/type/reflection/processor.bench.ts b/packages/benchmark/src/type/reflection/processor.bench.ts index 991ebb39e..3b4a078ed 100644 --- a/packages/benchmark/src/type/reflection/processor.bench.ts +++ b/packages/benchmark/src/type/reflection/processor.bench.ts @@ -1,4 +1,4 @@ -import { BenchSuite } from '../../bench'; +import { BenchSuite } from '../../bench.js'; import { pack, Processor, ReflectionOp, typeOf } from '@deepkit/type'; export async function main() { diff --git a/packages/benchmark/src/type/serialization/medium-class-transformer.bench.ts b/packages/benchmark/src/type/serialization/medium-class-transformer.bench.ts index 0b6e6676d..4fc66ab4c 100644 --- a/packages/benchmark/src/type/serialization/medium-class-transformer.bench.ts +++ b/packages/benchmark/src/type/serialization/medium-class-transformer.bench.ts @@ -10,7 +10,7 @@ import 'reflect-metadata'; import { classToPlain, Exclude as ctExclude, plainToClass, Transform, Type } from 'class-transformer'; -import { BenchSuite } from '../../bench'; +import { BenchSuite } from '../../bench.js'; export class SubModel { label: string; diff --git a/packages/benchmark/src/type/serialization/medium-deepkit.bench.ts b/packages/benchmark/src/type/serialization/medium-deepkit.bench.ts index b086f9cc2..b6de204a4 100644 --- a/packages/benchmark/src/type/serialization/medium-deepkit.bench.ts +++ b/packages/benchmark/src/type/serialization/medium-deepkit.bench.ts @@ -9,7 +9,7 @@ */ import { deserializeFunction, Excluded, serializeFunction } from '@deepkit/type'; -import { BenchSuite } from '../../bench'; +import { BenchSuite } from '../../bench.js'; export class SubModel { age?: number; diff --git a/packages/benchmark/src/type/serialization/small-cerialize.bench.ts b/packages/benchmark/src/type/serialization/small-cerialize.bench.ts index 815712101..dfbf8d105 100644 --- a/packages/benchmark/src/type/serialization/small-cerialize.bench.ts +++ b/packages/benchmark/src/type/serialization/small-cerialize.bench.ts @@ -9,7 +9,7 @@ */ import { autoserializeAs, autoserializeAsArray, Deserialize, Serialize } from 'cerialize'; -import { BenchSuite } from '../../bench'; +import { BenchSuite } from '../../bench.js'; export class Model { @autoserializeAs(Number) id?: number; diff --git a/packages/benchmark/src/type/serialization/small-class-transformer.bench.ts b/packages/benchmark/src/type/serialization/small-class-transformer.bench.ts index 5912e3d7e..f468afdad 100644 --- a/packages/benchmark/src/type/serialization/small-class-transformer.bench.ts +++ b/packages/benchmark/src/type/serialization/small-class-transformer.bench.ts @@ -12,7 +12,7 @@ import { classToPlain, plainToClass } from "class-transformer"; -import { BenchSuite } from '../../bench'; +import { BenchSuite } from '../../bench.js'; export class Model { public id?: number; diff --git a/packages/benchmark/src/type/serialization/small-deepkit.bench.ts b/packages/benchmark/src/type/serialization/small-deepkit.bench.ts index 81707be56..364be482d 100644 --- a/packages/benchmark/src/type/serialization/small-deepkit.bench.ts +++ b/packages/benchmark/src/type/serialization/small-deepkit.bench.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { BenchSuite } from '../../bench'; +import { BenchSuite } from '../../bench.js'; import { serializeFunction, deserializeFunction } from '@deepkit/type'; class Model { diff --git a/packages/benchmark/src/type/serialization/small-io-ts.bench.ts b/packages/benchmark/src/type/serialization/small-io-ts.bench.ts index ceab00d54..a17e694f6 100644 --- a/packages/benchmark/src/type/serialization/small-io-ts.bench.ts +++ b/packages/benchmark/src/type/serialization/small-io-ts.bench.ts @@ -9,7 +9,7 @@ */ import * as t from 'io-ts'; -import { BenchSuite } from '../../bench'; +import { BenchSuite } from '../../bench.js'; const decoderIoTS = t.type({ ready: t.boolean, diff --git a/packages/benchmark/src/type/validation/small-avj.bench.ts b/packages/benchmark/src/type/validation/small-avj.bench.ts index 64c9d1f26..d4255ba47 100644 --- a/packages/benchmark/src/type/validation/small-avj.bench.ts +++ b/packages/benchmark/src/type/validation/small-avj.bench.ts @@ -8,9 +8,9 @@ * You should have received a copy of the MIT License along with this program. */ -import { good } from './validation'; +import { good } from './validation.js'; import Ajv from 'ajv'; -import { BenchSuite } from '../../bench'; +import { BenchSuite } from '../../bench.js'; //todo: note deeplyNested is missing, so not complete validation yet. diff --git a/packages/benchmark/src/type/validation/small-class-validator.bench.ts b/packages/benchmark/src/type/validation/small-class-validator.bench.ts index 729a4ca2d..e8ee86c91 100644 --- a/packages/benchmark/src/type/validation/small-class-validator.bench.ts +++ b/packages/benchmark/src/type/validation/small-class-validator.bench.ts @@ -8,9 +8,9 @@ * You should have received a copy of the MIT License along with this program. */ -import { BenchSuite } from '../../bench'; +import { BenchSuite } from '../../bench.js'; import { IsArray, IsBoolean, IsInt, IsNegative, IsString, Max, validate, ValidateNested, } from 'class-validator'; -import { good } from './validation'; +import { good } from './validation.js'; export class Nested { @IsString() diff --git a/packages/benchmark/src/type/validation/small-deepkit.bench.ts b/packages/benchmark/src/type/validation/small-deepkit.bench.ts index 0d86a242f..d9fd45e82 100644 --- a/packages/benchmark/src/type/validation/small-deepkit.bench.ts +++ b/packages/benchmark/src/type/validation/small-deepkit.bench.ts @@ -9,8 +9,8 @@ */ import { Maximum, Negative, guard } from '@deepkit/type'; -import { good } from './validation'; -import { BenchSuite } from '../../bench'; +import { good } from './validation.js'; +import { BenchSuite } from '../../bench.js'; interface Model { number: number; diff --git a/packages/benchmark/src/type/validation/small-io-ts.bench.ts b/packages/benchmark/src/type/validation/small-io-ts.bench.ts index d964f8bf1..b76cd9eeb 100644 --- a/packages/benchmark/src/type/validation/small-io-ts.bench.ts +++ b/packages/benchmark/src/type/validation/small-io-ts.bench.ts @@ -11,8 +11,8 @@ import * as t from 'io-ts'; import * as G from 'io-ts/lib/Guard'; import { isRight } from 'fp-ts/Either'; -import { good } from './validation'; -import { BenchSuite } from '../../bench'; +import { good } from './validation.js'; +import { BenchSuite } from '../../bench.js'; const decoderIoTS = t.type({ number: t.number, diff --git a/packages/benchmark/src/type/validation/small-quartet.bench.ts b/packages/benchmark/src/type/validation/small-quartet.bench.ts index a4dc3f742..5c84a12e8 100644 --- a/packages/benchmark/src/type/validation/small-quartet.bench.ts +++ b/packages/benchmark/src/type/validation/small-quartet.bench.ts @@ -8,10 +8,10 @@ * You should have received a copy of the MIT License along with this program. */ -import { good } from './validation'; +import { good } from './validation.js'; //we use `e` and not `v` because deepkit/type supports out of the box error explanations, which quartet does only with `e`. import { e } from 'quartet'; -import { BenchSuite } from '../../bench'; +import { BenchSuite } from '../../bench.js'; const QuartetModelChecker = e({ number: e.number, diff --git a/packages/broker/index.ts b/packages/broker/index.ts index d688868b1..2613c50f3 100644 --- a/packages/broker/index.ts +++ b/packages/broker/index.ts @@ -8,6 +8,6 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/client'; -export * from './src/kernel'; -export * from './src/model'; +export * from './src/client.js'; +export * from './src/kernel.js'; +export * from './src/model.js'; diff --git a/packages/broker/src/client.ts b/packages/broker/src/client.ts index a588899de..02dbfb74d 100644 --- a/packages/broker/src/client.ts +++ b/packages/broker/src/client.ts @@ -12,7 +12,7 @@ import { BSONDeserializer, BSONSerializer, deserializeBSONWithoutOptimiser, getB import { arrayRemoveItem, asyncOperation, ClassType } from '@deepkit/core'; import { AsyncSubscription } from '@deepkit/core-rxjs'; import { createRpcMessage, RpcBaseClient, RpcDirectClientAdapter, RpcMessage, RpcMessageRouteType } from '@deepkit/rpc'; -import { BrokerKernel } from './kernel'; +import { BrokerKernel } from './kernel.js'; import { brokerDelete, brokerEntityFields, @@ -27,7 +27,7 @@ import { brokerSet, brokerSubscribe, BrokerType -} from './model'; +} from './model.js'; import { ReceiveType, ReflectionClass, ReflectionKind, resolveReceiveType, Type, TypePropertySignature } from '@deepkit/type'; export class BrokerChannel { diff --git a/packages/broker/src/kernel.ts b/packages/broker/src/kernel.ts index 2c092dd40..81ee86476 100644 --- a/packages/broker/src/kernel.ts +++ b/packages/broker/src/kernel.ts @@ -24,7 +24,7 @@ import { brokerSet, brokerSubscribe, BrokerType -} from './model'; +} from './model.js'; export class BrokerConnection extends RpcKernelBaseConnection { protected subscribedChannels: string[] = []; diff --git a/packages/broker/tests/kernel.spec.ts b/packages/broker/tests/kernel.spec.ts index 230ad1790..8386c327f 100644 --- a/packages/broker/tests/kernel.spec.ts +++ b/packages/broker/tests/kernel.spec.ts @@ -2,8 +2,8 @@ import { sleep } from '@deepkit/core'; import { AsyncSubscription } from '@deepkit/core-rxjs'; import { expect, test } from '@jest/globals'; import { BehaviorSubject } from 'rxjs'; -import { BrokerDirectClient } from '../src/client'; -import { BrokerKernel } from '../src/kernel'; +import { BrokerDirectClient } from '../src/client.js'; +import { BrokerKernel } from '../src/kernel.js'; Error.stackTraceLimit = 1000; diff --git a/packages/bson/index.ts b/packages/bson/index.ts index f368a4d45..0ca4db377 100644 --- a/packages/bson/index.ts +++ b/packages/bson/index.ts @@ -8,9 +8,9 @@ * You should have received a copy of the MIT License along with this program. */ -export { ObjectId } from './src/model'; -export { deserializeBSONWithoutOptimiser, ParserV2 as Parser } from './src/bson-parser'; -export { getBSONDeserializer, deserializeBSON, BSONDeserializer } from './src/bson-deserializer'; +export { ObjectId } from './src/model.js'; +export { deserializeBSONWithoutOptimiser, ParserV2 as Parser } from './src/bson-parser.js'; +export { getBSONDeserializer, deserializeBSON, BSONDeserializer } from './src/bson-deserializer.js'; export { stringByteLength, BSONSerializer, createBSONSizer, getBSONSizer, getBSONSerializer, bsonBinarySerializer, serializeBSON, serializeWithoutOptimiser, Writer, BSONBinarySerializer, ValueWithBSONSerializer -} from './src/bson-serializer'; +} from './src/bson-serializer.js'; diff --git a/packages/bson/package-lock.json b/packages/bson/package-lock.json index 2069be05c..825e86dfa 100644 --- a/packages/bson/package-lock.json +++ b/packages/bson/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/bson", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "devDependencies": { "@types/bson": "^4.0.3", diff --git a/packages/bson/src/bson-deserializer-templates.ts b/packages/bson/src/bson-deserializer-templates.ts index 316a70d9c..e9c52c7e8 100644 --- a/packages/bson/src/bson-deserializer-templates.ts +++ b/packages/bson/src/bson-deserializer-templates.ts @@ -38,8 +38,8 @@ import { TypeUnion, uuidAnnotation } from '@deepkit/type'; -import { seekElementSize } from './continuation'; -import { BSONType, digitByteSize, isSerializable } from './utils'; +import { seekElementSize } from './continuation.js'; +import { BSONType, digitByteSize, isSerializable } from './utils.js'; function getNameComparator(name: string): string { //todo: support utf8 names diff --git a/packages/bson/src/bson-deserializer.ts b/packages/bson/src/bson-deserializer.ts index 6c6487ce2..92514e2ae 100644 --- a/packages/bson/src/bson-deserializer.ts +++ b/packages/bson/src/bson-deserializer.ts @@ -1,8 +1,8 @@ import { executeTemplates, getTypeJitContainer, JitStack, NamingStrategy, ReceiveType, resolveReceiveType, TemplateState, Type } from '@deepkit/type'; import { CompilerContext, toFastProperties } from '@deepkit/core'; -import { seekElementSize } from './continuation'; -import { BSONBinarySerializer, bsonBinarySerializer } from './bson-serializer'; -import { ParserV2 } from './bson-parser'; +import { seekElementSize } from './continuation.js'; +import { BSONBinarySerializer, bsonBinarySerializer } from './bson-serializer.js'; +import { ParserV2 } from './bson-parser.js'; function createBSONDeserializer(type: Type, serializer: BSONBinarySerializer, namingStrategy: NamingStrategy = new NamingStrategy(), path: string = '', jitStack: JitStack = new JitStack()) { const compiler = new CompilerContext(); diff --git a/packages/bson/src/bson-parser.ts b/packages/bson/src/bson-parser.ts index 48255c6fe..07afd522c 100644 --- a/packages/bson/src/bson-parser.ts +++ b/packages/bson/src/bson-parser.ts @@ -8,10 +8,10 @@ * You should have received a copy of the MIT License along with this program. */ -import { BSON_BINARY_SUBTYPE_BYTE_ARRAY, BSON_BINARY_SUBTYPE_UUID, BSONType, digitByteSize, TWO_PWR_32_DBL_N } from './utils'; -import { buildStringDecoder, decodeUTF8 } from './strings'; +import { BSON_BINARY_SUBTYPE_BYTE_ARRAY, BSON_BINARY_SUBTYPE_UUID, BSONType, digitByteSize, TWO_PWR_32_DBL_N } from './utils.js'; +import { buildStringDecoder, decodeUTF8 } from './strings.js'; import { nodeBufferToArrayBuffer, ReflectionKind, SerializationError, Type } from '@deepkit/type'; -import { hexTable } from './model'; +import { hexTable } from './model.js'; declare var Buffer: any; diff --git a/packages/bson/src/bson-serializer.ts b/packages/bson/src/bson-serializer.ts index 21fea6876..a1107aa5a 100644 --- a/packages/bson/src/bson-serializer.ts +++ b/packages/bson/src/bson-serializer.ts @@ -86,10 +86,10 @@ import { deserializeTuple, deserializeUndefined, deserializeUnion -} from './bson-deserializer-templates'; -import { seekElementSize } from './continuation'; -import { BSONError } from './model'; -import { BSON_BINARY_SUBTYPE_DEFAULT, BSON_BINARY_SUBTYPE_UUID, BSONType, digitByteSize, isSerializable, TWO_PWR_32_DBL_N } from './utils'; +} from './bson-deserializer-templates.js'; +import { seekElementSize } from './continuation.js'; +import { BSONError } from './model.js'; +import { BSON_BINARY_SUBTYPE_DEFAULT, BSON_BINARY_SUBTYPE_UUID, BSONType, digitByteSize, isSerializable, TWO_PWR_32_DBL_N } from './utils.js'; export function createBuffer(size: number): Uint8Array { return 'undefined' !== typeof Buffer && 'function' === typeof Buffer.allocUnsafe ? Buffer.allocUnsafe(size) : new Uint8Array(size); diff --git a/packages/bson/src/continuation.ts b/packages/bson/src/continuation.ts index 787d6325b..e0033ab90 100644 --- a/packages/bson/src/continuation.ts +++ b/packages/bson/src/continuation.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { BaseParser } from './bson-parser'; +import { BaseParser } from './bson-parser.js'; import { BSON_BINARY_SUBTYPE_BYTE_ARRAY, BSON_DATA_ARRAY, @@ -33,8 +33,8 @@ import { BSON_DATA_TIMESTAMP, BSON_DATA_UNDEFINED, BSONType -} from './utils'; -import { BSONError } from './model'; +} from './utils.js'; +import { BSONError } from './model.js'; export function seekElementSize(elementType: number, parser: BaseParser): any { switch (elementType) { diff --git a/packages/bson/src/strings.ts b/packages/bson/src/strings.ts index b87e1a29a..0f0b2489b 100644 --- a/packages/bson/src/strings.ts +++ b/packages/bson/src/strings.ts @@ -9,7 +9,7 @@ */ import { CompilerContext } from '@deepkit/core'; -import { BSONError } from './model'; +import { BSONError } from './model.js'; const decoder = new TextDecoder("utf-8"); export function decodeUTF8(buffer: Uint8Array, off: number = 0, end: number) { diff --git a/packages/bson/tests/bson-parser.spec.ts b/packages/bson/tests/bson-parser.spec.ts index 08c0d0602..fd3be7667 100644 --- a/packages/bson/tests/bson-parser.spec.ts +++ b/packages/bson/tests/bson-parser.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; import bson, { Binary } from 'bson'; -import { deserializeBSON, getBSONDeserializer } from '../src/bson-deserializer'; +import { deserializeBSON, getBSONDeserializer } from '../src/bson-deserializer.js'; import { BinaryBigInt, copyAndSetParent, @@ -16,7 +16,7 @@ import { UUID } from '@deepkit/type'; import { getClassName } from '@deepkit/core'; -import { serializeWithoutOptimiser } from '../src/bson-serializer'; +import { serializeWithoutOptimiser } from '../src/bson-serializer.js'; const { deserialize, serialize } = bson; diff --git a/packages/bson/tests/bson-serialize.spec.ts b/packages/bson/tests/bson-serialize.spec.ts index b7198f6c3..fe72a2b7e 100644 --- a/packages/bson/tests/bson-serialize.spec.ts +++ b/packages/bson/tests/bson-serialize.spec.ts @@ -1,11 +1,11 @@ import { expect, test } from '@jest/globals'; -import { getBSONSerializer, getBSONSizer, getValueSize, hexToByte, uuidStringToByte } from '../src/bson-serializer'; +import { getBSONSerializer, getBSONSizer, getValueSize, hexToByte, uuidStringToByte } from '../src/bson-serializer.js'; import { BinaryBigInt, createReference, Excluded, MongoId, nodeBufferToArrayBuffer, PrimaryKey, Reference, SignedBinaryBigInt, typeOf, uuid, UUID } from '@deepkit/type'; import bson from 'bson'; import { randomBytes } from 'crypto'; -import { BSON_BINARY_SUBTYPE_DEFAULT, BSONType } from '../src/utils'; -import { deserializeBSONWithoutOptimiser } from '../src/bson-parser'; -import { deserializeBSON } from '../src/bson-deserializer'; +import { BSON_BINARY_SUBTYPE_DEFAULT, BSONType } from '../src/utils.js'; +import { deserializeBSONWithoutOptimiser } from '../src/bson-parser.js'; +import { deserializeBSON } from '../src/bson-deserializer.js'; const { Binary, calculateObjectSize, deserialize, Long, ObjectId: OfficialObjectId, serialize } = bson; diff --git a/packages/bson/tests/type-spec.spec.ts b/packages/bson/tests/type-spec.spec.ts index 91977990d..c289598eb 100644 --- a/packages/bson/tests/type-spec.spec.ts +++ b/packages/bson/tests/type-spec.spec.ts @@ -24,9 +24,9 @@ import { UUID } from '@deepkit/type'; import { expect, test } from '@jest/globals'; -import { deserializeBSON } from '../src/bson-deserializer'; -import { deserializeBSONWithoutOptimiser } from '../src/bson-parser'; -import { serializeBSON, serializeWithoutOptimiser } from '../src/bson-serializer'; +import { deserializeBSON } from '../src/bson-deserializer.js'; +import { deserializeBSONWithoutOptimiser } from '../src/bson-parser.js'; +import { serializeBSON, serializeWithoutOptimiser } from '../src/bson-serializer.js'; (BigInt.prototype as any).toJSON = function () { return this.toString(); diff --git a/packages/core-rxjs/index.ts b/packages/core-rxjs/index.ts index 89ae22973..aa2f7427b 100644 --- a/packages/core-rxjs/index.ts +++ b/packages/core-rxjs/index.ts @@ -8,5 +8,5 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/utils'; -export * from './src/timer'; +export * from './src/utils.js'; +export * from './src/timer.js'; diff --git a/packages/core-rxjs/package-lock.json b/packages/core-rxjs/package-lock.json index c596879d2..f2837b746 100644 --- a/packages/core-rxjs/package-lock.json +++ b/packages/core-rxjs/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/core-rxjs", - "version": "1.0.1-alpha.65", + "version": "1.0.1-alpha.72", "license": "MIT", "devDependencies": { "rxjs": "~6.6.0" diff --git a/packages/core-rxjs/tests/index.spec.ts b/packages/core-rxjs/tests/index.spec.ts index fc259dda1..961b5cfe3 100644 --- a/packages/core-rxjs/tests/index.spec.ts +++ b/packages/core-rxjs/tests/index.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; import { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs'; -import { isBehaviorSubject, isSubject, nextValue, Subscriptions } from '../src/utils'; +import { isBehaviorSubject, isSubject, nextValue, Subscriptions } from '../src/utils.js'; test('nextValue subject', async () => { const subject = new Subject(); diff --git a/packages/core/package-lock.json b/packages/core/package-lock.json index d98286e1e..c76ce6ff5 100644 --- a/packages/core/package-lock.json +++ b/packages/core/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/core", - "version": "1.0.1-alpha.65", + "version": "1.0.1-alpha.72", "license": "MIT", "dependencies": { "dot-prop": "^5.1.1", diff --git a/packages/core/tests/array.spec.ts b/packages/core/tests/array.spec.ts index 22b6a8e6a..48ede2f72 100644 --- a/packages/core/tests/array.spec.ts +++ b/packages/core/tests/array.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from '@jest/globals'; -import { arrayMoveItem } from '../src/array'; +import { arrayMoveItem } from '../src/array.js'; import { arrayClear, arrayHasItem, arrayRemoveItem } from '@deepkit/core'; diff --git a/packages/core/tests/compiler.spec.ts b/packages/core/tests/compiler.spec.ts index 72e1d913d..852116060 100644 --- a/packages/core/tests/compiler.spec.ts +++ b/packages/core/tests/compiler.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from '@jest/globals'; -import { CompilerContext } from '../src/compiler'; +import { CompilerContext } from '../src/compiler.js'; test('compiler', () => { const compiler = new CompilerContext(); diff --git a/packages/core/tests/core.spec.ts b/packages/core/tests/core.spec.ts index b81772124..b47c70467 100644 --- a/packages/core/tests/core.spec.ts +++ b/packages/core/tests/core.spec.ts @@ -24,7 +24,7 @@ import { setPathValue, sleep, stringifyValueWithType -} from '../src/core'; +} from '../src/core.js'; class SimpleClass { constructor(public name: string) { diff --git a/packages/core/tests/decorators.spec.ts b/packages/core/tests/decorators.spec.ts index 5ba63196d..5bfb75321 100644 --- a/packages/core/tests/decorators.spec.ts +++ b/packages/core/tests/decorators.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; -import { log, stack } from '../src/decorators'; -import { sleep } from '../src/core'; +import { log, stack } from '../src/decorators.js'; +import { sleep } from '../src/core.js'; test('test decorators @sync', async () => { class Test { diff --git a/packages/core/tests/enum.spec.ts b/packages/core/tests/enum.spec.ts index 4e8cbc989..1caa1890b 100644 --- a/packages/core/tests/enum.spec.ts +++ b/packages/core/tests/enum.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from '@jest/globals'; -import { getEnumLabels, getEnumValues } from '../src/enum'; +import { getEnumLabels, getEnumValues } from '../src/enum.js'; test('getEnumLabels numbered index', () => { enum MyEnum { diff --git a/packages/core/tests/iterator.spec.ts b/packages/core/tests/iterator.spec.ts index 8b82e88fe..bfc6d0dbc 100644 --- a/packages/core/tests/iterator.spec.ts +++ b/packages/core/tests/iterator.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from '@jest/globals'; -import { each, eachKey, eachPair } from '../src/iterators'; +import { each, eachKey, eachPair } from '../src/iterators.js'; test('test array', () => { const array: string[] = ['a', 'b', 'c']; diff --git a/packages/core/tests/lock.spec.ts b/packages/core/tests/lock.spec.ts index 5e8d83777..e15f08968 100644 --- a/packages/core/tests/lock.spec.ts +++ b/packages/core/tests/lock.spec.ts @@ -1,5 +1,5 @@ import { jest, expect, test, beforeAll } from '@jest/globals'; -import { Mutex, ProcessLock, ProcessLocker } from '../src/process-locker'; +import { Mutex, ProcessLock, ProcessLocker } from '../src/process-locker.js'; jest.setTimeout(20000); @@ -110,19 +110,19 @@ test('mutex 1', async () => { let i = 0; const promises: Promise[] = []; - + promises.push(mutex1.lock().then(() => { expect(i).toBe(0); i++; mutex1.unlock(); })); - + promises.push(mutex1.lock().then(() => { expect(i).toBe(1); i++; mutex1.unlock(); })); - + promises.push(mutex1.lock().then(() => { expect(i).toBe(2); i++; diff --git a/packages/core/tests/network.spec.ts b/packages/core/tests/network.spec.ts index 0ba52a3cc..b671703f0 100644 --- a/packages/core/tests/network.spec.ts +++ b/packages/core/tests/network.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from '@jest/globals'; -import { parseHost } from '../src/network'; +import { parseHost } from '../src/network.js'; test('parseHost', () => { { diff --git a/packages/core/tests/reflection.spec.ts b/packages/core/tests/reflection.spec.ts index adcf7a66a..31b15e91a 100644 --- a/packages/core/tests/reflection.spec.ts +++ b/packages/core/tests/reflection.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from '@jest/globals'; -import { extractMethodBody, extractParameters, removeStrings } from '../src/reflection'; +import { extractMethodBody, extractParameters, removeStrings } from '../src/reflection.js'; test('removeStrings', () => { diff --git a/packages/core/tests/utils.spec.ts b/packages/core/tests/utils.spec.ts index bfcba48f1..961a2dbf2 100644 --- a/packages/core/tests/utils.spec.ts +++ b/packages/core/tests/utils.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from '@jest/globals'; -import { urlJoin } from '../src/url'; +import { urlJoin } from '../src/url.js'; test('urlJoin', async () => { expect(urlJoin('base', 'path')).toBe('base/path'); diff --git a/packages/desktop-ui/src/components/app/dui-view.directive.ts b/packages/desktop-ui/src/components/app/dui-view.directive.ts index 1b4afecad..3cefda75b 100644 --- a/packages/desktop-ui/src/components/app/dui-view.directive.ts +++ b/packages/desktop-ui/src/components/app/dui-view.directive.ts @@ -9,7 +9,7 @@ */ import { Directive, EmbeddedViewRef, Injectable, Input, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core'; -import { detectChangesNextFrame, scheduleWindowResizeEvent } from './utils'; +import { detectChangesNextFrame, scheduleWindowResizeEvent } from './utils.js'; let i = 0; diff --git a/packages/desktop-ui/src/components/app/index.ts b/packages/desktop-ui/src/components/app/index.ts index 114810a6f..d37a214e5 100644 --- a/packages/desktop-ui/src/components/app/index.ts +++ b/packages/desktop-ui/src/components/app/index.ts @@ -9,27 +9,27 @@ */ import { ApplicationRef, Component, Directive, HostBinding, Inject, Injectable, Input, ModuleWithProviders, NgModule, Optional } from '@angular/core'; -import { MenuCheckboxDirective, MenuDirective, MenuItemDirective, MenuRadioDirective, MenuSeparatorDirective } from './menu.component'; -import { detectChangesNextFrame, OpenExternalDirective, ZonelessChangeDetector } from './utils'; -import { ViewDirective } from './dui-view.directive'; -import { CdCounterComponent } from './cd-counter.component'; -import { DuiResponsiveDirective } from './dui-responsive.directive'; +import { MenuCheckboxDirective, MenuDirective, MenuItemDirective, MenuRadioDirective, MenuSeparatorDirective } from './menu.component.js'; +import { detectChangesNextFrame, OpenExternalDirective, ZonelessChangeDetector } from './utils.js'; +import { ViewDirective } from './dui-view.directive.js'; +import { CdCounterComponent } from './cd-counter.component.js'; +import { DuiResponsiveDirective } from './dui-responsive.directive.js'; import { CommonModule, DOCUMENT } from '@angular/common'; -import { Electron } from '../../core/utils'; +import { Electron } from '../../core/utils.js'; import { ActivationEnd, Event as RouterEvent, NavigationEnd, Router } from '@angular/router'; -import { WindowRegistry } from '../window/window-state'; -import { ELECTRON_WINDOW, IN_DIALOG } from './token'; -import { AsyncRenderPipe, HumanFileSizePipe, ObjectURLPipe } from './pipes'; -import { ReactiveChangeDetectionModule } from './reactivate-change-detection'; +import { WindowRegistry } from '../window/window-state.js'; +import { ELECTRON_WINDOW, IN_DIALOG } from './token.js'; +import { AsyncRenderPipe, HumanFileSizePipe, ObjectURLPipe } from './pipes.js'; +import { ReactiveChangeDetectionModule } from './reactivate-change-detection.js'; import { arrayRemoveItem } from '@deepkit/core'; -export * from './reactivate-change-detection'; -export * from './cd-counter.component'; -export * from './dui-view.directive'; -export * from './dui-responsive.directive'; -export * from './utils'; -export * from './menu.component'; -export * from './pipes'; +export * from './reactivate-change-detection.js'; +export * from './cd-counter.component.js'; +export * from './dui-view.directive.js'; +export * from './dui-responsive.directive.js'; +export * from './utils.js'; +export * from './menu.component.js'; +export * from './pipes.js'; if ('undefined' !== typeof window && 'undefined' === typeof (window as any)['global']) { (window as any).global = window; diff --git a/packages/desktop-ui/src/components/app/menu.component.ts b/packages/desktop-ui/src/components/app/menu.component.ts index 23f1e4173..f51c3c13e 100644 --- a/packages/desktop-ui/src/components/app/menu.component.ts +++ b/packages/desktop-ui/src/components/app/menu.component.ts @@ -19,10 +19,10 @@ import { Output, QueryList } from '@angular/core'; -import { WindowMenuState } from '../window/window-menu'; +import { WindowMenuState } from '../window/window-menu.js'; import { arrayHasItem } from '@deepkit/core'; import { Subscription } from 'rxjs'; -import { Electron } from '../../core/utils'; +import { Electron } from '../../core/utils.js'; @Directive() export class MenuBase implements AfterViewInit { diff --git a/packages/desktop-ui/src/components/app/pipes.ts b/packages/desktop-ui/src/components/app/pipes.ts index 3c866bbe7..79aea7bd4 100644 --- a/packages/desktop-ui/src/components/app/pipes.ts +++ b/packages/desktop-ui/src/components/app/pipes.ts @@ -10,7 +10,7 @@ import { ChangeDetectorRef, OnDestroy, Pipe, PipeTransform } from '@angular/core'; import { Observable, Subscription } from 'rxjs'; -import { detectChangesNextFrame } from './utils'; +import { detectChangesNextFrame } from './utils.js'; import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; import { humanBytes } from '@deepkit/core'; @@ -75,4 +75,4 @@ export class HumanFileSizePipe implements PipeTransform { transform(bytes: number, si: boolean = false): string { return humanBytes(bytes, si); } -} \ No newline at end of file +} diff --git a/packages/desktop-ui/src/components/app/utils.ts b/packages/desktop-ui/src/components/app/utils.ts index 3e72a54a9..ea3cc5847 100644 --- a/packages/desktop-ui/src/components/app/utils.ts +++ b/packages/desktop-ui/src/components/app/utils.ts @@ -17,7 +17,7 @@ import { Input, OnChanges } from '@angular/core'; -import { Electron } from '../../core/utils'; +import { Electron } from '../../core/utils.js'; @Directive({ diff --git a/packages/desktop-ui/src/components/button/button.component.ts b/packages/desktop-ui/src/components/button/button.component.ts index c6c37ce87..f01b865b5 100644 --- a/packages/desktop-ui/src/components/button/button.component.ts +++ b/packages/desktop-ui/src/components/button/button.component.ts @@ -27,10 +27,10 @@ import { Output, SkipSelf } from '@angular/core'; -import { WindowComponent } from '../window/window.component'; -import { WindowState } from '../window/window-state'; -import { FormComponent } from '../form/form.component'; -import { ngValueAccessor, ValueAccessorBase } from '../../core/form'; +import { WindowComponent } from '../window/window.component.js'; +import { WindowState } from '../window/window-state.js'; +import { FormComponent } from '../form/form.component.js'; +import { ngValueAccessor, ValueAccessorBase } from '../../core/form.js'; @Component({ selector: 'dui-button', diff --git a/packages/desktop-ui/src/components/button/dropdown.component.ts b/packages/desktop-ui/src/components/button/dropdown.component.ts index 1c0611d0f..74cf235d0 100644 --- a/packages/desktop-ui/src/components/button/dropdown.component.ts +++ b/packages/desktop-ui/src/components/button/dropdown.component.ts @@ -31,11 +31,11 @@ import { import { TemplatePortal } from '@angular/cdk/portal'; import { Overlay, OverlayConfig, OverlayRef, PositionStrategy } from '@angular/cdk/overlay'; import { Subscription } from 'rxjs'; -import { WindowRegistry } from '../window/window-state'; -import { focusWatcher } from '../../core/utils'; +import { WindowRegistry } from '../window/window-state.js'; +import { focusWatcher } from '../../core/utils.js'; import { isArray } from '@deepkit/core'; -import { OverlayStack, OverlayStackItem, ReactiveChangeDetectionModule, unsubscribe } from '../app'; -import { ButtonComponent } from './button.component'; +import { OverlayStack, OverlayStackItem, ReactiveChangeDetectionModule, unsubscribe } from '../app/index.js'; +import { ButtonComponent } from './button.component.js'; @Component({ diff --git a/packages/desktop-ui/src/components/button/index.ts b/packages/desktop-ui/src/components/button/index.ts index 5687a5472..86c5a9544 100644 --- a/packages/desktop-ui/src/components/button/index.ts +++ b/packages/desktop-ui/src/components/button/index.ts @@ -9,9 +9,9 @@ */ import { NgModule } from '@angular/core'; -import { ButtonComponent, ButtonGroupComponent, ButtonGroupsComponent, FileChooserDirective, FileDropDirective, FilePickerDirective } from './button.component'; +import { ButtonComponent, ButtonGroupComponent, ButtonGroupsComponent, FileChooserDirective, FileDropDirective, FilePickerDirective } from './button.component.js'; import { CommonModule } from '@angular/common'; -import { DuiIconModule } from '../icon'; +import { DuiIconModule } from '../icon/index.js'; import { ContextDropdownDirective, DropdownComponent, @@ -20,13 +20,13 @@ import { DropdownSplitterComponent, OpenDropdownDirective, OpenDropdownHoverDirective, -} from './dropdown.component'; +} from './dropdown.component.js'; import { FormsModule } from '@angular/forms'; -import { TabButtonComponent } from './tab-button.component'; +import { TabButtonComponent } from './tab-button.component.js'; -export * from "./dropdown.component"; -export * from './button.component' -export * from './tab-button.component' +export * from "./dropdown.component.js"; +export * from './button.component.js' +export * from './tab-button.component.js' @NgModule({ declarations: [ diff --git a/packages/desktop-ui/src/components/checkbox/checkbox.component.ts b/packages/desktop-ui/src/components/checkbox/checkbox.component.ts index 6bdef0e6e..d619f3d02 100644 --- a/packages/desktop-ui/src/components/checkbox/checkbox.component.ts +++ b/packages/desktop-ui/src/components/checkbox/checkbox.component.ts @@ -17,7 +17,7 @@ import { Injector, SkipSelf } from '@angular/core'; -import { ngValueAccessor, ValueAccessorBase } from '../../core/form'; +import { ngValueAccessor, ValueAccessorBase } from '../../core/form.js'; @Component({ selector: 'dui-checkbox', diff --git a/packages/desktop-ui/src/components/checkbox/index.ts b/packages/desktop-ui/src/components/checkbox/index.ts index 9229176ff..84ad897f7 100644 --- a/packages/desktop-ui/src/components/checkbox/index.ts +++ b/packages/desktop-ui/src/components/checkbox/index.ts @@ -9,10 +9,10 @@ */ import { NgModule } from '@angular/core'; -import { CheckboxComponent } from './checkbox.component'; -import { DuiIconModule } from '../icon'; +import { CheckboxComponent } from './checkbox.component.js'; +import { DuiIconModule } from '../icon/index.js'; -export * from './checkbox.component' +export * from './checkbox.component.js' @NgModule({ declarations: [ diff --git a/packages/desktop-ui/src/components/core/index.ts b/packages/desktop-ui/src/components/core/index.ts index a75f94407..3718e6824 100644 --- a/packages/desktop-ui/src/components/core/index.ts +++ b/packages/desktop-ui/src/components/core/index.ts @@ -9,9 +9,9 @@ */ import { NgModule } from '@angular/core'; -import { RenderComponentDirective } from './render-component.directive'; +import { RenderComponentDirective } from './render-component.directive.js'; -export * from './render-component.directive' +export * from './render-component.directive.js' @NgModule({ declarations: [ diff --git a/packages/desktop-ui/src/components/dialog/dialog.component.ts b/packages/desktop-ui/src/components/dialog/dialog.component.ts index 3ce7f9d86..a3ab9438c 100644 --- a/packages/desktop-ui/src/components/dialog/dialog.component.ts +++ b/packages/desktop-ui/src/components/dialog/dialog.component.ts @@ -32,13 +32,13 @@ import { } from '@angular/core'; import { Overlay, OverlayRef } from '@angular/cdk/overlay'; import { ComponentPortal } from '@angular/cdk/portal'; -import { WindowRegistry } from '../window/window-state'; -import { WindowComponent } from '../window/window.component'; -import { RenderComponentDirective } from '../core/render-component.directive'; -import { IN_DIALOG } from '../app/token'; -import { OverlayStack, OverlayStackItem, ReactiveChangeDetectionModule, unsubscribe } from '../app'; +import { WindowRegistry } from '../window/window-state.js'; +import { WindowComponent } from '../window/window.component.js'; +import { RenderComponentDirective } from '../core/render-component.directive.js'; +import { IN_DIALOG } from '../app/token.js'; +import { OverlayStack, OverlayStackItem, ReactiveChangeDetectionModule, unsubscribe } from '../app/index.js'; import { Subscription } from 'rxjs'; -import { ButtonComponent } from '../button'; +import { ButtonComponent } from '../button/index.js'; @Component({ template: ` diff --git a/packages/desktop-ui/src/components/dialog/dialog.ts b/packages/desktop-ui/src/components/dialog/dialog.ts index b9d9d9bcb..43b753da7 100644 --- a/packages/desktop-ui/src/components/dialog/dialog.ts +++ b/packages/desktop-ui/src/components/dialog/dialog.ts @@ -24,11 +24,11 @@ import { Type, ViewContainerRef } from '@angular/core'; -import { DialogComponent } from './dialog.component'; -import { isTargetChildOf } from '../../core/utils'; -import { DuiDialogProgress, ProgressDialogState } from './progress-dialog.component'; +import { DialogComponent } from './dialog.component.js'; +import { isTargetChildOf } from '../../core/utils.js'; +import { DuiDialogProgress, ProgressDialogState } from './progress-dialog.component.js'; import { DOCUMENT } from '@angular/common'; -import { WindowRegistry } from '../window/window-state'; +import { WindowRegistry } from '../window/window-state.js'; import { Overlay, OverlayConfig } from '@angular/cdk/overlay'; import { ComponentPortal } from '@angular/cdk/portal'; diff --git a/packages/desktop-ui/src/components/dialog/index.ts b/packages/desktop-ui/src/components/dialog/index.ts index edecfc673..bba898222 100644 --- a/packages/desktop-ui/src/components/dialog/index.ts +++ b/packages/desktop-ui/src/components/dialog/index.ts @@ -9,7 +9,7 @@ */ import { NgModule } from '@angular/core'; -import { DuiWindowModule } from '../window'; +import { DuiWindowModule } from '../window/index.js'; import { CloseDialogDirective, DialogActionsComponent, @@ -17,19 +17,19 @@ import { DialogDirective, DialogErrorComponent, DialogWrapperComponent, OpenDialogDirective, -} from './dialog.component'; +} from './dialog.component.js'; import { OverlayModule } from '@angular/cdk/overlay'; import { CommonModule } from '@angular/common'; -import { DuiDialog, DuiDialogAlert, DuiDialogConfirm, DuiDialogConfirmDirective, DuiDialogPrompt } from './dialog'; -import { DuiButtonModule } from '../button'; -import { DuiCoreModule } from '../core'; -import { DuiInputModule } from '../input'; +import { DuiDialog, DuiDialogAlert, DuiDialogConfirm, DuiDialogConfirmDirective, DuiDialogPrompt } from './dialog.js'; +import { DuiButtonModule } from '../button/index.js'; +import { DuiCoreModule } from '../core/index.js'; +import { DuiInputModule } from '../input/index.js'; import { FormsModule } from '@angular/forms'; -import { DuiDialogProgress } from './progress-dialog.component'; +import { DuiDialogProgress } from './progress-dialog.component.js'; -export * from "./dialog.component"; -export * from "./dialog"; -export * from "./progress-dialog.component"; +export * from "./dialog.component.js"; +export * from "./dialog.js"; +export * from "./progress-dialog.component.js"; @NgModule({ declarations: [ diff --git a/packages/desktop-ui/src/components/dialog/progress-dialog.component.ts b/packages/desktop-ui/src/components/dialog/progress-dialog.component.ts index ad4921597..0319d56d6 100644 --- a/packages/desktop-ui/src/components/dialog/progress-dialog.component.ts +++ b/packages/desktop-ui/src/components/dialog/progress-dialog.component.ts @@ -10,7 +10,7 @@ import { BehaviorSubject } from 'rxjs'; import { Component, Input, OnInit } from '@angular/core'; -import { DialogComponent } from './dialog.component'; +import { DialogComponent } from './dialog.component.js'; class State { title: string = ''; diff --git a/packages/desktop-ui/src/components/emoji/emoji-dropdown.component.ts b/packages/desktop-ui/src/components/emoji/emoji-dropdown.component.ts index b1dc1dde0..e16d78612 100644 --- a/packages/desktop-ui/src/components/emoji/emoji-dropdown.component.ts +++ b/packages/desktop-ui/src/components/emoji/emoji-dropdown.component.ts @@ -26,9 +26,9 @@ import { ViewChild, ViewContainerRef } from '@angular/core'; -import * as emojis from './emojis'; -import { EmojiCategory } from './emojis'; -import { DropdownComponent } from '../button'; +import * as emojis from './emojis.js'; +import { EmojiCategory } from './emojis.js'; +import { DropdownComponent } from '../button/index.js'; @Component({ selector: 'dui-emoji-dropdown', diff --git a/packages/desktop-ui/src/components/emoji/emoji.component.ts b/packages/desktop-ui/src/components/emoji/emoji.component.ts index f3416f6e1..8f44cfc21 100644 --- a/packages/desktop-ui/src/components/emoji/emoji.component.ts +++ b/packages/desktop-ui/src/components/emoji/emoji.component.ts @@ -9,7 +9,7 @@ */ import { Component, Input } from '@angular/core'; -import { Emoji, emojis } from './emojis'; +import { Emoji, emojis } from './emojis.js'; @Component({ selector: 'dui-emoji', diff --git a/packages/desktop-ui/src/components/emoji/index.ts b/packages/desktop-ui/src/components/emoji/index.ts index 92cbf9e47..2cfe82d58 100644 --- a/packages/desktop-ui/src/components/emoji/index.ts +++ b/packages/desktop-ui/src/components/emoji/index.ts @@ -11,14 +11,14 @@ import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { CommonModule } from '@angular/common'; -import { EmojiDropdownComponent, EmojiDropdownDirective } from './emoji-dropdown.component'; -import { DuiInputModule } from '../input'; -import { DuiButtonModule } from '../button'; -import { EmojiComponent } from './emoji.component'; +import { EmojiDropdownComponent, EmojiDropdownDirective } from './emoji-dropdown.component.js'; +import { DuiInputModule } from '../input/index.js'; +import { DuiButtonModule } from '../button/index.js'; +import { EmojiComponent } from './emoji.component.js'; -export { EmojiComponent } from "./emoji.component"; +export { EmojiComponent } from "./emoji.component.js"; -export { EmojiDropdownComponent, EmojiDropdownDirective } from "./emoji-dropdown.component"; +export { EmojiDropdownComponent, EmojiDropdownDirective } from './emoji-dropdown.component.js'; @NgModule({ declarations: [ diff --git a/packages/desktop-ui/src/components/form/form.component.ts b/packages/desktop-ui/src/components/form/form.component.ts index 117a2e319..6d280c4aa 100644 --- a/packages/desktop-ui/src/components/form/form.component.ts +++ b/packages/desktop-ui/src/components/form/form.component.ts @@ -10,7 +10,7 @@ import { ChangeDetectorRef, Component, ContentChild, EventEmitter, HostListener, Input, OnChanges, Output, SimpleChanges, SkipSelf } from '@angular/core'; import { FormGroup, NgControl } from '@angular/forms'; -import { detectChangesNextFrame } from '../app'; +import { detectChangesNextFrame } from '../app/index.js'; @Component({ selector: 'dui-form-row', diff --git a/packages/desktop-ui/src/components/form/index.ts b/packages/desktop-ui/src/components/form/index.ts index 4d78f2eb7..ed223736d 100644 --- a/packages/desktop-ui/src/components/form/index.ts +++ b/packages/desktop-ui/src/components/form/index.ts @@ -9,11 +9,11 @@ */ import { NgModule } from '@angular/core'; -import { FormComponent, FormRowComponent } from './form.component'; +import { FormComponent, FormRowComponent } from './form.component.js'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { CommonModule } from '@angular/common'; -export * from "./form.component"; +export * from "./form.component.js"; @NgModule({ declarations: [ diff --git a/packages/desktop-ui/src/components/icon/index.ts b/packages/desktop-ui/src/components/icon/index.ts index 36623ef08..09e0fc725 100644 --- a/packages/desktop-ui/src/components/icon/index.ts +++ b/packages/desktop-ui/src/components/icon/index.ts @@ -10,9 +10,9 @@ import { NgModule } from '@angular/core'; -import { IconComponent } from './icon.component'; +import { IconComponent } from './icon.component.js'; -export * from './icon.component'; +export * from './icon.component.js'; @NgModule({ imports: [], diff --git a/packages/desktop-ui/src/components/indicator/index.ts b/packages/desktop-ui/src/components/indicator/index.ts index 1c8f446e1..50ea62fe3 100644 --- a/packages/desktop-ui/src/components/indicator/index.ts +++ b/packages/desktop-ui/src/components/indicator/index.ts @@ -10,9 +10,9 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { IndicatorComponent } from './indicator.component'; +import { IndicatorComponent } from './indicator.component.js'; -export * from './indicator.component'; +export * from './indicator.component.js'; @NgModule({ declarations: [ diff --git a/packages/desktop-ui/src/components/input/index.ts b/packages/desktop-ui/src/components/input/index.ts index 0c3e8e8da..7919b503c 100644 --- a/packages/desktop-ui/src/components/input/index.ts +++ b/packages/desktop-ui/src/components/input/index.ts @@ -9,12 +9,12 @@ */ import { NgModule } from '@angular/core'; -import { InputComponent } from './input.component'; +import { InputComponent } from './input.component.js'; import { FormsModule } from '@angular/forms'; import { CommonModule, DatePipe } from '@angular/common'; -import { DuiIconModule } from '../icon'; +import { DuiIconModule } from '../icon/index.js'; -export * from './input.component'; +export * from './input.component.js'; @NgModule({ declarations: [ diff --git a/packages/desktop-ui/src/components/input/input.component.ts b/packages/desktop-ui/src/components/input/input.component.ts index 5bf349875..20357698c 100644 --- a/packages/desktop-ui/src/components/input/input.component.ts +++ b/packages/desktop-ui/src/components/input/input.component.ts @@ -9,8 +9,8 @@ */ import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, Injector, Input, Output, SkipSelf, ViewChild } from '@angular/core'; -import { ngValueAccessor, ValueAccessorBase } from '../../core/form'; -import { detectChangesNextFrame } from '../app'; +import { ngValueAccessor, ValueAccessorBase } from '../../core/form.js'; +import { detectChangesNextFrame } from '../app/index.js'; import { DatePipe } from '@angular/common'; const dateTimeTypes: string[] = ['time', 'date', 'datetime', 'datetime-local']; diff --git a/packages/desktop-ui/src/components/list/index.ts b/packages/desktop-ui/src/components/list/index.ts index aa67edf59..ebba70f02 100644 --- a/packages/desktop-ui/src/components/list/index.ts +++ b/packages/desktop-ui/src/components/list/index.ts @@ -9,9 +9,9 @@ */ import { NgModule } from '@angular/core'; -import { ListComponent, ListItemComponent, ListTitleComponent } from './list.component'; +import { ListComponent, ListItemComponent, ListTitleComponent } from './list.component.js'; -export * from './list.component'; +export * from './list.component.js'; @NgModule({ imports: [], diff --git a/packages/desktop-ui/src/components/list/list.component.ts b/packages/desktop-ui/src/components/list/list.component.ts index 8ea144f77..7a710e199 100644 --- a/packages/desktop-ui/src/components/list/list.component.ts +++ b/packages/desktop-ui/src/components/list/list.component.ts @@ -26,7 +26,7 @@ import { SkipSelf } from '@angular/core'; import { NavigationEnd, Router, UrlTree } from '@angular/router'; -import { ngValueAccessor, ValueAccessorBase } from '../../core/form'; +import { ngValueAccessor, ValueAccessorBase } from '../../core/form.js'; import { Subscription } from 'rxjs'; import { arrayRemoveItem } from '@deepkit/core'; diff --git a/packages/desktop-ui/src/components/radiobox/index.ts b/packages/desktop-ui/src/components/radiobox/index.ts index a382324bc..17e7fc97a 100644 --- a/packages/desktop-ui/src/components/radiobox/index.ts +++ b/packages/desktop-ui/src/components/radiobox/index.ts @@ -9,9 +9,9 @@ */ import { NgModule } from '@angular/core'; -import { RadioboxComponent } from './radiobox.component'; +import { RadioboxComponent } from './radiobox.component.js'; -export * from './radiobox.component'; +export * from './radiobox.component.js'; @NgModule({ declarations: [ diff --git a/packages/desktop-ui/src/components/radiobox/radiobox.component.ts b/packages/desktop-ui/src/components/radiobox/radiobox.component.ts index b5b0b16f3..b8ab89d8a 100644 --- a/packages/desktop-ui/src/components/radiobox/radiobox.component.ts +++ b/packages/desktop-ui/src/components/radiobox/radiobox.component.ts @@ -9,7 +9,7 @@ */ import { ChangeDetectorRef, Component, HostBinding, HostListener, Injector, Input, SkipSelf } from '@angular/core'; -import { ngValueAccessor, ValueAccessorBase } from '../../core/form'; +import { ngValueAccessor, ValueAccessorBase } from '../../core/form.js'; @Component({ selector: 'dui-radiobox', diff --git a/packages/desktop-ui/src/components/select/index.ts b/packages/desktop-ui/src/components/select/index.ts index 636940722..3de9565fc 100644 --- a/packages/desktop-ui/src/components/select/index.ts +++ b/packages/desktop-ui/src/components/select/index.ts @@ -14,13 +14,13 @@ import { OptionDirective, OptionSeparatorDirective, SelectboxComponent -} from './selectbox.component'; +} from './selectbox.component.js'; import { FormsModule } from '@angular/forms'; import { CommonModule } from '@angular/common'; -import { DuiIconModule } from '../icon'; -import { DuiButtonModule } from '../button'; +import { DuiIconModule } from '../icon/index.js'; +import { DuiButtonModule } from '../button/index.js'; -export * from "./selectbox.component"; +export * from "./selectbox.component.js"; @NgModule({ declarations: [ diff --git a/packages/desktop-ui/src/components/select/selectbox.component.ts b/packages/desktop-ui/src/components/select/selectbox.component.ts index 47717c679..7216f8909 100644 --- a/packages/desktop-ui/src/components/select/selectbox.component.ts +++ b/packages/desktop-ui/src/components/select/selectbox.component.ts @@ -29,10 +29,10 @@ import { ViewChild } from '@angular/core'; import { Subscription } from 'rxjs'; -import { ngValueAccessor, ValueAccessorBase } from '../../core/form'; +import { ngValueAccessor, ValueAccessorBase } from '../../core/form.js'; import { Overlay } from '@angular/cdk/overlay'; -import { DropdownComponent } from '../button/dropdown.component'; -import { ButtonComponent } from '../button/button.component'; +import { DropdownComponent } from '../button/dropdown.component.js'; +import { ButtonComponent } from '../button/button.component.js'; /** * Necessary directive to get a dynamic rendered option. diff --git a/packages/desktop-ui/src/components/slider/index.ts b/packages/desktop-ui/src/components/slider/index.ts index 355ccf243..9a35657a8 100644 --- a/packages/desktop-ui/src/components/slider/index.ts +++ b/packages/desktop-ui/src/components/slider/index.ts @@ -11,11 +11,11 @@ import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { CommonModule } from '@angular/common'; -import { DuiIconModule } from '../icon'; -import { DuiButtonModule } from '../button'; -import { SliderComponent } from './slider.component'; +import { DuiIconModule } from '../icon/index.js'; +import { DuiButtonModule } from '../button/index.js'; +import { SliderComponent } from './slider.component.js'; -export * from './slider.component'; +export * from './slider.component.js'; @NgModule({ declarations: [ diff --git a/packages/desktop-ui/src/components/slider/slider.component.ts b/packages/desktop-ui/src/components/slider/slider.component.ts index 71f1e64d1..63c4f0119 100644 --- a/packages/desktop-ui/src/components/slider/slider.component.ts +++ b/packages/desktop-ui/src/components/slider/slider.component.ts @@ -18,7 +18,7 @@ import { SkipSelf, ViewChild } from '@angular/core'; -import { ngValueAccessor, ValueAccessorBase } from '../../core/form'; +import { ngValueAccessor, ValueAccessorBase } from '../../core/form.js'; import Hammer from 'hammerjs'; @Component({ diff --git a/packages/desktop-ui/src/components/splitter/index.ts b/packages/desktop-ui/src/components/splitter/index.ts index 53e4dd6e5..e1d71c90b 100644 --- a/packages/desktop-ui/src/components/splitter/index.ts +++ b/packages/desktop-ui/src/components/splitter/index.ts @@ -10,9 +10,9 @@ import { NgModule } from '@angular/core'; -import { SplitterComponent } from './splitter.component'; +import { SplitterComponent } from './splitter.component.js'; -export * from './splitter.component'; +export * from './splitter.component.js'; @NgModule({ imports: [], diff --git a/packages/desktop-ui/src/components/table/index.ts b/packages/desktop-ui/src/components/table/index.ts index f23eeb740..ca24bd0d1 100644 --- a/packages/desktop-ui/src/components/table/index.ts +++ b/packages/desktop-ui/src/components/table/index.ts @@ -16,14 +16,14 @@ import { TableCustomHeaderContextMenuDirective, TableCustomRowContextMenuDirective, TableHeaderDirective -} from './table.component'; +} from './table.component.js'; import { CommonModule } from '@angular/common'; -import { DuiIconModule } from '../icon'; -import { DuiSplitterModule } from '../splitter'; +import { DuiIconModule } from '../icon/index.js'; +import { DuiSplitterModule } from '../splitter/index.js'; import { ScrollingModule } from '@angular/cdk/scrolling'; -import { DuiButtonModule } from '../button'; +import { DuiButtonModule } from '../button/index.js'; -export * from "./table.component"; +export * from "./table.component.js"; @NgModule({ exports: [ diff --git a/packages/desktop-ui/src/components/table/table.component.ts b/packages/desktop-ui/src/components/table/table.component.ts index ad018d754..69a61af58 100644 --- a/packages/desktop-ui/src/components/table/table.component.ts +++ b/packages/desktop-ui/src/components/table/table.component.ts @@ -37,9 +37,9 @@ import { arrayClear, arrayHasItem, arrayRemoveItem, eachPair, empty, first, inde import Hammer from 'hammerjs'; import { isObservable, Observable } from 'rxjs'; import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling'; -import { DropdownComponent } from '../button'; -import { detectChangesNextFrame } from '../app/utils'; -import { findParentWithClass } from '../../core/utils'; +import { DropdownComponent } from '../button/index.js'; +import { detectChangesNextFrame } from '../app/utils.js'; +import { findParentWithClass } from '../../core/utils.js'; /** * Directive to allow dynamic content in a cell. diff --git a/packages/desktop-ui/src/components/tabs/index.ts b/packages/desktop-ui/src/components/tabs/index.ts index 098a7eb63..8497850fe 100644 --- a/packages/desktop-ui/src/components/tabs/index.ts +++ b/packages/desktop-ui/src/components/tabs/index.ts @@ -1,7 +1,7 @@ import { NgModule } from '@angular/core'; -import { TabComponent } from './tab.component'; -import { TabsComponent } from './tabs.component'; -import { DuiIconModule } from '../icon'; +import { TabComponent } from './tab.component.js'; +import { TabsComponent } from './tabs.component.js'; +import { DuiIconModule } from '../icon/index.js'; import { CommonModule } from '@angular/common'; @NgModule({ diff --git a/packages/desktop-ui/src/components/window/external-window.component.ts b/packages/desktop-ui/src/components/window/external-window.component.ts index 7cb99d885..c8dbe92f5 100644 --- a/packages/desktop-ui/src/components/window/external-window.component.ts +++ b/packages/desktop-ui/src/components/window/external-window.component.ts @@ -30,15 +30,15 @@ import { ViewContainerRef } from '@angular/core'; import { ComponentPortal, DomPortalHost, PortalHost } from '@angular/cdk/portal'; -import { WindowComponent } from '../window/window.component'; -import { WindowRegistry } from '../window/window-state'; -import { RenderComponentDirective } from '../core/render-component.directive'; -import { ELECTRON_WINDOW, IN_DIALOG } from '../app/token'; +import { WindowComponent } from '../window/window.component.js'; +import { WindowRegistry } from '../window/window-state.js'; +import { RenderComponentDirective } from '../core/render-component.directive.js'; +import { ELECTRON_WINDOW, IN_DIALOG } from '../app/token.js'; import { Subscription } from 'rxjs'; import { DOCUMENT } from '@angular/common'; -import { DuiDialog } from '../dialog/dialog'; -import { Electron } from '../../core/utils'; -import { detectChangesNextFrame } from '../app'; +import { DuiDialog } from '../dialog/dialog.js'; +import { Electron } from '../../core/utils.js'; +import { detectChangesNextFrame } from '../app/index.js'; function PopupCenter(url: string, title: string, w: number, h: number): Window { let top = window.screenTop + (window.outerHeight / 2) - w / 2; diff --git a/packages/desktop-ui/src/components/window/external-window.ts b/packages/desktop-ui/src/components/window/external-window.ts index dae5afa4d..d22f45942 100644 --- a/packages/desktop-ui/src/components/window/external-window.ts +++ b/packages/desktop-ui/src/components/window/external-window.ts @@ -9,7 +9,7 @@ */ import { ApplicationRef, ComponentFactoryResolver, Injectable, Injector, Type, ViewContainerRef } from '@angular/core'; -import { ExternalWindowComponent } from './external-window.component'; +import { ExternalWindowComponent } from './external-window.component.js'; import { ComponentPortal, DomPortalHost } from '@angular/cdk/portal'; @Injectable() diff --git a/packages/desktop-ui/src/components/window/index.ts b/packages/desktop-ui/src/components/window/index.ts index 1007a82c2..afa113976 100644 --- a/packages/desktop-ui/src/components/window/index.ts +++ b/packages/desktop-ui/src/components/window/index.ts @@ -9,36 +9,36 @@ */ import { ModuleWithProviders, NgModule } from '@angular/core'; -import { WindowContentComponent } from './window-content.component'; -import { WindowComponent, WindowFrameComponent } from './window.component'; -import { WindowFooterComponent } from './window-footer.component'; +import { WindowContentComponent } from './window-content.component.js'; +import { WindowComponent, WindowFrameComponent } from './window.component.js'; +import { WindowFooterComponent } from './window-footer.component.js'; import { WindowHeaderComponent, WindowToolbarComponent, WindowToolbarContainerComponent -} from './window-header.component'; +} from './window-header.component.js'; import { CommonModule } from '@angular/common'; -import { WindowSidebarComponent } from './window-sidebar.component'; -import { DuiSplitterModule } from '../splitter'; -import { DuiIconModule } from '../icon'; -import { WindowRegistry } from './window-state'; +import { WindowSidebarComponent } from './window-sidebar.component.js'; +import { DuiSplitterModule } from '../splitter/index.js'; +import { DuiIconModule } from '../icon/index.js'; +import { WindowRegistry } from './window-state.js'; import { ExternalDialogDirective, ExternalDialogWrapperComponent, ExternalWindowComponent -} from './external-window.component'; -import { DuiExternalWindow } from './external-window'; -import { DuiCoreModule } from '../core'; +} from './external-window.component.js'; +import { DuiExternalWindow } from './external-window.js'; +import { DuiCoreModule } from '../core/index.js'; -export * from "./window.component"; -export * from "./external-window"; -export * from "./external-window.component"; -export * from "./window-content.component"; -export * from "./window-header.component"; -export * from "./window-footer.component"; -export * from "./window-menu"; -export * from "./window-sidebar.component"; +export * from "./window.component.js"; +export * from "./external-window.js"; +export * from "./external-window.component.js"; +export * from "./window-content.component.js"; +export * from "./window-header.component.js"; +export * from "./window-footer.component.js"; +export * from "./window-menu.js"; +export * from "./window-sidebar.component.js"; @NgModule({ declarations: [ diff --git a/packages/desktop-ui/src/components/window/window-content.component.ts b/packages/desktop-ui/src/components/window/window-content.component.ts index 76f1d28cd..a3311b9e0 100644 --- a/packages/desktop-ui/src/components/window/window-content.component.ts +++ b/packages/desktop-ui/src/components/window/window-content.component.ts @@ -9,10 +9,10 @@ */ import { AfterViewInit, ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core'; -import { WindowSidebarComponent } from './window-sidebar.component'; +import { WindowSidebarComponent } from './window-sidebar.component.js'; import { Subject } from 'rxjs'; -import { WindowState } from './window-state'; -import { triggerResize } from '../../core/utils'; +import { WindowState } from './window-state.js'; +import { triggerResize } from '../../core/utils.js'; @Component({ selector: 'dui-window-content', diff --git a/packages/desktop-ui/src/components/window/window-header.component.ts b/packages/desktop-ui/src/components/window/window-header.component.ts index e283a384c..1f33fdffc 100644 --- a/packages/desktop-ui/src/components/window/window-header.component.ts +++ b/packages/desktop-ui/src/components/window/window-header.component.ts @@ -20,8 +20,8 @@ import { TemplateRef, ViewChild } from '@angular/core'; -import { WindowState } from './window-state'; -import { Electron } from '../../core/utils'; +import { WindowState } from './window-state.js'; +import { Electron } from '../../core/utils.js'; @Component({ selector: 'dui-window-header', diff --git a/packages/desktop-ui/src/components/window/window-menu.ts b/packages/desktop-ui/src/components/window/window-menu.ts index 231b6c9f8..f8cd00cf4 100644 --- a/packages/desktop-ui/src/components/window/window-menu.ts +++ b/packages/desktop-ui/src/components/window/window-menu.ts @@ -8,11 +8,11 @@ * You should have received a copy of the MIT License along with this program. */ -import { MenuDirective } from '../app/menu.component'; +import { MenuDirective } from '../app/menu.component.js'; import { arrayRemoveItem } from '@deepkit/core'; import { Subscription } from 'rxjs'; import { Injectable } from '@angular/core'; -import { Electron } from '../../core/utils'; +import { Electron } from '../../core/utils.js'; @Injectable() export class WindowMenuState { diff --git a/packages/desktop-ui/src/components/window/window-state.ts b/packages/desktop-ui/src/components/window/window-state.ts index c1adb8709..471b84e41 100644 --- a/packages/desktop-ui/src/components/window/window-state.ts +++ b/packages/desktop-ui/src/components/window/window-state.ts @@ -9,13 +9,13 @@ */ import { ChangeDetectorRef, Injectable, TemplateRef, ViewContainerRef } from '@angular/core'; -import { ButtonGroupComponent } from '../button/button.component'; -import { WindowHeaderComponent, WindowToolbarContainerComponent } from './window-header.component'; +import { ButtonGroupComponent } from '../button/button.component.js'; +import { WindowHeaderComponent, WindowToolbarContainerComponent } from './window-header.component.js'; import { arrayRemoveItem } from '@deepkit/core'; -import { WindowComponent } from './window.component'; -import { WindowMenuState } from './window-menu'; +import { WindowComponent } from './window.component.js'; +import { WindowMenuState } from './window-menu.js'; import { BehaviorSubject } from 'rxjs'; -import { detectChangesNextFrame } from '../app/utils'; +import { detectChangesNextFrame } from '../app/utils.js'; @Injectable() export class WindowRegistry { diff --git a/packages/desktop-ui/src/components/window/window.component.ts b/packages/desktop-ui/src/components/window/window.component.ts index 8b121ead4..1c6d40d33 100644 --- a/packages/desktop-ui/src/components/window/window.component.ts +++ b/packages/desktop-ui/src/components/window/window.component.ts @@ -9,13 +9,13 @@ */ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, Inject, Input, OnChanges, OnDestroy, Optional, SimpleChanges, SkipSelf, ViewContainerRef } from '@angular/core'; -import { WindowContentComponent } from './window-content.component'; -import { WindowRegistry, WindowState } from './window-state'; +import { WindowContentComponent } from './window-content.component.js'; +import { WindowRegistry, WindowState } from './window-state.js'; import { DOCUMENT } from '@angular/common'; -import { WindowMenuState } from './window-menu'; -import { WindowHeaderComponent } from './window-header.component'; -import { ELECTRON_WINDOW, IN_DIALOG } from '../app/token'; -import { DuiApp } from '../app'; +import { WindowMenuState } from './window-menu.js'; +import { WindowHeaderComponent } from './window-header.component.js'; +import { ELECTRON_WINDOW, IN_DIALOG } from '../app/token.js'; +import { DuiApp } from '../app/index.js'; /** * This is only for documentation purposes. diff --git a/packages/desktop-ui/src/core/form.ts b/packages/desktop-ui/src/core/form.ts index c6295d8ab..9f2e60da0 100644 --- a/packages/desktop-ui/src/core/form.ts +++ b/packages/desktop-ui/src/core/form.ts @@ -23,8 +23,8 @@ import { Type } from '@angular/core'; import { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl } from '@angular/forms'; -import { detectChangesNextFrame } from '../components/app/utils'; -import { FormComponent } from '../components/form/form.component'; +import { detectChangesNextFrame } from '../components/app/utils.js'; +import { FormComponent } from '../components/form/form.component.js'; export function ngValueAccessor(clazz: Type) { return { diff --git a/packages/desktop-ui/src/index.ts b/packages/desktop-ui/src/index.ts index 9cfebb000..f76bf99c0 100644 --- a/packages/desktop-ui/src/index.ts +++ b/packages/desktop-ui/src/index.ts @@ -8,25 +8,25 @@ * You should have received a copy of the MIT License along with this program. */ -export { ValueAccessorBase, ngValueAccessor } from './core/form'; -export * from './browser-text'; -export * from './core/form'; -export * from './core/utils'; -export * from './components/app'; -export * from './components/checkbox'; -export * from './components/button'; -export * from './components/input'; -export * from './components/form'; -export * from './components/radiobox'; -export * from './components/select'; -export * from './components/window'; -export * from './components/icon'; -export * from './components/list'; -export * from './components/table'; -export * from './components/splitter'; -export * from './components/dialog'; -export * from './components/core'; -export * from './components/emoji'; -export * from './components/slider'; -export * from './components/indicator'; -export * from './components/tabs'; +export { ValueAccessorBase, ngValueAccessor } from './core/form.js'; +export * from './browser-text.js'; +export * from './core/form.js'; +export * from './core/utils.js'; +export * from './components/app/index.js'; +export * from './components/checkbox/index.js'; +export * from './components/button/index.js'; +export * from './components/input/index.js'; +export * from './components/form/index.js'; +export * from './components/radiobox/index.js'; +export * from './components/select/index.js'; +export * from './components/window/index.js'; +export * from './components/icon/index.js'; +export * from './components/list/index.js'; +export * from './components/table/index.js'; +export * from './components/splitter/index.js'; +export * from './components/dialog/index.js'; +export * from './components/core/index.js'; +export * from './components/emoji/index.js'; +export * from './components/slider/index.js'; +export * from './components/indicator/index.js'; +export * from './components/tabs/index.js'; diff --git a/packages/event/index.ts b/packages/event/index.ts index 1233bb712..7442dd49a 100644 --- a/packages/event/index.ts +++ b/packages/event/index.ts @@ -1 +1 @@ -export * from './src/event'; +export * from './src/event.js'; diff --git a/packages/example-app/app.ts b/packages/example-app/app.ts index e2c794e80..3b6c1a141 100755 --- a/packages/example-app/app.ts +++ b/packages/example-app/app.ts @@ -1,12 +1,12 @@ #!/usr/bin/env ts-node-script import { createCrudRoutes, FrameworkModule, onServerMainBootstrapDone } from '@deepkit/framework'; -import { Author, Book, SQLiteDatabase, User } from './src/database'; -import { MainController } from './src/controller/main.http'; -import { UsersCommand } from './src/controller/users.cli'; -import { Config } from './src/config'; +import { Author, Book, SQLiteDatabase, User } from './src/database.js'; +import { MainController } from './src/controller/main.http.js'; +import { UsersCommand } from './src/controller/users.cli.js'; +import { Config } from './src/config.js'; import { JSONTransport, Logger, LoggerInterface } from '@deepkit/logger'; import { App } from '@deepkit/app'; -import { RpcController } from './src/controller/rpc.controller'; +import { RpcController } from './src/controller/rpc.controller.js'; import { ApiConsoleModule } from '@deepkit/api-console-module'; const bookStoreCrud = createCrudRoutes([Author, Book]); diff --git a/packages/example-app/src/controller/users.cli.ts b/packages/example-app/src/controller/users.cli.ts index 57bfc31a7..148910b0f 100644 --- a/packages/example-app/src/controller/users.cli.ts +++ b/packages/example-app/src/controller/users.cli.ts @@ -1,6 +1,6 @@ import { arg, cli, Command, flag } from '@deepkit/app'; import { LoggerInterface } from '@deepkit/logger'; -import { SQLiteDatabase, User } from '../database'; +import { SQLiteDatabase, User } from '../database.js'; import { Positive } from '@deepkit/type'; @cli.controller('users') diff --git a/packages/example-app/src/database.ts b/packages/example-app/src/database.ts index d8b9cc166..308e3a04f 100644 --- a/packages/example-app/src/database.ts +++ b/packages/example-app/src/database.ts @@ -1,7 +1,7 @@ import { AutoIncrement, Email, entity, MaxLength, MinLength, PrimaryKey, Reference, Unique } from '@deepkit/type'; import { Database } from '@deepkit/orm'; import { SQLiteDatabaseAdapter } from '@deepkit/sqlite'; -import { Config } from './config'; +import { Config } from './config.js'; @entity.name('user') export class User { diff --git a/packages/framework-debug-api/index.ts b/packages/framework-debug-api/index.ts index 7452657b1..a8625cc45 100644 --- a/packages/framework-debug-api/index.ts +++ b/packages/framework-debug-api/index.ts @@ -8,6 +8,6 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/model'; -export * from './src/api'; -export * from './src/stopwatch-encoding'; +export * from './src/model.js'; +export * from './src/api.js'; +export * from './src/stopwatch-encoding.js'; diff --git a/packages/framework-debug-api/package-lock.json b/packages/framework-debug-api/package-lock.json index 49552e395..3801a9b02 100644 --- a/packages/framework-debug-api/package-lock.json +++ b/packages/framework-debug-api/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/framework-debug-api", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "devDependencies": { "rxjs": "~6.6.0" diff --git a/packages/framework-debug-api/src/api.ts b/packages/framework-debug-api/src/api.ts index 9ed22dcf5..7971caf82 100644 --- a/packages/framework-debug-api/src/api.ts +++ b/packages/framework-debug-api/src/api.ts @@ -9,7 +9,7 @@ */ import { ControllerSymbol } from '@deepkit/rpc'; -import { DebugRequest } from './model'; +import { DebugRequest } from './model.js'; import { Subject } from 'rxjs'; import { deserializeType, entity, Excluded, Type } from '@deepkit/type'; diff --git a/packages/framework-debug-gui/e2e/src/app.e2e-spec.ts b/packages/framework-debug-gui/e2e/src/app.e2e-spec.ts index 9d355da3b..ac8d0d3a0 100644 --- a/packages/framework-debug-gui/e2e/src/app.e2e-spec.ts +++ b/packages/framework-debug-gui/e2e/src/app.e2e-spec.ts @@ -1,5 +1,5 @@ import { browser, logging } from 'protractor'; -import { AppPage } from './app.po'; +import { AppPage } from './app.po.js'; describe('workspace-project App', () => { let page: AppPage; diff --git a/packages/framework-debug-gui/src/app/app-routing.module.ts b/packages/framework-debug-gui/src/app/app-routing.module.ts index 7d892c7a8..3b07ffa05 100644 --- a/packages/framework-debug-gui/src/app/app-routing.module.ts +++ b/packages/framework-debug-gui/src/app/app-routing.module.ts @@ -10,13 +10,13 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { ConfigurationComponent } from './views/configuration/configuration.component'; -import { HttpComponent } from './views/http/http.component'; -import { RpcComponent } from './views/rpc/rpc.component'; -import { EventsComponent } from './views/events/events.component'; -import { HttpRequestComponent } from './views/http/request/http-request.component'; -import { ProfileComponent } from './views/profile/profile.component'; -import { ModulesComponent } from './views/modules/modules.component'; +import { ConfigurationComponent } from './views/configuration/configuration.component.js'; +import { HttpComponent } from './views/http/http.component.js'; +import { RpcComponent } from './views/rpc/rpc.component.js'; +import { EventsComponent } from './views/events/events.component.js'; +import { HttpRequestComponent } from './views/http/request/http-request.component.js'; +import { ProfileComponent } from './views/profile/profile.component.js'; +import { ModulesComponent } from './views/modules/modules.component.js'; const routes: Routes = [ { path: '', pathMatch: 'full', redirectTo: 'configuration' }, diff --git a/packages/framework-debug-gui/src/app/app.component.spec.ts b/packages/framework-debug-gui/src/app/app.component.spec.ts index fc86d4efa..0e197ae10 100644 --- a/packages/framework-debug-gui/src/app/app.component.spec.ts +++ b/packages/framework-debug-gui/src/app/app.component.spec.ts @@ -10,7 +10,7 @@ import { TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; -import { AppComponent } from './app.component'; +import { AppComponent } from './app.component.js'; describe('AppComponent', () => { beforeEach(async () => { diff --git a/packages/framework-debug-gui/src/app/app.component.ts b/packages/framework-debug-gui/src/app/app.component.ts index ddf06b91d..ed31330b8 100644 --- a/packages/framework-debug-gui/src/app/app.component.ts +++ b/packages/framework-debug-gui/src/app/app.component.ts @@ -12,7 +12,7 @@ import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DuiApp, observe } from '@deepkit/desktop-ui'; import { Database, DebugRequest } from '@deepkit/framework-debug-api'; import { Collection } from '@deepkit/rpc'; -import { ControllerClient } from './client'; +import { ControllerClient } from './client.js'; import { Router } from '@angular/router'; @Component({ diff --git a/packages/framework-debug-gui/src/app/app.module.ts b/packages/framework-debug-gui/src/app/app.module.ts index e69b4bad0..594ced170 100644 --- a/packages/framework-debug-gui/src/app/app.module.ts +++ b/packages/framework-debug-gui/src/app/app.module.ts @@ -10,8 +10,8 @@ import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; -import { AppRoutingModule } from './app-routing.module'; -import { AppComponent } from './app.component'; +import { AppRoutingModule } from './app-routing.module.js'; +import { AppComponent } from './app.component.js'; import { DuiAppModule, DuiButtonModule, @@ -25,22 +25,22 @@ import { DuiTableModule, DuiWindowModule, } from '@deepkit/desktop-ui'; -import { ConfigurationComponent } from './views/configuration/configuration.component'; -import { HttpComponent } from './views/http/http.component'; -import { ControllerClient } from './client'; +import { ConfigurationComponent } from './views/configuration/configuration.component.js'; +import { HttpComponent } from './views/http/http.component.js'; +import { ControllerClient } from './client.js'; import { FormsModule } from '@angular/forms'; -import { RpcComponent } from './views/rpc/rpc.component'; -import { WorkflowCardComponent, WorkflowComponent } from './components/workflow.component'; -import { EventsComponent } from './views/events/events.component'; +import { RpcComponent } from './views/rpc/rpc.component.js'; +import { WorkflowCardComponent, WorkflowComponent } from './components/workflow.component.js'; +import { EventsComponent } from './views/events/events.component.js'; import { DeepkitClient } from '@deepkit/rpc'; import { OverlayModule } from '@angular/cdk/overlay'; -import { HttpRequestComponent } from './views/http/request/http-request.component'; +import { HttpRequestComponent } from './views/http/request/http-request.component.js'; import { OrmBrowserModule } from '@deepkit/orm-browser-gui'; import { ApiConsoleModule } from '@deepkit/api-console-gui'; -import { ProfileComponent } from './views/profile/profile.component'; -import { ProfileTimelineComponent } from './views/profile/timeline.component'; -import { ModulesComponent } from './views/modules/modules.component'; -import { ModuleDetailComponent, ModuleDetailServiceComponent } from './views/modules/module-detail.component'; +import { ProfileComponent } from './views/profile/profile.component.js'; +import { ProfileTimelineComponent } from './views/profile/timeline.component.js'; +import { ModulesComponent } from './views/modules/modules.component.js'; +import { ModuleDetailComponent, ModuleDetailServiceComponent } from './views/modules/module-detail.component.js'; import { DeepkitUIModule } from '@deepkit/ui-library'; @NgModule({ diff --git a/packages/framework-debug-gui/src/app/views/configuration/configuration.component.ts b/packages/framework-debug-gui/src/app/views/configuration/configuration.component.ts index 512c620e2..3583e91ef 100644 --- a/packages/framework-debug-gui/src/app/views/configuration/configuration.component.ts +++ b/packages/framework-debug-gui/src/app/views/configuration/configuration.component.ts @@ -9,7 +9,7 @@ */ import { ChangeDetectorRef, Component, OnInit } from '@angular/core'; -import { ControllerClient } from '../../client'; +import { ControllerClient } from '../../client.js'; import { ConfigOption } from '@deepkit/framework-debug-api'; @Component({ diff --git a/packages/framework-debug-gui/src/app/views/events/events.component.ts b/packages/framework-debug-gui/src/app/views/events/events.component.ts index bbd8a7313..04761b88a 100644 --- a/packages/framework-debug-gui/src/app/views/events/events.component.ts +++ b/packages/framework-debug-gui/src/app/views/events/events.component.ts @@ -9,7 +9,7 @@ */ import { ChangeDetectorRef, Component, OnInit } from '@angular/core'; -import { ControllerClient } from '../../client'; +import { ControllerClient } from '../../client.js'; import { Event } from '@deepkit/framework-debug-api'; @Component({ diff --git a/packages/framework-debug-gui/src/app/views/http/http.component.ts b/packages/framework-debug-gui/src/app/views/http/http.component.ts index 1beafb807..55fa979ed 100644 --- a/packages/framework-debug-gui/src/app/views/http/http.component.ts +++ b/packages/framework-debug-gui/src/app/views/http/http.component.ts @@ -9,7 +9,7 @@ */ import { ChangeDetectorRef, Component, OnInit } from '@angular/core'; -import { ControllerClient } from '../../client'; +import { ControllerClient } from '../../client.js'; import { Route, Workflow } from '@deepkit/framework-debug-api'; @Component({ diff --git a/packages/framework-debug-gui/src/app/views/http/request/http-request.component.ts b/packages/framework-debug-gui/src/app/views/http/request/http-request.component.ts index 836003bfd..8d4cb45ca 100644 --- a/packages/framework-debug-gui/src/app/views/http/request/http-request.component.ts +++ b/packages/framework-debug-gui/src/app/views/http/request/http-request.component.ts @@ -10,7 +10,7 @@ import { ChangeDetectorRef, Component } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; -import { ControllerClient } from '../../../client'; +import { ControllerClient } from '../../../client.js'; import { EntitySubject } from '@deepkit/rpc'; import { DebugRequest, Workflow } from '@deepkit/framework-debug-api'; diff --git a/packages/framework-debug-gui/src/app/views/modules/module-detail.component.ts b/packages/framework-debug-gui/src/app/views/modules/module-detail.component.ts index 0175ad02c..5a41f1a28 100644 --- a/packages/framework-debug-gui/src/app/views/modules/module-detail.component.ts +++ b/packages/framework-debug-gui/src/app/views/modules/module-detail.component.ts @@ -2,7 +2,7 @@ import { Component, Input, OnChanges } from '@angular/core'; import { ModuleApi, ModuleService } from '@deepkit/framework-debug-api'; import { stringifyType } from '@deepkit/type'; import { trackByIndex } from '@deepkit/ui-library'; -import { ModuleImportedService } from '../../../../../framework-debug-api/src/api'; +import { ModuleImportedService } from '../../../../../framework-debug-api/src/api.js'; @Component({ selector: 'module-detail-service', diff --git a/packages/framework-debug-gui/src/app/views/modules/modules.component.ts b/packages/framework-debug-gui/src/app/views/modules/modules.component.ts index 8d6ba9db2..90fa1225d 100644 --- a/packages/framework-debug-gui/src/app/views/modules/modules.component.ts +++ b/packages/framework-debug-gui/src/app/views/modules/modules.component.ts @@ -1,7 +1,7 @@ import { Component, OnDestroy } from '@angular/core'; import { ModuleApi } from '@deepkit/framework-debug-api'; import { LiveSubject } from '@deepkit/ui-library'; -import { ControllerClient } from '../../client'; +import { ControllerClient } from '../../client.js'; import { Subscription } from 'rxjs'; @Component({ diff --git a/packages/framework-debug-gui/src/app/views/profile/frame-container.ts b/packages/framework-debug-gui/src/app/views/profile/frame-container.ts index 9ddba5f4c..3ebd17d1a 100644 --- a/packages/framework-debug-gui/src/app/views/profile/frame-container.ts +++ b/packages/framework-debug-gui/src/app/views/profile/frame-container.ts @@ -1,6 +1,6 @@ import { BrowserText } from '@deepkit/desktop-ui'; import { Container, Graphics, Sprite, Text, Texture } from 'pixi.js'; -import { defaultColors, frameColors, FrameItem } from './frame'; +import { defaultColors, frameColors, FrameItem } from './frame.js'; export class TextCalc { static browserText?: BrowserText; diff --git a/packages/framework-debug-gui/src/app/views/profile/profile.component.ts b/packages/framework-debug-gui/src/app/views/profile/profile.component.ts index 6fe1c636c..405599050 100644 --- a/packages/framework-debug-gui/src/app/views/profile/profile.component.ts +++ b/packages/framework-debug-gui/src/app/views/profile/profile.component.ts @@ -1,11 +1,11 @@ import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, HostListener, OnDestroy, OnInit, ViewChild } from '@angular/core'; -import { ControllerClient } from '../../client'; +import { ControllerClient } from '../../client.js'; import { decodeFrameData, decodeFrames } from '@deepkit/framework-debug-api'; import { Application, Container, Graphics, InteractionEvent, Rectangle, Text, TextStyle } from 'pixi.js'; import { FrameCategory, FrameEnd, FrameStart } from '@deepkit/stopwatch'; import * as Hammer from 'hammerjs'; -import { formatTime, FrameItem, FrameParser } from './frame'; -import { FrameContainer } from './frame-container'; +import { formatTime, FrameItem, FrameParser } from './frame.js'; +import { FrameContainer } from './frame-container.js'; import { Subject } from 'rxjs'; import { ClientProgress } from '@deepkit/rpc'; diff --git a/packages/framework-debug-gui/src/app/views/profile/timeline.component.ts b/packages/framework-debug-gui/src/app/views/profile/timeline.component.ts index 5834caa18..3adc4fb4d 100644 --- a/packages/framework-debug-gui/src/app/views/profile/timeline.component.ts +++ b/packages/framework-debug-gui/src/app/views/profile/timeline.component.ts @@ -1,8 +1,8 @@ import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostListener, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core'; -import { ControllerClient } from '../../client'; +import { ControllerClient } from '../../client.js'; import { Application, Container, Rectangle, Text } from 'pixi.js'; -import { formatTime, FrameItem, FrameParser } from './frame'; -import { FrameContainer } from './frame-container'; +import { formatTime, FrameItem, FrameParser } from './frame.js'; +import { FrameContainer } from './frame-container.js'; import { FrameCategory } from '@deepkit/stopwatch'; class TimelineState { diff --git a/packages/framework-debug-gui/src/app/views/rpc/rpc.component.ts b/packages/framework-debug-gui/src/app/views/rpc/rpc.component.ts index cfc18a5b6..2e0c646c0 100644 --- a/packages/framework-debug-gui/src/app/views/rpc/rpc.component.ts +++ b/packages/framework-debug-gui/src/app/views/rpc/rpc.component.ts @@ -9,7 +9,7 @@ */ import { ChangeDetectorRef, Component, OnInit } from '@angular/core'; -import { ControllerClient } from '../../client'; +import { ControllerClient } from '../../client.js'; import { RpcAction, Workflow } from '@deepkit/framework-debug-api'; @Component({ diff --git a/packages/framework-debug-gui/src/main.ts b/packages/framework-debug-gui/src/main.ts index 9f5050fec..d107dde82 100644 --- a/packages/framework-debug-gui/src/main.ts +++ b/packages/framework-debug-gui/src/main.ts @@ -2,8 +2,8 @@ import 'reflect-metadata'; import { enableProdMode } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; -import { AppModule } from './app/app.module'; -import { environment } from './environments/environment'; +import { AppModule } from './app/app.module.js'; +import { environment } from './environments/environment.js'; if (environment.production) { enableProdMode(); diff --git a/packages/framework-debug-gui/src/polyfills.ts b/packages/framework-debug-gui/src/polyfills.ts index 36902c0aa..5d6dde549 100644 --- a/packages/framework-debug-gui/src/polyfills.ts +++ b/packages/framework-debug-gui/src/polyfills.ts @@ -37,7 +37,7 @@ * will put import in the top of bundle, so user need to create a separate file * in this directory (for example: zone-flags.ts), and put the following flags * into that file, and then add the following code before importing zone.js. - * import './zone-flags'; + * import './zone-flags.js'; * * The flags allowed in zone-flags.ts are listed here. * diff --git a/packages/framework-integration/tests/controller-basic.spec.ts b/packages/framework-integration/tests/controller-basic.spec.ts index 7b8b32a14..3b1036cfd 100644 --- a/packages/framework-integration/tests/controller-basic.spec.ts +++ b/packages/framework-integration/tests/controller-basic.spec.ts @@ -1,6 +1,6 @@ import { afterAll, expect, jest, test } from '@jest/globals'; import { ClientProgress, JSONError, rpc } from '@deepkit/rpc'; -import { appModuleForControllers, closeAllCreatedServers, createServerClientPair, subscribeAndWait } from './util'; +import { appModuleForControllers, closeAllCreatedServers, createServerClientPair, subscribeAndWait } from './util.js'; import { Observable } from 'rxjs'; import { bufferCount, first, skip } from 'rxjs/operators'; import { ObserverTimer } from '@deepkit/core-rxjs'; diff --git a/packages/framework-integration/tests/file.spec.ts b/packages/framework-integration/tests/file.spec.ts index 51e5d1be6..9669fe6a8 100644 --- a/packages/framework-integration/tests/file.spec.ts +++ b/packages/framework-integration/tests/file.spec.ts @@ -1,6 +1,6 @@ // import { expect, test, beforeAll } from '@jest/globals'; // import { EntityStorage, FS } from '@deepkit/fs'; -// import { appModuleForControllers, closeAllCreatedServers, createServerClientPair } from './util'; +// import { appModuleForControllers, closeAllCreatedServers, createServerClientPair } from './util.js'; // import { sleep } from '@deepkit/core'; // import { Buffer } from 'buffer'; // import { arrayBufferTo } from '@deepkit/type'; diff --git a/packages/framework-integration/tests/peer2peer.spec.ts b/packages/framework-integration/tests/peer2peer.spec.ts index 1ba6417ed..f4d748665 100644 --- a/packages/framework-integration/tests/peer2peer.spec.ts +++ b/packages/framework-integration/tests/peer2peer.spec.ts @@ -1,6 +1,6 @@ // import { afterAll, expect, test } from '@jest/globals'; // import { Entity, f } from '@deepkit/type'; -// import { appModuleForControllers, closeAllCreatedServers, createServerClientPair } from './util'; +// import { appModuleForControllers, closeAllCreatedServers, createServerClientPair } from './util.js'; // import { createModule, DeepkitRpcSecurity } from '@deepkit/framework'; // import { Observable } from 'rxjs'; // import { sleep } from '@deepkit/core'; diff --git a/packages/framework/index.ts b/packages/framework/index.ts index e49e97491..137d780a4 100644 --- a/packages/framework/index.ts +++ b/packages/framework/index.ts @@ -8,16 +8,16 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/session'; -export * from './src/application-server'; -export * from './src/worker'; -export * from './src/database/database-listener'; -// export * from './src/database/live-database'; -export * from './src/orm-browser/controller'; -export * from './src/rpc'; -export * from './src/module.config'; -export * from './src/module'; -export * from './src/crud'; -export * from './src/testing'; -export * from './src/broker/broker'; -export * from './src/broker/broker.config'; +export * from './src/session.js'; +export * from './src/application-server.js'; +export * from './src/worker.js'; +export * from './src/database/database-listener.js'; +// export * from './src/database/live-database.js'; +export * from './src/orm-browser/controller.js'; +export * from './src/rpc.js'; +export * from './src/module.config.js'; +export * from './src/module.js'; +export * from './src/crud.js'; +export * from './src/testing.js'; +export * from './src/broker/broker.js'; +export * from './src/broker/broker.config.js'; diff --git a/packages/framework/loader.ts b/packages/framework/loader.ts index 305a90293..83296f703 100644 --- a/packages/framework/loader.ts +++ b/packages/framework/loader.ts @@ -2,7 +2,7 @@ import * as tsNode from 'ts-node/esm'; import { optimizeJSX } from '@deepkit/template'; import { inDebugMode } from '@deepkit/core'; -import { importedFiles } from './src/watch'; +import { importedFiles } from './src/watch.js'; export async function resolve(specifier: string, context: { parentURL: string }, defaultResolve: typeof resolve): Promise<{ url: string }> { const res = await tsNode.resolve(specifier, context, defaultResolve); diff --git a/packages/framework/src/application-server.ts b/packages/framework/src/application-server.ts index f83abf868..10c4b6aa9 100644 --- a/packages/framework/src/application-server.ts +++ b/packages/framework/src/application-server.ts @@ -14,10 +14,10 @@ import cluster from 'cluster'; import { HttpRouter } from '@deepkit/http'; import { BaseEvent, EventDispatcher, eventDispatcher, EventToken } from '@deepkit/event'; import { InjectorContext } from '@deepkit/injector'; -import { FrameworkConfig } from './module.config'; +import { FrameworkConfig } from './module.config.js'; import { LoggerInterface } from '@deepkit/logger'; -import { createRpcConnection, WebWorker, WebWorkerFactory } from './worker'; -import { RpcControllers } from './rpc'; +import { createRpcConnection, WebWorker, WebWorkerFactory } from './worker.js'; +import { RpcControllers } from './rpc.js'; import '@deepkit/type'; export class ServerBootstrapEvent extends BaseEvent { diff --git a/packages/framework/src/broker/app-locker.ts b/packages/framework/src/broker/app-locker.ts index 487f2720d..85207fa8c 100644 --- a/packages/framework/src/broker/app-locker.ts +++ b/packages/framework/src/broker/app-locker.ts @@ -9,7 +9,7 @@ */ import { AsyncSubscription } from '@deepkit/core-rxjs'; -import { Broker } from './broker'; +import { Broker } from './broker.js'; export class AppLock { constructor(protected subscription: AsyncSubscription) { diff --git a/packages/framework/src/broker/broker.module.ts b/packages/framework/src/broker/broker.module.ts index 2cdb97a87..9afc09e20 100644 --- a/packages/framework/src/broker/broker.module.ts +++ b/packages/framework/src/broker/broker.module.ts @@ -8,12 +8,12 @@ * You should have received a copy of the MIT License along with this program. */ -import { AppLocker } from './app-locker'; +import { AppLocker } from './app-locker.js'; import { createModule } from '@deepkit/app'; import { eventDispatcher } from '@deepkit/event'; -import { onServerMainBootstrap, onServerMainShutdown } from '../application-server'; -import { BrokerConfig } from './broker.config'; -import { Broker, BrokerServer } from './broker'; +import { onServerMainBootstrap, onServerMainShutdown } from '../application-server.js'; +import { BrokerConfig } from './broker.config.js'; +import { Broker, BrokerServer } from './broker.js'; import { LoggerInterface } from '@deepkit/logger'; export class BrokerListener { diff --git a/packages/framework/src/broker/broker.ts b/packages/framework/src/broker/broker.ts index b3c66e28d..fbcc4bbf4 100644 --- a/packages/framework/src/broker/broker.ts +++ b/packages/framework/src/broker/broker.ts @@ -11,7 +11,7 @@ import { BrokerChannel, BrokerClient, BrokerKernel } from '@deepkit/broker'; import { ClassType } from '@deepkit/core'; import { IdInterface, RpcDirectClientAdapter } from '@deepkit/rpc'; -import { BrokerConfig } from './broker.config'; +import { BrokerConfig } from './broker.config.js'; import { RpcNetTcpClientAdapter, RpcNetTcpServer, RpcTcpClientAdapter, RpcTcpServer } from '@deepkit/rpc-tcp'; import { MongoId, ReflectionClass, Type, typeOf, UUID } from '@deepkit/type'; diff --git a/packages/framework/src/cli/app-config.ts b/packages/framework/src/cli/app-config.ts index 0915318fd..100c93a4b 100644 --- a/packages/framework/src/cli/app-config.ts +++ b/packages/framework/src/cli/app-config.ts @@ -9,7 +9,7 @@ */ import { cli, Command } from '@deepkit/app'; -import { DebugController } from '../debug/debug.controller'; +import { DebugController } from '../debug/debug.controller.js'; @cli.controller('app:config', {}) export class AppConfigController implements Command { diff --git a/packages/framework/src/cli/debug-debug-frames.ts b/packages/framework/src/cli/debug-debug-frames.ts index 863fb324d..591daa05a 100644 --- a/packages/framework/src/cli/debug-debug-frames.ts +++ b/packages/framework/src/cli/debug-debug-frames.ts @@ -12,7 +12,7 @@ import { cli, Command, flag } from '@deepkit/app'; import { join } from 'path'; import { readFileSync, unlinkSync } from 'fs'; import { decodeFrameData, decodeFrames } from '@deepkit/framework-debug-api'; -import { FrameworkConfig } from '../module.config'; +import { FrameworkConfig } from '../module.config.js'; import { LoggerInterface } from '@deepkit/logger'; @cli.controller('debug:debug:frames', {}) diff --git a/packages/framework/src/cli/server-start.ts b/packages/framework/src/cli/server-start.ts index c8e74a057..1414874e5 100644 --- a/packages/framework/src/cli/server-start.ts +++ b/packages/framework/src/cli/server-start.ts @@ -8,10 +8,10 @@ * You should have received a copy of the MIT License along with this program. */ -import { ApplicationServer } from '../application-server'; +import { ApplicationServer } from '../application-server.js'; import { AppModule, cli, Command, flag, ServiceContainer } from '@deepkit/app'; import { DefaultFormatter, Logger, LoggerInterface } from '@deepkit/logger'; -import { FrameworkModule } from '../module'; +import { FrameworkModule } from '../module.js'; @cli.controller('server:start', { description: 'Starts the application server. If HTTP or RPC controllers or a publicDir are provided this will include an HTTP listener' diff --git a/packages/framework/src/database/database-listener.ts b/packages/framework/src/database/database-listener.ts index 7afc68a34..8b9398567 100644 --- a/packages/framework/src/database/database-listener.ts +++ b/packages/framework/src/database/database-listener.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { onServerMainBootstrap, onServerMainShutdown } from '../application-server'; +import { onServerMainBootstrap, onServerMainShutdown } from '../application-server.js'; import { eventDispatcher } from '@deepkit/event'; import { LoggerInterface } from '@deepkit/logger'; import { DatabaseRegistry } from '@deepkit/orm'; diff --git a/packages/framework/src/debug/broker.ts b/packages/framework/src/debug/broker.ts index 4a782a89e..e7d99f353 100644 --- a/packages/framework/src/debug/broker.ts +++ b/packages/framework/src/debug/broker.ts @@ -1,9 +1,9 @@ -import { BaseBroker } from '../broker/broker'; +import { BaseBroker } from '../broker/broker.js'; import { eventDispatcher } from '@deepkit/event'; -import { onServerMainBootstrap, onServerMainShutdown } from '../application-server'; +import { onServerMainBootstrap, onServerMainShutdown } from '../application-server.js'; import { RpcNetTcpClientAdapter, RpcNetTcpServer } from '@deepkit/rpc-tcp'; import { BrokerKernel } from '@deepkit/broker'; -import { FrameworkConfig } from '../module.config'; +import { FrameworkConfig } from '../module.config.js'; export class DebugBroker extends BaseBroker { constructor(brokerHost: FrameworkConfig['debugBrokerHost']) { diff --git a/packages/framework/src/debug/debug.controller.ts b/packages/framework/src/debug/debug.controller.ts index 77fbec878..0d9ab008c 100644 --- a/packages/framework/src/debug/debug.controller.ts +++ b/packages/framework/src/debug/debug.controller.ts @@ -29,13 +29,13 @@ import { EventDispatcher, isEventListenerContainerEntryService } from '@deepkit/ import { DatabaseAdapter, DatabaseRegistry } from '@deepkit/orm'; import { readFileSync, statSync, truncateSync } from 'fs'; import { join } from 'path'; -import { FrameworkConfig } from '../module.config'; -import { FileStopwatchStore } from './stopwatch/store'; +import { FrameworkConfig } from '../module.config.js'; +import { FileStopwatchStore } from './stopwatch/store.js'; import { Subject } from 'rxjs'; import { unlink } from 'fs/promises'; import { getScope, resolveToken, Token } from '@deepkit/injector'; import { AppModule, ServiceContainer } from '@deepkit/app'; -import { RpcControllers } from '../rpc'; +import { RpcControllers } from '../rpc.js'; import { ReflectionClass, serializeType, stringifyType } from '@deepkit/type'; @rpc.controller(DebugControllerInterface) diff --git a/packages/framework/src/debug/stopwatch/store.ts b/packages/framework/src/debug/stopwatch/store.ts index 622aad5d1..49095ee78 100644 --- a/packages/framework/src/debug/stopwatch/store.ts +++ b/packages/framework/src/debug/stopwatch/store.ts @@ -3,11 +3,11 @@ import { appendFile, existsSync, readFileSync } from 'fs'; import { join } from 'path'; import { decodeFrames, encodeFrameData, encodeFrames } from '@deepkit/framework-debug-api'; import { asyncOperation, Mutex } from '@deepkit/core'; -import { FrameworkConfig } from '../../module.config'; -import { Zone } from '../../zone'; +import { FrameworkConfig } from '../../module.config.js'; +import { Zone } from '../../zone.js'; import cluster from 'cluster'; import { performance } from 'perf_hooks'; -import { DebugBroker } from '../broker'; +import { DebugBroker } from '../broker.js'; export class FileStopwatchStore extends StopwatchStore { protected lastSync?: any; diff --git a/packages/framework/src/module.ts b/packages/framework/src/module.ts index 0de7ad3d3..70d8aad66 100644 --- a/packages/framework/src/module.ts +++ b/packages/framework/src/module.ts @@ -12,34 +12,34 @@ import { ClassType, isClass, isPrototypeOfBase, ProcessLocker } from '@deepkit/c import { EventDispatcher } from '@deepkit/event'; import { mkdirSync } from 'fs'; import { join } from 'path'; -import { ApplicationServer, ApplicationServerListener } from './application-server'; -import { BrokerModule } from './broker/broker.module'; -import { DebugRouterController } from './cli/debug-router'; -import { DebugDIController } from './cli/debug-di'; -import { ServerStartController } from './cli/server-start'; -import { DebugController } from './debug/debug.controller'; -import { registerDebugHttpController } from './debug/http-debug.controller'; +import { ApplicationServer, ApplicationServerListener } from './application-server.js'; +import { BrokerModule } from './broker/broker.module.js'; +import { DebugRouterController } from './cli/debug-router.js'; +import { DebugDIController } from './cli/debug-di.js'; +import { ServerStartController } from './cli/server-start.js'; +import { DebugController } from './debug/debug.controller.js'; +import { registerDebugHttpController } from './debug/http-debug.controller.js'; import { HttpLogger, HttpModule, HttpRequest, serveStaticListener } from '@deepkit/http'; import { InjectorContext, injectorReference, ProviderWithScope, Token } from '@deepkit/injector'; -import { FrameworkConfig } from './module.config'; +import { FrameworkConfig } from './module.config.js'; import { ConsoleTransport, Logger, LoggerInterface } from '@deepkit/logger'; -import { SessionHandler } from './session'; -import { RpcServer, WebWorkerFactory } from './worker'; +import { SessionHandler } from './session.js'; +import { RpcServer, WebWorkerFactory } from './worker.js'; import { Stopwatch } from '@deepkit/stopwatch'; -import { OrmBrowserController } from './orm-browser/controller'; -import { DatabaseListener } from './database/database-listener'; +import { OrmBrowserController } from './orm-browser/controller.js'; +import { DatabaseListener } from './database/database-listener.js'; import { Database, DatabaseRegistry } from '@deepkit/orm'; import { MigrationCreateController, MigrationDownCommand, MigrationPendingCommand, MigrationProvider, MigrationUpCommand } from '@deepkit/sql/commands'; -import { FileStopwatchStore } from './debug/stopwatch/store'; -import { DebugDebugFramesCommand } from './cli/debug-debug-frames'; +import { FileStopwatchStore } from './debug/stopwatch/store.js'; +import { DebugDebugFramesCommand } from './cli/debug-debug-frames.js'; import { ConnectionWriter, rpcClass, RpcKernel, RpcKernelBaseConnection, RpcKernelConnection, RpcKernelSecurity, SessionState } from '@deepkit/rpc'; -import { AppConfigController } from './cli/app-config'; -import { Zone } from './zone'; -import { DebugBroker, DebugBrokerListener } from './debug/broker'; +import { AppConfigController } from './cli/app-config.js'; +import { Zone } from './zone.js'; +import { DebugBroker, DebugBrokerListener } from './debug/broker.js'; import { ApiConsoleModule } from '@deepkit/api-console-module'; import { AppModule, createModule } from '@deepkit/app'; -import { RpcControllers, RpcInjectorContext, RpcKernelWithStopwatch } from './rpc'; -import { normalizeDirectory } from './utils'; +import { RpcControllers, RpcInjectorContext, RpcKernelWithStopwatch } from './rpc.js'; +import { normalizeDirectory } from './utils.js'; export class FrameworkModule extends createModule({ config: FrameworkConfig, diff --git a/packages/framework/src/testing.ts b/packages/framework/src/testing.ts index c53cbbe18..232a907ad 100644 --- a/packages/framework/src/testing.ts +++ b/packages/framework/src/testing.ts @@ -12,14 +12,14 @@ import { BrokerKernel } from '@deepkit/broker'; import { ClassType } from '@deepkit/core'; import { ConsoleTransport, Logger, MemoryLoggerTransport } from '@deepkit/logger'; import { Database, DatabaseRegistry, MemoryDatabaseAdapter } from '@deepkit/orm'; -import { ApplicationServer } from './application-server'; -import { Broker, BrokerServer, DirectBroker } from './broker/broker'; +import { ApplicationServer } from './application-server.js'; +import { Broker, BrokerServer, DirectBroker } from './broker/broker.js'; import { injectorReference } from '@deepkit/injector'; import { App, AppModule, RootAppModule, RootModuleDefinition } from '@deepkit/app'; -import { WebMemoryWorkerFactory, WebWorkerFactory } from './worker'; +import { WebMemoryWorkerFactory, WebWorkerFactory } from './worker.js'; import { HttpKernel, MemoryHttpResponse, RequestBuilder } from '@deepkit/http'; import { RpcClient } from '@deepkit/rpc'; -import { FrameworkModule } from './module'; +import { FrameworkModule } from './module.js'; /** * @deprecated use {@link MemoryHttpResponse} instead diff --git a/packages/framework/src/worker.ts b/packages/framework/src/worker.ts index fad094326..aa9e46a7a 100644 --- a/packages/framework/src/worker.ts +++ b/packages/framework/src/worker.ts @@ -18,7 +18,7 @@ import type { Server as WebSocketServer, ServerOptions as WebSocketServerOptions import { HttpKernel, HttpRequest, HttpResponse } from '@deepkit/http'; import { InjectorContext } from '@deepkit/injector'; -import { RpcControllers, RpcInjectorContext } from './rpc'; +import { RpcControllers, RpcInjectorContext } from './rpc.js'; import { SecureContextOptions, TlsOptions } from 'tls'; // @ts-ignore diff --git a/packages/framework/tests/application-server.spec.ts b/packages/framework/tests/application-server.spec.ts index 136dde1fe..69120613c 100644 --- a/packages/framework/tests/application-server.spec.ts +++ b/packages/framework/tests/application-server.spec.ts @@ -1,13 +1,13 @@ import { rpc } from '@deepkit/rpc'; import { afterEach, describe, expect, it, jest, test } from '@jest/globals'; import { InjectorContext } from '@deepkit/injector'; -import { createTestingApp } from '../src/testing'; -import { ApplicationServer } from '../src/application-server'; +import { createTestingApp } from '../src/testing.js'; +import { ApplicationServer } from '../src/application-server.js'; import { ConsoleTransport, Logger, MemoryLoggerTransport } from '@deepkit/logger'; -import { FrameworkModule } from '../src/module'; -import { RpcServer, RpcServerInterface, WebWorker } from '../src/worker'; +import { FrameworkModule } from '../src/module.js'; +import { RpcServer, RpcServerInterface, WebWorker } from '../src/worker.js'; import { HttpRequest } from '@deepkit/http'; -import { BrokerModule } from '../src/broker/broker.module'; +import { BrokerModule } from '../src/broker/broker.module.js'; import { App } from '@deepkit/app'; jest.mock('ws', () => { diff --git a/packages/framework/tests/broker.spec.ts b/packages/framework/tests/broker.spec.ts index e66cd9cac..67b7e6392 100644 --- a/packages/framework/tests/broker.spec.ts +++ b/packages/framework/tests/broker.spec.ts @@ -3,7 +3,7 @@ import { sleep } from '@deepkit/core'; import { cast, entity, PrimaryKey, UUID, uuid } from '@deepkit/type'; import { expect, test } from '@jest/globals'; import { BehaviorSubject } from 'rxjs'; -import { DirectBroker, EntityChannelMessageType } from '../src/broker/broker'; +import { DirectBroker, EntityChannelMessageType } from '../src/broker/broker.js'; test('entity channel number', async () => { const kernel = new BrokerKernel(); diff --git a/packages/framework/tests/http.spec.ts b/packages/framework/tests/http.spec.ts index 8619fe387..adf9db80a 100644 --- a/packages/framework/tests/http.spec.ts +++ b/packages/framework/tests/http.spec.ts @@ -1,5 +1,5 @@ import { App } from '@deepkit/app'; -import { FrameworkModule } from '../src/module'; +import { FrameworkModule } from '../src/module.js'; import { expect, test } from '@jest/globals'; import { HttpKernel, HttpRequest, HttpRouterRegistry } from '@deepkit/http'; import { Logger } from '@deepkit/logger'; diff --git a/packages/framework/tests/router.spec.ts b/packages/framework/tests/router.spec.ts index 3f9442d8e..0146cccfe 100644 --- a/packages/framework/tests/router.spec.ts +++ b/packages/framework/tests/router.spec.ts @@ -1,7 +1,7 @@ import { expect, test } from '@jest/globals'; import { http, HttpKernel, HttpRegExp, HttpRequest, JSONResponse, RouteParameterResolverContext } from '@deepkit/http'; import { App } from '@deepkit/app'; -import { FrameworkModule } from '../src/module'; +import { FrameworkModule } from '../src/module.js'; test('router parameters', async () => { class Controller2 { diff --git a/packages/framework/tests/rpc.spec.ts b/packages/framework/tests/rpc.spec.ts index 3b788a5e2..246d9d731 100644 --- a/packages/framework/tests/rpc.spec.ts +++ b/packages/framework/tests/rpc.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; import { ControllerSymbol, rpc, RpcKernelConnection, RpcKernelSecurity, Session, SessionState } from '@deepkit/rpc'; -import { createTestingApp } from '../src/testing'; +import { createTestingApp } from '../src/testing.js'; import { AppModule } from '@deepkit/app'; test('di', async () => { diff --git a/packages/framework/tests/service-container.spec.ts b/packages/framework/tests/service-container.spec.ts index bea509955..bfda6f471 100644 --- a/packages/framework/tests/service-container.spec.ts +++ b/packages/framework/tests/service-container.spec.ts @@ -1,7 +1,7 @@ import { expect, test } from '@jest/globals'; import { rpc } from '@deepkit/rpc'; import { App, AppModule, createModule, ServiceContainer } from '@deepkit/app'; -import { FrameworkModule } from '../src/module'; +import { FrameworkModule } from '../src/module.js'; import { Database, DatabaseEvent, DatabaseRegistry, MemoryDatabaseAdapter, Query } from '@deepkit/orm'; import { EventDispatcher } from '@deepkit/event'; import { PrimaryKey } from '@deepkit/type'; diff --git a/packages/framework/tests/zone.spec.ts b/packages/framework/tests/zone.spec.ts index 594c9bc80..05006ee26 100644 --- a/packages/framework/tests/zone.spec.ts +++ b/packages/framework/tests/zone.spec.ts @@ -1,6 +1,6 @@ import { sleep } from '@deepkit/core'; import { expect, test } from '@jest/globals'; -import { Zone } from '../src/zone'; +import { Zone } from '../src/zone.js'; test('zone', async () => { diff --git a/packages/fs/index.ts b/packages/fs/index.ts index 317849e3c..fc90809eb 100644 --- a/packages/fs/index.ts +++ b/packages/fs/index.ts @@ -8,4 +8,4 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/fs.module' +export * from './src/fs.module.js' diff --git a/packages/fs/package-lock.json b/packages/fs/package-lock.json index 435cbd8e7..b2490df8a 100644 --- a/packages/fs/package-lock.json +++ b/packages/fs/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/fs", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.73", "license": "MIT", "dependencies": { "fs-extra": "^9.0.1", diff --git a/packages/fs/src/fs.module.ts b/packages/fs/src/fs.module.ts index 56e271009..f387e1224 100644 --- a/packages/fs/src/fs.module.ts +++ b/packages/fs/src/fs.module.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { FsConfig } from './fs.config'; +import { FsConfig } from './fs.config.js'; import { Database, DatabaseAdapter } from '@deepkit/orm'; import { AppModule } from '@deepkit/app'; import { injectable } from '@deepkit/injector'; diff --git a/packages/fs/tests/fs.spec.ts b/packages/fs/tests/fs.spec.ts index af2861286..89c99edbe 100644 --- a/packages/fs/tests/fs.spec.ts +++ b/packages/fs/tests/fs.spec.ts @@ -1,13 +1,13 @@ // import 'jest'; -// import {FS, getMd5} from "../src/fs"; -// import {Exchange} from "../src/exchange"; +// import {FS, getMd5} from "../src/fs.js"; +// import {Exchange} from "../src/exchange.js"; // import {pathExists, readFile, remove} from 'fs-extra'; -// import {ExchangeDatabase, ExchangeNotifyPolicy} from "../src/exchange-database"; +// import {ExchangeDatabase, ExchangeNotifyPolicy} from "../src/exchange-database.js"; // import {ClassType} from '@deepkit/core'; // import {Connection, Database} from '@deepkit/mongo'; // import {FileType} from "@deepkit/framework-shared"; -// import {ProcessLocker} from "../src/process-locker"; -// import {ExchangeServer} from "../src/exchange-server"; +// import {ProcessLocker} from "../src/process-locker.js"; +// import {ExchangeServer} from "../src/exchange-server.js"; // // jest.setTimeout(100_000); // diff --git a/packages/http/index.ts b/packages/http/index.ts index 3459574e2..f4f642557 100644 --- a/packages/http/index.ts +++ b/packages/http/index.ts @@ -1,13 +1,13 @@ -export * from './src/decorator'; -export * from './src/http'; -export * from './src/model'; -export * from './src/logger'; -export * from './src/router'; -export * from './src/static-serving'; -export * from './src/kernel'; -export * from './src/module'; -export * from './src/module.config'; -export * from './src/controllers'; -export * from './src/middleware'; -export * from './src/filter'; -export * from './src/utils'; +export * from './src/decorator.js'; +export * from './src/http.js'; +export * from './src/model.js'; +export * from './src/logger.js'; +export * from './src/router.js'; +export * from './src/static-serving.js'; +export * from './src/kernel.js'; +export * from './src/module.js'; +export * from './src/module.config.js'; +export * from './src/controllers.js'; +export * from './src/middleware.js'; +export * from './src/filter.js'; +export * from './src/utils.js'; diff --git a/packages/http/package-lock.json b/packages/http/package-lock.json index 147d7f916..28cdee56f 100644 --- a/packages/http/package-lock.json +++ b/packages/http/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/http", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.73", "license": "MIT", "dependencies": { "formidable": "^2.0.1", diff --git a/packages/http/src/decorator.ts b/packages/http/src/decorator.ts index 522a9ad6f..ee3229169 100644 --- a/packages/http/src/decorator.ts +++ b/packages/http/src/decorator.ts @@ -27,8 +27,8 @@ import { Type, UnionToIntersection } from '@deepkit/type'; -import { RouteParameterResolver } from './router'; -import { httpMiddleware, HttpMiddleware, HttpMiddlewareConfig, HttpMiddlewareFn } from './middleware'; +import { RouteParameterResolver } from './router.js'; +import { httpMiddleware, HttpMiddleware, HttpMiddlewareConfig, HttpMiddlewareFn } from './middleware.js'; type HttpActionMiddleware = (() => HttpMiddlewareConfig) | ClassType | HttpMiddlewareFn; diff --git a/packages/http/src/filter.ts b/packages/http/src/filter.ts index 5252ba4f1..3e2202ed6 100644 --- a/packages/http/src/filter.ts +++ b/packages/http/src/filter.ts @@ -1,6 +1,6 @@ import { ClassType } from '@deepkit/core'; import { AppModule } from '@deepkit/app'; -import { RouteConfig, HttpRouter } from './router'; +import { RouteConfig, HttpRouter } from './router.js'; export interface HttpRouteFilterRoute { path?: string; diff --git a/packages/http/src/http.ts b/packages/http/src/http.ts index 11c3aac63..e54b2ef48 100644 --- a/packages/http/src/http.ts +++ b/packages/http/src/http.ts @@ -11,10 +11,10 @@ import { asyncOperation, ClassType, CustomError, getClassName, getClassTypeFromInstance, isClassInstance } from '@deepkit/core'; import { OutgoingHttpHeaders, ServerResponse } from 'http'; import { eventDispatcher } from '@deepkit/event'; -import { HttpRequest, HttpResponse } from './model'; +import { HttpRequest, HttpResponse } from './model.js'; import { InjectorContext } from '@deepkit/injector'; import { LoggerInterface } from '@deepkit/logger'; -import { HttpRouter, RouteConfig, RouteParameterResolverForInjector } from './router'; +import { HttpRouter, RouteConfig, RouteParameterResolverForInjector } from './router.js'; import { createWorkflow, WorkflowEvent } from '@deepkit/workflow'; import type { ElementStruct, render } from '@deepkit/template'; import { FrameCategory, Stopwatch } from '@deepkit/stopwatch'; diff --git a/packages/http/src/kernel.ts b/packages/http/src/kernel.ts index b1bf58281..a7b879d93 100644 --- a/packages/http/src/kernel.ts +++ b/packages/http/src/kernel.ts @@ -1,9 +1,9 @@ import { InjectorContext } from '@deepkit/injector'; -import { HttpRouter } from './router'; +import { HttpRouter } from './router.js'; import { EventDispatcher } from '@deepkit/event'; import { LoggerInterface } from '@deepkit/logger'; -import { HttpRequest, HttpResponse, MemoryHttpResponse, RequestBuilder } from './model'; -import { HttpRequestEvent, httpWorkflow } from './http'; +import { HttpRequest, HttpResponse, MemoryHttpResponse, RequestBuilder } from './model.js'; +import { HttpRequestEvent, httpWorkflow } from './http.js'; import { FrameCategory, Stopwatch } from '@deepkit/stopwatch'; import { unlink } from 'fs'; diff --git a/packages/http/src/logger.ts b/packages/http/src/logger.ts index aef1d0eb7..f821b44f5 100644 --- a/packages/http/src/logger.ts +++ b/packages/http/src/logger.ts @@ -1,6 +1,6 @@ import { LoggerInterface } from '@deepkit/logger'; import { eventDispatcher } from '@deepkit/event'; -import { httpWorkflow } from './http'; +import { httpWorkflow } from './http.js'; export class HttpLogger { constructor(private logger: LoggerInterface) { diff --git a/packages/http/src/middleware.ts b/packages/http/src/middleware.ts index 2e3ddcbd0..fc5ede289 100644 --- a/packages/http/src/middleware.ts +++ b/packages/http/src/middleware.ts @@ -1,7 +1,7 @@ import { ClassType, isClass } from '@deepkit/core'; import { AppModule } from '@deepkit/app'; import { createFreeDecoratorContext } from '@deepkit/type'; -import { HttpRequest, HttpResponse } from './model'; +import { HttpRequest, HttpResponse } from './model.js'; import { InjectorModule } from '@deepkit/injector'; export type HttpMiddlewareFn = (req: HttpRequest, res: HttpResponse, next: (err?: any) => void) => void | Promise; diff --git a/packages/http/src/model.ts b/packages/http/src/model.ts index 81778cdfe..45a9ddcbb 100644 --- a/packages/http/src/model.ts +++ b/packages/http/src/model.ts @@ -9,7 +9,7 @@ */ import { IncomingMessage, OutgoingHttpHeader, OutgoingHttpHeaders, ServerResponse } from 'http'; -import { UploadedFile } from './router'; +import { UploadedFile } from './router.js'; import * as querystring from 'querystring'; import { Writable } from 'stream'; import { metaAnnotation, ReflectionKind, Type, ValidationErrorItem } from '@deepkit/type'; diff --git a/packages/http/src/module.ts b/packages/http/src/module.ts index 3b438f7b2..25a4d2559 100644 --- a/packages/http/src/module.ts +++ b/packages/http/src/module.ts @@ -1,15 +1,15 @@ -import { HttpListener, HttpResultFormatter, httpWorkflow } from './http'; -import { HttpConfig } from './module.config'; +import { HttpListener, HttpResultFormatter, httpWorkflow } from './http.js'; +import { HttpConfig } from './module.config.js'; import { AppModule, createModule } from '@deepkit/app'; -import { HttpRouter, HttpRouterRegistry } from './router'; -import { HttpKernel } from './kernel'; -import { HttpRouterFilterResolver } from './filter'; -import { HttpControllers } from './controllers'; +import { HttpRouter, HttpRouterRegistry } from './router.js'; +import { HttpKernel } from './kernel.js'; +import { HttpRouterFilterResolver } from './filter.js'; +import { HttpControllers } from './controllers.js'; import { ConsoleTransport, Logger } from '@deepkit/logger'; -import { HttpRequest, HttpResponse } from './model'; +import { HttpRequest, HttpResponse } from './model.js'; import '@deepkit/type'; import { ClassType } from '@deepkit/core'; -import { httpClass } from './decorator'; +import { httpClass } from './decorator.js'; export class HttpModule extends createModule({ config: HttpConfig, diff --git a/packages/http/src/router.ts b/packages/http/src/router.ts index 532c01b9a..895bd6116 100644 --- a/packages/http/src/router.ts +++ b/packages/http/src/router.ts @@ -30,13 +30,13 @@ import { // @ts-ignore import formidable from 'formidable'; import querystring from 'querystring'; -import { HttpAction, httpClass, HttpController, HttpDecorator } from './decorator'; -import { BodyValidationError, getRegExp, HttpRequest, HttpRequestQuery, HttpRequestResolvedParameters, ValidatedBody } from './model'; +import { HttpAction, httpClass, HttpController, HttpDecorator } from './decorator.js'; +import { BodyValidationError, getRegExp, HttpRequest, HttpRequestQuery, HttpRequestResolvedParameters, ValidatedBody } from './model.js'; import { InjectorContext, InjectorModule, TagRegistry } from '@deepkit/injector'; import { Logger, LoggerInterface } from '@deepkit/logger'; -import { HttpControllers } from './controllers'; +import { HttpControllers } from './controllers.js'; import { MiddlewareRegistry, MiddlewareRegistryEntry } from '@deepkit/app'; -import { HttpMiddlewareConfig, HttpMiddlewareFn } from './middleware'; +import { HttpMiddlewareConfig, HttpMiddlewareFn } from './middleware.js'; //@ts-ignore import qs from 'qs'; diff --git a/packages/http/src/static-serving.ts b/packages/http/src/static-serving.ts index 732efc6ad..7fa959c8b 100644 --- a/packages/http/src/static-serving.ts +++ b/packages/http/src/static-serving.ts @@ -8,17 +8,17 @@ * You should have received a copy of the MIT License along with this program. */ -import { http } from './decorator'; +import { http } from './decorator.js'; import { join } from 'path'; import { readFileSync, stat } from 'fs'; -import { HtmlResponse, httpWorkflow } from './http'; +import { HtmlResponse, httpWorkflow } from './http.js'; import { AppModule } from '@deepkit/app'; -import { normalizeDirectory } from './utils'; +import { normalizeDirectory } from './utils.js'; import { ClassType, urlJoin } from '@deepkit/core'; -import { HttpRequest, HttpResponse } from './model'; +import { HttpRequest, HttpResponse } from './model.js'; import send from 'send'; import { eventDispatcher } from '@deepkit/event'; -import { RouteConfig, HttpRouter } from './router'; +import { RouteConfig, HttpRouter } from './router.js'; export function serveStaticListener(module: AppModule, path: string, localPath: string = path): ClassType { class HttpRequestStaticServingListener { diff --git a/packages/http/tests/filter.spec.ts b/packages/http/tests/filter.spec.ts index dcf70f29b..a880f76c8 100644 --- a/packages/http/tests/filter.spec.ts +++ b/packages/http/tests/filter.spec.ts @@ -1,7 +1,7 @@ import { expect, test } from '@jest/globals'; -import { HttpRouter } from '../src/router'; -import { HttpRouteFilter, HttpRouterFilterResolver } from '../src/filter'; -import { http } from '../src/decorator'; +import { HttpRouter } from '../src/router.js'; +import { HttpRouteFilter, HttpRouterFilterResolver } from '../src/filter.js'; +import { http } from '../src/decorator.js'; import { createModule } from '@deepkit/app'; test('filter by controller', async () => { diff --git a/packages/http/tests/middleware.spec.ts b/packages/http/tests/middleware.spec.ts index c36662583..ac9cab3c3 100644 --- a/packages/http/tests/middleware.spec.ts +++ b/packages/http/tests/middleware.spec.ts @@ -1,8 +1,8 @@ import { expect, test } from '@jest/globals'; -import { http } from '../src/decorator'; -import { createHttpKernel } from './utils'; -import { HttpMiddleware, httpMiddleware } from '../src/middleware'; -import { HttpRequest, HttpResponse } from '../src/model'; +import { http } from '../src/decorator.js'; +import { createHttpKernel } from './utils.js'; +import { HttpMiddleware, httpMiddleware } from '../src/middleware.js'; +import { HttpRequest, HttpResponse } from '../src/model.js'; import { AppModule } from '@deepkit/app'; import { sleep } from '@deepkit/core'; diff --git a/packages/http/tests/model.spec.ts b/packages/http/tests/model.spec.ts index 121845c43..cfd847c9e 100644 --- a/packages/http/tests/model.spec.ts +++ b/packages/http/tests/model.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from '@jest/globals'; -import { HttpRequest } from '../src/model'; +import { HttpRequest } from '../src/model.js'; test('request model json', async () => { const request = HttpRequest.POST('/').json({ hello: 'world' }).build(); diff --git a/packages/http/tests/module.spec.ts b/packages/http/tests/module.spec.ts index bf8eba04f..cf3312309 100644 --- a/packages/http/tests/module.spec.ts +++ b/packages/http/tests/module.spec.ts @@ -1,9 +1,9 @@ import { App } from '@deepkit/app'; import { expect, test } from '@jest/globals'; -import { HttpModule } from '../src/module'; -import { HttpKernel } from '../src/kernel'; -import { HttpRequest } from '../src/model'; -import { http } from '../src/decorator'; +import { HttpModule } from '../src/module.js'; +import { HttpKernel } from '../src/kernel.js'; +import { HttpRequest } from '../src/model.js'; +import { http } from '../src/decorator.js'; import { httpWorkflow } from '../src/http.js'; test('module basic functionality', async () => { diff --git a/packages/http/tests/parameter-resolver.spec.ts b/packages/http/tests/parameter-resolver.spec.ts index 10b2598d6..71f40b5c6 100644 --- a/packages/http/tests/parameter-resolver.spec.ts +++ b/packages/http/tests/parameter-resolver.spec.ts @@ -1,12 +1,12 @@ import { expect, jest, test } from '@jest/globals'; -import { http } from '../src/decorator'; -import { HttpRequest } from '../src/model'; +import { http } from '../src/decorator.js'; +import { HttpRequest } from '../src/model.js'; import { RouteConfig, RouteParameterResolver, RouteParameterResolverContext, -} from '../src/router'; -import { createHttpKernel } from './utils'; +} from '../src/router.js'; +import { createHttpKernel } from './utils.js'; test('parameter resolver by name', async () => { class Resolver implements RouteParameterResolver { diff --git a/packages/http/tests/router.spec.ts b/packages/http/tests/router.spec.ts index 90c8433e0..a51fd508e 100644 --- a/packages/http/tests/router.spec.ts +++ b/packages/http/tests/router.spec.ts @@ -1,11 +1,11 @@ import { expect, test } from '@jest/globals'; -import { dotToUrlPath, HttpRouter, RouteClassControllerAction, RouteParameterResolverContext, UploadedFile } from '../src/router'; -import { http, httpClass } from '../src/decorator'; -import { HttpBadRequestError, httpWorkflow, JSONResponse, Response } from '../src/http'; +import { dotToUrlPath, HttpRouter, RouteClassControllerAction, RouteParameterResolverContext, UploadedFile } from '../src/router.js'; +import { http, httpClass } from '../src/decorator.js'; +import { HttpBadRequestError, httpWorkflow, JSONResponse, Response } from '../src/http.js'; import { eventDispatcher } from '@deepkit/event'; -import { HttpBody, HttpBodyValidation, HttpQueries, HttpQuery, HttpRegExp, HttpRequest } from '../src/model'; +import { HttpBody, HttpBodyValidation, HttpQueries, HttpQuery, HttpRegExp, HttpRequest } from '../src/model.js'; import { getClassName, isObject, sleep } from '@deepkit/core'; -import { createHttpKernel } from './utils'; +import { createHttpKernel } from './utils.js'; import { Group, MinLength, PrimaryKey, Reference } from '@deepkit/type'; import { Readable } from 'stream'; diff --git a/packages/http/tests/utils.ts b/packages/http/tests/utils.ts index 3e12e1791..295bfc7d7 100644 --- a/packages/http/tests/utils.ts +++ b/packages/http/tests/utils.ts @@ -1,9 +1,9 @@ import { ClassType, isArray, isClass, isFunction } from '@deepkit/core'; import { ProviderWithScope } from '@deepkit/injector'; -import { HttpKernel } from '../src/kernel'; +import { HttpKernel } from '../src/kernel.js'; import { App, AppModule, MiddlewareFactory } from '@deepkit/app'; import { EventListener } from '@deepkit/event'; -import { HttpModule } from '../src/module'; +import { HttpModule } from '../src/module.js'; import { HttpRouterRegistry } from '../src/router.js'; export function createHttpKernel( diff --git a/packages/injector/package-lock.json b/packages/injector/package-lock.json index 0dab9958d..f9187c8b6 100644 --- a/packages/injector/package-lock.json +++ b/packages/injector/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/injector", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "devDependencies": { "benchmark": "^2.1.4" diff --git a/packages/injector/tests/injector.spec.ts b/packages/injector/tests/injector.spec.ts index ca24c8fb5..7ebf220dc 100644 --- a/packages/injector/tests/injector.spec.ts +++ b/packages/injector/tests/injector.spec.ts @@ -1,9 +1,9 @@ import { expect, test } from '@jest/globals'; -import { CircularDependencyError, injectedFunction, Injector, InjectorContext } from '../src/injector'; -import { InjectorModule } from '../src/module'; +import { CircularDependencyError, injectedFunction, Injector, InjectorContext } from '../src/injector.js'; +import { InjectorModule } from '../src/module.js'; import { ReflectionClass, ReflectionKind } from '@deepkit/type'; -import { Inject } from '../src/types'; -import { provide } from '../src/provider'; +import { Inject } from '../src/types.js'; +import { provide } from '../src/provider.js'; export const a = 'asd'; diff --git a/packages/injector/tests/injector2.spec.ts b/packages/injector/tests/injector2.spec.ts index 507400937..fe1fd1565 100644 --- a/packages/injector/tests/injector2.spec.ts +++ b/packages/injector/tests/injector2.spec.ts @@ -1,9 +1,9 @@ import { expect, test } from '@jest/globals'; -import { Injector, InjectorContext, injectorReference } from '../src/injector'; -import { provide, Tag } from '../src/provider'; -import { InjectorModule } from '../src/module'; +import { Injector, InjectorContext, injectorReference } from '../src/injector.js'; +import { provide, Tag } from '../src/provider.js'; +import { InjectorModule } from '../src/module.js'; import { typeOf } from '@deepkit/type'; -import { Inject } from '../src/types'; +import { Inject } from '../src/types.js'; test('basic', () => { class Service { diff --git a/packages/logger/index.ts b/packages/logger/index.ts index 958190720..3ca2427af 100644 --- a/packages/logger/index.ts +++ b/packages/logger/index.ts @@ -1,2 +1,2 @@ -export * from './src/logger'; -export * from './src/memory-logger'; \ No newline at end of file +export * from './src/logger.js'; +export * from './src/memory-logger.js'; diff --git a/packages/logger/package-lock.json b/packages/logger/package-lock.json index e38fd04f2..e1b42f7ce 100644 --- a/packages/logger/package-lock.json +++ b/packages/logger/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/logger", - "version": "1.0.1-alpha.65", + "version": "1.0.1-alpha.72", "license": "MIT", "dependencies": { "@types/format-util": "^1.0.1", diff --git a/packages/logger/src/memory-logger.ts b/packages/logger/src/memory-logger.ts index 11159d290..0e13974fc 100644 --- a/packages/logger/src/memory-logger.ts +++ b/packages/logger/src/memory-logger.ts @@ -1,4 +1,4 @@ -import { LoggerTransport, LogMessage } from './logger'; +import { LoggerTransport, LogMessage } from './logger.js'; export class MemoryLoggerTransport implements LoggerTransport { public messages: LogMessage[] = []; diff --git a/packages/logger/tests/logger.spec.ts b/packages/logger/tests/logger.spec.ts index 5908321db..58498eaeb 100644 --- a/packages/logger/tests/logger.spec.ts +++ b/packages/logger/tests/logger.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; -import { Logger, LoggerLevel, ScopeFormatter } from '../src/logger'; -import { MemoryLoggerTransport } from '../src/memory-logger'; +import { Logger, LoggerLevel, ScopeFormatter } from '../src/logger.js'; +import { MemoryLoggerTransport } from '../src/memory-logger.js'; test('log level', () => { const logger = new Logger(); diff --git a/packages/mongo/index.ts b/packages/mongo/index.ts index 57e03f57f..a4cdc2205 100644 --- a/packages/mongo/index.ts +++ b/packages/mongo/index.ts @@ -8,10 +8,10 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/mapping'; -export * from './src/adapter'; -export * from './src/persistence'; -export * from './src/query.model'; -export * from './src/query.resolver'; -export * from './src/query'; -export * from './src/client/client'; +export * from './src/mapping.js'; +export * from './src/adapter.js'; +export * from './src/persistence.js'; +export * from './src/query.model.js'; +export * from './src/query.resolver.js'; +export * from './src/query.js'; +export * from './src/client/client.js'; diff --git a/packages/mongo/package-lock.json b/packages/mongo/package-lock.json index 64ac7b9c8..b438313a8 100644 --- a/packages/mongo/package-lock.json +++ b/packages/mongo/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/mongo", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "dependencies": { "saslprep": "^1.0.3", @@ -55,15 +55,10 @@ }, "../bson": { "name": "@deepkit/bson", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "peer": true, - "dependencies": { - "@deepkit/crypto": "^1.0.1-alpha.65" - }, "devDependencies": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type": "^1.0.1-alpha.71", "@types/bson": "^4.0.3", "@types/node": "14.14.28", "bson": "^4.4.0", @@ -738,8 +733,7 @@ }, "../core": { "name": "@deepkit/core", - "version": "1.0.1-alpha.65", - "dev": true, + "version": "1.0.1-alpha.72", "license": "MIT", "peer": true, "dependencies": { @@ -788,20 +782,20 @@ }, "../crypto": { "name": "@deepkit/crypto", - "version": "1.0.1-alpha.65", + "version": "1.0.1-alpha.72", "license": "MIT", "peer": true }, "../event": { "name": "@deepkit/event", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "dev": true, "license": "MIT", "peer": true, "devDependencies": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/injector": "^1.0.1-alpha.71", - "@deepkit/type": "^1.0.1-alpha.71" + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/injector": "^1.0.1-alpha.72", + "@deepkit/type": "^1.0.1-alpha.72" }, "peerDependencies": { "@deepkit/core": "^1.0.1-alpha.13", @@ -823,13 +817,13 @@ }, "../injector": { "name": "@deepkit/injector", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "dev": true, "license": "MIT", "peer": true, "devDependencies": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type": "^1.0.1-alpha.71", + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type": "^1.0.1-alpha.72", "benchmark": "^2.1.4" }, "peerDependencies": { @@ -869,7 +863,7 @@ }, "../logger": { "name": "@deepkit/logger", - "version": "1.0.1-alpha.65", + "version": "1.0.1-alpha.72", "dev": true, "license": "MIT", "peer": true, @@ -879,7 +873,7 @@ "format-util": "^1.0.5" }, "devDependencies": { - "@deepkit/core": "^1.0.1-alpha.65" + "@deepkit/core": "^1.0.1-alpha.72" }, "peerDependencies": { "@deepkit/core": "^1.0.1-alpha.13" @@ -936,20 +930,20 @@ }, "../orm": { "name": "@deepkit/orm", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "peer": true, "dependencies": { - "@deepkit/topsort": "^1.0.1-alpha.65", + "@deepkit/topsort": "^1.0.1-alpha.72", "sift": "^7.0.1" }, "devDependencies": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/event": "^1.0.1-alpha.71", - "@deepkit/injector": "^1.0.1-alpha.71", - "@deepkit/logger": "^1.0.1-alpha.65", - "@deepkit/stopwatch": "^1.0.1-alpha.71", - "@deepkit/type": "^1.0.1-alpha.71", + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/event": "^1.0.1-alpha.72", + "@deepkit/injector": "^1.0.1-alpha.72", + "@deepkit/logger": "^1.0.1-alpha.72", + "@deepkit/stopwatch": "^1.0.1-alpha.72", + "@deepkit/type": "^1.0.1-alpha.72", "@types/sqlstring": "^2.2.1", "conditional-type-checks": "^1.0.5" }, @@ -1061,13 +1055,13 @@ }, "../stopwatch": { "name": "@deepkit/stopwatch", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "dev": true, "license": "MIT", "peer": true, "devDependencies": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type": "^1.0.1-alpha.71" + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type": "^1.0.1-alpha.72" }, "peerDependencies": { "@deepkit/core": "^1.0.1-alpha.13", @@ -1084,25 +1078,21 @@ }, "../topsort": { "name": "@deepkit/topsort", - "version": "1.0.1-alpha.65", + "version": "1.0.1-alpha.72", "license": "MIT", "peer": true }, "../type": { "name": "@deepkit/type", - "version": "1.0.1-alpha.71", - "dev": true, + "version": "1.0.1-alpha.72", "license": "MIT", "peer": true, "dependencies": { - "@deepkit/type-spec": "^1.0.1-alpha.71", "@types/uuid": "^8.3.0", "buffer": "^5.2.1", "uuid": "^8.3.2" }, "devDependencies": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type-compiler": "^1.0.1-alpha.71", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@typescript/vfs": "^1.3.5", @@ -1531,9 +1521,6 @@ "@deepkit/bson": { "version": "file:../bson", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/crypto": "^1.0.1-alpha.65", - "@deepkit/type": "^1.0.1-alpha.71", "@types/bson": "^4.0.3", "@types/node": "14.14.28", "bson": "^4.4.0", @@ -1573,9 +1560,6 @@ "@deepkit/type": { "version": "file:../type", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type-compiler": "^1.0.1-alpha.71", - "@deepkit/type-spec": "^1.0.1-alpha.71", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@types/uuid": "^8.3.0", @@ -2177,13 +2161,13 @@ "@deepkit/orm": { "version": "file:../orm", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/event": "^1.0.1-alpha.71", - "@deepkit/injector": "^1.0.1-alpha.71", - "@deepkit/logger": "^1.0.1-alpha.65", - "@deepkit/stopwatch": "^1.0.1-alpha.71", - "@deepkit/topsort": "^1.0.1-alpha.65", - "@deepkit/type": "^1.0.1-alpha.71", + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/event": "^1.0.1-alpha.72", + "@deepkit/injector": "^1.0.1-alpha.72", + "@deepkit/logger": "^1.0.1-alpha.72", + "@deepkit/stopwatch": "^1.0.1-alpha.72", + "@deepkit/topsort": "^1.0.1-alpha.72", + "@deepkit/type": "^1.0.1-alpha.72", "@types/sqlstring": "^2.2.1", "conditional-type-checks": "^1.0.5", "sift": "^7.0.1" @@ -2222,9 +2206,9 @@ "@deepkit/event": { "version": "file:../event", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/injector": "^1.0.1-alpha.71", - "@deepkit/type": "^1.0.1-alpha.71" + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/injector": "^1.0.1-alpha.72", + "@deepkit/type": "^1.0.1-alpha.72" }, "dependencies": { "@deepkit/core": { @@ -2260,8 +2244,8 @@ "@deepkit/injector": { "version": "file:../injector", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type": "^1.0.1-alpha.71", + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type": "^1.0.1-alpha.72", "benchmark": "^2.1.4" }, "dependencies": { @@ -2298,9 +2282,6 @@ "@deepkit/type": { "version": "file:../type", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type-compiler": "^1.0.1-alpha.71", - "@deepkit/type-spec": "^1.0.1-alpha.71", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@types/uuid": "^8.3.0", @@ -2426,9 +2407,6 @@ "@deepkit/type": { "version": "file:../type", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type-compiler": "^1.0.1-alpha.71", - "@deepkit/type-spec": "^1.0.1-alpha.71", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@types/uuid": "^8.3.0", @@ -2535,8 +2513,8 @@ "@deepkit/injector": { "version": "file:../injector", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type": "^1.0.1-alpha.71", + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type": "^1.0.1-alpha.72", "benchmark": "^2.1.4" }, "dependencies": { @@ -2573,9 +2551,6 @@ "@deepkit/type": { "version": "file:../type", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type-compiler": "^1.0.1-alpha.71", - "@deepkit/type-spec": "^1.0.1-alpha.71", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@types/uuid": "^8.3.0", @@ -2701,7 +2676,7 @@ "@deepkit/logger": { "version": "file:../logger", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", + "@deepkit/core": "^1.0.1-alpha.72", "@types/format-util": "^1.0.1", "ansi-styles": "^4.3.0", "format-util": "^1.0.5" @@ -2773,8 +2748,8 @@ "@deepkit/stopwatch": { "version": "file:../stopwatch", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type": "^1.0.1-alpha.71" + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type": "^1.0.1-alpha.72" }, "dependencies": { "@deepkit/core": { @@ -2810,9 +2785,6 @@ "@deepkit/type": { "version": "file:../type", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type-compiler": "^1.0.1-alpha.71", - "@deepkit/type-spec": "^1.0.1-alpha.71", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@types/uuid": "^8.3.0", @@ -2922,9 +2894,6 @@ "@deepkit/type": { "version": "file:../type", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type-compiler": "^1.0.1-alpha.71", - "@deepkit/type-spec": "^1.0.1-alpha.71", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@types/uuid": "^8.3.0", @@ -3045,9 +3014,6 @@ "@deepkit/type": { "version": "file:../type", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type-compiler": "^1.0.1-alpha.71", - "@deepkit/type-spec": "^1.0.1-alpha.71", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@types/uuid": "^8.3.0", diff --git a/packages/mongo/src/adapter.ts b/packages/mongo/src/adapter.ts index 452f0fd60..1d539d92a 100644 --- a/packages/mongo/src/adapter.ts +++ b/packages/mongo/src/adapter.ts @@ -10,15 +10,15 @@ import { DatabaseAdapter, DatabaseAdapterQueryFactory, DatabaseEntityRegistry, DatabaseSession, OrmEntity } from '@deepkit/orm'; import { AbstractClassType, ClassType } from '@deepkit/core'; -import { MongoDatabaseQuery } from './query'; -import { MongoPersistence } from './persistence'; -import { MongoClient } from './client/client'; -import { DeleteCommand } from './client/command/delete'; -import { MongoQueryResolver } from './query.resolver'; -import { MongoDatabaseTransaction } from './client/connection'; -import { CreateIndex, CreateIndexesCommand } from './client/command/createIndexes'; -import { DropIndexesCommand } from './client/command/dropIndexes'; -import { CreateCollectionCommand } from './client/command/createCollection'; +import { MongoDatabaseQuery } from './query.js'; +import { MongoPersistence } from './persistence.js'; +import { MongoClient } from './client/client.js'; +import { DeleteCommand } from './client/command/delete.js'; +import { MongoQueryResolver } from './query.resolver.js'; +import { MongoDatabaseTransaction } from './client/connection.js'; +import { CreateIndex, CreateIndexesCommand } from './client/command/createIndexes.js'; +import { DropIndexesCommand } from './client/command/dropIndexes.js'; +import { CreateCollectionCommand } from './client/command/createCollection.js'; import { entity, ReceiveType, ReflectionClass } from '@deepkit/type'; export class MongoDatabaseQueryFactory extends DatabaseAdapterQueryFactory { diff --git a/packages/mongo/src/client/client.ts b/packages/mongo/src/client/client.ts index 96961bf90..49088e5da 100644 --- a/packages/mongo/src/client/client.ts +++ b/packages/mongo/src/client/client.ts @@ -8,14 +8,14 @@ * You should have received a copy of the MIT License along with this program. */ -import { ConnectionRequest, MongoConnection, MongoConnectionPool, MongoDatabaseTransaction } from './connection'; -import { isErrorRetryableRead, isErrorRetryableWrite, MongoError } from './error'; +import { ConnectionRequest, MongoConnection, MongoConnectionPool, MongoDatabaseTransaction } from './connection.js'; +import { isErrorRetryableRead, isErrorRetryableWrite, MongoError } from './error.js'; import { sleep } from '@deepkit/core'; -import { Command } from './command/command'; -import { DropDatabaseCommand } from './command/dropDatabase'; -import { MongoClientConfig } from './config'; +import { Command } from './command/command.js'; +import { DropDatabaseCommand } from './command/dropDatabase.js'; +import { MongoClientConfig } from './config.js'; import { ReflectionClass } from '@deepkit/type'; -import { mongoBinarySerializer } from '../mongo-serializer'; +import { mongoBinarySerializer } from '../mongo-serializer.js'; import { BSONBinarySerializer } from '@deepkit/bson'; export class MongoClient { diff --git a/packages/mongo/src/client/command/abortTransaction.ts b/packages/mongo/src/client/command/abortTransaction.ts index 0632f1eb7..cefc9ea81 100644 --- a/packages/mongo/src/client/command/abortTransaction.ts +++ b/packages/mongo/src/client/command/abortTransaction.ts @@ -9,9 +9,9 @@ */ import { UUID } from '@deepkit/type'; -import { BaseResponse, Command } from './command'; -import { MongoClientConfig } from '../config'; -import { Host } from '../host'; +import { BaseResponse, Command } from './command.js'; +import { MongoClientConfig } from '../config.js'; +import { Host } from '../host.js'; interface Request { abortTransaction: number, diff --git a/packages/mongo/src/client/command/aggregate.ts b/packages/mongo/src/client/command/aggregate.ts index 293df84b1..56b9833fa 100644 --- a/packages/mongo/src/client/command/aggregate.ts +++ b/packages/mongo/src/client/command/aggregate.ts @@ -9,9 +9,9 @@ */ import { toFastProperties } from '@deepkit/core'; -import { BaseResponse, Command } from './command'; +import { BaseResponse, Command } from './command.js'; import { InlineRuntimeType, ReflectionClass, Type, typeOf, UUID } from '@deepkit/type'; -import { MongoError } from '../error'; +import { MongoError } from '../error.js'; interface AggregateMessage { aggregate: string; diff --git a/packages/mongo/src/client/command/auth/auth.ts b/packages/mongo/src/client/command/auth/auth.ts index 44f42fe57..9fce46e48 100644 --- a/packages/mongo/src/client/command/auth/auth.ts +++ b/packages/mongo/src/client/command/auth/auth.ts @@ -8,8 +8,8 @@ * You should have received a copy of the MIT License along with this program. */ -import { MongoClientConfig } from '../../config'; -import { Command } from '../command'; +import { MongoClientConfig } from '../../config.js'; +import { Command } from '../command.js'; export interface MongoAuth { auth(command: Command, config: MongoClientConfig): Promise; diff --git a/packages/mongo/src/client/command/auth/scram.ts b/packages/mongo/src/client/command/auth/scram.ts index a8eecca1b..e93fe65c7 100644 --- a/packages/mongo/src/client/command/auth/scram.ts +++ b/packages/mongo/src/client/command/auth/scram.ts @@ -9,10 +9,10 @@ */ import { createHash, createHmac, pbkdf2Sync, randomBytes, timingSafeEqual } from 'crypto'; -import { MongoAuth } from './auth'; -import { MongoClientConfig } from '../../config'; -import { BaseResponse, Command } from '../command'; -import { MongoError } from '../../error'; +import { MongoAuth } from './auth.js'; +import { MongoClientConfig } from '../../config.js'; +import { BaseResponse, Command } from '../command.js'; +import { MongoError } from '../../error.js'; // @ts-ignore import saslprep from 'saslprep'; diff --git a/packages/mongo/src/client/command/auth/x509.ts b/packages/mongo/src/client/command/auth/x509.ts index 41b9870d6..2f18956b4 100644 --- a/packages/mongo/src/client/command/auth/x509.ts +++ b/packages/mongo/src/client/command/auth/x509.ts @@ -8,9 +8,9 @@ * You should have received a copy of the MIT License along with this program. */ -import { MongoAuth } from './auth'; -import { BaseResponse, Command } from '../command'; -import { MongoClientConfig } from '../../config'; +import { MongoAuth } from './auth.js'; +import { BaseResponse, Command } from '../command.js'; +import { MongoClientConfig } from '../../config.js'; interface AuthenticateCommand { authenticate: 1; diff --git a/packages/mongo/src/client/command/command.ts b/packages/mongo/src/client/command/command.ts index e33086811..320afb260 100644 --- a/packages/mongo/src/client/command/command.ts +++ b/packages/mongo/src/client/command/command.ts @@ -9,13 +9,13 @@ */ import { asyncOperation, getClassName } from '@deepkit/core'; -import { handleErrorResponse, MongoError } from '../error'; -import { MongoClientConfig } from '../config'; -import { Host } from '../host'; -import type { MongoDatabaseTransaction } from '../connection'; +import { handleErrorResponse, MongoError } from '../error.js'; +import { MongoClientConfig } from '../config.js'; +import { Host } from '../host.js'; +import type { MongoDatabaseTransaction } from '../connection.js'; import { ReceiveType, ReflectionClass, resolveReceiveType, SerializationError, stringifyType, Type, typeOf, ValidationError } from '@deepkit/type'; import { BSONDeserializer, deserializeBSONWithoutOptimiser, getBSONDeserializer } from '@deepkit/bson'; -import { mongoBinarySerializer } from '../../mongo-serializer'; +import { mongoBinarySerializer } from '../../mongo-serializer.js'; import { inspect } from 'util'; export interface CommandMessageResponseCallbackResult { diff --git a/packages/mongo/src/client/command/commitTransaction.ts b/packages/mongo/src/client/command/commitTransaction.ts index 916e6903f..0f9803b48 100644 --- a/packages/mongo/src/client/command/commitTransaction.ts +++ b/packages/mongo/src/client/command/commitTransaction.ts @@ -9,9 +9,9 @@ */ import { UUID } from '@deepkit/type'; -import { BaseResponse, Command } from './command'; -import { MongoClientConfig } from '../config'; -import { Host } from '../host'; +import { BaseResponse, Command } from './command.js'; +import { MongoClientConfig } from '../config.js'; +import { Host } from '../host.js'; interface Request { commitTransaction: number; diff --git a/packages/mongo/src/client/command/count.ts b/packages/mongo/src/client/command/count.ts index 54d7f8c2f..177036581 100644 --- a/packages/mongo/src/client/command/count.ts +++ b/packages/mongo/src/client/command/count.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { BaseResponse, Command } from './command'; +import { BaseResponse, Command } from './command.js'; import { ReflectionClass, UUID } from '@deepkit/type'; interface CountResponse extends BaseResponse { diff --git a/packages/mongo/src/client/command/createCollection.ts b/packages/mongo/src/client/command/createCollection.ts index 353f22732..5060fc026 100644 --- a/packages/mongo/src/client/command/createCollection.ts +++ b/packages/mongo/src/client/command/createCollection.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { BaseResponse, Command } from './command'; +import { BaseResponse, Command } from './command.js'; import { ReflectionClass } from '@deepkit/type'; interface RequestSchema { diff --git a/packages/mongo/src/client/command/createIndexes.ts b/packages/mongo/src/client/command/createIndexes.ts index 705b5cc09..9541d0c13 100644 --- a/packages/mongo/src/client/command/createIndexes.ts +++ b/packages/mongo/src/client/command/createIndexes.ts @@ -8,9 +8,9 @@ * You should have received a copy of the MIT License along with this program. */ -import { BaseResponse, Command } from './command'; +import { BaseResponse, Command } from './command.js'; import { ReflectionClass } from '@deepkit/type'; -import { MongoError } from '../error'; +import { MongoError } from '../error.js'; export interface CreateIndex { key: { [name: string]: 1 }, diff --git a/packages/mongo/src/client/command/delete.ts b/packages/mongo/src/client/command/delete.ts index 435277229..d3b9cdb36 100644 --- a/packages/mongo/src/client/command/delete.ts +++ b/packages/mongo/src/client/command/delete.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { BaseResponse, Command } from './command'; +import { BaseResponse, Command } from './command.js'; import { ReflectionClass, UUID } from '@deepkit/type'; interface DeleteResponse extends BaseResponse { diff --git a/packages/mongo/src/client/command/dropDatabase.ts b/packages/mongo/src/client/command/dropDatabase.ts index e8402f1eb..901a9406b 100644 --- a/packages/mongo/src/client/command/dropDatabase.ts +++ b/packages/mongo/src/client/command/dropDatabase.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { Command } from './command'; +import { Command } from './command.js'; import { ReflectionClass } from '@deepkit/type'; interface DropDatabase { diff --git a/packages/mongo/src/client/command/dropIndexes.ts b/packages/mongo/src/client/command/dropIndexes.ts index 9b4285cef..a25420a60 100644 --- a/packages/mongo/src/client/command/dropIndexes.ts +++ b/packages/mongo/src/client/command/dropIndexes.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { BaseResponse, Command } from './command'; +import { BaseResponse, Command } from './command.js'; import { ReflectionClass } from '@deepkit/type'; interface RequestSchema { diff --git a/packages/mongo/src/client/command/empty.ts b/packages/mongo/src/client/command/empty.ts index 19690fd2f..ae3973aaa 100644 --- a/packages/mongo/src/client/command/empty.ts +++ b/packages/mongo/src/client/command/empty.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { Command } from './command'; +import { Command } from './command.js'; export class EmptyCommand extends Command { diff --git a/packages/mongo/src/client/command/find.ts b/packages/mongo/src/client/command/find.ts index a8cfc675e..680e50e0b 100644 --- a/packages/mongo/src/client/command/find.ts +++ b/packages/mongo/src/client/command/find.ts @@ -8,11 +8,11 @@ * You should have received a copy of the MIT License along with this program. */ -import { BaseResponse, Command } from './command'; +import { BaseResponse, Command } from './command.js'; import { toFastProperties } from '@deepkit/core'; -import { DEEP_SORT } from '../../query.model'; +import { DEEP_SORT } from '../../query.model.js'; import { InlineRuntimeType, ReflectionClass, ReflectionKind, typeOf, TypeUnion, UUID } from '@deepkit/type'; -import { MongoError } from '../error'; +import { MongoError } from '../error.js'; interface FindSchema { find: string; diff --git a/packages/mongo/src/client/command/findAndModify.ts b/packages/mongo/src/client/command/findAndModify.ts index cd9184974..97aa6946a 100644 --- a/packages/mongo/src/client/command/findAndModify.ts +++ b/packages/mongo/src/client/command/findAndModify.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { BaseResponse, Command } from './command'; +import { BaseResponse, Command } from './command.js'; import { ReflectionClass, UUID } from '@deepkit/type'; interface FindAndModifyResponse extends BaseResponse { diff --git a/packages/mongo/src/client/command/handshake.ts b/packages/mongo/src/client/command/handshake.ts index 82583a80c..5e8916678 100644 --- a/packages/mongo/src/client/command/handshake.ts +++ b/packages/mongo/src/client/command/handshake.ts @@ -8,15 +8,15 @@ * You should have received a copy of the MIT License along with this program. */ -import { Command } from './command'; -import { IsMasterResponse } from './ismaster'; -import { MongoClientConfig } from '../config'; -import { Host, HostType } from '../host'; -import { Sha1ScramAuth, Sha256ScramAuth } from './auth/scram'; +import { Command } from './command.js'; +import { IsMasterResponse } from './ismaster.js'; +import { MongoClientConfig } from '../config.js'; +import { Host, HostType } from '../host.js'; +import { Sha1ScramAuth, Sha256ScramAuth } from './auth/scram.js'; import { ClassType } from '@deepkit/core'; -import { MongoError } from '../error'; -import { MongoAuth } from './auth/auth'; -import { X509Auth } from './auth/x509'; +import { MongoError } from '../error.js'; +import { MongoAuth } from './auth/auth.js'; +import { X509Auth } from './auth/x509.js'; interface IsMasterSchema { isMaster: number; diff --git a/packages/mongo/src/client/command/insert.ts b/packages/mongo/src/client/command/insert.ts index 12062c86b..73070ba5b 100644 --- a/packages/mongo/src/client/command/insert.ts +++ b/packages/mongo/src/client/command/insert.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { BaseResponse, Command } from './command'; +import { BaseResponse, Command } from './command.js'; import { toFastProperties } from '@deepkit/core'; import { InlineRuntimeType, ReflectionClass, typeOf, UUID } from '@deepkit/type'; diff --git a/packages/mongo/src/client/command/ismaster.ts b/packages/mongo/src/client/command/ismaster.ts index 6c8bb1a32..d18b7270e 100644 --- a/packages/mongo/src/client/command/ismaster.ts +++ b/packages/mongo/src/client/command/ismaster.ts @@ -10,9 +10,9 @@ //see https://docs.mongodb.com/manual/reference/command/isMaster/ //we add only fields we really need to increase parsing time. -import { BaseResponse, Command } from './command'; -import { MongoClientConfig } from '../config'; -import { Host } from '../host'; +import { BaseResponse, Command } from './command.js'; +import { MongoClientConfig } from '../config.js'; +import { Host } from '../host.js'; export interface IsMasterResponse extends BaseResponse { ismaster: boolean; diff --git a/packages/mongo/src/client/command/startSession.ts b/packages/mongo/src/client/command/startSession.ts index bf98a1c0a..3226b2ebb 100644 --- a/packages/mongo/src/client/command/startSession.ts +++ b/packages/mongo/src/client/command/startSession.ts @@ -8,9 +8,9 @@ * You should have received a copy of the MIT License along with this program. */ -import { BaseResponse, Command } from './command'; -import { MongoClientConfig } from '../config'; -import { Host } from '../host'; +import { BaseResponse, Command } from './command.js'; +import { MongoClientConfig } from '../config.js'; +import { Host } from '../host.js'; import { UUID } from '@deepkit/type'; interface SessionResponse extends BaseResponse { diff --git a/packages/mongo/src/client/command/update.ts b/packages/mongo/src/client/command/update.ts index 659c8997c..d3174cad1 100644 --- a/packages/mongo/src/client/command/update.ts +++ b/packages/mongo/src/client/command/update.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { BaseResponse, Command } from './command'; +import { BaseResponse, Command } from './command.js'; import { ReflectionClass, UUID } from '@deepkit/type'; interface UpdateResponse extends BaseResponse { diff --git a/packages/mongo/src/client/config.ts b/packages/mongo/src/client/config.ts index c1b307879..992256381 100644 --- a/packages/mongo/src/client/config.ts +++ b/packages/mongo/src/client/config.ts @@ -8,13 +8,13 @@ * You should have received a copy of the MIT License along with this program. */ -import { Host } from './host'; -import { ConnectionOptions } from './options'; +import { Host } from './host.js'; +import { ConnectionOptions } from './options.js'; import { parse as parseUrl } from 'url'; import { parse as parseQueryString } from 'querystring'; -import { MongoError } from './error'; +import { MongoError } from './error.js'; import { arrayRemoveItem, eachPair, singleStack } from '@deepkit/core'; -import { resolveSrvHosts } from './dns'; +import { resolveSrvHosts } from './dns.js'; import { ReflectionClass, validatedDeserialize } from '@deepkit/type'; /** diff --git a/packages/mongo/src/client/connection.ts b/packages/mongo/src/client/connection.ts index 380859df2..9ac939705 100644 --- a/packages/mongo/src/client/connection.ts +++ b/packages/mongo/src/client/connection.ts @@ -9,21 +9,21 @@ */ import { arrayRemoveItem, asyncOperation } from '@deepkit/core'; -import { Host } from './host'; +import { Host } from './host.js'; import { createConnection, Socket } from 'net'; import { connect as createTLSConnection, TLSSocket } from 'tls'; -import { Command } from './command/command'; +import { Command } from './command/command.js'; import { stringifyType, Type, uuid } from '@deepkit/type'; import { BSONBinarySerializer, getBSONSerializer, getBSONSizer, Writer } from '@deepkit/bson'; -import { HandshakeCommand } from './command/handshake'; -import { MongoClientConfig } from './config'; -import { MongoError } from './error'; +import { HandshakeCommand } from './command/handshake.js'; +import { MongoClientConfig } from './config.js'; +import { MongoError } from './error.js'; // @ts-ignore import * as turbo from 'turbo-net'; import { DatabaseTransaction } from '@deepkit/orm'; -import { CommitTransactionCommand } from './command/commitTransaction'; -import { AbortTransactionCommand } from './command/abortTransaction'; +import { CommitTransactionCommand } from './command/commitTransaction.js'; +import { AbortTransactionCommand } from './command/abortTransaction.js'; export enum MongoConnectionStatus { pending = 'pending', diff --git a/packages/mongo/src/client/error.ts b/packages/mongo/src/client/error.ts index 300a7a437..bbc1b17c5 100644 --- a/packages/mongo/src/client/error.ts +++ b/packages/mongo/src/client/error.ts @@ -9,7 +9,7 @@ */ import { CustomError } from '@deepkit/core'; -import { BaseResponse } from './command/command'; +import { BaseResponse } from './command/command.js'; import { DatabaseError, UniqueConstraintFailure } from '@deepkit/orm'; diff --git a/packages/mongo/src/mapping.ts b/packages/mongo/src/mapping.ts index aca86556d..cda6c55c7 100644 --- a/packages/mongo/src/mapping.ts +++ b/packages/mongo/src/mapping.ts @@ -10,10 +10,10 @@ import { deserialize, ReflectionClass, resolvePath, serialize, serializer } from '@deepkit/type'; import { ClassType } from '@deepkit/core'; -import './mongo-serializer'; -import { mongoSerializer } from './mongo-serializer'; +import './mongo-serializer.js'; +import { mongoSerializer } from './mongo-serializer.js'; import { convertQueryFilter, QueryCustomFields, QueryFieldNames } from '@deepkit/orm'; -import { FilterQuery } from './query.model'; +import { FilterQuery } from './query.model.js'; export function convertClassQueryToMongo>( classType: ReflectionClass | ClassType, diff --git a/packages/mongo/src/persistence.ts b/packages/mongo/src/persistence.ts index 305203819..b4236704f 100644 --- a/packages/mongo/src/persistence.ts +++ b/packages/mongo/src/persistence.ts @@ -9,19 +9,19 @@ */ import { DatabasePersistence, DatabasePersistenceChangeSet, DatabaseSession, getClassState, getInstanceState, OrmEntity } from '@deepkit/orm'; -import { convertClassQueryToMongo } from './mapping'; -import { FilterQuery } from './query.model'; -import { MongoClient } from './client/client'; -import { InsertCommand } from './client/command/insert'; -import { UpdateCommand } from './client/command/update'; -import { DeleteCommand } from './client/command/delete'; -import { FindAndModifyCommand } from './client/command/findAndModify'; +import { convertClassQueryToMongo } from './mapping.js'; +import { FilterQuery } from './query.model.js'; +import { MongoClient } from './client/client.js'; +import { InsertCommand } from './client/command/insert.js'; +import { UpdateCommand } from './client/command/update.js'; +import { DeleteCommand } from './client/command/delete.js'; +import { FindAndModifyCommand } from './client/command/findAndModify.js'; import { empty } from '@deepkit/core'; -import { FindCommand } from './client/command/find'; -import { MongoConnection } from './client/connection'; +import { FindCommand } from './client/command/find.js'; +import { MongoConnection } from './client/connection.js'; import { getPartialSerializeFunction, ReflectionClass } from '@deepkit/type'; import { ObjectId } from '@deepkit/bson'; -import { mongoSerializer } from './mongo-serializer'; +import { mongoSerializer } from './mongo-serializer.js'; export class MongoPersistence extends DatabasePersistence { protected connection?: MongoConnection; diff --git a/packages/mongo/src/query.resolver.ts b/packages/mongo/src/query.resolver.ts index 1784c6034..4052ce60d 100644 --- a/packages/mongo/src/query.resolver.ts +++ b/packages/mongo/src/query.resolver.ts @@ -10,19 +10,19 @@ import { DatabaseAdapter, DatabaseSession, DeleteResult, Formatter, GenericQueryResolver, OrmEntity, PatchResult } from '@deepkit/orm'; import { Changes, getPartialSerializeFunction, ReflectionClass, ReflectionKind, ReflectionVisibility, resolveForeignReflectionClass, serializer, typeOf } from '@deepkit/type'; -import { MongoClient } from './client/client'; -import { AggregateCommand } from './client/command/aggregate'; -import { CountCommand } from './client/command/count'; -import { DeleteCommand } from './client/command/delete'; -import { FindCommand } from './client/command/find'; -import { FindAndModifyCommand } from './client/command/findAndModify'; -import { UpdateCommand } from './client/command/update'; -import { convertClassQueryToMongo } from './mapping'; -import { DEEP_SORT, FilterQuery, MongoQueryModel } from './query.model'; -import { MongoConnection } from './client/connection'; -import { MongoDatabaseAdapter } from './adapter'; +import { MongoClient } from './client/client.js'; +import { AggregateCommand } from './client/command/aggregate.js'; +import { CountCommand } from './client/command/count.js'; +import { DeleteCommand } from './client/command/delete.js'; +import { FindCommand } from './client/command/find.js'; +import { FindAndModifyCommand } from './client/command/findAndModify.js'; +import { UpdateCommand } from './client/command/update.js'; +import { convertClassQueryToMongo } from './mapping.js'; +import { DEEP_SORT, FilterQuery, MongoQueryModel } from './query.model.js'; +import { MongoConnection } from './client/connection.js'; +import { MongoDatabaseAdapter } from './adapter.js'; import { empty } from '@deepkit/core'; -import { mongoSerializer } from './mongo-serializer'; +import { mongoSerializer } from './mongo-serializer.js'; export function getMongoFilter(classSchema: ReflectionClass, model: MongoQueryModel): any { return convertClassQueryToMongo(classSchema, (model.filter || {}) as FilterQuery, {}, { diff --git a/packages/mongo/src/query.ts b/packages/mongo/src/query.ts index 5b1b1df12..77b5b1a48 100644 --- a/packages/mongo/src/query.ts +++ b/packages/mongo/src/query.ts @@ -9,7 +9,7 @@ */ import { OrmEntity, Query } from '@deepkit/orm'; -import { MongoQueryModel } from './query.model'; +import { MongoQueryModel } from './query.model.js'; export class MongoDatabaseQuery = MongoQueryModel> extends Query { diff --git a/packages/mongo/tests/client/client.spec.ts b/packages/mongo/tests/client/client.spec.ts index ca18a988b..4486e31d7 100644 --- a/packages/mongo/tests/client/client.spec.ts +++ b/packages/mongo/tests/client/client.spec.ts @@ -1,9 +1,9 @@ import { expect, test } from '@jest/globals'; -import { MongoClient } from '../../src/client/client'; -import { HostType } from '../../src/client/host'; -import { IsMasterCommand } from '../../src/client/command/ismaster'; +import { MongoClient } from '../../src/client/client.js'; +import { HostType } from '../../src/client/host.js'; +import { IsMasterCommand } from '../../src/client/command/ismaster.js'; import { sleep } from '@deepkit/core'; -import { ConnectionOptions } from '../../src/client/options'; +import { ConnectionOptions } from '../../src/client/options.js'; import { cast, validatedDeserialize } from '@deepkit/type'; test('ConnectionOptions', async () => { diff --git a/packages/mongo/tests/client/connection-string.spec.ts b/packages/mongo/tests/client/connection-string.spec.ts index bcfe16d17..10c75c9e7 100644 --- a/packages/mongo/tests/client/connection-string.spec.ts +++ b/packages/mongo/tests/client/connection-string.spec.ts @@ -1,5 +1,5 @@ import {expect, test} from '@jest/globals'; -import {MongoClientConfig} from '../../src/client/config'; +import {MongoClientConfig} from '../../src/client/config.js'; test('connection string basic', async () => { { diff --git a/packages/mongo/tests/client/mong-env.spec.ts b/packages/mongo/tests/client/mong-env.spec.ts index 0cfefcbb9..a69d96a7e 100644 --- a/packages/mongo/tests/client/mong-env.spec.ts +++ b/packages/mongo/tests/client/mong-env.spec.ts @@ -1,5 +1,5 @@ import {expect, test} from '@jest/globals'; -import {MongoEnv} from './env-setup'; +import {MongoEnv} from './env-setup.js'; // jest.setTimeout(213123); diff --git a/packages/mongo/tests/database.spec.ts b/packages/mongo/tests/database.spec.ts index 1fc1acf6e..7392d3a0a 100644 --- a/packages/mongo/tests/database.spec.ts +++ b/packages/mongo/tests/database.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; import { Database } from '@deepkit/orm'; -import { MongoDatabaseAdapter } from '../src/adapter'; +import { MongoDatabaseAdapter } from '../src/adapter.js'; import { entity, MongoId, PrimaryKey } from '@deepkit/type'; test('simple', async () => { diff --git a/packages/mongo/tests/document-scenario/DocumentClass.ts b/packages/mongo/tests/document-scenario/DocumentClass.ts index 2ffcba263..2b6423249 100644 --- a/packages/mongo/tests/document-scenario/DocumentClass.ts +++ b/packages/mongo/tests/document-scenario/DocumentClass.ts @@ -1,5 +1,5 @@ -import {PageCollection} from './PageCollection'; -import {PageClass} from './PageClass'; +import {PageCollection} from './PageCollection.js'; +import {PageClass} from './PageClass.js'; import {t, ParentReference} from '@deepkit/type'; import {Forward} from '@deepkit/core'; diff --git a/packages/mongo/tests/document-scenario/PageClass.ts b/packages/mongo/tests/document-scenario/PageClass.ts index d8485e65b..4b3a55468 100644 --- a/packages/mongo/tests/document-scenario/PageClass.ts +++ b/packages/mongo/tests/document-scenario/PageClass.ts @@ -1,5 +1,5 @@ -import {PageCollection} from "./PageCollection"; -import {DocumentClass} from "./DocumentClass"; +import {PageCollection} from "./PageCollection.js"; +import {DocumentClass} from "./DocumentClass.js"; import {Entity, t, ParentReference, uuid} from '@deepkit/type'; @Entity('PageClass') diff --git a/packages/mongo/tests/document-scenario/PageCollection.ts b/packages/mongo/tests/document-scenario/PageCollection.ts index db8354535..b68b0561f 100644 --- a/packages/mongo/tests/document-scenario/PageCollection.ts +++ b/packages/mongo/tests/document-scenario/PageCollection.ts @@ -1,4 +1,4 @@ -import {PageClass} from "./PageClass"; +import {PageClass} from "./PageClass.js"; import {t} from "@deepkit/type"; export class PageCollection { diff --git a/packages/mongo/tests/factory.ts b/packages/mongo/tests/factory.ts index de5b2314a..d94448e46 100644 --- a/packages/mongo/tests/factory.ts +++ b/packages/mongo/tests/factory.ts @@ -1,6 +1,6 @@ import { Database } from '@deepkit/orm'; import { DatabaseFactory } from '@deepkit/orm-integration'; -import { MongoDatabaseAdapter } from '../src/adapter'; +import { MongoDatabaseAdapter } from '../src/adapter.js'; export const databaseFactory: DatabaseFactory = async (entities): Promise => { const adapter = new MongoDatabaseAdapter('mongodb://localhost/orm-integration'); diff --git a/packages/mongo/tests/integration.spec.ts b/packages/mongo/tests/integration.spec.ts index 516c6f273..8cceceaf2 100644 --- a/packages/mongo/tests/integration.spec.ts +++ b/packages/mongo/tests/integration.spec.ts @@ -1,6 +1,6 @@ import { test } from '@jest/globals'; import { runIntegrationTests } from '@deepkit/orm-integration'; -import { databaseFactory } from './factory'; +import { databaseFactory } from './factory.js'; runIntegrationTests(databaseFactory); diff --git a/packages/mongo/tests/mongo-query.spec.ts b/packages/mongo/tests/mongo-query.spec.ts index f939307a9..ffb59af8e 100644 --- a/packages/mongo/tests/mongo-query.spec.ts +++ b/packages/mongo/tests/mongo-query.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from '@jest/globals'; -import { convertClassQueryToMongo, convertPlainQueryToMongo } from '../index'; +import { convertClassQueryToMongo, convertPlainQueryToMongo } from '../index.js'; import { Embedded, PrimaryKey, Reference } from '@deepkit/type'; class SimpleConfig { diff --git a/packages/mongo/tests/mongo-testcase-a.spec.ts b/packages/mongo/tests/mongo-testcase-a.spec.ts index ce007217d..98b514a55 100644 --- a/packages/mongo/tests/mongo-testcase-a.spec.ts +++ b/packages/mongo/tests/mongo-testcase-a.spec.ts @@ -1,7 +1,7 @@ import { expect, test } from '@jest/globals'; import { BackReference, entity, Index, PrimaryKey, Reference, ReflectionClass, resolveForeignReflectionClass, UUID, uuid } from '@deepkit/type'; import { getInstanceStateFromItem, hydrateEntity } from '@deepkit/orm'; -import { createDatabase } from './utils'; +import { createDatabase } from './utils.js'; Error.stackTraceLimit = 20; diff --git a/packages/mongo/tests/mongo-testcase-b.spec.ts b/packages/mongo/tests/mongo-testcase-b.spec.ts index 5cbbc8afc..8ff89233c 100644 --- a/packages/mongo/tests/mongo-testcase-b.spec.ts +++ b/packages/mongo/tests/mongo-testcase-b.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; -import { User } from './testcase-b/user'; -import { createDatabase } from './utils'; +import { User } from './testcase-b/user.js'; +import { createDatabase } from './utils.js'; async function setupTestCase(name: string) { const db = await createDatabase(name); diff --git a/packages/mongo/tests/mongo.spec.ts b/packages/mongo/tests/mongo.spec.ts index 67619cd98..0ce058989 100644 --- a/packages/mongo/tests/mongo.spec.ts +++ b/packages/mongo/tests/mongo.spec.ts @@ -15,8 +15,8 @@ import { uuid, } from '@deepkit/type'; import { getInstanceStateFromItem } from '@deepkit/orm'; -import { SimpleModel, SuperSimple } from './entities'; -import { createDatabase } from './utils'; +import { SimpleModel, SuperSimple } from './entities.js'; +import { createDatabase } from './utils.js'; Error.stackTraceLimit = 100; diff --git a/packages/mongo/tests/references.spec.ts b/packages/mongo/tests/references.spec.ts index 1e4d84ed5..7b185e3b6 100644 --- a/packages/mongo/tests/references.spec.ts +++ b/packages/mongo/tests/references.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; import { BackReference, entity, PrimaryKey, Reference, ReflectionClass } from '@deepkit/type'; -import { createDatabase } from './utils'; +import { createDatabase } from './utils.js'; import { getInstanceStateFromItem } from '@deepkit/orm'; @entity.name('image') diff --git a/packages/mongo/tests/testcase-b/credentials.ts b/packages/mongo/tests/testcase-b/credentials.ts index ffb4d7856..17a4df82e 100644 --- a/packages/mongo/tests/testcase-b/credentials.ts +++ b/packages/mongo/tests/testcase-b/credentials.ts @@ -1,5 +1,5 @@ import { entity, PrimaryKey, Reference, t, UUID, uuid } from '@deepkit/type'; -import { User } from './user'; +import { User } from './user.js'; @entity.name('b-user-credentials') export class UserCredentials { diff --git a/packages/mongo/tests/testcase-b/user.ts b/packages/mongo/tests/testcase-b/user.ts index 3e57eabd5..910f6a666 100644 --- a/packages/mongo/tests/testcase-b/user.ts +++ b/packages/mongo/tests/testcase-b/user.ts @@ -1,5 +1,5 @@ import { BackReference, entity, PrimaryKey, UUID, uuid } from '@deepkit/type'; -import { UserCredentials } from './credentials'; +import { UserCredentials } from './credentials.js'; @entity.name('b-user') export class User { diff --git a/packages/mongo/tests/utils.ts b/packages/mongo/tests/utils.ts index abb9416c2..54746bc26 100644 --- a/packages/mongo/tests/utils.ts +++ b/packages/mongo/tests/utils.ts @@ -1,6 +1,6 @@ import { afterEach } from '@jest/globals'; import { Database } from '@deepkit/orm'; -import { MongoDatabaseAdapter } from '../src/adapter'; +import { MongoDatabaseAdapter } from '../src/adapter.js'; import { performance } from 'perf_hooks'; /** diff --git a/packages/mysql/index.ts b/packages/mysql/index.ts index 6e9b6706f..e957bfa77 100644 --- a/packages/mysql/index.ts +++ b/packages/mysql/index.ts @@ -8,4 +8,4 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/mysql-adapter'; +export * from './src/mysql-adapter.js'; diff --git a/packages/mysql/package-lock.json b/packages/mysql/package-lock.json index d19b52378..3cf4e9922 100644 --- a/packages/mysql/package-lock.json +++ b/packages/mysql/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/mysql", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "dependencies": { "mariadb": "^2.5.2" diff --git a/packages/mysql/src/mysql-adapter.ts b/packages/mysql/src/mysql-adapter.ts index 57268b567..e3e71323b 100644 --- a/packages/mysql/src/mysql-adapter.ts +++ b/packages/mysql/src/mysql-adapter.ts @@ -23,7 +23,7 @@ import { SQLStatement } from '@deepkit/sql'; import { DatabaseLogger, DatabasePersistenceChangeSet, DatabaseSession, DatabaseTransaction, DeleteResult, OrmEntity, PatchResult, UniqueConstraintFailure } from '@deepkit/orm'; -import { MySQLPlatform } from './mysql-platform'; +import { MySQLPlatform } from './mysql-platform.js'; import { Changes, getPartialSerializeFunction, getSerializeFunction, ReceiveType, ReflectionClass, resolvePath, resolveReceiveType } from '@deepkit/type'; import { AbstractClassType, asyncOperation, ClassType, empty, isArray } from '@deepkit/core'; import { FrameCategory, Stopwatch } from '@deepkit/stopwatch'; diff --git a/packages/mysql/src/mysql-platform.ts b/packages/mysql/src/mysql-platform.ts index 5da7c13f1..b76fb7251 100644 --- a/packages/mysql/src/mysql-platform.ts +++ b/packages/mysql/src/mysql-platform.ts @@ -9,10 +9,10 @@ */ import { Pool } from 'mariadb'; -import { mySqlSerializer } from './mysql-serializer'; +import { mySqlSerializer } from './mysql-serializer.js'; import { isUUIDType, ReflectionKind, ReflectionProperty, Serializer, TypeNumberBrand } from '@deepkit/type'; import { Column, DefaultPlatform, isSet } from '@deepkit/sql'; -import { MysqlSchemaParser } from './mysql-schema-parser'; +import { MysqlSchemaParser } from './mysql-schema-parser.js'; export class MySQLPlatform extends DefaultPlatform { protected override defaultSqlType = 'longtext'; diff --git a/packages/mysql/tests/factory.ts b/packages/mysql/tests/factory.ts index eb5d22196..7aea855d3 100644 --- a/packages/mysql/tests/factory.ts +++ b/packages/mysql/tests/factory.ts @@ -1,5 +1,5 @@ import { Database } from '@deepkit/orm'; -import { MySQLDatabaseAdapter } from '../src/mysql-adapter'; +import { MySQLDatabaseAdapter } from '../src/mysql-adapter.js'; export async function databaseFactory(entities): Promise> { const adapter = new MySQLDatabaseAdapter({ host: 'localhost', database: 'default', user: 'root' }); diff --git a/packages/mysql/tests/integration.spec.ts b/packages/mysql/tests/integration.spec.ts index 516c6f273..8cceceaf2 100644 --- a/packages/mysql/tests/integration.spec.ts +++ b/packages/mysql/tests/integration.spec.ts @@ -1,6 +1,6 @@ import { test } from '@jest/globals'; import { runIntegrationTests } from '@deepkit/orm-integration'; -import { databaseFactory } from './factory'; +import { databaseFactory } from './factory.js'; runIntegrationTests(databaseFactory); diff --git a/packages/mysql/tests/migration.spec.ts b/packages/mysql/tests/migration.spec.ts index 1a5e9a94a..8e842afd7 100644 --- a/packages/mysql/tests/migration.spec.ts +++ b/packages/mysql/tests/migration.spec.ts @@ -1,7 +1,7 @@ import { expect, test } from '@jest/globals'; import { AutoIncrement, Entity, float32, int16, int32, int8, integer, MySQL, PrimaryKey, Reference, typeOf, uint16, uint32, uint8, Unique, UUID } from '@deepkit/type'; import { schemaMigrationRoundTrip } from '@deepkit/sql'; -import { MySQLDatabaseAdapter } from '../src/mysql-adapter'; +import { MySQLDatabaseAdapter } from '../src/mysql-adapter.js'; import { DatabaseEntityRegistry } from '@deepkit/orm'; test('mysql custom type', async () => { diff --git a/packages/mysql/tests/mysql.spec.ts b/packages/mysql/tests/mysql.spec.ts index 0043659c6..b36a0db1b 100644 --- a/packages/mysql/tests/mysql.spec.ts +++ b/packages/mysql/tests/mysql.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; import { createPool } from 'mariadb'; -import { MySQLConnectionPool, MySQLDatabaseAdapter } from '../src/mysql-adapter'; +import { MySQLConnectionPool, MySQLDatabaseAdapter } from '../src/mysql-adapter.js'; import { Database } from '@deepkit/orm'; import { AutoIncrement, cast, entity, PrimaryKey } from '@deepkit/type'; diff --git a/packages/mysql/tests/transaction.spec.ts b/packages/mysql/tests/transaction.spec.ts index 2fa6b61c5..bf74bb870 100644 --- a/packages/mysql/tests/transaction.spec.ts +++ b/packages/mysql/tests/transaction.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; import { AutoIncrement, entity, PrimaryKey } from '@deepkit/type'; -import { databaseFactory } from './factory'; +import { databaseFactory } from './factory.js'; test('transaction', async () => { @entity.collection('users') diff --git a/packages/orm-browser-api/index.ts b/packages/orm-browser-api/index.ts index 9f5b3a8de..0dd02b259 100644 --- a/packages/orm-browser-api/index.ts +++ b/packages/orm-browser-api/index.ts @@ -8,5 +8,5 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/api'; -export * from './src/faker'; +export * from './src/api.js'; +export * from './src/faker.js'; diff --git a/packages/orm-browser-api/src/api.ts b/packages/orm-browser-api/src/api.ts index 36a5d3b1e..0fbef1d06 100644 --- a/packages/orm-browser-api/src/api.ts +++ b/packages/orm-browser-api/src/api.ts @@ -10,7 +10,7 @@ import { ControllerSymbol } from '@deepkit/rpc'; import { ChangesInterface, deserializeType, entity, ReflectionClass } from '@deepkit/type'; -import { FakerTypes } from './faker'; +import { FakerTypes } from './faker.js'; export type DatabaseCommit = { [dbName: string]: { diff --git a/packages/orm-browser-example/bookstore/user-credentials.ts b/packages/orm-browser-example/bookstore/user-credentials.ts index f5ec1a30f..354a41007 100644 --- a/packages/orm-browser-example/bookstore/user-credentials.ts +++ b/packages/orm-browser-example/bookstore/user-credentials.ts @@ -1,5 +1,5 @@ import { entity, PrimaryKey, Reference } from '@deepkit/type'; -import { User } from './user'; +import { User } from './user.js'; @entity.name('user-credentials') diff --git a/packages/orm-browser-example/bookstore/user.ts b/packages/orm-browser-example/bookstore/user.ts index 207e5d5ee..fa160a3ba 100644 --- a/packages/orm-browser-example/bookstore/user.ts +++ b/packages/orm-browser-example/bookstore/user.ts @@ -1,6 +1,6 @@ import { AutoIncrement, BackReference, entity, MinLength, PrimaryKey, Reference } from '@deepkit/type'; -import { UserCredentials } from './user-credentials'; -import { Group } from './group'; +import { UserCredentials } from './user-credentials.js'; +import { Group } from './group.js'; @entity.name('user') export class User { diff --git a/packages/orm-browser-example/database.ts b/packages/orm-browser-example/database.ts index 74ba6a0e9..4205ef094 100644 --- a/packages/orm-browser-example/database.ts +++ b/packages/orm-browser-example/database.ts @@ -2,9 +2,9 @@ import 'reflect-metadata'; import { AutoIncrement, Entity, entity, PrimaryKey, uuid } from '@deepkit/type'; import { Database } from '@deepkit/orm'; import { SQLiteDatabaseAdapter } from '@deepkit/sqlite'; -import { User, UserGroup } from './bookstore/user'; -import { Group } from './bookstore/group'; -import { UserCredentials } from './bookstore/user-credentials'; +import { User, UserGroup } from './bookstore/user.js'; +import { Group } from './bookstore/group.js'; +import { UserCredentials } from './bookstore/user-credentials.js'; import { Reference } from '@deepkit/type'; import { UUID } from '@deepkit/type'; //import { MongoDatabaseAdapter } from '@deepkit/mongo'; diff --git a/packages/orm-browser-gui/e2e/src/app.e2e-spec.ts b/packages/orm-browser-gui/e2e/src/app.e2e-spec.ts index 927d4436f..c7b377dbf 100644 --- a/packages/orm-browser-gui/e2e/src/app.e2e-spec.ts +++ b/packages/orm-browser-gui/e2e/src/app.e2e-spec.ts @@ -1,5 +1,5 @@ import { browser, logging } from 'protractor'; -import { AppPage } from './app.po'; +import { AppPage } from './app.po.js'; describe('workspace-project App', () => { let page: AppPage; diff --git a/packages/orm-browser-gui/index.ts b/packages/orm-browser-gui/index.ts index 44ca09b21..e720c11f1 100644 --- a/packages/orm-browser-gui/index.ts +++ b/packages/orm-browser-gui/index.ts @@ -1 +1 @@ -export * from './src/app/orm-browser.module'; +export * from './src/app/orm-browser.module.js'; diff --git a/packages/orm-browser-gui/src/app/app.component.ts b/packages/orm-browser-gui/src/app/app.component.ts index a1f5e7851..aca4bfdcf 100644 --- a/packages/orm-browser-gui/src/app/app.component.ts +++ b/packages/orm-browser-gui/src/app/app.component.ts @@ -10,8 +10,8 @@ import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DuiApp } from '@deepkit/desktop-ui'; -import { BrowserState } from './browser-state'; -import { ControllerClient } from './client'; +import { BrowserState } from './browser-state.js'; +import { ControllerClient } from './client.js'; @Component({ selector: 'app-root', diff --git a/packages/orm-browser-gui/src/app/app.module.ts b/packages/orm-browser-gui/src/app/app.module.ts index 109e77454..bfe006946 100644 --- a/packages/orm-browser-gui/src/app/app.module.ts +++ b/packages/orm-browser-gui/src/app/app.module.ts @@ -1,8 +1,8 @@ import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; -import { AppComponent } from './app.component'; -import { OrmBrowserModule } from './orm-browser.module'; +import { AppComponent } from './app.component.js'; +import { OrmBrowserModule } from './orm-browser.module.js'; import { RouterModule } from '@angular/router'; import { DuiAppModule, DuiButtonModule, DuiIconModule, DuiListModule, DuiWindowModule } from '@deepkit/desktop-ui'; diff --git a/packages/orm-browser-gui/src/app/browser-state.ts b/packages/orm-browser-gui/src/app/browser-state.ts index 2b5a3fcd7..ed16db498 100644 --- a/packages/orm-browser-gui/src/app/browser-state.ts +++ b/packages/orm-browser-gui/src/app/browser-state.ts @@ -12,7 +12,7 @@ import { TypePropertySignature, ValidatorError } from '@deepkit/type'; -import { ControllerClient } from './client'; +import { ControllerClient } from './client.js'; import { Progress } from '@deepkit/rpc'; import { getInstanceStateFromItem } from '@deepkit/orm'; diff --git a/packages/orm-browser-gui/src/app/components/browser-cell.component.ts b/packages/orm-browser-gui/src/app/components/browser-cell.component.ts index 14385f3ba..e90f55375 100644 --- a/packages/orm-browser-gui/src/app/components/browser-cell.component.ts +++ b/packages/orm-browser-gui/src/app/components/browser-cell.component.ts @@ -1,8 +1,8 @@ import { Component, Input } from '@angular/core'; import { Changes, isAutoIncrementType, TypeProperty, TypePropertySignature } from '@deepkit/type'; -import { BrowserEntityState, BrowserState, ValidationErrors } from '../browser-state'; +import { BrowserEntityState, BrowserState, ValidationErrors } from '../browser-state.js'; import { getInstanceStateFromItem } from '@deepkit/orm'; -import { isRequired } from '../utils'; +import { isRequired } from '../utils.js'; @Component({ selector: 'orm-browser-cell', diff --git a/packages/orm-browser-gui/src/app/components/cell/array-cell.component.ts b/packages/orm-browser-gui/src/app/components/cell/array-cell.component.ts index deaa66b11..e01d4ac27 100644 --- a/packages/orm-browser-gui/src/app/components/cell/array-cell.component.ts +++ b/packages/orm-browser-gui/src/app/components/cell/array-cell.component.ts @@ -1,7 +1,7 @@ import { Component, ComponentFactoryResolver, ComponentRef, Input, OnChanges, OnInit, ViewContainerRef } from '@angular/core'; import { isArray } from '@deepkit/core'; import { TypeArray } from '@deepkit/type'; -import { inputRegistry } from '../../registry'; +import { inputRegistry } from '../../registry.js'; @Component({ template: ``, diff --git a/packages/orm-browser-gui/src/app/components/cell/binary-cell.component.ts b/packages/orm-browser-gui/src/app/components/cell/binary-cell.component.ts index 8d4f8340d..e4847191e 100644 --- a/packages/orm-browser-gui/src/app/components/cell/binary-cell.component.ts +++ b/packages/orm-browser-gui/src/app/components/cell/binary-cell.component.ts @@ -2,7 +2,7 @@ import { ChangeDetectorRef, Component, Input, OnChanges, OnInit } from '@angular import { fromBuffer } from 'file-type/browser'; import * as FileSaver from 'file-saver'; import { Type } from '@deepkit/type'; -import { TypeDecoration } from './utils'; +import { TypeDecoration } from './utils.js'; @Component({ selector: 'orm-browser-binary-cell', diff --git a/packages/orm-browser-gui/src/app/components/cell/cell.component.ts b/packages/orm-browser-gui/src/app/components/cell/cell.component.ts index 7c4745a07..22f05d7e5 100644 --- a/packages/orm-browser-gui/src/app/components/cell/cell.component.ts +++ b/packages/orm-browser-gui/src/app/components/cell/cell.component.ts @@ -1,7 +1,7 @@ import { Component, ComponentFactoryResolver, ComponentRef, Input, OnChanges, OnDestroy, ViewContainerRef } from '@angular/core'; import { Type } from '@deepkit/type'; -import { cellRegistry } from '../../registry'; -import { TypeDecoration } from './utils'; +import { cellRegistry } from '../../registry.js'; +import { TypeDecoration } from './utils.js'; @Component({ selector: 'orm-browser-property-view', diff --git a/packages/orm-browser-gui/src/app/components/cell/class-cell.component.ts b/packages/orm-browser-gui/src/app/components/cell/class-cell.component.ts index 0d04938b7..af3abe764 100644 --- a/packages/orm-browser-gui/src/app/components/cell/class-cell.component.ts +++ b/packages/orm-browser-gui/src/app/components/cell/class-cell.component.ts @@ -1,7 +1,7 @@ import { ChangeDetectorRef, Component, Input, OnChanges, OnInit } from '@angular/core'; import { isReferenceType, ReflectionClass, TypeClass, TypeObjectLiteral } from '@deepkit/type'; -import { objToString } from './utils'; -import { BrowserState } from '../../browser-state'; +import { objToString } from './utils.js'; +import { BrowserState } from '../../browser-state.js'; @Component({ template: `{{label}}` diff --git a/packages/orm-browser-gui/src/app/components/cell/json-cell.component.ts b/packages/orm-browser-gui/src/app/components/cell/json-cell.component.ts index 8bce91c28..aabaf75eb 100644 --- a/packages/orm-browser-gui/src/app/components/cell/json-cell.component.ts +++ b/packages/orm-browser-gui/src/app/components/cell/json-cell.component.ts @@ -1,7 +1,7 @@ import { ChangeDetectorRef, Component, Input, OnChanges, OnInit } from '@angular/core'; import { isArray, isObject } from '@deepkit/core'; -import { objToString } from './utils'; -import { BrowserState } from '../../browser-state'; +import { objToString } from './utils.js'; +import { BrowserState } from '../../browser-state.js'; @Component({ selector: 'orm-browser-json-cell', diff --git a/packages/orm-browser-gui/src/app/components/database-graph.component.ts b/packages/orm-browser-gui/src/app/components/database-graph.component.ts index acd990e26..06c21adb5 100644 --- a/packages/orm-browser-gui/src/app/components/database-graph.component.ts +++ b/packages/orm-browser-gui/src/app/components/database-graph.component.ts @@ -12,7 +12,7 @@ import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input, OnChang import { DatabaseInfo } from '@deepkit/orm-browser-api'; import { graphlib, layout } from 'dagre'; import { default as createPanZoom, PanZoom } from 'panzoom'; -import { BrowserText } from './browser-text'; +import { BrowserText } from './browser-text.js'; import { isAutoIncrementType, isBackReferenceType, diff --git a/packages/orm-browser-gui/src/app/components/database-seed-properties.component.ts b/packages/orm-browser-gui/src/app/components/database-seed-properties.component.ts index 03da87fa2..cc931db3b 100644 --- a/packages/orm-browser-gui/src/app/components/database-seed-properties.component.ts +++ b/packages/orm-browser-gui/src/app/components/database-seed-properties.component.ts @@ -1,8 +1,8 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; import { EntityPropertySeed, FakerTypes } from '@deepkit/orm-browser-api'; -import { autoTypes } from './seed'; +import { autoTypes } from './seed.js'; import { ReflectionClass } from '@deepkit/type'; -import { showTypeString } from '../utils'; +import { showTypeString } from '../utils.js'; @Component({ selector: 'orm-browser-seed-properties', diff --git a/packages/orm-browser-gui/src/app/components/database-seed-property.component.ts b/packages/orm-browser-gui/src/app/components/database-seed-property.component.ts index 09459ba27..979ffb2ed 100644 --- a/packages/orm-browser-gui/src/app/components/database-seed-property.component.ts +++ b/packages/orm-browser-gui/src/app/components/database-seed-property.component.ts @@ -1,5 +1,5 @@ import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; -import { FakerTypeDialogComponent } from './dialog/faker-type-dialog.component'; +import { FakerTypeDialogComponent } from './dialog/faker-type-dialog.component.js'; import { EntityPropertySeed, FakerTypes } from '@deepkit/orm-browser-api'; import { DuiDialog } from '@deepkit/desktop-ui'; import { empty } from '@deepkit/core'; diff --git a/packages/orm-browser-gui/src/app/components/database-seed.component.ts b/packages/orm-browser-gui/src/app/components/database-seed.component.ts index 99aa7e1bb..54b5021ff 100644 --- a/packages/orm-browser-gui/src/app/components/database-seed.component.ts +++ b/packages/orm-browser-gui/src/app/components/database-seed.component.ts @@ -1,10 +1,10 @@ import { ChangeDetectorRef, Component, Input, OnChanges } from '@angular/core'; import { DatabaseInfo, EntityPropertySeed, FakerTypes, SeedDatabase } from '@deepkit/orm-browser-api'; -import { trackByIndex, trackBySchema } from '../utils'; -import { ControllerClient } from '../client'; -import { BrowserState } from '../browser-state'; +import { trackByIndex, trackBySchema } from '../utils.js'; +import { ControllerClient } from '../client.js'; +import { BrowserState } from '../browser-state.js'; import { DuiDialog } from '@deepkit/desktop-ui'; -import { FakerTypeDialogComponent } from './dialog/faker-type-dialog.component'; +import { FakerTypeDialogComponent } from './dialog/faker-type-dialog.component.js'; import { ReflectionClass } from '@deepkit/type'; @Component({ diff --git a/packages/orm-browser-gui/src/app/components/edit/array-input.component.ts b/packages/orm-browser-gui/src/app/components/edit/array-input.component.ts index 0ac6b9bee..c089b3a69 100644 --- a/packages/orm-browser-gui/src/app/components/edit/array-input.component.ts +++ b/packages/orm-browser-gui/src/app/components/edit/array-input.component.ts @@ -1,7 +1,7 @@ import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core'; import { defaultValue, Type, TypeArray } from '@deepkit/type'; import { isArray } from '@deepkit/core'; -import { trackByIndex } from '../../utils'; +import { trackByIndex } from '../../utils.js'; @Component({ template: ` diff --git a/packages/orm-browser-gui/src/app/components/edit/class-input.component.ts b/packages/orm-browser-gui/src/app/components/edit/class-input.component.ts index 409c6c70d..14740c89b 100644 --- a/packages/orm-browser-gui/src/app/components/edit/class-input.component.ts +++ b/packages/orm-browser-gui/src/app/components/edit/class-input.component.ts @@ -13,8 +13,8 @@ import { serialize, Type } from '@deepkit/type'; -import { BrowserState } from '../../browser-state'; -import { getParentProperty } from '../../utils'; +import { BrowserState } from '../../browser-state.js'; +import { getParentProperty } from '../../utils.js'; @Component({ template: ` diff --git a/packages/orm-browser-gui/src/app/components/edit/input.component.ts b/packages/orm-browser-gui/src/app/components/edit/input.component.ts index 8f5381e15..05840a3fb 100644 --- a/packages/orm-browser-gui/src/app/components/edit/input.component.ts +++ b/packages/orm-browser-gui/src/app/components/edit/input.component.ts @@ -2,8 +2,8 @@ import { Component, ComponentFactoryResolver, ComponentRef, EventEmitter, Input, import { TableComponent, unsubscribe } from '@deepkit/desktop-ui'; import { Type } from '@deepkit/type'; import { Subscription } from 'rxjs'; -import { inputRegistry } from '../../registry'; -import { isProperty } from '../../utils'; +import { inputRegistry } from '../../registry.js'; +import { isProperty } from '../../utils.js'; @Component({ selector: 'orm-browser-property-editing', diff --git a/packages/orm-browser-gui/src/app/components/filter.compoment.ts b/packages/orm-browser-gui/src/app/components/filter.compoment.ts index 4aca07350..ae43fa39b 100644 --- a/packages/orm-browser-gui/src/app/components/filter.compoment.ts +++ b/packages/orm-browser-gui/src/app/components/filter.compoment.ts @@ -1,7 +1,7 @@ import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core'; -import { trackByIndex } from '../utils'; +import { trackByIndex } from '../utils.js'; import { arrayRemoveItem } from '@deepkit/core'; -import { FilterItem } from '../browser-state'; +import { FilterItem } from '../browser-state.js'; import { isBackReferenceType, ReflectionClass, ReflectionKind, Type, TypeProperty, TypePropertySignature } from '@deepkit/type'; @Component({ diff --git a/packages/orm-browser-gui/src/app/components/list.component.ts b/packages/orm-browser-gui/src/app/components/list.component.ts index bbe72d265..3bcd6d244 100644 --- a/packages/orm-browser-gui/src/app/components/list.component.ts +++ b/packages/orm-browser-gui/src/app/components/list.component.ts @@ -1,7 +1,7 @@ import { ChangeDetectorRef, Component, OnInit } from '@angular/core'; -import { BrowserState } from '../browser-state'; -import { ControllerClient } from '../client'; -import { trackByDatabase, trackBySchema } from '../utils'; +import { BrowserState } from '../browser-state.js'; +import { ControllerClient } from '../client.js'; +import { trackByDatabase, trackBySchema } from '../utils.js'; import { detectChangesNextFrame } from '@deepkit/desktop-ui'; @Component({ diff --git a/packages/orm-browser-gui/src/app/components/property.component.ts b/packages/orm-browser-gui/src/app/components/property.component.ts index d866ef9dd..8bc87de85 100644 --- a/packages/orm-browser-gui/src/app/components/property.component.ts +++ b/packages/orm-browser-gui/src/app/components/property.component.ts @@ -1,6 +1,6 @@ import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core'; import { defaultValue, isAutoIncrementType, Type } from '@deepkit/type'; -import { isRequired } from '../utils'; +import { isRequired } from '../utils.js'; @Component({ selector: 'orm-browser-property', diff --git a/packages/orm-browser-gui/src/app/orm-browser.module.ts b/packages/orm-browser-gui/src/app/orm-browser.module.ts index b3019db2e..8d911d2fa 100644 --- a/packages/orm-browser-gui/src/app/orm-browser.module.ts +++ b/packages/orm-browser-gui/src/app/orm-browser.module.ts @@ -18,38 +18,38 @@ import { DuiWindowModule } from '@deepkit/desktop-ui'; import { OverlayModule } from '@angular/cdk/overlay'; -import { DatabaseComponent } from './views/database.component'; -import { DatabaseBrowserComponent } from './views/database-browser.component'; -import { DatabaseGraphComponent } from './components/database-graph.component'; -import { InputEditingComponent } from './components/edit/input.component'; -import { StringInputComponent } from './components/edit/string-input.component'; -import { DateInputComponent } from './components/edit/date-input.component'; -import { CellComponent } from './components/cell/cell.component'; -import { StringCellComponent } from './components/cell/string-cell.component'; -import { DateCellComponent } from './components/cell/date-cell.component'; -import { DatabaseBrowserListComponent } from './components/list.component'; -import { ClassCellComponent } from './components/cell/class-cell.component'; -import { ClassInputComponent } from './components/edit/class-input.component'; -import { EnumCellComponent } from './components/cell/enum-cell.component'; -import { EnumInputComponent } from './components/edit/enum-input.component'; -import { DatabaseCommitComponent } from './views/database-commit.component'; -import { FilterComponent, FilterItemComponent } from './components/filter.compoment'; -import { JsonEditDialogComponent } from './components/dialog/json-edit-dialog.component'; -import { ArrayInputComponent } from './components/edit/array-input.component'; -import { ArrayCellComponent } from './components/cell/array-cell.component'; -import { JsonInputComponent } from './components/edit/json-input.component'; -import { JsonCellComponent } from './components/cell/json-cell.component'; -import { BinaryInputComponent } from './components/edit/binary-input.component'; -import { BinaryCellComponent } from './components/cell/binary-cell.component'; -import { BrowserCellComponent } from './components/browser-cell.component'; +import { DatabaseComponent } from './views/database.component.js'; +import { DatabaseBrowserComponent } from './views/database-browser.component.js'; +import { DatabaseGraphComponent } from './components/database-graph.component.js'; +import { InputEditingComponent } from './components/edit/input.component.js'; +import { StringInputComponent } from './components/edit/string-input.component.js'; +import { DateInputComponent } from './components/edit/date-input.component.js'; +import { CellComponent } from './components/cell/cell.component.js'; +import { StringCellComponent } from './components/cell/string-cell.component.js'; +import { DateCellComponent } from './components/cell/date-cell.component.js'; +import { DatabaseBrowserListComponent } from './components/list.component.js'; +import { ClassCellComponent } from './components/cell/class-cell.component.js'; +import { ClassInputComponent } from './components/edit/class-input.component.js'; +import { EnumCellComponent } from './components/cell/enum-cell.component.js'; +import { EnumInputComponent } from './components/edit/enum-input.component.js'; +import { DatabaseCommitComponent } from './views/database-commit.component.js'; +import { FilterComponent, FilterItemComponent } from './components/filter.compoment.js'; +import { JsonEditDialogComponent } from './components/dialog/json-edit-dialog.component.js'; +import { ArrayInputComponent } from './components/edit/array-input.component.js'; +import { ArrayCellComponent } from './components/cell/array-cell.component.js'; +import { JsonInputComponent } from './components/edit/json-input.component.js'; +import { JsonCellComponent } from './components/cell/json-cell.component.js'; +import { BinaryInputComponent } from './components/edit/binary-input.component.js'; +import { BinaryCellComponent } from './components/cell/binary-cell.component.js'; +import { BrowserCellComponent } from './components/browser-cell.component.js'; import { FormsModule } from '@angular/forms'; -import { BrowserState } from './browser-state'; -import { ControllerClient } from './client'; -import { PropertyComponent } from './components/property.component'; -import { DatabaseSeedComponent } from './components/database-seed.component'; -import { FakerTypeDialogComponent } from './components/dialog/faker-type-dialog.component'; -import { DatabaseSeedPropertyComponent } from './components/database-seed-property.component'; -import { DatabaseSeedPropertiesComponent } from './components/database-seed-properties.component'; +import { BrowserState } from './browser-state.js'; +import { ControllerClient } from './client.js'; +import { PropertyComponent } from './components/property.component.js'; +import { DatabaseSeedComponent } from './components/database-seed.component.js'; +import { FakerTypeDialogComponent } from './components/dialog/faker-type-dialog.component.js'; +import { DatabaseSeedPropertyComponent } from './components/database-seed-property.component.js'; +import { DatabaseSeedPropertiesComponent } from './components/database-seed-properties.component.js'; import { RouterModule } from '@angular/router'; import { DeepkitClient } from '@deepkit/rpc'; diff --git a/packages/orm-browser-gui/src/app/registry.ts b/packages/orm-browser-gui/src/app/registry.ts index 4f5f0e31e..5bc26be23 100644 --- a/packages/orm-browser-gui/src/app/registry.ts +++ b/packages/orm-browser-gui/src/app/registry.ts @@ -1,19 +1,19 @@ import { ClassType, getClassName } from '@deepkit/core'; import { isMongoIdType, isSetType, isUUIDType, ReflectionKind, TypeRegistry } from '@deepkit/type'; -import { ClassCellComponent } from './components/cell/class-cell.component'; -import { DateCellComponent } from './components/cell/date-cell.component'; -import { EnumCellComponent } from './components/cell/enum-cell.component'; -import { StringCellComponent } from './components/cell/string-cell.component'; -import { ClassInputComponent } from './components/edit/class-input.component'; -import { DateInputComponent } from './components/edit/date-input.component'; -import { EnumInputComponent } from './components/edit/enum-input.component'; -import { StringInputComponent } from './components/edit/string-input.component'; -import { ArrayInputComponent } from './components/edit/array-input.component'; -import { ArrayCellComponent } from './components/cell/array-cell.component'; -import { JsonInputComponent } from './components/edit/json-input.component'; -import { JsonCellComponent } from './components/cell/json-cell.component'; -import { BinaryInputComponent } from './components/edit/binary-input.component'; -import { BinaryCellComponent } from './components/cell/binary-cell.component'; +import { ClassCellComponent } from './components/cell/class-cell.component.js'; +import { DateCellComponent } from './components/cell/date-cell.component.js'; +import { EnumCellComponent } from './components/cell/enum-cell.component.js'; +import { StringCellComponent } from './components/cell/string-cell.component.js'; +import { ClassInputComponent } from './components/edit/class-input.component.js'; +import { DateInputComponent } from './components/edit/date-input.component.js'; +import { EnumInputComponent } from './components/edit/enum-input.component.js'; +import { StringInputComponent } from './components/edit/string-input.component.js'; +import { ArrayInputComponent } from './components/edit/array-input.component.js'; +import { ArrayCellComponent } from './components/cell/array-cell.component.js'; +import { JsonInputComponent } from './components/edit/json-input.component.js'; +import { JsonCellComponent } from './components/cell/json-cell.component.js'; +import { BinaryInputComponent } from './components/edit/binary-input.component.js'; +import { BinaryCellComponent } from './components/cell/binary-cell.component.js'; export const inputRegistry = new TypeRegistry(); diff --git a/packages/orm-browser-gui/src/app/views/database-browser.component.ts b/packages/orm-browser-gui/src/app/views/database-browser.component.ts index c56b65406..7f031dd5d 100644 --- a/packages/orm-browser-gui/src/app/views/database-browser.component.ts +++ b/packages/orm-browser-gui/src/app/views/database-browser.component.ts @@ -12,12 +12,12 @@ import { validate } from '@deepkit/type'; import { Subscription } from 'rxjs'; -import { BrowserEntityState, BrowserQuery, BrowserState, ValidationErrors, } from '../browser-state'; +import { BrowserEntityState, BrowserQuery, BrowserState, ValidationErrors, } from '../browser-state.js'; import { DatabaseInfo } from '@deepkit/orm-browser-api'; import { getInstanceStateFromItem } from '@deepkit/orm'; -import { ControllerClient } from '../client'; +import { ControllerClient } from '../client.js'; import { arrayRemoveItem, isArray } from '@deepkit/core'; -import { showTypeString, trackByIndex } from '../utils'; +import { showTypeString, trackByIndex } from '../utils.js'; import { ClientProgress } from '@deepkit/rpc'; import { ActivatedRoute } from '@angular/router'; diff --git a/packages/orm-browser-gui/src/app/views/database-commit.component.ts b/packages/orm-browser-gui/src/app/views/database-commit.component.ts index d5ae37ab6..579329361 100644 --- a/packages/orm-browser-gui/src/app/views/database-commit.component.ts +++ b/packages/orm-browser-gui/src/app/views/database-commit.component.ts @@ -2,8 +2,8 @@ import { Component, EventEmitter, Output } from '@angular/core'; import { empty, size } from '@deepkit/core'; import { DialogComponent, DuiDialog } from '@deepkit/desktop-ui'; import { Changes } from '@deepkit/type'; -import { BrowserState } from '../browser-state'; -import { ControllerClient } from '../client'; +import { BrowserState } from '../browser-state.js'; +import { ControllerClient } from '../client.js'; @Component({ template: ` diff --git a/packages/orm-browser-gui/src/app/views/database.component.ts b/packages/orm-browser-gui/src/app/views/database.component.ts index a65d9933b..23017f6da 100644 --- a/packages/orm-browser-gui/src/app/views/database.component.ts +++ b/packages/orm-browser-gui/src/app/views/database.component.ts @@ -2,9 +2,9 @@ import { ChangeDetectorRef, Component, Input, OnDestroy, Optional } from '@angul import { DuiDialog, unsubscribe } from '@deepkit/desktop-ui'; import { DatabaseInfo } from '@deepkit/orm-browser-api'; import { empty } from '@deepkit/core'; -import { BrowserState } from '../browser-state'; -import { ControllerClient } from '../client'; -import { trackByIndex, trackByProperty } from '../utils'; +import { BrowserState } from '../browser-state.js'; +import { ControllerClient } from '../client.js'; +import { trackByIndex, trackByProperty } from '../utils.js'; import { ActivatedRoute } from '@angular/router'; import { Subscription } from 'rxjs'; diff --git a/packages/orm-browser-gui/src/main.ts b/packages/orm-browser-gui/src/main.ts index 9f5050fec..d107dde82 100644 --- a/packages/orm-browser-gui/src/main.ts +++ b/packages/orm-browser-gui/src/main.ts @@ -2,8 +2,8 @@ import 'reflect-metadata'; import { enableProdMode } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; -import { AppModule } from './app/app.module'; -import { environment } from './environments/environment'; +import { AppModule } from './app/app.module.js'; +import { environment } from './environments/environment.js'; if (environment.production) { enableProdMode(); diff --git a/packages/orm-browser-gui/src/polyfills.ts b/packages/orm-browser-gui/src/polyfills.ts index 871ef3076..89942317d 100644 --- a/packages/orm-browser-gui/src/polyfills.ts +++ b/packages/orm-browser-gui/src/polyfills.ts @@ -37,7 +37,7 @@ * will put import in the top of bundle, so user need to create a separate file * in this directory (for example: zone-flags.ts), and put the following flags * into that file, and then add the following code before importing zone.js. - * import './zone-flags'; + * import './zone-flags.js'; * * The flags allowed in zone-flags.ts are listed here. * diff --git a/packages/orm-browser/package-lock.json b/packages/orm-browser/package-lock.json index aabe32ad2..923290071 100644 --- a/packages/orm-browser/package-lock.json +++ b/packages/orm-browser/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/orm-browser", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.73", "license": "MIT", "bin": { "deepkit-orm-browser": "dist/cjs/main.js" diff --git a/packages/orm-integration/index.ts b/packages/orm-integration/index.ts index a15f5fd9a..8cc0527a9 100644 --- a/packages/orm-integration/index.ts +++ b/packages/orm-integration/index.ts @@ -1,28 +1,28 @@ -import { bookstoreTests } from './src/bookstore'; +import { bookstoreTests } from './src/bookstore.js'; import { test } from '@jest/globals'; -import { variousTests } from './src/various'; -import { companyTests } from './src/company'; -import { usersTests } from './src/users'; -import { activeRecordTests } from './src/active-record'; -import { softDeleteTests } from './src/soft-delete'; -import { aggregateTest } from './src/aggregate'; -import { DatabaseFactory } from './src/test'; +import { variousTests } from './src/various.js'; +import { companyTests } from './src/company.js'; +import { usersTests } from './src/users.js'; +import { activeRecordTests } from './src/active-record.js'; +import { softDeleteTests } from './src/soft-delete.js'; +import { aggregateTest } from './src/aggregate.js'; +import { DatabaseFactory } from './src/test.js'; -export * from './src/bookstore'; -export * from './src/active-record'; -export * from './src/soft-delete'; -export * from './src/aggregate'; -export * from './src/users'; +export * from './src/bookstore.js'; +export * from './src/active-record.js'; +export * from './src/soft-delete.js'; +export * from './src/aggregate.js'; +export * from './src/users.js'; -export * from './src/various'; -export * from './src/test'; -export * from './src/active-record/book-tag'; -export * from './src/active-record/book'; -export * from './src/active-record/tag'; -export * from './src/bookstore/group'; -export * from './src/bookstore/user'; -export * from './src/bookstore/user-credentials'; -export * from './src/company'; +export * from './src/various.js'; +export * from './src/test.js'; +export * from './src/active-record/book-tag.js'; +export * from './src/active-record/book.js'; +export * from './src/active-record/tag.js'; +export * from './src/bookstore/group.js'; +export * from './src/bookstore/user.js'; +export * from './src/bookstore/user-credentials.js'; +export * from './src/company.js'; export function runIntegrationTests(databaseFactory: DatabaseFactory) { for (const i in bookstoreTests) { diff --git a/packages/orm-integration/src/active-record.ts b/packages/orm-integration/src/active-record.ts index 6d319a8b0..96d1da607 100644 --- a/packages/orm-integration/src/active-record.ts +++ b/packages/orm-integration/src/active-record.ts @@ -1,10 +1,10 @@ import { expect } from '@jest/globals'; -import { User, UserGroup } from './bookstore/user'; -import { Book } from './active-record/book'; -import { Tag } from './active-record/tag'; -import { BookTag } from './active-record/book-tag'; -import { Group } from './bookstore/group'; -import { DatabaseFactory } from './test'; +import { User, UserGroup } from './bookstore/user.js'; +import { Book } from './active-record/book.js'; +import { Tag } from './active-record/tag.js'; +import { BookTag } from './active-record/book-tag.js'; +import { Group } from './bookstore/group.js'; +import { DatabaseFactory } from './test.js'; export const activeRecordTests = { async basics(databaseFactory: DatabaseFactory) { diff --git a/packages/orm-integration/src/active-record/book-tag.ts b/packages/orm-integration/src/active-record/book-tag.ts index 695e98dff..4528b28b6 100644 --- a/packages/orm-integration/src/active-record/book-tag.ts +++ b/packages/orm-integration/src/active-record/book-tag.ts @@ -1,7 +1,7 @@ import { AutoIncrement, entity, PrimaryKey, Reference } from '@deepkit/type'; import { ActiveRecord } from '@deepkit/orm'; -import { Book } from './book'; -import { Tag } from './tag'; +import { Book } from './book.js'; +import { Tag } from './tag.js'; @entity.name('active-record-book-tag').index(['book', 'tag']) export class BookTag extends ActiveRecord { diff --git a/packages/orm-integration/src/active-record/book.ts b/packages/orm-integration/src/active-record/book.ts index 13c88518e..33478ee06 100644 --- a/packages/orm-integration/src/active-record/book.ts +++ b/packages/orm-integration/src/active-record/book.ts @@ -1,8 +1,8 @@ import { ActiveRecord } from '@deepkit/orm'; import { AutoIncrement, BackReference, entity, PrimaryKey, Reference } from '@deepkit/type'; -import { User } from '../bookstore/user'; -import { BookTag } from './book-tag'; -import { Tag } from './tag'; +import { User } from '../bookstore/user.js'; +import { BookTag } from './book-tag.js'; +import { Tag } from './tag.js'; @entity.name('active-record-book') export class Book extends ActiveRecord { diff --git a/packages/orm-integration/src/aggregate.ts b/packages/orm-integration/src/aggregate.ts index 1f3d9e7e1..51dbb9173 100644 --- a/packages/orm-integration/src/aggregate.ts +++ b/packages/orm-integration/src/aggregate.ts @@ -1,4 +1,4 @@ -import { DatabaseFactory } from './test'; +import { DatabaseFactory } from './test.js'; import { cast, PrimaryKey } from '@deepkit/type'; import { expect } from '@jest/globals'; diff --git a/packages/orm-integration/src/bookstore.ts b/packages/orm-integration/src/bookstore.ts index e42ed1b00..b97fd5886 100644 --- a/packages/orm-integration/src/bookstore.ts +++ b/packages/orm-integration/src/bookstore.ts @@ -1,11 +1,11 @@ import { expect } from '@jest/globals'; import { assertType, AutoIncrement, cast, entity, PrimaryKey, Reference, ReflectionClass, ReflectionKind, UUID, uuid } from '@deepkit/type'; -import { User, UserGroup } from './bookstore/user'; -import { UserCredentials } from './bookstore/user-credentials'; +import { User, UserGroup } from './bookstore/user.js'; +import { UserCredentials } from './bookstore/user-credentials.js'; import { atomicChange, getInstanceStateFromItem } from '@deepkit/orm'; import { isArray } from '@deepkit/core'; -import { Group } from './bookstore/group'; -import { DatabaseFactory } from './test'; +import { Group } from './bookstore/group.js'; +import { DatabaseFactory } from './test.js'; import { DatabaseSession } from '@deepkit/orm'; import { Query } from '@deepkit/orm'; diff --git a/packages/orm-integration/src/bookstore/user-credentials.ts b/packages/orm-integration/src/bookstore/user-credentials.ts index 48e66ff50..d24dbbc30 100644 --- a/packages/orm-integration/src/bookstore/user-credentials.ts +++ b/packages/orm-integration/src/bookstore/user-credentials.ts @@ -1,5 +1,5 @@ import { entity, PrimaryKey, Reference } from '@deepkit/type'; -import { User } from './user'; +import { User } from './user.js'; @entity.name('user-credentials') export class UserCredentials { diff --git a/packages/orm-integration/src/bookstore/user.ts b/packages/orm-integration/src/bookstore/user.ts index 61da0c4d7..81c644eeb 100644 --- a/packages/orm-integration/src/bookstore/user.ts +++ b/packages/orm-integration/src/bookstore/user.ts @@ -1,6 +1,6 @@ import { AutoIncrement, BackReference, entity, PrimaryKey, Reference } from '@deepkit/type'; -import { UserCredentials } from './user-credentials'; -import { Group } from './group'; +import { UserCredentials } from './user-credentials.js'; +import { Group } from './group.js'; @entity.name('user') export class User { diff --git a/packages/orm-integration/src/company.ts b/packages/orm-integration/src/company.ts index 0442f8713..d217165a5 100644 --- a/packages/orm-integration/src/company.ts +++ b/packages/orm-integration/src/company.ts @@ -1,6 +1,6 @@ import { AutoIncrement, cast, entity, PrimaryKey, Reference, t } from '@deepkit/type'; import { expect } from '@jest/globals'; -import { DatabaseFactory } from './test'; +import { DatabaseFactory } from './test.js'; @entity.collection('persons') abstract class Person { diff --git a/packages/orm-integration/src/soft-delete.ts b/packages/orm-integration/src/soft-delete.ts index d18f93da8..8bf85846c 100644 --- a/packages/orm-integration/src/soft-delete.ts +++ b/packages/orm-integration/src/soft-delete.ts @@ -1,6 +1,6 @@ import { SoftDelete, SoftDeleteQuery, SoftDeleteSession } from '@deepkit/orm'; import { AutoIncrement, cast, entity, PrimaryKey } from '@deepkit/type'; -import { DatabaseFactory } from './test'; +import { DatabaseFactory } from './test.js'; import { expect } from '@jest/globals'; export const softDeleteTests = { diff --git a/packages/orm-integration/src/users.ts b/packages/orm-integration/src/users.ts index 0d00cd209..06ac429c5 100644 --- a/packages/orm-integration/src/users.ts +++ b/packages/orm-integration/src/users.ts @@ -1,4 +1,4 @@ -import { DatabaseFactory } from './test'; +import { DatabaseFactory } from './test.js'; import { AutoIncrement, BackReference, entity, PrimaryKey, Reference } from '@deepkit/type'; import { expect } from '@jest/globals'; import { getObjectKeysSize } from '@deepkit/core'; diff --git a/packages/orm-integration/src/various.ts b/packages/orm-integration/src/various.ts index b2b2f887c..b6d19365d 100644 --- a/packages/orm-integration/src/various.ts +++ b/packages/orm-integration/src/various.ts @@ -1,7 +1,7 @@ import { expect } from '@jest/globals'; import { AutoIncrement, cast, entity, isReferenceInstance, PrimaryKey, Reference, Unique } from '@deepkit/type'; import { identifier, sql, SQLDatabaseAdapter } from '@deepkit/sql'; -import { DatabaseFactory } from './test'; +import { DatabaseFactory } from './test.js'; import { isDatabaseOf, UniqueConstraintFailure } from '@deepkit/orm'; import { randomBytes } from 'crypto'; diff --git a/packages/orm/browser.ts b/packages/orm/browser.ts index da4303568..65ab333d9 100644 --- a/packages/orm/browser.ts +++ b/packages/orm/browser.ts @@ -8,19 +8,19 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/database'; -export * from './src/database-adapter'; -export * from './src/database-session'; -export * from './src/identity-map'; -export * from './src/formatter'; -export * from './src/query'; -export * from './src/query-filter'; -export * from './src/utils'; -export * from './src/memory-db'; -export * from './src/type'; -export * from './src/logger'; -export * from './src/event'; -export * from './src/reference'; -export * from './src/plugin/soft-delete'; +export * from './src/database.js'; +export * from './src/database-adapter.js'; +export * from './src/database-session.js'; +export * from './src/identity-map.js'; +export * from './src/formatter.js'; +export * from './src/query.js'; +export * from './src/query-filter.js'; +export * from './src/utils.js'; +export * from './src/memory-db.js'; +export * from './src/type.js'; +export * from './src/logger.js'; +export * from './src/event.js'; +export * from './src/reference.js'; +export * from './src/plugin/soft-delete.js'; export { atomicChange } from '@deepkit/type'; diff --git a/packages/orm/index.ts b/packages/orm/index.ts index 5521c103c..42955622d 100644 --- a/packages/orm/index.ts +++ b/packages/orm/index.ts @@ -8,20 +8,20 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/database'; -export * from './src/database-adapter'; -export * from './src/database-session'; -export * from './src/database-registry'; -export * from './src/identity-map'; -export * from './src/formatter'; -export * from './src/query'; -export * from './src/query-filter'; -export * from './src/utils'; -export * from './src/memory-db'; -export * from './src/type'; -export * from './src/logger'; -export * from './src/event'; -export * from './src/reference'; -export * from './src/plugin/soft-delete'; +export * from './src/database.js'; +export * from './src/database-adapter.js'; +export * from './src/database-session.js'; +export * from './src/database-registry.js'; +export * from './src/identity-map.js'; +export * from './src/formatter.js'; +export * from './src/query.js'; +export * from './src/query-filter.js'; +export * from './src/utils.js'; +export * from './src/memory-db.js'; +export * from './src/type.js'; +export * from './src/logger.js'; +export * from './src/event.js'; +export * from './src/reference.js'; +export * from './src/plugin/soft-delete.js'; export { atomicChange } from '@deepkit/type'; diff --git a/packages/orm/package-lock.json b/packages/orm/package-lock.json index fb4faf15e..2cf341b12 100644 --- a/packages/orm/package-lock.json +++ b/packages/orm/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/orm", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "dependencies": { "sift": "^7.0.1" diff --git a/packages/orm/src/database-adapter.ts b/packages/orm/src/database-adapter.ts index f13c924a0..e369a005a 100644 --- a/packages/orm/src/database-adapter.ts +++ b/packages/orm/src/database-adapter.ts @@ -8,11 +8,11 @@ * You should have received a copy of the MIT License along with this program. */ -import { OrmEntity } from './type'; +import { OrmEntity } from './type.js'; import { AbstractClassType, arrayRemoveItem, ClassType, getClassName, getClassTypeFromInstance, isClass, stringifyValueWithType } from '@deepkit/core'; import { is, isSameType, ItemChanges, PrimaryKeyFields, ReceiveType, ReflectionClass, ReflectionKind, stringifyType, Type } from '@deepkit/type'; -import { Query } from './query'; -import { DatabaseSession, DatabaseTransaction } from './database-session'; +import { Query } from './query.js'; +import { DatabaseSession, DatabaseTransaction } from './database-session.js'; export abstract class DatabaseAdapterQueryFactory { abstract createQuery(type?: ReceiveType | ClassType | AbstractClassType | ReflectionClass): Query; diff --git a/packages/orm/src/database-registry.ts b/packages/orm/src/database-registry.ts index 3dcfc8ee3..ec9bf7f6a 100644 --- a/packages/orm/src/database-registry.ts +++ b/packages/orm/src/database-registry.ts @@ -10,7 +10,7 @@ import { ClassType, getClassName, getClassTypeFromInstance } from '@deepkit/core'; import { InjectorContext, InjectorModule } from '@deepkit/injector'; -import { Database } from './database'; +import { Database } from './database.js'; import { isAbsolute, join } from 'path'; import { ReflectionClass } from '@deepkit/type'; diff --git a/packages/orm/src/database-session.ts b/packages/orm/src/database-session.ts index bde76b770..7dee5dec3 100644 --- a/packages/orm/src/database-session.ts +++ b/packages/orm/src/database-session.ts @@ -8,9 +8,9 @@ * You should have received a copy of the MIT License along with this program. */ -import type { DatabaseAdapter, DatabasePersistence, DatabasePersistenceChangeSet } from './database-adapter'; -import { DatabaseEntityRegistry } from './database-adapter'; -import { DatabaseValidationError, OrmEntity } from './type'; +import type { DatabaseAdapter, DatabasePersistence, DatabasePersistenceChangeSet } from './database-adapter.js'; +import { DatabaseEntityRegistry } from './database-adapter.js'; +import { DatabaseValidationError, OrmEntity } from './type.js'; import { AbstractClassType, ClassType, CustomError } from '@deepkit/core'; import { getPrimaryKeyExtractor, @@ -24,12 +24,12 @@ import { validate } from '@deepkit/type'; import { GroupArraySort } from '@deepkit/topsort'; -import { getClassState, getInstanceState, getNormalizedPrimaryKey, IdentityMap } from './identity-map'; -import { getClassSchemaInstancePairs } from './utils'; -import { HydratorFn } from './formatter'; -import { getReference } from './reference'; -import { UnitOfWorkCommitEvent, UnitOfWorkEvent, UnitOfWorkUpdateEvent } from './event'; -import { DatabaseLogger } from './logger'; +import { getClassState, getInstanceState, getNormalizedPrimaryKey, IdentityMap } from './identity-map.js'; +import { getClassSchemaInstancePairs } from './utils.js'; +import { HydratorFn } from './formatter.js'; +import { getReference } from './reference.js'; +import { UnitOfWorkCommitEvent, UnitOfWorkEvent, UnitOfWorkUpdateEvent } from './event.js'; +import { DatabaseLogger } from './logger.js'; import { Stopwatch } from '@deepkit/stopwatch'; import { EventDispatcher, EventDispatcherInterface, EventToken } from '@deepkit/event'; diff --git a/packages/orm/src/database.ts b/packages/orm/src/database.ts index 2ffd58ae7..9853d8d7a 100644 --- a/packages/orm/src/database.ts +++ b/packages/orm/src/database.ts @@ -21,15 +21,15 @@ import { resolveReceiveType, Type } from '@deepkit/type'; -import { DatabaseAdapter, DatabaseEntityRegistry } from './database-adapter'; -import { DatabaseSession } from './database-session'; -import { DatabaseLogger } from './logger'; -import { Query } from './query'; -import { getReference } from './reference'; -import { OrmEntity } from './type'; -import { VirtualForeignKeyConstraint } from './virtual-foreign-key-constraint'; +import { DatabaseAdapter, DatabaseEntityRegistry } from './database-adapter.js'; +import { DatabaseSession } from './database-session.js'; +import { DatabaseLogger } from './logger.js'; +import { Query } from './query.js'; +import { getReference } from './reference.js'; +import { OrmEntity } from './type.js'; +import { VirtualForeignKeyConstraint } from './virtual-foreign-key-constraint.js'; import { Stopwatch } from '@deepkit/stopwatch'; -import { getNormalizedPrimaryKey } from './identity-map'; +import { getNormalizedPrimaryKey } from './identity-map.js'; import { EventDispatcher, EventDispatcherUnsubscribe, EventListenerCallback, EventToken } from '@deepkit/event'; /** diff --git a/packages/orm/src/event.ts b/packages/orm/src/event.ts index 3f3fd9b63..2f729b9e8 100644 --- a/packages/orm/src/event.ts +++ b/packages/orm/src/event.ts @@ -12,10 +12,10 @@ import { ClassType } from '@deepkit/core'; import { BaseEvent } from '@deepkit/event'; import type { Changes } from '@deepkit/type'; import { PrimaryKeyType, ReflectionClass } from '@deepkit/type'; -import type { DatabasePersistenceChangeSet } from './database-adapter'; -import type { DatabaseSession } from './database-session'; -import type { Query } from './query'; -import type { DeleteResult, PatchResult } from './type'; +import type { DatabasePersistenceChangeSet } from './database-adapter.js'; +import type { DatabaseSession } from './database-session.js'; +import type { Query } from './query.js'; +import type { DeleteResult, PatchResult } from './type.js'; export class DatabaseEvent extends BaseEvent { stopped = false; diff --git a/packages/orm/src/formatter.ts b/packages/orm/src/formatter.ts index c26963b50..2aa4c2cc7 100644 --- a/packages/orm/src/formatter.ts +++ b/packages/orm/src/formatter.ts @@ -27,10 +27,10 @@ import { UnpopulatedCheck, unpopulatedSymbol } from '@deepkit/type'; -import { DatabaseQueryModel } from './query'; +import { DatabaseQueryModel } from './query.js'; import { capitalize, ClassType } from '@deepkit/core'; -import { ClassState, getClassState, getInstanceState, IdentityMap, PKHash } from './identity-map'; -import { getReference } from './reference'; +import { ClassState, getClassState, getInstanceState, IdentityMap, PKHash } from './identity-map.js'; +import { getReference } from './reference.js'; export type HydratorFn = (item: any) => Promise; diff --git a/packages/orm/src/identity-map.ts b/packages/orm/src/identity-map.ts index 9bde9aa95..1ac567cd5 100644 --- a/packages/orm/src/identity-map.ts +++ b/packages/orm/src/identity-map.ts @@ -18,7 +18,7 @@ import { JSONPartial, ReflectionClass } from '@deepkit/type'; -import { OrmEntity } from './type'; +import { OrmEntity } from './type.js'; import { getClassTypeFromInstance, isObject, toFastProperties } from '@deepkit/core'; export function getNormalizedPrimaryKey(schema: ReflectionClass, primaryKey: any) { diff --git a/packages/orm/src/memory-db.ts b/packages/orm/src/memory-db.ts index da92bdae3..8de785327 100644 --- a/packages/orm/src/memory-db.ts +++ b/packages/orm/src/memory-db.ts @@ -8,15 +8,15 @@ * You should have received a copy of the MIT License along with this program. */ -import { DatabaseSession, DatabaseTransaction } from './database-session'; -import { DatabaseQueryModel, GenericQueryResolver, Query } from './query'; +import { DatabaseSession, DatabaseTransaction } from './database-session.js'; +import { DatabaseQueryModel, GenericQueryResolver, Query } from './query.js'; import { Changes, getSerializeFunction, ReceiveType, ReflectionClass, resolvePath, serialize, Serializer } from '@deepkit/type'; import { AbstractClassType, deletePathValue, getPathValue, setPathValue } from '@deepkit/core'; -import { DatabaseAdapter, DatabaseAdapterQueryFactory, DatabaseEntityRegistry, DatabasePersistence, DatabasePersistenceChangeSet } from './database-adapter'; -import { DeleteResult, OrmEntity, PatchResult } from './type'; -import { findQueryList } from './utils'; -import { convertQueryFilter } from './query-filter'; -import { Formatter } from './formatter'; +import { DatabaseAdapter, DatabaseAdapterQueryFactory, DatabaseEntityRegistry, DatabasePersistence, DatabasePersistenceChangeSet } from './database-adapter.js'; +import { DeleteResult, OrmEntity, PatchResult } from './type.js'; +import { findQueryList } from './utils.js'; +import { convertQueryFilter } from './query-filter.js'; +import { Formatter } from './formatter.js'; type SimpleStore = { items: Map, autoIncrement: number }; diff --git a/packages/orm/src/plugin/soft-delete.ts b/packages/orm/src/plugin/soft-delete.ts index c55207fef..46b2a22f8 100644 --- a/packages/orm/src/plugin/soft-delete.ts +++ b/packages/orm/src/plugin/soft-delete.ts @@ -10,11 +10,11 @@ import { ClassType } from '@deepkit/core'; import { EventDispatcherUnsubscribe } from '@deepkit/event'; -import { DatabaseSession } from '../database-session'; -import { Database } from '../database'; -import { DatabaseAdapter } from '../database-adapter'; -import { Query } from '../query'; -import { OrmEntity } from '../type'; +import { DatabaseSession } from '../database-session.js'; +import { Database } from '../database.js'; +import { DatabaseAdapter } from '../database-adapter.js'; +import { Query } from '../query.js'; +import { OrmEntity } from '../type.js'; import { ReflectionClass } from '@deepkit/type'; interface SoftDeleteEntity extends OrmEntity { diff --git a/packages/orm/src/query-filter.ts b/packages/orm/src/query-filter.ts index 41ce2a2e9..68170ab37 100644 --- a/packages/orm/src/query-filter.ts +++ b/packages/orm/src/query-filter.ts @@ -10,7 +10,7 @@ import { ReflectionClass, ReflectionKind, ReflectionProperty } from '@deepkit/type'; import { ClassType, isArray, isPlainObject } from '@deepkit/core'; -import { FilterQuery } from './query'; +import { FilterQuery } from './query.js'; export type Converter = (convertClass: ReflectionClass, path: string, value: any) => any; export type QueryFieldNames = { [name: string]: boolean }; diff --git a/packages/orm/src/query.ts b/packages/orm/src/query.ts index bd5dc23cf..bec5baf6f 100644 --- a/packages/orm/src/query.ts +++ b/packages/orm/src/query.ts @@ -23,11 +23,11 @@ import { resolveForeignReflectionClass } from '@deepkit/type'; import { Subject } from 'rxjs'; -import { DatabaseAdapter } from './database-adapter'; -import { DatabaseSession } from './database-session'; -import { QueryDatabaseDeleteEvent, QueryDatabaseEvent, QueryDatabasePatchEvent } from './event'; -import { DeleteResult, OrmEntity, PatchResult } from './type'; -import { FieldName, FlattenIfArray, Replace, Resolve } from './utils'; +import { DatabaseAdapter } from './database-adapter.js'; +import { DatabaseSession } from './database-session.js'; +import { QueryDatabaseDeleteEvent, QueryDatabaseEvent, QueryDatabasePatchEvent } from './event.js'; +import { DeleteResult, OrmEntity, PatchResult } from './type.js'; +import { FieldName, FlattenIfArray, Replace, Resolve } from './utils.js'; import { FrameCategory } from '@deepkit/stopwatch'; import { EventToken } from '@deepkit/event'; diff --git a/packages/orm/src/reference.ts b/packages/orm/src/reference.ts index e872871cf..aee8a8757 100644 --- a/packages/orm/src/reference.ts +++ b/packages/orm/src/reference.ts @@ -10,7 +10,7 @@ import { ClassType } from '@deepkit/core'; import { createReference, getPrimaryKeyHashGenerator, ReflectionClass } from '@deepkit/type'; -import { IdentityMap } from './identity-map'; +import { IdentityMap } from './identity-map.js'; export function getReference( reflectionClass: ReflectionClass, diff --git a/packages/orm/src/utils.ts b/packages/orm/src/utils.ts index 1c9ac54ab..6abcc39f2 100644 --- a/packages/orm/src/utils.ts +++ b/packages/orm/src/utils.ts @@ -9,10 +9,10 @@ */ import { Changes, ReflectionClass } from '@deepkit/type'; -import { OrmEntity } from './type'; +import { OrmEntity } from './type.js'; import sift from 'sift'; -import { FilterQuery } from './query'; -import { getInstanceStateFromItem } from './identity-map'; +import { FilterQuery } from './query.js'; +import { getInstanceStateFromItem } from './identity-map.js'; import { getClassTypeFromInstance } from '@deepkit/core'; export type FlattenIfArray = T extends Array ? T[0] : T; diff --git a/packages/orm/src/virtual-foreign-key-constraint.ts b/packages/orm/src/virtual-foreign-key-constraint.ts index 8bad37af2..2004a2983 100644 --- a/packages/orm/src/virtual-foreign-key-constraint.ts +++ b/packages/orm/src/virtual-foreign-key-constraint.ts @@ -8,8 +8,8 @@ * You should have received a copy of the MIT License along with this program. */ -import type { QueryDatabaseDeleteEvent, QueryDatabasePatchEvent, UnitOfWorkEvent, UnitOfWorkUpdateEvent } from './event'; -import type { Database } from './database'; +import type { QueryDatabaseDeleteEvent, QueryDatabasePatchEvent, UnitOfWorkEvent, UnitOfWorkUpdateEvent } from './event.js'; +import type { Database } from './database.js'; import { ReflectionClass, ReflectionProperty } from '@deepkit/type'; type IncomingReference = { classSchema: ReflectionClass, property: ReflectionProperty }; diff --git a/packages/orm/tests/change-detection.spec.ts b/packages/orm/tests/change-detection.spec.ts index ef3f85835..1b9e71fa4 100644 --- a/packages/orm/tests/change-detection.spec.ts +++ b/packages/orm/tests/change-detection.spec.ts @@ -1,11 +1,11 @@ import { expect, test } from '@jest/globals'; import { atomicChange, deserialize, PrimaryKey, Reference, ReflectionClass, serializer } from '@deepkit/type'; -import { Formatter } from '../src/formatter'; -import { DatabaseQueryModel } from '../src/query'; -import { DatabaseSession } from '../src/database-session'; -import { MemoryDatabaseAdapter } from '../src/memory-db'; -import { getClassState, getInstanceStateFromItem } from '../src/identity-map'; -import { buildChangesFromInstance } from '../src/utils'; +import { Formatter } from '../src/formatter.js'; +import { DatabaseQueryModel } from '../src/query.js'; +import { DatabaseSession } from '../src/database-session.js'; +import { MemoryDatabaseAdapter } from '../src/memory-db.js'; +import { getClassState, getInstanceStateFromItem } from '../src/identity-map.js'; +import { buildChangesFromInstance } from '../src/utils.js'; test('change-detection', () => { class Image { diff --git a/packages/orm/tests/database.spec.ts b/packages/orm/tests/database.spec.ts index e72672b4d..025dc43a2 100644 --- a/packages/orm/tests/database.spec.ts +++ b/packages/orm/tests/database.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; -import { MemoryDatabaseAdapter } from '../src/memory-db'; -import { Database } from '../src/database'; +import { MemoryDatabaseAdapter } from '../src/memory-db.js'; +import { Database } from '../src/database.js'; import { deserialize, entity, PrimaryKey, t, validate, ValidatorError } from '@deepkit/type'; test('memory-db', async () => { diff --git a/packages/orm/tests/events.spec.ts b/packages/orm/tests/events.spec.ts index 591c38b59..a5fe3b4bc 100644 --- a/packages/orm/tests/events.spec.ts +++ b/packages/orm/tests/events.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; -import { Database } from '../src/database'; -import { MemoryDatabaseAdapter } from '../src/memory-db'; +import { Database } from '../src/database.js'; +import { MemoryDatabaseAdapter } from '../src/memory-db.js'; import { AutoIncrement, PrimaryKey, ReflectionClass, t } from '@deepkit/type'; import { DatabaseSession } from '../src/database-session.js'; diff --git a/packages/orm/tests/identity-map.spec.ts b/packages/orm/tests/identity-map.spec.ts index e97bf6688..b0b91a895 100644 --- a/packages/orm/tests/identity-map.spec.ts +++ b/packages/orm/tests/identity-map.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; -import { BaseQuery, Formatter, getInstanceStateFromItem, getNormalizedPrimaryKey } from '../index'; -import { getReference } from '../src/reference'; +import { BaseQuery, Formatter, getInstanceStateFromItem, getNormalizedPrimaryKey } from '../index.js'; +import { getReference } from '../src/reference.js'; import { PrimaryKey, Reference, ReflectionClass, serializer } from '@deepkit/type'; import { getClassTypeFromInstance } from '@deepkit/core'; diff --git a/packages/orm/tests/query.spec.ts b/packages/orm/tests/query.spec.ts index f34573a5a..d3de0fd91 100644 --- a/packages/orm/tests/query.spec.ts +++ b/packages/orm/tests/query.spec.ts @@ -1,9 +1,9 @@ import { deserialize, PrimaryKey } from '@deepkit/type'; import { expect, test } from '@jest/globals'; import { assert, IsExact } from 'conditional-type-checks'; -import { Database } from '../src/database'; -import { MemoryDatabaseAdapter, MemoryQuery } from '../src/memory-db'; -import { Query } from '../src/query'; +import { Database } from '../src/database.js'; +import { MemoryDatabaseAdapter, MemoryQuery } from '../src/memory-db.js'; +import { Query } from '../src/query.js'; test('query select', async () => { class s { @@ -65,7 +65,7 @@ test('query filter', async () => { expect(results).toHaveLength(3); expect(results).toMatchObject([{ id: 1 }, { id: 2 }, { id: 3 }]); } - + }); test('query lift', async () => { diff --git a/packages/orm/tests/receive-type.spec.ts b/packages/orm/tests/receive-type.spec.ts index ee990f2f8..7022ae6b8 100644 --- a/packages/orm/tests/receive-type.spec.ts +++ b/packages/orm/tests/receive-type.spec.ts @@ -1,7 +1,7 @@ import { PrimaryKey } from '@deepkit/type'; import { test } from '@jest/globals'; -import { Database } from '../src/database'; -import { MemoryDatabaseAdapter } from '../src/memory-db'; +import { Database } from '../src/database.js'; +import { MemoryDatabaseAdapter } from '../src/memory-db.js'; test('query', () => { interface User { diff --git a/packages/orm/tests/soft-delete.spec.ts b/packages/orm/tests/soft-delete.spec.ts index b87815c75..25842db29 100644 --- a/packages/orm/tests/soft-delete.spec.ts +++ b/packages/orm/tests/soft-delete.spec.ts @@ -1,10 +1,10 @@ import { AutoIncrement, deserialize, entity, PrimaryKey } from '@deepkit/type'; import { expect, test } from '@jest/globals'; -import { getInstanceStateFromItem } from '../src/identity-map'; -import { Database } from '../src/database'; -import { MemoryDatabaseAdapter } from '../src/memory-db'; -import { SoftDelete, SoftDeleteQuery, SoftDeleteSession } from '../src/plugin/soft-delete'; -import { Query } from '../src/query'; +import { getInstanceStateFromItem } from '../src/identity-map.js'; +import { Database } from '../src/database.js'; +import { MemoryDatabaseAdapter } from '../src/memory-db.js'; +import { SoftDelete, SoftDeleteQuery, SoftDeleteSession } from '../src/plugin/soft-delete.js'; +import { Query } from '../src/query.js'; test('soft-delete query', async () => { class s { diff --git a/packages/orm/tests/transaction.spec.ts b/packages/orm/tests/transaction.spec.ts index 8f1aa1cb8..d9ba8ae50 100644 --- a/packages/orm/tests/transaction.spec.ts +++ b/packages/orm/tests/transaction.spec.ts @@ -1,6 +1,6 @@ import { test } from '@jest/globals'; -import { Database } from '../src/database'; -import { MemoryDatabaseAdapter } from '../src/memory-db'; +import { Database } from '../src/database.js'; +import { MemoryDatabaseAdapter } from '../src/memory-db.js'; test('api', async () => { const database = new Database(new MemoryDatabaseAdapter()); diff --git a/packages/postgres/index.ts b/packages/postgres/index.ts index f82d90288..5ab17f9f9 100644 --- a/packages/postgres/index.ts +++ b/packages/postgres/index.ts @@ -8,4 +8,4 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/postgres-adapter'; +export * from './src/postgres-adapter.js'; diff --git a/packages/postgres/src/postgres-adapter.ts b/packages/postgres/src/postgres-adapter.ts index 11a0a489e..f94be6503 100644 --- a/packages/postgres/src/postgres-adapter.ts +++ b/packages/postgres/src/postgres-adapter.ts @@ -22,7 +22,7 @@ import { SQLStatement } from '@deepkit/sql'; import { DatabaseLogger, DatabasePersistenceChangeSet, DatabaseSession, DatabaseTransaction, DeleteResult, OrmEntity, PatchResult, UniqueConstraintFailure } from '@deepkit/orm'; -import { PostgresPlatform } from './postgres-platform'; +import { PostgresPlatform } from './postgres-platform.js'; import type { Pool, PoolClient, PoolConfig } from 'pg'; import pg from 'pg'; import { AbstractClassType, asyncOperation, ClassType, empty } from '@deepkit/core'; diff --git a/packages/postgres/src/postgres-platform.ts b/packages/postgres/src/postgres-platform.ts index d688cb58b..15b6cbb34 100644 --- a/packages/postgres/src/postgres-platform.ts +++ b/packages/postgres/src/postgres-platform.ts @@ -9,10 +9,10 @@ */ import { Column, DefaultPlatform, IndexModel, isSet, SqlPlaceholderStrategy, Table } from '@deepkit/sql'; -import { postgresSerializer } from './postgres-serializer'; +import { postgresSerializer } from './postgres-serializer.js'; import { isUUIDType, ReflectionClass, ReflectionKind, ReflectionProperty, Serializer, TypeNumberBrand } from '@deepkit/type'; -import { PostgresSchemaParser } from './postgres-schema-parser'; -import { PostgreSQLFilterBuilder } from './sql-filter-builder'; +import { PostgresSchemaParser } from './postgres-schema-parser.js'; +import { PostgreSQLFilterBuilder } from './sql-filter-builder.js'; import { isArray, isObject } from '@deepkit/core'; import sqlstring from 'sqlstring'; diff --git a/packages/postgres/tests/factory.ts b/packages/postgres/tests/factory.ts index 1ff704c05..795875ef2 100644 --- a/packages/postgres/tests/factory.ts +++ b/packages/postgres/tests/factory.ts @@ -1,6 +1,6 @@ import { Database } from '@deepkit/orm'; import { DatabaseFactory } from '@deepkit/orm-integration'; -import { PostgresDatabaseAdapter } from '../src/postgres-adapter'; +import { PostgresDatabaseAdapter } from '../src/postgres-adapter.js'; export const databaseFactory: DatabaseFactory = async (entities): Promise => { const adapter = new PostgresDatabaseAdapter({host: 'localhost', database: 'postgres', user: 'postgres'}); diff --git a/packages/postgres/tests/integration.spec.ts b/packages/postgres/tests/integration.spec.ts index 516c6f273..8cceceaf2 100644 --- a/packages/postgres/tests/integration.spec.ts +++ b/packages/postgres/tests/integration.spec.ts @@ -1,6 +1,6 @@ import { test } from '@jest/globals'; import { runIntegrationTests } from '@deepkit/orm-integration'; -import { databaseFactory } from './factory'; +import { databaseFactory } from './factory.js'; runIntegrationTests(databaseFactory); diff --git a/packages/postgres/tests/migration.spec.ts b/packages/postgres/tests/migration.spec.ts index d0ecc4b7a..268b88aa4 100644 --- a/packages/postgres/tests/migration.spec.ts +++ b/packages/postgres/tests/migration.spec.ts @@ -18,7 +18,7 @@ import { uint8, Unique } from '@deepkit/type'; -import { PostgresDatabaseAdapter } from '../src/postgres-adapter'; +import { PostgresDatabaseAdapter } from '../src/postgres-adapter.js'; import { DatabaseEntityRegistry } from '@deepkit/orm'; test('custom type', async () => { diff --git a/packages/rpc-tcp/index.ts b/packages/rpc-tcp/index.ts index 8b8fb4b26..7f169a8d0 100644 --- a/packages/rpc-tcp/index.ts +++ b/packages/rpc-tcp/index.ts @@ -1,2 +1,2 @@ -export * from './src/server'; -export * from './src/client'; \ No newline at end of file +export * from './src/server.js'; +export * from './src/client.js'; diff --git a/packages/rpc-tcp/package-lock.json b/packages/rpc-tcp/package-lock.json index c8b7f8ad9..4671d036a 100644 --- a/packages/rpc-tcp/package-lock.json +++ b/packages/rpc-tcp/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/rpc-tcp", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "dependencies": { "@types/ws": "^8.5.3", @@ -20,16 +20,16 @@ }, "../bson": { "name": "@deepkit/bson", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@deepkit/crypto": "^1.0.1-alpha.65" + "@deepkit/crypto": "^1.0.1-alpha.72" }, "devDependencies": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type": "^1.0.1-alpha.71", + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type": "^1.0.1-alpha.72", "@types/bson": "^4.0.3", "@types/node": "14.14.28", "bson": "^4.4.0", @@ -708,7 +708,7 @@ }, "../core": { "name": "@deepkit/core", - "version": "1.0.1-alpha.65", + "version": "1.0.1-alpha.72", "dev": true, "license": "MIT", "peer": true, @@ -722,12 +722,12 @@ }, "../core-rxjs": { "name": "@deepkit/core-rxjs", - "version": "1.0.1-alpha.65", + "version": "1.0.1-alpha.72", "dev": true, "license": "MIT", "peer": true, "devDependencies": { - "@deepkit/core": "^1.0.1-alpha.65", + "@deepkit/core": "^1.0.1-alpha.72", "rxjs": "~6.6.0" }, "peerDependencies": { @@ -798,20 +798,18 @@ }, "../crypto": { "name": "@deepkit/crypto", - "version": "1.0.1-alpha.65", + "version": "1.0.1-alpha.72", "dev": true, "license": "MIT", "peer": true }, "../injector": { "name": "@deepkit/injector", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "dev": true, "license": "MIT", "peer": true, "devDependencies": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type": "^1.0.1-alpha.71", "benchmark": "^2.1.4" }, "peerDependencies": { @@ -851,7 +849,7 @@ }, "../logger": { "name": "@deepkit/logger", - "version": "1.0.1-alpha.65", + "version": "1.0.1-alpha.72", "dev": true, "license": "MIT", "peer": true, @@ -860,9 +858,6 @@ "ansi-styles": "^4.3.0", "format-util": "^1.0.5" }, - "devDependencies": { - "@deepkit/core": "^1.0.1-alpha.65" - }, "peerDependencies": { "@deepkit/core": "^1.0.1-alpha.13" } @@ -918,20 +913,20 @@ }, "../rpc": { "name": "@deepkit/rpc", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "peer": true, "dependencies": { "dot-prop": "^5.1.1" }, "devDependencies": { - "@deepkit/bson": "^1.0.1-alpha.71", - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/core-rxjs": "^1.0.1-alpha.65", - "@deepkit/crypto": "^1.0.1-alpha.65", - "@deepkit/injector": "^1.0.1-alpha.71", - "@deepkit/logger": "^1.0.1-alpha.65", - "@deepkit/type": "^1.0.1-alpha.71", + "@deepkit/bson": "^1.0.1-alpha.72", + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/core-rxjs": "^1.0.1-alpha.72", + "@deepkit/crypto": "^1.0.1-alpha.72", + "@deepkit/injector": "^1.0.1-alpha.72", + "@deepkit/logger": "^1.0.1-alpha.72", + "@deepkit/type": "^1.0.1-alpha.72", "@types/dot-prop": "^5.0.1", "@types/fs-extra": "^9.0.1", "@types/node": "14.14.28", @@ -1039,19 +1034,19 @@ }, "../type": { "name": "@deepkit/type", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@deepkit/type-spec": "^1.0.1-alpha.71", + "@deepkit/type-spec": "^1.0.1-alpha.72", "@types/uuid": "^8.3.0", "buffer": "^5.2.1", "uuid": "^8.3.2" }, "devDependencies": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type-compiler": "^1.0.1-alpha.71", + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type-compiler": "^1.0.1-alpha.72", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@typescript/vfs": "^1.3.5", @@ -1063,11 +1058,13 @@ }, "../type-compiler": { "name": "@deepkit/type-compiler", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "dev": true, + "hasInstallScript": true, "license": "MIT", "peer": true, "dependencies": { + "@deepkit/type-spec": "^1.0.1-alpha.72", "@types/lz-string": "^1.3.34", "@typescript/vfs": "^1.3.5", "lz-string": "^1.4.4", @@ -1185,7 +1182,7 @@ }, "../type-spec": { "name": "@deepkit/type-spec", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "dev": true, "license": "MIT", "peer": true @@ -1456,13 +1453,13 @@ "@deepkit/rpc": { "version": "file:../rpc", "requires": { - "@deepkit/bson": "^1.0.1-alpha.71", - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/core-rxjs": "^1.0.1-alpha.65", - "@deepkit/crypto": "^1.0.1-alpha.65", - "@deepkit/injector": "^1.0.1-alpha.71", - "@deepkit/logger": "^1.0.1-alpha.65", - "@deepkit/type": "^1.0.1-alpha.71", + "@deepkit/bson": "^1.0.1-alpha.72", + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/core-rxjs": "^1.0.1-alpha.72", + "@deepkit/crypto": "^1.0.1-alpha.72", + "@deepkit/injector": "^1.0.1-alpha.72", + "@deepkit/logger": "^1.0.1-alpha.72", + "@deepkit/type": "^1.0.1-alpha.72", "@types/dot-prop": "^5.0.1", "@types/fs-extra": "^9.0.1", "@types/node": "14.14.28", @@ -1473,9 +1470,9 @@ "@deepkit/bson": { "version": "file:../bson", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/crypto": "^1.0.1-alpha.65", - "@deepkit/type": "^1.0.1-alpha.71", + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/crypto": "^1.0.1-alpha.72", + "@deepkit/type": "^1.0.1-alpha.72", "@types/bson": "^4.0.3", "@types/node": "14.14.28", "bson": "^4.4.0", @@ -1521,9 +1518,9 @@ "@deepkit/type": { "version": "file:../type", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type-compiler": "^1.0.1-alpha.71", - "@deepkit/type-spec": "^1.0.1-alpha.71", + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type-compiler": "^1.0.1-alpha.72", + "@deepkit/type-spec": "^1.0.1-alpha.72", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@types/uuid": "^8.3.0", @@ -1569,6 +1566,7 @@ "@deepkit/type-compiler": { "version": "file:../type-compiler", "requires": { + "@deepkit/type-spec": "^1.0.1-alpha.72", "@types/lz-string": "^1.3.34", "@typescript/vfs": "^1.3.5", "lz-string": "^1.4.4", @@ -2205,7 +2203,7 @@ "@deepkit/core-rxjs": { "version": "file:../core-rxjs", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", + "@deepkit/core": "^1.0.1-alpha.72", "rxjs": "~6.6.0" }, "dependencies": { @@ -2263,8 +2261,6 @@ "@deepkit/injector": { "version": "file:../injector", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type": "^1.0.1-alpha.71", "benchmark": "^2.1.4" }, "dependencies": { @@ -2304,9 +2300,9 @@ "@deepkit/type": { "version": "file:../type", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type-compiler": "^1.0.1-alpha.71", - "@deepkit/type-spec": "^1.0.1-alpha.71", + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type-compiler": "^1.0.1-alpha.72", + "@deepkit/type-spec": "^1.0.1-alpha.72", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@types/uuid": "^8.3.0", @@ -2352,6 +2348,7 @@ "@deepkit/type-compiler": { "version": "file:../type-compiler", "requires": { + "@deepkit/type-spec": "^1.0.1-alpha.72", "@types/lz-string": "^1.3.34", "@typescript/vfs": "^1.3.5", "lz-string": "^1.4.4", @@ -2512,7 +2509,6 @@ "@deepkit/logger": { "version": "file:../logger", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", "@types/format-util": "^1.0.1", "ansi-styles": "^4.3.0", "format-util": "^1.0.5" @@ -2587,9 +2583,9 @@ "@deepkit/type": { "version": "file:../type", "requires": { - "@deepkit/core": "^1.0.1-alpha.65", - "@deepkit/type-compiler": "^1.0.1-alpha.71", - "@deepkit/type-spec": "^1.0.1-alpha.71", + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type-compiler": "^1.0.1-alpha.72", + "@deepkit/type-spec": "^1.0.1-alpha.72", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@types/uuid": "^8.3.0", @@ -2635,6 +2631,7 @@ "@deepkit/type-compiler": { "version": "file:../type-compiler", "requires": { + "@deepkit/type-spec": "^1.0.1-alpha.72", "@types/lz-string": "^1.3.34", "@typescript/vfs": "^1.3.5", "lz-string": "^1.4.4", diff --git a/packages/rpc/index.ts b/packages/rpc/index.ts index 65843be7a..158f76b50 100644 --- a/packages/rpc/index.ts +++ b/packages/rpc/index.ts @@ -8,17 +8,17 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/client/action'; -export * from './src/client/client-direct'; -export * from './src/client/client-websocket'; -export * from './src/client/client'; -export * from './src/client/message-subject'; -export * from './src/client/entity-state'; -export * from './src/server/action'; -export * from './src/server/kernel'; -export * from './src/server/security'; -export * from './src/collection'; -export * from './src/decorators'; -export * from './src/model'; -export * from './src/protocol'; -export * from './src/writer'; +export * from './src/client/action.js'; +export * from './src/client/client-direct.js'; +export * from './src/client/client-websocket.js'; +export * from './src/client/client.js'; +export * from './src/client/message-subject.js'; +export * from './src/client/entity-state.js'; +export * from './src/server/action.js'; +export * from './src/server/kernel.js'; +export * from './src/server/security.js'; +export * from './src/collection.js'; +export * from './src/decorators.js'; +export * from './src/model.js'; +export * from './src/protocol.js'; +export * from './src/writer.js'; diff --git a/packages/rpc/package-lock.json b/packages/rpc/package-lock.json index 0984d5c4d..99edac3dc 100644 --- a/packages/rpc/package-lock.json +++ b/packages/rpc/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/rpc", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "dependencies": { "dot-prop": "^5.1.1" diff --git a/packages/rpc/src/client/action.ts b/packages/rpc/src/client/action.ts index 74ff15844..aa1c01977 100644 --- a/packages/rpc/src/client/action.ts +++ b/packages/rpc/src/client/action.ts @@ -11,7 +11,7 @@ import { asyncOperation, ClassType, toFastProperties } from '@deepkit/core'; import { BehaviorSubject, Observable, Subject, Subscriber } from 'rxjs'; import { skip } from 'rxjs/operators'; -import { Collection, CollectionQueryModelInterface, CollectionState } from '../collection'; +import { Collection, CollectionQueryModelInterface, CollectionState } from '../collection.js'; import { ActionObservableTypes, IdInterface, @@ -25,11 +25,11 @@ import { rpcResponseActionType, RpcTypes, WrappedV -} from '../model'; -import { rpcDecodeError, RpcMessage } from '../protocol'; -import { ClientProgress } from '../writer'; -import type { WritableClient } from './client'; -import { EntityState, EntitySubjectStore } from './entity-state'; +} from '../model.js'; +import { rpcDecodeError, RpcMessage } from '../protocol.js'; +import { ClientProgress } from '../writer.js'; +import type { WritableClient } from './client.js'; +import { EntityState, EntitySubjectStore } from './entity-state.js'; import { assertType, deserializeType, ReflectionKind, Type, TypeObjectLiteral, typeOf } from '@deepkit/type'; interface ResponseActionObservableError extends rpcActionObservableSubscribeId, WrappedV { diff --git a/packages/rpc/src/client/client-direct.ts b/packages/rpc/src/client/client-direct.ts index f8017f54d..2ca2cfad7 100644 --- a/packages/rpc/src/client/client-direct.ts +++ b/packages/rpc/src/client/client-direct.ts @@ -8,8 +8,8 @@ * You should have received a copy of the MIT License along with this program. */ -import { RpcKernel } from '../server/kernel'; -import { ClientTransportAdapter, RpcClient, TransportConnectionHooks } from './client'; +import { RpcKernel } from '../server/kernel.js'; +import { ClientTransportAdapter, RpcClient, TransportConnectionHooks } from './client.js'; import { InjectorContext } from '@deepkit/injector'; export class DirectClient extends RpcClient { diff --git a/packages/rpc/src/client/client-websocket.ts b/packages/rpc/src/client/client-websocket.ts index 780a9fcbd..4edab5aca 100644 --- a/packages/rpc/src/client/client-websocket.ts +++ b/packages/rpc/src/client/client-websocket.ts @@ -9,7 +9,7 @@ */ import { ClassType } from '@deepkit/core'; -import { ClientTransportAdapter, RpcClient, TransportConnectionHooks } from './client'; +import { ClientTransportAdapter, RpcClient, TransportConnectionHooks } from './client.js'; /** * A RpcClient that connects via WebSocket transport. diff --git a/packages/rpc/src/client/client.ts b/packages/rpc/src/client/client.ts index 34f868cdb..948270c8b 100644 --- a/packages/rpc/src/client/client.ts +++ b/packages/rpc/src/client/client.ts @@ -11,12 +11,12 @@ import { asyncOperation, ClassType, sleep } from '@deepkit/core'; import { ReceiveType, resolveReceiveType } from '@deepkit/type'; import { BehaviorSubject, Observable, Subject } from 'rxjs'; -import { ControllerDefinition, rpcAuthenticate, rpcClientId, rpcPeerDeregister, rpcPeerRegister, rpcResponseAuthenticate, RpcTypes } from '../model'; -import { createRpcMessage, createRpcMessagePeer, ErroredRpcMessage, RpcMessage, RpcMessageReader, RpcMessageRouteType } from '../protocol'; -import { RpcKernel, RpcKernelConnection } from '../server/kernel'; -import { ClientProgress, RpcMessageWriter, RpcMessageWriterOptions, SingleProgress } from '../writer'; -import { RpcActionClient, RpcControllerState } from './action'; -import { RpcMessageSubject } from './message-subject'; +import { ControllerDefinition, rpcAuthenticate, rpcClientId, rpcPeerDeregister, rpcPeerRegister, rpcResponseAuthenticate, RpcTypes } from '../model.js'; +import { createRpcMessage, createRpcMessagePeer, ErroredRpcMessage, RpcMessage, RpcMessageReader, RpcMessageRouteType } from '../protocol.js'; +import { RpcKernel, RpcKernelConnection } from '../server/kernel.js'; +import { ClientProgress, RpcMessageWriter, RpcMessageWriterOptions, SingleProgress } from '../writer.js'; +import { RpcActionClient, RpcControllerState } from './action.js'; +import { RpcMessageSubject } from './message-subject.js'; export class OfflineError extends Error { constructor(message: string = 'Offline') { diff --git a/packages/rpc/src/client/entity-state.ts b/packages/rpc/src/client/entity-state.ts index 19c423408..693d219b6 100644 --- a/packages/rpc/src/client/entity-state.ts +++ b/packages/rpc/src/client/entity-state.ts @@ -9,8 +9,8 @@ */ import { arrayRemoveItem, ClassType, deletePathValue, getPathValue, setPathValue } from '@deepkit/core'; -import { EntityPatch, EntitySubject, IdType, IdVersionInterface, rpcEntityPatch, rpcEntityRemove, RpcTypes } from '../model'; -import { RpcMessage } from '../protocol'; +import { EntityPatch, EntitySubject, IdType, IdVersionInterface, rpcEntityPatch, rpcEntityRemove, RpcTypes } from '../model.js'; +import { RpcMessage } from '../protocol.js'; import { getPartialSerializeFunction, ReflectionClass, serializer, TypeObjectLiteral } from '@deepkit/type'; export class EntitySubjectStore { diff --git a/packages/rpc/src/client/message-subject.ts b/packages/rpc/src/client/message-subject.ts index 0564f5e70..5e7743f63 100644 --- a/packages/rpc/src/client/message-subject.ts +++ b/packages/rpc/src/client/message-subject.ts @@ -10,8 +10,8 @@ import { asyncOperation, CustomError } from '@deepkit/core'; import { ReceiveType } from '@deepkit/type'; -import { RpcTypes } from '../model'; -import type { RpcMessage } from '../protocol'; +import { RpcTypes } from '../model.js'; +import type { RpcMessage } from '../protocol.js'; export class UnexpectedMessageType extends CustomError { } diff --git a/packages/rpc/src/collection.ts b/packages/rpc/src/collection.ts index 1dfb7957a..b03b10e17 100644 --- a/packages/rpc/src/collection.ts +++ b/packages/rpc/src/collection.ts @@ -16,7 +16,7 @@ import { ClassType, getClassName, isArray } from '@deepkit/core'; import { tearDown } from '@deepkit/core-rxjs'; import { ReplaySubject, Subject, TeardownLogic } from 'rxjs'; -import { EntitySubject, IdInterface } from './model'; +import { EntitySubject, IdInterface } from './model.js'; export type FilterParameters = { [name: string]: any | undefined }; diff --git a/packages/rpc/src/decorators.ts b/packages/rpc/src/decorators.ts index 0d8013605..030968642 100644 --- a/packages/rpc/src/decorators.ts +++ b/packages/rpc/src/decorators.ts @@ -10,7 +10,7 @@ import { ClassType } from '@deepkit/core'; import { ClassDecoratorResult, createClassDecoratorContext, createPropertyDecoratorContext, mergeDecorator, PropertyDecoratorResult } from '@deepkit/type'; -import { ControllerDefinition } from './model'; +import { ControllerDefinition } from './model.js'; class RpcController { name?: string; diff --git a/packages/rpc/src/protocol.ts b/packages/rpc/src/protocol.ts index 1e6bf98f5..153023835 100644 --- a/packages/rpc/src/protocol.ts +++ b/packages/rpc/src/protocol.ts @@ -10,8 +10,8 @@ import { deserializeBSONWithoutOptimiser, getBSONDeserializer, getBSONSerializer, getBSONSizer, Writer } from '@deepkit/bson'; import { ClassType } from '@deepkit/core'; -import { rpcChunk, rpcError, RpcTypes } from './model'; -import type { SingleProgress } from './writer'; +import { rpcChunk, rpcError, RpcTypes } from './model.js'; +import type { SingleProgress } from './writer.js'; import { deserialize, ReceiveType, ReflectionClass, serialize, Type, typeSettings } from '@deepkit/type'; export const enum RpcMessageRouteType { diff --git a/packages/rpc/src/server/action.ts b/packages/rpc/src/server/action.ts index f611b32f2..56af0bb8c 100644 --- a/packages/rpc/src/server/action.ts +++ b/packages/rpc/src/server/action.ts @@ -27,8 +27,8 @@ import { ValidationErrorItem } from '@deepkit/type'; import { isObservable, Observable, Subject, Subscription } from 'rxjs'; -import { Collection, CollectionEvent, CollectionQueryModel, CollectionQueryModelInterface, CollectionState } from '../collection'; -import { getActions } from '../decorators'; +import { Collection, CollectionEvent, CollectionQueryModel, CollectionQueryModelInterface, CollectionState } from '../collection.js'; +import { getActions } from '../decorators.js'; import { ActionMode, ActionObservableTypes, @@ -42,10 +42,10 @@ import { rpcResponseActionObservableSubscriptionError, rpcResponseActionType, RpcTypes, -} from '../model'; -import { rpcEncodeError, RpcMessage } from '../protocol'; -import { RpcMessageBuilder } from './kernel'; -import { RpcControllerAccess, RpcKernelSecurity, SessionState } from './security'; +} from '../model.js'; +import { rpcEncodeError, RpcMessage } from '../protocol.js'; +import { RpcMessageBuilder } from './kernel.js'; +import { RpcControllerAccess, RpcKernelSecurity, SessionState } from './security.js'; import { InjectorContext, InjectorModule } from '@deepkit/injector'; export type ActionTypes = { diff --git a/packages/rpc/src/server/kernel.ts b/packages/rpc/src/server/kernel.ts index 57e84e527..ab0aa5636 100644 --- a/packages/rpc/src/server/kernel.ts +++ b/packages/rpc/src/server/kernel.ts @@ -10,8 +10,8 @@ import { arrayRemoveItem, ClassType } from '@deepkit/core'; import { ReceiveType, resolveReceiveType, stringifyUuid, typeOf, writeUuid } from '@deepkit/type'; -import { RpcMessageSubject } from '../client/message-subject'; -import { AuthenticationError, ControllerDefinition, rpcAuthenticate, rpcClientId, rpcError, rpcPeerRegister, rpcResponseAuthenticate, RpcTypes } from '../model'; +import { RpcMessageSubject } from '../client/message-subject.js'; +import { AuthenticationError, ControllerDefinition, rpcAuthenticate, rpcClientId, rpcError, rpcPeerRegister, rpcResponseAuthenticate, RpcTypes } from '../model.js'; import { createBuffer, createRpcCompositeMessage, @@ -25,15 +25,15 @@ import { RpcMessage, RpcMessageReader, RpcMessageRouteType -} from '../protocol'; -import { RpcMessageWriter, RpcMessageWriterOptions } from '../writer'; -import { RpcServerAction } from './action'; -import { RpcKernelSecurity, SessionState } from './security'; -import { RpcActionClient, RpcControllerState } from '../client/action'; -import { RemoteController } from '../client/client'; +} from '../protocol.js'; +import { RpcMessageWriter, RpcMessageWriterOptions } from '../writer.js'; +import { RpcServerAction } from './action.js'; +import { RpcKernelSecurity, SessionState } from './security.js'; +import { RpcActionClient, RpcControllerState } from '../client/action.js'; +import { RemoteController } from '../client/client.js'; import { InjectorContext, InjectorModule } from '@deepkit/injector'; import { Logger, LoggerInterface } from '@deepkit/logger'; -import { rpcClass } from '../decorators'; +import { rpcClass } from '../decorators.js'; import { getClassName } from '@deepkit/core'; export class RpcCompositeMessage { diff --git a/packages/rpc/src/writer.ts b/packages/rpc/src/writer.ts index dbb6d46e2..8a0e57429 100644 --- a/packages/rpc/src/writer.ts +++ b/packages/rpc/src/writer.ts @@ -9,9 +9,9 @@ */ import { BehaviorSubject, Subject, Subscriber, Subscription, SubscriptionLike } from 'rxjs'; -import { rpcChunk, RpcTypes } from './model'; -import { createRpcMessage, readRpcMessage, RpcMessageReader } from './protocol'; -import type { RpcConnectionWriter } from './server/kernel'; +import { rpcChunk, RpcTypes } from './model.js'; +import { createRpcMessage, readRpcMessage, RpcMessageReader } from './protocol.js'; +import type { RpcConnectionWriter } from './server/kernel.js'; export class SingleProgress extends Subject { public done = false; diff --git a/packages/rpc/tests/back-controller.spec.ts b/packages/rpc/tests/back-controller.spec.ts index 25339b186..8cbfa97b9 100644 --- a/packages/rpc/tests/back-controller.spec.ts +++ b/packages/rpc/tests/back-controller.spec.ts @@ -1,7 +1,7 @@ import { expect, test } from '@jest/globals'; -import { RpcKernel, RpcKernelConnection } from '../src/server/kernel'; -import { DirectClient } from '../src/client/client-direct'; -import { rpc } from '../src/decorators'; +import { RpcKernel, RpcKernelConnection } from '../src/server/kernel.js'; +import { DirectClient } from '../src/client/client-direct.js'; +import { rpc } from '../src/decorators.js'; test('back controller', async () => { class Controller { diff --git a/packages/rpc/tests/case/crud.spec.ts b/packages/rpc/tests/case/crud.spec.ts index 5c0efdf6d..dd32c67d5 100644 --- a/packages/rpc/tests/case/crud.spec.ts +++ b/packages/rpc/tests/case/crud.spec.ts @@ -1,8 +1,8 @@ import { entity } from '@deepkit/type'; import { expect, test } from '@jest/globals'; -import { DirectClient } from '../../src/client/client-direct'; -import { rpc } from '../../src/decorators'; -import { RpcKernel } from '../../src/server/kernel'; +import { DirectClient } from '../../src/client/client-direct.js'; +import { rpc } from '../../src/decorators.js'; +import { RpcKernel } from '../../src/server/kernel.js'; @entity.name('purchase') export class Purchase { diff --git a/packages/rpc/tests/chunks.spec.ts b/packages/rpc/tests/chunks.spec.ts index 017a3574c..c27c7e509 100644 --- a/packages/rpc/tests/chunks.spec.ts +++ b/packages/rpc/tests/chunks.spec.ts @@ -1,9 +1,9 @@ import { expect, test } from '@jest/globals'; import { skip } from 'rxjs/operators'; -import { DirectClient } from '../src/client/client-direct'; -import { rpc } from '../src/decorators'; -import { RpcKernel } from '../src/server/kernel'; -import { ClientProgress } from '../src/writer'; +import { DirectClient } from '../src/client/client-direct.js'; +import { rpc } from '../src/decorators.js'; +import { RpcKernel } from '../src/server/kernel.js'; +import { ClientProgress } from '../src/writer.js'; test('chunks', async () => { @rpc.controller('test') diff --git a/packages/rpc/tests/collection.spec.ts b/packages/rpc/tests/collection.spec.ts index ca1ae6d65..5a7111f90 100644 --- a/packages/rpc/tests/collection.spec.ts +++ b/packages/rpc/tests/collection.spec.ts @@ -1,9 +1,9 @@ import { entity } from '@deepkit/type'; import { expect, test } from '@jest/globals'; -import { DirectClient } from '../src/client/client-direct'; -import { Collection } from '../src/collection'; -import { rpc } from '../src/decorators'; -import { RpcKernel } from '../src/server/kernel'; +import { DirectClient } from '../src/client/client-direct.js'; +import { Collection } from '../src/collection.js'; +import { rpc } from '../src/decorators.js'; +import { RpcKernel } from '../src/server/kernel.js'; import { sleep } from '@deepkit/core'; test('collection basic', () => { diff --git a/packages/rpc/tests/controller.spec.ts b/packages/rpc/tests/controller.spec.ts index e1051fe74..ad390e594 100644 --- a/packages/rpc/tests/controller.spec.ts +++ b/packages/rpc/tests/controller.spec.ts @@ -1,9 +1,9 @@ import { assertType, entity, Positive, ReflectionClass, ReflectionKind } from '@deepkit/type'; import { expect, test } from '@jest/globals'; -import { DirectClient } from '../src/client/client-direct'; -import { getActions, rpc } from '../src/decorators'; -import { RpcKernel, RpcKernelConnection } from '../src/server/kernel'; -import { Session, SessionState } from '../src/server/security'; +import { DirectClient } from '../src/client/client-direct.js'; +import { getActions, rpc } from '../src/decorators.js'; +import { RpcKernel, RpcKernelConnection } from '../src/server/kernel.js'; +import { Session, SessionState } from '../src/server/security.js'; import { BehaviorSubject } from 'rxjs'; import { getClassName } from '@deepkit/core'; diff --git a/packages/rpc/tests/entity-state.spec.ts b/packages/rpc/tests/entity-state.spec.ts index 9476c8d05..36aa1ec15 100644 --- a/packages/rpc/tests/entity-state.spec.ts +++ b/packages/rpc/tests/entity-state.spec.ts @@ -1,10 +1,10 @@ import { cast, entity, ReflectionClass } from '@deepkit/type'; import { expect, test } from '@jest/globals'; -import { EntitySubject, rpcEntityPatch, RpcTypes } from '../src/model'; -import { DirectClient } from '../src/client/client-direct'; -import { EntitySubjectStore } from '../src/client/entity-state'; -import { rpc } from '../src/decorators'; -import { RpcKernel, RpcKernelConnection } from '../src/server/kernel'; +import { EntitySubject, rpcEntityPatch, RpcTypes } from '../src/model.js'; +import { DirectClient } from '../src/client/client-direct.js'; +import { EntitySubjectStore } from '../src/client/entity-state.js'; +import { rpc } from '../src/decorators.js'; +import { RpcKernel, RpcKernelConnection } from '../src/server/kernel.js'; import { InjectorContext } from '@deepkit/injector'; test('EntitySubjectStore multi', () => { diff --git a/packages/rpc/tests/model.spec.ts b/packages/rpc/tests/model.spec.ts index ecdfcd05b..eb4772a15 100644 --- a/packages/rpc/tests/model.spec.ts +++ b/packages/rpc/tests/model.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from '@jest/globals'; -import { EntitySubject, isEntitySubject } from '../src/model'; +import { EntitySubject, isEntitySubject } from '../src/model.js'; test('entitySubject', async () => { class User { diff --git a/packages/rpc/tests/observable.spec.ts b/packages/rpc/tests/observable.spec.ts index 531936c91..4d56c3e1c 100644 --- a/packages/rpc/tests/observable.spec.ts +++ b/packages/rpc/tests/observable.spec.ts @@ -3,9 +3,9 @@ import { entity } from '@deepkit/type'; import { expect, test } from '@jest/globals'; import { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs'; import { first, take } from 'rxjs/operators'; -import { DirectClient } from '../src/client/client-direct'; -import { rpc } from '../src/decorators'; -import { RpcKernel } from '../src/server/kernel'; +import { DirectClient } from '../src/client/client-direct.js'; +import { rpc } from '../src/decorators.js'; +import { RpcKernel } from '../src/server/kernel.js'; test('observable basics', async () => { @entity.name('model') diff --git a/packages/rpc/tests/rpc.spec.ts b/packages/rpc/tests/rpc.spec.ts index 277347f13..0aca69480 100644 --- a/packages/rpc/tests/rpc.spec.ts +++ b/packages/rpc/tests/rpc.spec.ts @@ -1,7 +1,7 @@ import { expect, test } from '@jest/globals'; -import { Progress, RpcMessageWriter, RpcMessageWriterOptions } from '../src/writer'; -import { DirectClient } from '../src/client/client-direct'; -import { rpc } from '../src/decorators'; +import { Progress, RpcMessageWriter, RpcMessageWriterOptions } from '../src/writer.js'; +import { DirectClient } from '../src/client/client-direct.js'; +import { rpc } from '../src/decorators.js'; import { createRpcCompositeMessage, createRpcCompositeMessageSourceDest, @@ -14,9 +14,9 @@ import { RpcMessage, RpcMessageReader, RpcMessageRouteType -} from '../src/protocol'; -import { RpcKernel } from '../src/server/kernel'; -import { RpcTypes } from '../src/model'; +} from '../src/protocol.js'; +import { RpcKernel } from '../src/server/kernel.js'; +import { RpcTypes } from '../src/model.js'; import { Writer } from '@deepkit/bson'; import { typeOf } from '@deepkit/type'; diff --git a/packages/rpc/tests/security.spec.ts b/packages/rpc/tests/security.spec.ts index d33ce9a63..61806113b 100644 --- a/packages/rpc/tests/security.spec.ts +++ b/packages/rpc/tests/security.spec.ts @@ -1,10 +1,10 @@ import { expect, test } from '@jest/globals'; -import { AsyncDirectClient, DirectClient } from '../src/client/client-direct'; -import { rpc } from '../src/decorators'; -import { RpcKernel, RpcKernelConnection } from '../src/server/kernel'; -import { RpcKernelSecurity, Session } from '../src/server/security'; -import { AuthenticationError } from '../src/model'; -import { MemoryLoggerTransport } from '../../logger'; +import { AsyncDirectClient, DirectClient } from '../src/client/client-direct.js'; +import { rpc } from '../src/decorators.js'; +import { RpcKernel, RpcKernelConnection } from '../src/server/kernel.js'; +import { RpcKernelSecurity, Session } from '../src/server/security.js'; +import { AuthenticationError } from '../src/model.js'; +import { MemoryLoggerTransport } from '../../logger/index.js'; import { Logger } from '@deepkit/logger'; test('authentication', async () => { diff --git a/packages/skeleton/index.ts b/packages/skeleton/index.ts index d2ccdcd8b..349369c9f 100644 --- a/packages/skeleton/index.ts +++ b/packages/skeleton/index.ts @@ -1 +1 @@ -export * from './src/foo'; +export * from './src/foo.js'; diff --git a/packages/skeleton/tests/foo.spec.ts b/packages/skeleton/tests/foo.spec.ts index 3377a4c48..d1e55bc26 100644 --- a/packages/skeleton/tests/foo.spec.ts +++ b/packages/skeleton/tests/foo.spec.ts @@ -1,5 +1,5 @@ import { test, expect } from '@jest/globals'; -import { foo } from '../src/foo'; +import { foo } from '../src/foo.js'; test('foo', () => { expect(foo()).toBe('bar'); diff --git a/packages/sql/browser.ts b/packages/sql/browser.ts index 17a79e70c..ccbe8843a 100644 --- a/packages/sql/browser.ts +++ b/packages/sql/browser.ts @@ -8,12 +8,12 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/sql-builder'; -export * from './src/sql-adapter'; -export * from './src/sql-filter-builder'; +export * from './src/sql-builder.js'; +export * from './src/sql-adapter.js'; +export * from './src/sql-filter-builder.js'; -export * from './src/schema/table'; -export * from './src/reverse/schema-parser'; -export * from './src/platform/default-platform'; -export * from './src/serializer/sql-serializer'; +export * from './src/schema/table.js'; +export * from './src/reverse/schema-parser.js'; +export * from './src/platform/default-platform.js'; +export * from './src/serializer/sql-serializer.js'; diff --git a/packages/sql/commands.ts b/packages/sql/commands.ts index 4b3f5c722..fcf3d4fce 100644 --- a/packages/sql/commands.ts +++ b/packages/sql/commands.ts @@ -1,5 +1,5 @@ -export * from './src/cli/migration-create-command'; -export * from './src/cli/migration-down-command'; -export * from './src/cli/migration-up-command'; -export * from './src/cli/migration-pending-command'; -export * from './src/migration/migration-provider'; +export * from './src/cli/migration-create-command.js'; +export * from './src/cli/migration-down-command.js'; +export * from './src/cli/migration-up-command.js'; +export * from './src/cli/migration-pending-command.js'; +export * from './src/migration/migration-provider.js'; diff --git a/packages/sql/index.ts b/packages/sql/index.ts index 36e9ac539..7fdbfbfc1 100644 --- a/packages/sql/index.ts +++ b/packages/sql/index.ts @@ -8,16 +8,16 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/sql-builder'; -export * from './src/sql-adapter'; -export * from './src/sql-filter-builder'; +export * from './src/sql-builder.js'; +export * from './src/sql-adapter.js'; +export * from './src/sql-filter-builder.js'; -export * from './src/migration/migration'; -export * from './src/migration/migration-provider'; +export * from './src/migration/migration.js'; +export * from './src/migration/migration-provider.js'; -export * from './src/test'; -export * from './src/schema/table'; -export * from './src/reverse/schema-parser'; -export * from './src/platform/default-platform'; -export * from './src/serializer/sql-serializer'; +export * from './src/test.js'; +export * from './src/schema/table.js'; +export * from './src/reverse/schema-parser.js'; +export * from './src/platform/default-platform.js'; +export * from './src/serializer/sql-serializer.js'; diff --git a/packages/sql/main.ts b/packages/sql/main.ts index 99a119e4e..89e63e01f 100755 --- a/packages/sql/main.ts +++ b/packages/sql/main.ts @@ -1,5 +1,5 @@ #!/usr/bin/env node import { App } from '@deepkit/app'; -import { appModule } from './src/app.module'; +import { appModule } from './src/app.module.js'; App.fromModule(appModule).run(); diff --git a/packages/sql/package-lock.json b/packages/sql/package-lock.json index a2d448760..1587af91c 100644 --- a/packages/sql/package-lock.json +++ b/packages/sql/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/sql", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "dependencies": { "@types/sqlstring": "^2.2.1", diff --git a/packages/sql/src/app.module.ts b/packages/sql/src/app.module.ts index 93db8ada5..e0153316f 100644 --- a/packages/sql/src/app.module.ts +++ b/packages/sql/src/app.module.ts @@ -2,11 +2,11 @@ import { AppModule } from '@deepkit/app'; import { ConsoleTransport, Logger } from '@deepkit/logger'; import { InjectorContext } from '@deepkit/injector'; import { DatabaseRegistry } from '@deepkit/orm'; -import { MigrationCreateController } from './cli/migration-create-command'; -import { MigrationDownCommand } from './cli/migration-down-command'; -import { MigrationUpCommand } from './cli/migration-up-command'; -import { MigrationPendingCommand } from './cli/migration-pending-command'; -import { MigrationProvider } from './migration/migration-provider'; +import { MigrationCreateController } from './cli/migration-create-command.js'; +import { MigrationDownCommand } from './cli/migration-down-command.js'; +import { MigrationUpCommand } from './cli/migration-up-command.js'; +import { MigrationPendingCommand } from './cli/migration-pending-command.js'; +import { MigrationProvider } from './migration/migration-provider.js'; export const appModule = new AppModule({ providers: [ diff --git a/packages/sql/src/cli/migration-create-command.ts b/packages/sql/src/cli/migration-create-command.ts index 395a931b2..c637aab7d 100644 --- a/packages/sql/src/cli/migration-create-command.ts +++ b/packages/sql/src/cli/migration-create-command.ts @@ -13,10 +13,10 @@ import { existsSync, mkdirSync, writeFileSync } from 'fs'; import { dirname, join } from 'path'; import { cli, Command, flag } from '@deepkit/app'; import { LoggerInterface } from '@deepkit/logger'; -import { SQLDatabaseAdapter } from '../sql-adapter'; -import { DatabaseComparator, DatabaseModel } from '../schema/table'; -import { MigrationProvider } from '../migration/migration-provider'; -import { BaseCommand } from './base-command'; +import { SQLDatabaseAdapter } from '../sql-adapter.js'; +import { DatabaseComparator, DatabaseModel } from '../schema/table.js'; +import { MigrationProvider } from '../migration/migration-provider.js'; +import { BaseCommand } from './base-command.js'; function serializeSQLLine(sql: string): string { return '`' + sql.replace(/`/g, '\\`') + '`'; diff --git a/packages/sql/src/cli/migration-down-command.ts b/packages/sql/src/cli/migration-down-command.ts index 22b40bbc5..a78609e7c 100644 --- a/packages/sql/src/cli/migration-down-command.ts +++ b/packages/sql/src/cli/migration-down-command.ts @@ -11,9 +11,9 @@ import { indent } from '@deepkit/core'; import { cli, flag } from '@deepkit/app'; import { LoggerInterface } from '@deepkit/logger'; -import { MigrationProvider } from '../migration/migration-provider'; -import { SQLDatabaseAdapter, SqlMigrationHandler } from '../sql-adapter'; -import { BaseCommand } from './base-command'; +import { MigrationProvider } from '../migration/migration-provider.js'; +import { SQLDatabaseAdapter, SqlMigrationHandler } from '../sql-adapter.js'; +import { BaseCommand } from './base-command.js'; @cli.controller('migration:down', { description: 'Executes down migration, reverting old migration files.' diff --git a/packages/sql/src/cli/migration-pending-command.ts b/packages/sql/src/cli/migration-pending-command.ts index c86bbc325..69f5ad7b4 100644 --- a/packages/sql/src/cli/migration-pending-command.ts +++ b/packages/sql/src/cli/migration-pending-command.ts @@ -11,9 +11,9 @@ import { cli, flag } from '@deepkit/app'; import { empty } from '@deepkit/core'; import { LoggerInterface } from '@deepkit/logger'; -import { MigrationProvider } from '../migration/migration-provider'; -import { SqlMigrationHandler } from '../sql-adapter'; -import { BaseCommand } from './base-command'; +import { MigrationProvider } from '../migration/migration-provider.js'; +import { SqlMigrationHandler } from '../sql-adapter.js'; +import { BaseCommand } from './base-command.js'; @cli.controller('migration:pending', { description: 'Shows pending migration files.' diff --git a/packages/sql/src/cli/migration-up-command.ts b/packages/sql/src/cli/migration-up-command.ts index 8585a156b..88b77dcb5 100644 --- a/packages/sql/src/cli/migration-up-command.ts +++ b/packages/sql/src/cli/migration-up-command.ts @@ -11,9 +11,9 @@ import { indent } from '@deepkit/core'; import { cli, flag } from '@deepkit/app'; import { LoggerInterface } from '@deepkit/logger'; -import { MigrationProvider } from '../migration/migration-provider'; -import { SQLDatabaseAdapter, SqlMigrationHandler } from '../sql-adapter'; -import { BaseCommand } from './base-command'; +import { MigrationProvider } from '../migration/migration-provider.js'; +import { SQLDatabaseAdapter, SqlMigrationHandler } from '../sql-adapter.js'; +import { BaseCommand } from './base-command.js'; @cli.controller('migration:up', { description: 'Executes pending migration files. Use migration:pending to see which are pending.' diff --git a/packages/sql/src/migration/migration-provider.ts b/packages/sql/src/migration/migration-provider.ts index c1e9da711..e036b8380 100644 --- a/packages/sql/src/migration/migration-provider.ts +++ b/packages/sql/src/migration/migration-provider.ts @@ -12,7 +12,7 @@ import { ClassType } from '@deepkit/core'; import { Database, DatabaseRegistry } from '@deepkit/orm'; import glob from 'fast-glob'; import { basename, join } from 'path'; -import { Migration } from './migration'; +import { Migration } from './migration.js'; export class MigrationProvider { protected databaseMap = new Map>(); diff --git a/packages/sql/src/platform/default-platform.ts b/packages/sql/src/platform/default-platform.ts index ba019312f..1fdcad2fe 100644 --- a/packages/sql/src/platform/default-platform.ts +++ b/packages/sql/src/platform/default-platform.ts @@ -8,13 +8,13 @@ * You should have received a copy of the MIT License along with this program. */ -import { Column, ColumnDiff, DatabaseDiff, DatabaseModel, ForeignKey, IndexModel, Table, TableDiff } from '../schema/table'; +import { Column, ColumnDiff, DatabaseDiff, DatabaseModel, ForeignKey, IndexModel, Table, TableDiff } from '../schema/table.js'; import sqlstring from 'sqlstring'; import { ClassType, isArray, isObject } from '@deepkit/core'; -import { sqlSerializer } from '../serializer/sql-serializer'; -import { parseType, SchemaParser } from '../reverse/schema-parser'; -import { SQLFilterBuilder } from '../sql-filter-builder'; -import { Sql } from '../sql-builder'; +import { sqlSerializer } from '../serializer/sql-serializer.js'; +import { parseType, SchemaParser } from '../reverse/schema-parser.js'; +import { SQLFilterBuilder } from '../sql-filter-builder.js'; +import { Sql } from '../sql-builder.js'; import { binaryTypes, databaseAnnotation, ReflectionClass, ReflectionKind, ReflectionProperty, Serializer, Type } from '@deepkit/type'; import { DatabaseEntityRegistry } from '@deepkit/orm'; diff --git a/packages/sql/src/reverse/schema-parser.ts b/packages/sql/src/reverse/schema-parser.ts index 7cdc857e5..2c6806c47 100644 --- a/packages/sql/src/reverse/schema-parser.ts +++ b/packages/sql/src/reverse/schema-parser.ts @@ -8,9 +8,9 @@ * You should have received a copy of the MIT License along with this program. */ -import { Column, DatabaseModel } from '../schema/table'; -import { SQLConnection } from '../sql-adapter'; -import { DefaultPlatform } from '../platform/default-platform'; +import { Column, DatabaseModel } from '../schema/table.js'; +import { SQLConnection } from '../sql-adapter.js'; +import { DefaultPlatform } from '../platform/default-platform.js'; const type3Regex = /^([^(]+)\(\s*(\d+)\s*,\s*(\d+)\s*\)$/; const type2Regex = /^([^(]+)\(\s*(\d+)\s*\)$/; diff --git a/packages/sql/src/schema/table.ts b/packages/sql/src/schema/table.ts index b0aaaa231..75c0892e4 100644 --- a/packages/sql/src/schema/table.ts +++ b/packages/sql/src/schema/table.ts @@ -9,7 +9,7 @@ */ import { arrayRemoveItem } from '@deepkit/core'; -import { cyrb53 } from '../hash'; +import { cyrb53 } from '../hash.js'; import { genericEqual, ReflectionClass, ReflectionProperty } from '@deepkit/type'; export class DatabaseModel { diff --git a/packages/sql/src/sql-adapter.ts b/packages/sql/src/sql-adapter.ts index 519414d7e..9dd3affa9 100644 --- a/packages/sql/src/sql-adapter.ts +++ b/packages/sql/src/sql-adapter.ts @@ -34,11 +34,11 @@ import { } from '@deepkit/orm'; import { AbstractClassType, ClassType, isArray, isClass } from '@deepkit/core'; import { Changes, getPartialSerializeFunction, getSerializeFunction, ReceiveType, ReflectionClass } from '@deepkit/type'; -import { DefaultPlatform, SqlPlaceholderStrategy } from './platform/default-platform'; -import { SqlBuilder } from './sql-builder'; -import { SqlFormatter } from './sql-formatter'; -import { sqlSerializer } from './serializer/sql-serializer'; -import { DatabaseComparator, DatabaseModel } from './schema/table'; +import { DefaultPlatform, SqlPlaceholderStrategy } from './platform/default-platform.js'; +import { SqlBuilder } from './sql-builder.js'; +import { SqlFormatter } from './sql-formatter.js'; +import { sqlSerializer } from './serializer/sql-serializer.js'; +import { DatabaseComparator, DatabaseModel } from './schema/table.js'; import { Stopwatch } from '@deepkit/stopwatch'; export type SORT_TYPE = SORT_ORDER | { $meta: 'textScore' }; diff --git a/packages/sql/src/sql-builder.ts b/packages/sql/src/sql-builder.ts index 24eafa5d7..a608ad0a5 100644 --- a/packages/sql/src/sql-builder.ts +++ b/packages/sql/src/sql-builder.ts @@ -8,11 +8,11 @@ * You should have received a copy of the MIT License along with this program. */ -import { SQLQueryModel } from './sql-adapter'; -import { DefaultPlatform, SqlPlaceholderStrategy } from './platform/default-platform'; +import { SQLQueryModel } from './sql-adapter.js'; +import { DefaultPlatform, SqlPlaceholderStrategy } from './platform/default-platform.js'; import { getPrimaryKeyHashGenerator, ReflectionClass, ReflectionProperty } from '@deepkit/type'; import { DatabaseJoinModel, DatabaseQueryModel } from '@deepkit/orm'; -import { getSqlFilter } from './filter'; +import { getSqlFilter } from './filter.js'; type ConvertDataToDict = (row: any) => { hash: string, item: { [name: string]: any } } | undefined; diff --git a/packages/sql/src/sql-filter-builder.ts b/packages/sql/src/sql-filter-builder.ts index bda616af1..5291fb75e 100644 --- a/packages/sql/src/sql-filter-builder.ts +++ b/packages/sql/src/sql-filter-builder.ts @@ -10,7 +10,7 @@ import { isArray, isPlainObject } from '@deepkit/core'; import { isBackReferenceType, isReferenceType, ReflectionClass, ReflectionKind, resolvePath, Serializer, Type } from '@deepkit/type'; -import { SqlPlaceholderStrategy } from './platform/default-platform'; +import { SqlPlaceholderStrategy } from './platform/default-platform.js'; type Filter = { [name: string]: any }; diff --git a/packages/sql/src/test.ts b/packages/sql/src/test.ts index e00bade9b..49561bae4 100644 --- a/packages/sql/src/test.ts +++ b/packages/sql/src/test.ts @@ -1,6 +1,6 @@ import { ClassType } from '@deepkit/core'; -import { SQLDatabaseAdapter } from './sql-adapter'; -import { DatabaseModel, TableComparator } from './schema/table'; +import { SQLDatabaseAdapter } from './sql-adapter.js'; +import { DatabaseModel, TableComparator } from './schema/table.js'; import { Database, DatabaseEntityRegistry } from '@deepkit/orm'; import { ReflectionClass, Type } from '@deepkit/type'; diff --git a/packages/sql/tests/inheritance.spec.ts b/packages/sql/tests/inheritance.spec.ts index 058d5a284..c3f6dd6c8 100644 --- a/packages/sql/tests/inheritance.spec.ts +++ b/packages/sql/tests/inheritance.spec.ts @@ -1,7 +1,7 @@ import { AutoIncrement, entity, PrimaryKey, ReflectionKind } from '@deepkit/type'; -import { SchemaParser } from '../src/reverse/schema-parser'; -import { DatabaseModel } from '../src/schema/table'; -import { DefaultPlatform } from '../src/platform/default-platform'; +import { SchemaParser } from '../src/reverse/schema-parser.js'; +import { DatabaseModel } from '../src/schema/table.js'; +import { DefaultPlatform } from '../src/platform/default-platform.js'; import { expect, test } from '@jest/globals'; import { DatabaseEntityRegistry } from '@deepkit/orm'; diff --git a/packages/sql/tests/migration.spec.ts b/packages/sql/tests/migration.spec.ts index ac70ea66a..308f439c6 100644 --- a/packages/sql/tests/migration.spec.ts +++ b/packages/sql/tests/migration.spec.ts @@ -1,8 +1,8 @@ import { expect, test } from '@jest/globals'; import { AutoIncrement, entity, Index, PrimaryKey, Reference, ReflectionClass, ReflectionKind, Unique } from '@deepkit/type'; -import { DatabaseModel, IndexModel } from '../src/schema/table'; -import { DefaultPlatform } from '../src/platform/default-platform'; -import { SchemaParser } from '../src/reverse/schema-parser'; +import { DatabaseModel, IndexModel } from '../src/schema/table.js'; +import { DefaultPlatform } from '../src/platform/default-platform.js'; +import { SchemaParser } from '../src/reverse/schema-parser.js'; import { DatabaseEntityRegistry } from '@deepkit/orm'; @entity.name('user') diff --git a/packages/sql/tests/setup.ts b/packages/sql/tests/setup.ts index 5fc17b4fb..14db97ee3 100644 --- a/packages/sql/tests/setup.ts +++ b/packages/sql/tests/setup.ts @@ -1,6 +1,6 @@ import { Database } from '@deepkit/orm'; import { ClassType } from '@deepkit/core'; -import { SQLDatabaseAdapter } from '../src/sql-adapter'; +import { SQLDatabaseAdapter } from '../src/sql-adapter.js'; import { ReflectionClass } from '@deepkit/type'; export async function createSetup(adapter: SQLDatabaseAdapter, schemas: (ReflectionClass | ClassType)[]) { diff --git a/packages/sql/tests/sql-query.spec.ts b/packages/sql/tests/sql-query.spec.ts index e68afbd04..72d2f2f1c 100644 --- a/packages/sql/tests/sql-query.spec.ts +++ b/packages/sql/tests/sql-query.spec.ts @@ -1,12 +1,12 @@ import { expect, test } from '@jest/globals'; import { entity, ReflectionClass, ReflectionKind, serializer } from '@deepkit/type'; -import { SQLFilterBuilder } from '../src/sql-filter-builder'; +import { SQLFilterBuilder } from '../src/sql-filter-builder.js'; import { escape } from 'sqlstring'; -import { sql, SQLQueryModel } from '../src/sql-adapter'; -import { DefaultPlatform, SqlPlaceholderStrategy } from '../src/platform/default-platform'; -import { SchemaParser } from '../src/reverse/schema-parser'; -import { DatabaseModel } from '../src/schema/table'; -import { SqlBuilder } from '../src/sql-builder'; +import { sql, SQLQueryModel } from '../src/sql-adapter.js'; +import { DefaultPlatform, SqlPlaceholderStrategy } from '../src/platform/default-platform.js'; +import { SchemaParser } from '../src/reverse/schema-parser.js'; +import { DatabaseModel } from '../src/schema/table.js'; +import { SqlBuilder } from '../src/sql-builder.js'; function quoteId(value: string): string { return value; diff --git a/packages/sqlite/index.ts b/packages/sqlite/index.ts index 437ff86d4..e6fa12dc8 100644 --- a/packages/sqlite/index.ts +++ b/packages/sqlite/index.ts @@ -8,6 +8,6 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/sqlite-adapter'; -export * from './src/sqlite-platform'; -export * from './src/sqlite-serializer'; +export * from './src/sqlite-adapter.js'; +export * from './src/sqlite-platform.js'; +export * from './src/sqlite-serializer.js'; diff --git a/packages/sqlite/package-lock.json b/packages/sqlite/package-lock.json index c7903cfa6..8a73ac756 100644 --- a/packages/sqlite/package-lock.json +++ b/packages/sqlite/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/sqlite", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "dependencies": { "@types/better-sqlite3": "^5.4.1", diff --git a/packages/sqlite/src/sqlite-adapter.ts b/packages/sqlite/src/sqlite-adapter.ts index 7464cde09..b54e3b8ae 100644 --- a/packages/sqlite/src/sqlite-adapter.ts +++ b/packages/sqlite/src/sqlite-adapter.ts @@ -36,7 +36,7 @@ import { } from '@deepkit/sql'; import { Changes, getPartialSerializeFunction, getSerializeFunction, ReceiveType, ReflectionClass, resolvePath } from '@deepkit/type'; import sqlite3 from 'better-sqlite3'; -import { SQLitePlatform } from './sqlite-platform'; +import { SQLitePlatform } from './sqlite-platform.js'; import { FrameCategory, Stopwatch } from '@deepkit/stopwatch'; export class SQLiteStatement extends SQLStatement { diff --git a/packages/sqlite/src/sqlite-platform.ts b/packages/sqlite/src/sqlite-platform.ts index 457e232b3..04381e90e 100644 --- a/packages/sqlite/src/sqlite-platform.ts +++ b/packages/sqlite/src/sqlite-platform.ts @@ -10,9 +10,9 @@ import { Column, DefaultPlatform, ForeignKey, isSet, Sql, Table, TableDiff } from '@deepkit/sql'; import { isDateType, isIntegerType, isMapType, isSetType, isUUIDType, ReflectionClass, ReflectionKind, ReflectionProperty, Serializer, Type } from '@deepkit/type'; -import { SQLiteSchemaParser } from './sqlite-schema-parser'; -import { sqliteSerializer } from './sqlite-serializer'; -import { SQLiteFilterBuilder } from './sql-filter-builder.sqlite'; +import { SQLiteSchemaParser } from './sqlite-schema-parser.js'; +import { sqliteSerializer } from './sqlite-serializer.js'; +import { SQLiteFilterBuilder } from './sql-filter-builder.sqlite.js'; import { isArray, isObject } from '@deepkit/core'; import sqlstring from 'sqlstring-sqlite'; diff --git a/packages/sqlite/src/sqlite-schema-parser.ts b/packages/sqlite/src/sqlite-schema-parser.ts index 8cfbde020..e5063510f 100644 --- a/packages/sqlite/src/sqlite-schema-parser.ts +++ b/packages/sqlite/src/sqlite-schema-parser.ts @@ -10,7 +10,7 @@ import { DatabaseModel, ForeignKey, Table, parseType, SchemaParser, Column } from '@deepkit/sql'; import { arrayRemoveItem } from '@deepkit/core'; -import { isJsonLike } from './sqlite-platform'; +import { isJsonLike } from './sqlite-platform.js'; export class SQLiteSchemaParser extends SchemaParser { async parse(database: DatabaseModel, limitTableNames?: string[]) { diff --git a/packages/sqlite/tests/factory.ts b/packages/sqlite/tests/factory.ts index a3306dd28..673df816d 100644 --- a/packages/sqlite/tests/factory.ts +++ b/packages/sqlite/tests/factory.ts @@ -1,6 +1,6 @@ import { Database } from '@deepkit/orm'; import { DatabaseFactory } from '@deepkit/orm-integration'; -import { SQLiteDatabaseAdapter } from '../src/sqlite-adapter'; +import { SQLiteDatabaseAdapter } from '../src/sqlite-adapter.js'; import { mkdtempSync } from 'fs'; import { join } from 'path'; diff --git a/packages/sqlite/tests/integration.spec.ts b/packages/sqlite/tests/integration.spec.ts index 516c6f273..8cceceaf2 100644 --- a/packages/sqlite/tests/integration.spec.ts +++ b/packages/sqlite/tests/integration.spec.ts @@ -1,6 +1,6 @@ import { test } from '@jest/globals'; import { runIntegrationTests } from '@deepkit/orm-integration'; -import { databaseFactory } from './factory'; +import { databaseFactory } from './factory.js'; runIntegrationTests(databaseFactory); diff --git a/packages/sqlite/tests/migration.spec.ts b/packages/sqlite/tests/migration.spec.ts index 3bb70be46..98c8cee0c 100644 --- a/packages/sqlite/tests/migration.spec.ts +++ b/packages/sqlite/tests/migration.spec.ts @@ -1,7 +1,7 @@ import { expect, test } from '@jest/globals'; import { schemaMigrationRoundTrip } from '@deepkit/sql'; import { AutoIncrement, Entity, integer, MySQL, PrimaryKey, Reference, SQLite, typeOf, Unique } from '@deepkit/type'; -import { SQLiteDatabaseAdapter } from '../src/sqlite-adapter'; +import { SQLiteDatabaseAdapter } from '../src/sqlite-adapter.js'; import { DatabaseEntityRegistry } from '@deepkit/orm'; test('custom type', async () => { diff --git a/packages/sqlite/tests/sqlite.spec.ts b/packages/sqlite/tests/sqlite.spec.ts index fd1bf7633..68d05298b 100644 --- a/packages/sqlite/tests/sqlite.spec.ts +++ b/packages/sqlite/tests/sqlite.spec.ts @@ -1,8 +1,8 @@ import { expect, test } from '@jest/globals'; -import { SQLitePlatform } from '../src/sqlite-platform'; -import { databaseFactory } from './factory'; +import { SQLitePlatform } from '../src/sqlite-platform.js'; +import { databaseFactory } from './factory.js'; import { User, UserCredentials } from '@deepkit/orm-integration'; -import { SQLiteDatabaseAdapter, SQLiteDatabaseTransaction } from '../src/sqlite-adapter'; +import { SQLiteDatabaseAdapter, SQLiteDatabaseTransaction } from '../src/sqlite-adapter.js'; import { sleep } from '@deepkit/core'; import { AutoIncrement, cast, Entity, entity, PrimaryKey, Reference, ReflectionClass, serialize, typeOf, UUID, uuid } from '@deepkit/type'; import { Database, DatabaseEntityRegistry } from '@deepkit/orm'; diff --git a/packages/stopwatch/index.ts b/packages/stopwatch/index.ts index 5f9bc5d8f..a77a837c7 100644 --- a/packages/stopwatch/index.ts +++ b/packages/stopwatch/index.ts @@ -1,2 +1,2 @@ -export * from './src/stopwatch'; -export * from './src/types'; +export * from './src/stopwatch.js'; +export * from './src/types.js'; diff --git a/packages/stopwatch/src/stopwatch.ts b/packages/stopwatch/src/stopwatch.ts index 0471cc5a5..b2e372ddb 100644 --- a/packages/stopwatch/src/stopwatch.ts +++ b/packages/stopwatch/src/stopwatch.ts @@ -7,7 +7,7 @@ * * You should have received a copy of the MIT License along with this program. */ -import { FrameCategory, FrameCategoryModel, FrameData, FrameEnd, FrameStart, FrameType } from './types'; +import { FrameCategory, FrameCategoryModel, FrameData, FrameEnd, FrameStart, FrameType } from './types.js'; export abstract class StopwatchStore { public frameQueue: (FrameStart | FrameEnd)[] = []; diff --git a/packages/stopwatch/tests/stopwatch.spec.ts b/packages/stopwatch/tests/stopwatch.spec.ts index 8f7e7adfc..0e95815d7 100644 --- a/packages/stopwatch/tests/stopwatch.spec.ts +++ b/packages/stopwatch/tests/stopwatch.spec.ts @@ -1,5 +1,5 @@ -import { Stopwatch, StopwatchStore } from '../src/stopwatch'; -import { FrameCategory } from '../src/types'; +import { Stopwatch, StopwatchStore } from '../src/stopwatch.js'; +import { FrameCategory } from '../src/types.js'; import { expect, test } from '@jest/globals'; class Store extends StopwatchStore { diff --git a/packages/template/index.ts b/packages/template/index.ts index 1ff4fdf52..1b7bc3918 100644 --- a/packages/template/index.ts +++ b/packages/template/index.ts @@ -1,2 +1,2 @@ -export * from './src/template'; -export * from './src/optimize-tsx'; +export * from './src/template.js'; +export * from './src/optimize-tsx.js'; diff --git a/packages/template/jsx-runtime.ts b/packages/template/jsx-runtime.ts index 1af8d6f83..8feb9789c 100644 --- a/packages/template/jsx-runtime.ts +++ b/packages/template/jsx-runtime.ts @@ -1,11 +1,11 @@ /// -import { Attributes, createElement, Element, html } from './src/template'; -import { escape, escapeAttribute, safe, safeString } from './src/utils'; -import './src/optimize-tsx'; +import { Attributes, createElement, Element, html } from './src/template.js'; +import { escape, escapeAttribute, safe, safeString } from './src/utils.js'; +import './src/optimize-tsx.js'; -export { createElement, html } from './src/template'; -export { escape, escapeAttribute, safeString, safe } from './src/utils'; +export { createElement, html } from './src/template.js'; +export { escape, escapeAttribute, safeString, safe } from './src/utils.js'; export function jsx(element: Element, attributes?: Attributes | string | null) { return { render: element, attributes }; diff --git a/packages/template/package-lock.json b/packages/template/package-lock.json index c932f48b8..6098391f5 100644 --- a/packages/template/package-lock.json +++ b/packages/template/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/template", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "dependencies": { "@types/estree": "^0.0.45", diff --git a/packages/template/src/optimize-tsx.ts b/packages/template/src/optimize-tsx.ts index 314698b6b..7c8606428 100644 --- a/packages/template/src/optimize-tsx.ts +++ b/packages/template/src/optimize-tsx.ts @@ -30,8 +30,8 @@ import type { // @ts-ignore import abstractSyntaxTree from 'abstract-syntax-tree'; import { inDebugMode } from '@deepkit/core'; -import { escape, escapeHtml } from './utils'; -import { voidElements } from './template'; +import { escape, escapeHtml } from './utils.js'; +import { voidElements } from './template.js'; const { parse, generate, replace } = abstractSyntaxTree; diff --git a/packages/template/src/template.ts b/packages/template/src/template.ts index 09c601c99..0e6ce7a35 100644 --- a/packages/template/src/template.ts +++ b/packages/template/src/template.ts @@ -8,10 +8,10 @@ * You should have received a copy of the MIT License along with this program. */ import { ClassType, getClassName, isArray, isClass } from '@deepkit/core'; -import './optimize-tsx'; +import './optimize-tsx.js'; import { injectedFunction, Injector, Resolver } from '@deepkit/injector'; import { FrameCategory, Stopwatch } from '@deepkit/stopwatch'; -import { escapeAttribute, escapeHtml, safeString } from './utils'; +import { escapeAttribute, escapeHtml, safeString } from './utils.js'; import { reflect, ReflectionClass, ReflectionKind, Type } from '@deepkit/type'; export type Attributes = { diff --git a/packages/topsort/index.ts b/packages/topsort/index.ts index 9cbfc1a54..331c61b53 100644 --- a/packages/topsort/index.ts +++ b/packages/topsort/index.ts @@ -8,6 +8,6 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/array-sort'; -export * from './src/group-array-sort'; -export * from './src/base'; +export * from './src/array-sort.js'; +export * from './src/group-array-sort.js'; +export * from './src/base.js'; diff --git a/packages/topsort/src/array-sort.ts b/packages/topsort/src/array-sort.ts index cca0785de..64bf163dc 100644 --- a/packages/topsort/src/array-sort.ts +++ b/packages/topsort/src/array-sort.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { BaseImplementation, ElementNotFoundException } from './base'; +import { BaseImplementation, ElementNotFoundException } from './base.js'; interface ItemElement { item: T, diff --git a/packages/topsort/src/group-array-sort.ts b/packages/topsort/src/group-array-sort.ts index 6e604a5cf..cf67a288a 100644 --- a/packages/topsort/src/group-array-sort.ts +++ b/packages/topsort/src/group-array-sort.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { BaseImplementation, ElementNotFoundException } from './base'; +import { BaseImplementation, ElementNotFoundException } from './base.js'; interface ItemElement { item: T; diff --git a/packages/topsort/tests/group-sort.spec.ts b/packages/topsort/tests/group-sort.spec.ts index b934f5bde..520ebb87a 100644 --- a/packages/topsort/tests/group-sort.spec.ts +++ b/packages/topsort/tests/group-sort.spec.ts @@ -1,7 +1,7 @@ import { expect, test } from '@jest/globals'; -import { GroupArraySort } from '../src/group-array-sort'; -import { CircularDependencyException, ElementNotFoundException } from '../src/base'; -import { bench } from './utils'; +import { GroupArraySort } from '../src/group-array-sort.js'; +import { CircularDependencyException, ElementNotFoundException } from '../src/base.js'; +import { bench } from './utils.js'; import { fail } from 'assert'; function getElementsGroup(count: number) { diff --git a/packages/topsort/tests/sort.spec.ts b/packages/topsort/tests/sort.spec.ts index 84f424d5f..538be2820 100644 --- a/packages/topsort/tests/sort.spec.ts +++ b/packages/topsort/tests/sort.spec.ts @@ -1,7 +1,7 @@ import { expect, test } from '@jest/globals'; -import { ArraySort } from '../src/array-sort'; -import { bench } from './utils'; -import { CircularDependencyException, ElementNotFoundException } from '../src/base'; +import { ArraySort } from '../src/array-sort.js'; +import { bench } from './utils.js'; +import { CircularDependencyException, ElementNotFoundException } from '../src/base.js'; import { fail } from 'assert'; function getElementsFlat(count: number) { diff --git a/packages/type-angular/index.ts b/packages/type-angular/index.ts index c3317e1ae..cb9c36833 100644 --- a/packages/type-angular/index.ts +++ b/packages/type-angular/index.ts @@ -8,4 +8,4 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/form'; +export * from './src/form.js'; diff --git a/packages/type-angular/package-lock.json b/packages/type-angular/package-lock.json index f537ad6c4..97c9c78ec 100644 --- a/packages/type-angular/package-lock.json +++ b/packages/type-angular/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/type-angular", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "devDependencies": { "@angular/core": "~10.2.3 || ~11.0.0", diff --git a/packages/type-compiler/index.ts b/packages/type-compiler/index.ts index dc8fbfcc8..7a00b82e9 100644 --- a/packages/type-compiler/index.ts +++ b/packages/type-compiler/index.ts @@ -8,5 +8,5 @@ * You should have received a copy of the MIT License along with this program. */ -export * from './src/compiler'; -export * from './src/loader'; +export * from './src/compiler.js'; +export * from './src/loader.js'; diff --git a/packages/type-compiler/package-lock.json b/packages/type-compiler/package-lock.json index 8910fa745..5b81ee224 100644 --- a/packages/type-compiler/package-lock.json +++ b/packages/type-compiler/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/type-compiler", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "dependencies": { "@types/lz-string": "^1.3.34", diff --git a/packages/type-compiler/src/compiler.ts b/packages/type-compiler/src/compiler.ts index 30aac9c95..af33abe78 100644 --- a/packages/type-compiler/src/compiler.ts +++ b/packages/type-compiler/src/compiler.ts @@ -834,7 +834,7 @@ export class ReflectionTransformer implements CustomTransformer { )], NodeFlags.Const)); embedTopExpression.push(variable); } else { - //import {identifier} from './bar' + //import {identifier} from './bar.js' // import { identifier as identifier } is used to avoid automatic elision of imports (in angular builds for example) // that's probably a bit unstable. const specifier = this.f.createImportSpecifier(false, imp.identifier, imp.identifier); diff --git a/packages/type-compiler/src/reflection-ast.ts b/packages/type-compiler/src/reflection-ast.ts index 8f185c135..b85eb99a3 100644 --- a/packages/type-compiler/src/reflection-ast.ts +++ b/packages/type-compiler/src/reflection-ast.ts @@ -40,7 +40,7 @@ import { unescapeLeadingUnderscores } from 'typescript'; import { cloneNode as tsNodeClone, CloneNodeHook } from 'ts-clone-node'; -import { SourceFile } from './ts-types'; +import { SourceFile } from './ts-types.js'; export type PackExpression = Expression | string | number | boolean | bigint; diff --git a/packages/type-compiler/tests/transform.spec.ts b/packages/type-compiler/tests/transform.spec.ts index c72511a70..b91c4fbb0 100644 --- a/packages/type-compiler/tests/transform.spec.ts +++ b/packages/type-compiler/tests/transform.spec.ts @@ -1,12 +1,12 @@ import * as ts from 'typescript'; import { createSourceFile, ScriptTarget } from 'typescript'; import { expect, test } from '@jest/globals'; -import { ReflectionTransformer } from '../src/compiler'; -import { transform } from './utils'; +import { ReflectionTransformer } from '../src/compiler.js'; +import { transform } from './utils.js'; test('transform simple', () => { const sourceFile = createSourceFile('app.ts', ` - import { Logger } from './logger'; + import { Logger } from './logger.js'; function fn(logger: Logger) {} `, ScriptTarget.ESNext); @@ -26,7 +26,7 @@ test('transform util', () => { test('resolve import ts', () => { const res = transform({ 'app': ` - import { Logger } from './logger'; + import { Logger } from './logger.js'; function fn(logger: Logger) {} `, 'logger': `export class Logger {}` @@ -40,7 +40,7 @@ test('resolve import ts', () => { test('resolve import d.ts', () => { const res = transform({ 'app': ` - import { Logger } from './logger'; + import { Logger } from './logger.js'; function fn(logger: Logger) {} `, 'logger.d.ts': `export declare class Logger {}` diff --git a/packages/type-compiler/tests/transpile.spec.ts b/packages/type-compiler/tests/transpile.spec.ts index 83f55e7e6..78025b6e0 100644 --- a/packages/type-compiler/tests/transpile.spec.ts +++ b/packages/type-compiler/tests/transpile.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from '@jest/globals'; -import { transpile, transpileAndRun } from './utils'; +import { transpile, transpileAndRun } from './utils.js'; test('function __type', () => { const res = transpile({ app: `function log(message: string) {}` }); @@ -10,7 +10,7 @@ test('function __type', () => { test('resolve import ts', () => { const res = transpile({ 'app': ` - import { Logger } from './logger'; + import { Logger } from './logger.js'; function fn(logger: Logger) {} `, 'logger': `export class Logger {}` @@ -24,7 +24,7 @@ test('resolve import ts', () => { test('resolve import d.ts', () => { const res = transpile({ 'app': ` - import { Logger } from './logger'; + import { Logger } from './logger.js'; function fn(logger: Logger) {} `, 'logger.d.ts': `export declare class Logger {}` diff --git a/packages/type-compiler/tests/utils.ts b/packages/type-compiler/tests/utils.ts index b00f3345e..ef79c1cd3 100644 --- a/packages/type-compiler/tests/utils.ts +++ b/packages/type-compiler/tests/utils.ts @@ -1,7 +1,7 @@ import * as ts from 'typescript'; import { createSourceFile, getPreEmitDiagnostics, ScriptTarget, TransformationContext } from 'typescript'; import { createSystem, createVirtualCompilerHost, knownLibFilesForCompilerOptions } from '@typescript/vfs'; -import { ReflectionTransformer } from '../src/compiler'; +import { ReflectionTransformer } from '../src/compiler.js'; import { readFileSync } from 'fs'; import { dirname, join } from 'path'; import { first } from '@deepkit/core'; diff --git a/packages/type/package-lock.json b/packages/type/package-lock.json index e78f7bf6b..26de08ab6 100644 --- a/packages/type/package-lock.json +++ b/packages/type/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/type", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "license": "MIT", "dependencies": { "@types/uuid": "^8.3.0", diff --git a/packages/type/src/inheritance.ts b/packages/type/src/inheritance.ts index 495197657..c8777e69a 100644 --- a/packages/type/src/inheritance.ts +++ b/packages/type/src/inheritance.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -// import { ClassSchema, PropertySchema } from './model'; +// import { ClassSchema, PropertySchema } from './model.js'; // // // export function findCommonDiscriminant(classSchemas: ClassSchema[]): string | undefined { diff --git a/packages/type/tests/advanced.spec.ts b/packages/type/tests/advanced.spec.ts index 312525165..1e8804c16 100644 --- a/packages/type/tests/advanced.spec.ts +++ b/packages/type/tests/advanced.spec.ts @@ -9,10 +9,10 @@ */ import { expect, test } from '@jest/globals'; -import { typeOf } from '../src/reflection/reflection'; -import { assertType, ReflectionKind, stringifyResolvedType, Type } from '../src/reflection/type'; -import { serialize } from '../src/serializer-facade'; -import { expectEqualType } from './utils'; +import { typeOf } from '../src/reflection/reflection.js'; +import { assertType, ReflectionKind, stringifyResolvedType, Type } from '../src/reflection/type.js'; +import { serialize } from '../src/serializer-facade.js'; +import { expectEqualType } from './utils.js'; test('array stack', () => { type Pop = T extends [...infer U, unknown] ? U : never diff --git a/packages/type/tests/change-detection.spec.ts b/packages/type/tests/change-detection.spec.ts index add6a9182..a599e8b6a 100644 --- a/packages/type/tests/change-detection.spec.ts +++ b/packages/type/tests/change-detection.spec.ts @@ -1,10 +1,10 @@ import { expect, test } from '@jest/globals'; -import { deserialize } from '../src/serializer-facade'; -import { createSnapshot } from '../src/snapshot'; -import { ReflectionClass, resolveClassType, typeOf } from '../src/reflection/reflection'; -import { buildChanges } from '../src/change-detector'; -import { atomicChange } from '../src/changes'; -import { ReflectionKind } from '../src/reflection/type'; +import { deserialize } from '../src/serializer-facade.js'; +import { createSnapshot } from '../src/snapshot.js'; +import { ReflectionClass, resolveClassType, typeOf } from '../src/reflection/reflection.js'; +import { buildChanges } from '../src/change-detector.js'; +import { atomicChange } from '../src/changes.js'; +import { ReflectionKind } from '../src/reflection/type.js'; test('change-detection string', () => { interface s { diff --git a/packages/type/tests/compiler.spec.ts b/packages/type/tests/compiler.spec.ts index 0ce5a9a15..7c4c6cf0f 100644 --- a/packages/type/tests/compiler.spec.ts +++ b/packages/type/tests/compiler.spec.ts @@ -3,7 +3,7 @@ import { describe, expect, test } from '@jest/globals'; import * as ts from 'typescript'; import { getPreEmitDiagnostics, ModuleKind, ScriptTarget, TransformationContext, transpileModule } from 'typescript'; import { DeclarationTransformer, ReflectionTransformer, transformer } from '@deepkit/type-compiler'; -import { reflect, reflect as reflect2, ReflectionClass, removeTypeName, typeOf as typeOf2 } from '../src/reflection/reflection'; +import { reflect, reflect as reflect2, ReflectionClass, removeTypeName, typeOf as typeOf2 } from '../src/reflection/reflection.js'; import { assertType, defaultAnnotation, @@ -18,11 +18,11 @@ import { TypeObjectLiteral, TypeProperty, TypeUnion -} from '../src/reflection/type'; +} from '../src/reflection/type.js'; import { ReflectionOp } from '@deepkit/type-spec'; import { ClassType, isObject } from '@deepkit/core'; -import { pack, resolveRuntimeType, typeInfer } from '../src/reflection/processor'; -import { expectEqualType } from './utils'; +import { pack, resolveRuntimeType, typeInfer } from '../src/reflection/processor.js'; +import { expectEqualType } from './utils.js'; import { createSystem, createVirtualCompilerHost, knownLibFilesForCompilerOptions } from '@typescript/vfs'; import { dirname, join } from 'path'; import { readFileSync } from 'fs'; @@ -182,30 +182,30 @@ const tests: [code: string | { [file: string]: string }, contains: string | stri // [`class Entity { p: Record; }`, `['p', ${packString([ReflectionOp.number, ReflectionOp.number, ReflectionOp.indexSignature, ReflectionOp.objectLiteral, ReflectionOp.property, 0, ReflectionOp.class])}]`], // // [{ - // app: `import {MyEnum} from './enum'; class Entity { p: MyEnum;}`, + // app: `import {MyEnum} from './enum.js'; class Entity { p: MyEnum;}`, // enum: `export enum MyEnum {}` // }, `[() => MyEnum, 'p', ${packString([ReflectionOp.enum, 0, ReflectionOp.property, 1, ReflectionOp.class])}]`], // // [{ - // app: `import {Model} from './model'; class Entity { p: Model;}`, + // app: `import {Model} from './model.js'; class Entity { p: Model;}`, // model: `export class Model {}` // }, `[() => Model, 'p', ${packString([ReflectionOp.classReference, 0, ReflectionOp.property, 1, ReflectionOp.class])}]`], // [{ - // app: `import {Pattern} from './model'; class Entity { p: Pattern;}`, + // app: `import {Pattern} from './model.js'; class Entity { p: Pattern;}`, // model: `export const REGEX = /abc/;\nexport type Pattern = {regex: typeof REGEX};` - // }, `import { REGEX } from './model'`], + // }, `import { REGEX } from './model.js'`], // [{ - // app: `import {Pattern} from './model'; class Entity { p: Pattern;}`, + // app: `import {Pattern} from './model.js'; class Entity { p: Pattern;}`, // model: `export const REGEX = /abc/;\ntype M = {name: T, regex: typeof REGEX}; type Pattern = M;` - // }, `import { REGEX } from './model'`], + // }, `import { REGEX } from './model.js'`], // [{ - // app: `import {Email} from './validator'; class Entity { p: Email;}`, + // app: `import {Email} from './validator.js'; class Entity { p: Email;}`, // validator: ` // export const REGEX = /abc/; // export type ValidatorMeta = { __meta?: { id: 'validator', name: Name, args: Args } } // export type Pattern = ValidatorMeta<'pattern', [T]> // export type Email = string & Pattern;` - // }, `import { EMAIL_REGEX } from './validator';`], + // }, `import { EMAIL_REGEX } from './validator.js';`], // // [`export interface MyInterface {id: number}; class Controller { public p: MyInterface[] = [];}`, // [ @@ -245,45 +245,45 @@ const tests: [code: string | { [file: string]: string }, contains: string | stri // // // Imported interfaces/types will be erased and inlined // [{ - // app: `import {Type} from './model'; class Entity { p: Type[];}`, + // app: `import {Type} from './model.js'; class Entity { p: Type[];}`, // model: `export type Type = {title: string}` // }, [ - // `!./model`, `!import {Type} from './model'`, + // `!./model`, `!import {Type} from './model.js'`, // `['title', 'p', ${packString([ReflectionOp.frame, ReflectionOp.string, ReflectionOp.propertySignature, 0, ReflectionOp.objectLiteral, ReflectionOp.array, ReflectionOp.property, 1, ReflectionOp.class])}]`, // ]], // // [{ - // app: `import {Message, Model} from './model'; class Entity { p: Message[]; m: Model[];}`, + // app: `import {Message, Model} from './model.js'; class Entity { p: Message[]; m: Model[];}`, // model: `export type Message = number; export class Model {};` - // }, [`import { Model } from './model'`, `[__ΩMessage, 'p', () => Model, 'm', ${packString([ + // }, [`import { Model } from './model.js'`, `[__ΩMessage, 'p', () => Model, 'm', ${packString([ // ReflectionOp.inline, 0, ReflectionOp.array, ReflectionOp.property, 1, // ReflectionOp.classReference, 2, ReflectionOp.array, ReflectionOp.property, 3, ReflectionOp.class])}]`]], // // [{ - // app: `import {Type} from './model'; class Entity { p: Type[];}`, + // app: `import {Type} from './model.js'; class Entity { p: Type[];}`, // model: `export interface Type {title: string}` - // }, [`!./model`, `!import {Type} from './model'`]], + // }, [`!./model`, `!import {Type} from './model.js'`]], // // // multiple exports can be resolved // [{ - // app: `import {Type, Model} from './myPackage'; class Entity { p: Type[]; p2: Model[]};`, - // myPackage: `export * from './myPackageModel';`, + // app: `import {Type, Model} from './myPackage.js'; class Entity { p: Type[]; p2: Model[]};`, + // myPackage: `export * from './myPackageModel.js';`, // myPackageModel: `export interface Type {title: string}; export class Model {}` - // }, [`import { Model } from './myPackage'`, `[__ΩType, 'p', () => Model, 'p2', ${packString([ + // }, [`import { Model } from './myPackage.js'`, `[__ΩType, 'p', () => Model, 'p2', ${packString([ // ReflectionOp.inline, 0, ReflectionOp.array, ReflectionOp.property, 1, ReflectionOp.classReference, 2, ReflectionOp.array, ReflectionOp.property, 3, ReflectionOp.class])}]`]], // // [{ - // app: `import {Type, Model} from './myPackage'; class Entity { p: Type[]; p2: Model[]};`, - // myPackage: `export {Model, Type} from './myPackageModel';`, + // app: `import {Type, Model} from './myPackage.js'; class Entity { p: Type[]; p2: Model[]};`, + // myPackage: `export {Model, Type} from './myPackageModel.js';`, // myPackageModel: `export interface Type {title: string}; export class Model {}` - // }, [`import { Model } from './myPackage'`, `[__ΩType, 'p', () => Model, 'p2', ${packString([ + // }, [`import { Model } from './myPackage.js'`, `[__ΩType, 'p', () => Model, 'p2', ${packString([ // ReflectionOp.inline, 0, ReflectionOp.array, ReflectionOp.property, 1, ReflectionOp.classReference, 2, ReflectionOp.array, ReflectionOp.property, 3, ReflectionOp.class])}]`]], // // [{ - // app: `import {Type, Model} from './myPackage'; class Entity { p: Type[]; p2: Model[]};`, - // myPackage: `export {MM as Model, TT as Type} from './myPackageModel';`, + // app: `import {Type, Model} from './myPackage.js'; class Entity { p: Type[]; p2: Model[]};`, + // myPackage: `export {MM as Model, TT as Type} from './myPackageModel.js';`, // myPackageModel: `export interface TT {title: string}; export class MM {}` - // }, [`import { Model } from './myPackage'`, `[__ΩType, 'p', () => Model, 'p2', ${packString([ + // }, [`import { Model } from './myPackage.js'`, `[__ΩType, 'p', () => Model, 'p2', ${packString([ // ReflectionOp.inline, 0, ReflectionOp.array, ReflectionOp.property, 1, ReflectionOp.classReference, 2, ReflectionOp.array, ReflectionOp.property, 3, ReflectionOp.class])}]`]], // // [` @@ -300,9 +300,9 @@ const tests: [code: string | { [file: string]: string }, contains: string | stri // // // erasable types will be kept // [{ - // app: `import {Model} from './model'; class Entity { p: Model[];}`, + // app: `import {Model} from './model.js'; class Entity { p: Model[];}`, // model: `export class Model {}` - // }, [`[() => Model, 'p', ${packString([ReflectionOp.classReference, 0, ReflectionOp.array, ReflectionOp.property, 1, ReflectionOp.class])}]`, `import { Model } from './model';`]], + // }, [`[() => Model, 'p', ${packString([ReflectionOp.classReference, 0, ReflectionOp.array, ReflectionOp.property, 1, ReflectionOp.class])}]`, `import { Model } from './model.js';`]], // // //functions // [`const fn = (param: string): void {}`, `const fn = Object.assign((param) => { }, { __type: ['param', '', ${packString([ReflectionOp.string, ReflectionOp.parameter, 0, ReflectionOp.void, ReflectionOp.function, 1])}] })`], @@ -1682,7 +1682,7 @@ test('InstanceType', () => { test('import types named import esm simple', () => { const js = transpile({ 'app': ` - import {User} from './user'; + import {User} from './user.js'; typeOf(); `, 'user': `export interface User {id: number}` @@ -1699,7 +1699,7 @@ test('import types named import esm simple', () => { test('import types named import esm', () => { const js = transpile({ 'app': ` - import {User} from './user'; + import {User} from './user.js'; export type bla = string; export const hi = 'yes'; type a = Partial; diff --git a/packages/type/tests/complex-filter.spec.ts b/packages/type/tests/complex-filter.spec.ts index dc018ab60..b49c59144 100644 --- a/packages/type/tests/complex-filter.spec.ts +++ b/packages/type/tests/complex-filter.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; -import { typeOf } from '../src/reflection/reflection'; -import { cast } from '../src/serializer-facade'; +import { typeOf } from '../src/reflection/reflection.js'; +import { cast } from '../src/serializer-facade.js'; type BSONTypeAlias = | 'number' diff --git a/packages/type/tests/conditional-type.spec.ts b/packages/type/tests/conditional-type.spec.ts index d1f070a3b..3c8b7728f 100644 --- a/packages/type/tests/conditional-type.spec.ts +++ b/packages/type/tests/conditional-type.spec.ts @@ -1,7 +1,7 @@ import { expect, test } from '@jest/globals'; -import { removeTypeName, typeOf } from '../src/reflection/reflection'; -import { ReflectionKind } from '../src/reflection/type'; -import { expectEqualType } from './utils'; +import { removeTypeName, typeOf } from '../src/reflection/reflection.js'; +import { ReflectionKind } from '../src/reflection/type.js'; +import { expectEqualType } from './utils.js'; test('distributed conditional type', () => { //when T is naked, it will be distributed diff --git a/packages/type/tests/decorator-builder.spec.ts b/packages/type/tests/decorator-builder.spec.ts index 01cbeb7a9..663098db8 100644 --- a/packages/type/tests/decorator-builder.spec.ts +++ b/packages/type/tests/decorator-builder.spec.ts @@ -6,7 +6,7 @@ import { createPropertyDecoratorContext, DecoratorAndFetchSignature, DualDecorator, ExtractApiDataType, ExtractClass, FluidDecorator, isDecoratorContext, mergeDecorator, PropertyDecoratorFn, PropertyDecoratorResult -} from '../src/decorator-builder'; +} from '../src/decorator-builder.js'; test('without host', () => { class Dec1Model { diff --git a/packages/type/tests/default.spec.ts b/packages/type/tests/default.spec.ts index 53717b6a1..981e48be1 100644 --- a/packages/type/tests/default.spec.ts +++ b/packages/type/tests/default.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; -import { typeOf } from '../src/reflection/reflection'; -import { defaultValue } from '../src/default'; +import { typeOf } from '../src/reflection/reflection.js'; +import { defaultValue } from '../src/default.js'; test('default basic', () => { expect(defaultValue(typeOf())).toBe(undefined); diff --git a/packages/type/tests/document-scenario/document.ts b/packages/type/tests/document-scenario/document.ts index df93af3cc..3b322ea27 100644 --- a/packages/type/tests/document-scenario/document.ts +++ b/packages/type/tests/document-scenario/document.ts @@ -1,4 +1,4 @@ -import { uuid } from '../../src/utils'; +import { uuid } from '../../src/utils.js'; type MongoId = string & {__mongoId?: true}; type Primary = {__primary?: true}; diff --git a/packages/type/tests/generics.spec.ts b/packages/type/tests/generics.spec.ts index 8fd2f04c2..b30a906d3 100644 --- a/packages/type/tests/generics.spec.ts +++ b/packages/type/tests/generics.spec.ts @@ -9,10 +9,10 @@ */ import { expect, test } from '@jest/globals'; -import { typeInfer } from '../src/reflection/processor'; -import { removeTypeName, typeOf } from '../src/reflection/reflection'; -import { assertType, ReflectionKind, ReflectionVisibility, Type, Widen } from '../src/reflection/type'; -import { expectEqualType } from './utils'; +import { typeInfer } from '../src/reflection/processor.js'; +import { removeTypeName, typeOf } from '../src/reflection/reflection.js'; +import { assertType, ReflectionKind, ReflectionVisibility, Type, Widen } from '../src/reflection/type.js'; +import { expectEqualType } from './utils.js'; test('infer T from function primitive', () => { function fn(v: T) { diff --git a/packages/type/tests/integration.spec.ts b/packages/type/tests/integration.spec.ts index efdc1cc67..800579adb 100644 --- a/packages/type/tests/integration.spec.ts +++ b/packages/type/tests/integration.spec.ts @@ -10,8 +10,8 @@ import { ClassType } from '@deepkit/core'; import { expect, test } from '@jest/globals'; -import { entity, t } from '../src/decorator'; -import { propertiesOf, reflect, ReflectionClass, ReflectionFunction, ReflectionMethod, typeOf, valuesOf } from '../src/reflection/reflection'; +import { entity, t } from '../src/decorator.js'; +import { propertiesOf, reflect, ReflectionClass, ReflectionFunction, ReflectionMethod, typeOf, valuesOf } from '../src/reflection/reflection.js'; import { annotateClass, assertType, @@ -50,14 +50,14 @@ import { TypeObjectLiteral, TypeTuple, Unique -} from '../src/reflection/type'; +} from '../src/reflection/type.js'; import { TypeNumberBrand } from '@deepkit/type-spec'; -import { MinLength, validate, ValidatorError } from '../src/validator'; -import { expectEqualType } from './utils'; -import { MyAlias } from './types'; -import { resolveRuntimeType } from '../src/reflection/processor'; -import { uuid } from '../src/utils'; -import { deserialize } from '../src/serializer-facade'; +import { MinLength, validate, ValidatorError } from '../src/validator.js'; +import { expectEqualType } from './utils.js'; +import { MyAlias } from './types.js'; +import { resolveRuntimeType } from '../src/reflection/processor.js'; +import { uuid } from '../src/utils.js'; +import { deserialize } from '../src/serializer-facade.js'; test('class', () => { class Entity { diff --git a/packages/type/tests/mixin.spec.ts b/packages/type/tests/mixin.spec.ts index 5b9abf0e9..8fe3a9bbb 100644 --- a/packages/type/tests/mixin.spec.ts +++ b/packages/type/tests/mixin.spec.ts @@ -1,9 +1,9 @@ import { expect, test } from '@jest/globals'; -import { mixin } from '../src/mixin'; -import { assertType, AutoIncrement, PrimaryKey, ReflectionKind, resolveTypeMembers } from '../src/reflection/type'; -import { MinLength } from '../src/validator'; -import { reflect, ReflectionClass } from '../src/reflection/reflection'; -import { deserialize } from '../src/serializer-facade'; +import { mixin } from '../src/mixin.js'; +import { assertType, AutoIncrement, PrimaryKey, ReflectionKind, resolveTypeMembers } from '../src/reflection/type.js'; +import { MinLength } from '../src/validator.js'; +import { reflect, ReflectionClass } from '../src/reflection/reflection.js'; +import { deserialize } from '../src/serializer-facade.js'; test('mixin base', () => { class Timestampable { diff --git a/packages/type/tests/pack.spec.ts b/packages/type/tests/pack.spec.ts index 136bd8e42..f906fa32f 100644 --- a/packages/type/tests/pack.spec.ts +++ b/packages/type/tests/pack.spec.ts @@ -1,6 +1,6 @@ /** @reflection never */ import { expect, test } from '@jest/globals'; -import { pack, unpack } from '../src/reflection/processor'; +import { pack, unpack } from '../src/reflection/processor.js'; import { ReflectionOp } from '@deepkit/type-spec'; Error.stackTraceLimit = 200; diff --git a/packages/type/tests/path.spec.ts b/packages/type/tests/path.spec.ts index 56dac767c..dd7ee6f8d 100644 --- a/packages/type/tests/path.spec.ts +++ b/packages/type/tests/path.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; -import { pathResolver } from '../src/path'; -import { ReflectionKind } from '../src/reflection/type'; +import { pathResolver } from '../src/path.js'; +import { ReflectionKind } from '../src/reflection/type.js'; test('pathResolver object literal', () => { type t = { a: string, b: number }; diff --git a/packages/type/tests/performance-issue1.spec.ts b/packages/type/tests/performance-issue1.spec.ts index c5100f887..d57a4374b 100644 --- a/packages/type/tests/performance-issue1.spec.ts +++ b/packages/type/tests/performance-issue1.spec.ts @@ -9,14 +9,14 @@ */ import { test } from '@jest/globals'; import { AbstractClassType, arrayRemoveItem, ClassType, CompilerContext, CustomError, getClassName, isClass, isFunction, urlJoin } from '@deepkit/core'; -import { isExtendable } from '../src/reflection/extends'; -import { ReceiveType, reflect, resolveReceiveType } from '../src/reflection/reflection'; -import { isType, metaAnnotation, ReflectionKind, Type } from '../src/reflection/type'; +import { isExtendable } from '../src/reflection/extends.js'; +import { ReceiveType, reflect, resolveReceiveType } from '../src/reflection/reflection.js'; +import { isType, metaAnnotation, ReflectionKind, Type } from '../src/reflection/type.js'; import { IncomingMessage, ServerResponse } from 'http'; import { Writable } from 'stream'; import querystring from 'querystring'; -import { entity } from '../src/decorator'; -import { SerializationOptions, Serializer } from '../src/serializer'; +import { entity } from '../src/decorator.js'; +import { SerializationOptions, Serializer } from '../src/serializer.js'; export interface ProviderBase { /** diff --git a/packages/type/tests/processor.spec.ts b/packages/type/tests/processor.spec.ts index 8e816a1e2..ae39bcaa5 100644 --- a/packages/type/tests/processor.spec.ts +++ b/packages/type/tests/processor.spec.ts @@ -1,10 +1,10 @@ /** @reflection never */ import { expect, test } from '@jest/globals'; -import { pack } from '../src/reflection/processor'; -import { copyAndSetParent, ParentLessType, ReflectionKind, ReflectionVisibility, TypeObjectLiteral, TypePropertySignature, TypeUnion } from '../src/reflection/type'; +import { pack } from '../src/reflection/processor.js'; +import { copyAndSetParent, ParentLessType, ReflectionKind, ReflectionVisibility, TypeObjectLiteral, TypePropertySignature, TypeUnion } from '../src/reflection/type.js'; import { MappedModifier, ReflectionOp } from '@deepkit/type-spec'; -import { isExtendable } from '../src/reflection/extends'; -import { assertValidParent, expectEqualType, expectType } from './utils'; +import { isExtendable } from '../src/reflection/extends.js'; +import { assertValidParent, expectEqualType, expectType } from './utils.js'; Error.stackTraceLimit = 200; diff --git a/packages/type/tests/receive-type.spec.ts b/packages/type/tests/receive-type.spec.ts index 1c37d7a9a..35e0ff468 100644 --- a/packages/type/tests/receive-type.spec.ts +++ b/packages/type/tests/receive-type.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; -import { ReceiveType, resolveReceiveType, typeOf } from '../src/reflection/reflection'; -import { ReflectionKind, Type } from '../src/reflection/type'; +import { ReceiveType, resolveReceiveType, typeOf } from '../src/reflection/reflection.js'; +import { ReflectionKind, Type } from '../src/reflection/type.js'; test('typeOf', () => { const type = typeOf(); diff --git a/packages/type/tests/serializer-api.spec.ts b/packages/type/tests/serializer-api.spec.ts index 0e0ce6c7b..dab7b266b 100644 --- a/packages/type/tests/serializer-api.spec.ts +++ b/packages/type/tests/serializer-api.spec.ts @@ -1,8 +1,8 @@ import { expect, test } from '@jest/globals'; -import { EmptySerializer, executeTemplates, Serializer, TemplateRegistry, TemplateState, TypeGuardRegistry } from '../src/serializer'; -import { ReflectionKind } from '../src/reflection/type'; +import { EmptySerializer, executeTemplates, Serializer, TemplateRegistry, TemplateState, TypeGuardRegistry } from '../src/serializer.js'; +import { ReflectionKind } from '../src/reflection/type.js'; import { CompilerContext } from '@deepkit/core'; -import { deserialize } from '../src/serializer-facade'; +import { deserialize } from '../src/serializer-facade.js'; test('TypeGuardRegistry', () => { const serializer = new Serializer(); diff --git a/packages/type/tests/serializer.spec.ts b/packages/type/tests/serializer.spec.ts index 33c50b223..ac2591224 100644 --- a/packages/type/tests/serializer.spec.ts +++ b/packages/type/tests/serializer.spec.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ import { expect, test } from '@jest/globals'; -import { reflect, ReflectionClass } from '../src/reflection/reflection'; +import { reflect, ReflectionClass } from '../src/reflection/reflection.js'; import { AutoIncrement, BackReference, @@ -23,12 +23,12 @@ import { Reference, ReflectionKind, SignedBinaryBigInt -} from '../src/reflection/type'; -import { createSerializeFunction, getSerializeFunction, serializer } from '../src/serializer'; -import { cast, deserialize, serialize } from '../src/serializer-facade'; +} from '../src/reflection/type.js'; +import { createSerializeFunction, getSerializeFunction, serializer } from '../src/serializer.js'; +import { cast, deserialize, serialize } from '../src/serializer-facade.js'; import { getClassName } from '@deepkit/core'; -import { entity, t } from '../src/decorator'; -import { Alphanumeric, MaxLength, MinLength, ValidationError } from '../src/validator'; +import { entity, t } from '../src/decorator.js'; +import { Alphanumeric, MaxLength, MinLength, ValidationError } from '../src/validator.js'; test('deserializer', () => { class User { diff --git a/packages/type/tests/simple-decorator.spec.ts b/packages/type/tests/simple-decorator.spec.ts index bb640c2d5..eb3bed4c5 100644 --- a/packages/type/tests/simple-decorator.spec.ts +++ b/packages/type/tests/simple-decorator.spec.ts @@ -9,8 +9,8 @@ */ import { expect, test } from '@jest/globals'; -import { typeOf } from '../src/reflection/reflection'; -import { PrimaryKey, primaryKeyAnnotation } from '../src/reflection/type'; +import { typeOf } from '../src/reflection/reflection.js'; +import { PrimaryKey, primaryKeyAnnotation } from '../src/reflection/type.js'; test('primary key', () => { type t = number & PrimaryKey; diff --git a/packages/type/tests/snapshot.spec.ts b/packages/type/tests/snapshot.spec.ts index 708dad755..8bf03ebc7 100644 --- a/packages/type/tests/snapshot.spec.ts +++ b/packages/type/tests/snapshot.spec.ts @@ -1,7 +1,7 @@ import { expect, test } from '@jest/globals'; -import { getConverterForSnapshot, getPrimaryKeyExtractor, getPrimaryKeyHashGenerator } from '../src/snapshot'; -import { PrimaryKey, Reference } from '../src/reflection/type'; -import { ReflectionClass } from '../src/reflection/reflection'; +import { getConverterForSnapshot, getPrimaryKeyExtractor, getPrimaryKeyHashGenerator } from '../src/snapshot.js'; +import { PrimaryKey, Reference } from '../src/reflection/type.js'; +import { ReflectionClass } from '../src/reflection/reflection.js'; class Image { title: string = ''; diff --git a/packages/type/tests/standard-functions.spec.ts b/packages/type/tests/standard-functions.spec.ts index 5e9a405f5..b72d6da98 100644 --- a/packages/type/tests/standard-functions.spec.ts +++ b/packages/type/tests/standard-functions.spec.ts @@ -9,8 +9,8 @@ */ import { test, expect } from '@jest/globals'; -import { ReceiveType, removeTypeName, resolveReceiveType } from '../src/reflection/reflection'; -import { expectEqualType } from './utils'; +import { ReceiveType, removeTypeName, resolveReceiveType } from '../src/reflection/reflection.js'; +import { expectEqualType } from './utils.js'; import { stringifyResolvedType } from '../src/reflection/type.js'; function equalType(a?: ReceiveType, b?: ReceiveType) { diff --git a/packages/type/tests/stringify.spec.ts b/packages/type/tests/stringify.spec.ts index af3d9266c..98aa7e928 100644 --- a/packages/type/tests/stringify.spec.ts +++ b/packages/type/tests/stringify.spec.ts @@ -1,7 +1,7 @@ import { expect, test } from '@jest/globals'; -import { stringifyResolvedType, stringifyShortResolvedType, stringifyType, Type } from '../src/reflection/type'; -import { reflect, typeOf } from '../src/reflection/reflection'; -import { deserializeType, serializeType } from '../src/type-serialization'; +import { stringifyResolvedType, stringifyShortResolvedType, stringifyType, Type } from '../src/reflection/type.js'; +import { reflect, typeOf } from '../src/reflection/reflection.js'; +import { deserializeType, serializeType } from '../src/type-serialization.js'; test('stringifyType basic', () => { expect(stringifyResolvedType(typeOf())).toBe('string'); diff --git a/packages/type/tests/type-infer-runtime.spec.ts b/packages/type/tests/type-infer-runtime.spec.ts index bf9a5a350..18e491b24 100644 --- a/packages/type/tests/type-infer-runtime.spec.ts +++ b/packages/type/tests/type-infer-runtime.spec.ts @@ -1,6 +1,6 @@ import { expect, test } from '@jest/globals'; -import { typeInfer } from '../src/reflection/processor'; -import { ReflectionClass, typeOf } from '../src/reflection/reflection'; +import { typeInfer } from '../src/reflection/processor.js'; +import { ReflectionClass, typeOf } from '../src/reflection/reflection.js'; import { Entity, entityAnnotation, float, @@ -15,8 +15,8 @@ import { TypePropertySignature, Unique, widenLiteral -} from '../src/reflection/type'; -import { expectEqualType } from './utils'; +} from '../src/reflection/type.js'; +import { expectEqualType } from './utils.js'; import { Maximum, MinLength, validate } from '../src/validator.js'; const symbol = Symbol(); diff --git a/packages/type/tests/type-serialization.spec.ts b/packages/type/tests/type-serialization.spec.ts index bb7d6eabf..c273d8de0 100644 --- a/packages/type/tests/type-serialization.spec.ts +++ b/packages/type/tests/type-serialization.spec.ts @@ -1,6 +1,6 @@ import { getClassName } from '@deepkit/core'; import { expect, test } from '@jest/globals'; -import { ReceiveType, reflect, ReflectionClass, resolveReceiveType, typeOf } from '../src/reflection/reflection'; +import { ReceiveType, reflect, ReflectionClass, resolveReceiveType, typeOf } from '../src/reflection/reflection.js'; import { assertType, Entity, @@ -14,10 +14,10 @@ import { Type, TypeClass, TypeProperty -} from '../src/reflection/type'; -import { deserializeType, serializeType } from '../src/type-serialization'; -import { entity } from '../src/decorator'; -import { deserialize } from '../src/serializer-facade'; +} from '../src/reflection/type.js'; +import { deserializeType, serializeType } from '../src/type-serialization.js'; +import { entity } from '../src/decorator.js'; +import { deserialize } from '../src/serializer-facade.js'; test('serialize basics', () => { expect(serializeType(typeOf())).toEqual([{ kind: ReflectionKind.string }]); diff --git a/packages/type/tests/type-spec.spec.ts b/packages/type/tests/type-spec.spec.ts index 8411bae7c..85e44f2e4 100644 --- a/packages/type/tests/type-spec.spec.ts +++ b/packages/type/tests/type-spec.spec.ts @@ -1,9 +1,9 @@ import { expect, test } from '@jest/globals'; -import { ReceiveType, ReflectionClass, resolveReceiveType } from '../src/reflection/reflection'; -import { AutoIncrement, BackReference, isReferenceType, MapName, MongoId, PrimaryKey, Reference, UUID } from '../src/reflection/type'; -import { cast, cloneClass, serialize } from '../src/serializer-facade'; -import { createReference } from '../src/reference'; -import { unpopulatedSymbol } from '../src/core'; +import { ReceiveType, ReflectionClass, resolveReceiveType } from '../src/reflection/reflection.js'; +import { AutoIncrement, BackReference, isReferenceType, MapName, MongoId, PrimaryKey, Reference, UUID } from '../src/reflection/type.js'; +import { cast, cloneClass, serialize } from '../src/serializer-facade.js'; +import { createReference } from '../src/reference.js'; +import { unpopulatedSymbol } from '../src/core.js'; (BigInt.prototype as any).toJSON = function () { return this.toString(); diff --git a/packages/type/tests/type.spec.ts b/packages/type/tests/type.spec.ts index 22011a506..abf7c0c4b 100644 --- a/packages/type/tests/type.spec.ts +++ b/packages/type/tests/type.spec.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from '@jest/globals'; -import { hasCircularReference, ReceiveType, reflect, ReflectionClass, resolveReceiveType, typeOf, visit } from '../src/reflection/reflection'; +import { hasCircularReference, ReceiveType, reflect, ReflectionClass, resolveReceiveType, typeOf, visit } from '../src/reflection/reflection.js'; import { assertType, Embedded, @@ -19,12 +19,12 @@ import { TypeObjectLiteral, TypeProperty, UUID, validationAnnotation -} from '../src/reflection/type'; -import { isExtendable } from '../src/reflection/extends'; -import { expectEqualType } from './utils'; +} from '../src/reflection/type.js'; +import { isExtendable } from '../src/reflection/extends.js'; +import { expectEqualType } from './utils.js'; import { ClassType } from '@deepkit/core'; -import { Partial } from '../src/changes'; -import { MaxLength, MinLength } from '../src/validator'; +import { Partial } from '../src/changes.js'; +import { MaxLength, MinLength } from '../src/validator.js'; //note: this needs to run in a strict TS mode to infer correctly in the IDE type Extends = [A] extends [B] ? true : false; diff --git a/packages/type/tests/typedarray.spec.ts b/packages/type/tests/typedarray.spec.ts index 467093553..1303e9eb1 100644 --- a/packages/type/tests/typedarray.spec.ts +++ b/packages/type/tests/typedarray.spec.ts @@ -1,9 +1,9 @@ import { expect, test } from '@jest/globals'; import { Buffer } from 'buffer'; -import { ReflectionClass } from '../src/reflection/reflection'; -import { assertType, binaryTypes, ReflectionKind } from '../src/reflection/type'; -import { base64ToArrayBuffer, base64ToTypedArray, typedArrayToBase64, typedArrayToBuffer } from '../src/core'; -import { deserialize, serialize } from '../src/serializer-facade'; +import { ReflectionClass } from '../src/reflection/reflection.js'; +import { assertType, binaryTypes, ReflectionKind } from '../src/reflection/type.js'; +import { base64ToArrayBuffer, base64ToTypedArray, typedArrayToBase64, typedArrayToBuffer } from '../src/core.js'; +import { deserialize, serialize } from '../src/serializer-facade.js'; test('mapping', async () => { class Clazz { diff --git a/packages/type/tests/typeguard.spec.ts b/packages/type/tests/typeguard.spec.ts index 004b58d9b..7fddfb9b3 100644 --- a/packages/type/tests/typeguard.spec.ts +++ b/packages/type/tests/typeguard.spec.ts @@ -8,8 +8,8 @@ * You should have received a copy of the MIT License along with this program. */ import { expect, test } from '@jest/globals'; -import { float, float32, int8, integer, PrimaryKey, Reference } from '../src/reflection/type'; -import { is } from '../src/typeguard'; +import { float, float32, int8, integer, PrimaryKey, Reference } from '../src/reflection/type.js'; +import { is } from '../src/typeguard.js'; test('primitive string', () => { expect(is('a')).toEqual(true); diff --git a/packages/type/tests/utils.ts b/packages/type/tests/utils.ts index 3d90bb9ba..3178b5bdc 100644 --- a/packages/type/tests/utils.ts +++ b/packages/type/tests/utils.ts @@ -1,5 +1,5 @@ -import { getTypeJitContainer, ParentLessType, ReflectionKind, Type } from '../src/reflection/type'; -import { Processor, RuntimeStackEntry } from '../src/reflection/processor'; +import { getTypeJitContainer, ParentLessType, ReflectionKind, Type } from '../src/reflection/type.js'; +import { Processor, RuntimeStackEntry } from '../src/reflection/processor.js'; import { expect } from '@jest/globals'; import { ReflectionOp } from '@deepkit/type-spec'; import { isArray, isObject } from '@deepkit/core'; diff --git a/packages/type/tests/validation.spec.ts b/packages/type/tests/validation.spec.ts index 91b4607c2..58467031e 100644 --- a/packages/type/tests/validation.spec.ts +++ b/packages/type/tests/validation.spec.ts @@ -1,9 +1,9 @@ import { expect, test } from '@jest/globals'; -import { Email, MaxLength, MinLength, Positive, Validate, validate, validates, ValidatorError } from '../src/validator'; -import { assert, is } from '../src/typeguard'; -import { AutoIncrement, Excluded, Group, integer, PrimaryKey, Type, Unique } from '../src/reflection/type'; -import { t } from '../src/decorator'; -import { ReflectionClass, typeOf } from '../src/reflection/reflection'; +import { Email, MaxLength, MinLength, Positive, Validate, validate, validates, ValidatorError } from '../src/validator.js'; +import { assert, is } from '../src/typeguard.js'; +import { AutoIncrement, Excluded, Group, integer, PrimaryKey, Type, Unique } from '../src/reflection/type.js'; +import { t } from '../src/decorator.js'; +import { ReflectionClass, typeOf } from '../src/reflection/reflection.js'; import { validatedDeserialize } from '../src/serializer-facade.js'; test('primitives', () => { diff --git a/packages/ui-library/index.ts b/packages/ui-library/index.ts index 768b3a342..c7739903b 100644 --- a/packages/ui-library/index.ts +++ b/packages/ui-library/index.ts @@ -1,4 +1,4 @@ -export * from './src/subject'; -export * from './src/utils'; -export * from './src/angular-module'; -export * from './src/components/box/box.component'; +export * from './src/subject.js'; +export * from './src/utils.js'; +export * from './src/angular-module.js'; +export * from './src/components/box/box.component.js'; diff --git a/packages/ui-library/src/angular-module.ts b/packages/ui-library/src/angular-module.ts index 5a3690ed9..570635e29 100644 --- a/packages/ui-library/src/angular-module.ts +++ b/packages/ui-library/src/angular-module.ts @@ -1,11 +1,11 @@ -import { DeepkitBoxComponent } from './components/box/box.component'; +import { DeepkitBoxComponent } from './components/box/box.component.js'; import { ModuleWithProviders, NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { CodeHighlightComponent } from './components/code-highlight.component'; +import { CodeHighlightComponent } from './components/code-highlight.component.js'; import { DuiAppModule, DuiButtonModule, DuiIconModule, DuiSplitterModule } from '@deepkit/desktop-ui'; -import { HeaderStatusBarComponent } from './components/header-status-bar.component'; -import { HeaderLogoComponent } from './components/header-logo.component'; -import { ToggleBoxComponent } from './components/toggle-box.component'; +import { HeaderStatusBarComponent } from './components/header-status-bar.component.js'; +import { HeaderLogoComponent } from './components/header-logo.component.js'; +import { ToggleBoxComponent } from './components/toggle-box.component.js'; @NgModule({ declarations: [ diff --git a/packages/ui-library/src/components/code-highlight.component.ts b/packages/ui-library/src/components/code-highlight.component.ts index 1a09d038f..95488acd8 100644 --- a/packages/ui-library/src/components/code-highlight.component.ts +++ b/packages/ui-library/src/components/code-highlight.component.ts @@ -6,7 +6,7 @@ import 'prismjs/components/prism-sql'; import 'prismjs/components/prism-bash'; import 'prismjs/components/prism-json'; import { isPlatformBrowser } from '@angular/common'; -import { removeIndent } from '../utils'; +import { removeIndent } from '../utils.js'; @Directive({ selector: '[codeHighlight]' diff --git a/packages/workflow/index.ts b/packages/workflow/index.ts index 725cc92e6..d7a0e7aab 100644 --- a/packages/workflow/index.ts +++ b/packages/workflow/index.ts @@ -1 +1 @@ -export * from './src/workflow'; +export * from './src/workflow.js'; diff --git a/packages/workflow/tests/workflow.spec.ts b/packages/workflow/tests/workflow.spec.ts index b1602a5ae..7915206c9 100644 --- a/packages/workflow/tests/workflow.spec.ts +++ b/packages/workflow/tests/workflow.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from '@jest/globals'; -import { createWorkflow, WorkflowEvent } from '../src/workflow'; +import { createWorkflow, WorkflowEvent } from '../src/workflow.js'; import { eventDispatcher, EventDispatcher, EventToken } from '@deepkit/event'; import { InjectorContext, InjectorModule } from '@deepkit/injector'; From d3a040f6158ab6ac492febef7f40504fb4e89909 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Tue, 12 Jul 2022 19:12:01 +0200 Subject: [PATCH 02/53] fix: Fix jest config to allow .js extensions --- package.json | 5 ++++- packages/angular-universal/package.json | 5 ++++- packages/api-console-api/package.json | 5 ++++- packages/api-console-module/package.json | 5 ++++- packages/app/package.json | 5 ++++- packages/broker/package.json | 5 ++++- packages/bson/package.json | 5 ++++- packages/core-rxjs/package.json | 5 ++++- packages/core/package.json | 8 ++++---- packages/crypto/package.json | 5 ++++- packages/event/package.json | 8 ++++---- packages/framework-debug-api/package.json | 5 ++++- packages/framework-integration/package.json | 5 ++++- packages/framework/package.json | 5 ++++- packages/fs/package.json | 5 ++++- packages/http/package.json | 8 ++++---- packages/injector/package.json | 8 ++++---- packages/logger/package.json | 5 ++++- packages/mongo/package.json | 5 ++++- packages/mysql/package.json | 5 ++++- packages/orm-browser-api/package.json | 5 ++++- packages/orm-browser-example/package.json | 5 ++++- packages/orm-browser/package.json | 5 ++++- packages/orm-integration/package.json | 5 ++++- packages/orm/package.json | 8 ++++---- packages/postgres/package.json | 5 ++++- packages/rpc-tcp/package.json | 5 ++++- packages/rpc/package.json | 5 ++++- packages/skeleton/package.json | 5 ++++- packages/sql/package.json | 5 ++++- packages/sqlite/package.json | 5 ++++- packages/stopwatch/package.json | 5 ++++- packages/template/package.json | 5 ++++- packages/topsort/package.json | 5 ++++- packages/type-angular/package.json | 5 ++++- packages/type-compiler/package.json | 8 ++++---- packages/type-spec/package.json | 5 ++++- packages/type/package.json | 8 ++++---- packages/ui-library/package.json | 5 ++++- packages/workflow/package.json | 5 ++++- 40 files changed, 160 insertions(+), 61 deletions(-) diff --git a/package.json b/package.json index 0e2dffd22..38b58eb20 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,10 @@ "engines": { "node": ">= 14.0.0" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "resolver": "./jest-resolver.js", "testPathIgnorePatterns": [ "packages/*/dist" diff --git a/packages/angular-universal/package.json b/packages/angular-universal/package.json index 5dc9c593c..9687c6470 100644 --- a/packages/angular-universal/package.json +++ b/packages/angular-universal/package.json @@ -54,7 +54,10 @@ "@deepkit/type": "^1.0.1-alpha.72", "@types/node": "^14.0.0" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "transform": { "^.+\\.(ts|tsx)$": "ts-jest" }, diff --git a/packages/api-console-api/package.json b/packages/api-console-api/package.json index 95093f345..9be400be0 100644 --- a/packages/api-console-api/package.json +++ b/packages/api-console-api/package.json @@ -39,7 +39,10 @@ "@deepkit/rpc": "^1.0.1-alpha.72", "@deepkit/type": "^1.0.1-alpha.72" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "testEnvironment": "node", "transform": { "^.+\\.(ts|tsx)$": "ts-jest" diff --git a/packages/api-console-module/package.json b/packages/api-console-module/package.json index 652250a2d..293fca4a0 100644 --- a/packages/api-console-module/package.json +++ b/packages/api-console-module/package.json @@ -51,7 +51,10 @@ "@deepkit/type": "^1.0.1-alpha.72", "rxjs": "~6.6.0" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "transform": { "^.+\\.(ts|tsx)$": "ts-jest" }, diff --git a/packages/app/package.json b/packages/app/package.json index 79a089ee4..122554165 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -43,7 +43,10 @@ "@deepkit/workflow": "^1.0.1-alpha.72", "conditional-type-checks": "^1.0.5" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "transform": { "^.+\\.(ts|tsx)$": "ts-jest" }, diff --git a/packages/broker/package.json b/packages/broker/package.json index b2d185e87..bf06cef89 100644 --- a/packages/broker/package.json +++ b/packages/broker/package.json @@ -35,7 +35,10 @@ "@deepkit/rpc": "^1.0.1-alpha.72", "@deepkit/type": "^1.0.1-alpha.72" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "transform": { "^.+\\.(ts|tsx)$": "ts-jest" }, diff --git a/packages/bson/package.json b/packages/bson/package.json index 71824cbca..0077fe9b1 100644 --- a/packages/bson/package.json +++ b/packages/bson/package.json @@ -37,7 +37,10 @@ "bson": "^4.4.0", "bson-ext": "^4.0.0" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "testEnvironment": "node", "transform": { "^.+\\.(ts|tsx)$": "ts-jest" diff --git a/packages/core-rxjs/package.json b/packages/core-rxjs/package.json index a4142df71..2d303b361 100644 --- a/packages/core-rxjs/package.json +++ b/packages/core-rxjs/package.json @@ -30,7 +30,10 @@ "@deepkit/core": "^1.0.1-alpha.72", "rxjs": "~6.6.0" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "transform": { "^.+\\.(ts|tsx)$": "ts-jest" }, diff --git a/packages/core/package.json b/packages/core/package.json index a38001aa9..17ce682a0 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -29,13 +29,13 @@ "scripts": { "build": "echo '{\"type\": \"module\"}' > ./dist/esm/package.json" }, - "jest": { - "transform": { - "^.+\\.(ts|tsx)$": "ts-jest" - }, + "jest": { "moduleNameMapper": { "(.+)\\.js": "$1" }, + "transform": { + "^.+\\.(ts|tsx)$": "ts-jest" + }, "testMatch": [ "**/tests/**/*.spec.ts" ] diff --git a/packages/crypto/package.json b/packages/crypto/package.json index c0409032e..4fb16b922 100644 --- a/packages/crypto/package.json +++ b/packages/crypto/package.json @@ -14,7 +14,10 @@ "browser": { "crypto": false }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "transform": { "^.+\\.(ts|tsx)$": "ts-jest" }, diff --git a/packages/event/package.json b/packages/event/package.json index db233a433..8ea042c68 100644 --- a/packages/event/package.json +++ b/packages/event/package.json @@ -31,13 +31,13 @@ "@deepkit/injector": "^1.0.1-alpha.72", "@deepkit/type": "^1.0.1-alpha.72" }, - "jest": { - "transform": { - "^.+\\.(ts|tsx)$": "ts-jest" - }, + "jest": { "moduleNameMapper": { "(.+)\\.js": "$1" }, + "transform": { + "^.+\\.(ts|tsx)$": "ts-jest" + }, "testMatch": [ "**/tests/**/*.spec.ts" ] diff --git a/packages/framework-debug-api/package.json b/packages/framework-debug-api/package.json index 982b3ce91..8a297596b 100644 --- a/packages/framework-debug-api/package.json +++ b/packages/framework-debug-api/package.json @@ -45,7 +45,10 @@ "@deepkit/type": "^1.0.1-alpha.72", "rxjs": "~6.6.0" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "testEnvironment": "node", "transform": { "^.+\\.(ts|tsx)$": "ts-jest" diff --git a/packages/framework-integration/package.json b/packages/framework-integration/package.json index 7c2759d49..bfbef540e 100644 --- a/packages/framework-integration/package.json +++ b/packages/framework-integration/package.json @@ -42,7 +42,10 @@ "@types/tmp": "^0.0.33", "@types/ws": "^7.4.0" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "testEnvironment": "node", "transform": { "^.+\\.(ts|tsx)$": "ts-jest" diff --git a/packages/framework/package.json b/packages/framework/package.json index fda36bf18..eef9dda58 100644 --- a/packages/framework/package.json +++ b/packages/framework/package.json @@ -94,7 +94,10 @@ "@types/ws": "^7.4.0", "rxjs": "~6.6.0" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "testEnvironment": "node", "transform": { "^.+\\.(ts|tsx)$": "ts-jest" diff --git a/packages/fs/package.json b/packages/fs/package.json index a8b46bebb..bb828dc12 100644 --- a/packages/fs/package.json +++ b/packages/fs/package.json @@ -25,7 +25,10 @@ "devDependencies": { "@types/fs-extra": "^9.0.1" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "transform": { "^.+\\.(ts|tsx)$": "ts-jest" }, diff --git a/packages/http/package.json b/packages/http/package.json index e6916217e..bec169d7c 100644 --- a/packages/http/package.json +++ b/packages/http/package.json @@ -50,13 +50,13 @@ "@types/node": "14.14.28", "@types/send": "^0.14.6" }, - "jest": { - "transform": { - "^.+\\.(ts|tsx)$": "ts-jest" - }, + "jest": { "moduleNameMapper": { "(.+)\\.js": "$1" }, + "transform": { + "^.+\\.(ts|tsx)$": "ts-jest" + }, "resolver": "../../jest-resolver.js", "testMatch": [ "**/tests/**/*.spec.ts" diff --git a/packages/injector/package.json b/packages/injector/package.json index 1dff14424..bbb4b034f 100644 --- a/packages/injector/package.json +++ b/packages/injector/package.json @@ -30,14 +30,14 @@ "@deepkit/type": "^1.0.1-alpha.72", "benchmark": "^2.1.4" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "testEnvironment": "node", "transform": { "^.+\\.(ts|tsx)$": "ts-jest" }, - "moduleNameMapper": { - "(.+)\\.js": "$1" - }, "testMatch": [ "**/tests/**/*.spec.ts" ] diff --git a/packages/logger/package.json b/packages/logger/package.json index 529bb628f..efe2dbbf3 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -33,7 +33,10 @@ "devDependencies": { "@deepkit/core": "^1.0.1-alpha.72" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "testEnvironment": "node", "transform": { "^.+\\.(ts|tsx)$": "ts-jest" diff --git a/packages/mongo/package.json b/packages/mongo/package.json index ae73bb76b..ea210602e 100644 --- a/packages/mongo/package.json +++ b/packages/mongo/package.json @@ -44,7 +44,10 @@ "@types/node": "14.14.28", "mongodb": "3.6.0" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "runner": "../../jest-serial-runner.js", "testEnvironment": "node", "transform": { diff --git a/packages/mysql/package.json b/packages/mysql/package.json index 774507dfa..54b27bd2f 100644 --- a/packages/mysql/package.json +++ b/packages/mysql/package.json @@ -40,7 +40,10 @@ "@deepkit/stopwatch": "^1.0.1-alpha.72", "@deepkit/type": "^1.0.1-alpha.72" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "runner": "../../jest-serial-runner.js", "testEnvironment": "node", "transform": { diff --git a/packages/orm-browser-api/package.json b/packages/orm-browser-api/package.json index fd7faa05a..9bdfb1c79 100644 --- a/packages/orm-browser-api/package.json +++ b/packages/orm-browser-api/package.json @@ -31,7 +31,10 @@ "@deepkit/stopwatch": "^1.0.1-alpha.72", "@deepkit/type": "^1.0.1-alpha.72" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "testEnvironment": "node", "transform": { "^.+\\.(ts|tsx)$": "ts-jest" diff --git a/packages/orm-browser-example/package.json b/packages/orm-browser-example/package.json index 36dd51034..48e87a727 100644 --- a/packages/orm-browser-example/package.json +++ b/packages/orm-browser-example/package.json @@ -24,7 +24,10 @@ "devDependencies": { "reflect-metadata": "^0.1.13" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "testEnvironment": "node", "transform": { "^.+\\.(ts|tsx)$": "ts-jest" diff --git a/packages/orm-browser/package.json b/packages/orm-browser/package.json index e7c0556e4..ef7fb9ac0 100644 --- a/packages/orm-browser/package.json +++ b/packages/orm-browser/package.json @@ -34,7 +34,10 @@ "@types/faker": "5.1.6", "reflect-metadata": "^0.1.13" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "testEnvironment": "node", "transform": { "^.+\\.(ts|tsx)$": "ts-jest" diff --git a/packages/orm-integration/package.json b/packages/orm-integration/package.json index 854c85eda..d625ed797 100644 --- a/packages/orm-integration/package.json +++ b/packages/orm-integration/package.json @@ -21,7 +21,10 @@ "@deepkit/orm": "^1.0.1-alpha.0", "@deepkit/sql": "^1.0.1-alpha.0" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "runner": "../../jest-serial-runner.js", "testEnvironment": "node", "transform": { diff --git a/packages/orm/package.json b/packages/orm/package.json index 87b07718d..0b7d8e743 100644 --- a/packages/orm/package.json +++ b/packages/orm/package.json @@ -46,14 +46,14 @@ "@types/sqlstring": "^2.2.1", "conditional-type-checks": "^1.0.5" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "testEnvironment": "node", "transform": { "^.+\\.(ts|tsx)$": "ts-jest" }, - "moduleNameMapper": { - "(.+)\\.js": "$1" - }, "testMatch": [ "**/tests/**/*.spec.ts" ] diff --git a/packages/postgres/package.json b/packages/postgres/package.json index a58ab1e5c..d42482931 100644 --- a/packages/postgres/package.json +++ b/packages/postgres/package.json @@ -44,7 +44,10 @@ "@deepkit/type": "^1.0.1-alpha.72", "@types/sqlstring": "^2.2.1" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "runner": "../../jest-serial-runner.js", "testEnvironment": "node", "transform": { diff --git a/packages/rpc-tcp/package.json b/packages/rpc-tcp/package.json index 5b69ad8d0..74bee7455 100644 --- a/packages/rpc-tcp/package.json +++ b/packages/rpc-tcp/package.json @@ -32,7 +32,10 @@ "devDependencies": { "@deepkit/rpc": "^1.0.1-alpha.72" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "transform": { "^.+\\.(ts|tsx)$": "ts-jest" }, diff --git a/packages/rpc/package.json b/packages/rpc/package.json index 5bfe17503..e7331f791 100644 --- a/packages/rpc/package.json +++ b/packages/rpc/package.json @@ -46,7 +46,10 @@ "@types/node": "14.14.28", "rxjs": "~6.6.0" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "transform": { "^.+\\.(ts|tsx)$": "ts-jest" }, diff --git a/packages/skeleton/package.json b/packages/skeleton/package.json index 8f3a98b0c..9e9954504 100644 --- a/packages/skeleton/package.json +++ b/packages/skeleton/package.json @@ -30,7 +30,10 @@ "devDependencies": { "@deepkit/core": "^1.0.1-alpha.13" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "transform": { "^.+\\.(ts|tsx)$": "ts-jest" }, diff --git a/packages/sql/package.json b/packages/sql/package.json index 22a0dac01..2ef1cf256 100644 --- a/packages/sql/package.json +++ b/packages/sql/package.json @@ -55,7 +55,10 @@ "@deepkit/stopwatch": "^1.0.1-alpha.72", "@deepkit/type": "^1.0.1-alpha.72" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "runner": "../../jest-serial-runner.js", "testEnvironment": "node", "transform": { diff --git a/packages/sqlite/package.json b/packages/sqlite/package.json index 2a051b13b..6f7b6e316 100644 --- a/packages/sqlite/package.json +++ b/packages/sqlite/package.json @@ -42,7 +42,10 @@ "@deepkit/stopwatch": "^1.0.1-alpha.72", "@deepkit/type": "^1.0.1-alpha.72" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "runner": "../../jest-serial-runner.js", "testEnvironment": "node", "transform": { diff --git a/packages/stopwatch/package.json b/packages/stopwatch/package.json index d136f4efa..4ac73c2ee 100644 --- a/packages/stopwatch/package.json +++ b/packages/stopwatch/package.json @@ -29,7 +29,10 @@ "@deepkit/core": "^1.0.1-alpha.72", "@deepkit/type": "^1.0.1-alpha.72" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "transform": { "^.+\\.(ts|tsx)$": "ts-jest" }, diff --git a/packages/template/package.json b/packages/template/package.json index 92866dc41..d393feae3 100644 --- a/packages/template/package.json +++ b/packages/template/package.json @@ -41,7 +41,10 @@ "@deepkit/stopwatch": "^1.0.1-alpha.72", "@deepkit/type": "^1.0.1-alpha.72" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "transform": { "^.+\\.(ts|tsx)$": "ts-jest" }, diff --git a/packages/topsort/package.json b/packages/topsort/package.json index e96dfe935..5f46fee92 100644 --- a/packages/topsort/package.json +++ b/packages/topsort/package.json @@ -22,7 +22,10 @@ "repository": "https://github.com/deepkit/deepkit-framework", "author": "Marc J. Schmidt ", "license": "MIT", - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "testEnvironment": "node", "transform": { "^.+\\.(ts|tsx)$": "ts-jest" diff --git a/packages/type-angular/package.json b/packages/type-angular/package.json index 9aa31c4a1..301fb8c00 100644 --- a/packages/type-angular/package.json +++ b/packages/type-angular/package.json @@ -23,7 +23,10 @@ "@deepkit/type": "^1.0.1-alpha.72", "rxjs": "~6.6.0" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "transform": { "^.+\\.(ts|tsx)$": "ts-jest" }, diff --git a/packages/type-compiler/package.json b/packages/type-compiler/package.json index e1d76e0e0..ece2dd9da 100644 --- a/packages/type-compiler/package.json +++ b/packages/type-compiler/package.json @@ -37,7 +37,10 @@ "strip-json-comments": "^3.1.1", "ts-clone-node": "^0.3.29" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "testEnvironment": "node", "transform": { "^.+\\.(ts|tsx)$": "ts-jest" @@ -45,9 +48,6 @@ "testMatch": [ "**/tests/**/*.spec.ts" ], - "moduleNameMapper": { - "(.+)\\.js": "$1" - }, "globals": { "ts-jest": { "tsconfig": "/tsconfig.test.json" diff --git a/packages/type-spec/package.json b/packages/type-spec/package.json index 01095a2e2..7381df136 100644 --- a/packages/type-spec/package.json +++ b/packages/type-spec/package.json @@ -22,7 +22,10 @@ "repository": "https://github.com/deepkit/deepkit-framework", "author": "Marc J. Schmidt ", "license": "MIT", - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "testEnvironment": "node", "transform": { "^.+\\.(ts|tsx)$": "ts-jest" diff --git a/packages/type/package.json b/packages/type/package.json index 7bf9b97bd..9649dccae 100644 --- a/packages/type/package.json +++ b/packages/type/package.json @@ -39,7 +39,10 @@ "@typescript/vfs": "^1.3.5", "lz-string": "^1.4.4" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "testEnvironment": "node", "transform": { "^.+\\.(ts|tsx)$": "ts-jest" @@ -47,9 +50,6 @@ "testMatch": [ "**/tests/**/*.spec.ts" ], - "moduleNameMapper": { - "(.+)\\.js": "$1" - }, "globals": { "ts-jest": { "tsconfig": "/tsconfig.test.json" diff --git a/packages/ui-library/package.json b/packages/ui-library/package.json index 617caf72f..41e01194e 100644 --- a/packages/ui-library/package.json +++ b/packages/ui-library/package.json @@ -32,7 +32,10 @@ "@angular/common": "~12.2.0", "rxjs": "~6.6.0" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "transform": { "^.+\\.(ts|tsx)$": "ts-jest" }, diff --git a/packages/workflow/package.json b/packages/workflow/package.json index 221cd8abd..db5a2b336 100644 --- a/packages/workflow/package.json +++ b/packages/workflow/package.json @@ -35,7 +35,10 @@ "@deepkit/stopwatch": "^1.0.1-alpha.72", "@deepkit/type": "^1.0.1-alpha.72" }, - "jest": { + "jest": { + "moduleNameMapper": { + "(.+)\\.js": "$1" + }, "transform": { "^.+\\.(ts|tsx)$": "ts-jest" }, From 983bec6beb91c96852145c19191aa7041b6787ab Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Tue, 12 Jul 2022 19:47:35 +0200 Subject: [PATCH 03/53] fix: Fix angular webpack config to allow .js extensions --- packages/framework-debug-gui/extra-webpack.config.js | 7 ++++++- packages/framework-debug-gui/package.json | 1 + packages/orm-browser-gui/extra-webpack.config.js | 7 ++++++- packages/orm-browser-gui/package.json | 1 + 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/framework-debug-gui/extra-webpack.config.js b/packages/framework-debug-gui/extra-webpack.config.js index 9bac881f7..e0d23dd19 100644 --- a/packages/framework-debug-gui/extra-webpack.config.js +++ b/packages/framework-debug-gui/extra-webpack.config.js @@ -1,3 +1,5 @@ +const ResolveTypeScriptPlugin = require("resolve-typescript-plugin"); + module.exports = { resolve: { fallback: { @@ -6,6 +8,9 @@ module.exports = { path: false, process: false, '@deepkit/logger': false - } + }, + plugins: [new ResolveTypeScriptPlugin({ + includeNodeModules: true + })] } } diff --git a/packages/framework-debug-gui/package.json b/packages/framework-debug-gui/package.json index 4d21782a7..0c19396b6 100644 --- a/packages/framework-debug-gui/package.json +++ b/packages/framework-debug-gui/package.json @@ -72,6 +72,7 @@ "pixi.js": "^5.3.8", "prismjs": "^1.24.1", "protractor": "~7.0.0", + "resolve-typescript-plugin": "^1.2.0", "rxjs": "~6.6.0", "ts-node": "~8.3.0", "tslib": "^2.0.0", diff --git a/packages/orm-browser-gui/extra-webpack.config.js b/packages/orm-browser-gui/extra-webpack.config.js index 9bac881f7..e0d23dd19 100644 --- a/packages/orm-browser-gui/extra-webpack.config.js +++ b/packages/orm-browser-gui/extra-webpack.config.js @@ -1,3 +1,5 @@ +const ResolveTypeScriptPlugin = require("resolve-typescript-plugin"); + module.exports = { resolve: { fallback: { @@ -6,6 +8,9 @@ module.exports = { path: false, process: false, '@deepkit/logger': false - } + }, + plugins: [new ResolveTypeScriptPlugin({ + includeNodeModules: true + })] } } diff --git a/packages/orm-browser-gui/package.json b/packages/orm-browser-gui/package.json index f1c578ef0..509d8038d 100644 --- a/packages/orm-browser-gui/package.json +++ b/packages/orm-browser-gui/package.json @@ -62,6 +62,7 @@ "karma-jasmine-html-reporter": "~1.6.0", "panzoom": "^9.4.2", "protractor": "~7.0.0", + "resolve-typescript-plugin": "^1.2.0", "rxjs": "^6.6.7", "ts-node": "~8.3.0", "tslib": "^2.3.0", From 1c8f7b084078bf97710d0b1da3269538d87464d8 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Wed, 13 Jul 2022 10:55:55 +0200 Subject: [PATCH 04/53] fix: Add custom angular webpack config for api-console-guiFix to allow .js extensions --- packages/api-console-gui/angular.json | 5 ++- .../api-console-gui/extra-webpack.config.js | 9 ++++ packages/mongo/package-lock.json | 34 +++++++++++++++ packages/orm-browser-gui/package-lock.json | 41 ++++++++++++++++++- packages/rpc-tcp/package-lock.json | 8 ++++ 5 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 packages/api-console-gui/extra-webpack.config.js diff --git a/packages/api-console-gui/angular.json b/packages/api-console-gui/angular.json index 2921d8d28..eb8970aab 100644 --- a/packages/api-console-gui/angular.json +++ b/packages/api-console-gui/angular.json @@ -42,8 +42,11 @@ "prefix": "app", "architect": { "build": { - "builder": "@angular-devkit/build-angular:browser", + "builder": "@angular-devkit/custom-webpack:browser", "options": { + "customWebpackConfig": { + "path": "./extra-webpack.config.js" + }, "outputPath": "dist/api-console-gui", "index": "src/index.html", "preserveSymlinks": true, diff --git a/packages/api-console-gui/extra-webpack.config.js b/packages/api-console-gui/extra-webpack.config.js new file mode 100644 index 000000000..d9f42873a --- /dev/null +++ b/packages/api-console-gui/extra-webpack.config.js @@ -0,0 +1,9 @@ +const ResolveTypeScriptPlugin = require("resolve-typescript-plugin"); + +module.exports = { + resolve: { + plugins: [new ResolveTypeScriptPlugin({ + includeNodeModules: true + })] + } +} diff --git a/packages/mongo/package-lock.json b/packages/mongo/package-lock.json index b438313a8..ec4031136 100644 --- a/packages/mongo/package-lock.json +++ b/packages/mongo/package-lock.json @@ -58,7 +58,12 @@ "version": "1.0.1-alpha.72", "license": "MIT", "peer": true, + "dependencies": { + "@deepkit/crypto": "^1.0.1-alpha.72" + }, "devDependencies": { + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type": "^1.0.1-alpha.72", "@types/bson": "^4.0.3", "@types/node": "14.14.28", "bson": "^4.4.0", @@ -734,6 +739,7 @@ "../core": { "name": "@deepkit/core", "version": "1.0.1-alpha.72", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -1085,14 +1091,18 @@ "../type": { "name": "@deepkit/type", "version": "1.0.1-alpha.72", + "dev": true, "license": "MIT", "peer": true, "dependencies": { + "@deepkit/type-spec": "^1.0.1-alpha.72", "@types/uuid": "^8.3.0", "buffer": "^5.2.1", "uuid": "^8.3.2" }, "devDependencies": { + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type-compiler": "^1.0.1-alpha.72", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@typescript/vfs": "^1.3.5", @@ -1521,6 +1531,9 @@ "@deepkit/bson": { "version": "file:../bson", "requires": { + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/crypto": "^1.0.1-alpha.72", + "@deepkit/type": "^1.0.1-alpha.72", "@types/bson": "^4.0.3", "@types/node": "14.14.28", "bson": "^4.4.0", @@ -1560,6 +1573,9 @@ "@deepkit/type": { "version": "file:../type", "requires": { + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type-compiler": "^1.0.1-alpha.72", + "@deepkit/type-spec": "^1.0.1-alpha.72", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@types/uuid": "^8.3.0", @@ -2282,6 +2298,9 @@ "@deepkit/type": { "version": "file:../type", "requires": { + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type-compiler": "^1.0.1-alpha.72", + "@deepkit/type-spec": "^1.0.1-alpha.72", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@types/uuid": "^8.3.0", @@ -2407,6 +2426,9 @@ "@deepkit/type": { "version": "file:../type", "requires": { + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type-compiler": "^1.0.1-alpha.72", + "@deepkit/type-spec": "^1.0.1-alpha.72", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@types/uuid": "^8.3.0", @@ -2551,6 +2573,9 @@ "@deepkit/type": { "version": "file:../type", "requires": { + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type-compiler": "^1.0.1-alpha.72", + "@deepkit/type-spec": "^1.0.1-alpha.72", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@types/uuid": "^8.3.0", @@ -2785,6 +2810,9 @@ "@deepkit/type": { "version": "file:../type", "requires": { + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type-compiler": "^1.0.1-alpha.72", + "@deepkit/type-spec": "^1.0.1-alpha.72", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@types/uuid": "^8.3.0", @@ -2894,6 +2922,9 @@ "@deepkit/type": { "version": "file:../type", "requires": { + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type-compiler": "^1.0.1-alpha.72", + "@deepkit/type-spec": "^1.0.1-alpha.72", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@types/uuid": "^8.3.0", @@ -3014,6 +3045,9 @@ "@deepkit/type": { "version": "file:../type", "requires": { + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type-compiler": "^1.0.1-alpha.72", + "@deepkit/type-spec": "^1.0.1-alpha.72", "@types/lz-string": "^1.3.34", "@types/node": "14.14.28", "@types/uuid": "^8.3.0", diff --git a/packages/orm-browser-gui/package-lock.json b/packages/orm-browser-gui/package-lock.json index 4d1e36636..84fbca45e 100644 --- a/packages/orm-browser-gui/package-lock.json +++ b/packages/orm-browser-gui/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@deepkit/orm-browser-gui", - "version": "1.0.1-alpha.71", + "version": "1.0.1-alpha.72", "devDependencies": { "@angular-builders/custom-webpack": "^12.1.0", "@angular-devkit/build-angular": "~12.1.1", @@ -39,6 +39,7 @@ "karma-jasmine-html-reporter": "~1.6.0", "panzoom": "^9.4.2", "protractor": "~7.0.0", + "resolve-typescript-plugin": "^1.2.0", "rxjs": "^6.6.7", "ts-node": "~8.3.0", "tslib": "^2.3.0", @@ -13800,6 +13801,27 @@ "node": ">=4" } }, + "node_modules/resolve-typescript-plugin": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/resolve-typescript-plugin/-/resolve-typescript-plugin-1.2.0.tgz", + "integrity": "sha512-f0tu3fDdKcSmbgpLDNBKiMYPPG7D19tYCnph9B7GIlMMIWnbiLjAqqPXZVeO3POQSNF7ZYK4Ox+Gmvo116ERWQ==", + "dev": true, + "dependencies": { + "tslib": "2.3.1" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/resolve-typescript-plugin/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, "node_modules/resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -28134,6 +28156,23 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, + "resolve-typescript-plugin": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/resolve-typescript-plugin/-/resolve-typescript-plugin-1.2.0.tgz", + "integrity": "sha512-f0tu3fDdKcSmbgpLDNBKiMYPPG7D19tYCnph9B7GIlMMIWnbiLjAqqPXZVeO3POQSNF7ZYK4Ox+Gmvo116ERWQ==", + "dev": true, + "requires": { + "tslib": "2.3.1" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } + } + }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", diff --git a/packages/rpc-tcp/package-lock.json b/packages/rpc-tcp/package-lock.json index 4671d036a..e72f2df02 100644 --- a/packages/rpc-tcp/package-lock.json +++ b/packages/rpc-tcp/package-lock.json @@ -810,6 +810,8 @@ "license": "MIT", "peer": true, "devDependencies": { + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type": "^1.0.1-alpha.72", "benchmark": "^2.1.4" }, "peerDependencies": { @@ -858,6 +860,9 @@ "ansi-styles": "^4.3.0", "format-util": "^1.0.5" }, + "devDependencies": { + "@deepkit/core": "^1.0.1-alpha.72" + }, "peerDependencies": { "@deepkit/core": "^1.0.1-alpha.13" } @@ -2261,6 +2266,8 @@ "@deepkit/injector": { "version": "file:../injector", "requires": { + "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/type": "^1.0.1-alpha.72", "benchmark": "^2.1.4" }, "dependencies": { @@ -2509,6 +2516,7 @@ "@deepkit/logger": { "version": "file:../logger", "requires": { + "@deepkit/core": "^1.0.1-alpha.72", "@types/format-util": "^1.0.1", "ansi-styles": "^4.3.0", "format-util": "^1.0.5" From 02041ea8ac6bca916b8c8bea69d3c9d7221243d0 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Mon, 18 Jul 2022 18:59:14 +0200 Subject: [PATCH 05/53] chore: Lint import file extensions --- .github/workflows/main.yml | 22 ++++++++++++ lint-file-extension.cjs | 74 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 lint-file-extension.cjs diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0cf9a9e95..84cf45982 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -5,6 +5,28 @@ on: push: jobs: + lint: + runs-on: buildjet-2vcpu-ubuntu-2004 + strategy: + matrix: + node-version: [ 16.x ] + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: Cache node_modules + uses: actions/cache@v1 + with: + path: "**/node_modules" + key: ${{ runner.os }}-all2-node_modules-${{ hashFiles('**/package-lock.json') }} + - name: npm install + run: npm ci + - name: Check import file extensions + run: npm run lint + npm run lint:ext + unit-tests: runs-on: buildjet-2vcpu-ubuntu-2004 strategy: diff --git a/lint-file-extension.cjs b/lint-file-extension.cjs new file mode 100644 index 000000000..572fdced3 --- /dev/null +++ b/lint-file-extension.cjs @@ -0,0 +1,74 @@ +const path = require('path'); +const fs = require('fs/promises'); + +const search = async (dir, regex, ext, exclude) => { + const files = await getFiles(dir, ext, exclude); + const result = []; + + for (file of files) { + const content = await fs.readFile(file, 'utf8'); + + if (regex.test(content)) { + result.push(file); + } + }; + + return result; +} + +/** + * + * @param {string} dir + * @param {string} ext + * @param {string[]} excludes + * @returns + */ +const getFiles = async (dir, ext, excludes) => { + let files = []; + + if(excludes.find(exclude => dir.includes(exclude))) { + console.debug("exclude", dir) + return files; + } + + const stat = await fs.lstat(dir); + if (!stat.isDirectory()) { + return files; + } + + const dirFiles = await fs.readdir(dir); + + for (let file of dirFiles) { + const filePath = path.join(dir, file); + + if(excludes.find(exclude => filePath.includes(exclude))) { + continue + } + + const stat = await fs.lstat(filePath); + + if (stat.isDirectory()) { + const nestedFiles = await getFiles(filePath, ext, excludes); + files = files.concat(nestedFiles); + } else if (stat.isFile()) { + if (path.extname(file) === ext) { + files.push(filePath); + } + } + }; + + return files; +} + +search('./packages', /(import|from) ("|')\..*(? { + if(files.length) { + console.error(`Imports without file extension found!`); + console.error('\t' + files.join('\n\t')); + process.exit(1); + } + console.info("All imports are looking good :)"); + process.exit(0); + +}).catch((error) => { + console.error(error); +}) From fac976bfba9625c75d2b27acb4908d65a891c8d3 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Mon, 18 Jul 2022 19:03:51 +0200 Subject: [PATCH 06/53] chore: New lint:ext npm script --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 38b58eb20..2fd4ad059 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,8 @@ "docs": "rm -rf docs && node --max-old-space-size=12096 node_modules/.bin/typedoc packages/*/index.ts", "publish": "lerna publish --no-private prerelease", "publish-force": "npm run build && lerna publish --no-private --force-publish", - "publish-website": "heroku container:push web && heroku container:release web" + "publish-website": "heroku container:push web && heroku container:release web", + "lint:ext": "node lint-file-extension.cjs" }, "peerDependencies": {}, "devDependencies": { @@ -45,7 +46,7 @@ "engines": { "node": ">= 14.0.0" }, - "jest": { + "jest": { "moduleNameMapper": { "(.+)\\.js": "$1" }, From ee66dda1d90aa157596a024f07dc1fdff66e8ebd Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Tue, 19 Jul 2022 20:29:11 +0200 Subject: [PATCH 07/53] fix(rpc-tests): Fix import MemoryLoggerTransport Signed-off-by: Pascal Garber --- packages/rpc/tests/security.spec.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/rpc/tests/security.spec.ts b/packages/rpc/tests/security.spec.ts index 61806113b..cddb64844 100644 --- a/packages/rpc/tests/security.spec.ts +++ b/packages/rpc/tests/security.spec.ts @@ -4,8 +4,7 @@ import { rpc } from '../src/decorators.js'; import { RpcKernel, RpcKernelConnection } from '../src/server/kernel.js'; import { RpcKernelSecurity, Session } from '../src/server/security.js'; import { AuthenticationError } from '../src/model.js'; -import { MemoryLoggerTransport } from '../../logger/index.js'; -import { Logger } from '@deepkit/logger'; +import { Logger, MemoryLoggerTransport } from '@deepkit/logger'; test('authentication', async () => { class Controller { From 44516607f78bca68d41027b8bfd214b51cc417d3 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Tue, 19 Jul 2022 18:45:51 +0000 Subject: [PATCH 08/53] fix: ESM imports for api-console-gui --- packages/api-console-gui/angular.json | 2 +- packages/api-console-gui/package.json | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/api-console-gui/angular.json b/packages/api-console-gui/angular.json index eb8970aab..c2b42fa5c 100644 --- a/packages/api-console-gui/angular.json +++ b/packages/api-console-gui/angular.json @@ -42,7 +42,7 @@ "prefix": "app", "architect": { "build": { - "builder": "@angular-devkit/custom-webpack:browser", + "builder": "@angular-builders/custom-webpack:browser", "options": { "customWebpackConfig": { "path": "./extra-webpack.config.js" diff --git a/packages/api-console-gui/package.json b/packages/api-console-gui/package.json index 2428ff501..fe46a7978 100644 --- a/packages/api-console-gui/package.json +++ b/packages/api-console-gui/package.json @@ -19,6 +19,7 @@ "dist" ], "devDependencies": { + "@angular-builders/custom-webpack": "^12.1.0", "@angular-devkit/build-angular": "~12.2.0", "@angular/animations": "~12.2.0", "@angular/cdk": "^12.2.0", @@ -49,6 +50,7 @@ "ngx-markdown": "^12.0.1", "object-inspect": "^1.11.0", "prismjs": "^1.24.1", + "resolve-typescript-plugin": "^1.2.0", "rxjs": "~6.6.0", "tslib": "^2.3.0", "typescript": "~4.3.5", From 5741844278ad0a3ab46ca9542440e29359f422ce Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Tue, 19 Jul 2022 20:15:20 +0000 Subject: [PATCH 09/53] fix: Fix require and __dirname for ESM --- package.json | 2 +- packages/api-console-gui/angular.json | 2 +- packages/api-console-gui/package.json | 2 ++ packages/broker/src/client.ts | 4 ++-- packages/bson/index.ts | 6 ++++-- packages/desktop-ui/create-font.ts | 10 +++++++++ .../src/debug/http-debug.controller.ts | 11 ++++++++++ packages/http/src/http.ts | 21 +++++++++++++------ packages/orm-browser/main.ts | 10 +++++++++ packages/template/jsx-runtime.ts | 5 +++++ packages/type-compiler/tests/utils.ts | 10 ++++++++- 11 files changed, 70 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 38b58eb20..8db373551 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "madge": "^4.0.0", "npm-local-development": "^0.4.0", "ts-jest": "^27.1.3", - "ts-node": "^10.0.0", + "ts-node": "^10.9.1", "ts-node-dev": "^1.1.1", "typedoc": "^0.23.2", "typescript": "^4.6.2" diff --git a/packages/api-console-gui/angular.json b/packages/api-console-gui/angular.json index eb8970aab..c2b42fa5c 100644 --- a/packages/api-console-gui/angular.json +++ b/packages/api-console-gui/angular.json @@ -42,7 +42,7 @@ "prefix": "app", "architect": { "build": { - "builder": "@angular-devkit/custom-webpack:browser", + "builder": "@angular-builders/custom-webpack:browser", "options": { "customWebpackConfig": { "path": "./extra-webpack.config.js" diff --git a/packages/api-console-gui/package.json b/packages/api-console-gui/package.json index 2428ff501..fe46a7978 100644 --- a/packages/api-console-gui/package.json +++ b/packages/api-console-gui/package.json @@ -19,6 +19,7 @@ "dist" ], "devDependencies": { + "@angular-builders/custom-webpack": "^12.1.0", "@angular-devkit/build-angular": "~12.2.0", "@angular/animations": "~12.2.0", "@angular/cdk": "^12.2.0", @@ -49,6 +50,7 @@ "ngx-markdown": "^12.0.1", "object-inspect": "^1.11.0", "prismjs": "^1.24.1", + "resolve-typescript-plugin": "^1.2.0", "rxjs": "~6.6.0", "tslib": "^2.3.0", "typescript": "~4.3.5", diff --git a/packages/broker/src/client.ts b/packages/broker/src/client.ts index 02dbfb74d..818802bf0 100644 --- a/packages/broker/src/client.ts +++ b/packages/broker/src/client.ts @@ -7,8 +7,8 @@ * * You should have received a copy of the MIT License along with this program. */ - -import { BSONDeserializer, BSONSerializer, deserializeBSONWithoutOptimiser, getBSONDeserializer, getBSONSerializer } from '@deepkit/bson'; +import type { BSONDeserializer, BSONSerializer } from '@deepkit/bson'; +import { deserializeBSONWithoutOptimiser, getBSONDeserializer, getBSONSerializer } from '@deepkit/bson'; import { arrayRemoveItem, asyncOperation, ClassType } from '@deepkit/core'; import { AsyncSubscription } from '@deepkit/core-rxjs'; import { createRpcMessage, RpcBaseClient, RpcDirectClientAdapter, RpcMessage, RpcMessageRouteType } from '@deepkit/rpc'; diff --git a/packages/bson/index.ts b/packages/bson/index.ts index 0ca4db377..aebed928f 100644 --- a/packages/bson/index.ts +++ b/packages/bson/index.ts @@ -10,7 +10,9 @@ export { ObjectId } from './src/model.js'; export { deserializeBSONWithoutOptimiser, ParserV2 as Parser } from './src/bson-parser.js'; -export { getBSONDeserializer, deserializeBSON, BSONDeserializer } from './src/bson-deserializer.js'; +export type { BSONDeserializer } from './src/bson-deserializer.js'; +export { getBSONDeserializer, deserializeBSON } from './src/bson-deserializer.js'; +export type { BSONSerializer } from './src/bson-serializer.js'; export { - stringByteLength, BSONSerializer, createBSONSizer, getBSONSizer, getBSONSerializer, bsonBinarySerializer, serializeBSON, serializeWithoutOptimiser, Writer, BSONBinarySerializer, ValueWithBSONSerializer + stringByteLength, createBSONSizer, getBSONSizer, getBSONSerializer, bsonBinarySerializer, serializeBSON, serializeWithoutOptimiser, Writer, BSONBinarySerializer, ValueWithBSONSerializer } from './src/bson-serializer.js'; diff --git a/packages/desktop-ui/create-font.ts b/packages/desktop-ui/create-font.ts index 961f7e372..0105985c1 100644 --- a/packages/desktop-ui/create-font.ts +++ b/packages/desktop-ui/create-font.ts @@ -1,6 +1,16 @@ import {createReadStream, createWriteStream, lstatSync, readdirSync, readFileSync, writeFileSync} from 'fs'; import {join} from 'path'; import {ensureDirSync} from 'fs-extra'; +import { dirname } from 'path'; +import { fileURLToPath } from "url" + +// __dirname for ESM packages +let __dirname = global.__dirname; +if(!__dirname) { + // @ts-ignore + const __filename = fileURLToPath(import.meta.url) + __dirname = dirname(__filename) +} const svg2ttf = require('svg2ttf'); const ttf2woff = require('ttf2woff'); diff --git a/packages/framework/src/debug/http-debug.controller.ts b/packages/framework/src/debug/http-debug.controller.ts index 1f18f07eb..ead1569b5 100644 --- a/packages/framework/src/debug/http-debug.controller.ts +++ b/packages/framework/src/debug/http-debug.controller.ts @@ -10,6 +10,17 @@ import { registerStaticHttpController } from '@deepkit/http'; import { AppModule, findParentPath } from '@deepkit/app'; +import { dirname } from 'path'; +import { fileURLToPath } from "url" + +let __dirname = global.__dirname; + +// __dirname for ESM packages +if(!__dirname) { + // @ts-ignore + const __filename = fileURLToPath(import.meta.url) + __dirname = dirname(__filename) +} export function registerDebugHttpController(module: AppModule, path: string): void { const localPath = findParentPath('node_modules/@deepkit/framework-debug-gui/dist/framework-debug-gui', __dirname); diff --git a/packages/http/src/http.ts b/packages/http/src/http.ts index e54b2ef48..9a953d7c0 100644 --- a/packages/http/src/http.ts +++ b/packages/http/src/http.ts @@ -16,7 +16,7 @@ import { InjectorContext } from '@deepkit/injector'; import { LoggerInterface } from '@deepkit/logger'; import { HttpRouter, RouteConfig, RouteParameterResolverForInjector } from './router.js'; import { createWorkflow, WorkflowEvent } from '@deepkit/workflow'; -import type { ElementStruct, render } from '@deepkit/template'; +import type { ElementStruct, render as Render } from '@deepkit/template'; import { FrameCategory, Stopwatch } from '@deepkit/stopwatch'; import { getSerializeFunction, hasTypeInformation, ReflectionKind, resolveReceiveType, SerializationError, serialize, serializer, ValidationError } from '@deepkit/type'; import stream from 'stream'; @@ -25,12 +25,21 @@ export function isElementStruct(v: any): v is ElementStruct { return 'object' === typeof v && v.hasOwnProperty('render') && v.hasOwnProperty('attributes') && !v.slice; } -let templateRender: typeof render; +let templateRender: typeof Render; -function getTemplateRender(): typeof render { +async function getTemplateRender(): Promise { if (!templateRender) { - const template = require('@deepkit/template'); - templateRender = template.render; + // @ts-ignore + if(global.require) { + // CommonJS version + const { render } = require('@deepkit/template'); + templateRender = render; + } else { + // ESM version + const { render } = await import('@deepkit/template'); + templateRender = render; + } + } return templateRender; @@ -654,7 +663,7 @@ export class HttpListener { } if (isElementStruct(result)) { - const html = await getTemplateRender()(event.injectorContext.getRootInjector(), result, this.stopwatch ? this.stopwatch : undefined); + const html = await (await getTemplateRender())(event.injectorContext.getRootInjector(), result, this.stopwatch ? this.stopwatch : undefined); result = new HtmlResponse(html, 200).header('Content-Type', 'text/html; charset=utf-8'); } if (result instanceof stream.Readable) { diff --git a/packages/orm-browser/main.ts b/packages/orm-browser/main.ts index c5a35dfa4..80385c6e3 100755 --- a/packages/orm-browser/main.ts +++ b/packages/orm-browser/main.ts @@ -6,6 +6,16 @@ import { App, AppModule, findParentPath } from '@deepkit/app'; import { Database, DatabaseRegistry } from '@deepkit/orm'; import { registerStaticHttpController } from '@deepkit/http'; import { InjectorContext } from '@deepkit/injector'; +import { dirname } from 'path'; +import { fileURLToPath } from "url" + +// __dirname for ESM packages +let __dirname = global.__dirname; +if(!__dirname) { + // @ts-ignore + const __filename = fileURLToPath(import.meta.url) + __dirname = dirname(__filename) +} Database.registry = []; const databaseRegistry = new DatabaseRegistry(InjectorContext.forProviders([])); diff --git a/packages/template/jsx-runtime.ts b/packages/template/jsx-runtime.ts index 8feb9789c..d3f003673 100644 --- a/packages/template/jsx-runtime.ts +++ b/packages/template/jsx-runtime.ts @@ -15,9 +15,14 @@ export function jsxs(element: Element, attributes?: Attributes | string | null) return { render: element, attributes }; } +const jsxFragment = 'jsx.Fragment' + jsx.createElement = createElement; jsx.html = html; jsx.escape = escape; jsx.escapeAttribute = escapeAttribute; jsx.safeString = safeString; jsx.safe = safe; +jsx.Fragment = jsxFragment + +export { jsxFragment as Fragment } \ No newline at end of file diff --git a/packages/type-compiler/tests/utils.ts b/packages/type-compiler/tests/utils.ts index ef79c1cd3..1171506a4 100644 --- a/packages/type-compiler/tests/utils.ts +++ b/packages/type-compiler/tests/utils.ts @@ -4,7 +4,15 @@ import { createSystem, createVirtualCompilerHost, knownLibFilesForCompilerOption import { ReflectionTransformer } from '../src/compiler.js'; import { readFileSync } from 'fs'; import { dirname, join } from 'path'; -import { first } from '@deepkit/core'; +import { fileURLToPath } from "url" + +// __dirname for ESM packages +let __dirname = global.__dirname; +if(!__dirname) { + // @ts-ignore + const __filename = fileURLToPath(import.meta.url) + __dirname = dirname(__filename) +} const defaultLibLocation = __dirname + '/node_modules/typescript/lib/'; From 276f7e2b0db786abac6af990d5552fb3c48a5b51 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Tue, 19 Jul 2022 20:16:04 +0000 Subject: [PATCH 10/53] chore(example-app): Move from CJS to ESM --- packages/example-app/package.json | 5 +++-- packages/example-app/tsconfig.json | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/example-app/package.json b/packages/example-app/package.json index 35241b626..b6cbab6a8 100644 --- a/packages/example-app/package.json +++ b/packages/example-app/package.json @@ -3,9 +3,10 @@ "private": true, "version": "1.0.1-alpha.0", "description": "", + "type": "module", "scripts": { - "start": "NODE_OPTIONS=--preserve-symlinks ts-node app server:start", - "start:prod": "NODE_OPTIONS=--preserve-symlinks APP_ENVIRONMENT=production ts-node app server:start", + "start": "node --preserve-symlinks --experimental-specifier-resolution=node --loader ts-node/esm app.ts server:start", + "start:prod": "APP_ENVIRONMENT=production node --preserve-symlinks --experimental-specifier-resolution=node --loader ts-node/esm app.ts server:start", "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { diff --git a/packages/example-app/tsconfig.json b/packages/example-app/tsconfig.json index 24286328b..d0d19a2a7 100644 --- a/packages/example-app/tsconfig.json +++ b/packages/example-app/tsconfig.json @@ -6,7 +6,7 @@ "experimentalDecorators": true, "moduleResolution": "node", "target": "es2018", - "module": "CommonJS", + "module": "ESNext", "preserveSymlinks": true, "esModuleInterop": true, "lib": [ From 6dbfc3905312a98dd21662533eeb0bec2d8b773e Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Tue, 19 Jul 2022 23:09:04 +0000 Subject: [PATCH 11/53] chore(example-app): Add support for ESM and CJS --- packages/example-app/package.json | 12 ++++++++---- packages/example-app/set-type.cjs | 7 +++++++ packages/example-app/tsconfig.esm.json | 9 +++++++++ packages/example-app/tsconfig.json | 5 ++++- 4 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 packages/example-app/set-type.cjs create mode 100644 packages/example-app/tsconfig.esm.json diff --git a/packages/example-app/package.json b/packages/example-app/package.json index b6cbab6a8..77778c9a4 100644 --- a/packages/example-app/package.json +++ b/packages/example-app/package.json @@ -3,10 +3,14 @@ "private": true, "version": "1.0.1-alpha.0", "description": "", - "type": "module", + "type": "commonjs", "scripts": { - "start": "node --preserve-symlinks --experimental-specifier-resolution=node --loader ts-node/esm app.ts server:start", - "start:prod": "APP_ENVIRONMENT=production node --preserve-symlinks --experimental-specifier-resolution=node --loader ts-node/esm app.ts server:start", + "start": "npm run set:cjs && NODE_OPTIONS=--preserve-symlinks ts-node app server:start", + "start:prod": "npm run set:cjs && NODE_OPTIONS=--preserve-symlinks APP_ENVIRONMENT=production ts-node app server:start", + "start:esm": "npm run set:esm && TS_NODE_PROJECT=tsconfig.esm.json node --preserve-symlinks --experimental-specifier-resolution=node --loader ts-node/esm app.ts server:start ", + "start:esm:prod": "npm run set:esm &&TS_NODE_PROJECT=tsconfig.esm.json APP_ENVIRONMENT=production node --preserve-symlinks --experimental-specifier-resolution=node --loader ts-node/esm app.ts server:start", + "set:esm": "node ./set-type.cjs module", + "set:cjs": "node ./set-type.cjs commonjs", "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { @@ -38,4 +42,4 @@ "keywords": [], "author": "", "license": "MIT" -} +} \ No newline at end of file diff --git a/packages/example-app/set-type.cjs b/packages/example-app/set-type.cjs new file mode 100644 index 000000000..10d49bf97 --- /dev/null +++ b/packages/example-app/set-type.cjs @@ -0,0 +1,7 @@ +const { writeFileSync } = require('fs'); +const pkgPath = './package.json'; +const pkg = require(pkgPath); + +pkg.type = process.argv[2]; + +writeFileSync(pkgPath, JSON.stringify(pkg, null, 2)); \ No newline at end of file diff --git a/packages/example-app/tsconfig.esm.json b/packages/example-app/tsconfig.esm.json new file mode 100644 index 000000000..b9200b483 --- /dev/null +++ b/packages/example-app/tsconfig.esm.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "module": "ESNext", + }, + "ts-node": { + "experimentalResolver": false, + } +} \ No newline at end of file diff --git a/packages/example-app/tsconfig.json b/packages/example-app/tsconfig.json index d0d19a2a7..9ecfe2444 100644 --- a/packages/example-app/tsconfig.json +++ b/packages/example-app/tsconfig.json @@ -6,7 +6,7 @@ "experimentalDecorators": true, "moduleResolution": "node", "target": "es2018", - "module": "ESNext", + "module": "CommonJS", "preserveSymlinks": true, "esModuleInterop": true, "lib": [ @@ -17,6 +17,9 @@ "jsx": "react-jsx", "jsxImportSource": "@deepkit/template" }, + "ts-node": { + "experimentalResolver": true, + }, "reflection": true, "includes": [ "*.ts", From 75f27fa764eaaea4a9b6cdd1a1bfc618fbac81e3 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Tue, 19 Jul 2022 23:10:14 +0000 Subject: [PATCH 12/53] chore: Moved getDirname to @deepkit/core --- packages/benchmark/index.ts | 3 +- packages/core/index.ts | 1 + packages/core/src/runtime.ts | 31 +++++++++++++++++++ packages/desktop-ui/create-font.ts | 11 ------- packages/desktop-ui/package.json | 2 ++ .../src/debug/http-debug.controller.ts | 16 +++------- packages/orm-browser/main.ts | 15 +++------ packages/type-compiler/package.json | 1 + packages/type-compiler/tests/utils.ts | 17 +++------- 9 files changed, 50 insertions(+), 47 deletions(-) create mode 100644 packages/core/src/runtime.ts diff --git a/packages/benchmark/index.ts b/packages/benchmark/index.ts index e06703e8c..42ba0b23e 100644 --- a/packages/benchmark/index.ts +++ b/packages/benchmark/index.ts @@ -5,6 +5,7 @@ import { BenchmarkRun } from './model.js'; import * as si from 'systeminformation'; import { execSync } from 'child_process'; import { serialize } from '@deepkit/type'; +import { getDirname } from '@deepkit/core'; import fetch from 'node-fetch'; const fg = require('fast-glob'); @@ -56,7 +57,7 @@ async function main() { } } - const resultsPath = join(__dirname, 'results'); + const resultsPath = join(getDirname(), 'results'); mkdirSync(resultsPath, { recursive: true }); const jsonPath = resultsPath + '/' + (new Date().toJSON()) + '.json'; console.log('Write benchmark result to', jsonPath); diff --git a/packages/core/index.ts b/packages/core/index.ts index 0ad67cee3..dfa1fd5fe 100644 --- a/packages/core/index.ts +++ b/packages/core/index.ts @@ -21,5 +21,6 @@ export * from './src/string.js'; export * from './src/emitter.js'; export * from './src/reactive.js'; export * from './src/reflection.js'; +export * from './src/runtime.js'; export * from './src/url.js'; export * from './src/array.js'; diff --git a/packages/core/src/runtime.ts b/packages/core/src/runtime.ts new file mode 100644 index 000000000..087c80717 --- /dev/null +++ b/packages/core/src/runtime.ts @@ -0,0 +1,31 @@ +import { dirname as _dirname} from "path"; +import { platform } from 'os'; + +/** + * CJS and ESM compatible implementation for __dirname + * @returns What `__dirname` would return in CJS + * @see https://github.com/vdegenne/es-dirname/blob/master/es-dirname.js + */ +export const getDirname = () => { + let dirname = ''; + try { + // @ts-ignore + ShadowsAlwaysDieTwice + } catch (e: any) { + const initiator = e.stack.split('\n').slice(2, 3)[0] + let path = /(?[^\(\s]+):[0-9]+:[0-9]+/.exec(initiator)?.groups?.path + + if(!path) { + throw new Error("Can't get __dirname!"); + } + + if (path.indexOf('file') >= 0) { + path = new URL(path).pathname + } + dirname = _dirname(path) + if (dirname[0] === '/' && platform() === 'win32') { + dirname = dirname.slice(1) + } + } + return dirname +} \ No newline at end of file diff --git a/packages/desktop-ui/create-font.ts b/packages/desktop-ui/create-font.ts index 0105985c1..e3f804448 100644 --- a/packages/desktop-ui/create-font.ts +++ b/packages/desktop-ui/create-font.ts @@ -1,22 +1,11 @@ import {createReadStream, createWriteStream, lstatSync, readdirSync, readFileSync, writeFileSync} from 'fs'; import {join} from 'path'; import {ensureDirSync} from 'fs-extra'; -import { dirname } from 'path'; -import { fileURLToPath } from "url" - -// __dirname for ESM packages -let __dirname = global.__dirname; -if(!__dirname) { - // @ts-ignore - const __filename = fileURLToPath(import.meta.url) - __dirname = dirname(__filename) -} const svg2ttf = require('svg2ttf'); const ttf2woff = require('ttf2woff'); const SVGIcons2SVGFontStream = require('svgicons2svgfont'); - function readFolder(dir: string, files: { [path: string]: string }) { const read = readdirSync(dir); for (const file of read) { diff --git a/packages/desktop-ui/package.json b/packages/desktop-ui/package.json index 7125d00f6..8a10d1ead 100644 --- a/packages/desktop-ui/package.json +++ b/packages/desktop-ui/package.json @@ -40,6 +40,8 @@ "electron": ">7.1.9" }, "devDependencies": { + "@deepkit/core": "^1.0.1-alpha.13", + "@deepkit/core-rxjs": "^1.0.1-alpha.13", "@angular-devkit/build-angular": "^12.1.1", "@angular/animations": "~12.1.1", "@angular/cdk": "~12.1.1", diff --git a/packages/framework/src/debug/http-debug.controller.ts b/packages/framework/src/debug/http-debug.controller.ts index ead1569b5..582991a74 100644 --- a/packages/framework/src/debug/http-debug.controller.ts +++ b/packages/framework/src/debug/http-debug.controller.ts @@ -8,25 +8,17 @@ * You should have received a copy of the MIT License along with this program. */ +import { getDirname } from "@deepkit/core" import { registerStaticHttpController } from '@deepkit/http'; import { AppModule, findParentPath } from '@deepkit/app'; -import { dirname } from 'path'; -import { fileURLToPath } from "url" -let __dirname = global.__dirname; - -// __dirname for ESM packages -if(!__dirname) { - // @ts-ignore - const __filename = fileURLToPath(import.meta.url) - __dirname = dirname(__filename) -} +const _dirname = getDirname(); export function registerDebugHttpController(module: AppModule, path: string): void { - const localPath = findParentPath('node_modules/@deepkit/framework-debug-gui/dist/framework-debug-gui', __dirname); + const localPath = findParentPath('node_modules/@deepkit/framework-debug-gui/dist/framework-debug-gui', _dirname); if (localPath) { registerStaticHttpController(module, {path, localPath, groups: ['app-static'], controllerName: 'FrameworkDebuggerController'}); } else { - console.log('Warning: node_modules/@deepkit/framework-debug-gui no build found in ' + __dirname); + console.log('Warning: node_modules/@deepkit/framework-debug-gui no build found in ' + _dirname); } } diff --git a/packages/orm-browser/main.ts b/packages/orm-browser/main.ts index 80385c6e3..562095b34 100755 --- a/packages/orm-browser/main.ts +++ b/packages/orm-browser/main.ts @@ -1,21 +1,14 @@ #!/usr/bin/env node import 'reflect-metadata'; +import { getDirname } from "@deepkit/core" import { FrameworkModule, OrmBrowserController } from '@deepkit/framework'; import { App, AppModule, findParentPath } from '@deepkit/app'; import { Database, DatabaseRegistry } from '@deepkit/orm'; import { registerStaticHttpController } from '@deepkit/http'; import { InjectorContext } from '@deepkit/injector'; -import { dirname } from 'path'; -import { fileURLToPath } from "url" -// __dirname for ESM packages -let __dirname = global.__dirname; -if(!__dirname) { - // @ts-ignore - const __filename = fileURLToPath(import.meta.url) - __dirname = dirname(__filename) -} +const _dirname = getDirname(); Database.registry = []; const databaseRegistry = new DatabaseRegistry(InjectorContext.forProviders([])); @@ -34,8 +27,8 @@ const appModule = new AppModule({ }) ] }).setup((module, config) => { - const localPath = findParentPath('node_modules/@deepkit/orm-browser-gui/dist/orm-browser-gui', __dirname); - if (!localPath) throw new Error('node_modules/@deepkit/orm-browser-gui not installed in ' + __dirname); + const localPath = findParentPath('node_modules/@deepkit/orm-browser-gui/dist/orm-browser-gui', _dirname); + if (!localPath) throw new Error('node_modules/@deepkit/orm-browser-gui not installed in ' + _dirname); registerStaticHttpController(module, {path: '/', localPath, controllerName: 'OrmBrowserController'}); }); diff --git a/packages/type-compiler/package.json b/packages/type-compiler/package.json index ece2dd9da..495ff6913 100644 --- a/packages/type-compiler/package.json +++ b/packages/type-compiler/package.json @@ -30,6 +30,7 @@ "typescript": "~" }, "dependencies": { + "@deepkit/core": "^1.0.1-alpha.72", "@deepkit/type-spec": "^1.0.1-alpha.72", "@types/lz-string": "^1.3.34", "@typescript/vfs": "^1.3.5", diff --git a/packages/type-compiler/tests/utils.ts b/packages/type-compiler/tests/utils.ts index 1171506a4..693899026 100644 --- a/packages/type-compiler/tests/utils.ts +++ b/packages/type-compiler/tests/utils.ts @@ -1,23 +1,16 @@ import * as ts from 'typescript'; +import { getDirname } from "@deepkit/core" import { createSourceFile, getPreEmitDiagnostics, ScriptTarget, TransformationContext } from 'typescript'; import { createSystem, createVirtualCompilerHost, knownLibFilesForCompilerOptions } from '@typescript/vfs'; import { ReflectionTransformer } from '../src/compiler.js'; import { readFileSync } from 'fs'; import { dirname, join } from 'path'; -import { fileURLToPath } from "url" - -// __dirname for ESM packages -let __dirname = global.__dirname; -if(!__dirname) { - // @ts-ignore - const __filename = fileURLToPath(import.meta.url) - __dirname = dirname(__filename) -} -const defaultLibLocation = __dirname + '/node_modules/typescript/lib/'; +const _dirname = getDirname(); +const defaultLibLocation = _dirname + '/node_modules/typescript/lib/'; function fullPath(fileName: string): string { - return __dirname + '/' + fileName + (fileName.includes('.') ? '' : '.ts'); + return _dirname + '/' + fileName + (fileName.includes('.') ? '' : '.ts'); } function readLibs(compilerOptions: ts.CompilerOptions, files: Map) { @@ -117,7 +110,7 @@ export function transpile(files: Record, options: ts.CompilerOpt const res: Record = {}; program.emit(undefined, (fileName, data) => { - res[fileName.slice(__dirname.length + 1).replace(/\.js$/, '')] = data; + res[fileName.slice(_dirname.length + 1).replace(/\.js$/, '')] = data; }, undefined, undefined, { before: [(context: TransformationContext) => new ReflectionTransformer(context).forHost(host.compilerHost).withReflectionMode('always')], }); From d6772eb81b91e572e7d6ebab93875a423842c111 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Wed, 20 Jul 2022 13:52:43 +0000 Subject: [PATCH 13/53] chore(esm): Add Node.js independent __dirname implementation --- packages/core/index.ts | 1 + packages/core/src/path.ts | 22 +++++++++++ packages/core/src/runtime.ts | 58 +++++++++++++++++------------ packages/type-compiler/package.json | 2 +- 4 files changed, 59 insertions(+), 24 deletions(-) create mode 100644 packages/core/src/path.ts diff --git a/packages/core/index.ts b/packages/core/index.ts index dfa1fd5fe..a986ffd19 100644 --- a/packages/core/index.ts +++ b/packages/core/index.ts @@ -15,6 +15,7 @@ export * from './src/iterators.js'; export * from './src/timer.js'; export * from './src/process-locker.js'; export * from './src/network.js'; +export * from './src/path.js'; export * from './src/perf.js'; export * from './src/compiler.js'; export * from './src/string.js'; diff --git a/packages/core/src/path.ts b/packages/core/src/path.ts new file mode 100644 index 000000000..1fa738c6f --- /dev/null +++ b/packages/core/src/path.ts @@ -0,0 +1,22 @@ +const DIRNAME_POSIX_REGEX = /^((?:\.(?![^\/]))|(?:(?:\/?|)(?:[\s\S]*?)))(?:\/+?|)(?:(?:\.{1,2}|[^\/]+?|)(?:\.[^.\/]*|))(?:[\/]*)$/; +const DIRNAME_WIN32_REGEX = /^((?:\.(?![^\\]))|(?:(?:\\?|)(?:[\s\S]*?)))(?:\\+?|)(?:(?:\.{1,2}|[^\\]+?|)(?:\.[^.\\]*|))(?:[\\]*)$/; + +/** + * Replacement for path.dirname from Node.js + * @param path The full path you want to get the dirname from + * @returns The dirname of the path + */ +export const dirname = (path: string) => { + + let dirname = DIRNAME_POSIX_REGEX.exec(path)?.[1]; + + if (!dirname) { + dirname = DIRNAME_WIN32_REGEX.exec(path)?.[1]; + } + + if(!dirname) { + throw new Error(`Can't extract dirname from ${path}`); + } + + return dirname; + } \ No newline at end of file diff --git a/packages/core/src/runtime.ts b/packages/core/src/runtime.ts index 087c80717..dbda03d64 100644 --- a/packages/core/src/runtime.ts +++ b/packages/core/src/runtime.ts @@ -1,31 +1,43 @@ -import { dirname as _dirname} from "path"; -import { platform } from 'os'; +import { dirname as pathDirname } from './path.js'; + +const EXTRACT_PATH_REGEX = /(?[^\(\s]+):[0-9]+:[0-9]+/; +const WIN_POSIX_DRIVE_REGEX = /^\/[A-Z]:\/*/; /** - * CJS and ESM compatible implementation for __dirname + * CJS and ESM compatible implementation for __dirname. + * + * Works on + * * Node.js + Windows / Linux / MacOS + ESM / CJS + * + * Contributions for other environments like GJS or Deno are welcome + * * @returns What `__dirname` would return in CJS * @see https://github.com/vdegenne/es-dirname/blob/master/es-dirname.js */ export const getDirname = () => { - let dirname = ''; - try { - // @ts-ignore - ShadowsAlwaysDieTwice - } catch (e: any) { - const initiator = e.stack.split('\n').slice(2, 3)[0] - let path = /(?[^\(\s]+):[0-9]+:[0-9]+/.exec(initiator)?.groups?.path - - if(!path) { - throw new Error("Can't get __dirname!"); - } - - if (path.indexOf('file') >= 0) { - path = new URL(path).pathname - } - dirname = _dirname(path) - if (dirname[0] === '/' && platform() === 'win32') { - dirname = dirname.slice(1) - } + let dirname = ''; + try { + throw new Error(); + } catch (e: any) { + const initiator = e.stack.split('\n').slice(2, 3)[0] + + let path = EXTRACT_PATH_REGEX.exec(initiator)?.groups?.path + + if(!path) { + throw new Error("Can't get __dirname!"); + } + + const protocol = "file://"; + if (path.indexOf(protocol) >= 0) { + path = path.slice(protocol.length); } - return dirname + + if (WIN_POSIX_DRIVE_REGEX.test(path)) { + path = path.slice(1).replace(/\//g, '\\'); + } + + dirname = pathDirname(path) + + } + return dirname } \ No newline at end of file diff --git a/packages/type-compiler/package.json b/packages/type-compiler/package.json index 3b7c5d7a6..1b3ecb7bb 100644 --- a/packages/type-compiler/package.json +++ b/packages/type-compiler/package.json @@ -30,7 +30,7 @@ "typescript": "~" }, "dependencies": { - "@deepkit/core": "^1.0.1-alpha.72", + "@deepkit/core": "^1.0.1-alpha.74", "@deepkit/type-spec": "^1.0.1-alpha.74", "@types/lz-string": "^1.3.34", "@typescript/vfs": "^1.3.5", From de393a72afaf805707fdcdc356612761fdc39661 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Wed, 20 Jul 2022 14:32:46 +0000 Subject: [PATCH 14/53] fix: Fix jsx and test by removing jsx.Fragment --- packages/template/jsx-runtime.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/template/jsx-runtime.ts b/packages/template/jsx-runtime.ts index d3f003673..af50cf597 100644 --- a/packages/template/jsx-runtime.ts +++ b/packages/template/jsx-runtime.ts @@ -15,7 +15,7 @@ export function jsxs(element: Element, attributes?: Attributes | string | null) return { render: element, attributes }; } -const jsxFragment = 'jsx.Fragment' +const jsxFragment = ''; jsx.createElement = createElement; jsx.html = html; From f8bdd4ecaf97c0007761b6af88272c5c47282659 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Wed, 20 Jul 2022 14:33:18 +0000 Subject: [PATCH 15/53] fix: Invalid json in packages/example-app/tsconfig.json --- packages/example-app/tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/example-app/tsconfig.json b/packages/example-app/tsconfig.json index 9ecfe2444..3b5bb7dd4 100644 --- a/packages/example-app/tsconfig.json +++ b/packages/example-app/tsconfig.json @@ -18,7 +18,7 @@ "jsxImportSource": "@deepkit/template" }, "ts-node": { - "experimentalResolver": true, + "experimentalResolver": true }, "reflection": true, "includes": [ From 9e201b819988651e857c590dffa966c9ac2f75c4 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Wed, 20 Jul 2022 14:34:57 +0000 Subject: [PATCH 16/53] fix: ng build deprecated --prod warning --- packages/api-console-gui/package.json | 2 +- packages/example-app/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/api-console-gui/package.json b/packages/api-console-gui/package.json index 0232453d6..1286899b1 100644 --- a/packages/api-console-gui/package.json +++ b/packages/api-console-gui/package.json @@ -5,7 +5,7 @@ "scripts": { "ng": "ng", "start": "NODE_OPTIONS=--preserve-symlinks ng serve", - "build": "NODE_OPTIONS=--preserve-symlinks ng build --prod", + "build": "NODE_OPTIONS=--preserve-symlinks ng build --configuration production", "build:dev": "NODE_OPTIONS=--preserve-symlinks ng build", "watch": "NODE_OPTIONS=--preserve-symlinks ng build --watch --configuration development" }, diff --git a/packages/example-app/package.json b/packages/example-app/package.json index 77778c9a4..a72f9252f 100644 --- a/packages/example-app/package.json +++ b/packages/example-app/package.json @@ -8,7 +8,7 @@ "start": "npm run set:cjs && NODE_OPTIONS=--preserve-symlinks ts-node app server:start", "start:prod": "npm run set:cjs && NODE_OPTIONS=--preserve-symlinks APP_ENVIRONMENT=production ts-node app server:start", "start:esm": "npm run set:esm && TS_NODE_PROJECT=tsconfig.esm.json node --preserve-symlinks --experimental-specifier-resolution=node --loader ts-node/esm app.ts server:start ", - "start:esm:prod": "npm run set:esm &&TS_NODE_PROJECT=tsconfig.esm.json APP_ENVIRONMENT=production node --preserve-symlinks --experimental-specifier-resolution=node --loader ts-node/esm app.ts server:start", + "start:esm:prod": "npm run set:esm && TS_NODE_PROJECT=tsconfig.esm.json APP_ENVIRONMENT=production node --preserve-symlinks --experimental-specifier-resolution=node --loader ts-node/esm app.ts server:start", "set:esm": "node ./set-type.cjs module", "set:cjs": "node ./set-type.cjs commonjs", "test": "echo \"Error: no test specified\" && exit 1" From 4cd70d1f1864dbaa6f40f4d83872a2052cca2571 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Wed, 20 Jul 2022 14:56:40 +0000 Subject: [PATCH 17/53] fix: Try to fix jsx and test by set jsx.Fragment to undefined --- packages/template/jsx-runtime.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/template/jsx-runtime.ts b/packages/template/jsx-runtime.ts index af50cf597..f48fc9634 100644 --- a/packages/template/jsx-runtime.ts +++ b/packages/template/jsx-runtime.ts @@ -15,7 +15,7 @@ export function jsxs(element: Element, attributes?: Attributes | string | null) return { render: element, attributes }; } -const jsxFragment = ''; +const jsxFragment: string | undefined = undefined; jsx.createElement = createElement; jsx.html = html; @@ -23,6 +23,6 @@ jsx.escape = escape; jsx.escapeAttribute = escapeAttribute; jsx.safeString = safeString; jsx.safe = safe; -jsx.Fragment = jsxFragment +jsx.Fragment = jsxFragment as string | undefined; export { jsxFragment as Fragment } \ No newline at end of file From 94b460ebcd3a4977d0d79b5526854ea3cfa933af Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Fri, 22 Jul 2022 18:53:54 +0200 Subject: [PATCH 18/53] feat(platform): Initial new package --- packages/platform/README.md | 107 + packages/platform/mod.ts | 2 + packages/platform/package-lock.json | 3416 ++++++++++++++ packages/platform/package.json | 62 + packages/platform/src/index.ts | 89 + packages/platform/test/browser/base.test.js | 4088 +++++++++++++++++ packages/platform/test/browser/esbuild.cjs | 9 + packages/platform/test/browser/esbuild.mjs | 12 + packages/platform/test/browser/index.html | 23 + .../platform/test/browser/src/base.test.cjs | 19 + .../platform/test/browser/src/base.test.mjs | 19 + packages/platform/test/deno/base.test.mjs | 32 + packages/platform/test/gjs/base.test.mjs | 72 + .../platform/test/gjs/get-original-dirname.js | 1 + packages/platform/test/node/base.test.cjs | 16 + packages/platform/test/node/base.test.mjs | 27 + packages/platform/tsconfig.esm.json | 8 + packages/platform/tsconfig.json | 16 + packages/platform/tsconfig.types.json | 11 + 19 files changed, 8029 insertions(+) create mode 100644 packages/platform/README.md create mode 100644 packages/platform/mod.ts create mode 100644 packages/platform/package-lock.json create mode 100644 packages/platform/package.json create mode 100644 packages/platform/src/index.ts create mode 100644 packages/platform/test/browser/base.test.js create mode 100755 packages/platform/test/browser/esbuild.cjs create mode 100755 packages/platform/test/browser/esbuild.mjs create mode 100644 packages/platform/test/browser/index.html create mode 100644 packages/platform/test/browser/src/base.test.cjs create mode 100644 packages/platform/test/browser/src/base.test.mjs create mode 100644 packages/platform/test/deno/base.test.mjs create mode 100644 packages/platform/test/gjs/base.test.mjs create mode 100644 packages/platform/test/gjs/get-original-dirname.js create mode 100644 packages/platform/test/node/base.test.cjs create mode 100644 packages/platform/test/node/base.test.mjs create mode 100644 packages/platform/tsconfig.esm.json create mode 100644 packages/platform/tsconfig.json create mode 100644 packages/platform/tsconfig.types.json diff --git a/packages/platform/README.md b/packages/platform/README.md new file mode 100644 index 000000000..2e3ee1666 --- /dev/null +++ b/packages/platform/README.md @@ -0,0 +1,107 @@ +# @deepkit/platform + +The purpose of this module is to replace platform-dependent methods with platform-independent methods, +so that Deekit can run on as many runtime bindings as possible in the future, such as [Node.js](https://nodejs.org) (CJS and ESM), [Deno](https://deno.land/), [Gjs](https://gjs.guide/), [Cloudflare Workers](https://workers.cloudflare.com/), [Bun](https://bun.sh/), [Netlify Functions](https://www.netlify.com/products/#netlify-edge-functions) and more. + + +## State + +| Replaces | Runtime | Type | Replacement | +|--------------|---------|---------|-----------------| +| `__dirname` | Node.js | CJS | `getDirname()` | +| `__filename` | Node.js | CJS | `getFilename()` | + +## Installation + +On Node.js and GJS you can install the package as with NPM: + +``` +npm install @deepkit/platform --save +``` + +On Deno you just need to import this package. + +## Usage + +Please do not use `getDirname` and `getFilename` in nested other methods, instead always use them in the root of your file, otherwise it may return wrong results. + +### Node.js ESM + +```js +// node /path/to/the/script.mjs +import { getDirname, getFilename } from '@deepkit/platform' + +console.log(getDirname()) // outputs "/path/to/the" +console.log(getFilename()) // outputs "/path/to/the/script.mjs" +``` + +### Node.js CJS + +```js +// node /path/to/the/script.cjs +const { getDirname, getFilename } = require('@deepkit/platform'); + +console.log(getDirname() === __dirname) // true +console.log(getFilename() === __filename) // true +``` + +### Deno + +```ts +// deno run /path/to/the/script.ts +import { getDirname, getFilename } from 'https://raw.githubusercontent.com/deepkit/deepkit-framework/master/packages/platform/mod.ts'; + +console.log(getDirname()); // outputs "/path/to/the" +console.log(getFilename()); // outputs "/path/to/the/script.ts" +``` + +### GJS + +You can use NPM packages in GJS you can use a bundler like [esbuild](https://esbuild.github.io/) or import the files directly like this: + +```js +// gjs -m path/to/the/script.js +const { getDirname, getFilename } = from './node_modules/@deepkit/platform/dist/esm/index.mjs'; +console.log(getDirname()); // outputs "/path/to/the" +console.log(getFilename()); // outputs "/path/to/the/script.js" +``` + +### Tests + +This module has been tested on the following platforms: + +| Runtime | Type | Platform | State | +|---------|--------|----------|----------| +| Node.js | CJS | Linux | ✔ | +| Node.js | CJS | MacOS | ✔ | +| Node.js | CJS | Windows | ✔ | +| Node.js | ESM | Linux | ✔ | +| Node.js | ESM | MacOS | ✔ | +| Node.js | ESM | Windows | ✔ | +| Deno | ESM | Linux | ✔ | +| Deno | ESM | MacOS | ✔ | +| Deno | ESM | Windows | ✔ | +| Gjs | ESM | Linux | ✔ | +| Gjs | ESM | MacOS | UNTESTED | +| Gjs | ESM | Windows | UNTESTED | +| Chrome | ESM | Browser | ✔ | +| Chrome | CJS | Browser | ✔ | + +You can run all tests with: + +``` +npm run test +``` + +Or the tests for a special runtime: + +``` +npm run test:node +npm run test:deno +npm run test:gjs +npm run test:browser´ +``` + +### Contributions + +Contributions for more platforms and other replacement methods are welcome :) diff --git a/packages/platform/mod.ts b/packages/platform/mod.ts new file mode 100644 index 000000000..a8751fbe4 --- /dev/null +++ b/packages/platform/mod.ts @@ -0,0 +1,2 @@ +// Export for deno +export * from './src/index.ts'; \ No newline at end of file diff --git a/packages/platform/package-lock.json b/packages/platform/package-lock.json new file mode 100644 index 000000000..daed7362d --- /dev/null +++ b/packages/platform/package-lock.json @@ -0,0 +1,3416 @@ +{ + "name": "@deepkit/platform", + "version": "1.0.1-alpha.74", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@deepkit/platform", + "version": "1.0.1-alpha.74", + "license": "MIT", + "devDependencies": { + "chai": "^4.3.6", + "cross-dirname": "^0.0.6", + "esbuild": "^0.14.49", + "esm": "^3.2.25", + "mocha": "^10.0.0", + "mocha-headless-chrome": "^4.0.0", + "typescript": "^4.7.4" + } + }, + "node_modules/@types/node": { + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz", + "integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==", + "dev": true, + "optional": true + }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/args": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.3.tgz", + "integrity": "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==", + "dev": true, + "dependencies": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/args/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/args/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/args/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/args/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/args/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/args/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/args/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chai": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cross-dirname": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/cross-dirname/-/cross-dirname-0.0.6.tgz", + "integrity": "sha512-HBAt99Skegib2AaMOZy1nfDwowBbWWANHYM67mXhyFtVavZwpVYn7rlhJVf3oXaWvhx75Esvx+4XWOuEKuOk7Q==", + "dev": true + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/devtools-protocol": { + "version": "0.0.981744", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", + "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", + "dev": true + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/esbuild": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.49.tgz", + "integrity": "sha512-/TlVHhOaq7Yz8N1OJrjqM3Auzo5wjvHFLk+T8pIue+fhnhIMpfAzsG6PLVMbFveVxqD2WOp3QHei+52IMUNmCw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "esbuild-android-64": "0.14.49", + "esbuild-android-arm64": "0.14.49", + "esbuild-darwin-64": "0.14.49", + "esbuild-darwin-arm64": "0.14.49", + "esbuild-freebsd-64": "0.14.49", + "esbuild-freebsd-arm64": "0.14.49", + "esbuild-linux-32": "0.14.49", + "esbuild-linux-64": "0.14.49", + "esbuild-linux-arm": "0.14.49", + "esbuild-linux-arm64": "0.14.49", + "esbuild-linux-mips64le": "0.14.49", + "esbuild-linux-ppc64le": "0.14.49", + "esbuild-linux-riscv64": "0.14.49", + "esbuild-linux-s390x": "0.14.49", + "esbuild-netbsd-64": "0.14.49", + "esbuild-openbsd-64": "0.14.49", + "esbuild-sunos-64": "0.14.49", + "esbuild-windows-32": "0.14.49", + "esbuild-windows-64": "0.14.49", + "esbuild-windows-arm64": "0.14.49" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.49.tgz", + "integrity": "sha512-vYsdOTD+yi+kquhBiFWl3tyxnj2qZJsl4tAqwhT90ktUdnyTizgle7TjNx6Ar1bN7wcwWqZ9QInfdk2WVagSww==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.49.tgz", + "integrity": "sha512-g2HGr/hjOXCgSsvQZ1nK4nW/ei8JUx04Li74qub9qWrStlysaVmadRyTVuW32FGIpLQyc5sUjjZopj49eGGM2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.49.tgz", + "integrity": "sha512-3rvqnBCtX9ywso5fCHixt2GBCUsogNp9DjGmvbBohh31Ces34BVzFltMSxJpacNki96+WIcX5s/vum+ckXiLYg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.49.tgz", + "integrity": "sha512-XMaqDxO846srnGlUSJnwbijV29MTKUATmOLyQSfswbK/2X5Uv28M9tTLUJcKKxzoo9lnkYPsx2o8EJcTYwCs/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.49.tgz", + "integrity": "sha512-NJ5Q6AjV879mOHFri+5lZLTp5XsO2hQ+KSJYLbfY9DgCu8s6/Zl2prWXVANYTeCDLlrIlNNYw8y34xqyLDKOmQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.49.tgz", + "integrity": "sha512-lFLtgXnAc3eXYqj5koPlBZvEbBSOSUbWO3gyY/0+4lBdRqELyz4bAuamHvmvHW5swJYL7kngzIZw6kdu25KGOA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.49.tgz", + "integrity": "sha512-zTTH4gr2Kb8u4QcOpTDVn7Z8q7QEIvFl/+vHrI3cF6XOJS7iEI1FWslTo3uofB2+mn6sIJEQD9PrNZKoAAMDiA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.49.tgz", + "integrity": "sha512-hYmzRIDzFfLrB5c1SknkxzM8LdEUOusp6M2TnuQZJLRtxTgyPnZZVtyMeCLki0wKgYPXkFsAVhi8vzo2mBNeTg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.49.tgz", + "integrity": "sha512-iE3e+ZVv1Qz1Sy0gifIsarJMQ89Rpm9mtLSRtG3AH0FPgAzQ5Z5oU6vYzhc/3gSPi2UxdCOfRhw2onXuFw/0lg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.49.tgz", + "integrity": "sha512-KLQ+WpeuY+7bxukxLz5VgkAAVQxUv67Ft4DmHIPIW+2w3ObBPQhqNoeQUHxopoW/aiOn3m99NSmSV+bs4BSsdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.49.tgz", + "integrity": "sha512-n+rGODfm8RSum5pFIqFQVQpYBw+AztL8s6o9kfx7tjfK0yIGF6tm5HlG6aRjodiiKkH2xAiIM+U4xtQVZYU4rA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.49.tgz", + "integrity": "sha512-WP9zR4HX6iCBmMFH+XHHng2LmdoIeUmBpL4aL2TR8ruzXyT4dWrJ5BSbT8iNo6THN8lod6GOmYDLq/dgZLalGw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.49.tgz", + "integrity": "sha512-h66ORBz+Dg+1KgLvzTVQEA1LX4XBd1SK0Fgbhhw4akpG/YkN8pS6OzYI/7SGENiN6ao5hETRDSkVcvU9NRtkMQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.49.tgz", + "integrity": "sha512-DhrUoFVWD+XmKO1y7e4kNCqQHPs6twz6VV6Uezl/XHYGzM60rBewBF5jlZjG0nCk5W/Xy6y1xWeopkrhFFM0sQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.49.tgz", + "integrity": "sha512-BXaUwFOfCy2T+hABtiPUIpWjAeWK9P8O41gR4Pg73hpzoygVGnj0nI3YK4SJhe52ELgtdgWP/ckIkbn2XaTxjQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.49.tgz", + "integrity": "sha512-lP06UQeLDGmVPw9Rg437Btu6J9/BmyhdoefnQ4gDEJTtJvKtQaUcOQrhjTq455ouZN4EHFH1h28WOJVANK41kA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.49.tgz", + "integrity": "sha512-4c8Zowp+V3zIWje329BeLbGh6XI9c/rqARNaj5yPHdC61pHI9UNdDxT3rePPJeWcEZVKjkiAS6AP6kiITp7FSw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.49.tgz", + "integrity": "sha512-q7Rb+J9yHTeKr9QTPDYkqfkEj8/kcKz9lOabDuvEXpXuIcosWCJgo5Z7h/L4r7rbtTH4a8U2FGKb6s1eeOHmJA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.49.tgz", + "integrity": "sha512-+Cme7Ongv0UIUTniPqfTX6mJ8Deo7VXw9xN0yJEN1lQMHDppTNmKwAM3oGbD/Vqff+07K2gN0WfNkMohmG+dVw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.49.tgz", + "integrity": "sha512-v+HYNAXzuANrCbbLFJ5nmO3m5y2PGZWLe3uloAkLt87aXiO2mZr3BTmacZdjwNkNEHuH3bNtN8cak+mzVjVPfA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loupe": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "node_modules/mocha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz", + "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==", + "dev": true, + "dependencies": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha-headless-chrome": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mocha-headless-chrome/-/mocha-headless-chrome-4.0.0.tgz", + "integrity": "sha512-Kw4/Sn3NgV3J2/DBuJrMGdxoul4YLl1RpTR+gftb3TNFXCcJZ1eAjAiMLzl5zd2Oa/w9Iu2V6hwTNOpcdf9VSg==", + "dev": true, + "dependencies": { + "args": "^5.0.1", + "mkdirp": "^1.0.4", + "puppeteer": "^13.1.3" + }, + "bin": { + "mocha-headless-chrome": "bin/start" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/mri": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", + "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/puppeteer": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-13.7.0.tgz", + "integrity": "sha512-U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.981744", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "pkg-dir": "4.2.0", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.5.0" + }, + "engines": { + "node": ">=10.18.1" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@types/node": { + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz", + "integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==", + "dev": true, + "optional": true + }, + "@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + } + }, + "@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "args": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.3.tgz", + "integrity": "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==", + "dev": true, + "requires": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + }, + "chai": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "cross-dirname": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/cross-dirname/-/cross-dirname-0.0.6.tgz", + "integrity": "sha512-HBAt99Skegib2AaMOZy1nfDwowBbWWANHYM67mXhyFtVavZwpVYn7rlhJVf3oXaWvhx75Esvx+4XWOuEKuOk7Q==", + "dev": true + }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "requires": { + "node-fetch": "2.6.7" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "devtools-protocol": { + "version": "0.0.981744", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", + "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", + "dev": true + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "esbuild": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.49.tgz", + "integrity": "sha512-/TlVHhOaq7Yz8N1OJrjqM3Auzo5wjvHFLk+T8pIue+fhnhIMpfAzsG6PLVMbFveVxqD2WOp3QHei+52IMUNmCw==", + "dev": true, + "requires": { + "esbuild-android-64": "0.14.49", + "esbuild-android-arm64": "0.14.49", + "esbuild-darwin-64": "0.14.49", + "esbuild-darwin-arm64": "0.14.49", + "esbuild-freebsd-64": "0.14.49", + "esbuild-freebsd-arm64": "0.14.49", + "esbuild-linux-32": "0.14.49", + "esbuild-linux-64": "0.14.49", + "esbuild-linux-arm": "0.14.49", + "esbuild-linux-arm64": "0.14.49", + "esbuild-linux-mips64le": "0.14.49", + "esbuild-linux-ppc64le": "0.14.49", + "esbuild-linux-riscv64": "0.14.49", + "esbuild-linux-s390x": "0.14.49", + "esbuild-netbsd-64": "0.14.49", + "esbuild-openbsd-64": "0.14.49", + "esbuild-sunos-64": "0.14.49", + "esbuild-windows-32": "0.14.49", + "esbuild-windows-64": "0.14.49", + "esbuild-windows-arm64": "0.14.49" + } + }, + "esbuild-android-64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.49.tgz", + "integrity": "sha512-vYsdOTD+yi+kquhBiFWl3tyxnj2qZJsl4tAqwhT90ktUdnyTizgle7TjNx6Ar1bN7wcwWqZ9QInfdk2WVagSww==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.49.tgz", + "integrity": "sha512-g2HGr/hjOXCgSsvQZ1nK4nW/ei8JUx04Li74qub9qWrStlysaVmadRyTVuW32FGIpLQyc5sUjjZopj49eGGM2g==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.49.tgz", + "integrity": "sha512-3rvqnBCtX9ywso5fCHixt2GBCUsogNp9DjGmvbBohh31Ces34BVzFltMSxJpacNki96+WIcX5s/vum+ckXiLYg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.49.tgz", + "integrity": "sha512-XMaqDxO846srnGlUSJnwbijV29MTKUATmOLyQSfswbK/2X5Uv28M9tTLUJcKKxzoo9lnkYPsx2o8EJcTYwCs/A==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.49.tgz", + "integrity": "sha512-NJ5Q6AjV879mOHFri+5lZLTp5XsO2hQ+KSJYLbfY9DgCu8s6/Zl2prWXVANYTeCDLlrIlNNYw8y34xqyLDKOmQ==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.49.tgz", + "integrity": "sha512-lFLtgXnAc3eXYqj5koPlBZvEbBSOSUbWO3gyY/0+4lBdRqELyz4bAuamHvmvHW5swJYL7kngzIZw6kdu25KGOA==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.49.tgz", + "integrity": "sha512-zTTH4gr2Kb8u4QcOpTDVn7Z8q7QEIvFl/+vHrI3cF6XOJS7iEI1FWslTo3uofB2+mn6sIJEQD9PrNZKoAAMDiA==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.49.tgz", + "integrity": "sha512-hYmzRIDzFfLrB5c1SknkxzM8LdEUOusp6M2TnuQZJLRtxTgyPnZZVtyMeCLki0wKgYPXkFsAVhi8vzo2mBNeTg==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.49.tgz", + "integrity": "sha512-iE3e+ZVv1Qz1Sy0gifIsarJMQ89Rpm9mtLSRtG3AH0FPgAzQ5Z5oU6vYzhc/3gSPi2UxdCOfRhw2onXuFw/0lg==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.49.tgz", + "integrity": "sha512-KLQ+WpeuY+7bxukxLz5VgkAAVQxUv67Ft4DmHIPIW+2w3ObBPQhqNoeQUHxopoW/aiOn3m99NSmSV+bs4BSsdA==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.49.tgz", + "integrity": "sha512-n+rGODfm8RSum5pFIqFQVQpYBw+AztL8s6o9kfx7tjfK0yIGF6tm5HlG6aRjodiiKkH2xAiIM+U4xtQVZYU4rA==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.49.tgz", + "integrity": "sha512-WP9zR4HX6iCBmMFH+XHHng2LmdoIeUmBpL4aL2TR8ruzXyT4dWrJ5BSbT8iNo6THN8lod6GOmYDLq/dgZLalGw==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.49.tgz", + "integrity": "sha512-h66ORBz+Dg+1KgLvzTVQEA1LX4XBd1SK0Fgbhhw4akpG/YkN8pS6OzYI/7SGENiN6ao5hETRDSkVcvU9NRtkMQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.49.tgz", + "integrity": "sha512-DhrUoFVWD+XmKO1y7e4kNCqQHPs6twz6VV6Uezl/XHYGzM60rBewBF5jlZjG0nCk5W/Xy6y1xWeopkrhFFM0sQ==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.49.tgz", + "integrity": "sha512-BXaUwFOfCy2T+hABtiPUIpWjAeWK9P8O41gR4Pg73hpzoygVGnj0nI3YK4SJhe52ELgtdgWP/ckIkbn2XaTxjQ==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.49.tgz", + "integrity": "sha512-lP06UQeLDGmVPw9Rg437Btu6J9/BmyhdoefnQ4gDEJTtJvKtQaUcOQrhjTq455ouZN4EHFH1h28WOJVANK41kA==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.49.tgz", + "integrity": "sha512-4c8Zowp+V3zIWje329BeLbGh6XI9c/rqARNaj5yPHdC61pHI9UNdDxT3rePPJeWcEZVKjkiAS6AP6kiITp7FSw==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.49.tgz", + "integrity": "sha512-q7Rb+J9yHTeKr9QTPDYkqfkEj8/kcKz9lOabDuvEXpXuIcosWCJgo5Z7h/L4r7rbtTH4a8U2FGKb6s1eeOHmJA==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.49.tgz", + "integrity": "sha512-+Cme7Ongv0UIUTniPqfTX6mJ8Deo7VXw9xN0yJEN1lQMHDppTNmKwAM3oGbD/Vqff+07K2gN0WfNkMohmG+dVw==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.49", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.49.tgz", + "integrity": "sha512-v+HYNAXzuANrCbbLFJ5nmO3m5y2PGZWLe3uloAkLt87aXiO2mZr3BTmacZdjwNkNEHuH3bNtN8cak+mzVjVPfA==", + "dev": true, + "optional": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "dev": true + }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", + "dev": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "loupe": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } + }, + "minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "mocha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz", + "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==", + "dev": true, + "requires": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + } + }, + "mocha-headless-chrome": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mocha-headless-chrome/-/mocha-headless-chrome-4.0.0.tgz", + "integrity": "sha512-Kw4/Sn3NgV3J2/DBuJrMGdxoul4YLl1RpTR+gftb3TNFXCcJZ1eAjAiMLzl5zd2Oa/w9Iu2V6hwTNOpcdf9VSg==", + "dev": true, + "requires": { + "args": "^5.0.1", + "mkdirp": "^1.0.4", + "puppeteer": "^13.1.3" + } + }, + "mri": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", + "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "puppeteer": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-13.7.0.tgz", + "integrity": "sha512-U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==", + "dev": true, + "requires": { + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.981744", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "pkg-dir": "4.2.0", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.5.0" + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true + }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "requires": {} + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + } + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/packages/platform/package.json b/packages/platform/package.json new file mode 100644 index 000000000..c2c1081fa --- /dev/null +++ b/packages/platform/package.json @@ -0,0 +1,62 @@ +{ + "name": "@deepkit/platform", + "version": "1.0.1-alpha.74", + "description": "Deepkit cross platform library", + "type": "commonjs", + "main": "./dist/cjs/index.cjs", + "module": "./dist/esm/index.mjs", + "types": "./dist/types/index.d.ts", + "exports": { + ".": { + "require": "./dist/cjs/index.cjs", + "default": "./dist/esm/index.mjs" + } + }, + "sideEffects": false, + "publishConfig": { + "access": "public" + }, + "repository": "https://github.com/deepkit/deepkit-framework", + "contributors": [ + { + "name" : "Pascal Garber", + "email" : "pascal@artandcode.studio" + } + ], + "license": "MIT", + "files": [ + "/dist" + ], + "scripts": { + "clear": "rm -rf dist", + "build": "npm run clear && npm run build:cjs && npm run build:esm && npm run build:types", + "build:cjs": "tsc && mv ./dist/cjs/index.js ./dist/cjs/index.cjs", + "build:esm": "tsc --project tsconfig.esm.json && mv ./dist/esm/index.js ./dist/esm/index.mjs", + "build:types": "tsc --project tsconfig.types.json", + "test": "npm run test:node && npm run test:deno && npm run test:gjs && npm run test:browser", + "test:node": "mocha test/node", + "test:gjs": "node test/browser/esbuild.mjs && gjs -m ./test/gjs/base.test.mjs", + "test:deno": "deno test ./test/deno/base.test.mjs", + "test:browser": "npm run test:browser:esm && npm run test:browser:cjs", + "test:browser:esm": "node test/browser/esbuild.mjs && mocha-headless-chrome --timeout 120000 --polling 1000 -f ./test/browser/index.html", + "test:browser:cjs": "node test/browser/esbuild.cjs && mocha-headless-chrome --timeout 120000 --polling 1000 -f ./test/browser/index.html" + }, + "keywords": [ + "deepkit", + "platform", + "dirname", + "filename", + "cross-platform", + "esm", + "cjs", + "node", + "deno", + "gjs" + ], + "devDependencies": { + "chai": "^4.3.6", + "mocha": "^10.0.0", + "mocha-headless-chrome": "^4.0.0", + "typescript": "^4.7.4" + } +} diff --git a/packages/platform/src/index.ts b/packages/platform/src/index.ts new file mode 100644 index 000000000..479c13dc9 --- /dev/null +++ b/packages/platform/src/index.ts @@ -0,0 +1,89 @@ +const DIRNAME_POSIX_REGEX = /^((?:\.(?![^\/]))|(?:(?:\/?|)(?:[\s\S]*?)))(?:\/+?|)(?:(?:\.{1,2}|[^\/]+?|)(?:\.[^.\/]*|))(?:[\/]*)$/; +const DIRNAME_WIN32_REGEX = /^((?:\.(?![^\\]))|(?:(?:\\?|)(?:[\s\S]*?)))(?:\\+?|)(?:(?:\.{1,2}|[^\\]+?|)(?:\.[^.\\]*|))(?:[\\]*)$/; +const EXTRACT_PATH_REGEX = /@?(?[file:\/\/]?[^\(\s]+):[0-9]+:[0-9]+/; +const WIN_POSIX_DRIVE_REGEX = /^\/[A-Z]:\/*/; + +const pathDirname = (path: string) => { + let dirname = DIRNAME_POSIX_REGEX.exec(path)?.[1]; + + if (!dirname) { + dirname = DIRNAME_WIN32_REGEX.exec(path)?.[1]; + } + + if(!dirname) { + throw new Error(`Can't extract dirname from ${path}`); + } + + return dirname; +} + +const getPathFromErrorStack = () => { + let path = ''; + const stack = new Error().stack; + + if(!stack) { + console.warn("Error has no stack!"); + return path; + } + + // Node.js + let initiator: string | undefined = stack.split('\n').slice(4, 5)[0]; + + // Other + if(!initiator) { + initiator = stack.split('\n').slice(3, 4)[0]; + } + + if (initiator) { + path = EXTRACT_PATH_REGEX.exec(initiator)?.groups?.path || ''; + } + + if(!initiator || !path) { + console.warn("Can't get path from error stack!"); + } + + return path; +} + + +const getPath = () => { + let path = getPathFromErrorStack(); + + // Remove protocol + const protocol = "file://"; + if (path.indexOf(protocol) >= 0) { + path = path.slice(protocol.length); + } + + // Transform to win32 path + if (WIN_POSIX_DRIVE_REGEX.test(path)) { + path = path.slice(1).replace(/\//g, '\\'); + } + + return path; +} + +/** + * Cross platform implementation for `__dirname`. + * + * @note Please do not use this method in nested other methods, + * instead always use it in the root of your file, otherwise it may return wrong results. + * @returns What `__dirname` would return in CJS + */ +export const getDirname = () => { + let path = getPath(); + const dirname = pathDirname(path) + return dirname +} + +/** + * Cross platform implementation for `__filename`. + * + * @note Please do not use this method in nested other methods, + * instead always use it in the root of your file, otherwise it may return wrong results. + * @returns What `__filename` would return in CJS + */ +export const getFilename = () => { + let filename = getPath(); + return filename +} diff --git a/packages/platform/test/browser/base.test.js b/packages/platform/test/browser/base.test.js new file mode 100644 index 000000000..1e56b579a --- /dev/null +++ b/packages/platform/test/browser/base.test.js @@ -0,0 +1,4088 @@ +"use strict"; +(() => { + var __getOwnPropNames = Object.getOwnPropertyNames; + var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; + }; + + // dist/cjs/index.cjs + var require_cjs = __commonJS({ + "dist/cjs/index.cjs"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.getFilename = exports.getDirname = void 0; + var DIRNAME_POSIX_REGEX = /^((?:\.(?![^\/]))|(?:(?:\/?|)(?:[\s\S]*?)))(?:\/+?|)(?:(?:\.{1,2}|[^\/]+?|)(?:\.[^.\/]*|))(?:[\/]*)$/; + var DIRNAME_WIN32_REGEX = /^((?:\.(?![^\\]))|(?:(?:\\?|)(?:[\s\S]*?)))(?:\\+?|)(?:(?:\.{1,2}|[^\\]+?|)(?:\.[^.\\]*|))(?:[\\]*)$/; + var EXTRACT_PATH_REGEX = /@?(?[file:\/\/]?[^\(\s]+):[0-9]+:[0-9]+/; + var WIN_POSIX_DRIVE_REGEX = /^\/[A-Z]:\/*/; + var pathDirname = (path) => { + let dirname = DIRNAME_POSIX_REGEX.exec(path)?.[1]; + if (!dirname) { + dirname = DIRNAME_WIN32_REGEX.exec(path)?.[1]; + } + if (!dirname) { + throw new Error(`Can't extract dirname from ${path}`); + } + return dirname; + }; + var getPathFromErrorStack = () => { + let path = ""; + const stack = new Error().stack; + if (!stack) { + console.warn("Error has no stack!"); + return path; + } + let initiator = stack.split("\n").slice(4, 5)[0]; + if (!initiator) { + initiator = stack.split("\n").slice(3, 4)[0]; + } + if (initiator) { + path = EXTRACT_PATH_REGEX.exec(initiator)?.groups?.path || ""; + } + if (!initiator || !path) { + console.warn("Can't get path from error stack!"); + } + return path; + }; + var getPath = () => { + let path = getPathFromErrorStack(); + const protocol = "file://"; + if (path.indexOf(protocol) >= 0) { + path = path.slice(protocol.length); + } + if (WIN_POSIX_DRIVE_REGEX.test(path)) { + path = path.slice(1).replace(/\//g, "\\"); + } + return path; + }; + var getDirname = () => { + let path = getPath(); + const dirname = pathDirname(path); + return dirname; + }; + exports.getDirname = getDirname; + var getFilename = () => { + let filename = getPath(); + return filename; + }; + exports.getFilename = getFilename; + } + }); + + // node_modules/assertion-error/index.js + var require_assertion_error = __commonJS({ + "node_modules/assertion-error/index.js"(exports, module) { + function exclude() { + var excludes = [].slice.call(arguments); + function excludeProps(res, obj) { + Object.keys(obj).forEach(function(key) { + if (!~excludes.indexOf(key)) + res[key] = obj[key]; + }); + } + return function extendExclude() { + var args = [].slice.call(arguments), i = 0, res = {}; + for (; i < args.length; i++) { + excludeProps(res, args[i]); + } + return res; + }; + } + module.exports = AssertionError; + function AssertionError(message, _props, ssf) { + var extend = exclude("name", "message", "stack", "constructor", "toJSON"), props = extend(_props || {}); + this.message = message || "Unspecified AssertionError"; + this.showDiff = false; + for (var key in props) { + this[key] = props[key]; + } + ssf = ssf || AssertionError; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, ssf); + } else { + try { + throw new Error(); + } catch (e) { + this.stack = e.stack; + } + } + } + AssertionError.prototype = Object.create(Error.prototype); + AssertionError.prototype.name = "AssertionError"; + AssertionError.prototype.constructor = AssertionError; + AssertionError.prototype.toJSON = function(stack) { + var extend = exclude("constructor", "toJSON", "stack"), props = extend({ name: this.name }, this); + if (false !== stack && this.stack) { + props.stack = this.stack; + } + return props; + }; + } + }); + + // node_modules/pathval/index.js + var require_pathval = __commonJS({ + "node_modules/pathval/index.js"(exports, module) { + "use strict"; + function hasProperty(obj, name) { + if (typeof obj === "undefined" || obj === null) { + return false; + } + return name in Object(obj); + } + function parsePath(path) { + var str = path.replace(/([^\\])\[/g, "$1.["); + var parts = str.match(/(\\\.|[^.]+?)+/g); + return parts.map(function mapMatches(value) { + if (value === "constructor" || value === "__proto__" || value === "prototype") { + return {}; + } + var regexp = /^\[(\d+)\]$/; + var mArr = regexp.exec(value); + var parsed = null; + if (mArr) { + parsed = { i: parseFloat(mArr[1]) }; + } else { + parsed = { p: value.replace(/\\([.[\]])/g, "$1") }; + } + return parsed; + }); + } + function internalGetPathValue(obj, parsed, pathDepth) { + var temporaryValue = obj; + var res = null; + pathDepth = typeof pathDepth === "undefined" ? parsed.length : pathDepth; + for (var i = 0; i < pathDepth; i++) { + var part = parsed[i]; + if (temporaryValue) { + if (typeof part.p === "undefined") { + temporaryValue = temporaryValue[part.i]; + } else { + temporaryValue = temporaryValue[part.p]; + } + if (i === pathDepth - 1) { + res = temporaryValue; + } + } + } + return res; + } + function internalSetPathValue(obj, val, parsed) { + var tempObj = obj; + var pathDepth = parsed.length; + var part = null; + for (var i = 0; i < pathDepth; i++) { + var propName = null; + var propVal = null; + part = parsed[i]; + if (i === pathDepth - 1) { + propName = typeof part.p === "undefined" ? part.i : part.p; + tempObj[propName] = val; + } else if (typeof part.p !== "undefined" && tempObj[part.p]) { + tempObj = tempObj[part.p]; + } else if (typeof part.i !== "undefined" && tempObj[part.i]) { + tempObj = tempObj[part.i]; + } else { + var next = parsed[i + 1]; + propName = typeof part.p === "undefined" ? part.i : part.p; + propVal = typeof next.p === "undefined" ? [] : {}; + tempObj[propName] = propVal; + tempObj = tempObj[propName]; + } + } + } + function getPathInfo(obj, path) { + var parsed = parsePath(path); + var last = parsed[parsed.length - 1]; + var info = { + parent: parsed.length > 1 ? internalGetPathValue(obj, parsed, parsed.length - 1) : obj, + name: last.p || last.i, + value: internalGetPathValue(obj, parsed) + }; + info.exists = hasProperty(info.parent, info.name); + return info; + } + function getPathValue(obj, path) { + var info = getPathInfo(obj, path); + return info.value; + } + function setPathValue(obj, path, val) { + var parsed = parsePath(path); + internalSetPathValue(obj, val, parsed); + return obj; + } + module.exports = { + hasProperty, + getPathInfo, + getPathValue, + setPathValue + }; + } + }); + + // node_modules/chai/lib/chai/utils/flag.js + var require_flag = __commonJS({ + "node_modules/chai/lib/chai/utils/flag.js"(exports, module) { + module.exports = function flag(obj, key, value) { + var flags = obj.__flags || (obj.__flags = /* @__PURE__ */ Object.create(null)); + if (arguments.length === 3) { + flags[key] = value; + } else { + return flags[key]; + } + }; + } + }); + + // node_modules/chai/lib/chai/utils/test.js + var require_test = __commonJS({ + "node_modules/chai/lib/chai/utils/test.js"(exports, module) { + var flag = require_flag(); + module.exports = function test(obj, args) { + var negate = flag(obj, "negate"), expr = args[0]; + return negate ? !expr : expr; + }; + } + }); + + // node_modules/type-detect/type-detect.js + var require_type_detect = __commonJS({ + "node_modules/type-detect/type-detect.js"(exports, module) { + (function(global2, factory) { + typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : global2.typeDetect = factory(); + })(exports, function() { + "use strict"; + var promiseExists = typeof Promise === "function"; + var globalObject = typeof self === "object" ? self : global; + var symbolExists = typeof Symbol !== "undefined"; + var mapExists = typeof Map !== "undefined"; + var setExists = typeof Set !== "undefined"; + var weakMapExists = typeof WeakMap !== "undefined"; + var weakSetExists = typeof WeakSet !== "undefined"; + var dataViewExists = typeof DataView !== "undefined"; + var symbolIteratorExists = symbolExists && typeof Symbol.iterator !== "undefined"; + var symbolToStringTagExists = symbolExists && typeof Symbol.toStringTag !== "undefined"; + var setEntriesExists = setExists && typeof Set.prototype.entries === "function"; + var mapEntriesExists = mapExists && typeof Map.prototype.entries === "function"; + var setIteratorPrototype = setEntriesExists && Object.getPrototypeOf((/* @__PURE__ */ new Set()).entries()); + var mapIteratorPrototype = mapEntriesExists && Object.getPrototypeOf((/* @__PURE__ */ new Map()).entries()); + var arrayIteratorExists = symbolIteratorExists && typeof Array.prototype[Symbol.iterator] === "function"; + var arrayIteratorPrototype = arrayIteratorExists && Object.getPrototypeOf([][Symbol.iterator]()); + var stringIteratorExists = symbolIteratorExists && typeof String.prototype[Symbol.iterator] === "function"; + var stringIteratorPrototype = stringIteratorExists && Object.getPrototypeOf(""[Symbol.iterator]()); + var toStringLeftSliceLength = 8; + var toStringRightSliceLength = -1; + function typeDetect(obj) { + var typeofObj = typeof obj; + if (typeofObj !== "object") { + return typeofObj; + } + if (obj === null) { + return "null"; + } + if (obj === globalObject) { + return "global"; + } + if (Array.isArray(obj) && (symbolToStringTagExists === false || !(Symbol.toStringTag in obj))) { + return "Array"; + } + if (typeof window === "object" && window !== null) { + if (typeof window.location === "object" && obj === window.location) { + return "Location"; + } + if (typeof window.document === "object" && obj === window.document) { + return "Document"; + } + if (typeof window.navigator === "object") { + if (typeof window.navigator.mimeTypes === "object" && obj === window.navigator.mimeTypes) { + return "MimeTypeArray"; + } + if (typeof window.navigator.plugins === "object" && obj === window.navigator.plugins) { + return "PluginArray"; + } + } + if ((typeof window.HTMLElement === "function" || typeof window.HTMLElement === "object") && obj instanceof window.HTMLElement) { + if (obj.tagName === "BLOCKQUOTE") { + return "HTMLQuoteElement"; + } + if (obj.tagName === "TD") { + return "HTMLTableDataCellElement"; + } + if (obj.tagName === "TH") { + return "HTMLTableHeaderCellElement"; + } + } + } + var stringTag = symbolToStringTagExists && obj[Symbol.toStringTag]; + if (typeof stringTag === "string") { + return stringTag; + } + var objPrototype = Object.getPrototypeOf(obj); + if (objPrototype === RegExp.prototype) { + return "RegExp"; + } + if (objPrototype === Date.prototype) { + return "Date"; + } + if (promiseExists && objPrototype === Promise.prototype) { + return "Promise"; + } + if (setExists && objPrototype === Set.prototype) { + return "Set"; + } + if (mapExists && objPrototype === Map.prototype) { + return "Map"; + } + if (weakSetExists && objPrototype === WeakSet.prototype) { + return "WeakSet"; + } + if (weakMapExists && objPrototype === WeakMap.prototype) { + return "WeakMap"; + } + if (dataViewExists && objPrototype === DataView.prototype) { + return "DataView"; + } + if (mapExists && objPrototype === mapIteratorPrototype) { + return "Map Iterator"; + } + if (setExists && objPrototype === setIteratorPrototype) { + return "Set Iterator"; + } + if (arrayIteratorExists && objPrototype === arrayIteratorPrototype) { + return "Array Iterator"; + } + if (stringIteratorExists && objPrototype === stringIteratorPrototype) { + return "String Iterator"; + } + if (objPrototype === null) { + return "Object"; + } + return Object.prototype.toString.call(obj).slice(toStringLeftSliceLength, toStringRightSliceLength); + } + return typeDetect; + }); + } + }); + + // node_modules/chai/lib/chai/utils/expectTypes.js + var require_expectTypes = __commonJS({ + "node_modules/chai/lib/chai/utils/expectTypes.js"(exports, module) { + var AssertionError = require_assertion_error(); + var flag = require_flag(); + var type = require_type_detect(); + module.exports = function expectTypes(obj, types) { + var flagMsg = flag(obj, "message"); + var ssfi = flag(obj, "ssfi"); + flagMsg = flagMsg ? flagMsg + ": " : ""; + obj = flag(obj, "object"); + types = types.map(function(t) { + return t.toLowerCase(); + }); + types.sort(); + var str = types.map(function(t, index) { + var art = ~["a", "e", "i", "o", "u"].indexOf(t.charAt(0)) ? "an" : "a"; + var or = types.length > 1 && index === types.length - 1 ? "or " : ""; + return or + art + " " + t; + }).join(", "); + var objType = type(obj).toLowerCase(); + if (!types.some(function(expected) { + return objType === expected; + })) { + throw new AssertionError(flagMsg + "object tested must be " + str + ", but " + objType + " given", void 0, ssfi); + } + }; + } + }); + + // node_modules/chai/lib/chai/utils/getActual.js + var require_getActual = __commonJS({ + "node_modules/chai/lib/chai/utils/getActual.js"(exports, module) { + module.exports = function getActual(obj, args) { + return args.length > 4 ? args[4] : obj._obj; + }; + } + }); + + // node_modules/get-func-name/index.js + var require_get_func_name = __commonJS({ + "node_modules/get-func-name/index.js"(exports, module) { + "use strict"; + var toString = Function.prototype.toString; + var functionNameMatch = /\s*function(?:\s|\s*\/\*[^(?:*\/)]+\*\/\s*)*([^\s\(\/]+)/; + function getFuncName(aFunc) { + if (typeof aFunc !== "function") { + return null; + } + var name = ""; + if (typeof Function.prototype.name === "undefined" && typeof aFunc.name === "undefined") { + var match = toString.call(aFunc).match(functionNameMatch); + if (match) { + name = match[1]; + } + } else { + name = aFunc.name; + } + return name; + } + module.exports = getFuncName; + } + }); + + // (disabled):util + var require_util = __commonJS({ + "(disabled):util"() { + } + }); + + // node_modules/loupe/loupe.js + var require_loupe = __commonJS({ + "node_modules/loupe/loupe.js"(exports, module) { + (function(global2, factory) { + typeof exports === "object" && typeof module !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.loupe = {})); + })(exports, function(exports2) { + "use strict"; + function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function(obj2) { + return typeof obj2; + }; + } else { + _typeof = function(obj2) { + return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; + }; + } + return _typeof(obj); + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) + return arr; + } + function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) + return; + var _arr = []; + var _n = true; + var _d = false; + var _e = void 0; + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) + break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) + _i["return"](); + } finally { + if (_d) + throw _e; + } + } + return _arr; + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) + return; + if (typeof o === "string") + return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) + n = o.constructor.name; + if (n === "Map" || n === "Set") + return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) + return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) + len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) + arr2[i] = arr[i]; + return arr2; + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var ansiColors = { + bold: ["1", "22"], + dim: ["2", "22"], + italic: ["3", "23"], + underline: ["4", "24"], + inverse: ["7", "27"], + hidden: ["8", "28"], + strike: ["9", "29"], + black: ["30", "39"], + red: ["31", "39"], + green: ["32", "39"], + yellow: ["33", "39"], + blue: ["34", "39"], + magenta: ["35", "39"], + cyan: ["36", "39"], + white: ["37", "39"], + brightblack: ["30;1", "39"], + brightred: ["31;1", "39"], + brightgreen: ["32;1", "39"], + brightyellow: ["33;1", "39"], + brightblue: ["34;1", "39"], + brightmagenta: ["35;1", "39"], + brightcyan: ["36;1", "39"], + brightwhite: ["37;1", "39"], + grey: ["90", "39"] + }; + var styles = { + special: "cyan", + number: "yellow", + bigint: "yellow", + boolean: "yellow", + undefined: "grey", + null: "bold", + string: "green", + symbol: "green", + date: "magenta", + regexp: "red" + }; + var truncator = "\u2026"; + function colorise(value, styleType) { + var color = ansiColors[styles[styleType]] || ansiColors[styleType]; + if (!color) { + return String(value); + } + return "\x1B[".concat(color[0], "m").concat(String(value), "\x1B[").concat(color[1], "m"); + } + function normaliseOptions() { + var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _ref$showHidden = _ref.showHidden, showHidden = _ref$showHidden === void 0 ? false : _ref$showHidden, _ref$depth = _ref.depth, depth = _ref$depth === void 0 ? 2 : _ref$depth, _ref$colors = _ref.colors, colors = _ref$colors === void 0 ? false : _ref$colors, _ref$customInspect = _ref.customInspect, customInspect = _ref$customInspect === void 0 ? true : _ref$customInspect, _ref$showProxy = _ref.showProxy, showProxy = _ref$showProxy === void 0 ? false : _ref$showProxy, _ref$maxArrayLength = _ref.maxArrayLength, maxArrayLength = _ref$maxArrayLength === void 0 ? Infinity : _ref$maxArrayLength, _ref$breakLength = _ref.breakLength, breakLength = _ref$breakLength === void 0 ? Infinity : _ref$breakLength, _ref$seen = _ref.seen, seen = _ref$seen === void 0 ? [] : _ref$seen, _ref$truncate = _ref.truncate, truncate2 = _ref$truncate === void 0 ? Infinity : _ref$truncate, _ref$stylize = _ref.stylize, stylize = _ref$stylize === void 0 ? String : _ref$stylize; + var options = { + showHidden: Boolean(showHidden), + depth: Number(depth), + colors: Boolean(colors), + customInspect: Boolean(customInspect), + showProxy: Boolean(showProxy), + maxArrayLength: Number(maxArrayLength), + breakLength: Number(breakLength), + truncate: Number(truncate2), + seen, + stylize + }; + if (options.colors) { + options.stylize = colorise; + } + return options; + } + function truncate(string, length) { + var tail = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : truncator; + string = String(string); + var tailLength = tail.length; + var stringLength = string.length; + if (tailLength > length && stringLength > tailLength) { + return tail; + } + if (stringLength > length && stringLength > tailLength) { + return "".concat(string.slice(0, length - tailLength)).concat(tail); + } + return string; + } + function inspectList(list, options, inspectItem) { + var separator = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : ", "; + inspectItem = inspectItem || options.inspect; + var size = list.length; + if (size === 0) + return ""; + var originalLength = options.truncate; + var output = ""; + var peek = ""; + var truncated = ""; + for (var i = 0; i < size; i += 1) { + var last = i + 1 === list.length; + var secondToLast = i + 2 === list.length; + truncated = "".concat(truncator, "(").concat(list.length - i, ")"); + var value = list[i]; + options.truncate = originalLength - output.length - (last ? 0 : separator.length); + var string = peek || inspectItem(value, options) + (last ? "" : separator); + var nextLength = output.length + string.length; + var truncatedLength = nextLength + truncated.length; + if (last && nextLength > originalLength && output.length + truncated.length <= originalLength) { + break; + } + if (!last && !secondToLast && truncatedLength > originalLength) { + break; + } + peek = last ? "" : inspectItem(list[i + 1], options) + (secondToLast ? "" : separator); + if (!last && secondToLast && truncatedLength > originalLength && nextLength + peek.length > originalLength) { + break; + } + output += string; + if (!last && !secondToLast && nextLength + peek.length >= originalLength) { + truncated = "".concat(truncator, "(").concat(list.length - i - 1, ")"); + break; + } + truncated = ""; + } + return "".concat(output).concat(truncated); + } + function quoteComplexKey(key) { + if (key.match(/^[a-zA-Z_][a-zA-Z_0-9]*$/)) { + return key; + } + return JSON.stringify(key).replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"); + } + function inspectProperty(_ref2, options) { + var _ref3 = _slicedToArray(_ref2, 2), key = _ref3[0], value = _ref3[1]; + options.truncate -= 2; + if (typeof key === "string") { + key = quoteComplexKey(key); + } else if (typeof key !== "number") { + key = "[".concat(options.inspect(key, options), "]"); + } + options.truncate -= key.length; + value = options.inspect(value, options); + return "".concat(key, ": ").concat(value); + } + function inspectArray(array, options) { + var nonIndexProperties = Object.keys(array).slice(array.length); + if (!array.length && !nonIndexProperties.length) + return "[]"; + options.truncate -= 4; + var listContents = inspectList(array, options); + options.truncate -= listContents.length; + var propertyContents = ""; + if (nonIndexProperties.length) { + propertyContents = inspectList(nonIndexProperties.map(function(key) { + return [key, array[key]]; + }), options, inspectProperty); + } + return "[ ".concat(listContents).concat(propertyContents ? ", ".concat(propertyContents) : "", " ]"); + } + var toString = Function.prototype.toString; + var functionNameMatch = /\s*function(?:\s|\s*\/\*[^(?:*\/)]+\*\/\s*)*([^\s\(\/]+)/; + function getFuncName(aFunc) { + if (typeof aFunc !== "function") { + return null; + } + var name = ""; + if (typeof Function.prototype.name === "undefined" && typeof aFunc.name === "undefined") { + var match = toString.call(aFunc).match(functionNameMatch); + if (match) { + name = match[1]; + } + } else { + name = aFunc.name; + } + return name; + } + var getFuncName_1 = getFuncName; + var getArrayName = function getArrayName2(array) { + if (typeof Buffer === "function" && array instanceof Buffer) { + return "Buffer"; + } + if (array[Symbol.toStringTag]) { + return array[Symbol.toStringTag]; + } + return getFuncName_1(array.constructor); + }; + function inspectTypedArray(array, options) { + var name = getArrayName(array); + options.truncate -= name.length + 4; + var nonIndexProperties = Object.keys(array).slice(array.length); + if (!array.length && !nonIndexProperties.length) + return "".concat(name, "[]"); + var output = ""; + for (var i = 0; i < array.length; i++) { + var string = "".concat(options.stylize(truncate(array[i], options.truncate), "number")).concat(i === array.length - 1 ? "" : ", "); + options.truncate -= string.length; + if (array[i] !== array.length && options.truncate <= 3) { + output += "".concat(truncator, "(").concat(array.length - array[i] + 1, ")"); + break; + } + output += string; + } + var propertyContents = ""; + if (nonIndexProperties.length) { + propertyContents = inspectList(nonIndexProperties.map(function(key) { + return [key, array[key]]; + }), options, inspectProperty); + } + return "".concat(name, "[ ").concat(output).concat(propertyContents ? ", ".concat(propertyContents) : "", " ]"); + } + function inspectDate(dateObject, options) { + var split = dateObject.toJSON().split("T"); + var date = split[0]; + return options.stylize("".concat(date, "T").concat(truncate(split[1], options.truncate - date.length - 1)), "date"); + } + function inspectFunction(func, options) { + var name = getFuncName_1(func); + if (!name) { + return options.stylize("[Function]", "special"); + } + return options.stylize("[Function ".concat(truncate(name, options.truncate - 11), "]"), "special"); + } + function inspectMapEntry(_ref, options) { + var _ref2 = _slicedToArray(_ref, 2), key = _ref2[0], value = _ref2[1]; + options.truncate -= 4; + key = options.inspect(key, options); + options.truncate -= key.length; + value = options.inspect(value, options); + return "".concat(key, " => ").concat(value); + } + function mapToEntries(map) { + var entries = []; + map.forEach(function(value, key) { + entries.push([key, value]); + }); + return entries; + } + function inspectMap(map, options) { + var size = map.size - 1; + if (size <= 0) { + return "Map{}"; + } + options.truncate -= 7; + return "Map{ ".concat(inspectList(mapToEntries(map), options, inspectMapEntry), " }"); + } + var isNaN = Number.isNaN || function(i) { + return i !== i; + }; + function inspectNumber(number, options) { + if (isNaN(number)) { + return options.stylize("NaN", "number"); + } + if (number === Infinity) { + return options.stylize("Infinity", "number"); + } + if (number === -Infinity) { + return options.stylize("-Infinity", "number"); + } + if (number === 0) { + return options.stylize(1 / number === Infinity ? "+0" : "-0", "number"); + } + return options.stylize(truncate(number, options.truncate), "number"); + } + function inspectBigInt(number, options) { + var nums = truncate(number.toString(), options.truncate - 1); + if (nums !== truncator) + nums += "n"; + return options.stylize(nums, "bigint"); + } + function inspectRegExp(value, options) { + var flags = value.toString().split("/")[2]; + var sourceLength = options.truncate - (2 + flags.length); + var source = value.source; + return options.stylize("/".concat(truncate(source, sourceLength), "/").concat(flags), "regexp"); + } + function arrayFromSet(set) { + var values = []; + set.forEach(function(value) { + values.push(value); + }); + return values; + } + function inspectSet(set, options) { + if (set.size === 0) + return "Set{}"; + options.truncate -= 7; + return "Set{ ".concat(inspectList(arrayFromSet(set), options), " }"); + } + var stringEscapeChars = new RegExp("['\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]", "g"); + var escapeCharacters = { + "\b": "\\b", + " ": "\\t", + "\n": "\\n", + "\f": "\\f", + "\r": "\\r", + "'": "\\'", + "\\": "\\\\" + }; + var hex = 16; + var unicodeLength = 4; + function escape(char) { + return escapeCharacters[char] || "\\u".concat("0000".concat(char.charCodeAt(0).toString(hex)).slice(-unicodeLength)); + } + function inspectString(string, options) { + if (stringEscapeChars.test(string)) { + string = string.replace(stringEscapeChars, escape); + } + return options.stylize("'".concat(truncate(string, options.truncate - 2), "'"), "string"); + } + function inspectSymbol(value) { + if ("description" in Symbol.prototype) { + return value.description ? "Symbol(".concat(value.description, ")") : "Symbol()"; + } + return value.toString(); + } + var getPromiseValue = function getPromiseValue2() { + return "Promise{\u2026}"; + }; + try { + var _process$binding = process.binding("util"), getPromiseDetails = _process$binding.getPromiseDetails, kPending = _process$binding.kPending, kRejected = _process$binding.kRejected; + if (Array.isArray(getPromiseDetails(Promise.resolve()))) { + getPromiseValue = function getPromiseValue2(value, options) { + var _getPromiseDetails = getPromiseDetails(value), _getPromiseDetails2 = _slicedToArray(_getPromiseDetails, 2), state = _getPromiseDetails2[0], innerValue = _getPromiseDetails2[1]; + if (state === kPending) { + return "Promise{}"; + } + return "Promise".concat(state === kRejected ? "!" : "", "{").concat(options.inspect(innerValue, options), "}"); + }; + } + } catch (notNode) { + } + var inspectPromise = getPromiseValue; + function inspectObject(object, options) { + var properties = Object.getOwnPropertyNames(object); + var symbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(object) : []; + if (properties.length === 0 && symbols.length === 0) { + return "{}"; + } + options.truncate -= 4; + options.seen = options.seen || []; + if (options.seen.indexOf(object) >= 0) { + return "[Circular]"; + } + options.seen.push(object); + var propertyContents = inspectList(properties.map(function(key) { + return [key, object[key]]; + }), options, inspectProperty); + var symbolContents = inspectList(symbols.map(function(key) { + return [key, object[key]]; + }), options, inspectProperty); + options.seen.pop(); + var sep = ""; + if (propertyContents && symbolContents) { + sep = ", "; + } + return "{ ".concat(propertyContents).concat(sep).concat(symbolContents, " }"); + } + var toStringTag = typeof Symbol !== "undefined" && Symbol.toStringTag ? Symbol.toStringTag : false; + function inspectClass(value, options) { + var name = ""; + if (toStringTag && toStringTag in value) { + name = value[toStringTag]; + } + name = name || getFuncName_1(value.constructor); + if (!name || name === "_class") { + name = ""; + } + options.truncate -= name.length; + return "".concat(name).concat(inspectObject(value, options)); + } + function inspectArguments(args, options) { + if (args.length === 0) + return "Arguments[]"; + options.truncate -= 13; + return "Arguments[ ".concat(inspectList(args, options), " ]"); + } + var errorKeys = ["stack", "line", "column", "name", "message", "fileName", "lineNumber", "columnNumber", "number", "description"]; + function inspectObject$1(error, options) { + var properties = Object.getOwnPropertyNames(error).filter(function(key) { + return errorKeys.indexOf(key) === -1; + }); + var name = error.name; + options.truncate -= name.length; + var message = ""; + if (typeof error.message === "string") { + message = truncate(error.message, options.truncate); + } else { + properties.unshift("message"); + } + message = message ? ": ".concat(message) : ""; + options.truncate -= message.length + 5; + var propertyContents = inspectList(properties.map(function(key) { + return [key, error[key]]; + }), options, inspectProperty); + return "".concat(name).concat(message).concat(propertyContents ? " { ".concat(propertyContents, " }") : ""); + } + function inspectAttribute(_ref, options) { + var _ref2 = _slicedToArray(_ref, 2), key = _ref2[0], value = _ref2[1]; + options.truncate -= 3; + if (!value) { + return "".concat(options.stylize(key, "yellow")); + } + return "".concat(options.stylize(key, "yellow"), "=").concat(options.stylize('"'.concat(value, '"'), "string")); + } + function inspectHTMLCollection(collection, options) { + return inspectList(collection, options, inspectHTML, "\n"); + } + function inspectHTML(element, options) { + var properties = element.getAttributeNames(); + var name = element.tagName.toLowerCase(); + var head = options.stylize("<".concat(name), "special"); + var headClose = options.stylize(">", "special"); + var tail = options.stylize(""), "special"); + options.truncate -= name.length * 2 + 5; + var propertyContents = ""; + if (properties.length > 0) { + propertyContents += " "; + propertyContents += inspectList(properties.map(function(key) { + return [key, element.getAttribute(key)]; + }), options, inspectAttribute, " "); + } + options.truncate -= propertyContents.length; + var truncate2 = options.truncate; + var children = inspectHTMLCollection(element.children, options); + if (children && children.length > truncate2) { + children = "".concat(truncator, "(").concat(element.children.length, ")"); + } + return "".concat(head).concat(propertyContents).concat(headClose).concat(children).concat(tail); + } + var symbolsSupported = typeof Symbol === "function" && typeof Symbol.for === "function"; + var chaiInspect = symbolsSupported ? Symbol.for("chai/inspect") : "@@chai/inspect"; + var nodeInspect = false; + try { + var nodeUtil = require_util(); + nodeInspect = nodeUtil.inspect ? nodeUtil.inspect.custom : false; + } catch (noNodeInspect) { + nodeInspect = false; + } + var constructorMap = /* @__PURE__ */ new WeakMap(); + var stringTagMap = {}; + var baseTypesMap = { + undefined: function undefined$1(value, options) { + return options.stylize("undefined", "undefined"); + }, + null: function _null(value, options) { + return options.stylize(null, "null"); + }, + boolean: function boolean(value, options) { + return options.stylize(value, "boolean"); + }, + Boolean: function Boolean2(value, options) { + return options.stylize(value, "boolean"); + }, + number: inspectNumber, + Number: inspectNumber, + bigint: inspectBigInt, + BigInt: inspectBigInt, + string: inspectString, + String: inspectString, + function: inspectFunction, + Function: inspectFunction, + symbol: inspectSymbol, + Symbol: inspectSymbol, + Array: inspectArray, + Date: inspectDate, + Map: inspectMap, + Set: inspectSet, + RegExp: inspectRegExp, + Promise: inspectPromise, + WeakSet: function WeakSet2(value, options) { + return options.stylize("WeakSet{\u2026}", "special"); + }, + WeakMap: function WeakMap2(value, options) { + return options.stylize("WeakMap{\u2026}", "special"); + }, + Arguments: inspectArguments, + Int8Array: inspectTypedArray, + Uint8Array: inspectTypedArray, + Uint8ClampedArray: inspectTypedArray, + Int16Array: inspectTypedArray, + Uint16Array: inspectTypedArray, + Int32Array: inspectTypedArray, + Uint32Array: inspectTypedArray, + Float32Array: inspectTypedArray, + Float64Array: inspectTypedArray, + Generator: function Generator() { + return ""; + }, + DataView: function DataView2() { + return ""; + }, + ArrayBuffer: function ArrayBuffer() { + return ""; + }, + Error: inspectObject$1, + HTMLCollection: inspectHTMLCollection, + NodeList: inspectHTMLCollection + }; + var inspectCustom = function inspectCustom2(value, options, type) { + if (chaiInspect in value && typeof value[chaiInspect] === "function") { + return value[chaiInspect](options); + } + if (nodeInspect && nodeInspect in value && typeof value[nodeInspect] === "function") { + return value[nodeInspect](options.depth, options); + } + if ("inspect" in value && typeof value.inspect === "function") { + return value.inspect(options.depth, options); + } + if ("constructor" in value && constructorMap.has(value.constructor)) { + return constructorMap.get(value.constructor)(value, options); + } + if (stringTagMap[type]) { + return stringTagMap[type](value, options); + } + return ""; + }; + var toString$1 = Object.prototype.toString; + function inspect(value, options) { + options = normaliseOptions(options); + options.inspect = inspect; + var _options = options, customInspect = _options.customInspect; + var type = value === null ? "null" : _typeof(value); + if (type === "object") { + type = toString$1.call(value).slice(8, -1); + } + if (baseTypesMap[type]) { + return baseTypesMap[type](value, options); + } + if (customInspect && value) { + var output = inspectCustom(value, options, type); + if (output) { + if (typeof output === "string") + return output; + return inspect(output, options); + } + } + var proto = value ? Object.getPrototypeOf(value) : false; + if (proto === Object.prototype || proto === null) { + return inspectObject(value, options); + } + if (value && typeof HTMLElement === "function" && value instanceof HTMLElement) { + return inspectHTML(value, options); + } + if ("constructor" in value) { + if (value.constructor !== Object) { + return inspectClass(value, options); + } + return inspectObject(value, options); + } + if (value === Object(value)) { + return inspectObject(value, options); + } + return options.stylize(String(value), type); + } + function registerConstructor(constructor, inspector) { + if (constructorMap.has(constructor)) { + return false; + } + constructorMap.add(constructor, inspector); + return true; + } + function registerStringTag(stringTag, inspector) { + if (stringTag in stringTagMap) { + return false; + } + stringTagMap[stringTag] = inspector; + return true; + } + var custom = chaiInspect; + exports2.custom = custom; + exports2.default = inspect; + exports2.inspect = inspect; + exports2.registerConstructor = registerConstructor; + exports2.registerStringTag = registerStringTag; + Object.defineProperty(exports2, "__esModule", { value: true }); + }); + } + }); + + // node_modules/chai/lib/chai/config.js + var require_config = __commonJS({ + "node_modules/chai/lib/chai/config.js"(exports, module) { + module.exports = { + includeStack: false, + showDiff: true, + truncateThreshold: 40, + useProxy: true, + proxyExcludedKeys: ["then", "catch", "inspect", "toJSON"] + }; + } + }); + + // node_modules/chai/lib/chai/utils/inspect.js + var require_inspect = __commonJS({ + "node_modules/chai/lib/chai/utils/inspect.js"(exports, module) { + var getName = require_get_func_name(); + var loupe = require_loupe(); + var config = require_config(); + module.exports = inspect; + function inspect(obj, showHidden, depth, colors) { + var options = { + colors, + depth: typeof depth === "undefined" ? 2 : depth, + showHidden, + truncate: config.truncateThreshold ? config.truncateThreshold : Infinity + }; + return loupe.inspect(obj, options); + } + } + }); + + // node_modules/chai/lib/chai/utils/objDisplay.js + var require_objDisplay = __commonJS({ + "node_modules/chai/lib/chai/utils/objDisplay.js"(exports, module) { + var inspect = require_inspect(); + var config = require_config(); + module.exports = function objDisplay(obj) { + var str = inspect(obj), type = Object.prototype.toString.call(obj); + if (config.truncateThreshold && str.length >= config.truncateThreshold) { + if (type === "[object Function]") { + return !obj.name || obj.name === "" ? "[Function]" : "[Function: " + obj.name + "]"; + } else if (type === "[object Array]") { + return "[ Array(" + obj.length + ") ]"; + } else if (type === "[object Object]") { + var keys = Object.keys(obj), kstr = keys.length > 2 ? keys.splice(0, 2).join(", ") + ", ..." : keys.join(", "); + return "{ Object (" + kstr + ") }"; + } else { + return str; + } + } else { + return str; + } + }; + } + }); + + // node_modules/chai/lib/chai/utils/getMessage.js + var require_getMessage = __commonJS({ + "node_modules/chai/lib/chai/utils/getMessage.js"(exports, module) { + var flag = require_flag(); + var getActual = require_getActual(); + var objDisplay = require_objDisplay(); + module.exports = function getMessage(obj, args) { + var negate = flag(obj, "negate"), val = flag(obj, "object"), expected = args[3], actual = getActual(obj, args), msg = negate ? args[2] : args[1], flagMsg = flag(obj, "message"); + if (typeof msg === "function") + msg = msg(); + msg = msg || ""; + msg = msg.replace(/#\{this\}/g, function() { + return objDisplay(val); + }).replace(/#\{act\}/g, function() { + return objDisplay(actual); + }).replace(/#\{exp\}/g, function() { + return objDisplay(expected); + }); + return flagMsg ? flagMsg + ": " + msg : msg; + }; + } + }); + + // node_modules/chai/lib/chai/utils/transferFlags.js + var require_transferFlags = __commonJS({ + "node_modules/chai/lib/chai/utils/transferFlags.js"(exports, module) { + module.exports = function transferFlags(assertion, object, includeAll) { + var flags = assertion.__flags || (assertion.__flags = /* @__PURE__ */ Object.create(null)); + if (!object.__flags) { + object.__flags = /* @__PURE__ */ Object.create(null); + } + includeAll = arguments.length === 3 ? includeAll : true; + for (var flag in flags) { + if (includeAll || flag !== "object" && flag !== "ssfi" && flag !== "lockSsfi" && flag != "message") { + object.__flags[flag] = flags[flag]; + } + } + }; + } + }); + + // node_modules/deep-eql/index.js + var require_deep_eql = __commonJS({ + "node_modules/deep-eql/index.js"(exports, module) { + "use strict"; + var type = require_type_detect(); + function FakeMap() { + this._key = "chai/deep-eql__" + Math.random() + Date.now(); + } + FakeMap.prototype = { + get: function getMap(key) { + return key[this._key]; + }, + set: function setMap(key, value) { + if (Object.isExtensible(key)) { + Object.defineProperty(key, this._key, { + value, + configurable: true + }); + } + } + }; + var MemoizeMap = typeof WeakMap === "function" ? WeakMap : FakeMap; + function memoizeCompare(leftHandOperand, rightHandOperand, memoizeMap) { + if (!memoizeMap || isPrimitive(leftHandOperand) || isPrimitive(rightHandOperand)) { + return null; + } + var leftHandMap = memoizeMap.get(leftHandOperand); + if (leftHandMap) { + var result = leftHandMap.get(rightHandOperand); + if (typeof result === "boolean") { + return result; + } + } + return null; + } + function memoizeSet(leftHandOperand, rightHandOperand, memoizeMap, result) { + if (!memoizeMap || isPrimitive(leftHandOperand) || isPrimitive(rightHandOperand)) { + return; + } + var leftHandMap = memoizeMap.get(leftHandOperand); + if (leftHandMap) { + leftHandMap.set(rightHandOperand, result); + } else { + leftHandMap = new MemoizeMap(); + leftHandMap.set(rightHandOperand, result); + memoizeMap.set(leftHandOperand, leftHandMap); + } + } + module.exports = deepEqual; + module.exports.MemoizeMap = MemoizeMap; + function deepEqual(leftHandOperand, rightHandOperand, options) { + if (options && options.comparator) { + return extensiveDeepEqual(leftHandOperand, rightHandOperand, options); + } + var simpleResult = simpleEqual(leftHandOperand, rightHandOperand); + if (simpleResult !== null) { + return simpleResult; + } + return extensiveDeepEqual(leftHandOperand, rightHandOperand, options); + } + function simpleEqual(leftHandOperand, rightHandOperand) { + if (leftHandOperand === rightHandOperand) { + return leftHandOperand !== 0 || 1 / leftHandOperand === 1 / rightHandOperand; + } + if (leftHandOperand !== leftHandOperand && rightHandOperand !== rightHandOperand) { + return true; + } + if (isPrimitive(leftHandOperand) || isPrimitive(rightHandOperand)) { + return false; + } + return null; + } + function extensiveDeepEqual(leftHandOperand, rightHandOperand, options) { + options = options || {}; + options.memoize = options.memoize === false ? false : options.memoize || new MemoizeMap(); + var comparator = options && options.comparator; + var memoizeResultLeft = memoizeCompare(leftHandOperand, rightHandOperand, options.memoize); + if (memoizeResultLeft !== null) { + return memoizeResultLeft; + } + var memoizeResultRight = memoizeCompare(rightHandOperand, leftHandOperand, options.memoize); + if (memoizeResultRight !== null) { + return memoizeResultRight; + } + if (comparator) { + var comparatorResult = comparator(leftHandOperand, rightHandOperand); + if (comparatorResult === false || comparatorResult === true) { + memoizeSet(leftHandOperand, rightHandOperand, options.memoize, comparatorResult); + return comparatorResult; + } + var simpleResult = simpleEqual(leftHandOperand, rightHandOperand); + if (simpleResult !== null) { + return simpleResult; + } + } + var leftHandType = type(leftHandOperand); + if (leftHandType !== type(rightHandOperand)) { + memoizeSet(leftHandOperand, rightHandOperand, options.memoize, false); + return false; + } + memoizeSet(leftHandOperand, rightHandOperand, options.memoize, true); + var result = extensiveDeepEqualByType(leftHandOperand, rightHandOperand, leftHandType, options); + memoizeSet(leftHandOperand, rightHandOperand, options.memoize, result); + return result; + } + function extensiveDeepEqualByType(leftHandOperand, rightHandOperand, leftHandType, options) { + switch (leftHandType) { + case "String": + case "Number": + case "Boolean": + case "Date": + return deepEqual(leftHandOperand.valueOf(), rightHandOperand.valueOf()); + case "Promise": + case "Symbol": + case "function": + case "WeakMap": + case "WeakSet": + case "Error": + return leftHandOperand === rightHandOperand; + case "Arguments": + case "Int8Array": + case "Uint8Array": + case "Uint8ClampedArray": + case "Int16Array": + case "Uint16Array": + case "Int32Array": + case "Uint32Array": + case "Float32Array": + case "Float64Array": + case "Array": + return iterableEqual(leftHandOperand, rightHandOperand, options); + case "RegExp": + return regexpEqual(leftHandOperand, rightHandOperand); + case "Generator": + return generatorEqual(leftHandOperand, rightHandOperand, options); + case "DataView": + return iterableEqual(new Uint8Array(leftHandOperand.buffer), new Uint8Array(rightHandOperand.buffer), options); + case "ArrayBuffer": + return iterableEqual(new Uint8Array(leftHandOperand), new Uint8Array(rightHandOperand), options); + case "Set": + return entriesEqual(leftHandOperand, rightHandOperand, options); + case "Map": + return entriesEqual(leftHandOperand, rightHandOperand, options); + default: + return objectEqual(leftHandOperand, rightHandOperand, options); + } + } + function regexpEqual(leftHandOperand, rightHandOperand) { + return leftHandOperand.toString() === rightHandOperand.toString(); + } + function entriesEqual(leftHandOperand, rightHandOperand, options) { + if (leftHandOperand.size !== rightHandOperand.size) { + return false; + } + if (leftHandOperand.size === 0) { + return true; + } + var leftHandItems = []; + var rightHandItems = []; + leftHandOperand.forEach(function gatherEntries(key, value) { + leftHandItems.push([key, value]); + }); + rightHandOperand.forEach(function gatherEntries(key, value) { + rightHandItems.push([key, value]); + }); + return iterableEqual(leftHandItems.sort(), rightHandItems.sort(), options); + } + function iterableEqual(leftHandOperand, rightHandOperand, options) { + var length = leftHandOperand.length; + if (length !== rightHandOperand.length) { + return false; + } + if (length === 0) { + return true; + } + var index = -1; + while (++index < length) { + if (deepEqual(leftHandOperand[index], rightHandOperand[index], options) === false) { + return false; + } + } + return true; + } + function generatorEqual(leftHandOperand, rightHandOperand, options) { + return iterableEqual(getGeneratorEntries(leftHandOperand), getGeneratorEntries(rightHandOperand), options); + } + function hasIteratorFunction(target) { + return typeof Symbol !== "undefined" && typeof target === "object" && typeof Symbol.iterator !== "undefined" && typeof target[Symbol.iterator] === "function"; + } + function getIteratorEntries(target) { + if (hasIteratorFunction(target)) { + try { + return getGeneratorEntries(target[Symbol.iterator]()); + } catch (iteratorError) { + return []; + } + } + return []; + } + function getGeneratorEntries(generator) { + var generatorResult = generator.next(); + var accumulator = [generatorResult.value]; + while (generatorResult.done === false) { + generatorResult = generator.next(); + accumulator.push(generatorResult.value); + } + return accumulator; + } + function getEnumerableKeys(target) { + var keys = []; + for (var key in target) { + keys.push(key); + } + return keys; + } + function keysEqual(leftHandOperand, rightHandOperand, keys, options) { + var length = keys.length; + if (length === 0) { + return true; + } + for (var i = 0; i < length; i += 1) { + if (deepEqual(leftHandOperand[keys[i]], rightHandOperand[keys[i]], options) === false) { + return false; + } + } + return true; + } + function objectEqual(leftHandOperand, rightHandOperand, options) { + var leftHandKeys = getEnumerableKeys(leftHandOperand); + var rightHandKeys = getEnumerableKeys(rightHandOperand); + if (leftHandKeys.length && leftHandKeys.length === rightHandKeys.length) { + leftHandKeys.sort(); + rightHandKeys.sort(); + if (iterableEqual(leftHandKeys, rightHandKeys) === false) { + return false; + } + return keysEqual(leftHandOperand, rightHandOperand, leftHandKeys, options); + } + var leftHandEntries = getIteratorEntries(leftHandOperand); + var rightHandEntries = getIteratorEntries(rightHandOperand); + if (leftHandEntries.length && leftHandEntries.length === rightHandEntries.length) { + leftHandEntries.sort(); + rightHandEntries.sort(); + return iterableEqual(leftHandEntries, rightHandEntries, options); + } + if (leftHandKeys.length === 0 && leftHandEntries.length === 0 && rightHandKeys.length === 0 && rightHandEntries.length === 0) { + return true; + } + return false; + } + function isPrimitive(value) { + return value === null || typeof value !== "object"; + } + } + }); + + // node_modules/chai/lib/chai/utils/isProxyEnabled.js + var require_isProxyEnabled = __commonJS({ + "node_modules/chai/lib/chai/utils/isProxyEnabled.js"(exports, module) { + var config = require_config(); + module.exports = function isProxyEnabled() { + return config.useProxy && typeof Proxy !== "undefined" && typeof Reflect !== "undefined"; + }; + } + }); + + // node_modules/chai/lib/chai/utils/addProperty.js + var require_addProperty = __commonJS({ + "node_modules/chai/lib/chai/utils/addProperty.js"(exports, module) { + var chai = require_chai(); + var flag = require_flag(); + var isProxyEnabled = require_isProxyEnabled(); + var transferFlags = require_transferFlags(); + module.exports = function addProperty(ctx, name, getter) { + getter = getter === void 0 ? function() { + } : getter; + Object.defineProperty(ctx, name, { + get: function propertyGetter() { + if (!isProxyEnabled() && !flag(this, "lockSsfi")) { + flag(this, "ssfi", propertyGetter); + } + var result = getter.call(this); + if (result !== void 0) + return result; + var newAssertion = new chai.Assertion(); + transferFlags(this, newAssertion); + return newAssertion; + }, + configurable: true + }); + }; + } + }); + + // node_modules/chai/lib/chai/utils/addLengthGuard.js + var require_addLengthGuard = __commonJS({ + "node_modules/chai/lib/chai/utils/addLengthGuard.js"(exports, module) { + var fnLengthDesc = Object.getOwnPropertyDescriptor(function() { + }, "length"); + module.exports = function addLengthGuard(fn, assertionName, isChainable) { + if (!fnLengthDesc.configurable) + return fn; + Object.defineProperty(fn, "length", { + get: function() { + if (isChainable) { + throw Error("Invalid Chai property: " + assertionName + '.length. Due to a compatibility issue, "length" cannot directly follow "' + assertionName + '". Use "' + assertionName + '.lengthOf" instead.'); + } + throw Error("Invalid Chai property: " + assertionName + '.length. See docs for proper usage of "' + assertionName + '".'); + } + }); + return fn; + }; + } + }); + + // node_modules/chai/lib/chai/utils/getProperties.js + var require_getProperties = __commonJS({ + "node_modules/chai/lib/chai/utils/getProperties.js"(exports, module) { + module.exports = function getProperties(object) { + var result = Object.getOwnPropertyNames(object); + function addProperty(property) { + if (result.indexOf(property) === -1) { + result.push(property); + } + } + var proto = Object.getPrototypeOf(object); + while (proto !== null) { + Object.getOwnPropertyNames(proto).forEach(addProperty); + proto = Object.getPrototypeOf(proto); + } + return result; + }; + } + }); + + // node_modules/chai/lib/chai/utils/proxify.js + var require_proxify = __commonJS({ + "node_modules/chai/lib/chai/utils/proxify.js"(exports, module) { + var config = require_config(); + var flag = require_flag(); + var getProperties = require_getProperties(); + var isProxyEnabled = require_isProxyEnabled(); + var builtins = ["__flags", "__methods", "_obj", "assert"]; + module.exports = function proxify(obj, nonChainableMethodName) { + if (!isProxyEnabled()) + return obj; + return new Proxy(obj, { + get: function proxyGetter(target, property) { + if (typeof property === "string" && config.proxyExcludedKeys.indexOf(property) === -1 && !Reflect.has(target, property)) { + if (nonChainableMethodName) { + throw Error("Invalid Chai property: " + nonChainableMethodName + "." + property + '. See docs for proper usage of "' + nonChainableMethodName + '".'); + } + var suggestion = null; + var suggestionDistance = 4; + getProperties(target).forEach(function(prop) { + if (!Object.prototype.hasOwnProperty(prop) && builtins.indexOf(prop) === -1) { + var dist = stringDistanceCapped(property, prop, suggestionDistance); + if (dist < suggestionDistance) { + suggestion = prop; + suggestionDistance = dist; + } + } + }); + if (suggestion !== null) { + throw Error("Invalid Chai property: " + property + '. Did you mean "' + suggestion + '"?'); + } else { + throw Error("Invalid Chai property: " + property); + } + } + if (builtins.indexOf(property) === -1 && !flag(target, "lockSsfi")) { + flag(target, "ssfi", proxyGetter); + } + return Reflect.get(target, property); + } + }); + }; + function stringDistanceCapped(strA, strB, cap) { + if (Math.abs(strA.length - strB.length) >= cap) { + return cap; + } + var memo = []; + for (var i = 0; i <= strA.length; i++) { + memo[i] = Array(strB.length + 1).fill(0); + memo[i][0] = i; + } + for (var j = 0; j < strB.length; j++) { + memo[0][j] = j; + } + for (var i = 1; i <= strA.length; i++) { + var ch = strA.charCodeAt(i - 1); + for (var j = 1; j <= strB.length; j++) { + if (Math.abs(i - j) >= cap) { + memo[i][j] = cap; + continue; + } + memo[i][j] = Math.min(memo[i - 1][j] + 1, memo[i][j - 1] + 1, memo[i - 1][j - 1] + (ch === strB.charCodeAt(j - 1) ? 0 : 1)); + } + } + return memo[strA.length][strB.length]; + } + } + }); + + // node_modules/chai/lib/chai/utils/addMethod.js + var require_addMethod = __commonJS({ + "node_modules/chai/lib/chai/utils/addMethod.js"(exports, module) { + var addLengthGuard = require_addLengthGuard(); + var chai = require_chai(); + var flag = require_flag(); + var proxify = require_proxify(); + var transferFlags = require_transferFlags(); + module.exports = function addMethod(ctx, name, method) { + var methodWrapper = function() { + if (!flag(this, "lockSsfi")) { + flag(this, "ssfi", methodWrapper); + } + var result = method.apply(this, arguments); + if (result !== void 0) + return result; + var newAssertion = new chai.Assertion(); + transferFlags(this, newAssertion); + return newAssertion; + }; + addLengthGuard(methodWrapper, name, false); + ctx[name] = proxify(methodWrapper, name); + }; + } + }); + + // node_modules/chai/lib/chai/utils/overwriteProperty.js + var require_overwriteProperty = __commonJS({ + "node_modules/chai/lib/chai/utils/overwriteProperty.js"(exports, module) { + var chai = require_chai(); + var flag = require_flag(); + var isProxyEnabled = require_isProxyEnabled(); + var transferFlags = require_transferFlags(); + module.exports = function overwriteProperty(ctx, name, getter) { + var _get = Object.getOwnPropertyDescriptor(ctx, name), _super = function() { + }; + if (_get && "function" === typeof _get.get) + _super = _get.get; + Object.defineProperty(ctx, name, { + get: function overwritingPropertyGetter() { + if (!isProxyEnabled() && !flag(this, "lockSsfi")) { + flag(this, "ssfi", overwritingPropertyGetter); + } + var origLockSsfi = flag(this, "lockSsfi"); + flag(this, "lockSsfi", true); + var result = getter(_super).call(this); + flag(this, "lockSsfi", origLockSsfi); + if (result !== void 0) { + return result; + } + var newAssertion = new chai.Assertion(); + transferFlags(this, newAssertion); + return newAssertion; + }, + configurable: true + }); + }; + } + }); + + // node_modules/chai/lib/chai/utils/overwriteMethod.js + var require_overwriteMethod = __commonJS({ + "node_modules/chai/lib/chai/utils/overwriteMethod.js"(exports, module) { + var addLengthGuard = require_addLengthGuard(); + var chai = require_chai(); + var flag = require_flag(); + var proxify = require_proxify(); + var transferFlags = require_transferFlags(); + module.exports = function overwriteMethod(ctx, name, method) { + var _method = ctx[name], _super = function() { + throw new Error(name + " is not a function"); + }; + if (_method && "function" === typeof _method) + _super = _method; + var overwritingMethodWrapper = function() { + if (!flag(this, "lockSsfi")) { + flag(this, "ssfi", overwritingMethodWrapper); + } + var origLockSsfi = flag(this, "lockSsfi"); + flag(this, "lockSsfi", true); + var result = method(_super).apply(this, arguments); + flag(this, "lockSsfi", origLockSsfi); + if (result !== void 0) { + return result; + } + var newAssertion = new chai.Assertion(); + transferFlags(this, newAssertion); + return newAssertion; + }; + addLengthGuard(overwritingMethodWrapper, name, false); + ctx[name] = proxify(overwritingMethodWrapper, name); + }; + } + }); + + // node_modules/chai/lib/chai/utils/addChainableMethod.js + var require_addChainableMethod = __commonJS({ + "node_modules/chai/lib/chai/utils/addChainableMethod.js"(exports, module) { + var addLengthGuard = require_addLengthGuard(); + var chai = require_chai(); + var flag = require_flag(); + var proxify = require_proxify(); + var transferFlags = require_transferFlags(); + var canSetPrototype = typeof Object.setPrototypeOf === "function"; + var testFn = function() { + }; + var excludeNames = Object.getOwnPropertyNames(testFn).filter(function(name) { + var propDesc = Object.getOwnPropertyDescriptor(testFn, name); + if (typeof propDesc !== "object") + return true; + return !propDesc.configurable; + }); + var call = Function.prototype.call; + var apply = Function.prototype.apply; + module.exports = function addChainableMethod(ctx, name, method, chainingBehavior) { + if (typeof chainingBehavior !== "function") { + chainingBehavior = function() { + }; + } + var chainableBehavior = { + method, + chainingBehavior + }; + if (!ctx.__methods) { + ctx.__methods = {}; + } + ctx.__methods[name] = chainableBehavior; + Object.defineProperty(ctx, name, { + get: function chainableMethodGetter() { + chainableBehavior.chainingBehavior.call(this); + var chainableMethodWrapper = function() { + if (!flag(this, "lockSsfi")) { + flag(this, "ssfi", chainableMethodWrapper); + } + var result = chainableBehavior.method.apply(this, arguments); + if (result !== void 0) { + return result; + } + var newAssertion = new chai.Assertion(); + transferFlags(this, newAssertion); + return newAssertion; + }; + addLengthGuard(chainableMethodWrapper, name, true); + if (canSetPrototype) { + var prototype = Object.create(this); + prototype.call = call; + prototype.apply = apply; + Object.setPrototypeOf(chainableMethodWrapper, prototype); + } else { + var asserterNames = Object.getOwnPropertyNames(ctx); + asserterNames.forEach(function(asserterName) { + if (excludeNames.indexOf(asserterName) !== -1) { + return; + } + var pd = Object.getOwnPropertyDescriptor(ctx, asserterName); + Object.defineProperty(chainableMethodWrapper, asserterName, pd); + }); + } + transferFlags(this, chainableMethodWrapper); + return proxify(chainableMethodWrapper); + }, + configurable: true + }); + }; + } + }); + + // node_modules/chai/lib/chai/utils/overwriteChainableMethod.js + var require_overwriteChainableMethod = __commonJS({ + "node_modules/chai/lib/chai/utils/overwriteChainableMethod.js"(exports, module) { + var chai = require_chai(); + var transferFlags = require_transferFlags(); + module.exports = function overwriteChainableMethod(ctx, name, method, chainingBehavior) { + var chainableBehavior = ctx.__methods[name]; + var _chainingBehavior = chainableBehavior.chainingBehavior; + chainableBehavior.chainingBehavior = function overwritingChainableMethodGetter() { + var result = chainingBehavior(_chainingBehavior).call(this); + if (result !== void 0) { + return result; + } + var newAssertion = new chai.Assertion(); + transferFlags(this, newAssertion); + return newAssertion; + }; + var _method = chainableBehavior.method; + chainableBehavior.method = function overwritingChainableMethodWrapper() { + var result = method(_method).apply(this, arguments); + if (result !== void 0) { + return result; + } + var newAssertion = new chai.Assertion(); + transferFlags(this, newAssertion); + return newAssertion; + }; + }; + } + }); + + // node_modules/chai/lib/chai/utils/compareByInspect.js + var require_compareByInspect = __commonJS({ + "node_modules/chai/lib/chai/utils/compareByInspect.js"(exports, module) { + var inspect = require_inspect(); + module.exports = function compareByInspect(a, b) { + return inspect(a) < inspect(b) ? -1 : 1; + }; + } + }); + + // node_modules/chai/lib/chai/utils/getOwnEnumerablePropertySymbols.js + var require_getOwnEnumerablePropertySymbols = __commonJS({ + "node_modules/chai/lib/chai/utils/getOwnEnumerablePropertySymbols.js"(exports, module) { + module.exports = function getOwnEnumerablePropertySymbols(obj) { + if (typeof Object.getOwnPropertySymbols !== "function") + return []; + return Object.getOwnPropertySymbols(obj).filter(function(sym) { + return Object.getOwnPropertyDescriptor(obj, sym).enumerable; + }); + }; + } + }); + + // node_modules/chai/lib/chai/utils/getOwnEnumerableProperties.js + var require_getOwnEnumerableProperties = __commonJS({ + "node_modules/chai/lib/chai/utils/getOwnEnumerableProperties.js"(exports, module) { + var getOwnEnumerablePropertySymbols = require_getOwnEnumerablePropertySymbols(); + module.exports = function getOwnEnumerableProperties(obj) { + return Object.keys(obj).concat(getOwnEnumerablePropertySymbols(obj)); + }; + } + }); + + // node_modules/check-error/index.js + var require_check_error = __commonJS({ + "node_modules/check-error/index.js"(exports, module) { + "use strict"; + function compatibleInstance(thrown, errorLike) { + return errorLike instanceof Error && thrown === errorLike; + } + function compatibleConstructor(thrown, errorLike) { + if (errorLike instanceof Error) { + return thrown.constructor === errorLike.constructor || thrown instanceof errorLike.constructor; + } else if (errorLike.prototype instanceof Error || errorLike === Error) { + return thrown.constructor === errorLike || thrown instanceof errorLike; + } + return false; + } + function compatibleMessage(thrown, errMatcher) { + var comparisonString = typeof thrown === "string" ? thrown : thrown.message; + if (errMatcher instanceof RegExp) { + return errMatcher.test(comparisonString); + } else if (typeof errMatcher === "string") { + return comparisonString.indexOf(errMatcher) !== -1; + } + return false; + } + var functionNameMatch = /\s*function(?:\s|\s*\/\*[^(?:*\/)]+\*\/\s*)*([^\(\/]+)/; + function getFunctionName(constructorFn) { + var name = ""; + if (typeof constructorFn.name === "undefined") { + var match = String(constructorFn).match(functionNameMatch); + if (match) { + name = match[1]; + } + } else { + name = constructorFn.name; + } + return name; + } + function getConstructorName(errorLike) { + var constructorName = errorLike; + if (errorLike instanceof Error) { + constructorName = getFunctionName(errorLike.constructor); + } else if (typeof errorLike === "function") { + constructorName = getFunctionName(errorLike).trim() || getFunctionName(new errorLike()); + } + return constructorName; + } + function getMessage(errorLike) { + var msg = ""; + if (errorLike && errorLike.message) { + msg = errorLike.message; + } else if (typeof errorLike === "string") { + msg = errorLike; + } + return msg; + } + module.exports = { + compatibleInstance, + compatibleConstructor, + compatibleMessage, + getMessage, + getConstructorName + }; + } + }); + + // node_modules/chai/lib/chai/utils/isNaN.js + var require_isNaN = __commonJS({ + "node_modules/chai/lib/chai/utils/isNaN.js"(exports, module) { + function isNaN(value) { + return value !== value; + } + module.exports = Number.isNaN || isNaN; + } + }); + + // node_modules/chai/lib/chai/utils/getOperator.js + var require_getOperator = __commonJS({ + "node_modules/chai/lib/chai/utils/getOperator.js"(exports, module) { + var type = require_type_detect(); + var flag = require_flag(); + function isObjectType(obj) { + var objectType = type(obj); + var objectTypes = ["Array", "Object", "function"]; + return objectTypes.indexOf(objectType) !== -1; + } + module.exports = function getOperator(obj, args) { + var operator = flag(obj, "operator"); + var negate = flag(obj, "negate"); + var expected = args[3]; + var msg = negate ? args[2] : args[1]; + if (operator) { + return operator; + } + if (typeof msg === "function") + msg = msg(); + msg = msg || ""; + if (!msg) { + return void 0; + } + if (/\shave\s/.test(msg)) { + return void 0; + } + var isObject = isObjectType(expected); + if (/\snot\s/.test(msg)) { + return isObject ? "notDeepStrictEqual" : "notStrictEqual"; + } + return isObject ? "deepStrictEqual" : "strictEqual"; + }; + } + }); + + // node_modules/chai/lib/chai/utils/index.js + var require_utils = __commonJS({ + "node_modules/chai/lib/chai/utils/index.js"(exports) { + var pathval = require_pathval(); + exports.test = require_test(); + exports.type = require_type_detect(); + exports.expectTypes = require_expectTypes(); + exports.getMessage = require_getMessage(); + exports.getActual = require_getActual(); + exports.inspect = require_inspect(); + exports.objDisplay = require_objDisplay(); + exports.flag = require_flag(); + exports.transferFlags = require_transferFlags(); + exports.eql = require_deep_eql(); + exports.getPathInfo = pathval.getPathInfo; + exports.hasProperty = pathval.hasProperty; + exports.getName = require_get_func_name(); + exports.addProperty = require_addProperty(); + exports.addMethod = require_addMethod(); + exports.overwriteProperty = require_overwriteProperty(); + exports.overwriteMethod = require_overwriteMethod(); + exports.addChainableMethod = require_addChainableMethod(); + exports.overwriteChainableMethod = require_overwriteChainableMethod(); + exports.compareByInspect = require_compareByInspect(); + exports.getOwnEnumerablePropertySymbols = require_getOwnEnumerablePropertySymbols(); + exports.getOwnEnumerableProperties = require_getOwnEnumerableProperties(); + exports.checkError = require_check_error(); + exports.proxify = require_proxify(); + exports.addLengthGuard = require_addLengthGuard(); + exports.isProxyEnabled = require_isProxyEnabled(); + exports.isNaN = require_isNaN(); + exports.getOperator = require_getOperator(); + } + }); + + // node_modules/chai/lib/chai/assertion.js + var require_assertion = __commonJS({ + "node_modules/chai/lib/chai/assertion.js"(exports, module) { + var config = require_config(); + module.exports = function(_chai, util) { + var AssertionError = _chai.AssertionError, flag = util.flag; + _chai.Assertion = Assertion; + function Assertion(obj, msg, ssfi, lockSsfi) { + flag(this, "ssfi", ssfi || Assertion); + flag(this, "lockSsfi", lockSsfi); + flag(this, "object", obj); + flag(this, "message", msg); + return util.proxify(this); + } + Object.defineProperty(Assertion, "includeStack", { + get: function() { + console.warn("Assertion.includeStack is deprecated, use chai.config.includeStack instead."); + return config.includeStack; + }, + set: function(value) { + console.warn("Assertion.includeStack is deprecated, use chai.config.includeStack instead."); + config.includeStack = value; + } + }); + Object.defineProperty(Assertion, "showDiff", { + get: function() { + console.warn("Assertion.showDiff is deprecated, use chai.config.showDiff instead."); + return config.showDiff; + }, + set: function(value) { + console.warn("Assertion.showDiff is deprecated, use chai.config.showDiff instead."); + config.showDiff = value; + } + }); + Assertion.addProperty = function(name, fn) { + util.addProperty(this.prototype, name, fn); + }; + Assertion.addMethod = function(name, fn) { + util.addMethod(this.prototype, name, fn); + }; + Assertion.addChainableMethod = function(name, fn, chainingBehavior) { + util.addChainableMethod(this.prototype, name, fn, chainingBehavior); + }; + Assertion.overwriteProperty = function(name, fn) { + util.overwriteProperty(this.prototype, name, fn); + }; + Assertion.overwriteMethod = function(name, fn) { + util.overwriteMethod(this.prototype, name, fn); + }; + Assertion.overwriteChainableMethod = function(name, fn, chainingBehavior) { + util.overwriteChainableMethod(this.prototype, name, fn, chainingBehavior); + }; + Assertion.prototype.assert = function(expr, msg, negateMsg, expected, _actual, showDiff) { + var ok = util.test(this, arguments); + if (false !== showDiff) + showDiff = true; + if (void 0 === expected && void 0 === _actual) + showDiff = false; + if (true !== config.showDiff) + showDiff = false; + if (!ok) { + msg = util.getMessage(this, arguments); + var actual = util.getActual(this, arguments); + var assertionErrorObjectProperties = { + actual, + expected, + showDiff + }; + var operator = util.getOperator(this, arguments); + if (operator) { + assertionErrorObjectProperties.operator = operator; + } + throw new AssertionError(msg, assertionErrorObjectProperties, config.includeStack ? this.assert : flag(this, "ssfi")); + } + }; + Object.defineProperty(Assertion.prototype, "_obj", { + get: function() { + return flag(this, "object"); + }, + set: function(val) { + flag(this, "object", val); + } + }); + }; + } + }); + + // node_modules/chai/lib/chai/core/assertions.js + var require_assertions = __commonJS({ + "node_modules/chai/lib/chai/core/assertions.js"(exports, module) { + module.exports = function(chai, _) { + var Assertion = chai.Assertion, AssertionError = chai.AssertionError, flag = _.flag; + [ + "to", + "be", + "been", + "is", + "and", + "has", + "have", + "with", + "that", + "which", + "at", + "of", + "same", + "but", + "does", + "still", + "also" + ].forEach(function(chain) { + Assertion.addProperty(chain); + }); + Assertion.addProperty("not", function() { + flag(this, "negate", true); + }); + Assertion.addProperty("deep", function() { + flag(this, "deep", true); + }); + Assertion.addProperty("nested", function() { + flag(this, "nested", true); + }); + Assertion.addProperty("own", function() { + flag(this, "own", true); + }); + Assertion.addProperty("ordered", function() { + flag(this, "ordered", true); + }); + Assertion.addProperty("any", function() { + flag(this, "any", true); + flag(this, "all", false); + }); + Assertion.addProperty("all", function() { + flag(this, "all", true); + flag(this, "any", false); + }); + function an(type, msg) { + if (msg) + flag(this, "message", msg); + type = type.toLowerCase(); + var obj = flag(this, "object"), article = ~["a", "e", "i", "o", "u"].indexOf(type.charAt(0)) ? "an " : "a "; + this.assert(type === _.type(obj).toLowerCase(), "expected #{this} to be " + article + type, "expected #{this} not to be " + article + type); + } + Assertion.addChainableMethod("an", an); + Assertion.addChainableMethod("a", an); + function SameValueZero(a, b) { + return _.isNaN(a) && _.isNaN(b) || a === b; + } + function includeChainingBehavior() { + flag(this, "contains", true); + } + function include(val, msg) { + if (msg) + flag(this, "message", msg); + var obj = flag(this, "object"), objType = _.type(obj).toLowerCase(), flagMsg = flag(this, "message"), negate = flag(this, "negate"), ssfi = flag(this, "ssfi"), isDeep = flag(this, "deep"), descriptor = isDeep ? "deep " : ""; + flagMsg = flagMsg ? flagMsg + ": " : ""; + var included = false; + switch (objType) { + case "string": + included = obj.indexOf(val) !== -1; + break; + case "weakset": + if (isDeep) { + throw new AssertionError(flagMsg + "unable to use .deep.include with WeakSet", void 0, ssfi); + } + included = obj.has(val); + break; + case "map": + var isEql = isDeep ? _.eql : SameValueZero; + obj.forEach(function(item) { + included = included || isEql(item, val); + }); + break; + case "set": + if (isDeep) { + obj.forEach(function(item) { + included = included || _.eql(item, val); + }); + } else { + included = obj.has(val); + } + break; + case "array": + if (isDeep) { + included = obj.some(function(item) { + return _.eql(item, val); + }); + } else { + included = obj.indexOf(val) !== -1; + } + break; + default: + if (val !== Object(val)) { + throw new AssertionError(flagMsg + "the given combination of arguments (" + objType + " and " + _.type(val).toLowerCase() + ") is invalid for this assertion. You can use an array, a map, an object, a set, a string, or a weakset instead of a " + _.type(val).toLowerCase(), void 0, ssfi); + } + var props = Object.keys(val), firstErr = null, numErrs = 0; + props.forEach(function(prop) { + var propAssertion = new Assertion(obj); + _.transferFlags(this, propAssertion, true); + flag(propAssertion, "lockSsfi", true); + if (!negate || props.length === 1) { + propAssertion.property(prop, val[prop]); + return; + } + try { + propAssertion.property(prop, val[prop]); + } catch (err) { + if (!_.checkError.compatibleConstructor(err, AssertionError)) { + throw err; + } + if (firstErr === null) + firstErr = err; + numErrs++; + } + }, this); + if (negate && props.length > 1 && numErrs === props.length) { + throw firstErr; + } + return; + } + this.assert(included, "expected #{this} to " + descriptor + "include " + _.inspect(val), "expected #{this} to not " + descriptor + "include " + _.inspect(val)); + } + Assertion.addChainableMethod("include", include, includeChainingBehavior); + Assertion.addChainableMethod("contain", include, includeChainingBehavior); + Assertion.addChainableMethod("contains", include, includeChainingBehavior); + Assertion.addChainableMethod("includes", include, includeChainingBehavior); + Assertion.addProperty("ok", function() { + this.assert(flag(this, "object"), "expected #{this} to be truthy", "expected #{this} to be falsy"); + }); + Assertion.addProperty("true", function() { + this.assert(true === flag(this, "object"), "expected #{this} to be true", "expected #{this} to be false", flag(this, "negate") ? false : true); + }); + Assertion.addProperty("false", function() { + this.assert(false === flag(this, "object"), "expected #{this} to be false", "expected #{this} to be true", flag(this, "negate") ? true : false); + }); + Assertion.addProperty("null", function() { + this.assert(null === flag(this, "object"), "expected #{this} to be null", "expected #{this} not to be null"); + }); + Assertion.addProperty("undefined", function() { + this.assert(void 0 === flag(this, "object"), "expected #{this} to be undefined", "expected #{this} not to be undefined"); + }); + Assertion.addProperty("NaN", function() { + this.assert(_.isNaN(flag(this, "object")), "expected #{this} to be NaN", "expected #{this} not to be NaN"); + }); + function assertExist() { + var val = flag(this, "object"); + this.assert(val !== null && val !== void 0, "expected #{this} to exist", "expected #{this} to not exist"); + } + Assertion.addProperty("exist", assertExist); + Assertion.addProperty("exists", assertExist); + Assertion.addProperty("empty", function() { + var val = flag(this, "object"), ssfi = flag(this, "ssfi"), flagMsg = flag(this, "message"), itemsCount; + flagMsg = flagMsg ? flagMsg + ": " : ""; + switch (_.type(val).toLowerCase()) { + case "array": + case "string": + itemsCount = val.length; + break; + case "map": + case "set": + itemsCount = val.size; + break; + case "weakmap": + case "weakset": + throw new AssertionError(flagMsg + ".empty was passed a weak collection", void 0, ssfi); + case "function": + var msg = flagMsg + ".empty was passed a function " + _.getName(val); + throw new AssertionError(msg.trim(), void 0, ssfi); + default: + if (val !== Object(val)) { + throw new AssertionError(flagMsg + ".empty was passed non-string primitive " + _.inspect(val), void 0, ssfi); + } + itemsCount = Object.keys(val).length; + } + this.assert(0 === itemsCount, "expected #{this} to be empty", "expected #{this} not to be empty"); + }); + function checkArguments() { + var obj = flag(this, "object"), type = _.type(obj); + this.assert("Arguments" === type, "expected #{this} to be arguments but got " + type, "expected #{this} to not be arguments"); + } + Assertion.addProperty("arguments", checkArguments); + Assertion.addProperty("Arguments", checkArguments); + function assertEqual(val, msg) { + if (msg) + flag(this, "message", msg); + var obj = flag(this, "object"); + if (flag(this, "deep")) { + var prevLockSsfi = flag(this, "lockSsfi"); + flag(this, "lockSsfi", true); + this.eql(val); + flag(this, "lockSsfi", prevLockSsfi); + } else { + this.assert(val === obj, "expected #{this} to equal #{exp}", "expected #{this} to not equal #{exp}", val, this._obj, true); + } + } + Assertion.addMethod("equal", assertEqual); + Assertion.addMethod("equals", assertEqual); + Assertion.addMethod("eq", assertEqual); + function assertEql(obj, msg) { + if (msg) + flag(this, "message", msg); + this.assert(_.eql(obj, flag(this, "object")), "expected #{this} to deeply equal #{exp}", "expected #{this} to not deeply equal #{exp}", obj, this._obj, true); + } + Assertion.addMethod("eql", assertEql); + Assertion.addMethod("eqls", assertEql); + function assertAbove(n, msg) { + if (msg) + flag(this, "message", msg); + var obj = flag(this, "object"), doLength = flag(this, "doLength"), flagMsg = flag(this, "message"), msgPrefix = flagMsg ? flagMsg + ": " : "", ssfi = flag(this, "ssfi"), objType = _.type(obj).toLowerCase(), nType = _.type(n).toLowerCase(), errorMessage, shouldThrow = true; + if (doLength && objType !== "map" && objType !== "set") { + new Assertion(obj, flagMsg, ssfi, true).to.have.property("length"); + } + if (!doLength && (objType === "date" && nType !== "date")) { + errorMessage = msgPrefix + "the argument to above must be a date"; + } else if (nType !== "number" && (doLength || objType === "number")) { + errorMessage = msgPrefix + "the argument to above must be a number"; + } else if (!doLength && (objType !== "date" && objType !== "number")) { + var printObj = objType === "string" ? "'" + obj + "'" : obj; + errorMessage = msgPrefix + "expected " + printObj + " to be a number or a date"; + } else { + shouldThrow = false; + } + if (shouldThrow) { + throw new AssertionError(errorMessage, void 0, ssfi); + } + if (doLength) { + var descriptor = "length", itemsCount; + if (objType === "map" || objType === "set") { + descriptor = "size"; + itemsCount = obj.size; + } else { + itemsCount = obj.length; + } + this.assert(itemsCount > n, "expected #{this} to have a " + descriptor + " above #{exp} but got #{act}", "expected #{this} to not have a " + descriptor + " above #{exp}", n, itemsCount); + } else { + this.assert(obj > n, "expected #{this} to be above #{exp}", "expected #{this} to be at most #{exp}", n); + } + } + Assertion.addMethod("above", assertAbove); + Assertion.addMethod("gt", assertAbove); + Assertion.addMethod("greaterThan", assertAbove); + function assertLeast(n, msg) { + if (msg) + flag(this, "message", msg); + var obj = flag(this, "object"), doLength = flag(this, "doLength"), flagMsg = flag(this, "message"), msgPrefix = flagMsg ? flagMsg + ": " : "", ssfi = flag(this, "ssfi"), objType = _.type(obj).toLowerCase(), nType = _.type(n).toLowerCase(), errorMessage, shouldThrow = true; + if (doLength && objType !== "map" && objType !== "set") { + new Assertion(obj, flagMsg, ssfi, true).to.have.property("length"); + } + if (!doLength && (objType === "date" && nType !== "date")) { + errorMessage = msgPrefix + "the argument to least must be a date"; + } else if (nType !== "number" && (doLength || objType === "number")) { + errorMessage = msgPrefix + "the argument to least must be a number"; + } else if (!doLength && (objType !== "date" && objType !== "number")) { + var printObj = objType === "string" ? "'" + obj + "'" : obj; + errorMessage = msgPrefix + "expected " + printObj + " to be a number or a date"; + } else { + shouldThrow = false; + } + if (shouldThrow) { + throw new AssertionError(errorMessage, void 0, ssfi); + } + if (doLength) { + var descriptor = "length", itemsCount; + if (objType === "map" || objType === "set") { + descriptor = "size"; + itemsCount = obj.size; + } else { + itemsCount = obj.length; + } + this.assert(itemsCount >= n, "expected #{this} to have a " + descriptor + " at least #{exp} but got #{act}", "expected #{this} to have a " + descriptor + " below #{exp}", n, itemsCount); + } else { + this.assert(obj >= n, "expected #{this} to be at least #{exp}", "expected #{this} to be below #{exp}", n); + } + } + Assertion.addMethod("least", assertLeast); + Assertion.addMethod("gte", assertLeast); + Assertion.addMethod("greaterThanOrEqual", assertLeast); + function assertBelow(n, msg) { + if (msg) + flag(this, "message", msg); + var obj = flag(this, "object"), doLength = flag(this, "doLength"), flagMsg = flag(this, "message"), msgPrefix = flagMsg ? flagMsg + ": " : "", ssfi = flag(this, "ssfi"), objType = _.type(obj).toLowerCase(), nType = _.type(n).toLowerCase(), errorMessage, shouldThrow = true; + if (doLength && objType !== "map" && objType !== "set") { + new Assertion(obj, flagMsg, ssfi, true).to.have.property("length"); + } + if (!doLength && (objType === "date" && nType !== "date")) { + errorMessage = msgPrefix + "the argument to below must be a date"; + } else if (nType !== "number" && (doLength || objType === "number")) { + errorMessage = msgPrefix + "the argument to below must be a number"; + } else if (!doLength && (objType !== "date" && objType !== "number")) { + var printObj = objType === "string" ? "'" + obj + "'" : obj; + errorMessage = msgPrefix + "expected " + printObj + " to be a number or a date"; + } else { + shouldThrow = false; + } + if (shouldThrow) { + throw new AssertionError(errorMessage, void 0, ssfi); + } + if (doLength) { + var descriptor = "length", itemsCount; + if (objType === "map" || objType === "set") { + descriptor = "size"; + itemsCount = obj.size; + } else { + itemsCount = obj.length; + } + this.assert(itemsCount < n, "expected #{this} to have a " + descriptor + " below #{exp} but got #{act}", "expected #{this} to not have a " + descriptor + " below #{exp}", n, itemsCount); + } else { + this.assert(obj < n, "expected #{this} to be below #{exp}", "expected #{this} to be at least #{exp}", n); + } + } + Assertion.addMethod("below", assertBelow); + Assertion.addMethod("lt", assertBelow); + Assertion.addMethod("lessThan", assertBelow); + function assertMost(n, msg) { + if (msg) + flag(this, "message", msg); + var obj = flag(this, "object"), doLength = flag(this, "doLength"), flagMsg = flag(this, "message"), msgPrefix = flagMsg ? flagMsg + ": " : "", ssfi = flag(this, "ssfi"), objType = _.type(obj).toLowerCase(), nType = _.type(n).toLowerCase(), errorMessage, shouldThrow = true; + if (doLength && objType !== "map" && objType !== "set") { + new Assertion(obj, flagMsg, ssfi, true).to.have.property("length"); + } + if (!doLength && (objType === "date" && nType !== "date")) { + errorMessage = msgPrefix + "the argument to most must be a date"; + } else if (nType !== "number" && (doLength || objType === "number")) { + errorMessage = msgPrefix + "the argument to most must be a number"; + } else if (!doLength && (objType !== "date" && objType !== "number")) { + var printObj = objType === "string" ? "'" + obj + "'" : obj; + errorMessage = msgPrefix + "expected " + printObj + " to be a number or a date"; + } else { + shouldThrow = false; + } + if (shouldThrow) { + throw new AssertionError(errorMessage, void 0, ssfi); + } + if (doLength) { + var descriptor = "length", itemsCount; + if (objType === "map" || objType === "set") { + descriptor = "size"; + itemsCount = obj.size; + } else { + itemsCount = obj.length; + } + this.assert(itemsCount <= n, "expected #{this} to have a " + descriptor + " at most #{exp} but got #{act}", "expected #{this} to have a " + descriptor + " above #{exp}", n, itemsCount); + } else { + this.assert(obj <= n, "expected #{this} to be at most #{exp}", "expected #{this} to be above #{exp}", n); + } + } + Assertion.addMethod("most", assertMost); + Assertion.addMethod("lte", assertMost); + Assertion.addMethod("lessThanOrEqual", assertMost); + Assertion.addMethod("within", function(start, finish, msg) { + if (msg) + flag(this, "message", msg); + var obj = flag(this, "object"), doLength = flag(this, "doLength"), flagMsg = flag(this, "message"), msgPrefix = flagMsg ? flagMsg + ": " : "", ssfi = flag(this, "ssfi"), objType = _.type(obj).toLowerCase(), startType = _.type(start).toLowerCase(), finishType = _.type(finish).toLowerCase(), errorMessage, shouldThrow = true, range = startType === "date" && finishType === "date" ? start.toISOString() + ".." + finish.toISOString() : start + ".." + finish; + if (doLength && objType !== "map" && objType !== "set") { + new Assertion(obj, flagMsg, ssfi, true).to.have.property("length"); + } + if (!doLength && (objType === "date" && (startType !== "date" || finishType !== "date"))) { + errorMessage = msgPrefix + "the arguments to within must be dates"; + } else if ((startType !== "number" || finishType !== "number") && (doLength || objType === "number")) { + errorMessage = msgPrefix + "the arguments to within must be numbers"; + } else if (!doLength && (objType !== "date" && objType !== "number")) { + var printObj = objType === "string" ? "'" + obj + "'" : obj; + errorMessage = msgPrefix + "expected " + printObj + " to be a number or a date"; + } else { + shouldThrow = false; + } + if (shouldThrow) { + throw new AssertionError(errorMessage, void 0, ssfi); + } + if (doLength) { + var descriptor = "length", itemsCount; + if (objType === "map" || objType === "set") { + descriptor = "size"; + itemsCount = obj.size; + } else { + itemsCount = obj.length; + } + this.assert(itemsCount >= start && itemsCount <= finish, "expected #{this} to have a " + descriptor + " within " + range, "expected #{this} to not have a " + descriptor + " within " + range); + } else { + this.assert(obj >= start && obj <= finish, "expected #{this} to be within " + range, "expected #{this} to not be within " + range); + } + }); + function assertInstanceOf(constructor, msg) { + if (msg) + flag(this, "message", msg); + var target = flag(this, "object"); + var ssfi = flag(this, "ssfi"); + var flagMsg = flag(this, "message"); + try { + var isInstanceOf = target instanceof constructor; + } catch (err) { + if (err instanceof TypeError) { + flagMsg = flagMsg ? flagMsg + ": " : ""; + throw new AssertionError(flagMsg + "The instanceof assertion needs a constructor but " + _.type(constructor) + " was given.", void 0, ssfi); + } + throw err; + } + var name = _.getName(constructor); + if (name === null) { + name = "an unnamed constructor"; + } + this.assert(isInstanceOf, "expected #{this} to be an instance of " + name, "expected #{this} to not be an instance of " + name); + } + ; + Assertion.addMethod("instanceof", assertInstanceOf); + Assertion.addMethod("instanceOf", assertInstanceOf); + function assertProperty(name, val, msg) { + if (msg) + flag(this, "message", msg); + var isNested = flag(this, "nested"), isOwn = flag(this, "own"), flagMsg = flag(this, "message"), obj = flag(this, "object"), ssfi = flag(this, "ssfi"), nameType = typeof name; + flagMsg = flagMsg ? flagMsg + ": " : ""; + if (isNested) { + if (nameType !== "string") { + throw new AssertionError(flagMsg + "the argument to property must be a string when using nested syntax", void 0, ssfi); + } + } else { + if (nameType !== "string" && nameType !== "number" && nameType !== "symbol") { + throw new AssertionError(flagMsg + "the argument to property must be a string, number, or symbol", void 0, ssfi); + } + } + if (isNested && isOwn) { + throw new AssertionError(flagMsg + 'The "nested" and "own" flags cannot be combined.', void 0, ssfi); + } + if (obj === null || obj === void 0) { + throw new AssertionError(flagMsg + "Target cannot be null or undefined.", void 0, ssfi); + } + var isDeep = flag(this, "deep"), negate = flag(this, "negate"), pathInfo = isNested ? _.getPathInfo(obj, name) : null, value = isNested ? pathInfo.value : obj[name]; + var descriptor = ""; + if (isDeep) + descriptor += "deep "; + if (isOwn) + descriptor += "own "; + if (isNested) + descriptor += "nested "; + descriptor += "property "; + var hasProperty; + if (isOwn) + hasProperty = Object.prototype.hasOwnProperty.call(obj, name); + else if (isNested) + hasProperty = pathInfo.exists; + else + hasProperty = _.hasProperty(obj, name); + if (!negate || arguments.length === 1) { + this.assert(hasProperty, "expected #{this} to have " + descriptor + _.inspect(name), "expected #{this} to not have " + descriptor + _.inspect(name)); + } + if (arguments.length > 1) { + this.assert(hasProperty && (isDeep ? _.eql(val, value) : val === value), "expected #{this} to have " + descriptor + _.inspect(name) + " of #{exp}, but got #{act}", "expected #{this} to not have " + descriptor + _.inspect(name) + " of #{act}", val, value); + } + flag(this, "object", value); + } + Assertion.addMethod("property", assertProperty); + function assertOwnProperty(name, value, msg) { + flag(this, "own", true); + assertProperty.apply(this, arguments); + } + Assertion.addMethod("ownProperty", assertOwnProperty); + Assertion.addMethod("haveOwnProperty", assertOwnProperty); + function assertOwnPropertyDescriptor(name, descriptor, msg) { + if (typeof descriptor === "string") { + msg = descriptor; + descriptor = null; + } + if (msg) + flag(this, "message", msg); + var obj = flag(this, "object"); + var actualDescriptor = Object.getOwnPropertyDescriptor(Object(obj), name); + if (actualDescriptor && descriptor) { + this.assert(_.eql(descriptor, actualDescriptor), "expected the own property descriptor for " + _.inspect(name) + " on #{this} to match " + _.inspect(descriptor) + ", got " + _.inspect(actualDescriptor), "expected the own property descriptor for " + _.inspect(name) + " on #{this} to not match " + _.inspect(descriptor), descriptor, actualDescriptor, true); + } else { + this.assert(actualDescriptor, "expected #{this} to have an own property descriptor for " + _.inspect(name), "expected #{this} to not have an own property descriptor for " + _.inspect(name)); + } + flag(this, "object", actualDescriptor); + } + Assertion.addMethod("ownPropertyDescriptor", assertOwnPropertyDescriptor); + Assertion.addMethod("haveOwnPropertyDescriptor", assertOwnPropertyDescriptor); + function assertLengthChain() { + flag(this, "doLength", true); + } + function assertLength(n, msg) { + if (msg) + flag(this, "message", msg); + var obj = flag(this, "object"), objType = _.type(obj).toLowerCase(), flagMsg = flag(this, "message"), ssfi = flag(this, "ssfi"), descriptor = "length", itemsCount; + switch (objType) { + case "map": + case "set": + descriptor = "size"; + itemsCount = obj.size; + break; + default: + new Assertion(obj, flagMsg, ssfi, true).to.have.property("length"); + itemsCount = obj.length; + } + this.assert(itemsCount == n, "expected #{this} to have a " + descriptor + " of #{exp} but got #{act}", "expected #{this} to not have a " + descriptor + " of #{act}", n, itemsCount); + } + Assertion.addChainableMethod("length", assertLength, assertLengthChain); + Assertion.addChainableMethod("lengthOf", assertLength, assertLengthChain); + function assertMatch(re, msg) { + if (msg) + flag(this, "message", msg); + var obj = flag(this, "object"); + this.assert(re.exec(obj), "expected #{this} to match " + re, "expected #{this} not to match " + re); + } + Assertion.addMethod("match", assertMatch); + Assertion.addMethod("matches", assertMatch); + Assertion.addMethod("string", function(str, msg) { + if (msg) + flag(this, "message", msg); + var obj = flag(this, "object"), flagMsg = flag(this, "message"), ssfi = flag(this, "ssfi"); + new Assertion(obj, flagMsg, ssfi, true).is.a("string"); + this.assert(~obj.indexOf(str), "expected #{this} to contain " + _.inspect(str), "expected #{this} to not contain " + _.inspect(str)); + }); + function assertKeys(keys) { + var obj = flag(this, "object"), objType = _.type(obj), keysType = _.type(keys), ssfi = flag(this, "ssfi"), isDeep = flag(this, "deep"), str, deepStr = "", actual, ok = true, flagMsg = flag(this, "message"); + flagMsg = flagMsg ? flagMsg + ": " : ""; + var mixedArgsMsg = flagMsg + "when testing keys against an object or an array you must give a single Array|Object|String argument or multiple String arguments"; + if (objType === "Map" || objType === "Set") { + deepStr = isDeep ? "deeply " : ""; + actual = []; + obj.forEach(function(val, key) { + actual.push(key); + }); + if (keysType !== "Array") { + keys = Array.prototype.slice.call(arguments); + } + } else { + actual = _.getOwnEnumerableProperties(obj); + switch (keysType) { + case "Array": + if (arguments.length > 1) { + throw new AssertionError(mixedArgsMsg, void 0, ssfi); + } + break; + case "Object": + if (arguments.length > 1) { + throw new AssertionError(mixedArgsMsg, void 0, ssfi); + } + keys = Object.keys(keys); + break; + default: + keys = Array.prototype.slice.call(arguments); + } + keys = keys.map(function(val) { + return typeof val === "symbol" ? val : String(val); + }); + } + if (!keys.length) { + throw new AssertionError(flagMsg + "keys required", void 0, ssfi); + } + var len = keys.length, any = flag(this, "any"), all = flag(this, "all"), expected = keys; + if (!any && !all) { + all = true; + } + if (any) { + ok = expected.some(function(expectedKey) { + return actual.some(function(actualKey) { + if (isDeep) { + return _.eql(expectedKey, actualKey); + } else { + return expectedKey === actualKey; + } + }); + }); + } + if (all) { + ok = expected.every(function(expectedKey) { + return actual.some(function(actualKey) { + if (isDeep) { + return _.eql(expectedKey, actualKey); + } else { + return expectedKey === actualKey; + } + }); + }); + if (!flag(this, "contains")) { + ok = ok && keys.length == actual.length; + } + } + if (len > 1) { + keys = keys.map(function(key) { + return _.inspect(key); + }); + var last = keys.pop(); + if (all) { + str = keys.join(", ") + ", and " + last; + } + if (any) { + str = keys.join(", ") + ", or " + last; + } + } else { + str = _.inspect(keys[0]); + } + str = (len > 1 ? "keys " : "key ") + str; + str = (flag(this, "contains") ? "contain " : "have ") + str; + this.assert(ok, "expected #{this} to " + deepStr + str, "expected #{this} to not " + deepStr + str, expected.slice(0).sort(_.compareByInspect), actual.sort(_.compareByInspect), true); + } + Assertion.addMethod("keys", assertKeys); + Assertion.addMethod("key", assertKeys); + function assertThrows(errorLike, errMsgMatcher, msg) { + if (msg) + flag(this, "message", msg); + var obj = flag(this, "object"), ssfi = flag(this, "ssfi"), flagMsg = flag(this, "message"), negate = flag(this, "negate") || false; + new Assertion(obj, flagMsg, ssfi, true).is.a("function"); + if (errorLike instanceof RegExp || typeof errorLike === "string") { + errMsgMatcher = errorLike; + errorLike = null; + } + var caughtErr; + try { + obj(); + } catch (err) { + caughtErr = err; + } + var everyArgIsUndefined = errorLike === void 0 && errMsgMatcher === void 0; + var everyArgIsDefined = Boolean(errorLike && errMsgMatcher); + var errorLikeFail = false; + var errMsgMatcherFail = false; + if (everyArgIsUndefined || !everyArgIsUndefined && !negate) { + var errorLikeString = "an error"; + if (errorLike instanceof Error) { + errorLikeString = "#{exp}"; + } else if (errorLike) { + errorLikeString = _.checkError.getConstructorName(errorLike); + } + this.assert(caughtErr, "expected #{this} to throw " + errorLikeString, "expected #{this} to not throw an error but #{act} was thrown", errorLike && errorLike.toString(), caughtErr instanceof Error ? caughtErr.toString() : typeof caughtErr === "string" ? caughtErr : caughtErr && _.checkError.getConstructorName(caughtErr)); + } + if (errorLike && caughtErr) { + if (errorLike instanceof Error) { + var isCompatibleInstance = _.checkError.compatibleInstance(caughtErr, errorLike); + if (isCompatibleInstance === negate) { + if (everyArgIsDefined && negate) { + errorLikeFail = true; + } else { + this.assert(negate, "expected #{this} to throw #{exp} but #{act} was thrown", "expected #{this} to not throw #{exp}" + (caughtErr && !negate ? " but #{act} was thrown" : ""), errorLike.toString(), caughtErr.toString()); + } + } + } + var isCompatibleConstructor = _.checkError.compatibleConstructor(caughtErr, errorLike); + if (isCompatibleConstructor === negate) { + if (everyArgIsDefined && negate) { + errorLikeFail = true; + } else { + this.assert(negate, "expected #{this} to throw #{exp} but #{act} was thrown", "expected #{this} to not throw #{exp}" + (caughtErr ? " but #{act} was thrown" : ""), errorLike instanceof Error ? errorLike.toString() : errorLike && _.checkError.getConstructorName(errorLike), caughtErr instanceof Error ? caughtErr.toString() : caughtErr && _.checkError.getConstructorName(caughtErr)); + } + } + } + if (caughtErr && errMsgMatcher !== void 0 && errMsgMatcher !== null) { + var placeholder = "including"; + if (errMsgMatcher instanceof RegExp) { + placeholder = "matching"; + } + var isCompatibleMessage = _.checkError.compatibleMessage(caughtErr, errMsgMatcher); + if (isCompatibleMessage === negate) { + if (everyArgIsDefined && negate) { + errMsgMatcherFail = true; + } else { + this.assert(negate, "expected #{this} to throw error " + placeholder + " #{exp} but got #{act}", "expected #{this} to throw error not " + placeholder + " #{exp}", errMsgMatcher, _.checkError.getMessage(caughtErr)); + } + } + } + if (errorLikeFail && errMsgMatcherFail) { + this.assert(negate, "expected #{this} to throw #{exp} but #{act} was thrown", "expected #{this} to not throw #{exp}" + (caughtErr ? " but #{act} was thrown" : ""), errorLike instanceof Error ? errorLike.toString() : errorLike && _.checkError.getConstructorName(errorLike), caughtErr instanceof Error ? caughtErr.toString() : caughtErr && _.checkError.getConstructorName(caughtErr)); + } + flag(this, "object", caughtErr); + } + ; + Assertion.addMethod("throw", assertThrows); + Assertion.addMethod("throws", assertThrows); + Assertion.addMethod("Throw", assertThrows); + function respondTo(method, msg) { + if (msg) + flag(this, "message", msg); + var obj = flag(this, "object"), itself = flag(this, "itself"), context = "function" === typeof obj && !itself ? obj.prototype[method] : obj[method]; + this.assert("function" === typeof context, "expected #{this} to respond to " + _.inspect(method), "expected #{this} to not respond to " + _.inspect(method)); + } + Assertion.addMethod("respondTo", respondTo); + Assertion.addMethod("respondsTo", respondTo); + Assertion.addProperty("itself", function() { + flag(this, "itself", true); + }); + function satisfy(matcher, msg) { + if (msg) + flag(this, "message", msg); + var obj = flag(this, "object"); + var result = matcher(obj); + this.assert(result, "expected #{this} to satisfy " + _.objDisplay(matcher), "expected #{this} to not satisfy" + _.objDisplay(matcher), flag(this, "negate") ? false : true, result); + } + Assertion.addMethod("satisfy", satisfy); + Assertion.addMethod("satisfies", satisfy); + function closeTo(expected, delta, msg) { + if (msg) + flag(this, "message", msg); + var obj = flag(this, "object"), flagMsg = flag(this, "message"), ssfi = flag(this, "ssfi"); + new Assertion(obj, flagMsg, ssfi, true).is.a("number"); + if (typeof expected !== "number" || typeof delta !== "number") { + flagMsg = flagMsg ? flagMsg + ": " : ""; + var deltaMessage = delta === void 0 ? ", and a delta is required" : ""; + throw new AssertionError(flagMsg + "the arguments to closeTo or approximately must be numbers" + deltaMessage, void 0, ssfi); + } + this.assert(Math.abs(obj - expected) <= delta, "expected #{this} to be close to " + expected + " +/- " + delta, "expected #{this} not to be close to " + expected + " +/- " + delta); + } + Assertion.addMethod("closeTo", closeTo); + Assertion.addMethod("approximately", closeTo); + function isSubsetOf(subset, superset, cmp, contains, ordered) { + if (!contains) { + if (subset.length !== superset.length) + return false; + superset = superset.slice(); + } + return subset.every(function(elem, idx) { + if (ordered) + return cmp ? cmp(elem, superset[idx]) : elem === superset[idx]; + if (!cmp) { + var matchIdx = superset.indexOf(elem); + if (matchIdx === -1) + return false; + if (!contains) + superset.splice(matchIdx, 1); + return true; + } + return superset.some(function(elem2, matchIdx2) { + if (!cmp(elem, elem2)) + return false; + if (!contains) + superset.splice(matchIdx2, 1); + return true; + }); + }); + } + Assertion.addMethod("members", function(subset, msg) { + if (msg) + flag(this, "message", msg); + var obj = flag(this, "object"), flagMsg = flag(this, "message"), ssfi = flag(this, "ssfi"); + new Assertion(obj, flagMsg, ssfi, true).to.be.an("array"); + new Assertion(subset, flagMsg, ssfi, true).to.be.an("array"); + var contains = flag(this, "contains"); + var ordered = flag(this, "ordered"); + var subject, failMsg, failNegateMsg; + if (contains) { + subject = ordered ? "an ordered superset" : "a superset"; + failMsg = "expected #{this} to be " + subject + " of #{exp}"; + failNegateMsg = "expected #{this} to not be " + subject + " of #{exp}"; + } else { + subject = ordered ? "ordered members" : "members"; + failMsg = "expected #{this} to have the same " + subject + " as #{exp}"; + failNegateMsg = "expected #{this} to not have the same " + subject + " as #{exp}"; + } + var cmp = flag(this, "deep") ? _.eql : void 0; + this.assert(isSubsetOf(subset, obj, cmp, contains, ordered), failMsg, failNegateMsg, subset, obj, true); + }); + function oneOf(list, msg) { + if (msg) + flag(this, "message", msg); + var expected = flag(this, "object"), flagMsg = flag(this, "message"), ssfi = flag(this, "ssfi"), contains = flag(this, "contains"), isDeep = flag(this, "deep"); + new Assertion(list, flagMsg, ssfi, true).to.be.an("array"); + if (contains) { + this.assert(list.some(function(possibility) { + return expected.indexOf(possibility) > -1; + }), "expected #{this} to contain one of #{exp}", "expected #{this} to not contain one of #{exp}", list, expected); + } else { + if (isDeep) { + this.assert(list.some(function(possibility) { + return _.eql(expected, possibility); + }), "expected #{this} to deeply equal one of #{exp}", "expected #{this} to deeply equal one of #{exp}", list, expected); + } else { + this.assert(list.indexOf(expected) > -1, "expected #{this} to be one of #{exp}", "expected #{this} to not be one of #{exp}", list, expected); + } + } + } + Assertion.addMethod("oneOf", oneOf); + function assertChanges(subject, prop, msg) { + if (msg) + flag(this, "message", msg); + var fn = flag(this, "object"), flagMsg = flag(this, "message"), ssfi = flag(this, "ssfi"); + new Assertion(fn, flagMsg, ssfi, true).is.a("function"); + var initial; + if (!prop) { + new Assertion(subject, flagMsg, ssfi, true).is.a("function"); + initial = subject(); + } else { + new Assertion(subject, flagMsg, ssfi, true).to.have.property(prop); + initial = subject[prop]; + } + fn(); + var final = prop === void 0 || prop === null ? subject() : subject[prop]; + var msgObj = prop === void 0 || prop === null ? initial : "." + prop; + flag(this, "deltaMsgObj", msgObj); + flag(this, "initialDeltaValue", initial); + flag(this, "finalDeltaValue", final); + flag(this, "deltaBehavior", "change"); + flag(this, "realDelta", final !== initial); + this.assert(initial !== final, "expected " + msgObj + " to change", "expected " + msgObj + " to not change"); + } + Assertion.addMethod("change", assertChanges); + Assertion.addMethod("changes", assertChanges); + function assertIncreases(subject, prop, msg) { + if (msg) + flag(this, "message", msg); + var fn = flag(this, "object"), flagMsg = flag(this, "message"), ssfi = flag(this, "ssfi"); + new Assertion(fn, flagMsg, ssfi, true).is.a("function"); + var initial; + if (!prop) { + new Assertion(subject, flagMsg, ssfi, true).is.a("function"); + initial = subject(); + } else { + new Assertion(subject, flagMsg, ssfi, true).to.have.property(prop); + initial = subject[prop]; + } + new Assertion(initial, flagMsg, ssfi, true).is.a("number"); + fn(); + var final = prop === void 0 || prop === null ? subject() : subject[prop]; + var msgObj = prop === void 0 || prop === null ? initial : "." + prop; + flag(this, "deltaMsgObj", msgObj); + flag(this, "initialDeltaValue", initial); + flag(this, "finalDeltaValue", final); + flag(this, "deltaBehavior", "increase"); + flag(this, "realDelta", final - initial); + this.assert(final - initial > 0, "expected " + msgObj + " to increase", "expected " + msgObj + " to not increase"); + } + Assertion.addMethod("increase", assertIncreases); + Assertion.addMethod("increases", assertIncreases); + function assertDecreases(subject, prop, msg) { + if (msg) + flag(this, "message", msg); + var fn = flag(this, "object"), flagMsg = flag(this, "message"), ssfi = flag(this, "ssfi"); + new Assertion(fn, flagMsg, ssfi, true).is.a("function"); + var initial; + if (!prop) { + new Assertion(subject, flagMsg, ssfi, true).is.a("function"); + initial = subject(); + } else { + new Assertion(subject, flagMsg, ssfi, true).to.have.property(prop); + initial = subject[prop]; + } + new Assertion(initial, flagMsg, ssfi, true).is.a("number"); + fn(); + var final = prop === void 0 || prop === null ? subject() : subject[prop]; + var msgObj = prop === void 0 || prop === null ? initial : "." + prop; + flag(this, "deltaMsgObj", msgObj); + flag(this, "initialDeltaValue", initial); + flag(this, "finalDeltaValue", final); + flag(this, "deltaBehavior", "decrease"); + flag(this, "realDelta", initial - final); + this.assert(final - initial < 0, "expected " + msgObj + " to decrease", "expected " + msgObj + " to not decrease"); + } + Assertion.addMethod("decrease", assertDecreases); + Assertion.addMethod("decreases", assertDecreases); + function assertDelta(delta, msg) { + if (msg) + flag(this, "message", msg); + var msgObj = flag(this, "deltaMsgObj"); + var initial = flag(this, "initialDeltaValue"); + var final = flag(this, "finalDeltaValue"); + var behavior = flag(this, "deltaBehavior"); + var realDelta = flag(this, "realDelta"); + var expression; + if (behavior === "change") { + expression = Math.abs(final - initial) === Math.abs(delta); + } else { + expression = realDelta === Math.abs(delta); + } + this.assert(expression, "expected " + msgObj + " to " + behavior + " by " + delta, "expected " + msgObj + " to not " + behavior + " by " + delta); + } + Assertion.addMethod("by", assertDelta); + Assertion.addProperty("extensible", function() { + var obj = flag(this, "object"); + var isExtensible = obj === Object(obj) && Object.isExtensible(obj); + this.assert(isExtensible, "expected #{this} to be extensible", "expected #{this} to not be extensible"); + }); + Assertion.addProperty("sealed", function() { + var obj = flag(this, "object"); + var isSealed = obj === Object(obj) ? Object.isSealed(obj) : true; + this.assert(isSealed, "expected #{this} to be sealed", "expected #{this} to not be sealed"); + }); + Assertion.addProperty("frozen", function() { + var obj = flag(this, "object"); + var isFrozen = obj === Object(obj) ? Object.isFrozen(obj) : true; + this.assert(isFrozen, "expected #{this} to be frozen", "expected #{this} to not be frozen"); + }); + Assertion.addProperty("finite", function(msg) { + var obj = flag(this, "object"); + this.assert(typeof obj === "number" && isFinite(obj), "expected #{this} to be a finite number", "expected #{this} to not be a finite number"); + }); + }; + } + }); + + // node_modules/chai/lib/chai/interface/expect.js + var require_expect = __commonJS({ + "node_modules/chai/lib/chai/interface/expect.js"(exports, module) { + module.exports = function(chai, util) { + chai.expect = function(val, message) { + return new chai.Assertion(val, message); + }; + chai.expect.fail = function(actual, expected, message, operator) { + if (arguments.length < 2) { + message = actual; + actual = void 0; + } + message = message || "expect.fail()"; + throw new chai.AssertionError(message, { + actual, + expected, + operator + }, chai.expect.fail); + }; + }; + } + }); + + // node_modules/chai/lib/chai/interface/should.js + var require_should = __commonJS({ + "node_modules/chai/lib/chai/interface/should.js"(exports, module) { + module.exports = function(chai, util) { + var Assertion = chai.Assertion; + function loadShould() { + function shouldGetter() { + if (this instanceof String || this instanceof Number || this instanceof Boolean || typeof Symbol === "function" && this instanceof Symbol || typeof BigInt === "function" && this instanceof BigInt) { + return new Assertion(this.valueOf(), null, shouldGetter); + } + return new Assertion(this, null, shouldGetter); + } + function shouldSetter(value) { + Object.defineProperty(this, "should", { + value, + enumerable: true, + configurable: true, + writable: true + }); + } + Object.defineProperty(Object.prototype, "should", { + set: shouldSetter, + get: shouldGetter, + configurable: true + }); + var should = {}; + should.fail = function(actual, expected, message, operator) { + if (arguments.length < 2) { + message = actual; + actual = void 0; + } + message = message || "should.fail()"; + throw new chai.AssertionError(message, { + actual, + expected, + operator + }, should.fail); + }; + should.equal = function(val1, val2, msg) { + new Assertion(val1, msg).to.equal(val2); + }; + should.Throw = function(fn, errt, errs, msg) { + new Assertion(fn, msg).to.Throw(errt, errs); + }; + should.exist = function(val, msg) { + new Assertion(val, msg).to.exist; + }; + should.not = {}; + should.not.equal = function(val1, val2, msg) { + new Assertion(val1, msg).to.not.equal(val2); + }; + should.not.Throw = function(fn, errt, errs, msg) { + new Assertion(fn, msg).to.not.Throw(errt, errs); + }; + should.not.exist = function(val, msg) { + new Assertion(val, msg).to.not.exist; + }; + should["throw"] = should["Throw"]; + should.not["throw"] = should.not["Throw"]; + return should; + } + ; + chai.should = loadShould; + chai.Should = loadShould; + }; + } + }); + + // node_modules/chai/lib/chai/interface/assert.js + var require_assert = __commonJS({ + "node_modules/chai/lib/chai/interface/assert.js"(exports, module) { + module.exports = function(chai, util) { + var Assertion = chai.Assertion, flag = util.flag; + var assert = chai.assert = function(express, errmsg) { + var test = new Assertion(null, null, chai.assert, true); + test.assert(express, errmsg, "[ negation message unavailable ]"); + }; + assert.fail = function(actual, expected, message, operator) { + if (arguments.length < 2) { + message = actual; + actual = void 0; + } + message = message || "assert.fail()"; + throw new chai.AssertionError(message, { + actual, + expected, + operator + }, assert.fail); + }; + assert.isOk = function(val, msg) { + new Assertion(val, msg, assert.isOk, true).is.ok; + }; + assert.isNotOk = function(val, msg) { + new Assertion(val, msg, assert.isNotOk, true).is.not.ok; + }; + assert.equal = function(act, exp, msg) { + var test = new Assertion(act, msg, assert.equal, true); + test.assert(exp == flag(test, "object"), "expected #{this} to equal #{exp}", "expected #{this} to not equal #{act}", exp, act, true); + }; + assert.notEqual = function(act, exp, msg) { + var test = new Assertion(act, msg, assert.notEqual, true); + test.assert(exp != flag(test, "object"), "expected #{this} to not equal #{exp}", "expected #{this} to equal #{act}", exp, act, true); + }; + assert.strictEqual = function(act, exp, msg) { + new Assertion(act, msg, assert.strictEqual, true).to.equal(exp); + }; + assert.notStrictEqual = function(act, exp, msg) { + new Assertion(act, msg, assert.notStrictEqual, true).to.not.equal(exp); + }; + assert.deepEqual = assert.deepStrictEqual = function(act, exp, msg) { + new Assertion(act, msg, assert.deepEqual, true).to.eql(exp); + }; + assert.notDeepEqual = function(act, exp, msg) { + new Assertion(act, msg, assert.notDeepEqual, true).to.not.eql(exp); + }; + assert.isAbove = function(val, abv, msg) { + new Assertion(val, msg, assert.isAbove, true).to.be.above(abv); + }; + assert.isAtLeast = function(val, atlst, msg) { + new Assertion(val, msg, assert.isAtLeast, true).to.be.least(atlst); + }; + assert.isBelow = function(val, blw, msg) { + new Assertion(val, msg, assert.isBelow, true).to.be.below(blw); + }; + assert.isAtMost = function(val, atmst, msg) { + new Assertion(val, msg, assert.isAtMost, true).to.be.most(atmst); + }; + assert.isTrue = function(val, msg) { + new Assertion(val, msg, assert.isTrue, true).is["true"]; + }; + assert.isNotTrue = function(val, msg) { + new Assertion(val, msg, assert.isNotTrue, true).to.not.equal(true); + }; + assert.isFalse = function(val, msg) { + new Assertion(val, msg, assert.isFalse, true).is["false"]; + }; + assert.isNotFalse = function(val, msg) { + new Assertion(val, msg, assert.isNotFalse, true).to.not.equal(false); + }; + assert.isNull = function(val, msg) { + new Assertion(val, msg, assert.isNull, true).to.equal(null); + }; + assert.isNotNull = function(val, msg) { + new Assertion(val, msg, assert.isNotNull, true).to.not.equal(null); + }; + assert.isNaN = function(val, msg) { + new Assertion(val, msg, assert.isNaN, true).to.be.NaN; + }; + assert.isNotNaN = function(val, msg) { + new Assertion(val, msg, assert.isNotNaN, true).not.to.be.NaN; + }; + assert.exists = function(val, msg) { + new Assertion(val, msg, assert.exists, true).to.exist; + }; + assert.notExists = function(val, msg) { + new Assertion(val, msg, assert.notExists, true).to.not.exist; + }; + assert.isUndefined = function(val, msg) { + new Assertion(val, msg, assert.isUndefined, true).to.equal(void 0); + }; + assert.isDefined = function(val, msg) { + new Assertion(val, msg, assert.isDefined, true).to.not.equal(void 0); + }; + assert.isFunction = function(val, msg) { + new Assertion(val, msg, assert.isFunction, true).to.be.a("function"); + }; + assert.isNotFunction = function(val, msg) { + new Assertion(val, msg, assert.isNotFunction, true).to.not.be.a("function"); + }; + assert.isObject = function(val, msg) { + new Assertion(val, msg, assert.isObject, true).to.be.a("object"); + }; + assert.isNotObject = function(val, msg) { + new Assertion(val, msg, assert.isNotObject, true).to.not.be.a("object"); + }; + assert.isArray = function(val, msg) { + new Assertion(val, msg, assert.isArray, true).to.be.an("array"); + }; + assert.isNotArray = function(val, msg) { + new Assertion(val, msg, assert.isNotArray, true).to.not.be.an("array"); + }; + assert.isString = function(val, msg) { + new Assertion(val, msg, assert.isString, true).to.be.a("string"); + }; + assert.isNotString = function(val, msg) { + new Assertion(val, msg, assert.isNotString, true).to.not.be.a("string"); + }; + assert.isNumber = function(val, msg) { + new Assertion(val, msg, assert.isNumber, true).to.be.a("number"); + }; + assert.isNotNumber = function(val, msg) { + new Assertion(val, msg, assert.isNotNumber, true).to.not.be.a("number"); + }; + assert.isFinite = function(val, msg) { + new Assertion(val, msg, assert.isFinite, true).to.be.finite; + }; + assert.isBoolean = function(val, msg) { + new Assertion(val, msg, assert.isBoolean, true).to.be.a("boolean"); + }; + assert.isNotBoolean = function(val, msg) { + new Assertion(val, msg, assert.isNotBoolean, true).to.not.be.a("boolean"); + }; + assert.typeOf = function(val, type, msg) { + new Assertion(val, msg, assert.typeOf, true).to.be.a(type); + }; + assert.notTypeOf = function(val, type, msg) { + new Assertion(val, msg, assert.notTypeOf, true).to.not.be.a(type); + }; + assert.instanceOf = function(val, type, msg) { + new Assertion(val, msg, assert.instanceOf, true).to.be.instanceOf(type); + }; + assert.notInstanceOf = function(val, type, msg) { + new Assertion(val, msg, assert.notInstanceOf, true).to.not.be.instanceOf(type); + }; + assert.include = function(exp, inc, msg) { + new Assertion(exp, msg, assert.include, true).include(inc); + }; + assert.notInclude = function(exp, inc, msg) { + new Assertion(exp, msg, assert.notInclude, true).not.include(inc); + }; + assert.deepInclude = function(exp, inc, msg) { + new Assertion(exp, msg, assert.deepInclude, true).deep.include(inc); + }; + assert.notDeepInclude = function(exp, inc, msg) { + new Assertion(exp, msg, assert.notDeepInclude, true).not.deep.include(inc); + }; + assert.nestedInclude = function(exp, inc, msg) { + new Assertion(exp, msg, assert.nestedInclude, true).nested.include(inc); + }; + assert.notNestedInclude = function(exp, inc, msg) { + new Assertion(exp, msg, assert.notNestedInclude, true).not.nested.include(inc); + }; + assert.deepNestedInclude = function(exp, inc, msg) { + new Assertion(exp, msg, assert.deepNestedInclude, true).deep.nested.include(inc); + }; + assert.notDeepNestedInclude = function(exp, inc, msg) { + new Assertion(exp, msg, assert.notDeepNestedInclude, true).not.deep.nested.include(inc); + }; + assert.ownInclude = function(exp, inc, msg) { + new Assertion(exp, msg, assert.ownInclude, true).own.include(inc); + }; + assert.notOwnInclude = function(exp, inc, msg) { + new Assertion(exp, msg, assert.notOwnInclude, true).not.own.include(inc); + }; + assert.deepOwnInclude = function(exp, inc, msg) { + new Assertion(exp, msg, assert.deepOwnInclude, true).deep.own.include(inc); + }; + assert.notDeepOwnInclude = function(exp, inc, msg) { + new Assertion(exp, msg, assert.notDeepOwnInclude, true).not.deep.own.include(inc); + }; + assert.match = function(exp, re, msg) { + new Assertion(exp, msg, assert.match, true).to.match(re); + }; + assert.notMatch = function(exp, re, msg) { + new Assertion(exp, msg, assert.notMatch, true).to.not.match(re); + }; + assert.property = function(obj, prop, msg) { + new Assertion(obj, msg, assert.property, true).to.have.property(prop); + }; + assert.notProperty = function(obj, prop, msg) { + new Assertion(obj, msg, assert.notProperty, true).to.not.have.property(prop); + }; + assert.propertyVal = function(obj, prop, val, msg) { + new Assertion(obj, msg, assert.propertyVal, true).to.have.property(prop, val); + }; + assert.notPropertyVal = function(obj, prop, val, msg) { + new Assertion(obj, msg, assert.notPropertyVal, true).to.not.have.property(prop, val); + }; + assert.deepPropertyVal = function(obj, prop, val, msg) { + new Assertion(obj, msg, assert.deepPropertyVal, true).to.have.deep.property(prop, val); + }; + assert.notDeepPropertyVal = function(obj, prop, val, msg) { + new Assertion(obj, msg, assert.notDeepPropertyVal, true).to.not.have.deep.property(prop, val); + }; + assert.ownProperty = function(obj, prop, msg) { + new Assertion(obj, msg, assert.ownProperty, true).to.have.own.property(prop); + }; + assert.notOwnProperty = function(obj, prop, msg) { + new Assertion(obj, msg, assert.notOwnProperty, true).to.not.have.own.property(prop); + }; + assert.ownPropertyVal = function(obj, prop, value, msg) { + new Assertion(obj, msg, assert.ownPropertyVal, true).to.have.own.property(prop, value); + }; + assert.notOwnPropertyVal = function(obj, prop, value, msg) { + new Assertion(obj, msg, assert.notOwnPropertyVal, true).to.not.have.own.property(prop, value); + }; + assert.deepOwnPropertyVal = function(obj, prop, value, msg) { + new Assertion(obj, msg, assert.deepOwnPropertyVal, true).to.have.deep.own.property(prop, value); + }; + assert.notDeepOwnPropertyVal = function(obj, prop, value, msg) { + new Assertion(obj, msg, assert.notDeepOwnPropertyVal, true).to.not.have.deep.own.property(prop, value); + }; + assert.nestedProperty = function(obj, prop, msg) { + new Assertion(obj, msg, assert.nestedProperty, true).to.have.nested.property(prop); + }; + assert.notNestedProperty = function(obj, prop, msg) { + new Assertion(obj, msg, assert.notNestedProperty, true).to.not.have.nested.property(prop); + }; + assert.nestedPropertyVal = function(obj, prop, val, msg) { + new Assertion(obj, msg, assert.nestedPropertyVal, true).to.have.nested.property(prop, val); + }; + assert.notNestedPropertyVal = function(obj, prop, val, msg) { + new Assertion(obj, msg, assert.notNestedPropertyVal, true).to.not.have.nested.property(prop, val); + }; + assert.deepNestedPropertyVal = function(obj, prop, val, msg) { + new Assertion(obj, msg, assert.deepNestedPropertyVal, true).to.have.deep.nested.property(prop, val); + }; + assert.notDeepNestedPropertyVal = function(obj, prop, val, msg) { + new Assertion(obj, msg, assert.notDeepNestedPropertyVal, true).to.not.have.deep.nested.property(prop, val); + }; + assert.lengthOf = function(exp, len, msg) { + new Assertion(exp, msg, assert.lengthOf, true).to.have.lengthOf(len); + }; + assert.hasAnyKeys = function(obj, keys, msg) { + new Assertion(obj, msg, assert.hasAnyKeys, true).to.have.any.keys(keys); + }; + assert.hasAllKeys = function(obj, keys, msg) { + new Assertion(obj, msg, assert.hasAllKeys, true).to.have.all.keys(keys); + }; + assert.containsAllKeys = function(obj, keys, msg) { + new Assertion(obj, msg, assert.containsAllKeys, true).to.contain.all.keys(keys); + }; + assert.doesNotHaveAnyKeys = function(obj, keys, msg) { + new Assertion(obj, msg, assert.doesNotHaveAnyKeys, true).to.not.have.any.keys(keys); + }; + assert.doesNotHaveAllKeys = function(obj, keys, msg) { + new Assertion(obj, msg, assert.doesNotHaveAllKeys, true).to.not.have.all.keys(keys); + }; + assert.hasAnyDeepKeys = function(obj, keys, msg) { + new Assertion(obj, msg, assert.hasAnyDeepKeys, true).to.have.any.deep.keys(keys); + }; + assert.hasAllDeepKeys = function(obj, keys, msg) { + new Assertion(obj, msg, assert.hasAllDeepKeys, true).to.have.all.deep.keys(keys); + }; + assert.containsAllDeepKeys = function(obj, keys, msg) { + new Assertion(obj, msg, assert.containsAllDeepKeys, true).to.contain.all.deep.keys(keys); + }; + assert.doesNotHaveAnyDeepKeys = function(obj, keys, msg) { + new Assertion(obj, msg, assert.doesNotHaveAnyDeepKeys, true).to.not.have.any.deep.keys(keys); + }; + assert.doesNotHaveAllDeepKeys = function(obj, keys, msg) { + new Assertion(obj, msg, assert.doesNotHaveAllDeepKeys, true).to.not.have.all.deep.keys(keys); + }; + assert.throws = function(fn, errorLike, errMsgMatcher, msg) { + if ("string" === typeof errorLike || errorLike instanceof RegExp) { + errMsgMatcher = errorLike; + errorLike = null; + } + var assertErr = new Assertion(fn, msg, assert.throws, true).to.throw(errorLike, errMsgMatcher); + return flag(assertErr, "object"); + }; + assert.doesNotThrow = function(fn, errorLike, errMsgMatcher, msg) { + if ("string" === typeof errorLike || errorLike instanceof RegExp) { + errMsgMatcher = errorLike; + errorLike = null; + } + new Assertion(fn, msg, assert.doesNotThrow, true).to.not.throw(errorLike, errMsgMatcher); + }; + assert.operator = function(val, operator, val2, msg) { + var ok; + switch (operator) { + case "==": + ok = val == val2; + break; + case "===": + ok = val === val2; + break; + case ">": + ok = val > val2; + break; + case ">=": + ok = val >= val2; + break; + case "<": + ok = val < val2; + break; + case "<=": + ok = val <= val2; + break; + case "!=": + ok = val != val2; + break; + case "!==": + ok = val !== val2; + break; + default: + msg = msg ? msg + ": " : msg; + throw new chai.AssertionError(msg + 'Invalid operator "' + operator + '"', void 0, assert.operator); + } + var test = new Assertion(ok, msg, assert.operator, true); + test.assert(true === flag(test, "object"), "expected " + util.inspect(val) + " to be " + operator + " " + util.inspect(val2), "expected " + util.inspect(val) + " to not be " + operator + " " + util.inspect(val2)); + }; + assert.closeTo = function(act, exp, delta, msg) { + new Assertion(act, msg, assert.closeTo, true).to.be.closeTo(exp, delta); + }; + assert.approximately = function(act, exp, delta, msg) { + new Assertion(act, msg, assert.approximately, true).to.be.approximately(exp, delta); + }; + assert.sameMembers = function(set1, set2, msg) { + new Assertion(set1, msg, assert.sameMembers, true).to.have.same.members(set2); + }; + assert.notSameMembers = function(set1, set2, msg) { + new Assertion(set1, msg, assert.notSameMembers, true).to.not.have.same.members(set2); + }; + assert.sameDeepMembers = function(set1, set2, msg) { + new Assertion(set1, msg, assert.sameDeepMembers, true).to.have.same.deep.members(set2); + }; + assert.notSameDeepMembers = function(set1, set2, msg) { + new Assertion(set1, msg, assert.notSameDeepMembers, true).to.not.have.same.deep.members(set2); + }; + assert.sameOrderedMembers = function(set1, set2, msg) { + new Assertion(set1, msg, assert.sameOrderedMembers, true).to.have.same.ordered.members(set2); + }; + assert.notSameOrderedMembers = function(set1, set2, msg) { + new Assertion(set1, msg, assert.notSameOrderedMembers, true).to.not.have.same.ordered.members(set2); + }; + assert.sameDeepOrderedMembers = function(set1, set2, msg) { + new Assertion(set1, msg, assert.sameDeepOrderedMembers, true).to.have.same.deep.ordered.members(set2); + }; + assert.notSameDeepOrderedMembers = function(set1, set2, msg) { + new Assertion(set1, msg, assert.notSameDeepOrderedMembers, true).to.not.have.same.deep.ordered.members(set2); + }; + assert.includeMembers = function(superset, subset, msg) { + new Assertion(superset, msg, assert.includeMembers, true).to.include.members(subset); + }; + assert.notIncludeMembers = function(superset, subset, msg) { + new Assertion(superset, msg, assert.notIncludeMembers, true).to.not.include.members(subset); + }; + assert.includeDeepMembers = function(superset, subset, msg) { + new Assertion(superset, msg, assert.includeDeepMembers, true).to.include.deep.members(subset); + }; + assert.notIncludeDeepMembers = function(superset, subset, msg) { + new Assertion(superset, msg, assert.notIncludeDeepMembers, true).to.not.include.deep.members(subset); + }; + assert.includeOrderedMembers = function(superset, subset, msg) { + new Assertion(superset, msg, assert.includeOrderedMembers, true).to.include.ordered.members(subset); + }; + assert.notIncludeOrderedMembers = function(superset, subset, msg) { + new Assertion(superset, msg, assert.notIncludeOrderedMembers, true).to.not.include.ordered.members(subset); + }; + assert.includeDeepOrderedMembers = function(superset, subset, msg) { + new Assertion(superset, msg, assert.includeDeepOrderedMembers, true).to.include.deep.ordered.members(subset); + }; + assert.notIncludeDeepOrderedMembers = function(superset, subset, msg) { + new Assertion(superset, msg, assert.notIncludeDeepOrderedMembers, true).to.not.include.deep.ordered.members(subset); + }; + assert.oneOf = function(inList, list, msg) { + new Assertion(inList, msg, assert.oneOf, true).to.be.oneOf(list); + }; + assert.changes = function(fn, obj, prop, msg) { + if (arguments.length === 3 && typeof obj === "function") { + msg = prop; + prop = null; + } + new Assertion(fn, msg, assert.changes, true).to.change(obj, prop); + }; + assert.changesBy = function(fn, obj, prop, delta, msg) { + if (arguments.length === 4 && typeof obj === "function") { + var tmpMsg = delta; + delta = prop; + msg = tmpMsg; + } else if (arguments.length === 3) { + delta = prop; + prop = null; + } + new Assertion(fn, msg, assert.changesBy, true).to.change(obj, prop).by(delta); + }; + assert.doesNotChange = function(fn, obj, prop, msg) { + if (arguments.length === 3 && typeof obj === "function") { + msg = prop; + prop = null; + } + return new Assertion(fn, msg, assert.doesNotChange, true).to.not.change(obj, prop); + }; + assert.changesButNotBy = function(fn, obj, prop, delta, msg) { + if (arguments.length === 4 && typeof obj === "function") { + var tmpMsg = delta; + delta = prop; + msg = tmpMsg; + } else if (arguments.length === 3) { + delta = prop; + prop = null; + } + new Assertion(fn, msg, assert.changesButNotBy, true).to.change(obj, prop).but.not.by(delta); + }; + assert.increases = function(fn, obj, prop, msg) { + if (arguments.length === 3 && typeof obj === "function") { + msg = prop; + prop = null; + } + return new Assertion(fn, msg, assert.increases, true).to.increase(obj, prop); + }; + assert.increasesBy = function(fn, obj, prop, delta, msg) { + if (arguments.length === 4 && typeof obj === "function") { + var tmpMsg = delta; + delta = prop; + msg = tmpMsg; + } else if (arguments.length === 3) { + delta = prop; + prop = null; + } + new Assertion(fn, msg, assert.increasesBy, true).to.increase(obj, prop).by(delta); + }; + assert.doesNotIncrease = function(fn, obj, prop, msg) { + if (arguments.length === 3 && typeof obj === "function") { + msg = prop; + prop = null; + } + return new Assertion(fn, msg, assert.doesNotIncrease, true).to.not.increase(obj, prop); + }; + assert.increasesButNotBy = function(fn, obj, prop, delta, msg) { + if (arguments.length === 4 && typeof obj === "function") { + var tmpMsg = delta; + delta = prop; + msg = tmpMsg; + } else if (arguments.length === 3) { + delta = prop; + prop = null; + } + new Assertion(fn, msg, assert.increasesButNotBy, true).to.increase(obj, prop).but.not.by(delta); + }; + assert.decreases = function(fn, obj, prop, msg) { + if (arguments.length === 3 && typeof obj === "function") { + msg = prop; + prop = null; + } + return new Assertion(fn, msg, assert.decreases, true).to.decrease(obj, prop); + }; + assert.decreasesBy = function(fn, obj, prop, delta, msg) { + if (arguments.length === 4 && typeof obj === "function") { + var tmpMsg = delta; + delta = prop; + msg = tmpMsg; + } else if (arguments.length === 3) { + delta = prop; + prop = null; + } + new Assertion(fn, msg, assert.decreasesBy, true).to.decrease(obj, prop).by(delta); + }; + assert.doesNotDecrease = function(fn, obj, prop, msg) { + if (arguments.length === 3 && typeof obj === "function") { + msg = prop; + prop = null; + } + return new Assertion(fn, msg, assert.doesNotDecrease, true).to.not.decrease(obj, prop); + }; + assert.doesNotDecreaseBy = function(fn, obj, prop, delta, msg) { + if (arguments.length === 4 && typeof obj === "function") { + var tmpMsg = delta; + delta = prop; + msg = tmpMsg; + } else if (arguments.length === 3) { + delta = prop; + prop = null; + } + return new Assertion(fn, msg, assert.doesNotDecreaseBy, true).to.not.decrease(obj, prop).by(delta); + }; + assert.decreasesButNotBy = function(fn, obj, prop, delta, msg) { + if (arguments.length === 4 && typeof obj === "function") { + var tmpMsg = delta; + delta = prop; + msg = tmpMsg; + } else if (arguments.length === 3) { + delta = prop; + prop = null; + } + new Assertion(fn, msg, assert.decreasesButNotBy, true).to.decrease(obj, prop).but.not.by(delta); + }; + assert.ifError = function(val) { + if (val) { + throw val; + } + }; + assert.isExtensible = function(obj, msg) { + new Assertion(obj, msg, assert.isExtensible, true).to.be.extensible; + }; + assert.isNotExtensible = function(obj, msg) { + new Assertion(obj, msg, assert.isNotExtensible, true).to.not.be.extensible; + }; + assert.isSealed = function(obj, msg) { + new Assertion(obj, msg, assert.isSealed, true).to.be.sealed; + }; + assert.isNotSealed = function(obj, msg) { + new Assertion(obj, msg, assert.isNotSealed, true).to.not.be.sealed; + }; + assert.isFrozen = function(obj, msg) { + new Assertion(obj, msg, assert.isFrozen, true).to.be.frozen; + }; + assert.isNotFrozen = function(obj, msg) { + new Assertion(obj, msg, assert.isNotFrozen, true).to.not.be.frozen; + }; + assert.isEmpty = function(val, msg) { + new Assertion(val, msg, assert.isEmpty, true).to.be.empty; + }; + assert.isNotEmpty = function(val, msg) { + new Assertion(val, msg, assert.isNotEmpty, true).to.not.be.empty; + }; + (function alias(name, as) { + assert[as] = assert[name]; + return alias; + })("isOk", "ok")("isNotOk", "notOk")("throws", "throw")("throws", "Throw")("isExtensible", "extensible")("isNotExtensible", "notExtensible")("isSealed", "sealed")("isNotSealed", "notSealed")("isFrozen", "frozen")("isNotFrozen", "notFrozen")("isEmpty", "empty")("isNotEmpty", "notEmpty"); + }; + } + }); + + // node_modules/chai/lib/chai.js + var require_chai = __commonJS({ + "node_modules/chai/lib/chai.js"(exports) { + var used = []; + exports.version = "4.3.3"; + exports.AssertionError = require_assertion_error(); + var util = require_utils(); + exports.use = function(fn) { + if (!~used.indexOf(fn)) { + fn(exports, util); + used.push(fn); + } + return exports; + }; + exports.util = util; + var config = require_config(); + exports.config = config; + var assertion = require_assertion(); + exports.use(assertion); + var core = require_assertions(); + exports.use(core); + var expect = require_expect(); + exports.use(expect); + var should = require_should(); + exports.use(should); + var assert = require_assert(); + exports.use(assert); + } + }); + + // node_modules/chai/index.js + var require_chai2 = __commonJS({ + "node_modules/chai/index.js"(exports, module) { + module.exports = require_chai(); + } + }); + + // test/browser/src/base.test.cjs + var require_base_test = __commonJS({ + "test/browser/src/base.test.cjs"() { + var { getDirname, getFilename } = require_cjs(); + var { expect } = require_chai2(); + describe("Browser CJS", () => { + it("getDirname() should be a string", function() { + console.debug(" getDirname() ->", getDirname()); + expect(getDirname()).to.be.a("string"); + }); + it("getFilename() should be a string", function() { + console.debug(" getFilename() ->", getFilename()); + expect(getFilename()).to.be.a("string"); + }); + it('getFilename() should end with "base.test.js"', function() { + expect(getFilename().endsWith("base.test.js")).to.be.true; + }); + }); + } + }); + require_base_test(); +})(); +/*! + * ### ._obj + * + * Quick reference to stored `actual` value for plugin developers. + * + * @api private + */ +/*! + * ### .ifError(object) + * + * Asserts if value is not a false value, and throws if it is a true value. + * This is added to allow for chai to be a drop-in replacement for Node's + * assert class. + * + * var err = new Error('I am a custom error'); + * assert.ifError(err); // Rethrows err! + * + * @name ifError + * @param {Object} object + * @namespace Assert + * @api public + */ +/*! + * Add a chainable method + */ +/*! + * Aliases. + */ +/*! + * Assert interface + */ +/*! + * Assertion Constructor + * + * Creates object for chaining. + * + * `Assertion` objects contain metadata in the form of flags. Three flags can + * be assigned during instantiation by passing arguments to this constructor: + * + * - `object`: This flag contains the target of the assertion. For example, in + * the assertion `expect(numKittens).to.equal(7);`, the `object` flag will + * contain `numKittens` so that the `equal` assertion can reference it when + * needed. + * + * - `message`: This flag contains an optional custom error message to be + * prepended to the error message that's generated by the assertion when it + * fails. + * + * - `ssfi`: This flag stands for "start stack function indicator". It + * contains a function reference that serves as the starting point for + * removing frames from the stack trace of the error that's created by the + * assertion when it fails. The goal is to provide a cleaner stack trace to + * end users by removing Chai's internal functions. Note that it only works + * in environments that support `Error.captureStackTrace`, and only when + * `Chai.config.includeStack` hasn't been set to `false`. + * + * - `lockSsfi`: This flag controls whether or not the given `ssfi` flag + * should retain its current value, even as assertions are chained off of + * this object. This is usually set to `true` when creating a new assertion + * from within another assertion. It's also temporarily set to `true` before + * an overwritten assertion gets called by the overwriting assertion. + * + * @param {Mixed} obj target of the assertion + * @param {String} msg (optional) custom error message + * @param {Function} ssfi (optional) starting point for removing stack frames + * @param {Boolean} lockSsfi (optional) whether or not the ssfi flag is locked + * @api private + */ +/*! + * Assertion Error + */ +/*! + * Chai - addChainingMethod utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ +/*! + * Chai - addLengthGuard utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ +/*! + * Chai - addMethod utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ +/*! + * Chai - addProperty utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ +/*! + * Chai - compareByInspect utility + * Copyright(c) 2011-2016 Jake Luer + * MIT Licensed + */ +/*! + * Chai - expectTypes utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ +/*! + * Chai - flag utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ +/*! + * Chai - getActual utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ +/*! + * Chai - getOwnEnumerableProperties utility + * Copyright(c) 2011-2016 Jake Luer + * MIT Licensed + */ +/*! + * Chai - getOwnEnumerablePropertySymbols utility + * Copyright(c) 2011-2016 Jake Luer + * MIT Licensed + */ +/*! + * Chai - getProperties utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ +/*! + * Chai - isNaN utility + * Copyright(c) 2012-2015 Sakthipriyan Vairamani + * MIT Licensed + */ +/*! + * Chai - isProxyEnabled helper + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ +/*! + * Chai - message composition utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ +/*! + * Chai - overwriteChainableMethod utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ +/*! + * Chai - overwriteMethod utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ +/*! + * Chai - overwriteProperty utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ +/*! + * Chai - proxify utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ +/*! + * Chai - test utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ +/*! + * Chai - transferFlags utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ +/*! + * Chai dependencies. + */ +/*! + * Chai version + */ +/*! + * Check if a property exists + */ +/*! + * Check to see if the MemoizeMap has recorded a result of the two operands + * + * @param {Mixed} leftHandOperand + * @param {Mixed} rightHandOperand + * @param {MemoizeMap} memoizeMap + * @returns {Boolean|null} result +*/ +/*! + * Checks error against a given set of criteria + */ +/*! + * Compare by inspect method + */ +/*! + * Compare two Regular Expressions for equality. + * + * @param {RegExp} leftHandOperand + * @param {RegExp} rightHandOperand + * @return {Boolean} result + */ +/*! + * Compare two Sets/Maps for equality. Faster than other equality functions. + * + * @param {Set} leftHandOperand + * @param {Set} rightHandOperand + * @param {Object} [options] (Optional) + * @return {Boolean} result + */ +/*! + * Configuration + */ +/*! + * Core Assertions + */ +/*! + * Deep equal utility + */ +/*! + * Deep path info + */ +/*! + * Dependencies that are used for multiple exports are required here only once + */ +/*! + * Determine if the given object has an @@iterator function. + * + * @param {Object} target + * @return {Boolean} `true` if the object has an @@iterator function. + */ +/*! + * Determines if two objects have matching values, given a set of keys. Defers to deepEqual for the equality check of + * each key. If any value of the given key is not equal, the function will return false (early). + * + * @param {Mixed} leftHandOperand + * @param {Mixed} rightHandOperand + * @param {Array} keys An array of keys to compare the values of leftHandOperand and rightHandOperand against + * @param {Object} [options] (Optional) + * @return {Boolean} result + */ +/*! + * Ensure correct constructor + */ +/*! + * Expect interface + */ +/*! + * Flag transferring utility + */ +/*! + * Flag utility + */ +/*! + * Function name + */ +/*! + * Get own enumerable properties method + */ +/*! + * Get own enumerable property symbols method + */ +/*! + * Gets all entries from a Generator. This will consume the generator - which could have side effects. + * + * @param {Generator} target + * @returns {Array} an array of entries from the Generator. + */ +/*! + * Gets all iterator entries from the given Object. If the Object has no @@iterator function, returns an empty array. + * This will consume the iterator - which could have side effects depending on the @@iterator implementation. + * + * @param {Object} target + * @returns {Array} an array of entries from the @@iterator function + */ +/*! + * Gets all own and inherited enumerable keys from a target. + * + * @param {Object} target + * @returns {Array} an array of own and inherited enumerable keys from the target. + */ +/*! + * Inherit from Error.prototype + */ +/*! + * Inspect util + */ +/*! + * Module dependencies + */ +/*! + * Module dependencies. + */ +/*! + * Module export. + */ +/*! + * Module variables + */ +/*! + * Object Display util + */ +/*! + * Overwrite chainable method + */ +/*! + * Primary Export + */ +/*! + * Primary Exports + */ +/*! + * Primary `Assertion` prototype + */ +/*! + * Proxify util + */ +/*! + * Recursively check the equality of two Objects. Once basic sameness has been established it will defer to `deepEqual` + * for each enumerable key in the object. + * + * @param {Mixed} leftHandOperand + * @param {Mixed} rightHandOperand + * @param {Object} [options] (Optional) + * @return {Boolean} result + */ +/*! + * Return a function that will copy properties from + * one object to another excluding any originally + * listed. Returned function will create a new `{}`. + * + * @param {String} excluded properties ... + * @return {Function} + */ +/*! + * Returns true if the argument is a primitive. + * + * This intentionally returns true for all objects that can be compared by reference, + * including functions and symbols. + * + * @param {Mixed} value + * @return {Boolean} result + */ +/*! + * Set the result of the equality into the MemoizeMap + * + * @param {Mixed} leftHandOperand + * @param {Mixed} rightHandOperand + * @param {MemoizeMap} memoizeMap + * @param {Boolean} result +*/ +/*! + * Should interface + */ +/*! + * Simple equality for flat iterable objects such as Arrays, TypedArrays or Node.js buffers. + * + * @param {Iterable} leftHandOperand + * @param {Iterable} rightHandOperand + * @param {Object} [options] (Optional) + * @return {Boolean} result + */ +/*! + * Simple equality for generator objects such as those returned by generator functions. + * + * @param {Iterable} leftHandOperand + * @param {Iterable} rightHandOperand + * @param {Object} [options] (Optional) + * @return {Boolean} result + */ +/*! + * Statically set name + */ +/*! + * The main logic of the `deepEqual` function. + * + * @param {Mixed} leftHandOperand + * @param {Mixed} rightHandOperand + * @param {Object} [options] (optional) Additional options + * @param {Array} [options.comparator] (optional) Override default algorithm, determining custom equality. + * @param {Array} [options.memoize] (optional) Provide a custom memoization object which will cache the results of + complex objects for a speed boost. By passing `false` you can disable memoization, but this will cause circular + references to blow the stack. + * @return {Boolean} equal match +*/ +/*! + * Utility Functions + */ +/*! + * Utils for plugins (not exported) + */ +/*! + * actual utility + */ +/*! + * add Method + */ +/*! + * add Property + */ +/*! + * addLengthGuard util + */ +/*! + * assertion-error + * Copyright(c) 2013 Jake Luer + * MIT Licensed + */ +/*! + * chai + * Copyright(c) 2011 Jake Luer + * MIT Licensed + */ +/*! + * chai + * Copyright(c) 2011-2014 Jake Luer + * MIT Licensed + */ +/*! + * chai + * http://chaijs.com + * Copyright(c) 2011-2014 Jake Luer + * MIT Licensed + */ +/*! + * deep-eql + * Copyright(c) 2013 Jake Luer + * MIT Licensed + */ +/*! + * expectTypes utility + */ +/*! + * getOperator method + */ +/*! + * isNaN method + */ +/*! + * isProxyEnabled helper + */ +/*! + * message utility + */ +/*! + * overwrite Method + */ +/*! + * overwrite Property + */ +/*! + * test utility + */ +/*! + * type utility + */ diff --git a/packages/platform/test/browser/esbuild.cjs b/packages/platform/test/browser/esbuild.cjs new file mode 100755 index 000000000..4c0da2598 --- /dev/null +++ b/packages/platform/test/browser/esbuild.cjs @@ -0,0 +1,9 @@ +#! /usr/bin/env node +const { build } = require("esbuild"); + +build({ + entryPoints: [__dirname + '/src/base.test.cjs'], + outdir: __dirname, + bundle: true, + format: 'iife', +}) \ No newline at end of file diff --git a/packages/platform/test/browser/esbuild.mjs b/packages/platform/test/browser/esbuild.mjs new file mode 100755 index 000000000..e9a58cd25 --- /dev/null +++ b/packages/platform/test/browser/esbuild.mjs @@ -0,0 +1,12 @@ +#! /usr/bin/env node +import { build } from "esbuild"; +import { getDirname } from "cross-dirname"; +const crossDirname = getDirname(); + +await build({ + entryPoints: [crossDirname + '/src/base.test.mjs'], + outdir: crossDirname, + bundle: true, + target: ['chrome58', 'firefox57', 'safari11', 'edge16'], + format: 'iife', +}) \ No newline at end of file diff --git a/packages/platform/test/browser/index.html b/packages/platform/test/browser/index.html new file mode 100644 index 000000000..989319641 --- /dev/null +++ b/packages/platform/test/browser/index.html @@ -0,0 +1,23 @@ + + + + + Mocha Tests + + + + +
+ + + + + + + + + diff --git a/packages/platform/test/browser/src/base.test.cjs b/packages/platform/test/browser/src/base.test.cjs new file mode 100644 index 000000000..851a66dc3 --- /dev/null +++ b/packages/platform/test/browser/src/base.test.cjs @@ -0,0 +1,19 @@ +const { getDirname, getFilename } = require('../../../dist/cjs/index.cjs'); +const { expect } = require('chai'); + +describe('Browser CJS', () => { + it('getDirname() should be a string', function () { + console.debug("\tgetDirname() \t->", getDirname()); + expect(getDirname()).to.be.a("string"); + }); + + it('getFilename() should be a string', function () { + console.debug("\tgetFilename() \t->", getFilename()); + expect(getFilename()).to.be.a("string"); + }); + + it('getFilename() should end with "base.test.js"', function () { + expect(getFilename().endsWith('base.test.js')).to.be.true; + }); + +}); diff --git a/packages/platform/test/browser/src/base.test.mjs b/packages/platform/test/browser/src/base.test.mjs new file mode 100644 index 000000000..d6382830f --- /dev/null +++ b/packages/platform/test/browser/src/base.test.mjs @@ -0,0 +1,19 @@ +import { getDirname, getFilename } from '../../../dist/esm/index.mjs'; +import { expect } from 'chai'; + +describe('Browser ESM', () => { + it('getDirname() should be a string', function () { + console.debug("\tgetDirname() \t->", getDirname()); + expect(getDirname()).to.be.a("string"); + }); + + it('getFilename() should be a string', function () { + console.debug("\tgetFilename() \t->", getFilename()); + expect(getFilename()).to.be.a("string"); + }); + + it('getFilename() should end with "base.test.js"', function () { + expect(getFilename().endsWith('base.test.js')).to.be.true; + }); + +}); diff --git a/packages/platform/test/deno/base.test.mjs b/packages/platform/test/deno/base.test.mjs new file mode 100644 index 000000000..76746046f --- /dev/null +++ b/packages/platform/test/deno/base.test.mjs @@ -0,0 +1,32 @@ +import { dirname as pathDirname, fromFileUrl } from "https://deno.land/std/path/mod.ts"; +import { assertEquals } from "https://deno.land/std/testing/asserts.ts"; +import { getDirname, getFilename } from '../../mod.ts'; + +export const esmFilename = () => { + const __filename = fromFileUrl(import.meta.url); + return __filename; +}; + +export const esmDirname = () => { + return pathDirname(esmFilename()); +}; + +Deno.test("Deno getDirname", () => { + const crossDirname = getDirname(); + const _esmDirname = esmDirname(); + + console.log("Deno"); + console.log(`\tgetDirname() \t-> "${crossDirname}"`); + console.log(`\tesmDirname() \t-> "${_esmDirname}"`); + assertEquals(crossDirname, _esmDirname); +}); + +Deno.test("Deno getFilename", () => { + const crossFilename = getFilename(); + const _esmFilename = esmFilename(); + + console.log("Deno"); + console.log(`\tgetFilename() \t-> "${crossFilename}"`); + console.log(`\tesmFilename() \t-> "${_esmFilename}"`); + assertEquals(crossFilename, _esmFilename); +}); \ No newline at end of file diff --git a/packages/platform/test/gjs/base.test.mjs b/packages/platform/test/gjs/base.test.mjs new file mode 100644 index 000000000..1431b2a41 --- /dev/null +++ b/packages/platform/test/gjs/base.test.mjs @@ -0,0 +1,72 @@ +import GLib from 'gi://GLib'; +import { getDirname, getFilename } from '../../dist/esm/index.mjs'; +import { exit } from 'system'; +const byteArray = imports.byteArray; + +const RED = "\x1b[31m"; +const GREEN = "\x1b[32m"; +const RESET = "\x1b[0m"; + +const crossDirname = getDirname(); +const crossFilename = getFilename(); + +const getOriginalDirname = () => { + const rootDir = crossDirname; + let [res, out, err, status] = GLib.spawn_command_line_sync(`node ${rootDir}/get-original-dirname.js`); + err = err ? byteArray.toString(err) : err; + const __dirname = out ? byteArray.toString(out).trim() : undefined; + if (err) { + console.error(err); + } + return __dirname; +} + +const getOriginalFilename = () => { + return getOriginalDirname() + '/base.test.mjs'; +} + +let passing = 0; +let failed = 0; + +/////////// __dirname /////////// +{ + const __dirname = getOriginalDirname(); + + print("GJS"); + print(`\tgetDirname() \t-> "${crossDirname}"`); + print(`\t__dirname \t-> "${__dirname}"`); + + if (crossDirname === __dirname) { + print(`${GREEN}✔${RESET} getDirname() should return the same string as __dirname\n`) + passing++; + } else { + print(`${RED}failed${RESET}\n`); + failed++; + } +} + +/////////// __filename /////////// +{ + const __filename = getOriginalFilename(); + + print(`\tgetFilename() \t-> "${crossFilename}"`); + print(`\t__filename \t-> "${__filename}"`); + + if (crossFilename === __filename) { + print(`${GREEN}✔${RESET} getFilename() should return the same string as __filename\n`) + passing++; + } else { + print(`${RED}failed${RESET}\n`); + failed++; + } +} + +/////////// REPORT /////////// + +print(`${GREEN}${passing} passing${RESET}`); +print(`${failed > 0 ? RED : RESET}${failed} failed${RESET}`); + + +if(failed > 0) { + exit(1); +} \ No newline at end of file diff --git a/packages/platform/test/gjs/get-original-dirname.js b/packages/platform/test/gjs/get-original-dirname.js new file mode 100644 index 000000000..aba6a4714 --- /dev/null +++ b/packages/platform/test/gjs/get-original-dirname.js @@ -0,0 +1 @@ +console.log(__dirname); \ No newline at end of file diff --git a/packages/platform/test/node/base.test.cjs b/packages/platform/test/node/base.test.cjs new file mode 100644 index 000000000..86cd78626 --- /dev/null +++ b/packages/platform/test/node/base.test.cjs @@ -0,0 +1,16 @@ +const { getDirname, getFilename } = require('../../dist/cjs/index.cjs'); +const { expect } = require('chai'); + +describe('Node.js CJS', () => { + it('getDirname() should return the same string as __dirname', function () { + console.debug("\tgetDirname() \t->", getDirname()); + console.debug("\t__dirname \t->", __dirname); + expect(getDirname()).to.equal(__dirname); + }); + + it('getFilename() should return the same string as __filename', function () { + console.debug("\tgetFilename() \t->", getFilename()); + console.debug("\__filename \t->", __filename); + expect(getFilename()).to.equal(__filename); + }); +}); diff --git a/packages/platform/test/node/base.test.mjs b/packages/platform/test/node/base.test.mjs new file mode 100644 index 000000000..d0a6860e5 --- /dev/null +++ b/packages/platform/test/node/base.test.mjs @@ -0,0 +1,27 @@ +import { getDirname, getFilename } from '../../dist/esm/index.mjs'; +import { fileURLToPath } from "url"; +import { dirname as pathDirname } from "path"; +import { expect } from 'chai'; + +export const esmFilename = () => { + const __filename = fileURLToPath(import.meta.url); + return __filename; +}; + +export const esmDirname = () => { + return pathDirname(esmFilename()); +}; + +describe('Node.js ESM', () => { + it('getDirname() should return the same string as esmDirname', function () { + console.debug("\tgetDirname() \t->", getDirname()); + console.debug("\tesmDirname() \t->", esmDirname()); + expect(getDirname()).to.equal(esmDirname(import.meta)); + }); + + it('getFilename() should return the same string as esmFilename', function () { + console.debug("\tgetFilename() \t->", getFilename()); + console.debug("\tesmFilename() \t->", esmFilename()); + expect(getFilename()).to.equal(esmFilename(import.meta)); + }); +}); diff --git a/packages/platform/tsconfig.esm.json b/packages/platform/tsconfig.esm.json new file mode 100644 index 000000000..0afe90127 --- /dev/null +++ b/packages/platform/tsconfig.esm.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./dist/esm", + "module": "ESNext" + }, + "references": [] + } \ No newline at end of file diff --git a/packages/platform/tsconfig.json b/packages/platform/tsconfig.json new file mode 100644 index 000000000..17f81ebd9 --- /dev/null +++ b/packages/platform/tsconfig.json @@ -0,0 +1,16 @@ + +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "lib": ["ESNext", "DOM"], + "module": "NodeNext", + "target": "ESNext", + "outDir": "./dist/cjs", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "moduleResolution": "node" + }, + "include": ["src"] + } \ No newline at end of file diff --git a/packages/platform/tsconfig.types.json b/packages/platform/tsconfig.types.json new file mode 100644 index 000000000..090717afb --- /dev/null +++ b/packages/platform/tsconfig.types.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.esm.json", + "compilerOptions": { + "outDir": "./dist/types", + "declarationDir": "./dist/types", + "declaration": true, + "emitDeclarationOnly": true, + "noEmit": false + }, + "references": [] + } \ No newline at end of file From ef262b2a2553ab6d7c338c864dae93f970c2a325 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Fri, 22 Jul 2022 19:31:25 +0200 Subject: [PATCH 19/53] chore(platform): Make use of the new platform package --- packages/benchmark/index.ts | 5 ++- packages/benchmark/package.json | 1 + packages/core/index.ts | 2 - packages/core/src/path.ts | 22 ----------- packages/core/src/runtime.ts | 43 ---------------------- packages/orm-browser/main.ts | 2 +- packages/orm-browser/package.json | 1 + packages/platform/package.json | 1 + packages/platform/test/browser/esbuild.cjs | 2 +- packages/platform/test/browser/esbuild.mjs | 4 +- packages/type-compiler/package.json | 1 + packages/type-compiler/tests/utils.ts | 2 +- 12 files changed, 12 insertions(+), 74 deletions(-) delete mode 100644 packages/core/src/path.ts delete mode 100644 packages/core/src/runtime.ts diff --git a/packages/benchmark/index.ts b/packages/benchmark/index.ts index 42ba0b23e..4d844944c 100644 --- a/packages/benchmark/index.ts +++ b/packages/benchmark/index.ts @@ -5,10 +5,11 @@ import { BenchmarkRun } from './model.js'; import * as si from 'systeminformation'; import { execSync } from 'child_process'; import { serialize } from '@deepkit/type'; -import { getDirname } from '@deepkit/core'; +import { getDirname } from '@deepkit/platform'; import fetch from 'node-fetch'; const fg = require('fast-glob'); +const _dirname = getDirname(); const filters = process.argv.slice(2) .map(v => v.startsWith('src/') ? v.substr(4) : v) @@ -57,7 +58,7 @@ async function main() { } } - const resultsPath = join(getDirname(), 'results'); + const resultsPath = join(_dirname, 'results'); mkdirSync(resultsPath, { recursive: true }); const jsonPath = resultsPath + '/' + (new Date().toJSON()) + '.json'; console.log('Write benchmark result to', jsonPath); diff --git a/packages/benchmark/package.json b/packages/benchmark/package.json index 89d2bba23..22921e3e4 100644 --- a/packages/benchmark/package.json +++ b/packages/benchmark/package.json @@ -15,6 +15,7 @@ "author": "Marc J. Schmidt ", "license": "MIT", "dependencies": { + "@deepkit/platform": "1.0.1-alpha.74", "@deepkit/app": "^1.0.1-alpha.0", "@deepkit/broker": "^1.0.1-alpha.0", "@deepkit/bson": "^1.0.1-alpha.0", diff --git a/packages/core/index.ts b/packages/core/index.ts index a986ffd19..0ad67cee3 100644 --- a/packages/core/index.ts +++ b/packages/core/index.ts @@ -15,13 +15,11 @@ export * from './src/iterators.js'; export * from './src/timer.js'; export * from './src/process-locker.js'; export * from './src/network.js'; -export * from './src/path.js'; export * from './src/perf.js'; export * from './src/compiler.js'; export * from './src/string.js'; export * from './src/emitter.js'; export * from './src/reactive.js'; export * from './src/reflection.js'; -export * from './src/runtime.js'; export * from './src/url.js'; export * from './src/array.js'; diff --git a/packages/core/src/path.ts b/packages/core/src/path.ts deleted file mode 100644 index 1fa738c6f..000000000 --- a/packages/core/src/path.ts +++ /dev/null @@ -1,22 +0,0 @@ -const DIRNAME_POSIX_REGEX = /^((?:\.(?![^\/]))|(?:(?:\/?|)(?:[\s\S]*?)))(?:\/+?|)(?:(?:\.{1,2}|[^\/]+?|)(?:\.[^.\/]*|))(?:[\/]*)$/; -const DIRNAME_WIN32_REGEX = /^((?:\.(?![^\\]))|(?:(?:\\?|)(?:[\s\S]*?)))(?:\\+?|)(?:(?:\.{1,2}|[^\\]+?|)(?:\.[^.\\]*|))(?:[\\]*)$/; - -/** - * Replacement for path.dirname from Node.js - * @param path The full path you want to get the dirname from - * @returns The dirname of the path - */ -export const dirname = (path: string) => { - - let dirname = DIRNAME_POSIX_REGEX.exec(path)?.[1]; - - if (!dirname) { - dirname = DIRNAME_WIN32_REGEX.exec(path)?.[1]; - } - - if(!dirname) { - throw new Error(`Can't extract dirname from ${path}`); - } - - return dirname; - } \ No newline at end of file diff --git a/packages/core/src/runtime.ts b/packages/core/src/runtime.ts deleted file mode 100644 index dbda03d64..000000000 --- a/packages/core/src/runtime.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { dirname as pathDirname } from './path.js'; - -const EXTRACT_PATH_REGEX = /(?[^\(\s]+):[0-9]+:[0-9]+/; -const WIN_POSIX_DRIVE_REGEX = /^\/[A-Z]:\/*/; - -/** - * CJS and ESM compatible implementation for __dirname. - * - * Works on - * * Node.js + Windows / Linux / MacOS + ESM / CJS - * - * Contributions for other environments like GJS or Deno are welcome - * - * @returns What `__dirname` would return in CJS - * @see https://github.com/vdegenne/es-dirname/blob/master/es-dirname.js - */ -export const getDirname = () => { - let dirname = ''; - try { - throw new Error(); - } catch (e: any) { - const initiator = e.stack.split('\n').slice(2, 3)[0] - - let path = EXTRACT_PATH_REGEX.exec(initiator)?.groups?.path - - if(!path) { - throw new Error("Can't get __dirname!"); - } - - const protocol = "file://"; - if (path.indexOf(protocol) >= 0) { - path = path.slice(protocol.length); - } - - if (WIN_POSIX_DRIVE_REGEX.test(path)) { - path = path.slice(1).replace(/\//g, '\\'); - } - - dirname = pathDirname(path) - - } - return dirname -} \ No newline at end of file diff --git a/packages/orm-browser/main.ts b/packages/orm-browser/main.ts index 562095b34..0a21547e5 100755 --- a/packages/orm-browser/main.ts +++ b/packages/orm-browser/main.ts @@ -1,7 +1,7 @@ #!/usr/bin/env node import 'reflect-metadata'; -import { getDirname } from "@deepkit/core" +import { getDirname } from "@deepkit/platform" import { FrameworkModule, OrmBrowserController } from '@deepkit/framework'; import { App, AppModule, findParentPath } from '@deepkit/app'; import { Database, DatabaseRegistry } from '@deepkit/orm'; diff --git a/packages/orm-browser/package.json b/packages/orm-browser/package.json index f59619d60..3e5886fa8 100644 --- a/packages/orm-browser/package.json +++ b/packages/orm-browser/package.json @@ -14,6 +14,7 @@ "author": "Marc J. Schmidt ", "license": "MIT", "dependencies": { + "@deepkit/platform": "1.0.1-alpha.74", "@deepkit/app": "^1.0.1-alpha.74", "@deepkit/broker": "^1.0.1-alpha.74", "@deepkit/bson": "^1.0.1-alpha.74", diff --git a/packages/platform/package.json b/packages/platform/package.json index c2c1081fa..879f45f58 100644 --- a/packages/platform/package.json +++ b/packages/platform/package.json @@ -55,6 +55,7 @@ ], "devDependencies": { "chai": "^4.3.6", + "esbuild": "^0.14.49", "mocha": "^10.0.0", "mocha-headless-chrome": "^4.0.0", "typescript": "^4.7.4" diff --git a/packages/platform/test/browser/esbuild.cjs b/packages/platform/test/browser/esbuild.cjs index 4c0da2598..43d666928 100755 --- a/packages/platform/test/browser/esbuild.cjs +++ b/packages/platform/test/browser/esbuild.cjs @@ -6,4 +6,4 @@ build({ outdir: __dirname, bundle: true, format: 'iife', -}) \ No newline at end of file +}); diff --git a/packages/platform/test/browser/esbuild.mjs b/packages/platform/test/browser/esbuild.mjs index e9a58cd25..933f94e1b 100755 --- a/packages/platform/test/browser/esbuild.mjs +++ b/packages/platform/test/browser/esbuild.mjs @@ -1,6 +1,6 @@ #! /usr/bin/env node import { build } from "esbuild"; -import { getDirname } from "cross-dirname"; +import { getDirname } from "../../dist/esm/index.mjs"; const crossDirname = getDirname(); await build({ @@ -9,4 +9,4 @@ await build({ bundle: true, target: ['chrome58', 'firefox57', 'safari11', 'edge16'], format: 'iife', -}) \ No newline at end of file +}); diff --git a/packages/type-compiler/package.json b/packages/type-compiler/package.json index 1b3ecb7bb..e9bcd9341 100644 --- a/packages/type-compiler/package.json +++ b/packages/type-compiler/package.json @@ -30,6 +30,7 @@ "typescript": "~" }, "dependencies": { + "@deepkit/platform": "1.0.1-alpha.74", "@deepkit/core": "^1.0.1-alpha.74", "@deepkit/type-spec": "^1.0.1-alpha.74", "@types/lz-string": "^1.3.34", diff --git a/packages/type-compiler/tests/utils.ts b/packages/type-compiler/tests/utils.ts index 693899026..23ddb4896 100644 --- a/packages/type-compiler/tests/utils.ts +++ b/packages/type-compiler/tests/utils.ts @@ -1,5 +1,5 @@ import * as ts from 'typescript'; -import { getDirname } from "@deepkit/core" +import { getDirname } from "@deepkit/platform" import { createSourceFile, getPreEmitDiagnostics, ScriptTarget, TransformationContext } from 'typescript'; import { createSystem, createVirtualCompilerHost, knownLibFilesForCompilerOptions } from '@typescript/vfs'; import { ReflectionTransformer } from '../src/compiler.js'; From 3e14209da4bd80362d4a54c79b282520ac478b52 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Fri, 22 Jul 2022 19:32:19 +0200 Subject: [PATCH 20/53] chore(github): Add github action workflows for the new platform package --- .github/workflows/platform-browser.yml | 29 +++++++++++++++++++ .github/workflows/platform-deno.yml | 39 ++++++++++++++++++++++++++ .github/workflows/platform-gjs.yml | 29 +++++++++++++++++++ .github/workflows/platform-node.yml | 34 ++++++++++++++++++++++ 4 files changed, 131 insertions(+) create mode 100644 .github/workflows/platform-browser.yml create mode 100644 .github/workflows/platform-deno.yml create mode 100644 .github/workflows/platform-gjs.yml create mode 100644 .github/workflows/platform-node.yml diff --git a/.github/workflows/platform-browser.yml b/.github/workflows/platform-browser.yml new file mode 100644 index 000000000..d5a858601 --- /dev/null +++ b/.github/workflows/platform-browser.yml @@ -0,0 +1,29 @@ +name: Browser +on: + pull_request: + push: + +jobs: + browser: + runs-on: ubuntu-22.04 + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: 16 + - name: Install GJS + run: sudo apt-get --yes install gjs + - name: Install NPM dependencies + run: npm install + - name: Bootstrap + run: npm run bootstrap + - name: Link + run: npm run link + - name: Install compiler + run: npm run install-compiler + - name: Build + run: npm run lerna -- build --scope="@deepkit/platform" + - name: Test + run: npm run lerna -- test:browser --scope="@deepkit/platform" diff --git a/.github/workflows/platform-deno.yml b/.github/workflows/platform-deno.yml new file mode 100644 index 000000000..a7831c8b2 --- /dev/null +++ b/.github/workflows/platform-deno.yml @@ -0,0 +1,39 @@ +name: Deno +on: + pull_request: + push: + +jobs: + build: + strategy: + matrix: + node-version: [ 16.x] + deno-version: [ vx.x.x ] + os: + - macos-latest + - ubuntu-latest + - windows-latest + runs-on: ${{ matrix.os }} + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + - name: Setup Deno + uses: denolib/setup-deno@v2 + with: + deno-version: ${{ matrix.deno-version }} + - name: Install NPM dependencies + run: npm install + - name: Bootstrap + run: npm run bootstrap + - name: Link + run: npm run link + - name: Install compiler + run: npm run install-compiler + - name: Build + run: npm run lerna -- build --scope="@deepkit/platform" + - name: Test + run: npm run lerna -- test:deno --scope="@deepkit/platform" diff --git a/.github/workflows/platform-gjs.yml b/.github/workflows/platform-gjs.yml new file mode 100644 index 000000000..37fcbe311 --- /dev/null +++ b/.github/workflows/platform-gjs.yml @@ -0,0 +1,29 @@ +name: GJS +on: + pull_request: + push: + +jobs: + linux: + runs-on: ubuntu-22.04 + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: 16 + - name: Install GJS + run: sudo apt-get --yes install gjs + - name: Install NPM dependencies + run: npm install + - name: Bootstrap + run: npm run bootstrap + - name: Link + run: npm run link + - name: Install compiler + run: npm run install-compiler + - name: Build + run: npm run lerna -- build --scope="@deepkit/platform" + - name: Test + run: npm run lerna -- test:gjs --scope="@deepkit/platform" diff --git a/.github/workflows/platform-node.yml b/.github/workflows/platform-node.yml new file mode 100644 index 000000000..1e132a840 --- /dev/null +++ b/.github/workflows/platform-node.yml @@ -0,0 +1,34 @@ +name: Node.js +on: + pull_request: + push: + +jobs: + build: + strategy: + matrix: + node-version: [ 16.x, 18.x ] + os: + - macos-latest + - ubuntu-latest + - windows-latest + runs-on: ${{ matrix.os }} + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + - name: Install NPM dependencies + run: npm install + - name: Bootstrap + run: npm run bootstrap + - name: Link + run: npm run link + - name: Install compiler + run: npm run install-compiler + - name: Build + run: npm run lerna -- build --scope="@deepkit/platform" + - name: Test + run: npm run lerna -- test:node --scope="@deepkit/platform" From bf2fa233085f41ae60651c7beaca9950661b6b69 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Fri, 22 Jul 2022 19:41:19 +0200 Subject: [PATCH 21/53] fix(platform): Add platform as dependency --- package.json | 1 + packages/benchmark/package.json | 2 +- packages/framework/package.json | 2 ++ packages/framework/src/debug/http-debug.controller.ts | 2 +- packages/orm-browser/package.json | 2 +- packages/type-compiler/package.json | 2 +- 6 files changed, 7 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 8db373551..917f944d9 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "private": true, "scripts": { "test": "node --max_old_space_size=3048 node_modules/jest/bin/jest.js --forceExit --no-cache", + "lerna": "lerna run", "test:coverage": "node --max_old_space_size=3048 node_modules/jest/bin/jest.js --coverage --forceExit --no-cache", "bootstrap": "lerna bootstrap --no-ci", "bootstrap:ci": "lerna bootstrap --ignore @deepkit/benchmark", diff --git a/packages/benchmark/package.json b/packages/benchmark/package.json index 22921e3e4..6b7e28a12 100644 --- a/packages/benchmark/package.json +++ b/packages/benchmark/package.json @@ -15,7 +15,7 @@ "author": "Marc J. Schmidt ", "license": "MIT", "dependencies": { - "@deepkit/platform": "1.0.1-alpha.74", + "@deepkit/platform": "^1.0.1-alpha.74", "@deepkit/app": "^1.0.1-alpha.0", "@deepkit/broker": "^1.0.1-alpha.0", "@deepkit/bson": "^1.0.1-alpha.0", diff --git a/packages/framework/package.json b/packages/framework/package.json index ae70d54f4..be2cee47b 100644 --- a/packages/framework/package.json +++ b/packages/framework/package.json @@ -24,6 +24,7 @@ "tsc-watch": "rm -rf dist && tsc --watch" }, "peerDependencies": { + "@deepkit/platform": "^1.0.1-alpha.74", "@deepkit/app": "^1.0.1-alpha.13", "@deepkit/broker": "^1.0.1-alpha.13", "@deepkit/bson": "^1.0.1-alpha.13", @@ -69,6 +70,7 @@ "ws": "^7.4.2" }, "devDependencies": { + "@deepkit/platform": "^1.0.1-alpha.74", "@deepkit/app": "^1.0.1-alpha.74", "@deepkit/broker": "^1.0.1-alpha.74", "@deepkit/bson": "^1.0.1-alpha.74", diff --git a/packages/framework/src/debug/http-debug.controller.ts b/packages/framework/src/debug/http-debug.controller.ts index 582991a74..dfdefe812 100644 --- a/packages/framework/src/debug/http-debug.controller.ts +++ b/packages/framework/src/debug/http-debug.controller.ts @@ -8,7 +8,7 @@ * You should have received a copy of the MIT License along with this program. */ -import { getDirname } from "@deepkit/core" +import { getDirname } from "@deepkit/platform" import { registerStaticHttpController } from '@deepkit/http'; import { AppModule, findParentPath } from '@deepkit/app'; diff --git a/packages/orm-browser/package.json b/packages/orm-browser/package.json index 3e5886fa8..a7aa8aa22 100644 --- a/packages/orm-browser/package.json +++ b/packages/orm-browser/package.json @@ -14,7 +14,7 @@ "author": "Marc J. Schmidt ", "license": "MIT", "dependencies": { - "@deepkit/platform": "1.0.1-alpha.74", + "@deepkit/platform": "^1.0.1-alpha.74", "@deepkit/app": "^1.0.1-alpha.74", "@deepkit/broker": "^1.0.1-alpha.74", "@deepkit/bson": "^1.0.1-alpha.74", diff --git a/packages/type-compiler/package.json b/packages/type-compiler/package.json index e9bcd9341..82f72dba4 100644 --- a/packages/type-compiler/package.json +++ b/packages/type-compiler/package.json @@ -30,7 +30,7 @@ "typescript": "~" }, "dependencies": { - "@deepkit/platform": "1.0.1-alpha.74", + "@deepkit/platform": "^1.0.1-alpha.74", "@deepkit/core": "^1.0.1-alpha.74", "@deepkit/type-spec": "^1.0.1-alpha.74", "@types/lz-string": "^1.3.34", From 9d54527c809a332a7b362d51a71a362aae9c4509 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Fri, 22 Jul 2022 19:55:49 +0200 Subject: [PATCH 22/53] chore(github): Use npm ci instead of npm install --- .github/workflows/platform-browser.yml | 2 +- .github/workflows/platform-deno.yml | 2 +- .github/workflows/platform-gjs.yml | 2 +- .github/workflows/platform-node.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/platform-browser.yml b/.github/workflows/platform-browser.yml index d5a858601..6181afd16 100644 --- a/.github/workflows/platform-browser.yml +++ b/.github/workflows/platform-browser.yml @@ -16,7 +16,7 @@ jobs: - name: Install GJS run: sudo apt-get --yes install gjs - name: Install NPM dependencies - run: npm install + run: npm ci - name: Bootstrap run: npm run bootstrap - name: Link diff --git a/.github/workflows/platform-deno.yml b/.github/workflows/platform-deno.yml index a7831c8b2..cbdeebdf8 100644 --- a/.github/workflows/platform-deno.yml +++ b/.github/workflows/platform-deno.yml @@ -26,7 +26,7 @@ jobs: with: deno-version: ${{ matrix.deno-version }} - name: Install NPM dependencies - run: npm install + run: npm ci - name: Bootstrap run: npm run bootstrap - name: Link diff --git a/.github/workflows/platform-gjs.yml b/.github/workflows/platform-gjs.yml index 37fcbe311..2506baabd 100644 --- a/.github/workflows/platform-gjs.yml +++ b/.github/workflows/platform-gjs.yml @@ -16,7 +16,7 @@ jobs: - name: Install GJS run: sudo apt-get --yes install gjs - name: Install NPM dependencies - run: npm install + run: npm ci - name: Bootstrap run: npm run bootstrap - name: Link diff --git a/.github/workflows/platform-node.yml b/.github/workflows/platform-node.yml index 1e132a840..dcdbf651e 100644 --- a/.github/workflows/platform-node.yml +++ b/.github/workflows/platform-node.yml @@ -21,7 +21,7 @@ jobs: with: node-version: ${{ matrix.node-version }} - name: Install NPM dependencies - run: npm install + run: npm ci - name: Bootstrap run: npm run bootstrap - name: Link From 10ac9d538dae995094b2ddd52902e9ff7631454a Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Fri, 22 Jul 2022 19:59:09 +0200 Subject: [PATCH 23/53] chore(github): Use bootstrap:ci instead of bootstrap --- .github/workflows/platform-browser.yml | 2 +- .github/workflows/platform-deno.yml | 2 +- .github/workflows/platform-gjs.yml | 2 +- .github/workflows/platform-node.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/platform-browser.yml b/.github/workflows/platform-browser.yml index 6181afd16..d185ef83c 100644 --- a/.github/workflows/platform-browser.yml +++ b/.github/workflows/platform-browser.yml @@ -18,7 +18,7 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap + run: npm run bootstrap:ci - name: Link run: npm run link - name: Install compiler diff --git a/.github/workflows/platform-deno.yml b/.github/workflows/platform-deno.yml index cbdeebdf8..bc1a59be8 100644 --- a/.github/workflows/platform-deno.yml +++ b/.github/workflows/platform-deno.yml @@ -28,7 +28,7 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap + run: npm run bootstrap:ci - name: Link run: npm run link - name: Install compiler diff --git a/.github/workflows/platform-gjs.yml b/.github/workflows/platform-gjs.yml index 2506baabd..f8c8125ff 100644 --- a/.github/workflows/platform-gjs.yml +++ b/.github/workflows/platform-gjs.yml @@ -18,7 +18,7 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap + run: npm run bootstrap:ci - name: Link run: npm run link - name: Install compiler diff --git a/.github/workflows/platform-node.yml b/.github/workflows/platform-node.yml index dcdbf651e..a849ee5aa 100644 --- a/.github/workflows/platform-node.yml +++ b/.github/workflows/platform-node.yml @@ -23,7 +23,7 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap + run: npm run bootstrap:ci - name: Link run: npm run link - name: Install compiler From c4e495a7965e7d9e6bb375d91afbcb2ec47f3700 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Fri, 22 Jul 2022 20:00:06 +0200 Subject: [PATCH 24/53] chore(github): Update package-lock.json --- package-lock.json | 110 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 82 insertions(+), 28 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9aad0f966..f1800f87e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "madge": "^4.0.0", "npm-local-development": "^0.4.0", "ts-jest": "^27.1.3", - "ts-node": "^10.0.0", + "ts-node": "^10.9.1", "ts-node-dev": "^1.1.1", "typedoc": "^0.23.2", "typescript": "^4.6.2" @@ -608,6 +608,18 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@deepkit/core": { "version": "1.0.1-alpha.13", "resolved": "https://registry.npmjs.org/@deepkit/core/-/core-1.0.1-alpha.13.tgz", @@ -899,9 +911,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", @@ -2762,9 +2774,9 @@ "dev": true }, "node_modules/@tsconfig/node16": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.1.tgz", - "integrity": "sha512-FTgBI767POY/lKNDNbIzgAX6miIDBs6NTCbdlDb8TrWovHsSvaVIZDlTqym29C6UqhzwcJx4CYr+AlrMywA0cA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", "dev": true }, "node_modules/@types/babel__core": { @@ -11556,35 +11568,36 @@ } }, "node_modules/ts-node": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.0.0.tgz", - "integrity": "sha512-ROWeOIUvfFbPZkoDis0L/55Fk+6gFQNZwwKPLinacRl6tsxstTF1DbAcLKkovwnpKMVvOMHP1TIbnwXwtLg1gg==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.1", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", - "source-map-support": "^0.5.17", + "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" }, "bin": { "ts-node": "dist/bin.js", "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", "ts-node-script": "dist/bin-script.js", "ts-node-transpile-only": "dist/bin-transpile.js", "ts-script": "dist/bin-script-deprecated.js" }, - "engines": { - "node": ">=12.0.0" - }, "peerDependencies": { - "@swc/core": ">=1.2.45", - "@swc/wasm": ">=1.2.45", + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", "@types/node": "*", "typescript": ">=2.7" }, @@ -11914,6 +11927,15 @@ "typescript": ">=2.7" } }, + "node_modules/ts-node/node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/tsconfig": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", @@ -12182,6 +12204,12 @@ "uuid": "bin/uuid" } }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, "node_modules/v8-to-istanbul": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", @@ -13117,6 +13145,15 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, "@deepkit/core": { "version": "1.0.1-alpha.13", "resolved": "https://registry.npmjs.org/@deepkit/core/-/core-1.0.1-alpha.13.tgz", @@ -13350,9 +13387,9 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", @@ -14841,9 +14878,9 @@ "dev": true }, "@tsconfig/node16": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.1.tgz", - "integrity": "sha512-FTgBI767POY/lKNDNbIzgAX6miIDBs6NTCbdlDb8TrWovHsSvaVIZDlTqym29C6UqhzwcJx4CYr+AlrMywA0cA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", "dev": true }, "@types/babel__core": { @@ -21644,21 +21681,32 @@ } }, "ts-node": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.0.0.tgz", - "integrity": "sha512-ROWeOIUvfFbPZkoDis0L/55Fk+6gFQNZwwKPLinacRl6tsxstTF1DbAcLKkovwnpKMVvOMHP1TIbnwXwtLg1gg==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "requires": { + "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.1", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", - "source-map-support": "^0.5.17", + "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" + }, + "dependencies": { + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + } } }, "ts-node-dev": { @@ -22098,6 +22146,12 @@ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, "v8-to-istanbul": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", From e406f7ef29ce2287bf023860ed5435ecd8966274 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Fri, 22 Jul 2022 20:08:38 +0200 Subject: [PATCH 25/53] fix(framework): Install @deepkit/platform as a default dependency (not peer or dev) --- packages/framework/package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/framework/package.json b/packages/framework/package.json index be2cee47b..0135c9039 100644 --- a/packages/framework/package.json +++ b/packages/framework/package.json @@ -24,7 +24,6 @@ "tsc-watch": "rm -rf dist && tsc --watch" }, "peerDependencies": { - "@deepkit/platform": "^1.0.1-alpha.74", "@deepkit/app": "^1.0.1-alpha.13", "@deepkit/broker": "^1.0.1-alpha.13", "@deepkit/bson": "^1.0.1-alpha.13", @@ -46,6 +45,7 @@ "@deepkit/workflow": "^1.0.1-alpha.13" }, "dependencies": { + "@deepkit/platform": "^1.0.1-alpha.74", "@deepkit/api-console-module": "^1.0.1-alpha.74", "@deepkit/framework-debug-api": "^1.0.1-alpha.74", "@deepkit/framework-debug-gui": "^1.0.1-alpha.74", @@ -70,7 +70,6 @@ "ws": "^7.4.2" }, "devDependencies": { - "@deepkit/platform": "^1.0.1-alpha.74", "@deepkit/app": "^1.0.1-alpha.74", "@deepkit/broker": "^1.0.1-alpha.74", "@deepkit/bson": "^1.0.1-alpha.74", From 211b68f8054c97ffb2d94d7c02a39c309b18750a Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Fri, 22 Jul 2022 20:15:30 +0200 Subject: [PATCH 26/53] chore(github): Platform tests: Only run bootstrap:ci for @deepkit/platform --- .github/workflows/platform-browser.yml | 2 +- .github/workflows/platform-deno.yml | 2 +- .github/workflows/platform-gjs.yml | 2 +- .github/workflows/platform-node.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/platform-browser.yml b/.github/workflows/platform-browser.yml index d185ef83c..f09735c95 100644 --- a/.github/workflows/platform-browser.yml +++ b/.github/workflows/platform-browser.yml @@ -18,7 +18,7 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap:ci + run: npm run bootstrap:ci -- --scope="@deepkit/platform" - name: Link run: npm run link - name: Install compiler diff --git a/.github/workflows/platform-deno.yml b/.github/workflows/platform-deno.yml index bc1a59be8..e67f4b7a3 100644 --- a/.github/workflows/platform-deno.yml +++ b/.github/workflows/platform-deno.yml @@ -28,7 +28,7 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap:ci + run: npm run bootstrap:ci -- --scope="@deepkit/platform" - name: Link run: npm run link - name: Install compiler diff --git a/.github/workflows/platform-gjs.yml b/.github/workflows/platform-gjs.yml index f8c8125ff..ae556256b 100644 --- a/.github/workflows/platform-gjs.yml +++ b/.github/workflows/platform-gjs.yml @@ -18,7 +18,7 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap:ci + run: npm run bootstrap:ci -- --scope="@deepkit/platform" - name: Link run: npm run link - name: Install compiler diff --git a/.github/workflows/platform-node.yml b/.github/workflows/platform-node.yml index a849ee5aa..765c7f497 100644 --- a/.github/workflows/platform-node.yml +++ b/.github/workflows/platform-node.yml @@ -23,7 +23,7 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap:ci + run: npm run bootstrap:ci -- --scope="@deepkit/platform" - name: Link run: npm run link - name: Install compiler From 7b5ed001773a6d150c4fd3edaa529d6b6a1f037c Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Fri, 22 Jul 2022 20:18:45 +0200 Subject: [PATCH 27/53] chore(github): Platform tests: Also run bootstrap:ci for @deepkit/type-compiler --- .github/workflows/platform-browser.yml | 2 +- .github/workflows/platform-deno.yml | 2 +- .github/workflows/platform-gjs.yml | 2 +- .github/workflows/platform-node.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/platform-browser.yml b/.github/workflows/platform-browser.yml index f09735c95..b6b0527ed 100644 --- a/.github/workflows/platform-browser.yml +++ b/.github/workflows/platform-browser.yml @@ -18,7 +18,7 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap:ci -- --scope="@deepkit/platform" + run: npm run bootstrap:ci -- --scope="@deepkit/platform" --scope="@deepkit/type-compiler" - name: Link run: npm run link - name: Install compiler diff --git a/.github/workflows/platform-deno.yml b/.github/workflows/platform-deno.yml index e67f4b7a3..de9fff04d 100644 --- a/.github/workflows/platform-deno.yml +++ b/.github/workflows/platform-deno.yml @@ -28,7 +28,7 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap:ci -- --scope="@deepkit/platform" + run: npm run bootstrap:ci -- --scope="@deepkit/platform" --scope="@deepkit/type-compiler" - name: Link run: npm run link - name: Install compiler diff --git a/.github/workflows/platform-gjs.yml b/.github/workflows/platform-gjs.yml index ae556256b..fc563eecc 100644 --- a/.github/workflows/platform-gjs.yml +++ b/.github/workflows/platform-gjs.yml @@ -18,7 +18,7 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap:ci -- --scope="@deepkit/platform" + run: npm run bootstrap:ci -- --scope="@deepkit/platform" --scope="@deepkit/type-compiler" - name: Link run: npm run link - name: Install compiler diff --git a/.github/workflows/platform-node.yml b/.github/workflows/platform-node.yml index 765c7f497..63bea72ec 100644 --- a/.github/workflows/platform-node.yml +++ b/.github/workflows/platform-node.yml @@ -23,7 +23,7 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap:ci -- --scope="@deepkit/platform" + run: npm run bootstrap:ci -- --scope="@deepkit/platform" --scope="@deepkit/type-compiler" - name: Link run: npm run link - name: Install compiler From 29fafc5875a2b88da84b5d5bc9257077b13d234f Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Fri, 22 Jul 2022 20:28:25 +0200 Subject: [PATCH 28/53] chore(github): Platform tests: Do not link the packages (platform has no internal dependencies) --- .github/workflows/platform-browser.yml | 12 +++++------- .github/workflows/platform-deno.yml | 10 +++++----- .github/workflows/platform-gjs.yml | 10 +++++----- .github/workflows/platform-node.yml | 12 ++++++------ 4 files changed, 21 insertions(+), 23 deletions(-) diff --git a/.github/workflows/platform-browser.yml b/.github/workflows/platform-browser.yml index b6b0527ed..8001ddd75 100644 --- a/.github/workflows/platform-browser.yml +++ b/.github/workflows/platform-browser.yml @@ -13,16 +13,14 @@ jobs: uses: actions/setup-node@v2 with: node-version: 16 - - name: Install GJS - run: sudo apt-get --yes install gjs - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap:ci -- --scope="@deepkit/platform" --scope="@deepkit/type-compiler" - - name: Link - run: npm run link - - name: Install compiler - run: npm run install-compiler + run: npm run bootstrap:ci -- --scope="@deepkit/platform" + # - name: Link + # run: npm run link + # - name: Install compiler + # run: npm run install-compiler - name: Build run: npm run lerna -- build --scope="@deepkit/platform" - name: Test diff --git a/.github/workflows/platform-deno.yml b/.github/workflows/platform-deno.yml index de9fff04d..eb0185c46 100644 --- a/.github/workflows/platform-deno.yml +++ b/.github/workflows/platform-deno.yml @@ -28,11 +28,11 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap:ci -- --scope="@deepkit/platform" --scope="@deepkit/type-compiler" - - name: Link - run: npm run link - - name: Install compiler - run: npm run install-compiler + run: npm run bootstrap:ci -- --scope="@deepkit/platform" + # - name: Link + # run: npm run link + # - name: Install compiler + # run: npm run install-compiler - name: Build run: npm run lerna -- build --scope="@deepkit/platform" - name: Test diff --git a/.github/workflows/platform-gjs.yml b/.github/workflows/platform-gjs.yml index fc563eecc..cdd7a6106 100644 --- a/.github/workflows/platform-gjs.yml +++ b/.github/workflows/platform-gjs.yml @@ -18,11 +18,11 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap:ci -- --scope="@deepkit/platform" --scope="@deepkit/type-compiler" - - name: Link - run: npm run link - - name: Install compiler - run: npm run install-compiler + run: npm run bootstrap:ci -- --scope="@deepkit/platform" + # - name: Link + # run: npm run link + # - name: Install compiler + # run: npm run install-compiler - name: Build run: npm run lerna -- build --scope="@deepkit/platform" - name: Test diff --git a/.github/workflows/platform-node.yml b/.github/workflows/platform-node.yml index 63bea72ec..6b78f810f 100644 --- a/.github/workflows/platform-node.yml +++ b/.github/workflows/platform-node.yml @@ -7,7 +7,7 @@ jobs: build: strategy: matrix: - node-version: [ 16.x, 18.x ] + node-version: [ 16.x ] os: - macos-latest - ubuntu-latest @@ -23,11 +23,11 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap:ci -- --scope="@deepkit/platform" --scope="@deepkit/type-compiler" - - name: Link - run: npm run link - - name: Install compiler - run: npm run install-compiler + run: npm run bootstrap:ci -- --scope="@deepkit/platform" + # - name: Link + # run: npm run link + # - name: Install compiler + # run: npm run install-compiler - name: Build run: npm run lerna -- build --scope="@deepkit/platform" - name: Test From 64394aba7716d6041e5bccd81a5935c197a98a0e Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Mon, 25 Jul 2022 08:39:34 +0000 Subject: [PATCH 29/53] fix(github): Run build:platform before install-compiler --- .github/workflows/lint.yml | 20 ++++++++++++++++++++ .github/workflows/main.yml | 22 ---------------------- .github/workflows/platform-browser.yml | 14 +++++++------- .github/workflows/platform-deno.yml | 12 ++++++------ .github/workflows/platform-gjs.yml | 12 ++++++------ .github/workflows/platform-node.yml | 12 ++++++------ DEVELOPMENT.md | 1 + package-lock.json | 14 +++++++------- package.json | 3 ++- tsconfig.json | 3 +++ 10 files changed, 58 insertions(+), 55 deletions(-) create mode 100644 .github/workflows/lint.yml diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 000000000..b3dbb22e2 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,20 @@ +name: Lint +on: + pull_request: + push: + +jobs: + browser: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: 16 + - name: npm install + run: npm ci + - name: Check import file extensions + run: npm run lint + npm run lint:ext \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 84cf45982..0cf9a9e95 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -5,28 +5,6 @@ on: push: jobs: - lint: - runs-on: buildjet-2vcpu-ubuntu-2004 - strategy: - matrix: - node-version: [ 16.x ] - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - name: Cache node_modules - uses: actions/cache@v1 - with: - path: "**/node_modules" - key: ${{ runner.os }}-all2-node_modules-${{ hashFiles('**/package-lock.json') }} - - name: npm install - run: npm ci - - name: Check import file extensions - run: npm run lint - npm run lint:ext - unit-tests: runs-on: buildjet-2vcpu-ubuntu-2004 strategy: diff --git a/.github/workflows/platform-browser.yml b/.github/workflows/platform-browser.yml index 8001ddd75..367f89413 100644 --- a/.github/workflows/platform-browser.yml +++ b/.github/workflows/platform-browser.yml @@ -5,7 +5,7 @@ on: jobs: browser: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 @@ -16,12 +16,12 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap:ci -- --scope="@deepkit/platform" - # - name: Link - # run: npm run link - # - name: Install compiler - # run: npm run install-compiler + run: npm run bootstrap:ci + - name: Link + run: npm run link - name: Build - run: npm run lerna -- build --scope="@deepkit/platform" + run: npm run build:platform" + - name: Install compiler + run: npm run install-compiler - name: Test run: npm run lerna -- test:browser --scope="@deepkit/platform" diff --git a/.github/workflows/platform-deno.yml b/.github/workflows/platform-deno.yml index eb0185c46..4747c38da 100644 --- a/.github/workflows/platform-deno.yml +++ b/.github/workflows/platform-deno.yml @@ -28,12 +28,12 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap:ci -- --scope="@deepkit/platform" - # - name: Link - # run: npm run link - # - name: Install compiler - # run: npm run install-compiler + run: npm run bootstrap:ci + - name: Link + run: npm run link - name: Build - run: npm run lerna -- build --scope="@deepkit/platform" + run: npm run build:platform" + - name: Install compiler + run: npm run install-compiler - name: Test run: npm run lerna -- test:deno --scope="@deepkit/platform" diff --git a/.github/workflows/platform-gjs.yml b/.github/workflows/platform-gjs.yml index cdd7a6106..8e4ed766e 100644 --- a/.github/workflows/platform-gjs.yml +++ b/.github/workflows/platform-gjs.yml @@ -18,12 +18,12 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap:ci -- --scope="@deepkit/platform" - # - name: Link - # run: npm run link - # - name: Install compiler - # run: npm run install-compiler + run: npm run bootstrap:ci + - name: Link + run: npm run link - name: Build - run: npm run lerna -- build --scope="@deepkit/platform" + run: npm run build:platform" + - name: Install compiler + run: npm run install-compiler - name: Test run: npm run lerna -- test:gjs --scope="@deepkit/platform" diff --git a/.github/workflows/platform-node.yml b/.github/workflows/platform-node.yml index 6b78f810f..20ce375e9 100644 --- a/.github/workflows/platform-node.yml +++ b/.github/workflows/platform-node.yml @@ -23,12 +23,12 @@ jobs: - name: Install NPM dependencies run: npm ci - name: Bootstrap - run: npm run bootstrap:ci -- --scope="@deepkit/platform" - # - name: Link - # run: npm run link - # - name: Install compiler - # run: npm run install-compiler + run: npm run bootstrap:ci + - name: Link + run: npm run link - name: Build - run: npm run lerna -- build --scope="@deepkit/platform" + run: npm run build:platform" + - name: Install compiler + run: npm run install-compiler - name: Test run: npm run lerna -- test:node --scope="@deepkit/platform" diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 332974eb1..f29eb6f3b 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -13,6 +13,7 @@ cd deepkit-framework npm install npm run bootstrap npm run link +npm run build:platform npm run install-compiler ``` diff --git a/package-lock.json b/package-lock.json index f1800f87e..e33dca343 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "ts-node": "^10.9.1", "ts-node-dev": "^1.1.1", "typedoc": "^0.23.2", - "typescript": "^4.6.2" + "typescript": "^4.7.4" }, "engines": { "node": ">= 14.0.0" @@ -12072,9 +12072,9 @@ } }, "node_modules/typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -22041,9 +22041,9 @@ } }, "typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true }, "uglify-js": { diff --git a/package.json b/package.json index cb9285065..420056fa9 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "bootstrap": "lerna bootstrap --no-ci", "bootstrap:ci": "lerna bootstrap --ignore @deepkit/benchmark", "link": "npm-local-development --no-watcher", + "build:platform": "lerna run build --scope='@deepkit/platform'", "build": "tsc --build tsconfig.json && tsc --build tsconfig.esm.json && lerna run build", "build:esm": "tsc --build tsconfig.esm.json", "tsc": "tsc --build", @@ -42,7 +43,7 @@ "ts-node": "^10.9.1", "ts-node-dev": "^1.1.1", "typedoc": "^0.23.2", - "typescript": "^4.6.2" + "typescript": "^4.7.4" }, "engines": { "node": ">= 14.0.0" diff --git a/tsconfig.json b/tsconfig.json index 9d5a40673..6ec92087b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,9 @@ { "files": [], "references": [ + { + "path": "packages/platform/tsconfig.json" + }, { "path": "packages/core/tsconfig.json" }, From 90077b92418edaffba689f6041cc3734c0fec438 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Mon, 25 Jul 2022 08:45:33 +0000 Subject: [PATCH 30/53] fix(lint): Fix new lint errors --- lint-file-extension.cjs | 2 +- packages/type/tests/serializer.spec.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lint-file-extension.cjs b/lint-file-extension.cjs index 572fdced3..b04d5d23e 100644 --- a/lint-file-extension.cjs +++ b/lint-file-extension.cjs @@ -60,7 +60,7 @@ const getFiles = async (dir, ext, excludes) => { return files; } -search('./packages', /(import|from) ("|')\..*(? { +search('./packages', /(import|from) ("|')\..*(? { if(files.length) { console.error(`Imports without file extension found!`); console.error('\t' + files.join('\n\t')); diff --git a/packages/type/tests/serializer.spec.ts b/packages/type/tests/serializer.spec.ts index 7a657f534..07c79656b 100644 --- a/packages/type/tests/serializer.spec.ts +++ b/packages/type/tests/serializer.spec.ts @@ -26,7 +26,7 @@ import { SignedBinaryBigInt, TypeProperty, TypePropertySignature -} from '../src/reflection/type'; +} from '../src/reflection/type.js'; import { createSerializeFunction, getSerializeFunction, NamingStrategy, serializer } from '../src/serializer.js'; import { cast, deserialize, serialize } from '../src/serializer-facade.js'; import { getClassName } from '@deepkit/core'; From 8c51a099cab1eb2161f3d013ba7efc65726e569a Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Mon, 25 Jul 2022 08:47:20 +0000 Subject: [PATCH 31/53] fix(lint): Fix lint workflow --- .github/workflows/lint.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index b3dbb22e2..af5335094 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -16,5 +16,5 @@ jobs: - name: npm install run: npm ci - name: Check import file extensions - run: npm run lint - npm run lint:ext \ No newline at end of file + run: npm run lint:ext + \ No newline at end of file From 445f4025760e57c3c13164e45b6223404cb030ec Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Mon, 25 Jul 2022 09:54:26 +0000 Subject: [PATCH 32/53] fix(github): Fix workflows --- .github/workflows/platform-browser.yml | 2 +- .github/workflows/platform-deno.yml | 2 +- .github/workflows/platform-gjs.yml | 2 +- .github/workflows/platform-node.yml | 2 +- .gitignore | 1 + packages/platform/test/browser/base.test.js | 4088 ------------------- 6 files changed, 5 insertions(+), 4092 deletions(-) delete mode 100644 packages/platform/test/browser/base.test.js diff --git a/.github/workflows/platform-browser.yml b/.github/workflows/platform-browser.yml index 367f89413..fd987a203 100644 --- a/.github/workflows/platform-browser.yml +++ b/.github/workflows/platform-browser.yml @@ -20,7 +20,7 @@ jobs: - name: Link run: npm run link - name: Build - run: npm run build:platform" + run: npm run build:platform - name: Install compiler run: npm run install-compiler - name: Test diff --git a/.github/workflows/platform-deno.yml b/.github/workflows/platform-deno.yml index 4747c38da..b3d0296ab 100644 --- a/.github/workflows/platform-deno.yml +++ b/.github/workflows/platform-deno.yml @@ -32,7 +32,7 @@ jobs: - name: Link run: npm run link - name: Build - run: npm run build:platform" + run: npm run build:platform - name: Install compiler run: npm run install-compiler - name: Test diff --git a/.github/workflows/platform-gjs.yml b/.github/workflows/platform-gjs.yml index 8e4ed766e..4cbeaa3fc 100644 --- a/.github/workflows/platform-gjs.yml +++ b/.github/workflows/platform-gjs.yml @@ -22,7 +22,7 @@ jobs: - name: Link run: npm run link - name: Build - run: npm run build:platform" + run: npm run build:platform - name: Install compiler run: npm run install-compiler - name: Test diff --git a/.github/workflows/platform-node.yml b/.github/workflows/platform-node.yml index 20ce375e9..e91828ce1 100644 --- a/.github/workflows/platform-node.yml +++ b/.github/workflows/platform-node.yml @@ -27,7 +27,7 @@ jobs: - name: Link run: npm run link - name: Build - run: npm run build:platform" + run: npm run build:platform - name: Install compiler run: npm run install-compiler - name: Test diff --git a/.gitignore b/.gitignore index 7126bb796..5bc0ff3ab 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ packages/benchmark/results packages/example-app/var/debug packages/example-app/migrations .vs +packages/platform/test/browser/base.test.js \ No newline at end of file diff --git a/packages/platform/test/browser/base.test.js b/packages/platform/test/browser/base.test.js deleted file mode 100644 index 1e56b579a..000000000 --- a/packages/platform/test/browser/base.test.js +++ /dev/null @@ -1,4088 +0,0 @@ -"use strict"; -(() => { - var __getOwnPropNames = Object.getOwnPropertyNames; - var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - }; - - // dist/cjs/index.cjs - var require_cjs = __commonJS({ - "dist/cjs/index.cjs"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.getFilename = exports.getDirname = void 0; - var DIRNAME_POSIX_REGEX = /^((?:\.(?![^\/]))|(?:(?:\/?|)(?:[\s\S]*?)))(?:\/+?|)(?:(?:\.{1,2}|[^\/]+?|)(?:\.[^.\/]*|))(?:[\/]*)$/; - var DIRNAME_WIN32_REGEX = /^((?:\.(?![^\\]))|(?:(?:\\?|)(?:[\s\S]*?)))(?:\\+?|)(?:(?:\.{1,2}|[^\\]+?|)(?:\.[^.\\]*|))(?:[\\]*)$/; - var EXTRACT_PATH_REGEX = /@?(?[file:\/\/]?[^\(\s]+):[0-9]+:[0-9]+/; - var WIN_POSIX_DRIVE_REGEX = /^\/[A-Z]:\/*/; - var pathDirname = (path) => { - let dirname = DIRNAME_POSIX_REGEX.exec(path)?.[1]; - if (!dirname) { - dirname = DIRNAME_WIN32_REGEX.exec(path)?.[1]; - } - if (!dirname) { - throw new Error(`Can't extract dirname from ${path}`); - } - return dirname; - }; - var getPathFromErrorStack = () => { - let path = ""; - const stack = new Error().stack; - if (!stack) { - console.warn("Error has no stack!"); - return path; - } - let initiator = stack.split("\n").slice(4, 5)[0]; - if (!initiator) { - initiator = stack.split("\n").slice(3, 4)[0]; - } - if (initiator) { - path = EXTRACT_PATH_REGEX.exec(initiator)?.groups?.path || ""; - } - if (!initiator || !path) { - console.warn("Can't get path from error stack!"); - } - return path; - }; - var getPath = () => { - let path = getPathFromErrorStack(); - const protocol = "file://"; - if (path.indexOf(protocol) >= 0) { - path = path.slice(protocol.length); - } - if (WIN_POSIX_DRIVE_REGEX.test(path)) { - path = path.slice(1).replace(/\//g, "\\"); - } - return path; - }; - var getDirname = () => { - let path = getPath(); - const dirname = pathDirname(path); - return dirname; - }; - exports.getDirname = getDirname; - var getFilename = () => { - let filename = getPath(); - return filename; - }; - exports.getFilename = getFilename; - } - }); - - // node_modules/assertion-error/index.js - var require_assertion_error = __commonJS({ - "node_modules/assertion-error/index.js"(exports, module) { - function exclude() { - var excludes = [].slice.call(arguments); - function excludeProps(res, obj) { - Object.keys(obj).forEach(function(key) { - if (!~excludes.indexOf(key)) - res[key] = obj[key]; - }); - } - return function extendExclude() { - var args = [].slice.call(arguments), i = 0, res = {}; - for (; i < args.length; i++) { - excludeProps(res, args[i]); - } - return res; - }; - } - module.exports = AssertionError; - function AssertionError(message, _props, ssf) { - var extend = exclude("name", "message", "stack", "constructor", "toJSON"), props = extend(_props || {}); - this.message = message || "Unspecified AssertionError"; - this.showDiff = false; - for (var key in props) { - this[key] = props[key]; - } - ssf = ssf || AssertionError; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, ssf); - } else { - try { - throw new Error(); - } catch (e) { - this.stack = e.stack; - } - } - } - AssertionError.prototype = Object.create(Error.prototype); - AssertionError.prototype.name = "AssertionError"; - AssertionError.prototype.constructor = AssertionError; - AssertionError.prototype.toJSON = function(stack) { - var extend = exclude("constructor", "toJSON", "stack"), props = extend({ name: this.name }, this); - if (false !== stack && this.stack) { - props.stack = this.stack; - } - return props; - }; - } - }); - - // node_modules/pathval/index.js - var require_pathval = __commonJS({ - "node_modules/pathval/index.js"(exports, module) { - "use strict"; - function hasProperty(obj, name) { - if (typeof obj === "undefined" || obj === null) { - return false; - } - return name in Object(obj); - } - function parsePath(path) { - var str = path.replace(/([^\\])\[/g, "$1.["); - var parts = str.match(/(\\\.|[^.]+?)+/g); - return parts.map(function mapMatches(value) { - if (value === "constructor" || value === "__proto__" || value === "prototype") { - return {}; - } - var regexp = /^\[(\d+)\]$/; - var mArr = regexp.exec(value); - var parsed = null; - if (mArr) { - parsed = { i: parseFloat(mArr[1]) }; - } else { - parsed = { p: value.replace(/\\([.[\]])/g, "$1") }; - } - return parsed; - }); - } - function internalGetPathValue(obj, parsed, pathDepth) { - var temporaryValue = obj; - var res = null; - pathDepth = typeof pathDepth === "undefined" ? parsed.length : pathDepth; - for (var i = 0; i < pathDepth; i++) { - var part = parsed[i]; - if (temporaryValue) { - if (typeof part.p === "undefined") { - temporaryValue = temporaryValue[part.i]; - } else { - temporaryValue = temporaryValue[part.p]; - } - if (i === pathDepth - 1) { - res = temporaryValue; - } - } - } - return res; - } - function internalSetPathValue(obj, val, parsed) { - var tempObj = obj; - var pathDepth = parsed.length; - var part = null; - for (var i = 0; i < pathDepth; i++) { - var propName = null; - var propVal = null; - part = parsed[i]; - if (i === pathDepth - 1) { - propName = typeof part.p === "undefined" ? part.i : part.p; - tempObj[propName] = val; - } else if (typeof part.p !== "undefined" && tempObj[part.p]) { - tempObj = tempObj[part.p]; - } else if (typeof part.i !== "undefined" && tempObj[part.i]) { - tempObj = tempObj[part.i]; - } else { - var next = parsed[i + 1]; - propName = typeof part.p === "undefined" ? part.i : part.p; - propVal = typeof next.p === "undefined" ? [] : {}; - tempObj[propName] = propVal; - tempObj = tempObj[propName]; - } - } - } - function getPathInfo(obj, path) { - var parsed = parsePath(path); - var last = parsed[parsed.length - 1]; - var info = { - parent: parsed.length > 1 ? internalGetPathValue(obj, parsed, parsed.length - 1) : obj, - name: last.p || last.i, - value: internalGetPathValue(obj, parsed) - }; - info.exists = hasProperty(info.parent, info.name); - return info; - } - function getPathValue(obj, path) { - var info = getPathInfo(obj, path); - return info.value; - } - function setPathValue(obj, path, val) { - var parsed = parsePath(path); - internalSetPathValue(obj, val, parsed); - return obj; - } - module.exports = { - hasProperty, - getPathInfo, - getPathValue, - setPathValue - }; - } - }); - - // node_modules/chai/lib/chai/utils/flag.js - var require_flag = __commonJS({ - "node_modules/chai/lib/chai/utils/flag.js"(exports, module) { - module.exports = function flag(obj, key, value) { - var flags = obj.__flags || (obj.__flags = /* @__PURE__ */ Object.create(null)); - if (arguments.length === 3) { - flags[key] = value; - } else { - return flags[key]; - } - }; - } - }); - - // node_modules/chai/lib/chai/utils/test.js - var require_test = __commonJS({ - "node_modules/chai/lib/chai/utils/test.js"(exports, module) { - var flag = require_flag(); - module.exports = function test(obj, args) { - var negate = flag(obj, "negate"), expr = args[0]; - return negate ? !expr : expr; - }; - } - }); - - // node_modules/type-detect/type-detect.js - var require_type_detect = __commonJS({ - "node_modules/type-detect/type-detect.js"(exports, module) { - (function(global2, factory) { - typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : global2.typeDetect = factory(); - })(exports, function() { - "use strict"; - var promiseExists = typeof Promise === "function"; - var globalObject = typeof self === "object" ? self : global; - var symbolExists = typeof Symbol !== "undefined"; - var mapExists = typeof Map !== "undefined"; - var setExists = typeof Set !== "undefined"; - var weakMapExists = typeof WeakMap !== "undefined"; - var weakSetExists = typeof WeakSet !== "undefined"; - var dataViewExists = typeof DataView !== "undefined"; - var symbolIteratorExists = symbolExists && typeof Symbol.iterator !== "undefined"; - var symbolToStringTagExists = symbolExists && typeof Symbol.toStringTag !== "undefined"; - var setEntriesExists = setExists && typeof Set.prototype.entries === "function"; - var mapEntriesExists = mapExists && typeof Map.prototype.entries === "function"; - var setIteratorPrototype = setEntriesExists && Object.getPrototypeOf((/* @__PURE__ */ new Set()).entries()); - var mapIteratorPrototype = mapEntriesExists && Object.getPrototypeOf((/* @__PURE__ */ new Map()).entries()); - var arrayIteratorExists = symbolIteratorExists && typeof Array.prototype[Symbol.iterator] === "function"; - var arrayIteratorPrototype = arrayIteratorExists && Object.getPrototypeOf([][Symbol.iterator]()); - var stringIteratorExists = symbolIteratorExists && typeof String.prototype[Symbol.iterator] === "function"; - var stringIteratorPrototype = stringIteratorExists && Object.getPrototypeOf(""[Symbol.iterator]()); - var toStringLeftSliceLength = 8; - var toStringRightSliceLength = -1; - function typeDetect(obj) { - var typeofObj = typeof obj; - if (typeofObj !== "object") { - return typeofObj; - } - if (obj === null) { - return "null"; - } - if (obj === globalObject) { - return "global"; - } - if (Array.isArray(obj) && (symbolToStringTagExists === false || !(Symbol.toStringTag in obj))) { - return "Array"; - } - if (typeof window === "object" && window !== null) { - if (typeof window.location === "object" && obj === window.location) { - return "Location"; - } - if (typeof window.document === "object" && obj === window.document) { - return "Document"; - } - if (typeof window.navigator === "object") { - if (typeof window.navigator.mimeTypes === "object" && obj === window.navigator.mimeTypes) { - return "MimeTypeArray"; - } - if (typeof window.navigator.plugins === "object" && obj === window.navigator.plugins) { - return "PluginArray"; - } - } - if ((typeof window.HTMLElement === "function" || typeof window.HTMLElement === "object") && obj instanceof window.HTMLElement) { - if (obj.tagName === "BLOCKQUOTE") { - return "HTMLQuoteElement"; - } - if (obj.tagName === "TD") { - return "HTMLTableDataCellElement"; - } - if (obj.tagName === "TH") { - return "HTMLTableHeaderCellElement"; - } - } - } - var stringTag = symbolToStringTagExists && obj[Symbol.toStringTag]; - if (typeof stringTag === "string") { - return stringTag; - } - var objPrototype = Object.getPrototypeOf(obj); - if (objPrototype === RegExp.prototype) { - return "RegExp"; - } - if (objPrototype === Date.prototype) { - return "Date"; - } - if (promiseExists && objPrototype === Promise.prototype) { - return "Promise"; - } - if (setExists && objPrototype === Set.prototype) { - return "Set"; - } - if (mapExists && objPrototype === Map.prototype) { - return "Map"; - } - if (weakSetExists && objPrototype === WeakSet.prototype) { - return "WeakSet"; - } - if (weakMapExists && objPrototype === WeakMap.prototype) { - return "WeakMap"; - } - if (dataViewExists && objPrototype === DataView.prototype) { - return "DataView"; - } - if (mapExists && objPrototype === mapIteratorPrototype) { - return "Map Iterator"; - } - if (setExists && objPrototype === setIteratorPrototype) { - return "Set Iterator"; - } - if (arrayIteratorExists && objPrototype === arrayIteratorPrototype) { - return "Array Iterator"; - } - if (stringIteratorExists && objPrototype === stringIteratorPrototype) { - return "String Iterator"; - } - if (objPrototype === null) { - return "Object"; - } - return Object.prototype.toString.call(obj).slice(toStringLeftSliceLength, toStringRightSliceLength); - } - return typeDetect; - }); - } - }); - - // node_modules/chai/lib/chai/utils/expectTypes.js - var require_expectTypes = __commonJS({ - "node_modules/chai/lib/chai/utils/expectTypes.js"(exports, module) { - var AssertionError = require_assertion_error(); - var flag = require_flag(); - var type = require_type_detect(); - module.exports = function expectTypes(obj, types) { - var flagMsg = flag(obj, "message"); - var ssfi = flag(obj, "ssfi"); - flagMsg = flagMsg ? flagMsg + ": " : ""; - obj = flag(obj, "object"); - types = types.map(function(t) { - return t.toLowerCase(); - }); - types.sort(); - var str = types.map(function(t, index) { - var art = ~["a", "e", "i", "o", "u"].indexOf(t.charAt(0)) ? "an" : "a"; - var or = types.length > 1 && index === types.length - 1 ? "or " : ""; - return or + art + " " + t; - }).join(", "); - var objType = type(obj).toLowerCase(); - if (!types.some(function(expected) { - return objType === expected; - })) { - throw new AssertionError(flagMsg + "object tested must be " + str + ", but " + objType + " given", void 0, ssfi); - } - }; - } - }); - - // node_modules/chai/lib/chai/utils/getActual.js - var require_getActual = __commonJS({ - "node_modules/chai/lib/chai/utils/getActual.js"(exports, module) { - module.exports = function getActual(obj, args) { - return args.length > 4 ? args[4] : obj._obj; - }; - } - }); - - // node_modules/get-func-name/index.js - var require_get_func_name = __commonJS({ - "node_modules/get-func-name/index.js"(exports, module) { - "use strict"; - var toString = Function.prototype.toString; - var functionNameMatch = /\s*function(?:\s|\s*\/\*[^(?:*\/)]+\*\/\s*)*([^\s\(\/]+)/; - function getFuncName(aFunc) { - if (typeof aFunc !== "function") { - return null; - } - var name = ""; - if (typeof Function.prototype.name === "undefined" && typeof aFunc.name === "undefined") { - var match = toString.call(aFunc).match(functionNameMatch); - if (match) { - name = match[1]; - } - } else { - name = aFunc.name; - } - return name; - } - module.exports = getFuncName; - } - }); - - // (disabled):util - var require_util = __commonJS({ - "(disabled):util"() { - } - }); - - // node_modules/loupe/loupe.js - var require_loupe = __commonJS({ - "node_modules/loupe/loupe.js"(exports, module) { - (function(global2, factory) { - typeof exports === "object" && typeof module !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.loupe = {})); - })(exports, function(exports2) { - "use strict"; - function _typeof(obj) { - "@babel/helpers - typeof"; - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function(obj2) { - return typeof obj2; - }; - } else { - _typeof = function(obj2) { - return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; - }; - } - return _typeof(obj); - } - function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); - } - function _arrayWithHoles(arr) { - if (Array.isArray(arr)) - return arr; - } - function _iterableToArrayLimit(arr, i) { - if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) - return; - var _arr = []; - var _n = true; - var _d = false; - var _e = void 0; - try { - for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - if (i && _arr.length === i) - break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"] != null) - _i["return"](); - } finally { - if (_d) - throw _e; - } - } - return _arr; - } - function _unsupportedIterableToArray(o, minLen) { - if (!o) - return; - if (typeof o === "string") - return _arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) - n = o.constructor.name; - if (n === "Map" || n === "Set") - return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) - return _arrayLikeToArray(o, minLen); - } - function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) - len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) - arr2[i] = arr[i]; - return arr2; - } - function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - var ansiColors = { - bold: ["1", "22"], - dim: ["2", "22"], - italic: ["3", "23"], - underline: ["4", "24"], - inverse: ["7", "27"], - hidden: ["8", "28"], - strike: ["9", "29"], - black: ["30", "39"], - red: ["31", "39"], - green: ["32", "39"], - yellow: ["33", "39"], - blue: ["34", "39"], - magenta: ["35", "39"], - cyan: ["36", "39"], - white: ["37", "39"], - brightblack: ["30;1", "39"], - brightred: ["31;1", "39"], - brightgreen: ["32;1", "39"], - brightyellow: ["33;1", "39"], - brightblue: ["34;1", "39"], - brightmagenta: ["35;1", "39"], - brightcyan: ["36;1", "39"], - brightwhite: ["37;1", "39"], - grey: ["90", "39"] - }; - var styles = { - special: "cyan", - number: "yellow", - bigint: "yellow", - boolean: "yellow", - undefined: "grey", - null: "bold", - string: "green", - symbol: "green", - date: "magenta", - regexp: "red" - }; - var truncator = "\u2026"; - function colorise(value, styleType) { - var color = ansiColors[styles[styleType]] || ansiColors[styleType]; - if (!color) { - return String(value); - } - return "\x1B[".concat(color[0], "m").concat(String(value), "\x1B[").concat(color[1], "m"); - } - function normaliseOptions() { - var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _ref$showHidden = _ref.showHidden, showHidden = _ref$showHidden === void 0 ? false : _ref$showHidden, _ref$depth = _ref.depth, depth = _ref$depth === void 0 ? 2 : _ref$depth, _ref$colors = _ref.colors, colors = _ref$colors === void 0 ? false : _ref$colors, _ref$customInspect = _ref.customInspect, customInspect = _ref$customInspect === void 0 ? true : _ref$customInspect, _ref$showProxy = _ref.showProxy, showProxy = _ref$showProxy === void 0 ? false : _ref$showProxy, _ref$maxArrayLength = _ref.maxArrayLength, maxArrayLength = _ref$maxArrayLength === void 0 ? Infinity : _ref$maxArrayLength, _ref$breakLength = _ref.breakLength, breakLength = _ref$breakLength === void 0 ? Infinity : _ref$breakLength, _ref$seen = _ref.seen, seen = _ref$seen === void 0 ? [] : _ref$seen, _ref$truncate = _ref.truncate, truncate2 = _ref$truncate === void 0 ? Infinity : _ref$truncate, _ref$stylize = _ref.stylize, stylize = _ref$stylize === void 0 ? String : _ref$stylize; - var options = { - showHidden: Boolean(showHidden), - depth: Number(depth), - colors: Boolean(colors), - customInspect: Boolean(customInspect), - showProxy: Boolean(showProxy), - maxArrayLength: Number(maxArrayLength), - breakLength: Number(breakLength), - truncate: Number(truncate2), - seen, - stylize - }; - if (options.colors) { - options.stylize = colorise; - } - return options; - } - function truncate(string, length) { - var tail = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : truncator; - string = String(string); - var tailLength = tail.length; - var stringLength = string.length; - if (tailLength > length && stringLength > tailLength) { - return tail; - } - if (stringLength > length && stringLength > tailLength) { - return "".concat(string.slice(0, length - tailLength)).concat(tail); - } - return string; - } - function inspectList(list, options, inspectItem) { - var separator = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : ", "; - inspectItem = inspectItem || options.inspect; - var size = list.length; - if (size === 0) - return ""; - var originalLength = options.truncate; - var output = ""; - var peek = ""; - var truncated = ""; - for (var i = 0; i < size; i += 1) { - var last = i + 1 === list.length; - var secondToLast = i + 2 === list.length; - truncated = "".concat(truncator, "(").concat(list.length - i, ")"); - var value = list[i]; - options.truncate = originalLength - output.length - (last ? 0 : separator.length); - var string = peek || inspectItem(value, options) + (last ? "" : separator); - var nextLength = output.length + string.length; - var truncatedLength = nextLength + truncated.length; - if (last && nextLength > originalLength && output.length + truncated.length <= originalLength) { - break; - } - if (!last && !secondToLast && truncatedLength > originalLength) { - break; - } - peek = last ? "" : inspectItem(list[i + 1], options) + (secondToLast ? "" : separator); - if (!last && secondToLast && truncatedLength > originalLength && nextLength + peek.length > originalLength) { - break; - } - output += string; - if (!last && !secondToLast && nextLength + peek.length >= originalLength) { - truncated = "".concat(truncator, "(").concat(list.length - i - 1, ")"); - break; - } - truncated = ""; - } - return "".concat(output).concat(truncated); - } - function quoteComplexKey(key) { - if (key.match(/^[a-zA-Z_][a-zA-Z_0-9]*$/)) { - return key; - } - return JSON.stringify(key).replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"); - } - function inspectProperty(_ref2, options) { - var _ref3 = _slicedToArray(_ref2, 2), key = _ref3[0], value = _ref3[1]; - options.truncate -= 2; - if (typeof key === "string") { - key = quoteComplexKey(key); - } else if (typeof key !== "number") { - key = "[".concat(options.inspect(key, options), "]"); - } - options.truncate -= key.length; - value = options.inspect(value, options); - return "".concat(key, ": ").concat(value); - } - function inspectArray(array, options) { - var nonIndexProperties = Object.keys(array).slice(array.length); - if (!array.length && !nonIndexProperties.length) - return "[]"; - options.truncate -= 4; - var listContents = inspectList(array, options); - options.truncate -= listContents.length; - var propertyContents = ""; - if (nonIndexProperties.length) { - propertyContents = inspectList(nonIndexProperties.map(function(key) { - return [key, array[key]]; - }), options, inspectProperty); - } - return "[ ".concat(listContents).concat(propertyContents ? ", ".concat(propertyContents) : "", " ]"); - } - var toString = Function.prototype.toString; - var functionNameMatch = /\s*function(?:\s|\s*\/\*[^(?:*\/)]+\*\/\s*)*([^\s\(\/]+)/; - function getFuncName(aFunc) { - if (typeof aFunc !== "function") { - return null; - } - var name = ""; - if (typeof Function.prototype.name === "undefined" && typeof aFunc.name === "undefined") { - var match = toString.call(aFunc).match(functionNameMatch); - if (match) { - name = match[1]; - } - } else { - name = aFunc.name; - } - return name; - } - var getFuncName_1 = getFuncName; - var getArrayName = function getArrayName2(array) { - if (typeof Buffer === "function" && array instanceof Buffer) { - return "Buffer"; - } - if (array[Symbol.toStringTag]) { - return array[Symbol.toStringTag]; - } - return getFuncName_1(array.constructor); - }; - function inspectTypedArray(array, options) { - var name = getArrayName(array); - options.truncate -= name.length + 4; - var nonIndexProperties = Object.keys(array).slice(array.length); - if (!array.length && !nonIndexProperties.length) - return "".concat(name, "[]"); - var output = ""; - for (var i = 0; i < array.length; i++) { - var string = "".concat(options.stylize(truncate(array[i], options.truncate), "number")).concat(i === array.length - 1 ? "" : ", "); - options.truncate -= string.length; - if (array[i] !== array.length && options.truncate <= 3) { - output += "".concat(truncator, "(").concat(array.length - array[i] + 1, ")"); - break; - } - output += string; - } - var propertyContents = ""; - if (nonIndexProperties.length) { - propertyContents = inspectList(nonIndexProperties.map(function(key) { - return [key, array[key]]; - }), options, inspectProperty); - } - return "".concat(name, "[ ").concat(output).concat(propertyContents ? ", ".concat(propertyContents) : "", " ]"); - } - function inspectDate(dateObject, options) { - var split = dateObject.toJSON().split("T"); - var date = split[0]; - return options.stylize("".concat(date, "T").concat(truncate(split[1], options.truncate - date.length - 1)), "date"); - } - function inspectFunction(func, options) { - var name = getFuncName_1(func); - if (!name) { - return options.stylize("[Function]", "special"); - } - return options.stylize("[Function ".concat(truncate(name, options.truncate - 11), "]"), "special"); - } - function inspectMapEntry(_ref, options) { - var _ref2 = _slicedToArray(_ref, 2), key = _ref2[0], value = _ref2[1]; - options.truncate -= 4; - key = options.inspect(key, options); - options.truncate -= key.length; - value = options.inspect(value, options); - return "".concat(key, " => ").concat(value); - } - function mapToEntries(map) { - var entries = []; - map.forEach(function(value, key) { - entries.push([key, value]); - }); - return entries; - } - function inspectMap(map, options) { - var size = map.size - 1; - if (size <= 0) { - return "Map{}"; - } - options.truncate -= 7; - return "Map{ ".concat(inspectList(mapToEntries(map), options, inspectMapEntry), " }"); - } - var isNaN = Number.isNaN || function(i) { - return i !== i; - }; - function inspectNumber(number, options) { - if (isNaN(number)) { - return options.stylize("NaN", "number"); - } - if (number === Infinity) { - return options.stylize("Infinity", "number"); - } - if (number === -Infinity) { - return options.stylize("-Infinity", "number"); - } - if (number === 0) { - return options.stylize(1 / number === Infinity ? "+0" : "-0", "number"); - } - return options.stylize(truncate(number, options.truncate), "number"); - } - function inspectBigInt(number, options) { - var nums = truncate(number.toString(), options.truncate - 1); - if (nums !== truncator) - nums += "n"; - return options.stylize(nums, "bigint"); - } - function inspectRegExp(value, options) { - var flags = value.toString().split("/")[2]; - var sourceLength = options.truncate - (2 + flags.length); - var source = value.source; - return options.stylize("/".concat(truncate(source, sourceLength), "/").concat(flags), "regexp"); - } - function arrayFromSet(set) { - var values = []; - set.forEach(function(value) { - values.push(value); - }); - return values; - } - function inspectSet(set, options) { - if (set.size === 0) - return "Set{}"; - options.truncate -= 7; - return "Set{ ".concat(inspectList(arrayFromSet(set), options), " }"); - } - var stringEscapeChars = new RegExp("['\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]", "g"); - var escapeCharacters = { - "\b": "\\b", - " ": "\\t", - "\n": "\\n", - "\f": "\\f", - "\r": "\\r", - "'": "\\'", - "\\": "\\\\" - }; - var hex = 16; - var unicodeLength = 4; - function escape(char) { - return escapeCharacters[char] || "\\u".concat("0000".concat(char.charCodeAt(0).toString(hex)).slice(-unicodeLength)); - } - function inspectString(string, options) { - if (stringEscapeChars.test(string)) { - string = string.replace(stringEscapeChars, escape); - } - return options.stylize("'".concat(truncate(string, options.truncate - 2), "'"), "string"); - } - function inspectSymbol(value) { - if ("description" in Symbol.prototype) { - return value.description ? "Symbol(".concat(value.description, ")") : "Symbol()"; - } - return value.toString(); - } - var getPromiseValue = function getPromiseValue2() { - return "Promise{\u2026}"; - }; - try { - var _process$binding = process.binding("util"), getPromiseDetails = _process$binding.getPromiseDetails, kPending = _process$binding.kPending, kRejected = _process$binding.kRejected; - if (Array.isArray(getPromiseDetails(Promise.resolve()))) { - getPromiseValue = function getPromiseValue2(value, options) { - var _getPromiseDetails = getPromiseDetails(value), _getPromiseDetails2 = _slicedToArray(_getPromiseDetails, 2), state = _getPromiseDetails2[0], innerValue = _getPromiseDetails2[1]; - if (state === kPending) { - return "Promise{}"; - } - return "Promise".concat(state === kRejected ? "!" : "", "{").concat(options.inspect(innerValue, options), "}"); - }; - } - } catch (notNode) { - } - var inspectPromise = getPromiseValue; - function inspectObject(object, options) { - var properties = Object.getOwnPropertyNames(object); - var symbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(object) : []; - if (properties.length === 0 && symbols.length === 0) { - return "{}"; - } - options.truncate -= 4; - options.seen = options.seen || []; - if (options.seen.indexOf(object) >= 0) { - return "[Circular]"; - } - options.seen.push(object); - var propertyContents = inspectList(properties.map(function(key) { - return [key, object[key]]; - }), options, inspectProperty); - var symbolContents = inspectList(symbols.map(function(key) { - return [key, object[key]]; - }), options, inspectProperty); - options.seen.pop(); - var sep = ""; - if (propertyContents && symbolContents) { - sep = ", "; - } - return "{ ".concat(propertyContents).concat(sep).concat(symbolContents, " }"); - } - var toStringTag = typeof Symbol !== "undefined" && Symbol.toStringTag ? Symbol.toStringTag : false; - function inspectClass(value, options) { - var name = ""; - if (toStringTag && toStringTag in value) { - name = value[toStringTag]; - } - name = name || getFuncName_1(value.constructor); - if (!name || name === "_class") { - name = ""; - } - options.truncate -= name.length; - return "".concat(name).concat(inspectObject(value, options)); - } - function inspectArguments(args, options) { - if (args.length === 0) - return "Arguments[]"; - options.truncate -= 13; - return "Arguments[ ".concat(inspectList(args, options), " ]"); - } - var errorKeys = ["stack", "line", "column", "name", "message", "fileName", "lineNumber", "columnNumber", "number", "description"]; - function inspectObject$1(error, options) { - var properties = Object.getOwnPropertyNames(error).filter(function(key) { - return errorKeys.indexOf(key) === -1; - }); - var name = error.name; - options.truncate -= name.length; - var message = ""; - if (typeof error.message === "string") { - message = truncate(error.message, options.truncate); - } else { - properties.unshift("message"); - } - message = message ? ": ".concat(message) : ""; - options.truncate -= message.length + 5; - var propertyContents = inspectList(properties.map(function(key) { - return [key, error[key]]; - }), options, inspectProperty); - return "".concat(name).concat(message).concat(propertyContents ? " { ".concat(propertyContents, " }") : ""); - } - function inspectAttribute(_ref, options) { - var _ref2 = _slicedToArray(_ref, 2), key = _ref2[0], value = _ref2[1]; - options.truncate -= 3; - if (!value) { - return "".concat(options.stylize(key, "yellow")); - } - return "".concat(options.stylize(key, "yellow"), "=").concat(options.stylize('"'.concat(value, '"'), "string")); - } - function inspectHTMLCollection(collection, options) { - return inspectList(collection, options, inspectHTML, "\n"); - } - function inspectHTML(element, options) { - var properties = element.getAttributeNames(); - var name = element.tagName.toLowerCase(); - var head = options.stylize("<".concat(name), "special"); - var headClose = options.stylize(">", "special"); - var tail = options.stylize(""), "special"); - options.truncate -= name.length * 2 + 5; - var propertyContents = ""; - if (properties.length > 0) { - propertyContents += " "; - propertyContents += inspectList(properties.map(function(key) { - return [key, element.getAttribute(key)]; - }), options, inspectAttribute, " "); - } - options.truncate -= propertyContents.length; - var truncate2 = options.truncate; - var children = inspectHTMLCollection(element.children, options); - if (children && children.length > truncate2) { - children = "".concat(truncator, "(").concat(element.children.length, ")"); - } - return "".concat(head).concat(propertyContents).concat(headClose).concat(children).concat(tail); - } - var symbolsSupported = typeof Symbol === "function" && typeof Symbol.for === "function"; - var chaiInspect = symbolsSupported ? Symbol.for("chai/inspect") : "@@chai/inspect"; - var nodeInspect = false; - try { - var nodeUtil = require_util(); - nodeInspect = nodeUtil.inspect ? nodeUtil.inspect.custom : false; - } catch (noNodeInspect) { - nodeInspect = false; - } - var constructorMap = /* @__PURE__ */ new WeakMap(); - var stringTagMap = {}; - var baseTypesMap = { - undefined: function undefined$1(value, options) { - return options.stylize("undefined", "undefined"); - }, - null: function _null(value, options) { - return options.stylize(null, "null"); - }, - boolean: function boolean(value, options) { - return options.stylize(value, "boolean"); - }, - Boolean: function Boolean2(value, options) { - return options.stylize(value, "boolean"); - }, - number: inspectNumber, - Number: inspectNumber, - bigint: inspectBigInt, - BigInt: inspectBigInt, - string: inspectString, - String: inspectString, - function: inspectFunction, - Function: inspectFunction, - symbol: inspectSymbol, - Symbol: inspectSymbol, - Array: inspectArray, - Date: inspectDate, - Map: inspectMap, - Set: inspectSet, - RegExp: inspectRegExp, - Promise: inspectPromise, - WeakSet: function WeakSet2(value, options) { - return options.stylize("WeakSet{\u2026}", "special"); - }, - WeakMap: function WeakMap2(value, options) { - return options.stylize("WeakMap{\u2026}", "special"); - }, - Arguments: inspectArguments, - Int8Array: inspectTypedArray, - Uint8Array: inspectTypedArray, - Uint8ClampedArray: inspectTypedArray, - Int16Array: inspectTypedArray, - Uint16Array: inspectTypedArray, - Int32Array: inspectTypedArray, - Uint32Array: inspectTypedArray, - Float32Array: inspectTypedArray, - Float64Array: inspectTypedArray, - Generator: function Generator() { - return ""; - }, - DataView: function DataView2() { - return ""; - }, - ArrayBuffer: function ArrayBuffer() { - return ""; - }, - Error: inspectObject$1, - HTMLCollection: inspectHTMLCollection, - NodeList: inspectHTMLCollection - }; - var inspectCustom = function inspectCustom2(value, options, type) { - if (chaiInspect in value && typeof value[chaiInspect] === "function") { - return value[chaiInspect](options); - } - if (nodeInspect && nodeInspect in value && typeof value[nodeInspect] === "function") { - return value[nodeInspect](options.depth, options); - } - if ("inspect" in value && typeof value.inspect === "function") { - return value.inspect(options.depth, options); - } - if ("constructor" in value && constructorMap.has(value.constructor)) { - return constructorMap.get(value.constructor)(value, options); - } - if (stringTagMap[type]) { - return stringTagMap[type](value, options); - } - return ""; - }; - var toString$1 = Object.prototype.toString; - function inspect(value, options) { - options = normaliseOptions(options); - options.inspect = inspect; - var _options = options, customInspect = _options.customInspect; - var type = value === null ? "null" : _typeof(value); - if (type === "object") { - type = toString$1.call(value).slice(8, -1); - } - if (baseTypesMap[type]) { - return baseTypesMap[type](value, options); - } - if (customInspect && value) { - var output = inspectCustom(value, options, type); - if (output) { - if (typeof output === "string") - return output; - return inspect(output, options); - } - } - var proto = value ? Object.getPrototypeOf(value) : false; - if (proto === Object.prototype || proto === null) { - return inspectObject(value, options); - } - if (value && typeof HTMLElement === "function" && value instanceof HTMLElement) { - return inspectHTML(value, options); - } - if ("constructor" in value) { - if (value.constructor !== Object) { - return inspectClass(value, options); - } - return inspectObject(value, options); - } - if (value === Object(value)) { - return inspectObject(value, options); - } - return options.stylize(String(value), type); - } - function registerConstructor(constructor, inspector) { - if (constructorMap.has(constructor)) { - return false; - } - constructorMap.add(constructor, inspector); - return true; - } - function registerStringTag(stringTag, inspector) { - if (stringTag in stringTagMap) { - return false; - } - stringTagMap[stringTag] = inspector; - return true; - } - var custom = chaiInspect; - exports2.custom = custom; - exports2.default = inspect; - exports2.inspect = inspect; - exports2.registerConstructor = registerConstructor; - exports2.registerStringTag = registerStringTag; - Object.defineProperty(exports2, "__esModule", { value: true }); - }); - } - }); - - // node_modules/chai/lib/chai/config.js - var require_config = __commonJS({ - "node_modules/chai/lib/chai/config.js"(exports, module) { - module.exports = { - includeStack: false, - showDiff: true, - truncateThreshold: 40, - useProxy: true, - proxyExcludedKeys: ["then", "catch", "inspect", "toJSON"] - }; - } - }); - - // node_modules/chai/lib/chai/utils/inspect.js - var require_inspect = __commonJS({ - "node_modules/chai/lib/chai/utils/inspect.js"(exports, module) { - var getName = require_get_func_name(); - var loupe = require_loupe(); - var config = require_config(); - module.exports = inspect; - function inspect(obj, showHidden, depth, colors) { - var options = { - colors, - depth: typeof depth === "undefined" ? 2 : depth, - showHidden, - truncate: config.truncateThreshold ? config.truncateThreshold : Infinity - }; - return loupe.inspect(obj, options); - } - } - }); - - // node_modules/chai/lib/chai/utils/objDisplay.js - var require_objDisplay = __commonJS({ - "node_modules/chai/lib/chai/utils/objDisplay.js"(exports, module) { - var inspect = require_inspect(); - var config = require_config(); - module.exports = function objDisplay(obj) { - var str = inspect(obj), type = Object.prototype.toString.call(obj); - if (config.truncateThreshold && str.length >= config.truncateThreshold) { - if (type === "[object Function]") { - return !obj.name || obj.name === "" ? "[Function]" : "[Function: " + obj.name + "]"; - } else if (type === "[object Array]") { - return "[ Array(" + obj.length + ") ]"; - } else if (type === "[object Object]") { - var keys = Object.keys(obj), kstr = keys.length > 2 ? keys.splice(0, 2).join(", ") + ", ..." : keys.join(", "); - return "{ Object (" + kstr + ") }"; - } else { - return str; - } - } else { - return str; - } - }; - } - }); - - // node_modules/chai/lib/chai/utils/getMessage.js - var require_getMessage = __commonJS({ - "node_modules/chai/lib/chai/utils/getMessage.js"(exports, module) { - var flag = require_flag(); - var getActual = require_getActual(); - var objDisplay = require_objDisplay(); - module.exports = function getMessage(obj, args) { - var negate = flag(obj, "negate"), val = flag(obj, "object"), expected = args[3], actual = getActual(obj, args), msg = negate ? args[2] : args[1], flagMsg = flag(obj, "message"); - if (typeof msg === "function") - msg = msg(); - msg = msg || ""; - msg = msg.replace(/#\{this\}/g, function() { - return objDisplay(val); - }).replace(/#\{act\}/g, function() { - return objDisplay(actual); - }).replace(/#\{exp\}/g, function() { - return objDisplay(expected); - }); - return flagMsg ? flagMsg + ": " + msg : msg; - }; - } - }); - - // node_modules/chai/lib/chai/utils/transferFlags.js - var require_transferFlags = __commonJS({ - "node_modules/chai/lib/chai/utils/transferFlags.js"(exports, module) { - module.exports = function transferFlags(assertion, object, includeAll) { - var flags = assertion.__flags || (assertion.__flags = /* @__PURE__ */ Object.create(null)); - if (!object.__flags) { - object.__flags = /* @__PURE__ */ Object.create(null); - } - includeAll = arguments.length === 3 ? includeAll : true; - for (var flag in flags) { - if (includeAll || flag !== "object" && flag !== "ssfi" && flag !== "lockSsfi" && flag != "message") { - object.__flags[flag] = flags[flag]; - } - } - }; - } - }); - - // node_modules/deep-eql/index.js - var require_deep_eql = __commonJS({ - "node_modules/deep-eql/index.js"(exports, module) { - "use strict"; - var type = require_type_detect(); - function FakeMap() { - this._key = "chai/deep-eql__" + Math.random() + Date.now(); - } - FakeMap.prototype = { - get: function getMap(key) { - return key[this._key]; - }, - set: function setMap(key, value) { - if (Object.isExtensible(key)) { - Object.defineProperty(key, this._key, { - value, - configurable: true - }); - } - } - }; - var MemoizeMap = typeof WeakMap === "function" ? WeakMap : FakeMap; - function memoizeCompare(leftHandOperand, rightHandOperand, memoizeMap) { - if (!memoizeMap || isPrimitive(leftHandOperand) || isPrimitive(rightHandOperand)) { - return null; - } - var leftHandMap = memoizeMap.get(leftHandOperand); - if (leftHandMap) { - var result = leftHandMap.get(rightHandOperand); - if (typeof result === "boolean") { - return result; - } - } - return null; - } - function memoizeSet(leftHandOperand, rightHandOperand, memoizeMap, result) { - if (!memoizeMap || isPrimitive(leftHandOperand) || isPrimitive(rightHandOperand)) { - return; - } - var leftHandMap = memoizeMap.get(leftHandOperand); - if (leftHandMap) { - leftHandMap.set(rightHandOperand, result); - } else { - leftHandMap = new MemoizeMap(); - leftHandMap.set(rightHandOperand, result); - memoizeMap.set(leftHandOperand, leftHandMap); - } - } - module.exports = deepEqual; - module.exports.MemoizeMap = MemoizeMap; - function deepEqual(leftHandOperand, rightHandOperand, options) { - if (options && options.comparator) { - return extensiveDeepEqual(leftHandOperand, rightHandOperand, options); - } - var simpleResult = simpleEqual(leftHandOperand, rightHandOperand); - if (simpleResult !== null) { - return simpleResult; - } - return extensiveDeepEqual(leftHandOperand, rightHandOperand, options); - } - function simpleEqual(leftHandOperand, rightHandOperand) { - if (leftHandOperand === rightHandOperand) { - return leftHandOperand !== 0 || 1 / leftHandOperand === 1 / rightHandOperand; - } - if (leftHandOperand !== leftHandOperand && rightHandOperand !== rightHandOperand) { - return true; - } - if (isPrimitive(leftHandOperand) || isPrimitive(rightHandOperand)) { - return false; - } - return null; - } - function extensiveDeepEqual(leftHandOperand, rightHandOperand, options) { - options = options || {}; - options.memoize = options.memoize === false ? false : options.memoize || new MemoizeMap(); - var comparator = options && options.comparator; - var memoizeResultLeft = memoizeCompare(leftHandOperand, rightHandOperand, options.memoize); - if (memoizeResultLeft !== null) { - return memoizeResultLeft; - } - var memoizeResultRight = memoizeCompare(rightHandOperand, leftHandOperand, options.memoize); - if (memoizeResultRight !== null) { - return memoizeResultRight; - } - if (comparator) { - var comparatorResult = comparator(leftHandOperand, rightHandOperand); - if (comparatorResult === false || comparatorResult === true) { - memoizeSet(leftHandOperand, rightHandOperand, options.memoize, comparatorResult); - return comparatorResult; - } - var simpleResult = simpleEqual(leftHandOperand, rightHandOperand); - if (simpleResult !== null) { - return simpleResult; - } - } - var leftHandType = type(leftHandOperand); - if (leftHandType !== type(rightHandOperand)) { - memoizeSet(leftHandOperand, rightHandOperand, options.memoize, false); - return false; - } - memoizeSet(leftHandOperand, rightHandOperand, options.memoize, true); - var result = extensiveDeepEqualByType(leftHandOperand, rightHandOperand, leftHandType, options); - memoizeSet(leftHandOperand, rightHandOperand, options.memoize, result); - return result; - } - function extensiveDeepEqualByType(leftHandOperand, rightHandOperand, leftHandType, options) { - switch (leftHandType) { - case "String": - case "Number": - case "Boolean": - case "Date": - return deepEqual(leftHandOperand.valueOf(), rightHandOperand.valueOf()); - case "Promise": - case "Symbol": - case "function": - case "WeakMap": - case "WeakSet": - case "Error": - return leftHandOperand === rightHandOperand; - case "Arguments": - case "Int8Array": - case "Uint8Array": - case "Uint8ClampedArray": - case "Int16Array": - case "Uint16Array": - case "Int32Array": - case "Uint32Array": - case "Float32Array": - case "Float64Array": - case "Array": - return iterableEqual(leftHandOperand, rightHandOperand, options); - case "RegExp": - return regexpEqual(leftHandOperand, rightHandOperand); - case "Generator": - return generatorEqual(leftHandOperand, rightHandOperand, options); - case "DataView": - return iterableEqual(new Uint8Array(leftHandOperand.buffer), new Uint8Array(rightHandOperand.buffer), options); - case "ArrayBuffer": - return iterableEqual(new Uint8Array(leftHandOperand), new Uint8Array(rightHandOperand), options); - case "Set": - return entriesEqual(leftHandOperand, rightHandOperand, options); - case "Map": - return entriesEqual(leftHandOperand, rightHandOperand, options); - default: - return objectEqual(leftHandOperand, rightHandOperand, options); - } - } - function regexpEqual(leftHandOperand, rightHandOperand) { - return leftHandOperand.toString() === rightHandOperand.toString(); - } - function entriesEqual(leftHandOperand, rightHandOperand, options) { - if (leftHandOperand.size !== rightHandOperand.size) { - return false; - } - if (leftHandOperand.size === 0) { - return true; - } - var leftHandItems = []; - var rightHandItems = []; - leftHandOperand.forEach(function gatherEntries(key, value) { - leftHandItems.push([key, value]); - }); - rightHandOperand.forEach(function gatherEntries(key, value) { - rightHandItems.push([key, value]); - }); - return iterableEqual(leftHandItems.sort(), rightHandItems.sort(), options); - } - function iterableEqual(leftHandOperand, rightHandOperand, options) { - var length = leftHandOperand.length; - if (length !== rightHandOperand.length) { - return false; - } - if (length === 0) { - return true; - } - var index = -1; - while (++index < length) { - if (deepEqual(leftHandOperand[index], rightHandOperand[index], options) === false) { - return false; - } - } - return true; - } - function generatorEqual(leftHandOperand, rightHandOperand, options) { - return iterableEqual(getGeneratorEntries(leftHandOperand), getGeneratorEntries(rightHandOperand), options); - } - function hasIteratorFunction(target) { - return typeof Symbol !== "undefined" && typeof target === "object" && typeof Symbol.iterator !== "undefined" && typeof target[Symbol.iterator] === "function"; - } - function getIteratorEntries(target) { - if (hasIteratorFunction(target)) { - try { - return getGeneratorEntries(target[Symbol.iterator]()); - } catch (iteratorError) { - return []; - } - } - return []; - } - function getGeneratorEntries(generator) { - var generatorResult = generator.next(); - var accumulator = [generatorResult.value]; - while (generatorResult.done === false) { - generatorResult = generator.next(); - accumulator.push(generatorResult.value); - } - return accumulator; - } - function getEnumerableKeys(target) { - var keys = []; - for (var key in target) { - keys.push(key); - } - return keys; - } - function keysEqual(leftHandOperand, rightHandOperand, keys, options) { - var length = keys.length; - if (length === 0) { - return true; - } - for (var i = 0; i < length; i += 1) { - if (deepEqual(leftHandOperand[keys[i]], rightHandOperand[keys[i]], options) === false) { - return false; - } - } - return true; - } - function objectEqual(leftHandOperand, rightHandOperand, options) { - var leftHandKeys = getEnumerableKeys(leftHandOperand); - var rightHandKeys = getEnumerableKeys(rightHandOperand); - if (leftHandKeys.length && leftHandKeys.length === rightHandKeys.length) { - leftHandKeys.sort(); - rightHandKeys.sort(); - if (iterableEqual(leftHandKeys, rightHandKeys) === false) { - return false; - } - return keysEqual(leftHandOperand, rightHandOperand, leftHandKeys, options); - } - var leftHandEntries = getIteratorEntries(leftHandOperand); - var rightHandEntries = getIteratorEntries(rightHandOperand); - if (leftHandEntries.length && leftHandEntries.length === rightHandEntries.length) { - leftHandEntries.sort(); - rightHandEntries.sort(); - return iterableEqual(leftHandEntries, rightHandEntries, options); - } - if (leftHandKeys.length === 0 && leftHandEntries.length === 0 && rightHandKeys.length === 0 && rightHandEntries.length === 0) { - return true; - } - return false; - } - function isPrimitive(value) { - return value === null || typeof value !== "object"; - } - } - }); - - // node_modules/chai/lib/chai/utils/isProxyEnabled.js - var require_isProxyEnabled = __commonJS({ - "node_modules/chai/lib/chai/utils/isProxyEnabled.js"(exports, module) { - var config = require_config(); - module.exports = function isProxyEnabled() { - return config.useProxy && typeof Proxy !== "undefined" && typeof Reflect !== "undefined"; - }; - } - }); - - // node_modules/chai/lib/chai/utils/addProperty.js - var require_addProperty = __commonJS({ - "node_modules/chai/lib/chai/utils/addProperty.js"(exports, module) { - var chai = require_chai(); - var flag = require_flag(); - var isProxyEnabled = require_isProxyEnabled(); - var transferFlags = require_transferFlags(); - module.exports = function addProperty(ctx, name, getter) { - getter = getter === void 0 ? function() { - } : getter; - Object.defineProperty(ctx, name, { - get: function propertyGetter() { - if (!isProxyEnabled() && !flag(this, "lockSsfi")) { - flag(this, "ssfi", propertyGetter); - } - var result = getter.call(this); - if (result !== void 0) - return result; - var newAssertion = new chai.Assertion(); - transferFlags(this, newAssertion); - return newAssertion; - }, - configurable: true - }); - }; - } - }); - - // node_modules/chai/lib/chai/utils/addLengthGuard.js - var require_addLengthGuard = __commonJS({ - "node_modules/chai/lib/chai/utils/addLengthGuard.js"(exports, module) { - var fnLengthDesc = Object.getOwnPropertyDescriptor(function() { - }, "length"); - module.exports = function addLengthGuard(fn, assertionName, isChainable) { - if (!fnLengthDesc.configurable) - return fn; - Object.defineProperty(fn, "length", { - get: function() { - if (isChainable) { - throw Error("Invalid Chai property: " + assertionName + '.length. Due to a compatibility issue, "length" cannot directly follow "' + assertionName + '". Use "' + assertionName + '.lengthOf" instead.'); - } - throw Error("Invalid Chai property: " + assertionName + '.length. See docs for proper usage of "' + assertionName + '".'); - } - }); - return fn; - }; - } - }); - - // node_modules/chai/lib/chai/utils/getProperties.js - var require_getProperties = __commonJS({ - "node_modules/chai/lib/chai/utils/getProperties.js"(exports, module) { - module.exports = function getProperties(object) { - var result = Object.getOwnPropertyNames(object); - function addProperty(property) { - if (result.indexOf(property) === -1) { - result.push(property); - } - } - var proto = Object.getPrototypeOf(object); - while (proto !== null) { - Object.getOwnPropertyNames(proto).forEach(addProperty); - proto = Object.getPrototypeOf(proto); - } - return result; - }; - } - }); - - // node_modules/chai/lib/chai/utils/proxify.js - var require_proxify = __commonJS({ - "node_modules/chai/lib/chai/utils/proxify.js"(exports, module) { - var config = require_config(); - var flag = require_flag(); - var getProperties = require_getProperties(); - var isProxyEnabled = require_isProxyEnabled(); - var builtins = ["__flags", "__methods", "_obj", "assert"]; - module.exports = function proxify(obj, nonChainableMethodName) { - if (!isProxyEnabled()) - return obj; - return new Proxy(obj, { - get: function proxyGetter(target, property) { - if (typeof property === "string" && config.proxyExcludedKeys.indexOf(property) === -1 && !Reflect.has(target, property)) { - if (nonChainableMethodName) { - throw Error("Invalid Chai property: " + nonChainableMethodName + "." + property + '. See docs for proper usage of "' + nonChainableMethodName + '".'); - } - var suggestion = null; - var suggestionDistance = 4; - getProperties(target).forEach(function(prop) { - if (!Object.prototype.hasOwnProperty(prop) && builtins.indexOf(prop) === -1) { - var dist = stringDistanceCapped(property, prop, suggestionDistance); - if (dist < suggestionDistance) { - suggestion = prop; - suggestionDistance = dist; - } - } - }); - if (suggestion !== null) { - throw Error("Invalid Chai property: " + property + '. Did you mean "' + suggestion + '"?'); - } else { - throw Error("Invalid Chai property: " + property); - } - } - if (builtins.indexOf(property) === -1 && !flag(target, "lockSsfi")) { - flag(target, "ssfi", proxyGetter); - } - return Reflect.get(target, property); - } - }); - }; - function stringDistanceCapped(strA, strB, cap) { - if (Math.abs(strA.length - strB.length) >= cap) { - return cap; - } - var memo = []; - for (var i = 0; i <= strA.length; i++) { - memo[i] = Array(strB.length + 1).fill(0); - memo[i][0] = i; - } - for (var j = 0; j < strB.length; j++) { - memo[0][j] = j; - } - for (var i = 1; i <= strA.length; i++) { - var ch = strA.charCodeAt(i - 1); - for (var j = 1; j <= strB.length; j++) { - if (Math.abs(i - j) >= cap) { - memo[i][j] = cap; - continue; - } - memo[i][j] = Math.min(memo[i - 1][j] + 1, memo[i][j - 1] + 1, memo[i - 1][j - 1] + (ch === strB.charCodeAt(j - 1) ? 0 : 1)); - } - } - return memo[strA.length][strB.length]; - } - } - }); - - // node_modules/chai/lib/chai/utils/addMethod.js - var require_addMethod = __commonJS({ - "node_modules/chai/lib/chai/utils/addMethod.js"(exports, module) { - var addLengthGuard = require_addLengthGuard(); - var chai = require_chai(); - var flag = require_flag(); - var proxify = require_proxify(); - var transferFlags = require_transferFlags(); - module.exports = function addMethod(ctx, name, method) { - var methodWrapper = function() { - if (!flag(this, "lockSsfi")) { - flag(this, "ssfi", methodWrapper); - } - var result = method.apply(this, arguments); - if (result !== void 0) - return result; - var newAssertion = new chai.Assertion(); - transferFlags(this, newAssertion); - return newAssertion; - }; - addLengthGuard(methodWrapper, name, false); - ctx[name] = proxify(methodWrapper, name); - }; - } - }); - - // node_modules/chai/lib/chai/utils/overwriteProperty.js - var require_overwriteProperty = __commonJS({ - "node_modules/chai/lib/chai/utils/overwriteProperty.js"(exports, module) { - var chai = require_chai(); - var flag = require_flag(); - var isProxyEnabled = require_isProxyEnabled(); - var transferFlags = require_transferFlags(); - module.exports = function overwriteProperty(ctx, name, getter) { - var _get = Object.getOwnPropertyDescriptor(ctx, name), _super = function() { - }; - if (_get && "function" === typeof _get.get) - _super = _get.get; - Object.defineProperty(ctx, name, { - get: function overwritingPropertyGetter() { - if (!isProxyEnabled() && !flag(this, "lockSsfi")) { - flag(this, "ssfi", overwritingPropertyGetter); - } - var origLockSsfi = flag(this, "lockSsfi"); - flag(this, "lockSsfi", true); - var result = getter(_super).call(this); - flag(this, "lockSsfi", origLockSsfi); - if (result !== void 0) { - return result; - } - var newAssertion = new chai.Assertion(); - transferFlags(this, newAssertion); - return newAssertion; - }, - configurable: true - }); - }; - } - }); - - // node_modules/chai/lib/chai/utils/overwriteMethod.js - var require_overwriteMethod = __commonJS({ - "node_modules/chai/lib/chai/utils/overwriteMethod.js"(exports, module) { - var addLengthGuard = require_addLengthGuard(); - var chai = require_chai(); - var flag = require_flag(); - var proxify = require_proxify(); - var transferFlags = require_transferFlags(); - module.exports = function overwriteMethod(ctx, name, method) { - var _method = ctx[name], _super = function() { - throw new Error(name + " is not a function"); - }; - if (_method && "function" === typeof _method) - _super = _method; - var overwritingMethodWrapper = function() { - if (!flag(this, "lockSsfi")) { - flag(this, "ssfi", overwritingMethodWrapper); - } - var origLockSsfi = flag(this, "lockSsfi"); - flag(this, "lockSsfi", true); - var result = method(_super).apply(this, arguments); - flag(this, "lockSsfi", origLockSsfi); - if (result !== void 0) { - return result; - } - var newAssertion = new chai.Assertion(); - transferFlags(this, newAssertion); - return newAssertion; - }; - addLengthGuard(overwritingMethodWrapper, name, false); - ctx[name] = proxify(overwritingMethodWrapper, name); - }; - } - }); - - // node_modules/chai/lib/chai/utils/addChainableMethod.js - var require_addChainableMethod = __commonJS({ - "node_modules/chai/lib/chai/utils/addChainableMethod.js"(exports, module) { - var addLengthGuard = require_addLengthGuard(); - var chai = require_chai(); - var flag = require_flag(); - var proxify = require_proxify(); - var transferFlags = require_transferFlags(); - var canSetPrototype = typeof Object.setPrototypeOf === "function"; - var testFn = function() { - }; - var excludeNames = Object.getOwnPropertyNames(testFn).filter(function(name) { - var propDesc = Object.getOwnPropertyDescriptor(testFn, name); - if (typeof propDesc !== "object") - return true; - return !propDesc.configurable; - }); - var call = Function.prototype.call; - var apply = Function.prototype.apply; - module.exports = function addChainableMethod(ctx, name, method, chainingBehavior) { - if (typeof chainingBehavior !== "function") { - chainingBehavior = function() { - }; - } - var chainableBehavior = { - method, - chainingBehavior - }; - if (!ctx.__methods) { - ctx.__methods = {}; - } - ctx.__methods[name] = chainableBehavior; - Object.defineProperty(ctx, name, { - get: function chainableMethodGetter() { - chainableBehavior.chainingBehavior.call(this); - var chainableMethodWrapper = function() { - if (!flag(this, "lockSsfi")) { - flag(this, "ssfi", chainableMethodWrapper); - } - var result = chainableBehavior.method.apply(this, arguments); - if (result !== void 0) { - return result; - } - var newAssertion = new chai.Assertion(); - transferFlags(this, newAssertion); - return newAssertion; - }; - addLengthGuard(chainableMethodWrapper, name, true); - if (canSetPrototype) { - var prototype = Object.create(this); - prototype.call = call; - prototype.apply = apply; - Object.setPrototypeOf(chainableMethodWrapper, prototype); - } else { - var asserterNames = Object.getOwnPropertyNames(ctx); - asserterNames.forEach(function(asserterName) { - if (excludeNames.indexOf(asserterName) !== -1) { - return; - } - var pd = Object.getOwnPropertyDescriptor(ctx, asserterName); - Object.defineProperty(chainableMethodWrapper, asserterName, pd); - }); - } - transferFlags(this, chainableMethodWrapper); - return proxify(chainableMethodWrapper); - }, - configurable: true - }); - }; - } - }); - - // node_modules/chai/lib/chai/utils/overwriteChainableMethod.js - var require_overwriteChainableMethod = __commonJS({ - "node_modules/chai/lib/chai/utils/overwriteChainableMethod.js"(exports, module) { - var chai = require_chai(); - var transferFlags = require_transferFlags(); - module.exports = function overwriteChainableMethod(ctx, name, method, chainingBehavior) { - var chainableBehavior = ctx.__methods[name]; - var _chainingBehavior = chainableBehavior.chainingBehavior; - chainableBehavior.chainingBehavior = function overwritingChainableMethodGetter() { - var result = chainingBehavior(_chainingBehavior).call(this); - if (result !== void 0) { - return result; - } - var newAssertion = new chai.Assertion(); - transferFlags(this, newAssertion); - return newAssertion; - }; - var _method = chainableBehavior.method; - chainableBehavior.method = function overwritingChainableMethodWrapper() { - var result = method(_method).apply(this, arguments); - if (result !== void 0) { - return result; - } - var newAssertion = new chai.Assertion(); - transferFlags(this, newAssertion); - return newAssertion; - }; - }; - } - }); - - // node_modules/chai/lib/chai/utils/compareByInspect.js - var require_compareByInspect = __commonJS({ - "node_modules/chai/lib/chai/utils/compareByInspect.js"(exports, module) { - var inspect = require_inspect(); - module.exports = function compareByInspect(a, b) { - return inspect(a) < inspect(b) ? -1 : 1; - }; - } - }); - - // node_modules/chai/lib/chai/utils/getOwnEnumerablePropertySymbols.js - var require_getOwnEnumerablePropertySymbols = __commonJS({ - "node_modules/chai/lib/chai/utils/getOwnEnumerablePropertySymbols.js"(exports, module) { - module.exports = function getOwnEnumerablePropertySymbols(obj) { - if (typeof Object.getOwnPropertySymbols !== "function") - return []; - return Object.getOwnPropertySymbols(obj).filter(function(sym) { - return Object.getOwnPropertyDescriptor(obj, sym).enumerable; - }); - }; - } - }); - - // node_modules/chai/lib/chai/utils/getOwnEnumerableProperties.js - var require_getOwnEnumerableProperties = __commonJS({ - "node_modules/chai/lib/chai/utils/getOwnEnumerableProperties.js"(exports, module) { - var getOwnEnumerablePropertySymbols = require_getOwnEnumerablePropertySymbols(); - module.exports = function getOwnEnumerableProperties(obj) { - return Object.keys(obj).concat(getOwnEnumerablePropertySymbols(obj)); - }; - } - }); - - // node_modules/check-error/index.js - var require_check_error = __commonJS({ - "node_modules/check-error/index.js"(exports, module) { - "use strict"; - function compatibleInstance(thrown, errorLike) { - return errorLike instanceof Error && thrown === errorLike; - } - function compatibleConstructor(thrown, errorLike) { - if (errorLike instanceof Error) { - return thrown.constructor === errorLike.constructor || thrown instanceof errorLike.constructor; - } else if (errorLike.prototype instanceof Error || errorLike === Error) { - return thrown.constructor === errorLike || thrown instanceof errorLike; - } - return false; - } - function compatibleMessage(thrown, errMatcher) { - var comparisonString = typeof thrown === "string" ? thrown : thrown.message; - if (errMatcher instanceof RegExp) { - return errMatcher.test(comparisonString); - } else if (typeof errMatcher === "string") { - return comparisonString.indexOf(errMatcher) !== -1; - } - return false; - } - var functionNameMatch = /\s*function(?:\s|\s*\/\*[^(?:*\/)]+\*\/\s*)*([^\(\/]+)/; - function getFunctionName(constructorFn) { - var name = ""; - if (typeof constructorFn.name === "undefined") { - var match = String(constructorFn).match(functionNameMatch); - if (match) { - name = match[1]; - } - } else { - name = constructorFn.name; - } - return name; - } - function getConstructorName(errorLike) { - var constructorName = errorLike; - if (errorLike instanceof Error) { - constructorName = getFunctionName(errorLike.constructor); - } else if (typeof errorLike === "function") { - constructorName = getFunctionName(errorLike).trim() || getFunctionName(new errorLike()); - } - return constructorName; - } - function getMessage(errorLike) { - var msg = ""; - if (errorLike && errorLike.message) { - msg = errorLike.message; - } else if (typeof errorLike === "string") { - msg = errorLike; - } - return msg; - } - module.exports = { - compatibleInstance, - compatibleConstructor, - compatibleMessage, - getMessage, - getConstructorName - }; - } - }); - - // node_modules/chai/lib/chai/utils/isNaN.js - var require_isNaN = __commonJS({ - "node_modules/chai/lib/chai/utils/isNaN.js"(exports, module) { - function isNaN(value) { - return value !== value; - } - module.exports = Number.isNaN || isNaN; - } - }); - - // node_modules/chai/lib/chai/utils/getOperator.js - var require_getOperator = __commonJS({ - "node_modules/chai/lib/chai/utils/getOperator.js"(exports, module) { - var type = require_type_detect(); - var flag = require_flag(); - function isObjectType(obj) { - var objectType = type(obj); - var objectTypes = ["Array", "Object", "function"]; - return objectTypes.indexOf(objectType) !== -1; - } - module.exports = function getOperator(obj, args) { - var operator = flag(obj, "operator"); - var negate = flag(obj, "negate"); - var expected = args[3]; - var msg = negate ? args[2] : args[1]; - if (operator) { - return operator; - } - if (typeof msg === "function") - msg = msg(); - msg = msg || ""; - if (!msg) { - return void 0; - } - if (/\shave\s/.test(msg)) { - return void 0; - } - var isObject = isObjectType(expected); - if (/\snot\s/.test(msg)) { - return isObject ? "notDeepStrictEqual" : "notStrictEqual"; - } - return isObject ? "deepStrictEqual" : "strictEqual"; - }; - } - }); - - // node_modules/chai/lib/chai/utils/index.js - var require_utils = __commonJS({ - "node_modules/chai/lib/chai/utils/index.js"(exports) { - var pathval = require_pathval(); - exports.test = require_test(); - exports.type = require_type_detect(); - exports.expectTypes = require_expectTypes(); - exports.getMessage = require_getMessage(); - exports.getActual = require_getActual(); - exports.inspect = require_inspect(); - exports.objDisplay = require_objDisplay(); - exports.flag = require_flag(); - exports.transferFlags = require_transferFlags(); - exports.eql = require_deep_eql(); - exports.getPathInfo = pathval.getPathInfo; - exports.hasProperty = pathval.hasProperty; - exports.getName = require_get_func_name(); - exports.addProperty = require_addProperty(); - exports.addMethod = require_addMethod(); - exports.overwriteProperty = require_overwriteProperty(); - exports.overwriteMethod = require_overwriteMethod(); - exports.addChainableMethod = require_addChainableMethod(); - exports.overwriteChainableMethod = require_overwriteChainableMethod(); - exports.compareByInspect = require_compareByInspect(); - exports.getOwnEnumerablePropertySymbols = require_getOwnEnumerablePropertySymbols(); - exports.getOwnEnumerableProperties = require_getOwnEnumerableProperties(); - exports.checkError = require_check_error(); - exports.proxify = require_proxify(); - exports.addLengthGuard = require_addLengthGuard(); - exports.isProxyEnabled = require_isProxyEnabled(); - exports.isNaN = require_isNaN(); - exports.getOperator = require_getOperator(); - } - }); - - // node_modules/chai/lib/chai/assertion.js - var require_assertion = __commonJS({ - "node_modules/chai/lib/chai/assertion.js"(exports, module) { - var config = require_config(); - module.exports = function(_chai, util) { - var AssertionError = _chai.AssertionError, flag = util.flag; - _chai.Assertion = Assertion; - function Assertion(obj, msg, ssfi, lockSsfi) { - flag(this, "ssfi", ssfi || Assertion); - flag(this, "lockSsfi", lockSsfi); - flag(this, "object", obj); - flag(this, "message", msg); - return util.proxify(this); - } - Object.defineProperty(Assertion, "includeStack", { - get: function() { - console.warn("Assertion.includeStack is deprecated, use chai.config.includeStack instead."); - return config.includeStack; - }, - set: function(value) { - console.warn("Assertion.includeStack is deprecated, use chai.config.includeStack instead."); - config.includeStack = value; - } - }); - Object.defineProperty(Assertion, "showDiff", { - get: function() { - console.warn("Assertion.showDiff is deprecated, use chai.config.showDiff instead."); - return config.showDiff; - }, - set: function(value) { - console.warn("Assertion.showDiff is deprecated, use chai.config.showDiff instead."); - config.showDiff = value; - } - }); - Assertion.addProperty = function(name, fn) { - util.addProperty(this.prototype, name, fn); - }; - Assertion.addMethod = function(name, fn) { - util.addMethod(this.prototype, name, fn); - }; - Assertion.addChainableMethod = function(name, fn, chainingBehavior) { - util.addChainableMethod(this.prototype, name, fn, chainingBehavior); - }; - Assertion.overwriteProperty = function(name, fn) { - util.overwriteProperty(this.prototype, name, fn); - }; - Assertion.overwriteMethod = function(name, fn) { - util.overwriteMethod(this.prototype, name, fn); - }; - Assertion.overwriteChainableMethod = function(name, fn, chainingBehavior) { - util.overwriteChainableMethod(this.prototype, name, fn, chainingBehavior); - }; - Assertion.prototype.assert = function(expr, msg, negateMsg, expected, _actual, showDiff) { - var ok = util.test(this, arguments); - if (false !== showDiff) - showDiff = true; - if (void 0 === expected && void 0 === _actual) - showDiff = false; - if (true !== config.showDiff) - showDiff = false; - if (!ok) { - msg = util.getMessage(this, arguments); - var actual = util.getActual(this, arguments); - var assertionErrorObjectProperties = { - actual, - expected, - showDiff - }; - var operator = util.getOperator(this, arguments); - if (operator) { - assertionErrorObjectProperties.operator = operator; - } - throw new AssertionError(msg, assertionErrorObjectProperties, config.includeStack ? this.assert : flag(this, "ssfi")); - } - }; - Object.defineProperty(Assertion.prototype, "_obj", { - get: function() { - return flag(this, "object"); - }, - set: function(val) { - flag(this, "object", val); - } - }); - }; - } - }); - - // node_modules/chai/lib/chai/core/assertions.js - var require_assertions = __commonJS({ - "node_modules/chai/lib/chai/core/assertions.js"(exports, module) { - module.exports = function(chai, _) { - var Assertion = chai.Assertion, AssertionError = chai.AssertionError, flag = _.flag; - [ - "to", - "be", - "been", - "is", - "and", - "has", - "have", - "with", - "that", - "which", - "at", - "of", - "same", - "but", - "does", - "still", - "also" - ].forEach(function(chain) { - Assertion.addProperty(chain); - }); - Assertion.addProperty("not", function() { - flag(this, "negate", true); - }); - Assertion.addProperty("deep", function() { - flag(this, "deep", true); - }); - Assertion.addProperty("nested", function() { - flag(this, "nested", true); - }); - Assertion.addProperty("own", function() { - flag(this, "own", true); - }); - Assertion.addProperty("ordered", function() { - flag(this, "ordered", true); - }); - Assertion.addProperty("any", function() { - flag(this, "any", true); - flag(this, "all", false); - }); - Assertion.addProperty("all", function() { - flag(this, "all", true); - flag(this, "any", false); - }); - function an(type, msg) { - if (msg) - flag(this, "message", msg); - type = type.toLowerCase(); - var obj = flag(this, "object"), article = ~["a", "e", "i", "o", "u"].indexOf(type.charAt(0)) ? "an " : "a "; - this.assert(type === _.type(obj).toLowerCase(), "expected #{this} to be " + article + type, "expected #{this} not to be " + article + type); - } - Assertion.addChainableMethod("an", an); - Assertion.addChainableMethod("a", an); - function SameValueZero(a, b) { - return _.isNaN(a) && _.isNaN(b) || a === b; - } - function includeChainingBehavior() { - flag(this, "contains", true); - } - function include(val, msg) { - if (msg) - flag(this, "message", msg); - var obj = flag(this, "object"), objType = _.type(obj).toLowerCase(), flagMsg = flag(this, "message"), negate = flag(this, "negate"), ssfi = flag(this, "ssfi"), isDeep = flag(this, "deep"), descriptor = isDeep ? "deep " : ""; - flagMsg = flagMsg ? flagMsg + ": " : ""; - var included = false; - switch (objType) { - case "string": - included = obj.indexOf(val) !== -1; - break; - case "weakset": - if (isDeep) { - throw new AssertionError(flagMsg + "unable to use .deep.include with WeakSet", void 0, ssfi); - } - included = obj.has(val); - break; - case "map": - var isEql = isDeep ? _.eql : SameValueZero; - obj.forEach(function(item) { - included = included || isEql(item, val); - }); - break; - case "set": - if (isDeep) { - obj.forEach(function(item) { - included = included || _.eql(item, val); - }); - } else { - included = obj.has(val); - } - break; - case "array": - if (isDeep) { - included = obj.some(function(item) { - return _.eql(item, val); - }); - } else { - included = obj.indexOf(val) !== -1; - } - break; - default: - if (val !== Object(val)) { - throw new AssertionError(flagMsg + "the given combination of arguments (" + objType + " and " + _.type(val).toLowerCase() + ") is invalid for this assertion. You can use an array, a map, an object, a set, a string, or a weakset instead of a " + _.type(val).toLowerCase(), void 0, ssfi); - } - var props = Object.keys(val), firstErr = null, numErrs = 0; - props.forEach(function(prop) { - var propAssertion = new Assertion(obj); - _.transferFlags(this, propAssertion, true); - flag(propAssertion, "lockSsfi", true); - if (!negate || props.length === 1) { - propAssertion.property(prop, val[prop]); - return; - } - try { - propAssertion.property(prop, val[prop]); - } catch (err) { - if (!_.checkError.compatibleConstructor(err, AssertionError)) { - throw err; - } - if (firstErr === null) - firstErr = err; - numErrs++; - } - }, this); - if (negate && props.length > 1 && numErrs === props.length) { - throw firstErr; - } - return; - } - this.assert(included, "expected #{this} to " + descriptor + "include " + _.inspect(val), "expected #{this} to not " + descriptor + "include " + _.inspect(val)); - } - Assertion.addChainableMethod("include", include, includeChainingBehavior); - Assertion.addChainableMethod("contain", include, includeChainingBehavior); - Assertion.addChainableMethod("contains", include, includeChainingBehavior); - Assertion.addChainableMethod("includes", include, includeChainingBehavior); - Assertion.addProperty("ok", function() { - this.assert(flag(this, "object"), "expected #{this} to be truthy", "expected #{this} to be falsy"); - }); - Assertion.addProperty("true", function() { - this.assert(true === flag(this, "object"), "expected #{this} to be true", "expected #{this} to be false", flag(this, "negate") ? false : true); - }); - Assertion.addProperty("false", function() { - this.assert(false === flag(this, "object"), "expected #{this} to be false", "expected #{this} to be true", flag(this, "negate") ? true : false); - }); - Assertion.addProperty("null", function() { - this.assert(null === flag(this, "object"), "expected #{this} to be null", "expected #{this} not to be null"); - }); - Assertion.addProperty("undefined", function() { - this.assert(void 0 === flag(this, "object"), "expected #{this} to be undefined", "expected #{this} not to be undefined"); - }); - Assertion.addProperty("NaN", function() { - this.assert(_.isNaN(flag(this, "object")), "expected #{this} to be NaN", "expected #{this} not to be NaN"); - }); - function assertExist() { - var val = flag(this, "object"); - this.assert(val !== null && val !== void 0, "expected #{this} to exist", "expected #{this} to not exist"); - } - Assertion.addProperty("exist", assertExist); - Assertion.addProperty("exists", assertExist); - Assertion.addProperty("empty", function() { - var val = flag(this, "object"), ssfi = flag(this, "ssfi"), flagMsg = flag(this, "message"), itemsCount; - flagMsg = flagMsg ? flagMsg + ": " : ""; - switch (_.type(val).toLowerCase()) { - case "array": - case "string": - itemsCount = val.length; - break; - case "map": - case "set": - itemsCount = val.size; - break; - case "weakmap": - case "weakset": - throw new AssertionError(flagMsg + ".empty was passed a weak collection", void 0, ssfi); - case "function": - var msg = flagMsg + ".empty was passed a function " + _.getName(val); - throw new AssertionError(msg.trim(), void 0, ssfi); - default: - if (val !== Object(val)) { - throw new AssertionError(flagMsg + ".empty was passed non-string primitive " + _.inspect(val), void 0, ssfi); - } - itemsCount = Object.keys(val).length; - } - this.assert(0 === itemsCount, "expected #{this} to be empty", "expected #{this} not to be empty"); - }); - function checkArguments() { - var obj = flag(this, "object"), type = _.type(obj); - this.assert("Arguments" === type, "expected #{this} to be arguments but got " + type, "expected #{this} to not be arguments"); - } - Assertion.addProperty("arguments", checkArguments); - Assertion.addProperty("Arguments", checkArguments); - function assertEqual(val, msg) { - if (msg) - flag(this, "message", msg); - var obj = flag(this, "object"); - if (flag(this, "deep")) { - var prevLockSsfi = flag(this, "lockSsfi"); - flag(this, "lockSsfi", true); - this.eql(val); - flag(this, "lockSsfi", prevLockSsfi); - } else { - this.assert(val === obj, "expected #{this} to equal #{exp}", "expected #{this} to not equal #{exp}", val, this._obj, true); - } - } - Assertion.addMethod("equal", assertEqual); - Assertion.addMethod("equals", assertEqual); - Assertion.addMethod("eq", assertEqual); - function assertEql(obj, msg) { - if (msg) - flag(this, "message", msg); - this.assert(_.eql(obj, flag(this, "object")), "expected #{this} to deeply equal #{exp}", "expected #{this} to not deeply equal #{exp}", obj, this._obj, true); - } - Assertion.addMethod("eql", assertEql); - Assertion.addMethod("eqls", assertEql); - function assertAbove(n, msg) { - if (msg) - flag(this, "message", msg); - var obj = flag(this, "object"), doLength = flag(this, "doLength"), flagMsg = flag(this, "message"), msgPrefix = flagMsg ? flagMsg + ": " : "", ssfi = flag(this, "ssfi"), objType = _.type(obj).toLowerCase(), nType = _.type(n).toLowerCase(), errorMessage, shouldThrow = true; - if (doLength && objType !== "map" && objType !== "set") { - new Assertion(obj, flagMsg, ssfi, true).to.have.property("length"); - } - if (!doLength && (objType === "date" && nType !== "date")) { - errorMessage = msgPrefix + "the argument to above must be a date"; - } else if (nType !== "number" && (doLength || objType === "number")) { - errorMessage = msgPrefix + "the argument to above must be a number"; - } else if (!doLength && (objType !== "date" && objType !== "number")) { - var printObj = objType === "string" ? "'" + obj + "'" : obj; - errorMessage = msgPrefix + "expected " + printObj + " to be a number or a date"; - } else { - shouldThrow = false; - } - if (shouldThrow) { - throw new AssertionError(errorMessage, void 0, ssfi); - } - if (doLength) { - var descriptor = "length", itemsCount; - if (objType === "map" || objType === "set") { - descriptor = "size"; - itemsCount = obj.size; - } else { - itemsCount = obj.length; - } - this.assert(itemsCount > n, "expected #{this} to have a " + descriptor + " above #{exp} but got #{act}", "expected #{this} to not have a " + descriptor + " above #{exp}", n, itemsCount); - } else { - this.assert(obj > n, "expected #{this} to be above #{exp}", "expected #{this} to be at most #{exp}", n); - } - } - Assertion.addMethod("above", assertAbove); - Assertion.addMethod("gt", assertAbove); - Assertion.addMethod("greaterThan", assertAbove); - function assertLeast(n, msg) { - if (msg) - flag(this, "message", msg); - var obj = flag(this, "object"), doLength = flag(this, "doLength"), flagMsg = flag(this, "message"), msgPrefix = flagMsg ? flagMsg + ": " : "", ssfi = flag(this, "ssfi"), objType = _.type(obj).toLowerCase(), nType = _.type(n).toLowerCase(), errorMessage, shouldThrow = true; - if (doLength && objType !== "map" && objType !== "set") { - new Assertion(obj, flagMsg, ssfi, true).to.have.property("length"); - } - if (!doLength && (objType === "date" && nType !== "date")) { - errorMessage = msgPrefix + "the argument to least must be a date"; - } else if (nType !== "number" && (doLength || objType === "number")) { - errorMessage = msgPrefix + "the argument to least must be a number"; - } else if (!doLength && (objType !== "date" && objType !== "number")) { - var printObj = objType === "string" ? "'" + obj + "'" : obj; - errorMessage = msgPrefix + "expected " + printObj + " to be a number or a date"; - } else { - shouldThrow = false; - } - if (shouldThrow) { - throw new AssertionError(errorMessage, void 0, ssfi); - } - if (doLength) { - var descriptor = "length", itemsCount; - if (objType === "map" || objType === "set") { - descriptor = "size"; - itemsCount = obj.size; - } else { - itemsCount = obj.length; - } - this.assert(itemsCount >= n, "expected #{this} to have a " + descriptor + " at least #{exp} but got #{act}", "expected #{this} to have a " + descriptor + " below #{exp}", n, itemsCount); - } else { - this.assert(obj >= n, "expected #{this} to be at least #{exp}", "expected #{this} to be below #{exp}", n); - } - } - Assertion.addMethod("least", assertLeast); - Assertion.addMethod("gte", assertLeast); - Assertion.addMethod("greaterThanOrEqual", assertLeast); - function assertBelow(n, msg) { - if (msg) - flag(this, "message", msg); - var obj = flag(this, "object"), doLength = flag(this, "doLength"), flagMsg = flag(this, "message"), msgPrefix = flagMsg ? flagMsg + ": " : "", ssfi = flag(this, "ssfi"), objType = _.type(obj).toLowerCase(), nType = _.type(n).toLowerCase(), errorMessage, shouldThrow = true; - if (doLength && objType !== "map" && objType !== "set") { - new Assertion(obj, flagMsg, ssfi, true).to.have.property("length"); - } - if (!doLength && (objType === "date" && nType !== "date")) { - errorMessage = msgPrefix + "the argument to below must be a date"; - } else if (nType !== "number" && (doLength || objType === "number")) { - errorMessage = msgPrefix + "the argument to below must be a number"; - } else if (!doLength && (objType !== "date" && objType !== "number")) { - var printObj = objType === "string" ? "'" + obj + "'" : obj; - errorMessage = msgPrefix + "expected " + printObj + " to be a number or a date"; - } else { - shouldThrow = false; - } - if (shouldThrow) { - throw new AssertionError(errorMessage, void 0, ssfi); - } - if (doLength) { - var descriptor = "length", itemsCount; - if (objType === "map" || objType === "set") { - descriptor = "size"; - itemsCount = obj.size; - } else { - itemsCount = obj.length; - } - this.assert(itemsCount < n, "expected #{this} to have a " + descriptor + " below #{exp} but got #{act}", "expected #{this} to not have a " + descriptor + " below #{exp}", n, itemsCount); - } else { - this.assert(obj < n, "expected #{this} to be below #{exp}", "expected #{this} to be at least #{exp}", n); - } - } - Assertion.addMethod("below", assertBelow); - Assertion.addMethod("lt", assertBelow); - Assertion.addMethod("lessThan", assertBelow); - function assertMost(n, msg) { - if (msg) - flag(this, "message", msg); - var obj = flag(this, "object"), doLength = flag(this, "doLength"), flagMsg = flag(this, "message"), msgPrefix = flagMsg ? flagMsg + ": " : "", ssfi = flag(this, "ssfi"), objType = _.type(obj).toLowerCase(), nType = _.type(n).toLowerCase(), errorMessage, shouldThrow = true; - if (doLength && objType !== "map" && objType !== "set") { - new Assertion(obj, flagMsg, ssfi, true).to.have.property("length"); - } - if (!doLength && (objType === "date" && nType !== "date")) { - errorMessage = msgPrefix + "the argument to most must be a date"; - } else if (nType !== "number" && (doLength || objType === "number")) { - errorMessage = msgPrefix + "the argument to most must be a number"; - } else if (!doLength && (objType !== "date" && objType !== "number")) { - var printObj = objType === "string" ? "'" + obj + "'" : obj; - errorMessage = msgPrefix + "expected " + printObj + " to be a number or a date"; - } else { - shouldThrow = false; - } - if (shouldThrow) { - throw new AssertionError(errorMessage, void 0, ssfi); - } - if (doLength) { - var descriptor = "length", itemsCount; - if (objType === "map" || objType === "set") { - descriptor = "size"; - itemsCount = obj.size; - } else { - itemsCount = obj.length; - } - this.assert(itemsCount <= n, "expected #{this} to have a " + descriptor + " at most #{exp} but got #{act}", "expected #{this} to have a " + descriptor + " above #{exp}", n, itemsCount); - } else { - this.assert(obj <= n, "expected #{this} to be at most #{exp}", "expected #{this} to be above #{exp}", n); - } - } - Assertion.addMethod("most", assertMost); - Assertion.addMethod("lte", assertMost); - Assertion.addMethod("lessThanOrEqual", assertMost); - Assertion.addMethod("within", function(start, finish, msg) { - if (msg) - flag(this, "message", msg); - var obj = flag(this, "object"), doLength = flag(this, "doLength"), flagMsg = flag(this, "message"), msgPrefix = flagMsg ? flagMsg + ": " : "", ssfi = flag(this, "ssfi"), objType = _.type(obj).toLowerCase(), startType = _.type(start).toLowerCase(), finishType = _.type(finish).toLowerCase(), errorMessage, shouldThrow = true, range = startType === "date" && finishType === "date" ? start.toISOString() + ".." + finish.toISOString() : start + ".." + finish; - if (doLength && objType !== "map" && objType !== "set") { - new Assertion(obj, flagMsg, ssfi, true).to.have.property("length"); - } - if (!doLength && (objType === "date" && (startType !== "date" || finishType !== "date"))) { - errorMessage = msgPrefix + "the arguments to within must be dates"; - } else if ((startType !== "number" || finishType !== "number") && (doLength || objType === "number")) { - errorMessage = msgPrefix + "the arguments to within must be numbers"; - } else if (!doLength && (objType !== "date" && objType !== "number")) { - var printObj = objType === "string" ? "'" + obj + "'" : obj; - errorMessage = msgPrefix + "expected " + printObj + " to be a number or a date"; - } else { - shouldThrow = false; - } - if (shouldThrow) { - throw new AssertionError(errorMessage, void 0, ssfi); - } - if (doLength) { - var descriptor = "length", itemsCount; - if (objType === "map" || objType === "set") { - descriptor = "size"; - itemsCount = obj.size; - } else { - itemsCount = obj.length; - } - this.assert(itemsCount >= start && itemsCount <= finish, "expected #{this} to have a " + descriptor + " within " + range, "expected #{this} to not have a " + descriptor + " within " + range); - } else { - this.assert(obj >= start && obj <= finish, "expected #{this} to be within " + range, "expected #{this} to not be within " + range); - } - }); - function assertInstanceOf(constructor, msg) { - if (msg) - flag(this, "message", msg); - var target = flag(this, "object"); - var ssfi = flag(this, "ssfi"); - var flagMsg = flag(this, "message"); - try { - var isInstanceOf = target instanceof constructor; - } catch (err) { - if (err instanceof TypeError) { - flagMsg = flagMsg ? flagMsg + ": " : ""; - throw new AssertionError(flagMsg + "The instanceof assertion needs a constructor but " + _.type(constructor) + " was given.", void 0, ssfi); - } - throw err; - } - var name = _.getName(constructor); - if (name === null) { - name = "an unnamed constructor"; - } - this.assert(isInstanceOf, "expected #{this} to be an instance of " + name, "expected #{this} to not be an instance of " + name); - } - ; - Assertion.addMethod("instanceof", assertInstanceOf); - Assertion.addMethod("instanceOf", assertInstanceOf); - function assertProperty(name, val, msg) { - if (msg) - flag(this, "message", msg); - var isNested = flag(this, "nested"), isOwn = flag(this, "own"), flagMsg = flag(this, "message"), obj = flag(this, "object"), ssfi = flag(this, "ssfi"), nameType = typeof name; - flagMsg = flagMsg ? flagMsg + ": " : ""; - if (isNested) { - if (nameType !== "string") { - throw new AssertionError(flagMsg + "the argument to property must be a string when using nested syntax", void 0, ssfi); - } - } else { - if (nameType !== "string" && nameType !== "number" && nameType !== "symbol") { - throw new AssertionError(flagMsg + "the argument to property must be a string, number, or symbol", void 0, ssfi); - } - } - if (isNested && isOwn) { - throw new AssertionError(flagMsg + 'The "nested" and "own" flags cannot be combined.', void 0, ssfi); - } - if (obj === null || obj === void 0) { - throw new AssertionError(flagMsg + "Target cannot be null or undefined.", void 0, ssfi); - } - var isDeep = flag(this, "deep"), negate = flag(this, "negate"), pathInfo = isNested ? _.getPathInfo(obj, name) : null, value = isNested ? pathInfo.value : obj[name]; - var descriptor = ""; - if (isDeep) - descriptor += "deep "; - if (isOwn) - descriptor += "own "; - if (isNested) - descriptor += "nested "; - descriptor += "property "; - var hasProperty; - if (isOwn) - hasProperty = Object.prototype.hasOwnProperty.call(obj, name); - else if (isNested) - hasProperty = pathInfo.exists; - else - hasProperty = _.hasProperty(obj, name); - if (!negate || arguments.length === 1) { - this.assert(hasProperty, "expected #{this} to have " + descriptor + _.inspect(name), "expected #{this} to not have " + descriptor + _.inspect(name)); - } - if (arguments.length > 1) { - this.assert(hasProperty && (isDeep ? _.eql(val, value) : val === value), "expected #{this} to have " + descriptor + _.inspect(name) + " of #{exp}, but got #{act}", "expected #{this} to not have " + descriptor + _.inspect(name) + " of #{act}", val, value); - } - flag(this, "object", value); - } - Assertion.addMethod("property", assertProperty); - function assertOwnProperty(name, value, msg) { - flag(this, "own", true); - assertProperty.apply(this, arguments); - } - Assertion.addMethod("ownProperty", assertOwnProperty); - Assertion.addMethod("haveOwnProperty", assertOwnProperty); - function assertOwnPropertyDescriptor(name, descriptor, msg) { - if (typeof descriptor === "string") { - msg = descriptor; - descriptor = null; - } - if (msg) - flag(this, "message", msg); - var obj = flag(this, "object"); - var actualDescriptor = Object.getOwnPropertyDescriptor(Object(obj), name); - if (actualDescriptor && descriptor) { - this.assert(_.eql(descriptor, actualDescriptor), "expected the own property descriptor for " + _.inspect(name) + " on #{this} to match " + _.inspect(descriptor) + ", got " + _.inspect(actualDescriptor), "expected the own property descriptor for " + _.inspect(name) + " on #{this} to not match " + _.inspect(descriptor), descriptor, actualDescriptor, true); - } else { - this.assert(actualDescriptor, "expected #{this} to have an own property descriptor for " + _.inspect(name), "expected #{this} to not have an own property descriptor for " + _.inspect(name)); - } - flag(this, "object", actualDescriptor); - } - Assertion.addMethod("ownPropertyDescriptor", assertOwnPropertyDescriptor); - Assertion.addMethod("haveOwnPropertyDescriptor", assertOwnPropertyDescriptor); - function assertLengthChain() { - flag(this, "doLength", true); - } - function assertLength(n, msg) { - if (msg) - flag(this, "message", msg); - var obj = flag(this, "object"), objType = _.type(obj).toLowerCase(), flagMsg = flag(this, "message"), ssfi = flag(this, "ssfi"), descriptor = "length", itemsCount; - switch (objType) { - case "map": - case "set": - descriptor = "size"; - itemsCount = obj.size; - break; - default: - new Assertion(obj, flagMsg, ssfi, true).to.have.property("length"); - itemsCount = obj.length; - } - this.assert(itemsCount == n, "expected #{this} to have a " + descriptor + " of #{exp} but got #{act}", "expected #{this} to not have a " + descriptor + " of #{act}", n, itemsCount); - } - Assertion.addChainableMethod("length", assertLength, assertLengthChain); - Assertion.addChainableMethod("lengthOf", assertLength, assertLengthChain); - function assertMatch(re, msg) { - if (msg) - flag(this, "message", msg); - var obj = flag(this, "object"); - this.assert(re.exec(obj), "expected #{this} to match " + re, "expected #{this} not to match " + re); - } - Assertion.addMethod("match", assertMatch); - Assertion.addMethod("matches", assertMatch); - Assertion.addMethod("string", function(str, msg) { - if (msg) - flag(this, "message", msg); - var obj = flag(this, "object"), flagMsg = flag(this, "message"), ssfi = flag(this, "ssfi"); - new Assertion(obj, flagMsg, ssfi, true).is.a("string"); - this.assert(~obj.indexOf(str), "expected #{this} to contain " + _.inspect(str), "expected #{this} to not contain " + _.inspect(str)); - }); - function assertKeys(keys) { - var obj = flag(this, "object"), objType = _.type(obj), keysType = _.type(keys), ssfi = flag(this, "ssfi"), isDeep = flag(this, "deep"), str, deepStr = "", actual, ok = true, flagMsg = flag(this, "message"); - flagMsg = flagMsg ? flagMsg + ": " : ""; - var mixedArgsMsg = flagMsg + "when testing keys against an object or an array you must give a single Array|Object|String argument or multiple String arguments"; - if (objType === "Map" || objType === "Set") { - deepStr = isDeep ? "deeply " : ""; - actual = []; - obj.forEach(function(val, key) { - actual.push(key); - }); - if (keysType !== "Array") { - keys = Array.prototype.slice.call(arguments); - } - } else { - actual = _.getOwnEnumerableProperties(obj); - switch (keysType) { - case "Array": - if (arguments.length > 1) { - throw new AssertionError(mixedArgsMsg, void 0, ssfi); - } - break; - case "Object": - if (arguments.length > 1) { - throw new AssertionError(mixedArgsMsg, void 0, ssfi); - } - keys = Object.keys(keys); - break; - default: - keys = Array.prototype.slice.call(arguments); - } - keys = keys.map(function(val) { - return typeof val === "symbol" ? val : String(val); - }); - } - if (!keys.length) { - throw new AssertionError(flagMsg + "keys required", void 0, ssfi); - } - var len = keys.length, any = flag(this, "any"), all = flag(this, "all"), expected = keys; - if (!any && !all) { - all = true; - } - if (any) { - ok = expected.some(function(expectedKey) { - return actual.some(function(actualKey) { - if (isDeep) { - return _.eql(expectedKey, actualKey); - } else { - return expectedKey === actualKey; - } - }); - }); - } - if (all) { - ok = expected.every(function(expectedKey) { - return actual.some(function(actualKey) { - if (isDeep) { - return _.eql(expectedKey, actualKey); - } else { - return expectedKey === actualKey; - } - }); - }); - if (!flag(this, "contains")) { - ok = ok && keys.length == actual.length; - } - } - if (len > 1) { - keys = keys.map(function(key) { - return _.inspect(key); - }); - var last = keys.pop(); - if (all) { - str = keys.join(", ") + ", and " + last; - } - if (any) { - str = keys.join(", ") + ", or " + last; - } - } else { - str = _.inspect(keys[0]); - } - str = (len > 1 ? "keys " : "key ") + str; - str = (flag(this, "contains") ? "contain " : "have ") + str; - this.assert(ok, "expected #{this} to " + deepStr + str, "expected #{this} to not " + deepStr + str, expected.slice(0).sort(_.compareByInspect), actual.sort(_.compareByInspect), true); - } - Assertion.addMethod("keys", assertKeys); - Assertion.addMethod("key", assertKeys); - function assertThrows(errorLike, errMsgMatcher, msg) { - if (msg) - flag(this, "message", msg); - var obj = flag(this, "object"), ssfi = flag(this, "ssfi"), flagMsg = flag(this, "message"), negate = flag(this, "negate") || false; - new Assertion(obj, flagMsg, ssfi, true).is.a("function"); - if (errorLike instanceof RegExp || typeof errorLike === "string") { - errMsgMatcher = errorLike; - errorLike = null; - } - var caughtErr; - try { - obj(); - } catch (err) { - caughtErr = err; - } - var everyArgIsUndefined = errorLike === void 0 && errMsgMatcher === void 0; - var everyArgIsDefined = Boolean(errorLike && errMsgMatcher); - var errorLikeFail = false; - var errMsgMatcherFail = false; - if (everyArgIsUndefined || !everyArgIsUndefined && !negate) { - var errorLikeString = "an error"; - if (errorLike instanceof Error) { - errorLikeString = "#{exp}"; - } else if (errorLike) { - errorLikeString = _.checkError.getConstructorName(errorLike); - } - this.assert(caughtErr, "expected #{this} to throw " + errorLikeString, "expected #{this} to not throw an error but #{act} was thrown", errorLike && errorLike.toString(), caughtErr instanceof Error ? caughtErr.toString() : typeof caughtErr === "string" ? caughtErr : caughtErr && _.checkError.getConstructorName(caughtErr)); - } - if (errorLike && caughtErr) { - if (errorLike instanceof Error) { - var isCompatibleInstance = _.checkError.compatibleInstance(caughtErr, errorLike); - if (isCompatibleInstance === negate) { - if (everyArgIsDefined && negate) { - errorLikeFail = true; - } else { - this.assert(negate, "expected #{this} to throw #{exp} but #{act} was thrown", "expected #{this} to not throw #{exp}" + (caughtErr && !negate ? " but #{act} was thrown" : ""), errorLike.toString(), caughtErr.toString()); - } - } - } - var isCompatibleConstructor = _.checkError.compatibleConstructor(caughtErr, errorLike); - if (isCompatibleConstructor === negate) { - if (everyArgIsDefined && negate) { - errorLikeFail = true; - } else { - this.assert(negate, "expected #{this} to throw #{exp} but #{act} was thrown", "expected #{this} to not throw #{exp}" + (caughtErr ? " but #{act} was thrown" : ""), errorLike instanceof Error ? errorLike.toString() : errorLike && _.checkError.getConstructorName(errorLike), caughtErr instanceof Error ? caughtErr.toString() : caughtErr && _.checkError.getConstructorName(caughtErr)); - } - } - } - if (caughtErr && errMsgMatcher !== void 0 && errMsgMatcher !== null) { - var placeholder = "including"; - if (errMsgMatcher instanceof RegExp) { - placeholder = "matching"; - } - var isCompatibleMessage = _.checkError.compatibleMessage(caughtErr, errMsgMatcher); - if (isCompatibleMessage === negate) { - if (everyArgIsDefined && negate) { - errMsgMatcherFail = true; - } else { - this.assert(negate, "expected #{this} to throw error " + placeholder + " #{exp} but got #{act}", "expected #{this} to throw error not " + placeholder + " #{exp}", errMsgMatcher, _.checkError.getMessage(caughtErr)); - } - } - } - if (errorLikeFail && errMsgMatcherFail) { - this.assert(negate, "expected #{this} to throw #{exp} but #{act} was thrown", "expected #{this} to not throw #{exp}" + (caughtErr ? " but #{act} was thrown" : ""), errorLike instanceof Error ? errorLike.toString() : errorLike && _.checkError.getConstructorName(errorLike), caughtErr instanceof Error ? caughtErr.toString() : caughtErr && _.checkError.getConstructorName(caughtErr)); - } - flag(this, "object", caughtErr); - } - ; - Assertion.addMethod("throw", assertThrows); - Assertion.addMethod("throws", assertThrows); - Assertion.addMethod("Throw", assertThrows); - function respondTo(method, msg) { - if (msg) - flag(this, "message", msg); - var obj = flag(this, "object"), itself = flag(this, "itself"), context = "function" === typeof obj && !itself ? obj.prototype[method] : obj[method]; - this.assert("function" === typeof context, "expected #{this} to respond to " + _.inspect(method), "expected #{this} to not respond to " + _.inspect(method)); - } - Assertion.addMethod("respondTo", respondTo); - Assertion.addMethod("respondsTo", respondTo); - Assertion.addProperty("itself", function() { - flag(this, "itself", true); - }); - function satisfy(matcher, msg) { - if (msg) - flag(this, "message", msg); - var obj = flag(this, "object"); - var result = matcher(obj); - this.assert(result, "expected #{this} to satisfy " + _.objDisplay(matcher), "expected #{this} to not satisfy" + _.objDisplay(matcher), flag(this, "negate") ? false : true, result); - } - Assertion.addMethod("satisfy", satisfy); - Assertion.addMethod("satisfies", satisfy); - function closeTo(expected, delta, msg) { - if (msg) - flag(this, "message", msg); - var obj = flag(this, "object"), flagMsg = flag(this, "message"), ssfi = flag(this, "ssfi"); - new Assertion(obj, flagMsg, ssfi, true).is.a("number"); - if (typeof expected !== "number" || typeof delta !== "number") { - flagMsg = flagMsg ? flagMsg + ": " : ""; - var deltaMessage = delta === void 0 ? ", and a delta is required" : ""; - throw new AssertionError(flagMsg + "the arguments to closeTo or approximately must be numbers" + deltaMessage, void 0, ssfi); - } - this.assert(Math.abs(obj - expected) <= delta, "expected #{this} to be close to " + expected + " +/- " + delta, "expected #{this} not to be close to " + expected + " +/- " + delta); - } - Assertion.addMethod("closeTo", closeTo); - Assertion.addMethod("approximately", closeTo); - function isSubsetOf(subset, superset, cmp, contains, ordered) { - if (!contains) { - if (subset.length !== superset.length) - return false; - superset = superset.slice(); - } - return subset.every(function(elem, idx) { - if (ordered) - return cmp ? cmp(elem, superset[idx]) : elem === superset[idx]; - if (!cmp) { - var matchIdx = superset.indexOf(elem); - if (matchIdx === -1) - return false; - if (!contains) - superset.splice(matchIdx, 1); - return true; - } - return superset.some(function(elem2, matchIdx2) { - if (!cmp(elem, elem2)) - return false; - if (!contains) - superset.splice(matchIdx2, 1); - return true; - }); - }); - } - Assertion.addMethod("members", function(subset, msg) { - if (msg) - flag(this, "message", msg); - var obj = flag(this, "object"), flagMsg = flag(this, "message"), ssfi = flag(this, "ssfi"); - new Assertion(obj, flagMsg, ssfi, true).to.be.an("array"); - new Assertion(subset, flagMsg, ssfi, true).to.be.an("array"); - var contains = flag(this, "contains"); - var ordered = flag(this, "ordered"); - var subject, failMsg, failNegateMsg; - if (contains) { - subject = ordered ? "an ordered superset" : "a superset"; - failMsg = "expected #{this} to be " + subject + " of #{exp}"; - failNegateMsg = "expected #{this} to not be " + subject + " of #{exp}"; - } else { - subject = ordered ? "ordered members" : "members"; - failMsg = "expected #{this} to have the same " + subject + " as #{exp}"; - failNegateMsg = "expected #{this} to not have the same " + subject + " as #{exp}"; - } - var cmp = flag(this, "deep") ? _.eql : void 0; - this.assert(isSubsetOf(subset, obj, cmp, contains, ordered), failMsg, failNegateMsg, subset, obj, true); - }); - function oneOf(list, msg) { - if (msg) - flag(this, "message", msg); - var expected = flag(this, "object"), flagMsg = flag(this, "message"), ssfi = flag(this, "ssfi"), contains = flag(this, "contains"), isDeep = flag(this, "deep"); - new Assertion(list, flagMsg, ssfi, true).to.be.an("array"); - if (contains) { - this.assert(list.some(function(possibility) { - return expected.indexOf(possibility) > -1; - }), "expected #{this} to contain one of #{exp}", "expected #{this} to not contain one of #{exp}", list, expected); - } else { - if (isDeep) { - this.assert(list.some(function(possibility) { - return _.eql(expected, possibility); - }), "expected #{this} to deeply equal one of #{exp}", "expected #{this} to deeply equal one of #{exp}", list, expected); - } else { - this.assert(list.indexOf(expected) > -1, "expected #{this} to be one of #{exp}", "expected #{this} to not be one of #{exp}", list, expected); - } - } - } - Assertion.addMethod("oneOf", oneOf); - function assertChanges(subject, prop, msg) { - if (msg) - flag(this, "message", msg); - var fn = flag(this, "object"), flagMsg = flag(this, "message"), ssfi = flag(this, "ssfi"); - new Assertion(fn, flagMsg, ssfi, true).is.a("function"); - var initial; - if (!prop) { - new Assertion(subject, flagMsg, ssfi, true).is.a("function"); - initial = subject(); - } else { - new Assertion(subject, flagMsg, ssfi, true).to.have.property(prop); - initial = subject[prop]; - } - fn(); - var final = prop === void 0 || prop === null ? subject() : subject[prop]; - var msgObj = prop === void 0 || prop === null ? initial : "." + prop; - flag(this, "deltaMsgObj", msgObj); - flag(this, "initialDeltaValue", initial); - flag(this, "finalDeltaValue", final); - flag(this, "deltaBehavior", "change"); - flag(this, "realDelta", final !== initial); - this.assert(initial !== final, "expected " + msgObj + " to change", "expected " + msgObj + " to not change"); - } - Assertion.addMethod("change", assertChanges); - Assertion.addMethod("changes", assertChanges); - function assertIncreases(subject, prop, msg) { - if (msg) - flag(this, "message", msg); - var fn = flag(this, "object"), flagMsg = flag(this, "message"), ssfi = flag(this, "ssfi"); - new Assertion(fn, flagMsg, ssfi, true).is.a("function"); - var initial; - if (!prop) { - new Assertion(subject, flagMsg, ssfi, true).is.a("function"); - initial = subject(); - } else { - new Assertion(subject, flagMsg, ssfi, true).to.have.property(prop); - initial = subject[prop]; - } - new Assertion(initial, flagMsg, ssfi, true).is.a("number"); - fn(); - var final = prop === void 0 || prop === null ? subject() : subject[prop]; - var msgObj = prop === void 0 || prop === null ? initial : "." + prop; - flag(this, "deltaMsgObj", msgObj); - flag(this, "initialDeltaValue", initial); - flag(this, "finalDeltaValue", final); - flag(this, "deltaBehavior", "increase"); - flag(this, "realDelta", final - initial); - this.assert(final - initial > 0, "expected " + msgObj + " to increase", "expected " + msgObj + " to not increase"); - } - Assertion.addMethod("increase", assertIncreases); - Assertion.addMethod("increases", assertIncreases); - function assertDecreases(subject, prop, msg) { - if (msg) - flag(this, "message", msg); - var fn = flag(this, "object"), flagMsg = flag(this, "message"), ssfi = flag(this, "ssfi"); - new Assertion(fn, flagMsg, ssfi, true).is.a("function"); - var initial; - if (!prop) { - new Assertion(subject, flagMsg, ssfi, true).is.a("function"); - initial = subject(); - } else { - new Assertion(subject, flagMsg, ssfi, true).to.have.property(prop); - initial = subject[prop]; - } - new Assertion(initial, flagMsg, ssfi, true).is.a("number"); - fn(); - var final = prop === void 0 || prop === null ? subject() : subject[prop]; - var msgObj = prop === void 0 || prop === null ? initial : "." + prop; - flag(this, "deltaMsgObj", msgObj); - flag(this, "initialDeltaValue", initial); - flag(this, "finalDeltaValue", final); - flag(this, "deltaBehavior", "decrease"); - flag(this, "realDelta", initial - final); - this.assert(final - initial < 0, "expected " + msgObj + " to decrease", "expected " + msgObj + " to not decrease"); - } - Assertion.addMethod("decrease", assertDecreases); - Assertion.addMethod("decreases", assertDecreases); - function assertDelta(delta, msg) { - if (msg) - flag(this, "message", msg); - var msgObj = flag(this, "deltaMsgObj"); - var initial = flag(this, "initialDeltaValue"); - var final = flag(this, "finalDeltaValue"); - var behavior = flag(this, "deltaBehavior"); - var realDelta = flag(this, "realDelta"); - var expression; - if (behavior === "change") { - expression = Math.abs(final - initial) === Math.abs(delta); - } else { - expression = realDelta === Math.abs(delta); - } - this.assert(expression, "expected " + msgObj + " to " + behavior + " by " + delta, "expected " + msgObj + " to not " + behavior + " by " + delta); - } - Assertion.addMethod("by", assertDelta); - Assertion.addProperty("extensible", function() { - var obj = flag(this, "object"); - var isExtensible = obj === Object(obj) && Object.isExtensible(obj); - this.assert(isExtensible, "expected #{this} to be extensible", "expected #{this} to not be extensible"); - }); - Assertion.addProperty("sealed", function() { - var obj = flag(this, "object"); - var isSealed = obj === Object(obj) ? Object.isSealed(obj) : true; - this.assert(isSealed, "expected #{this} to be sealed", "expected #{this} to not be sealed"); - }); - Assertion.addProperty("frozen", function() { - var obj = flag(this, "object"); - var isFrozen = obj === Object(obj) ? Object.isFrozen(obj) : true; - this.assert(isFrozen, "expected #{this} to be frozen", "expected #{this} to not be frozen"); - }); - Assertion.addProperty("finite", function(msg) { - var obj = flag(this, "object"); - this.assert(typeof obj === "number" && isFinite(obj), "expected #{this} to be a finite number", "expected #{this} to not be a finite number"); - }); - }; - } - }); - - // node_modules/chai/lib/chai/interface/expect.js - var require_expect = __commonJS({ - "node_modules/chai/lib/chai/interface/expect.js"(exports, module) { - module.exports = function(chai, util) { - chai.expect = function(val, message) { - return new chai.Assertion(val, message); - }; - chai.expect.fail = function(actual, expected, message, operator) { - if (arguments.length < 2) { - message = actual; - actual = void 0; - } - message = message || "expect.fail()"; - throw new chai.AssertionError(message, { - actual, - expected, - operator - }, chai.expect.fail); - }; - }; - } - }); - - // node_modules/chai/lib/chai/interface/should.js - var require_should = __commonJS({ - "node_modules/chai/lib/chai/interface/should.js"(exports, module) { - module.exports = function(chai, util) { - var Assertion = chai.Assertion; - function loadShould() { - function shouldGetter() { - if (this instanceof String || this instanceof Number || this instanceof Boolean || typeof Symbol === "function" && this instanceof Symbol || typeof BigInt === "function" && this instanceof BigInt) { - return new Assertion(this.valueOf(), null, shouldGetter); - } - return new Assertion(this, null, shouldGetter); - } - function shouldSetter(value) { - Object.defineProperty(this, "should", { - value, - enumerable: true, - configurable: true, - writable: true - }); - } - Object.defineProperty(Object.prototype, "should", { - set: shouldSetter, - get: shouldGetter, - configurable: true - }); - var should = {}; - should.fail = function(actual, expected, message, operator) { - if (arguments.length < 2) { - message = actual; - actual = void 0; - } - message = message || "should.fail()"; - throw new chai.AssertionError(message, { - actual, - expected, - operator - }, should.fail); - }; - should.equal = function(val1, val2, msg) { - new Assertion(val1, msg).to.equal(val2); - }; - should.Throw = function(fn, errt, errs, msg) { - new Assertion(fn, msg).to.Throw(errt, errs); - }; - should.exist = function(val, msg) { - new Assertion(val, msg).to.exist; - }; - should.not = {}; - should.not.equal = function(val1, val2, msg) { - new Assertion(val1, msg).to.not.equal(val2); - }; - should.not.Throw = function(fn, errt, errs, msg) { - new Assertion(fn, msg).to.not.Throw(errt, errs); - }; - should.not.exist = function(val, msg) { - new Assertion(val, msg).to.not.exist; - }; - should["throw"] = should["Throw"]; - should.not["throw"] = should.not["Throw"]; - return should; - } - ; - chai.should = loadShould; - chai.Should = loadShould; - }; - } - }); - - // node_modules/chai/lib/chai/interface/assert.js - var require_assert = __commonJS({ - "node_modules/chai/lib/chai/interface/assert.js"(exports, module) { - module.exports = function(chai, util) { - var Assertion = chai.Assertion, flag = util.flag; - var assert = chai.assert = function(express, errmsg) { - var test = new Assertion(null, null, chai.assert, true); - test.assert(express, errmsg, "[ negation message unavailable ]"); - }; - assert.fail = function(actual, expected, message, operator) { - if (arguments.length < 2) { - message = actual; - actual = void 0; - } - message = message || "assert.fail()"; - throw new chai.AssertionError(message, { - actual, - expected, - operator - }, assert.fail); - }; - assert.isOk = function(val, msg) { - new Assertion(val, msg, assert.isOk, true).is.ok; - }; - assert.isNotOk = function(val, msg) { - new Assertion(val, msg, assert.isNotOk, true).is.not.ok; - }; - assert.equal = function(act, exp, msg) { - var test = new Assertion(act, msg, assert.equal, true); - test.assert(exp == flag(test, "object"), "expected #{this} to equal #{exp}", "expected #{this} to not equal #{act}", exp, act, true); - }; - assert.notEqual = function(act, exp, msg) { - var test = new Assertion(act, msg, assert.notEqual, true); - test.assert(exp != flag(test, "object"), "expected #{this} to not equal #{exp}", "expected #{this} to equal #{act}", exp, act, true); - }; - assert.strictEqual = function(act, exp, msg) { - new Assertion(act, msg, assert.strictEqual, true).to.equal(exp); - }; - assert.notStrictEqual = function(act, exp, msg) { - new Assertion(act, msg, assert.notStrictEqual, true).to.not.equal(exp); - }; - assert.deepEqual = assert.deepStrictEqual = function(act, exp, msg) { - new Assertion(act, msg, assert.deepEqual, true).to.eql(exp); - }; - assert.notDeepEqual = function(act, exp, msg) { - new Assertion(act, msg, assert.notDeepEqual, true).to.not.eql(exp); - }; - assert.isAbove = function(val, abv, msg) { - new Assertion(val, msg, assert.isAbove, true).to.be.above(abv); - }; - assert.isAtLeast = function(val, atlst, msg) { - new Assertion(val, msg, assert.isAtLeast, true).to.be.least(atlst); - }; - assert.isBelow = function(val, blw, msg) { - new Assertion(val, msg, assert.isBelow, true).to.be.below(blw); - }; - assert.isAtMost = function(val, atmst, msg) { - new Assertion(val, msg, assert.isAtMost, true).to.be.most(atmst); - }; - assert.isTrue = function(val, msg) { - new Assertion(val, msg, assert.isTrue, true).is["true"]; - }; - assert.isNotTrue = function(val, msg) { - new Assertion(val, msg, assert.isNotTrue, true).to.not.equal(true); - }; - assert.isFalse = function(val, msg) { - new Assertion(val, msg, assert.isFalse, true).is["false"]; - }; - assert.isNotFalse = function(val, msg) { - new Assertion(val, msg, assert.isNotFalse, true).to.not.equal(false); - }; - assert.isNull = function(val, msg) { - new Assertion(val, msg, assert.isNull, true).to.equal(null); - }; - assert.isNotNull = function(val, msg) { - new Assertion(val, msg, assert.isNotNull, true).to.not.equal(null); - }; - assert.isNaN = function(val, msg) { - new Assertion(val, msg, assert.isNaN, true).to.be.NaN; - }; - assert.isNotNaN = function(val, msg) { - new Assertion(val, msg, assert.isNotNaN, true).not.to.be.NaN; - }; - assert.exists = function(val, msg) { - new Assertion(val, msg, assert.exists, true).to.exist; - }; - assert.notExists = function(val, msg) { - new Assertion(val, msg, assert.notExists, true).to.not.exist; - }; - assert.isUndefined = function(val, msg) { - new Assertion(val, msg, assert.isUndefined, true).to.equal(void 0); - }; - assert.isDefined = function(val, msg) { - new Assertion(val, msg, assert.isDefined, true).to.not.equal(void 0); - }; - assert.isFunction = function(val, msg) { - new Assertion(val, msg, assert.isFunction, true).to.be.a("function"); - }; - assert.isNotFunction = function(val, msg) { - new Assertion(val, msg, assert.isNotFunction, true).to.not.be.a("function"); - }; - assert.isObject = function(val, msg) { - new Assertion(val, msg, assert.isObject, true).to.be.a("object"); - }; - assert.isNotObject = function(val, msg) { - new Assertion(val, msg, assert.isNotObject, true).to.not.be.a("object"); - }; - assert.isArray = function(val, msg) { - new Assertion(val, msg, assert.isArray, true).to.be.an("array"); - }; - assert.isNotArray = function(val, msg) { - new Assertion(val, msg, assert.isNotArray, true).to.not.be.an("array"); - }; - assert.isString = function(val, msg) { - new Assertion(val, msg, assert.isString, true).to.be.a("string"); - }; - assert.isNotString = function(val, msg) { - new Assertion(val, msg, assert.isNotString, true).to.not.be.a("string"); - }; - assert.isNumber = function(val, msg) { - new Assertion(val, msg, assert.isNumber, true).to.be.a("number"); - }; - assert.isNotNumber = function(val, msg) { - new Assertion(val, msg, assert.isNotNumber, true).to.not.be.a("number"); - }; - assert.isFinite = function(val, msg) { - new Assertion(val, msg, assert.isFinite, true).to.be.finite; - }; - assert.isBoolean = function(val, msg) { - new Assertion(val, msg, assert.isBoolean, true).to.be.a("boolean"); - }; - assert.isNotBoolean = function(val, msg) { - new Assertion(val, msg, assert.isNotBoolean, true).to.not.be.a("boolean"); - }; - assert.typeOf = function(val, type, msg) { - new Assertion(val, msg, assert.typeOf, true).to.be.a(type); - }; - assert.notTypeOf = function(val, type, msg) { - new Assertion(val, msg, assert.notTypeOf, true).to.not.be.a(type); - }; - assert.instanceOf = function(val, type, msg) { - new Assertion(val, msg, assert.instanceOf, true).to.be.instanceOf(type); - }; - assert.notInstanceOf = function(val, type, msg) { - new Assertion(val, msg, assert.notInstanceOf, true).to.not.be.instanceOf(type); - }; - assert.include = function(exp, inc, msg) { - new Assertion(exp, msg, assert.include, true).include(inc); - }; - assert.notInclude = function(exp, inc, msg) { - new Assertion(exp, msg, assert.notInclude, true).not.include(inc); - }; - assert.deepInclude = function(exp, inc, msg) { - new Assertion(exp, msg, assert.deepInclude, true).deep.include(inc); - }; - assert.notDeepInclude = function(exp, inc, msg) { - new Assertion(exp, msg, assert.notDeepInclude, true).not.deep.include(inc); - }; - assert.nestedInclude = function(exp, inc, msg) { - new Assertion(exp, msg, assert.nestedInclude, true).nested.include(inc); - }; - assert.notNestedInclude = function(exp, inc, msg) { - new Assertion(exp, msg, assert.notNestedInclude, true).not.nested.include(inc); - }; - assert.deepNestedInclude = function(exp, inc, msg) { - new Assertion(exp, msg, assert.deepNestedInclude, true).deep.nested.include(inc); - }; - assert.notDeepNestedInclude = function(exp, inc, msg) { - new Assertion(exp, msg, assert.notDeepNestedInclude, true).not.deep.nested.include(inc); - }; - assert.ownInclude = function(exp, inc, msg) { - new Assertion(exp, msg, assert.ownInclude, true).own.include(inc); - }; - assert.notOwnInclude = function(exp, inc, msg) { - new Assertion(exp, msg, assert.notOwnInclude, true).not.own.include(inc); - }; - assert.deepOwnInclude = function(exp, inc, msg) { - new Assertion(exp, msg, assert.deepOwnInclude, true).deep.own.include(inc); - }; - assert.notDeepOwnInclude = function(exp, inc, msg) { - new Assertion(exp, msg, assert.notDeepOwnInclude, true).not.deep.own.include(inc); - }; - assert.match = function(exp, re, msg) { - new Assertion(exp, msg, assert.match, true).to.match(re); - }; - assert.notMatch = function(exp, re, msg) { - new Assertion(exp, msg, assert.notMatch, true).to.not.match(re); - }; - assert.property = function(obj, prop, msg) { - new Assertion(obj, msg, assert.property, true).to.have.property(prop); - }; - assert.notProperty = function(obj, prop, msg) { - new Assertion(obj, msg, assert.notProperty, true).to.not.have.property(prop); - }; - assert.propertyVal = function(obj, prop, val, msg) { - new Assertion(obj, msg, assert.propertyVal, true).to.have.property(prop, val); - }; - assert.notPropertyVal = function(obj, prop, val, msg) { - new Assertion(obj, msg, assert.notPropertyVal, true).to.not.have.property(prop, val); - }; - assert.deepPropertyVal = function(obj, prop, val, msg) { - new Assertion(obj, msg, assert.deepPropertyVal, true).to.have.deep.property(prop, val); - }; - assert.notDeepPropertyVal = function(obj, prop, val, msg) { - new Assertion(obj, msg, assert.notDeepPropertyVal, true).to.not.have.deep.property(prop, val); - }; - assert.ownProperty = function(obj, prop, msg) { - new Assertion(obj, msg, assert.ownProperty, true).to.have.own.property(prop); - }; - assert.notOwnProperty = function(obj, prop, msg) { - new Assertion(obj, msg, assert.notOwnProperty, true).to.not.have.own.property(prop); - }; - assert.ownPropertyVal = function(obj, prop, value, msg) { - new Assertion(obj, msg, assert.ownPropertyVal, true).to.have.own.property(prop, value); - }; - assert.notOwnPropertyVal = function(obj, prop, value, msg) { - new Assertion(obj, msg, assert.notOwnPropertyVal, true).to.not.have.own.property(prop, value); - }; - assert.deepOwnPropertyVal = function(obj, prop, value, msg) { - new Assertion(obj, msg, assert.deepOwnPropertyVal, true).to.have.deep.own.property(prop, value); - }; - assert.notDeepOwnPropertyVal = function(obj, prop, value, msg) { - new Assertion(obj, msg, assert.notDeepOwnPropertyVal, true).to.not.have.deep.own.property(prop, value); - }; - assert.nestedProperty = function(obj, prop, msg) { - new Assertion(obj, msg, assert.nestedProperty, true).to.have.nested.property(prop); - }; - assert.notNestedProperty = function(obj, prop, msg) { - new Assertion(obj, msg, assert.notNestedProperty, true).to.not.have.nested.property(prop); - }; - assert.nestedPropertyVal = function(obj, prop, val, msg) { - new Assertion(obj, msg, assert.nestedPropertyVal, true).to.have.nested.property(prop, val); - }; - assert.notNestedPropertyVal = function(obj, prop, val, msg) { - new Assertion(obj, msg, assert.notNestedPropertyVal, true).to.not.have.nested.property(prop, val); - }; - assert.deepNestedPropertyVal = function(obj, prop, val, msg) { - new Assertion(obj, msg, assert.deepNestedPropertyVal, true).to.have.deep.nested.property(prop, val); - }; - assert.notDeepNestedPropertyVal = function(obj, prop, val, msg) { - new Assertion(obj, msg, assert.notDeepNestedPropertyVal, true).to.not.have.deep.nested.property(prop, val); - }; - assert.lengthOf = function(exp, len, msg) { - new Assertion(exp, msg, assert.lengthOf, true).to.have.lengthOf(len); - }; - assert.hasAnyKeys = function(obj, keys, msg) { - new Assertion(obj, msg, assert.hasAnyKeys, true).to.have.any.keys(keys); - }; - assert.hasAllKeys = function(obj, keys, msg) { - new Assertion(obj, msg, assert.hasAllKeys, true).to.have.all.keys(keys); - }; - assert.containsAllKeys = function(obj, keys, msg) { - new Assertion(obj, msg, assert.containsAllKeys, true).to.contain.all.keys(keys); - }; - assert.doesNotHaveAnyKeys = function(obj, keys, msg) { - new Assertion(obj, msg, assert.doesNotHaveAnyKeys, true).to.not.have.any.keys(keys); - }; - assert.doesNotHaveAllKeys = function(obj, keys, msg) { - new Assertion(obj, msg, assert.doesNotHaveAllKeys, true).to.not.have.all.keys(keys); - }; - assert.hasAnyDeepKeys = function(obj, keys, msg) { - new Assertion(obj, msg, assert.hasAnyDeepKeys, true).to.have.any.deep.keys(keys); - }; - assert.hasAllDeepKeys = function(obj, keys, msg) { - new Assertion(obj, msg, assert.hasAllDeepKeys, true).to.have.all.deep.keys(keys); - }; - assert.containsAllDeepKeys = function(obj, keys, msg) { - new Assertion(obj, msg, assert.containsAllDeepKeys, true).to.contain.all.deep.keys(keys); - }; - assert.doesNotHaveAnyDeepKeys = function(obj, keys, msg) { - new Assertion(obj, msg, assert.doesNotHaveAnyDeepKeys, true).to.not.have.any.deep.keys(keys); - }; - assert.doesNotHaveAllDeepKeys = function(obj, keys, msg) { - new Assertion(obj, msg, assert.doesNotHaveAllDeepKeys, true).to.not.have.all.deep.keys(keys); - }; - assert.throws = function(fn, errorLike, errMsgMatcher, msg) { - if ("string" === typeof errorLike || errorLike instanceof RegExp) { - errMsgMatcher = errorLike; - errorLike = null; - } - var assertErr = new Assertion(fn, msg, assert.throws, true).to.throw(errorLike, errMsgMatcher); - return flag(assertErr, "object"); - }; - assert.doesNotThrow = function(fn, errorLike, errMsgMatcher, msg) { - if ("string" === typeof errorLike || errorLike instanceof RegExp) { - errMsgMatcher = errorLike; - errorLike = null; - } - new Assertion(fn, msg, assert.doesNotThrow, true).to.not.throw(errorLike, errMsgMatcher); - }; - assert.operator = function(val, operator, val2, msg) { - var ok; - switch (operator) { - case "==": - ok = val == val2; - break; - case "===": - ok = val === val2; - break; - case ">": - ok = val > val2; - break; - case ">=": - ok = val >= val2; - break; - case "<": - ok = val < val2; - break; - case "<=": - ok = val <= val2; - break; - case "!=": - ok = val != val2; - break; - case "!==": - ok = val !== val2; - break; - default: - msg = msg ? msg + ": " : msg; - throw new chai.AssertionError(msg + 'Invalid operator "' + operator + '"', void 0, assert.operator); - } - var test = new Assertion(ok, msg, assert.operator, true); - test.assert(true === flag(test, "object"), "expected " + util.inspect(val) + " to be " + operator + " " + util.inspect(val2), "expected " + util.inspect(val) + " to not be " + operator + " " + util.inspect(val2)); - }; - assert.closeTo = function(act, exp, delta, msg) { - new Assertion(act, msg, assert.closeTo, true).to.be.closeTo(exp, delta); - }; - assert.approximately = function(act, exp, delta, msg) { - new Assertion(act, msg, assert.approximately, true).to.be.approximately(exp, delta); - }; - assert.sameMembers = function(set1, set2, msg) { - new Assertion(set1, msg, assert.sameMembers, true).to.have.same.members(set2); - }; - assert.notSameMembers = function(set1, set2, msg) { - new Assertion(set1, msg, assert.notSameMembers, true).to.not.have.same.members(set2); - }; - assert.sameDeepMembers = function(set1, set2, msg) { - new Assertion(set1, msg, assert.sameDeepMembers, true).to.have.same.deep.members(set2); - }; - assert.notSameDeepMembers = function(set1, set2, msg) { - new Assertion(set1, msg, assert.notSameDeepMembers, true).to.not.have.same.deep.members(set2); - }; - assert.sameOrderedMembers = function(set1, set2, msg) { - new Assertion(set1, msg, assert.sameOrderedMembers, true).to.have.same.ordered.members(set2); - }; - assert.notSameOrderedMembers = function(set1, set2, msg) { - new Assertion(set1, msg, assert.notSameOrderedMembers, true).to.not.have.same.ordered.members(set2); - }; - assert.sameDeepOrderedMembers = function(set1, set2, msg) { - new Assertion(set1, msg, assert.sameDeepOrderedMembers, true).to.have.same.deep.ordered.members(set2); - }; - assert.notSameDeepOrderedMembers = function(set1, set2, msg) { - new Assertion(set1, msg, assert.notSameDeepOrderedMembers, true).to.not.have.same.deep.ordered.members(set2); - }; - assert.includeMembers = function(superset, subset, msg) { - new Assertion(superset, msg, assert.includeMembers, true).to.include.members(subset); - }; - assert.notIncludeMembers = function(superset, subset, msg) { - new Assertion(superset, msg, assert.notIncludeMembers, true).to.not.include.members(subset); - }; - assert.includeDeepMembers = function(superset, subset, msg) { - new Assertion(superset, msg, assert.includeDeepMembers, true).to.include.deep.members(subset); - }; - assert.notIncludeDeepMembers = function(superset, subset, msg) { - new Assertion(superset, msg, assert.notIncludeDeepMembers, true).to.not.include.deep.members(subset); - }; - assert.includeOrderedMembers = function(superset, subset, msg) { - new Assertion(superset, msg, assert.includeOrderedMembers, true).to.include.ordered.members(subset); - }; - assert.notIncludeOrderedMembers = function(superset, subset, msg) { - new Assertion(superset, msg, assert.notIncludeOrderedMembers, true).to.not.include.ordered.members(subset); - }; - assert.includeDeepOrderedMembers = function(superset, subset, msg) { - new Assertion(superset, msg, assert.includeDeepOrderedMembers, true).to.include.deep.ordered.members(subset); - }; - assert.notIncludeDeepOrderedMembers = function(superset, subset, msg) { - new Assertion(superset, msg, assert.notIncludeDeepOrderedMembers, true).to.not.include.deep.ordered.members(subset); - }; - assert.oneOf = function(inList, list, msg) { - new Assertion(inList, msg, assert.oneOf, true).to.be.oneOf(list); - }; - assert.changes = function(fn, obj, prop, msg) { - if (arguments.length === 3 && typeof obj === "function") { - msg = prop; - prop = null; - } - new Assertion(fn, msg, assert.changes, true).to.change(obj, prop); - }; - assert.changesBy = function(fn, obj, prop, delta, msg) { - if (arguments.length === 4 && typeof obj === "function") { - var tmpMsg = delta; - delta = prop; - msg = tmpMsg; - } else if (arguments.length === 3) { - delta = prop; - prop = null; - } - new Assertion(fn, msg, assert.changesBy, true).to.change(obj, prop).by(delta); - }; - assert.doesNotChange = function(fn, obj, prop, msg) { - if (arguments.length === 3 && typeof obj === "function") { - msg = prop; - prop = null; - } - return new Assertion(fn, msg, assert.doesNotChange, true).to.not.change(obj, prop); - }; - assert.changesButNotBy = function(fn, obj, prop, delta, msg) { - if (arguments.length === 4 && typeof obj === "function") { - var tmpMsg = delta; - delta = prop; - msg = tmpMsg; - } else if (arguments.length === 3) { - delta = prop; - prop = null; - } - new Assertion(fn, msg, assert.changesButNotBy, true).to.change(obj, prop).but.not.by(delta); - }; - assert.increases = function(fn, obj, prop, msg) { - if (arguments.length === 3 && typeof obj === "function") { - msg = prop; - prop = null; - } - return new Assertion(fn, msg, assert.increases, true).to.increase(obj, prop); - }; - assert.increasesBy = function(fn, obj, prop, delta, msg) { - if (arguments.length === 4 && typeof obj === "function") { - var tmpMsg = delta; - delta = prop; - msg = tmpMsg; - } else if (arguments.length === 3) { - delta = prop; - prop = null; - } - new Assertion(fn, msg, assert.increasesBy, true).to.increase(obj, prop).by(delta); - }; - assert.doesNotIncrease = function(fn, obj, prop, msg) { - if (arguments.length === 3 && typeof obj === "function") { - msg = prop; - prop = null; - } - return new Assertion(fn, msg, assert.doesNotIncrease, true).to.not.increase(obj, prop); - }; - assert.increasesButNotBy = function(fn, obj, prop, delta, msg) { - if (arguments.length === 4 && typeof obj === "function") { - var tmpMsg = delta; - delta = prop; - msg = tmpMsg; - } else if (arguments.length === 3) { - delta = prop; - prop = null; - } - new Assertion(fn, msg, assert.increasesButNotBy, true).to.increase(obj, prop).but.not.by(delta); - }; - assert.decreases = function(fn, obj, prop, msg) { - if (arguments.length === 3 && typeof obj === "function") { - msg = prop; - prop = null; - } - return new Assertion(fn, msg, assert.decreases, true).to.decrease(obj, prop); - }; - assert.decreasesBy = function(fn, obj, prop, delta, msg) { - if (arguments.length === 4 && typeof obj === "function") { - var tmpMsg = delta; - delta = prop; - msg = tmpMsg; - } else if (arguments.length === 3) { - delta = prop; - prop = null; - } - new Assertion(fn, msg, assert.decreasesBy, true).to.decrease(obj, prop).by(delta); - }; - assert.doesNotDecrease = function(fn, obj, prop, msg) { - if (arguments.length === 3 && typeof obj === "function") { - msg = prop; - prop = null; - } - return new Assertion(fn, msg, assert.doesNotDecrease, true).to.not.decrease(obj, prop); - }; - assert.doesNotDecreaseBy = function(fn, obj, prop, delta, msg) { - if (arguments.length === 4 && typeof obj === "function") { - var tmpMsg = delta; - delta = prop; - msg = tmpMsg; - } else if (arguments.length === 3) { - delta = prop; - prop = null; - } - return new Assertion(fn, msg, assert.doesNotDecreaseBy, true).to.not.decrease(obj, prop).by(delta); - }; - assert.decreasesButNotBy = function(fn, obj, prop, delta, msg) { - if (arguments.length === 4 && typeof obj === "function") { - var tmpMsg = delta; - delta = prop; - msg = tmpMsg; - } else if (arguments.length === 3) { - delta = prop; - prop = null; - } - new Assertion(fn, msg, assert.decreasesButNotBy, true).to.decrease(obj, prop).but.not.by(delta); - }; - assert.ifError = function(val) { - if (val) { - throw val; - } - }; - assert.isExtensible = function(obj, msg) { - new Assertion(obj, msg, assert.isExtensible, true).to.be.extensible; - }; - assert.isNotExtensible = function(obj, msg) { - new Assertion(obj, msg, assert.isNotExtensible, true).to.not.be.extensible; - }; - assert.isSealed = function(obj, msg) { - new Assertion(obj, msg, assert.isSealed, true).to.be.sealed; - }; - assert.isNotSealed = function(obj, msg) { - new Assertion(obj, msg, assert.isNotSealed, true).to.not.be.sealed; - }; - assert.isFrozen = function(obj, msg) { - new Assertion(obj, msg, assert.isFrozen, true).to.be.frozen; - }; - assert.isNotFrozen = function(obj, msg) { - new Assertion(obj, msg, assert.isNotFrozen, true).to.not.be.frozen; - }; - assert.isEmpty = function(val, msg) { - new Assertion(val, msg, assert.isEmpty, true).to.be.empty; - }; - assert.isNotEmpty = function(val, msg) { - new Assertion(val, msg, assert.isNotEmpty, true).to.not.be.empty; - }; - (function alias(name, as) { - assert[as] = assert[name]; - return alias; - })("isOk", "ok")("isNotOk", "notOk")("throws", "throw")("throws", "Throw")("isExtensible", "extensible")("isNotExtensible", "notExtensible")("isSealed", "sealed")("isNotSealed", "notSealed")("isFrozen", "frozen")("isNotFrozen", "notFrozen")("isEmpty", "empty")("isNotEmpty", "notEmpty"); - }; - } - }); - - // node_modules/chai/lib/chai.js - var require_chai = __commonJS({ - "node_modules/chai/lib/chai.js"(exports) { - var used = []; - exports.version = "4.3.3"; - exports.AssertionError = require_assertion_error(); - var util = require_utils(); - exports.use = function(fn) { - if (!~used.indexOf(fn)) { - fn(exports, util); - used.push(fn); - } - return exports; - }; - exports.util = util; - var config = require_config(); - exports.config = config; - var assertion = require_assertion(); - exports.use(assertion); - var core = require_assertions(); - exports.use(core); - var expect = require_expect(); - exports.use(expect); - var should = require_should(); - exports.use(should); - var assert = require_assert(); - exports.use(assert); - } - }); - - // node_modules/chai/index.js - var require_chai2 = __commonJS({ - "node_modules/chai/index.js"(exports, module) { - module.exports = require_chai(); - } - }); - - // test/browser/src/base.test.cjs - var require_base_test = __commonJS({ - "test/browser/src/base.test.cjs"() { - var { getDirname, getFilename } = require_cjs(); - var { expect } = require_chai2(); - describe("Browser CJS", () => { - it("getDirname() should be a string", function() { - console.debug(" getDirname() ->", getDirname()); - expect(getDirname()).to.be.a("string"); - }); - it("getFilename() should be a string", function() { - console.debug(" getFilename() ->", getFilename()); - expect(getFilename()).to.be.a("string"); - }); - it('getFilename() should end with "base.test.js"', function() { - expect(getFilename().endsWith("base.test.js")).to.be.true; - }); - }); - } - }); - require_base_test(); -})(); -/*! - * ### ._obj - * - * Quick reference to stored `actual` value for plugin developers. - * - * @api private - */ -/*! - * ### .ifError(object) - * - * Asserts if value is not a false value, and throws if it is a true value. - * This is added to allow for chai to be a drop-in replacement for Node's - * assert class. - * - * var err = new Error('I am a custom error'); - * assert.ifError(err); // Rethrows err! - * - * @name ifError - * @param {Object} object - * @namespace Assert - * @api public - */ -/*! - * Add a chainable method - */ -/*! - * Aliases. - */ -/*! - * Assert interface - */ -/*! - * Assertion Constructor - * - * Creates object for chaining. - * - * `Assertion` objects contain metadata in the form of flags. Three flags can - * be assigned during instantiation by passing arguments to this constructor: - * - * - `object`: This flag contains the target of the assertion. For example, in - * the assertion `expect(numKittens).to.equal(7);`, the `object` flag will - * contain `numKittens` so that the `equal` assertion can reference it when - * needed. - * - * - `message`: This flag contains an optional custom error message to be - * prepended to the error message that's generated by the assertion when it - * fails. - * - * - `ssfi`: This flag stands for "start stack function indicator". It - * contains a function reference that serves as the starting point for - * removing frames from the stack trace of the error that's created by the - * assertion when it fails. The goal is to provide a cleaner stack trace to - * end users by removing Chai's internal functions. Note that it only works - * in environments that support `Error.captureStackTrace`, and only when - * `Chai.config.includeStack` hasn't been set to `false`. - * - * - `lockSsfi`: This flag controls whether or not the given `ssfi` flag - * should retain its current value, even as assertions are chained off of - * this object. This is usually set to `true` when creating a new assertion - * from within another assertion. It's also temporarily set to `true` before - * an overwritten assertion gets called by the overwriting assertion. - * - * @param {Mixed} obj target of the assertion - * @param {String} msg (optional) custom error message - * @param {Function} ssfi (optional) starting point for removing stack frames - * @param {Boolean} lockSsfi (optional) whether or not the ssfi flag is locked - * @api private - */ -/*! - * Assertion Error - */ -/*! - * Chai - addChainingMethod utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ -/*! - * Chai - addLengthGuard utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ -/*! - * Chai - addMethod utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ -/*! - * Chai - addProperty utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ -/*! - * Chai - compareByInspect utility - * Copyright(c) 2011-2016 Jake Luer - * MIT Licensed - */ -/*! - * Chai - expectTypes utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ -/*! - * Chai - flag utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ -/*! - * Chai - getActual utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ -/*! - * Chai - getOwnEnumerableProperties utility - * Copyright(c) 2011-2016 Jake Luer - * MIT Licensed - */ -/*! - * Chai - getOwnEnumerablePropertySymbols utility - * Copyright(c) 2011-2016 Jake Luer - * MIT Licensed - */ -/*! - * Chai - getProperties utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ -/*! - * Chai - isNaN utility - * Copyright(c) 2012-2015 Sakthipriyan Vairamani - * MIT Licensed - */ -/*! - * Chai - isProxyEnabled helper - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ -/*! - * Chai - message composition utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ -/*! - * Chai - overwriteChainableMethod utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ -/*! - * Chai - overwriteMethod utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ -/*! - * Chai - overwriteProperty utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ -/*! - * Chai - proxify utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ -/*! - * Chai - test utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ -/*! - * Chai - transferFlags utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ -/*! - * Chai dependencies. - */ -/*! - * Chai version - */ -/*! - * Check if a property exists - */ -/*! - * Check to see if the MemoizeMap has recorded a result of the two operands - * - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @param {MemoizeMap} memoizeMap - * @returns {Boolean|null} result -*/ -/*! - * Checks error against a given set of criteria - */ -/*! - * Compare by inspect method - */ -/*! - * Compare two Regular Expressions for equality. - * - * @param {RegExp} leftHandOperand - * @param {RegExp} rightHandOperand - * @return {Boolean} result - */ -/*! - * Compare two Sets/Maps for equality. Faster than other equality functions. - * - * @param {Set} leftHandOperand - * @param {Set} rightHandOperand - * @param {Object} [options] (Optional) - * @return {Boolean} result - */ -/*! - * Configuration - */ -/*! - * Core Assertions - */ -/*! - * Deep equal utility - */ -/*! - * Deep path info - */ -/*! - * Dependencies that are used for multiple exports are required here only once - */ -/*! - * Determine if the given object has an @@iterator function. - * - * @param {Object} target - * @return {Boolean} `true` if the object has an @@iterator function. - */ -/*! - * Determines if two objects have matching values, given a set of keys. Defers to deepEqual for the equality check of - * each key. If any value of the given key is not equal, the function will return false (early). - * - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @param {Array} keys An array of keys to compare the values of leftHandOperand and rightHandOperand against - * @param {Object} [options] (Optional) - * @return {Boolean} result - */ -/*! - * Ensure correct constructor - */ -/*! - * Expect interface - */ -/*! - * Flag transferring utility - */ -/*! - * Flag utility - */ -/*! - * Function name - */ -/*! - * Get own enumerable properties method - */ -/*! - * Get own enumerable property symbols method - */ -/*! - * Gets all entries from a Generator. This will consume the generator - which could have side effects. - * - * @param {Generator} target - * @returns {Array} an array of entries from the Generator. - */ -/*! - * Gets all iterator entries from the given Object. If the Object has no @@iterator function, returns an empty array. - * This will consume the iterator - which could have side effects depending on the @@iterator implementation. - * - * @param {Object} target - * @returns {Array} an array of entries from the @@iterator function - */ -/*! - * Gets all own and inherited enumerable keys from a target. - * - * @param {Object} target - * @returns {Array} an array of own and inherited enumerable keys from the target. - */ -/*! - * Inherit from Error.prototype - */ -/*! - * Inspect util - */ -/*! - * Module dependencies - */ -/*! - * Module dependencies. - */ -/*! - * Module export. - */ -/*! - * Module variables - */ -/*! - * Object Display util - */ -/*! - * Overwrite chainable method - */ -/*! - * Primary Export - */ -/*! - * Primary Exports - */ -/*! - * Primary `Assertion` prototype - */ -/*! - * Proxify util - */ -/*! - * Recursively check the equality of two Objects. Once basic sameness has been established it will defer to `deepEqual` - * for each enumerable key in the object. - * - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @param {Object} [options] (Optional) - * @return {Boolean} result - */ -/*! - * Return a function that will copy properties from - * one object to another excluding any originally - * listed. Returned function will create a new `{}`. - * - * @param {String} excluded properties ... - * @return {Function} - */ -/*! - * Returns true if the argument is a primitive. - * - * This intentionally returns true for all objects that can be compared by reference, - * including functions and symbols. - * - * @param {Mixed} value - * @return {Boolean} result - */ -/*! - * Set the result of the equality into the MemoizeMap - * - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @param {MemoizeMap} memoizeMap - * @param {Boolean} result -*/ -/*! - * Should interface - */ -/*! - * Simple equality for flat iterable objects such as Arrays, TypedArrays or Node.js buffers. - * - * @param {Iterable} leftHandOperand - * @param {Iterable} rightHandOperand - * @param {Object} [options] (Optional) - * @return {Boolean} result - */ -/*! - * Simple equality for generator objects such as those returned by generator functions. - * - * @param {Iterable} leftHandOperand - * @param {Iterable} rightHandOperand - * @param {Object} [options] (Optional) - * @return {Boolean} result - */ -/*! - * Statically set name - */ -/*! - * The main logic of the `deepEqual` function. - * - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @param {Object} [options] (optional) Additional options - * @param {Array} [options.comparator] (optional) Override default algorithm, determining custom equality. - * @param {Array} [options.memoize] (optional) Provide a custom memoization object which will cache the results of - complex objects for a speed boost. By passing `false` you can disable memoization, but this will cause circular - references to blow the stack. - * @return {Boolean} equal match -*/ -/*! - * Utility Functions - */ -/*! - * Utils for plugins (not exported) - */ -/*! - * actual utility - */ -/*! - * add Method - */ -/*! - * add Property - */ -/*! - * addLengthGuard util - */ -/*! - * assertion-error - * Copyright(c) 2013 Jake Luer - * MIT Licensed - */ -/*! - * chai - * Copyright(c) 2011 Jake Luer - * MIT Licensed - */ -/*! - * chai - * Copyright(c) 2011-2014 Jake Luer - * MIT Licensed - */ -/*! - * chai - * http://chaijs.com - * Copyright(c) 2011-2014 Jake Luer - * MIT Licensed - */ -/*! - * deep-eql - * Copyright(c) 2013 Jake Luer - * MIT Licensed - */ -/*! - * expectTypes utility - */ -/*! - * getOperator method - */ -/*! - * isNaN method - */ -/*! - * isProxyEnabled helper - */ -/*! - * message utility - */ -/*! - * overwrite Method - */ -/*! - * overwrite Property - */ -/*! - * test utility - */ -/*! - * type utility - */ From a213a33f95ac9cc31f86fcd8f06ef30829529ed3 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Mon, 25 Jul 2022 10:16:20 +0000 Subject: [PATCH 33/53] fix(platform): Fix build npm script --- packages/platform/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/platform/package.json b/packages/platform/package.json index 879f45f58..305a9d579 100644 --- a/packages/platform/package.json +++ b/packages/platform/package.json @@ -29,7 +29,7 @@ ], "scripts": { "clear": "rm -rf dist", - "build": "npm run clear && npm run build:cjs && npm run build:esm && npm run build:types", + "build": "npm run clear; npm run build:cjs && npm run build:esm && npm run build:types", "build:cjs": "tsc && mv ./dist/cjs/index.js ./dist/cjs/index.cjs", "build:esm": "tsc --project tsconfig.esm.json && mv ./dist/esm/index.js ./dist/esm/index.mjs", "build:types": "tsc --project tsconfig.types.json", From 36c8ab596e95f6f6bbe880378000a3691d8401eb Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Mon, 25 Jul 2022 10:41:03 +0000 Subject: [PATCH 34/53] fix(ci): Build platform before run install-compiler --- .github/workflows/main.yml | 10 ++++++++++ .github/workflows/platform-browser.yml | 2 +- .github/workflows/platform-deno.yml | 2 +- .github/workflows/platform-gjs.yml | 2 +- .github/workflows/platform-node.yml | 2 +- 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0cf9a9e95..7f8a165ab 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -36,6 +36,8 @@ jobs: --ignore @deepkit/orm-browser-example \ --ignore @deepkit/orm-browser; npm run link + - name: Build Platform + run: npm run build:platform - name: Build run: | npm run install-compiler @@ -127,6 +129,8 @@ jobs: --scope @deepkit/orm-integration --scope @deepkit/topsort \ --scope @deepkit/type --scope @deepkit/type-compiler --scope @deepkit/type-spec --scope @deepkit/core --scope @deepkit/logger; ./node_modules/.bin/npm-local-development --no-watcher + - name: Build Platform + run: npm run build:platform - name: Build run: | npm run install-compiler @@ -174,6 +178,8 @@ jobs: --scope @deepkit/orm-integration --scope @deepkit/topsort \ --scope @deepkit/type --scope @deepkit/type-compiler --scope @deepkit/type-spec --scope @deepkit/core --scope @deepkit/logger; ./node_modules/.bin/npm-local-development --no-watcher + - name: Build Platform + run: npm run build:platform - name: Build run: | npm run install-compiler @@ -211,6 +217,8 @@ jobs: --scope @deepkit/orm-integration --scope @deepkit/topsort \ --scope @deepkit/type --scope @deepkit/type-compiler --scope @deepkit/type-spec --scope @deepkit/core --scope @deepkit/logger; ./node_modules/.bin/npm-local-development --no-watcher + - name: Build Platform + run: npm run build:platform - name: Build run: | npm run install-compiler @@ -261,6 +269,8 @@ jobs: --scope @deepkit/orm-integration --scope @deepkit/topsort \ --scope @deepkit/type --scope @deepkit/type-compiler --scope @deepkit/type-spec --scope @deepkit/core --scope @deepkit/logger; ./node_modules/.bin/npm-local-development --no-watcher + - name: Build Platform + run: npm run build:platform - name: Build run: | npm run install-compiler diff --git a/.github/workflows/platform-browser.yml b/.github/workflows/platform-browser.yml index fd987a203..374f48a66 100644 --- a/.github/workflows/platform-browser.yml +++ b/.github/workflows/platform-browser.yml @@ -19,7 +19,7 @@ jobs: run: npm run bootstrap:ci - name: Link run: npm run link - - name: Build + - name: Build Platform run: npm run build:platform - name: Install compiler run: npm run install-compiler diff --git a/.github/workflows/platform-deno.yml b/.github/workflows/platform-deno.yml index b3d0296ab..44d566465 100644 --- a/.github/workflows/platform-deno.yml +++ b/.github/workflows/platform-deno.yml @@ -31,7 +31,7 @@ jobs: run: npm run bootstrap:ci - name: Link run: npm run link - - name: Build + - name: Build Platform run: npm run build:platform - name: Install compiler run: npm run install-compiler diff --git a/.github/workflows/platform-gjs.yml b/.github/workflows/platform-gjs.yml index 4cbeaa3fc..7028e01c4 100644 --- a/.github/workflows/platform-gjs.yml +++ b/.github/workflows/platform-gjs.yml @@ -21,7 +21,7 @@ jobs: run: npm run bootstrap:ci - name: Link run: npm run link - - name: Build + - name: Build Platform run: npm run build:platform - name: Install compiler run: npm run install-compiler diff --git a/.github/workflows/platform-node.yml b/.github/workflows/platform-node.yml index e91828ce1..bd25c9fa1 100644 --- a/.github/workflows/platform-node.yml +++ b/.github/workflows/platform-node.yml @@ -26,7 +26,7 @@ jobs: run: npm run bootstrap:ci - name: Link run: npm run link - - name: Build + - name: Build Platform run: npm run build:platform - name: Install compiler run: npm run install-compiler From f91b2fc649b775ba98791bdc91452119ba534c2d Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Mon, 25 Jul 2022 10:53:41 +0000 Subject: [PATCH 35/53] fix(type-compiler): Do not use @deepkit/platform --- packages/type-compiler/package.json | 1 - packages/type-compiler/tests/utils.ts | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/type-compiler/package.json b/packages/type-compiler/package.json index 82f72dba4..1b3ecb7bb 100644 --- a/packages/type-compiler/package.json +++ b/packages/type-compiler/package.json @@ -30,7 +30,6 @@ "typescript": "~" }, "dependencies": { - "@deepkit/platform": "^1.0.1-alpha.74", "@deepkit/core": "^1.0.1-alpha.74", "@deepkit/type-spec": "^1.0.1-alpha.74", "@types/lz-string": "^1.3.34", diff --git a/packages/type-compiler/tests/utils.ts b/packages/type-compiler/tests/utils.ts index 23ddb4896..107515c8a 100644 --- a/packages/type-compiler/tests/utils.ts +++ b/packages/type-compiler/tests/utils.ts @@ -1,12 +1,11 @@ import * as ts from 'typescript'; -import { getDirname } from "@deepkit/platform" import { createSourceFile, getPreEmitDiagnostics, ScriptTarget, TransformationContext } from 'typescript'; import { createSystem, createVirtualCompilerHost, knownLibFilesForCompilerOptions } from '@typescript/vfs'; import { ReflectionTransformer } from '../src/compiler.js'; import { readFileSync } from 'fs'; import { dirname, join } from 'path'; -const _dirname = getDirname(); +const _dirname = __dirname; const defaultLibLocation = _dirname + '/node_modules/typescript/lib/'; function fullPath(fileName: string): string { From 55da0984f3f18e9bd4c4ba6c0d2acca5a95c9e60 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Mon, 25 Jul 2022 11:08:00 +0000 Subject: [PATCH 36/53] fix(github): Fix workflows again --- .github/workflows/main.yml | 10 ---------- .github/workflows/platform-browser.yml | 14 +++++++------- .github/workflows/platform-deno.yml | 16 ++++++++-------- .github/workflows/platform-gjs.yml | 16 ++++++++-------- .github/workflows/platform-node.yml | 16 ++++++++-------- DEVELOPMENT.md | 1 - 6 files changed, 31 insertions(+), 42 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7f8a165ab..0cf9a9e95 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -36,8 +36,6 @@ jobs: --ignore @deepkit/orm-browser-example \ --ignore @deepkit/orm-browser; npm run link - - name: Build Platform - run: npm run build:platform - name: Build run: | npm run install-compiler @@ -129,8 +127,6 @@ jobs: --scope @deepkit/orm-integration --scope @deepkit/topsort \ --scope @deepkit/type --scope @deepkit/type-compiler --scope @deepkit/type-spec --scope @deepkit/core --scope @deepkit/logger; ./node_modules/.bin/npm-local-development --no-watcher - - name: Build Platform - run: npm run build:platform - name: Build run: | npm run install-compiler @@ -178,8 +174,6 @@ jobs: --scope @deepkit/orm-integration --scope @deepkit/topsort \ --scope @deepkit/type --scope @deepkit/type-compiler --scope @deepkit/type-spec --scope @deepkit/core --scope @deepkit/logger; ./node_modules/.bin/npm-local-development --no-watcher - - name: Build Platform - run: npm run build:platform - name: Build run: | npm run install-compiler @@ -217,8 +211,6 @@ jobs: --scope @deepkit/orm-integration --scope @deepkit/topsort \ --scope @deepkit/type --scope @deepkit/type-compiler --scope @deepkit/type-spec --scope @deepkit/core --scope @deepkit/logger; ./node_modules/.bin/npm-local-development --no-watcher - - name: Build Platform - run: npm run build:platform - name: Build run: | npm run install-compiler @@ -269,8 +261,6 @@ jobs: --scope @deepkit/orm-integration --scope @deepkit/topsort \ --scope @deepkit/type --scope @deepkit/type-compiler --scope @deepkit/type-spec --scope @deepkit/core --scope @deepkit/logger; ./node_modules/.bin/npm-local-development --no-watcher - - name: Build Platform - run: npm run build:platform - name: Build run: | npm run install-compiler diff --git a/.github/workflows/platform-browser.yml b/.github/workflows/platform-browser.yml index 374f48a66..a3ff3e706 100644 --- a/.github/workflows/platform-browser.yml +++ b/.github/workflows/platform-browser.yml @@ -15,13 +15,13 @@ jobs: node-version: 16 - name: Install NPM dependencies run: npm ci - - name: Bootstrap - run: npm run bootstrap:ci - - name: Link - run: npm run link + # - name: Bootstrap + # run: npm run bootstrap:ci + # - name: Link + # run: npm run link + # - name: Install compiler + # run: npm run install-compiler - name: Build Platform - run: npm run build:platform - - name: Install compiler - run: npm run install-compiler + run: npm run lerna -- build --scope="@deepkit/platform" - name: Test run: npm run lerna -- test:browser --scope="@deepkit/platform" diff --git a/.github/workflows/platform-deno.yml b/.github/workflows/platform-deno.yml index 44d566465..dda602fb7 100644 --- a/.github/workflows/platform-deno.yml +++ b/.github/workflows/platform-deno.yml @@ -27,13 +27,13 @@ jobs: deno-version: ${{ matrix.deno-version }} - name: Install NPM dependencies run: npm ci - - name: Bootstrap - run: npm run bootstrap:ci - - name: Link - run: npm run link + # - name: Bootstrap + # run: npm run bootstrap:ci + # - name: Link + # run: npm run link + # - name: Install compiler + # run: npm run install-compiler - name: Build Platform - run: npm run build:platform - - name: Install compiler - run: npm run install-compiler + run: npm run lerna -- build --scope="@deepkit/platform" - name: Test - run: npm run lerna -- test:deno --scope="@deepkit/platform" + run: npm run lerna -- test:browser --scope="@deepkit/platform" diff --git a/.github/workflows/platform-gjs.yml b/.github/workflows/platform-gjs.yml index 7028e01c4..1a946a2bc 100644 --- a/.github/workflows/platform-gjs.yml +++ b/.github/workflows/platform-gjs.yml @@ -17,13 +17,13 @@ jobs: run: sudo apt-get --yes install gjs - name: Install NPM dependencies run: npm ci - - name: Bootstrap - run: npm run bootstrap:ci - - name: Link - run: npm run link + # - name: Bootstrap + # run: npm run bootstrap:ci + # - name: Link + # run: npm run link + # - name: Install compiler + # run: npm run install-compiler - name: Build Platform - run: npm run build:platform - - name: Install compiler - run: npm run install-compiler + run: npm run lerna -- build --scope="@deepkit/platform" - name: Test - run: npm run lerna -- test:gjs --scope="@deepkit/platform" + run: npm run lerna -- test:browser --scope="@deepkit/platform" diff --git a/.github/workflows/platform-node.yml b/.github/workflows/platform-node.yml index bd25c9fa1..7b9a229f7 100644 --- a/.github/workflows/platform-node.yml +++ b/.github/workflows/platform-node.yml @@ -22,13 +22,13 @@ jobs: node-version: ${{ matrix.node-version }} - name: Install NPM dependencies run: npm ci - - name: Bootstrap - run: npm run bootstrap:ci - - name: Link - run: npm run link + # - name: Bootstrap + # run: npm run bootstrap:ci + # - name: Link + # run: npm run link + # - name: Install compiler + # run: npm run install-compiler - name: Build Platform - run: npm run build:platform - - name: Install compiler - run: npm run install-compiler + run: npm run lerna -- build --scope="@deepkit/platform" - name: Test - run: npm run lerna -- test:node --scope="@deepkit/platform" + run: npm run lerna -- test:browser --scope="@deepkit/platform" diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index f29eb6f3b..332974eb1 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -13,7 +13,6 @@ cd deepkit-framework npm install npm run bootstrap npm run link -npm run build:platform npm run install-compiler ``` From 7d1eeb011b42cf8e74544f215c771764e412ab25 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Mon, 25 Jul 2022 11:30:46 +0000 Subject: [PATCH 37/53] fix(github): Only bootstrap @deepkit/platform --- .github/workflows/platform-browser.yml | 4 ++-- .github/workflows/platform-deno.yml | 6 +++--- .github/workflows/platform-gjs.yml | 6 +++--- .github/workflows/platform-node.yml | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/platform-browser.yml b/.github/workflows/platform-browser.yml index a3ff3e706..909260d2c 100644 --- a/.github/workflows/platform-browser.yml +++ b/.github/workflows/platform-browser.yml @@ -15,8 +15,8 @@ jobs: node-version: 16 - name: Install NPM dependencies run: npm ci - # - name: Bootstrap - # run: npm run bootstrap:ci + - name: Bootstrap + run: npm run bootstrap:ci -- --scope @deepkit/platform # - name: Link # run: npm run link # - name: Install compiler diff --git a/.github/workflows/platform-deno.yml b/.github/workflows/platform-deno.yml index dda602fb7..aea71e198 100644 --- a/.github/workflows/platform-deno.yml +++ b/.github/workflows/platform-deno.yml @@ -27,8 +27,8 @@ jobs: deno-version: ${{ matrix.deno-version }} - name: Install NPM dependencies run: npm ci - # - name: Bootstrap - # run: npm run bootstrap:ci + - name: Bootstrap + run: npm run bootstrap:ci -- --scope @deepkit/platform # - name: Link # run: npm run link # - name: Install compiler @@ -36,4 +36,4 @@ jobs: - name: Build Platform run: npm run lerna -- build --scope="@deepkit/platform" - name: Test - run: npm run lerna -- test:browser --scope="@deepkit/platform" + run: npm run lerna -- test:deno --scope="@deepkit/platform" diff --git a/.github/workflows/platform-gjs.yml b/.github/workflows/platform-gjs.yml index 1a946a2bc..59fea89d0 100644 --- a/.github/workflows/platform-gjs.yml +++ b/.github/workflows/platform-gjs.yml @@ -17,8 +17,8 @@ jobs: run: sudo apt-get --yes install gjs - name: Install NPM dependencies run: npm ci - # - name: Bootstrap - # run: npm run bootstrap:ci + - name: Bootstrap + run: npm run bootstrap:ci -- --scope @deepkit/platform # - name: Link # run: npm run link # - name: Install compiler @@ -26,4 +26,4 @@ jobs: - name: Build Platform run: npm run lerna -- build --scope="@deepkit/platform" - name: Test - run: npm run lerna -- test:browser --scope="@deepkit/platform" + run: npm run lerna -- test:gjs --scope="@deepkit/platform" diff --git a/.github/workflows/platform-node.yml b/.github/workflows/platform-node.yml index 7b9a229f7..17b125013 100644 --- a/.github/workflows/platform-node.yml +++ b/.github/workflows/platform-node.yml @@ -22,8 +22,8 @@ jobs: node-version: ${{ matrix.node-version }} - name: Install NPM dependencies run: npm ci - # - name: Bootstrap - # run: npm run bootstrap:ci + - name: Bootstrap + run: npm run bootstrap:ci -- --scope @deepkit/platform # - name: Link # run: npm run link # - name: Install compiler @@ -31,4 +31,4 @@ jobs: - name: Build Platform run: npm run lerna -- build --scope="@deepkit/platform" - name: Test - run: npm run lerna -- test:browser --scope="@deepkit/platform" + run: npm run lerna -- test:node --scope="@deepkit/platform" From ee97022e37aab0855418720ee411842f608e0725 Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Mon, 25 Jul 2022 11:38:34 +0000 Subject: [PATCH 38/53] fix(platform): Do not run clear before build to fix build on windows --- packages/platform/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/platform/package.json b/packages/platform/package.json index 305a9d579..baba32d38 100644 --- a/packages/platform/package.json +++ b/packages/platform/package.json @@ -29,7 +29,7 @@ ], "scripts": { "clear": "rm -rf dist", - "build": "npm run clear; npm run build:cjs && npm run build:esm && npm run build:types", + "build": "npm run build:cjs && npm run build:esm && npm run build:types", "build:cjs": "tsc && mv ./dist/cjs/index.js ./dist/cjs/index.cjs", "build:esm": "tsc --project tsconfig.esm.json && mv ./dist/esm/index.js ./dist/esm/index.mjs", "build:types": "tsc --project tsconfig.types.json", From aaf53352fbfae8d112640a4dddcf10152123255b Mon Sep 17 00:00:00 2001 From: Pascal Garber Date: Mon, 25 Jul 2022 11:48:04 +0000 Subject: [PATCH 39/53] fix(platform): Add browser test assets to repo for faster tests --- packages/platform/test/browser/index.html | 6 +- .../platform/test/browser/vendor/chai.min.js | 2 + .../platform/test/browser/vendor/mocha.css | 326 ++++++++++++++++++ .../platform/test/browser/vendor/mocha.min.js | 4 + 4 files changed, 335 insertions(+), 3 deletions(-) create mode 100644 packages/platform/test/browser/vendor/chai.min.js create mode 100644 packages/platform/test/browser/vendor/mocha.css create mode 100644 packages/platform/test/browser/vendor/mocha.min.js diff --git a/packages/platform/test/browser/index.html b/packages/platform/test/browser/index.html index 989319641..306a2faad 100644 --- a/packages/platform/test/browser/index.html +++ b/packages/platform/test/browser/index.html @@ -4,13 +4,13 @@ Mocha Tests - +
- - + +