@microwiseai/snapshot 0.3.6 → 0.3.27
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/commands/install.d.ts +13 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +526 -49
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/license.d.ts +21 -0
- package/dist/commands/license.d.ts.map +1 -0
- package/dist/commands/license.js +120 -0
- package/dist/commands/license.js.map +1 -0
- package/dist/index.js +46 -6
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +32 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +89 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/gitlab.d.ts +26 -20
- package/dist/lib/gitlab.d.ts.map +1 -1
- package/dist/lib/gitlab.js +100 -153
- package/dist/lib/gitlab.js.map +1 -1
- package/dist/lib/package-resolver.d.ts +48 -0
- package/dist/lib/package-resolver.d.ts.map +1 -0
- package/dist/lib/package-resolver.js +178 -0
- package/dist/lib/package-resolver.js.map +1 -0
- package/dist/lib/skit-adapter.d.ts +56 -0
- package/dist/lib/skit-adapter.d.ts.map +1 -0
- package/dist/lib/skit-adapter.js +166 -0
- package/dist/lib/skit-adapter.js.map +1 -0
- package/dist/lib/transitive-resolver.d.ts +86 -0
- package/dist/lib/transitive-resolver.d.ts.map +1 -0
- package/dist/lib/transitive-resolver.js +431 -0
- package/dist/lib/transitive-resolver.js.map +1 -0
- package/dist/lib/types.d.ts +6 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib.d.ts +59 -0
- package/dist/lib.d.ts.map +1 -0
- package/dist/lib.js +134 -0
- package/dist/lib.js.map +1 -0
- package/dist/tools/snapshot-to-license.d.ts +13 -0
- package/dist/tools/snapshot-to-license.d.ts.map +1 -0
- package/dist/tools/snapshot-to-license.js +105 -0
- package/dist/tools/snapshot-to-license.js.map +1 -0
- package/node_modules/@microwiseai/cache/README.md +143 -0
- package/node_modules/@microwiseai/cache/dist/file.d.ts +97 -0
- package/node_modules/@microwiseai/cache/dist/file.d.ts.map +1 -0
- package/node_modules/@microwiseai/cache/dist/file.js +256 -0
- package/node_modules/@microwiseai/cache/dist/file.js.map +1 -0
- package/node_modules/@microwiseai/cache/dist/index.d.ts +10 -0
- package/node_modules/@microwiseai/cache/dist/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/cache/dist/index.js +11 -0
- package/node_modules/@microwiseai/cache/dist/index.js.map +1 -0
- package/node_modules/@microwiseai/cache/dist/memory.d.ts +69 -0
- package/node_modules/@microwiseai/cache/dist/memory.d.ts.map +1 -0
- package/node_modules/@microwiseai/cache/dist/memory.js +152 -0
- package/node_modules/@microwiseai/cache/dist/memory.js.map +1 -0
- package/node_modules/@microwiseai/cache/dist/types.d.ts +76 -0
- package/node_modules/@microwiseai/cache/dist/types.d.ts.map +1 -0
- package/node_modules/@microwiseai/cache/dist/types.js +5 -0
- package/node_modules/@microwiseai/cache/dist/types.js.map +1 -0
- package/node_modules/@microwiseai/cache/package.json +40 -0
- package/node_modules/@microwiseai/import-telemetry/dist/__tests__/detector.test.d.ts +7 -0
- package/node_modules/@microwiseai/import-telemetry/dist/__tests__/detector.test.d.ts.map +1 -0
- package/node_modules/@microwiseai/import-telemetry/dist/__tests__/detector.test.js +139 -0
- package/node_modules/@microwiseai/import-telemetry/dist/__tests__/detector.test.js.map +1 -0
- package/node_modules/@microwiseai/import-telemetry/dist/__tests__/reporter.test.d.ts +8 -0
- package/node_modules/@microwiseai/import-telemetry/dist/__tests__/reporter.test.d.ts.map +1 -0
- package/node_modules/@microwiseai/import-telemetry/dist/__tests__/reporter.test.js +195 -0
- package/node_modules/@microwiseai/import-telemetry/dist/__tests__/reporter.test.js.map +1 -0
- package/node_modules/@microwiseai/import-telemetry/dist/__tests__/types.test.d.ts +8 -0
- package/node_modules/@microwiseai/import-telemetry/dist/__tests__/types.test.d.ts.map +1 -0
- package/node_modules/@microwiseai/import-telemetry/dist/__tests__/types.test.js +97 -0
- package/node_modules/@microwiseai/import-telemetry/dist/__tests__/types.test.js.map +1 -0
- package/node_modules/@microwiseai/import-telemetry/dist/detector.d.ts +16 -0
- package/node_modules/@microwiseai/import-telemetry/dist/detector.d.ts.map +1 -0
- package/node_modules/@microwiseai/import-telemetry/dist/detector.js +103 -0
- package/node_modules/@microwiseai/import-telemetry/dist/detector.js.map +1 -0
- package/node_modules/@microwiseai/import-telemetry/dist/index.d.ts +48 -0
- package/node_modules/@microwiseai/import-telemetry/dist/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/import-telemetry/dist/index.js +56 -0
- package/node_modules/@microwiseai/import-telemetry/dist/index.js.map +1 -0
- package/node_modules/@microwiseai/import-telemetry/dist/reporter.d.ts +16 -0
- package/node_modules/@microwiseai/import-telemetry/dist/reporter.d.ts.map +1 -0
- package/node_modules/@microwiseai/import-telemetry/dist/reporter.js +147 -0
- package/node_modules/@microwiseai/import-telemetry/dist/reporter.js.map +1 -0
- package/node_modules/@microwiseai/import-telemetry/dist/types.d.ts +75 -0
- package/node_modules/@microwiseai/import-telemetry/dist/types.d.ts.map +1 -0
- package/node_modules/@microwiseai/import-telemetry/dist/types.js +23 -0
- package/node_modules/@microwiseai/import-telemetry/dist/types.js.map +1 -0
- package/node_modules/@microwiseai/import-telemetry/package.json +40 -0
- package/node_modules/@microwiseai/license/README.md +157 -0
- package/node_modules/@microwiseai/license/dist/api/client.d.ts +37 -0
- package/node_modules/@microwiseai/license/dist/api/client.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/api/client.js +95 -0
- package/node_modules/@microwiseai/license/dist/api/client.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/api/endpoints.d.ts +25 -0
- package/node_modules/@microwiseai/license/dist/api/endpoints.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/api/endpoints.js +101 -0
- package/node_modules/@microwiseai/license/dist/api/endpoints.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/api/index.d.ts +7 -0
- package/node_modules/@microwiseai/license/dist/api/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/api/index.js +8 -0
- package/node_modules/@microwiseai/license/dist/api/index.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/cache/file.d.ts +38 -0
- package/node_modules/@microwiseai/license/dist/cache/file.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/cache/file.js +140 -0
- package/node_modules/@microwiseai/license/dist/cache/file.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/cache/index.d.ts +7 -0
- package/node_modules/@microwiseai/license/dist/cache/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/cache/index.js +10 -0
- package/node_modules/@microwiseai/license/dist/cache/index.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/cache/memory.d.ts +35 -0
- package/node_modules/@microwiseai/license/dist/cache/memory.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/cache/memory.js +77 -0
- package/node_modules/@microwiseai/license/dist/cache/memory.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/cache/offline.d.ts +29 -0
- package/node_modules/@microwiseai/license/dist/cache/offline.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/cache/offline.js +58 -0
- package/node_modules/@microwiseai/license/dist/cache/offline.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/client.d.ts +42 -0
- package/node_modules/@microwiseai/license/dist/client.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/client.js +83 -0
- package/node_modules/@microwiseai/license/dist/client.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/config.d.ts +27 -0
- package/node_modules/@microwiseai/license/dist/config.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/config.js +52 -0
- package/node_modules/@microwiseai/license/dist/config.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/core/activate.d.ts +21 -0
- package/node_modules/@microwiseai/license/dist/core/activate.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/core/activate.js +72 -0
- package/node_modules/@microwiseai/license/dist/core/activate.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/core/check.d.ts +19 -0
- package/node_modules/@microwiseai/license/dist/core/check.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/core/check.js +244 -0
- package/node_modules/@microwiseai/license/dist/core/check.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/core/index.d.ts +7 -0
- package/node_modules/@microwiseai/license/dist/core/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/core/index.js +10 -0
- package/node_modules/@microwiseai/license/dist/core/index.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/core/verify.d.ts +39 -0
- package/node_modules/@microwiseai/license/dist/core/verify.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/core/verify.js +188 -0
- package/node_modules/@microwiseai/license/dist/core/verify.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/env.d.ts +33 -0
- package/node_modules/@microwiseai/license/dist/env.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/env.js +69 -0
- package/node_modules/@microwiseai/license/dist/env.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/helpers/cache.d.ts +97 -0
- package/node_modules/@microwiseai/license/dist/helpers/cache.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/helpers/cache.js +198 -0
- package/node_modules/@microwiseai/license/dist/helpers/cache.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/helpers/index.d.ts +7 -0
- package/node_modules/@microwiseai/license/dist/helpers/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/helpers/index.js +9 -0
- package/node_modules/@microwiseai/license/dist/helpers/index.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/helpers/telemetry.d.ts +68 -0
- package/node_modules/@microwiseai/license/dist/helpers/telemetry.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/helpers/telemetry.js +119 -0
- package/node_modules/@microwiseai/license/dist/helpers/telemetry.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/index.d.ts +34 -0
- package/node_modules/@microwiseai/license/dist/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/index.js +48 -0
- package/node_modules/@microwiseai/license/dist/index.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/machine/id.d.ts +19 -0
- package/node_modules/@microwiseai/license/dist/machine/id.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/machine/id.js +83 -0
- package/node_modules/@microwiseai/license/dist/machine/id.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/machine/index.d.ts +6 -0
- package/node_modules/@microwiseai/license/dist/machine/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/machine/index.js +6 -0
- package/node_modules/@microwiseai/license/dist/machine/index.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/machine/instance.d.ts +23 -0
- package/node_modules/@microwiseai/license/dist/machine/instance.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/machine/instance.js +52 -0
- package/node_modules/@microwiseai/license/dist/machine/instance.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/telemetry/index.d.ts +6 -0
- package/node_modules/@microwiseai/license/dist/telemetry/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/telemetry/index.js +6 -0
- package/node_modules/@microwiseai/license/dist/telemetry/index.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/telemetry/manager.d.ts +53 -0
- package/node_modules/@microwiseai/license/dist/telemetry/manager.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/telemetry/manager.js +125 -0
- package/node_modules/@microwiseai/license/dist/telemetry/manager.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/telemetry/payload.d.ts +17 -0
- package/node_modules/@microwiseai/license/dist/telemetry/payload.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/telemetry/payload.js +65 -0
- package/node_modules/@microwiseai/license/dist/telemetry/payload.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/types/api.d.ts +120 -0
- package/node_modules/@microwiseai/license/dist/types/api.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/types/api.js +5 -0
- package/node_modules/@microwiseai/license/dist/types/api.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/types/config.d.ts +80 -0
- package/node_modules/@microwiseai/license/dist/types/config.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/types/config.js +12 -0
- package/node_modules/@microwiseai/license/dist/types/config.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/types/errors.d.ts +93 -0
- package/node_modules/@microwiseai/license/dist/types/errors.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/types/errors.js +144 -0
- package/node_modules/@microwiseai/license/dist/types/errors.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/types/index.d.ts +10 -0
- package/node_modules/@microwiseai/license/dist/types/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/types/index.js +6 -0
- package/node_modules/@microwiseai/license/dist/types/index.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/types/license.d.ts +113 -0
- package/node_modules/@microwiseai/license/dist/types/license.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/types/license.js +5 -0
- package/node_modules/@microwiseai/license/dist/types/license.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/utils/date.d.ts +45 -0
- package/node_modules/@microwiseai/license/dist/utils/date.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/utils/date.js +95 -0
- package/node_modules/@microwiseai/license/dist/utils/date.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/utils/env.d.ts +41 -0
- package/node_modules/@microwiseai/license/dist/utils/env.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/utils/env.js +80 -0
- package/node_modules/@microwiseai/license/dist/utils/env.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/utils/index.d.ts +7 -0
- package/node_modules/@microwiseai/license/dist/utils/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/utils/index.js +7 -0
- package/node_modules/@microwiseai/license/dist/utils/index.js.map +1 -0
- package/node_modules/@microwiseai/license/dist/utils/mask.d.ts +27 -0
- package/node_modules/@microwiseai/license/dist/utils/mask.d.ts.map +1 -0
- package/node_modules/@microwiseai/license/dist/utils/mask.js +67 -0
- package/node_modules/@microwiseai/license/dist/utils/mask.js.map +1 -0
- package/node_modules/@microwiseai/license/package.json +52 -0
- package/node_modules/@microwiseai/license-types/README.md +84 -0
- package/node_modules/@microwiseai/license-types/dist/api.d.ts +120 -0
- package/node_modules/@microwiseai/license-types/dist/api.d.ts.map +1 -0
- package/node_modules/@microwiseai/license-types/dist/api.js +5 -0
- package/node_modules/@microwiseai/license-types/dist/api.js.map +1 -0
- package/node_modules/@microwiseai/license-types/dist/config.d.ts +80 -0
- package/node_modules/@microwiseai/license-types/dist/config.d.ts.map +1 -0
- package/node_modules/@microwiseai/license-types/dist/config.js +12 -0
- package/node_modules/@microwiseai/license-types/dist/config.js.map +1 -0
- package/node_modules/@microwiseai/license-types/dist/errors.d.ts +93 -0
- package/node_modules/@microwiseai/license-types/dist/errors.d.ts.map +1 -0
- package/node_modules/@microwiseai/license-types/dist/errors.js +144 -0
- package/node_modules/@microwiseai/license-types/dist/errors.js.map +1 -0
- package/node_modules/@microwiseai/license-types/dist/index.d.ts +10 -0
- package/node_modules/@microwiseai/license-types/dist/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/license-types/dist/index.js +6 -0
- package/node_modules/@microwiseai/license-types/dist/index.js.map +1 -0
- package/node_modules/@microwiseai/license-types/dist/license.d.ts +113 -0
- package/node_modules/@microwiseai/license-types/dist/license.d.ts.map +1 -0
- package/node_modules/@microwiseai/license-types/dist/license.js +5 -0
- package/node_modules/@microwiseai/license-types/dist/license.js.map +1 -0
- package/node_modules/@microwiseai/license-types/package.json +38 -0
- package/node_modules/@microwiseai/license-utils/README.md +82 -0
- package/node_modules/@microwiseai/license-utils/dist/__tests__/machine.test.d.ts +2 -0
- package/node_modules/@microwiseai/license-utils/dist/__tests__/machine.test.d.ts.map +1 -0
- package/node_modules/@microwiseai/license-utils/dist/__tests__/machine.test.js +124 -0
- package/node_modules/@microwiseai/license-utils/dist/__tests__/machine.test.js.map +1 -0
- package/node_modules/@microwiseai/license-utils/dist/index.d.ts +7 -0
- package/node_modules/@microwiseai/license-utils/dist/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/license-utils/dist/index.js +15 -0
- package/node_modules/@microwiseai/license-utils/dist/index.js.map +1 -0
- package/node_modules/@microwiseai/license-utils/dist/machine/id.d.ts +19 -0
- package/node_modules/@microwiseai/license-utils/dist/machine/id.d.ts.map +1 -0
- package/node_modules/@microwiseai/license-utils/dist/machine/id.js +83 -0
- package/node_modules/@microwiseai/license-utils/dist/machine/id.js.map +1 -0
- package/node_modules/@microwiseai/license-utils/dist/machine/index.d.ts +6 -0
- package/node_modules/@microwiseai/license-utils/dist/machine/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/license-utils/dist/machine/index.js +6 -0
- package/node_modules/@microwiseai/license-utils/dist/machine/index.js.map +1 -0
- package/node_modules/@microwiseai/license-utils/dist/machine/instance.d.ts +23 -0
- package/node_modules/@microwiseai/license-utils/dist/machine/instance.d.ts.map +1 -0
- package/node_modules/@microwiseai/license-utils/dist/machine/instance.js +52 -0
- package/node_modules/@microwiseai/license-utils/dist/machine/instance.js.map +1 -0
- package/node_modules/@microwiseai/license-utils/dist/utils/date.d.ts +45 -0
- package/node_modules/@microwiseai/license-utils/dist/utils/date.d.ts.map +1 -0
- package/node_modules/@microwiseai/license-utils/dist/utils/date.js +95 -0
- package/node_modules/@microwiseai/license-utils/dist/utils/date.js.map +1 -0
- package/node_modules/@microwiseai/license-utils/dist/utils/env.d.ts +16 -0
- package/node_modules/@microwiseai/license-utils/dist/utils/env.d.ts.map +1 -0
- package/node_modules/@microwiseai/license-utils/dist/utils/env.js +22 -0
- package/node_modules/@microwiseai/license-utils/dist/utils/env.js.map +1 -0
- package/node_modules/@microwiseai/license-utils/dist/utils/index.d.ts +7 -0
- package/node_modules/@microwiseai/license-utils/dist/utils/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/license-utils/dist/utils/index.js +7 -0
- package/node_modules/@microwiseai/license-utils/dist/utils/index.js.map +1 -0
- package/node_modules/@microwiseai/license-utils/dist/utils/mask.d.ts +27 -0
- package/node_modules/@microwiseai/license-utils/dist/utils/mask.d.ts.map +1 -0
- package/node_modules/@microwiseai/license-utils/dist/utils/mask.js +67 -0
- package/node_modules/@microwiseai/license-utils/dist/utils/mask.js.map +1 -0
- package/node_modules/@microwiseai/license-utils/package.json +45 -0
- package/node_modules/@microwiseai/telemetry/README.md +86 -0
- package/node_modules/@microwiseai/telemetry/dist/index.d.ts +9 -0
- package/node_modules/@microwiseai/telemetry/dist/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/telemetry/dist/index.js +10 -0
- package/node_modules/@microwiseai/telemetry/dist/index.js.map +1 -0
- package/node_modules/@microwiseai/telemetry/dist/manager.d.ts +71 -0
- package/node_modules/@microwiseai/telemetry/dist/manager.d.ts.map +1 -0
- package/node_modules/@microwiseai/telemetry/dist/manager.js +171 -0
- package/node_modules/@microwiseai/telemetry/dist/manager.js.map +1 -0
- package/node_modules/@microwiseai/telemetry/dist/payload.d.ts +13 -0
- package/node_modules/@microwiseai/telemetry/dist/payload.d.ts.map +1 -0
- package/node_modules/@microwiseai/telemetry/dist/payload.js +35 -0
- package/node_modules/@microwiseai/telemetry/dist/payload.js.map +1 -0
- package/node_modules/@microwiseai/telemetry/dist/types.d.ts +76 -0
- package/node_modules/@microwiseai/telemetry/dist/types.d.ts.map +1 -0
- package/node_modules/@microwiseai/telemetry/dist/types.js +13 -0
- package/node_modules/@microwiseai/telemetry/dist/types.js.map +1 -0
- package/node_modules/@microwiseai/telemetry/package.json +43 -0
- package/node_modules/chalk/license +9 -0
- package/node_modules/chalk/package.json +83 -0
- package/node_modules/chalk/readme.md +297 -0
- package/node_modules/chalk/source/index.d.ts +325 -0
- package/node_modules/chalk/source/index.js +225 -0
- package/node_modules/chalk/source/utilities.js +33 -0
- package/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +236 -0
- package/node_modules/chalk/source/vendor/ansi-styles/index.js +223 -0
- package/node_modules/chalk/source/vendor/supports-color/browser.d.ts +1 -0
- package/node_modules/chalk/source/vendor/supports-color/browser.js +34 -0
- package/node_modules/chalk/source/vendor/supports-color/index.d.ts +55 -0
- package/node_modules/chalk/source/vendor/supports-color/index.js +190 -0
- package/package.json +26 -2
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* License error types
|
|
3
|
+
*/
|
|
4
|
+
import type { LicenseData } from './license.js';
|
|
5
|
+
/**
|
|
6
|
+
* License error codes
|
|
7
|
+
*/
|
|
8
|
+
export type LicenseErrorCode = 'NO_LICENSE' | 'EXPIRED' | 'CANCELLED' | 'SUSPENDED' | 'TRIAL_ENDED' | 'VERSION_MISMATCH' | 'PRODUCT_MISMATCH' | 'MACHINE_LIMIT' | 'NETWORK_ERROR' | 'OFFLINE_GRACE_EXCEEDED' | 'INVALID_KEY' | 'ACTIVATION_FAILED';
|
|
9
|
+
/**
|
|
10
|
+
* License error details
|
|
11
|
+
*/
|
|
12
|
+
export interface LicenseErrorDetails {
|
|
13
|
+
/** Partial license data (if available) */
|
|
14
|
+
license?: Partial<LicenseData>;
|
|
15
|
+
/** Whether trial can be converted to paid */
|
|
16
|
+
canConvertToPaid?: boolean;
|
|
17
|
+
/** Store URL for purchasing/renewing */
|
|
18
|
+
storeUrl?: string;
|
|
19
|
+
/** CLI command for activation */
|
|
20
|
+
cliCommand?: string;
|
|
21
|
+
/** Additional context */
|
|
22
|
+
context?: Record<string, unknown>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* License validation error
|
|
26
|
+
*/
|
|
27
|
+
export declare class LicenseError extends Error {
|
|
28
|
+
readonly code: LicenseErrorCode;
|
|
29
|
+
readonly details?: LicenseErrorDetails | undefined;
|
|
30
|
+
readonly name = "LicenseError";
|
|
31
|
+
constructor(message: string, code: LicenseErrorCode, details?: LicenseErrorDetails | undefined);
|
|
32
|
+
/**
|
|
33
|
+
* Create error for missing license
|
|
34
|
+
*/
|
|
35
|
+
static noLicense(details?: LicenseErrorDetails): LicenseError;
|
|
36
|
+
/**
|
|
37
|
+
* Create error for expired license
|
|
38
|
+
*/
|
|
39
|
+
static expired(details?: LicenseErrorDetails): LicenseError;
|
|
40
|
+
/**
|
|
41
|
+
* Create error for cancelled license
|
|
42
|
+
*/
|
|
43
|
+
static cancelled(details?: LicenseErrorDetails): LicenseError;
|
|
44
|
+
/**
|
|
45
|
+
* Create error for suspended license
|
|
46
|
+
*/
|
|
47
|
+
static suspended(details?: LicenseErrorDetails): LicenseError;
|
|
48
|
+
/**
|
|
49
|
+
* Create error for ended trial
|
|
50
|
+
*/
|
|
51
|
+
static trialEnded(details?: LicenseErrorDetails): LicenseError;
|
|
52
|
+
/**
|
|
53
|
+
* Create error for version mismatch
|
|
54
|
+
*/
|
|
55
|
+
static versionMismatch(allowedVersion: string, details?: LicenseErrorDetails): LicenseError;
|
|
56
|
+
/**
|
|
57
|
+
* Create error for product mismatch
|
|
58
|
+
*/
|
|
59
|
+
static productMismatch(expectedProduct: string, actualProduct: string, details?: LicenseErrorDetails): LicenseError;
|
|
60
|
+
/**
|
|
61
|
+
* Create error for exceeded machine limit
|
|
62
|
+
*/
|
|
63
|
+
static machineLimit(details?: LicenseErrorDetails): LicenseError;
|
|
64
|
+
/**
|
|
65
|
+
* Create error for network failure
|
|
66
|
+
*/
|
|
67
|
+
static networkError(originalError?: Error, details?: LicenseErrorDetails): LicenseError;
|
|
68
|
+
/**
|
|
69
|
+
* Create error for exceeded offline grace period
|
|
70
|
+
*/
|
|
71
|
+
static offlineGraceExceeded(details?: LicenseErrorDetails): LicenseError;
|
|
72
|
+
/**
|
|
73
|
+
* Create error for invalid license key
|
|
74
|
+
*/
|
|
75
|
+
static invalidKey(details?: LicenseErrorDetails): LicenseError;
|
|
76
|
+
/**
|
|
77
|
+
* Create error for activation failure
|
|
78
|
+
*/
|
|
79
|
+
static activationFailed(reason: string, details?: LicenseErrorDetails): LicenseError;
|
|
80
|
+
/**
|
|
81
|
+
* Check if error is a specific type
|
|
82
|
+
*/
|
|
83
|
+
is(code: LicenseErrorCode): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Check if error is recoverable (user can take action)
|
|
86
|
+
*/
|
|
87
|
+
isRecoverable(): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Get user-friendly action suggestion
|
|
90
|
+
*/
|
|
91
|
+
getSuggestion(): string;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,YAAY,GACZ,SAAS,GACT,WAAW,GACX,WAAW,GACX,aAAa,GACb,kBAAkB,GAClB,kBAAkB,GAClB,eAAe,GACf,eAAe,GACf,wBAAwB,GACxB,aAAa,GACb,mBAAmB,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAE/B,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;aAKnB,IAAI,EAAE,gBAAgB;aACtB,OAAO,CAAC,EAAE,mBAAmB;IAL/C,SAAgB,IAAI,kBAAkB;gBAGpC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,gBAAgB,EACtB,OAAO,CAAC,EAAE,mBAAmB,YAAA;IAU/C;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,YAAY;IAI7D;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,YAAY;IAI3D;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,YAAY;IAI7D;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,YAAY;IAI7D;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,YAAY;IAO9D;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,YAAY;IAI3F;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,YAAY;IAQf;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,YAAY;IAQhE;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,YAAY;IAQvF;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,YAAY;IAQxE;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,YAAY;IAI9D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,YAAY;IAIpF;;OAEG;IACH,EAAE,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO;IAInC;;OAEG;IACH,aAAa,IAAI,OAAO;IAYxB;;OAEG;IACH,aAAa,IAAI,MAAM;CAqBxB"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* License error types
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* License validation error
|
|
6
|
+
*/
|
|
7
|
+
export class LicenseError extends Error {
|
|
8
|
+
code;
|
|
9
|
+
details;
|
|
10
|
+
name = 'LicenseError';
|
|
11
|
+
constructor(message, code, details) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.code = code;
|
|
14
|
+
this.details = details;
|
|
15
|
+
// Maintains proper stack trace for where error was thrown
|
|
16
|
+
if (Error.captureStackTrace) {
|
|
17
|
+
Error.captureStackTrace(this, LicenseError);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Create error for missing license
|
|
22
|
+
*/
|
|
23
|
+
static noLicense(details) {
|
|
24
|
+
return new LicenseError('No license found. Please activate a license first.', 'NO_LICENSE', details);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create error for expired license
|
|
28
|
+
*/
|
|
29
|
+
static expired(details) {
|
|
30
|
+
return new LicenseError('Your license has expired. Please renew your subscription.', 'EXPIRED', details);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create error for cancelled license
|
|
34
|
+
*/
|
|
35
|
+
static cancelled(details) {
|
|
36
|
+
return new LicenseError('Your license has been cancelled.', 'CANCELLED', details);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Create error for suspended license
|
|
40
|
+
*/
|
|
41
|
+
static suspended(details) {
|
|
42
|
+
return new LicenseError('Your license has been suspended. Please contact support.', 'SUSPENDED', details);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create error for ended trial
|
|
46
|
+
*/
|
|
47
|
+
static trialEnded(details) {
|
|
48
|
+
return new LicenseError('Your trial has ended. Please purchase a license.', 'TRIAL_ENDED', {
|
|
49
|
+
...details,
|
|
50
|
+
canConvertToPaid: true,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Create error for version mismatch
|
|
55
|
+
*/
|
|
56
|
+
static versionMismatch(allowedVersion, details) {
|
|
57
|
+
return new LicenseError(`This license is for version ${allowedVersion}.`, 'VERSION_MISMATCH', details);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Create error for product mismatch
|
|
61
|
+
*/
|
|
62
|
+
static productMismatch(expectedProduct, actualProduct, details) {
|
|
63
|
+
return new LicenseError(`License is for ${actualProduct}, not ${expectedProduct}.`, 'PRODUCT_MISMATCH', details);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Create error for exceeded machine limit
|
|
67
|
+
*/
|
|
68
|
+
static machineLimit(details) {
|
|
69
|
+
return new LicenseError('Machine activation limit reached. Please deactivate another machine first.', 'MACHINE_LIMIT', details);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Create error for network failure
|
|
73
|
+
*/
|
|
74
|
+
static networkError(originalError, details) {
|
|
75
|
+
const message = originalError?.message ?? 'Network error during license verification';
|
|
76
|
+
return new LicenseError(message, 'NETWORK_ERROR', {
|
|
77
|
+
...details,
|
|
78
|
+
context: { originalError: originalError?.message },
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Create error for exceeded offline grace period
|
|
83
|
+
*/
|
|
84
|
+
static offlineGraceExceeded(details) {
|
|
85
|
+
return new LicenseError('Offline grace period exceeded. Please connect to verify your license.', 'OFFLINE_GRACE_EXCEEDED', details);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Create error for invalid license key
|
|
89
|
+
*/
|
|
90
|
+
static invalidKey(details) {
|
|
91
|
+
return new LicenseError('Invalid license key.', 'INVALID_KEY', details);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Create error for activation failure
|
|
95
|
+
*/
|
|
96
|
+
static activationFailed(reason, details) {
|
|
97
|
+
return new LicenseError(`Activation failed: ${reason}`, 'ACTIVATION_FAILED', details);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Check if error is a specific type
|
|
101
|
+
*/
|
|
102
|
+
is(code) {
|
|
103
|
+
return this.code === code;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Check if error is recoverable (user can take action)
|
|
107
|
+
*/
|
|
108
|
+
isRecoverable() {
|
|
109
|
+
const recoverableCodes = [
|
|
110
|
+
'NO_LICENSE',
|
|
111
|
+
'EXPIRED',
|
|
112
|
+
'TRIAL_ENDED',
|
|
113
|
+
'MACHINE_LIMIT',
|
|
114
|
+
'NETWORK_ERROR',
|
|
115
|
+
'OFFLINE_GRACE_EXCEEDED',
|
|
116
|
+
];
|
|
117
|
+
return recoverableCodes.includes(this.code);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Get user-friendly action suggestion
|
|
121
|
+
*/
|
|
122
|
+
getSuggestion() {
|
|
123
|
+
switch (this.code) {
|
|
124
|
+
case 'NO_LICENSE':
|
|
125
|
+
return this.details?.cliCommand
|
|
126
|
+
? `Run: ${this.details.cliCommand} activate <LICENSE_KEY>`
|
|
127
|
+
: 'Please activate a license.';
|
|
128
|
+
case 'EXPIRED':
|
|
129
|
+
case 'TRIAL_ENDED':
|
|
130
|
+
return this.details?.storeUrl ? `Renew at: ${this.details.storeUrl}` : 'Please renew your license.';
|
|
131
|
+
case 'MACHINE_LIMIT':
|
|
132
|
+
return 'Deactivate another machine or upgrade your license.';
|
|
133
|
+
case 'NETWORK_ERROR':
|
|
134
|
+
case 'OFFLINE_GRACE_EXCEEDED':
|
|
135
|
+
return 'Please check your internet connection.';
|
|
136
|
+
case 'CANCELLED':
|
|
137
|
+
case 'SUSPENDED':
|
|
138
|
+
return 'Please contact support.';
|
|
139
|
+
default:
|
|
140
|
+
return '';
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for @microwiseai/license
|
|
3
|
+
*/
|
|
4
|
+
export type { LicenseConfig, ResolvedConfig, CheckOptions, ActivateOptions, DeactivateOptions, ReportOptions, } from './config.js';
|
|
5
|
+
export { CONFIG_DEFAULTS } from './config.js';
|
|
6
|
+
export type { LicenseType, LicenseStatus, LicenseData, LicenseInfo, LicenseResult, LicenseCacheData, ActivationResult, DeactivationResult, TelemetryStatus, } from './license.js';
|
|
7
|
+
export type { VerifyRequest, VerifySuccessResponse, VerifyFailureResponse, VerifyResponse, VerifyErrorCode, ActivateRequest, ActivateSuccessResponse, ActivateFailureResponse, ActivateResponse, ActivateErrorCode, DeactivateRequest, DeactivateResponse, TelemetryPayload, TelemetryResponse, } from './api.js';
|
|
8
|
+
export type { LicenseErrorCode, LicenseErrorDetails } from './errors.js';
|
|
9
|
+
export { LicenseError } from './errors.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,GAChB,MAAM,cAAc,CAAC;AAGtB,YAAY,EAEV,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,eAAe,EAEf,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EAEjB,iBAAiB,EACjB,kBAAkB,EAElB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAGlB,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAuC9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* License data types
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* License type
|
|
6
|
+
*/
|
|
7
|
+
export type LicenseType = 'perpetual' | 'subscription' | 'trial';
|
|
8
|
+
/**
|
|
9
|
+
* License status
|
|
10
|
+
*/
|
|
11
|
+
export type LicenseStatus = 'active' | 'expired' | 'cancelled' | 'suspended' | 'inactive';
|
|
12
|
+
/**
|
|
13
|
+
* License data stored locally
|
|
14
|
+
*/
|
|
15
|
+
export interface LicenseData {
|
|
16
|
+
licenseKey: string;
|
|
17
|
+
productId: string;
|
|
18
|
+
productName: string;
|
|
19
|
+
productIds?: string[];
|
|
20
|
+
status: LicenseStatus;
|
|
21
|
+
type: LicenseType;
|
|
22
|
+
expiresAt?: string;
|
|
23
|
+
trialEndsAt?: string;
|
|
24
|
+
maintenanceExpiresAt?: string;
|
|
25
|
+
versionLocked?: string;
|
|
26
|
+
activatedAt: string;
|
|
27
|
+
instanceName: string;
|
|
28
|
+
activationId?: string;
|
|
29
|
+
features?: string[];
|
|
30
|
+
metadata?: Record<string, unknown>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* License information returned in results (with Date objects)
|
|
34
|
+
*/
|
|
35
|
+
export interface LicenseInfo {
|
|
36
|
+
/** Masked license key */
|
|
37
|
+
key: string;
|
|
38
|
+
productId: string;
|
|
39
|
+
productName: string;
|
|
40
|
+
status: LicenseStatus;
|
|
41
|
+
type: LicenseType;
|
|
42
|
+
expiresAt?: Date;
|
|
43
|
+
activatedAt?: Date;
|
|
44
|
+
maintenanceExpiresAt?: Date;
|
|
45
|
+
trialEndsAt?: Date;
|
|
46
|
+
features?: string[];
|
|
47
|
+
isTrial?: boolean;
|
|
48
|
+
trialDaysRemaining?: number;
|
|
49
|
+
offlineDaysRemaining?: number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* License check result
|
|
53
|
+
*/
|
|
54
|
+
export interface LicenseResult {
|
|
55
|
+
/** Whether the license is valid */
|
|
56
|
+
valid: boolean;
|
|
57
|
+
/** Reason for invalid license */
|
|
58
|
+
reason?: string;
|
|
59
|
+
/** License information (if available) */
|
|
60
|
+
license?: LicenseInfo;
|
|
61
|
+
/** Whether result is from cache */
|
|
62
|
+
cached: boolean;
|
|
63
|
+
/** Whether running in offline mode */
|
|
64
|
+
offlineMode: boolean;
|
|
65
|
+
/** Whether trial can be converted to paid */
|
|
66
|
+
canConvertToPaid?: boolean;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* License cache data
|
|
70
|
+
*/
|
|
71
|
+
export interface LicenseCacheData {
|
|
72
|
+
valid: boolean;
|
|
73
|
+
verifiedAt: string;
|
|
74
|
+
cacheExpiresAt: string;
|
|
75
|
+
offlineGraceUntil: string;
|
|
76
|
+
/** Last server response (used for offline mode) */
|
|
77
|
+
lastServerResponse?: {
|
|
78
|
+
type: LicenseType;
|
|
79
|
+
status: LicenseStatus;
|
|
80
|
+
expiresAt?: string;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* License activation result
|
|
85
|
+
*/
|
|
86
|
+
export interface ActivationResult {
|
|
87
|
+
success: boolean;
|
|
88
|
+
activationId?: string;
|
|
89
|
+
instanceName: string;
|
|
90
|
+
activatedAt?: string;
|
|
91
|
+
licenseKey?: string;
|
|
92
|
+
productId?: string;
|
|
93
|
+
productName?: string;
|
|
94
|
+
type?: LicenseType;
|
|
95
|
+
expiresAt?: string;
|
|
96
|
+
error?: string;
|
|
97
|
+
code?: string;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* License deactivation result
|
|
101
|
+
*/
|
|
102
|
+
export interface DeactivationResult {
|
|
103
|
+
success: boolean;
|
|
104
|
+
message?: string;
|
|
105
|
+
deactivatedCount?: number;
|
|
106
|
+
error?: string;
|
|
107
|
+
code?: string;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Telemetry status
|
|
111
|
+
*/
|
|
112
|
+
export type TelemetryStatus = 'valid' | 'invalid' | 'expired' | 'trial' | 'none';
|
|
113
|
+
//# sourceMappingURL=license.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../src/license.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"license.js","sourceRoot":"","sources":["../src/license.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@microwiseai/license-types",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Type definitions for @microwiseai/license",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "tsc",
|
|
19
|
+
"dev": "tsc --watch",
|
|
20
|
+
"typecheck": "tsc --noEmit",
|
|
21
|
+
"clean": "rm -rf dist",
|
|
22
|
+
"prepublishOnly": "npm run build"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"license",
|
|
26
|
+
"types",
|
|
27
|
+
"typescript"
|
|
28
|
+
],
|
|
29
|
+
"author": "MicrowiseAI",
|
|
30
|
+
"license": "MIT",
|
|
31
|
+
"engines": {
|
|
32
|
+
"node": ">=18.0.0"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@types/node": "^20.11.0",
|
|
36
|
+
"typescript": "^5.3.3"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# @microwiseai/license-utils
|
|
2
|
+
|
|
3
|
+
라이선스 검증을 위한 **범용 유틸리티** 패키지.
|
|
4
|
+
|
|
5
|
+
## 설치
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @microwiseai/license-utils
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 주요 함수
|
|
12
|
+
|
|
13
|
+
### Machine Identification
|
|
14
|
+
| Function | Description |
|
|
15
|
+
|----------|-------------|
|
|
16
|
+
| `getMachineId(vendorName)` | 고유 머신 ID 생성/조회 (영구 저장) |
|
|
17
|
+
| `getInstanceName()` | 사람이 읽기 쉬운 인스턴스명 |
|
|
18
|
+
| `getOrCreateInstanceName(name?)` | 커스텀 또는 자동 인스턴스명 |
|
|
19
|
+
| `getMachineFingerprint()` | 머신 핑거프린트 (비영구) |
|
|
20
|
+
| `getStorageDir(vendorName)` | 벤더별 저장 디렉토리 경로 |
|
|
21
|
+
| `getSystemInfo()` | 시스템 정보 객체 |
|
|
22
|
+
|
|
23
|
+
### Masking
|
|
24
|
+
| Function | Description |
|
|
25
|
+
|----------|-------------|
|
|
26
|
+
| `maskLicenseKey(key)` | 라이선스 키 마스킹 (`XXXX-****-****-ABCD`) |
|
|
27
|
+
| `maskEmail(email)` | 이메일 마스킹 (`u***@example.com`) |
|
|
28
|
+
| `maskMachineId(id)` | 머신 ID 마스킹 |
|
|
29
|
+
|
|
30
|
+
### Date Utils
|
|
31
|
+
| Function | Description |
|
|
32
|
+
|----------|-------------|
|
|
33
|
+
| `daysRemaining(date)` | 만료까지 남은 일수 |
|
|
34
|
+
| `isExpired(date)` | 만료 여부 확인 |
|
|
35
|
+
| `isWithinDays(date, days)` | N일 이내 여부 |
|
|
36
|
+
| `addSeconds(date, secs)` | 초 단위 더하기 |
|
|
37
|
+
| `addDays(date, days)` | 일 단위 더하기 |
|
|
38
|
+
| `nowISO()` | 현재 시간 ISO 문자열 |
|
|
39
|
+
| `parseDate(str)` | 문자열 → Date 파싱 |
|
|
40
|
+
| `formatDate(date)` | Date → YYYY-MM-DD |
|
|
41
|
+
| `formatDateTime(date)` | Date → YYYY-MM-DD HH:mm:ss |
|
|
42
|
+
| `relativeTime(date)` | 상대 시간 표현 |
|
|
43
|
+
|
|
44
|
+
### Environment
|
|
45
|
+
| Function | Description |
|
|
46
|
+
|----------|-------------|
|
|
47
|
+
| `getEnvVar(name)` | 환경변수 조회 |
|
|
48
|
+
| `isTestEnvironment()` | 테스트 환경 여부 |
|
|
49
|
+
| `isCIEnvironment()` | CI 환경 여부 |
|
|
50
|
+
|
|
51
|
+
## 사용 예시
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
import {
|
|
55
|
+
getMachineId,
|
|
56
|
+
getInstanceName,
|
|
57
|
+
maskLicenseKey,
|
|
58
|
+
daysRemaining,
|
|
59
|
+
isExpired,
|
|
60
|
+
} from '@microwiseai/license-utils';
|
|
61
|
+
|
|
62
|
+
// 머신 ID
|
|
63
|
+
const machineId = getMachineId('myapp');
|
|
64
|
+
console.log(machineId); // "macbook-pro-a1b2c3d4e5f6"
|
|
65
|
+
|
|
66
|
+
// 인스턴스명
|
|
67
|
+
const instanceName = getInstanceName();
|
|
68
|
+
console.log(instanceName); // "macbook-pro-a1b2c3d4"
|
|
69
|
+
|
|
70
|
+
// 라이선스 키 마스킹
|
|
71
|
+
const masked = maskLicenseKey('ABCD-1234-5678-EFGH');
|
|
72
|
+
console.log(masked); // "ABCD-****-****-EFGH"
|
|
73
|
+
|
|
74
|
+
// 만료일 계산
|
|
75
|
+
const expiresAt = new Date('2024-12-31');
|
|
76
|
+
console.log(daysRemaining(expiresAt)); // 30
|
|
77
|
+
console.log(isExpired(expiresAt)); // false
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## License
|
|
81
|
+
|
|
82
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machine.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/machine.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import * as os from 'os';
|
|
3
|
+
import * as fs from 'fs';
|
|
4
|
+
import * as path from 'path';
|
|
5
|
+
import { getMachineId, getStorageDir, getMachineFingerprint, getInstanceName, getOrCreateInstanceName, getSystemInfo, } from '../index.js';
|
|
6
|
+
describe('getMachineId', () => {
|
|
7
|
+
const testVendor = 'test-vendor';
|
|
8
|
+
const storageDir = path.join(os.homedir(), '.test-vendor');
|
|
9
|
+
const machineIdFile = path.join(storageDir, '.machine-id');
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
// Clean up test directory
|
|
12
|
+
if (fs.existsSync(machineIdFile)) {
|
|
13
|
+
fs.unlinkSync(machineIdFile);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
afterEach(() => {
|
|
17
|
+
// Clean up
|
|
18
|
+
if (fs.existsSync(machineIdFile)) {
|
|
19
|
+
fs.unlinkSync(machineIdFile);
|
|
20
|
+
}
|
|
21
|
+
if (fs.existsSync(storageDir)) {
|
|
22
|
+
fs.rmdirSync(storageDir, { recursive: true });
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
it('should generate a machine ID', () => {
|
|
26
|
+
const machineId = getMachineId(testVendor);
|
|
27
|
+
expect(machineId).toBeDefined();
|
|
28
|
+
expect(typeof machineId).toBe('string');
|
|
29
|
+
expect(machineId.length).toBeGreaterThan(0);
|
|
30
|
+
});
|
|
31
|
+
it('should return the same ID on subsequent calls', () => {
|
|
32
|
+
const id1 = getMachineId(testVendor);
|
|
33
|
+
const id2 = getMachineId(testVendor);
|
|
34
|
+
expect(id1).toBe(id2);
|
|
35
|
+
});
|
|
36
|
+
it('should persist the machine ID to file', () => {
|
|
37
|
+
const machineId = getMachineId(testVendor);
|
|
38
|
+
expect(fs.existsSync(machineIdFile)).toBe(true);
|
|
39
|
+
const storedId = fs.readFileSync(machineIdFile, 'utf-8').trim();
|
|
40
|
+
expect(storedId).toBe(machineId);
|
|
41
|
+
});
|
|
42
|
+
it('should contain hostname and hash parts', () => {
|
|
43
|
+
const machineId = getMachineId(testVendor);
|
|
44
|
+
// Format: hostname-shortHash (12 char hash)
|
|
45
|
+
expect(machineId).toMatch(/^[a-zA-Z0-9-]+-[a-f0-9]{12}$/);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
describe('getStorageDir', () => {
|
|
49
|
+
it('should return path under home directory', () => {
|
|
50
|
+
const dir = getStorageDir('myvendor');
|
|
51
|
+
expect(dir).toBe(path.join(os.homedir(), '.myvendor'));
|
|
52
|
+
});
|
|
53
|
+
it('should sanitize vendor name', () => {
|
|
54
|
+
const dir = getStorageDir('My Vendor!@#');
|
|
55
|
+
expect(dir).toBe(path.join(os.homedir(), '.myvendor'));
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
describe('getMachineFingerprint', () => {
|
|
59
|
+
it('should return a 16-character hex string', () => {
|
|
60
|
+
const fingerprint = getMachineFingerprint();
|
|
61
|
+
expect(fingerprint).toMatch(/^[a-f0-9]{16}$/);
|
|
62
|
+
});
|
|
63
|
+
it('should be consistent across calls', () => {
|
|
64
|
+
const fp1 = getMachineFingerprint();
|
|
65
|
+
const fp2 = getMachineFingerprint();
|
|
66
|
+
expect(fp1).toBe(fp2);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
describe('getInstanceName', () => {
|
|
70
|
+
it('should return a formatted instance name', () => {
|
|
71
|
+
const instanceName = getInstanceName();
|
|
72
|
+
expect(instanceName).toBeDefined();
|
|
73
|
+
expect(typeof instanceName).toBe('string');
|
|
74
|
+
// Format: hostname-hash (8 char hash)
|
|
75
|
+
expect(instanceName).toMatch(/^[a-z0-9-]+-[a-f0-9]{8}$/);
|
|
76
|
+
});
|
|
77
|
+
it('should be consistent across calls', () => {
|
|
78
|
+
const name1 = getInstanceName();
|
|
79
|
+
const name2 = getInstanceName();
|
|
80
|
+
expect(name1).toBe(name2);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
describe('getOrCreateInstanceName', () => {
|
|
84
|
+
it('should return custom name when provided', () => {
|
|
85
|
+
const customName = 'My Custom Instance';
|
|
86
|
+
const instanceName = getOrCreateInstanceName(customName);
|
|
87
|
+
expect(instanceName).toBe('my-custom-instance');
|
|
88
|
+
});
|
|
89
|
+
it('should sanitize custom name', () => {
|
|
90
|
+
const instanceName = getOrCreateInstanceName('Test@Instance!123');
|
|
91
|
+
expect(instanceName).toBe('test-instance-123');
|
|
92
|
+
});
|
|
93
|
+
it('should return generated name when no custom name provided', () => {
|
|
94
|
+
const instanceName = getOrCreateInstanceName();
|
|
95
|
+
const generatedName = getInstanceName();
|
|
96
|
+
expect(instanceName).toBe(generatedName);
|
|
97
|
+
});
|
|
98
|
+
it('should return generated name for empty string', () => {
|
|
99
|
+
const instanceName = getOrCreateInstanceName('');
|
|
100
|
+
const generatedName = getInstanceName();
|
|
101
|
+
expect(instanceName).toBe(generatedName);
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
describe('getSystemInfo', () => {
|
|
105
|
+
it('should return system information object', () => {
|
|
106
|
+
const info = getSystemInfo();
|
|
107
|
+
expect(info).toHaveProperty('hostname');
|
|
108
|
+
expect(info).toHaveProperty('platform');
|
|
109
|
+
expect(info).toHaveProperty('arch');
|
|
110
|
+
expect(info).toHaveProperty('nodeVersion');
|
|
111
|
+
});
|
|
112
|
+
it('should have correct types', () => {
|
|
113
|
+
const info = getSystemInfo();
|
|
114
|
+
expect(typeof info.hostname).toBe('string');
|
|
115
|
+
expect(typeof info.platform).toBe('string');
|
|
116
|
+
expect(typeof info.arch).toBe('string');
|
|
117
|
+
expect(typeof info.nodeVersion).toBe('string');
|
|
118
|
+
});
|
|
119
|
+
it('should return valid node version format', () => {
|
|
120
|
+
const info = getSystemInfo();
|
|
121
|
+
expect(info.nodeVersion).toMatch(/^v\d+\.\d+\.\d+/);
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=machine.test.js.map
|