@choochmeque/tauri-windows-bundle 0.1.0

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.
@@ -0,0 +1,114 @@
1
+ export interface TauriConfig {
2
+ productName?: string;
3
+ version?: string;
4
+ identifier?: string;
5
+ bundle?: {
6
+ icon?: string[];
7
+ shortDescription?: string;
8
+ longDescription?: string;
9
+ resources?: (string | {
10
+ src: string;
11
+ target: string;
12
+ })[];
13
+ windows?: {
14
+ certificateThumbprint?: string;
15
+ };
16
+ };
17
+ }
18
+ export interface BundleConfig {
19
+ publisher: string;
20
+ publisherDisplayName: string;
21
+ capabilities?: string[];
22
+ extensions?: {
23
+ shareTarget?: boolean;
24
+ fileAssociations?: FileAssociation[];
25
+ protocolHandlers?: ProtocolHandler[];
26
+ startupTask?: StartupTask;
27
+ contextMenus?: ContextMenu[];
28
+ backgroundTasks?: BackgroundTask[];
29
+ appExecutionAliases?: AppExecutionAlias[];
30
+ appServices?: AppService[];
31
+ toastActivation?: ToastActivation;
32
+ autoplayHandlers?: AutoplayHandler[];
33
+ printTaskSettings?: PrintTaskSettings;
34
+ thumbnailHandlers?: ThumbnailHandler[];
35
+ previewHandlers?: PreviewHandler[];
36
+ };
37
+ signing?: {
38
+ pfx?: string | null;
39
+ pfxPassword?: string | null;
40
+ };
41
+ }
42
+ export interface FileAssociation {
43
+ name: string;
44
+ extensions: string[];
45
+ description?: string;
46
+ }
47
+ export interface ProtocolHandler {
48
+ name: string;
49
+ displayName?: string;
50
+ }
51
+ export interface StartupTask {
52
+ enabled: boolean;
53
+ taskId?: string;
54
+ }
55
+ export interface ContextMenu {
56
+ name: string;
57
+ fileTypes: string[];
58
+ displayName?: string;
59
+ }
60
+ export interface BackgroundTask {
61
+ name: string;
62
+ type: 'timer' | 'systemEvent' | 'pushNotification';
63
+ }
64
+ export interface AppExecutionAlias {
65
+ alias: string;
66
+ displayName?: string;
67
+ }
68
+ export interface AppService {
69
+ name: string;
70
+ serverName?: string;
71
+ }
72
+ export interface ToastActivation {
73
+ activationType: 'foreground' | 'background' | 'protocol';
74
+ }
75
+ export interface AutoplayHandler {
76
+ verb: string;
77
+ actionDisplayName: string;
78
+ contentEvent?: string;
79
+ deviceEvent?: string;
80
+ }
81
+ export interface PrintTaskSettings {
82
+ displayName: string;
83
+ }
84
+ export interface ThumbnailHandler {
85
+ clsid: string;
86
+ fileTypes: string[];
87
+ }
88
+ export interface PreviewHandler {
89
+ clsid: string;
90
+ fileTypes: string[];
91
+ }
92
+ export interface MergedConfig extends BundleConfig {
93
+ displayName: string;
94
+ version: string;
95
+ description: string;
96
+ identifier: string;
97
+ }
98
+ export interface InitOptions {
99
+ path?: string;
100
+ }
101
+ export interface BuildOptions {
102
+ arch?: string;
103
+ release?: boolean;
104
+ minWindows?: string;
105
+ }
106
+ export interface MsixAsset {
107
+ name: string;
108
+ size?: number;
109
+ width?: number;
110
+ height?: number;
111
+ }
112
+ export declare const MSIX_ASSETS: MsixAsset[];
113
+ export declare const DEFAULT_MIN_WINDOWS_VERSION = "10.0.17763.0";
114
+ export declare const DEFAULT_CAPABILITIES: string[];
@@ -0,0 +1,11 @@
1
+ export declare function execAsync(command: string, options?: {
2
+ cwd?: string;
3
+ }): Promise<{
4
+ stdout: string;
5
+ stderr: string;
6
+ }>;
7
+ export declare function isMsixbundleCliInstalled(): Promise<boolean>;
8
+ export declare function getMsixbundleCliVersion(): Promise<string | null>;
9
+ export declare function isVersionSufficient(version: string, minVersion: string): boolean;
10
+ export declare const MIN_MSIXBUNDLE_CLI_VERSION = "1.0.0";
11
+ export declare function promptInstall(message: string): Promise<boolean>;
@@ -0,0 +1 @@
1
+ export declare function replaceTemplateVariables(template: string, variables: Record<string, string>): string;
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@choochmeque/tauri-windows-bundle",
3
+ "version": "0.1.0",
4
+ "description": "MSIX packaging tool for Tauri apps - Windows Store ready bundles",
5
+ "type": "module",
6
+ "bin": {
7
+ "tauri-windows-bundle": "./dist/cli.js"
8
+ },
9
+ "main": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "scripts": {
12
+ "build": "rollup -c",
13
+ "prepublishOnly": "pnpm build",
14
+ "pretest": "pnpm build",
15
+ "test": "vitest run",
16
+ "test:watch": "vitest",
17
+ "test:coverage": "vitest run --coverage",
18
+ "lint": "eslint .",
19
+ "format": "prettier --write \"./**/*.{cjs,mjs,js,jsx,mts,ts,tsx,html,css,json}\"",
20
+ "format:check": "prettier --check \"./**/*.{cjs,mjs,js,jsx,mts,ts,tsx,html,css,json}\""
21
+ },
22
+ "keywords": [
23
+ "tauri",
24
+ "windows",
25
+ "msix",
26
+ "msixbundle",
27
+ "packaging",
28
+ "windows-store"
29
+ ],
30
+ "author": "Choochmeque",
31
+ "license": "MIT",
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://github.com/Choochmeque/tauri-windows-bundle.git"
35
+ },
36
+ "files": [
37
+ "dist",
38
+ "templates"
39
+ ],
40
+ "dependencies": {
41
+ "commander": "^14.0.2",
42
+ "glob": "^13.0.0"
43
+ },
44
+ "devDependencies": {
45
+ "@eslint/js": "^9.0.0",
46
+ "@rollup/plugin-node-resolve": "^16.0.0",
47
+ "@rollup/plugin-typescript": "^12.0.0",
48
+ "@types/node": "^25.0.3",
49
+ "@vitest/coverage-v8": "^2.0.0",
50
+ "eslint": "^9.0.0",
51
+ "typescript-eslint": "^8.0.0",
52
+ "prettier": "^3.0.0",
53
+ "rollup": "^4.0.0",
54
+ "tslib": "^2.6.0",
55
+ "typescript": "^5.3.3",
56
+ "vitest": "^2.0.0"
57
+ },
58
+ "packageManager": "pnpm@10.16.0+sha512.8066e7b034217b700a9a4dbb3a005061d641ba130a89915213a10b3ca4919c19c037bec8066afdc559b89635fdb806b16ea673f2468fbb28aabfa13c53e3f769"
59
+ }
@@ -0,0 +1,51 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Package
3
+ xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
4
+ xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
5
+ xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
6
+ xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
7
+ xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities">
8
+
9
+ <Identity
10
+ Name="{{PACKAGE_NAME}}"
11
+ Publisher="{{PUBLISHER}}"
12
+ Version="{{VERSION}}"
13
+ ProcessorArchitecture="{{ARCH}}" />
14
+
15
+ <Properties>
16
+ <DisplayName>{{DISPLAY_NAME}}</DisplayName>
17
+ <PublisherDisplayName>{{PUBLISHER_DISPLAY_NAME}}</PublisherDisplayName>
18
+ <Logo>Assets\StoreLogo.png</Logo>
19
+ </Properties>
20
+
21
+ <Dependencies>
22
+ <TargetDeviceFamily Name="Windows.Desktop"
23
+ MinVersion="{{MIN_VERSION}}"
24
+ MaxVersionTested="10.0.22621.0" />
25
+ </Dependencies>
26
+
27
+ <Resources>
28
+ <Resource Language="en-us" />
29
+ </Resources>
30
+
31
+ <Applications>
32
+ <Application Id="App"
33
+ Executable="{{EXECUTABLE}}"
34
+ EntryPoint="Windows.FullTrustApplication">
35
+ <uap:VisualElements
36
+ DisplayName="{{DISPLAY_NAME}}"
37
+ Description="{{DESCRIPTION}}"
38
+ BackgroundColor="transparent"
39
+ Square150x150Logo="Assets\Square150x150Logo.png"
40
+ Square44x44Logo="Assets\Square44x44Logo.png">
41
+ <uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" />
42
+ </uap:VisualElements>
43
+
44
+ {{EXTENSIONS}}
45
+ </Application>
46
+ </Applications>
47
+
48
+ <Capabilities>
49
+ {{CAPABILITIES}}
50
+ </Capabilities>
51
+ </Package>
@@ -0,0 +1,5 @@
1
+ <uap3:Extension Category="windows.appExecutionAlias" EntryPoint="Windows.FullTrustApplication" Executable="{{EXECUTABLE}}">
2
+ <uap3:AppExecutionAlias>
3
+ <desktop:ExecutionAlias Alias="{{ALIAS}}" />
4
+ </uap3:AppExecutionAlias>
5
+ </uap3:Extension>
@@ -0,0 +1,3 @@
1
+ <uap:Extension Category="windows.appService">
2
+ <uap:AppService Name="{{NAME}}" />
3
+ </uap:Extension>
@@ -0,0 +1,5 @@
1
+ <uap:Extension Category="windows.autoPlayDevice">
2
+ <uap:AutoPlayDevice>
3
+ <uap:LaunchAction Verb="{{VERB}}" ActionDisplayName="{{ACTION_DISPLAY_NAME}}" DeviceEvent="{{DEVICE_EVENT}}" />
4
+ </uap:AutoPlayDevice>
5
+ </uap:Extension>
@@ -0,0 +1,5 @@
1
+ <uap:Extension Category="windows.autoPlayContent">
2
+ <uap:AutoPlayContent>
3
+ <uap:LaunchAction Verb="{{VERB}}" ActionDisplayName="{{ACTION_DISPLAY_NAME}}" ContentEvent="{{CONTENT_EVENT}}" />
4
+ </uap:AutoPlayContent>
5
+ </uap:Extension>
@@ -0,0 +1,5 @@
1
+ <uap:Extension Category="windows.backgroundTasks" EntryPoint="{{ENTRY_POINT}}">
2
+ <uap:BackgroundTasks>
3
+ <uap:Task Type="{{TRIGGER_TYPE}}" />
4
+ </uap:BackgroundTasks>
5
+ </uap:Extension>
@@ -0,0 +1,9 @@
1
+ <desktop:Extension Category="windows.fileExplorerContextMenus">
2
+ <desktop:FileExplorerContextMenus>
3
+ <desktop:ItemType Type="*">
4
+ <desktop:Verb Id="{{NAME}}" Clsid="">
5
+ {{FILE_TYPES}}
6
+ </desktop:Verb>
7
+ </desktop:ItemType>
8
+ </desktop:FileExplorerContextMenus>
9
+ </desktop:Extension>
@@ -0,0 +1,7 @@
1
+ <uap:Extension Category="windows.fileTypeAssociation">
2
+ <uap:FileTypeAssociation Name="{{NAME}}">
3
+ <uap:SupportedFileTypes>
4
+ {{FILE_TYPES}}
5
+ </uap:SupportedFileTypes>
6
+ </uap:FileTypeAssociation>
7
+ </uap:Extension>
@@ -0,0 +1,8 @@
1
+ <uap:Extension Category="windows.fileTypeAssociation">
2
+ <uap:FileTypeAssociation Name="{{NAME}}">
3
+ <uap:SupportedFileTypes>
4
+ {{FILE_TYPES}}
5
+ </uap:SupportedFileTypes>
6
+ <desktop2:DesktopPreviewHandler Clsid="{{CLSID}}" />
7
+ </uap:FileTypeAssociation>
8
+ </uap:Extension>
@@ -0,0 +1,3 @@
1
+ <desktop:Extension Category="windows.printWorkflowBackgroundTask" EntryPoint="Windows.FullTrustApplication">
2
+ <desktop:PrintWorkflowBackgroundTask />
3
+ </desktop:Extension>
@@ -0,0 +1,5 @@
1
+ <uap:Extension Category="windows.protocol">
2
+ <uap:Protocol Name="{{NAME}}">
3
+ <uap:DisplayName>{{DISPLAY_NAME}}</uap:DisplayName>
4
+ </uap:Protocol>
5
+ </uap:Extension>
@@ -0,0 +1,9 @@
1
+ <uap:Extension Category="windows.shareTarget">
2
+ <uap:ShareTarget>
3
+ <uap:SupportedFileTypes>
4
+ <uap:SupportsAnyFileType />
5
+ </uap:SupportedFileTypes>
6
+ <uap:DataFormat>Text</uap:DataFormat>
7
+ <uap:DataFormat>Uri</uap:DataFormat>
8
+ </uap:ShareTarget>
9
+ </uap:Extension>
@@ -0,0 +1,3 @@
1
+ <desktop:Extension Category="windows.startupTask">
2
+ <desktop:StartupTask TaskId="{{TASK_ID}}" Enabled="true" DisplayName="{{DISPLAY_NAME}}" />
3
+ </desktop:Extension>
@@ -0,0 +1,8 @@
1
+ <uap:Extension Category="windows.fileTypeAssociation">
2
+ <uap:FileTypeAssociation Name="{{NAME}}">
3
+ <uap:SupportedFileTypes>
4
+ {{FILE_TYPES}}
5
+ </uap:SupportedFileTypes>
6
+ <desktop2:ThumbnailHandler Clsid="{{CLSID}}" />
7
+ </uap:FileTypeAssociation>
8
+ </uap:Extension>
@@ -0,0 +1,3 @@
1
+ <desktop:Extension Category="windows.toastNotificationActivation">
2
+ <desktop:ToastNotificationActivation ToastActivatorCLSID="{{CLSID}}" />
3
+ </desktop:Extension>