sonamu 0.10.12 → 0.10.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/agents/agent.d.ts +1 -1
- package/dist/ai/agents/agent.d.ts.map +1 -1
- package/dist/ai/agents/agent.js +5 -6
- package/dist/ai/agents/types.d.ts +1 -1
- package/dist/ai/agents/types.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/api.js +18 -18
- package/dist/ai/providers/rtzr/error.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/error.js +17 -15
- package/dist/ai/providers/rtzr/model.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/model.js +3 -2
- package/dist/ai/providers/rtzr/options.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/options.js +16 -16
- package/dist/ai/providers/rtzr/provider.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/provider.js +9 -9
- package/dist/ai/providers/rtzr/utils.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/utils.js +1 -1
- package/dist/api/caster.d.ts.map +1 -1
- package/dist/api/caster.js +17 -17
- package/dist/api/code-converters.d.ts +4 -2
- package/dist/api/code-converters.d.ts.map +1 -1
- package/dist/api/code-converters.js +100 -19
- package/dist/api/config.d.ts +16 -1
- package/dist/api/config.d.ts.map +1 -1
- package/dist/api/config.js +28 -21
- package/dist/api/context.d.ts +2 -2
- package/dist/api/context.d.ts.map +1 -1
- package/dist/api/context.js +1 -1
- package/dist/api/decorators.d.ts.map +1 -1
- package/dist/api/decorators.js +18 -11
- package/dist/api/http-validator.d.ts +36 -0
- package/dist/api/http-validator.d.ts.map +1 -0
- package/dist/api/http-validator.js +72 -0
- package/dist/api/index.js +6 -4
- package/dist/api/sonamu.d.ts +59 -20
- package/dist/api/sonamu.d.ts.map +1 -1
- package/dist/api/sonamu.js +250 -106
- package/dist/api/websocket-helpers.d.ts +7 -5
- package/dist/api/websocket-helpers.d.ts.map +1 -1
- package/dist/api/websocket-helpers.js +6 -6
- package/dist/auth/audit-log/builders.d.ts.map +1 -1
- package/dist/auth/audit-log/builders.js +1 -1
- package/dist/auth/audit-log/client-ip.d.ts +1 -1
- package/dist/auth/audit-log/client-ip.d.ts.map +1 -1
- package/dist/auth/audit-log/client-ip.js +4 -2
- package/dist/auth/audit-log/events.d.ts +5 -1
- package/dist/auth/audit-log/events.d.ts.map +1 -1
- package/dist/auth/audit-log/events.js +1 -1
- package/dist/auth/audit-log/plugin.d.ts +0 -8
- package/dist/auth/audit-log/plugin.d.ts.map +1 -1
- package/dist/auth/audit-log/plugin.js +48 -52
- package/dist/auth/audit-log-ingestor.d.ts.map +1 -1
- package/dist/auth/audit-log-ingestor.js +16 -12
- package/dist/auth/auth-generator.d.ts.map +1 -1
- package/dist/auth/auth-generator.js +1 -1
- package/dist/auth/better-auth-request.d.ts.map +1 -1
- package/dist/auth/better-auth-request.js +6 -5
- package/dist/auth/knex-adapter.js +1 -1
- package/dist/auth/plugins/entity-definitions/index.d.ts +13 -1
- package/dist/auth/plugins/entity-definitions/index.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/index.js +1 -1
- package/dist/auth/plugins/wrappers/admin.d.ts +1 -1
- package/dist/bin/build-config.d.ts +25 -0
- package/dist/bin/build-config.d.ts.map +1 -1
- package/dist/bin/build-config.js +105 -2
- package/dist/bin/cli.js +131 -27
- package/dist/bin/compiler-policy.d.ts +3 -0
- package/dist/bin/compiler-policy.d.ts.map +1 -0
- package/dist/bin/compiler-policy.js +24 -0
- package/dist/bin/fixture.d.ts.map +1 -1
- package/dist/bin/fixture.js +5 -3
- package/dist/bin/test-command.d.ts +22 -1
- package/dist/bin/test-command.d.ts.map +1 -1
- package/dist/bin/test-command.js +18 -10
- package/dist/bin/ts-loader-registration.d.ts +7 -1
- package/dist/bin/ts-loader-registration.d.ts.map +1 -1
- package/dist/bin/ts-loader-registration.js +13 -4
- package/dist/cache/decorator.d.ts.map +1 -1
- package/dist/cache/decorator.js +11 -4
- package/dist/compress/compress.d.ts.map +1 -1
- package/dist/compress/compress.js +1 -1
- package/dist/cone/cone-generator.d.ts +14 -1
- package/dist/cone/cone-generator.d.ts.map +1 -1
- package/dist/cone/cone-generator.js +13 -9
- package/dist/database/_batch_update.js +1 -1
- package/dist/database/base-model.d.ts +22 -10
- package/dist/database/base-model.d.ts.map +1 -1
- package/dist/database/base-model.js +26 -16
- package/dist/database/base-model.types.d.ts +15 -3
- package/dist/database/base-model.types.d.ts.map +1 -1
- package/dist/database/db.d.ts +12 -2
- package/dist/database/db.d.ts.map +1 -1
- package/dist/database/db.js +10 -7
- package/dist/database/knex.d.ts.map +1 -1
- package/dist/database/knex.js +17 -14
- package/dist/database/puri.d.ts +11 -9
- package/dist/database/puri.d.ts.map +1 -1
- package/dist/database/puri.js +93 -79
- package/dist/database/puri.types.d.ts +21 -21
- package/dist/database/puri.types.d.ts.map +1 -1
- package/dist/database/puri.types.js +1 -1
- package/dist/database/upsert-builder.d.ts +12 -10
- package/dist/database/upsert-builder.d.ts.map +1 -1
- package/dist/database/upsert-builder.js +20 -12
- package/dist/dict/sd.d.ts.map +1 -1
- package/dist/dict/sd.js +1 -1
- package/dist/dict/sonamu-dictionary.d.ts.map +1 -1
- package/dist/dict/sonamu-dictionary.js +1 -1
- package/dist/dict/utils.d.ts.map +1 -1
- package/dist/dict/utils.js +7 -2
- package/dist/entity/entity-manager.d.ts +13 -4
- package/dist/entity/entity-manager.d.ts.map +1 -1
- package/dist/entity/entity-manager.js +19 -11
- package/dist/entity/entity-template-cone.d.ts +73 -5
- package/dist/entity/entity-template-cone.d.ts.map +1 -1
- package/dist/entity/entity-template-cone.js +4 -2
- package/dist/entity/entity.d.ts +6 -2
- package/dist/entity/entity.d.ts.map +1 -1
- package/dist/entity/entity.js +30 -28
- package/dist/env.d.ts +3 -1
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +1 -1
- package/dist/exceptions/error-handler.d.ts.map +1 -1
- package/dist/exceptions/error-handler.js +7 -2
- package/dist/exceptions/so-exceptions.d.ts +24 -20
- package/dist/exceptions/so-exceptions.d.ts.map +1 -1
- package/dist/exceptions/so-exceptions.js +4 -2
- package/dist/filter/utils.d.ts +7 -2
- package/dist/filter/utils.d.ts.map +1 -1
- package/dist/filter/utils.js +8 -6
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -6
- package/dist/logger/configure.d.ts.map +1 -1
- package/dist/logger/configure.js +10 -10
- package/dist/migration/code-generation.d.ts.map +1 -1
- package/dist/migration/code-generation.js +50 -46
- package/dist/migration/index-where-predicate.d.ts.map +1 -1
- package/dist/migration/index-where-predicate.js +22 -8
- package/dist/migration/migration-set.d.ts.map +1 -1
- package/dist/migration/migration-set.js +1 -1
- package/dist/migration/migrator.d.ts +3 -2
- package/dist/migration/migrator.d.ts.map +1 -1
- package/dist/migration/migrator.js +27 -21
- package/dist/migration/postgresql-schema-reader.d.ts.map +1 -1
- package/dist/migration/postgresql-schema-reader.js +51 -36
- package/dist/migration/slack-confirm.d.ts.map +1 -1
- package/dist/migration/slack-confirm.js +1 -1
- package/dist/naite/naite-reporter.js +2 -2
- package/dist/naite/naite.d.ts +74 -15
- package/dist/naite/naite.d.ts.map +1 -1
- package/dist/naite/naite.js +5 -19
- package/dist/runtime-type.d.ts +6 -0
- package/dist/runtime-type.d.ts.map +1 -0
- package/dist/runtime-type.js +26 -0
- package/dist/ssr/hmr-opt-out.d.ts +26 -0
- package/dist/ssr/hmr-opt-out.d.ts.map +1 -0
- package/dist/ssr/hmr-opt-out.js +59 -0
- package/dist/ssr/renderer.d.ts.map +1 -1
- package/dist/ssr/renderer.js +4 -1
- package/dist/storage/base-file.js +14 -14
- package/dist/storage/buffered-file.d.ts +2 -2
- package/dist/storage/buffered-file.d.ts.map +1 -1
- package/dist/storage/buffered-file.js +12 -12
- package/dist/storage/s3-driver.d.ts.map +1 -1
- package/dist/storage/s3-driver.js +1 -1
- package/dist/storage/uploaded-file.d.ts +2 -2
- package/dist/storage/uploaded-file.d.ts.map +1 -1
- package/dist/storage/uploaded-file.js +8 -8
- package/dist/stream/sse.js +11 -11
- package/dist/stream/ws-core.d.ts +1 -1
- package/dist/stream/ws-core.d.ts.map +1 -1
- package/dist/stream/ws-delivery.d.ts +1 -1
- package/dist/stream/ws-delivery.d.ts.map +1 -1
- package/dist/stream/ws-delivery.js +6 -4
- package/dist/stream/ws-local-connection-store.d.ts.map +1 -1
- package/dist/stream/ws-local-connection-store.js +4 -2
- package/dist/stream/ws-presence-store.js +1 -1
- package/dist/stream/ws-registry.d.ts +4 -4
- package/dist/stream/ws-registry.d.ts.map +1 -1
- package/dist/stream/ws-registry.js +4 -2
- package/dist/stream/ws-telemetry.d.ts +16 -12
- package/dist/stream/ws-telemetry.d.ts.map +1 -1
- package/dist/stream/ws-telemetry.js +22 -18
- package/dist/stream/ws.d.ts +18 -12
- package/dist/stream/ws.d.ts.map +1 -1
- package/dist/stream/ws.js +26 -22
- package/dist/syncer/api-parser.js +1 -1
- package/dist/syncer/checksum.d.ts.map +1 -1
- package/dist/syncer/checksum.js +7 -8
- package/dist/syncer/code-generator.d.ts.map +1 -1
- package/dist/syncer/code-generator.js +13 -14
- package/dist/syncer/entity-operations.d.ts.map +1 -1
- package/dist/syncer/entity-operations.js +5 -6
- package/dist/syncer/file-copy.d.ts +5 -0
- package/dist/syncer/file-copy.d.ts.map +1 -0
- package/dist/syncer/file-copy.js +36 -0
- package/dist/syncer/file-patterns.d.ts +1 -0
- package/dist/syncer/file-patterns.d.ts.map +1 -1
- package/dist/syncer/file-patterns.js +5 -2
- package/dist/syncer/file-tracking.d.ts.map +1 -1
- package/dist/syncer/file-tracking.js +5 -4
- package/dist/syncer/filesystem-dependencies.d.ts +15 -0
- package/dist/syncer/filesystem-dependencies.d.ts.map +1 -0
- package/dist/syncer/filesystem-dependencies.js +53 -0
- package/dist/syncer/module-loader.d.ts +1 -1
- package/dist/syncer/module-loader.d.ts.map +1 -1
- package/dist/syncer/module-loader.js +6 -4
- package/dist/syncer/syncer-actions.d.ts +4 -0
- package/dist/syncer/syncer-actions.d.ts.map +1 -1
- package/dist/syncer/syncer-actions.js +34 -17
- package/dist/syncer/syncer.d.ts +17 -6
- package/dist/syncer/syncer.d.ts.map +1 -1
- package/dist/syncer/syncer.js +71 -29
- package/dist/syncer/watcher.d.ts.map +1 -1
- package/dist/syncer/watcher.js +3 -3
- package/dist/tasks/decorator.d.ts +6 -6
- package/dist/tasks/decorator.d.ts.map +1 -1
- package/dist/tasks/decorator.js +4 -4
- package/dist/tasks/step-wrapper.d.ts +6 -4
- package/dist/tasks/step-wrapper.d.ts.map +1 -1
- package/dist/tasks/step-wrapper.js +5 -5
- package/dist/tasks/workflow-manager.d.ts.map +1 -1
- package/dist/tasks/workflow-manager.js +13 -7
- package/dist/template/entity-converter.d.ts +1 -1
- package/dist/template/entity-converter.d.ts.map +1 -1
- package/dist/template/entity-converter.js +2 -2
- package/dist/template/helpers.d.ts +8 -6
- package/dist/template/helpers.d.ts.map +1 -1
- package/dist/template/helpers.js +1 -1
- package/dist/template/implementations/generated.template.d.ts.map +1 -1
- package/dist/template/implementations/generated.template.js +4 -4
- package/dist/template/implementations/generated_http.template.d.ts +7 -4
- package/dist/template/implementations/generated_http.template.d.ts.map +1 -1
- package/dist/template/implementations/generated_http.template.js +21 -21
- package/dist/template/implementations/generated_sso.template.d.ts.map +1 -1
- package/dist/template/implementations/generated_sso.template.js +6 -3
- package/dist/template/implementations/http_validators.template.d.ts +18 -0
- package/dist/template/implementations/http_validators.template.d.ts.map +1 -0
- package/dist/template/implementations/http_validators.template.js +127 -0
- package/dist/template/implementations/model.template.d.ts.map +1 -1
- package/dist/template/implementations/model.template.js +1 -1
- package/dist/template/implementations/queries.template.js +1 -1
- package/dist/template/implementations/sd.template.d.ts.map +1 -1
- package/dist/template/implementations/sd.template.js +79 -39
- package/dist/template/implementations/services.template.d.ts.map +1 -1
- package/dist/template/implementations/services.template.js +6 -4
- package/dist/template/implementations/view_form.template.d.ts +6 -1
- package/dist/template/implementations/view_form.template.d.ts.map +1 -1
- package/dist/template/implementations/view_form.template.js +23 -15
- package/dist/template/implementations/view_list.template.d.ts.map +1 -1
- package/dist/template/implementations/view_list.template.js +11 -6
- package/dist/template/template-manager.d.ts.map +1 -1
- package/dist/template/template-manager.js +9 -7
- package/dist/template/template-types.d.ts +12 -5
- package/dist/template/template-types.d.ts.map +1 -1
- package/dist/template/template-types.js +1 -1
- package/dist/template/template.d.ts +2 -2
- package/dist/template/template.d.ts.map +1 -1
- package/dist/template/template.js +6 -4
- package/dist/template/zod-converter.d.ts +0 -19
- package/dist/template/zod-converter.d.ts.map +1 -1
- package/dist/template/zod-converter.js +100 -84
- package/dist/testing/_relation-graph.d.ts.map +1 -1
- package/dist/testing/_relation-graph.js +2 -1
- package/dist/testing/bootstrap.d.ts.map +1 -1
- package/dist/testing/bootstrap.js +9 -6
- package/dist/testing/data-explorer.d.ts +32 -7
- package/dist/testing/data-explorer.d.ts.map +1 -1
- package/dist/testing/data-explorer.js +77 -31
- package/dist/testing/dev-test-routes.d.ts +8 -1
- package/dist/testing/dev-test-routes.d.ts.map +1 -1
- package/dist/testing/dev-test-routes.js +125 -108
- package/dist/testing/dev-vitest-manager.d.ts +54 -8
- package/dist/testing/dev-vitest-manager.d.ts.map +1 -1
- package/dist/testing/dev-vitest-manager.js +24 -9
- package/dist/testing/faker-mappings.d.ts +412 -1
- package/dist/testing/faker-mappings.d.ts.map +1 -1
- package/dist/testing/faker-mappings.js +1 -1
- package/dist/testing/filesystem.d.ts +2 -0
- package/dist/testing/filesystem.d.ts.map +1 -0
- package/dist/testing/filesystem.js +7 -0
- package/dist/testing/fixture-generator.d.ts +25 -8
- package/dist/testing/fixture-generator.d.ts.map +1 -1
- package/dist/testing/fixture-generator.js +132 -73
- package/dist/testing/fixture-loader.d.ts +3 -1
- package/dist/testing/fixture-loader.d.ts.map +1 -1
- package/dist/testing/fixture-loader.js +1 -20
- package/dist/testing/fixture-manager.d.ts +8 -7
- package/dist/testing/fixture-manager.d.ts.map +1 -1
- package/dist/testing/fixture-manager.js +91 -59
- package/dist/testing/global-setup.d.ts.map +1 -1
- package/dist/testing/global-setup.js +5 -2
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +6 -3
- package/dist/types/types.d.ts +101 -99
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/types.js +234 -225
- package/dist/ui/ai-api.d.ts.map +1 -1
- package/dist/ui/ai-api.js +1 -1
- package/dist/ui/ai-client.d.ts.map +1 -1
- package/dist/ui/ai-client.js +28 -18
- package/dist/ui/api.d.ts.map +1 -1
- package/dist/ui/api.js +135 -128
- package/dist/ui/async-route.d.ts +3 -0
- package/dist/ui/async-route.d.ts.map +1 -0
- package/dist/ui/async-route.js +12 -0
- package/dist/ui/cdd-service.d.ts +9 -7
- package/dist/ui/cdd-service.d.ts.map +1 -1
- package/dist/ui/cdd-service.js +7 -5
- package/dist/ui/migrations-api.d.ts.map +1 -1
- package/dist/ui/migrations-api.js +17 -15
- package/dist/ui-web/assets/index-DV1AAq6W.js +178 -0
- package/dist/ui-web/index.html +1 -1
- package/dist/utils/formatter.d.ts.map +1 -1
- package/dist/utils/formatter.js +7 -5
- package/dist/utils/fs-utils.d.ts +3 -3
- package/dist/utils/fs-utils.d.ts.map +1 -1
- package/dist/utils/fs-utils.js +6 -6
- package/dist/utils/model.d.ts +3 -5
- package/dist/utils/model.d.ts.map +1 -1
- package/dist/utils/model.js +1 -1
- package/dist/utils/object-utils.d.ts +1 -1
- package/dist/utils/object-utils.d.ts.map +1 -1
- package/dist/utils/object-utils.js +17 -16
- package/dist/utils/process-utils.d.ts.map +1 -1
- package/dist/utils/process-utils.js +4 -2
- package/dist/utils/runtime-value.d.ts +13 -0
- package/dist/utils/runtime-value.d.ts.map +1 -0
- package/dist/utils/runtime-value.js +40 -0
- package/dist/utils/sql-parser.d.ts +8 -1
- package/dist/utils/sql-parser.d.ts.map +1 -1
- package/dist/utils/sql-parser.js +6 -3
- package/dist/utils/type-utils.d.ts.map +1 -1
- package/dist/utils/type-utils.js +10 -8
- package/dist/utils/utils.d.ts +2 -2
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +11 -8
- package/dist/utils/zod-error.d.ts.map +1 -1
- package/dist/utils/zod-error.js +7 -4
- package/dist/vector/chunking.d.ts.map +1 -1
- package/dist/vector/chunking.js +1 -1
- package/dist/vector/embedding.d.ts.map +1 -1
- package/dist/vector/embedding.js +1 -1
- package/dist/vector/types.d.ts +3 -2
- package/dist/vector/types.d.ts.map +1 -1
- package/package.json +5 -3
- package/src/ai/agents/agent.ts +5 -5
- package/src/ai/agents/types.ts +1 -1
- package/src/ai/providers/rtzr/__tests__/model.test.ts +2 -2
- package/src/ai/providers/rtzr/error.ts +5 -3
- package/src/ai/providers/rtzr/model.ts +3 -2
- package/src/ai/providers/rtzr/options.ts +10 -5
- package/src/ai/providers/rtzr/provider.ts +10 -10
- package/src/ai/providers/rtzr/utils.ts +3 -1
- package/src/api/__tests__/config.test.ts +11 -21
- package/src/api/__tests__/sonamu.http-validator.test.ts +512 -0
- package/src/api/__tests__/sonamu.websocket.test.ts +51 -41
- package/src/api/__tests__/zod-compiler-policy.test.ts +95 -0
- package/src/api/caster.ts +6 -8
- package/src/api/code-converters.ts +136 -36
- package/src/api/config.ts +62 -4
- package/src/api/context.ts +3 -3
- package/src/api/decorators.ts +28 -17
- package/src/api/http-validator.ts +149 -0
- package/src/api/sonamu.ts +459 -152
- package/src/api/websocket-helpers.ts +24 -17
- package/src/auth/audit-log/builders.ts +3 -2
- package/src/auth/audit-log/client-ip.ts +4 -2
- package/src/auth/audit-log/events.ts +15 -1
- package/src/auth/audit-log/plugin.ts +129 -200
- package/src/auth/audit-log-ingestor.ts +19 -15
- package/src/auth/auth-generator.ts +10 -5
- package/src/auth/better-auth-request.ts +4 -3
- package/src/auth/knex-adapter.ts +8 -2
- package/src/auth/plugins/entity-definitions/index.ts +6 -5
- package/src/bin/__tests__/http-validator-benchmark.test.ts +94 -0
- package/src/bin/__tests__/test-command.test.ts +9 -15
- package/src/bin/__tests__/ts-loader-register.test.ts +15 -17
- package/src/bin/__tests__/zod-compiler-build.test.ts +307 -0
- package/src/bin/build-config.ts +167 -0
- package/src/bin/cli.ts +153 -36
- package/src/bin/compiler-policy.ts +35 -0
- package/src/bin/fixture.ts +14 -3
- package/src/bin/test-command.ts +74 -29
- package/src/bin/ts-loader-registration.ts +22 -4
- package/src/cache/decorator.ts +10 -3
- package/src/compress/compress.ts +17 -4
- package/src/cone/cone-generator.ts +34 -6
- package/src/database/__tests__/db.test.ts +1 -0
- package/src/database/__tests__/puri.test.ts +16 -15
- package/src/database/__tests__/transaction-scope.test.ts +5 -0
- package/src/database/_batch_update.ts +1 -0
- package/src/database/base-model.ts +81 -50
- package/src/database/base-model.types.ts +6 -6
- package/src/database/db.ts +29 -19
- package/src/database/knex.ts +30 -17
- package/src/database/puri-subset.test-d.ts +17 -0
- package/src/database/puri.ts +181 -143
- package/src/database/puri.types.test-d.ts +31 -1
- package/src/database/puri.types.ts +23 -21
- package/src/database/upsert-builder.ts +75 -53
- package/src/dict/sd.ts +15 -5
- package/src/dict/sonamu-dictionary.ts +6 -6
- package/src/dict/utils.ts +9 -1
- package/src/entity/entity-manager.ts +26 -9
- package/src/entity/entity-template-cone.ts +5 -10
- package/src/entity/entity.ts +50 -34
- package/src/env.ts +7 -3
- package/src/exceptions/error-handler.ts +17 -2
- package/src/exceptions/so-exceptions.ts +26 -20
- package/src/filter/utils.ts +21 -11
- package/src/index.ts +3 -0
- package/src/logger/configure.ts +26 -18
- package/src/migration/__tests__/migrator.test.ts +50 -57
- package/src/migration/code-generation.ts +132 -104
- package/src/migration/index-where-predicate.ts +51 -24
- package/src/migration/migration-set.ts +11 -5
- package/src/migration/migrator.ts +68 -41
- package/src/migration/postgresql-schema-reader.ts +52 -47
- package/src/migration/slack-confirm.ts +17 -15
- package/src/naite/naite-reporter.ts +1 -1
- package/src/naite/naite.ts +97 -24
- package/src/runtime-type.ts +34 -0
- package/src/ssr/hmr-opt-out.ts +78 -0
- package/src/ssr/renderer.ts +6 -0
- package/src/storage/base-file.ts +13 -13
- package/src/storage/buffered-file.ts +11 -11
- package/src/storage/s3-driver.ts +4 -1
- package/src/storage/uploaded-file.ts +8 -8
- package/src/stream/__tests__/ws-contracts.test.ts +4 -2
- package/src/stream/__tests__/ws-telemetry.test.ts +1 -1
- package/src/stream/__tests__/ws.test.ts +30 -6
- package/src/stream/sse.ts +12 -11
- package/src/stream/ws-core.ts +1 -1
- package/src/stream/ws-delivery.ts +16 -7
- package/src/stream/ws-local-connection-store.ts +2 -3
- package/src/stream/ws-presence-store.ts +6 -1
- package/src/stream/ws-registry.ts +16 -7
- package/src/stream/ws-telemetry.ts +66 -43
- package/src/stream/ws.ts +73 -39
- package/src/syncer/__tests__/api-parser.websocket-type-ref.test.ts +3 -2
- package/src/syncer/__tests__/http-validator-registry.test.ts +137 -0
- package/src/syncer/api-parser.ts +67 -27
- package/src/syncer/checksum.ts +17 -11
- package/src/syncer/code-generator.ts +25 -17
- package/src/syncer/entity-operations.ts +3 -5
- package/src/syncer/file-copy.ts +46 -0
- package/src/syncer/file-patterns.ts +11 -8
- package/src/syncer/file-tracking.ts +3 -4
- package/src/syncer/filesystem-dependencies.ts +73 -0
- package/src/syncer/module-loader.ts +8 -4
- package/src/syncer/syncer-actions.ts +56 -18
- package/src/syncer/syncer.ts +116 -43
- package/src/syncer/watcher.ts +8 -4
- package/src/tasks/decorator.ts +20 -12
- package/src/tasks/step-wrapper.ts +19 -9
- package/src/tasks/workflow-manager.ts +15 -9
- package/src/template/__tests__/http_validators.template.test.ts +160 -0
- package/src/template/__tests__/services.template.mutation.test.ts +24 -23
- package/src/template/__tests__/services.template.websocket.test.ts +21 -25
- package/src/template/entity-converter.ts +5 -2
- package/src/template/helpers.ts +8 -9
- package/src/template/implementations/generated.template.ts +5 -4
- package/src/template/implementations/generated_http.template.ts +61 -15
- package/src/template/implementations/generated_sso.template.ts +15 -4
- package/src/template/implementations/http_validators.template.ts +175 -0
- package/src/template/implementations/model.template.ts +3 -1
- package/src/template/implementations/sd.template.ts +81 -41
- package/src/template/implementations/services.template.ts +2 -2
- package/src/template/implementations/view_form.template.ts +56 -39
- package/src/template/implementations/view_list.template.ts +31 -23
- package/src/template/template-manager.ts +15 -13
- package/src/template/template-types.ts +13 -5
- package/src/template/template.ts +4 -3
- package/src/template/zod-converter.ts +206 -91
- package/src/testing/__tests__/dev-test-routes.test.ts +85 -25
- package/src/testing/__tests__/dev-vitest-manager.test.ts +15 -15
- package/src/testing/_relation-graph.ts +4 -1
- package/src/testing/bootstrap.ts +12 -5
- package/src/testing/data-explorer.ts +102 -53
- package/src/testing/dev-test-routes.ts +87 -50
- package/src/testing/dev-vitest-manager.ts +88 -32
- package/src/testing/faker-mappings.ts +2 -2
- package/src/testing/filesystem.ts +1 -0
- package/src/testing/fixture-generator.ts +191 -131
- package/src/testing/fixture-loader.ts +5 -1
- package/src/testing/fixture-manager.ts +129 -90
- package/src/testing/global-setup.ts +7 -3
- package/src/testing/index.ts +5 -0
- package/src/types/__tests__/entity-json-schema-search-text.test.ts +9 -3
- package/src/types/types.ts +184 -158
- package/src/ui/ai-api.ts +9 -7
- package/src/ui/ai-client.ts +61 -56
- package/src/ui/api.ts +727 -616
- package/src/ui/async-route.ts +4 -0
- package/src/ui/cdd-service.ts +35 -12
- package/src/ui/migrations-api.ts +63 -51
- package/src/utils/formatter.ts +7 -3
- package/src/utils/fs-utils.ts +5 -5
- package/src/utils/model.ts +4 -5
- package/src/utils/object-utils.ts +32 -22
- package/src/utils/process-utils.ts +4 -1
- package/src/utils/runtime-value.ts +43 -0
- package/src/utils/sql-parser.ts +13 -6
- package/src/utils/type-utils.ts +9 -7
- package/src/utils/utils.ts +19 -21
- package/src/utils/zod-error.ts +4 -2
- package/src/vector/chunking.ts +6 -1
- package/src/vector/embedding.ts +2 -1
- package/src/vector/types.ts +4 -2
- package/tsdown.api.config.ts +5 -2
- package/dist/ui-web/assets/index-C0m1pk6K.js +0 -177
package/dist/ui-web/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg+xml" href="/sonamu-ui/setting.svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>{{projectName}}: Sonamu UI</title>
|
|
8
|
-
<script type="module" crossorigin src="/sonamu-ui/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/sonamu-ui/assets/index-DV1AAq6W.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/sonamu-ui/assets/index-D3QNH-Dv.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/utils/formatter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/utils/formatter.ts"],"names":[],"mappings":"AAgBA;;;;;GAKG;AACH,eAAO,MAAM,UAAU,qDAGrB,CAAC"}
|
package/dist/utils/formatter.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { __esmMin } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { init_runtime_value, isNumberValue } from "./runtime-value.js";
|
|
2
3
|
import { init_controller, isTest } from "./controller.js";
|
|
3
4
|
import { cached, init_async_utils } from "./async-utils.js";
|
|
4
5
|
import { execute, init_process_utils } from "./process-utils.js";
|
|
@@ -80,7 +81,7 @@ async function runOxlint(code) {
|
|
|
80
81
|
tmpFile
|
|
81
82
|
], { timeout: 1e4 });
|
|
82
83
|
} catch (e) {
|
|
83
|
-
if (
|
|
84
|
+
if (!isNumberValue(e.code)) throw e;
|
|
84
85
|
}
|
|
85
86
|
return await readFile(tmpFile, "utf-8");
|
|
86
87
|
} finally {
|
|
@@ -91,17 +92,18 @@ async function runOxlint(code) {
|
|
|
91
92
|
}
|
|
92
93
|
function resolveOxlintBin() {
|
|
93
94
|
try {
|
|
94
|
-
return
|
|
95
|
+
return requireFromHere.resolve("oxlint/bin/oxlint");
|
|
95
96
|
} catch {
|
|
96
97
|
return "oxlint";
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
|
-
var
|
|
100
|
+
var requireFromHere, formatCode, cachedOxfmtConfig;
|
|
100
101
|
var init_formatter = __esmMin((() => {
|
|
101
102
|
init_async_utils();
|
|
102
103
|
init_controller();
|
|
103
104
|
init_process_utils();
|
|
104
|
-
|
|
105
|
+
init_runtime_value();
|
|
106
|
+
requireFromHere = createRequire(import.meta.url);
|
|
105
107
|
formatCode = cached(formatCodeInternal, (code, filePath) => {
|
|
106
108
|
return `${filePath.endsWith(".tsx") ? "tsx" : filePath.endsWith(".json") ? "json" : "ts"}:${createHash("sha1").update(code).digest("hex")}`;
|
|
107
109
|
});
|
|
@@ -111,4 +113,4 @@ var init_formatter = __esmMin((() => {
|
|
|
111
113
|
init_formatter();
|
|
112
114
|
export { formatCode, init_formatter };
|
|
113
115
|
|
|
114
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9mb3JtYXR0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJjcnlwdG9cIjtcbi8vIO2FjOyKpO2KuCDtmZjqsr3sl5DshJzripQgZnMvcHJvbWlzZXPqsIAgbW9ja+uQmOyngOunjCwg7JWE656YIHJ1bk94bGludOydtCBpc1Rlc3Qg6rCA65Oc66GcIOyViCDrj4Tri4jquYxcbi8vIOq3uOuDpSBmcy9wcm9taXNlcyDqt7jrjIDroZwg7IKs7JqpLiAocHJvZHVjdGlvbuyXkOyEnOunjCDsnoTsi5ztjIzsnbwg7Z2Q66aE7J20IOuPleuLiOuLpC4pXG5pbXBvcnQgeyByZWFkRmlsZSwgdW5saW5rLCB3cml0ZUZpbGUgfSBmcm9tIFwiZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibW9kdWxlXCI7XG5pbXBvcnQgcGF0aCwgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgZm9ybWF0LCB0eXBlIEZvcm1hdENvbmZpZyB9IGZyb20gXCJveGZtdFwiO1xuXG5pbXBvcnQgeyBjYWNoZWQgfSBmcm9tIFwiLi9hc3luYy11dGlsc1wiO1xuaW1wb3J0IHsgaXNUZXN0IH0gZnJvbSBcIi4vY29udHJvbGxlclwiO1xuaW1wb3J0IHsgZXhlY3V0ZSB9IGZyb20gXCIuL3Byb2Nlc3MtdXRpbHNcIjtcblxuY29uc3QgX3JlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7XG5cbi8qKlxuICog7L2U65Oc66W8IO2UhOuhnOygne2KuOydmCBveGZtdCArIG94bGludCDshKTsoJXsl5Ag66ee7LawIO2PrOunpO2Mhe2VnCDrrLjsnpDsl7TsnYQg67CY7ZmY7ZWp64uI64ukLlxuICpcbiAqIOy6kOyLseuPhCDsnojslrTsmpQg44WO44WOIOuYkeqwmeydgCDsnoXroKXsl5Ag64yA7ZW07IScIOy6kOyLnCDsu6TrsoTrkKnri4jri6QuXG4gKiDsiJjrqoXsnYAg7ZSE66Gc7IS47IqkIOyjveydhOuVjOq5jOyngCDjhYtcbiAqL1xuZXhwb3J0IGNvbnN0IGZvcm1hdENvZGUgPSBjYWNoZWQoZm9ybWF0Q29kZUludGVybmFsLCAoY29kZSwgZmlsZVBhdGgpID0+IHtcbiAgY29uc3QgZXh0ID0gZmlsZVBhdGguZW5kc1dpdGgoXCIudHN4XCIpID8gXCJ0c3hcIiA6IGZpbGVQYXRoLmVuZHNXaXRoKFwiLmpzb25cIikgPyBcImpzb25cIiA6IFwidHNcIjtcbiAgcmV0dXJuIGAke2V4dH06JHtjcmVhdGVIYXNoKFwic2hhMVwiKS51cGRhdGUoY29kZSkuZGlnZXN0KFwiaGV4XCIpfWA7XG59KTtcblxuLyoqXG4gKiDsupDsi5wg7JeG64qUIO2PrOunt+2VqOyImCDsl5TtirjrpqwuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGZvcm1hdENvZGVJbnRlcm5hbChjb2RlOiBzdHJpbmcsIGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAvLyBqc29u7J2AIO2PrOunt+unjCDtlZjrqbQg65Cp64uI64ukLlxuICBpZiAoZmlsZVBhdGguZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgIHJldHVybiBydW5PeGZtdChjb2RlLCBmaWxlUGF0aCk7XG4gIH1cblxuICAvLyDrprDtirgg66i87KCAIO2VnCDri6TsnYzsl5Ag7Y+s66e37Jy866GcIOuniOustOumrO2VtOyalC5cbiAgcmV0dXJuIHJ1bk94Zm10KGF3YWl0IHJ1bk94bGludChjb2RlKSwgZmlsZVBhdGgpO1xufVxuXG4vKipcbiAqIO2UhOuhnOygne2KuCDshKTsoJXsnYQg7LC+7JWE7IScIOydtOyXkCDrp57strDshJwg7L2U65Oc66W8IO2PrOunt+2VqeuLiOuLpC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcnVuT3hmbXQoY29kZTogc3RyaW5nLCBmaWxlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZm9ybWF0KHBhdGguYmFzZW5hbWUoZmlsZVBhdGgpLCBjb2RlLCBhd2FpdCBsb2FkT3hmbXRDb25maWcoKSk7XG5cbiAgY29uc3QgZXJyb3JzID0gcmVzdWx0LmVycm9ycy5maWx0ZXIoKGUpID0+IGUuc2V2ZXJpdHkgPT09IFwiRXJyb3JcIik7XG4gIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIGlmICghaXNUZXN0KCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYG94Zm10IGVycm9ycyAoJHtmaWxlUGF0aH0pOmApO1xuICAgICAgZm9yIChjb25zdCBlcnIgb2YgZXJyb3JzKSB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gZXJyLmxhYmVsc1swXTtcbiAgICAgICAgaWYgKGxhYmVsKSB7XG4gICAgICAgICAgY29uc3QgYmVmb3JlID0gY29kZS5zbGljZShNYXRoLm1heCgwLCBsYWJlbC5zdGFydCAtIDgwKSwgbGFiZWwuc3RhcnQpO1xuICAgICAgICAgIGNvbnN0IGF0ID0gY29kZS5zbGljZShsYWJlbC5zdGFydCwgbGFiZWwuZW5kKTtcbiAgICAgICAgICBjb25zdCBhZnRlciA9IGNvZGUuc2xpY2UobGFiZWwuZW5kLCBNYXRoLm1pbihjb2RlLmxlbmd0aCwgbGFiZWwuZW5kICsgODApKTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGAgIC0gJHtlcnIubWVzc2FnZX0gKG9mZnNldCAke2xhYmVsLnN0YXJ0fS0ke2xhYmVsLmVuZH0pYCk7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgICAgIGFyb3VuZDogLi4uJHtiZWZvcmV9wrske2F0fcKrJHthZnRlcn0uLi5gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGAgIC0gJHtlcnIubWVzc2FnZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29kZTtcbiAgfVxuICByZXR1cm4gcmVzdWx0LmNvZGU7XG59XG5cbmxldCBjYWNoZWRPeGZtdENvbmZpZzogRm9ybWF0Q29uZmlnIHwgbnVsbCA9IG51bGw7XG5hc3luYyBmdW5jdGlvbiBsb2FkT3hmbXRDb25maWcoKTogUHJvbWlzZTxGb3JtYXRDb25maWc+IHtcbiAgaWYgKGNhY2hlZE94Zm10Q29uZmlnICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIGNhY2hlZE94Zm10Q29uZmlnO1xuICB9XG5cbiAgbGV0IGRpciA9IHByb2Nlc3MuY3dkKCk7XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgY29uc3QgY2FuZGlkYXRlID0gam9pbihkaXIsIFwiLm94Zm10cmMuanNvblwiKTtcbiAgICB0cnkge1xuICAgICAgY2FjaGVkT3hmbXRDb25maWcgPSBKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKGNhbmRpZGF0ZSwgXCJ1dGYtOFwiKSkgYXMgRm9ybWF0Q29uZmlnO1xuICAgICAgcmV0dXJuIGNhY2hlZE94Zm10Q29uZmlnO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICgoZSBhcyBOb2RlSlMuRXJybm9FeGNlcHRpb24pLmNvZGUgIT09IFwiRU5PRU5UXCIpIHtcbiAgICAgICAgIWlzVGVzdCgpICYmIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkICR7Y2FuZGlkYXRlfTpgLCBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHBhcmVudCA9IGRpcm5hbWUoZGlyKTtcbiAgICBpZiAocGFyZW50ID09PSBkaXIpIGJyZWFrO1xuICAgIGRpciA9IHBhcmVudDtcbiAgfVxuXG4gIGNhY2hlZE94Zm10Q29uZmlnID0ge307XG4gIHJldHVybiBjYWNoZWRPeGZtdENvbmZpZztcbn1cblxuLyoqXG4gKiDtlITroZzsoJ3tirgg7ISk7KCV7JeQIOunnuy2sCDsvZTrk5zrpbwgbGludO2VqeuLiOuLpC5cbiAqXG4gKiDtlITroZzsoJ3tirgg7ISk7KCV7J2EIOyggeyaqeuwm+uKlCBveGxpbnQgY2xp66W8IOywvuyVhCDrnYTsm4zshJwsXG4gKiDsnoTsi5wg7YyM7J287JeQIGluLXBsYWNl66GcIOyNqOyEnCDqt7gg6rKw6rO866W8IOu5vOyYpOuKlCDrsKnsi53snLzroZwg7J6R64+Z7ZWp64uI64ukLlxuICog7JmcIOydtOugh+qyjCDtlZjripDrg5A/IG94bGludOqwgCBub2RlIGFwaeuPhCDslYgg7KO86rOgIGNsaeyXkOyEnCBzdGRpbiDsmLXshZjrj4Qg7JWIIOyjvOq4sCDrlYzrrLguLi5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcnVuT3hsaW50KGNvZGU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGlmIChpc1Rlc3QoKSkge1xuICAgIC8vIO2FjOyKpO2KuCDtmZjqsr3sl5DshJzripQg64qQ66Ck7KeA6riw66eMIO2VmOqzoCDqsoDspp3tlaAg6rCA7LmY64+EIOyXhuyWtOyEnCDslYgg7ZWp64uI64ukLlxuICAgIC8vIEdpdEh1YiBBY3Rpb25zIO2ZmOqyveyXkOyEnCBsaW506rCAIOyYpOuemCDqsbjroKTshJwg67uX6riw64+EIO2WiOyWtOyalC4gKGh0dHBzOi8vZ2l0aHViLmNvbS9jYXJ0YW5vdmEtYWkvc29uYW11L2FjdGlvbnMvcnVucy8yNTI2NzIxNDAyNy9qb2IvNzQwODM2MzAxNjkpXG4gICAgcmV0dXJuIGNvZGU7XG4gIH1cblxuICBjb25zdCB0bXBGaWxlID0gam9pbihcbiAgICAvLyDtg4Dqsp8g7YyM7J287J20IOujqO2KuCDslYTrnpjsl5Ag7J6I7Ja07JW8IO2VtOyalC4g6re4656Y7IScIHRtcCDrlJTroInthqDrpqzqsJnsnYDqsbAg7JWIIOyUgeuLiOuLpCFcbiAgICBwcm9jZXNzLmN3ZCgpLFxuICAgIGAuc29uYW11LWZtdC0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMil9LnRzYCxcbiAgKTtcblxuICB0cnkge1xuICAgIGF3YWl0IHdyaXRlRmlsZSh0bXBGaWxlLCBjb2RlLCBcInV0Zi04XCIpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGV4ZWN1dGUocmVzb2x2ZU94bGludEJpbigpLCBbXCItLWZpeFwiLCBcIi0tZml4LXN1Z2dlc3Rpb25zXCIsIFwiLS10eXBlLWF3YXJlXCIsIHRtcEZpbGVdLCB7XG4gICAgICAgIHRpbWVvdXQ6IDEwMDAwLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gbGludCDsnITrsJgg7IucIGV4aXQgY29kZSAhPSAw7J207KeA66eMIC0tZml464qUIOyggeyaqeuQqC4gZXhlYyDsnpDssrQg7Iuk7Yyo66eMIHRocm93LlxuICAgICAgaWYgKHR5cGVvZiAoZSBhcyBFcnJvciAmIHsgY29kZT86IG51bWJlciB9KS5jb2RlICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHJlYWRGaWxlKHRtcEZpbGUsIFwidXRmLThcIik7XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHVubGluayh0bXBGaWxlKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIOyCreygnCDsi6TtjKjtlbTrj4Qg7Ja07LCo7ZS8IGlnbm9yZeuQqC5cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZU94bGludEJpbigpOiBzdHJpbmcge1xuICB0cnkge1xuICAgIHJldHVybiBfcmVxdWlyZS5yZXNvbHZlKFwib3hsaW50L2Jpbi9veGxpbnRcIik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBcIm94bGludFwiO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUE2QkEsZUFBZSxtQkFBbUIsTUFBYyxVQUFtQztDQUVqRixJQUFJLFNBQVMsU0FBUyxPQUFPLEdBQzNCLE9BQU8sU0FBUyxNQUFNLFFBQVE7Q0FJaEMsT0FBTyxTQUFTLE1BQU0sVUFBVSxJQUFJLEdBQUcsUUFBUTtBQUNqRDs7OztBQUtBLGVBQWUsU0FBUyxNQUFjLFVBQW1DO0NBQ3ZFLE1BQU0sU0FBUyxN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
|
|
116
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9mb3JtYXR0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJjcnlwdG9cIjtcbi8vIO2FjOyKpO2KuCDtmZjqsr3sl5DshJzripQgZnMvcHJvbWlzZXPqsIAgbW9ja+uQmOyngOunjCwg7JWE656YIHJ1bk94bGludOydtCBpc1Rlc3Qg6rCA65Oc66GcIOyViCDrj4Tri4jquYxcbi8vIOq3uOuDpSBmcy9wcm9taXNlcyDqt7jrjIDroZwg7IKs7JqpLiAocHJvZHVjdGlvbuyXkOyEnOunjCDsnoTsi5ztjIzsnbwg7Z2Q66aE7J20IOuPleuLiOuLpC4pXG5pbXBvcnQgeyByZWFkRmlsZSwgdW5saW5rLCB3cml0ZUZpbGUgfSBmcm9tIFwiZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibW9kdWxlXCI7XG5pbXBvcnQgcGF0aCwgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgZm9ybWF0LCB0eXBlIEZvcm1hdENvbmZpZyB9IGZyb20gXCJveGZtdFwiO1xuXG5pbXBvcnQgeyBjYWNoZWQgfSBmcm9tIFwiLi9hc3luYy11dGlsc1wiO1xuaW1wb3J0IHsgaXNUZXN0IH0gZnJvbSBcIi4vY29udHJvbGxlclwiO1xuaW1wb3J0IHsgZXhlY3V0ZSB9IGZyb20gXCIuL3Byb2Nlc3MtdXRpbHNcIjtcbmltcG9ydCB7IGlzTnVtYmVyVmFsdWUgfSBmcm9tIFwiLi9ydW50aW1lLXZhbHVlXCI7XG5cbmNvbnN0IHJlcXVpcmVGcm9tSGVyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcblxuLyoqXG4gKiDsvZTrk5zrpbwg7ZSE66Gc7KCd7Yq47J2YIG94Zm10ICsgb3hsaW50IOyEpOygleyXkCDrp57strAg7Y+s66ek7YyF7ZWcIOusuOyekOyXtOydhCDrsJjtmZjtlanri4jri6QuXG4gKlxuICog7LqQ7Iux64+EIOyeiOyWtOyalCDjhY7jhY4g65iR6rCZ7J2AIOyeheugpeyXkCDrjIDtlbTshJwg7LqQ7IucIOy7pOuyhOuQqeuLiOuLpC5cbiAqIOyImOuqheydgCDtlITroZzshLjsiqQg7KO97J2E65WM6rmM7KeAIOOFi1xuICovXG5leHBvcnQgY29uc3QgZm9ybWF0Q29kZSA9IGNhY2hlZChmb3JtYXRDb2RlSW50ZXJuYWwsIChjb2RlLCBmaWxlUGF0aCkgPT4ge1xuICBjb25zdCBleHQgPSBmaWxlUGF0aC5lbmRzV2l0aChcIi50c3hcIikgPyBcInRzeFwiIDogZmlsZVBhdGguZW5kc1dpdGgoXCIuanNvblwiKSA/IFwianNvblwiIDogXCJ0c1wiO1xuICByZXR1cm4gYCR7ZXh0fToke2NyZWF0ZUhhc2goXCJzaGExXCIpLnVwZGF0ZShjb2RlKS5kaWdlc3QoXCJoZXhcIil9YDtcbn0pO1xuXG4vKipcbiAqIOy6kOyLnCDsl4bripQg7Y+s66e37ZWo7IiYIOyXlO2KuOumrC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZm9ybWF0Q29kZUludGVybmFsKGNvZGU6IHN0cmluZywgZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIC8vIGpzb27snYAg7Y+s66e366eMIO2VmOuptCDrkKnri4jri6QuXG4gIGlmIChmaWxlUGF0aC5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgcmV0dXJuIHJ1bk94Zm10KGNvZGUsIGZpbGVQYXRoKTtcbiAgfVxuXG4gIC8vIOumsO2KuCDrqLzsoIAg7ZWcIOuLpOydjOyXkCDtj6zrp7fsnLzroZwg66eI66y066as7ZW07JqULlxuICByZXR1cm4gcnVuT3hmbXQoYXdhaXQgcnVuT3hsaW50KGNvZGUpLCBmaWxlUGF0aCk7XG59XG5cbi8qKlxuICog7ZSE66Gc7KCd7Yq4IOyEpOygleydhCDssL7slYTshJwg7J207JeQIOunnuy2sOyEnCDsvZTrk5zrpbwg7Y+s66e37ZWp64uI64ukLlxuICovXG5hc3luYyBmdW5jdGlvbiBydW5PeGZtdChjb2RlOiBzdHJpbmcsIGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBmb3JtYXQocGF0aC5iYXNlbmFtZShmaWxlUGF0aCksIGNvZGUsIGF3YWl0IGxvYWRPeGZtdENvbmZpZygpKTtcblxuICBjb25zdCBlcnJvcnMgPSByZXN1bHQuZXJyb3JzLmZpbHRlcigoZSkgPT4gZS5zZXZlcml0eSA9PT0gXCJFcnJvclwiKTtcbiAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgaWYgKCFpc1Rlc3QoKSkge1xuICAgICAgY29uc29sZS5lcnJvcihgb3hmbXQgZXJyb3JzICgke2ZpbGVQYXRofSk6YCk7XG4gICAgICBmb3IgKGNvbnN0IGVyciBvZiBlcnJvcnMpIHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSBlcnIubGFiZWxzWzBdO1xuICAgICAgICBpZiAobGFiZWwpIHtcbiAgICAgICAgICBjb25zdCBiZWZvcmUgPSBjb2RlLnNsaWNlKE1hdGgubWF4KDAsIGxhYmVsLnN0YXJ0IC0gODApLCBsYWJlbC5zdGFydCk7XG4gICAgICAgICAgY29uc3QgYXQgPSBjb2RlLnNsaWNlKGxhYmVsLnN0YXJ0LCBsYWJlbC5lbmQpO1xuICAgICAgICAgIGNvbnN0IGFmdGVyID0gY29kZS5zbGljZShsYWJlbC5lbmQsIE1hdGgubWluKGNvZGUubGVuZ3RoLCBsYWJlbC5lbmQgKyA4MCkpO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYCAgLSAke2Vyci5tZXNzYWdlfSAob2Zmc2V0ICR7bGFiZWwuc3RhcnR9LSR7bGFiZWwuZW5kfSlgKTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGAgICAgYXJvdW5kOiAuLi4ke2JlZm9yZX3CuyR7YXR9wqske2FmdGVyfS4uLmApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYCAgLSAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb2RlO1xuICB9XG4gIHJldHVybiByZXN1bHQuY29kZTtcbn1cblxubGV0IGNhY2hlZE94Zm10Q29uZmlnOiBGb3JtYXRDb25maWcgfCBudWxsID0gbnVsbDtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRPeGZtdENvbmZpZygpOiBQcm9taXNlPEZvcm1hdENvbmZpZz4ge1xuICBpZiAoY2FjaGVkT3hmbXRDb25maWcgIT09IG51bGwpIHtcbiAgICByZXR1cm4gY2FjaGVkT3hmbXRDb25maWc7XG4gIH1cblxuICBsZXQgZGlyID0gcHJvY2Vzcy5jd2QoKTtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICBjb25zdCBjYW5kaWRhdGUgPSBqb2luKGRpciwgXCIub3hmbXRyYy5qc29uXCIpO1xuICAgIHRyeSB7XG4gICAgICAvLyBTQUZFVFk6IOyEoO2WiSDrtoTquLDsmYAg7ZWo7IiYIOqzhOyVveydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgIGNhY2hlZE94Zm10Q29uZmlnID0gSlNPTi5wYXJzZShhd2FpdCByZWFkRmlsZShjYW5kaWRhdGUsIFwidXRmLThcIikpIGFzIEZvcm1hdENvbmZpZztcbiAgICAgIHJldHVybiBjYWNoZWRPeGZtdENvbmZpZztcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBTQUZFVFk6IOyEoO2WiSDrtoTquLDsmYAg7ZWo7IiYIOqzhOyVveydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgIGlmICgoZSBhcyBOb2RlSlMuRXJybm9FeGNlcHRpb24pLmNvZGUgIT09IFwiRU5PRU5UXCIpIHtcbiAgICAgICAgIWlzVGVzdCgpICYmIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkICR7Y2FuZGlkYXRlfTpgLCBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHBhcmVudCA9IGRpcm5hbWUoZGlyKTtcbiAgICBpZiAocGFyZW50ID09PSBkaXIpIGJyZWFrO1xuICAgIGRpciA9IHBhcmVudDtcbiAgfVxuXG4gIGNhY2hlZE94Zm10Q29uZmlnID0ge307XG4gIHJldHVybiBjYWNoZWRPeGZtdENvbmZpZztcbn1cblxuLyoqXG4gKiDtlITroZzsoJ3tirgg7ISk7KCV7JeQIOunnuy2sCDsvZTrk5zrpbwgbGludO2VqeuLiOuLpC5cbiAqXG4gKiDtlITroZzsoJ3tirgg7ISk7KCV7J2EIOyggeyaqeuwm+uKlCBveGxpbnQgY2xp66W8IOywvuyVhCDrnYTsm4zshJwsXG4gKiDsnoTsi5wg7YyM7J287JeQIGluLXBsYWNl66GcIOyNqOyEnCDqt7gg6rKw6rO866W8IOu5vOyYpOuKlCDrsKnsi53snLzroZwg7J6R64+Z7ZWp64uI64ukLlxuICog7JmcIOydtOugh+qyjCDtlZjripDrg5A/IG94bGludOqwgCBub2RlIGFwaeuPhCDslYgg7KO86rOgIGNsaeyXkOyEnCBzdGRpbiDsmLXshZjrj4Qg7JWIIOyjvOq4sCDrlYzrrLguLi5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcnVuT3hsaW50KGNvZGU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGlmIChpc1Rlc3QoKSkge1xuICAgIC8vIO2FjOyKpO2KuCDtmZjqsr3sl5DshJzripQg64qQ66Ck7KeA6riw66eMIO2VmOqzoCDqsoDspp3tlaAg6rCA7LmY64+EIOyXhuyWtOyEnCDslYgg7ZWp64uI64ukLlxuICAgIC8vIEdpdEh1YiBBY3Rpb25zIO2ZmOqyveyXkOyEnCBsaW506rCAIOyYpOuemCDqsbjroKTshJwg67uX6riw64+EIO2WiOyWtOyalC4gKGh0dHBzOi8vZ2l0aHViLmNvbS9jYXJ0YW5vdmEtYWkvc29uYW11L2FjdGlvbnMvcnVucy8yNTI2NzIxNDAyNy9qb2IvNzQwODM2MzAxNjkpXG4gICAgcmV0dXJuIGNvZGU7XG4gIH1cblxuICBjb25zdCB0bXBGaWxlID0gam9pbihcbiAgICAvLyDtg4Dqsp8g7YyM7J287J20IOujqO2KuCDslYTrnpjsl5Ag7J6I7Ja07JW8IO2VtOyalC4g6re4656Y7IScIHRtcCDrlJTroInthqDrpqzqsJnsnYDqsbAg7JWIIOyUgeuLiOuLpCFcbiAgICBwcm9jZXNzLmN3ZCgpLFxuICAgIGAuc29uYW11LWZtdC0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMil9LnRzYCxcbiAgKTtcblxuICB0cnkge1xuICAgIGF3YWl0IHdyaXRlRmlsZSh0bXBGaWxlLCBjb2RlLCBcInV0Zi04XCIpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGV4ZWN1dGUocmVzb2x2ZU94bGludEJpbigpLCBbXCItLWZpeFwiLCBcIi0tZml4LXN1Z2dlc3Rpb25zXCIsIFwiLS10eXBlLWF3YXJlXCIsIHRtcEZpbGVdLCB7XG4gICAgICAgIHRpbWVvdXQ6IDEwMDAwLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gbGludCDsnITrsJgg7IucIGV4aXQgY29kZSAhPSAw7J207KeA66eMIC0tZml464qUIOyggeyaqeuQqC4gZXhlYyDsnpDssrQg7Iuk7Yyo66eMIHRocm93LlxuICAgICAgLy8gU0FGRVRZOiDshKDtlokg67aE6riw7JmAIO2VqOyImCDqs4Tslb3snbQg7J20IO2DgOyeheydhCDrs7TsnqXtlanri4jri6QuXG4gICAgICBpZiAoIWlzTnVtYmVyVmFsdWUoKGUgYXMgRXJyb3IgJiB7IGNvZGU/OiBudW1iZXIgfSkuY29kZSkpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgcmVhZEZpbGUodG1wRmlsZSwgXCJ1dGYtOFwiKTtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdW5saW5rKHRtcEZpbGUpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8g7IKt7KCcIOyLpO2MqO2VtOuPhCDslrTssKjtlLwgaWdub3Jl65CoLlxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZXNvbHZlT3hsaW50QmluKCk6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHJlcXVpcmVGcm9tSGVyZS5yZXNvbHZlKFwib3hsaW50L2Jpbi9veGxpbnRcIik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBcIm94bGludFwiO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBOEJBLGVBQWUsbUJBQW1CLE1BQWMsVUFBbUM7Q0FFakYsSUFBSSxTQUFTLFNBQVMsT0FBTyxHQUMzQixPQUFPLFNBQVMsTUFBTSxRQUFRO0NBSWhDLE9BQU8sU0FBUyxNQUFNLFVBQVUsSUFBSSxHQUFHLFFBQVE7QUFDakQ7Ozs7QUFLQSxlQUFlLFNBQVMsTUFBYyxVQUFtQztDQUN2RSxNQUFNLFNBQVMsTUFBTSxPQUFPLEtBQUssU0FBUyxRQUFRLEdBQUcsTUFBTSxNQUFNLGdCQUFnQixDQUFDO0NBRWxGLE1BQU0sU0FBUyxPQUFPLE9BQU8sUUFBUSxNQUFNLEVBQUUsYUFBYSxPQUFPO0NBQ2pFLElBQUksT0FBTyxTQUFTLEdBQUc7RUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRztHQUNiLFFBQVEsTUFBTSxpQkFBaUIsU0FBUyxHQUFHO0dBQzNDLEtBQUssTUFBTSxPQUFPLFFBQVE7SUFDeEIsTUFBTSxRQUFRLElBQUksT0FBTztJQUN6QixJQUFJLE9BQU87S0FDVCxNQUFNLFNBQVMsS0FBSyxNQUFNLEtBQUssSUFBSSxHQUFHLE1BQU0sUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLO0tBQ3BFLE1BQU0sS0FBSyxLQUFLLE1BQU0sTUFBTSxPQUFPLE1BQU0sR0FBRztLQUM1QyxNQUFNLFFBQVEsS0FBSyxNQUFNLE1BQU0sS0FBSyxLQUFLLElBQUksS0FBSyxRQUFRLE1BQU0sTUFBTSxFQUFFLENBQUM7S0FDekUsUUFBUSxNQUFNLE9BQU8sSUFBSSxRQUFRLFdBQVcsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLEVBQUU7S0FDdkUsUUFBUSxNQUFNLGtCQUFrQixPQUFPLEdBQUcsR0FBRyxHQUFHLE1BQU0sSUFBSTtJQUM1RCxPQUNFLFFBQVEsTUFBTSxPQUFPLElBQUksU0FBUztHQUV0QztFQUNGO0VBQ0EsT0FBTztDQUNUO0NBQ0EsT0FBTyxPQUFPO0FBQ2hCO0FBR0EsZUFBZSxrQkFBeUM7Q0FDdEQsSUFBSSxzQkFBc0IsTUFDeEIsT0FBTztDQUdULElBQUksTUFBTSxRQUFRLElBQUk7Q0FDdEIsT0FBTyxNQUFNO0VBQ1gsTUFBTSxZQUFZLEtBQUssS0FBSyxlQUFlO0VBQzNDLElBQUk7R0FFRixvQkFBb0IsS0FBSyxNQUFNLE1BQU0sU0FBUyxXQUFXLE9BQU8sQ0FBQztHQUNqRSxPQUFPO0VBQ1QsU0FBUyxHQUFHO0dBRVYsSUFBSyxFQUE0QixTQUFTLFVBQVU7SUFDbEQsQ0FBQyxPQUFPLEtBQUssUUFBUSxNQUFNLGtCQUFrQixVQUFVLElBQUksQ0FBQztJQUM1RDtHQUNGO0VBQ0Y7RUFDQSxNQUFNLFNBQVMsUUFBUSxHQUFHO0VBQzFCLElBQUksV0FBVyxLQUFLO0VBQ3BCLE1BQU07Q0FDUjtDQUVBLG9CQUFvQixDQUFDO0NBQ3JCLE9BQU87QUFDVDs7Ozs7Ozs7QUFTQSxlQUFlLFVBQVUsTUFBK0I7Q0FDdEQsSUFBSSxPQUFPLEdBR1QsT0FBTztDQUdULE1BQU0sVUFBVSxLQUVkLFFBQVEsSUFBSSxHQUNaLGVBQWUsS0FBSyxJQUFJLEVBQUUsR0FBRyxLQUFLLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFDbkU7Q0FFQSxJQUFJO0VBQ0YsTUFBTSxVQUFVLFNBQVMsTUFBTSxPQUFPO0VBRXRDLElBQUk7R0FDRixNQUFNLFFBQVEsaUJBQWlCLEdBQUc7SUFBQztJQUFTO0lBQXFCO0lBQWdCO0dBQU8sR0FBRyxFQUN6RixTQUFTLElBQ1gsQ0FBQztFQUNILFNBQVMsR0FBRztHQUdWLElBQUksQ0FBQyxjQUFlLEVBQWdDLElBQUksR0FDdEQsTUFBTTtFQUVWO0VBRUEsT0FBTyxNQUFNLFNBQVMsU0FBUyxPQUFPO0NBQ3hDLFVBQVU7RUFDUixJQUFJO0dBQ0YsTUFBTSxPQUFPLE9BQU87RUFDdEIsUUFBUSxDQUVSO0NBQ0Y7QUFDRjtBQUVBLFNBQVMsbUJBQTJCO0NBQ2xDLElBQUk7RUFDRixPQUFPLGdCQUFnQixRQUFRLG1CQUFtQjtDQUNwRCxRQUFRO0VBQ04sT0FBTztDQUNUO0FBQ0Y7OztrQkEzSXNDO2lCQUNEO29CQUNJO29CQUNNO0NBRXpDLGtCQUFrQixjQUFjLE9BQU8sS0FBSyxHQUFHO0NBUXhDLGFBQWEsT0FBTyxxQkFBcUIsTUFBTSxhQUFhO0VBRXZFLE9BQU8sR0FESyxTQUFTLFNBQVMsTUFBTSxJQUFJLFFBQVEsU0FBUyxTQUFTLE9BQU8sSUFBSSxTQUFTLEtBQ3hFLEdBQUcsV0FBVyxNQUFNLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSztDQUMvRCxDQUFDO0NBMkNHLG9CQUF5QyJ9
|
package/dist/utils/fs-utils.d.ts
CHANGED
|
@@ -2,11 +2,11 @@ import { type PathLike } from "fs";
|
|
|
2
2
|
/**
|
|
3
3
|
* fs/promises에는 exists가 없어요. 대신 access가 있습니다.
|
|
4
4
|
* 근데 얘는 인터페이스가 쓰기 불편해요. 그래서 감싸주었습니다.
|
|
5
|
-
* @param
|
|
5
|
+
* @param targetPath
|
|
6
6
|
* @returns
|
|
7
7
|
*/
|
|
8
|
-
export declare function exists(
|
|
9
|
-
export declare function fileExists(
|
|
8
|
+
export declare function exists(targetPath: PathLike): Promise<boolean>;
|
|
9
|
+
export declare function fileExists(targetPath: PathLike): Promise<boolean>;
|
|
10
10
|
/**
|
|
11
11
|
* 파일을 복사하면서 `from "sonamu"` import를 sonamu.shared.ts 경로로 치환합니다.
|
|
12
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs-utils.d.ts","sourceRoot":"","sources":["../../src/utils/fs-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,IAAI,CAAC;AAMnC;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"fs-utils.d.ts","sourceRoot":"","sources":["../../src/utils/fs-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,IAAI,CAAC;AAMnC;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,UAAU,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAGD,wBAAsB,UAAU,CAAC,UAAU,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CA4ClB"}
|
package/dist/utils/fs-utils.js
CHANGED
|
@@ -7,20 +7,20 @@ import { access, readFile, stat, writeFile } from "fs/promises";
|
|
|
7
7
|
/**
|
|
8
8
|
* fs/promises에는 exists가 없어요. 대신 access가 있습니다.
|
|
9
9
|
* 근데 얘는 인터페이스가 쓰기 불편해요. 그래서 감싸주었습니다.
|
|
10
|
-
* @param
|
|
10
|
+
* @param targetPath
|
|
11
11
|
* @returns
|
|
12
12
|
*/
|
|
13
|
-
async function exists(
|
|
13
|
+
async function exists(targetPath) {
|
|
14
14
|
try {
|
|
15
|
-
await access(
|
|
15
|
+
await access(targetPath, constants.F_OK);
|
|
16
16
|
return true;
|
|
17
17
|
} catch {
|
|
18
18
|
return false;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
async function fileExists(
|
|
21
|
+
async function fileExists(targetPath) {
|
|
22
22
|
try {
|
|
23
|
-
return (await stat(
|
|
23
|
+
return (await stat(targetPath)).isFile();
|
|
24
24
|
} catch {
|
|
25
25
|
return false;
|
|
26
26
|
}
|
|
@@ -69,4 +69,4 @@ var init_fs_utils = __esmMin((() => {
|
|
|
69
69
|
init_fs_utils();
|
|
70
70
|
export { copyFileWithReplaceCoreToShared, exists, fileExists, init_fs_utils };
|
|
71
71
|
|
|
72
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtdXRpbHMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2ZzLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbnN0YW50cyB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgdHlwZSBQYXRoTGlrZSB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgYWNjZXNzLCByZWFkRmlsZSwgc3RhdCwgd3JpdGVGaWxlIH0gZnJvbSBcImZzL3Byb21pc2VzXCI7XG5pbXBvcnQgcGF0aCwgeyBkaXJuYW1lIH0gZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgZm9ybWF0Q29kZSB9IGZyb20gXCIuL2Zvcm1hdHRlclwiO1xuXG4vKipcbiAqIGZzL3Byb21pc2Vz7JeQ64qUIGV4aXN0c+
|
|
72
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtdXRpbHMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2ZzLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbnN0YW50cyB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgdHlwZSBQYXRoTGlrZSB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgYWNjZXNzLCByZWFkRmlsZSwgc3RhdCwgd3JpdGVGaWxlIH0gZnJvbSBcImZzL3Byb21pc2VzXCI7XG5pbXBvcnQgcGF0aCwgeyBkaXJuYW1lIH0gZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgZm9ybWF0Q29kZSB9IGZyb20gXCIuL2Zvcm1hdHRlclwiO1xuXG4vKipcbiAqIGZzL3Byb21pc2Vz7JeQ64qUIGV4aXN0c+qwgCDsl4bslrTsmpQuIOuMgOyLoCBhY2Nlc3PqsIAg7J6I7Iq164uI64ukLlxuICog6re8642wIOyWmOuKlCDsnbjthLDtjpjsnbTsiqTqsIAg7JOw6riwIOu2iO2OuO2VtOyalC4g6re4656Y7IScIOqwkOyLuOyjvOyXiOyKteuLiOuLpC5cbiAqIEBwYXJhbSB0YXJnZXRQYXRoXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhpc3RzKHRhcmdldFBhdGg6IFBhdGhMaWtlKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgYWNjZXNzKHRhcmdldFBhdGgsIGNvbnN0YW50cy5GX09LKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vIOuUlOugie2GoOumrOqwgCDslYTri4jrnbwg7YyM7J2866eMIOyhtOyerO2VmOuKlOyngCDtmZXsnbjtlanri4jri6QuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmlsZUV4aXN0cyh0YXJnZXRQYXRoOiBQYXRoTGlrZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICB0cnkge1xuICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgc3RhdCh0YXJnZXRQYXRoKTtcbiAgICByZXR1cm4gc3RhdHMuaXNGaWxlKCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIO2MjOydvOydhCDrs7XsgqztlZjrqbTshJwgYGZyb20gXCJzb25hbXVcImAgaW1wb3J066W8IHNvbmFtdS5zaGFyZWQudHMg6rK966Gc66GcIOy5mO2ZmO2VqeuLiOuLpC5cbiAqXG4gKiB3ZWLsnbTrgpggYXBwIOuTseyXkOuKlCBzb25hbXUg7Yyo7YKk7KeA6rCAIOyXhuycvOuvgOuhnCwg7ZWo6ruYIOuzteyCrOuQmOuKlCBzb25hbXUuc2hhcmVkLnRz7JeQ7IScIOqwgOyguOyYpOuPhOuhnSDrs4DtmZjtlanri4jri6QuXG4gKiDrjIDsg4Eg7YyM7J287J2YIOychOy5mOyXkCDrlLDrnbwg7IOB64yAIOqyveuhnOqwgCDri6zrnbzsp5Hri4jri6Q6XG4gKiAtIHNlcnZpY2VzL3NvbmFtdS5nZW5lcmF0ZWQudHMg4oaSIC4vc29uYW11LnNoYXJlZFxuICogLSBzZXJ2aWNlcy91c2VyL3VzZXIudHlwZXMudHMg4oaSIC4uL3NvbmFtdS5zaGFyZWRcbiAqIC0gaTE4bi9rby50cyDihpIgLi4vc2VydmljZXMvc29uYW11LnNoYXJlZFxuICpcbiAqIHRzL3RzeCDtjIzsnbzsnYAg7JOw6riwIOyghOyXkCBveGZtdC9veGxpbnQg7ZWc67KIIOuPjOugpOykjeuLiOuLpCFcbiAqXG4gKiBAcGFyYW0gZnJvbVBhdGgg7JuQ67O4IO2MjOydvCDqsr3roZxcbiAqIEBwYXJhbSB0b1BhdGgg64yA7IOBIO2MjOydvCDqsr3roZxcbiAqIEBwYXJhbSBzeW5jSGVhZGVyIOuPmeq4sO2ZlCDsi5wg7YyM7J28IOy1nOyDgeuLqOyXkCDsgr3snoXtlaAg7KO87ISdIOu4lOuhnS4g6riw7KG0IEBnZW5lcmF0ZWQg67iU66Gd7J20IOyeiOycvOuptCDqtZDssrTtlZjqs6AsIOyXhuycvOuptCDstZzsg4Hri6jsl5Ag7LaU6rCA7ZWp64uI64ukLlxuICogQHJldHVybnMg7YyM7J287J2EIOyNvOycvOuptCB0cnVlLCDqsbTrhIjrm7Dsl4jsnLzrqbQgZmFsc2VcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvcHlGaWxlV2l0aFJlcGxhY2VDb3JlVG9TaGFyZWQoXG4gIGZyb21QYXRoOiBzdHJpbmcsXG4gIHRvUGF0aDogc3RyaW5nLFxuICBzeW5jSGVhZGVyPzogc3RyaW5nLFxuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGlmICghKGF3YWl0IGV4aXN0cyhmcm9tUGF0aCkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3Qgb2xkRmlsZUNvbnRlbnQgPSAoYXdhaXQgcmVhZEZpbGUoZnJvbVBhdGgpKS50b1N0cmluZygpO1xuXG4gIGxldCBuZXdGaWxlQ29udGVudCA9ICgoKSA9PiB7XG4gICAgLy8gc29uYW11LnNoYXJlZC50c+uKlCDtla3sg4Ege2Jhc2V9L3NyYy9zZXJ2aWNlcy9zb25hbXUuc2hhcmVkLnRz7JeQIOychOy5mO2VqeuLiOuLpC5cbiAgICAvLyB0b1BhdGjsl5DshJwgL3NyYy/rpbwg7LC+7JWEIHNlcnZpY2VzIOuUlOugie2GoOumrCDqsr3roZzrpbwg6rOE7IKw7ZWp64uI64ukLlxuICAgIGNvbnN0IHNyY01hdGNoID0gdG9QYXRoLm1hdGNoKC9eKC4rXFwvc3JjKVxcLy8pO1xuICAgIGlmICghc3JjTWF0Y2gpIHtcbiAgICAgIC8vIC9zcmMv6rCAIOyXhuycvOuptCDrs4DtmZgg7JeG7J20IOq3uOuMgOuhnCDrsJjtmZhcbiAgICAgIHJldHVybiBvbGRGaWxlQ29udGVudDtcbiAgICB9XG5cbiAgICBjb25zdCBzZXJ2aWNlc0RpciA9IHBhdGguam9pbihzcmNNYXRjaFsxXSwgXCJzZXJ2aWNlc1wiKTtcbiAgICBjb25zdCBmaWxlRGlyID0gZGlybmFtZSh0b1BhdGgpO1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHBhdGgucmVsYXRpdmUoZmlsZURpciwgc2VydmljZXNEaXIpO1xuICAgIGNvbnN0IHNoYXJlZFBhdGggPSByZWxhdGl2ZVBhdGggPT09IFwiXCIgPyBcIi4vc29uYW11LnNoYXJlZFwiIDogYCR7cmVsYXRpdmVQYXRofS9zb25hbXUuc2hhcmVkYDtcblxuICAgIHJldHVybiBvbGRGaWxlQ29udGVudC5yZXBsYWNlKC9mcm9tIFwic29uYW11KFxcL2RpY3QpP1wiL2csIGBmcm9tIFwiJHtzaGFyZWRQYXRofVwiYCk7XG4gIH0pKCk7XG5cbiAgLy8gc3luY0hlYWRlcuqwgCDsoJzqs7XrkJwg6rK97JqwIEBnZW5lcmF0ZWQg67iU66Gd7J2EIOq1kOyytO2VmOqxsOuCmCDstZzsg4Hri6jsl5Ag7LaU6rCA7ZWp64uI64ukLlxuICAvLyBgKi9gIOynge2bhOyXkOuKlCDtla3sg4Eg67mIIOykhCDtlZwg6rCc66W8IOuztOyepe2VmOyXrCBveGZtdOqwgCDso7zshJ3snYQgaW1wb3J07J2YIGxlYWRpbmcgY29tbWVudOuhnCDsmKTsnbjtlbQg7KCV66CsIOyLnCDrgYzroKTqsIDripQg66y47KCc66W8IOuwqeyngO2VqeuLiOuLpC5cbiAgaWYgKHN5bmNIZWFkZXIpIHtcbiAgICAvLyDquLDsobQgQGdlbmVyYXRlZCDruJTroZ0gKyDrkqTsnbTslrQg7Jik64qUIOu5iCDspITrk6Qo7J6I7Jy866m0IO2PrO2VqCnsnYQg7ZWc6rq867KI7JeQIOunpOy5re2VmOyXrCDqtZDssrQg7IucIOu5iCDspITsnbQg64iE7KCB65CY7KeAIOyViuqyjCDtlanri4jri6QuXG4gICAgLy8g7ZWcIOykhOynnOumrCgvKiogQGdlbmVyYXRlZCAqLynripQg66ek7Lmt7ZWY7KeAIOyViuycvOuvgOuhnCDsiJjrj5nsnLzroZwg7LaV7JW97ZWY7KeAIOuniOyEuOyalC5cbiAgICBjb25zdCBnZW5lcmF0ZWRCbG9ja1JlZ2V4ID0gL1xcL1xcKlxcKlxccj9cXG4gXFwqIEBnZW5lcmF0ZWRcXHI/XFxuW1xcc1xcU10qP1xcKlxcL1xccj9cXG4oXFxyP1xcbikqLztcbiAgICBpZiAoZ2VuZXJhdGVkQmxvY2tSZWdleC50ZXN0KG5ld0ZpbGVDb250ZW50KSkge1xuICAgICAgbmV3RmlsZUNvbnRlbnQgPSBuZXdGaWxlQ29udGVudC5yZXBsYWNlKGdlbmVyYXRlZEJsb2NrUmVnZXgsIGAke3N5bmNIZWFkZXJ9XFxuXFxuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0ZpbGVDb250ZW50ID0gYCR7c3luY0hlYWRlcn1cXG5cXG4ke25ld0ZpbGVDb250ZW50fWA7XG4gICAgfVxuICB9XG5cbiAgLy8gLnRzLy50c3gg7IKw7Lac66y87J2AIOyTsOq4sCDsoITsl5Ag7Y+s66e364+EIO2VtOykmOyalCDjhY7jhY5cbiAgaWYgKHRvUGF0aC5lbmRzV2l0aChcIi50c1wiKSB8fCB0b1BhdGguZW5kc1dpdGgoXCIudHN4XCIpKSB7XG4gICAgbmV3RmlsZUNvbnRlbnQgPSBhd2FpdCBmb3JtYXRDb2RlKG5ld0ZpbGVDb250ZW50LCB0b1BhdGgpO1xuICB9XG5cbiAgYXdhaXQgd3JpdGVGaWxlKHRvUGF0aCwgbmV3RmlsZUNvbnRlbnQpO1xuICByZXR1cm4gdHJ1ZTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBYUEsZUFBc0IsT0FBTyxZQUF3QztDQUNuRSxJQUFJO0VBQ0YsTUFBTSxPQUFPLFlBQVksVUFBVSxJQUFJO0VBQ3ZDLE9BQU87Q0FDVCxRQUFRO0VBQ04sT0FBTztDQUNUO0FBQ0Y7QUFHQSxlQUFzQixXQUFXLFlBQXdDO0NBQ3ZFLElBQUk7RUFFRixRQUFPLE1BRGEsS0FBSyxVQUFVLEVBQzVCLENBQU0sT0FBTztDQUN0QixRQUFRO0VBQ04sT0FBTztDQUNUO0FBQ0Y7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0JBLGVBQXNCLGdDQUNwQixVQUNBLFFBQ0EsWUFDa0I7Q0FDbEIsSUFBSSxDQUFFLE1BQU0sT0FBTyxRQUFRLEdBQ3pCLE9BQU87Q0FHVCxNQUFNLGtCQUFrQixNQUFNLFNBQVMsUUFBUSxFQUFBLENBQUcsU0FBUztDQUUzRCxJQUFJLHdCQUF3QjtFQUcxQixNQUFNLFdBQVcsT0FBTyxNQUFNLGNBQWM7RUFDNUMsSUFBSSxDQUFDLFVBRUgsT0FBTztFQUdULE1BQU0sY0FBYyxLQUFLLEtBQUssU0FBUyxJQUFJLFVBQVU7RUFDckQsTUFBTSxVQUFVLFFBQVEsTUFBTTtFQUM5QixNQUFNLGVBQWUsS0FBSyxTQUFTLFNBQVMsV0FBVztFQUN2RCxNQUFNLGFBQWEsaUJBQWlCLEtBQUssb0JBQW9CLEdBQUcsYUFBYTtFQUU3RSxPQUFPLGVBQWUsUUFBUSwyQkFBMkIsU0FBUyxXQUFXLEVBQUU7Q0FDakYsRUFBQSxDQUFHO0NBSUgsSUFBSSxZQUFZO0VBR2QsTUFBTSxzQkFBc0I7RUFDNUIsSUFBSSxvQkFBb0IsS0FBSyxjQUFjLEdBQ3pDLGlCQUFpQixlQUFlLFFBQVEscUJBQXFCLEdBQUcsV0FBVyxLQUFLO09BRWhGLGlCQUFpQixHQUFHLFdBQVcsTUFBTTtDQUV6QztDQUdBLElBQUksT0FBTyxTQUFTLEtBQUssS0FBSyxPQUFPLFNBQVMsTUFBTSxHQUNsRCxpQkFBaUIsTUFBTSxXQUFXLGdCQUFnQixNQUFNO0NBRzFELE1BQU0sVUFBVSxRQUFRLGNBQWM7Q0FDdEMsT0FBTztBQUNUOztnQkEzRndDIn0=
|
package/dist/utils/model.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { type SonamuQueryMode } from "../types/types";
|
|
2
|
-
type WithSimilarity<LP, T> =
|
|
3
|
-
semanticQuery: Record<string, unknown>;
|
|
4
|
-
} ? T & {
|
|
1
|
+
import { type SonamuQueryMode, type SonamuSemanticParams } from "../types/types";
|
|
2
|
+
type WithSimilarity<LP, T> = "semanticQuery" extends keyof LP ? T & {
|
|
5
3
|
similarity: number;
|
|
6
4
|
} : T;
|
|
7
5
|
export type ListResult<LP extends {
|
|
@@ -25,7 +23,7 @@ export interface BaseListParams {
|
|
|
25
23
|
page?: number;
|
|
26
24
|
keyword?: string;
|
|
27
25
|
queryMode?: "list" | "count" | "both";
|
|
28
|
-
semanticQuery?:
|
|
26
|
+
semanticQuery?: SonamuSemanticParams["semanticQuery"];
|
|
29
27
|
}
|
|
30
28
|
export {};
|
|
31
29
|
//# sourceMappingURL=model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/utils/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/utils/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGjF,KAAK,cAAc,CAAC,EAAE,EAAE,CAAC,IAAI,eAAe,SAAS,MAAM,EAAE,GAAG,CAAC,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,CAAC,CAAC;AAE/F,MAAM,MAAM,UAAU,CACpB,EAAE,SAAS;IAAE,SAAS,CAAC,EAAE,eAAe,CAAA;CAAE,EAC1C,CAAC,IACC,EAAE,CAAC,WAAW,CAAC,SAAS,MAAM,GAC9B;IAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAA;CAAE,GACjC,EAAE,CAAC,WAAW,CAAC,SAAS,OAAO,GAC7B;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAEjC,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAO9C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,mCAOlD;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACtC,aAAa,CAAC,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC;CACvD"}
|
package/dist/utils/model.js
CHANGED
|
@@ -14,4 +14,4 @@ var init_model = __esmMin((() => {}));
|
|
|
14
14
|
init_model();
|
|
15
15
|
export { asArray, init_model, objToMap };
|
|
16
16
|
|
|
17
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL21vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgU29uYW11UXVlcnlNb2RlLCB0eXBlIFNvbmFtdVNlbWFudGljUGFyYW1zIH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5cbi8vIHNlbWFudGljUXVlcnnqsIAg7J6I7Jy866m0IHNpbWlsYXJpdHnrpbwg7LaU6rCA7ZWY64qUIOyhsOqxtOu2gCDtg4DsnoVcbnR5cGUgV2l0aFNpbWlsYXJpdHk8TFAsIFQ+ID0gXCJzZW1hbnRpY1F1ZXJ5XCIgZXh0ZW5kcyBrZXlvZiBMUCA/IFQgJiB7IHNpbWlsYXJpdHk6IG51bWJlciB9IDogVDtcblxuZXhwb3J0IHR5cGUgTGlzdFJlc3VsdDxcbiAgTFAgZXh0ZW5kcyB7IHF1ZXJ5TW9kZT86IFNvbmFtdVF1ZXJ5TW9kZSB9LFxuICBULFxuPiA9IExQW1wicXVlcnlNb2RlXCJdIGV4dGVuZHMgXCJsaXN0XCJcbiAgPyB7IHJvd3M6IFdpdGhTaW1pbGFyaXR5PExQLCBUPltdIH1cbiAgOiBMUFtcInF1ZXJ5TW9kZVwiXSBleHRlbmRzIFwiY291bnRcIlxuICAgID8geyB0b3RhbDogbnVtYmVyIH1cbiAgICA6IHsgcm93czogV2l0aFNpbWlsYXJpdHk8TFAsIFQ+W107IHRvdGFsOiBudW1iZXIgfTtcblxuZXhwb3J0IHR5cGUgQXJyYXlPcjxUPiA9IFQgfCBUW107XG5cbmV4cG9ydCBmdW5jdGlvbiBhc0FycmF5PFQ+KHBhcmFtOiBUIHwgVFtdKTogVFtdIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkocGFyYW0pKSB7XG4gICAgcmV0dXJuIHBhcmFtO1xuICB9IGVsc2Uge1xuICAgIC8vIFNBRkVUWTog7ISg7ZaJIOu2hOq4sOyZgCDtlajsiJgg6rOE7JW97J20IOydtCDtg4DsnoXsnYQg67O07J6l7ZWp64uI64ukLlxuICAgIHJldHVybiBbcGFyYW1dIGFzIFRbXTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gb2JqVG9NYXA8VD4ob2JqOiB7IFtrOiBzdHJpbmddOiBUIH0pIHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iaik7XG4gIGlmIChrZXlzLmV2ZXJ5KChrZXkpID0+IHBhcnNlSW50KGtleSkudG9TdHJpbmcoKSA9PT0ga2V5KSkge1xuICAgIHJldHVybiBuZXcgTWFwPG51bWJlciwgVD4oa2V5cy5tYXAoKGtleSkgPT4gW3BhcnNlSW50KGtleSksIG9ialtrZXldXSkpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgVD4oT2JqZWN0LmVudHJpZXMob2JqKSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlTGlzdFBhcmFtcyB7XG4gIGlkPzogbnVtYmVyIHwgbnVtYmVyW107XG4gIG51bT86IG51bWJlcjtcbiAgcGFnZT86IG51bWJlcjtcbiAga2V5d29yZD86IHN0cmluZztcbiAgcXVlcnlNb2RlPzogXCJsaXN0XCIgfCBcImNvdW50XCIgfCBcImJvdGhcIjtcbiAgc2VtYW50aWNRdWVyeT86IFNvbmFtdVNlbWFudGljUGFyYW1zW1wic2VtYW50aWNRdWVyeVwiXTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsU0FBZ0IsUUFBVyxPQUFxQjtDQUM5QyxJQUFJLE1BQU0sUUFBUSxLQUFLLEdBQ3JCLE9BQU87TUFHUCxPQUFPLENBQUMsS0FBSztBQUVqQjtBQUVBLFNBQWdCLFNBQVksS0FBeUI7Q0FDbkQsTUFBTSxPQUFPLE9BQU8sS0FBSyxHQUFHO0NBQzVCLElBQUksS0FBSyxPQUFPLFFBQVEsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLE1BQU0sR0FBRyxHQUN0RCxPQUFPLElBQUksSUFBZSxLQUFLLEtBQUssUUFBUSxDQUFDLFNBQVMsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUM7TUFFdEUsT0FBTyxJQUFJLElBQWUsT0FBTyxRQUFRLEdBQUcsQ0FBQztBQUVqRCJ9
|
|
@@ -39,6 +39,6 @@ export interface SerializableCheckResult {
|
|
|
39
39
|
* isSerializable({ fn: () => {} }) // { valid: false, reason: "Function at fn" }
|
|
40
40
|
* isSerializable({ deep: { nested: Promise.resolve() } }) // { valid: false, reason: "Promise at deep.nested" }
|
|
41
41
|
*/
|
|
42
|
-
export declare function isSerializable(value:
|
|
42
|
+
export declare function isSerializable<Value>(value: Value, path?: string[], seen?: WeakSet<object>): SerializableCheckResult;
|
|
43
43
|
export {};
|
|
44
44
|
//# sourceMappingURL=object-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-utils.d.ts","sourceRoot":"","sources":["../../src/utils/object-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"object-utils.d.ts","sourceRoot":"","sources":["../../src/utils/object-utils.ts"],"names":[],"mappings":"AASA,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAE9D,KAAK,UAAU,GACX,SAAS,GACT,UAAU,GACV,iBAAiB,GACjB,UAAU,GACV,WAAW,GACX,UAAU,GACV,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,cAAc,CAAC;AAEnB,KAAK,mBAAmB,GAAG,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC;AAE3D,0BAA0B;AAC1B,KAAK,eAAe,GAChB,QAAQ,GACR,OAAO,CAAC,OAAO,CAAC,GAChB,MAAM,GACN,MAAM,GAEN,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAEjB,OAAO,CAAC,GAAG,CAAC,GAEZ,OAAO,CAAC,GAAG,CAAC,CAAC;AAEjB,oBAAoB;AACpB,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,mBAAmB,GACnB,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,kBAAkB,CAAC;AAEvB,UAAU,iBAAkB,SAAQ,KAAK,CAAC,YAAY,CAAC;CAAG;AAE1D,UAAU,eAAgB,SAAQ,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC;CAAG;AAEpE,UAAU,eAAgB,SAAQ,GAAG,CAAC,YAAY,CAAC;CAAG;AAEtD,UAAU,kBAAkB;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,eAAe,GACzD,KAAK,GACL,CAAC,SAAS,SAAS,GAAG,mBAAmB,GACvC,CAAC,GACD,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC7B,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,GACjD,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GACpB,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAC1B,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACtB,kBAAkB,CAAC,CAAC,CAAC,EAAE,GACvB,CAAC,SAAS,MAAM,GACd;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC5C,CAAC,CAAC;AAEhB,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAClC,KAAK,EAAE,KAAK,EACZ,IAAI,GAAE,MAAM,EAAO,EACnB,IAAI,GAAE,OAAO,CAAC,MAAM,CAAiB,GACpC,uBAAuB,CA0HzB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { __esmMin } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { init_runtime_value, isBigIntValue, isFunctionValue, isNumberValue, isObjectValue, isStringValue, isSymbolValue } from "./runtime-value.js";
|
|
2
3
|
//#region src/utils/object-utils.ts
|
|
3
4
|
/**
|
|
4
5
|
* 값이 Vitest worker/process 간 전달 가능한지 검증합니다.
|
|
@@ -16,18 +17,16 @@ import { __esmMin } from "../_virtual/_rolldown/runtime.js";
|
|
|
16
17
|
*/
|
|
17
18
|
function isSerializable(value, path = [], seen = /* @__PURE__ */ new WeakSet()) {
|
|
18
19
|
if (value === null) return { valid: true };
|
|
19
|
-
|
|
20
|
-
if (
|
|
21
|
-
if (type === "bigint") return { valid: true };
|
|
22
|
-
if (type === "function") return {
|
|
20
|
+
if (isStringValue(value) || isNumberValue(value) || value === true || value === false || value === void 0 || isBigIntValue(value)) return { valid: true };
|
|
21
|
+
if (isFunctionValue(value)) return {
|
|
23
22
|
valid: false,
|
|
24
23
|
reason: `Function at ${formatPath(path)}`
|
|
25
24
|
};
|
|
26
|
-
if (
|
|
25
|
+
if (isSymbolValue(value)) return {
|
|
27
26
|
valid: false,
|
|
28
27
|
reason: `Symbol at ${formatPath(path)}`
|
|
29
28
|
};
|
|
30
|
-
if (
|
|
29
|
+
if (isObjectValue(value)) {
|
|
31
30
|
const obj = value;
|
|
32
31
|
if (obj instanceof Promise) return {
|
|
33
32
|
valid: false,
|
|
@@ -45,7 +44,7 @@ function isSerializable(value, path = [], seen = /* @__PURE__ */ new WeakSet())
|
|
|
45
44
|
valid: false,
|
|
46
45
|
reason: `WeakSet at ${formatPath(path)}`
|
|
47
46
|
};
|
|
48
|
-
if (
|
|
47
|
+
if ("WeakRef" in globalThis && obj instanceof WeakRef) return {
|
|
49
48
|
valid: false,
|
|
50
49
|
reason: `WeakRef at ${formatPath(path)}`
|
|
51
50
|
};
|
|
@@ -82,13 +81,13 @@ function isSerializable(value, path = [], seen = /* @__PURE__ */ new WeakSet())
|
|
|
82
81
|
return { valid: true };
|
|
83
82
|
}
|
|
84
83
|
if (obj instanceof Error) {
|
|
85
|
-
const
|
|
84
|
+
const errorEntries = Object.entries(obj).filter(([key]) => ![
|
|
86
85
|
"name",
|
|
87
86
|
"message",
|
|
88
87
|
"stack"
|
|
89
|
-
].includes(
|
|
90
|
-
for (const key of
|
|
91
|
-
const result = isSerializable(
|
|
88
|
+
].includes(key));
|
|
89
|
+
for (const [key, nestedValue] of errorEntries) {
|
|
90
|
+
const result = isSerializable(nestedValue, [...path, key], seen);
|
|
92
91
|
if (!result.valid) return result;
|
|
93
92
|
}
|
|
94
93
|
return { valid: true };
|
|
@@ -98,24 +97,26 @@ function isSerializable(value, path = [], seen = /* @__PURE__ */ new WeakSet())
|
|
|
98
97
|
valid: false,
|
|
99
98
|
reason: `Class instance (${obj.constructor?.name ?? "Unknown"}) at ${formatPath(path)}`
|
|
100
99
|
};
|
|
101
|
-
for (const key of Object.
|
|
102
|
-
const result = isSerializable(
|
|
100
|
+
for (const [key, nestedValue] of Object.entries(obj)) {
|
|
101
|
+
const result = isSerializable(nestedValue, [...path, key], seen);
|
|
103
102
|
if (!result.valid) return result;
|
|
104
103
|
}
|
|
105
104
|
return { valid: true };
|
|
106
105
|
}
|
|
107
106
|
return {
|
|
108
107
|
valid: false,
|
|
109
|
-
reason: `Unknown
|
|
108
|
+
reason: `Unknown value at ${formatPath(path)}`
|
|
110
109
|
};
|
|
111
110
|
}
|
|
112
111
|
function formatPath(path) {
|
|
113
112
|
if (path.length === 0) return "(root)";
|
|
114
113
|
return path.join(".");
|
|
115
114
|
}
|
|
116
|
-
var init_object_utils = __esmMin((() => {
|
|
115
|
+
var init_object_utils = __esmMin((() => {
|
|
116
|
+
init_runtime_value();
|
|
117
|
+
}));
|
|
117
118
|
//#endregion
|
|
118
119
|
init_object_utils();
|
|
119
120
|
export { init_object_utils, isSerializable };
|
|
120
121
|
|
|
121
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWxzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9vYmplY3QtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsidHlwZSBQcmltaXRpdmUgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxudHlwZSBUeXBlZEFycmF5ID1cbiAgfCBJbnQ4QXJyYXlcbiAgfCBVaW50OEFycmF5XG4gIHwgVWludDhDbGFtcGVkQXJyYXlcbiAgfCBJbnQxNkFycmF5XG4gIHwgVWludDE2QXJyYXlcbiAgfCBJbnQzMkFycmF5XG4gIHwgVWludDMyQXJyYXlcbiAgfCBGbG9hdDMyQXJyYXlcbiAgfCBGbG9hdDY0QXJyYXlcbiAgfCBCaWdJbnQ2NEFycmF5XG4gIHwgQmlnVWludDY0QXJyYXk7XG5cbnR5cGUgU3RydWN0dXJlZENsb25lYWJsZSA9IERhdGUgfCBBcnJheUJ1ZmZlciB8IFR5cGVkQXJyYXk7XG5cbi8qKiDsp4HroKztmZQg67aI6rCAIO2DgOyehSAo66qF7Iuc7KCBIOygnOyZuOyaqSkgKi9cbnR5cGUgTm9uU2VyaWFsaXphYmxlID1cbiAgfCBGdW5jdGlvblxuICB8IFByb21pc2U8dW5rbm93bj5cbiAgfCBSZWdFeHBcbiAgfCBzeW1ib2xcbiAgLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0gV2Vha01hcOydmCDsoJzrhKTrpq0g7YyM652866+47YSwXG4gIHwgV2Vha01hcDxhbnksIGFueT5cbiAgLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0gV2Vha1NldOydmCDsoJzrhKTrpq0g7YyM652866+47YSwXG4gIHwgV2Vha1NldDxhbnk+XG4gIC8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIFdlYWtSZWbsnZgg7KCc64Sk66atIO2MjOudvOuvuO2EsFxuICB8IFdlYWtSZWY8YW55PjtcblxuLyoqIOyerOq3gOyggSDsp4HroKztmZQg6rCA64qlIO2DgOyehSAqL1xuZXhwb3J0IHR5cGUgU2VyaWFsaXphYmxlID1cbiAgfCBQcmltaXRpdmVcbiAgfCBTdHJ1Y3R1cmVkQ2xvbmVhYmxlXG4gIHwgU2VyaWFsaXphYmxlQXJyYXlcbiAgfCBTZXJpYWxpemFibGVNYXBcbiAgfCBTZXJpYWxpemFibGVTZXRcbiAgfCBTZXJpYWxpemFibGVPYmplY3Q7XG5cbmludGVyZmFjZSBTZXJpYWxpemFibGVBcnJheSBleHRlbmRzIEFycmF5PFNlcmlhbGl6YWJsZT4ge31cblxuaW50ZXJmYWNlIFNlcmlhbGl6YWJsZU1hcCBleHRlbmRzIE1hcDxTZXJpYWxpemFibGUsIFNlcmlhbGl6YWJsZT4ge31cblxuaW50ZXJmYWNlIFNlcmlhbGl6YWJsZVNldCBleHRlbmRzIFNldDxTZXJpYWxpemFibGU+IHt9XG5cbmludGVyZmFjZSBTZXJpYWxpemFibGVPYmplY3Qge1xuICBba2V5OiBzdHJpbmddOiBTZXJpYWxpemFibGU7XG59XG5cbi8qKlxuICog7KO87Ja07KeEIO2DgOyehSBU6rCAIOyngeugrO2ZlCDqsIDriqXtlZzsp4Ag6rKA7Kad7ZWY64qUIOyhsOqxtOu2gCDtg4DsnoVcbiAqIOyngeugrO2ZlCDrtojqsIDtlZwg6rCS7J20IO2PrO2VqOuQmOyWtCDsnojsnLzrqbQgbmV2ZXLrpbwg67CY7ZmY7ZWY7JesIO2DgOyehSDsl5Drn6zqsIAg67Cc7IOd7ZWp64uI64ukXG4gKi9cbmV4cG9ydCB0eXBlIEFzc2VydFNlcmlhbGl6YWJsZTxUPiA9IFQgZXh0ZW5kcyBOb25TZXJpYWxpemFibGVcbiAgPyBuZXZlclxuICA6IFQgZXh0ZW5kcyBQcmltaXRpdmUgfCBTdHJ1Y3R1cmVkQ2xvbmVhYmxlXG4gICAgPyBUXG4gICAgOiBUIGV4dGVuZHMgTWFwPGluZmVyIEssIGluZmVyIFY+XG4gICAgICA/IE1hcDxBc3NlcnRTZXJpYWxpemFibGU8Sz4sIEFzc2VydFNlcmlhbGl6YWJsZTxWPj5cbiAgICAgIDogVCBleHRlbmRzIFNldDxpbmZlciBVPlxuICAgICAgICA/IFNldDxBc3NlcnRTZXJpYWxpemFibGU8VT4+XG4gICAgICAgIDogVCBleHRlbmRzIEFycmF5PGluZmVyIFU+XG4gICAgICAgICAgPyBBc3NlcnRTZXJpYWxpemFibGU8VT5bXVxuICAgICAgICAgIDogVCBleHRlbmRzIG9iamVjdFxuICAgICAgICAgICAgPyB7IFtLIGluIGtleW9mIFRdOiBBc3NlcnRTZXJpYWxpemFibGU8VFtLXT4gfVxuICAgICAgICAgICAgOiBUO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6YWJsZUNoZWNrUmVzdWx0IHtcbiAgdmFsaWQ6IGJvb2xlYW47XG4gIHJlYXNvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiDqsJLsnbQgVml0ZXN0IHdvcmtlci9wcm9jZXNzIOqwhCDsoITri6wg6rCA64ql7ZWc7KeAIOqygOymne2VqeuLiOuLpC5cbiAqIFNlcmlhbGl6YWJsZe2VmOuLpOuKlCDqsoPsnYAg6rKw6rWtIG1lc3NhZ2UgcG9ydOyZgCBwcm9jZXNzLnNlbmTrpbwg7Ya17ZW0IOyghOuLrCDqsIDriqXtlZwg6rKD7J2EIOydmOuvuO2VqeuLiOuLpC5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSDqsoDspp3tlaAg6rCSXG4gKiBAcGFyYW0gcGF0aCAtIO2YhOyerCDqsr3roZwgKOyXkOufrCDrqZTsi5zsp4DsmqksIOuCtOu2gCDsnqzqt4Dsl5DshJwg7IKs7JqpKVxuICogQHBhcmFtIHNlZW4gLSDsiJztmZgg7LC47KGwIOqwkOyngOyaqSBXZWFrU2V0ICjrgrTrtoAg7J6s6reA7JeQ7IScIOyCrOyaqSlcbiAqIEByZXR1cm5zIOqygOymnSDqsrDqs7wgeyB2YWxpZDogYm9vbGVhbiwgcmVhc29uPzogc3RyaW5nIH1cbiAqXG4gKiBAZXhhbXBsZVxuICogaXNTZXJpYWxpemFibGUoeyBhOiAxLCBiOiBcImhlbGxvXCIgfSkgLy8geyB2YWxpZDogdHJ1ZSB9XG4gKiBpc1NlcmlhbGl6YWJsZSh7IGZuOiAoKSA9PiB7fSB9KSAvLyB7IHZhbGlkOiBmYWxzZSwgcmVhc29uOiBcIkZ1bmN0aW9uIGF0IGZuXCIgfVxuICogaXNTZXJpYWxpemFibGUoeyBkZWVwOiB7IG5lc3RlZDogUHJvbWlzZS5yZXNvbHZlKCkgfSB9KSAvLyB7IHZhbGlkOiBmYWxzZSwgcmVhc29uOiBcIlByb21pc2UgYXQgZGVlcC5uZXN0ZWRcIiB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NlcmlhbGl6YWJsZShcbiAgdmFsdWU6IHVua25vd24sXG4gIHBhdGg6IHN0cmluZ1tdID0gW10sXG4gIHNlZW46IFdlYWtTZXQ8b2JqZWN0PiA9IG5ldyBXZWFrU2V0KCksXG4pOiBTZXJpYWxpemFibGVDaGVja1Jlc3VsdCB7XG4gIC8vIHR5cGVvZiBudWxsID09PSAnb2JqZWN0J+ydtOuvgOuhnCDrqLzsoIAg7LKY66asXG4gIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gIH1cblxuICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICBpZiAodHlwZSA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlID09PSBcIm51bWJlclwiIHx8IHR5cGUgPT09IFwiYm9vbGVhblwiIHx8IHR5cGUgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICB9XG4gIGlmICh0eXBlID09PSBcImJpZ2ludFwiKSB7XG4gICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgfVxuXG4gIGlmICh0eXBlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIHJlYXNvbjogYEZ1bmN0aW9uIGF0ICR7Zm9ybWF0UGF0aChwYXRoKX1gIH07XG4gIH1cbiAgaWYgKHR5cGUgPT09IFwic3ltYm9sXCIpIHtcbiAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIHJlYXNvbjogYFN5bWJvbCBhdCAke2Zvcm1hdFBhdGgocGF0aCl9YCB9O1xuICB9XG5cbiAgaWYgKHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICBjb25zdCBvYmogPSB2YWx1ZSBhcyBvYmplY3Q7XG5cbiAgICBpZiAob2JqIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCByZWFzb246IGBQcm9taXNlIGF0ICR7Zm9ybWF0UGF0aChwYXRoKX1gIH07XG4gICAgfVxuXG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCByZWFzb246IGBSZWdFeHAgYXQgJHtmb3JtYXRQYXRoKHBhdGgpfWAgfTtcbiAgICB9XG5cbiAgICBpZiAob2JqIGluc3RhbmNlb2YgV2Vha01hcCkge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCByZWFzb246IGBXZWFrTWFwIGF0ICR7Zm9ybWF0UGF0aChwYXRoKX1gIH07XG4gICAgfVxuICAgIGlmIChvYmogaW5zdGFuY2VvZiBXZWFrU2V0KSB7XG4gICAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIHJlYXNvbjogYFdlYWtTZXQgYXQgJHtmb3JtYXRQYXRoKHBhdGgpfWAgfTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBXZWFrUmVmICE9PSBcInVuZGVmaW5lZFwiICYmIG9iaiBpbnN0YW5jZW9mIFdlYWtSZWYpIHtcbiAgICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSwgcmVhc29uOiBgV2Vha1JlZiBhdCAke2Zvcm1hdFBhdGgocGF0aCl9YCB9O1xuICAgIH1cblxuICAgIC8vIOyInO2ZmCDssLjsobAg7ZeI7Jqp7ZWY65CYIOustO2VnOujqO2UhCDrsKnsp4BcbiAgICBpZiAoc2Vlbi5oYXMob2JqKSkge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgICB9XG4gICAgc2Vlbi5hZGQob2JqKTtcblxuICAgIGlmIChvYmogaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICAgIH1cbiAgICBpZiAob2JqIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gICAgfVxuICAgIGlmIChBcnJheUJ1ZmZlci5pc1ZpZXcob2JqKSkge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgICB9XG5cbiAgICBpZiAob2JqIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICBsZXQgaSA9IDA7XG4gICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBvYmopIHtcbiAgICAgICAgY29uc3Qga2V5UmVzdWx0ID0gaXNTZXJpYWxpemFibGUoaywgWy4uLnBhdGgsIGBNYXAua2V5WyR7aX1dYF0sIHNlZW4pO1xuICAgICAgICBpZiAoIWtleVJlc3VsdC52YWxpZCkgcmV0dXJuIGtleVJlc3VsdDtcblxuICAgICAgICBjb25zdCB2YWxSZXN1bHQgPSBpc1NlcmlhbGl6YWJsZSh2LCBbLi4ucGF0aCwgYE1hcC52YWx1ZVske2l9XWBdLCBzZWVuKTtcbiAgICAgICAgaWYgKCF2YWxSZXN1bHQudmFsaWQpIHJldHVybiB2YWxSZXN1bHQ7XG4gICAgICAgIGkrKztcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gICAgfVxuXG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIFNldCkge1xuICAgICAgbGV0IGkgPSAwO1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIG9iaikge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBpc1NlcmlhbGl6YWJsZShpdGVtLCBbLi4ucGF0aCwgYFNldFske2l9XWBdLCBzZWVuKTtcbiAgICAgICAgaWYgKCFyZXN1bHQudmFsaWQpIHJldHVybiByZXN1bHQ7XG4gICAgICAgIGkrKztcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmoubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gaXNTZXJpYWxpemFibGUob2JqW2ldLCBbLi4ucGF0aCwgYFske2l9XWBdLCBzZWVuKTtcbiAgICAgICAgaWYgKCFyZXN1bHQudmFsaWQpIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICAgIH1cblxuICAgIC8vIFZpdGVzdOuKlCBFcnJvcuulvCDtl4jsmqntlZjsp4Drp4wg7IaN7ISx7J2AIOyngeugrO2ZlCDtlYTsmpRcbiAgICBpZiAob2JqIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIGNvbnN0IGVycm9yUHJvcHMgPSBPYmplY3Qua2V5cyhvYmopLmZpbHRlcigoaykgPT4gIVtcIm5hbWVcIiwgXCJtZXNzYWdlXCIsIFwic3RhY2tcIl0uaW5jbHVkZXMoaykpO1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgZXJyb3JQcm9wcykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBpc1NlcmlhbGl6YWJsZShcbiAgICAgICAgICAob2JqIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2tleV0sXG4gICAgICAgICAgWy4uLnBhdGgsIGtleV0sXG4gICAgICAgICAgc2VlbixcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFyZXN1bHQudmFsaWQpIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICAgIH1cblxuICAgIC8vIE9iamVjdC5wcm90b3R5cGUg65iQ64qUIG51bGzsnYQg7ZSE66Gc7Yag7YOA7J6F7Jy866GcIOqwgOyngOuKlCDqsr3smrDrp4wgcGxhaW4gb2JqZWN0XG4gICAgY29uc3QgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKTtcbiAgICBpZiAocHJvdG8gIT09IE9iamVjdC5wcm90b3R5cGUgJiYgcHJvdG8gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGNvbnN0cnVjdG9yTmFtZSA9IG9iai5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyBcIlVua25vd25cIjtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgICAgcmVhc29uOiBgQ2xhc3MgaW5zdGFuY2UgKCR7Y29uc3RydWN0b3JOYW1lfSkgYXQgJHtmb3JtYXRQYXRoKHBhdGgpfWAsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iaikpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGlzU2VyaWFsaXphYmxlKChvYmogYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2tleV0sIFsuLi5wYXRoLCBrZXldLCBzZWVuKTtcbiAgICAgIGlmICghcmVzdWx0LnZhbGlkKSByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICB9XG5cbiAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCByZWFzb246IGBVbmtub3duIHR5cGUgKCR7dHlwZX0pIGF0ICR7Zm9ybWF0UGF0aChwYXRoKX1gIH07XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFBhdGgocGF0aDogc3RyaW5nW10pOiBzdHJpbmcge1xuICBpZiAocGF0aC5sZW5ndGggPT09IDApIHJldHVybiBcIihyb290KVwiO1xuICByZXR1cm4gcGF0aC5qb2luKFwiLlwiKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQXNGQSxTQUFnQixlQUNkLE9BQ0EsT0FBaUIsQ0FBQyxHQUNsQix1QkFBd0IsSUFBSSxRQUFRLEdBQ1g7Q0FFekIsSUFBSSxVQUFVLE1BQ1osT0FBTyxFQUFFLE9BQU8sS0FBSztDQUd2QixNQUFNLE9BQU8sT0FBTztDQUNwQixJQUFJLFNBQVMsWUFBWSxTQUFTLFlBQVksU0FBUyxhQUFhLFNBQVMsYUFDM0UsT0FBTyxFQUFFLE9BQU8sS0FBSztDQUV2QixJ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
|
|
122
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWxzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9vYmplY3QtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaXNCaWdJbnRWYWx1ZSxcbiAgaXNGdW5jdGlvblZhbHVlLFxuICBpc051bWJlclZhbHVlLFxuICBpc09iamVjdFZhbHVlLFxuICBpc1N0cmluZ1ZhbHVlLFxuICBpc1N5bWJvbFZhbHVlLFxufSBmcm9tIFwiLi9ydW50aW1lLXZhbHVlXCI7XG5cbnR5cGUgUHJpbWl0aXZlID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbnR5cGUgVHlwZWRBcnJheSA9XG4gIHwgSW50OEFycmF5XG4gIHwgVWludDhBcnJheVxuICB8IFVpbnQ4Q2xhbXBlZEFycmF5XG4gIHwgSW50MTZBcnJheVxuICB8IFVpbnQxNkFycmF5XG4gIHwgSW50MzJBcnJheVxuICB8IFVpbnQzMkFycmF5XG4gIHwgRmxvYXQzMkFycmF5XG4gIHwgRmxvYXQ2NEFycmF5XG4gIHwgQmlnSW50NjRBcnJheVxuICB8IEJpZ1VpbnQ2NEFycmF5O1xuXG50eXBlIFN0cnVjdHVyZWRDbG9uZWFibGUgPSBEYXRlIHwgQXJyYXlCdWZmZXIgfCBUeXBlZEFycmF5O1xuXG4vKiog7KeB66Cs7ZmUIOu2iOqwgCDtg4DsnoUgKOuqheyLnOyggSDsoJzsmbjsmqkpICovXG50eXBlIE5vblNlcmlhbGl6YWJsZSA9XG4gIHwgRnVuY3Rpb25cbiAgfCBQcm9taXNlPHVua25vd24+XG4gIHwgUmVnRXhwXG4gIHwgc3ltYm9sXG4gIC8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIFdlYWtNYXDsnZgg7KCc64Sk66atIO2MjOudvOuvuO2EsFxuICB8IFdlYWtNYXA8YW55LCBhbnk+XG4gIC8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIFdlYWtTZXTsnZgg7KCc64Sk66atIO2MjOudvOuvuO2EsFxuICB8IFdlYWtTZXQ8YW55PlxuICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSBXZWFrUmVm7J2YIOygnOuEpOumrSDtjIzrnbzrr7jthLBcbiAgfCBXZWFrUmVmPGFueT47XG5cbi8qKiDsnqzqt4DsoIEg7KeB66Cs7ZmUIOqwgOuKpSDtg4DsnoUgKi9cbmV4cG9ydCB0eXBlIFNlcmlhbGl6YWJsZSA9XG4gIHwgUHJpbWl0aXZlXG4gIHwgU3RydWN0dXJlZENsb25lYWJsZVxuICB8IFNlcmlhbGl6YWJsZUFycmF5XG4gIHwgU2VyaWFsaXphYmxlTWFwXG4gIHwgU2VyaWFsaXphYmxlU2V0XG4gIHwgU2VyaWFsaXphYmxlT2JqZWN0O1xuXG5pbnRlcmZhY2UgU2VyaWFsaXphYmxlQXJyYXkgZXh0ZW5kcyBBcnJheTxTZXJpYWxpemFibGU+IHt9XG5cbmludGVyZmFjZSBTZXJpYWxpemFibGVNYXAgZXh0ZW5kcyBNYXA8U2VyaWFsaXphYmxlLCBTZXJpYWxpemFibGU+IHt9XG5cbmludGVyZmFjZSBTZXJpYWxpemFibGVTZXQgZXh0ZW5kcyBTZXQ8U2VyaWFsaXphYmxlPiB7fVxuXG5pbnRlcmZhY2UgU2VyaWFsaXphYmxlT2JqZWN0IHtcbiAgW2tleTogc3RyaW5nXTogU2VyaWFsaXphYmxlO1xufVxuXG4vKipcbiAqIOyjvOyWtOynhCDtg4DsnoUgVOqwgCDsp4HroKztmZQg6rCA64ql7ZWc7KeAIOqygOymne2VmOuKlCDsobDqsbTrtoAg7YOA7J6FXG4gKiDsp4HroKztmZQg67aI6rCA7ZWcIOqwkuydtCDtj6ztlajrkJjslrQg7J6I7Jy866m0IG5ldmVy66W8IOuwmO2ZmO2VmOyXrCDtg4DsnoUg7JeQ65+s6rCAIOuwnOyDne2VqeuLiOuLpFxuICovXG5leHBvcnQgdHlwZSBBc3NlcnRTZXJpYWxpemFibGU8VD4gPSBUIGV4dGVuZHMgTm9uU2VyaWFsaXphYmxlXG4gID8gbmV2ZXJcbiAgOiBUIGV4dGVuZHMgUHJpbWl0aXZlIHwgU3RydWN0dXJlZENsb25lYWJsZVxuICAgID8gVFxuICAgIDogVCBleHRlbmRzIE1hcDxpbmZlciBLLCBpbmZlciBWPlxuICAgICAgPyBNYXA8QXNzZXJ0U2VyaWFsaXphYmxlPEs+LCBBc3NlcnRTZXJpYWxpemFibGU8Vj4+XG4gICAgICA6IFQgZXh0ZW5kcyBTZXQ8aW5mZXIgVT5cbiAgICAgICAgPyBTZXQ8QXNzZXJ0U2VyaWFsaXphYmxlPFU+PlxuICAgICAgICA6IFQgZXh0ZW5kcyBBcnJheTxpbmZlciBVPlxuICAgICAgICAgID8gQXNzZXJ0U2VyaWFsaXphYmxlPFU+W11cbiAgICAgICAgICA6IFQgZXh0ZW5kcyBvYmplY3RcbiAgICAgICAgICAgID8geyBbSyBpbiBrZXlvZiBUXTogQXNzZXJ0U2VyaWFsaXphYmxlPFRbS10+IH1cbiAgICAgICAgICAgIDogVDtcblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemFibGVDaGVja1Jlc3VsdCB7XG4gIHZhbGlkOiBib29sZWFuO1xuICByZWFzb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICog6rCS7J20IFZpdGVzdCB3b3JrZXIvcHJvY2VzcyDqsIQg7KCE64usIOqwgOuKpe2VnOyngCDqsoDspp3tlanri4jri6QuXG4gKiBTZXJpYWxpemFibGXtlZjri6TripQg6rKD7J2AIOqysOq1rSBtZXNzYWdlIHBvcnTsmYAgcHJvY2Vzcy5zZW5k66W8IO2Gte2VtCDsoITri6wg6rCA64ql7ZWcIOqyg+ydhCDsnZjrr7jtlanri4jri6QuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0g6rKA7Kad7ZWgIOqwklxuICogQHBhcmFtIHBhdGggLSDtmITsnqwg6rK966GcICjsl5Drn6wg66mU7Iuc7KeA7JqpLCDrgrTrtoAg7J6s6reA7JeQ7IScIOyCrOyaqSlcbiAqIEBwYXJhbSBzZWVuIC0g7Iic7ZmYIOywuOyhsCDqsJDsp4DsmqkgV2Vha1NldCAo64K067aAIOyerOq3gOyXkOyEnCDsgqzsmqkpXG4gKiBAcmV0dXJucyDqsoDspp0g6rKw6rO8IHsgdmFsaWQ6IGJvb2xlYW4sIHJlYXNvbj86IHN0cmluZyB9XG4gKlxuICogQGV4YW1wbGVcbiAqIGlzU2VyaWFsaXphYmxlKHsgYTogMSwgYjogXCJoZWxsb1wiIH0pIC8vIHsgdmFsaWQ6IHRydWUgfVxuICogaXNTZXJpYWxpemFibGUoeyBmbjogKCkgPT4ge30gfSkgLy8geyB2YWxpZDogZmFsc2UsIHJlYXNvbjogXCJGdW5jdGlvbiBhdCBmblwiIH1cbiAqIGlzU2VyaWFsaXphYmxlKHsgZGVlcDogeyBuZXN0ZWQ6IFByb21pc2UucmVzb2x2ZSgpIH0gfSkgLy8geyB2YWxpZDogZmFsc2UsIHJlYXNvbjogXCJQcm9taXNlIGF0IGRlZXAubmVzdGVkXCIgfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTZXJpYWxpemFibGU8VmFsdWU+KFxuICB2YWx1ZTogVmFsdWUsXG4gIHBhdGg6IHN0cmluZ1tdID0gW10sXG4gIHNlZW46IFdlYWtTZXQ8b2JqZWN0PiA9IG5ldyBXZWFrU2V0KCksXG4pOiBTZXJpYWxpemFibGVDaGVja1Jlc3VsdCB7XG4gIC8vIHR5cGVvZiBudWxsID09PSAnb2JqZWN0J+ydtOuvgOuhnCDrqLzsoIAg7LKY66asXG4gIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gIH1cblxuICBpZiAoXG4gICAgaXNTdHJpbmdWYWx1ZSh2YWx1ZSkgfHxcbiAgICBpc051bWJlclZhbHVlKHZhbHVlKSB8fFxuICAgIHZhbHVlID09PSB0cnVlIHx8XG4gICAgdmFsdWUgPT09IGZhbHNlIHx8XG4gICAgdmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgIGlzQmlnSW50VmFsdWUodmFsdWUpXG4gICkge1xuICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gIH1cblxuICBpZiAoaXNGdW5jdGlvblZhbHVlKHZhbHVlKSkge1xuICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSwgcmVhc29uOiBgRnVuY3Rpb24gYXQgJHtmb3JtYXRQYXRoKHBhdGgpfWAgfTtcbiAgfVxuICBpZiAoaXNTeW1ib2xWYWx1ZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIHJlYXNvbjogYFN5bWJvbCBhdCAke2Zvcm1hdFBhdGgocGF0aCl9YCB9O1xuICB9XG5cbiAgaWYgKGlzT2JqZWN0VmFsdWUodmFsdWUpKSB7XG4gICAgY29uc3Qgb2JqID0gdmFsdWU7XG5cbiAgICBpZiAob2JqIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCByZWFzb246IGBQcm9taXNlIGF0ICR7Zm9ybWF0UGF0aChwYXRoKX1gIH07XG4gICAgfVxuXG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCByZWFzb246IGBSZWdFeHAgYXQgJHtmb3JtYXRQYXRoKHBhdGgpfWAgfTtcbiAgICB9XG5cbiAgICBpZiAob2JqIGluc3RhbmNlb2YgV2Vha01hcCkge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCByZWFzb246IGBXZWFrTWFwIGF0ICR7Zm9ybWF0UGF0aChwYXRoKX1gIH07XG4gICAgfVxuICAgIGlmIChvYmogaW5zdGFuY2VvZiBXZWFrU2V0KSB7XG4gICAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIHJlYXNvbjogYFdlYWtTZXQgYXQgJHtmb3JtYXRQYXRoKHBhdGgpfWAgfTtcbiAgICB9XG4gICAgaWYgKFwiV2Vha1JlZlwiIGluIGdsb2JhbFRoaXMgJiYgb2JqIGluc3RhbmNlb2YgV2Vha1JlZikge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCByZWFzb246IGBXZWFrUmVmIGF0ICR7Zm9ybWF0UGF0aChwYXRoKX1gIH07XG4gICAgfVxuXG4gICAgLy8g7Iic7ZmYIOywuOyhsCDtl4jsmqntlZjrkJgg66y07ZWc66Oo7ZSEIOuwqeyngFxuICAgIGlmIChzZWVuLmhhcyhvYmopKSB7XG4gICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICAgIH1cbiAgICBzZWVuLmFkZChvYmopO1xuXG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gICAgfVxuICAgIGlmIChvYmogaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgICB9XG4gICAgaWYgKEFycmF5QnVmZmVyLmlzVmlldyhvYmopKSB7XG4gICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICAgIH1cblxuICAgIGlmIChvYmogaW5zdGFuY2VvZiBNYXApIHtcbiAgICAgIGxldCBpID0gMDtcbiAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIG9iaikge1xuICAgICAgICBjb25zdCBrZXlSZXN1bHQgPSBpc1NlcmlhbGl6YWJsZShrLCBbLi4ucGF0aCwgYE1hcC5rZXlbJHtpfV1gXSwgc2Vlbik7XG4gICAgICAgIGlmICgha2V5UmVzdWx0LnZhbGlkKSByZXR1cm4ga2V5UmVzdWx0O1xuXG4gICAgICAgIGNvbnN0IHZhbFJlc3VsdCA9IGlzU2VyaWFsaXphYmxlKHYsIFsuLi5wYXRoLCBgTWFwLnZhbHVlWyR7aX1dYF0sIHNlZW4pO1xuICAgICAgICBpZiAoIXZhbFJlc3VsdC52YWxpZCkgcmV0dXJuIHZhbFJlc3VsdDtcbiAgICAgICAgaSsrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgICB9XG5cbiAgICBpZiAob2JqIGluc3RhbmNlb2YgU2V0KSB7XG4gICAgICBsZXQgaSA9IDA7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2Ygb2JqKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGlzU2VyaWFsaXphYmxlKGl0ZW0sIFsuLi5wYXRoLCBgU2V0WyR7aX1dYF0sIHNlZW4pO1xuICAgICAgICBpZiAoIXJlc3VsdC52YWxpZCkgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgaSsrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9iai5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBpc1NlcmlhbGl6YWJsZShvYmpbaV0sIFsuLi5wYXRoLCBgWyR7aX1dYF0sIHNlZW4pO1xuICAgICAgICBpZiAoIXJlc3VsdC52YWxpZCkgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gICAgfVxuXG4gICAgLy8gVml0ZXN064qUIEVycm9y66W8IO2XiOyaqe2VmOyngOunjCDsho3shLHsnYAg7KeB66Cs7ZmUIO2VhOyalFxuICAgIGlmIChvYmogaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgY29uc3QgZXJyb3JFbnRyaWVzID0gT2JqZWN0LmVudHJpZXMob2JqKS5maWx0ZXIoXG4gICAgICAgIChba2V5XSkgPT4gIVtcIm5hbWVcIiwgXCJtZXNzYWdlXCIsIFwic3RhY2tcIl0uaW5jbHVkZXMoa2V5KSxcbiAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIG5lc3RlZFZhbHVlXSBvZiBlcnJvckVudHJpZXMpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gaXNTZXJpYWxpemFibGUobmVzdGVkVmFsdWUsIFsuLi5wYXRoLCBrZXldLCBzZWVuKTtcbiAgICAgICAgaWYgKCFyZXN1bHQudmFsaWQpIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICAgIH1cblxuICAgIC8vIE9iamVjdC5wcm90b3R5cGUg65iQ64qUIG51bGzsnYQg7ZSE66Gc7Yag7YOA7J6F7Jy866GcIOqwgOyngOuKlCDqsr3smrDrp4wgcGxhaW4gb2JqZWN0XG4gICAgY29uc3QgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKTtcbiAgICBpZiAocHJvdG8gIT09IE9iamVjdC5wcm90b3R5cGUgJiYgcHJvdG8gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGNvbnN0cnVjdG9yTmFtZSA9IG9iai5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyBcIlVua25vd25cIjtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgICAgcmVhc29uOiBgQ2xhc3MgaW5zdGFuY2UgKCR7Y29uc3RydWN0b3JOYW1lfSkgYXQgJHtmb3JtYXRQYXRoKHBhdGgpfWAsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW2tleSwgbmVzdGVkVmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGlzU2VyaWFsaXphYmxlKG5lc3RlZFZhbHVlLCBbLi4ucGF0aCwga2V5XSwgc2Vlbik7XG4gICAgICBpZiAoIXJlc3VsdC52YWxpZCkgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgfVxuXG4gIHJldHVybiB7IHZhbGlkOiBmYWxzZSwgcmVhc29uOiBgVW5rbm93biB2YWx1ZSBhdCAke2Zvcm1hdFBhdGgocGF0aCl9YCB9O1xufVxuXG5mdW5jdGlvbiBmb3JtYXRQYXRoKHBhdGg6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgaWYgKHBhdGgubGVuZ3RoID09PSAwKSByZXR1cm4gXCIocm9vdClcIjtcbiAgcmV0dXJuIHBhdGguam9pbihcIi5cIik7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBK0ZBLFNBQWdCLGVBQ2QsT0FDQSxPQUFpQixDQUFDLEdBQ2xCLHVCQUF3QixJQUFJLFFBQVEsR0FDWDtDQUV6QixJQUFJLFVBQVUsTUFDWixPQUFPLEVBQUUsT0FBTyxLQUFLO0NBR3ZCLElBQ0UsY0FBYyxLQUFLLEtBQ25CLGNBQWMs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-utils.d.ts","sourceRoot":"","sources":["../../src/utils/process-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"process-utils.d.ts","sourceRoot":"","sources":["../../src/utils/process-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAU/D;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACxB,EACE,eAAe,EAAE,KAAK,EACtB,WAAW,EAAE,mBAAmB,GACjC,GAAE;IAAE,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAGxD,GACA,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { __esmMin } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { init_runtime_value, isStringValue } from "./runtime-value.js";
|
|
2
3
|
import chalk from "chalk";
|
|
3
4
|
import { execFile } from "child_process";
|
|
4
5
|
import { setTimeout } from "timers/promises";
|
|
@@ -10,7 +11,7 @@ import { promisify } from "util";
|
|
|
10
11
|
*/
|
|
11
12
|
async function execute(bin, args, options) {
|
|
12
13
|
const { stdout } = await execFileAsync(bin, args, options);
|
|
13
|
-
return
|
|
14
|
+
return isStringValue(stdout) ? stdout : stdout.toString();
|
|
14
15
|
}
|
|
15
16
|
/**
|
|
16
17
|
* 주어진 작업을 실행합니다.
|
|
@@ -43,10 +44,11 @@ async function runWithGracefulShutdown(job, { whenThisHappens: event, waitForUpT
|
|
|
43
44
|
}
|
|
44
45
|
var execFileAsync;
|
|
45
46
|
var init_process_utils = __esmMin((() => {
|
|
47
|
+
init_runtime_value();
|
|
46
48
|
execFileAsync = promisify(execFile);
|
|
47
49
|
}));
|
|
48
50
|
//#endregion
|
|
49
51
|
init_process_utils();
|
|
50
52
|
export { execute, init_process_utils, runWithGracefulShutdown };
|
|
51
53
|
|
|
52
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy11dGlscy5qcyIsIm5hbWVzIjpbInNldFRpbWVvdXRQcm9taXNlcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9wcm9jZXNzLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNGaWxlLCB0eXBlIEV4ZWNGaWxlT3B0aW9ucyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgeyBzZXRUaW1lb3V0IGFzIHNldFRpbWVvdXRQcm9taXNlcyB9IGZyb20gXCJ0aW1lcnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gXCJ1dGlsXCI7XG5cbmltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcblxuaW1wb3J0IHsgaXNTdHJpbmdWYWx1ZSB9IGZyb20gXCIuL3J1bnRpbWUtdmFsdWVcIjtcblxuY29uc3QgZXhlY0ZpbGVBc3luYyA9IHByb21pc2lmeShleGVjRmlsZSk7XG5cbi8qKlxuICogY2hpbGRfcHJvY2Vzcy5leGVjRmlsZeydmCBQcm9taXNlIOq4sOuwmCB3cmFwcGVy7J6F64uI64ukLlxuICogZXhpdCBjb2Rl6rCAIG5vbi16ZXJv7J2066m0IHJlamVjdO2VtOyalC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGUoXG4gIGJpbjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmdbXSxcbiAgb3B0aW9ucz86IEV4ZWNGaWxlT3B0aW9ucyxcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHsgc3Rkb3V0IH0gPSBhd2FpdCBleGVjRmlsZUFzeW5jKGJpbiwgYXJncywgb3B0aW9ucyk7XG4gIHJldHVybiBpc1N0cmluZ1ZhbHVlKHN0ZG91dCkgPyBzdGRvdXQgOiBzdGRvdXQudG9TdHJpbmcoKTtcbn1cblxuLyoqXG4gKiDso7zslrTsp4Qg7J6R7JeF7J2EIOyLpO2Wie2VqeuLiOuLpC5cbiAqIOyjvOyWtOynhCDtlITroZzshLjsiqQg7J2067Kk7Yq4KD3si5zqt7jrhJAp6rCAIOuwnOyDne2VmOyYgOydhCDrlYzsl5Drj4Qg7LWc64yAIO2VnOqzhCh3YWl0Rm9yVXBUbykg64+Z7JWIIOyekeyXheydhCDquLDri6TrprAg7ZuEIOyiheujjO2VqeuLiOuLpC5cbiAqIEBwYXJhbSB7KCkgPT4gUHJvbWlzZTx2b2lkPn0gam9iIC0g7Iuk7ZaJ7ZWgIOyekeyXhVxuICogQHBhcmFtIHt7IHdoZW5UaGlzSGFwcGVuczogTm9kZUpTLlNpZ25hbHM7IHdhaXRGb3JVcFRvOiBudW1iZXIgfX0gb3B0aW9ucyAtIOyYteyFmFxuICogQHBhcmFtIHtOb2RlSlMuU2lnbmFsc30gb3B0aW9ucy53aGVuVGhpc0hhcHBlbnMgLSDtlITroZzshLjsiqQg7J2067Kk7Yq4XG4gKiBAcGFyYW0ge251bWJlcn0gb3B0aW9ucy53YWl0Rm9yVXBUbyAtIOy1nOuMgCDtlZzqs4Qg7Iuc6rCEXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5XaXRoR3JhY2VmdWxTaHV0ZG93bihcbiAgam9iOiAoKSA9PiBQcm9taXNlPHZvaWQ+LFxuICB7XG4gICAgd2hlblRoaXNIYXBwZW5zOiBldmVudCxcbiAgICB3YWl0Rm9yVXBUbzogZGVsYXlCZWZvcmVTaHV0ZG93bixcbiAgfTogeyB3aGVuVGhpc0hhcHBlbnM6IE5vZGVKUy5TaWduYWxzOyB3YWl0Rm9yVXBUbzogbnVtYmVyIH0gPSB7XG4gICAgd2hlblRoaXNIYXBwZW5zOiBcIlNJR1VTUjJcIixcbiAgICB3YWl0Rm9yVXBUbzogMjAwMDAsXG4gIH0sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gU0FGRVRZOiDshKDtlokg67aE6riw7JmAIO2VqOyImCDqs4Tslb3snbQg7J20IO2DgOyeheydhCDrs7TsnqXtlanri4jri6QuXG4gIGxldCBpc1J1bm5pbmcgPSB0cnVlIGFzIGJvb2xlYW47XG5cbiAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICBjb25zdCBvbkV2ZW50ID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmICghaXNSdW5uaW5nKSB7XG4gICAgICBwcm9jZXNzLmV4aXQoMCk7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKGNoYWxrLm1hZ2VudGFCcmlnaHQoYHdhaXQgZm9yIHN5bmNpbmcgZG9uZS4uLi5gKSk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgc2V0VGltZW91dFByb21pc2VzKGRlbGF5QmVmb3JlU2h1dGRvd24sIFwid2FpdGluZy1zeW5jXCIsIHtcbiAgICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCB7fVxuICAgIGNvbnNvbGUubG9nKGNoYWxrLm1hZ2VudGFCcmlnaHQoYFN5bmNpbmcgRE9ORSFgKSk7XG4gICAgcHJvY2Vzcy5leGl0KDApO1xuICB9O1xuICBwcm9jZXNzLm9uKGV2ZW50LCBvbkV2ZW50KTtcblxuICBhd2FpdCBqb2IoKTtcblxuICBpc1J1bm5pbmcgPSBmYWxzZTtcbiAgYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gIHByb2Nlc3Mub2ZmKGV2ZW50LCBvbkV2ZW50KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFjQSxlQUFzQixRQUNwQixLQUNBLE1BQ0EsU0FDaUI7Q0FDakIsTUFBTSxFQUFFLFdBQVcsTUFBTSxjQUFjLEtBQUssTUFBTSxPQUFPO0NBQ3pELE9BQU8sY0FBYyxNQUFNLElBQUksU0FBUyxPQUFPLFNBQVM7QUFDMUQ7Ozs7Ozs7OztBQVVBLGVBQXNCLHdCQUNwQixLQUNBLEVBQ0UsaUJBQWlCLE9BQ2pCLGFBQWEsd0JBQytDO0NBQzVELGlCQUFpQjtDQUNqQixhQUFhO0FBQ2YsR0FDZTtDQUVmLElBQUksWUFBWTtDQUVoQixNQUFNLGtCQUFrQixJQUFJLGdCQUFnQjtDQUM1QyxNQUFNLFVBQVUsWUFBWTtFQUMxQixJQUFJLENBQUMsV0FDSCxRQUFRLEtBQUssQ0FBQztFQUVoQixRQUFRLElBQUksTUFBTSxjQUFjLDJCQUEyQixDQUFDO0VBRTVELElBQUk7R0FDRixNQUFNQSxXQUFtQixxQkFBcUIsZ0JBQWdCLEVBQzVELFFBQVEsZ0JBQWdCLE9BQzFCLENBQUM7RUFDSCxRQUFRLENBQUM7RUFDVCxRQUFRLElBQUksTUFBTSxjQUFjLGVBQWUsQ0FBQztFQUNoRCxRQUFRLEtBQUssQ0FBQztDQUNoQjtDQUNBLFFBQVEsR0FBRyxPQUFPLE9BQU87Q0FFekIsTUFBTSxJQUFJO0NBRVYsWUFBWTtDQUNaLGdCQUFnQixNQUFNO0NBQ3RCLFFBQVEsSUFBSSxPQUFPLE9BQU87QUFDNUI7OztvQkE1RCtDO0NBRXpDLGdCQUFnQixVQUFVLFFBQVEifQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** 런타임 값이 원시 문자열인지 판별합니다. */
|
|
2
|
+
export declare function isStringValue<Value>(value: Value): value is Value & string;
|
|
3
|
+
/** 런타임 값이 원시 숫자인지 판별합니다. */
|
|
4
|
+
export declare function isNumberValue<Value>(value: Value): value is Value & number;
|
|
5
|
+
/** 런타임 값이 원시 심벌인지 판별합니다. */
|
|
6
|
+
export declare function isSymbolValue<Value>(value: Value): value is Value & symbol;
|
|
7
|
+
/** 런타임 값이 원시 bigint인지 판별합니다. */
|
|
8
|
+
export declare function isBigIntValue<Value>(value: Value): value is Value & bigint;
|
|
9
|
+
/** 런타임 값이 함수인지 판별합니다. */
|
|
10
|
+
export declare function isFunctionValue<Value>(value: Value): value is Value & CallableFunction;
|
|
11
|
+
/** null과 함수를 제외한 객체 표현인지 판별합니다. */
|
|
12
|
+
export declare function isObjectValue<Value>(value: Value): value is Value & object;
|
|
13
|
+
//# sourceMappingURL=runtime-value.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-value.d.ts","sourceRoot":"","sources":["../../src/utils/runtime-value.ts"],"names":[],"mappings":"AAIA,6BAA6B;AAC7B,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,CAE1E;AAED,4BAA4B;AAC5B,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,CAE1E;AAED,4BAA4B;AAC5B,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,CAE1E;AAED,gCAAgC;AAChC,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,CAE1E;AAED,yBAAyB;AACzB,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,gBAAgB,CAYtF;AAED,mCAAmC;AACnC,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,CAE1E"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { __esmMin } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
+
//#region src/utils/runtime-value.ts
|
|
3
|
+
function hasPrimitiveTag(value, tag) {
|
|
4
|
+
return Object.prototype.toString.call(value) === tag && Object(value) !== value;
|
|
5
|
+
}
|
|
6
|
+
/** 런타임 값이 원시 문자열인지 판별합니다. */
|
|
7
|
+
function isStringValue(value) {
|
|
8
|
+
return hasPrimitiveTag(value, "[object String]");
|
|
9
|
+
}
|
|
10
|
+
/** 런타임 값이 원시 숫자인지 판별합니다. */
|
|
11
|
+
function isNumberValue(value) {
|
|
12
|
+
return hasPrimitiveTag(value, "[object Number]");
|
|
13
|
+
}
|
|
14
|
+
/** 런타임 값이 원시 심벌인지 판별합니다. */
|
|
15
|
+
function isSymbolValue(value) {
|
|
16
|
+
return hasPrimitiveTag(value, "[object Symbol]");
|
|
17
|
+
}
|
|
18
|
+
/** 런타임 값이 원시 bigint인지 판별합니다. */
|
|
19
|
+
function isBigIntValue(value) {
|
|
20
|
+
return hasPrimitiveTag(value, "[object BigInt]");
|
|
21
|
+
}
|
|
22
|
+
/** 런타임 값이 함수인지 판별합니다. */
|
|
23
|
+
function isFunctionValue(value) {
|
|
24
|
+
try {
|
|
25
|
+
const tag = Object.prototype.toString.call(value);
|
|
26
|
+
return tag === "[object Function]" || tag === "[object AsyncFunction]" || tag === "[object GeneratorFunction]" || tag === "[object AsyncGeneratorFunction]";
|
|
27
|
+
} catch {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/** null과 함수를 제외한 객체 표현인지 판별합니다. */
|
|
32
|
+
function isObjectValue(value) {
|
|
33
|
+
return value !== null && Object(value) === value && !isFunctionValue(value);
|
|
34
|
+
}
|
|
35
|
+
var init_runtime_value = __esmMin((() => {}));
|
|
36
|
+
//#endregion
|
|
37
|
+
init_runtime_value();
|
|
38
|
+
export { init_runtime_value, isBigIntValue, isFunctionValue, isNumberValue, isObjectValue, isStringValue, isSymbolValue };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS12YWx1ZS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvcnVudGltZS12YWx1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBoYXNQcmltaXRpdmVUYWc8VmFsdWU+KHZhbHVlOiBWYWx1ZSwgdGFnOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09IHRhZyAmJiBPYmplY3QodmFsdWUpICE9PSB2YWx1ZTtcbn1cblxuLyoqIOufsO2DgOyehCDqsJLsnbQg7JuQ7IucIOusuOyekOyXtOyduOyngCDtjJDrs4Ttlanri4jri6QuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmdWYWx1ZTxWYWx1ZT4odmFsdWU6IFZhbHVlKTogdmFsdWUgaXMgVmFsdWUgJiBzdHJpbmcge1xuICByZXR1cm4gaGFzUHJpbWl0aXZlVGFnKHZhbHVlLCBcIltvYmplY3QgU3RyaW5nXVwiKTtcbn1cblxuLyoqIOufsO2DgOyehCDqsJLsnbQg7JuQ7IucIOyIq+yekOyduOyngCDtjJDrs4Ttlanri4jri6QuICovXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1iZXJWYWx1ZTxWYWx1ZT4odmFsdWU6IFZhbHVlKTogdmFsdWUgaXMgVmFsdWUgJiBudW1iZXIge1xuICByZXR1cm4gaGFzUHJpbWl0aXZlVGFnKHZhbHVlLCBcIltvYmplY3QgTnVtYmVyXVwiKTtcbn1cblxuLyoqIOufsO2DgOyehCDqsJLsnbQg7JuQ7IucIOyLrOuyjOyduOyngCDtjJDrs4Ttlanri4jri6QuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTeW1ib2xWYWx1ZTxWYWx1ZT4odmFsdWU6IFZhbHVlKTogdmFsdWUgaXMgVmFsdWUgJiBzeW1ib2wge1xuICByZXR1cm4gaGFzUHJpbWl0aXZlVGFnKHZhbHVlLCBcIltvYmplY3QgU3ltYm9sXVwiKTtcbn1cblxuLyoqIOufsO2DgOyehCDqsJLsnbQg7JuQ7IucIGJpZ2ludOyduOyngCDtjJDrs4Ttlanri4jri6QuICovXG5leHBvcnQgZnVuY3Rpb24gaXNCaWdJbnRWYWx1ZTxWYWx1ZT4odmFsdWU6IFZhbHVlKTogdmFsdWUgaXMgVmFsdWUgJiBiaWdpbnQge1xuICByZXR1cm4gaGFzUHJpbWl0aXZlVGFnKHZhbHVlLCBcIltvYmplY3QgQmlnSW50XVwiKTtcbn1cblxuLyoqIOufsO2DgOyehCDqsJLsnbQg7ZWo7IiY7J247KeAIO2MkOuzhO2VqeuLiOuLpC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uVmFsdWU8VmFsdWU+KHZhbHVlOiBWYWx1ZSk6IHZhbHVlIGlzIFZhbHVlICYgQ2FsbGFibGVGdW5jdGlvbiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdGFnID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICByZXR1cm4gKFxuICAgICAgdGFnID09PSBcIltvYmplY3QgRnVuY3Rpb25dXCIgfHxcbiAgICAgIHRhZyA9PT0gXCJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dXCIgfHxcbiAgICAgIHRhZyA9PT0gXCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXVwiIHx8XG4gICAgICB0YWcgPT09IFwiW29iamVjdCBBc3luY0dlbmVyYXRvckZ1bmN0aW9uXVwiXG4gICAgKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKiBudWxs6rO8IO2VqOyImOulvCDsoJzsmbjtlZwg6rCd7LK0IO2RnO2YhOyduOyngCDtjJDrs4Ttlanri4jri6QuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3RWYWx1ZTxWYWx1ZT4odmFsdWU6IFZhbHVlKTogdmFsdWUgaXMgVmFsdWUgJiBvYmplY3Qge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgT2JqZWN0KHZhbHVlKSA9PT0gdmFsdWUgJiYgIWlzRnVuY3Rpb25WYWx1ZSh2YWx1ZSk7XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBUyxnQkFBdUIsT0FBYyxLQUFzQjtDQUNsRSxPQUFPLE9BQU8sVUFBVSxTQUFTLEtBQUssS0FBSyxNQUFNLE9BQU8sT0FBTyxLQUFLLE1BQU07QUFDNUU7O0FBR0EsU0FBZ0IsY0FBcUIsT0FBdUM7Q0FDMUUsT0FBTyxnQkFBZ0IsT0FBTyxpQkFBaUI7QUFDakQ7O0FBR0EsU0FBZ0IsY0FBcUIsT0FBdUM7Q0FDMUUsT0FBTyxnQkFBZ0IsT0FBTyxpQkFBaUI7QUFDakQ7O0FBR0EsU0FBZ0IsY0FBcUIsT0FBdUM7Q0FDMUUsT0FBTyxnQkFBZ0IsT0FBTyxpQkFBaUI7QUFDakQ7O0FBR0EsU0FBZ0IsY0FBcUIsT0FBdUM7Q0FDMUUsT0FBTyxnQkFBZ0IsT0FBTyxpQkFBaUI7QUFDakQ7O0FBR0EsU0FBZ0IsZ0JBQXVCLE9BQWlEO0NBQ3RGLElBQUk7RUFDRixNQUFNLE1BQU0sT0FBTyxVQUFVLFNBQVMsS0FBSyxLQUFLO0VBQ2hELE9BQ0UsUUFBUSx1QkFDUixRQUFRLDRCQUNSLFFBQVEsZ0NBQ1IsUUFBUTtDQUVaLFFBQVE7RUFDTixPQUFPO0NBQ1Q7QUFDRjs7QUFHQSxTQUFnQixjQUFxQixPQUF1QztDQUMxRSxPQUFPLFVBQVUsUUFBUSxPQUFPLEtBQUssTUFBTSxTQUFTLENBQUMsZ0JBQWdCLEtBQUs7QUFDNUUifQ==
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import { type AST, type ColumnRef, type Join } from "node-sql-parser";
|
|
2
|
-
|
|
2
|
+
type ParserColumnRef = Omit<ColumnRef, "table"> & {
|
|
3
|
+
table?: string | {
|
|
4
|
+
type: string;
|
|
5
|
+
value: string;
|
|
6
|
+
} | null;
|
|
7
|
+
};
|
|
8
|
+
export declare function getTableName(expr: ParserColumnRef): string | null;
|
|
3
9
|
export declare function getTableNamesFromWhere(ast: AST | AST[]): string[];
|
|
4
10
|
/**
|
|
5
11
|
* 주의: table명이 아닌 alias를 반환함
|
|
6
12
|
*/
|
|
7
13
|
export declare function getJoinTables(ast: AST | AST[], joinTypes: Join["join"][]): string[];
|
|
14
|
+
export {};
|
|
8
15
|
//# sourceMappingURL=sql-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-parser.d.ts","sourceRoot":"","sources":["../../src/utils/sql-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,SAAS,EAId,KAAK,IAAI,EAEV,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"sql-parser.d.ts","sourceRoot":"","sources":["../../src/utils/sql-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,SAAS,EAId,KAAK,IAAI,EAEV,MAAM,iBAAiB,CAAC;AAMzB,KAAK,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG;IAChD,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACzD,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,iBAQjD;AAGD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,MAAM,EAAE,CA2BjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAYnF"}
|
package/dist/utils/sql-parser.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { __esmMin } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { init_runtime_value, isObjectValue, isStringValue } from "./runtime-value.js";
|
|
2
3
|
import { init_utils, nonNullable } from "./utils.js";
|
|
3
4
|
import { unique } from "radashi";
|
|
4
5
|
//#region src/utils/sql-parser.ts
|
|
5
6
|
function getTableName(expr) {
|
|
6
|
-
|
|
7
|
-
return
|
|
7
|
+
const table = expr.table;
|
|
8
|
+
if (isStringValue(table)) return table;
|
|
9
|
+
return isObjectValue(table) && "value" in table && isStringValue(table.value) ? table.value : null;
|
|
8
10
|
}
|
|
9
11
|
function getTableNamesFromWhere(ast) {
|
|
10
12
|
const extractTableNames = (where) => {
|
|
@@ -30,10 +32,11 @@ function getJoinTables(ast, joinTypes) {
|
|
|
30
32
|
return unique((Array.isArray(ast) ? ast : [ast]).flatMap((a) => a.type === "select" && Array.isArray(a.from) ? extractJoinTables(a.from) : []));
|
|
31
33
|
}
|
|
32
34
|
var init_sql_parser = __esmMin((() => {
|
|
35
|
+
init_runtime_value();
|
|
33
36
|
init_utils();
|
|
34
37
|
}));
|
|
35
38
|
//#endregion
|
|
36
39
|
init_sql_parser();
|
|
37
40
|
export { getJoinTables, getTableName, getTableNamesFromWhere, init_sql_parser };
|
|
38
41
|
|
|
39
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLXBhcnNlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc3FsLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIEFTVCxcbiAgdHlwZSBDb2x1bW5SZWYsXG4gIHR5cGUgRXhwcixcbiAgdHlwZSBFeHByZXNzaW9uVmFsdWUsXG4gIHR5cGUgRnJvbSxcbiAgdHlwZSBKb2luLFxuICB0eXBlIFNlbGVjdCxcbn0gZnJvbSBcIm5vZGUtc3FsLXBhcnNlclwiO1xuaW1wb3J0IHsgdW5pcXVlIH0gZnJvbSBcInJhZGFzaGlcIjtcblxuaW1wb3J0IHsgaXNPYmplY3RWYWx1ZSwgaXNTdHJpbmdWYWx1ZSB9IGZyb20gXCIuL3J1bnRpbWUtdmFsdWVcIjtcbmltcG9ydCB7IG5vbk51bGxhYmxlIH0gZnJvbSBcIi4vdXRpbHNcIjtcblxudHlwZSBQYXJzZXJDb2x1bW5SZWYgPSBPbWl0PENvbHVtblJlZiwgXCJ0YWJsZVwiPiAmIHtcbiAgdGFibGU/OiBzdHJpbmcgfCB7IHR5cGU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9IHwgbnVsbDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUYWJsZU5hbWUoZXhwcjogUGFyc2VyQ29sdW1uUmVmKSB7XG4gIGNvbnN0IHRhYmxlID0gZXhwci50YWJsZTtcbiAgaWYgKGlzU3RyaW5nVmFsdWUodGFibGUpKSB7XG4gICAgcmV0dXJuIHRhYmxlO1xuICB9XG4gIHJldHVybiBpc09iamVjdFZhbHVlKHRhYmxlKSAmJiBcInZhbHVlXCIgaW4gdGFibGUgJiYgaXNTdHJpbmdWYWx1ZSh0YWJsZS52YWx1ZSlcbiAgICA/IHRhYmxlLnZhbHVlXG4gICAgOiBudWxsO1xufVxuXG4vLyB3aGVyZSDsobDqsbTsl5Ag7IKs7Jqp65CcIO2FjOydtOu4lOuqheydhCDstpTstpxcbmV4cG9ydCBmdW5jdGlvbiBnZXRUYWJsZU5hbWVzRnJvbVdoZXJlKGFzdDogQVNUIHwgQVNUW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGV4dHJhY3RUYWJsZU5hbWVzID0gKHdoZXJlOiBTZWxlY3RbXCJ3aGVyZVwiXSk6IHN0cmluZ1tdID0+IHtcbiAgICBpZiAod2hlcmUgPT09IG51bGwgfHwgISh3aGVyZS50eXBlID09PSBcImJpbmFyeV9leHByXCIgJiYgXCJsZWZ0XCIgaW4gd2hlcmUpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgZXh0cmFjdFRhYmxlTmFtZSA9IChleHByOiBFeHByIHwgRXhwcmVzc2lvblZhbHVlKTogc3RyaW5nW10gPT4ge1xuICAgICAgaWYgKGV4cHIudHlwZSA9PT0gXCJjb2x1bW5fcmVmXCIpIHtcbiAgICAgICAgLy8gU0FGRVRZOiDshKDtlokg67aE6riw7JmAIO2VqOyImCDqs4Tslb3snbQg7J20IO2DgOyeheydhCDrs7TsnqXtlanri4jri6QuXG4gICAgICAgIGNvbnN0IHRhYmxlID0gZ2V0VGFibGVOYW1lKGV4cHIgYXMgQ29sdW1uUmVmKTtcbiAgICAgICAgcmV0dXJuIHRhYmxlID8gW3RhYmxlXSA6IFtdO1xuICAgICAgfSBlbHNlIGlmIChleHByLnR5cGUgPT09IFwiYmluYXJ5X2V4cHJcIiAmJiBcImxlZnRcIiBpbiBleHByKSB7XG4gICAgICAgIHJldHVybiBleHRyYWN0VGFibGVOYW1lcyhleHByKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbXTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFsuLi5leHRyYWN0VGFibGVOYW1lKHdoZXJlLmxlZnQpLCAuLi5leHRyYWN0VGFibGVOYW1lKHdoZXJlLnJpZ2h0KV07XG4gIH07XG5cbiAgcmV0dXJuIHVuaXF1ZShcbiAgICAoQXJyYXkuaXNBcnJheShhc3QpID8gYXN0IDogW2FzdF0pLmZsYXRNYXAoKGEpID0+XG4gICAgICBhLnR5cGUgPT09IFwic2VsZWN0XCIgfHwgYS50eXBlID09PSBcInVwZGF0ZVwiIHx8IGEudHlwZSA9PT0gXCJkZWxldGVcIlxuICAgICAgICA/IGV4dHJhY3RUYWJsZU5hbWVzKGEud2hlcmUpXG4gICAgICAgIDogW10sXG4gICAgKSxcbiAgKTtcbn1cblxuLyoqXG4gKiDso7zsnZg6IHRhYmxl66qF7J20IOyVhOuLjCBhbGlhc+ulvCDrsJjtmZjtlahcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEpvaW5UYWJsZXMoYXN0OiBBU1QgfCBBU1RbXSwgam9pblR5cGVzOiBKb2luW1wiam9pblwiXVtdKTogc3RyaW5nW10ge1xuICBjb25zdCBleHRyYWN0Sm9pblRhYmxlcyA9IChmcm9tczogRnJvbVtdKTogc3RyaW5nW10gPT4ge1xuICAgIHJldHVybiBmcm9tc1xuICAgICAgLm1hcCgoZikgPT4gKFwiam9pblwiIGluIGYgJiYgam9pblR5cGVzLmluY2x1ZGVzKGYuam9pbikgPyBmLmFzIDogbnVsbCkpXG4gICAgICAuZmlsdGVyKG5vbk51bGxhYmxlKTtcbiAgfTtcblxuICByZXR1cm4gdW5pcXVlKFxuICAgIChBcnJheS5pc0FycmF5KGFzdCkgPyBhc3QgOiBbYXN0XSkuZmxhdE1hcCgoYSkgPT5cbiAgICAgIGEudHlwZSA9PT0gXCJzZWxlY3RcIiAmJiBBcnJheS5pc0FycmF5KGEuZnJvbSkgPyBleHRyYWN0Sm9pblRhYmxlcyhhLmZyb20pIDogW10sXG4gICAgKSxcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFrQkEsU0FBZ0IsYUFBYSxNQUF1QjtDQUNsRCxNQUFNLFFBQVEsS0FBSztDQUNuQixJQUFJLGNBQWMsS0FBSyxHQUNyQixPQUFPO0NBRVQsT0FBTyxjQUFjLEtBQUssS0FBSyxXQUFXLFNBQVMsY0FBYyxNQUFNLEtBQUssSUFDeEUsTUFBTSxRQUNOO0FBQ047QUFHQSxTQUFnQix1QkFBdUIsS0FBNEI7Q0FDakUsTUFBTSxxQkFBcUIsVUFBcUM7RUFDOUQsSUFBSSxVQUFVLFFBQVEsRUFBRSxNQUFNLFNBQVMsaUJBQWlCLFVBQVUsUUFDaEUsT0FBTyxDQUFDO0VBR1YsTUFBTSxvQkFBb0IsU0FBMkM7R0FDbkUsSUFBSSxLQUFLLFNBQVMsY0FBYztJQUU5QixNQUFNLFFBQVEsYUFBYSxJQUFpQjtJQUM1QyxPQUFPLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQztHQUM1QixPQUFPLElBQUksS0FBSyxTQUFTLGlCQUFpQixVQUFVLE1BQ2xELE9BQU8sa0JBQWtCLElBQUk7R0FFL0IsT0FBTyxDQUFDO0VBQ1Y7RUFFQSxPQUFPLENBQUMsR0FBRyxpQkFBaUIsTUFBTSxJQUFJLEdBQUcsR0FBRyxpQkFBaUIsTUFBTSxLQUFLLENBQUM7Q0FDM0U7Q0FFQSxPQUFPLFFBQ0osTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFBLENBQUcsU0FBUyxNQUMxQyxFQUFFLFNBQVMsWUFBWSxFQUFFLFNBQVMsWUFBWSxFQUFFLFNBQVMsV0FDckQsa0JBQWtCLEVBQUUsS0FBSyxJQUN6QixDQUFDLENBQ1AsQ0FDRjtBQUNGOzs7O0FBS0EsU0FBZ0IsY0FBYyxLQUFrQixXQUFxQztDQUNuRixNQUFNLHFCQUFxQixVQUE0QjtFQUNyRCxPQUFPLE1BQ0osS0FBSyxNQUFPLFVBQVUsS0FBSyxVQUFVLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxLQUFLLElBQUssQ0FBQyxDQUNyRSxPQUFPLFdBQVc7Q0FDdkI7Q0FFQSxPQUFPLFFBQ0osTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFBLENBQUcsU0FBUyxNQUMxQyxFQUFFLFNBQVMsWUFBWSxNQUFNLFFBQVEsRUFBRSxJQUFJLElBQUksa0JBQWtCLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FDOUUsQ0FDRjtBQUNGOztvQkE5RDhEO1lBQ3pCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../../src/utils/type-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../../src/utils/type-utils.ts"],"names":[],"mappings":"AAEA,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,KAAK,CAAC;AAGtE,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GACjE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAElB,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,IAAI,EAAE,GAClC,CAAC,SAAS,MAAM,CAAC,GAEf,MAAM,CAAC;KACJ,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,GAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GACtB,CAAC,CAAC,GAAG,CAAC;CACX,CAAC,GAEF,MAAM,CAAC,CAAC,GAAG;KAAG,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;CAAE,CAAC,GAElD,CAAC,SAAS,MAAM,CAAC,GAEf,MAAM,CAAC;KAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;CAAE,CAAC,GAExD,MAAM,CAAC,CAAC,GAAG;KAAG,GAAG,IAAI,CAAC,GAAG,CAAC;CAAE,CAAC,CAAC;AAEtC,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,EAC5D,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAoClB;AAED,UAAU,YAAY,CAAC,CAAC;IAEtB,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAG5E,KAAK,IAAI,CAAC,CAAC;CACZ;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAQnE"}
|